linux/drivers/pinctrl
Marco Felsch f259f896f2 pinctrl: mcp23s08: fix irq and irqchip setup order
Since 'commit 02e389e63e ("pinctrl: mcp23s08: fix irq setup order")' the
irq request isn't the last devm_* allocation. Without a deeper look at
the irq and testing this isn't a good solution. Since this driver relies
on the devm mechanism, requesting a interrupt should be the last thing
to avoid memory corruptions during unbinding.

'Commit 02e389e63e ("pinctrl: mcp23s08: fix irq setup order")' fixed the
order for the interrupt-controller use case only. The
mcp23s08_irq_setup() must be split into two to fix it for the
interrupt-controller use case and to register the irq at last. So the
irq will be freed first during unbind.

Cc: stable@vger.kernel.org
Cc: Jan Kundrát <jan.kundrat@cesnet.cz>
Cc: Dmitry Mastykin <mastichi@gmail.com>
Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Fixes: 82039d244f ("pinctrl: mcp23s08: add pinconf support")
Fixes: 02e389e63e ("pinctrl: mcp23s08: fix irq setup order")
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Tested-by: Phil Reid <preid@electromag.com.au>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2018-10-10 14:36:35 +02:00
..
actions This is the bulk of pin control changes for v4.19: 2018-08-14 12:31:27 -07:00
aspeed
bcm
berlin pinctrl: berlin: fix 'pctrl->functions' allocation in berlin_pinctrl_build_state 2018-08-03 19:28:15 +02:00
cirrus pinctrl: madera: Fix possible NULL pointer with pdata config 2018-08-29 14:02:47 +02:00
freescale pinctrl: freescale: off by one in imx1_pinconf_group_dbg_show() 2018-08-01 23:01:07 +02:00
intel Revert "pinctrl: intel: Do pin translation when lock IRQ" 2018-09-25 12:50:00 +02:00
mediatek This is the bulk of pin control changes for v4.19: 2018-08-14 12:31:27 -07:00
meson
mvebu
nomadik pinctrl: nomadik: silence uninitialized variable warning 2018-08-10 23:14:04 +02:00
pxa
qcom pinctrl: msm: Really mask level interrupts to prevent latching 2018-08-29 09:38:50 +02:00
samsung pinctrl: samsung: Remove duplicated "wakeup" in printk 2018-08-10 23:01:01 +02:00
sh-pfc This is the bulk of pin control changes for v4.19: 2018-08-14 12:31:27 -07:00
sirf
spear
sprd
stm32 pinctrl: stm32: add syscfg mask parameter 2018-07-29 22:14:59 +02:00
sunxi
tegra pinctrl: tegra: Move drivers registration to arch_init level 2018-08-03 19:17:39 +02:00
ti
uniphier Char/Misc driver patches for 4.19-rc1 2018-08-18 11:04:51 -07:00
vt8500
zte
Kconfig - New Drivers 2018-08-20 15:38:44 -07:00
Makefile Immutable branch (mfd, chrome) due for the v4.19 window 2018-07-27 08:11:37 +01:00
core.c
core.h pinctrl: core: Remove broken remove_last group and pinmux functions 2018-07-17 10:49:49 +02:00
devicetree.c
devicetree.h
pinconf-generic.c
pinconf.c
pinconf.h
pinctrl-amd.c pinctrl/amd: poll InterruptEnable bits in amd_gpio_irq_set_type 2018-09-25 12:39:19 +02:00
pinctrl-amd.h pinctrl/amd: fix gpio irq level in debugfs 2018-07-29 22:20:15 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c
pinctrl-at91-pio4.c
pinctrl-at91.c
pinctrl-at91.h
pinctrl-axp209.c pinctrl: axp209: Fix NULL pointer dereference after allocation 2018-08-10 23:12:43 +02:00
pinctrl-coh901.c
pinctrl-coh901.h
pinctrl-da850-pupd.c
pinctrl-digicolor.c
pinctrl-falcon.c
pinctrl-gemini.c
pinctrl-ingenic.c pinctrl: ingenic: Fix group & function error checking 2018-08-29 13:43:36 +02:00
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-lpc18xx.c
pinctrl-max77620.c
pinctrl-mcp23s08.c pinctrl: mcp23s08: fix irq and irqchip setup order 2018-10-10 14:36:35 +02:00
pinctrl-ocelot.c pinctrl: ocelot: add support for interrupt controller 2018-08-06 13:00:17 +02:00
pinctrl-oxnas.c
pinctrl-palmas.c
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c
pinctrl-rk805.c
pinctrl-rockchip.c
pinctrl-rza1.c pinctrl: rza1: Fix selector use for groups and functions 2018-07-17 10:49:33 +02:00
pinctrl-single.c This is the bulk of pin control changes for v4.19: 2018-08-14 12:31:27 -07:00
pinctrl-st.c
pinctrl-sx150x.c
pinctrl-tb10x.c
pinctrl-u300.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c
pinmux.c pinctrl: pinmux: Return selector to the pinctrl driver 2018-07-17 10:48:47 +02:00
pinmux.h pinctrl: core: Remove broken remove_last group and pinmux functions 2018-07-17 10:49:49 +02:00