Thread (3 messages) 3 messages, 3 authors, 2021-10-29

Re: [PATCH v16] Bluetooth: btusb: Add support using different nvm for variant WCN6855 controller

From: Matthias Kaehlcke <mka@chromium.org>
Date: 2021-10-29 18:35:55
Also in: linux-arm-msm, lkml

On Fri, Oct 29, 2021 at 11:21:21AM +0800, tjiang@codeaurora.org wrote:
quoted hunk ↗ jump to hunk
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 <redacted>
---
 drivers/bluetooth/btusb.c | 54
+++++++++++++++++++++++++++++++++++------------
 1 file changed, 40 insertions(+), 14 deletions(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 87b71740fad8..16bb5de3ce2f 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3195,6 +3195,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;
@@ -3226,6 +3229,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,
@@ -3380,6 +3384,41 @@ 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 ;
Remove blank before the semicolon.

Besides that:

Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help