From 834d1cb7ecf3f2812fc3c8cbe870cf2ad192f68e Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 18 Feb 2025 09:22:43 +0100 Subject: [PATCH] usb: typec: ps883x: fix probe error handling 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 Signed-off-by: Johan Hovold Link: https://lore.kernel.org/r/20250218082243.9318-1-johan+linaro@kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/usb/typec/mux/ps883x.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/mux/ps883x.c b/drivers/usb/typec/mux/ps883x.c index 10e407ab6b7f6..ef086989231f6 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: -- 2.49.0