diff options
author | Johan Hovold <johan+linaro@kernel.org> | 2025-02-18 09:22:43 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-02-19 15:16:02 +0100 |
commit | 834d1cb7ecf3f2812fc3c8cbe870cf2ad192f68e (patch) | |
tree | 564178808a75bc8d7a3847638439ab53972f94d4 /drivers/usb/typec | |
parent | ba6e518d136b25b340ddedb97a79db5642e4ed7f (diff) |
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 <abel.vesa@linaro.org>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20250218082243.9318-1-johan+linaro@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/typec')
-rw-r--r-- | drivers/usb/typec/mux/ps883x.c | 5 |
1 files changed, 3 insertions, 2 deletions
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: |