Message ID | 20240606-topic-sm8x50-upstream-retimer-broadcast-mode-v2-1-c6f6eae479c3@linaro.org |
---|---|
State | New |
Headers | show |
Series | usb: typec-mux: broadcast typec state to next mux for ptn36502 & nb7vpq904m retimers | expand |
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@linaro.org> > --- > drivers/usb/typec/mux/ptn36502.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
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@linaro.org> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > 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
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[] = {
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@linaro.org> --- drivers/usb/typec/mux/ptn36502.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)