-
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mac80211: ath11k: add support for QCN6122 wifi
Add QCN6122 platform support. QCN6122 is a hybrid bus type device which is enumerated as a PCIe device by Q6 and enumerates as AHB device on host. It uses qgic interrupts to notify events to host driver. Used qgic api to convert MSI interrupt to qgic interrupt. Added qmi message to learn bar address from QCN6122. The patch set is refactored and based on below downstream patch: https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/NHSS.QSDK.12.4.5.r2/mac80211/patches/232-ath11k-qcn6122-support.patch Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org> Signed-off-by: Ziyang Huang <hzyitc@outlook.com> Signed-off-by: George Moussalem <george.moussalem@outlook.com
- Loading branch information
1 parent
5763112
commit cdd023c
Showing
11 changed files
with
1,329 additions
and
0 deletions.
There are no files selected for viewing
115 changes: 115 additions & 0 deletions
115
package/kernel/mac80211/patches/ath11k/921-wifi-ath11k-update-hw-params-for-QCN6122.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
From: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org> | ||
Date: Tue, 22 Dec 2020 20:08:37 +0530 | ||
Subject: [PATCH 1/2] ath11k: qcn6122 bring up | ||
|
||
Add qcn6122 platform support. | ||
qcn6122 is a hybrid bus type device which is enumerated as | ||
pci device by Q6 and enumerates as ahb device on host. | ||
It uses qgic interrupts to notify events to host driver. | ||
Used qgic api to convert MSI interrupt to qgic interrupt. | ||
Added qmi message to learn bar address from qcn6122. | ||
Test performed: | ||
Ran ping test for open, ccmp and tkip modes. | ||
Ran iperf traffic for few mins. | ||
|
||
Signed-off-by: Sowmiya Sree Elavalagan <ssreeela@codeaurora.org> | ||
|
||
Download from https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open/-/blob/NHSS.QSDK.12.4.5.r2/mac80211/patches/232-ath11k-qcn6122-support.patch | ||
|
||
Signed-off-by: George Moussalem <george.moussalem@outlook.com> | ||
--- | ||
|
||
--- a/drivers/net/wireless/ath/ath11k/core.c | ||
+++ b/drivers/net/wireless/ath/ath11k/core.c | ||
@@ -809,6 +809,66 @@ static struct ath11k_hw_params ath11k_hw | ||
.support_fw_mac_sequence = true, | ||
.support_dual_stations = true, | ||
}, | ||
+ { | ||
+ .hw_rev = ATH11K_HW_QCN6122_HW10, | ||
+ .name = "qcn6122 hw1.0", | ||
+ .fw = { | ||
+ .dir = "qcn6122/hw1.0", | ||
+ .board_size = 256 * 1024, | ||
+ .cal_offset = 128 * 1024, | ||
+ }, | ||
+ .hal_params = &ath11k_hw_hal_params_ipq8074, | ||
+ .max_radios = MAX_RADIOS_5018, | ||
+ .bdf_addr = 0x4D200000, | ||
+ .hal_desc_sz = sizeof(struct hal_rx_desc_qcn9074), | ||
+ .qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCN6122, | ||
+ .interface_modes = BIT(NL80211_IFTYPE_STATION) | | ||
+ BIT(NL80211_IFTYPE_AP) | | ||
+ BIT(NL80211_IFTYPE_MESH_POINT), | ||
+ .spectral = { | ||
+ .fft_sz = 2, | ||
+ .fft_pad_sz = 0, | ||
+ .summary_pad_sz = 16, | ||
+ .fft_hdr_len = 24, | ||
+ .max_fft_bins = 1024, | ||
+ }, | ||
+ .credit_flow = false, | ||
+ .max_tx_ring = 1, | ||
+ .supports_monitor = true, | ||
+ .supports_shadow_regs = false, | ||
+ .idle_ps = false, | ||
+ .supports_suspend = false, | ||
+ .host_ce_config = ath11k_host_ce_config_qcn9074, | ||
+ .ce_count = CE_CNT_5018, | ||
+ .target_ce_config = ath11k_target_ce_config_wlan_ipq5018, | ||
+ .target_ce_count = TARGET_CE_CNT_5018, | ||
+ .svc_to_ce_map = ath11k_target_service_to_ce_map_wlan_ipq5018, | ||
+ .svc_to_ce_map_len = SVC_CE_MAP_LEN_5018, | ||
+ .single_pdev_only = false, | ||
+ .rxdma1_enable = true, | ||
+ .num_rxmda_per_pdev = RXDMA_PER_PDEV_5018, | ||
+ .rx_mac_buf_ring = false, | ||
+ .vdev_start_delay = false, | ||
+ .htt_peer_map_v2 = true, | ||
+ .coldboot_cal_mm = true, | ||
+ .coldboot_cal_ftm = true, | ||
+ .cbcal_restart_fw = true, | ||
+ .fix_l1ss = true, | ||
+ .alloc_cacheable_memory = true, | ||
+ .m3_fw_support = false, | ||
+ .fixed_bdf_addr = true, | ||
+ .fixed_mem_region = true, | ||
+ .static_window_map = true, | ||
+ .hybrid_bus_type = false, | ||
+ .fw_mem_mode = 1, | ||
+ .supports_sta_ps = false, | ||
+ .dbr_debug_support = true, | ||
+ .bios_sar_capa = NULL, | ||
+ .fixed_fw_mem = false, | ||
+ .support_off_channel_tx = false, | ||
+ .tcl_ring_retry = true, | ||
+ .tx_ring_size = DP_TCL_DATA_RING_SIZE, | ||
+ }, | ||
}; | ||
|
||
static inline struct ath11k_pdev *ath11k_core_get_single_pdev(struct ath11k_base *ab) | ||
--- 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_QCN6122_HW10, | ||
}; | ||
|
||
enum ath11k_firmware_mode { | ||
--- a/drivers/net/wireless/ath/ath11k/qmi.h | ||
+++ b/drivers/net/wireless/ath/ath11k/qmi.h | ||
@@ -22,10 +22,11 @@ | ||
#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_WLFW_SERVICE_INS_ID_V01_QCN6122 0x40 | ||
#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 | ||
-#define ATH11K_QMI_CALDB_SIZE 0x480000 | ||
+#define ATH11K_QMI_CALDB_SIZE 0x500000 | ||
#define ATH11K_QMI_BDF_EXT_STR_LENGTH 0x20 | ||
#define ATH11K_QMI_FW_MEM_REQ_SEGMENT_CNT 5 | ||
|
104 changes: 104 additions & 0 deletions
104
...age/kernel/mac80211/patches/ath11k/922-wifi-ath11k-update-hal-srng-regs-for-QCN6122.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
--- a/drivers/net/wireless/ath/ath11k/core.c | ||
+++ b/drivers/net/wireless/ath/ath11k/core.c | ||
@@ -821,6 +821,7 @@ static struct ath11k_hw_params ath11k_hw | ||
.max_radios = MAX_RADIOS_5018, | ||
.bdf_addr = 0x4D200000, | ||
.hal_desc_sz = sizeof(struct hal_rx_desc_qcn9074), | ||
+ .regs = &qcn6122_regs, | ||
.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCN6122, | ||
.interface_modes = BIT(NL80211_IFTYPE_STATION) | | ||
BIT(NL80211_IFTYPE_AP) | | ||
--- a/drivers/net/wireless/ath/ath11k/hw.c | ||
+++ b/drivers/net/wireless/ath/ath11k/hw.c | ||
@@ -2822,6 +2822,81 @@ const struct ath11k_hw_regs ipq5018_regs | ||
.hal_wbm1_release_ring_base_lsb = 0x0000097c, | ||
}; | ||
|
||
+const struct ath11k_hw_regs qcn6122_regs = { | ||
+ /* SW2TCL(x) R0 ring configuration address */ | ||
+ .hal_tcl1_ring_base_lsb = 0x00000694, | ||
+ .hal_tcl1_ring_base_msb = 0x00000698, | ||
+ .hal_tcl1_ring_id = 0x0000069c, | ||
+ .hal_tcl1_ring_misc = 0x000006a4, | ||
+ .hal_tcl1_ring_tp_addr_lsb = 0x000006b0, | ||
+ .hal_tcl1_ring_tp_addr_msb = 0x000006b4, | ||
+ .hal_tcl1_ring_consumer_int_setup_ix0 = 0x000006c4, | ||
+ .hal_tcl1_ring_consumer_int_setup_ix1 = 0x000006c8, | ||
+ .hal_tcl1_ring_msi1_base_lsb = 0x000006dc, | ||
+ .hal_tcl1_ring_msi1_base_msb = 0x000006e0, | ||
+ .hal_tcl1_ring_msi1_data = 0x000006e4, | ||
+ .hal_tcl2_ring_base_lsb = 0x000006ec, | ||
+ .hal_tcl_ring_base_lsb = 0x0000079c, | ||
+ | ||
+ /* TCL STATUS ring address */ | ||
+ .hal_tcl_status_ring_base_lsb = 0x000008a4, | ||
+ | ||
+ /* REO2SW(x) R0 ring configuration address */ | ||
+ .hal_reo1_ring_base_lsb = 0x000001ec, | ||
+ .hal_reo1_ring_base_msb = 0x000001f0, | ||
+ .hal_reo1_ring_id = 0x000001f4, | ||
+ .hal_reo1_ring_misc = 0x000001fc, | ||
+ .hal_reo1_ring_hp_addr_lsb = 0x00000200, | ||
+ .hal_reo1_ring_hp_addr_msb = 0x00000204, | ||
+ .hal_reo1_ring_producer_int_setup = 0x00000210, | ||
+ .hal_reo1_ring_msi1_base_lsb = 0x00000234, | ||
+ .hal_reo1_ring_msi1_base_msb = 0x00000238, | ||
+ .hal_reo1_ring_msi1_data = 0x0000023c, | ||
+ .hal_reo2_ring_base_lsb = 0x00000244, | ||
+ .hal_reo1_aging_thresh_ix_0 = 0x00000564, | ||
+ .hal_reo1_aging_thresh_ix_1 = 0x00000568, | ||
+ .hal_reo1_aging_thresh_ix_2 = 0x0000056c, | ||
+ .hal_reo1_aging_thresh_ix_3 = 0x00000570, | ||
+ | ||
+ /* REO2SW(x) R2 ring pointers (head/tail) address */ | ||
+ .hal_reo1_ring_hp = 0x00003028, | ||
+ .hal_reo1_ring_tp = 0x0000302c, | ||
+ .hal_reo2_ring_hp = 0x00003030, | ||
+ | ||
+ /* REO2TCL R0 ring configuration address */ | ||
+ .hal_reo_tcl_ring_base_lsb = 0x000003fc, | ||
+ .hal_reo_tcl_ring_hp = 0x00003058, | ||
+ | ||
+ /* SW2REO ring address */ | ||
+ .hal_sw2reo_ring_base_lsb = 0x0000013c, | ||
+ .hal_sw2reo_ring_hp = 0x00003018, | ||
+ | ||
+ /* REO CMD ring address */ | ||
+ .hal_reo_cmd_ring_base_lsb = 0x000000e4, | ||
+ .hal_reo_cmd_ring_hp = 0x00003010, | ||
+ | ||
+ /* REO status address */ | ||
+ .hal_reo_status_ring_base_lsb = 0x00000504, | ||
+ .hal_reo_status_hp = 0x00003070, | ||
+ | ||
+ /* WCSS relative address */ | ||
+ .hal_seq_wcss_umac_ce0_src_reg = 0x03B80000, | ||
+ .hal_seq_wcss_umac_ce0_dst_reg = 0x03b81000, | ||
+ .hal_seq_wcss_umac_ce1_src_reg = 0x03b82000, | ||
+ .hal_seq_wcss_umac_ce1_dst_reg = 0x03b83000, | ||
+ | ||
+ /* WBM Idle address */ | ||
+ .hal_wbm_idle_link_ring_base_lsb = 0x00000874, | ||
+ .hal_wbm_idle_link_ring_misc = 0x00000884, | ||
+ | ||
+ /* SW2WBM release address */ | ||
+ .hal_wbm_release_ring_base_lsb = 0x000001ec, | ||
+ | ||
+ /* WBM2SW release address */ | ||
+ .hal_wbm0_release_ring_base_lsb = 0x00000924, | ||
+ .hal_wbm1_release_ring_base_lsb = 0x0000097c, | ||
+}; | ||
+ | ||
const struct ath11k_hw_hal_params ath11k_hw_hal_params_ipq8074 = { | ||
.rx_buf_rbm = HAL_RX_BUF_RBM_SW3_BM, | ||
.tcl2wbm_rbm_map = ath11k_hw_tcl2wbm_rbm_map_ipq8074, | ||
--- a/drivers/net/wireless/ath/ath11k/hw.h | ||
+++ b/drivers/net/wireless/ath/ath11k/hw.h | ||
@@ -425,6 +425,7 @@ extern const struct ath11k_hw_regs qcn90 | ||
extern const struct ath11k_hw_regs wcn6855_regs; | ||
extern const struct ath11k_hw_regs wcn6750_regs; | ||
extern const struct ath11k_hw_regs ipq5018_regs; | ||
+extern const struct ath11k_hw_regs qcn6122_regs; | ||
|
||
static inline const char *ath11k_bd_ie_type_str(enum ath11k_bd_ie_type type) | ||
{ |
69 changes: 69 additions & 0 deletions
69
package/kernel/mac80211/patches/ath11k/923-wifi-ath11k-initialize-hw_ops-for-QCN6122.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
--- a/drivers/net/wireless/ath/ath11k/core.c | ||
+++ b/drivers/net/wireless/ath/ath11k/core.c | ||
@@ -820,6 +820,7 @@ static struct ath11k_hw_params ath11k_hw | ||
.hal_params = &ath11k_hw_hal_params_ipq8074, | ||
.max_radios = MAX_RADIOS_5018, | ||
.bdf_addr = 0x4D200000, | ||
+ .hw_ops = &qcn6122_ops, | ||
.hal_desc_sz = sizeof(struct hal_rx_desc_qcn9074), | ||
.regs = &qcn6122_regs, | ||
.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCN6122, | ||
--- a/drivers/net/wireless/ath/ath11k/hw.c | ||
+++ b/drivers/net/wireless/ath/ath11k/hw.c | ||
@@ -1181,6 +1181,46 @@ const struct ath11k_hw_ops ipq5018_ops = | ||
.get_ring_selector = ath11k_hw_ipq8074_get_tcl_ring_selector, | ||
}; | ||
|
||
+const struct ath11k_hw_ops qcn6122_ops = { | ||
+ .get_hw_mac_from_pdev_id = ath11k_hw_ipq6018_mac_from_pdev_id, | ||
+ .wmi_init_config = ath11k_init_wmi_config_ipq8074, | ||
+ .mac_id_to_pdev_id = ath11k_hw_mac_id_to_pdev_id_ipq8074, | ||
+ .mac_id_to_srng_id = ath11k_hw_mac_id_to_srng_id_ipq8074, | ||
+ .rx_desc_mac_addr2_valid = ath11k_hw_ipq9074_rx_desc_mac_addr2_valid, | ||
+ .rx_desc_mpdu_start_addr2 = ath11k_hw_ipq9074_rx_desc_mpdu_start_addr2, | ||
+ .tx_mesh_enable = ath11k_hw_qcn9074_tx_mesh_enable, | ||
+ .rx_desc_get_first_msdu = ath11k_hw_qcn9074_rx_desc_get_first_msdu, | ||
+ .rx_desc_get_last_msdu = ath11k_hw_qcn9074_rx_desc_get_last_msdu, | ||
+ .rx_desc_get_l3_pad_bytes = ath11k_hw_qcn9074_rx_desc_get_l3_pad_bytes, | ||
+ .rx_desc_get_hdr_status = ath11k_hw_qcn9074_rx_desc_get_hdr_status, | ||
+ .rx_desc_encrypt_valid = ath11k_hw_qcn9074_rx_desc_encrypt_valid, | ||
+ .rx_desc_get_encrypt_type = ath11k_hw_qcn9074_rx_desc_get_encrypt_type, | ||
+ .rx_desc_get_decap_type = ath11k_hw_qcn9074_rx_desc_get_decap_type, | ||
+ .rx_desc_get_mesh_ctl = ath11k_hw_qcn9074_rx_desc_get_mesh_ctl, | ||
+ .rx_desc_get_ldpc_support = ath11k_hw_qcn9074_rx_desc_get_ldpc_support, | ||
+ .rx_desc_get_mpdu_seq_ctl_vld = ath11k_hw_qcn9074_rx_desc_get_mpdu_seq_ctl_vld, | ||
+ .rx_desc_get_mpdu_fc_valid = ath11k_hw_qcn9074_rx_desc_get_mpdu_fc_valid, | ||
+ .rx_desc_get_mpdu_start_seq_no = ath11k_hw_qcn9074_rx_desc_get_mpdu_start_seq_no, | ||
+ .rx_desc_get_msdu_len = ath11k_hw_qcn9074_rx_desc_get_msdu_len, | ||
+ .rx_desc_get_msdu_sgi = ath11k_hw_qcn9074_rx_desc_get_msdu_sgi, | ||
+ .rx_desc_get_msdu_rate_mcs = ath11k_hw_qcn9074_rx_desc_get_msdu_rate_mcs, | ||
+ .rx_desc_get_msdu_rx_bw = ath11k_hw_qcn9074_rx_desc_get_msdu_rx_bw, | ||
+ .rx_desc_get_msdu_freq = ath11k_hw_qcn9074_rx_desc_get_msdu_freq, | ||
+ .rx_desc_get_msdu_pkt_type = ath11k_hw_qcn9074_rx_desc_get_msdu_pkt_type, | ||
+ .rx_desc_get_msdu_nss = ath11k_hw_qcn9074_rx_desc_get_msdu_nss, | ||
+ .rx_desc_get_mpdu_tid = ath11k_hw_qcn9074_rx_desc_get_mpdu_tid, | ||
+ .rx_desc_get_mpdu_peer_id = ath11k_hw_qcn9074_rx_desc_get_mpdu_peer_id, | ||
+ .rx_desc_copy_attn_end_tlv = ath11k_hw_qcn9074_rx_desc_copy_attn_end, | ||
+ .rx_desc_get_mpdu_start_tag = ath11k_hw_qcn9074_rx_desc_get_mpdu_start_tag, | ||
+ .rx_desc_get_mpdu_ppdu_id = ath11k_hw_qcn9074_rx_desc_get_mpdu_ppdu_id, | ||
+ .rx_desc_set_msdu_len = ath11k_hw_qcn9074_rx_desc_set_msdu_len, | ||
+ .reo_setup = ath11k_hw_ipq5018_reo_setup, | ||
+ .rx_desc_get_attention = ath11k_hw_qcn9074_rx_desc_get_attention, | ||
+ .rx_desc_get_msdu_payload = ath11k_hw_qcn9074_rx_desc_get_msdu_payload, | ||
+ .mpdu_info_get_peerid = ath11k_hw_ipq8074_mpdu_info_get_peerid, | ||
+ .get_ring_selector = ath11k_hw_ipq8074_get_tcl_ring_selector, | ||
+}; | ||
+ | ||
#define ATH11K_TX_RING_MASK_0 BIT(0) | ||
#define ATH11K_TX_RING_MASK_1 BIT(1) | ||
#define ATH11K_TX_RING_MASK_2 BIT(2) | ||
--- a/drivers/net/wireless/ath/ath11k/hw.h | ||
+++ b/drivers/net/wireless/ath/ath11k/hw.h | ||
@@ -284,6 +284,7 @@ extern const struct ath11k_hw_ops qcn907 | ||
extern const struct ath11k_hw_ops wcn6855_ops; | ||
extern const struct ath11k_hw_ops wcn6750_ops; | ||
extern const struct ath11k_hw_ops ipq5018_ops; | ||
+extern const struct ath11k_hw_ops qcn6122_ops; | ||
|
||
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074; | ||
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390; |
81 changes: 81 additions & 0 deletions
81
package/kernel/mac80211/patches/ath11k/924-wifi-ath11k-update-hw-ring-mask-for-QCN6122.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
--- a/drivers/net/wireless/ath/ath11k/core.c | ||
+++ b/drivers/net/wireless/ath/ath11k/core.c | ||
@@ -651,7 +651,7 @@ static struct ath11k_hw_params ath11k_hw | ||
/* hal_desc_sz and hw ops are similar to qcn9074 */ | ||
.hal_desc_sz = sizeof(struct hal_rx_desc_qcn9074), | ||
.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074, | ||
- .ring_mask = &ath11k_hw_ring_mask_ipq8074, | ||
+ .ring_mask = &ath11k_hw_ring_mask_qcn6122, | ||
.credit_flow = false, | ||
.max_tx_ring = 1, | ||
.spectral = { | ||
@@ -821,6 +821,7 @@ static struct ath11k_hw_params ath11k_hw | ||
.max_radios = MAX_RADIOS_5018, | ||
.bdf_addr = 0x4D200000, | ||
.hw_ops = &qcn6122_ops, | ||
+ .ring_mask = &ath11k_hw_ring_mask_ipq8074, | ||
.hal_desc_sz = sizeof(struct hal_rx_desc_qcn9074), | ||
.regs = &qcn6122_regs, | ||
.qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCN6122, | ||
--- a/drivers/net/wireless/ath/ath11k/hw.c | ||
+++ b/drivers/net/wireless/ath/ath11k/hw.c | ||
@@ -1,4 +1,4 @@ | ||
-// SPDX-License-Identifier: BSD-3-Clause-Clear | ||
+/// SPDX-License-Identifier: BSD-3-Clause-Clear | ||
/* | ||
* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. | ||
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. | ||
@@ -2110,6 +2110,43 @@ const struct ath11k_hw_ring_mask ath11k_ | ||
}, | ||
}; | ||
|
||
+const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qcn6122 = { | ||
+ .tx = { | ||
+ ATH11K_TX_RING_MASK_0, | ||
+ ATH11K_TX_RING_MASK_1, | ||
+ ATH11K_TX_RING_MASK_2, | ||
+ }, | ||
+ .rx_mon_status = { | ||
+ 0, 0, 0, | ||
+ ATH11K_RX_MON_STATUS_RING_MASK_0, | ||
+ }, | ||
+ .rx = { | ||
+ 0, 0, 0, 0, | ||
+ ATH11K_RX_RING_MASK_0, | ||
+ ATH11K_RX_RING_MASK_1, | ||
+ ATH11K_RX_RING_MASK_2, | ||
+ ATH11K_RX_RING_MASK_3, | ||
+ }, | ||
+ .rx_err = { | ||
+ 0, 0, 0, 0, 0, 0, 0, 0, | ||
+ ATH11K_RX_ERR_RING_MASK_0, | ||
+ }, | ||
+ .rx_wbm_rel = { | ||
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
+ ATH11K_RX_WBM_REL_RING_MASK_0, | ||
+ }, | ||
+ .reo_status = { | ||
+ 0, 0, 0, | ||
+ ATH11K_REO_STATUS_RING_MASK_0, | ||
+ }, | ||
+ .rxdma2host = { | ||
+ ATH11K_RXDMA2HOST_RING_MASK_0, | ||
+ }, | ||
+ .host2rxdma = { | ||
+ ATH11K_HOST2RXDMA_RING_MASK_0, | ||
+ }, | ||
+}; | ||
+ | ||
/* Target firmware's Copy Engine configuration for IPQ5018 */ | ||
const struct ce_pipe_config ath11k_target_ce_config_wlan_ipq5018[] = { | ||
/* CE0: host->target HTC control and raw streams */ | ||
--- a/drivers/net/wireless/ath/ath11k/hw.h | ||
+++ b/drivers/net/wireless/ath/ath11k/hw.h | ||
@@ -290,6 +290,7 @@ extern const struct ath11k_hw_ring_mask | ||
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390; | ||
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qcn9074; | ||
extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_wcn6750; | ||
+extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qcn6122; | ||
|
||
extern const struct ce_ie_addr ath11k_ce_ie_addr_ipq8074; | ||
extern const struct ce_ie_addr ath11k_ce_ie_addr_ipq5018; |
Oops, something went wrong.