1 /* SPDX-License-Identifier: BSD-3-Clause-Clear */ 2 /* 3 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. 4 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 5 */ 6 #ifndef ATH12K_DP_RX_WIFI7_H 7 #define ATH12K_DP_RX_WIFI7_H 8 9 #include "../core.h" 10 #include "../dp_rx.h" 11 #include "hal_rx_desc.h" 12 13 struct ath12k_hal_reo_cmd; 14 15 int ath12k_wifi7_dp_rx_process_wbm_err(struct ath12k_dp *dp, 16 struct napi_struct *napi, int budget); 17 int ath12k_wifi7_dp_rx_process_err(struct ath12k_dp *dp, struct napi_struct *napi, 18 int budget); 19 int ath12k_wifi7_dp_rx_process(struct ath12k_dp *dp, int mac_id, 20 struct napi_struct *napi, 21 int budget); 22 void ath12k_wifi7_dp_rx_process_reo_status(struct ath12k_dp *dp); 23 int ath12k_dp_rxdma_ring_sel_config_qcn9274(struct ath12k_base *ab); 24 int ath12k_dp_rxdma_ring_sel_config_wcn7850(struct ath12k_base *ab); 25 int ath12k_dp_rxdma_ring_sel_config_qcc2072(struct ath12k_base *ab); 26 void ath12k_wifi7_dp_setup_pn_check_reo_cmd(struct ath12k_hal_reo_cmd *cmd, 27 struct ath12k_dp_rx_tid *rx_tid, 28 u32 cipher, enum set_key_cmd key_cmd); 29 int ath12k_wifi7_dp_rx_assign_reoq(struct ath12k_base *ab, struct ath12k_dp_peer *dp_peer, 30 struct ath12k_dp_rx_tid *rx_tid, 31 u16 ssn, enum hal_pn_type pn_type); 32 int ath12k_wifi7_dp_rx_link_desc_return(struct ath12k_dp *dp, 33 struct ath12k_buffer_addr *buf_addr_info, 34 enum hal_wbm_rel_bm_act action); 35 void ath12k_wifi7_dp_rx_frags_cleanup(struct ath12k_dp_rx_tid *rx_tid, 36 bool rel_link_desc); 37 void ath12k_wifi7_peer_rx_tid_qref_setup(struct ath12k_base *ab, u16 peer_id, u16 tid, 38 dma_addr_t paddr); 39 void ath12k_wifi7_dp_rx_peer_tid_delete(struct ath12k_base *ab, 40 struct ath12k_dp_link_peer *peer, u8 tid); 41 int ath12k_wifi7_dp_reo_cmd_send(struct ath12k_base *ab, 42 struct ath12k_dp_rx_tid_rxq *rx_tid, 43 enum hal_reo_cmd_type type, 44 struct ath12k_hal_reo_cmd *cmd, 45 void (*cb)(struct ath12k_dp *dp, void *ctx, 46 enum hal_reo_cmd_status status)); 47 int ath12k_wifi7_dp_reo_cache_flush(struct ath12k_base *ab, 48 struct ath12k_dp_rx_tid_rxq *rx_tid); 49 int ath12k_wifi7_peer_rx_tid_reo_update(struct ath12k_dp *dp, 50 struct ath12k_dp_link_peer *peer, 51 struct ath12k_dp_rx_tid *rx_tid, 52 u32 ba_win_sz, u16 ssn, 53 bool update_ssn); 54 void ath12k_wifi7_peer_rx_tid_qref_reset(struct ath12k_base *ab, u16 peer_id, u16 tid); 55 bool 56 ath12k_wifi7_dp_rxdesc_mpdu_valid(struct ath12k_base *ab, 57 struct hal_rx_desc *rx_desc); 58 int ath12k_wifi7_dp_rx_tid_delete_handler(struct ath12k_base *ab, 59 struct ath12k_dp_rx_tid_rxq *rx_tid); 60 #endif 61