From patchwork Wed Jun 5 00:50:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mank X-Patchwork-Id: 13686065 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2116.outbound.protection.outlook.com [40.107.93.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD432804 for ; Wed, 5 Jun 2024 00:50:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.116 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717548618; cv=fail; b=tvvX34Iq2N8cYkOzFn1vXtxlKUkz3xKAcDEW6pizi8RcEVtJxqsKkmhBIKcFAB3Rgs7Jv5H1lrqZ/O9h6laZLO7Z7f5Y/v+cKGcPNPpEJ47rFATDES6ccXd8YiM907TvSLeDtXaGoWq16wJEddJFs0k72YFcrDl0Qq4Wutosd80= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717548618; c=relaxed/simple; bh=dQUzZ8N/GL6jfUC6UEZN6Nb7Xl1Y30Rey/JsR0TfQR0=; h=Content-Type:From:To:CC:Subject:Date:Message-ID:MIME-Version; b=ETRavz3FR9YgYWzpNPCCCDkUBQfyQ9zYCO/vVLJUQsck4x9YFY0vaXJSezBJntEtRJEQ1RXSvICevEqPfIwgjyPFOnUrcgUwHBsSTOLGPoH1mQSKpyNLx67pQD2gTm62/I03BVrryyLIL61q7q6x0Rpaw1g8JTbgdfHeyuWRHbM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=netprisma.us; spf=pass smtp.mailfrom=netprisma.us; arc=fail smtp.client-ip=40.107.93.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=netprisma.us Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=netprisma.us ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AUMwygfZIPNZsaAjjZdP3tviZFcbD/FDL5owj/INudrPJHV0visII/OBEj+inwfLpSH4pmm8+rzceT6lE0XNn50lMtjLqIi+k3b24Qsl/lLSvRlsZAQ/KRHKGMaKXnKRPcERXzwWiwWSzB5cOryhk/sYBgIJFIE7DVsvJOfUkL3ixNI8NZ4eFrpPF6HL9XCThDQ1DZ0ixD+ay7KzUCNJUMObkcdRSqd4+t1QcjnUyZ53zmok/fZ1KYcSqJ3NEtA3pK+b2qrMhD+uO3v+e9Wjk1aV5iLFtdhkYNXVco6kNKg4SyqAK9ZGjRZLmtsU4UrbormKNodk+HyzDiFHqHX+ZA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iUuXdSWstoqPlWfdqj9TZzXS81SQgRjg3U11Bn4wntM=; b=e8xMuk6gWqrKcxjsUYwXUHtw1/b6aVO00q32nc0QzPF2HZ/cssLfBQdNI1bTVpJyAoiC6wZO14/2LPo7Xh+taPKRsvauS2aWZ6qvFgP5uUvblcnOfSzBawHm/3Dapo4jdHEM5JTElsRjlnGeTeD2FJVNlQRmUML+524Dhb6Tb+k5bM/fBA1U/Oq6cNOzKra8f8zgR8IPVVRXIK/+v9kR6azM/CLta0FoEC0T7qvcNuyJ4+o0ctFnIkqKgXToGcnogkFsaMLA7BjQ1sKqE5D0jghYr2ioE2a36Q+QkaauE/70vVGTkSzP4sxRDrECoKj3f35/qqwD/Wcw3L4kDs3m+Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=netprisma.us; dmarc=pass action=none header.from=netprisma.us; dkim=pass header.d=netprisma.us; arc=none Received: from LV3PR22MB5104.namprd22.prod.outlook.com (2603:10b6:408:1d3::21) by PH7PR22MB3164.namprd22.prod.outlook.com (2603:10b6:510:125::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.26; Wed, 5 Jun 2024 00:50:12 +0000 Received: from LV3PR22MB5104.namprd22.prod.outlook.com ([fe80::4b3:b595:d0d2:d5be]) by LV3PR22MB5104.namprd22.prod.outlook.com ([fe80::4b3:b595:d0d2:d5be%5]) with mapi id 15.20.7633.018; Wed, 5 Jun 2024 00:50:12 +0000 From: mank To: "johan@kernel.org" CC: "gregkh@linuxfoundation.org" , "linux-usb@vger.kernel.org" Subject: [PATCH] USB:serial:option:add Netprisma LCUK54 series modules Thread-Topic: [PATCH] USB:serial:option:add Netprisma LCUK54 series modules Thread-Index: Adq2n0MrvIeCbjtwSEu2Qw22uGzE0Q== Date: Wed, 5 Jun 2024 00:50:12 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=netprisma.us; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV3PR22MB5104:EE_|PH7PR22MB3164:EE_ x-ms-office365-filtering-correlation-id: 368e5f1f-7388-4f10-2118-08dc84f974f8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|1800799015|376005|366007|80162012|38070700009; x-microsoft-antispam-message-info: kwdihK7kTNvixJ36U2Xd7EVSRiuhkoOQvFDCfgVmkK+ZsXm1MKLCYCqt9KxLJztL2BV74G0pt/RfT5koO8oiRRp5+z/MYDpSfzXh4qoFFj2wc71oMWwuk12j39WP0V7hJeA4qklGWF23tosbBd6i8ZyAjNHJMGtw63vZDBF8nh6cHRhJlLUDoY5cLLMKXEM+BaSJYvwzT18DsiTAC6YdDJlWD0oYMb22j2kfhoE//MwxF1ZqieevqrTZsp1wJFHjoFHu1sSM85RUaLSFFf5JJJv8MjE56kznoeqzJvU8pGOQbSusqbnYZVaG3YbBKD+gdGU8BrMBczkeX4vPjbWpma8mKrQfsB1HXgzpza3zimQr74OEt1Rbh702dLcBFYCFdv8hmKdD/4SpG/aurg906hriMQOlJcI9Bn0L5Me52ILTCtsEnx5oVP4PgWdZfUtvODQ16c2cSJAzdRhJs5rTP2LT9hlJ1iFoY0rJvaKY5KYvzqYdaqLoRPONiKHCQxKQN7jcI0YIqC53r/rjljmGvprJ/vSbK+NgE04YJ7YWtV0XCRqqZe6zk1E7HZ2Jmb56+HfipvFJmEQuuy4uUWmpJxLhs/CHBBYh9WMTx2O7XPMdL21HRqmRDbNfL1tvHqOE96A5BPlrPJlEhz3fh31yPXayC3+lXWcrp28DmPQKlHkvVtLhXsFt3RxSgq4HRNTKb97O8XOUvhcHtEhYrFJtoZ+zU5M/4nQHeSa/0+xRgQe1N0GCnnvLXCh7yZLlwrYp7BrCT3ap7lrQoPE7OjI3znPDKHBtIsDTTKIbjQHxm989eFk8zDi2ze4SN1DZRp9X0iup8xuRy6Y/qa8YzXDz3hjhNUCmZbWY31qFvJ62cQx9vHicZCQTBYi7THrpHvgXEVz6hJI2dzMR90CuZFiK12koprCzXhVmoXfBx9fQTpIeBt5l8oc6jU235eU/n7bYb7j0X/Rf1B3O26LyfsttRDIW7bOnNajxsmKfTy9xrHZh7q/Z/o0hipirQBE6uS3CI7xB46+rGAZ2WvjzMAu3Tj9iEM4YyCvcrw5Yo6dErUrhkL9hIzVLR/wzhtqHa//4CyinkzO5m7t2nSC2yuSg9U0CfP25dpeYzFBAI+qcNkWlPUtrT7GdOp3OYLYw4mcHJ5KuIJL3c88k5PkPGmvsodTh7hzMgsHelM5BjJUrHcXCp9LholskN4nRx9wK7+nlO7okJtoDcE11PMqED/3OOw6+oMNC827qcuSLcVpFkNaYO3zwLAD3ubRcVAiFdFSke3IHK2uOHb6QnzYNKmM5hw4CbOwuvle8mBv+JlzBHEfuP73f/ec3MBvN9bNL1wJp+qWHgkQ6G8V6G8onk4/ixR3yyRyru/76Uez959DDl64= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR22MB5104.namprd22.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(376005)(366007)(80162012)(38070700009);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: fNtsGh+UY/jTPpg0oBSNjV3fTqReZFZSGivnhr2t7DdHS62NZhiHU9zRmU7PwVTq10iXxaRSxbQ4rxn2PdWbYJEvir3ppvB83NStq4tMhAPuxLRj5YiS8VFZQxR0v8hcrhdRwQ/U4u/xQ4SK6fN9IXaUmG7U7dYBChDywPPEvbUjyVDtofBgggMvuwkKsXpPuKWloKVjatlOxdnVYYhyq4v3WFUKlmbLR4n20kuPStIobKr64ZStxWtJi+LFffcIpd/FYNNLjsh+Vsg6FYReIzVo/3SeBMXtCqveQAE05pfUan65XexRcZA+pAtfDA7uagjBrpRXJHUCalIyItMVpJNoLazfbI0D7bDvkL4H6E6fi6fmiLirprZZgTHKxZj/wnrQICUklHpGeHbIfJGHUDdDzototw5qgsK/rNkgb21K3lJ8JngWfpLIKNbf8uNiZ4iycIMtsWBXFnvzPb27zpQ9KdkxNGJv+MM59hJ9EpIy8eJ0QERLlkC/79SEZ29hccAuaLtX4W+gDyU9YZAUfV35cRR3omMLlPbjbc6X6iDONu++SlMIMbqBMKSxhtAjLiYK1DVpkSNUS/QnyHlAVpiuaJnq2hh+6aAynlTRt8QKUcIWKdvR6ic7qqcg9GCpHNkmY6g08X8tEvREKMfvm+a8L1aPxg1LS6/n9WGg+6SbzD1t8a+JcM2rC1KlwwNNzAzHz0SstmIeB/HqO2N6Y/2jvGUGO1NFYionbxFSZbTxnXKk5R5NtEyRJxvknHubhST/rvTu/cIt6qa5cXuUK8cnVN+wY+4rWLyRDhIF/8LmUvs8xbVocQiDDEaIEkuOYyT+4gyqip4MLQXE9hb9p+WkGfWXDChAilOrFHuUiX4Jaas2+3P5J7Nex7sAzxHikSwuc8Ygk+ec8lVt/h60yridRvRDthr44rdQRsnse3q4mEv63JGlFqKhw8qhIQXU7q9pd5sL5cFRnlt+sXcfOFKpZUMVBdAeExzvt/VEpmUPCJR23zEVUhnitFczEnhyUUOzeIM4pyv70WoPx3SxWQFPbR0LXeEQY/YJkAVyDd7ahJEty2IYf+na8MwYVNhxNCCtyi5Ot2zw1+WjBAQztAh4o3TLD8mICjJhyNATZK1Vo5ufngrd+/Hv+hAC61a030N/modEOd1/VIqT5sYM5mdtEQAh56kKHURUJD399cuRNkbyeyWNqPD97eMePCfN1y8ci8CaI5N4QndKnHj3l2bLCK8c1XAJbrDeYgnqQZOOqOnoAnlEs2v0EiFlz0zcCyREPRtdpiKpi9oKrZ7yCbG2zxAAQnGqHACmAJRfuC8e03UE89pTrJKA633gbweVJzRJk9Z7MeaLVbyN1cNnNxWOuXaYzm3+Q+HgGGKAVMEYeybwoJzfCTXiIqZderi+Gs2Bti1cHH2Gn8FkRXlMgo1ngnCOgeejWN6GmforF53BEkOX2H+YVjKsKNd4xTPCYX+yz6TtzTuqUN7U4UP27kHRdTW0dhHfo34Li+7nUoRcK0untWtkBAPYQbo4z5e8RORmW+bX8jiX+1tivkRp2VCoqOL63qcaKDA++YOpWcU= Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: netprisma.us X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV3PR22MB5104.namprd22.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 368e5f1f-7388-4f10-2118-08dc84f974f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2024 00:50:12.3383 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fdc90941-0026-4225-aaa0-15fff5e87036 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: x0FH3vDDU33hTsYE/z5jQGTMhJJBo/ZcmSF1t50JXHbrgjRn+/IIUglL9lA47wWUxtx+CYpX1qcPzCgED0+GNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR22MB3164 Add support for Netprisma LCUK54 series modules. LCUK54-WRD-LWW(0x3731/0x0101): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL LCUK54-WRD-LCN(0x3731/0x0106): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL LCUK54-WWD-LCN(0x3731/0x0115): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL LCUK54-WWD-LWW(0x3731/0x0116): MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL Above products use the exact same interface layout and option driver is for interfaces DIAG, NMEA and AT. T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 5 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=3731 ProdID=0101 Rev= 5.04 S: Manufacturer=NetPrisma S: Product=LCUK54-WRD S: SerialNumber=b6250c36 C:* #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=500mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=32ms I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=32ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=option E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none) E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none) E: Ad=8f(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms Signed-off-by: Mank Wang --- drivers/usb/serial/option.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 8a5846d4adf6..0e8837f37ccd 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -622,6 +622,14 @@ static void option_instat_callback(struct urb *urb); /* MeiG Smart SLM320 based on UNISOC UIS8910 */ #define MEIGSMART_PRODUCT_SLM320 0x4d41 +/* Netprisma Wireless products */ +#define NETPRISMA_VENDOR_ID 0x3731 +/* These Netprisma products use Netprisma's vendor ID */ +#define NETPRISMA_PRODUCT_LCUK54WRD_LWW 0x0101 +#define NETPRISMA_PRODUCT_LCUK54WRD_LCN 0x0106 +#define NETPRISMA_PRODUCT_LCUK54WWD_LCN 0x0115 +#define NETPRISMA_PRODUCT_LCUK54WWD_LWW 0x0116 + /* Device flags */ /* Highest interface number which can be used with NCTRL() and RSVD() */ @@ -2328,6 +2336,18 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SLM320, 0xff, 0, 0) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WRD_LWW, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WRD_LWW, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WRD_LWW, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WRD_LCN, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WRD_LCN, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WRD_LCN, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WWD_LCN, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WWD_LCN, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WWD_LCN, 0xff, 0xff, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WWD_LWW, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WWD_LWW, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(NETPRISMA_VENDOR_ID, NETPRISMA_PRODUCT_LCUK54WWD_LWW, 0xff, 0xff, 0x40) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids);