static INT ate_bbp_set_ctrlch(struct _RTMP_ADAPTER *pAd, INT ext_ch) { UINT32 agc, agc_r0 = 0; UINT32 be, be_r0 = 0; RTMP_BBP_IO_READ32(pAd, AGC1_R0, &agc_r0); agc = agc_r0 & (~0x300); RTMP_BBP_IO_READ32(pAd, TXBE_R0, &be_r0); be = (be_r0 & (~0x03)); switch (ext_ch) { case EXTCHA_BELOW: agc |= 0x100; be |= 0x01; break; case EXTCHA_ABOVE: agc &= (~0x300); be &= (~0x03); break; case EXTCHA_NONE: default: agc &= (~0x300); be &= (~0x03); break; } if (agc != agc_r0) RTMP_BBP_IO_WRITE32(pAd, AGC1_R0, agc); if (be != be_r0) RTMP_BBP_IO_WRITE32(pAd, TXBE_R0, be); return TRUE; }
VOID CoexFDDRXAGCGain( IN PRTMP_ADAPTER pAd, IN CHAR rssi) { //the following block should not be used. #if 0 CHAR LMthreshold, MHthreshold = 0; UCHAR idx = 0; UINT32 bbp_val, bbp_reg = AGC1_R8; if (pAd->coexRXManualAGCGain.bEnable) { LMthreshold = pAd->coexRXManualAGCGain.LMthreshold; MHthreshold = pAd->coexRXManualAGCGain.MHthreshold; } else { LMthreshold = -pAd->CommonCfg.CoexRXAGCLMTreshold; MHthreshold = -pAd->CommonCfg.CoexRXAGCMHTreshold; } //DBGPRINT(RT_DEBUG_TRACE, ("COEX: LMthreshold = %d, MHthreshold = %d\n",LMthreshold,MHthreshold)); if (pAd->coexRXManualAGCGain.bStopAGC) { DBGPRINT(RT_DEBUG_TRACE, ("COEX: Stop AGC ")); } else { if (rssi > LMthreshold) { RTMP_BBP_IO_READ32(pAd, bbp_reg, &bbp_val); BTCOEX_BB_BITWISE_WRITE(bbp_val, (BIT6+BIT7), BIT6); RTMP_BBP_IO_WRITE32(pAd, bbp_reg, bbp_val); } else if ((rssi <= LMthreshold) &&(rssi > MHthreshold)) { RTMP_BBP_IO_READ32(pAd, bbp_reg, &bbp_val); BTCOEX_BB_BITWISE_WRITE(bbp_val, (BIT6+BIT7), BIT7); RTMP_BBP_IO_WRITE32(pAd, bbp_reg, bbp_val); } else { RTMP_BBP_IO_READ32(pAd, bbp_reg, &bbp_val); BTCOEX_BB_BITWISE_WRITE(bbp_val, (BIT6+BIT7), (BIT6+BIT7)); RTMP_BBP_IO_WRITE32(pAd, bbp_reg, bbp_val); } } #endif }
VOID CoexTDDRXAGCGain( IN PRTMP_ADAPTER pAd ) { UINT32 bbp_val, bbp_reg = AGC1_R8; if (pAd->coexRXManualAGCGain.bStopAGC) { DBGPRINT(RT_DEBUG_TRACE, ("COEX: Stop AGC ")); } else { DBGPRINT(RT_DEBUG_TRACE, ("COEX: %s --> Adjust AGC\n ", __FUNCTION__)); RTMP_BBP_IO_READ32(pAd, bbp_reg, &bbp_val); BTCOEX_BB_BITWISE_WRITE(bbp_val, (BIT6+BIT7), (BIT6+BIT7)); RTMP_BBP_IO_WRITE32(pAd, bbp_reg, bbp_val); } }