[PATCH ath-next 07/17] wifi: ath12k: Add hybrid_bus_type in ath12k_hw_params

From: Aaradhana Sahu

Date: Thu Oct 08 2026 - 06:27:43 EST


QCN6432 is a PCIe-based device attached to the WCSS Q6 processor,
but it is registered as a platform (AHB) device. It uses AHB APIs
for probe and boot. Because of this hybrid nature, it is called as
a hybrid bus device.

Introduce a hybrid_bus_type field in ath12k_hw_params to indicate the
hybrid nature of the device.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ5332 hw1.0 AHB WLAN.WBE.1.6-01322-QCAHKSWPL_SILICONZ-1
Tested-on: QCN6432 hw1.0 AHB WLAN.WBE.1.6-01322-QCAHKSWPL_SILICONZ-1

Signed-off-by: Aaradhana Sahu <aaradhana.sahu@xxxxxxxxxxxxxxxx>
---
drivers/net/wireless/ath/ath12k/hw.h | 6 ++++++
drivers/net/wireless/ath/ath12k/wifi7/hw.c | 7 +++++++
2 files changed, 13 insertions(+)

diff --git a/drivers/net/wireless/ath/ath12k/hw.h b/drivers/net/wireless/ath/ath12k/hw.h
index 2e585a42dd9b..84b9440b2c16 100644
--- a/drivers/net/wireless/ath/ath12k/hw.h
+++ b/drivers/net/wireless/ath/ath12k/hw.h
@@ -239,6 +239,12 @@ struct ath12k_hw_params {
} client;

bool host_alloc_ml_id;
+ /*
+ * True for devices with PCIe hardware registered as AHB platform devices.
+ * Such devices use AHB APIs for probe/boot but PCIe APIs for operation.
+ * Example: QCN6432 (PCIe device attached to Q6, registered as AHB).
+ */
+ bool hybrid_bus_type;
};

struct ath12k_hw_ops {
diff --git a/drivers/net/wireless/ath/ath12k/wifi7/hw.c b/drivers/net/wireless/ath/ath12k/wifi7/hw.c
index 408844024dd6..f91279477a20 100644
--- a/drivers/net/wireless/ath/ath12k/wifi7/hw.c
+++ b/drivers/net/wireless/ath/ath12k/wifi7/hw.c
@@ -497,6 +497,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = true,
+ .hybrid_bus_type = false,
},
{
.name = "wcn7850 hw2.0",
@@ -592,6 +593,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = false,
+ .hybrid_bus_type = false,
},
{
.name = "qcn9274 hw2.0",
@@ -683,6 +685,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = true,
+ .hybrid_bus_type = false,
},
{
.name = "ipq5332 hw1.0",
@@ -768,6 +771,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = true,
+ .hybrid_bus_type = false,
},
{
.name = "qcc2072 hw1.0",
@@ -864,6 +868,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = false,
+ .hybrid_bus_type = false,
},
{
.name = "ipq5424 hw1.0",
@@ -952,6 +957,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = true,
+ .hybrid_bus_type = false,
},
{
.name = "qcn6432 hw1.0",
@@ -1036,6 +1042,7 @@ static const struct ath12k_hw_params ath12k_wifi7_hw_params[] = {
},

.host_alloc_ml_id = true,
+ .hybrid_bus_type = true,
},
};


--
2.34.1