aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFeng Tang <feng.tang@intel.com>2010-12-09 10:37:44 +0000
committerAlan Cox <alan@linux.intel.com>2010-12-09 10:37:44 +0000
commit59e4d97988ad25d6cdd6c4a8b61801d325cf7350 (patch)
tree1d3b7c9802d1071e5a793ca5c6092145e524b7d1 /drivers
parent66e17daa00f5123051ebee0c184d0a200c49028e (diff)
downloadmrst-s0i3-test-59e4d97988ad25d6cdd6c4a8b61801d325cf7350.tar.gz
mrst-s0i3-test-59e4d97988ad25d6cdd6c4a8b61801d325cf7350.tar.xz
mrst-s0i3-test-59e4d97988ad25d6cdd6c4a8b61801d325cf7350.zip
langwell_gpio: modify EOI handling following change of kernel irq subsystem
Latest kernel has many changes in IRQ subsystem and its interfaces, like adding "irq_eoi" for struct irq_chip, this patch will make it support both the new and old interface. Cc: Alek Du <alek.du@intel.com> Signed-off-by: Feng Tang <feng.tang@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpio/langwell_gpio.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpio/langwell_gpio.c b/drivers/gpio/langwell_gpio.c
index 64db9dc3a27..fb7a3f4d3ef 100644
--- a/drivers/gpio/langwell_gpio.c
+++ b/drivers/gpio/langwell_gpio.c
@@ -206,7 +206,16 @@ 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));
+#ifndef CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED
+ else if (desc->chip->eoi)
+ desc->chip->eoi(irq);
+#endif
+ else
+ dev_warn(lnw->chip.dev, "missing EOI handler for irq %d\n", irq);
+
}
static int __devinit lnw_gpio_probe(struct pci_dev *pdev,