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