Hi Heikki, > -----Original Message----- > From: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > Sent: Tuesday, November 17, 2020 4:22 AM > To: Patel, Utkarsh H <utkarsh.h.patel@xxxxxxxxx> > Cc: linux-kernel@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; > pmalani@xxxxxxxxxxxx; enric.balletbo@xxxxxxxxxxxxx; Mani, Rajmohan > <rajmohan.mani@xxxxxxxxx>; Shaikh, Azhar <azhar.shaikh@xxxxxxxxx> > Subject: Re: [PATCH v2 7/8] usb: typec: intel_pmc_mux: Configure active cable > properties for USB4 > > On Fri, Nov 13, 2020 at 12:25:02PM -0800, Utkarsh Patel wrote: > > Value received as a part of Thunderbolt 3 cable discover mode VDO > > needs to be configured in the USB4 mode for the Thunderbolt rounded > > support and active cable plug link training. > > > > Suggested-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > > Signed-off-by: Utkarsh Patel <utkarsh.h.patel@xxxxxxxxx> > > > > -- > > Changes in v2: > > - No change. > > -- > > --- > > drivers/usb/typec/mux/intel_pmc_mux.c | 18 +++++++++++++++--- > > 1 file changed, 15 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c > > b/drivers/usb/typec/mux/intel_pmc_mux.c > > index aa3211f1c4c3..61feb358aad3 100644 > > --- a/drivers/usb/typec/mux/intel_pmc_mux.c > > +++ b/drivers/usb/typec/mux/intel_pmc_mux.c > > @@ -295,6 +295,7 @@ pmc_usb_mux_usb4(struct pmc_usb_port *port, > struct > > typec_mux_state *state) { > > struct enter_usb_data *data = state->data; > > struct altmode_req req = { }; > > + u8 cable_rounded; > > u8 cable_speed; > > > > if (IOM_PORT_ACTIVITY_IS(port->iom_status, TBT) || @@ -308,9 > +309,6 > > @@ pmc_usb_mux_usb4(struct pmc_usb_port *port, struct > typec_mux_state *state) > > /* USB4 Mode */ > > req.mode_data = PMC_USB_ALTMODE_FORCE_LSR; > > > > - if (data->active_link_training) > > - req.mode_data |= PMC_USB_ALTMODE_ACTIVE_LINK; > > - > > req.mode_data |= (port->orientation - 1) << > PMC_USB_ALTMODE_ORI_SHIFT; > > req.mode_data |= (port->role - 1) << PMC_USB_ALTMODE_UFP_SHIFT; > > > > @@ -322,6 +320,20 @@ pmc_usb_mux_usb4(struct pmc_usb_port *port, > struct typec_mux_state *state) > > fallthrough; > > default: > > req.mode_data |= PMC_USB_ALTMODE_ACTIVE_CABLE; > > + > > + if (data->tbt_cable_vdo) { > > + /* Active Thunderbolt 3 cable */ > > + if (data->tbt_cable_vdo & > TBT_CABLE_LINK_TRAINING) > > + req.mode_data |= > PMC_USB_ALTMODE_ACTIVE_LINK; > > + > > + cable_rounded = > > + TBT_CABLE_ROUNDED_SUPPORT(data- > >tbt_cable_vdo); > > No need for the newline: Ack > > cable_rounded = > TBT_CABLE_ROUNDED_SUPPORT(data->tbt_cable_vdo); > > > + req.mode_data |= > PMC_USB_ALTMODE_TBT_GEN(cable_rounded); > > + } else { > > + /* Active USB4 cable */ > > + req.mode_data |= PMC_USB_ALTMODE_ACTIVE_LINK > | > > + PMC_USB_ALTMODE_TBT_GEN(1); > > + } > > break; > > } > > thanks, > > -- > Heikki Sincerely, Utkarsh Patel.