1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved. 5 * 6 * Modifications for inclusion into the Linux staging tree are 7 * Copyright(c) 2010 Larry Finger. All rights reserved. 8 * 9 * Contact information: 10 * WLAN FAE <wlanfae@realtek.com> 11 * Larry Finger <Larry.Finger@lwfinger.net> 12 * 13 ******************************************************************************/ 14 #ifndef _RTL8712_XMIT_H_ 15 #define _RTL8712_XMIT_H_ 16 17 #define HWXMIT_ENTRY 4 18 19 #define VO_QUEUE_INX 0 20 #define VI_QUEUE_INX 1 21 #define BE_QUEUE_INX 2 22 #define BK_QUEUE_INX 3 23 #define TS_QUEUE_INX 4 24 #define MGT_QUEUE_INX 5 25 #define BMC_QUEUE_INX 6 26 #define BCN_QUEUE_INX 7 27 28 #define HW_QUEUE_ENTRY 8 29 30 #define TXDESC_SIZE 32 31 #define TXDESC_OFFSET TXDESC_SIZE 32 33 #define NR_AMSDU_XMITFRAME 8 34 #define NR_TXAGG_XMITFRAME 8 35 36 #define MAX_AMSDU_XMITBUF_SZ 8704 37 #define MAX_TXAGG_XMITBUF_SZ 16384 /*16k*/ 38 39 #define tx_cmd tx_desc 40 41 /* 42 *defined for TX DESC Operation 43 */ 44 45 #define MAX_TID (15) 46 47 /*OFFSET 0*/ 48 #define OFFSET_SZ (0) 49 #define OFFSET_SHT (16) 50 #define OWN BIT(31) 51 #define FSG BIT(27) 52 #define LSG BIT(26) 53 #define TYPE_SHT (24) 54 #define TYPE_MSK (0x03000000) 55 56 /*OFFSET 4*/ 57 #define PKT_OFFSET_SZ (0) 58 #define QSEL_SHT (8) 59 #define HWPC BIT(31) 60 61 /*OFFSET 8*/ 62 #define BMC BIT(7) 63 #define BK BIT(30) 64 #define AGG_EN BIT(29) 65 #define RTS_RC_SHT (16) 66 67 /*OFFSET 12*/ 68 #define SEQ_SHT (16) 69 70 /*OFFSET 16*/ 71 #define TXBW BIT(18) 72 73 /*OFFSET 20*/ 74 #define DISFB BIT(15) 75 #define RSVD6_MSK (0x00E00000) 76 #define RSVD6_SHT (21) 77 78 struct tx_desc { 79 /*DWORD 0*/ 80 __le32 txdw0; 81 __le32 txdw1; 82 __le32 txdw2; 83 __le32 txdw3; 84 __le32 txdw4; 85 __le32 txdw5; 86 __le32 txdw6; 87 __le32 txdw7; 88 }; 89 90 union txdesc { 91 struct tx_desc txdesc; 92 unsigned int value[TXDESC_SIZE >> 2]; 93 }; 94 95 int r8712_xmitframe_complete(struct _adapter *padapter, 96 struct xmit_priv *pxmitpriv, 97 struct xmit_buf *pxmitbuf); 98 void r8712_do_queue_select(struct _adapter *padapter, 99 struct pkt_attrib *pattrib); 100 101 #ifdef CONFIG_R8712_TX_AGGR 102 void r8712_xmitframe_aggr_1st(struct xmit_buf *pxmitbuf, 103 struct xmit_frame *pxmitframe); 104 void r8712_dump_aggr_xframe(struct xmit_buf *pxmitbuf, 105 struct xmit_frame *pxmitframe); 106 #endif 107 108 #endif 109