diff options
Diffstat (limited to 'drivers/gpio/gpio-omap.c')
-rw-r--r-- | drivers/gpio/gpio-omap.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index 2ae0d47e9554..5236db161e76 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c | |||
@@ -709,7 +709,7 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset) | |||
709 | * line's interrupt handler has been run, we may miss some nested | 709 | * line's interrupt handler has been run, we may miss some nested |
710 | * interrupts. | 710 | * interrupts. |
711 | */ | 711 | */ |
712 | static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | 712 | static void omap_gpio_irq_handler(struct irq_desc *desc) |
713 | { | 713 | { |
714 | void __iomem *isr_reg = NULL; | 714 | void __iomem *isr_reg = NULL; |
715 | u32 isr; | 715 | u32 isr; |
@@ -1098,7 +1098,6 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc) | |||
1098 | } else { | 1098 | } else { |
1099 | bank->chip.label = "gpio"; | 1099 | bank->chip.label = "gpio"; |
1100 | bank->chip.base = gpio; | 1100 | bank->chip.base = gpio; |
1101 | gpio += bank->width; | ||
1102 | } | 1101 | } |
1103 | bank->chip.ngpio = bank->width; | 1102 | bank->chip.ngpio = bank->width; |
1104 | 1103 | ||
@@ -1108,6 +1107,9 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc) | |||
1108 | return ret; | 1107 | return ret; |
1109 | } | 1108 | } |
1110 | 1109 | ||
1110 | if (!bank->is_mpuio) | ||
1111 | gpio += bank->width; | ||
1112 | |||
1111 | #ifdef CONFIG_ARCH_OMAP1 | 1113 | #ifdef CONFIG_ARCH_OMAP1 |
1112 | /* | 1114 | /* |
1113 | * REVISIT: Once we have OMAP1 supporting SPARSE_IRQ, we can drop | 1115 | * REVISIT: Once we have OMAP1 supporting SPARSE_IRQ, we can drop |
@@ -1253,8 +1255,11 @@ static int omap_gpio_probe(struct platform_device *pdev) | |||
1253 | omap_gpio_mod_init(bank); | 1255 | omap_gpio_mod_init(bank); |
1254 | 1256 | ||
1255 | ret = omap_gpio_chip_init(bank, irqc); | 1257 | ret = omap_gpio_chip_init(bank, irqc); |
1256 | if (ret) | 1258 | if (ret) { |
1259 | pm_runtime_put_sync(bank->dev); | ||
1260 | pm_runtime_disable(bank->dev); | ||
1257 | return ret; | 1261 | return ret; |
1262 | } | ||
1258 | 1263 | ||
1259 | omap_gpio_show_rev(bank); | 1264 | omap_gpio_show_rev(bank); |
1260 | 1265 | ||