On Mon, Mar 16, 2020 at 01:35:49PM -0700, Mayank Rana wrote: > Currently UCSI framework doesn't update USB data role when partner type > is reported as power cable or power cable with ufp connected. This > results into no USB host mode functionality. This is valid usecase where > user wants to use legacy type c power cable with type a female connector > to attach different USB devices like mouse, thumb drive etc. Hence update > USB data role as host when partner type is reported as power cable or > power cable with ufp connected. > > Signed-off-by: Mayank Rana <mrana@xxxxxxxxxxxxxx> I've now applied this to my ucsi branch: https://github.com/krohei/linux/commit/fc5a9939c9b8bded598c39339992be470563604f I will send it to Greg together with the other changes I have for this driver next week. > --- > drivers/usb/typec/ucsi/ucsi.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c > index d5a6aac..ce62732 100644 > --- a/drivers/usb/typec/ucsi/ucsi.c > +++ b/drivers/usb/typec/ucsi/ucsi.c > @@ -558,6 +558,8 @@ static void ucsi_partner_change(struct ucsi_connector *con) > > switch (UCSI_CONSTAT_PARTNER_TYPE(con->status.flags)) { > case UCSI_CONSTAT_PARTNER_TYPE_UFP: > + case UCSI_CONSTAT_PARTNER_TYPE_CABLE: > + case UCSI_CONSTAT_PARTNER_TYPE_CABLE_AND_UFP: > typec_set_data_role(con->port, TYPEC_HOST); > break; > case UCSI_CONSTAT_PARTNER_TYPE_DFP: > @@ -619,6 +621,8 @@ static void ucsi_handle_connector_change(struct work_struct *work) > > switch (UCSI_CONSTAT_PARTNER_TYPE(con->status.flags)) { > case UCSI_CONSTAT_PARTNER_TYPE_UFP: > + case UCSI_CONSTAT_PARTNER_TYPE_CABLE: > + case UCSI_CONSTAT_PARTNER_TYPE_CABLE_AND_UFP: > typec_set_data_role(con->port, TYPEC_HOST); > break; > case UCSI_CONSTAT_PARTNER_TYPE_DFP: > @@ -919,6 +923,8 @@ static int ucsi_register_port(struct ucsi *ucsi, int index) > > switch (UCSI_CONSTAT_PARTNER_TYPE(con->status.flags)) { > case UCSI_CONSTAT_PARTNER_TYPE_UFP: > + case UCSI_CONSTAT_PARTNER_TYPE_CABLE: > + case UCSI_CONSTAT_PARTNER_TYPE_CABLE_AND_UFP: > typec_set_data_role(con->port, TYPEC_HOST); > break; > case UCSI_CONSTAT_PARTNER_TYPE_DFP: thanks, -- heikki