xref: /linux/drivers/net/wireless/ath/ath12k/wifi7/dp_rx.h (revision 37a93dd5c49b5fda807fd204edf2547c3493319c)
11a6a4b6cSPavankumar Nandeshwar /* SPDX-License-Identifier: BSD-3-Clause-Clear */
21a6a4b6cSPavankumar Nandeshwar /*
31a6a4b6cSPavankumar Nandeshwar  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
41a6a4b6cSPavankumar Nandeshwar  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
51a6a4b6cSPavankumar Nandeshwar  */
61a6a4b6cSPavankumar Nandeshwar #ifndef ATH12K_DP_RX_WIFI7_H
71a6a4b6cSPavankumar Nandeshwar #define ATH12K_DP_RX_WIFI7_H
81a6a4b6cSPavankumar Nandeshwar 
91a6a4b6cSPavankumar Nandeshwar #include "../core.h"
101a6a4b6cSPavankumar Nandeshwar #include "../dp_rx.h"
112bb41934SPavankumar Nandeshwar #include "hal_rx_desc.h"
122bb41934SPavankumar Nandeshwar 
132bb41934SPavankumar Nandeshwar struct ath12k_hal_reo_cmd;
141a6a4b6cSPavankumar Nandeshwar 
1596b42732SPavankumar Nandeshwar int ath12k_wifi7_dp_rx_process_wbm_err(struct ath12k_dp *dp,
161a6a4b6cSPavankumar Nandeshwar 				       struct napi_struct *napi, int budget);
1796b42732SPavankumar Nandeshwar int ath12k_wifi7_dp_rx_process_err(struct ath12k_dp *dp, struct napi_struct *napi,
186b4954d3SPavankumar Nandeshwar 				   int budget);
1996b42732SPavankumar Nandeshwar int ath12k_wifi7_dp_rx_process(struct ath12k_dp *dp, int mac_id,
20a7cfbb18SPavankumar Nandeshwar 			       struct napi_struct *napi,
21a7cfbb18SPavankumar Nandeshwar 			       int budget);
2296b42732SPavankumar Nandeshwar void ath12k_wifi7_dp_rx_process_reo_status(struct ath12k_dp *dp);
238dc72a6fSPavankumar Nandeshwar int ath12k_dp_rxdma_ring_sel_config_qcn9274(struct ath12k_base *ab);
248dc72a6fSPavankumar Nandeshwar int ath12k_dp_rxdma_ring_sel_config_wcn7850(struct ath12k_base *ab);
25*023ace9fSBaochen Qiang int ath12k_dp_rxdma_ring_sel_config_qcc2072(struct ath12k_base *ab);
26972f34d5SPavankumar Nandeshwar void ath12k_wifi7_dp_setup_pn_check_reo_cmd(struct ath12k_hal_reo_cmd *cmd,
276c7ceff2SPavankumar Nandeshwar 					    struct ath12k_dp_rx_tid *rx_tid,
286c7ceff2SPavankumar Nandeshwar 					    u32 cipher, enum set_key_cmd key_cmd);
2911157e09SHarsh Kumar Bijlani int ath12k_wifi7_dp_rx_assign_reoq(struct ath12k_base *ab, struct ath12k_dp_peer *dp_peer,
306c7ceff2SPavankumar Nandeshwar 				   struct ath12k_dp_rx_tid *rx_tid,
316c7ceff2SPavankumar Nandeshwar 				   u16 ssn, enum hal_pn_type pn_type);
3296b42732SPavankumar Nandeshwar int ath12k_wifi7_dp_rx_link_desc_return(struct ath12k_dp *dp,
3352c55568SPavankumar Nandeshwar 					struct ath12k_buffer_addr *buf_addr_info,
3452c55568SPavankumar Nandeshwar 					enum hal_wbm_rel_bm_act action);
35d43133a3SPavankumar Nandeshwar void ath12k_wifi7_dp_rx_frags_cleanup(struct ath12k_dp_rx_tid *rx_tid,
36d43133a3SPavankumar Nandeshwar 				      bool rel_link_desc);
37972f34d5SPavankumar Nandeshwar void ath12k_wifi7_peer_rx_tid_qref_setup(struct ath12k_base *ab, u16 peer_id, u16 tid,
3852c55568SPavankumar Nandeshwar 					 dma_addr_t paddr);
3973c92834SPavankumar Nandeshwar void ath12k_wifi7_dp_rx_peer_tid_delete(struct ath12k_base *ab,
409e0b56a3SHarsh Kumar Bijlani 					struct ath12k_dp_link_peer *peer, u8 tid);
41631ee338SJeff Johnson int ath12k_wifi7_dp_reo_cmd_send(struct ath12k_base *ab,
42631ee338SJeff Johnson 				 struct ath12k_dp_rx_tid_rxq *rx_tid,
4352c55568SPavankumar Nandeshwar 				 enum hal_reo_cmd_type type,
4452c55568SPavankumar Nandeshwar 				 struct ath12k_hal_reo_cmd *cmd,
4552c55568SPavankumar Nandeshwar 				 void (*cb)(struct ath12k_dp *dp, void *ctx,
4652c55568SPavankumar Nandeshwar 					    enum hal_reo_cmd_status status));
47631ee338SJeff Johnson int ath12k_wifi7_dp_reo_cache_flush(struct ath12k_base *ab,
48631ee338SJeff Johnson 				    struct ath12k_dp_rx_tid_rxq *rx_tid);
4973c92834SPavankumar Nandeshwar int ath12k_wifi7_peer_rx_tid_reo_update(struct ath12k_dp *dp,
509e0b56a3SHarsh Kumar Bijlani 					struct ath12k_dp_link_peer *peer,
5152c55568SPavankumar Nandeshwar 					struct ath12k_dp_rx_tid *rx_tid,
5252c55568SPavankumar Nandeshwar 					u32 ba_win_sz, u16 ssn,
5352c55568SPavankumar Nandeshwar 					bool update_ssn);
54631ee338SJeff Johnson void ath12k_wifi7_peer_rx_tid_qref_reset(struct ath12k_base *ab, u16 peer_id, u16 tid);
55906b5ac9SAlok Singh bool
56906b5ac9SAlok Singh ath12k_wifi7_dp_rxdesc_mpdu_valid(struct ath12k_base *ab,
57906b5ac9SAlok Singh 				  struct hal_rx_desc *rx_desc);
58631ee338SJeff Johnson int ath12k_wifi7_dp_rx_tid_delete_handler(struct ath12k_base *ab,
59631ee338SJeff Johnson 					  struct ath12k_dp_rx_tid_rxq *rx_tid);
601a6a4b6cSPavankumar Nandeshwar #endif
61