1 /******************************************************************************
3 * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
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.
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
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
18 * Modifications for inclusion into the Linux staging tree are
19 * Copyright(c) 2010 Larry Finger. All rights reserved.
21 * Contact information:
22 * WLAN FAE <wlanfae@realtek.com>
23 * Larry Finger <Larry.Finger@lwfinger.net>
25 ******************************************************************************/
26 #ifndef __RTL8712_CMD_H_
27 #define __RTL8712_CMD_H_
31 u8
r8712_fw_cmd(struct _adapter
*pAdapter
, u32 cmd
);
32 void r8712_fw_cmd_data(struct _adapter
*pAdapter
, u32
*value
, u8 flag
);
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
),
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
),
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
),
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
),
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*/
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*/
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*/
107 GEN_CMD_CODE(_DisconnectCtrl
), /*59*/
108 GEN_CMD_CODE(_SetChannelPlan
), /*60*/
109 GEN_CMD_CODE(_DisconnectCtrlEx
), /*61*/
111 /* To do, modify these h2c cmd, add or delete */
112 GEN_CMD_CODE(_GetH2cLbk
) ,
115 GEN_CMD_CODE(_SetProbeReqExtraIE
) ,
116 GEN_CMD_CODE(_SetAssocReqExtraIE
) ,
117 GEN_CMD_CODE(_SetProbeRspExtraIE
) ,
118 GEN_CMD_CODE(_SetAssocRspExtraIE
) ,
120 /* the following is driver will do */
121 GEN_CMD_CODE(_GetCurDataRate
) ,
123 GEN_CMD_CODE(_GetTxRetrycnt
), /* to record times that Tx retry to
124 * transmmit packet after association
126 GEN_CMD_CODE(_GetRxRetrycnt
), /* to record total number of the
127 * received frame with ReTry bit set in
131 GEN_CMD_CODE(_GetBCNOKcnt
),
132 GEN_CMD_CODE(_GetBCNERRcnt
),
133 GEN_CMD_CODE(_GetCurTxPwrLevel
),
135 GEN_CMD_CODE(_SetDIG
),
136 GEN_CMD_CODE(_SetRA
),
137 GEN_CMD_CODE(_SetPT
),
138 GEN_CMD_CODE(_ReadTSSI
),
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)
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
},
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
},
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
},
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
},
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*/
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*/
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*/
220 {GEN_CMD_CODE(_DisconnectCtrl
), NULL
}, /*59*/
221 {GEN_CMD_CODE(_SetChannelPlan
), NULL
}, /*60*/
222 {GEN_CMD_CODE(_DisconnectCtrlEx
), NULL
}, /*61*/
224 /* To do, modify these h2c cmd, add or delete */
225 {GEN_CMD_CODE(_GetH2cLbk
), NULL
},
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
},
240 {GEN_CMD_CODE(_ReadTSSI
), &r8712_readtssi_cmdrsp_callback
}