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 + -
显示快捷键?