?? zdhw.c
字號:
pObj->SetReg(reg, 0x85C1, 0x0F);
//ZD1211_WRITE_REGISTER(Adapter, 0x85C1, 0x0F, FALSE);
tmpvalue = pObj->GetReg(reg, 0x85C1);
//ZD1211_READ_REGISTER(Adapter, 0x85C1, &tmpvalue, FALSE);
if ((tmpvalue & 0xf) == 0x0 ) {
bLocked=TRUE;
pObj->UW2453RFTableIndex = i+1;
break;
}
}
if(!bLocked)
{
pObj->UW2453RFTableIndex = i+1;
}
//if (bLocked) {
/*
if(pObj->UW2453MiniCard)
{
Set_IF_Synthesizer(Adapter, UW2453RF_minicard[pObj->UW2453RFTableIndex][1*3]);
Set_IF_Synthesizer(Adapter, UW2453RF_minicard[pObj->UW2453RFTableIndex][1*3+1]);
Set_IF_Synthesizer(Adapter, UW2453RF_minicard[pObj->UW2453RFTableIndex][1*3+2]);
}
else
*/
{
HW_Set_IF_Synthesizer(pObj, UW2453RF_dongle[pObj->UW2453RFTableIndex][1*3]);
HW_Set_IF_Synthesizer(pObj, UW2453RF_dongle[pObj->UW2453RFTableIndex][1*3+1]);
HW_Set_IF_Synthesizer(pObj, UW2453RF_dongle[pObj->UW2453RFTableIndex][1*3+2]);
}
//} else { //turn off RF when we can't lock
// Set_IF_Synthesizer(Adapter, 0x025f90);
// LockPhyReg(pObj);
// ZD1205_WRITE_REGISTER(Adapter, CR11, 0x04);
// ZD1205_WRITE_REGISTER(Adapter, CR251, 0x2f);
// UnLockPhyReg(pObj);
//}
}
else{
//Set_IF_Synthesizer(Adapter, 0x40002b);//6109
//Set_IF_Synthesizer(Adapter, 0x519e4f);//6109
//Set_IF_Synthesizer(Adapter, 0x6f81ac);//6109
//Set_IF_Synthesizer(Adapter, 0x73fffe);//6109
//Set_IF_Synthesizer(Adapter, 0x025f9c);//6109
//Set_IF_Synthesizer(Adapter, 0x025fcc); // 5d01 //6109
/*
if(pObj->UW2453MiniCard)
{
Set_IF_Synthesizer(Adapter, UW2453RF_minicard[pObj->UW2453RFTableIndex][ChannelNo*3]);
Set_IF_Synthesizer(Adapter, UW2453RF_minicard[pObj->UW2453RFTableIndex][ChannelNo*3+1]);
Set_IF_Synthesizer(Adapter, UW2453RF_minicard[pObj->UW2453RFTableIndex][ChannelNo*3+2]);
}
else
*/
{
HW_Set_IF_Synthesizer(pObj, UW2453RF_dongle[pObj->UW2453RFTableIndex][ChannelNo*3]);
HW_Set_IF_Synthesizer(pObj, UW2453RF_dongle[pObj->UW2453RFTableIndex][ChannelNo*3+1]);
HW_Set_IF_Synthesizer(pObj, UW2453RF_dongle[pObj->UW2453RFTableIndex][ChannelNo*3+2]);
}
//Set_IF_Synthesizer(Adapter, 0x340060);
HW_Set_IF_Synthesizer(pObj, 0x025f98); //5d02
HW_Set_IF_Synthesizer(pObj, 0x025f9a);
HW_Set_IF_Synthesizer(pObj, 0x025f94);
HW_Set_IF_Synthesizer(pObj, 0x027FD4);
//Set_IF_Synthesizer(Adapter, UW2453RF[ChannelNo*3+2]); //5d02//6109
}
LockPhyReg(pObj);
//Band Edge issue
if(PURE_A_MODE != mMacMode)
{
if(pObj->HWFeature & BIT_21)
{
if(ChannelNo == 1 || ChannelNo == 11)
{
if(pObj->PHY_Decrease_CR128_state)
{
pObj->SetReg(reg, ZD_CR128, 0x12);
pObj->SetReg(reg, ZD_CR129, 0x12);
pObj->SetReg(reg, ZD_CR130, 0x10);
}
else
{
pObj->SetReg(reg, ZD_CR128, 0x10);
pObj->SetReg(reg, ZD_CR129, 0x10);
pObj->SetReg(reg, ZD_CR130, 0x10);
}
}
else
{
pObj->SetReg(reg, ZD_CR128, 0x14);
pObj->SetReg(reg, ZD_CR129, 0x12);
pObj->SetReg(reg, ZD_CR130, 0x10);
}
}
else
{
pObj->SetReg(reg, ZD_CR128, 0x14);
pObj->SetReg(reg, ZD_CR129, 0x12);
pObj->SetReg(reg, ZD_CR130, 0x10);
}
}
pObj->SetReg(reg, ZD_CR80, 0x30);
pObj->SetReg(reg, ZD_CR81, 0x30);
pObj->SetReg(reg, ZD_CR79, 0x58);
pObj->SetReg(reg, ZD_CR12, 0xF0);
pObj->SetReg(reg, ZD_CR77, 0x1B);
pObj->SetReg(reg, ZD_CR78, 0x58);
UnLockPhyReg(pObj);
//UW Tx Power
for(i=0;i<19;i++)
{
if(pObj->IntValue[ChannelNo - 1] == ZD_UWTxGain[i].UWTxGainLevel)
break;
}
if(i<19)
{
pObj->UWCurrentTxLevel = ZD_UWTxGain[i].UWTxGainLevel;
pObj->UWDefaulTxLevel = ZD_UWTxGain[i].UWTxGainLevel;
PHY_UWTxPower(pObj, pObj->UWDefaulTxLevel);
}
LockPhyReg(pObj);
//ZD1205_WRITE_REGISTER(Adapter, CR203, 0x06);
pObj->SetReg(reg, ZD_CR203, 0x06);
UnLockPhyReg(pObj);
pObj->CR203Flag = 2;
pObj->CR31Flag = 2;
//pObj->PHY_G_BandEdge_Flag = 0;
//pObj->UWStrongSingalFlag = 2;
//pObj->UW2453CCKSetFlag = 0;
//pObj->UW24532MIssue = 0;
#if !( (defined(OFDM) && defined(GCCK)) || defined(ECCK_60_5) )
pObj->SetReg(reg, PE1_PE2, 3);
#endif
}
//------------------------------------------------------------------------------
// Procedure: HW_Set_AL7230B_Chips
//
// Description:
//
// Arguments:
// Adapter - ptr to Adapter object instance
// ChannelNo
// Initial Channel only
//
// Returns: (none)
//
// Note:
//-------------------------------------------------------------------------------
#ifndef ZD1211B
// 1211
void HW_Set_AL7230B_RF_Chips(zd_80211Obj_t *pObj, U32 ChannelNo, U8 InitChOnly, U8 MAC_Mode)
{
void *reg = pObj->reg;
U32 tmpValue;
U32 ChannelNo_temp;
//int i;
static u8 mOldMacMode = MIXED_MODE;
U16 WriteAddr[256];
U16 WriteData[256];
U16 WriteIndex = 0;
LockPhyReg(pObj);
pObj->SetReg(reg, ZD_CR240, 0x57);
UnLockPhyReg(pObj);
tmpValue = pObj->GetReg(reg, CtlReg1);
tmpValue &= ~0x80;
pObj->SetReg(reg, CtlReg1, tmpValue);
if (!InitChOnly){
mFILL_WRITE_REGISTER( ZD_CR15, 0x20);
mFILL_WRITE_REGISTER( ZD_CR23, 0x40);
mFILL_WRITE_REGISTER( ZD_CR24, 0x20);
mFILL_WRITE_REGISTER( ZD_CR26, 0x11);
mFILL_WRITE_REGISTER( ZD_CR28, 0x3e);
mFILL_WRITE_REGISTER( ZD_CR29, 0x00);
mFILL_WRITE_REGISTER( ZD_CR44, 0x33);
mFILL_WRITE_REGISTER( ZD_CR106, 0x22); //from 0x2a to 0x22 for AL7230B
mFILL_WRITE_REGISTER( ZD_CR107, 0x1a);
mFILL_WRITE_REGISTER( ZD_CR109, 0x9);
mFILL_WRITE_REGISTER( ZD_CR110, 0x27);
mFILL_WRITE_REGISTER( ZD_CR111, 0x2b);
mFILL_WRITE_REGISTER( ZD_CR112, 0x2b);
mFILL_WRITE_REGISTER( ZD_CR119, 0xa);
mFILL_WRITE_REGISTER( ZD_CR122, 0xfc); //from /e0 to fc for AL7230B
mFILL_WRITE_REGISTER( ZD_CR10, 0x89);
mFILL_WRITE_REGISTER( ZD_CR17, 0x28);
mFILL_WRITE_REGISTER( ZD_CR26, 0x93);
mFILL_WRITE_REGISTER( ZD_CR34, 0x30);
mFILL_WRITE_REGISTER( ZD_CR35, 0x3E);
mFILL_WRITE_REGISTER( ZD_CR41, 0x24);
mFILL_WRITE_REGISTER( ZD_CR44, 0x32);
mFILL_WRITE_REGISTER( ZD_CR46, 0x96);
mFILL_WRITE_REGISTER( ZD_CR47, 0x1e);
mFILL_WRITE_REGISTER( ZD_CR79, 0x58);
mFILL_WRITE_REGISTER( ZD_CR80, 0x30);
mFILL_WRITE_REGISTER( ZD_CR81, 0x30);
mFILL_WRITE_REGISTER( ZD_CR87, 0x0A);
mFILL_WRITE_REGISTER( ZD_CR89, 0x04);
mFILL_WRITE_REGISTER( ZD_CR92, 0x0a);
mFILL_WRITE_REGISTER( ZD_CR99, 0x28);
mFILL_WRITE_REGISTER( ZD_CR100, 0x02);
mFILL_WRITE_REGISTER( ZD_CR101, 0x13);
mFILL_WRITE_REGISTER( ZD_CR102, 0x27);
mFILL_WRITE_REGISTER( ZD_CR106, 0x22); //from 0x20 to 0x22 for AL7230B
mFILL_WRITE_REGISTER( ZD_CR107, 0x3f);
mFILL_WRITE_REGISTER( ZD_CR109, 0x09);
mFILL_WRITE_REGISTER( ZD_CR110, 0x1f);
mFILL_WRITE_REGISTER( ZD_CR111, 0x1f);
mFILL_WRITE_REGISTER( ZD_CR112, 0x1f);
mFILL_WRITE_REGISTER( ZD_CR113, 0x27);
mFILL_WRITE_REGISTER( ZD_CR114, 0x27);
mFILL_WRITE_REGISTER( ZD_CR115, 0x24);
mFILL_WRITE_REGISTER( ZD_CR116, 0x3f);
mFILL_WRITE_REGISTER( ZD_CR117, 0xfa);
mFILL_WRITE_REGISTER( ZD_CR118, 0xfc);
mFILL_WRITE_REGISTER( ZD_CR119, 0x10);
mFILL_WRITE_REGISTER( ZD_CR120, 0x4f);
mFILL_WRITE_REGISTER( ZD_CR121, 0x77);
mFILL_WRITE_REGISTER( ZD_CR137, 0x88);
mFILL_WRITE_REGISTER( ZD_CR138, 0xa8);
mFILL_WRITE_REGISTER( ZD_CR252, 0x34);
mFILL_WRITE_REGISTER( ZD_CR253, 0x34);
// mFILL_WRITE_REGISTER( ZD_CR240, 0x57);
if( MAC_Mode != PURE_A_MODE )
{
mFILL_WRITE_REGISTER( ZD_CR251, 0x2f); //PLL_OFF
SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2]);
SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2+1]);
//SET_IF_SYNTHESIZER(macp, 0x8cccd0);
SET_IF_SYNTHESIZER(macp, 0x4ff821);
SET_IF_SYNTHESIZER(macp, 0xc5fbfc);
SET_IF_SYNTHESIZER(macp, 0x21ebfe);
SET_IF_SYNTHESIZER(macp, 0xafd401); //freq shift 0xaad401
SET_IF_SYNTHESIZER(macp, 0x6cf56a);
SET_IF_SYNTHESIZER(macp, 0xe04073);
SET_IF_SYNTHESIZER(macp, 0x193d76);
SET_IF_SYNTHESIZER(macp, 0x9dd844);
SET_IF_SYNTHESIZER(macp, 0x500007);
SET_IF_SYNTHESIZER(macp, 0xd8c010);
SET_IF_SYNTHESIZER(macp, 0x3c9000);
//Adapter->AL7230CCKSetFlag=0;
SET_IF_SYNTHESIZER(macp, 0xbfffff);
SET_IF_SYNTHESIZER(macp, 0x700000);
SET_IF_SYNTHESIZER(macp, 0xf15d58);
//AcquireCtrOfPhyReg(Adapter);
//ZD1205_WRITE_REGISTER(Adapter, CR251, 0x2f); //PLL_OFF
mFILL_WRITE_REGISTER( ZD_CR251, 0x3f); //PLL_ON
mFILL_WRITE_REGISTER( ZD_CR128, 0x14);
mFILL_WRITE_REGISTER( ZD_CR129, 0x12);
mFILL_WRITE_REGISTER( ZD_CR130, 0x10);
mFILL_WRITE_REGISTER( ZD_CR38, 0x38);
mFILL_WRITE_REGISTER( ZD_CR136, 0xdf);
///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);
///NdisStallExecution(1000);
SET_IF_SYNTHESIZER(macp, 0xf15d59);
///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);
///NdisStallExecution(10000);
SET_IF_SYNTHESIZER(macp, 0xf15d5c);
///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);
///NdisStallExecution(10000);
SET_IF_SYNTHESIZER(macp, 0xf15d58);
}
else
{
mFILL_WRITE_REGISTER( ZD_CR251, 0x2f); // shdnb(PLL_ON)=0
if((34 <= ChannelNo) && (ChannelNo <= 48)){
ChannelNo_temp=(ChannelNo/2)-13;
SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4]);
SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+1]);
}
else{
ChannelNo_temp=(ChannelNo/4)-1;
SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4]);
SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+1]);
}
SET_IF_SYNTHESIZER(macp, AL7230BTB_a[ChannelNo_temp*4+3]);
SET_IF_SYNTHESIZER(macp, 0x47f8a2);
SET_IF_SYNTHESIZER(macp, 0xc5fbfa);
//SET_IF_SYNTHESIZER(macp, 0x21ebf6);
SET_IF_SYNTHESIZER(macp, 0xaafca1);
SET_IF_SYNTHESIZER(macp, 0x6cf56a);
SET_IF_SYNTHESIZER(macp, 0xe04073);
SET_IF_SYNTHESIZER(macp, 0x193d76);
SET_IF_SYNTHESIZER(macp, 0x9dd844);
SET_IF_SYNTHESIZER(macp, 0x500607);
SET_IF_SYNTHESIZER(macp, 0xd8c010);
if((48 < ChannelNo) && (ChannelNo < 184)){
SET_IF_SYNTHESIZER(macp, 0x3c2800);
}
else{
SET_IF_SYNTHESIZER(macp, 0x3e2800);
}
SET_IF_SYNTHESIZER(macp, 0xbfffff);
SET_IF_SYNTHESIZER(macp, 0x700000);
SET_IF_SYNTHESIZER(macp, 0xf35d48);
//AcquireCtrOfPhyReg(Adapter);
//ZD1205_WRITE_REGISTER(Adapter, CR251, 0x2f); // shdnb(PLL_ON)=0
mFILL_WRITE_REGISTER( ZD_CR251, 0x3f); // shdnb(PLL_ON)=1
mFILL_WRITE_REGISTER( ZD_CR128, 0x12);
mFILL_WRITE_REGISTER( ZD_CR129, 0x10);
mFILL_WRITE_REGISTER( ZD_CR130, 0x10);
mFILL_WRITE_REGISTER( ZD_CR38, 0x7f);
mFILL_WRITE_REGISTER( ZD_CR136, 0x5f);
///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);
///NdisStallExecution(1000);
SET_IF_SYNTHESIZER(macp, 0xf15d59);
///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);
///NdisStallExecution(10000);
SET_IF_SYNTHESIZER(macp, 0xf15d5c);
///ZD1211_WRITE_MULTI_REG(Adapter, WriteAddr, WriteData, &WriteIndex);
///NdisStallExecution(10000);
SET_IF_SYNTHESIZER(macp, 0xf35d48);
}
}
else{
if( MAC_Mode != PURE_A_MODE )
{
mFILL_WRITE_REGISTER( ZD_CR251, 0x2f); //PLL_OFF
//SET_IF_SYNTHESIZER(macp, 0x0b3331);
if ( 1 || mOldMacMode != MAC_Mode )
{
SET_IF_SYNTHESIZER(macp, 0x4ff821);
SET_IF_SYNTHESIZER(macp, 0xc5fbfc);
SET_IF_SYNTHESIZER(macp, 0x21ebfe);
SET_IF_SYNTHESIZER(macp, 0xafd401); //fix freq shift, 0xaad401
SET_IF_SYNTHESIZER(macp, 0x6cf56a);
SET_IF_SYNTHESIZER(macp, 0xe04073);
SET_IF_SYNTHESIZER(macp, 0x193d76);
SET_IF_SYNTHESIZER(macp, 0x9dd844);
SET_IF_SYNTHESIZER(macp, 0x500007);
SET_IF_SYNTHESIZER(macp, 0xd8c010);
SET_IF_SYNTHESIZER(macp, 0x3c9000);
SET_IF_SYNTHESIZER(macp, 0xf15d58);
mFILL_WRITE_REGISTER( ZD_CR128, 0x14);
mFILL_WRITE_REGISTER( ZD_CR129, 0x12);
mFILL_WRITE_REGISTER( ZD_CR130, 0x10);
mFILL_WRITE_REGISTER( ZD_CR38, 0x38);
mFILL_WRITE_REGISTER( ZD_CR136, 0xdf);
mOldMacMode = MAC_Mode;
}
//Adapter->AL7230CCKSetFlag=0;
SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2]);
SET_IF_SYNTHESIZER(macp, AL7230BTB[ChannelNo*2+1]);
SET_IF_SYNTHESIZER(macp, 0x3c9000);
mFILL_WRITE_REGISTER( ZD_CR251, 0x3f); //PLL_ON
}
else
{
mFILL_WRITE_REGISTER( ZD_CR251, 0x2f); // shdnb(PLL_ON)=0
if ( 1 || mOldMacMode != MAC_Mode )
{
SET_IF_SYNTHESIZER(macp, 0x47f8a2);
SET_IF_SYNTHESIZER(macp, 0xc5fbfa);
SET_IF_SYNTHESIZER(macp, 0xaafca1);
SET_IF_SYNTHESIZER(macp, 0x6cf56a);
SET_IF_SYNTHESIZER(macp, 0xe04073);
SET_IF_SYNTHESIZER(macp, 0x193d76);
SET_IF_SYNTHESIZER(macp, 0x9dd844);
SET_IF_SYNTHESIZER(macp, 0x500607);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -