mirror of
https://github.com/torvalds/linux
synced 2024-10-14 15:29:13 +00:00
phy: qcom-qmp-combo: fix type-c switch registration
Due to a long-standing issue in driver core, drivers may not probe defer after having registered child devices to avoid triggering a probe deferral loop (seefbc35b45f9
("Add documentation on meaning of -EPROBE_DEFER")). Move registration of the typec switch to after looking up clocks and other resources. Note that PHY creation can in theory also trigger a probe deferral when a 'phy' supply is used. This does not seem to affect the QMP PHY driver but the PHY subsystem should be reworked to address this (i.e. by separating initialisation and registration of the PHY). Fixes:2851117f8f
("phy: qcom-qmp-combo: Introduce orientation switching") Cc: stable@vger.kernel.org # 6.5 Cc: Bjorn Andersson <quic_bjorande@quicinc.com> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Reviewed-by: Bjorn Andersson <andersson@kernel.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Acked-by: Vinod Koul <vkoul@kernel.org> Acked-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20240217150228.5788-7-johan+linaro@kernel.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
d2d7b8e880
commit
47b412c1ea
|
@ -3562,10 +3562,6 @@ static int qmp_combo_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = qmp_combo_typec_switch_register(qmp);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Check for legacy binding with child nodes. */
|
||||
usb_np = of_get_child_by_name(dev->of_node, "usb3-phy");
|
||||
if (usb_np) {
|
||||
|
@ -3585,6 +3581,10 @@ static int qmp_combo_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
goto err_node_put;
|
||||
|
||||
ret = qmp_combo_typec_switch_register(qmp);
|
||||
if (ret)
|
||||
goto err_node_put;
|
||||
|
||||
ret = drm_aux_bridge_register(dev);
|
||||
if (ret)
|
||||
goto err_node_put;
|
||||
|
|
Loading…
Reference in a new issue