Re: [PATCH v2 8/9] usbip: vhci-hcd: Add USB3 port status bits

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

 



On 05/18/2017 04:08 AM, Yuyang Du wrote:
> From: Yuyang Du <yuyang.du@xxxxxxxxx>
> 
> As USB3 has (slightly) different bit meanings in the port
> status. Add a new status bit array for USB3.
> 
> Signed-off-by: Yuyang Du <yuyang.du@xxxxxxxxx>

Acked-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>

thanks,
-- Shuah

> ---
>  drivers/usb/usbip/vhci_hcd.c | 56 +++++++++++++++++++++++++++++++++++++++-----
>  1 file changed, 50 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
> index 43cacbc..a71254b 100644
> --- a/drivers/usb/usbip/vhci_hcd.c
> +++ b/drivers/usb/usbip/vhci_hcd.c
> @@ -66,7 +66,7 @@ static const char * const bit_desc[] = {
>  	"SUSPEND",		/*2*/
>  	"OVER_CURRENT",		/*3*/
>  	"RESET",		/*4*/
> -	"R5",			/*5*/
> +	"L1",			/*5*/
>  	"R6",			/*6*/
>  	"R7",			/*7*/
>  	"POWER",		/*8*/
> @@ -82,7 +82,7 @@ static const char * const bit_desc[] = {
>  	"C_SUSPEND",		/*18*/
>  	"C_OVER_CURRENT",	/*19*/
>  	"C_RESET",		/*20*/
> -	"R21",			/*21*/
> +	"C_L1",			/*21*/
>  	"R22",			/*22*/
>  	"R23",			/*23*/
>  	"R24",			/*24*/
> @@ -95,10 +95,49 @@ static const char * const bit_desc[] = {
>  	"R31",			/*31*/
>  };
>  
> -static void dump_port_status_diff(u32 prev_status, u32 new_status)
> +static const char * const bit_desc_ss[] = {
> +	"CONNECTION",		/*0*/
> +	"ENABLE",		/*1*/
> +	"SUSPEND",		/*2*/
> +	"OVER_CURRENT",		/*3*/
> +	"RESET",		/*4*/
> +	"L1",			/*5*/
> +	"R6",			/*6*/
> +	"R7",			/*7*/
> +	"R8",			/*8*/
> +	"POWER",		/*9*/
> +	"HIGHSPEED",		/*10*/
> +	"PORT_TEST",		/*11*/
> +	"INDICATOR",		/*12*/
> +	"R13",			/*13*/
> +	"R14",			/*14*/
> +	"R15",			/*15*/
> +	"C_CONNECTION",		/*16*/
> +	"C_ENABLE",		/*17*/
> +	"C_SUSPEND",		/*18*/
> +	"C_OVER_CURRENT",	/*19*/
> +	"C_RESET",		/*20*/
> +	"C_BH_RESET",		/*21*/
> +	"C_LINK_STATE",		/*22*/
> +	"C_CONFIG_ERROR",	/*23*/
> +	"R24",			/*24*/
> +	"R25",			/*25*/
> +	"R26",			/*26*/
> +	"R27",			/*27*/
> +	"R28",			/*28*/
> +	"R29",			/*29*/
> +	"R30",			/*30*/
> +	"R31",			/*31*/
> +};
> +
> +static void dump_port_status_diff(u32 prev_status, u32 new_status, bool usb3)
>  {
>  	int i = 0;
>  	u32 bit = 1;
> +	const char * const *desc = bit_desc;
> +
> +	if (usb3)
> +		desc = bit_desc_ss;
>  
>  	pr_debug("status prev -> new: %08x -> %08x\n", prev_status, new_status);
>  	while (bit) {
> @@ -113,8 +152,12 @@ static void dump_port_status_diff(u32 prev_status, u32 new_status)
>  		else
>  			change = ' ';
>  
> -		if (prev || new)
> -			pr_debug(" %c%s\n", change, bit_desc[i]);
> +		if (prev || new) {
> +			pr_debug(" %c%s\n", change, desc[i]);
> +
> +			if (bit == 1) /* USB_PORT_STAT_CONNECTION */
> +				pr_debug(" %c%s\n", change, "USB_PORT_STAT_SPEED_5GBPS");
> +		}
>  		bit <<= 1;
>  		i++;
>  	}
> @@ -563,7 +606,8 @@ static int vhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
>  		/* Only dump valid port status */
>  		if (rhport >= 0) {
>  			dump_port_status_diff(prev_port_status[rhport],
> -					      vhci_hcd->port_status[rhport]);
> +					      vhci_hcd->port_status[rhport],
> +					      hcd->speed == HCD_USB3);
>  		}
>  	}
>  	usbip_dbg_vhci_rh(" bye\n");
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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

  Powered by Linux