diff mbox series

[v4,02/12] ath11k: Add HW params for WCN6750

Message ID 20220406094107.17878-3-quic_mpubbise@quicinc.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series add support for WCN6750 | expand

Commit Message

Manikanta Pubbisetty April 6, 2022, 9:40 a.m. UTC
Add HW params for WCN6750. It is similar to the HW params
of QCA6390 with few differences wrt DP APIs and register
offsets.

Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00573-QCAMSLSWPLZ-1
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1

Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
---
 drivers/net/wireless/ath/ath11k/core.c | 61 ++++++++++++++++++++++++++
 drivers/net/wireless/ath/ath11k/core.h |  1 +
 drivers/net/wireless/ath/ath11k/qmi.h  |  2 +
 3 files changed, 64 insertions(+)

Comments

Kalle Valo April 27, 2022, 5:21 a.m. UTC | #1
Manikanta Pubbisetty <quic_mpubbise@quicinc.com> writes:

> Add HW params for WCN6750. It is similar to the HW params
> of QCA6390 with few differences wrt DP APIs and register
> offsets.
>
> Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00573-QCAMSLSWPLZ-1
> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
> Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1
>
> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
> ---
>  drivers/net/wireless/ath/ath11k/core.c | 61 ++++++++++++++++++++++++++
>  drivers/net/wireless/ath/ath11k/core.h |  1 +
>  drivers/net/wireless/ath/ath11k/qmi.h  |  2 +
>  3 files changed, 64 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> index cbac1919867f..8695f999acb2 100644
> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -427,6 +427,67 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
>  		.dbr_debug_support = false,
>  		.global_reset = true,
>  	},
> +	{
> +		.name = "wcn6750 hw1.0",
> +		.hw_rev = ATH11K_HW_WCN6750_HW10,
> +		.fw = {
> +			.dir = "WCN6750/hw1.0",
> +			.board_size = 256 * 1024,
> +			.cal_offset = 128 * 1024,
> +		},
> +		.max_radios = 1,
> +		.bdf_addr = 0x4B0C0000,
> +		.ring_mask = &ath11k_hw_ring_mask_qca6390,
> +		.internal_sleep_clock = false,
> +		.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_WCN6750,
> +		.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,
> +		.rfkill_pin = 0,
> +		.rfkill_cfg = 0,
> +		.rfkill_on_level = 0,
> +		.single_pdev_only = true,
> +		.rxdma1_enable = false,
> +		.num_rxmda_per_pdev = 1,
> +		.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,
> +		},
> +
> +		.interface_modes = BIT(NL80211_IFTYPE_STATION) |
> +					BIT(NL80211_IFTYPE_AP),
> +		.supports_monitor = false,
> +		.supports_shadow_regs = true,
> +		.idle_ps = true,
> +		.supports_sta_ps = true,
> +		.cold_boot_calib = false,
> +		.fw_mem_mode = 0,
> +		.num_vdevs = 16 + 1,
> +		.num_peers = 512,
> +		.supports_suspend = false,
> +		.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 = false,
> +		.current_cc_support = true,
> +		.dbr_debug_support = false,
> +		.global_reset = false,
> +	},

In the pending branch I added:

+               .bios_sar_capa = NULL,
Manikanta Pubbisetty April 27, 2022, 5:35 a.m. UTC | #2
On 4/27/2022 10:51 AM, Kalle Valo wrote:
> Manikanta Pubbisetty <quic_mpubbise@quicinc.com> writes:
> 
>> Add HW params for WCN6750. It is similar to the HW params
>> of QCA6390 with few differences wrt DP APIs and register
>> offsets.
>>
>> Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00573-QCAMSLSWPLZ-1
>> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
>> Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
>> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1
>>
>> Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
>> ---
>>   drivers/net/wireless/ath/ath11k/core.c | 61 ++++++++++++++++++++++++++
>>   drivers/net/wireless/ath/ath11k/core.h |  1 +
>>   drivers/net/wireless/ath/ath11k/qmi.h  |  2 +
>>   3 files changed, 64 insertions(+)
>>
>> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
>> index cbac1919867f..8695f999acb2 100644
>> --- a/drivers/net/wireless/ath/ath11k/core.c
>> +++ b/drivers/net/wireless/ath/ath11k/core.c
>> @@ -427,6 +427,67 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
>>   		.dbr_debug_support = false,
>>   		.global_reset = true,
>>   	},
>> +	{
>> +		.name = "wcn6750 hw1.0",
>> +		.hw_rev = ATH11K_HW_WCN6750_HW10,
>> +		.fw = {
>> +			.dir = "WCN6750/hw1.0",
>> +			.board_size = 256 * 1024,
>> +			.cal_offset = 128 * 1024,
>> +		},
>> +		.max_radios = 1,
>> +		.bdf_addr = 0x4B0C0000,
>> +		.ring_mask = &ath11k_hw_ring_mask_qca6390,
>> +		.internal_sleep_clock = false,
>> +		.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_WCN6750,
>> +		.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,
>> +		.rfkill_pin = 0,
>> +		.rfkill_cfg = 0,
>> +		.rfkill_on_level = 0,
>> +		.single_pdev_only = true,
>> +		.rxdma1_enable = false,
>> +		.num_rxmda_per_pdev = 1,
>> +		.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,
>> +		},
>> +
>> +		.interface_modes = BIT(NL80211_IFTYPE_STATION) |
>> +					BIT(NL80211_IFTYPE_AP),
>> +		.supports_monitor = false,
>> +		.supports_shadow_regs = true,
>> +		.idle_ps = true,
>> +		.supports_sta_ps = true,
>> +		.cold_boot_calib = false,
>> +		.fw_mem_mode = 0,
>> +		.num_vdevs = 16 + 1,
>> +		.num_peers = 512,
>> +		.supports_suspend = false,
>> +		.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 = false,
>> +		.current_cc_support = true,
>> +		.dbr_debug_support = false,
>> +		.global_reset = false,
>> +	},
> 
> In the pending branch I added:
> 
> +               .bios_sar_capa = NULL,
> 

This is the only other change I had in V5, thanks for adding this.

Manikanta
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index cbac1919867f..8695f999acb2 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -427,6 +427,67 @@  static const struct ath11k_hw_params ath11k_hw_params[] = {
 		.dbr_debug_support = false,
 		.global_reset = true,
 	},
+	{
+		.name = "wcn6750 hw1.0",
+		.hw_rev = ATH11K_HW_WCN6750_HW10,
+		.fw = {
+			.dir = "WCN6750/hw1.0",
+			.board_size = 256 * 1024,
+			.cal_offset = 128 * 1024,
+		},
+		.max_radios = 1,
+		.bdf_addr = 0x4B0C0000,
+		.ring_mask = &ath11k_hw_ring_mask_qca6390,
+		.internal_sleep_clock = false,
+		.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_WCN6750,
+		.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,
+		.rfkill_pin = 0,
+		.rfkill_cfg = 0,
+		.rfkill_on_level = 0,
+		.single_pdev_only = true,
+		.rxdma1_enable = false,
+		.num_rxmda_per_pdev = 1,
+		.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,
+		},
+
+		.interface_modes = BIT(NL80211_IFTYPE_STATION) |
+					BIT(NL80211_IFTYPE_AP),
+		.supports_monitor = false,
+		.supports_shadow_regs = true,
+		.idle_ps = true,
+		.supports_sta_ps = true,
+		.cold_boot_calib = false,
+		.fw_mem_mode = 0,
+		.num_vdevs = 16 + 1,
+		.num_peers = 512,
+		.supports_suspend = false,
+		.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 = false,
+		.current_cc_support = true,
+		.dbr_debug_support = false,
+		.global_reset = false,
+	},
 };
 
 static inline struct ath11k_pdev *ath11k_core_get_single_pdev(struct ath11k_base *ab)
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index fa299bfb4efc..e63b01ba68c8 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -140,6 +140,7 @@  enum ath11k_hw_rev {
 	ATH11K_HW_QCN9074_HW10,
 	ATH11K_HW_WCN6855_HW20,
 	ATH11K_HW_WCN6855_HW21,
+	ATH11K_HW_WCN6750_HW10,
 };
 
 enum ath11k_firmware_mode {
diff --git a/drivers/net/wireless/ath/ath11k/qmi.h b/drivers/net/wireless/ath/ath11k/qmi.h
index 61678de56ac7..872646c3b3ed 100644
--- a/drivers/net/wireless/ath/ath11k/qmi.h
+++ b/drivers/net/wireless/ath/ath11k/qmi.h
@@ -1,6 +1,7 @@ 
 /* SPDX-License-Identifier: BSD-3-Clause-Clear */
 /*
  * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef ATH11K_QMI_H
@@ -20,6 +21,7 @@ 
 #define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCA6390	0x01
 #define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074	0x02
 #define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCN9074	0x07
+#define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_WCN6750	0x03
 #define ATH11K_QMI_WLANFW_MAX_TIMESTAMP_LEN_V01	32
 #define ATH11K_QMI_RESP_LEN_MAX			8192
 #define ATH11K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01	52