public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] wifi: ath11k: add support for QCA6698AQ
@ 2024-10-31  0:05 Miaoqing Pan
  2024-10-31 14:58 ` Jeff Johnson
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Miaoqing Pan @ 2024-10-31  0:05 UTC (permalink / raw)
  To: kvalo; +Cc: quic_jjohnson, ath11k, linux-wireless, linux-kernel, Miaoqing Pan

QCA6698AQ IP core is the same as WCN6855 hw2.1, they share the same
PCI device ID, the same major and minor version numbers, the same
register address, and same HAL descriptors, etc. The most significant
difference is that QCA6698AQ has different RF, IPA, thermal, etc.

Follow the approach done in commit 5dc9d1a55e95 ("wifi: ath11k: add
support for QCA2066"), enumerate the subversion number to identify the
specific card.

Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1

Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
---
 drivers/net/wireless/ath/ath11k/core.c | 87 ++++++++++++++++++++++++++
 drivers/net/wireless/ath/ath11k/core.h |  1 +
 drivers/net/wireless/ath/ath11k/mhi.c  |  1 +
 drivers/net/wireless/ath/ath11k/pci.c  |  3 +
 drivers/net/wireless/ath/ath11k/pcic.c | 13 +++-
 5 files changed, 104 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index be67382c00f6..f8c57c074423 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -803,6 +803,93 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
 			.end = 0x0177ffff,
 		},
 
+		.tcl_ring_retry = true,
+		.tx_ring_size = DP_TCL_DATA_RING_SIZE,
+		.smp2p_wow_exit = false,
+		.support_fw_mac_sequence = true,
+		.support_dual_stations = true,
+	},
+	{
+		.name = "qca6698aq hw2.1",
+		.hw_rev = ATH11K_HW_QCA6698AQ_HW21,
+		.fw = {
+			.dir = "QCA6698AQ/hw2.1",
+			.board_size = 256 * 1024,
+			.cal_offset = 128 * 1024,
+		},
+		.max_radios = 3,
+		.bdf_addr = 0x4B0C0000,
+		.hw_ops = &wcn6855_ops,
+		.ring_mask = &ath11k_hw_ring_mask_qca6390,
+		.internal_sleep_clock = true,
+		.regs = &wcn6855_regs,
+		.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCA6390,
+		.host_ce_config = ath11k_host_ce_config_qca6390,
+		.ce_count = 9,
+		.target_ce_config = ath11k_target_ce_config_wlan_qca6390,
+		.target_ce_count = 9,
+		.svc_to_ce_map = ath11k_target_service_to_ce_map_wlan_qca6390,
+		.svc_to_ce_map_len = 14,
+		.single_pdev_only = true,
+		.rxdma1_enable = false,
+		.num_rxdma_per_pdev = 2,
+		.rx_mac_buf_ring = true,
+		.vdev_start_delay = true,
+		.htt_peer_map_v2 = false,
+
+		.spectral = {
+			.fft_sz = 0,
+			.fft_pad_sz = 0,
+			.summary_pad_sz = 0,
+			.fft_hdr_len = 0,
+			.max_fft_bins = 0,
+			.fragment_160mhz = false,
+		},
+
+		.interface_modes = BIT(NL80211_IFTYPE_STATION) |
+					BIT(NL80211_IFTYPE_AP) |
+					BIT(NL80211_IFTYPE_P2P_DEVICE) |
+					BIT(NL80211_IFTYPE_P2P_CLIENT) |
+					BIT(NL80211_IFTYPE_P2P_GO),
+		.supports_monitor = false,
+		.supports_shadow_regs = true,
+		.idle_ps = true,
+		.supports_sta_ps = true,
+		.coldboot_cal_mm = false,
+		.coldboot_cal_ftm = false,
+		.cbcal_restart_fw = false,
+		.fw_mem_mode = 0,
+		.num_vdevs = 2 + 1,
+		.num_peers = 512,
+		.supports_suspend = true,
+		.hal_desc_sz = sizeof(struct hal_rx_desc_wcn6855),
+		.supports_regdb = true,
+		.fix_l1ss = false,
+		.credit_flow = true,
+		.max_tx_ring = DP_TCL_NUM_RING_MAX_QCA6390,
+		.hal_params = &ath11k_hw_hal_params_qca6390,
+		.supports_dynamic_smps_6ghz = false,
+		.alloc_cacheable_memory = false,
+		.supports_rssi_stats = true,
+		.fw_wmi_diag_event = true,
+		.current_cc_support = true,
+		.dbr_debug_support = false,
+		.global_reset = true,
+		.bios_sar_capa = &ath11k_hw_sar_capa_wcn6855,
+		.m3_fw_support = true,
+		.fixed_bdf_addr = false,
+		.fixed_mem_region = false,
+		.static_window_map = false,
+		.hybrid_bus_type = false,
+		.fixed_fw_mem = false,
+		.support_off_channel_tx = true,
+		.supports_multi_bssid = true,
+
+		.sram_dump = {
+			.start = 0x01400000,
+			.end = 0x0177ffff,
+		},
+
 		.tcl_ring_retry = true,
 		.tx_ring_size = DP_TCL_DATA_RING_SIZE,
 		.smp2p_wow_exit = false,
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 09c37e19a168..4764ded58610 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -148,6 +148,7 @@ enum ath11k_hw_rev {
 	ATH11K_HW_WCN6750_HW10,
 	ATH11K_HW_IPQ5018_HW10,
 	ATH11K_HW_QCA2066_HW21,
+	ATH11K_HW_QCA6698AQ_HW21,
 };
 
 enum ath11k_firmware_mode {
diff --git a/drivers/net/wireless/ath/ath11k/mhi.c b/drivers/net/wireless/ath/ath11k/mhi.c
index 6974a551883f..6e45f464a429 100644
--- a/drivers/net/wireless/ath/ath11k/mhi.c
+++ b/drivers/net/wireless/ath/ath11k/mhi.c
@@ -398,6 +398,7 @@ int ath11k_mhi_register(struct ath11k_pci *ab_pci)
 	case ATH11K_HW_WCN6855_HW20:
 	case ATH11K_HW_WCN6855_HW21:
 	case ATH11K_HW_QCA2066_HW21:
+	case ATH11K_HW_QCA6698AQ_HW21:
 		ath11k_mhi_config = &ath11k_mhi_config_qca6390;
 		break;
 	default:
diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index be9d2c69cc41..b93f04973ad7 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -846,6 +846,9 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
 				case 0x1019D0E1:
 					ab->hw_rev = ATH11K_HW_QCA2066_HW21;
 					break;
+				case 0x001e60e1:
+					ab->hw_rev = ATH11K_HW_QCA6698AQ_HW21;
+					break;
 				default:
 					ab->hw_rev = ATH11K_HW_WCN6855_HW21;
 				}
diff --git a/drivers/net/wireless/ath/ath11k/pcic.c b/drivers/net/wireless/ath/ath11k/pcic.c
index debe7c5919ef..3fe77310c71f 100644
--- a/drivers/net/wireless/ath/ath11k/pcic.c
+++ b/drivers/net/wireless/ath/ath11k/pcic.c
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: BSD-3-Clause-Clear
 /*
  * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include "core.h"
@@ -126,6 +126,17 @@ static const struct ath11k_msi_config ath11k_msi_config[] = {
 		},
 		.hw_rev = ATH11K_HW_QCA2066_HW21,
 	},
+	{
+		.total_vectors = 32,
+		.total_users = 4,
+		.users = (struct ath11k_msi_user[]) {
+			{ .name = "MHI", .num_vectors = 3, .base_vector = 0 },
+			{ .name = "CE", .num_vectors = 10, .base_vector = 3 },
+			{ .name = "WAKE", .num_vectors = 1, .base_vector = 13 },
+			{ .name = "DP", .num_vectors = 18, .base_vector = 14 },
+		},
+		.hw_rev = ATH11K_HW_QCA6698AQ_HW21,
+	},
 };
 
 int ath11k_pcic_init_msi_config(struct ath11k_base *ab)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] wifi: ath11k: add support for QCA6698AQ
  2024-10-31  0:05 [PATCH] wifi: ath11k: add support for QCA6698AQ Miaoqing Pan
@ 2024-10-31 14:58 ` Jeff Johnson
  2024-11-12 14:59   ` Kalle Valo
  2024-10-31 15:31 ` Jeff Johnson
  2024-11-21 16:12 ` Jeff Johnson
  2 siblings, 1 reply; 6+ messages in thread
From: Jeff Johnson @ 2024-10-31 14:58 UTC (permalink / raw)
  To: Miaoqing Pan, kvalo; +Cc: ath11k, linux-wireless, linux-kernel

On 10/30/2024 5:05 PM, Miaoqing Pan wrote:
> QCA6698AQ IP core is the same as WCN6855 hw2.1, they share the same
> PCI device ID, the same major and minor version numbers, the same
> register address, and same HAL descriptors, etc. The most significant
> difference is that QCA6698AQ has different RF, IPA, thermal, etc.
> 
> Follow the approach done in commit 5dc9d1a55e95 ("wifi: ath11k: add
> support for QCA2066"), enumerate the subversion number to identify the
> specific card.
> 
> Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
> 
> Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>

Am I correct that this satisfies at least a subset of the devices you were
trying to support with the following?
https://lore.kernel.org/all/20241024002514.92290-1-quic_miaoqing@quicinc.com/

If so, can you reply to that thread, pointing to this new patch, and elaborate
on what is now supported and what still requires ath11k to support
board-specific firmware overrides?

/jeff

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] wifi: ath11k: add support for QCA6698AQ
  2024-10-31  0:05 [PATCH] wifi: ath11k: add support for QCA6698AQ Miaoqing Pan
  2024-10-31 14:58 ` Jeff Johnson
@ 2024-10-31 15:31 ` Jeff Johnson
  2024-11-21 16:12 ` Jeff Johnson
  2 siblings, 0 replies; 6+ messages in thread
From: Jeff Johnson @ 2024-10-31 15:31 UTC (permalink / raw)
  To: Miaoqing Pan, kvalo; +Cc: ath11k, linux-wireless, linux-kernel

On 10/30/2024 5:05 PM, Miaoqing Pan wrote:
> QCA6698AQ IP core is the same as WCN6855 hw2.1, they share the same
> PCI device ID, the same major and minor version numbers, the same
> register address, and same HAL descriptors, etc. The most significant
> difference is that QCA6698AQ has different RF, IPA, thermal, etc.
> 
> Follow the approach done in commit 5dc9d1a55e95 ("wifi: ath11k: add
> support for QCA2066"), enumerate the subversion number to identify the
> specific card.
> 
> Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
> 
> Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] wifi: ath11k: add support for QCA6698AQ
  2024-10-31 14:58 ` Jeff Johnson
@ 2024-11-12 14:59   ` Kalle Valo
  2024-11-21 11:05     ` Kalle Valo
  0 siblings, 1 reply; 6+ messages in thread
From: Kalle Valo @ 2024-11-12 14:59 UTC (permalink / raw)
  To: Jeff Johnson; +Cc: Miaoqing Pan, ath11k, linux-wireless, linux-kernel

Jeff Johnson <quic_jjohnson@quicinc.com> writes:

> On 10/30/2024 5:05 PM, Miaoqing Pan wrote:
>> QCA6698AQ IP core is the same as WCN6855 hw2.1, they share the same
>> PCI device ID, the same major and minor version numbers, the same
>> register address, and same HAL descriptors, etc. The most significant
>> difference is that QCA6698AQ has different RF, IPA, thermal, etc.
>> 
>> Follow the approach done in commit 5dc9d1a55e95 ("wifi: ath11k: add
>> support for QCA2066"), enumerate the subversion number to identify the
>> specific card.
>> 
>> Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
>> 
>> Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
>
> Am I correct that this satisfies at least a subset of the devices you were
> trying to support with the following?
> https://lore.kernel.org/all/20241024002514.92290-1-quic_miaoqing@quicinc.com/
>
> If so, can you reply to that thread, pointing to this new patch, and elaborate
> on what is now supported and what still requires ath11k to support
> board-specific firmware overrides?

That question is still open but otherwise this patch looks good to me.
But I'll give an Acked-by only after I understand what's that "NFA765
m.2 card for IoT platforms" mentioned in the other thread is.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] wifi: ath11k: add support for QCA6698AQ
  2024-11-12 14:59   ` Kalle Valo
@ 2024-11-21 11:05     ` Kalle Valo
  0 siblings, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2024-11-21 11:05 UTC (permalink / raw)
  To: Jeff Johnson; +Cc: Miaoqing Pan, ath11k, linux-wireless, linux-kernel

Kalle Valo <kvalo@kernel.org> writes:

> Jeff Johnson <quic_jjohnson@quicinc.com> writes:
>
>> On 10/30/2024 5:05 PM, Miaoqing Pan wrote:
>>> QCA6698AQ IP core is the same as WCN6855 hw2.1, they share the same
>>> PCI device ID, the same major and minor version numbers, the same
>>> register address, and same HAL descriptors, etc. The most significant
>>> difference is that QCA6698AQ has different RF, IPA, thermal, etc.
>>> 
>>> Follow the approach done in commit 5dc9d1a55e95 ("wifi: ath11k: add
>>> support for QCA2066"), enumerate the subversion number to identify the
>>> specific card.
>>> 
>>> Tested-on: QCA6698AQ hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
>>> 
>>> Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
>>
>> Am I correct that this satisfies at least a subset of the devices you were
>> trying to support with the following?
>> https://lore.kernel.org/all/20241024002514.92290-1-quic_miaoqing@quicinc.com/
>>
>> If so, can you reply to that thread, pointing to this new patch, and elaborate
>> on what is now supported and what still requires ath11k to support
>> board-specific firmware overrides?
>
> That question is still open but otherwise this patch looks good to me.
> But I'll give an Acked-by only after I understand what's that "NFA765
> m.2 card for IoT platforms" mentioned in the other thread is.

Miaoqing provided the info offlist so:

Acked-by: Kalle Valo <kvalo@kernel.org>

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] wifi: ath11k: add support for QCA6698AQ
  2024-10-31  0:05 [PATCH] wifi: ath11k: add support for QCA6698AQ Miaoqing Pan
  2024-10-31 14:58 ` Jeff Johnson
  2024-10-31 15:31 ` Jeff Johnson
@ 2024-11-21 16:12 ` Jeff Johnson
  2 siblings, 0 replies; 6+ messages in thread
From: Jeff Johnson @ 2024-11-21 16:12 UTC (permalink / raw)
  To: kvalo, Miaoqing Pan; +Cc: ath11k, linux-wireless, linux-kernel


On Thu, 31 Oct 2024 08:05:41 +0800, Miaoqing Pan wrote:
> QCA6698AQ IP core is the same as WCN6855 hw2.1, they share the same
> PCI device ID, the same major and minor version numbers, the same
> register address, and same HAL descriptors, etc. The most significant
> difference is that QCA6698AQ has different RF, IPA, thermal, etc.
> 
> Follow the approach done in commit 5dc9d1a55e95 ("wifi: ath11k: add
> support for QCA2066"), enumerate the subversion number to identify the
> specific card.
> 
> [...]

Applied, thanks!

[1/1] wifi: ath11k: add support for QCA6698AQ
      commit: e238638e6f24109c0c7639f4a2db023388bd1b76

Best regards,
-- 
Jeff Johnson <quic_jjohnson@quicinc.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-11-21 16:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-31  0:05 [PATCH] wifi: ath11k: add support for QCA6698AQ Miaoqing Pan
2024-10-31 14:58 ` Jeff Johnson
2024-11-12 14:59   ` Kalle Valo
2024-11-21 11:05     ` Kalle Valo
2024-10-31 15:31 ` Jeff Johnson
2024-11-21 16:12 ` Jeff Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox