RE: [PATCH v2 7/8] usb: typec: intel_pmc_mux: Configure active cable properties for USB4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux