]> git.baikalelectronics.ru Git - kernel.git/commit
gpio: brcmstb: consolidate interrupt domains
authorDoug Berger <opendmb@gmail.com>
Tue, 24 Oct 2017 19:54:50 +0000 (12:54 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 31 Oct 2017 09:34:40 +0000 (10:34 +0100)
commit50d1705cbde10a102007f8084be4cb6629b72959
treebba6d82d871dabab3374764818c6bec6eb89cdd5
parent5d5863c4dc9fade802d7c12d52b4d5d0b4761c75
gpio: brcmstb: consolidate interrupt domains

The GPIOLIB IRQ chip helpers were very appealing, but badly broke
the 1:1 mapping between a GPIO controller's device_node and its
interrupt domain.

When another device-tree node references a GPIO device as its
interrupt parent, the irq_create_of_mapping() function looks for
the irq domain of the GPIO device and since all bank irq domains
reference the same GPIO device node it always resolves to the irq
domain of the first bank regardless of which bank the number of
the GPIO should resolve. This domain can only map hwirq numbers
0-31 so interrupts on GPIO above that can't be mapped by the
device-tree.

This commit effectively reverts the patch from Gregory Fong [1]
that was accepted upstream and replaces it with a consolidated
irq domain implementation with one larger interrupt domain per
GPIO controller instance spanning multiple GPIO banks based on
an earlier patch [2] also submitted by Gregory Fong.

[1] https://patchwork.kernel.org/patch/6921561/
[2] https://patchwork.kernel.org/patch/6347811/

Fixes: 2e1988e1e27b ("gpio: brcmstb: Add interrupt and wakeup source support")
Signed-off-by: Doug Berger <opendmb@gmail.com>
Reviewed-by: Gregory Fong <gregory.0xf0@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/Kconfig
drivers/gpio/gpio-brcmstb.c