Type C cable objects are independent of partner objects. Don't return
if a partner object is not registered (mostly in the case of an error
while registering a partner), and instead treat the removal of partner
and cable objects on disconnect independently.

Cc: Benson Leung <ble...@chromium.org>
Signed-off-by: Prashant Malani <pmal...@chromium.org>
---

This patch should be applied on top of the series[1] which adds support
for cable & plugs to cros-ec-typec.

[1]
https://lore.kernel.org/linux-usb/20201116201150.2919178-1-pmal...@chromium.org/

 drivers/platform/chrome/cros_ec_typec.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/platform/chrome/cros_ec_typec.c 
b/drivers/platform/chrome/cros_ec_typec.c
index 65c5d0090ccd..8294486908ca 100644
--- a/drivers/platform/chrome/cros_ec_typec.c
+++ b/drivers/platform/chrome/cros_ec_typec.c
@@ -626,9 +626,8 @@ static void cros_typec_set_port_params_v1(struct 
cros_typec_data *typec,
                                 "Failed to register partner on port: %d\n",
                                 port_num);
        } else {
-               if (!typec->ports[port_num]->partner)
-                       return;
-               cros_typec_remove_partner(typec, port_num);
+               if (typec->ports[port_num]->partner)
+                       cros_typec_remove_partner(typec, port_num);
 
                if (typec->ports[port_num]->cable)
                        cros_typec_remove_cable(typec, port_num);
-- 
2.29.2.454.gaff20da3a2-goog

Reply via email to