From 88b08675443b0e06df34af6eb1edebb097e3fa1a Mon Sep 17 00:00:00 2001 From: Sai Teja Aluvala Date: Tue, 22 Sep 2026 11:48:21 +0530 Subject: [PATCH] Bluetooth: Add support for Intel DRACO Add support for the Draco Bluetooth core (hardware variant 0x23, CNVi 0xA30) recognizing the new variant in btintel's version info TLV parsing, MSFT vendor opcode setup, and combined setup path, as well as in btintel_pcie hardware exception handling and PCIe setup path. Signed-off-by: Sai Teja Aluvala Signed-off-by: Luiz Augusto von Dentz --- drivers/bluetooth/btintel.c | 3 +++ drivers/bluetooth/btintel.h | 1 + drivers/bluetooth/btintel_pcie.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c index 1dcb84c1ff37..f298c91f4f4e 100644 --- a/drivers/bluetooth/btintel.c +++ b/drivers/bluetooth/btintel.c @@ -517,6 +517,7 @@ int btintel_version_info_tlv(struct hci_dev *hdev, case 0x20: /* Scorpious Peak2 */ case 0x21: /* Scorpious Peak2 F */ case 0x22: /* BlazarIW (BzrIW) */ + case 0x23: /* Draco */ break; default: bt_dev_err(hdev, "Unsupported Intel hardware variant (0x%x)", @@ -3617,6 +3618,7 @@ void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant) case 0x20: case 0x21: case 0x22: + case 0x23: hci_set_msft_opcode(hdev, 0xFC1E); break; default: @@ -3960,6 +3962,7 @@ static int btintel_setup_combined(struct hci_dev *hdev) case 0x20: case 0x21: case 0x22: + case 0x23: /* Display version information of TLV type */ btintel_version_info_tlv(hdev, &ver_tlv); diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h index b3c4c6f87424..9cf136c6c716 100644 --- a/drivers/bluetooth/btintel.h +++ b/drivers/bluetooth/btintel.h @@ -62,6 +62,7 @@ struct intel_tlv { #define BTINTEL_CNVI_SCP 0xA00 /* Scorpius Peak - Panther Lake */ #define BTINTEL_CNVI_SCP2 0xA10 /* Scorpius Peak2 - Nova Lake */ #define BTINTEL_CNVI_SCP2F 0xA20 /* Scorpius Peak2F - Nova Lake */ +#define BTINTEL_CNVI_DRACO 0xA30 /* Draco */ /* CNVR */ #define BTINTEL_CNVR_FMP2 0x910 diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c index a7aea950c73f..127ecebd0331 100644 --- a/drivers/bluetooth/btintel_pcie.c +++ b/drivers/bluetooth/btintel_pcie.c @@ -2292,6 +2292,7 @@ static void btintel_pcie_read_hwexp(struct btintel_pcie_data *data) case BTINTEL_CNVI_SCP: case BTINTEL_CNVI_SCP2: case BTINTEL_CNVI_SCP2F: + case BTINTEL_CNVI_DRACO: break; default: bt_dev_err(data->hdev, "Unsupported cnvi 0x%8.8x", data->dmp_hdr.cnvi_top); @@ -3471,6 +3472,7 @@ static int btintel_pcie_setup_internal(struct hci_dev *hdev) case 0x20: /* ScP2 */ case 0x21: /* ScP2 F */ case 0x22: /* BzrIW */ + case 0x23: /* DrC */ /* Display version information of TLV type */ btintel_version_info_tlv(hdev, &ver_tlv);