From patchwork Tue Nov 30 11:38:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Liu X-Patchwork-Id: 12694176 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 24E59C433F5 for ; Tue, 30 Nov 2021 14:09:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Im0D069IK56OsA7ZJX+ChhljFAxbCVFN/p9KZkbufG4=; b=hi3JBIifFbT/zV TURNEQ7GoD5lUhGqc9vc4Qe66P9HXvAP8S4NRK3Gg7ZQknT2a/rErGEJi60qwwm5PrQBryOEP10SR hUnvgEWThw98ssSup5WulzW8AtiRpIVp3sdChbtcadBZTRpj80wKZBn4YvrxGKu3H4/9FPdmkzxS4 xk6uhkigjhRboh1hU6QCrYBq8wPxoo+cR6j+8jTiyrCCJz0l63wo0sweMI6EHbUYcr9rKadkiAoZ2 S6jQs9y6x1vSqMiLsEPRPOSL75GheRqGRayhW7lnu+n1fm2WdgPoLs7FXBgCos0qOI03cZi+kSJlw STWN/3SX+ny6dEmZwCAQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3nL-005UOo-CZ; Tue, 30 Nov 2021 14:07:43 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3lw-005TvO-Tb for linux-arm-kernel@bombadil.infradead.org; Tue, 30 Nov 2021 14:06:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:Content-Transfer-Encoding :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=Lu3wFiEmdmplZXDEN45dZlaps6Fc+7zj40+lQUq9L3U=; b=GFgEp3wsB6gPPlbrADYHvWEb3Y C6ipoqxBoXkpfW6cMyE4VPbewMhGqUx7mjxXg/9vnqO5UiTmdj6PFAvPEl4oIqKwOmqmGZOnsJDI+ Wvp8vG2ScI+XYOQOIdnV8mPySqj0BXr2SWKLz5WGlvivKMetKoIFUnv92flMlO2R/jjDn3Kf/ErP+ UO+0caxci1Fp/YK6VrIf9nz0HfXM0t2uLlZ04uFlCE/Odt+Gz0HKB+DwRrGHbMSgx5QgO9aqovaqq RPuSVJn6nqGYKkVHtpd+CDHvnbGZNs2F+V898i5ekoojuBfruUAIlGLP6w3StYFqo7NgjGzN2/CyT AJe3xdMA==; Received: from twspam01.aspeedtech.com ([211.20.114.71]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms1U6-001RUG-TO for linux-arm-kernel@lists.infradead.org; Tue, 30 Nov 2021 11:39:45 +0000 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 1AUBEMLr082287; Tue, 30 Nov 2021 19:14:22 +0800 (GMT-8) (envelope-from neal_liu@aspeedtech.com) Received: from localhost.localdomain (192.168.10.10) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 30 Nov 2021 19:38:54 +0800 From: Neal Liu To: Felipe Balbi , Greg Kroah-Hartman , Joel Stanley , Andrew Jeffery , Cai Huoqing , Tao Ren , Julia Lawall , "kernel test robot" , Sasha Levin , , , , CC: Neal Liu , , Subject: [PATCH v2 1/4] usb: aspeed-vhub: add qualifier descriptor Date: Tue, 30 Nov 2021 19:38:44 +0800 Message-ID: <20211130113847.1405873-2-neal_liu@aspeedtech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211130113847.1405873-1-neal_liu@aspeedtech.com> References: <20211130113847.1405873-1-neal_liu@aspeedtech.com> MIME-Version: 1.0 X-Originating-IP: [192.168.10.10] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 1AUBEMLr082287 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211130_113943_541684_BAC149FD X-CRM114-Status: GOOD ( 12.44 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org +Ben. --- Support qualifier descriptor to pass USB30CV compliance test. Signed-off-by: Neal Liu --- 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 */ From patchwork Tue Nov 30 11:38:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Liu X-Patchwork-Id: 12694181 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 436CCC433F5 for ; Tue, 30 Nov 2021 14:12:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QTPq+sbdA+Ea5SVmq0KMqRzpfQ+r3VbchfpXGnaB680=; b=wl6miY/RyG1jvC 1GeftRRa7iKse/T4xbDxhXHyeKjdAI8YHULFBbMRyKhvdIDdg6R+r5SGYQyvprwLuK45DS4FaOAs5 2bJjLq6MJMMhzWNesMWXV3epgHuZJ3MMBO4cTJWTiNK0R4xAXJaHZo+wkG/yUouO1ljKxacFzRhMT 4wry+eMGhItXN/DDo8++vTmLCajnUXT+Mr45MAUiTR5/P1BV3i9o53F2FayU6ryeKQ2W/w5CcesC7 FJmTQW+0TtysicRgrhv/SZFp9dswtX3AcYsfGeOHPhRu3+1v4lS3O2IzF+BIf0x+WDQc9uRUYMdNZ XCY2d31Iksn38HF5SfQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3qD-005VoN-EA; Tue, 30 Nov 2021 14:10:41 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3m4-005Txu-UT for linux-arm-kernel@bombadil.infradead.org; Tue, 30 Nov 2021 14:06:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:Content-Transfer-Encoding :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=7G3gnhqFtQrsWXQ9fAKZdeRy8ZOh3MoeUZj3sA3xHvM=; b=EMp1rjF6fuimy65t4GhAnErM/f apt/ntfsa8CJ0fhloqbEumbH8VStrX3BuiCA81H1153oI0n74VpBO6nkDp7EDwgrH8vd2C/TECcTA X+hzkHGnCzG8UuU3HmknHmAWZxH1BqMv5cX7ph4ws3HnpJlGNHtAplUYSqqO9UStgJm9VmnKjdC+I eCKf4wFNnUL2WhZd6ScOYAjGn1G9/LzQqAtojUjMPxZlNni0zmwn5PJIcISPAIjZF1iSf5760NqTz MDLFbebuEQmL70aoZpVbWv40PkTAiEy7Th91kyVw/Z9Sb4Wvddexwtmo0efRyJOl+pYxCZcigISuk QR3eTvhw==; Received: from twspam01.aspeedtech.com ([211.20.114.71]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms1Tr-001RTX-Uz for linux-arm-kernel@lists.infradead.org; Tue, 30 Nov 2021 11:39:30 +0000 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 1AUBEM3p082288; Tue, 30 Nov 2021 19:14:22 +0800 (GMT-8) (envelope-from neal_liu@aspeedtech.com) Received: from localhost.localdomain (192.168.10.10) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 30 Nov 2021 19:38:54 +0800 From: Neal Liu To: Felipe Balbi , Greg Kroah-Hartman , Joel Stanley , Andrew Jeffery , Cai Huoqing , Tao Ren , Julia Lawall , "kernel test robot" , Sasha Levin , , , , CC: Neal Liu , , Subject: [PATCH v2 2/4] usb: aspeed-vhub: support auto remote wakeup feature Date: Tue, 30 Nov 2021 19:38:45 +0800 Message-ID: <20211130113847.1405873-3-neal_liu@aspeedtech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211130113847.1405873-1-neal_liu@aspeedtech.com> References: <20211130113847.1405873-1-neal_liu@aspeedtech.com> MIME-Version: 1.0 X-Originating-IP: [192.168.10.10] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 1AUBEM3p082288 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211130_113928_871939_501C30A7 X-CRM114-Status: UNSURE ( 9.24 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org +Ben. --- Remote wakeup signaling will be automatically issued whenever any write commands has been received in suspend state. Signed-off-by: Neal Liu --- 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); From patchwork Tue Nov 30 11:38:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Liu X-Patchwork-Id: 12694172 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7D0C8C433F5 for ; Tue, 30 Nov 2021 14:07:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Yd9L/MIx63qiMivOUkHic3Xq615qV63YpPuWYqddx/c=; b=zq4S8Vb+tUGfUV 9kEcYeASqXjnQN2trayLTA0bSnMSrb48tyOZE2gDyhPiGQagR1arNJlOQF6Mh38hRe4Cf1y0W6G6O D8fWdpSdCADutKaUWPIIGwhL684/gqrF/6+JOjaQf+y9A9BWjQ9zNaBnSS9aIyRokAgoY64fzq8iD c99vUvA1qWJrpUOmDLKhe4WaM+eLZ6AoPR6YKBBz2FptovavkoiZkqw4rPQ/h1c8us9WxZnwBKKfq fcIgr/IQItOJgYuEGevMDJedMkjhzEskgkL/j8u+zxihKxevCy1pslmJGkY9CrNcsp5CkDciep9S5 llDs56AczdhIQTupp+/A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3lu-005TuQ-Ac; Tue, 30 Nov 2021 14:06:14 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3lq-005Ttu-Mz for linux-arm-kernel@bombadil.infradead.org; Tue, 30 Nov 2021 14:06:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:Content-Transfer-Encoding :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=9w5wREZ9epn+bgN8sErHQeBOtp0Aeidb7njyx64AQ7w=; b=GwZfixjh3qkXw7/eu2+xDqSVgd pndsgF5wi+tLwhqXG1ZJeNL0K75u6wd1KKULTid1iXwbSSzOR52bZTrY/OwJ9Ujz1jt2bxGonK1US /dL9TmLReTbsDog3Af+7P/SWqhSmVuU01nmMXa6IxXiMpxBJ7rQqfnTC1tb+UnnlTXDkyIMfmGA05 fcxOABlotcWmMQYNRoa8X4Z9Z0uK7sh1EynMLyvxBfCmNyVYdh+Z916KwKJRZ6uGkQ8JsK924631S 0Tdvyqm5YKR5fprDv2MDg3aTPTIy9aeugIMVCMEwSi/AcOW5sQDOMtxgb6Rc2xZOkIYZpeIUisjFo PbD/U4cw==; Received: from twspam01.aspeedtech.com ([211.20.114.71]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms1U1-001RTp-QH for linux-arm-kernel@lists.infradead.org; Tue, 30 Nov 2021 11:39:40 +0000 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 1AUBEMnm082289; Tue, 30 Nov 2021 19:14:22 +0800 (GMT-8) (envelope-from neal_liu@aspeedtech.com) Received: from localhost.localdomain (192.168.10.10) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 30 Nov 2021 19:38:54 +0800 From: Neal Liu To: Felipe Balbi , Greg Kroah-Hartman , Joel Stanley , Andrew Jeffery , Cai Huoqing , Tao Ren , Julia Lawall , "kernel test robot" , Sasha Levin , , , , CC: Neal Liu , , Subject: [PATCH v2 3/4] usb: aspeed-vhub: fix ep0 OUT ack received wrong length issue Date: Tue, 30 Nov 2021 19:38:46 +0800 Message-ID: <20211130113847.1405873-4-neal_liu@aspeedtech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211130113847.1405873-1-neal_liu@aspeedtech.com> References: <20211130113847.1405873-1-neal_liu@aspeedtech.com> MIME-Version: 1.0 X-Originating-IP: [192.168.10.10] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 1AUBEMnm082289 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211130_113938_447221_AA34AA2B X-CRM114-Status: UNSURE ( 9.78 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org +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 Signed-off-by: Neal Liu --- 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; From patchwork Tue Nov 30 11:38:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Liu X-Patchwork-Id: 12694177 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AE262C433F5 for ; Tue, 30 Nov 2021 14:10:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=to+jm2OzJsFFKeWrnQxnI14dtyGb4RL95CRVU8b+QC0=; b=t8A4MUHBawh1pJ WSgoEvdOH87QryKNq0FVyPKWaXPLdXcGnXXrRH+VIxu0Tdi0bVQ8IKPcM8tYzHsow714ZHBbFGvXT IhJ6GmS/KzsQaqcPTHuXcFpX8Lz7MMChhJBtvr6aFhUJxLDk6EWtDthlyevE4Ir3koXWtxwP+g7ZL grYKY+i0WaaHt4pl8g5LjfIMHIWXT9vMYbj1UHUvYwRfZqJgDRsmTNyqGFQPR57mjEwpmvJmHI+sK BPyCF6nKLbHMefPKq4u611Nxj7NCmB9UMPG9CXwT6fcvsV25lqWVLQmMBGDojCQmyo8TAVJV0+q3e LDW3+axNY0xcmnOZ0+vA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3nt-005Uch-Fy; Tue, 30 Nov 2021 14:08:17 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms3ly-005Tvr-AU for linux-arm-kernel@bombadil.infradead.org; Tue, 30 Nov 2021 14:06:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:Content-Transfer-Encoding :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=YBDz3YqFCBe/CwWr3lz4KOB48k68FnMCkoGj3iUKxSE=; b=qOF7lHM03YeWszlVGn/Yw2Rmr4 HpfS1PYgktGgxMnkW5X0+Yv0wK+AC+zy0xHg87gbKX55Ziytil1oW0Pa96uYV4Vx1lRbyACMRf2RE wl9TxW3NCJ5U3a9ujYO47IStFTuJc7Io5dEcL67dj6Ns4L2mCK8TuEaDiOFjAff4nQGVaCXY1BEf6 vpqQZ0dVZwRuL6vY3AJmw2+Un7h8vHt6i8ieXEzG1qA/HDfVCaOSeSuAL9MPHlOxFd/h6PLkD8VOL /lB10b04W+yR+LKavh2NYxGdqvLE2AgD6en+ATG6Pwds/3SjKAp1T+wgoeaTn1vzdosWnTqMSkVTx Fs6td9Rw==; Received: from twspam01.aspeedtech.com ([211.20.114.71]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ms1UC-001RUb-Tm for linux-arm-kernel@lists.infradead.org; Tue, 30 Nov 2021 11:39:51 +0000 Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 1AUBENq1082290; Tue, 30 Nov 2021 19:14:23 +0800 (GMT-8) (envelope-from neal_liu@aspeedtech.com) Received: from localhost.localdomain (192.168.10.10) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 30 Nov 2021 19:38:54 +0800 From: Neal Liu To: Felipe Balbi , Greg Kroah-Hartman , Joel Stanley , Andrew Jeffery , Cai Huoqing , Tao Ren , Julia Lawall , "kernel test robot" , Sasha Levin , , , , CC: Neal Liu , , Subject: [PATCH v2 4/4] usb: aspeed-vhub: support test mode feature Date: Tue, 30 Nov 2021 19:38:47 +0800 Message-ID: <20211130113847.1405873-5-neal_liu@aspeedtech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211130113847.1405873-1-neal_liu@aspeedtech.com> References: <20211130113847.1405873-1-neal_liu@aspeedtech.com> MIME-Version: 1.0 X-Originating-IP: [192.168.10.10] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 1AUBENq1082290 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211130_113949_481819_7960887C X-CRM114-Status: GOOD ( 11.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org +Ben. --- Support aspeed usb vhub set feature to test mode. Signed-off-by: Neal Liu --- 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,