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 //============================================================
\r
23 //============================================================
\r
25 #include "../odm_precomp.h"
\r
27 #if (RTL8723B_SUPPORT == 1)
\r
30 odm8723b_DigForBtHsMode(
\r
31 IN PDM_ODM_T pDM_Odm
\r
34 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
\r
35 //PFALSE_ALARM_STATISTICS pFalseAlmCnt = &pDM_Odm->FalseAlmCnt;
\r
36 pDIG_T pDM_DigTable=&pDM_Odm->DM_DigTable;
\r
37 u1Byte digForBtHs=0;
\r
38 //BOOLEAN bChkFA=FALSE;
\r
40 if(pDM_Odm->bBtConnectProcess)
\r
42 if(pDM_Odm->SupportICType&(ODM_RTL8723A))
\r
50 // Decide DIG value by BT RSSI.
\r
52 digForBtHs = pDM_Odm->btHsRssi+4;
\r
54 // check if cur dig and pre dig diff is larger than 10
\r
56 if(digForBtHs > pDM_DigTable->PreIGValue)
\r
58 if( (digForBtHs - pDM_DigTable->PreIGValue) > 10)
\r
59 pDM_DigTable->PreIGValue = digForBtHs;
\r
65 if( (pDM_DigTable->PreIGValue -digForBtHs) > 10)
\r
66 pDM_DigTable->PreIGValue = digForBtHs;
\r
70 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DigForBtHsMode() : pFalseAlmCnt->Cnt_all=0x%x\n", pFalseAlmCnt->Cnt_all));
\r
71 //Current IGI update by FA
\r
74 if(pFalseAlmCnt->Cnt_all > 0x150)
\r
75 pDM_DigTable->PreIGValue += 2;
\r
76 else if (pFalseAlmCnt->Cnt_all > 0x100)
\r
77 pDM_DigTable->PreIGValue += 1;
\r
78 else if(pFalseAlmCnt->Cnt_all < 0x20)
\r
79 pDM_DigTable->PreIGValue -= 1;
\r
81 digForBtHs = pDM_DigTable->PreIGValue;
\r
84 if(digForBtHs > (pDM_Odm->btHsRssi+10))
\r
85 digForBtHs = (pDM_Odm->btHsRssi+10);
\r
88 if(pDM_Odm->btHsRssi < 10)
\r
92 if(digForBtHs > (pDM_Odm->btHsRssi -10))
\r
93 digForBtHs = (pDM_Odm->btHsRssi -10);
\r
98 if(digForBtHs > 0x3e)
\r
100 if(digForBtHs < 0x1c)
\r
103 // update Current IGI
\r
104 pDM_DigTable->BT30_CurIGI = digForBtHs;
\r
106 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DigForBtHsMode() : set DigValue=0x%x\n", digForBtHs));
\r
107 //ODM_Write_DIG(pDM_Odm, digForBtHs);
\r
113 IN PDM_ODM_T pDM_Odm
\r
116 pDIG_T pDM_DigTable = &pDM_Odm->DM_DigTable;
\r
117 PFALSE_ALARM_STATISTICS pFalseAlmCnt = &pDM_Odm->FalseAlmCnt;
\r
118 //pRXHP_T pRX_HP_Table = &pDM_Odm->DM_RXHP_Table;
\r
119 u1Byte DIG_Dynamic_MIN;
\r
120 BOOLEAN FirstConnect, FirstDisConnect;
\r
121 u1Byte dm_dig_max, dm_dig_min;
\r
122 u1Byte CurrentIGI = pDM_DigTable->CurIGValue;
\r
124 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
\r
125 // This should be moved out of OUTSRC
\r
126 PADAPTER pAdapter = pDM_Odm->Adapter;
\r
127 #if OS_WIN_FROM_WIN7(OS_VERSION)
\r
128 if(IsAPModeExist( pAdapter) && pAdapter->bInHctTest)
\r
130 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: Is AP mode or In HCT Test \n"));
\r
135 if(pDM_Odm->bBtHsOperation)
\r
137 odm8723b_DigForBtHsMode(pDM_Odm);
\r
140 #if 0 // Neil Chen No RX HP for 8723
\r
141 if(!(pDM_Odm->SupportICType &(ODM_RTL8723A|ODM_RTL8188E)))
\r
143 if(pRX_HP_Table->RXHP_flag == 1)
\r
145 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: In RXHP Operation \n"));
\r
155 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
\r
156 prtl8192cd_priv priv = pDM_Odm->priv;
\r
157 if (!((priv->up_time > 5) && (priv->up_time % 2)) )
\r
159 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: Not In DIG Operation Period \n"));
\r
165 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG()==>\n"));
\r
166 //if(!(pDM_Odm->SupportAbility & (ODM_BB_DIG|ODM_BB_FA_CNT)))
\r
167 if((!(pDM_Odm->SupportAbility&ODM_BB_DIG)) ||(!(pDM_Odm->SupportAbility&ODM_BB_FA_CNT)))
\r
170 if(pDM_Odm->SupportPlatform & (ODM_AP|ODM_ADSL))
\r
172 if ((pDM_Odm->SupportICType == ODM_RTL8192C) && (pDM_Odm->ExtLNA == 1))
\r
173 CurrentIGI = 0x30; //pDM_DigTable->CurIGValue = 0x30;
\r
175 CurrentIGI = 0x20; //pDM_DigTable->CurIGValue = 0x20;
\r
176 ODM_Write_DIG(pDM_Odm, CurrentIGI);//ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue);
\r
179 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: SupportAbility ODM_BB_DIG or ODM_BB_FA_CNT is disabled\n"));
\r
183 if(*(pDM_Odm->pbScanInProcess))
\r
185 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: In Scan Progress \n"));
\r
189 //add by Neil Chen to avoid PSD is processing
\r
190 if(pDM_Odm->SupportICType&(ODM_RTL8723A|ODM_RTL8723B))
\r
192 if(pDM_Odm->bDMInitialGainEnable == FALSE)
\r
194 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() Return: PSD is Processing \n"));
\r
200 DIG_Dynamic_MIN = pDM_DigTable->DIG_Dynamic_MIN_0;
\r
201 FirstConnect = (pDM_Odm->bLinked) && (pDM_DigTable->bMediaConnect_0 == FALSE);
\r
202 FirstDisConnect = (!pDM_Odm->bLinked) && (pDM_DigTable->bMediaConnect_0 == TRUE);
\r
206 if(pDM_Odm->SupportICType & (ODM_RTL8192C) &&(pDM_Odm->BoardType & (ODM_BOARD_EXT_LNA | ODM_BOARD_EXT_PA)))
\r
208 if(pDM_Odm->SupportPlatform & (ODM_AP|ODM_ADSL))
\r
211 dm_dig_max = DM_DIG_MAX_AP_HP;
\r
212 dm_dig_min = DM_DIG_MIN_AP_HP;
\r
216 dm_dig_max = DM_DIG_MAX_NIC_HP;
\r
217 dm_dig_min = DM_DIG_MIN_NIC_HP;
\r
219 DIG_MaxOfMin = DM_DIG_MAX_AP_HP;
\r
223 if(pDM_Odm->SupportPlatform & (ODM_AP|ODM_ADSL))
\r
225 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP|ODM_ADSL))
\r
227 if (!priv->pmib->dot11DFSEntry.disable_DFS &&
\r
228 (OPMODE & WIFI_AP_STATE) &&
\r
229 (((pDM_Odm->ControlChannel >= 52) &&
\r
230 (pDM_Odm->ControlChannel <= 64)) ||
\r
231 ((pDM_Odm->ControlChannel >= 100) &&
\r
232 (pDM_Odm->ControlChannel <= 140))))
\r
236 if (priv->pmib->dot11RFEntry.tx2path) {
\r
237 if (*(pDM_Odm->pWirelessMode) == ODM_WM_B)//(priv->pmib->dot11BssType.net_work_type == WIRELESS_11B)
\r
244 dm_dig_max = DM_DIG_MAX_AP;
\r
245 dm_dig_min = DM_DIG_MIN_AP;
\r
246 DIG_MaxOfMin = dm_dig_max;
\r
250 if((pDM_Odm->SupportICType >= ODM_RTL8188E) && (pDM_Odm->SupportPlatform & (ODM_WIN|ODM_CE)))
\r
253 dm_dig_max = DM_DIG_MAX_NIC;
\r
255 dm_dig_min = DM_DIG_MIN_NIC;
\r
256 DIG_MaxOfMin = DM_DIG_MAX_AP;
\r
259 #endif // masked by neilchen to simpily 8723B case
\r
262 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): RSSI=0x%x\n",pDM_Odm->RSSI_Min));
\r
264 if((pDM_Odm->SupportICType >= ODM_RTL8723B) && (pDM_Odm->SupportPlatform & (ODM_WIN|ODM_CE)))
\r
267 dm_dig_max = DM_DIG_MAX_NIC;
\r
270 dm_dig_min = DM_DIG_MIN_NIC_8723;
\r
272 if(pDM_Odm->bLinked)
\r
274 if(pDM_Odm->SupportICType&(ODM_RTL8723B))
\r
277 if(pDM_Odm->bBtLimitedDig)
\r
279 if(( pDM_Odm->RSSI_Min + 10) > DM_DIG_MAX_NIC )
\r
280 pDM_DigTable->rx_gain_range_max = DM_DIG_MAX_NIC;
\r
281 else if(( pDM_Odm->RSSI_Min + 10) < DM_DIG_MIN_NIC )
\r
282 pDM_DigTable->rx_gain_range_max = DM_DIG_MIN_NIC;
\r
284 pDM_DigTable->rx_gain_range_max = pDM_Odm->RSSI_Min + 10;
\r
286 if(pDM_Odm->RSSI_Min>10)
\r
288 if((pDM_Odm->RSSI_Min - 10) > DM_DIG_MAX_NIC)
\r
289 DIG_Dynamic_MIN = DM_DIG_MAX_NIC;
\r
290 else if((pDM_Odm->RSSI_Min - 10) < DM_DIG_MIN_NIC_8723)
\r
291 DIG_Dynamic_MIN = DM_DIG_MIN_NIC_8723;
\r
293 DIG_Dynamic_MIN = pDM_Odm->RSSI_Min - 10;
\r
296 DIG_Dynamic_MIN=DM_DIG_MIN_NIC_8723;
\r
300 if((pDM_Odm->RSSI_Min + 20) > dm_dig_max )
\r
301 pDM_DigTable->rx_gain_range_max = dm_dig_max;
\r
302 else if((pDM_Odm->RSSI_Min + 20) < dm_dig_min )
\r
303 pDM_DigTable->rx_gain_range_max = dm_dig_min;
\r
305 pDM_DigTable->rx_gain_range_max = pDM_Odm->RSSI_Min + 20;
\r
308 if(pDM_Odm->RSSI_Min>20)
\r
310 if((pDM_Odm->RSSI_Min - 20) > DM_DIG_MAX_NIC)
\r
311 DIG_Dynamic_MIN = DM_DIG_MAX_NIC;
\r
312 else if((pDM_Odm->RSSI_Min - 20) < DM_DIG_MIN_NIC_8723)
\r
313 DIG_Dynamic_MIN = DM_DIG_MIN_NIC_8723;
\r
315 DIG_Dynamic_MIN = pDM_Odm->RSSI_Min -20;
\r
318 DIG_Dynamic_MIN=DM_DIG_MIN_NIC_8723;
\r
327 pDM_DigTable->rx_gain_range_max = dm_dig_max;
\r
328 pDM_DigTable->rx_gain_range_min = DM_DIG_MIN_NIC_8723;
\r
329 DIG_Dynamic_MIN = dm_dig_min;
\r
330 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG() : No Link\n"));
\r
334 if(pFalseAlmCnt->Cnt_all > 10000)
\r
336 ODM_RT_TRACE(pDM_Odm,ODM_COMP_DIG, ODM_DBG_LOUD, ("dm_DIG(): Abnornally false alarm case. \n"));
\r
338 if(pDM_DigTable->LargeFAHit != 3)
\r
339 pDM_DigTable->LargeFAHit++;
\r
340 if(pDM_DigTable->ForbiddenIGI < CurrentIGI)//if(pDM_DigTable->ForbiddenIGI < pDM_DigTable->CurIGValue)
\r
342 pDM_DigTable->ForbiddenIGI = CurrentIGI;//pDM_DigTable->ForbiddenIGI = pDM_DigTable->CurIGValue;
\r
343 pDM_DigTable->LargeFAHit = 1;
\r
346 if(pDM_DigTable->LargeFAHit >= 3)
\r
348 if((pDM_DigTable->ForbiddenIGI+1) >pDM_DigTable->rx_gain_range_max)
\r
349 pDM_DigTable->rx_gain_range_min = pDM_DigTable->rx_gain_range_max;
\r
351 pDM_DigTable->rx_gain_range_min = (pDM_DigTable->ForbiddenIGI + 1);
\r
352 pDM_DigTable->Recover_cnt = 3600; //3600=2hr
\r
358 //Recovery mechanism for IGI lower bound
\r
359 if(pDM_DigTable->Recover_cnt != 0)
\r
360 pDM_DigTable->Recover_cnt --;
\r
363 if(pDM_DigTable->LargeFAHit < 3)
\r
365 if((pDM_DigTable->ForbiddenIGI -1) < DIG_Dynamic_MIN) //DM_DIG_MIN)
\r
367 pDM_DigTable->ForbiddenIGI = DIG_Dynamic_MIN; //DM_DIG_MIN;
\r
368 pDM_DigTable->rx_gain_range_min = DIG_Dynamic_MIN; //DM_DIG_MIN;
\r
369 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): Normal Case: At Lower Bound\n"));
\r
373 pDM_DigTable->ForbiddenIGI --;
\r
374 pDM_DigTable->rx_gain_range_min = (pDM_DigTable->ForbiddenIGI + 1);
\r
375 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): Normal Case: Approach Lower Bound\n"));
\r
380 pDM_DigTable->LargeFAHit = 0;
\r
384 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): pDM_DigTable->LargeFAHit=%d\n",pDM_DigTable->LargeFAHit));
\r
387 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG():pDM_DigTable->Recover_cnt=%d\n",pDM_DigTable->Recover_cnt));
\r
389 //1 Adjust initial gain by false alarm
\r
390 if(pDM_Odm->bLinked)
\r
392 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): DIG AfterLink\n"));
\r
395 CurrentIGI = pDM_Odm->RSSI_Min;
\r
396 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("DIG: First Connect\n"));
\r
400 //FA for Combo IC--NeilChen--2012--09--28
\r
401 if(pDM_Odm->SupportICType == ODM_RTL8723B)
\r
403 //WLAN and BT ConCurrent
\r
404 if(pDM_Odm->bBtLimitedDig)
\r
406 if(pFalseAlmCnt->Cnt_all > 0x500)
\r
407 CurrentIGI = CurrentIGI + 4;
\r
408 else if (pFalseAlmCnt->Cnt_all > 0x300)
\r
409 CurrentIGI = CurrentIGI + 2;
\r
410 else if(pFalseAlmCnt->Cnt_all <0x150)
\r
411 CurrentIGI = CurrentIGI -2;
\r
413 else //Not Concurrent
\r
415 if(pFalseAlmCnt->Cnt_all > 0x400)
\r
416 CurrentIGI = CurrentIGI + 4;//pDM_DigTable->CurIGValue = pDM_DigTable->PreIGValue+2;
\r
417 else if (pFalseAlmCnt->Cnt_all > 0x200)
\r
418 CurrentIGI = CurrentIGI + 2;//pDM_DigTable->CurIGValue = pDM_DigTable->PreIGValue+1;
\r
419 else if(pFalseAlmCnt->Cnt_all < 0x100)
\r
420 CurrentIGI = CurrentIGI - 2;//pDM_DigTable->CurIGValue =pDM_DigTable->PreIGValue-1;
\r
428 CurrentIGI = pDM_DigTable->rx_gain_range_min;//pDM_DigTable->CurIGValue = pDM_DigTable->rx_gain_range_min
\r
429 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): DIG BeforeLink\n"));
\r
430 if(FirstDisConnect)
\r
432 CurrentIGI = pDM_DigTable->rx_gain_range_min;
\r
433 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): First DisConnect \n"));
\r
437 //2012.03.30 LukeLee: enable DIG before link but with very high thresholds
\r
438 if(pFalseAlmCnt->Cnt_all > 10000)
\r
439 CurrentIGI = CurrentIGI + 4;
\r
440 else if (pFalseAlmCnt->Cnt_all > 8000)
\r
441 CurrentIGI = CurrentIGI + 2;
\r
442 else if(pFalseAlmCnt->Cnt_all < 500)
\r
443 CurrentIGI = CurrentIGI - 2;
\r
444 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): England DIG \n"));
\r
447 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): DIG End Adjust IGI\n"));
\r
448 //1 Check initial gain by upper/lower bound
\r
450 if(CurrentIGI > pDM_DigTable->rx_gain_range_max)
\r
451 CurrentIGI = pDM_DigTable->rx_gain_range_max;
\r
452 if(CurrentIGI < pDM_DigTable->rx_gain_range_min)
\r
453 CurrentIGI = pDM_DigTable->rx_gain_range_min;
\r
455 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): rx_gain_range_max=0x%x, rx_gain_range_min=0x%x\n",
\r
456 pDM_DigTable->rx_gain_range_max, pDM_DigTable->rx_gain_range_min));
\r
457 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): TotalFA=%d\n", pFalseAlmCnt->Cnt_all));
\r
458 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): CurIGValue=0x%x\n", CurrentIGI));
\r
460 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): RSSI=0x%x\n",pDM_Odm->RSSI_Min));
\r
462 //2 High power RSSI threshold
\r
463 #if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
\r
465 HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pDM_Odm->Adapter);
\r
466 //----------------------------------------------------------end for LC Mocca issue
\r
467 if((pDM_Odm->SupportICType == ODM_RTL8723B)&& (pHalData->UndecoratedSmoothedPWDB > DM_DIG_HIGH_PWR_THRESHOLD))
\r
469 // High power IGI lower bound
\r
470 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): UndecoratedSmoothedPWDB(%#x)\n", pHalData->UndecoratedSmoothedPWDB));
\r
471 if(CurrentIGI < DM_DIG_HIGH_PWR_IGI_LOWER_BOUND)
\r
473 ODM_RT_TRACE(pDM_Odm, ODM_COMP_DIG, ODM_DBG_LOUD, ("odm_DIG(): CurIGValue(%#x)\n", pDM_DigTable->CurIGValue));
\r
474 //pDM_DigTable->CurIGValue = DM_DIG_HIGH_PWR_IGI_LOWER_BOUND;
\r
475 CurrentIGI=DM_DIG_HIGH_PWR_IGI_LOWER_BOUND;
\r
479 if((pDM_Odm->SupportICType & ODM_RTL8723A) &&
\r
480 IS_WIRELESS_MODE_G(pAdapter))
\r
482 if(pHalData->UndecoratedSmoothedPWDB > 0x28)
\r
484 if(CurrentIGI < DM_DIG_Gmode_HIGH_PWR_IGI_LOWER_BOUND)
\r
486 //pDM_DigTable->CurIGValue = DM_DIG_Gmode_HIGH_PWR_IGI_LOWER_BOUND;
\r
487 CurrentIGI = DM_DIG_Gmode_HIGH_PWR_IGI_LOWER_BOUND;
\r
492 #endif // end if 0
\r
496 if(pDM_Odm->bBtHsOperation)
\r
498 if(pDM_Odm->bLinked)
\r
500 if(pDM_DigTable->BT30_CurIGI > (CurrentIGI))
\r
502 ODM_Write_DIG(pDM_Odm, CurrentIGI);
\r
507 ODM_Write_DIG(pDM_Odm, pDM_DigTable->BT30_CurIGI);
\r
509 pDM_DigTable->bMediaConnect_0 = pDM_Odm->bLinked;
\r
510 pDM_DigTable->DIG_Dynamic_MIN_0 = DIG_Dynamic_MIN;
\r
514 if(pDM_Odm->bLinkInProcess)
\r
516 ODM_Write_DIG(pDM_Odm, 0x1c);
\r
518 else if(pDM_Odm->bBtConnectProcess)
\r
520 ODM_Write_DIG(pDM_Odm, 0x28);
\r
524 ODM_Write_DIG(pDM_Odm, pDM_DigTable->BT30_CurIGI);//ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue);
\r
528 else // BT is not using
\r
530 ODM_Write_DIG(pDM_Odm, CurrentIGI);//ODM_Write_DIG(pDM_Odm, pDM_DigTable->CurIGValue);
\r
531 pDM_DigTable->bMediaConnect_0 = pDM_Odm->bLinked;
\r
532 pDM_DigTable->DIG_Dynamic_MIN_0 = DIG_Dynamic_MIN;
\r
543 s1Byte rx_pwr_all=0x00;
\r
546 //46 53 73 95 201301231630
\r
547 // 46 53 77 99 201301241630
\r
550 rx_pwr_all = -34 - (2 * VGA_idx);
\r
553 rx_pwr_all = -14 - (2 * VGA_idx);
\r
556 rx_pwr_all = 6 - (2 * VGA_idx);
\r
559 rx_pwr_all = 16 - (2 * VGA_idx);
\r
562 //rx_pwr_all = -53+(2*(31-VGA_idx));
\r
563 //DbgPrint("wrong LNA index\n");
\r
571 odm_RSSIOFDM_8723B(
\r
572 IN s1Byte rx_pwr_new)
\r
574 s1Byte rx_pwr_all=0;
\r
576 if(rx_pwr_new >=63)
\r
577 rx_pwr_all =rx_pwr_new -120+10;
\r
578 else if(rx_pwr_all >=54)
\r
579 rx_pwr_all=rx_pwr_new-120+6;
\r
580 else if(rx_pwr_all >=43)
\r
581 rx_pwr_all=rx_pwr_new-120+8;
\r
582 else if(rx_pwr_all >=33)
\r
583 rx_pwr_all=rx_pwr_new-120+8;
\r
584 else if(rx_pwr_all >=23)
\r
585 rx_pwr_all=rx_pwr_new-120+10;
\r
587 rx_pwr_all=rx_pwr_new-120+7;
\r
594 #endif // end if RTL8723B
\r