1 #ifndef _RTL8712_XMIT_H_ 2 #define _RTL8712_XMIT_H_ 3 4 #define HWXMIT_ENTRY 4 5 6 #define VO_QUEUE_INX 0 7 #define VI_QUEUE_INX 1 8 #define BE_QUEUE_INX 2 9 #define BK_QUEUE_INX 3 10 #define TS_QUEUE_INX 4 11 #define MGT_QUEUE_INX 5 12 #define BMC_QUEUE_INX 6 13 #define BCN_QUEUE_INX 7 14 15 #define HW_QUEUE_ENTRY 8 16 17 #define TXDESC_SIZE 32 18 #define TXDESC_OFFSET TXDESC_SIZE 19 20 #define NR_AMSDU_XMITFRAME 8 21 #define NR_TXAGG_XMITFRAME 8 22 23 #define MAX_AMSDU_XMITBUF_SZ 8704 24 #define MAX_TXAGG_XMITBUF_SZ 16384 /*16k*/ 25 26 27 #define tx_cmd tx_desc 28 29 30 /* 31 *defined for TX DESC Operation 32 */ 33 34 #define MAX_TID (15) 35 36 /*OFFSET 0*/ 37 #define OFFSET_SZ (0) 38 #define OFFSET_SHT (16) 39 #define OWN BIT(31) 40 #define FSG BIT(27) 41 #define LSG BIT(26) 42 43 /*OFFSET 4*/ 44 #define PKT_OFFSET_SZ (0) 45 #define QSEL_SHT (8) 46 #define HWPC BIT(31) 47 48 /*OFFSET 8*/ 49 #define BMC BIT(7) 50 #define BK BIT(30) 51 #define AGG_EN BIT(29) 52 53 /*OFFSET 12*/ 54 #define SEQ_SHT (16) 55 56 /*OFFSET 16*/ 57 #define TXBW BIT(18) 58 59 /*OFFSET 20*/ 60 #define DISFB BIT(15) 61 62 struct tx_desc{ 63 64 /*DWORD 0*/ 65 unsigned int txdw0; 66 67 unsigned int txdw1; 68 69 unsigned int txdw2; 70 71 unsigned int txdw3; 72 73 unsigned int txdw4; 74 75 unsigned int txdw5; 76 77 unsigned int txdw6; 78 79 unsigned int txdw7; 80 81 }; 82 83 84 union txdesc { 85 struct tx_desc txdesc; 86 unsigned int value[TXDESC_SIZE>>2]; 87 }; 88 89 int r8712_xmitframe_complete(struct _adapter *padapter, 90 struct xmit_priv *pxmitpriv, 91 struct xmit_buf *pxmitbuf); 92 void r8712_do_queue_select(struct _adapter *padapter, 93 struct pkt_attrib *pattrib); 94 95 #endif 96