On 05/18/2017 04:08 AM, Yuyang Du wrote:
> From: Yuyang Du <yuyang...@intel.com>
> 
> 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...@intel.com>

Acked-by: Shuah Khan <shua...@osg.samsung.com>

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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to