linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Refactor Aspeed USB vhub driver
@ 2021-11-30 11:38 Neal Liu
  2021-11-30 11:38 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Neal Liu @ 2021-11-30 11:38 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Joel Stanley, Andrew Jeffery,
	Cai Huoqing, Tao Ren, Julia Lawall, kernel test robot,
	Sasha Levin, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed
  Cc: Neal Liu, benh, BMC-SW

+Ben.
---

These patch series include 2 parts. One is adding more features
to pass USB30CV compliance test, the other is fixing hw issues.
More detail descriptions are included below patchsets.

Change since v1:
- Remove unnecessary configs for SET_CONFIGURATION.
- Separate supporting test mode to new patch.

*** BLURB HERE ***

Neal Liu (4):
  usb: aspeed-vhub: add qualifier descriptor
  usb: aspeed-vhub: support auto remote wakeup feature
  usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue
  usb: aspeed-vhub: support test mode feature

 drivers/usb/gadget/udc/aspeed-vhub/core.c |  3 ++
 drivers/usb/gadget/udc/aspeed-vhub/dev.c  | 18 +++++++--
 drivers/usb/gadget/udc/aspeed-vhub/ep0.c  |  7 ++++
 drivers/usb/gadget/udc/aspeed-vhub/hub.c  | 46 ++++++++++++++++++++---
 drivers/usb/gadget/udc/aspeed-vhub/vhub.h |  1 +
 5 files changed, 65 insertions(+), 10 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-11-30 11:38 [PATCH v2 0/4] Refactor Aspeed USB vhub driver Neal Liu
@ 2021-11-30 11:38 ` Neal Liu
  2021-11-30 11:42   ` Greg Kroah-Hartman
  2021-11-30 11:38 ` [PATCH v2 2/4] usb: aspeed-vhub: support auto remote wakeup feature Neal Liu
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Neal Liu @ 2021-11-30 11:38 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Joel Stanley, Andrew Jeffery,
	Cai Huoqing, Tao Ren, Julia Lawall, kernel test robot,
	Sasha Levin, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed
  Cc: Neal Liu, benh, BMC-SW

+Ben.
---

Support qualifier descriptor to pass USB30CV compliance test.

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.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 */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 2/4] usb: aspeed-vhub: support auto remote wakeup feature
  2021-11-30 11:38 [PATCH v2 0/4] Refactor Aspeed USB vhub driver Neal Liu
  2021-11-30 11:38 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
@ 2021-11-30 11:38 ` Neal Liu
  2021-11-30 11:38 ` [PATCH v2 3/4] usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue Neal Liu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 14+ messages in thread
From: Neal Liu @ 2021-11-30 11:38 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Joel Stanley, Andrew Jeffery,
	Cai Huoqing, Tao Ren, Julia Lawall, kernel test robot,
	Sasha Levin, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed
  Cc: Neal Liu, benh, BMC-SW

+Ben.
---

Remote wakeup signaling will be automatically issued
whenever any write commands has been received in suspend
state.

Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
---
 drivers/usb/gadget/udc/aspeed-vhub/core.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/gadget/udc/aspeed-vhub/core.c b/drivers/usb/gadget/udc/aspeed-vhub/core.c
index 7a635c499777..122ee7ef0b03 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/core.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/core.c
@@ -240,6 +240,9 @@ void ast_vhub_init_hw(struct ast_vhub *vhub)
 	if (vhub->force_usb1)
 		ctrl |= VHUB_CTRL_FULL_SPEED_ONLY;
 
+	/* Enable auto remote wakeup */
+	ctrl |= VHUB_CTRL_AUTO_REMOTE_WAKEUP;
+
 	ctrl |= VHUB_CTRL_UPSTREAM_CONNECT;
 	writel(ctrl, vhub->regs + AST_VHUB_CTRL);
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 3/4] usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue
  2021-11-30 11:38 [PATCH v2 0/4] Refactor Aspeed USB vhub driver Neal Liu
  2021-11-30 11:38 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
  2021-11-30 11:38 ` [PATCH v2 2/4] usb: aspeed-vhub: support auto remote wakeup feature Neal Liu
@ 2021-11-30 11:38 ` Neal Liu
  2021-11-30 11:38 ` [PATCH v2 4/4] usb: aspeed-vhub: support test mode feature Neal Liu
  2021-11-30 11:42 ` [PATCH v2 0/4] Refactor Aspeed USB vhub driver Greg Kroah-Hartman
  4 siblings, 0 replies; 14+ messages in thread
From: Neal Liu @ 2021-11-30 11:38 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Joel Stanley, Andrew Jeffery,
	Cai Huoqing, Tao Ren, Julia Lawall, kernel test robot,
	Sasha Levin, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed
  Cc: Neal Liu, benh, BMC-SW

+Ben.
---

If multiple devices in vhub are enumerated simultaneously, ep0 OUT
ack might received wrong data length. Using expected data length
instead.

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
---
 drivers/usb/gadget/udc/aspeed-vhub/ep0.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/usb/gadget/udc/aspeed-vhub/ep0.c b/drivers/usb/gadget/udc/aspeed-vhub/ep0.c
index 74ea36c19b1e..bea9cbb191a2 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/ep0.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/ep0.c
@@ -251,6 +251,13 @@ static void ast_vhub_ep0_do_receive(struct ast_vhub_ep *ep, struct ast_vhub_req
 		len = remain;
 		rc = -EOVERFLOW;
 	}
+
+	/* HW return wrong data len */
+	if (len < ep->ep.maxpacket && len != remain) {
+		EPDBG(ep, "using expected data len instead\n");
+		len = remain;
+	}
+
 	if (len && req->req.buf)
 		memcpy(req->req.buf + req->req.actual, ep->buf, len);
 	req->req.actual += len;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 4/4] usb: aspeed-vhub: support test mode feature
  2021-11-30 11:38 [PATCH v2 0/4] Refactor Aspeed USB vhub driver Neal Liu
                   ` (2 preceding siblings ...)
  2021-11-30 11:38 ` [PATCH v2 3/4] usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue Neal Liu
@ 2021-11-30 11:38 ` Neal Liu
  2021-11-30 11:42 ` [PATCH v2 0/4] Refactor Aspeed USB vhub driver Greg Kroah-Hartman
  4 siblings, 0 replies; 14+ messages in thread
From: Neal Liu @ 2021-11-30 11:38 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Joel Stanley, Andrew Jeffery,
	Cai Huoqing, Tao Ren, Julia Lawall, kernel test robot,
	Sasha Levin, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed
  Cc: Neal Liu, benh, BMC-SW

+Ben.
---

Support aspeed usb vhub set feature to test mode.

Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
---
 drivers/usb/gadget/udc/aspeed-vhub/dev.c | 18 ++++++++++++++----
 drivers/usb/gadget/udc/aspeed-vhub/hub.c | 22 ++++++++++++++++------
 2 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/udc/aspeed-vhub/dev.c b/drivers/usb/gadget/udc/aspeed-vhub/dev.c
index d918e8b2af3c..4462f4b73b04 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/dev.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/dev.c
@@ -110,15 +110,25 @@ static int ast_vhub_dev_feature(struct ast_vhub_dev *d,
 				u16 wIndex, u16 wValue,
 				bool is_set)
 {
+	u32 val;
+
 	DDBG(d, "%s_FEATURE(dev val=%02x)\n",
 	     is_set ? "SET" : "CLEAR", wValue);
 
-	if (wValue != USB_DEVICE_REMOTE_WAKEUP)
-		return std_req_driver;
+	if (wValue == USB_DEVICE_REMOTE_WAKEUP) {
+		d->wakeup_en = is_set;
+		return std_req_complete;
 
-	d->wakeup_en = is_set;
+	} else if (wValue == USB_DEVICE_TEST_MODE) {
+		val = readl(d->vhub->regs + AST_VHUB_CTRL);
+		val &= ~GENMASK(10, 8);
+		val |= VHUB_CTRL_SET_TEST_MODE((wIndex >> 8) & 0x7);
+		writel(val, d->vhub->regs + AST_VHUB_CTRL);
 
-	return std_req_complete;
+		return std_req_complete;
+	}
+
+	return std_req_driver;
 }
 
 static int ast_vhub_ep_feature(struct ast_vhub_dev *d,
diff --git a/drivers/usb/gadget/udc/aspeed-vhub/hub.c b/drivers/usb/gadget/udc/aspeed-vhub/hub.c
index 93f27a745760..e52805fbdebd 100644
--- a/drivers/usb/gadget/udc/aspeed-vhub/hub.c
+++ b/drivers/usb/gadget/udc/aspeed-vhub/hub.c
@@ -212,17 +212,27 @@ static int ast_vhub_hub_dev_feature(struct ast_vhub_ep *ep,
 				    u16 wIndex, u16 wValue,
 				    bool is_set)
 {
+	u32 val;
+
 	EPDBG(ep, "%s_FEATURE(dev val=%02x)\n",
 	      is_set ? "SET" : "CLEAR", wValue);
 
-	if (wValue != USB_DEVICE_REMOTE_WAKEUP)
-		return std_req_stall;
+	if (wValue == USB_DEVICE_REMOTE_WAKEUP) {
+		ep->vhub->wakeup_en = is_set;
+		EPDBG(ep, "Hub remote wakeup %s\n",
+		      is_set ? "enabled" : "disabled");
+		return std_req_complete;
 
-	ep->vhub->wakeup_en = is_set;
-	EPDBG(ep, "Hub remote wakeup %s\n",
-	      is_set ? "enabled" : "disabled");
+	} else if (wValue == USB_DEVICE_TEST_MODE) {
+		val = readl(ep->vhub->regs + AST_VHUB_CTRL);
+		val &= ~GENMASK(10, 8);
+		val |= VHUB_CTRL_SET_TEST_MODE((wIndex >> 8) & 0x7);
+		writel(val, ep->vhub->regs + AST_VHUB_CTRL);
 
-	return std_req_complete;
+		return std_req_complete;
+	}
+
+	return std_req_stall;
 }
 
 static int ast_vhub_hub_ep_feature(struct ast_vhub_ep *ep,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 0/4] Refactor Aspeed USB vhub driver
  2021-11-30 11:38 [PATCH v2 0/4] Refactor Aspeed USB vhub driver Neal Liu
                   ` (3 preceding siblings ...)
  2021-11-30 11:38 ` [PATCH v2 4/4] usb: aspeed-vhub: support test mode feature Neal Liu
@ 2021-11-30 11:42 ` Greg Kroah-Hartman
  2021-12-01  2:09   ` Neal Liu
  4 siblings, 1 reply; 14+ messages in thread
From: Greg Kroah-Hartman @ 2021-11-30 11:42 UTC (permalink / raw)
  To: Neal Liu
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, benh, BMC-SW

On Tue, Nov 30, 2021 at 07:38:43PM +0800, Neal Liu wrote:
> +Ben.
> ---
> 
> These patch series include 2 parts. One is adding more features
> to pass USB30CV compliance test, the other is fixing hw issues.
> More detail descriptions are included below patchsets.
> 
> Change since v1:
> - Remove unnecessary configs for SET_CONFIGURATION.
> - Separate supporting test mode to new patch.
> 
> *** BLURB HERE ***

No blurb?

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-11-30 11:38 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
@ 2021-11-30 11:42   ` Greg Kroah-Hartman
  2021-12-01  2:09     ` Neal Liu
  0 siblings, 1 reply; 14+ messages in thread
From: Greg Kroah-Hartman @ 2021-11-30 11:42 UTC (permalink / raw)
  To: Neal Liu
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, benh, BMC-SW

On Tue, Nov 30, 2021 at 07:38:44PM +0800, Neal Liu wrote:
> +Ben.
> ---
> 
> Support qualifier descriptor to pass USB30CV compliance test.
> 
> Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
> ---

The way you wrote this means that everything below the first --- line
will be cut off if it were to be applied.

That is not what you want.

Please fix.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [PATCH v2 0/4] Refactor Aspeed USB vhub driver
  2021-11-30 11:42 ` [PATCH v2 0/4] Refactor Aspeed USB vhub driver Greg Kroah-Hartman
@ 2021-12-01  2:09   ` Neal Liu
  0 siblings, 0 replies; 14+ messages in thread
From: Neal Liu @ 2021-12-01  2:09 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, benh, BMC-SW

> -----Original Message-----
> From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Sent: Tuesday, November 30, 2021 7:42 PM
> To: Neal Liu <neal_liu@aspeedtech.com>
> Cc: Felipe Balbi <balbi@kernel.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;
> benh@kernel.crashing.org; BMC-SW <BMC-SW@aspeedtech.com>
> Subject: Re: [PATCH v2 0/4] Refactor Aspeed USB vhub driver
> 
> On Tue, Nov 30, 2021 at 07:38:43PM +0800, Neal Liu wrote:
> > +Ben.
> > ---
> >
> > These patch series include 2 parts. One is adding more features to
> > pass USB30CV compliance test, the other is fixing hw issues.
> > More detail descriptions are included below patchsets.
> >
> > Change since v1:
> > - Remove unnecessary configs for SET_CONFIGURATION.
> > - Separate supporting test mode to new patch.
> >
> > *** BLURB HERE ***
> 
> No blurb?

It been cut off...
I'll fix it.
Thanks

- Neal

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-11-30 11:42   ` Greg Kroah-Hartman
@ 2021-12-01  2:09     ` Neal Liu
  0 siblings, 0 replies; 14+ messages in thread
From: Neal Liu @ 2021-12-01  2:09 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, benh, BMC-SW

> -----Original Message-----
> From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Sent: Tuesday, November 30, 2021 7:43 PM
> To: Neal Liu <neal_liu@aspeedtech.com>
> Cc: Felipe Balbi <balbi@kernel.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;
> benh@kernel.crashing.org; BMC-SW <BMC-SW@aspeedtech.com>
> Subject: Re: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
> 
> On Tue, Nov 30, 2021 at 07:38:44PM +0800, Neal Liu wrote:
> > +Ben.
> > ---
> >
> > Support qualifier descriptor to pass USB30CV compliance test.
> >
> > Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
> > ---
> 
> The way you wrote this means that everything below the first --- line will be cut
> off if it were to be applied.
> 
> That is not what you want.
> 
> Please fix.
> 
> thanks,
> 
> greg k-h

Yes, I'll fix it. Thanks

-Neal

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-12-01  6:18       ` Greg Kroah-Hartman
@ 2021-12-01  6:31         ` Neal Liu
  0 siblings, 0 replies; 14+ messages in thread
From: Neal Liu @ 2021-12-01  6:31 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, BMC-SW

> -----Original Message-----
> From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Sent: Wednesday, December 1, 2021 2:18 PM
> To: Neal Liu <neal_liu@aspeedtech.com>
> Cc: Felipe Balbi <balbi@kernel.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; BMC-SW
> <BMC-SW@aspeedtech.com>
> Subject: Re: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
> 
> On Wed, Dec 01, 2021 at 05:43:16AM +0000, Neal Liu wrote:
> > > -----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 <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; BMC-SW <BMC-SW@aspeedtech.com>
> > > 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.
> 
> Please put that information in the changelog text.
> 
> > 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.
> 
> Again, this type of information needs to go into the changelog text.
> 
> thanks,
> 
> greg k-h

Okay, I'll put it in next patch. Thanks

-Neal

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-12-01  5:43     ` Neal Liu
@ 2021-12-01  6:18       ` Greg Kroah-Hartman
  2021-12-01  6:31         ` Neal Liu
  0 siblings, 1 reply; 14+ messages in thread
From: Greg Kroah-Hartman @ 2021-12-01  6:18 UTC (permalink / raw)
  To: Neal Liu
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, BMC-SW

On Wed, Dec 01, 2021 at 05:43:16AM +0000, Neal Liu wrote:
> > -----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 <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; BMC-SW
> > <BMC-SW@aspeedtech.com>
> > 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.

Please put that information in the changelog text.

> 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.

Again, this type of information needs to go into the changelog text.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-11-30 11:45   ` Greg Kroah-Hartman
@ 2021-12-01  5:43     ` Neal Liu
  2021-12-01  6:18       ` Greg Kroah-Hartman
  0 siblings, 1 reply; 14+ messages in thread
From: Neal Liu @ 2021-12-01  5:43 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, BMC-SW

> -----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 <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; BMC-SW
> <BMC-SW@aspeedtech.com>
> 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@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.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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-11-30 10:42 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
@ 2021-11-30 11:45   ` Greg Kroah-Hartman
  2021-12-01  5:43     ` Neal Liu
  0 siblings, 1 reply; 14+ messages in thread
From: Greg Kroah-Hartman @ 2021-11-30 11:45 UTC (permalink / raw)
  To: Neal Liu
  Cc: Felipe Balbi, Joel Stanley, Andrew Jeffery, Cai Huoqing, Tao Ren,
	Julia Lawall, kernel test robot, Sasha Levin, linux-usb,
	linux-kernel, linux-arm-kernel, linux-aspeed, BMC-SW

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"?

> 
> 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.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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor
  2021-11-30 10:42 Neal Liu
@ 2021-11-30 10:42 ` Neal Liu
  2021-11-30 11:45   ` Greg Kroah-Hartman
  0 siblings, 1 reply; 14+ messages in thread
From: Neal Liu @ 2021-11-30 10:42 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman, Joel Stanley, Andrew Jeffery,
	Cai Huoqing, Tao Ren, Julia Lawall, kernel test robot,
	Sasha Levin, linux-usb, linux-kernel, linux-arm-kernel,
	linux-aspeed
  Cc: Neal Liu, BMC-SW

Support qualifier descriptor to pass USB30CV compliance test.

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.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 */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-12-01  6:31 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-30 11:38 [PATCH v2 0/4] Refactor Aspeed USB vhub driver Neal Liu
2021-11-30 11:38 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
2021-11-30 11:42   ` Greg Kroah-Hartman
2021-12-01  2:09     ` Neal Liu
2021-11-30 11:38 ` [PATCH v2 2/4] usb: aspeed-vhub: support auto remote wakeup feature Neal Liu
2021-11-30 11:38 ` [PATCH v2 3/4] usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue Neal Liu
2021-11-30 11:38 ` [PATCH v2 4/4] usb: aspeed-vhub: support test mode feature Neal Liu
2021-11-30 11:42 ` [PATCH v2 0/4] Refactor Aspeed USB vhub driver Greg Kroah-Hartman
2021-12-01  2:09   ` Neal Liu
  -- strict thread matches above, loose matches on Subject: below --
2021-11-30 10:42 Neal Liu
2021-11-30 10:42 ` [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Neal Liu
2021-11-30 11:45   ` Greg Kroah-Hartman
2021-12-01  5:43     ` Neal Liu
2021-12-01  6:18       ` Greg Kroah-Hartman
2021-12-01  6:31         ` Neal Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).