From 74ef2293d02559ba3a0d7e3fd2abdfea83b673b8 Mon Sep 17 00:00:00 2001 From: Feng Tang Date: Tue, 25 Jan 2011 15:07:15 -0800 Subject: [PATCH] --- yaml --- r: 232405 b: refs/heads/master c: 0766d20fdb9178b908f0268c16b464c11822c5c2 h: refs/heads/master i: 232403: 32ae98270c451d5062d1c00b0de76d52f190e770 v: v3 --- [refs] | 2 +- trunk/drivers/gpio/langwell_gpio.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 13dcd7e33f10..b6b4bf11ead7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d8cc667be8fad9ad0bb3a95116be9f80a3b3efcf +refs/heads/master: 0766d20fdb9178b908f0268c16b464c11822c5c2 diff --git a/trunk/drivers/gpio/langwell_gpio.c b/trunk/drivers/gpio/langwell_gpio.c index d81cc748e77f..54d70a47afc1 100644 --- a/trunk/drivers/gpio/langwell_gpio.c +++ b/trunk/drivers/gpio/langwell_gpio.c @@ -187,7 +187,7 @@ MODULE_DEVICE_TABLE(pci, lnw_gpio_ids); static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) { - struct lnw_gpio *lnw = (struct lnw_gpio *)get_irq_data(irq); + struct lnw_gpio *lnw = get_irq_data(irq); u32 base, gpio; void __iomem *gedr; u32 gedr_v; @@ -206,7 +206,12 @@ static void lnw_irq_handler(unsigned irq, struct irq_desc *desc) /* clear the edge detect status bit */ writel(gedr_v, gedr); } - desc->chip->eoi(irq); + + if (desc->chip->irq_eoi) + desc->chip->irq_eoi(irq_get_irq_data(irq)); + else + dev_warn(lnw->chip.dev, "missing EOI handler for irq %d\n", irq); + } static int __devinit lnw_gpio_probe(struct pci_dev *pdev,