1 /******************************************************************************
\r
3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
\r
5 * This program is free software; you can redistribute it and/or modify it
\r
6 * under the terms of version 2 of the GNU General Public License as
\r
7 * published by the Free Software Foundation.
\r
9 * This program is distributed in the hope that it will be useful, but WITHOUT
\r
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
\r
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
\r
14 * You should have received a copy of the GNU General Public License along with
\r
15 * this program; if not, write to the Free Software Foundation, Inc.,
\r
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
\r
19 ******************************************************************************/
\r
21 #ifndef __PHYDMANTDIV_H__
\r
22 #define __PHYDMANTDIV_H__
\r
24 #define ANTDIV_VERSION "1.0"
\r
26 #define ANT1_2G 0 // = ANT2_5G
\r
27 #define ANT2_2G 1 // = ANT1_5G
\r
29 //Antenna Diversty Control Type
\r
30 #define ODM_AUTO_ANT 0
\r
31 #define ODM_FIX_MAIN_ANT 1
\r
32 #define ODM_FIX_AUX_ANT 2
\r
36 #if (DM_ODM_SUPPORT_TYPE != ODM_AP)
\r
37 #define ODM_RTL8881A 0 //Just for windows driver to jointly use ODM-driver
\r
40 #define ODM_ANTDIV_SUPPORT (ODM_RTL8188E|ODM_RTL8192E|ODM_RTL8723B|ODM_RTL8821|ODM_RTL8881A|ODM_RTL8812)
\r
41 #define ODM_N_ANTDIV_SUPPORT (ODM_RTL8188E|ODM_RTL8192E|ODM_RTL8723B)
\r
42 #define ODM_AC_ANTDIV_SUPPORT (ODM_RTL8821|ODM_RTL8881A|ODM_RTL8812)
\r
43 #define ODM_SMART_ANT_SUPPORT (ODM_RTL8188E|ODM_RTL8192E)
\r
45 #define ODM_OLD_IC_ANTDIV_SUPPORT (ODM_RTL8723A|ODM_RTL8192C|ODM_RTL8192D)
\r
47 #define ODM_ANTDIV_2G_SUPPORT_IC (ODM_RTL8188E|ODM_RTL8192E|ODM_RTL8723B|ODM_RTL8881A)
\r
48 #define ODM_ANTDIV_5G_SUPPORT_IC (ODM_RTL8821|ODM_RTL8881A|ODM_RTL8812)
\r
49 #define ODM_ANTDIV_2G BIT0
\r
50 #define ODM_ANTDIV_5G BIT1
\r
53 #define ANTDIV_OFF 0
\r
55 #define INIT_ANTDIV_TIMMER 0
\r
56 #define CANCEL_ANTDIV_TIMMER 1
\r
57 #define RELEASE_ANTDIV_TIMMER 2
\r
60 ODM_StopAntennaSwitchDm(
\r
61 IN PDM_ODM_T pDM_Odm
\r
65 IN PDM_ODM_T pDM_Odm,
\r
66 IN u1Byte antSetting // 0=A, 1=B, 2=C, ....
\r
71 #define SwAntDivRestAfterLink ODM_SwAntDivRestAfterLink
\r
72 VOID ODM_SwAntDivRestAfterLink( IN PDM_ODM_T pDM_Odm);
\r
74 #if (defined(CONFIG_HW_ANTENNA_DIVERSITY))
\r
77 ODM_UpdateRxIdleAnt(
\r
78 IN PDM_ODM_T pDM_Odm,
\r
83 odm_AntselStatistics(
\r
84 IN PDM_ODM_T pDM_Odm,
\r
85 IN u1Byte antsel_tr_mux,
\r
90 #if (RTL8723B_SUPPORT == 1)||(RTL8821A_SUPPORT == 1)
\r
91 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
\r
93 ODM_SW_AntDiv_Callback(
\r
98 ODM_SW_AntDiv_WorkitemCallback(
\r
103 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE)
\r
106 ODM_SW_AntDiv_Callback(void *FunctionContext);
\r
110 #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))
\r
112 odm_S0S1_SwAntDivByCtrlFrame(
\r
113 IN PDM_ODM_T pDM_Odm,
\r
118 odm_AntselStatisticsOfCtrlFrame(
\r
119 IN PDM_ODM_T pDM_Odm,
\r
120 IN u1Byte antsel_tr_mux,
\r
121 IN u4Byte RxPWDBAll
\r
125 odm_S0S1_SwAntDivByCtrlFrame_ProcessRSSI(
\r
126 IN PDM_ODM_T pDM_Odm,
\r
127 IN PODM_PHY_INFO_T pPhyInfo,
\r
128 IN PODM_PACKET_INFO_T pPktinfo
\r
131 #endif //#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
\r
134 #if(RTL8188E_SUPPORT == 1 || RTL8192E_SUPPORT == 1)
\r
135 #if ( !(DM_ODM_SUPPORT_TYPE == ODM_CE))
\r
137 odm_FastAntTraining(
\r
138 IN PDM_ODM_T pDM_Odm
\r
142 odm_FastAntTrainingCallback(
\r
143 IN PDM_ODM_T pDM_Odm
\r
147 odm_FastAntTrainingWorkItemCallback(
\r
148 IN PDM_ODM_T pDM_Odm
\r
155 IN PDM_ODM_T pDM_Odm
\r
160 IN PDM_ODM_T pDM_Odm
\r
165 IN PDM_ODM_T pDM_Odm
\r
169 ODM_Process_RSSIForAntDiv(
\r
170 IN OUT PDM_ODM_T pDM_Odm,
\r
171 IN PODM_PHY_INFO_T pPhyInfo,
\r
172 IN PODM_PACKET_INFO_T pPktinfo
\r
175 #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN|ODM_CE))
\r
177 ODM_SetTxAntByTxInfo(
\r
178 IN PDM_ODM_T pDM_Odm,
\r
183 #else// (DM_ODM_SUPPORT_TYPE == ODM_AP)
\r
185 ODM_SetTxAntByTxInfo(
\r
186 //IN PDM_ODM_T pDM_Odm,
\r
187 struct rtl8192cd_priv *priv,
\r
188 struct tx_desc *pdesc,
\r
189 struct tx_insn *txcfg,
\r
190 unsigned short aid
\r
198 IN PDM_ODM_T pDM_Odm
\r
203 ODM_UpdateRxIdleAnt_8723B(
\r
204 IN PDM_ODM_T pDM_Odm,
\r
206 IN u4Byte DefaultAnt,
\r
207 IN u4Byte OptionalAnt
\r
212 IN PDM_ODM_T pDM_Odm,
\r
216 #endif //#if (defined(CONFIG_HW_ANTENNA_DIVERSITY))
\r
217 #endif //#ifndef __ODMANTDIV_H__
\r