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