/* Ignoring the errors in this case. */
        if (con->partner_altmode[0]) {
                num_partner_am = ucsi_get_num_altmode(con->partner_altmode);
-               if (num_partner_am > 0)
-                       typec_partner_set_num_altmodes(con->partner, num_partner_am);
+               typec_partner_set_num_altmodes(con->partner, num_partner_am);
                ucsi_altmode_update_active(con);
                return 0;
+       } else {
+               typec_partner_set_num_altmodes(con->partner, 0);
        }
 
        return ret;
 static int ucsi_check_cable(struct ucsi_connector *con)
 {
        u64 command;
-       int ret;
+       int ret, num_plug_am;
 
        if (con->cable)
                return 0;
                        return ret;
        }
 
+       if (con->plug_altmode[0]) {
+               num_plug_am = ucsi_get_num_altmode(con->plug_altmode);
+               typec_plug_set_num_altmodes(con->plug, num_plug_am);
+       } else {
+               typec_plug_set_num_altmodes(con->plug, 0);
+       }
+
        return 0;
 }