Linux-libre 3.18.13-gnu
[librecmc/linux-libre.git] / drivers / staging / rtl8712 / rtl8712_cmd.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  * Modifications for inclusion into the Linux staging tree are
19  * Copyright(c) 2010 Larry Finger. All rights reserved.
20  *
21  * Contact information:
22  * WLAN FAE <wlanfae@realtek.com>
23  * Larry Finger <Larry.Finger@lwfinger.net>
24  *
25  ******************************************************************************/
26 #ifndef __RTL8712_CMD_H_
27 #define __RTL8712_CMD_H_
28
29 #define CMD_HDR_SZ      8
30
31 u8 r8712_fw_cmd(struct _adapter *pAdapter, u32 cmd);
32 void r8712_fw_cmd_data(struct _adapter *pAdapter, u32 *value, u8 flag);
33
34 struct cmd_hdr {
35         u32 cmd_dw0;
36         u32 cmd_dw1;
37 };
38
39 enum rtl8712_h2c_cmd {
40         GEN_CMD_CODE(_Read_MACREG),     /*0*/
41         GEN_CMD_CODE(_Write_MACREG),
42         GEN_CMD_CODE(_Read_BBREG),
43         GEN_CMD_CODE(_Write_BBREG),
44         GEN_CMD_CODE(_Read_RFREG),
45         GEN_CMD_CODE(_Write_RFREG), /*5*/
46         GEN_CMD_CODE(_Read_EEPROM),
47         GEN_CMD_CODE(_Write_EEPROM),
48         GEN_CMD_CODE(_Read_EFUSE),
49         GEN_CMD_CODE(_Write_EFUSE),
50
51         GEN_CMD_CODE(_Read_CAM),        /*10*/
52         GEN_CMD_CODE(_Write_CAM),
53         GEN_CMD_CODE(_setBCNITV),
54         GEN_CMD_CODE(_setMBIDCFG),
55         GEN_CMD_CODE(_JoinBss),   /*14*/
56         GEN_CMD_CODE(_DisConnect), /*15*/
57         GEN_CMD_CODE(_CreateBss),
58         GEN_CMD_CODE(_SetOpMode),
59         GEN_CMD_CODE(_SiteSurvey),  /*18*/
60         GEN_CMD_CODE(_SetAuth),
61
62         GEN_CMD_CODE(_SetKey),  /*20*/
63         GEN_CMD_CODE(_SetStaKey),
64         GEN_CMD_CODE(_SetAssocSta),
65         GEN_CMD_CODE(_DelAssocSta),
66         GEN_CMD_CODE(_SetStaPwrState),
67         GEN_CMD_CODE(_SetBasicRate), /*25*/
68         GEN_CMD_CODE(_GetBasicRate),
69         GEN_CMD_CODE(_SetDataRate),
70         GEN_CMD_CODE(_GetDataRate),
71         GEN_CMD_CODE(_SetPhyInfo),
72
73         GEN_CMD_CODE(_GetPhyInfo),      /*30*/
74         GEN_CMD_CODE(_SetPhy),
75         GEN_CMD_CODE(_GetPhy),
76         GEN_CMD_CODE(_readRssi),
77         GEN_CMD_CODE(_readGain),
78         GEN_CMD_CODE(_SetAtim), /*35*/
79         GEN_CMD_CODE(_SetPwrMode),
80         GEN_CMD_CODE(_JoinbssRpt),
81         GEN_CMD_CODE(_SetRaTable),
82         GEN_CMD_CODE(_GetRaTable),
83
84         GEN_CMD_CODE(_GetCCXReport), /*40*/
85         GEN_CMD_CODE(_GetDTMReport),
86         GEN_CMD_CODE(_GetTXRateStatistics),
87         GEN_CMD_CODE(_SetUsbSuspend),
88         GEN_CMD_CODE(_SetH2cLbk),
89         GEN_CMD_CODE(_AddBAReq), /*45*/
90
91         GEN_CMD_CODE(_SetChannel), /*46*/
92 /* MP_OFFLOAD Start (47~54)*/
93         GEN_CMD_CODE(_SetTxPower),
94         GEN_CMD_CODE(_SwitchAntenna),
95         GEN_CMD_CODE(_SetCrystalCap),
96         GEN_CMD_CODE(_SetSingleCarrierTx), /*50*/
97         GEN_CMD_CODE(_SetSingleToneTx),
98         GEN_CMD_CODE(_SetCarrierSuppressionTx),
99         GEN_CMD_CODE(_SetContinuousTx),
100         GEN_CMD_CODE(_SwitchBandwidth), /*54*/
101 /* MP_OFFLOAD End*/
102         GEN_CMD_CODE(_TX_Beacon), /*55*/
103         GEN_CMD_CODE(_SetPowerTracking),
104         GEN_CMD_CODE(_AMSDU_TO_AMPDU), /*57*/
105         GEN_CMD_CODE(_SetMacAddress), /*58*/
106
107         GEN_CMD_CODE(_DisconnectCtrl), /*59*/
108         GEN_CMD_CODE(_SetChannelPlan), /*60*/
109         GEN_CMD_CODE(_DisconnectCtrlEx), /*61*/
110
111         /* To do, modify these h2c cmd, add or delete */
112         GEN_CMD_CODE(_GetH2cLbk) ,
113
114         /* WPS extra IE */
115         GEN_CMD_CODE(_SetProbeReqExtraIE) ,
116         GEN_CMD_CODE(_SetAssocReqExtraIE) ,
117         GEN_CMD_CODE(_SetProbeRspExtraIE) ,
118         GEN_CMD_CODE(_SetAssocRspExtraIE) ,
119
120         /* the following is driver will do */
121         GEN_CMD_CODE(_GetCurDataRate) ,
122
123         GEN_CMD_CODE(_GetTxRetrycnt),  /* to record times that Tx retry to
124                                         * transmit packet after association
125                                         */
126         GEN_CMD_CODE(_GetRxRetrycnt),  /* to record total number of the
127                                         * received frame with ReTry bit set in
128                                         * the WLAN header
129                                         */
130
131         GEN_CMD_CODE(_GetBCNOKcnt),
132         GEN_CMD_CODE(_GetBCNERRcnt),
133         GEN_CMD_CODE(_GetCurTxPwrLevel),
134
135         GEN_CMD_CODE(_SetDIG),
136         GEN_CMD_CODE(_SetRA),
137         GEN_CMD_CODE(_SetPT),
138         GEN_CMD_CODE(_ReadTSSI),
139
140         MAX_H2CCMD
141 };
142
143
144 #define _GetBBReg_CMD_          _Read_BBREG_CMD_
145 #define _SetBBReg_CMD_          _Write_BBREG_CMD_
146 #define _GetRFReg_CMD_          _Read_RFREG_CMD_
147 #define _SetRFReg_CMD_          _Write_RFREG_CMD_
148 #define _DRV_INT_CMD_           (MAX_H2CCMD+1)
149 #define _SetRFIntFs_CMD_        (MAX_H2CCMD+2)
150
151 #ifdef _RTL8712_CMD_C_
152 static struct _cmd_callback     cmd_callback[] = {
153         {GEN_CMD_CODE(_Read_MACREG), NULL}, /*0*/
154         {GEN_CMD_CODE(_Write_MACREG), NULL},
155         {GEN_CMD_CODE(_Read_BBREG), &r8712_getbbrfreg_cmdrsp_callback},
156         {GEN_CMD_CODE(_Write_BBREG), NULL},
157         {GEN_CMD_CODE(_Read_RFREG), &r8712_getbbrfreg_cmdrsp_callback},
158         {GEN_CMD_CODE(_Write_RFREG), NULL}, /*5*/
159         {GEN_CMD_CODE(_Read_EEPROM), NULL},
160         {GEN_CMD_CODE(_Write_EEPROM), NULL},
161         {GEN_CMD_CODE(_Read_EFUSE), NULL},
162         {GEN_CMD_CODE(_Write_EFUSE), NULL},
163
164         {GEN_CMD_CODE(_Read_CAM),       NULL},  /*10*/
165         {GEN_CMD_CODE(_Write_CAM),       NULL},
166         {GEN_CMD_CODE(_setBCNITV), NULL},
167         {GEN_CMD_CODE(_setMBIDCFG), NULL},
168         {GEN_CMD_CODE(_JoinBss), &r8712_joinbss_cmd_callback},  /*14*/
169         {GEN_CMD_CODE(_DisConnect), &r8712_disassoc_cmd_callback}, /*15*/
170         {GEN_CMD_CODE(_CreateBss), &r8712_createbss_cmd_callback},
171         {GEN_CMD_CODE(_SetOpMode), NULL},
172         {GEN_CMD_CODE(_SiteSurvey), &r8712_survey_cmd_callback}, /*18*/
173         {GEN_CMD_CODE(_SetAuth), NULL},
174
175         {GEN_CMD_CODE(_SetKey), NULL},  /*20*/
176         {GEN_CMD_CODE(_SetStaKey), &r8712_setstaKey_cmdrsp_callback},
177         {GEN_CMD_CODE(_SetAssocSta), &r8712_setassocsta_cmdrsp_callback},
178         {GEN_CMD_CODE(_DelAssocSta), NULL},
179         {GEN_CMD_CODE(_SetStaPwrState), NULL},
180         {GEN_CMD_CODE(_SetBasicRate), NULL}, /*25*/
181         {GEN_CMD_CODE(_GetBasicRate), NULL},
182         {GEN_CMD_CODE(_SetDataRate), NULL},
183         {GEN_CMD_CODE(_GetDataRate), NULL},
184         {GEN_CMD_CODE(_SetPhyInfo), NULL},
185
186         {GEN_CMD_CODE(_GetPhyInfo), NULL}, /*30*/
187         {GEN_CMD_CODE(_SetPhy), NULL},
188         {GEN_CMD_CODE(_GetPhy), NULL},
189         {GEN_CMD_CODE(_readRssi), NULL},
190         {GEN_CMD_CODE(_readGain), NULL},
191         {GEN_CMD_CODE(_SetAtim), NULL}, /*35*/
192         {GEN_CMD_CODE(_SetPwrMode), NULL},
193         {GEN_CMD_CODE(_JoinbssRpt), NULL},
194         {GEN_CMD_CODE(_SetRaTable), NULL},
195         {GEN_CMD_CODE(_GetRaTable), NULL},
196
197         {GEN_CMD_CODE(_GetCCXReport), NULL}, /*40*/
198         {GEN_CMD_CODE(_GetDTMReport),   NULL},
199         {GEN_CMD_CODE(_GetTXRateStatistics), NULL},
200         {GEN_CMD_CODE(_SetUsbSuspend), NULL},
201         {GEN_CMD_CODE(_SetH2cLbk), NULL},
202         {GEN_CMD_CODE(_AddBAReq), NULL}, /*45*/
203
204         {GEN_CMD_CODE(_SetChannel), NULL},              /*46*/
205 /* MP_OFFLOAD Start (47~54)*/
206         {GEN_CMD_CODE(_SetTxPower), NULL},
207         {GEN_CMD_CODE(_SwitchAntenna), NULL},
208         {GEN_CMD_CODE(_SetCrystalCap), NULL},
209         {GEN_CMD_CODE(_SetSingleCarrierTx), NULL},      /*50*/
210         {GEN_CMD_CODE(_SetSingleToneTx), NULL},
211         {GEN_CMD_CODE(_SetCarrierSuppressionTx), NULL},
212         {GEN_CMD_CODE(_SetContinuousTx), NULL},
213         {GEN_CMD_CODE(_SwitchBandwidth), NULL},         /*54*/
214 /* MP_OFFLOAD End*/
215         {GEN_CMD_CODE(_TX_Beacon), NULL}, /*55*/
216         {GEN_CMD_CODE(_SetPowerTracking), NULL},
217         {GEN_CMD_CODE(_AMSDU_TO_AMPDU), NULL}, /*57*/
218         {GEN_CMD_CODE(_SetMacAddress), NULL}, /*58*/
219
220         {GEN_CMD_CODE(_DisconnectCtrl), NULL}, /*59*/
221         {GEN_CMD_CODE(_SetChannelPlan), NULL}, /*60*/
222         {GEN_CMD_CODE(_DisconnectCtrlEx), NULL}, /*61*/
223
224         /* To do, modify these h2c cmd, add or delete */
225         {GEN_CMD_CODE(_GetH2cLbk), NULL},
226
227         {_SetProbeReqExtraIE_CMD_, NULL},
228         {_SetAssocReqExtraIE_CMD_, NULL},
229         {_SetProbeRspExtraIE_CMD_, NULL},
230         {_SetAssocRspExtraIE_CMD_, NULL},
231         {_GetCurDataRate_CMD_, NULL},
232         {_GetTxRetrycnt_CMD_, NULL},
233         {_GetRxRetrycnt_CMD_, NULL},
234         {_GetBCNOKcnt_CMD_, NULL},
235         {_GetBCNERRcnt_CMD_, NULL},
236         {_GetCurTxPwrLevel_CMD_, NULL},
237         {_SetDIG_CMD_, NULL},
238         {_SetRA_CMD_, NULL},
239         {_SetPT_CMD_, NULL},
240         {GEN_CMD_CODE(_ReadTSSI), &r8712_readtssi_cmdrsp_callback}
241 };
242 #endif
243
244 #endif