mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 08:39:08 -04:00
usb: typec-mux: ptn36502: unregister typec switch on probe error and remove
Add the missing call to typec_switch_put() when probe fails and
the ptn36502_remove() call is called.
Fixes: 8e99dc7836 ("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>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240606-topic-sm8x50-upstream-retimer-broadcast-mode-v2-1-c6f6eae479c3@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2e031f5065
commit
2be53b0436
@@ -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[] = {
|
||||
|
||||
Reference in New Issue
Block a user