1f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger/****************************************************************************** 2f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 3f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. 4f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 5f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * This program is free software; you can redistribute it and/or modify it 6f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * under the terms of version 2 of the GNU General Public License as 7f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * published by the Free Software Foundation. 8f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 9f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * This program is distributed in the hope that it will be useful, but WITHOUT 10f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * more details. 13f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 14f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * You should have received a copy of the GNU General Public License along with 15f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * this program; if not, write to the Free Software Foundation, Inc., 16f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 17f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 18f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger * 19f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger ******************************************************************************/ 20f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 21f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#ifndef __HALHWOUTSRC_H__ 22f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define __HALHWOUTSRC_H__ 23f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 24f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger/* Definition */ 25f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger/* CCK Rates, TxHT = 0 */ 26f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE1M 0x00 27f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE2M 0x01 28f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE5_5M 0x02 29f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE11M 0x03 30f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 31f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger/* OFDM Rates, TxHT = 0 */ 32f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE6M 0x04 33f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE9M 0x05 34f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE12M 0x06 35f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE18M 0x07 36f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE24M 0x08 37f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE36M 0x09 38f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE48M 0x0a 39f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATE54M 0x0b 40f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 41f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger/* MCS Rates, TxHT = 1 */ 42f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS0 0x0c 43f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS1 0x0d 44f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS2 0x0e 45f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS3 0x0f 46f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS4 0x10 47f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS5 0x11 48f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS6 0x12 49f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS7 0x13 50f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS8 0x14 51f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS9 0x15 52f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS10 0x16 53f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS11 0x17 54f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS12 0x18 55f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS13 0x19 56f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS14 0x1a 57f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS15 0x1b 58f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS15_SG 0x1c 59f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#define DESC92C_RATEMCS32 0x20 60f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 61f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger/* structure and define */ 62f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 63f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Fingerstruct phy_rx_agc_info { 64f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger #ifdef __LITTLE_ENDIAN 65f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 gain:7, trsw:1; 66f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger #else 67f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 trsw:1, gain:7; 68f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger #endif 69f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger}; 70f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 71f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Fingerstruct phy_status_rpt { 72bdbdc54e186da6b8e8ea98c173f55198b0d337ebLarry Finger struct phy_rx_agc_info path_agc[3]; 73f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 ch_corr[2]; 74f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 cck_sig_qual_ofdm_pwdb_all; 75f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 cck_agc_rpt_ofdm_cfosho_a; 76f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 cck_rpt_b_ofdm_cfosho_b; 77f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 rsvd_1;/* ch_corr_msb; */ 78f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 noise_power_db_msb; 79f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 path_cfotail[2]; 80f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 pcts_mask[2]; 81f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger s8 stream_rxevm[2]; 82bdbdc54e186da6b8e8ea98c173f55198b0d337ebLarry Finger u8 path_rxsnr[3]; 83f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 noise_power_db_lsb; 84f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 rsvd_2[3]; 85f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 stream_csi[2]; 86f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 stream_target_csi[2]; 87f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger s8 sig_evm; 88f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 rsvd_3; 89f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 90f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#ifdef __LITTLE_ENDIAN 91f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 antsel_rx_keep_2:1; /* ex_intf_flg:1; */ 92f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 sgi_en:1; 93f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 rxsc:2; 94f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 idle_long:1; 95f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 r_ant_train_en:1; 96f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 ant_sel_b:1; 97f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 ant_sel:1; 98f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#else /* _BIG_ENDIAN_ */ 99f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 ant_sel:1; 100f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 ant_sel_b:1; 101f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 r_ant_train_en:1; 102f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 idle_long:1; 103f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 rxsc:2; 104f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 sgi_en:1; 105f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 antsel_rx_keep_2:1; /* ex_intf_flg:1; */ 106f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#endif 107f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger}; 108f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 109f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Fingervoid odm_Init_RSSIForDM(struct odm_dm_struct *pDM_Odm); 110f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 111f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Fingervoid ODM_PhyStatusQuery(struct odm_dm_struct *pDM_Odm, 112f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger struct odm_phy_status_info *pPhyInfo, 113f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 *pPhyStatus, 114f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger struct odm_per_pkt_info *pPktinfo); 115f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 116f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Fingervoid ODM_MacStatusQuery(struct odm_dm_struct *pDM_Odm, 117f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 *pMacStatus, 118f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger u8 MacID, 119f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger bool bPacketMatchBSSID, 120f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger bool bPacketToSelf, 121f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger bool bPacketBeacon); 122f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 123f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Fingerenum HAL_STATUS ODM_ConfigBBWithHeaderFile(struct odm_dm_struct *pDM_Odm, 124f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger enum odm_bb_config_type ConfigType); 125f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger 126f9f08d70b0081c0f5ff4eabefc47f0832fdb7697Larry Finger#endif 127