platform/chrome: cros_ec_typec: Check for device within remove function
authorPrashant Malani <pmalani@chromium.org>
Fri, 19 Mar 2021 01:51:03 +0000 (18:51 -0700)
committerEnric Balletbo i Serra <enric.balletbo@collabora.com>
Tue, 30 Mar 2021 16:25:22 +0000 (18:25 +0200)
In a couple of call sites, we use the same pattern of checking for a
partner or cable device before attempting to remove it. Simplify this by
moving those checks into the remove functions.

Cc: Benson Leung <bleung@chromium.org>
Signed-off-by: Prashant Malani <pmalani@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Link: https://lore.kernel.org/r/20210319015103.3751672-1-pmalani@chromium.org
drivers/platform/chrome/cros_ec_typec.c

index 0811562..8e7fde3 100644 (file)
@@ -220,6 +220,9 @@ static void cros_typec_remove_partner(struct cros_typec_data *typec,
 {
        struct cros_typec_port *port = typec->ports[port_num];
 
+       if (!port->partner)
+               return;
+
        cros_typec_unregister_altmodes(typec, port_num, true);
 
        cros_typec_usb_disconnect_state(port);
@@ -235,6 +238,9 @@ static void cros_typec_remove_cable(struct cros_typec_data *typec,
 {
        struct cros_typec_port *port = typec->ports[port_num];
 
+       if (!port->cable)
+               return;
+
        cros_typec_unregister_altmodes(typec, port_num, false);
 
        typec_unregister_plug(port->plug);
@@ -253,11 +259,8 @@ static void cros_unregister_ports(struct cros_typec_data *typec)
                if (!typec->ports[i])
                        continue;
 
-               if (typec->ports[i]->partner)
-                       cros_typec_remove_partner(typec, i);
-
-               if (typec->ports[i]->cable)
-                       cros_typec_remove_cable(typec, i);
+               cros_typec_remove_partner(typec, i);
+               cros_typec_remove_cable(typec, i);
 
                usb_role_switch_put(typec->ports[i]->role_sw);
                typec_switch_put(typec->ports[i]->ori_sw);
@@ -647,11 +650,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)
-                       cros_typec_remove_partner(typec, port_num);
-
-               if (typec->ports[port_num]->cable)
-                       cros_typec_remove_cable(typec, port_num);
+               cros_typec_remove_partner(typec, port_num);
+               cros_typec_remove_cable(typec, port_num);
        }
 }