gpio-langwell: do not use direct access to iomapped memory
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 22 May 2013 10:20:11 +0000 (13:20 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 30 May 2013 17:30:56 +0000 (19:30 +0200)
We better to use readl() function instead of bad looking direct access.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: David Cohen <david.a.cohen@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-langwell.c

index a0190de..fff6611 100644 (file)
@@ -65,7 +65,7 @@ enum GPIO_REG {
 
 struct lnw_gpio {
        struct gpio_chip                chip;
-       void                            *reg_base;
+       void __iomem                    *reg_base;
        spinlock_t                      lock;
        struct pci_dev                  *pdev;
        struct irq_domain               *domain;
@@ -318,9 +318,9 @@ static const struct dev_pm_ops lnw_gpio_pm_ops = {
 };
 
 static int lnw_gpio_probe(struct pci_dev *pdev,
-                       const struct pci_device_id *id)
+                         const struct pci_device_id *id)
 {
-       void *base;
+       void __iomem *base;
        resource_size_t start, len;
        struct lnw_gpio *lnw;
        u32 gpio_base;
@@ -346,8 +346,10 @@ static int lnw_gpio_probe(struct pci_dev *pdev,
                retval = -EFAULT;
                goto err_ioremap;
        }
-       irq_base = *(u32 *)base;
-       gpio_base = *((u32 *)base + 1);
+
+       irq_base = readl(base);
+       gpio_base = readl(sizeof(u32) + base);
+
        /* release the IO mapping, since we already get the info from bar1 */
        iounmap(base);
        /* get the register base from bar0 */