1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #ifndef AR9003_MAC_H
18 #define AR9003_MAC_H
19
20 #define AR_DescId 0xffff0000
21 #define AR_DescId_S 16
22 #define AR_CtrlStat 0x00004000
23 #define AR_CtrlStat_S 14
24 #define AR_TxRxDesc 0x00008000
25 #define AR_TxRxDesc_S 15
26 #define AR_TxQcuNum 0x00000f00
27 #define AR_TxQcuNum_S 8
28
29 #define AR_BufLen 0x0fff0000
30 #define AR_BufLen_S 16
31
32 #define AR_TxDescId 0xffff0000
33 #define AR_TxDescId_S 16
34 #define AR_TxPtrChkSum 0x0000ffff
35
36 #define AR_LowRxChain 0x00004000
37
38 #define AR_Not_Sounding 0x20000000
39
40
41 #define AR_PAPRDChainMask 0x00000e00
42 #define AR_PAPRDChainMask_S 9
43
44 #define MAP_ISR_S2_CST 6
45 #define MAP_ISR_S2_GTT 6
46 #define MAP_ISR_S2_TIM 3
47 #define MAP_ISR_S2_CABEND 0
48 #define MAP_ISR_S2_DTIMSYNC 7
49 #define MAP_ISR_S2_DTIM 7
50 #define MAP_ISR_S2_TSFOOR 4
51 #define MAP_ISR_S2_BB_WATCHDOG 6
52
53 #define AR9003TXC_CONST(_ds) ((const struct ar9003_txc *) _ds)
54
55 struct ar9003_rxs {
56 u32 ds_info;
57 u32 status1;
58 u32 status2;
59 u32 status3;
60 u32 status4;
61 u32 status5;
62 u32 status6;
63 u32 status7;
64 u32 status8;
65 u32 status9;
66 u32 status10;
67 u32 status11;
68 } __packed __aligned(4);
69
70
71 struct ar9003_txc {
72 u32 info;
73 u32 link;
74 u32 data0;
75 u32 ctl3;
76 u32 data1;
77 u32 ctl5;
78 u32 data2;
79 u32 ctl7;
80 u32 data3;
81 u32 ctl9;
82 u32 ctl10;
83 u32 ctl11;
84 u32 ctl12;
85 u32 ctl13;
86 u32 ctl14;
87 u32 ctl15;
88 u32 ctl16;
89 u32 ctl17;
90 u32 ctl18;
91 u32 ctl19;
92 u32 ctl20;
93 u32 ctl21;
94 u32 ctl22;
95 u32 ctl23;
96 u32 pad[8];
97 } __packed __aligned(4);
98
99 struct ar9003_txs {
100 u32 ds_info;
101 u32 status1;
102 u32 status2;
103 u32 status3;
104 u32 status4;
105 u32 status5;
106 u32 status6;
107 u32 status7;
108 u32 status8;
109 } __packed __aligned(4);
110
111 void ar9003_hw_attach_mac_ops(struct ath_hw *hw);
112 void ath9k_hw_set_rx_bufsize(struct ath_hw *ah, u16 buf_size);
113 void ath9k_hw_addrxbuf_edma(struct ath_hw *ah, u32 rxdp,
114 enum ath9k_rx_qtype qtype);
115
116 int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah,
117 struct ath_rx_status *rxs,
118 void *buf_addr);
119 void ath9k_hw_reset_txstatus_ring(struct ath_hw *ah);
120 void ath9k_hw_setup_statusring(struct ath_hw *ah, void *ts_start,
121 u32 ts_paddr_start,
122 u16 size);
123 #endif