xref: /linux/drivers/net/wireless/ath/ath12k/dp_tx.h (revision 1fd1dc41724319406b0aff221a352a400b0ddfc5)
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 
7 #ifndef ATH12K_DP_TX_H
8 #define ATH12K_DP_TX_H
9 
10 #include "core.h"
11 
12 struct ath12k_dp_htt_wbm_tx_status {
13 	bool acked;
14 	s8 ack_rssi;
15 };
16 
17 void ath12k_dp_tx_put_bank_profile(struct ath12k_dp *dp, u8 bank_id);
18 enum hal_tcl_encap_type
19 ath12k_dp_tx_get_encap_type(struct ath12k_base *ab, struct sk_buff *skb);
20 void ath12k_dp_tx_encap_nwifi(struct sk_buff *skb);
21 u8 ath12k_dp_tx_get_tid(struct sk_buff *skb);
22 void *ath12k_dp_metadata_align_skb(struct sk_buff *skb, u8 tail_len);
23 int ath12k_dp_tx_align_payload(struct ath12k_dp *dp, struct sk_buff **pskb);
24 void ath12k_dp_tx_release_txbuf(struct ath12k_dp *dp,
25 				struct ath12k_tx_desc_info *tx_desc,
26 				u8 pool_id);
27 struct ath12k_tx_desc_info *ath12k_dp_tx_assign_buffer(struct ath12k_dp *dp,
28 						       u8 pool_id);
29 void ath12k_dp_tx_free_txbuf(struct ath12k_dp *dp,
30 			     struct dp_tx_ring *tx_ring,
31 			     struct ath12k_tx_desc_params *desc_params);
32 #endif
33