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