linux/drivers/gpio
Thomas Gleixner 20e2aa916f gpio/langwell: Fix broken irq_eoi change.
commit 0766d20fd (langwell_gpio: modify EOI handling following change
of kernel irq subsystem)  changes

 -   desc->chip->eoi(irq);
 +
 +   if (desc->chip->irq_eoi)
 +           desc->chip->irq_eoi(irq_get_irq_data(irq));
 +   else
 +           dev_warn(pg->chip.dev, "missing EOI handler for irq %d\n", irq);

With the following explanation:

 "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."

This is completely bogus.

 #1) The changelog does not match the patch at all

 #2) This driver relies on the assumption that it sits behind an eoi
     capable interrupt line. If the implementation of the underlying
     chip changes from eoi to irq_eoi then this driver has to follow
     that change and not add a total bogosity.

 #3) Just mechanically changing eoi to irq_eoi without checking the
     background of that change is sloppy at best.

Remove the sillyness and retrieve the interrupt data from irq_desc
directly. No need to go through a sparse irq lookup.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Feng Tang <feng.tang@intel.com>
Cc: Alek Du <alek.du@intel.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2011-03-17 13:49:03 -06:00
..
74x164.c gpio: Use __devexit at necessary places 2011-03-12 02:14:48 -07:00
adp5520-gpio.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adp5588-gpio.c gpio: adp5588-gpio: irq_data conversion 2011-01-13 08:03:13 -08:00
basic_mmio_gpio.c gpio: add driver for basic memory-mapped GPIO controllers 2010-10-27 18:03:06 -07:00
bt8xxgpio.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cs5535-gpio.c gpio/cs5535-gpio: Fix section mismatch 2011-03-17 12:52:05 -06:00
gpiolib.c gpiolib: gpio_request_one(): add missing gpio_free() 2010-12-22 19:43:33 -08:00
it8761e_gpio.c drivers/gpio/it8761e_gpio: check return value of gpiochip_remove() 2010-05-27 09:12:42 -07:00
janz-ttl.c gpio: Add support for Janz VMOD-TTL Digital IO module 2010-05-28 01:37:33 +02:00
Kconfig gpio; Make Intel chipset gpio drivers depend on x86 2011-03-17 13:49:02 -06:00
langwell_gpio.c gpio/langwell: Fix broken irq_eoi change. 2011-03-17 13:49:03 -06:00
Makefile gpio/ml_ioh_gpio: ML7213 GPIO driver 2011-01-13 08:03:14 -08:00
max730x.c gpio: max730x: make pullups configurable via platformdata 2010-08-11 08:59:08 -07:00
max732x.c gpio: max732x: irq_data conversion 2011-01-13 08:03:13 -08:00
max7300.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
max7301.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mc33880.c gpio: Use __devexit at necessary places 2011-03-12 02:14:48 -07:00
mcp23s08.c gpio/mcp23s08: support mcp23s17 variant 2011-03-12 01:26:34 -07:00
ml_ioh_gpio.c gpio: add MODULE_DEVICE_TABLE to pch_gpio and ml_ioh_gpio 2011-03-12 02:13:07 -07:00
pca953x.c Merge commit 'v2.6.38-rc8' into spi/next 2011-03-12 01:25:53 -07:00
pcf857x.c pcf857x: support working w/o platform data 2010-08-11 08:59:08 -07:00
pch_gpio.c gpio: add MODULE_DEVICE_TABLE to pch_gpio and ml_ioh_gpio 2011-03-12 02:13:07 -07:00
pl061.c gpio: pl061: irq_data conversion 2011-01-13 08:03:13 -08:00
rdc321x-gpio.c gpio: Fix null pointer dereference while accessing rdc321x platform_data 2010-12-22 12:05:20 +01:00
sch_gpio.c gpio: Fix sch_gpio warning 2010-03-07 22:17:37 +01:00
stmpe-gpio.c gpio: stmpe-gpio: irq_data conversion 2011-01-13 08:03:13 -08:00
sx150x.c gpio/sx150x: Do not access I2C from mask/unmask functions 2011-02-22 14:59:53 -07:00
tc3589x-gpio.c gpio: tc35892-gpio: irq_data conversion 2011-01-13 08:03:14 -08:00
timbgpio.c gpio: timbgpio: Fix up irq_data conversion breakage. 2011-01-14 08:13:13 -08:00
twl4030-gpio.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ucb1400_gpio.c mfd/gpio: add a GPIO interface to the UCB1400 MFD chip driver via gpiolib 2009-09-23 07:39:48 -07:00
vr41xx_giu.c gpio: vr41xx_giu: irq_data conversion 2011-01-13 08:03:14 -08:00
vx855_gpio.c gpio: Add VIA VX855 GPIO driver 2010-10-29 00:29:51 +02:00
wm831x-gpio.c gpiolib: Implement set_debounce for WM831x GPIOs 2010-08-12 11:27:57 +02:00
wm8350-gpiolib.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
wm8994-gpio.c gpiolib: Add WM8958 support to the WM8994 driver 2010-11-26 15:16:19 +00:00
xilinx_gpio.c of: GPIO: Fix OF probing on little-endian systems 2010-09-29 15:28:08 +09:00