[PATCH] basic_mmio_gpio: convert to non-__raw* accessors

From: Jamie Iles
Date: Mon Apr 11 2011 - 12:23:41 EST


The __raw_* accessors don't include memory barriers and can cause
problems when writes get stuck in write buffers.

Suggested-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Cc: Anton Vorontsov <cbouatmailru@xxxxxxxxx>
Cc: Grant Likely <grant.likely@xxxxxxxxxxxx>
Signed-off-by: Jamie Iles <jamie@xxxxxxxxxxxxx>
---

Note: This patch is based on top of my other series to extend
basic_mmio_gpio.

drivers/gpio/basic_mmio_gpio.c | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/gpio/basic_mmio_gpio.c b/drivers/gpio/basic_mmio_gpio.c
index f4afd96..b2ec45f 100644
--- a/drivers/gpio/basic_mmio_gpio.c
+++ b/drivers/gpio/basic_mmio_gpio.c
@@ -101,43 +101,43 @@ static struct bgpio_chip *to_bgpio_chip(struct gpio_chip *gc)

static void bgpio_write8(void __iomem *reg, unsigned long data)
{
- __raw_writeb(data, reg);
+ writeb(data, reg);
}

static unsigned long bgpio_read8(void __iomem *reg)
{
- return __raw_readb(reg);
+ return readb(reg);
}

static void bgpio_write16(void __iomem *reg, unsigned long data)
{
- __raw_writew(data, reg);
+ writew(data, reg);
}

static unsigned long bgpio_read16(void __iomem *reg)
{
- return __raw_readw(reg);
+ return readw(reg);
}

static void bgpio_write32(void __iomem *reg, unsigned long data)
{
- __raw_writel(data, reg);
+ writel(data, reg);
}

static unsigned long bgpio_read32(void __iomem *reg)
{
- return __raw_readl(reg);
+ return readl(reg);
}

#if BITS_PER_LONG >= 64
static void bgpio_write64(void __iomem *reg, unsigned long data)
{
- __raw_writeq(data, reg);
+ writeq(data, reg);
}

static unsigned long bgpio_read64(void __iomem *reg)
{
- return __raw_readq(reg);
+ return readq(reg);
}
#endif /* BITS_PER_LONG >= 64 */

--
1.7.4.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/