lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201117122137.GG3437448@kuha.fi.intel.com>
Date:   Tue, 17 Nov 2020 14:21:37 +0200
From:   Heikki Krogerus <heikki.krogerus@...ux.intel.com>
To:     Utkarsh Patel <utkarsh.h.patel@...el.com>
Cc:     linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org,
        pmalani@...omium.org, enric.balletbo@...labora.com,
        rajmohan.mani@...el.com, azhar.shaikh@...el.com
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@...ux.intel.com>
> Signed-off-by: Utkarsh Patel <utkarsh.h.patel@...el.com>
> 
> --
> 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:

			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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ