123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- /******************************************************************************
- *
- * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
- *
- *
- ******************************************************************************/
- #ifndef __HALHWOUTSRC_H__
- #define __HALHWOUTSRC_H__
- //============================================================
- // C Series Rate
- //============================================================
- //
- //-----------------------------------------------------------
- // CCK Rates, TxHT = 0
- #define DESC92C_RATE1M 0x00
- #define DESC92C_RATE2M 0x01
- #define DESC92C_RATE5_5M 0x02
- #define DESC92C_RATE11M 0x03
- // OFDM Rates, TxHT = 0
- #define DESC92C_RATE6M 0x04
- #define DESC92C_RATE9M 0x05
- #define DESC92C_RATE12M 0x06
- #define DESC92C_RATE18M 0x07
- #define DESC92C_RATE24M 0x08
- #define DESC92C_RATE36M 0x09
- #define DESC92C_RATE48M 0x0a
- #define DESC92C_RATE54M 0x0b
- // MCS Rates, TxHT = 1
- #define DESC92C_RATEMCS0 0x0c
- #define DESC92C_RATEMCS1 0x0d
- #define DESC92C_RATEMCS2 0x0e
- #define DESC92C_RATEMCS3 0x0f
- #define DESC92C_RATEMCS4 0x10
- #define DESC92C_RATEMCS5 0x11
- #define DESC92C_RATEMCS6 0x12
- #define DESC92C_RATEMCS7 0x13
- #define DESC92C_RATEMCS8 0x14
- #define DESC92C_RATEMCS9 0x15
- #define DESC92C_RATEMCS10 0x16
- #define DESC92C_RATEMCS11 0x17
- #define DESC92C_RATEMCS12 0x18
- #define DESC92C_RATEMCS13 0x19
- #define DESC92C_RATEMCS14 0x1a
- #define DESC92C_RATEMCS15 0x1b
- #define DESC92C_RATEMCS15_SG 0x1c
- #define DESC92C_RATEMCS32 0x20
- /*--------------------------Define -------------------------------------------*/
- /* BIT 7 HT Rate*/
- // TxHT = 0
- #define MGN_1M 0x02
- #define MGN_2M 0x04
- #define MGN_5_5M 0x0b
- #define MGN_11M 0x16
- #define MGN_6M 0x0c
- #define MGN_9M 0x12
- #define MGN_12M 0x18
- #define MGN_18M 0x24
- #define MGN_24M 0x30
- #define MGN_36M 0x48
- #define MGN_48M 0x60
- #define MGN_54M 0x6c
- // TxHT = 1
- #define MGN_MCS0 0x80
- #define MGN_MCS1 0x81
- #define MGN_MCS2 0x82
- #define MGN_MCS3 0x83
- #define MGN_MCS4 0x84
- #define MGN_MCS5 0x85
- #define MGN_MCS6 0x86
- #define MGN_MCS7 0x87
- #define MGN_MCS8 0x88
- #define MGN_MCS9 0x89
- #define MGN_MCS10 0x8a
- #define MGN_MCS11 0x8b
- #define MGN_MCS12 0x8c
- #define MGN_MCS13 0x8d
- #define MGN_MCS14 0x8e
- #define MGN_MCS15 0x8f
- #define MGN_VHT1SS_MCS0 0x90
- #define MGN_VHT1SS_MCS1 0x91
- #define MGN_VHT1SS_MCS2 0x92
- #define MGN_VHT1SS_MCS3 0x93
- #define MGN_VHT1SS_MCS4 0x94
- #define MGN_VHT1SS_MCS5 0x95
- #define MGN_VHT1SS_MCS6 0x96
- #define MGN_VHT1SS_MCS7 0x97
- #define MGN_VHT1SS_MCS8 0x98
- #define MGN_VHT1SS_MCS9 0x99
- #define MGN_VHT2SS_MCS0 0x9a
- #define MGN_VHT2SS_MCS1 0x9b
- #define MGN_VHT2SS_MCS2 0x9c
- #define MGN_VHT2SS_MCS3 0x9d
- #define MGN_VHT2SS_MCS4 0x9e
- #define MGN_VHT2SS_MCS5 0x9f
- #define MGN_VHT2SS_MCS6 0xa0
- #define MGN_VHT2SS_MCS7 0xa1
- #define MGN_VHT2SS_MCS8 0xa2
- #define MGN_VHT2SS_MCS9 0xa3
- #define MGN_MCS0_SG 0xc0
- #define MGN_MCS1_SG 0xc1
- #define MGN_MCS2_SG 0xc2
- #define MGN_MCS3_SG 0xc3
- #define MGN_MCS4_SG 0xc4
- #define MGN_MCS5_SG 0xc5
- #define MGN_MCS6_SG 0xc6
- #define MGN_MCS7_SG 0xc7
- #define MGN_MCS8_SG 0xc8
- #define MGN_MCS9_SG 0xc9
- #define MGN_MCS10_SG 0xca
- #define MGN_MCS11_SG 0xcb
- #define MGN_MCS12_SG 0xcc
- #define MGN_MCS13_SG 0xcd
- #define MGN_MCS14_SG 0xce
- #define MGN_MCS15_SG 0xcf
- #define READ_NEXT_PAIR(v1, v2, i) do { i += 2; v1 = Array[i]; v2 = Array[i+1]; } while(0)
- #define AGC_DIFF_CONFIG_MP(ic, band) (ODM_ReadAndConfig_MP_##ic##_AGC_TAB_DIFF(pDM_Odm, Array_MP_##ic##_AGC_TAB_DIFF_##band, \
- sizeof(Array_MP_##ic##_AGC_TAB_DIFF_##band)/sizeof(u4Byte)))
- #define AGC_DIFF_CONFIG_TC(ic, band) (ODM_ReadAndConfig_TC_##ic##_AGC_TAB_DIFF(pDM_Odm, Array_TC_##ic##_AGC_TAB_DIFF_##band, \
- sizeof(Array_TC_##ic##_AGC_TAB_DIFF_##band)/sizeof(u4Byte)))
- #define AGC_DIFF_CONFIG(ic, band) do {\
- if (pDM_Odm->bIsMPChip)\
- AGC_DIFF_CONFIG_MP(ic,band);\
- else\
- AGC_DIFF_CONFIG_TC(ic,band);\
- } while(0)
- //============================================================
- // structure and define
- //============================================================
- typedef struct _Phy_Rx_AGC_Info
- {
- #if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
- u1Byte gain:7,trsw:1;
- #else
- u1Byte trsw:1,gain:7;
- #endif
- } PHY_RX_AGC_INFO_T,*pPHY_RX_AGC_INFO_T;
- typedef struct _Phy_Status_Rpt_8192cd
- {
- PHY_RX_AGC_INFO_T path_agc[2];
- u1Byte ch_corr[2];
- u1Byte cck_sig_qual_ofdm_pwdb_all;
- u1Byte cck_agc_rpt_ofdm_cfosho_a;
- u1Byte cck_rpt_b_ofdm_cfosho_b;
- u1Byte rsvd_1;//ch_corr_msb;
- u1Byte noise_power_db_msb;
- s1Byte path_cfotail[2];
- u1Byte pcts_mask[2];
- s1Byte stream_rxevm[2];
- u1Byte path_rxsnr[2];
- u1Byte noise_power_db_lsb;
- u1Byte rsvd_2[3];
- u1Byte stream_csi[2];
- u1Byte stream_target_csi[2];
- s1Byte sig_evm;
- u1Byte rsvd_3;
- #if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
- u1Byte antsel_rx_keep_2:1; //ex_intf_flg:1;
- u1Byte sgi_en:1;
- u1Byte rxsc:2;
- u1Byte idle_long:1;
- u1Byte r_ant_train_en:1;
- u1Byte ant_sel_b:1;
- u1Byte ant_sel:1;
- #else // _BIG_ENDIAN_
- u1Byte ant_sel:1;
- u1Byte ant_sel_b:1;
- u1Byte r_ant_train_en:1;
- u1Byte idle_long:1;
- u1Byte rxsc:2;
- u1Byte sgi_en:1;
- u1Byte antsel_rx_keep_2:1; //ex_intf_flg:1;
- #endif
- } PHY_STATUS_RPT_8192CD_T,*PPHY_STATUS_RPT_8192CD_T;
- typedef struct _Phy_Status_Rpt_8812
- {
- #if 0
- PHY_RX_AGC_INFO_T path_agc[2];
- u1Byte ch_num[2];
- u1Byte cck_sig_qual_ofdm_pwdb_all;
- u1Byte cck_agc_rpt_ofdm_cfosho_a;
- u1Byte cck_bb_pwr_ofdm_cfosho_b;
- u1Byte cck_rx_path; //CCK_RX_PATH [3:0] (with regA07[3:0] definition)
- u1Byte rsvd_1;
- u1Byte path_cfotail[2];
- u1Byte pcts_mask[2];
- s1Byte stream_rxevm[2];
- u1Byte path_rxsnr[2];
- u1Byte rsvd_2[2];
- u1Byte stream_snr[2];
- u1Byte stream_csi[2];
- u1Byte rsvd_3[2];
- s1Byte sig_evm;
- u1Byte rsvd_4;
- #if (ODM_ENDIAN_TYPE == ODM_ENDIAN_LITTLE)
- u1Byte antidx_anta:3;
- u1Byte antidx_antb:3;
- u1Byte rsvd_5:2;
- #else // _BIG_ENDIAN_
- u1Byte rsvd_5:2;
- u1Byte antidx_antb:3;
- u1Byte antidx_anta:3;
- #endif
- #endif
- //2012.05.24 LukeLee: This structure should take big/little endian in consideration later.....
-
- //DWORD 0
- u1Byte gain_trsw[2];
- u2Byte chl_num:10;
- u2Byte sub_chnl:4;
- u2Byte r_RFMOD:2;
- //DWORD 1
- u1Byte pwdb_all;
- u1Byte cfosho[4]; // DW 1 byte 1 DW 2 byte 0
- //DWORD 2
- s1Byte cfotail[4]; // DW 2 byte 1 DW 3 byte 0
- //DWORD 3
- s1Byte rxevm[2]; // DW 3 byte 1 DW 3 byte 2
- s1Byte rxsnr[2]; // DW 3 byte 3 DW 4 byte 0
- //DWORD 4
- u1Byte PCTS_MSK_RPT[2];
- u1Byte pdsnr[2]; // DW 4 byte 3 DW 5 Byte 0
- //DWORD 5
- u1Byte csi_current[2];
- u1Byte rx_gain_c;
- //DWORD 6
- u1Byte rx_gain_d;
- u1Byte sigevm;
- u1Byte resvd_0;
- u1Byte antidx_anta:3;
- u1Byte antidx_antb:3;
- u1Byte resvd_1:2;
- } PHY_STATUS_RPT_8812_T,*PPHY_STATUS_RPT_8812_T;
- VOID
- odm_Init_RSSIForDM(
- IN OUT PDM_ODM_T pDM_Odm
- );
- VOID
- ODM_PhyStatusQuery(
- IN OUT PDM_ODM_T pDM_Odm,
- OUT PODM_PHY_INFO_T pPhyInfo,
- IN pu1Byte pPhyStatus,
- IN PODM_PACKET_INFO_T pPktinfo
- );
- VOID
- ODM_MacStatusQuery(
- IN OUT PDM_ODM_T pDM_Odm,
- IN pu1Byte pMacStatus,
- IN u1Byte MacID,
- IN BOOLEAN bPacketMatchBSSID,
- IN BOOLEAN bPacketToSelf,
- IN BOOLEAN bPacketBeacon
- );
- #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE|ODM_AP))
- HAL_STATUS
- ODM_ConfigRFWithTxPwrTrackHeaderFile(
- IN PDM_ODM_T pDM_Odm
- );
-
- HAL_STATUS
- ODM_ConfigRFWithHeaderFile(
- IN PDM_ODM_T pDM_Odm,
- IN ODM_RF_Config_Type ConfigType,
- IN ODM_RF_RADIO_PATH_E eRFPath
- );
- HAL_STATUS
- ODM_ConfigBBWithHeaderFile(
- IN PDM_ODM_T pDM_Odm,
- IN ODM_BB_Config_Type ConfigType
- );
- HAL_STATUS
- ODM_ConfigMACWithHeaderFile(
- IN PDM_ODM_T pDM_Odm
- );
- HAL_STATUS
- ODM_ConfigFWWithHeaderFile(
- IN PDM_ODM_T pDM_Odm,
- IN ODM_FW_Config_Type ConfigType,
- OUT u1Byte *pFirmware,
- OUT u4Byte *pSize
- );
- #endif
- #endif
|