OpenCloudOS-Kernel/drivers/pinctrl
Robin Gong ee1635180a pinctrl: freescale: imx: fix system crash if enable two pinctl instances
Fix system chrash caused by groups whose number is smaller than the number
of groups of the last pinctl instance which is not initialized.

iMX7D supports two iomux controllers (iomuxc-lpsr and iomuxc) on probing
the second instance (iomuxc) the chrash below occurs.

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.2.0-next-20150901-00006-gebfa43c (aalonso@bluefly)
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7)
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasin instruction cache
[    0.000000] Machine model: Freescale i.MX7 SabreSD Board
[    0.661012] [<802a6cb0>] (strcmp) from [<802cc80c>] (imx_dt_node_to_map+0x58/0x208)
[    0.668879] [<802cc80c>] (imx_dt_node_to_map) from [<802cbe24>] (pinctrl_dt_to_map+0x174/0x2b0)
[    0.677654] [<802cbe24>] (pinctrl_dt_to_map) from [<802c8f18>] (pinctrl_get+0x100/0x424)
[    0.685878] [<802c8f18>] (pinctrl_get) from [<802c9510>] (pinctrl_register+0x26c/0x480)
[    0.694104] [<802c9510>] (pinctrl_register) from [<802ccf3c>] (imx_pinctrl_probe+0x580/0x6e8)
[    0.702706] [<802ccf3c>] (imx_pinctrl_probe) from [<80351b58>] (platform_drv_probe+0x44/0xa4)
[    0.711455] [<80351b58>] (platform_drv_probe) from [<803503ec>] (driver_probe_device+0x174/0x2b4)
[    0.720405] [<803503ec>] (driver_probe_device) from [<803505fc>] (__driver_attach+0x8c/0x90)
[    0.728982] [<803505fc>] (__driver_attach) from [<8034e930>] (bus_for_each_dev+0x6c/0xa0)
[    0.737381] [<8034e930>] (bus_for_each_dev) from [<8034fb88>] (bus_add_driver+0x148/0x1f0)
[    0.745804] [<8034fb88>] (bus_add_driver) from [<80350c00>] (driver_register+0x78/0xf8)
[    0.753880] [<80350c00>] (driver_register) from [<800097d0>] (do_one_initcall+0x8c/0x1d4)
[    0.762282] [<800097d0>] (do_one_initcall) from [<80987dac>] (kernel_init_freeable+0x144/0x1e4)
[    0.771061] [<80987dac>] (kernel_init_freeable) from [<806d9c7c>] (kernel_init+0x8/0xe8)
[    0.779285] [<806d9c7c>] (kernel_init) from [<8000f628>] (ret_from_fork+0x14/0x2c)
[    0.786981] Code: e3520000 e5e32001 1afffffb e12fff1e (e4d03001)

Signed-off-by: Robin Gong <b38343@freescale.com>
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2015-10-02 05:18:40 -07:00
..
bcm genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
berlin ARM: SoC: driver updates for v4.2 2015-06-26 11:54:29 -07:00
freescale pinctrl: freescale: imx: fix system crash if enable two pinctl instances 2015-10-02 05:18:40 -07:00
intel genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mediatek pinctrl: mediatek: Remove unneded semicolon 2015-10-02 04:06:47 -07:00
meson Here is the bulk of pin control changes for the v4.2 series: 2015-06-24 19:21:02 -07:00
mvebu Here is the bulk of pin control changes for the v4.2 series: 2015-06-24 19:21:02 -07:00
nomadik genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
qcom Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-18 08:11:42 -07:00
samsung pinctrl: samsung: Remove unneded semicolon 2015-10-02 04:06:48 -07:00
sh-pfc pinctrl: sh-pfc: r8a7795: add EtherAVB support 2015-10-02 09:54:41 +02:00
sirf genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
spear genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
sunxi pinctrl: sunxi: add allwinner A83T PIO controller support 2015-10-02 04:09:44 -07:00
uniphier pinctrl: uniphier: add SD card pinmux settings 2015-10-02 04:07:15 -07:00
vt8500 pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
Kconfig pinctrl: introduce driver for Atmel PIO4 controller 2015-09-21 11:21:33 -07:00
Makefile pinctrl: introduce driver for Atmel PIO4 controller 2015-09-21 11:21:33 -07:00
core.c pinctrl: core: Warn about NULL gpio_chip in pinctrl_ready_for_gpio_range() 2015-09-14 09:13:43 +02:00
core.h pinctrl: Don't just pretend to protect pinctrl_maps, do it for real 2015-05-06 16:24:28 +02:00
devicetree.c pinctrl: simplify of_pinctrl_get() 2015-07-16 09:39:03 +02:00
devicetree.h pinctrl: core device tree mapping table parsing support 2012-04-18 13:53:10 +02:00
pinconf-generic.c pinctrl: pinconf-generic: add dt node names to error messages 2015-03-27 09:53:10 +01:00
pinconf.c pinctrl: join dev_dbg strings into a single line 2015-08-03 10:13:00 +02:00
pinconf.h pinctrl: pinconf-generic: Allow driver to specify DT params 2015-01-11 22:32:19 +01:00
pinctrl-adi2-bf54x.c pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-adi2-bf60x.c added tabs instead of spaces 2015-07-16 09:39:01 +02:00
pinctrl-adi2.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-adi2.h pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-amd.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-amd.h Fix inconsistent spinlock of AMD GPIO driver which can be 2015-04-07 11:36:49 +02:00
pinctrl-as3722.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-at91-pio4.c pinctrl: at91-pio4: add PM stuff 2015-10-02 05:02:37 -07:00
pinctrl-at91.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-at91.h pinctrl: at91: use own header 2014-10-29 09:28:35 +01:00
pinctrl-coh901.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-coh901.h pinctrl: support pinconfig on the U300 2012-03-12 22:49:03 +01:00
pinctrl-digicolor.c pinctrl: digicolor: convert null test to IS_ERR test 2015-09-14 09:13:43 +02:00
pinctrl-falcon.c staging: drivers: pinctrl: Fixed checkpatch.pl warnings 2015-01-21 11:02:26 +01:00
pinctrl-lantiq.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-lantiq.h pinctrl: lantiq: fix include guard #endif comment 2015-03-09 18:10:57 +01:00
pinctrl-lpc18xx.c This is the bulk of pin control changes for the v4.3 development 2015-09-04 10:22:09 -07:00
pinctrl-palmas.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-pistachio.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-rockchip.c pinctrl: rockchip: add support for the rk3036 2015-09-25 09:22:55 -07:00
pinctrl-single.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-st.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
pinctrl-tb10x.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-tegra-xusb.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-tegra.c pinctrl: tegra: Only set the gpio range if needed 2015-08-13 16:24:33 +02:00
pinctrl-tegra.h pinctrl: tegra: use signed bitfields for optional fields 2015-03-19 09:20:17 +01:00
pinctrl-tegra20.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra30.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra114.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra124.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra210.c pinctrl: tegra: add a driver for Tegra210 2015-03-09 18:10:59 +01:00
pinctrl-tz1090-pdc.c pinctrl: tz1090-pdc: Remove unneded semicolons 2015-10-02 04:06:46 -07:00
pinctrl-tz1090.c pinctrl: tz1090: Remove unneded semicolons 2015-10-02 04:06:46 -07:00
pinctrl-u300.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-utils.c pinctrl: utils: include export.h to avoid warnings 2013-08-28 15:50:33 +02:00
pinctrl-utils.h pinctrl: add utility functions for add map/configs 2013-08-14 21:00:41 +02:00
pinctrl-xway.c pinctrl: lantiq: remove bogus of_gpio_chip_add 2015-01-14 14:20:46 +01:00
pinctrl-zynq.c pinctrl: zynq: Fix typos in smc0_nand_grp and smc0_nor_grp 2015-08-25 16:21:31 +02:00
pinmux.c pinctrl: join lines that can be a single line within 80 columns 2015-09-14 09:13:43 +02:00
pinmux.h pinctrl: ifdef CONFIG_DEBUG_FS cleanup 2012-04-18 13:53:12 +02:00