physet.c

来自「mini-PCI driver for LHWT chipsets」· C语言 代码 · 共 160 行

C
160
字号
#include "wtprecomp.h"/// <summary>/// 功能定义:扫描切换RF2230 rf 的信道/// </summary>///////// <param name="Adapter">适配器上下文环境</param>////// <returns>1</returns>////// <para>///函数实现: 根据信道号,从信道列表中找到对应的参数,然后逐一写到0x154寄存器即可。int RF2230_set(PWT_ADAPTER Adapter, int Channel){		int channeltotal = 0;//	unsigned int data = 0;	int i =0;	RF_CONF_DAT rf_conf_array[] =	{		//频率;信道;寄存器0;寄存器1;寄存器4;保留		{2412,   1, 0x03f790, 0x033331, 0x0, 0x0 },		{2417,   2, 0x03f790, 0x0b3331, 0x0, 0x0 },		{2422,   3, 0x03e790, 0x033331, 0x0, 0x0 },		{2427,   4, 0x03e790, 0x0b3331, 0x0, 0x0 },		{2432,   5, 0x03f7a0, 0x033331, 0x0, 0x0 },		{2437,   6, 0x03f7a0, 0x0b3331, 0x0, 0x0 },		{2442,   7, 0x03e7a0, 0x033331, 0x0, 0x0 },		{2447,   8, 0x03e7a0, 0x0b3331, 0x0, 0x0 },		{2452,   9, 0x03f7b0, 0x033331, 0x0, 0x0 },		{2457,  10, 0x03f7b0, 0x0b3331, 0x0, 0x0 },		{2462,  11, 0x03e7b0, 0x033331, 0x0, 0x0 },		{2467,  12, 0x03e7b0, 0x0b3331, 0x0, 0x0 },		{2472,  13, 0x03f7c0, 0x033331, 0x0, 0x0 },		{2484,  14, 0x03e7c0, 0x066661, 0x0, 0x0 },		//{5180,  36, 0x0ff560, 0x0aaab1, 0x7fd784, 0x0 },		//{5200,  40, 0x0ff570, 0x155551, 0x7fd784, 0x0 },		//{5220,  44, 0x0ff570, 0x000001, 0x6fd784, 0x0 },		//{5240,  48, 0x0ff570, 0x0aaab1, 0x7fd784, 0x0 },		//{5260,  52, 0x0ff580, 0x155551, 0x7fd784, 0x0 },		//{5280,  56, 0x0ff580, 0x000001, 0x6fd784, 0x0 },		//{5300,  60, 0x0ff580, 0x0aaab1, 0x7fd784, 0x0 },		//{5320,  64, 0x0ff590, 0x155551, 0x7fd784, 0x0 },		//japan channel  edit by wp 2006.2.6		/*{5170,  34, 0x000ff560, 0x00055551, 0x0007fd784, 0x0},		{5190,  38, 0x000ff570, 0x00100001, 0x0007fd784, 0x0},		{5210,  42, 0x000ff570, 0x001aaab1, 0x0007fd784, 0x0},			{5230,  46, 0x000ff570, 0x00055551, 0x0007fd784, 0x0},*/	};	if(Adapter->RegMacParameter.RfType != RF2230)		return FALSE;	channeltotal = (sizeof(rf_conf_array)/sizeof(RF_CONF_DAT));	for(i=0; i<channeltotal; i++)	{		if(rf_conf_array[i].ch_no == Channel){			if(Adapter->RegMacParameter.ABGMode == IEEE80211A_ONLY)			{											}			else			{//				DBGPRINT(WT_TRACE, ("RFAiroha switch channel %d,\n", Channel));				WRITE_WT4( 0x154, rf_conf_array[i].reg0,4);				WRITE_WT4( 0x154, rf_conf_array[i].reg1,4); 				udelay(SWITCH_CHANNEL_DELAY+6);				udelay(SWITCH_CHANNEL_DELAY+6);				udelay(SWITCH_CHANNEL_DELAY+6);				WRITE_WT4( 0x154, 0x00d80f,4);				udelay(SWITCH_CHANNEL_DELAY+6);				WRITE_WT4( 0x154, 0x00780f,4);				udelay(SWITCH_CHANNEL_DELAY+6);				WRITE_WT4( 0x154, 0x00580f,4);							}			return TRUE;		}	}	return FALSE;}void WtWlanInterMemInit( IN PWT_ADAPTER Adapter){	//TX	USHORT nLen = 0;	USHORT nHwKeyItemLen = 0;	Adapter->MacHwCfg.ulHwHeadLen =  MAX_HW_HEAD_LEN;	Adapter->MacHwCfg.ulHwTxCellLen = MAX_TX_CELL_LEN;	Adapter->MacHwCfg.ulHwRxCellLen = MAX_RX_CELL_LEN;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxHeadAddrBank0 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxBodyAddrBank0 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwTxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxHeadAddrBank1 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxBodyAddrBank1 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwTxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxHeadAddrBank2 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxBodyAddrBank2 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwTxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxHeadAddrBank3 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxBodyAddrBank3 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwTxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxHeadAddrBank4 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.TxBodyAddrBank4 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwTxCellLen;	//RX 	Adapter->MainMemAddress->HwCSMem.SysCfg.RxHeadAddrBank0 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxBodyAddrBank0 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwRxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxHeadAddrBank1 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxBodyAddrBank1 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwRxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxHeadAddrBank2 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxBodyAddrBank2 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwRxCellLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxHeadAddrBank3 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MainMemAddress->HwCSMem.SysCfg.RxBodyAddrBank3 = host2ieee16( nLen ); nLen+=Adapter->MacHwCfg.ulHwRxCellLen;	Adapter->MacHwCfg.HeadLen =Adapter->MacHwCfg.ulHwHeadLen;	Adapter->MacHwCfg.BodyLen = ( Adapter->MacHwCfg.ulHwTxCellLen > Adapter->MacHwCfg.ulHwRxCellLen ) ? Adapter->MacHwCfg.ulHwTxCellLen : Adapter->MacHwCfg.ulHwRxCellLen;	nHwKeyItemLen = sizeof(WTWLAN_HWKEYTABLE);	Adapter->MacHwCfg.KeyMapBaseAddr =  nLen ;	Adapter->MainMemAddress->HwCSMem.SysCfg.KeyMapAddr = host2ieee16( nLen ); 	Adapter->MainMemAddress->HwCSMem.SysCfg.KeyMapLen =  (MAX_INTERNAL_MEM_LEN - nLen)/nHwKeyItemLen;	memset( &(Adapter->MainMemAddress->HwKeyTable), 0, 0x400);}void WtWlanTestInit( IN PWT_ADAPTER Adapter){	// test value:	WT_MEMCOPY( Adapter->MainMemAddress->HwCSMem.NetMacAddress.MacAddress,		Adapter->PermanentAddress,6);		WT_MEMCOPY( Adapter->MainMemAddress->HwCSMem.NetMacAddress.NetAddress,		Adapter->PermanentAddress,6);/*	WT_MEMSET( &Adapter->MainMemAddress->HwCSMem.NetMacAddress.NetAddress, 				6, 0xFF );*/	//WRITE_WT4( 0x1c2, 0x00, 1);	//mxx add 06.11.08	if(Adapter->RegMacParameter.RfType == RF2230)		{		WRITE_WT4( 0x184, 0xd0, 1);//调整发射功率变

⌨️ 快捷键说明

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