xref: /linux/drivers/net/wireless/ath/ath12k/dp_tx.h (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
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 u8 ath12k_dp_tx_crypto_iv_len(enum hal_encrypt_type enc_type);
23 u8 ath12k_dp_tx_crypto_icv_len(enum hal_encrypt_type enc_type);
24 void *ath12k_dp_metadata_align_skb(struct sk_buff *skb, u8 tail_len);
25 int ath12k_dp_tx_align_payload(struct ath12k_dp *dp, struct sk_buff **pskb);
26 void ath12k_dp_tx_release_txbuf(struct ath12k_dp *dp,
27 				struct ath12k_tx_desc_info *tx_desc,
28 				u8 pool_id);
29 struct ath12k_tx_desc_info *ath12k_dp_tx_assign_buffer(struct ath12k_dp *dp,
30 						       u8 pool_id);
31 void ath12k_dp_tx_free_txbuf(struct ath12k_dp *dp,
32 			     struct dp_tx_ring *tx_ring,
33 			     struct ath12k_tx_desc_params *desc_params);
34 #endif
35