⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtmp_init.c

📁 ralink最新rt3070 usb wifi 无线网卡驱动程序
💻 C
📖 第 1 页 / 共 5 页
字号:
				t3 = 0xf;			t4 = ((value&0xf000)>>12)+(Gpwrdelta);			if (t4 > 0xf)				t4 = 0xf;		}		else		{			if ((value&0xf) > Gpwrdelta)				t1 = (value&0xf)-(Gpwrdelta);			else				t1 = 0;			if (((value&0xf0)>>4) > Gpwrdelta)				t2 = ((value&0xf0)>>4)-(Gpwrdelta);			else				t2 = 0;			if (((value&0xf00)>>8) > Gpwrdelta)				t3 = ((value&0xf00)>>8)-(Gpwrdelta);			else				t3 = 0;			if (((value&0xf000)>>12) > Gpwrdelta)				t4 = ((value&0xf000)>>12)-(Gpwrdelta);			else				t4 = 0;		}						Gdata = t1 + (t2<<4) + (t3<<8) + (t4<<12);				RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_20MHZ_2_4G + i*4 + 2, value);		if (bApwrdeltaMinus == FALSE)		{			t1 = (value&0xf)+(Apwrdelta);			if (t1 > 0xf)				t1 = 0xf;			t2 = ((value&0xf0)>>4)+(Apwrdelta);			if (t2 > 0xf)				t2 = 0xf;			t3 = ((value&0xf00)>>8)+(Apwrdelta);			if (t3 > 0xf)				t3 = 0xf;			t4 = ((value&0xf000)>>12)+(Apwrdelta);			if (t4 > 0xf)				t4 = 0xf;		}		else		{			if ((value&0xf) > Apwrdelta)				t1 = (value&0xf)-(Apwrdelta);			else				t1 = 0;			if (((value&0xf0)>>4) > Apwrdelta)				t2 = ((value&0xf0)>>4)-(Apwrdelta);			else				t2 = 0;			if (((value&0xf00)>>8) > Apwrdelta)				t3 = ((value&0xf00)>>8)-(Apwrdelta);			else				t3 = 0;			if (((value&0xf000)>>12) > Apwrdelta)				t4 = ((value&0xf000)>>12)-(Apwrdelta);			else				t4 = 0;		}						Adata |= ((t1<<16) + (t2<<20) + (t3<<24) + (t4<<28));		if (bGpwrdeltaMinus == FALSE)		{			t1 = (value&0xf)+(Gpwrdelta);			if (t1 > 0xf)				t1 = 0xf;			t2 = ((value&0xf0)>>4)+(Gpwrdelta);			if (t2 > 0xf)				t2 = 0xf;			t3 = ((value&0xf00)>>8)+(Gpwrdelta);			if (t3 > 0xf)				t3 = 0xf;			t4 = ((value&0xf000)>>12)+(Gpwrdelta);			if (t4 > 0xf)				t4 = 0xf;		}		else		{			if ((value&0xf) > Gpwrdelta)				t1 = (value&0xf)-(Gpwrdelta);			else				t1 = 0;			if (((value&0xf0)>>4) > Gpwrdelta)				t2 = ((value&0xf0)>>4)-(Gpwrdelta);			else				t2 = 0;			if (((value&0xf00)>>8) > Gpwrdelta)				t3 = ((value&0xf00)>>8)-(Gpwrdelta);			else				t3 = 0;			if (((value&0xf000)>>12) > Gpwrdelta)				t4 = ((value&0xf000)>>12)-(Gpwrdelta);			else				t4 = 0;		}						Gdata |= ((t1<<16) + (t2<<20) + (t3<<24) + (t4<<28));		data |= (value<<16);				pAd->Tx20MPwrCfgABand[i] = pAd->Tx40MPwrCfgABand[i] = Adata;		pAd->Tx20MPwrCfgGBand[i] = pAd->Tx40MPwrCfgGBand[i] = Gdata;				if (data != 0xffffffff)			RTMP_IO_WRITE32(pAd, TX_PWR_CFG_0 + i*4, data);		DBGPRINT_RAW(RT_DEBUG_TRACE, ("20MHz BW, 2.4G band-%lx,  Adata = %lx,  Gdata = %lx \n", data, Adata, Gdata));	}	//	// Check this block is valid for 40MHz in 2.4G. If invalid, use parameter for 20MHz in 2.4G	//	bValid = TRUE;	for (i=0; i<6; i++)	{		RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_40MHZ_2_4G + 2 + i*2, value);		if (((value & 0x00FF) == 0x00FF) || ((value & 0xFF00) == 0xFF00))		{			bValid = FALSE;			break;		}	}	//	// Get Txpower per MCS for 40MHz in 2.4G.	//	if (bValid)	{		for (i=0; i<4; i++)		{			RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_40MHZ_2_4G + i*4, value);			if (bGpwrdeltaMinus == FALSE)			{				t1 = (value&0xf)+(Gpwrdelta);				if (t1 > 0xf)					t1 = 0xf;				t2 = ((value&0xf0)>>4)+(Gpwrdelta);				if (t2 > 0xf)					t2 = 0xf;				t3 = ((value&0xf00)>>8)+(Gpwrdelta);				if (t3 > 0xf)					t3 = 0xf;				t4 = ((value&0xf000)>>12)+(Gpwrdelta);				if (t4 > 0xf)					t4 = 0xf;			}			else			{				if ((value&0xf) > Gpwrdelta)					t1 = (value&0xf)-(Gpwrdelta);				else					t1 = 0;				if (((value&0xf0)>>4) > Gpwrdelta)					t2 = ((value&0xf0)>>4)-(Gpwrdelta);				else					t2 = 0;				if (((value&0xf00)>>8) > Gpwrdelta)					t3 = ((value&0xf00)>>8)-(Gpwrdelta);				else					t3 = 0;				if (((value&0xf000)>>12) > Gpwrdelta)					t4 = ((value&0xf000)>>12)-(Gpwrdelta);				else					t4 = 0;			}							Gdata = t1 + (t2<<4) + (t3<<8) + (t4<<12);					RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_40MHZ_2_4G + i*4 + 2, value);			if (bGpwrdeltaMinus == FALSE)			{				t1 = (value&0xf)+(Gpwrdelta);				if (t1 > 0xf)					t1 = 0xf;				t2 = ((value&0xf0)>>4)+(Gpwrdelta);				if (t2 > 0xf)					t2 = 0xf;				t3 = ((value&0xf00)>>8)+(Gpwrdelta);				if (t3 > 0xf)					t3 = 0xf;				t4 = ((value&0xf000)>>12)+(Gpwrdelta);				if (t4 > 0xf)					t4 = 0xf;			}			else			{				if ((value&0xf) > Gpwrdelta)					t1 = (value&0xf)-(Gpwrdelta);				else					t1 = 0;				if (((value&0xf0)>>4) > Gpwrdelta)					t2 = ((value&0xf0)>>4)-(Gpwrdelta);				else					t2 = 0;				if (((value&0xf00)>>8) > Gpwrdelta)					t3 = ((value&0xf00)>>8)-(Gpwrdelta);				else					t3 = 0;				if (((value&0xf000)>>12) > Gpwrdelta)					t4 = ((value&0xf000)>>12)-(Gpwrdelta);				else					t4 = 0;			}							Gdata |= ((t1<<16) + (t2<<20) + (t3<<24) + (t4<<28));			if (i == 0)				pAd->Tx40MPwrCfgGBand[i+1] = (pAd->Tx40MPwrCfgGBand[i+1] & 0x0000FFFF) | (Gdata & 0xFFFF0000);			else				pAd->Tx40MPwrCfgGBand[i+1] = Gdata;			DBGPRINT_RAW(RT_DEBUG_TRACE, ("40MHz BW, 2.4G band, Gdata = %lx \n", Gdata));		}	}	//	// Check this block is valid for 20MHz in 5G. If invalid, use parameter for 20MHz in 2.4G	//	bValid = TRUE;	for (i=0; i<8; i++)	{			RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_20MHZ_5G + 2 + i*2, value);		if (((value & 0x00FF) == 0x00FF) || ((value & 0xFF00) == 0xFF00))		{			bValid = FALSE;			break;		}	}	//	// Get Txpower per MCS for 20MHz in 5G.	//	if (bValid)	{		for (i=0; i<5; i++)		{			RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_20MHZ_5G + i*4, value);			if (bApwrdeltaMinus == FALSE)			{				t1 = (value&0xf)+(Apwrdelta);				if (t1 > 0xf)					t1 = 0xf;				t2 = ((value&0xf0)>>4)+(Apwrdelta);				if (t2 > 0xf)					t2 = 0xf;				t3 = ((value&0xf00)>>8)+(Apwrdelta);				if (t3 > 0xf)					t3 = 0xf;				t4 = ((value&0xf000)>>12)+(Apwrdelta);				if (t4 > 0xf)					t4 = 0xf;			}			else			{				if ((value&0xf) > Apwrdelta)					t1 = (value&0xf)-(Apwrdelta);				else					t1 = 0;				if (((value&0xf0)>>4) > Apwrdelta)					t2 = ((value&0xf0)>>4)-(Apwrdelta);				else					t2 = 0;				if (((value&0xf00)>>8) > Apwrdelta)					t3 = ((value&0xf00)>>8)-(Apwrdelta);				else					t3 = 0;				if (((value&0xf000)>>12) > Apwrdelta)					t4 = ((value&0xf000)>>12)-(Apwrdelta);				else					t4 = 0;			}							Adata = t1 + (t2<<4) + (t3<<8) + (t4<<12);					RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_20MHZ_5G + i*4 + 2, value);			if (bApwrdeltaMinus == FALSE)			{				t1 = (value&0xf)+(Apwrdelta);				if (t1 > 0xf)					t1 = 0xf;				t2 = ((value&0xf0)>>4)+(Apwrdelta);				if (t2 > 0xf)					t2 = 0xf;				t3 = ((value&0xf00)>>8)+(Apwrdelta);				if (t3 > 0xf)					t3 = 0xf;				t4 = ((value&0xf000)>>12)+(Apwrdelta);				if (t4 > 0xf)					t4 = 0xf;			}			else			{				if ((value&0xf) > Apwrdelta)					t1 = (value&0xf)-(Apwrdelta);				else					t1 = 0;				if (((value&0xf0)>>4) > Apwrdelta)					t2 = ((value&0xf0)>>4)-(Apwrdelta);				else					t2 = 0;				if (((value&0xf00)>>8) > Apwrdelta)					t3 = ((value&0xf00)>>8)-(Apwrdelta);				else					t3 = 0;				if (((value&0xf000)>>12) > Apwrdelta)					t4 = ((value&0xf000)>>12)-(Apwrdelta);				else					t4 = 0;			}							Adata |= ((t1<<16) + (t2<<20) + (t3<<24) + (t4<<28));			if (i == 0)				pAd->Tx20MPwrCfgABand[i] = (pAd->Tx20MPwrCfgABand[i] & 0x0000FFFF) | (Adata & 0xFFFF0000);			else				pAd->Tx20MPwrCfgABand[i] = Adata;			DBGPRINT_RAW(RT_DEBUG_TRACE, ("20MHz BW, 5GHz band, Adata = %lx \n", Adata));		}	}	//	// Check this block is valid for 40MHz in 5G. If invalid, use parameter for 20MHz in 2.4G	//	bValid = TRUE;	for (i=0; i<6; i++)	{		RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_40MHZ_5G + 2 + i*2, value);		if (((value & 0x00FF) == 0x00FF) || ((value & 0xFF00) == 0xFF00))		{			bValid = FALSE;			break;		}	}	//	// Get Txpower per MCS for 40MHz in 5G.	//	if (bValid)	{		for (i=0; i<4; i++)		{			RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_40MHZ_5G + i*4, value);			if (bApwrdeltaMinus == FALSE)			{				t1 = (value&0xf)+(Apwrdelta);				if (t1 > 0xf)					t1 = 0xf;				t2 = ((value&0xf0)>>4)+(Apwrdelta);				if (t2 > 0xf)					t2 = 0xf;				t3 = ((value&0xf00)>>8)+(Apwrdelta);				if (t3 > 0xf)					t3 = 0xf;				t4 = ((value&0xf000)>>12)+(Apwrdelta);				if (t4 > 0xf)					t4 = 0xf;			}			else			{				if ((value&0xf) > Apwrdelta)					t1 = (value&0xf)-(Apwrdelta);				else					t1 = 0;				if (((value&0xf0)>>4) > Apwrdelta)					t2 = ((value&0xf0)>>4)-(Apwrdelta);				else					t2 = 0;				if (((value&0xf00)>>8) > Apwrdelta)					t3 = ((value&0xf00)>>8)-(Apwrdelta);				else					t3 = 0;				if (((value&0xf000)>>12) > Apwrdelta)					t4 = ((value&0xf000)>>12)-(Apwrdelta);				else					t4 = 0;			}							Adata = t1 + (t2<<4) + (t3<<8) + (t4<<12);						RT28xx_EEPROM_READ16(pAd, EEPROM_TXPOWER_BYRATE_40MHZ_5G + i*4 + 2, value);			if (bApwrdeltaMinus == FALSE)			{				t1 = (value&0xf)+(Apwrdelta);				if (t1 > 0xf)					t1 = 0xf;				t2 = ((value&0xf0)>>4)+(Apwrdelta);				if (t2 > 0xf)					t2 = 0xf;				t3 = ((value&0xf00)>>8)+(Apwrdelta);				if (t3 > 0xf)					t3 = 0xf;				t4 = ((value&0xf000)>>12)+(Apwrdelta);				if (t4 > 0xf)					t4 = 0xf;			}			else			{				if ((value&0xf) > Apwrdelta)					t1 = (value&0xf)-(Apwrdelta);				else					t1 = 0;				if (((value&0xf0)>>4) > Apwrdelta)					t2 = ((value&0xf0)>>4)-(Apwrdelta);				else					t2 = 0;				if (((value&0xf00)>>8) > Apwrdelta)					t3 = ((value&0xf00)>>8)-(Apwrdelta);				else					t3 = 0;				if (((value&0xf000)>>12) > Apwrdelta)					t4 = ((value&0xf000)>>12)-(Apwrdelta);				else					t4 = 0;			}							Adata |= ((t1<<16) + (t2<<20) + (t3<<24) + (t4<<28));			if (i == 0)				pAd->Tx40MPwrCfgABand[i+1] = (pAd->Tx40MPwrCfgABand[i+1] & 0x0000FFFF) | (Adata & 0xFFFF0000);			else				pAd->Tx40MPwrCfgABand[i+1] = Adata;			DBGPRINT_RAW(RT_DEBUG_TRACE, ("40MHz BW, 5GHz band, Adata = %lx \n", Adata));		}	}}/*	========================================================================		Routine Description:		Read initial channel power parameters from EEPROM			Arguments:		Adapter						Pointer to our adapter	Return Value:		None	IRQL = PASSIVE_LEVEL	Note:			========================================================================*/VOID	RTMPReadChannelPwr(	IN	PRTMP_ADAPTER	pAd){	UCHAR				i, choffset;	EEPROM_TX_PWR_STRUC	    Power;	EEPROM_TX_PWR_STRUC	    Power2;	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -