[PATCH v5 1/3] ARM: Introduce atomic MMIO modify
Russell King - ARM Linux
linux at arm.linux.org.uk
Tue Dec 10 12:00:25 EST 2013
On Tue, Dec 10, 2013 at 04:49:07PM +0000, Mark Brown wrote:
> On Tue, Dec 10, 2013 at 11:41:35AM -0300, Ezequiel Garcia wrote:
>
> > +void atomic_io_modify_relaxed(void __iomem *reg, u32 mask, u32 set)
> > +{
> > + unsigned long flags;
> > + u32 value;
> > +
> > + raw_spin_lock_irqsave(&__io_lock, flags);
> > + value = readl_relaxed(reg) & ~mask;
> > + value |= (set & mask);
> > + writel_relaxed(value, reg);
> > + raw_spin_unlock_irqrestore(&__io_lock, flags);
> > +}
> > +EXPORT_SYMBOL(atomic_io_modify_relaxed);
>
> This looks quite generic - why is it in architecture specific code?
because the _relaxed IO operators don't exist on other architectures, and
there's been some discussion around whether they should with no conclusions
being reached.
More information about the linux-arm-kernel
mailing list