Re: [RFC PATCH 03/14] usb: composite: Properly report lsm

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

 



Hi,

Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> writes:
> Use the max lane speed mantisa value from the gadget and report to the
> device descriptor if available.
>
> Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx>
> ---
>  drivers/usb/gadget/composite.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
> index a4de5a8c0f19..cd38078d6a42 100644
> --- a/drivers/usb/gadget/composite.c
> +++ b/drivers/usb/gadget/composite.c
> @@ -682,6 +682,11 @@ static int bos_desc(struct usb_composite_dev *cdev)
>  	/* The SuperSpeedPlus USB Device Capability descriptor */
>  	if (gadget_is_superspeed_plus(cdev->gadget)) {
>  		struct usb_ssp_cap_descriptor *ssp_cap;
> +		int lsm = 10;
> +
> +		if (cdev->gadget->ops->udc_set_sublink_attr &&
> +		    cdev->gadget->max_lsm)
> +			lsm = cdev->gadget->max_lsm;
>  
>  		ssp_cap = cdev->req->buf + le16_to_cpu(bos->wTotalLength);
>  		bos->bNumDeviceCaps++;
> @@ -709,20 +714,21 @@ static int bos_desc(struct usb_composite_dev *cdev)
>  		 *   ST  = Symmetric, RX
>  		 *   LSE =  3 (Gbps)
>  		 *   LP  =  1 (SuperSpeedPlus)
> -		 *   LSM = 10 (10 Gbps)
> +		 *   LSM =  5 or 10
>  		 */
>  		ssp_cap->bmSublinkSpeedAttr[0] =
> -			cpu_to_le32((3 << 4) | (1 << 14) | (0xa << 16));
> +			cpu_to_le32((3 << 4) | (1 << 14) | (lsm << 16));

while at that, can we get rid of the magic constants?

>  		ssp_cap->bmSublinkSpeedAttr[1] =
>  			cpu_to_le32((3 << 4) | (1 << 14) |
> -				    (0xa << 16) | (1 << 7));
> +				    (lsm << 16) | (1 << 7));

ditto.

-- 
balbi

Attachment: signature.asc
Description: PGP signature


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

  Powered by Linux