linux/drivers/pinctrl
Thierry Reding 84f28fc38d pinctrl: devicetree: Keep deferring even on timeout
driver_deferred_probe_check_state() may return -ETIMEDOUT instead of
-EPROBE_DEFER after all built-in drivers have been probed. This can
cause issues for built-in drivers that depend on resources provided by
loadable modules.

One such case happens on Tegra where I2C controllers are used during
early boot to set up the system PMIC, so the I2C driver needs to be a
built-in driver. At the same time, some instances of the I2C controller
depend on the DPAUX hardware for pinmuxing. Since the DPAUX is handled
by the display driver, which is usually not built-in, the pin control
states will not become available until after the root filesystem has
been mounted and the display driver loaded from it.

Fixes: bec6c0ecb2 ("pinctrl: Remove use of driver_deferred_probe_check_state_continue()")
Suggested-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20200825143348.1358679-1-thierry.reding@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2020-09-12 18:19:53 +02:00
..
actions pinctrl: actions: pinctrl-s900: Constify s900_padinfo[] 2020-09-12 12:15:19 +02:00
aspeed pinctrl: aspeed: Describe the heartbeat function on ball Y23 2020-07-16 10:32:05 +02:00
bcm pinctrl: bcm: pinctrl-iproc-gpio: Rename incorrectly documented function param 2020-07-16 15:12:38 +02:00
berlin pinctrl: berlin: as370: fix a typo s/spififib/spdifib 2019-10-16 14:12:55 +02:00
cirrus pinctrl: madera: Add missing call to pinctrl_unregister_mappings 2020-02-29 00:34:23 +01:00
freescale This is the bulk of the pin control changes for the v5.9 2020-08-09 12:52:28 -07:00
intel pinctrl: intel: Add Intel Emmitsburg pin controller support 2020-07-21 11:44:21 +03:00
mediatek pinctrl: mediatek: Add pinctrl driver for mt8192 2020-08-27 10:50:57 +02:00
meson pinctrl: meson: pinctrl-meson-a1: Remove unused const variable 'i2c_slave_groups' 2020-07-16 15:58:12 +02:00
mvebu pinctrl: armada-37xx: Add comment for pcie1_reset pin group 2020-08-27 10:25:17 +02:00
nomadik pinctrl: nomadik: Fix pull direction debug info 2020-08-27 10:25:17 +02:00
nuvoton pinctrl: nuvoton: npcm7xx: constify copied structure 2020-01-07 13:55:55 +01:00
pxa pinctrl: pxa: pxa2xx: Remove 'pxa2xx_pinctrl_exit()' which is unused and broken 2020-06-04 00:05:13 +02:00
qcom pinctrl: qcom: Add msm8226 pinctrl driver. 2020-08-27 10:27:14 +02:00
samsung pinctrl: samsung: Use bank name as irqchip name 2020-08-04 01:29:10 +02:00
sh-pfc pinctrl: sh-pfc: pfc-r8a77951: Add R8A774E1 PFC support 2020-07-14 14:57:53 +02:00
sirf pinctrl: sirf: pinctrl-atlas7: Fix a bunch of documentation misdemeanours 2020-07-16 15:12:38 +02:00
spear pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
sprd pinctrl: sprd: Fix the incorrect pull-up definition 2020-06-04 00:15:20 +02:00
stm32 pinctrl: stm32: use the hwspin_lock_timeout_in_atomic() API 2020-07-23 15:19:28 +02:00
sunxi pinctrl: sunxi: add support for the Allwinner A100 pin controller 2020-09-12 12:35:42 +02:00
tegra This is the bulk of the pin control changes for the v5.9 2020-08-09 12:52:28 -07:00
ti pinctl: ti: iodelay: Replace HTTP links with HTTPS ones 2020-07-20 16:15:59 +02:00
uniphier pinctrl: uniphier: Replace zero-length array with flexible-array member 2020-02-21 15:36:24 +01:00
visconti pinctrl: visconti: Add Toshiba Visconti SoCs pinctrl support 2020-09-12 12:25:53 +02:00
vt8500 pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
zte pinctrl: fix several typos 2020-04-28 13:26:49 +02:00
core.c pinctrl: core: print gpio in pins debugfs file 2020-08-04 01:29:10 +02:00
core.h pinctrl: Allow modules to use pinctrl_[un]register_mappings 2019-12-30 14:27:17 +01:00
devicetree.c pinctrl: devicetree: Keep deferring even on timeout 2020-09-12 18:19:53 +02:00
devicetree.h pinctrl: devicetree.c: remove orphan pinctrl_dt_has_hogs() 2019-10-04 23:26:23 +02:00
Kconfig pinctrl: rockchip: depend on OF 2020-09-12 13:20:42 +02:00
Makefile pinctrl: visconti: Add Toshiba Visconti SoCs pinctrl support 2020-09-12 12:25:53 +02:00
pinconf-generic.c pinctrl: pinconf-generic: Add function parameter description 'pctldev' 2020-07-16 15:12:39 +02:00
pinconf.c
pinconf.h
pinctrl-amd.c pinctrl: amd: Use irqchip template 2020-08-04 01:29:10 +02:00
pinctrl-amd.h pinctrl: amd: fix npins for uart0 in kerncz_groups 2020-06-22 09:35:39 +02:00
pinctrl-artpec6.c pinctrl: artpec6: fix __iomem on reg in set 2020-01-07 13:57:17 +01:00
pinctrl-as3722.c
pinctrl-at91-pio4.c pinctrl: pinctrl-at91-pio4: PM related attribute descriptions 2020-07-16 15:12:39 +02:00
pinctrl-at91.c pinctrl: pinctrl-at91: Demote non-kerneldoc header and complete another 2020-07-16 15:13:55 +02:00
pinctrl-at91.h
pinctrl-axp209.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-bm1880.c pinctrl: pinctrl-bm1880: Rename ill documented struct attribute entries 2020-07-16 15:13:55 +02:00
pinctrl-coh901.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-coh901.h
pinctrl-da850-pupd.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-da9062.c pinctrl: da9062: Fix error gpiolib.h path 2020-02-28 14:15:53 +01:00
pinctrl-digicolor.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-equilibrium.c pinctrl: Fix warning by adding missing MODULE_LICENSE 2019-11-28 09:12:43 +01:00
pinctrl-equilibrium.h pinctrl: Add pinmux & GPIO controller driver for a new SoC 2019-11-21 14:47:44 +01:00
pinctrl-falcon.c pinctrl: falcon: fix syntax error 2020-03-09 13:52:37 +01:00
pinctrl-gemini.c
pinctrl-ingenic.c pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ 2020-07-07 14:21:02 +02:00
pinctrl-lantiq.c pinctrl: fix several typos 2020-04-28 13:26:49 +02:00
pinctrl-lantiq.h
pinctrl-lpc18xx.c pinctrl: lpc18xx: Use fallthrough pseudo-keyword 2020-07-17 14:04:57 +02:00
pinctrl-max77620.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
pinctrl-mcp23s08_i2c.c pinctrl: mcp23s08: Split to three parts: core, I²C, SPI 2020-04-16 14:21:23 +02:00
pinctrl-mcp23s08_spi.c pinctrl: mcp23s08: Split to three parts: fix ptr_ret.cocci warnings 2020-06-16 10:19:53 +02:00
pinctrl-mcp23s08.c pinctrl: mcp23s08: Fix mcp23x17 precious range 2020-09-12 11:31:19 +02:00
pinctrl-mcp23s08.h pinctrl: mcp23s08: Split to three parts: core, I²C, SPI 2020-04-16 14:21:23 +02:00
pinctrl-ocelot.c pinctrl: ocelot: Add Sparx5 SoC support 2020-07-07 13:58:21 +02:00
pinctrl-oxnas.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-palmas.c
pinctrl-pic32.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-pic32.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 445 2019-06-05 17:37:18 +02:00
pinctrl-pistachio.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-rk805.c pinctrl: rk805: Constify rk805_gpio_cfgs 2020-05-12 13:35:33 +02:00
pinctrl-rockchip.c pinctrl: rockchip: Replace HTTP links with HTTPS ones 2020-07-17 13:36:25 +02:00
pinctrl-rza1.c pinctrl: rza1: Demote some kerneldoc headers and fix others 2020-07-16 09:56:24 +02:00
pinctrl-rza2.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-rzn1.c pinctrl: rzn1: Make array reg_drive static, makes object smaller 2019-10-14 12:11:12 +02:00
pinctrl-single.c pinctrl: single: Use fallthrough pseudo-keyword 2020-07-20 15:39:31 +02:00
pinctrl-st.c pinctrl: Use new GPIO_LINE_DIRECTION 2020-02-21 15:19:42 +01:00
pinctrl-stmfx.c pinctrl: stmfx: Use irqchip template 2020-08-04 01:29:10 +02:00
pinctrl-sx150x.c pinctrl: sx150x: Fix pinctrl enablement order bug 2020-09-12 18:11:09 +02:00
pinctrl-tb10x.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-u300.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c pinctrl: use devm_platform_ioremap_resource() to simplify code 2019-11-05 15:33:40 +01:00
pinctrl-zynq.c
pinmux.c pinctrl: pinmux: Add some missing parameter descriptions 2020-07-16 15:12:38 +02:00
pinmux.h pinctrl/gpio: Take MUX usage into account 2019-08-23 11:09:41 +02:00