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