platform/chrome: cros_ec_typec: Re-order connector configuration steps
[sfrench/cifs-2.6.git] / drivers / platform / chrome / cros_ec_typec.c
index 39989069decf7760ff44127d7d1b283642907eaf..31be31161350ed3cb7b006648d593ab0d3a23753 100644 (file)
@@ -545,6 +545,12 @@ static int cros_typec_configure_mux(struct cros_typec_data *typec, int port_num,
        if (ret)
                return ret;
 
+       ret = usb_role_switch_set_role(typec->ports[port_num]->role_sw,
+                                       pd_ctrl->role & PD_CTRL_RESP_ROLE_DATA
+                                       ? USB_ROLE_HOST : USB_ROLE_DEVICE);
+       if (ret)
+               return ret;
+
        if (mux_flags & USB_PD_MUX_USB4_ENABLED) {
                ret = cros_typec_enable_usb4(typec, port_num, pd_ctrl);
        } else if (mux_flags & USB_PD_MUX_TBT_COMPAT_ENABLED) {
@@ -564,12 +570,7 @@ static int cros_typec_configure_mux(struct cros_typec_data *typec, int port_num,
                ret = -ENOTSUPP;
        }
 
-       if (ret)
-               return ret;
-
-       return usb_role_switch_set_role(typec->ports[port_num]->role_sw,
-                                       pd_ctrl->role & PD_CTRL_RESP_ROLE_DATA
-                                       ? USB_ROLE_HOST : USB_ROLE_DEVICE);
+       return ret;
 }
 
 static int cros_typec_port_update(struct cros_typec_data *typec, int port_num)