Exemple #1
0
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;
}
Exemple #2
0
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
}
Exemple #3
0
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);
	}
}