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