[PATCH v2 2/4] usb: typec-mux: nb7vpq904m: unregister typec switch on probe error and remove

From: Neil Armstrong
Date: Thu Jun 06 2024 - 09:11:56 EST


Add the missing call to typec_switch_put() when probe fails and
the nb7vpq904m_remove() call is called.

Fixes: 348359e7c232 ("usb: typec: nb7vpq904m: Add an error handling path in nb7vpq904m_probe()")
Signed-off-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
---
drivers/usb/typec/mux/nb7vpq904m.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/typec/mux/nb7vpq904m.c b/drivers/usb/typec/mux/nb7vpq904m.c
index ed93194b16cf..569f1162ee2e 100644
--- a/drivers/usb/typec/mux/nb7vpq904m.c
+++ b/drivers/usb/typec/mux/nb7vpq904m.c
@@ -415,7 +415,7 @@ static int nb7vpq904m_probe(struct i2c_client *client)

ret = nb7vpq904m_parse_data_lanes_mapping(nb7);
if (ret)
- return ret;
+ goto err_switch_put;

ret = regulator_enable(nb7->vcc_supply);
if (ret)
@@ -458,6 +458,9 @@ static int nb7vpq904m_probe(struct i2c_client *client)
gpiod_set_value(nb7->enable_gpio, 0);
regulator_disable(nb7->vcc_supply);

+err_switch_put:
+ typec_switch_put(nb7->typec_switch);
+
return ret;
}

@@ -471,6 +474,8 @@ static void nb7vpq904m_remove(struct i2c_client *client)
gpiod_set_value(nb7->enable_gpio, 0);

regulator_disable(nb7->vcc_supply);
+
+ typec_switch_put(nb7->typec_switch);
}

static const struct i2c_device_id nb7vpq904m_table[] = {

--
2.34.1