diff options
-rw-r--r-- | drivers/gpio/langwell_gpio.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpio/langwell_gpio.c b/drivers/gpio/langwell_gpio.c index 54d70a47afc1..bb10156422e3 100644 --- a/drivers/gpio/langwell_gpio.c +++ b/drivers/gpio/langwell_gpio.c | |||
@@ -187,10 +187,11 @@ MODULE_DEVICE_TABLE(pci, lnw_gpio_ids); | |||
187 | 187 | ||
188 | static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) | 188 | static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) |
189 | { | 189 | { |
190 | struct lnw_gpio *lnw = get_irq_data(irq); | 190 | struct irq_data *data = irq_desc_get_irq_data(desc); |
191 | u32 base, gpio; | 191 | struct lnw_gpio *lnw = irq_data_get_irq_handler_data(data); |
192 | struct irq_chip *chip = irq_data_get_irq_chip(data); | ||
193 | u32 base, gpio, gedr_v; | ||
192 | void __iomem *gedr; | 194 | void __iomem *gedr; |
193 | u32 gedr_v; | ||
194 | 195 | ||
195 | /* check GPIO controller to check which pin triggered the interrupt */ | 196 | /* check GPIO controller to check which pin triggered the interrupt */ |
196 | for (base = 0; base < lnw->chip.ngpio; base += 32) { | 197 | for (base = 0; base < lnw->chip.ngpio; base += 32) { |
@@ -207,11 +208,7 @@ static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) | |||
207 | writel(gedr_v, gedr); | 208 | writel(gedr_v, gedr); |
208 | } | 209 | } |
209 | 210 | ||
210 | if (desc->chip->irq_eoi) | 211 | chip->irq_eoi(data); |
211 | desc->chip->irq_eoi(irq_get_irq_data(irq)); | ||
212 | else | ||
213 | dev_warn(lnw->chip.dev, "missing EOI handler for irq %d\n", irq); | ||
214 | |||
215 | } | 212 | } |
216 | 213 | ||
217 | static int __devinit lnw_gpio_probe(struct pci_dev *pdev, | 214 | static int __devinit lnw_gpio_probe(struct pci_dev *pdev, |