From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Neal Liu <neal_liu@aspeedtech.com>,
Felipe Balbi <balbi@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Joel Stanley <joel@jms.id.au>, Andrew Jeffery <andrew@aj.id.au>,
Cai Huoqing <caihuoqing@baidu.com>,
Tao Ren <rentao.bupt@gmail.com>,
Julia Lawall <julia.lawall@inria.fr>,
kernel test robot <lkp@intel.com>,
Sasha Levin <sashal@kernel.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-aspeed@lists.ozlabs.org
Cc: BMC-SW@aspeedtech.com
Subject: Re: [PATCH v3 1/4] usb: aspeed-vhub: add qualifier descriptor
Date: Thu, 09 Dec 2021 11:04:00 +1100 [thread overview]
Message-ID: <590efb96ddd139ed7b9ffcfef1910d8688c4a877.camel@kernel.crashing.org> (raw)
In-Reply-To: <20211208100545.1441397-2-neal_liu@aspeedtech.com>
On Wed, 2021-12-08 at 18:05 +0800, Neal Liu wrote:
> USB3 Command Verifier (USB3CV) is the official tool for
> USB3 Hub and Device Framework testing.
>
> 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 to pass
> USB3CV - Chapter 9 Test [USB 2 devices] - Device Qualifier Tests.
>
> Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
> ---
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> 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,
> +};
> +
> /*
> * Configuration descriptor: same comments as above
> * regarding handling USB1 mode.
> @@ -271,9 +283,11 @@ static int ast_vhub_rep_desc(struct ast_vhub_ep
> *ep,
> BUILD_BUG_ON(dsize > sizeof(vhub->vhub_dev_desc));
> BUILD_BUG_ON(USB_DT_DEVICE_SIZE >=
> AST_VHUB_EP0_MAX_PACKET);
> break;
> + case USB_DT_OTHER_SPEED_CONFIG:
> case USB_DT_CONFIG:
> dsize = AST_VHUB_CONF_DESC_SIZE;
> memcpy(ep->buf, &vhub->vhub_conf_desc, dsize);
> + ((u8 *)ep->buf)[1] = desc_type;
> BUILD_BUG_ON(dsize > sizeof(vhub->vhub_conf_desc));
> BUILD_BUG_ON(AST_VHUB_CONF_DESC_SIZE >=
> AST_VHUB_EP0_MAX_PACKET);
> break;
> @@ -283,6 +297,10 @@ static int ast_vhub_rep_desc(struct ast_vhub_ep
> *ep,
> BUILD_BUG_ON(dsize > sizeof(vhub->vhub_hub_desc));
> BUILD_BUG_ON(AST_VHUB_HUB_DESC_SIZE >=
> AST_VHUB_EP0_MAX_PACKET);
> break;
> + case USB_DT_DEVICE_QUALIFIER:
> + dsize = sizeof(vhub->vhub_qual_desc);
> + memcpy(ep->buf, &vhub->vhub_qual_desc, dsize);
> + break;
> default:
> return std_req_stall;
> }
> @@ -428,6 +446,8 @@ enum std_req_rc ast_vhub_std_hub_request(struct
> ast_vhub_ep *ep,
> switch (wValue >> 8) {
> case USB_DT_DEVICE:
> case USB_DT_CONFIG:
> + case USB_DT_DEVICE_QUALIFIER:
> + case USB_DT_OTHER_SPEED_CONFIG:
> return ast_vhub_rep_desc(ep, wValue >> 8,
> wLength);
> case USB_DT_STRING:
> @@ -1033,6 +1053,10 @@ static int ast_vhub_init_desc(struct ast_vhub
> *vhub)
> else
> ret = ast_vhub_str_alloc_add(vhub, &ast_vhub_strings);
>
> + /* Initialize vhub Qualifier Descriptor. */
> + memcpy(&vhub->vhub_qual_desc, &ast_vhub_qual_desc,
> + sizeof(vhub->vhub_qual_desc));
> +
> return ret;
> }
>
> diff --git a/drivers/usb/gadget/udc/aspeed-vhub/vhub.h
> b/drivers/usb/gadget/udc/aspeed-vhub/vhub.h
> index 87a5dea12d3c..6b9dfa6e10eb 100644
> --- a/drivers/usb/gadget/udc/aspeed-vhub/vhub.h
> +++ b/drivers/usb/gadget/udc/aspeed-vhub/vhub.h
> @@ -425,6 +425,7 @@ struct ast_vhub {
> struct ast_vhub_full_cdesc vhub_conf_desc;
> struct usb_hub_descriptor vhub_hub_desc;
> struct list_head vhub_str_desc;
> + struct usb_qualifier_descriptor vhub_qual_desc;
> };
>
> /* Standard request handlers result codes */
next prev parent reply other threads:[~2021-12-09 0:09 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 10:05 [PATCH v3 0/4] Refactor Aspeed USB vhub driver Neal Liu
2021-12-08 10:05 ` [PATCH v3 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
2021-12-09 0:04 ` Benjamin Herrenschmidt [this message]
2021-12-08 10:05 ` [PATCH v3 2/4] usb: aspeed-vhub: fix remote wakeup failure in iKVM use case Neal Liu
2021-12-09 0:05 ` Benjamin Herrenschmidt
2021-12-09 2:37 ` Neal Liu
2021-12-14 2:35 ` Benjamin Herrenschmidt
2021-12-20 2:22 ` Neal Liu
2021-12-27 2:07 ` Neal Liu
2022-01-10 6:29 ` Neal Liu
2021-12-13 14:01 ` Greg Kroah-Hartman
2021-12-08 10:05 ` [PATCH v3 3/4] usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue Neal Liu
2021-12-08 10:05 ` [PATCH v3 4/4] usb: aspeed-vhub: support test mode feature Neal Liu
2021-12-09 0:06 ` Benjamin Herrenschmidt
2021-12-08 12:21 ` [PATCH v3 0/4] Refactor Aspeed USB vhub driver Greg Kroah-Hartman
2021-12-09 2:39 ` Neal Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=590efb96ddd139ed7b9ffcfef1910d8688c4a877.camel@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=BMC-SW@aspeedtech.com \
--cc=andrew@aj.id.au \
--cc=balbi@kernel.org \
--cc=caihuoqing@baidu.com \
--cc=gregkh@linuxfoundation.org \
--cc=joel@jms.id.au \
--cc=julia.lawall@inria.fr \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lkp@intel.com \
--cc=neal_liu@aspeedtech.com \
--cc=rentao.bupt@gmail.com \
--cc=sashal@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox