On Mon, Sep 24, 2018 at 4:32 PM Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> wrote: > This reverts commit 55aedef50d4d810670916d9fce4a40d5da2079e7. > > Commit 55aedef50d4d ("pinctrl: intel: Do pin translation when lock IRQ") > added special translation from GPIO number to hardware pin number to > irq_reqres/relres hooks to avoid failure when IRQs are requested. The > actual failure happened inside gpiochip_lock_as_irq() because it calls > gpiod_get_direction() and pinctrl-intel.c::intel_gpio_get_direction() > implementation originally missed the translation so the two hooks made > it work by skipping the ->get_direction() call entirely (it overwrote > the default GPIOLIB provided functions). > > The proper fix that adds translation to GPIO callbacks was merged with > commit 96147db1e1df ("pinctrl: intel: Do pin translation in other GPIO > operations as well"). This allows us to use the default GPIOLIB provided > functions again. > > In addition as find out by Benjamin Tissoires the two functions > (intel_gpio_irq_reqres()/intel_gpio_irq_relres()) now cause problems of > their own because they operate on pin numbers and pass that pin number > to gpiochip_lock_as_irq() which actually expects a GPIO number. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=199911 > Fixes: 55aedef50d4d ("pinctrl: intel: Do pin translation when lock IRQ") > Reported-and-tested-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> Patch applied for fixes with Andy's ACK. Yours, Linus Walleij