> -----Original Message----- > From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Sent: Tuesday, November 30, 2021 7:45 PM > To: Neal Liu <neal_liu@xxxxxxxxxxxxxx> > Cc: Felipe Balbi <balbi@xxxxxxxxxx>; Joel Stanley <joel@xxxxxxxxx>; Andrew > Jeffery <andrew@xxxxxxxx>; Cai Huoqing <caihuoqing@xxxxxxxxx>; Tao Ren > <rentao.bupt@xxxxxxxxx>; Julia Lawall <julia.lawall@xxxxxxxx>; kernel test > robot <lkp@xxxxxxxxx>; Sasha Levin <sashal@xxxxxxxxxx>; > linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-aspeed@xxxxxxxxxxxxxxxx; BMC-SW > <BMC-SW@xxxxxxxxxxxxxx> > Subject: Re: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor > > On Tue, Nov 30, 2021 at 06:42:53PM +0800, Neal Liu wrote: > > Support qualifier descriptor to pass USB30CV compliance test. > > Please provide more information here in this description. This does not > explain what is happening here very well. > > Also, what is "USB30CV"? > USB 3 Command Verifier (USB3CV) is the official tool for USB 3 Hub and Device Framework testing. The USB3CV tool includes the xHCI Compliance Drivers for use with the USB3CV. We would like to pass USB3CV - Chapter 9 Test [USB 2 devices] - Device Qualifier Tests. A high-speed capable device that has different device information for full-speed and high-speed must have a Device Qualifier Descriptor. This patch is to support device qualifier, and the host will retrieve it through Get Descriptor request. > > > > Signed-off-by: Neal Liu <neal_liu@xxxxxxxxxxxxxx> > > --- > > drivers/usb/gadget/udc/aspeed-vhub/hub.c | 24 > > +++++++++++++++++++++++ drivers/usb/gadget/udc/aspeed-vhub/vhub.h | > > 1 + > > 2 files changed, 25 insertions(+) > > > > diff --git a/drivers/usb/gadget/udc/aspeed-vhub/hub.c > > b/drivers/usb/gadget/udc/aspeed-vhub/hub.c > > index b9960fdd8a51..93f27a745760 100644 > > --- a/drivers/usb/gadget/udc/aspeed-vhub/hub.c > > +++ b/drivers/usb/gadget/udc/aspeed-vhub/hub.c > > @@ -68,6 +68,18 @@ static const struct usb_device_descriptor > ast_vhub_dev_desc = { > > .bNumConfigurations = 1, > > }; > > > > +static const struct usb_qualifier_descriptor ast_vhub_qual_desc = { > > + .bLength = 0xA, > > + .bDescriptorType = USB_DT_DEVICE_QUALIFIER, > > + .bcdUSB = cpu_to_le16(0x0200), > > + .bDeviceClass = USB_CLASS_HUB, > > + .bDeviceSubClass = 0, > > + .bDeviceProtocol = 0, > > + .bMaxPacketSize0 = 64, > > + .bNumConfigurations = 1, > > + .bRESERVED = 0, > > Fields that are to be set to zero do not need to be set here, the compiler does it > for you. > > thanks, > > greg k-h This is more clear that we specify each member's value. Thanks -Neal