* [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