Message ID | 20250218082243.9318-1-johan+linaro@kernel.org |
---|---|
State | New |
Headers | show |
Series | usb: typec: ps883x: fix probe error handling | expand |
diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c index 10e407ab6b7f..ef086989231f 100644 --- a/drivers/usb/typec/mux/ps883x.c +++ b/drivers/usb/typec/mux/ps883x.c @@ -387,10 +387,11 @@ static int ps883x_retimer_probe(struct i2c_client *client) err_switch_unregister: typec_switch_unregister(retimer->sw); -err_vregs_disable: - ps883x_disable_vregs(retimer); err_clk_disable: clk_disable_unprepare(retimer->xo_clk); +err_vregs_disable: + gpiod_set_value(retimer->reset_gpio, 1); + ps883x_disable_vregs(retimer); err_mux_put: typec_mux_put(retimer->typec_mux); err_switch_put:
Fix the probe error handling to avoid unbalanced clock disable or leaving regulators on after probe failure. Note that the active-low reset pin should also be asserted to avoid leaking current after disabling the regulators. Fixes: 257a087c8b52 ("usb: typec: Add support for Parade PS8830 Type-C Retimer") Cc: Abel Vesa <abel.vesa@linaro.org> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> --- drivers/usb/typec/mux/ps883x.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)