From patchwork Tue Jan 4 03:27:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1574981 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=auGzTQig; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSdN34shgz9sP7 for ; Tue, 4 Jan 2022 14:27:30 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1n4aTq-0003eC-Gh; Tue, 04 Jan 2022 03:27:22 +0000 Received: from mail-pj1-f51.google.com ([209.85.216.51]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1n4aTo-0003dr-Ua for kernel-team@lists.ubuntu.com; Tue, 04 Jan 2022 03:27:21 +0000 Received: by mail-pj1-f51.google.com with SMTP id r16-20020a17090a0ad000b001b276aa3aabso26247356pje.0 for ; Mon, 03 Jan 2022 19:27:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lVLWtiP9MZx2MIXvYVFS1g8FLdX2eXwbuUXLoekBGa8=; b=auGzTQigVqrjx4hNOescbWHkFI5C6B34OFoCrI8cIkVDi5W31dZK/wjepgWxK97ikJ NUgilDLYfqjMWtTBg4SqsrlLP0LMdhA6Ro9jP0ZoWfixMg7vsd8Pa5PrMmSzRwYQ/iIw A3UMifBFZmLbBugEheP7scIc4xtFoMowBRlnyOe3fJhT0x17hfmc4zo7FLttq/Z72Ky/ IQ/xF9gNn8ESQqILZJ8nrt9gBtQNWwtS4bTwDgEFr7BWCIinUpEqidxMu6XlJZvAaT9P GGve/FR+nyPG+fNwDSoBHE+cVk02qAjG8/qP2QS38bKCG14dOSCyG6VHlT1NwFBnbkxc cXXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=lVLWtiP9MZx2MIXvYVFS1g8FLdX2eXwbuUXLoekBGa8=; b=bumRzALwS6OwImB+5v9U+E9tg1/6iPvdwXpD+2GpgQY7iATtxV2YA56kNpjQzSgcHM JIVTAIEbOQRkeG55PCd9xiuOh+onetB/TCZvzksUwiWyKL/+sPT+jXTevcqNbvY/Zs8d yXZvJgifKcHCqimjhnLbvQt88FS0DUPOSFfN6O2H6B9g3JD18Kj2xMbfnd0Tux9pTa0E UnbkBfMbeAc4sLSOm5TLL/Jh5NBck6XdfzIi/hAaFes7nWL2uepPYwefUWiqlX4KzxmT CU81Ob5OqvNIXsQcoCzzJTAL+VIg4e6fRYG0TWJ4dQhtSwRJTM4TSncloOs3Ho6X1mn5 qBeg== X-Gm-Message-State: AOAM530Buv3XgveX8OsjPXavqbFwAESNA+MtXNFtZctKV33vH/BeQWHh 3nMbBsFWsob8//qibo9DvIaqqmhyEB0= X-Google-Smtp-Source: ABdhPJwrDwBNZ1IDhOoUSzvVLQtLgPO/ZMq1ps7LKlO0hf+lPBmC/t4vso0XlYPznDIA4q6Nk7vIWA== X-Received: by 2002:a17:90b:4a92:: with SMTP id lp18mr57704326pjb.123.1641266838436; Mon, 03 Jan 2022 19:27:18 -0800 (PST) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id x22sm32157163pjn.16.2022.01.03.19.27.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jan 2022 19:27:17 -0800 (PST) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/3][SRU][OEM-5.13] Bluetooth: btusb: Add support using different nvm for variant WCN6855 controller Date: Tue, 4 Jan 2022 11:27:13 +0800 Message-Id: <20220104032715.73212-1-acelan.kao@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211224023938.286186-1-kai.heng.feng@canonical.com> References: <20211224023938.286186-1-kai.heng.feng@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.216.51; envelope-from=acelan@gmail.com; helo=mail-pj1-f51.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Tim Jiang BugLink: https://bugs.launchpad.net/bugs/1955689 the RF performance of wcn6855 soc chip from different foundries will be difference, so we should use different nvm to configure them. Signed-off-by: Tim Jiang Reviewed-by: Matthias Kaehlcke Signed-off-by: Marcel Holtmann (cherry picked from commit d6cba4e6d0e202276b81117b96106859a4e2d56e linux-next) Signed-off-by: Kai-Heng Feng Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/bluetooth/btusb.c | 53 ++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 18d8b75a475bf..ae7287195a9b7 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -4072,6 +4072,9 @@ static int btusb_set_bdaddr_wcn6855(struct hci_dev *hdev, #define QCA_DFU_TIMEOUT 3000 #define QCA_FLAG_MULTI_NVM 0x80 +#define WCN6855_2_0_RAM_VERSION_GF 0x400c1200 +#define WCN6855_2_1_RAM_VERSION_GF 0x400c1211 + struct qca_version { __le32 rom_version; __le32 patch_version; @@ -4103,6 +4106,7 @@ static const struct qca_device_info qca_devices_table[] = { { 0x00000302, 28, 4, 16 }, /* Rome 3.2 */ { 0x00130100, 40, 4, 16 }, /* WCN6855 1.0 */ { 0x00130200, 40, 4, 16 }, /* WCN6855 2.0 */ + { 0x00130201, 40, 4, 16 }, /* WCN6855 2.1 */ }; static int btusb_qca_send_vendor_req(struct usb_device *udev, u8 request, @@ -4257,6 +4261,40 @@ static int btusb_setup_qca_load_rampatch(struct hci_dev *hdev, return err; } +static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size, + const struct qca_version *ver) +{ + u32 rom_version = le32_to_cpu(ver->rom_version); + u16 flag = le16_to_cpu(ver->flag); + + if (((flag >> 8) & 0xff) == QCA_FLAG_MULTI_NVM) { + u16 board_id = le16_to_cpu(ver->board_id); + const char *variant; + + switch (le32_to_cpu(ver->ram_version)) { + case WCN6855_2_0_RAM_VERSION_GF: + case WCN6855_2_1_RAM_VERSION_GF: + variant = "_gf"; + break; + default: + variant = ""; + break; + } + + if (board_id == 0) { + snprintf(fwname, max_size, "qca/nvm_usb_%08x%s.bin", + rom_version, variant); + } else { + snprintf(fwname, max_size, "qca/nvm_usb_%08x%s_%04x.bin", + rom_version, variant, board_id); + } + } else { + snprintf(fwname, max_size, "qca/nvm_usb_%08x.bin", + rom_version); + } + +} + static int btusb_setup_qca_load_nvm(struct hci_dev *hdev, struct qca_version *ver, const struct qca_device_info *info) @@ -4265,20 +4303,7 @@ static int btusb_setup_qca_load_nvm(struct hci_dev *hdev, char fwname[64]; int err; - if (((ver->flag >> 8) & 0xff) == QCA_FLAG_MULTI_NVM) { - /* if boardid equal 0, use default nvm without surfix */ - if (le16_to_cpu(ver->board_id) == 0x0) { - snprintf(fwname, sizeof(fwname), "qca/nvm_usb_%08x.bin", - le32_to_cpu(ver->rom_version)); - } else { - snprintf(fwname, sizeof(fwname), "qca/nvm_usb_%08x_%04x.bin", - le32_to_cpu(ver->rom_version), - le16_to_cpu(ver->board_id)); - } - } else { - snprintf(fwname, sizeof(fwname), "qca/nvm_usb_%08x.bin", - le32_to_cpu(ver->rom_version)); - } + btusb_generate_qca_nvm_name(fwname, sizeof(fwname), ver); err = request_firmware(&fw, fwname, &hdev->dev); if (err) { From patchwork Tue Jan 4 03:27:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1574980 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=U74mkoLv; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSdN35LNbz9sXM for ; Tue, 4 Jan 2022 14:27:30 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1n4aTs-0003fJ-Va; Tue, 04 Jan 2022 03:27:24 +0000 Received: from mail-pj1-f52.google.com ([209.85.216.52]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1n4aTq-0003eA-UD for kernel-team@lists.ubuntu.com; Tue, 04 Jan 2022 03:27:23 +0000 Received: by mail-pj1-f52.google.com with SMTP id l16-20020a17090a409000b001b2e9628c9cso1687698pjg.4 for ; Mon, 03 Jan 2022 19:27:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=udrieNN9NUv7ofXeJnNZm3ycFreLW7lbRbZlvhPoZAQ=; b=U74mkoLvfIuYdmS8r5gQbvAzUr7gbnjxyaW4Oh4EsWsx3tj6Oh2/s+z7y9wcQay1S+ CjxyE9CLWMOkfYWE/DenMw008iBYH5mEwYMLFEjEWlmAa+ZfJz8CH9pTvBYYR0uh5TL1 2/CatI9os+FVbsYjOq7eNTC2kdW5P1K7eUWMpgQfS1PXLFJnKLOKJq2mG5V8Gskdy+mX PSPg6RKZW0n7toHIpRoV6kUH7fM5mdYE7nUMFKSwnXviNz6UZIdw1Bkvi2ESxckxovV6 OrGfDfJ0cCmLU7R8ZJVPSXl7JmBwenF6OOeBiULGhcg9bxfd1TbPDDGZf9QSSG3io2nI SOeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=udrieNN9NUv7ofXeJnNZm3ycFreLW7lbRbZlvhPoZAQ=; b=bIxZfPYHVtZKiDNKccuuKrJBAHriUrp7zsszNjjrx5zwKQFQdJtI3rVixCx0vcA73j cfiVxPedIe38pikhCgFW9MkncQWVBcPvVQpRBpCcgLMRV01+xTPvbae9Pg2QCtfapLF4 cUAHupDA69Ymz+9ywsRBGd/YHuLwo9l1ejTYTSjFlRq5bBVxI3KKi8fywCHHefzN/vtr h8PtSIH8CzoVXQXksrIAGVkNF4b4qikHsco12+zdh86HbZPZmYwRrB9yKjrrnfWYfDtZ JkDPMC+vuZyesZSph6c6+K8Gj8Lz7CLJ/LgNH3YQXmrm/6HckFZ7bGAbdAHGkditUcEw 8O7w== X-Gm-Message-State: AOAM533FCUvU/Ms0J+/q/3bUUzxcyDtWZY9Y4BJIxmoQbFe41T4Y0f/M PWNAgKhedkZyIYyztp117lUnxj/+/3E= X-Google-Smtp-Source: ABdhPJxZHVI7epT2YoTgmT7cqSGIyWTVrP7SISuKJFnHRifxwkRveFXT8+b6GF4905AOB9ckUY2xtQ== X-Received: by 2002:a17:90a:7001:: with SMTP id f1mr58413200pjk.70.1641266840531; Mon, 03 Jan 2022 19:27:20 -0800 (PST) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id q19sm40576967pfk.83.2022.01.03.19.27.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jan 2022 19:27:20 -0800 (PST) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/3][SRU][OEM-5.13] Bluetooth: btusb: re-definition for board_id in struct qca_version Date: Tue, 4 Jan 2022 11:27:14 +0800 Message-Id: <20220104032715.73212-2-acelan.kao@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220104032715.73212-1-acelan.kao@canonical.com> References: <20211224023938.286186-1-kai.heng.feng@canonical.com> <20220104032715.73212-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.216.52; envelope-from=acelan@gmail.com; helo=mail-pj1-f52.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: "tjiang@codeaurora.org" BugLink: https://bugs.launchpad.net/bugs/1955689 The board ID should be split into two bytes. The 1st byte is chip ID, and the 2nd byte is platform ID. For example, board ID 0x010A, 0x01 is platform ID. 0x0A is chip ID. we have several platforms, and platform IDs are continuously added. We would not distinguish different chips if we get these mixed up. Platform ID: 0x00 is for Mobile 0x01 is for X86 0x02 is for Automotive 0x03 is for Consumer electronic Signed-off-by: Tim Jiang Signed-off-by: Marcel Holtmann (cherry picked from commit 741268adb34061c28d8236dd67217f0df580c930 linux-next) Signed-off-by: Kai-Heng Feng Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/bluetooth/btusb.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index ae7287195a9b7..964837faf63a3 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -4079,7 +4079,8 @@ struct qca_version { __le32 rom_version; __le32 patch_version; __le32 ram_version; - __le16 board_id; + __u8 chip_id; + __u8 platform_id; __le16 flag; __u8 reserved[4]; } __packed; @@ -4268,7 +4269,17 @@ static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size, u16 flag = le16_to_cpu(ver->flag); if (((flag >> 8) & 0xff) == QCA_FLAG_MULTI_NVM) { - u16 board_id = le16_to_cpu(ver->board_id); + /* The board_id should be split into two bytes + * The 1st byte is chip ID, and the 2nd byte is platform ID + * For example, board ID 0x010A, 0x01 is platform ID. 0x0A is chip ID + * Currently we have several platforms, and platform IDs are continuously added. + * Platform ID: + * 0x00 is for Mobile + * 0x01 is for X86 + * 0x02 is for Automotive + * 0x03 is for Consumer electronic + */ + u16 board_id = (ver->chip_id << 8) + ver->platform_id; const char *variant; switch (le32_to_cpu(ver->ram_version)) { From patchwork Tue Jan 4 03:27:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1574982 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=ZDasYXy9; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSdN52sSSz9sP7 for ; Tue, 4 Jan 2022 14:27:33 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1n4aTv-0003gN-5f; Tue, 04 Jan 2022 03:27:27 +0000 Received: from mail-pl1-f173.google.com ([209.85.214.173]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1n4aTs-0003ex-ST for kernel-team@lists.ubuntu.com; Tue, 04 Jan 2022 03:27:25 +0000 Received: by mail-pl1-f173.google.com with SMTP id i6so20124054pla.0 for ; Mon, 03 Jan 2022 19:27:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rMKbeodQ4WTkkq5tRosZ2KGDR3ir2RGPxs5d/4Bd8AY=; b=ZDasYXy9X9JZUeql4Vq8OJ5pmH5nNYHvZJgkLiaZd+sbV+Y3x8EZZRVVgkRu9znd7i UX8LpzU5yw+ITh128E332BtQWPQvRkVhBQLGYmpcvKvEgPwdvsJlrCPARokATb46QiOP 3yj50WcXdNVEJ01lNw/dS36KCm8gbEvzg+QYqlmyc7QWQT295x/jyUbibfCzO4agU8G7 Yqibm0RdG14OzCCVPi0zVvr+oQy9Y7KkqZTs1MwLoONS9f5drqNHdSkdFKOf0E2cWBhQ pRM42X8lvKNt+ZOybjQySCYRLDR2UgAcFOP5DR+BLEn/weiSIhNgHDGeyHubqg4nc3sb fAyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=rMKbeodQ4WTkkq5tRosZ2KGDR3ir2RGPxs5d/4Bd8AY=; b=uY9qKcDLALA94n4t0IftETMvn+g6tdtKcurEdJ1dOgdCH+UUFWACy0SNbNnxrtjOoL hHfQfiJWv+kDG033UaZThuiCBZ/HyZMu9ocTuOxPsOOZST6tw5G5LgRis2woMpqm6FEF AGHwQFPtyRwTwVbtZl2CGmn7BnGNGXoDt/jFfe6eYALh0vr5Kz2u+mvaRS2WoXNtAcBq +fFhJu58HjZzCzzbKmqbVohPpPx2WwTB0MWF9nnOUdfcKElzSp5f8W/FHjR+6rJ5PjXP EF7MkTRg8Ng1uI9IMgw8tJ+/RxP6xhRwiy1BxxsCq2cvoF2R3iCUORIga5lvkLQTXeG/ xbCg== X-Gm-Message-State: AOAM533OITax2nJQ35pGpMbFXV6/Dc/mH0avV+69aBwIzgmhy20UJHn+ yGOQcLAHjg5hlvldJVzlOn8qugf9+aw= X-Google-Smtp-Source: ABdhPJyEA6utHsGvIIABqPcv7uzVehHOsT37I95KaFX48Rl8lZHvHZVhRZwEemyEv8kgpZ0S9ymO8Q== X-Received: by 2002:a17:90b:3e83:: with SMTP id rj3mr56835815pjb.132.1641266842620; Mon, 03 Jan 2022 19:27:22 -0800 (PST) Received: from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id h19sm38096472pfh.112.2022.01.03.19.27.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jan 2022 19:27:22 -0800 (PST) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 3/3][SRU][OEM-5.13] Bluetooth: btusb: Add the new support IDs for WCN6855 Date: Tue, 4 Jan 2022 11:27:15 +0800 Message-Id: <20220104032715.73212-3-acelan.kao@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220104032715.73212-1-acelan.kao@canonical.com> References: <20211224023938.286186-1-kai.heng.feng@canonical.com> <20220104032715.73212-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.214.173; envelope-from=acelan@gmail.com; helo=mail-pl1-f173.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: "tjiang@codeaurora.org" BugLink: https://bugs.launchpad.net/bugs/1955689 Add the more IDs of HP to usb_device_id table for WCN6855. -Device(0489:e0cc) from /sys/kernel/debug/usb/devices T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0489 ProdID=e0cc Rev= 0.01 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms I: If#= 1 Alt= 7 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 65 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 65 Ivl=1ms -Device(0489:e0d6) from /sys/kernel/debug/usb/devices T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0489 ProdID=e0d6 Rev= 0.01 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms I: If#= 1 Alt= 7 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 65 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 65 Ivl=1ms Signed-off-by: Tim Jiang Signed-off-by: Marcel Holtmann (backported from commit 21a241b3bc153b346987a28cc132674646589e02 linux-next) Signed-off-by: Kai-Heng Feng Signed-off-by: Chia-Lin Kao (AceLan) --- drivers/bluetooth/btusb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 964837faf63a3..75b41725f1507 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -297,7 +297,14 @@ static const struct usb_device_id blacklist_table[] = { /* QCA WCN6855 chipset */ { USB_DEVICE(0x0cf3, 0xe600), .driver_info = BTUSB_QCA_WCN6855 | - BTUSB_WIDEBAND_SPEECH }, + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x0489, 0xe0cc), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x0489, 0xe0d6), .driver_info = BTUSB_QCA_WCN6855 | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, /* Broadcom BCM2035 */ { USB_DEVICE(0x0a5c, 0x2009), .driver_info = BTUSB_BCM92035 }, @@ -4272,7 +4279,7 @@ static void btusb_generate_qca_nvm_name(char *fwname, size_t max_size, /* The board_id should be split into two bytes * The 1st byte is chip ID, and the 2nd byte is platform ID * For example, board ID 0x010A, 0x01 is platform ID. 0x0A is chip ID - * Currently we have several platforms, and platform IDs are continuously added. + * we have several platforms, and platform IDs are continuously added * Platform ID: * 0x00 is for Mobile * 0x01 is for X86