| /* SPDX-License-Identifier: GPL-2.0 */ |
| /****************************************************************************** |
| * |
| * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved. |
| * |
| * Modifications for inclusion into the Linux staging tree are |
| * Copyright(c) 2010 Larry Finger. All rights reserved. |
| * |
| * Contact information: |
| * WLAN FAE <wlanfae@realtek.com> |
| * Larry Finger <Larry.Finger@lwfinger.net> |
| * |
| ******************************************************************************/ |
| #ifndef __RTL8712_CMD_H_ |
| #define __RTL8712_CMD_H_ |
| |
| #define CMD_HDR_SZ 8 |
| |
| u8 r8712_fw_cmd(struct _adapter *pAdapter, u32 cmd); |
| void r8712_fw_cmd_data(struct _adapter *pAdapter, u32 *value, u8 flag); |
| |
| struct cmd_hdr { |
| u32 cmd_dw0; |
| u32 cmd_dw1; |
| }; |
| |
| enum rtl8712_h2c_cmd { |
| GEN_CMD_CODE(_Read_MACREG), /*0*/ |
| GEN_CMD_CODE(_Write_MACREG), |
| GEN_CMD_CODE(_Read_BBREG), |
| GEN_CMD_CODE(_Write_BBREG), |
| GEN_CMD_CODE(_Read_RFREG), |
| GEN_CMD_CODE(_Write_RFREG), /*5*/ |
| GEN_CMD_CODE(_Read_EEPROM), |
| GEN_CMD_CODE(_Write_EEPROM), |
| GEN_CMD_CODE(_Read_EFUSE), |
| GEN_CMD_CODE(_Write_EFUSE), |
| |
| GEN_CMD_CODE(_Read_CAM), /*10*/ |
| GEN_CMD_CODE(_Write_CAM), |
| GEN_CMD_CODE(_setBCNITV), |
| GEN_CMD_CODE(_setMBIDCFG), |
| GEN_CMD_CODE(_JoinBss), /*14*/ |
| GEN_CMD_CODE(_DisConnect), /*15*/ |
| GEN_CMD_CODE(_CreateBss), |
| GEN_CMD_CODE(_SetOpMode), |
| GEN_CMD_CODE(_SiteSurvey), /*18*/ |
| GEN_CMD_CODE(_SetAuth), |
| |
| GEN_CMD_CODE(_SetKey), /*20*/ |
| GEN_CMD_CODE(_SetStaKey), |
| GEN_CMD_CODE(_SetAssocSta), |
| GEN_CMD_CODE(_DelAssocSta), |
| GEN_CMD_CODE(_SetStaPwrState), |
| GEN_CMD_CODE(_SetBasicRate), /*25*/ |
| GEN_CMD_CODE(_GetBasicRate), |
| GEN_CMD_CODE(_SetDataRate), |
| GEN_CMD_CODE(_GetDataRate), |
| GEN_CMD_CODE(_SetPhyInfo), |
| |
| GEN_CMD_CODE(_GetPhyInfo), /*30*/ |
| GEN_CMD_CODE(_SetPhy), |
| GEN_CMD_CODE(_GetPhy), |
| GEN_CMD_CODE(_readRssi), |
| GEN_CMD_CODE(_readGain), |
| GEN_CMD_CODE(_SetAtim), /*35*/ |
| GEN_CMD_CODE(_SetPwrMode), |
| GEN_CMD_CODE(_JoinbssRpt), |
| GEN_CMD_CODE(_SetRaTable), |
| GEN_CMD_CODE(_GetRaTable), |
| |
| GEN_CMD_CODE(_GetCCXReport), /*40*/ |
| GEN_CMD_CODE(_GetDTMReport), |
| GEN_CMD_CODE(_GetTXRateStatistics), |
| GEN_CMD_CODE(_SetUsbSuspend), |
| GEN_CMD_CODE(_SetH2cLbk), |
| GEN_CMD_CODE(_AddBAReq), /*45*/ |
| |
| GEN_CMD_CODE(_SetChannel), /*46*/ |
| /* MP_OFFLOAD Start (47~54)*/ |
| GEN_CMD_CODE(_SetTxPower), |
| GEN_CMD_CODE(_SwitchAntenna), |
| GEN_CMD_CODE(_SetCrystalCap), |
| GEN_CMD_CODE(_SetSingleCarrierTx), /*50*/ |
| GEN_CMD_CODE(_SetSingleToneTx), |
| GEN_CMD_CODE(_SetCarrierSuppressionTx), |
| GEN_CMD_CODE(_SetContinuousTx), |
| GEN_CMD_CODE(_SwitchBandwidth), /*54*/ |
| /* MP_OFFLOAD End*/ |
| GEN_CMD_CODE(_TX_Beacon), /*55*/ |
| GEN_CMD_CODE(_SetPowerTracking), |
| GEN_CMD_CODE(_AMSDU_TO_AMPDU), /*57*/ |
| GEN_CMD_CODE(_SetMacAddress), /*58*/ |
| |
| GEN_CMD_CODE(_DisconnectCtrl), /*59*/ |
| GEN_CMD_CODE(_SetChannelPlan), /*60*/ |
| GEN_CMD_CODE(_DisconnectCtrlEx), /*61*/ |
| |
| /* To do, modify these h2c cmd, add or delete */ |
| GEN_CMD_CODE(_GetH2cLbk), |
| |
| /* WPS extra IE */ |
| GEN_CMD_CODE(_SetProbeReqExtraIE), |
| GEN_CMD_CODE(_SetAssocReqExtraIE), |
| GEN_CMD_CODE(_SetProbeRspExtraIE), |
| GEN_CMD_CODE(_SetAssocRspExtraIE), |
| |
| /* the following is driver will do */ |
| GEN_CMD_CODE(_GetCurDataRate), |
| |
| GEN_CMD_CODE(_GetTxRetrycnt), /* to record times that Tx retry to |
| * transmit packet after association |
| */ |
| GEN_CMD_CODE(_GetRxRetrycnt), /* to record total number of the |
| * received frame with ReTry bit set in |
| * the WLAN header |
| */ |
| |
| GEN_CMD_CODE(_GetBCNOKcnt), |
| GEN_CMD_CODE(_GetBCNERRcnt), |
| GEN_CMD_CODE(_GetCurTxPwrLevel), |
| |
| GEN_CMD_CODE(_SetDIG), |
| GEN_CMD_CODE(_SetRA), |
| GEN_CMD_CODE(_SetPT), |
| GEN_CMD_CODE(_ReadTSSI), |
| |
| MAX_H2CCMD |
| }; |
| |
| |
| #define _GetBBReg_CMD_ _Read_BBREG_CMD_ |
| #define _SetBBReg_CMD_ _Write_BBREG_CMD_ |
| #define _GetRFReg_CMD_ _Read_RFREG_CMD_ |
| #define _SetRFReg_CMD_ _Write_RFREG_CMD_ |
| #define _DRV_INT_CMD_ (MAX_H2CCMD + 1) |
| #define _SetRFIntFs_CMD_ (MAX_H2CCMD + 2) |
| |
| #ifdef _RTL8712_CMD_C_ |
| static struct _cmd_callback cmd_callback[] = { |
| {GEN_CMD_CODE(_Read_MACREG), NULL}, /*0*/ |
| {GEN_CMD_CODE(_Write_MACREG), NULL}, |
| {GEN_CMD_CODE(_Read_BBREG), NULL}, |
| {GEN_CMD_CODE(_Write_BBREG), NULL}, |
| {GEN_CMD_CODE(_Read_RFREG), &r8712_getbbrfreg_cmdrsp_callback}, |
| {GEN_CMD_CODE(_Write_RFREG), NULL}, /*5*/ |
| {GEN_CMD_CODE(_Read_EEPROM), NULL}, |
| {GEN_CMD_CODE(_Write_EEPROM), NULL}, |
| {GEN_CMD_CODE(_Read_EFUSE), NULL}, |
| {GEN_CMD_CODE(_Write_EFUSE), NULL}, |
| |
| {GEN_CMD_CODE(_Read_CAM), NULL}, /*10*/ |
| {GEN_CMD_CODE(_Write_CAM), NULL}, |
| {GEN_CMD_CODE(_setBCNITV), NULL}, |
| {GEN_CMD_CODE(_setMBIDCFG), NULL}, |
| {GEN_CMD_CODE(_JoinBss), &r8712_joinbss_cmd_callback}, /*14*/ |
| {GEN_CMD_CODE(_DisConnect), &r8712_disassoc_cmd_callback}, /*15*/ |
| {GEN_CMD_CODE(_CreateBss), &r8712_createbss_cmd_callback}, |
| {GEN_CMD_CODE(_SetOpMode), NULL}, |
| {GEN_CMD_CODE(_SiteSurvey), &r8712_survey_cmd_callback}, /*18*/ |
| {GEN_CMD_CODE(_SetAuth), NULL}, |
| |
| {GEN_CMD_CODE(_SetKey), NULL}, /*20*/ |
| {GEN_CMD_CODE(_SetStaKey), &r8712_setstaKey_cmdrsp_callback}, |
| {GEN_CMD_CODE(_SetAssocSta), &r8712_setassocsta_cmdrsp_callback}, |
| {GEN_CMD_CODE(_DelAssocSta), NULL}, |
| {GEN_CMD_CODE(_SetStaPwrState), NULL}, |
| {GEN_CMD_CODE(_SetBasicRate), NULL}, /*25*/ |
| {GEN_CMD_CODE(_GetBasicRate), NULL}, |
| {GEN_CMD_CODE(_SetDataRate), NULL}, |
| {GEN_CMD_CODE(_GetDataRate), NULL}, |
| {GEN_CMD_CODE(_SetPhyInfo), NULL}, |
| |
| {GEN_CMD_CODE(_GetPhyInfo), NULL}, /*30*/ |
| {GEN_CMD_CODE(_SetPhy), NULL}, |
| {GEN_CMD_CODE(_GetPhy), NULL}, |
| {GEN_CMD_CODE(_readRssi), NULL}, |
| {GEN_CMD_CODE(_readGain), NULL}, |
| {GEN_CMD_CODE(_SetAtim), NULL}, /*35*/ |
| {GEN_CMD_CODE(_SetPwrMode), NULL}, |
| {GEN_CMD_CODE(_JoinbssRpt), NULL}, |
| {GEN_CMD_CODE(_SetRaTable), NULL}, |
| {GEN_CMD_CODE(_GetRaTable), NULL}, |
| |
| {GEN_CMD_CODE(_GetCCXReport), NULL}, /*40*/ |
| {GEN_CMD_CODE(_GetDTMReport), NULL}, |
| {GEN_CMD_CODE(_GetTXRateStatistics), NULL}, |
| {GEN_CMD_CODE(_SetUsbSuspend), NULL}, |
| {GEN_CMD_CODE(_SetH2cLbk), NULL}, |
| {GEN_CMD_CODE(_AddBAReq), NULL}, /*45*/ |
| |
| {GEN_CMD_CODE(_SetChannel), NULL}, /*46*/ |
| /* MP_OFFLOAD Start (47~54)*/ |
| {GEN_CMD_CODE(_SetTxPower), NULL}, |
| {GEN_CMD_CODE(_SwitchAntenna), NULL}, |
| {GEN_CMD_CODE(_SetCrystalCap), NULL}, |
| {GEN_CMD_CODE(_SetSingleCarrierTx), NULL}, /*50*/ |
| {GEN_CMD_CODE(_SetSingleToneTx), NULL}, |
| {GEN_CMD_CODE(_SetCarrierSuppressionTx), NULL}, |
| {GEN_CMD_CODE(_SetContinuousTx), NULL}, |
| {GEN_CMD_CODE(_SwitchBandwidth), NULL}, /*54*/ |
| /* MP_OFFLOAD End*/ |
| {GEN_CMD_CODE(_TX_Beacon), NULL}, /*55*/ |
| {GEN_CMD_CODE(_SetPowerTracking), NULL}, |
| {GEN_CMD_CODE(_AMSDU_TO_AMPDU), NULL}, /*57*/ |
| {GEN_CMD_CODE(_SetMacAddress), NULL}, /*58*/ |
| |
| {GEN_CMD_CODE(_DisconnectCtrl), NULL}, /*59*/ |
| {GEN_CMD_CODE(_SetChannelPlan), NULL}, /*60*/ |
| {GEN_CMD_CODE(_DisconnectCtrlEx), NULL}, /*61*/ |
| |
| /* To do, modify these h2c cmd, add or delete */ |
| {GEN_CMD_CODE(_GetH2cLbk), NULL}, |
| |
| {_SetProbeReqExtraIE_CMD_, NULL}, |
| {_SetAssocReqExtraIE_CMD_, NULL}, |
| {_SetProbeRspExtraIE_CMD_, NULL}, |
| {_SetAssocRspExtraIE_CMD_, NULL}, |
| {_GetCurDataRate_CMD_, NULL}, |
| {_GetTxRetrycnt_CMD_, NULL}, |
| {_GetRxRetrycnt_CMD_, NULL}, |
| {_GetBCNOKcnt_CMD_, NULL}, |
| {_GetBCNERRcnt_CMD_, NULL}, |
| {_GetCurTxPwrLevel_CMD_, NULL}, |
| {_SetDIG_CMD_, NULL}, |
| {_SetRA_CMD_, NULL}, |
| {_SetPT_CMD_, NULL}, |
| {GEN_CMD_CODE(_ReadTSSI), &r8712_readtssi_cmdrsp_callback} |
| }; |
| #endif |
| |
| #endif |