aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/langwell_gpio.c13
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
188static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) 188static 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
217static int __devinit lnw_gpio_probe(struct pci_dev *pdev, 214static int __devinit lnw_gpio_probe(struct pci_dev *pdev,