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