From patchwork Wed Sep 16 13:25:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1365304 X-Patchwork-Delegate: lukma@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=bF+xIaZ2; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Bs0bc0GPVz9sSC for ; Wed, 16 Sep 2020 23:01:29 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D19728232F; Wed, 16 Sep 2020 15:00:20 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="bF+xIaZ2"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6C68382364; Wed, 16 Sep 2020 15:00:01 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20604.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::604]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DFF1A8233E for ; Wed, 16 Sep 2020 14:59:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c0g5keWTGD0BI2TRe2ckOOu9W+ReHjFHpxChMSjbRlt3S7+PsCYPNgSwf7Y6rpaz4JhvXJLTlGc9JUCP+eHc+Bwy5Va79gYSKq5w5zeMj+16qoY/VWDxdYpmM1uq2gTfwdHzEPMLkjeMNtpM9wrVcqNI12I4/C5l1GdIkeZAsPFFpMdpLSKxY7aIok18skBb9Ugu7TZyLhe8jApifd+cuG3I4bG/wT68vFHSf8oy7tqcegJbXPz4PZoxvLeXwcho5Cce7SYW769LzGxvJ1KeO4VInHQLEMI5/cP92V70IGHUI7qxDqgTwPxCHmZYP/72PKWl7V9lBdPvSC2d2fIEOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+d8I6b9Kghhf3W4GEzwMoOCrGrrnmBa/R8W3GkgHLbA=; b=Rl+PknmZ/jiiTJJof4j3jF6mIO+Lcws/mkobaLp66UUaCwz57JBRGXeDWJ/75HbZPvF45Hl+DRWe8MrEAODndaraT3Ga1pS5biDMYHr8w02obH9Gbow0nbXTm+LG2qhBSEvboXz4oFLQySzpp/thJk2/EY7/FCmvTLqZdYGcHuUTkBtL/0EPz/OGEF3RB0KsaYti6E0OeFDDnoGfgk72MXYzVGljPiYgV0jPFB+8Dx6Vr77wDhrwFLR9qwz6q+k58asjA0BjmKLsyDxANO469jnFMhH1l0pOjSNR2JOz7QNWTAduiyEP1jqEM1FxNjdkEIE35oPN/qGgd1EuIRBTdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+d8I6b9Kghhf3W4GEzwMoOCrGrrnmBa/R8W3GkgHLbA=; b=bF+xIaZ2p2TmoaekRP2ncktUdSTnCHPUClAewvSfAsYR7xitsylDK86oyN+tDT6wieg6pStlJhdeSdmtpdqlsRyt6XyimMemuLH8LfkTaeYCD7yVphORvbBOcAQMflz+fPV1h49lbSZgPiwwRuO38ZUL7XWKOzwp/kb9AX+tfoI= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB6PR0401MB2373.eurprd04.prod.outlook.com (2603:10a6:4:4b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.18; Wed, 16 Sep 2020 12:59:56 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::39ff:13b4:4f28:1413]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::39ff:13b4:4f28:1413%10]) with mapi id 15.20.3370.019; Wed, 16 Sep 2020 12:59:56 +0000 From: peng.fan@nxp.com To: sbabic@denx.de, lukma@denx.de, marex@denx.de Cc: uboot-imx@nxp.com, u-boot@lists.denx.de, Li Jun , Peng Fan Subject: [PATCH 07/16] usb: gadget: fastboot: add ext properties for WCID Date: Wed, 16 Sep 2020 21:25:28 +0800 Message-Id: <20200916132537.8313-8-peng.fan@nxp.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200916132537.8313-1-peng.fan@nxp.com> References: <20200916132537.8313-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR03CA0131.apcprd03.prod.outlook.com (2603:1096:4:91::35) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR03CA0131.apcprd03.prod.outlook.com (2603:1096:4:91::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.5 via Frontend Transport; Wed, 16 Sep 2020 12:59:53 +0000 X-Mailer: git-send-email 2.28.0 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 422f6254-c4db-4087-ad48-08d85a40691c X-MS-TrafficTypeDiagnostic: DB6PR0401MB2373: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:330; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D5Zd7hO9mVubQfFNOtnkX2kJRvY0gtV6/56n2yQOQmp0JDb6PE2k9F9vep0cBkPfCm58HvuMioxFpseNalEpsdmSNgO2aMODg3JsY6I3VvyTINxd87/U7FkUUIAjCC4fa/8ynURaHtcS3eh2HAHI7QlofIHdc4Rm85G9nz0KAHEXuR5ZU3ctbZfTPPVaEp2EuPfdLfypcNT1NU5wEFqptoy71S0a3Kynks/m3AC2f32DobTVMS+uMq9K1SZhG4LaWXGCxszl0jtR4x84I/G9R75ZGrzn8b8vfaBBDDPC5wCGwZJT4NuBod7vg5Zuyf2k93VqFxtF2Aj/pUsdO1rHOA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(376002)(136003)(39860400002)(396003)(45080400002)(54906003)(6666004)(9686003)(1076003)(6512007)(5660300002)(478600001)(52116002)(36756003)(6506007)(66946007)(26005)(6486002)(16526019)(186003)(956004)(316002)(66556008)(66476007)(2616005)(86362001)(83380400001)(8936002)(2906002)(4326008)(8676002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 3dQA/uhojEEHGhRgxyNHObmZEseggAfIvWMvYZj3BV/BF86tgJcG83pgBqGYlWeheugrySwWuUJGdX32Nvwcle5BlwlRZnYYoE3CZim91htOKrXrLiHBf6sIHD2bASi0n9+Hg63HdJMfC73ssithpWMYIaJ+LbqCR924e0WbI9Zc5TYKkIphy8tFsfbBknlfZqlR2yCRxUcbpPjYQOY9NeoPliRWItJPabdppRl0tWggfg6o8CNPDnqjbOpsZhk0F19L/yP+8ZHZWOsol+zLxfg8xzs2QeTK7ZqVvO2XrtljdnoBmePQP3QhMHPLWGTJzpa+++3c+XqP/eipHTMG65HM2mNlZJEt0kxrjPPJ2yn2Qi7BbNnq3USM0Er/zOfKZEsvYuDZ305LSmdtnks0QaImjjairo3R/wClzkJaaER7xldYfE3h8XPpgVNrJxY5HZLxgAaOmgyFYaRzIuQvnlgcgHVEUFl+YMHn/OKQkLrIbRjnZXFB8cIPsipxBtnh0owGyzw5htt4jiOL+sbqsBuVEhfuhFa3gA9Upp4StT38kCATaZ7QsGVzG6KtqgQuEejUWtGqTQ8CI7ehuRSA538rJbXV7xoA6UdZwwIvyPtCbZOFzB4ZSkUXy1UItBUD/hD3zHVkGlRELcE0xxKejg== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 422f6254-c4db-4087-ad48-08d85a40691c X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2020 12:59:56.3357 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 124pnQDX1ERn6REggzg+w52epz4fbU0nqBXrho2B+i+ETb7bJU6i+rISk+sbG4hX9DYW3bNSmRlliybQmOAhNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0401MB2373 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean From: Li Jun Add device interface GUID for Microsoft Extended Properties Feature Descriptor. Signed-off-by: Li Jun Signed-off-by: Peng Fan --- drivers/usb/gadget/f_fastboot.c | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index d1d087e12b..e330456390 100644 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -46,6 +46,25 @@ struct f_fastboot { struct usb_request *in_req, *out_req; }; +static char fb_ext_prop_name[] = "DeviceInterfaceGUID"; +static char fb_ext_prop_data[] = "{4866319A-F4D6-4374-93B9-DC2DEB361BA9}"; + +static struct usb_os_desc_ext_prop fb_ext_prop = { + .type = 1, /* NUL-terminated Unicode String (REG_SZ) */ + .name = fb_ext_prop_name, + .data = fb_ext_prop_data, +}; + +/* 16 bytes of "Compatible ID" and "Subcompatible ID" */ +static char fb_cid[16] = {'W', 'I', 'N', 'U', 'S', 'B'}; +static struct usb_os_desc fb_os_desc = { + .ext_compat_id = fb_cid, +}; + +static struct usb_os_desc_table fb_os_desc_table = { + .os_desc = &fb_os_desc, +}; + static inline struct f_fastboot *func_to_fastboot(struct usb_function *f) { return container_of(f, struct f_fastboot, usb_function); @@ -161,6 +180,19 @@ static int fastboot_bind(struct usb_configuration *c, struct usb_function *f) return id; interface_desc.bInterfaceNumber = id; + /* Enable OS and Extended Properties Feature Descriptor */ + c->cdev->use_os_string = 1; + f->os_desc_table = &fb_os_desc_table; + f->os_desc_n = 1; + f->os_desc_table->if_id = id; + INIT_LIST_HEAD(&fb_os_desc.ext_prop); + fb_ext_prop.name_len = strlen(fb_ext_prop.name) * 2 + 2; + fb_os_desc.ext_prop_len = 10 + fb_ext_prop.name_len; + fb_os_desc.ext_prop_count = 1; + fb_ext_prop.data_len = strlen(fb_ext_prop.data) * 2 + 2; + fb_os_desc.ext_prop_len += fb_ext_prop.data_len + 4; + list_add_tail(&fb_ext_prop.entry, &fb_os_desc.ext_prop); + id = usb_string_id(c->cdev); if (id < 0) return id; @@ -196,6 +228,8 @@ static int fastboot_bind(struct usb_configuration *c, struct usb_function *f) static void fastboot_unbind(struct usb_configuration *c, struct usb_function *f) { + f->os_desc_table = NULL; + list_del(&fb_os_desc.ext_prop); memset(fastboot_func, 0, sizeof(*fastboot_func)); }