On Fri, Apr 19, 2024 at 09:16:50PM +0000, Jameson Thies wrote: > Providing the number of known alternate modes allows user space to > determine when device registration has completed. Always register a > number of known alternate modes for the partner and cable plug, even > when the number of supported alternate modes is 0. > > Signed-off-by: Jameson Thies <jthies@xxxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > drivers/usb/typec/ucsi/ucsi.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c > index cd4c3b7a5d989..ea76d42fd1504 100644 > --- a/drivers/usb/typec/ucsi/ucsi.c > +++ b/drivers/usb/typec/ucsi/ucsi.c > @@ -812,10 +812,11 @@ static int ucsi_check_altmodes(struct ucsi_connector *con) > /* 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; > @@ -1138,7 +1139,7 @@ static int ucsi_check_connection(struct ucsi_connector *con) > static int ucsi_check_cable(struct ucsi_connector *con) > { > u64 command; > - int ret; > + int ret, num_plug_am; > > if (con->cable) > return 0; > @@ -1172,6 +1173,13 @@ static int ucsi_check_cable(struct ucsi_connector *con) > 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; > } > > -- > 2.44.0.769.g3c40516874-goog -- heikki