On Thu, Jun 06, 2024 at 03:11:13PM +0200, Neil Armstrong wrote: > Add the missing call to typec_switch_put() when probe fails and > the ptn36502_remove() call is called. > > Fixes: 8e99dc783648 ("usb: typec: add support for PTN36502 redriver") > Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/mux/ptn36502.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/typec/mux/ptn36502.c b/drivers/usb/typec/mux/ptn36502.c > index 0ec86ef32a87..88136a6d6f31 100644 > --- a/drivers/usb/typec/mux/ptn36502.c > +++ b/drivers/usb/typec/mux/ptn36502.c > @@ -322,8 +322,10 @@ static int ptn36502_probe(struct i2c_client *client) > "Failed to acquire orientation-switch\n"); > > ret = regulator_enable(ptn->vdd18_supply); > - if (ret) > - return dev_err_probe(dev, ret, "Failed to enable vdd18\n"); > + if (ret) { > + ret = dev_err_probe(dev, ret, "Failed to enable vdd18\n"); > + goto err_switch_put; > + } > > ret = ptn36502_detect(ptn); > if (ret) > @@ -363,6 +365,9 @@ static int ptn36502_probe(struct i2c_client *client) > err_disable_regulator: > regulator_disable(ptn->vdd18_supply); > > +err_switch_put: > + typec_switch_put(ptn->typec_switch); > + > return ret; > } > > @@ -374,6 +379,8 @@ static void ptn36502_remove(struct i2c_client *client) > typec_switch_unregister(ptn->sw); > > regulator_disable(ptn->vdd18_supply); > + > + typec_switch_put(ptn->typec_switch); > } > > static const struct i2c_device_id ptn36502_table[] = { > > -- > 2.34.1 -- heikki