]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: ath11k: raise max vdevs to 4 on hardware with P2P and dual-station support
authorWei Zhang <wei.zhang@oss.qualcomm.com>
Mon, 25 May 2026 02:07:11 +0000 (19:07 -0700)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Mon, 1 Jun 2026 16:58:03 +0000 (09:58 -0700)
When P2P support is enabled, wpa_supplicant creates a p2p-device
interface by default, which implicitly consumes one vdev. On systems
managed by NetworkManager, this interface cannot be reliably disabled,
leaving only two usable interfaces for user configurations.

Increase num_vdevs to four for QCA6390 hw2.0, WCN6855 hw2.0/hw2.1,
QCA2066 hw2.1, and QCA6698AQ hw2.1 to account for the implicit
p2p-device and enable common concurrency scenarios such as AP + AP + STA.

This change increases interface concurrency in the two-channel scenario
by raising the maximum vdev limit, while keeping other combination rules
unchanged.

Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-05266-QCAHSTSWPLZ_V2_TO_X86-1
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-04685-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
Tested-on: QCA2066 hw2.1 PCI WLAN.HSP.1.1-03926.13-QCAHSPSWPL_V2_SILICONZ_CE-2.52297.9
Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04685-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1

Signed-off-by: Wei Zhang <wei.zhang@oss.qualcomm.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Link: https://patch.msgid.link/20260525020711.2590815-1-wei.zhang@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath11k/core.c

index 3f6f4db5b7ee1aba79fd7526e5d59d068e0f4a2e..8dacc878c006876e443981b2c63ede5e117d0db7 100644 (file)
@@ -267,7 +267,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .coldboot_cal_ftm = false,
                .cbcal_restart_fw = false,
                .fw_mem_mode = 0,
-               .num_vdevs = 2 + 1,
+               .num_vdevs = 4,
                .num_peers = 512,
                .supports_suspend = true,
                .hal_desc_sz = sizeof(struct hal_rx_desc_ipq8074),
@@ -445,7 +445,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .coldboot_cal_ftm = false,
                .cbcal_restart_fw = false,
                .fw_mem_mode = 0,
-               .num_vdevs = 2 + 1,
+               .num_vdevs = 4,
                .num_peers = 512,
                .supports_suspend = true,
                .hal_desc_sz = sizeof(struct hal_rx_desc_wcn6855),
@@ -535,7 +535,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .coldboot_cal_ftm = false,
                .cbcal_restart_fw = false,
                .fw_mem_mode = 0,
-               .num_vdevs = 2 + 1,
+               .num_vdevs = 4,
                .num_peers = 512,
                .supports_suspend = true,
                .hal_desc_sz = sizeof(struct hal_rx_desc_wcn6855),
@@ -797,7 +797,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .coldboot_cal_ftm = false,
                .cbcal_restart_fw = false,
                .fw_mem_mode = 0,
-               .num_vdevs = 2 + 1,
+               .num_vdevs = 4,
                .num_peers = 512,
                .supports_suspend = true,
                .hal_desc_sz = sizeof(struct hal_rx_desc_wcn6855),
@@ -886,7 +886,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .coldboot_cal_ftm = false,
                .cbcal_restart_fw = false,
                .fw_mem_mode = 0,
-               .num_vdevs = 2 + 1,
+               .num_vdevs = 4,
                .num_peers = 512,
                .supports_suspend = true,
                .hal_desc_sz = sizeof(struct hal_rx_desc_wcn6855),