public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072
@ 2026-02-09  7:03 Vivek Sahu
  2026-02-09  7:03 ` [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support Vivek Sahu
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Vivek Sahu @ 2026-02-09  7:03 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski,
	Balakrishna Godavarthi, Rocky Liao
  Cc: quic_mohamull, quic_hbandi, linux-bluetooth, devicetree,
	linux-kernel, linux-arm-msm, Vivek Sahu

QCC2072 is a WiFi/BT connectivity chip.
It requires different firmware, so document it as a new compat string.

Correct the sorting of other chipsets for better readability.

Signed-off-by: Vivek Sahu <vivek.sahu@oss.qualcomm.com>
---
 .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
index 6353a336f382..1f47ad36aa61 100644
--- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
@@ -18,13 +18,13 @@ properties:
     enum:
       - qcom,qca2066-bt
       - qcom,qca6174-bt
+      - qcom,qca6390-bt
       - qcom,qca9377-bt
-      - qcom,wcn3950-bt
+      - qcom,qcc2072-bt
       - qcom,wcn3988-bt
       - qcom,wcn3990-bt
       - qcom,wcn3991-bt
       - qcom,wcn3998-bt
-      - qcom,qca6390-bt
       - qcom,wcn6750-bt
       - qcom,wcn6855-bt
       - qcom,wcn7850-bt
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support
  2026-02-09  7:03 [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
@ 2026-02-09  7:03 ` Vivek Sahu
  2026-02-09 19:11   ` kernel test robot
  2026-02-10  1:23   ` kernel test robot
  2026-02-09  7:14 ` [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
  2026-02-09  7:59 ` [v2,1/2] " bluez.test.bot
  2 siblings, 2 replies; 6+ messages in thread
From: Vivek Sahu @ 2026-02-09  7:03 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski,
	Balakrishna Godavarthi, Rocky Liao
  Cc: quic_mohamull, quic_hbandi, linux-bluetooth, devicetree,
	linux-kernel, linux-arm-msm, Vivek Sahu

QCC2072 is a WiFi/BT connectivity chip.
It requires different firmware files and has different
configurations , so add it as a separate SoC type.

Correct the sorting of other chipsets for better readability.

Signed-off-by: Vivek Sahu <vivek.sahu@oss.qualcomm.com>
---
 drivers/bluetooth/btqca.c   | 41 ++++++++++++++++++++++---------------
 drivers/bluetooth/btqca.h   |  1 +
 drivers/bluetooth/hci_qca.c | 40 ++++++++++++++++++++++++++----------
 3 files changed, 54 insertions(+), 28 deletions(-)

diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c
index 7c958d6065be..7b85634ee3a1 100644
--- a/drivers/bluetooth/btqca.c
+++ b/drivers/bluetooth/btqca.c
@@ -816,6 +816,17 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		snprintf(config.fwname, sizeof(config.fwname), "qca/%s", rampatch_name);
 	} else {
 		switch (soc_type) {
+		case QCA_QCA2066:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/hpbtfw%02x.tlv", rom_ver);
+			break;
+		case QCA_QCA6390:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/htbtfw%02x.tlv", rom_ver);
+			break;
+		case QCA_QCC2072:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/ornbtfw%02x.tlv", rom_ver);
 		case QCA_WCN3950:
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/cmbtfw%02x.tlv", rom_ver);
@@ -830,14 +841,6 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/apbtfw%02x.tlv", rom_ver);
 			break;
-		case QCA_QCA2066:
-			snprintf(config.fwname, sizeof(config.fwname),
-				 "qca/hpbtfw%02x.tlv", rom_ver);
-			break;
-		case QCA_QCA6390:
-			snprintf(config.fwname, sizeof(config.fwname),
-				 "qca/htbtfw%02x.tlv", rom_ver);
-			break;
 		case QCA_WCN6750:
 			/* Choose mbn file by default.If mbn file is not found
 			 * then choose tlv file
@@ -885,6 +888,19 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 		}
 	} else {
 		switch (soc_type) {
+		case QCA_QCA2066:
+			qca_get_nvm_name_by_board(config.fwname,
+				sizeof(config.fwname), "hpnv", soc_type, ver,
+				rom_ver, boardid);
+			break;
+		case QCA_QCA6390:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/htnv%02x.bin", rom_ver);
+			break;
+		case QCA_QCC2072:
+			snprintf(config.fwname, sizeof(config.fwname),
+				 "qca/ornnv%02x.bin", rom_ver);
+			break;
 		case QCA_WCN3950:
 			if (le32_to_cpu(ver.soc_id) == QCA_WCN3950_SOC_ID_T)
 				variant = "t";
@@ -907,15 +923,6 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/apnv%02x.bin", rom_ver);
 			break;
-		case QCA_QCA2066:
-			qca_get_nvm_name_by_board(config.fwname,
-				sizeof(config.fwname), "hpnv", soc_type, ver,
-				rom_ver, boardid);
-			break;
-		case QCA_QCA6390:
-			snprintf(config.fwname, sizeof(config.fwname),
-				 "qca/htnv%02x.bin", rom_ver);
-			break;
 		case QCA_WCN6750:
 			snprintf(config.fwname, sizeof(config.fwname),
 				 "qca/msnv%02x.bin", rom_ver);
diff --git a/drivers/bluetooth/btqca.h b/drivers/bluetooth/btqca.h
index 8f3c1b1c77b3..a175ac31e7b2 100644
--- a/drivers/bluetooth/btqca.h
+++ b/drivers/bluetooth/btqca.h
@@ -158,6 +158,7 @@ enum qca_btsoc_type {
 	QCA_WCN6750,
 	QCA_WCN6855,
 	QCA_WCN7850,
+	QCA_QCC2072,
 };
 
 #if IS_ENABLED(CONFIG_BT_QCA)
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 888176b0faa9..2ce6e19e5b86 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -623,6 +623,7 @@ static int qca_open(struct hci_uart *hu)
 		qcadev = serdev_device_get_drvdata(hu->serdev);
 
 		switch (qcadev->btsoc_type) {
+		case QCA_QCC2072:
 		case QCA_WCN3950:
 		case QCA_WCN3988:
 		case QCA_WCN3990:
@@ -1498,6 +1499,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type)
 		 * changing the baudrate of chip and host.
 		 */
 		switch (soc_type) {
+		case QCA_QCC2072:
 		case QCA_WCN3950:
 		case QCA_WCN3988:
 		case QCA_WCN3990:
@@ -1514,6 +1516,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type)
 		}
 
 		switch (soc_type) {
+		case QCA_QCC2072:
 		case QCA_WCN3990:
 			reinit_completion(&qca->drop_ev_comp);
 			set_bit(QCA_DROP_VENDOR_EVENT, &qca->flags);
@@ -1533,6 +1536,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type)
 
 error:
 		switch (soc_type) {
+		case QCA_QCC2072:
 		case QCA_WCN3950:
 		case QCA_WCN3988:
 		case QCA_WCN3990:
@@ -1549,6 +1553,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type)
 		}
 
 		switch (soc_type) {
+		case QCA_QCC2072:
 		case QCA_WCN3990:
 			/* Wait for the controller to send the vendor event
 			 * for the baudrate change command.
@@ -1900,6 +1905,10 @@ static int qca_setup(struct hci_uart *hu)
 		soc_name = "qca2066";
 		break;
 
+	case QCA_QCC2072:
+		soc_name = "qcc2072";
+		break;
+
 	case QCA_WCN3950:
 	case QCA_WCN3988:
 	case QCA_WCN3990:
@@ -1935,6 +1944,7 @@ static int qca_setup(struct hci_uart *hu)
 	clear_bit(QCA_SSR_TRIGGERED, &qca->flags);
 
 	switch (soc_type) {
+	case QCA_QCC2072:
 	case QCA_WCN3950:
 	case QCA_WCN3988:
 	case QCA_WCN3990:
@@ -1969,6 +1979,7 @@ static int qca_setup(struct hci_uart *hu)
 	}
 
 	switch (soc_type) {
+	case QCA_QCC2072:
 	case QCA_WCN3950:
 	case QCA_WCN3988:
 	case QCA_WCN3990:
@@ -2058,6 +2069,23 @@ static const struct hci_uart_proto qca_proto = {
 	.dequeue	= qca_dequeue,
 };
 
+static const struct qca_device_data qca_soc_data_qca2066 __maybe_unused = {
+	.soc_type = QCA_QCA2066,
+	.num_vregs = 0,
+};
+
+static const struct qca_device_data qca_soc_data_qca6390 __maybe_unused = {
+	.soc_type = QCA_QCA6390,
+	.num_vregs = 0,
+	.capabilities = QCA_CAP_WIDEBAND_SPEECH | QCA_CAP_VALID_LE_STATES,
+};
+
+static const struct qca_device_data qca_soc_data_qcc2072 __maybe_unused = {
+	.soc_type = QCA_QCC2072,
+	.num_vregs = 0,
+	.capabilities = QCA_CAP_WIDEBAND_SPEECH | QCA_CAP_VALID_LE_STATES,
+};
+
 static const struct qca_device_data qca_soc_data_wcn3950 __maybe_unused = {
 	.soc_type = QCA_WCN3950,
 	.vregs = (struct qca_vreg []) {
@@ -2114,17 +2142,6 @@ static const struct qca_device_data qca_soc_data_wcn3998 __maybe_unused = {
 	.num_vregs = 4,
 };
 
-static const struct qca_device_data qca_soc_data_qca2066 __maybe_unused = {
-	.soc_type = QCA_QCA2066,
-	.num_vregs = 0,
-	.capabilities = QCA_CAP_WIDEBAND_SPEECH | QCA_CAP_VALID_LE_STATES,
-};
-
-static const struct qca_device_data qca_soc_data_qca6390 __maybe_unused = {
-	.soc_type = QCA_QCA6390,
-	.num_vregs = 0,
-};
-
 static const struct qca_device_data qca_soc_data_wcn6750 __maybe_unused = {
 	.soc_type = QCA_WCN6750,
 	.vregs = (struct qca_vreg []) {
@@ -2715,6 +2732,7 @@ static const struct of_device_id qca_bluetooth_of_match[] = {
 	{ .compatible = "qcom,qca6174-bt" },
 	{ .compatible = "qcom,qca6390-bt", .data = &qca_soc_data_qca6390},
 	{ .compatible = "qcom,qca9377-bt" },
+	{ .compatible = "qcom,qcc2072-bt", .data = &qca_soc_data_qcc2072},
 	{ .compatible = "qcom,wcn3950-bt", .data = &qca_soc_data_wcn3950},
 	{ .compatible = "qcom,wcn3988-bt", .data = &qca_soc_data_wcn3988},
 	{ .compatible = "qcom,wcn3990-bt", .data = &qca_soc_data_wcn3990},
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072
  2026-02-09  7:03 [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
  2026-02-09  7:03 ` [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support Vivek Sahu
@ 2026-02-09  7:14 ` Vivek Sahu
  2026-02-09  7:59 ` [v2,1/2] " bluez.test.bot
  2 siblings, 0 replies; 6+ messages in thread
From: Vivek Sahu @ 2026-02-09  7:14 UTC (permalink / raw)
  To: Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski,
	Balakrishna Godavarthi, Rocky Liao
  Cc: quic_mohamull, quic_hbandi, linux-bluetooth, devicetree,
	linux-kernel, linux-arm-msm


On 2/9/2026 12:33 PM, Vivek Sahu wrote:
> QCC2072 is a WiFi/BT connectivity chip.
> It requires different firmware, so document it as a new compat string.
>
> Correct the sorting of other chipsets for better readability.
>
> Signed-off-by: Vivek Sahu <vivek.sahu@oss.qualcomm.com>
> ---
>   .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
> index 6353a336f382..1f47ad36aa61 100644
> --- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
> +++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
> @@ -18,13 +18,13 @@ properties:
>       enum:
>         - qcom,qca2066-bt
>         - qcom,qca6174-bt
> +      - qcom,qca6390-bt
>         - qcom,qca9377-bt
> -      - qcom,wcn3950-bt
> +      - qcom,qcc2072-bt
>         - qcom,wcn3988-bt
>         - qcom,wcn3990-bt
>         - qcom,wcn3991-bt
>         - qcom,wcn3998-bt
> -      - qcom,qca6390-bt
>         - qcom,wcn6750-bt
>         - qcom,wcn6855-bt
>         - qcom,wcn7850-bt
"qcom,wcn3950-bt" is deleted by mistake. Will correct it in next patch set.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [v2,1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072
  2026-02-09  7:03 [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
  2026-02-09  7:03 ` [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support Vivek Sahu
  2026-02-09  7:14 ` [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
@ 2026-02-09  7:59 ` bluez.test.bot
  2 siblings, 0 replies; 6+ messages in thread
From: bluez.test.bot @ 2026-02-09  7:59 UTC (permalink / raw)
  To: linux-bluetooth, vivek.sahu

[-- Attachment #1: Type: text/plain, Size: 550 bytes --]

This is an automated email and please do not reply to this email.

Dear Submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.

----- Output -----

error: Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml: does not exist in index
hint: Use 'git am --show-current-patch' to see the failed patch

Please resolve the issue and submit the patches again.


---
Regards,
Linux Bluetooth


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support
  2026-02-09  7:03 ` [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support Vivek Sahu
@ 2026-02-09 19:11   ` kernel test robot
  2026-02-10  1:23   ` kernel test robot
  1 sibling, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-02-09 19:11 UTC (permalink / raw)
  To: Vivek Sahu, Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski,
	Balakrishna Godavarthi, Rocky Liao
  Cc: oe-kbuild-all, quic_mohamull, quic_hbandi, linux-bluetooth,
	devicetree, linux-kernel, linux-arm-msm, Vivek Sahu

Hi Vivek,

kernel test robot noticed the following build warnings:

[auto build test WARNING on bluetooth/master]
[also build test WARNING on robh/for-next linus/master v6.19]
[cannot apply to bluetooth-next/master next-20260205]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Vivek-Sahu/Bluetooth-qca-add-QCC2072-support/20260209-150905
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master
patch link:    https://lore.kernel.org/r/20260209070356.187301-2-vivek.sahu%40oss.qualcomm.com
patch subject: [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support
config: alpha-allmodconfig (https://download.01.org/0day-ci/archive/20260210/202602100332.6QKGVLHq-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260210/202602100332.6QKGVLHq-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602100332.6QKGVLHq-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/bluetooth/btqca.c: In function 'qca_uart_setup':
>> drivers/bluetooth/btqca.c:828:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
     828 |                         snprintf(config.fwname, sizeof(config.fwname),
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     829 |                                  "qca/ornbtfw%02x.tlv", rom_ver);
         |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/bluetooth/btqca.c:830:17: note: here
     830 |                 case QCA_WCN3950:
         |                 ^~~~


vim +828 drivers/bluetooth/btqca.c

   782	
   783	int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
   784			   enum qca_btsoc_type soc_type, struct qca_btsoc_version ver,
   785			   const char *firmware_name, const char *rampatch_name)
   786	{
   787		struct qca_fw_config config = {};
   788		const char *variant = "";
   789		int err;
   790		u8 rom_ver = 0;
   791		u32 soc_ver;
   792		u16 boardid = 0;
   793	
   794		bt_dev_dbg(hdev, "QCA setup on UART");
   795	
   796		soc_ver = get_soc_ver(ver.soc_id, ver.rom_ver);
   797	
   798		bt_dev_info(hdev, "QCA controller version 0x%08x", soc_ver);
   799	
   800		config.user_baud_rate = baudrate;
   801	
   802		/* Firmware files to download are based on ROM version.
   803		 * ROM version is derived from last two bytes of soc_ver.
   804		 */
   805		if (soc_type == QCA_WCN3988)
   806			rom_ver = ((soc_ver & 0x00000f00) >> 0x05) | (soc_ver & 0x0000000f);
   807		else
   808			rom_ver = ((soc_ver & 0x00000f00) >> 0x04) | (soc_ver & 0x0000000f);
   809	
   810		if (soc_type == QCA_WCN6750)
   811			qca_send_patch_config_cmd(hdev);
   812	
   813		/* Download rampatch file */
   814		config.type = TLV_TYPE_PATCH;
   815		if (rampatch_name) {
   816			snprintf(config.fwname, sizeof(config.fwname), "qca/%s", rampatch_name);
   817		} else {
   818			switch (soc_type) {
   819			case QCA_QCA2066:
   820				snprintf(config.fwname, sizeof(config.fwname),
   821					 "qca/hpbtfw%02x.tlv", rom_ver);
   822				break;
   823			case QCA_QCA6390:
   824				snprintf(config.fwname, sizeof(config.fwname),
   825					 "qca/htbtfw%02x.tlv", rom_ver);
   826				break;
   827			case QCA_QCC2072:
 > 828				snprintf(config.fwname, sizeof(config.fwname),
   829					 "qca/ornbtfw%02x.tlv", rom_ver);
   830			case QCA_WCN3950:
   831				snprintf(config.fwname, sizeof(config.fwname),
   832					 "qca/cmbtfw%02x.tlv", rom_ver);
   833				break;
   834			case QCA_WCN3990:
   835			case QCA_WCN3991:
   836			case QCA_WCN3998:
   837				snprintf(config.fwname, sizeof(config.fwname),
   838					 "qca/crbtfw%02x.tlv", rom_ver);
   839				break;
   840			case QCA_WCN3988:
   841				snprintf(config.fwname, sizeof(config.fwname),
   842					 "qca/apbtfw%02x.tlv", rom_ver);
   843				break;
   844			case QCA_WCN6750:
   845				/* Choose mbn file by default.If mbn file is not found
   846				 * then choose tlv file
   847				 */
   848				config.type = ELF_TYPE_PATCH;
   849				snprintf(config.fwname, sizeof(config.fwname),
   850					 "qca/msbtfw%02x.mbn", rom_ver);
   851				break;
   852			case QCA_WCN6855:
   853				snprintf(config.fwname, sizeof(config.fwname),
   854					 "qca/hpbtfw%02x.tlv", rom_ver);
   855				break;
   856			case QCA_WCN7850:
   857				snprintf(config.fwname, sizeof(config.fwname),
   858					 "qca/hmtbtfw%02x.tlv", rom_ver);
   859				break;
   860			default:
   861				snprintf(config.fwname, sizeof(config.fwname),
   862					 "qca/rampatch_%08x.bin", soc_ver);
   863			}
   864		}
   865	
   866		err = qca_download_firmware(hdev, &config, soc_type, rom_ver);
   867		if (err < 0) {
   868			bt_dev_err(hdev, "QCA Failed to download patch (%d)", err);
   869			return err;
   870		}
   871	
   872		/* Give the controller some time to get ready to receive the NVM */
   873		msleep(10);
   874	
   875		if (soc_type == QCA_QCA2066 || soc_type == QCA_WCN7850)
   876			qca_read_fw_board_id(hdev, &boardid);
   877	
   878		/* Download NVM configuration */
   879		config.type = TLV_TYPE_NVM;
   880		if (firmware_name) {
   881			/* The firmware name has an extension, use it directly */
   882			if (qca_filename_has_extension(firmware_name)) {
   883				snprintf(config.fwname, sizeof(config.fwname), "qca/%s", firmware_name);
   884			} else {
   885				qca_read_fw_board_id(hdev, &boardid);
   886				qca_get_nvm_name_by_board(config.fwname, sizeof(config.fwname),
   887					 firmware_name, soc_type, ver, 0, boardid);
   888			}
   889		} else {
   890			switch (soc_type) {
   891			case QCA_QCA2066:
   892				qca_get_nvm_name_by_board(config.fwname,
   893					sizeof(config.fwname), "hpnv", soc_type, ver,
   894					rom_ver, boardid);
   895				break;
   896			case QCA_QCA6390:
   897				snprintf(config.fwname, sizeof(config.fwname),
   898					 "qca/htnv%02x.bin", rom_ver);
   899				break;
   900			case QCA_QCC2072:
   901				snprintf(config.fwname, sizeof(config.fwname),
   902					 "qca/ornnv%02x.bin", rom_ver);
   903				break;
   904			case QCA_WCN3950:
   905				if (le32_to_cpu(ver.soc_id) == QCA_WCN3950_SOC_ID_T)
   906					variant = "t";
   907				else if (le32_to_cpu(ver.soc_id) == QCA_WCN3950_SOC_ID_S)
   908					variant = "s";
   909	
   910				snprintf(config.fwname, sizeof(config.fwname),
   911					 "qca/cmnv%02x%s.bin", rom_ver, variant);
   912				break;
   913			case QCA_WCN3990:
   914			case QCA_WCN3991:
   915			case QCA_WCN3998:
   916				if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID)
   917					variant = "u";
   918	
   919				snprintf(config.fwname, sizeof(config.fwname),
   920					 "qca/crnv%02x%s.bin", rom_ver, variant);
   921				break;
   922			case QCA_WCN3988:
   923				snprintf(config.fwname, sizeof(config.fwname),
   924					 "qca/apnv%02x.bin", rom_ver);
   925				break;
   926			case QCA_WCN6750:
   927				snprintf(config.fwname, sizeof(config.fwname),
   928					 "qca/msnv%02x.bin", rom_ver);
   929				break;
   930			case QCA_WCN6855:
   931				qca_read_fw_board_id(hdev, &boardid);
   932				qca_get_nvm_name_by_board(config.fwname, sizeof(config.fwname),
   933							  "hpnv", soc_type, ver, rom_ver, boardid);
   934				break;
   935			case QCA_WCN7850:
   936				qca_get_nvm_name_by_board(config.fwname, sizeof(config.fwname),
   937					 "hmtnv", soc_type, ver, rom_ver, boardid);
   938				break;
   939			default:
   940				snprintf(config.fwname, sizeof(config.fwname),
   941					 "qca/nvm_%08x.bin", soc_ver);
   942			}
   943		}
   944	
   945		err = qca_download_firmware(hdev, &config, soc_type, rom_ver);
   946		if (err < 0) {
   947			bt_dev_err(hdev, "QCA Failed to download NVM (%d)", err);
   948			return err;
   949		}
   950	
   951		switch (soc_type) {
   952		case QCA_WCN3991:
   953		case QCA_QCA2066:
   954		case QCA_QCA6390:
   955		case QCA_WCN6750:
   956		case QCA_WCN6855:
   957		case QCA_WCN7850:
   958			err = qca_disable_soc_logging(hdev);
   959			if (err < 0)
   960				return err;
   961			break;
   962		default:
   963			break;
   964		}
   965	
   966		/* WCN399x and WCN6750 supports the Microsoft vendor extension with 0xFD70 as the
   967		 * VsMsftOpCode.
   968		 */
   969		switch (soc_type) {
   970		case QCA_WCN3950:
   971		case QCA_WCN3988:
   972		case QCA_WCN3990:
   973		case QCA_WCN3991:
   974		case QCA_WCN3998:
   975		case QCA_WCN6750:
   976			hci_set_msft_opcode(hdev, 0xFD70);
   977			break;
   978		default:
   979			break;
   980		}
   981	
   982		/* Perform HCI reset */
   983		err = qca_send_reset(hdev);
   984		if (err < 0) {
   985			bt_dev_err(hdev, "QCA Failed to run HCI_RESET (%d)", err);
   986			return err;
   987		}
   988	
   989		switch (soc_type) {
   990		case QCA_WCN3991:
   991		case QCA_WCN6750:
   992		case QCA_WCN6855:
   993		case QCA_WCN7850:
   994			/* get fw build info */
   995			err = qca_read_fw_build_info(hdev);
   996			if (err < 0)
   997				return err;
   998			break;
   999		default:
  1000			break;
  1001		}
  1002	
  1003		err = qca_check_bdaddr(hdev, &config);
  1004		if (err)
  1005			return err;
  1006	
  1007		bt_dev_info(hdev, "QCA setup on UART is completed");
  1008	
  1009		return 0;
  1010	}
  1011	EXPORT_SYMBOL_GPL(qca_uart_setup);
  1012	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support
  2026-02-09  7:03 ` [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support Vivek Sahu
  2026-02-09 19:11   ` kernel test robot
@ 2026-02-10  1:23   ` kernel test robot
  1 sibling, 0 replies; 6+ messages in thread
From: kernel test robot @ 2026-02-10  1:23 UTC (permalink / raw)
  To: Vivek Sahu, Marcel Holtmann, Luiz Augusto von Dentz, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski,
	Balakrishna Godavarthi, Rocky Liao
  Cc: oe-kbuild-all, quic_mohamull, quic_hbandi, linux-bluetooth,
	devicetree, linux-kernel, linux-arm-msm, Vivek Sahu

Hi Vivek,

kernel test robot noticed the following build warnings:

[auto build test WARNING on bluetooth/master]
[also build test WARNING on robh/for-next linus/master v6.19]
[cannot apply to bluetooth-next/master next-20260205]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Vivek-Sahu/Bluetooth-qca-add-QCC2072-support/20260209-150905
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master
patch link:    https://lore.kernel.org/r/20260209070356.187301-2-vivek.sahu%40oss.qualcomm.com
patch subject: [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20260210/202602100949.3T4kUNgD-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260210/202602100949.3T4kUNgD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602100949.3T4kUNgD-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/bluetooth/btqca.c:830:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
     830 |                 case QCA_WCN3950:
         |                 ^
   drivers/bluetooth/btqca.c:830:3: note: insert '__attribute__((fallthrough));' to silence this warning
     830 |                 case QCA_WCN3950:
         |                 ^
         |                 __attribute__((fallthrough)); 
   drivers/bluetooth/btqca.c:830:3: note: insert 'break;' to avoid fall-through
     830 |                 case QCA_WCN3950:
         |                 ^
         |                 break; 
   1 warning generated.


vim +830 drivers/bluetooth/btqca.c

e41137d8bd1a8e Zijun Hu                       2024-04-17   782  
aadebac4639d84 Balakrishna Godavarthi         2018-08-03   783  int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
059924fdf6c1c3 Venkata Lakshmi Narayana Gubba 2020-11-19   784  		   enum qca_btsoc_type soc_type, struct qca_btsoc_version ver,
30209aeff75fe1 Cheng Jiang                    2025-01-07   785  		   const char *firmware_name, const char *rampatch_name)
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   786  {
dd336649ba8978 Johan Hovold                   2024-04-30   787  	struct qca_fw_config config = {};
1cc41b5092e3aa Dmitry Baryshkov               2025-02-07   788  	const char *variant = "";
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   789  	int err;
523760b7ff8871 Harish Bandi                   2019-04-26   790  	u8 rom_ver = 0;
059924fdf6c1c3 Venkata Lakshmi Narayana Gubba 2020-11-19   791  	u32 soc_ver;
a7f8dedb4be2cc Tim Jiang                      2023-09-12   792  	u16 boardid = 0;
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   793  
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03   794  	bt_dev_dbg(hdev, "QCA setup on UART");
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   795  
059924fdf6c1c3 Venkata Lakshmi Narayana Gubba 2020-11-19   796  	soc_ver = get_soc_ver(ver.soc_id, ver.rom_ver);
059924fdf6c1c3 Venkata Lakshmi Narayana Gubba 2020-11-19   797  
059924fdf6c1c3 Venkata Lakshmi Narayana Gubba 2020-11-19   798  	bt_dev_info(hdev, "QCA controller version 0x%08x", soc_ver);
059924fdf6c1c3 Venkata Lakshmi Narayana Gubba 2020-11-19   799  
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   800  	config.user_baud_rate = baudrate;
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   801  
4219d4686875fd Balakrishna Godavarthi         2018-08-03   802  	/* Firmware files to download are based on ROM version.
4219d4686875fd Balakrishna Godavarthi         2018-08-03   803  	 * ROM version is derived from last two bytes of soc_ver.
4219d4686875fd Balakrishna Godavarthi         2018-08-03   804  	 */
f904feefe60c28 Luca Weiss                     2023-08-02   805  	if (soc_type == QCA_WCN3988)
f904feefe60c28 Luca Weiss                     2023-08-02   806  		rom_ver = ((soc_ver & 0x00000f00) >> 0x05) | (soc_ver & 0x0000000f);
f904feefe60c28 Luca Weiss                     2023-08-02   807  	else
99fba8e3f1d1fd Venkata Lakshmi Narayana Gubba 2021-05-18   808  		rom_ver = ((soc_ver & 0x00000f00) >> 0x04) | (soc_ver & 0x0000000f);
99fba8e3f1d1fd Venkata Lakshmi Narayana Gubba 2021-05-18   809  
4fac8a7ac80b18 Sai Teja Aluvala               2022-01-07   810  	if (soc_type == QCA_WCN6750)
4fac8a7ac80b18 Sai Teja Aluvala               2022-01-07   811  		qca_send_patch_config_cmd(hdev);
4fac8a7ac80b18 Sai Teja Aluvala               2022-01-07   812  
99fba8e3f1d1fd Venkata Lakshmi Narayana Gubba 2021-05-18   813  	/* Download rampatch file */
99fba8e3f1d1fd Venkata Lakshmi Narayana Gubba 2021-05-18   814  	config.type = TLV_TYPE_PATCH;
30209aeff75fe1 Cheng Jiang                    2025-01-07   815  	if (rampatch_name) {
30209aeff75fe1 Cheng Jiang                    2025-01-07   816  		snprintf(config.fwname, sizeof(config.fwname), "qca/%s", rampatch_name);
30209aeff75fe1 Cheng Jiang                    2025-01-07   817  	} else {
691d54d0f7cb14 Neil Armstrong                 2023-08-16   818  		switch (soc_type) {
5590323f5a3811 Vivek Sahu                     2026-02-09   819  		case QCA_QCA2066:
5590323f5a3811 Vivek Sahu                     2026-02-09   820  			snprintf(config.fwname, sizeof(config.fwname),
5590323f5a3811 Vivek Sahu                     2026-02-09   821  				 "qca/hpbtfw%02x.tlv", rom_ver);
5590323f5a3811 Vivek Sahu                     2026-02-09   822  			break;
5590323f5a3811 Vivek Sahu                     2026-02-09   823  		case QCA_QCA6390:
5590323f5a3811 Vivek Sahu                     2026-02-09   824  			snprintf(config.fwname, sizeof(config.fwname),
5590323f5a3811 Vivek Sahu                     2026-02-09   825  				 "qca/htbtfw%02x.tlv", rom_ver);
5590323f5a3811 Vivek Sahu                     2026-02-09   826  			break;
5590323f5a3811 Vivek Sahu                     2026-02-09   827  		case QCA_QCC2072:
5590323f5a3811 Vivek Sahu                     2026-02-09   828  			snprintf(config.fwname, sizeof(config.fwname),
5590323f5a3811 Vivek Sahu                     2026-02-09   829  				 "qca/ornbtfw%02x.tlv", rom_ver);
d5712c511cb358 Dmitry Baryshkov               2025-02-07  @830  		case QCA_WCN3950:
d5712c511cb358 Dmitry Baryshkov               2025-02-07   831  			snprintf(config.fwname, sizeof(config.fwname),
d5712c511cb358 Dmitry Baryshkov               2025-02-07   832  				 "qca/cmbtfw%02x.tlv", rom_ver);
d5712c511cb358 Dmitry Baryshkov               2025-02-07   833  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   834  		case QCA_WCN3990:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   835  		case QCA_WCN3991:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   836  		case QCA_WCN3998:
4219d4686875fd Balakrishna Godavarthi         2018-08-03   837  			snprintf(config.fwname, sizeof(config.fwname),
4219d4686875fd Balakrishna Godavarthi         2018-08-03   838  				 "qca/crbtfw%02x.tlv", rom_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   839  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   840  		case QCA_WCN3988:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   841  			snprintf(config.fwname, sizeof(config.fwname),
691d54d0f7cb14 Neil Armstrong                 2023-08-16   842  				 "qca/apbtfw%02x.tlv", rom_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   843  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   844  		case QCA_WCN6750:
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   845  			/* Choose mbn file by default.If mbn file is not found
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   846  			 * then choose tlv file
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   847  			 */
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   848  			config.type = ELF_TYPE_PATCH;
d8f97da1b92d2f Venkata Lakshmi Narayana Gubba 2021-05-18   849  			snprintf(config.fwname, sizeof(config.fwname),
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   850  				 "qca/msbtfw%02x.mbn", rom_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   851  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   852  		case QCA_WCN6855:
095327fede005f Steev Klimaszewski             2023-03-26   853  			snprintf(config.fwname, sizeof(config.fwname),
095327fede005f Steev Klimaszewski             2023-03-26   854  				 "qca/hpbtfw%02x.tlv", rom_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   855  			break;
e0c1278ac89b03 Neil Armstrong                 2023-08-16   856  		case QCA_WCN7850:
e0c1278ac89b03 Neil Armstrong                 2023-08-16   857  			snprintf(config.fwname, sizeof(config.fwname),
e0c1278ac89b03 Neil Armstrong                 2023-08-16   858  				 "qca/hmtbtfw%02x.tlv", rom_ver);
e0c1278ac89b03 Neil Armstrong                 2023-08-16   859  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   860  		default:
4219d4686875fd Balakrishna Godavarthi         2018-08-03   861  			snprintf(config.fwname, sizeof(config.fwname),
4219d4686875fd Balakrishna Godavarthi         2018-08-03   862  				 "qca/rampatch_%08x.bin", soc_ver);
4219d4686875fd Balakrishna Godavarthi         2018-08-03   863  		}
30209aeff75fe1 Cheng Jiang                    2025-01-07   864  	}
4219d4686875fd Balakrishna Godavarthi         2018-08-03   865  
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   866  	err = qca_download_firmware(hdev, &config, soc_type, rom_ver);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   867  	if (err < 0) {
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03   868  		bt_dev_err(hdev, "QCA Failed to download patch (%d)", err);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   869  		return err;
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   870  	}
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   871  
8059ba0bd0e469 Matthias Kaehlcke              2019-07-09   872  	/* Give the controller some time to get ready to receive the NVM */
8059ba0bd0e469 Matthias Kaehlcke              2019-07-09   873  	msleep(10);
8059ba0bd0e469 Matthias Kaehlcke              2019-07-09   874  
e41137d8bd1a8e Zijun Hu                       2024-04-17   875  	if (soc_type == QCA_QCA2066 || soc_type == QCA_WCN7850)
a7f8dedb4be2cc Tim Jiang                      2023-09-12   876  		qca_read_fw_board_id(hdev, &boardid);
a7f8dedb4be2cc Tim Jiang                      2023-09-12   877  
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   878  	/* Download NVM configuration */
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   879  	config.type = TLV_TYPE_NVM;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   880  	if (firmware_name) {
a4c5a468c6329b Cheng Jiang                    2025-01-07   881  		/* The firmware name has an extension, use it directly */
a4c5a468c6329b Cheng Jiang                    2025-01-07   882  		if (qca_filename_has_extension(firmware_name)) {
a4c5a468c6329b Cheng Jiang                    2025-01-07   883  			snprintf(config.fwname, sizeof(config.fwname), "qca/%s", firmware_name);
a4c5a468c6329b Cheng Jiang                    2025-01-07   884  		} else {
a4c5a468c6329b Cheng Jiang                    2025-01-07   885  			qca_read_fw_board_id(hdev, &boardid);
a4c5a468c6329b Cheng Jiang                    2025-01-07   886  			qca_get_nvm_name_by_board(config.fwname, sizeof(config.fwname),
a4c5a468c6329b Cheng Jiang                    2025-01-07   887  				 firmware_name, soc_type, ver, 0, boardid);
a4c5a468c6329b Cheng Jiang                    2025-01-07   888  		}
691d54d0f7cb14 Neil Armstrong                 2023-08-16   889  	} else {
691d54d0f7cb14 Neil Armstrong                 2023-08-16   890  		switch (soc_type) {
5590323f5a3811 Vivek Sahu                     2026-02-09   891  		case QCA_QCA2066:
5590323f5a3811 Vivek Sahu                     2026-02-09   892  			qca_get_nvm_name_by_board(config.fwname,
5590323f5a3811 Vivek Sahu                     2026-02-09   893  				sizeof(config.fwname), "hpnv", soc_type, ver,
5590323f5a3811 Vivek Sahu                     2026-02-09   894  				rom_ver, boardid);
5590323f5a3811 Vivek Sahu                     2026-02-09   895  			break;
5590323f5a3811 Vivek Sahu                     2026-02-09   896  		case QCA_QCA6390:
5590323f5a3811 Vivek Sahu                     2026-02-09   897  			snprintf(config.fwname, sizeof(config.fwname),
5590323f5a3811 Vivek Sahu                     2026-02-09   898  				 "qca/htnv%02x.bin", rom_ver);
5590323f5a3811 Vivek Sahu                     2026-02-09   899  			break;
5590323f5a3811 Vivek Sahu                     2026-02-09   900  		case QCA_QCC2072:
5590323f5a3811 Vivek Sahu                     2026-02-09   901  			snprintf(config.fwname, sizeof(config.fwname),
5590323f5a3811 Vivek Sahu                     2026-02-09   902  				 "qca/ornnv%02x.bin", rom_ver);
5590323f5a3811 Vivek Sahu                     2026-02-09   903  			break;
d5712c511cb358 Dmitry Baryshkov               2025-02-07   904  		case QCA_WCN3950:
d5712c511cb358 Dmitry Baryshkov               2025-02-07   905  			if (le32_to_cpu(ver.soc_id) == QCA_WCN3950_SOC_ID_T)
d5712c511cb358 Dmitry Baryshkov               2025-02-07   906  				variant = "t";
d5712c511cb358 Dmitry Baryshkov               2025-02-07   907  			else if (le32_to_cpu(ver.soc_id) == QCA_WCN3950_SOC_ID_S)
e92900c9803fb3 Dmitry Baryshkov               2025-04-01   908  				variant = "s";
d5712c511cb358 Dmitry Baryshkov               2025-02-07   909  
d5712c511cb358 Dmitry Baryshkov               2025-02-07   910  			snprintf(config.fwname, sizeof(config.fwname),
d5712c511cb358 Dmitry Baryshkov               2025-02-07   911  				 "qca/cmnv%02x%s.bin", rom_ver, variant);
d5712c511cb358 Dmitry Baryshkov               2025-02-07   912  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   913  		case QCA_WCN3990:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   914  		case QCA_WCN3991:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   915  		case QCA_WCN3998:
1cc41b5092e3aa Dmitry Baryshkov               2025-02-07   916  			if (le32_to_cpu(ver.soc_id) == QCA_WCN3991_SOC_ID)
1cc41b5092e3aa Dmitry Baryshkov               2025-02-07   917  				variant = "u";
1cc41b5092e3aa Dmitry Baryshkov               2025-02-07   918  
4219d4686875fd Balakrishna Godavarthi         2018-08-03   919  			snprintf(config.fwname, sizeof(config.fwname),
1cc41b5092e3aa Dmitry Baryshkov               2025-02-07   920  				 "qca/crnv%02x%s.bin", rom_ver, variant);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   921  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   922  		case QCA_WCN3988:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   923  			snprintf(config.fwname, sizeof(config.fwname),
691d54d0f7cb14 Neil Armstrong                 2023-08-16   924  				 "qca/apnv%02x.bin", rom_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   925  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   926  		case QCA_WCN6750:
d8f97da1b92d2f Venkata Lakshmi Narayana Gubba 2021-05-18   927  			snprintf(config.fwname, sizeof(config.fwname),
d8f97da1b92d2f Venkata Lakshmi Narayana Gubba 2021-05-18   928  				 "qca/msnv%02x.bin", rom_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   929  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   930  		case QCA_WCN6855:
a2fad248947d70 Zijun Hu                       2025-01-13   931  			qca_read_fw_board_id(hdev, &boardid);
a2fad248947d70 Zijun Hu                       2025-01-13   932  			qca_get_nvm_name_by_board(config.fwname, sizeof(config.fwname),
a2fad248947d70 Zijun Hu                       2025-01-13   933  						  "hpnv", soc_type, ver, rom_ver, boardid);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   934  			break;
e0c1278ac89b03 Neil Armstrong                 2023-08-16   935  		case QCA_WCN7850:
a4c5a468c6329b Cheng Jiang                    2025-01-07   936  			qca_get_nvm_name_by_board(config.fwname, sizeof(config.fwname),
a4c5a468c6329b Cheng Jiang                    2025-01-07   937  				 "hmtnv", soc_type, ver, rom_ver, boardid);
e0c1278ac89b03 Neil Armstrong                 2023-08-16   938  			break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   939  		default:
4219d4686875fd Balakrishna Godavarthi         2018-08-03   940  			snprintf(config.fwname, sizeof(config.fwname),
4219d4686875fd Balakrishna Godavarthi         2018-08-03   941  				 "qca/nvm_%08x.bin", soc_ver);
691d54d0f7cb14 Neil Armstrong                 2023-08-16   942  		}
691d54d0f7cb14 Neil Armstrong                 2023-08-16   943  	}
4219d4686875fd Balakrishna Godavarthi         2018-08-03   944  
ecf6b2d9566606 Venkata Lakshmi Narayana Gubba 2021-05-18   945  	err = qca_download_firmware(hdev, &config, soc_type, rom_ver);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   946  	if (err < 0) {
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03   947  		bt_dev_err(hdev, "QCA Failed to download NVM (%d)", err);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   948  		return err;
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   949  	}
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   950  
691d54d0f7cb14 Neil Armstrong                 2023-08-16   951  	switch (soc_type) {
691d54d0f7cb14 Neil Armstrong                 2023-08-16   952  	case QCA_WCN3991:
a7f8dedb4be2cc Tim Jiang                      2023-09-12   953  	case QCA_QCA2066:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   954  	case QCA_QCA6390:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   955  	case QCA_WCN6750:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   956  	case QCA_WCN6855:
e0c1278ac89b03 Neil Armstrong                 2023-08-16   957  	case QCA_WCN7850:
590deccf4c0690 Balakrishna Godavarthi         2020-06-12   958  		err = qca_disable_soc_logging(hdev);
590deccf4c0690 Balakrishna Godavarthi         2020-06-12   959  		if (err < 0)
590deccf4c0690 Balakrishna Godavarthi         2020-06-12   960  			return err;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   961  		break;
691d54d0f7cb14 Neil Armstrong                 2023-08-16   962  	default:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   963  		break;
590deccf4c0690 Balakrishna Godavarthi         2020-06-12   964  	}
590deccf4c0690 Balakrishna Godavarthi         2020-06-12   965  
d8f97da1b92d2f Venkata Lakshmi Narayana Gubba 2021-05-18   966  	/* WCN399x and WCN6750 supports the Microsoft vendor extension with 0xFD70 as the
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   967  	 * VsMsftOpCode.
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   968  	 */
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   969  	switch (soc_type) {
d5712c511cb358 Dmitry Baryshkov               2025-02-07   970  	case QCA_WCN3950:
691d54d0f7cb14 Neil Armstrong                 2023-08-16   971  	case QCA_WCN3988:
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   972  	case QCA_WCN3990:
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   973  	case QCA_WCN3991:
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   974  	case QCA_WCN3998:
d8f97da1b92d2f Venkata Lakshmi Narayana Gubba 2021-05-18   975  	case QCA_WCN6750:
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   976  		hci_set_msft_opcode(hdev, 0xFD70);
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   977  		break;
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   978  	default:
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   979  		break;
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   980  	}
eaf19b0c47d142 Miao-chen Chou                 2020-12-17   981  
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   982  	/* Perform HCI reset */
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03   983  	err = qca_send_reset(hdev);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   984  	if (err < 0) {
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03   985  		bt_dev_err(hdev, "QCA Failed to run HCI_RESET (%d)", err);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   986  		return err;
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   987  	}
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10   988  
095327fede005f Steev Klimaszewski             2023-03-26   989  	switch (soc_type) {
095327fede005f Steev Klimaszewski             2023-03-26   990  	case QCA_WCN3991:
095327fede005f Steev Klimaszewski             2023-03-26   991  	case QCA_WCN6750:
095327fede005f Steev Klimaszewski             2023-03-26   992  	case QCA_WCN6855:
e0c1278ac89b03 Neil Armstrong                 2023-08-16   993  	case QCA_WCN7850:
c0187b0bd3e94c Venkata Lakshmi Narayana Gubba 2020-12-08   994  		/* get fw build info */
c0187b0bd3e94c Venkata Lakshmi Narayana Gubba 2020-12-08   995  		err = qca_read_fw_build_info(hdev);
c0187b0bd3e94c Venkata Lakshmi Narayana Gubba 2020-12-08   996  		if (err < 0)
c0187b0bd3e94c Venkata Lakshmi Narayana Gubba 2020-12-08   997  			return err;
095327fede005f Steev Klimaszewski             2023-03-26   998  		break;
095327fede005f Steev Klimaszewski             2023-03-26   999  	default:
095327fede005f Steev Klimaszewski             2023-03-26  1000  		break;
c0187b0bd3e94c Venkata Lakshmi Narayana Gubba 2020-12-08  1001  	}
c0187b0bd3e94c Venkata Lakshmi Narayana Gubba 2020-12-08  1002  
dd336649ba8978 Johan Hovold                   2024-04-30  1003  	err = qca_check_bdaddr(hdev, &config);
32868e126c7887 Johan Hovold                   2024-04-16  1004  	if (err)
32868e126c7887 Johan Hovold                   2024-04-16  1005  		return err;
32868e126c7887 Johan Hovold                   2024-04-16  1006  
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03  1007  	bt_dev_info(hdev, "QCA setup on UART is completed");
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10  1008  
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10  1009  	return 0;
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10  1010  }
ba493d4fbcb84b Balakrishna Godavarthi         2018-08-03  1011  EXPORT_SYMBOL_GPL(qca_uart_setup);
83e81961ff7ef7 Ben Young Tae Kim              2015-08-10  1012  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-02-10  1:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-09  7:03 [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
2026-02-09  7:03 ` [PATCH v2 2/2] Bluetooth: qca: add QCC2072 support Vivek Sahu
2026-02-09 19:11   ` kernel test robot
2026-02-10  1:23   ` kernel test robot
2026-02-09  7:14 ` [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
2026-02-09  7:59 ` [v2,1/2] " bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox