pinctrl: baytrail: Do not add all GPIOs to IRQ domain
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 11 Jan 2017 13:49:00 +0000 (15:49 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 12 Jan 2017 07:11:56 +0000 (08:11 +0100)
commit49c03096263871a68c9dea3e86b7d1e163d2fba8
treec776451154ce6f57e1dd2a1cfc3f09cbd46cb62c
parent04ff5a095d662e0879f0eb04b9247e092210aeff
pinctrl: baytrail: Do not add all GPIOs to IRQ domain

When DIRECT_IRQ_EN is set, the pin is routed directly to the IO-APIC bypassing
the GPIO driver completely. However, the mask register is still used to
determine if the pin is supposed to generate IRQ or not.

So with commit 3ae02c14d964 the IRQ core masks all IRQs (because of
handle_bad_irq()) the pin connected to the touchscreen gets masked as well and
hence no interrupts.

To make this all work as expected we do not add those GPIOs to the IRQ domain
that can actually propagate interrupts.

Fixes: 3ae02c14d964 ("pinctrl: intel: set default handler to be handle_bad_irq()")
Reported-by: Robert R. Howell <rhowell@uwyo.edu>
Suggested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/intel/pinctrl-baytrail.c