OSDN Git Service

pinctrl: cherryview: Allocate IRQ chip dynamic
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 24 Oct 2019 13:34:41 +0000 (16:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 08:19:37 +0000 (09:19 +0100)
commit5b15b1bf54286ffae6f77b4de5bd243f29abbdfe
treed9dc47813c51e325e294bbdb5e9655d5c0e8e780
parenta0554203bc121fa53bddabdf41e628e35eec1e7f
pinctrl: cherryview: Allocate IRQ chip dynamic

[ Upstream commit 67d33aecd030226f0a577eb683aaa6853ecf8f91 ]

Keeping the IRQ chip definition static shares it with multiple instances
of the GPIO chip in the system. This is bad and now we get this warning
from GPIO library:

"detected irqchip that is shared with multiple gpiochips: please fix the driver."

Hence, move the IRQ chip definition from being driver static into the struct
intel_pinctrl. So a unique IRQ chip is used for each GPIO chip instance.

This patch is heavily based on the attachment to the bug by Christoph Marz.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=202543
Fixes: 6e08d6bbebeb ("pinctrl: Add Intel Cherryview/Braswell pin controller support")
Depends-on: 83b9dc11312f ("pinctrl: cherryview: Associate IRQ descriptors to irqdomain")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/intel/pinctrl-cherryview.c