Linux ARM-MSM sub-architecture
 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
  2026-02-09  7:14 ` [PATCH v2 1/2] dt-bindings: net: bluetooth: qualcomm: add bindings for QCC2072 Vivek Sahu
  0 siblings, 2 replies; 5+ 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] 5+ 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
  1 sibling, 2 replies; 5+ 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] 5+ 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
  1 sibling, 0 replies; 5+ 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] 5+ 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; 5+ 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] 5+ 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; 5+ 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] 5+ messages in thread

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

Thread overview: 5+ 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

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