• Thomas Gleixner's avatar
    gpio/langwell: Fix broken irq_eoi change. · 20e2aa91
    Thomas Gleixner authored
    commit 0766d20f (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: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarThomas 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: default avatarGrant Likely <grant.likely@secretlab.ca>
    20e2aa91
langwell_gpio.c 9.91 KB