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