Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: typec-mux: nb7vpq904m: unregister typec switch on probe error and remove

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@linaro.org>
Fixes: 88d8f3ac9c67 ("usb: typec: add support for the nb7vpq904m Type-C Linear Redriver")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240606-topic-sm8x50-upstream-retimer-broadcast-mode-v2-2-c6f6eae479c3@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Neil Armstrong and committed by
Greg Kroah-Hartman
74b64e76 2be53b04

+6 -1
+6 -1
drivers/usb/typec/mux/nb7vpq904m.c
··· 415 415 416 416 ret = nb7vpq904m_parse_data_lanes_mapping(nb7); 417 417 if (ret) 418 - return ret; 418 + goto err_switch_put; 419 419 420 420 ret = regulator_enable(nb7->vcc_supply); 421 421 if (ret) ··· 458 458 gpiod_set_value(nb7->enable_gpio, 0); 459 459 regulator_disable(nb7->vcc_supply); 460 460 461 + err_switch_put: 462 + typec_switch_put(nb7->typec_switch); 463 + 461 464 return ret; 462 465 } 463 466 ··· 474 471 gpiod_set_value(nb7->enable_gpio, 0); 475 472 476 473 regulator_disable(nb7->vcc_supply); 474 + 475 + typec_switch_put(nb7->typec_switch); 477 476 } 478 477 479 478 static const struct i2c_device_id nb7vpq904m_table[] = {