1*4882a593Smuzhiyun /* SPDX-License-Identifier: BSD-3-Clause-Clear */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef ATH11K_DP_TX_H 7*4882a593Smuzhiyun #define ATH11K_DP_TX_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include "core.h" 10*4882a593Smuzhiyun #include "hal_tx.h" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun struct ath11k_dp_htt_wbm_tx_status { 13*4882a593Smuzhiyun u32 msdu_id; 14*4882a593Smuzhiyun bool acked; 15*4882a593Smuzhiyun int ack_rssi; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun int ath11k_dp_tx_htt_h2t_ver_req_msg(struct ath11k_base *ab); 19*4882a593Smuzhiyun int ath11k_dp_tx(struct ath11k *ar, struct ath11k_vif *arvif, 20*4882a593Smuzhiyun struct sk_buff *skb); 21*4882a593Smuzhiyun void ath11k_dp_tx_completion_handler(struct ath11k_base *ab, int ring_id); 22*4882a593Smuzhiyun int ath11k_dp_tx_send_reo_cmd(struct ath11k_base *ab, struct dp_rx_tid *rx_tid, 23*4882a593Smuzhiyun enum hal_reo_cmd_type type, 24*4882a593Smuzhiyun struct ath11k_hal_reo_cmd *cmd, 25*4882a593Smuzhiyun void (*func)(struct ath11k_dp *, void *, 26*4882a593Smuzhiyun enum hal_reo_cmd_status)); 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun int ath11k_dp_tx_htt_h2t_ppdu_stats_req(struct ath11k *ar, u32 mask); 29*4882a593Smuzhiyun int 30*4882a593Smuzhiyun ath11k_dp_tx_htt_h2t_ext_stats_req(struct ath11k *ar, u8 type, 31*4882a593Smuzhiyun struct htt_ext_stats_cfg_params *cfg_params, 32*4882a593Smuzhiyun u64 cookie); 33*4882a593Smuzhiyun int ath11k_dp_tx_htt_monitor_mode_ring_config(struct ath11k *ar, bool reset); 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun int ath11k_dp_tx_htt_rx_filter_setup(struct ath11k_base *ab, u32 ring_id, 36*4882a593Smuzhiyun int mac_id, enum hal_ring_type ring_type, 37*4882a593Smuzhiyun int rx_buf_size, 38*4882a593Smuzhiyun struct htt_rx_ring_tlv_filter *tlv_filter); 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #endif 41