OpenCloudOS-Kernel/drivers/pinctrl/freescale
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
..
Kconfig pinctrl: imx: add i.mx6ul subdriver 2015-07-16 09:39:02 +02:00
Makefile pinctrl: imx: add i.mx6ul subdriver 2015-07-16 09:39:02 +02:00
pinctrl-imx.c pinctrl: freescale: imx: fix system crash if enable two pinctl instances 2015-10-02 05:18:40 -07:00
pinctrl-imx.h pinctrl: freescale: imx: fix system crash if enable two pinctl instances 2015-10-02 05:18:40 -07:00
pinctrl-imx1-core.c Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback 2015-07-20 11:01:53 +02:00
pinctrl-imx1.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx1.h
pinctrl-imx6dl.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6q.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6sl.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6sx.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx6ul.c pinctrl: imx6ul: Remove .owner field 2015-08-25 16:29:06 +02:00
pinctrl-imx7d.c pinctrl: Remove .owner field 2015-06-04 10:12:42 +02:00
pinctrl-imx21.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx23.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx25.c pinctrl: imx25: fix numbering for pins 2015-02-03 14:02:55 +01:00
pinctrl-imx27.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx28.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx35.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx50.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx51.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-imx53.c pinctrl: freescale: drop owner assignment from platform_drivers 2014-10-20 16:21:22 +02:00
pinctrl-mxs.c pinctrl: mxs: Remove unneded semicolon 2015-10-02 04:06:47 -07:00
pinctrl-mxs.h
pinctrl-vf610.c pinctrl: freescale: make of_device_id array const 2015-03-09 18:10:56 +01:00