8723BU: Update 8723BU wifi driver to version v4.3.16_14189.20150519_BTCOEX2015119...
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723bu / include / hal_data.h
index ac6007e8977e1fd6f6bd674e765784da7bdb1165..a91086655a4676eab487cbce0cfd6ad7ca582f0b 100755 (executable)
@@ -75,22 +75,6 @@ typedef      enum _INTERFACE_SELECT_USB{
        INTF_SEL5_USB_Combo_MF  = 5,            // USB WiFi+BT Multi-Function Combo, i.e., Proprietary layout(AS-VAU) which is the same as SDIO card
 } INTERFACE_SELECT_USB, *PINTERFACE_SELECT_USB;
 
-#ifdef CONFIG_USB_HCI
-//should be sync with INTERFACE_SELECT_USB
-typedef        enum _BOARD_TYPE_8192CUSB{
-       BOARD_USB_DONGLE                        = 0,            // USB dongle
-       BOARD_USB_High_PA               = 1,            // USB dongle with high power PA
-       BOARD_MINICARD                  = 2,            // Minicard
-       BOARD_USB_SOLO                  = 3,            // USB solo-Slim module
-       BOARD_USB_COMBO                 = 4,            // USB Combo-Slim module
-} BOARD_TYPE_8192CUSB, *PBOARD_TYPE_8192CUSB;
-
-#define        SUPPORT_HW_RADIO_DETECT(pHalData) \
-       (pHalData->BoardType == BOARD_MINICARD||\
-       pHalData->BoardType == BOARD_USB_SOLO||\
-       pHalData->BoardType == BOARD_USB_COMBO)
-#endif
-
 typedef enum _RT_AMPDU_BRUST_MODE{
        RT_AMPDU_BRUST_NONE             = 0,
        RT_AMPDU_BRUST_92D              = 1,
@@ -134,14 +118,6 @@ typedef enum _RT_AMPDU_BRUST_MODE{
 //#define HP_THERMAL_NUM               8
 //###### duplicate code,will move to ODM #########
 
-#if defined(CONFIG_RTL8192D) || defined(CONFIG_BT_COEXIST)
-typedef enum _MACPHY_MODE_8192D{
-       SINGLEMAC_SINGLEPHY,    //SMSP
-       DUALMAC_DUALPHY,                //DMDP
-       DUALMAC_SINGLEPHY,      //DMSP  
-}MACPHY_MODE_8192D,*PMACPHY_MODE_8192D;
-#endif
-
 #ifdef CONFIG_USB_RX_AGGREGATION
 typedef enum _USB_RX_AGG_MODE{
        USB_RX_AGG_DISABLE,
@@ -158,156 +134,63 @@ typedef enum _USB_RX_AGG_MODE{
 #define PAGE_SIZE_256  256
 #define PAGE_SIZE_512  512
 
-struct dm_priv
-{
-       u8      DM_Type;
-
-#define DYNAMIC_FUNC_BT BIT0
-
-       u8      DMFlag;
-       u8      InitDMFlag;
-       //u8   RSVD_1;   
-       
-       u32     InitODMFlag;
-       //* Upper and Lower Signal threshold for Rate Adaptive*/
-       int     UndecoratedSmoothedPWDB;
-       int     UndecoratedSmoothedCCK;
-       int     EntryMinUndecoratedSmoothedPWDB;
-       int     EntryMaxUndecoratedSmoothedPWDB;
-       int     MinUndecoratedPWDBForDM;
-       int     LastMinUndecoratedPWDBForDM;
-
-       s32     UndecoratedSmoothedBeacon;
-
-//###### duplicate code,will move to ODM #########
-       //for High Power
-       u8      bDynamicTxPowerEnable;
-       u8      LastDTPLvl;
-       u8      DynamicTxHighPowerLvl;//Add by Jacken Tx Power Control for Near/Far Range 2008/03/06
-
-       //for tx power tracking
-       u8      bTXPowerTracking;
-       u8      TXPowercount;
-       u8      bTXPowerTrackingInit;
-       u8      TxPowerTrackControl;    //for mp mode, turn off txpwrtracking as default
-       u8      TM_Trigger;
-
-       u8      ThermalMeter[2];                                // ThermalMeter, index 0 for RFIC0, and 1 for RFIC1
-       u8      ThermalValue;
-       u8      ThermalValue_LCK;
-       u8      ThermalValue_IQK;
-       u8      ThermalValue_DPK; 
-       u8      bRfPiEnable;
-       //u8   RSVD_2;          
-
-       //for APK
-       u32     APKoutput[2][2];        //path A/B; output1_1a/output1_2a
-       u8      bAPKdone;
-       u8      bAPKThermalMeterIgnore;
-       u8      bDPdone;
-       u8      bDPPathAOK;
-       u8      bDPPathBOK;
-       //u8   RSVD_3;                  
-       //u8   RSVD_4;
-       //u8   RSVD_5;
-
-       //for IQK       
-       u32     ADDA_backup[IQK_ADDA_REG_NUM];
-       u32     IQK_MAC_backup[IQK_MAC_REG_NUM];
-       u32     IQK_BB_backup_recover[9];
-       u32     IQK_BB_backup[IQK_BB_REG_NUM];
-       
-       u8      PowerIndex_backup[6];
-       u8      OFDM_index[2];
-       
-       u8      bCCKinCH14;
-       u8      CCK_index;
-       u8      bDoneTxpower;
-       u8      CCK_index_HP;
-       
-       u8      OFDM_index_HP[2];
-       u8      ThermalValue_HP[HP_THERMAL_NUM];
-       u8      ThermalValue_HP_index;
-       //u8   RSVD_6;
-       
-       //for TxPwrTracking2
-       s32     RegE94;
-       s32  RegE9C;
-       s32     RegEB4;
-       s32     RegEBC;
-
-       u32     TXPowerTrackingCallbackCnt;     //cosa add for debug
-
-       u32     prv_traffic_idx; // edca turbo
-#ifdef CONFIG_RTL8192D
-       u8      ThermalValue_AVG[AVG_THERMAL_NUM];
-       u8      ThermalValue_AVG_index;
-       u8      ThermalValue_RxGain;
-       u8      ThermalValue_Crystal;
-       u8      bReloadtxpowerindex;
-       
-       u32     RegD04_MP;
-       
-       u8      RegC04_MP;
-       u8      Delta_IQK;
-       u8      Delta_LCK;
-       //u8   RSVD_7;
-       
-       BOOLEAN bDPKdone[2];
-       //u16 RSVD_8;
-       
-       u32     RegA24; 
-       u32     RegRF3C[2];     //pathA / pathB
-#endif
-//###### duplicate code,will move to ODM #########
-
-       // Add for Reading Initial Data Rate SEL Register 0x484 during watchdog. Using for fill tx desc. 2011.3.21 by Thomas
-       u8      INIDATA_RATE[32];
-       _lock IQKSpinLock;
-};
-
-
 typedef struct hal_com_data
 {
        HAL_VERSION                     VersionID;
        RT_MULTI_FUNC           MultiFunc; // For multi-function consideration.
        RT_POLARITY_CTL         PolarityCtl; // For Wifi PDn Polarity control.
        RT_REGULATOR_MODE       RegulatorMode; // switching regulator or LDO
-
+       
+       /****** FW related ******/
        u16     FirmwareVersion;
        u16     FirmwareVersionRev;
        u16     FirmwareSubVersion;
        u16     FirmwareSignature;
+       u8      RegFWOffload;   
+       u8      fw_ractrl;
+       u8      FwRsvdPageStartOffset; /* 2010.06.23. Added by tynli. Reserve page start offset except beacon in TxQ.*/
+       u8      LastHMEBoxNum;  /* H2C - for host message to fw */
 
-       //current WIFI_PHY values
-       WIRELESS_MODE           CurrentWirelessMode;
+       /****** current WIFI_PHY values ******/
+       WIRELESS_MODE   CurrentWirelessMode;
        CHANNEL_WIDTH   CurrentChannelBW;
-       BAND_TYPE                       CurrentBandType;        //0:2.4G, 1:5G
-       BAND_TYPE                       BandSet;
-       u8      CurrentChannel;
-       u8      CurrentCenterFrequencyIndex1;
-       u8      nCur40MhzPrimeSC;// Control channel sub-carrier
-       u8      nCur80MhzPrimeSC;   //used for primary 40MHz of 80MHz mode
-
-       u16     CustomerID;
-       u16     BasicRateSet;
-       u16 ForcedDataRate;// Force Data Rate. 0: Auto, 0x02: 1M ~ 0x6C: 54M.
-       u32     ReceiveConfig;
-
-       //rf_ctrl
+       BAND_TYPE               CurrentBandType;        /* 0:2.4G, 1:5G */
+       BAND_TYPE               BandSet;
+       u8                              CurrentChannel;
+       u8                              CurrentCenterFrequencyIndex1;
+       u8                              nCur40MhzPrimeSC;       /* Control channel sub-carrier */
+       u8                              nCur80MhzPrimeSC;   /* used for primary 40MHz of 80MHz mode */
+       BOOLEAN                 bSwChnlAndSetBWInProgress;      
+       u8                              bDisableSWChannelPlan; /* flag of disable software change channel plan   */
+       u16                             BasicRateSet;   
+       u32                             ReceiveConfig;
+       BOOLEAN                 bSwChnl;
+       BOOLEAN                 bSetChnlBW;
+       BOOLEAN                 bChnlBWInitialized;
+
+       /****** rf_ctrl *****/
        u8      rf_chip;
        u8      rf_type;
        u8      PackageType;
-       u8      NumTotalRFPath;
+       u8      NumTotalRFPath; 
 
-       u8      InterfaceSel;
-       u8      framesync;
-       u32     framesyncC34;
-       u8      framesyncMonitor;
-       u8      DefaultInitialGain[4];
-       //
-       // EEPROM setting.
-       //
+       /****** Debug ******/
+       u16     ForcedDataRate; /* Force Data Rate. 0: Auto, 0x02: 1M ~ 0x6C: 54M. */
+       u8      u1ForcedIgiLb;  /* forced IGI lower bound */    
+       u8      bDumpRxPkt;
+       u8      bDumpTxPkt;
+       u8      bDisableTXPowerTraining;
+
+       
+       /****** EEPROM setting.******/  
+       u8      bautoload_fail_flag;
+       u8      bloadfile_fail_flag;
+       u8      bloadmac_fail_flag;
+       u8      EepromOrEfuse;
+       u8      efuse_eeprom_data[EEPROM_MAX_SIZE]; /*92C:256bytes, 88E:512bytes, we use union set (512bytes)*/
+       u8      InterfaceSel; /* board type kept in eFuse */
+       u16     CustomerID;
+       
        u16     EEPROMVID;
        u16     EEPROMSVID;
 #ifdef CONFIG_USB_HCI
@@ -330,16 +213,22 @@ typedef struct hal_com_data
        u8      EEPROMBluetoothAntIsolation;
        u8      EEPROMBluetoothRadioShared;
        u8      bTXPowerDataReadFromEEPORM;
-       u8      bAPKThermalMeterIgnore;
-       u8      bDisableSWChannelPlan; // flag of disable software change channel plan
+       u8      EEPROMMACAddr[ETH_ALEN];
+       
+#ifdef CONFIG_RF_GAIN_OFFSET
+       u8      EEPROMRFGainOffset;
+       u8      EEPROMRFGainVal;
+#endif /*CONFIG_RF_GAIN_OFFSET*/
 
-       BOOLEAN                 EepromOrEfuse;
-       u8                              EfuseUsedPercentage;
-       u16                             EfuseUsedBytes;
-       //u8                            EfuseMap[2][HWSET_MAX_SIZE_JAGUAR];
-       EFUSE_HAL               EfuseHal;
+#ifdef CONFIG_RTL8723B
+       u8      adjuseVoltageVal;
+#endif
+       u8      EfuseUsedPercentage;
+       u16     EfuseUsedBytes;
+       /*u8            EfuseMap[2][HWSET_MAX_SIZE_JAGUAR];*/
+       EFUSE_HAL       EfuseHal;
 
-       //---------------------------------------------------------------------------------//
+       /*---------------------------------------------------------------------------------*/
        //3 [2.4G]
        u8      Index24G_CCK_Base[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
        u8      Index24G_BW40_Base[MAX_RF_PATH][CHANNEL_MAX_NUMBER];
@@ -361,16 +250,15 @@ typedef struct hal_com_data
 
        u8      TxPwrInPercentage;
 
-       u8      TxPwrCalibrateRate;
-       //
-       // TX power by rate table at most 4RF path.
-       // The register is 
-       //
-       // VHT TX power by rate off setArray = 
-       // Band:-2G&5G = 0 / 1
-       // RF: at most 4*4 = ABCD=0/1/2/3
-       // CCK=0 OFDM=1/2 HT-MCS 0-15=3/4/56 VHT=7/8/9/10/11                    
-       //
+       /********************************
+       *       TX power by rate table at most 4RF path.
+       *       The register is 
+       *
+       *       VHT TX power by rate off setArray = 
+       *       Band:-2G&5G = 0 / 1
+       *       RF: at most 4*4 = ABCD=0/1/2/3
+       *       CCK=0 OFDM=1/2 HT-MCS 0-15=3/4/56 VHT=7/8/9/10/11                       
+       **********************************/
        u8      TxPwrByRateTable;
        u8      TxPwrByRateBand;
        s8      TxPwrByRateOffset[TX_PWR_BY_RATE_NUM_BAND]
@@ -412,12 +300,8 @@ typedef struct hal_com_data
        // For power group
        u8      PwrGroupHT20[RF_PATH_MAX_92C_88E][CHANNEL_MAX_NUMBER];
        u8      PwrGroupHT40[RF_PATH_MAX_92C_88E][CHANNEL_MAX_NUMBER];
-
-
-       
-
        u8      PGMaxGroup;
-       u8      LegacyHTTxPowerDiff;// Legacy to HT rate power diff
+       
        // The current Tx Power Level
        u8      CurrentCckTxPwrIdx;
        u8      CurrentOfdm24GTxPwrIdx;
@@ -430,9 +314,7 @@ typedef struct hal_com_data
        u32     CCKTxPowerLevelOriginalOffset;
 
        u8      CrystalCap;
-       u32     AntennaTxPath;                                  // Antenna path Tx
-       u32     AntennaRxPath;                                  // Antenna path Rx
-
+       
        u8      PAType_2G;
        u8      PAType_5G;
        u8      LNAType_2G;
@@ -446,33 +328,17 @@ typedef struct hal_com_data
        u8      TypeALNA;
        u8      TypeAPA;
        u8      RFEType;
-       u8      BoardType;
-       u8      ExternalPA;
-       u8      bIQKInitialized;
-       BOOLEAN         bLCKInProgress;
-
-       BOOLEAN         bSwChnl;
-       BOOLEAN         bSetChnlBW;
-       BOOLEAN         bChnlBWInitialized;
-       BOOLEAN         bNeedIQK;
-
-       u8      bLedOpenDrain; // Support Open-drain arrangement for controlling the LED. Added by Roger, 2009.10.16.
-       u8      TxPowerTrackControl; //for mp mode, turn off txpwrtracking as default
-       u8      b1x1RecvCombine;        // for 1T1R receive combining
 
-       u32     AcParam_BE; //Original parameter for BE, use for EDCA turbo.    
+       u8      bLedOpenDrain; /* Support Open-drain arrangement for controlling the LED. Added by Roger, 2009.10.16. */
+       u32     AcParam_BE; /* Original parameter for BE, use for EDCA turbo.   */
 
-       BB_REGISTER_DEFINITION_T        PHYRegDef[4];   //Radio A/B/C/D
+       BB_REGISTER_DEFINITION_T        PHYRegDef[MAX_RF_PATH]; //Radio A/B/C/D
 
-       u32     RfRegChnlVal[2];
+       u32     RfRegChnlVal[MAX_RF_PATH];
 
        //RDG enable
        BOOLEAN  bRDGEnable;
 
-       //for host message to fw
-       u8      LastHMEBoxNum;
-
-       u8      fw_ractrl;
        u8      RegTxPause;
        // Beacon function related global variable.
        u8      RegBcnCtrlVal;
@@ -481,18 +347,30 @@ typedef struct hal_com_data
        u8      RegCR_1;
        u8      Reg837;
        u16     RegRRSR;
-
+       
+       /****** antenna diversity ******/
        u8      CurAntenna;
        u8      AntDivCfg;
        u8      AntDetection;
        u8      TRxAntDivType;
-       u8      ant_path; //for 8723B s0/s1 selection
+       u8      ant_path; //for 8723B s0/s1 selection   
+       u32     AntennaTxPath;                                  /* Antenna path Tx */
+       u32     AntennaRxPath;                                  /* Antenna path Rx */
+
+       /******** PHY DM & DM Section **********/
+       u8                      DM_Type;
+       _lock           IQKSpinLock;    
+       u8                      INIDATA_RATE[MACID_NUM_SW_LIMIT];
+       /* Upper and Lower Signal threshold for Rate Adaptive*/ 
+       int                     EntryMinUndecoratedSmoothedPWDB;
+       int                     EntryMaxUndecoratedSmoothedPWDB;
+       int                     MinUndecoratedPWDBForDM;
+       DM_ODM_T        odmpriv;        
+       u8                      bIQKInitialized;
+       u8                      bNeedIQK;
+       /******** PHY DM & DM Section **********/
 
-       u8      u1ForcedIgiLb;                  // forced IGI lower bound
 
-       u8      bDumpRxPkt;//for debug
-       u8      bDumpTxPkt;//for debug
-       u8      FwRsvdPageStartOffset; //2010.06.23. Added by tynli. Reserve page start offset except beacon in TxQ.
 
        // 2010/08/09 MH Add CU power down mode.
        BOOLEAN         pwrdown;
@@ -500,30 +378,20 @@ typedef struct hal_com_data
        // Add for dual MAC  0--Mac0 1--Mac1
        u32     interfaceIndex;
 
-       u8      OutEpQueueSel;
-       u8      OutEpNumber;
-
-       // 2010/12/10 MH Add for USB aggreation mode dynamic shceme.
-       BOOLEAN         UsbRxHighSpeedMode;
-
-       // 2010/11/22 MH Add for slim combo debug mode selective.
-       // This is used for fix the drawback of CU TSMC-A/UMC-A cut. HW auto suspend ability. Close BT clock.
-       BOOLEAN         SlimComboDbg;
-
 #ifdef CONFIG_P2P
        u8      p2p_ps_offload;
 #endif
-
-       //u8    AMPDUDensity;
-
-       // Auto FSM to Turn On, include clock, isolation, power control for MAC only
+       /* Auto FSM to Turn On, include clock, isolation, power control for MAC only */
        u8      bMacPwrCtrlOn;
-       u8      bDisableTXPowerTraining;
+       
        u8      RegIQKFWOffload;
        struct submit_ctx       iqk_sctx;
 
        RT_AMPDU_BRUST          AMPDUBurstMode; //92C maybe not use, but for compile successfully
 
+       u8      OutEpQueueSel;
+       u8      OutEpNumber;    
+
 #if defined (CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
        //
        // For SDIO Interface HAL related
@@ -546,7 +414,6 @@ typedef struct hal_com_data
        _lock           SdioTxFIFOFreePageLock;
        u8                      SdioTxOQTMaxFreeSpace;
        u8                      SdioTxOQTFreeSpace;
-       
 
        //
        // SDIO Rx FIFO related.
@@ -558,30 +425,34 @@ typedef struct hal_com_data
 #endif //CONFIG_SDIO_HCI
 
 #ifdef CONFIG_USB_HCI
-       u32     UsbBulkOutSize;
+
+       // 2010/12/10 MH Add for USB aggreation mode dynamic shceme.
+       BOOLEAN         UsbRxHighSpeedMode;
+       BOOLEAN         UsbTxVeryHighSpeedMode;
+       u32                     UsbBulkOutSize;
        BOOLEAN         bSupportUSB3;
 
        // Interrupt relatd register information.
-       u32     IntArray[3];//HISR0,HISR1,HSISR
-       u32     IntrMask[3];
-       u8      C2hArray[16];
+       u32                     IntArray[3];//HISR0,HISR1,HSISR
+       u32                     IntrMask[3];
+       u8                      C2hArray[16];
        #ifdef CONFIG_USB_TX_AGGREGATION
-       u8      UsbTxAggMode;
-       u8      UsbTxAggDescNum;
+       u8                      UsbTxAggMode;
+       u8                      UsbTxAggDescNum;
        #endif // CONFIG_USB_TX_AGGREGATION
        
        #ifdef CONFIG_USB_RX_AGGREGATION
-       u16     HwRxPageSize;                           // Hardware setting
-       u32     MaxUsbRxAggBlock;
+       u16                     HwRxPageSize;                           // Hardware setting
+       u32                     MaxUsbRxAggBlock;
 
        USB_RX_AGG_MODE UsbRxAggMode;
-       u8      UsbRxAggBlockCount;             //FOR USB Mode, USB Block count. Block size is 512-byte in hight speed and 64-byte in full speed
-       u8      UsbRxAggBlockTimeout;
-       u8      UsbRxAggPageCount;                      //FOR DMA Mode, 8192C DMA page count
-       u8      UsbRxAggPageTimeout;
+       u8                      UsbRxAggBlockCount;             /* FOR USB Mode, USB Block count. Block size is 512-byte in hight speed and 64-byte in full speed */
+       u8                      UsbRxAggBlockTimeout;
+       u8                      UsbRxAggPageCount;                      /* FOR DMA Mode, 8192C DMA page count*/
+       u8                      UsbRxAggPageTimeout;
 
-       u8      RegAcUsbDmaSize;
-       u8      RegAcUsbDmaTime;
+       u8                      RegAcUsbDmaSize;
+       u8                      RegAcUsbDmaTime;
        #endif//CONFIG_USB_RX_AGGREGATION
 #endif //CONFIG_USB_HCI
 
@@ -590,34 +461,27 @@ typedef struct hal_com_data
        //
        // EEPROM setting.
        //
-       u16     EEPROMChannelPlan;
-       
-       u8      EEPROMTSSI[2];
-       u8      EEPROMBoardType;
-       u32     TransmitConfig; 
-
-       u32     IntrMaskToSet[2];
-       u32     IntArray[2];
-       u32     IntrMask[2];
-       u32     SysIntArray[1];
-       u32     SysIntrMask[1];
-       u32     IntrMaskReg[2];
-       u32     IntrMaskDefault[2];
-
-       BOOLEAN  bL1OffSupport;
-       BOOLEAN bSupportBackDoor;
-
-       u8      bDefaultAntenna;
-       //u8    bIQKInitialized;
+       u32                     TransmitConfig;
+       u32                     IntrMaskToSet[2];
+       u32                     IntArray[2];
+       u32                     IntrMask[2];
+       u32                     SysIntArray[1];
+       u32                     SysIntrMask[1];
+       u32                     IntrMaskReg[2];
+       u32                     IntrMaskDefault[2];
+
+       BOOLEAN         bL1OffSupport;
+       BOOLEAN         bSupportBackDoor;
+
+       u8                      bDefaultAntenna;
        
-       u8      bInterruptMigration;
-       u8      bDisableTxInt;
+       u8                      bInterruptMigration;
+       u8                      bDisableTxInt;
 
-       u16     RxTag;  
+       u16                     RxTag;  
 #endif //CONFIG_PCI_HCI
+       
 
-       struct dm_priv  dmpriv;
-       DM_ODM_T                odmpriv;
 #ifdef DBG_CONFIG_ERROR_DETECT
        struct sreset_priv srestpriv;
 #endif //#ifdef DBG_CONFIG_ERROR_DETECT
@@ -625,58 +489,15 @@ typedef struct hal_com_data
 #ifdef CONFIG_BT_COEXIST
        // For bluetooth co-existance
        BT_COEXIST              bt_coexist;
-#ifdef CONFIG_RTL8723A
-       u8                              bAntennaDetected;
-#endif // CONFIG_RTL8723A
 #endif // CONFIG_BT_COEXIST
 
-#if defined(CONFIG_RTL8723A) || defined(CONFIG_RTL8723B)
+#if defined(CONFIG_RTL8723B)
        #ifndef CONFIG_PCI_HCI  // mutual exclusive with PCI -- so they're SDIO and GSPI 
        // Interrupt relatd register information.
        u32                     SysIntrStatus;
        u32                     SysIntrMask;
        #endif
-#endif //endif CONFIG_RTL8723A
-
-       
-#if defined(CONFIG_RTL8192C) ||defined(CONFIG_RTL8192D)
-       
-       u8      BluetoothCoexist;
-       
-       u8      EEPROMChnlAreaTxPwrCCK[2][3];   
-       u8      EEPROMChnlAreaTxPwrHT40_1S[2][3];       
-       u8      EEPROMChnlAreaTxPwrHT40_2SDiff[2][3];
-       u8      EEPROMPwrLimitHT20[3];
-       u8      EEPROMPwrLimitHT40[3];
-       #ifdef CONFIG_RTL8192D
-       MACPHY_MODE_8192D       MacPhyMode92D;
-       BAND_TYPE       CurrentBandType92D;     //0:2.4G, 1:5G
-       BAND_TYPE       BandSet92D;
-       BOOLEAN       bMasterOfDMSP;
-       BOOLEAN       bSlaveOfDMSP;
-
-       IQK_MATRIX_REGS_SETTING IQKMatrixRegSetting[IQK_Matrix_Settings_NUM_92D];
-       #ifdef CONFIG_DUALMAC_CONCURRENT
-       BOOLEAN         bInModeSwitchProcess;
-       #endif
-       u8      AutoLoadStatusFor8192D;
-       u8      EEPROMC9;
-       u8      EEPROMCC;
-       u8      PAMode;
-       u8      InternalPA5G[2];        //pathA / pathB
-       BOOLEAN         bPhyValueInitReady;
-       BOOLEAN         bLoadIMRandIQKSettingFor2G;// True if IMR or IQK  have done  for 2.4G in scan progress
-       BOOLEAN         bNOPG;
-       BOOLEAN         bIsVS;
-       //Query RF by FW
-       BOOLEAN         bReadRFbyFW;
-       BOOLEAN         bEarlyModeEnable;
-       BOOLEAN         bSupportRemoteWakeUp;
-       BOOLEAN         bInSetPower;
-       u8      RTSInitRate;     // 2010.11.24.by tynli.        
-       #endif //CONFIG_RTL8192D 
-
-#endif //defined(CONFIG_RTL8192C) ||defined(CONFIG_RTL8192D)
+#endif /*endif CONFIG_RTL8723B */
 
 #ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
        char    para_file_buf[MAX_PARA_FILE_BUF_LEN];
@@ -704,17 +525,27 @@ typedef struct hal_com_data
        s16 noise[ODM_MAX_CHANNEL_NUM];
 #endif
 
-       u8 macid_num;
-       u8 cam_entry_num;
+       u8      macid_num;
+       u8      cam_entry_num;
+       u8      RfKFreeEnable;
 
 } HAL_DATA_COMMON, *PHAL_DATA_COMMON;
 
 
+
 typedef struct hal_com_data HAL_DATA_TYPE, *PHAL_DATA_TYPE;
-#define GET_HAL_DATA(__pAdapter)       ((HAL_DATA_TYPE *)((__pAdapter)->HalData))
-#define GET_HAL_RFPATH_NUM(__pAdapter) (((HAL_DATA_TYPE *)((__pAdapter)->HalData))->NumTotalRFPath )
-#define RT_GetInterfaceSelection(_Adapter)     (GET_HAL_DATA(_Adapter)->InterfaceSel)
-#define GET_RF_TYPE(__pAdapter)                (GET_HAL_DATA(__pAdapter)->rf_type)
+#define GET_HAL_DATA(__pAdapter)                       ((HAL_DATA_TYPE *)((__pAdapter)->HalData))
+#define GET_HAL_RFPATH_NUM(__pAdapter)         (((HAL_DATA_TYPE *)((__pAdapter)->HalData))->NumTotalRFPath )
+#define RT_GetInterfaceSelection(_Adapter)             (GET_HAL_DATA(_Adapter)->InterfaceSel)
+#define GET_RF_TYPE(__pAdapter)                                (GET_HAL_DATA(__pAdapter)->rf_type)
+
+#define        SUPPORT_HW_RADIO_DETECT(Adapter)        (       RT_GetInterfaceSelection(Adapter) == INTF_SEL2_MINICARD ||\
+                                                                                               RT_GetInterfaceSelection(Adapter) == INTF_SEL3_USB_Solo ||\
+                                                                                               RT_GetInterfaceSelection(Adapter) == INTF_SEL4_USB_Combo)
+
+#define get_hal_mac_addr(adapter)                              (GET_HAL_DATA(adapter)->EEPROMMACAddr)
+#define is_boot_from_eeprom(adapter)                   (GET_HAL_DATA(adapter)->EepromOrEfuse)
+
 #endif