[PATCH 0/2] phy: qcom: qmp-combo: fix forced com_init() error handling
From: Oleg Keri
Date: Wed Sep 09 2026 - 11:26:14 EST
Two pre-existing problems in the typec_switch and typec_mux callbacks,
both on the force=true path that tears the common block down and brings it
back up. Found while looking at that code for
https://lore.kernel.org/all/20260909140345.4239-1-okerixx@xxxxxxxxx/
which is an unrelated fix to the same two functions and does not depend on
these; they can be applied in either order.
Patch 1 stops a forced qmp_combo_com_init() failure from dropping an
init_count reference it never took, which drives the counter negative and
makes qmp_combo_com_exit() return early for the rest of the boot.
Patch 2 stops both callbacks from carrying on to write PHY registers after
the bringup has failed and left the clocks disabled.
Neither is easy to trigger deliberately - both need qmp_combo_com_init() to
fail - so they are found by inspection rather than reproduced. The tree
they were written against is exercised daily on a Lenovo Yoga Slim 7x Gen 11
(Snapdragon X2 Elite), where the typec callbacks run on every USB-C
orientation and altmode change.
Oleg Keri (2):
phy: qcom: qmp-combo: do not decrement init_count on a forced init
failure
phy: qcom: qmp-combo: check qmp_combo_com_init() in the typec
callbacks
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
--
2.55.0
base-commit: df2908090cda368b01ff43709f51890076c56157