[PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
From: Neal Liu <neal_liu@aspeedtech.com>
Date: 2021-12-01 05:43:37
Also in:
linux-arm-kernel, linux-usb, lkml
-----Original Message----- From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Sent: Tuesday, November 30, 2021 7:45 PM To: Neal Liu <neal_liu@aspeedtech.com> Cc: Felipe Balbi <balbi@kernel.org>; Joel Stanley <joel@jms.id.au>; Andrew Jeffery [off-list ref]; Cai Huoqing [off-list ref]; Tao Ren [off-list ref]; Julia Lawall [off-list ref]; kernel test robot [off-list ref]; Sasha Levin [off-list ref]; linux-usb at vger.kernel.org; linux-kernel at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux-aspeed at lists.ozlabs.org; BMC-SW [off-list ref] 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:quoted
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.
quoted
Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> --- 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.cb/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_descriptorast_vhub_dev_desc = {quoted
.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