mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
prima: release v3.2.1.11g
git://codeaurora.org/external/wlan/prima.git 9aeede6 wlan: Release 3.2.1.11g bfacc46 Update countryInfoTable 5cc0827 Ignore Channel 165 for country INDONESIA f12d310 DXE Health monitor Signed-off-by: Iliyan Malchev <malchev@google.com>
This commit is contained in:
parent
0b16187d38
commit
cb0874125a
12 changed files with 655 additions and 275 deletions
|
@ -77,6 +77,8 @@ when who what, where, why
|
|||
#define T_WLANDXE_TX_INT_ENABLE_FCOUNT 1
|
||||
#define T_WLANDXE_MEMDUMP_BYTE_PER_LINE 16
|
||||
#define T_WLANDXE_MAX_RX_PACKET_WAIT 6000
|
||||
#define T_WLANDXE_PERIODIC_HEALTH_M_TIME 1500
|
||||
#define T_WLANDXE_MAX_HW_ACCESS_WAIT 2000
|
||||
#define WLANDXE_MAX_REAPED_RX_FRAMES 512
|
||||
|
||||
/* This is temporary fot the compile
|
||||
|
@ -518,6 +520,302 @@ void dxeRxThreadChannelDebugHandler
|
|||
return;
|
||||
}
|
||||
|
||||
/*==========================================================================
|
||||
@ Function Name
|
||||
dxeRXHealthMonitor
|
||||
|
||||
@ Description
|
||||
Monitoring RX channel healthy stataus
|
||||
If detect any problem, try to recover
|
||||
|
||||
@ Parameters
|
||||
healthMonitorMsg MSG pointer.
|
||||
will have low resource TX channel context
|
||||
|
||||
@ Return
|
||||
NONE
|
||||
|
||||
===========================================================================*/
|
||||
void dxeRXHealthMonitor
|
||||
(
|
||||
wpt_msg *healthMonitorMsg
|
||||
)
|
||||
{
|
||||
WLANDXE_ChannelCBType *channelCtrlBlk;
|
||||
WLANDXE_ChannelCBType *testCHCtrlBlk;
|
||||
wpt_uint32 regValue;
|
||||
wpt_uint32 chStatusReg, chControlReg, chDescReg, chLDescReg;
|
||||
wpt_uint32 hwWakeLoop, chLoop;
|
||||
|
||||
if(NULL == healthMonitorMsg)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Make wake up HW */
|
||||
dxeNotifySmsm(eWLAN_PAL_FALSE, eWLAN_PAL_TRUE);
|
||||
dxeNotifySmsm(eWLAN_PAL_TRUE, eWLAN_PAL_FALSE);
|
||||
|
||||
for(hwWakeLoop = 0; hwWakeLoop < T_WLANDXE_MAX_HW_ACCESS_WAIT; hwWakeLoop++)
|
||||
{
|
||||
wpalReadRegister(WLANDXE_BMU_AVAILABLE_BD_PDU, ®Value);
|
||||
if(0 != regValue)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"Scheduled RX, num free BD/PDU %d, loop Count %d",
|
||||
regValue, hwWakeLoop, 0);
|
||||
|
||||
for(chLoop = WDTS_CHANNEL_RX_LOW_PRI; chLoop < WDTS_CHANNEL_MAX; chLoop++)
|
||||
{
|
||||
testCHCtrlBlk = &tempDxeCtrlBlk->dxeChannel[chLoop];
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXECtrlRegAddr, &chControlReg);
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXEStatusRegAddr, &chStatusReg);
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXEDesclRegAddr, &chDescReg);
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXELstDesclRegAddr, &chLDescReg);
|
||||
|
||||
wpalTrace(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_INFO,
|
||||
"%11s : CCR 0x%x, CSR 0x%x, CDR 0x%x, CLDR 0x%x, HCBO %d, HCBDP 0x%x, HCBDC 0x%x, TCBO %d,TCBDP 0x%x, TCBDC 0x%x",
|
||||
channelType[chLoop],
|
||||
chControlReg, chStatusReg, chDescReg, chLDescReg,
|
||||
testCHCtrlBlk->headCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDesc->descCtrl.ctrl,
|
||||
testCHCtrlBlk->tailCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDesc->descCtrl.ctrl);
|
||||
|
||||
if((chControlReg & WLANDXE_DESC_CTRL_VALID) &&
|
||||
(chLDescReg != testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr))
|
||||
{
|
||||
wpalTrace(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : CCR 0x%x, CSR 0x%x, CDR 0x%x, CLDR 0x%x, "
|
||||
"HCBO %d, HCBDP 0x%x, HCBDC 0x%x, TCBO %d,TCBDP 0x%x, TCBDC 0x%x",
|
||||
channelType[chLoop],
|
||||
chControlReg, chStatusReg, chDescReg, chLDescReg,
|
||||
testCHCtrlBlk->headCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDesc->descCtrl.ctrl,
|
||||
testCHCtrlBlk->tailCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDesc->descCtrl.ctrl);
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : RX CH EN Descriptor Async, resync it", channelType[chLoop], 0, 0);
|
||||
wpalWriteRegister(testCHCtrlBlk->channelRegister.chDXELstDesclRegAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr);
|
||||
}
|
||||
else if(!(chControlReg & WLANDXE_DESC_CTRL_VALID) &&
|
||||
(chDescReg != testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr))
|
||||
{
|
||||
wpalTrace(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : CCR 0x%x, CSR 0x%x, CDR 0x%x, CLDR 0x%x, "
|
||||
"HCBO %d, HCBDP 0x%x, HCBDC 0x%x, TCBO %d,TCBDP 0x%x, TCBDC 0x%x",
|
||||
channelType[chLoop],
|
||||
chControlReg, chStatusReg, chDescReg, chLDescReg,
|
||||
testCHCtrlBlk->headCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDesc->descCtrl.ctrl,
|
||||
testCHCtrlBlk->tailCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDesc->descCtrl.ctrl);
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : RX CH DIS Descriptor Async, resync it", channelType[chLoop], 0, 0);
|
||||
wpalWriteRegister(testCHCtrlBlk->channelRegister.chDXEDesclRegAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr);
|
||||
}
|
||||
}
|
||||
|
||||
channelCtrlBlk = (WLANDXE_ChannelCBType *)healthMonitorMsg->pContext;
|
||||
if(channelCtrlBlk->hitLowResource)
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : Still Low Resource, kick DXE TX and restart timer",
|
||||
channelType[channelCtrlBlk->channelType], 0, 0);
|
||||
/* Still Low Resource, Kick DXE again and start timer again */
|
||||
wpalTimerStart(&channelCtrlBlk->healthMonitorTimer,
|
||||
T_WLANDXE_PERIODIC_HEALTH_M_TIME);
|
||||
}
|
||||
else
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : Out from Low resource condition, do nothing",
|
||||
channelType[channelCtrlBlk->channelType], 0, 0);
|
||||
/* Recovered from low resource condition
|
||||
* Not need to do anything */
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*==========================================================================
|
||||
@ Function Name
|
||||
dxeTXHealthMonitor
|
||||
|
||||
@ Description
|
||||
Monitoring TX channel healthy stataus
|
||||
If detect any problem, try to recover
|
||||
|
||||
@ Parameters
|
||||
healthMonitorMsg MSG pointer.
|
||||
will have low resource TX channel context
|
||||
|
||||
@ Return
|
||||
NONE
|
||||
|
||||
===========================================================================*/
|
||||
void dxeTXHealthMonitor
|
||||
(
|
||||
wpt_msg *healthMonitorMsg
|
||||
)
|
||||
{
|
||||
WLANDXE_ChannelCBType *channelCtrlBlk;
|
||||
WLANDXE_ChannelCBType *testCHCtrlBlk;
|
||||
wpt_uint32 regValue;
|
||||
wpt_uint32 chStatusReg, chControlReg, chDescReg, chLDescReg;
|
||||
wpt_uint32 hwWakeLoop, chLoop;
|
||||
wpt_status status = eWLAN_PAL_STATUS_SUCCESS;
|
||||
|
||||
if(NULL == healthMonitorMsg)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* First of all kick TX channel
|
||||
* This will fix if there is any problem with SMSM state */
|
||||
dxeNotifySmsm(eWLAN_PAL_FALSE, eWLAN_PAL_TRUE);
|
||||
dxeNotifySmsm(eWLAN_PAL_TRUE, eWLAN_PAL_FALSE);
|
||||
|
||||
/* Wait till RIVA up */
|
||||
for(hwWakeLoop = 0; hwWakeLoop < T_WLANDXE_MAX_HW_ACCESS_WAIT; hwWakeLoop++)
|
||||
{
|
||||
wpalReadRegister(WLANDXE_BMU_AVAILABLE_BD_PDU, ®Value);
|
||||
if(0 != regValue)
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"num free BD/PDU %d, loop Count %d",
|
||||
regValue, hwWakeLoop, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"Scheduled TX, num free BD/PDU %d, loop Count %d",
|
||||
regValue, hwWakeLoop, 0);
|
||||
|
||||
for(chLoop = 0; chLoop < WDTS_CHANNEL_RX_LOW_PRI; chLoop++)
|
||||
{
|
||||
testCHCtrlBlk = &tempDxeCtrlBlk->dxeChannel[chLoop];
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXECtrlRegAddr, &chControlReg);
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXEStatusRegAddr, &chStatusReg);
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXEDesclRegAddr, &chDescReg);
|
||||
wpalReadRegister(testCHCtrlBlk->channelRegister.chDXELstDesclRegAddr, &chLDescReg);
|
||||
|
||||
wpalTrace(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_INFO,
|
||||
"%11s : CCR 0x%x, CSR 0x%x, CDR 0x%x, CLDR 0x%x, HCBO %d, HCBDP 0x%x, HCBDC 0x%x, TCBO %d,TCBDP 0x%x, TCBDC 0x%x",
|
||||
channelType[chLoop],
|
||||
chControlReg, chStatusReg, chDescReg, chLDescReg,
|
||||
testCHCtrlBlk->headCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDesc->descCtrl.ctrl,
|
||||
testCHCtrlBlk->tailCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDesc->descCtrl.ctrl);
|
||||
|
||||
if((chControlReg & WLANDXE_DESC_CTRL_VALID) &&
|
||||
(chLDescReg != testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr))
|
||||
{
|
||||
wpalTrace(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : CCR 0x%x, CSR 0x%x, CDR 0x%x, CLDR 0x%x, "
|
||||
"HCBO %d, HCBDP 0x%x, HCBDC 0x%x, TCBO %d,TCBDP 0x%x, TCBDC 0x%x",
|
||||
channelType[chLoop],
|
||||
chControlReg, chStatusReg, chDescReg, chLDescReg,
|
||||
testCHCtrlBlk->headCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDesc->descCtrl.ctrl,
|
||||
testCHCtrlBlk->tailCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDesc->descCtrl.ctrl);
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : TX CH EN Descriptor Async, resync it", channelType[chLoop], 0, 0);
|
||||
wpalWriteRegister(testCHCtrlBlk->channelRegister.chDXELstDesclRegAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr);
|
||||
}
|
||||
else if(!(chControlReg & WLANDXE_DESC_CTRL_VALID) &&
|
||||
(chDescReg != testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr))
|
||||
{
|
||||
wpalTrace(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : CCR 0x%x, CSR 0x%x, CDR 0x%x, CLDR 0x%x, "
|
||||
"HCBO %d, HCBDP 0x%x, HCBDC 0x%x, TCBO %d,TCBDP 0x%x, TCBDC 0x%x",
|
||||
channelType[chLoop],
|
||||
chControlReg, chStatusReg, chDescReg, chLDescReg,
|
||||
testCHCtrlBlk->headCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->headCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->headCtrlBlk->linkedDesc->descCtrl.ctrl,
|
||||
testCHCtrlBlk->tailCtrlBlk->ctrlBlkOrder, testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDesc->descCtrl.ctrl);
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : TX CH DIS Descriptor Async, resync it", channelType[chLoop], 0, 0);
|
||||
wpalWriteRegister(testCHCtrlBlk->channelRegister.chDXEDesclRegAddr,
|
||||
testCHCtrlBlk->tailCtrlBlk->linkedDescPhyAddr);
|
||||
}
|
||||
}
|
||||
|
||||
/* TX channel test done, test RX channels */
|
||||
channelCtrlBlk = (WLANDXE_ChannelCBType *)healthMonitorMsg->pContext;
|
||||
channelCtrlBlk->healthMonitorMsg->callback = dxeRXHealthMonitor;
|
||||
status = wpalPostRxMsg(WDI_GET_PAL_CTX(),
|
||||
channelCtrlBlk->healthMonitorMsg);
|
||||
if (eWLAN_PAL_STATUS_SUCCESS != status)
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_ERROR,
|
||||
"TX Low resource Kick DXE MSG Serialize fail",
|
||||
status, 0, 0);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*==========================================================================
|
||||
@ Function Name
|
||||
dxeHealthMonitorTimeout
|
||||
|
||||
@ Description
|
||||
Health Monitor timer started when TX channel low resource condition
|
||||
And if reciovered from low resource condition, timer would not fired
|
||||
Timer fired means during certain time, TX CH could not be recovered
|
||||
|
||||
@ Parameters
|
||||
channelCtxt Low resource condition happen Channel context
|
||||
|
||||
@ Return
|
||||
NONE
|
||||
|
||||
===========================================================================*/
|
||||
void dxeHealthMonitorTimeout
|
||||
(
|
||||
void *channelCtxt
|
||||
)
|
||||
{
|
||||
WLANDXE_ChannelCBType *channelCtrlBlk;
|
||||
wpt_status status = eWLAN_PAL_STATUS_SUCCESS;
|
||||
|
||||
if(NULL == channelCtxt)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Timeout Fired, DXE TX should kick on TX thread
|
||||
* Serailize to TX Thread */
|
||||
channelCtrlBlk = (WLANDXE_ChannelCBType *)channelCtxt;
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_INFO,
|
||||
"%11s : Health Monitor timer expired",
|
||||
channelType[channelCtrlBlk->channelType], 0, 0);
|
||||
|
||||
channelCtrlBlk->healthMonitorMsg->callback = dxeTXHealthMonitor;
|
||||
status = wpalPostTxMsg(WDI_GET_PAL_CTX(),
|
||||
channelCtrlBlk->healthMonitorMsg);
|
||||
if (eWLAN_PAL_STATUS_SUCCESS != status)
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_ERROR,
|
||||
"TX Low resource Kick DXE MSG Serialize fail",
|
||||
status, 0, 0);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/*==========================================================================
|
||||
@ Function Name
|
||||
dxeCtrlBlkAlloc
|
||||
|
@ -3006,6 +3304,7 @@ static wpt_status dxeTXCompFrame
|
|||
channelEntry->channelType,
|
||||
eWLAN_PAL_TRUE);
|
||||
channelEntry->hitLowResource = eWLAN_PAL_FALSE;
|
||||
wpalTimerStop(&channelEntry->healthMonitorTimer);
|
||||
}
|
||||
|
||||
wpalMutexRelease(&channelEntry->dxeChannelLock);
|
||||
|
@ -3713,6 +4012,29 @@ void *WLANDXE_Open
|
|||
return NULL;
|
||||
}
|
||||
|
||||
status = wpalTimerInit(¤tChannel->healthMonitorTimer,
|
||||
dxeHealthMonitorTimeout,
|
||||
(void *)currentChannel);
|
||||
if(eWLAN_PAL_STATUS_SUCCESS != status)
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"WLANDXE_Open Health Monitor timer init fail %d", idx);
|
||||
WLANDXE_Close(tempDxeCtrlBlk);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
currentChannel->healthMonitorMsg = (wpt_msg *)wpalMemoryAllocate(sizeof(wpt_msg));
|
||||
if(NULL == currentChannel->healthMonitorMsg)
|
||||
{
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"WLANDXE_Open Health Monitor MSG Alloc fail %d", idx);
|
||||
WLANDXE_Close(tempDxeCtrlBlk);
|
||||
return NULL;
|
||||
}
|
||||
wpalMemoryZero(currentChannel->healthMonitorMsg, sizeof(wpt_msg));
|
||||
currentChannel->healthMonitorMsg->callback = dxeTXHealthMonitor;
|
||||
currentChannel->healthMonitorMsg->pContext = (void *)currentChannel;
|
||||
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"WLANDXE_Open Channel %s Open Success", channelType[idx]);
|
||||
}
|
||||
|
@ -4105,6 +4427,15 @@ wpt_status WLANDXE_TxFrame
|
|||
channel,
|
||||
eWLAN_PAL_FALSE);
|
||||
currentChannel->hitLowResource = eWLAN_PAL_TRUE;
|
||||
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"%11s : Low Resource currentChannel->numRsvdDesc %d",
|
||||
channelType[currentChannel->channelType],
|
||||
currentChannel->numRsvdDesc);
|
||||
dxeNotifySmsm(eWLAN_PAL_FALSE, eWLAN_PAL_TRUE);
|
||||
dxeNotifySmsm(eWLAN_PAL_TRUE, eWLAN_PAL_FALSE);
|
||||
wpalTimerStart(¤tChannel->healthMonitorTimer,
|
||||
T_WLANDXE_PERIODIC_HEALTH_M_TIME);
|
||||
}
|
||||
wpalMutexRelease(¤tChannel->dxeChannelLock);
|
||||
|
||||
|
@ -4162,6 +4493,8 @@ WLANDXE_CompleteTX
|
|||
WDTS_CHANNEL_TX_LOW_PRI,
|
||||
eWLAN_PAL_FALSE);
|
||||
inLowRes = channelCb->hitLowResource = eWLAN_PAL_TRUE;
|
||||
wpalTimerStart(&channelCb->healthMonitorTimer,
|
||||
T_WLANDXE_PERIODIC_HEALTH_M_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4200,6 +4533,8 @@ WLANDXE_CompleteTX
|
|||
WDTS_CHANNEL_TX_LOW_PRI,
|
||||
eWLAN_PAL_FALSE);
|
||||
channelCb->hitLowResource = eWLAN_PAL_TRUE;
|
||||
wpalTimerStart(&channelCb->healthMonitorTimer,
|
||||
T_WLANDXE_PERIODIC_HEALTH_M_TIME);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4310,6 +4645,11 @@ wpt_status WLANDXE_Close
|
|||
for(idx = 0; idx < WDTS_CHANNEL_MAX; idx++)
|
||||
{
|
||||
wpalMutexDelete(&dxeCtxt->dxeChannel[idx].dxeChannelLock);
|
||||
wpalTimerDelete(&dxeCtxt->dxeChannel[idx].healthMonitorTimer);
|
||||
if(NULL != dxeCtxt->dxeChannel[idx].healthMonitorMsg)
|
||||
{
|
||||
wpalMemoryFree(dxeCtxt->dxeChannel[idx].healthMonitorMsg);
|
||||
}
|
||||
dxeChannelClose(dxeCtxt, &dxeCtxt->dxeChannel[idx]);
|
||||
#ifdef WLANDXE_TEST_CHANNEL_ENABLE
|
||||
channel = &dxeCtxt->dxeChannel[idx];
|
||||
|
@ -4778,8 +5118,12 @@ void WLANDXE_ChannelDebug
|
|||
/* Debug Type 2, toggling stall detect enable/disable */
|
||||
if(enableStallDetect)
|
||||
{
|
||||
/* Do nothing till not
|
||||
* This feature will take effect to data path, needed intensive test */
|
||||
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_WARN,
|
||||
"DXE TX Stall detect",
|
||||
0, 0, 0);
|
||||
/* Start Stall detect timer and detect stall */
|
||||
wpalTimerStart(&tempDxeCtrlBlk->dxeChannel[WDTS_CHANNEL_TX_LOW_PRI].healthMonitorTimer,
|
||||
T_WLANDXE_PERIODIC_HEALTH_M_TIME);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ when who what, where, why
|
|||
* -------------------------------------------------------------------------*/
|
||||
#include "wlan_qct_dxe.h"
|
||||
#include "wlan_qct_pal_trace.h"
|
||||
#include "wlan_qct_pal_timer.h"
|
||||
#include "vos_trace.h"
|
||||
/*----------------------------------------------------------------------------
|
||||
* Preprocessor Definitions and Constants
|
||||
|
@ -580,6 +581,8 @@ typedef struct
|
|||
WLANDXE_ChannelExConfigType extraConfig;
|
||||
WLANDXE_DMAChannelType assignedDMAChannel;
|
||||
wpt_uint64 rxDoneHistogram;
|
||||
wpt_timer healthMonitorTimer;
|
||||
wpt_msg *healthMonitorMsg;
|
||||
} WLANDXE_ChannelCBType;
|
||||
|
||||
typedef struct
|
||||
|
|
|
@ -1123,6 +1123,11 @@ typedef enum
|
|||
#define CFG_ENABLE_DFS_CHNL_SCAN_MAX ( 1 )
|
||||
#define CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT ( 1 )
|
||||
|
||||
#define CFG_ENABLE_IGNORE_CHAN165 "gIgnore_Chan165"
|
||||
#define CFG_ENABLE_IGNORE_CHAN165_MIN ( 0 )
|
||||
#define CFG_ENABLE_IGNORE_CHAN165_MAX ( 1 )
|
||||
#define CFG_ENABLE_IGNORE_CHAN165_DEFAULT ( 0 )
|
||||
|
||||
typedef enum
|
||||
{
|
||||
eHDD_LINK_SPEED_REPORT_ACTUAL = 0,
|
||||
|
@ -1626,6 +1631,7 @@ typedef struct
|
|||
v_BOOL_t enableFirstScan2GOnly;
|
||||
v_BOOL_t skipDfsChnlInP2pSearch;
|
||||
v_BOOL_t ignoreDynamicDtimInP2pMode;
|
||||
v_U8_t ignore_chan165;
|
||||
} hdd_config_t;
|
||||
/*---------------------------------------------------------------------------
|
||||
Function declarations and documenation
|
||||
|
|
|
@ -1621,6 +1621,13 @@ REG_VARIABLE( CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME, WLAN_PARAM_Integer,
|
|||
CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
|
||||
CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX ),
|
||||
|
||||
|
||||
REG_VARIABLE( CFG_ENABLE_IGNORE_CHAN165, WLAN_PARAM_Integer,
|
||||
hdd_config_t, ignore_chan165,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_ENABLE_IGNORE_CHAN165_DEFAULT,
|
||||
CFG_ENABLE_IGNORE_CHAN165_MIN,
|
||||
CFG_ENABLE_IGNORE_CHAN165_MAX ),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -1990,6 +1997,7 @@ static void print_hdd_cfg(hdd_context_t *pHddCtx)
|
|||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [enableFirstScan2GOnly] Value = [%u] ",pHddCtx->cfg_ini->enableFirstScan2GOnly);
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [skipDfsChnlInP2pSearch] Value = [%u] ",pHddCtx->cfg_ini->skipDfsChnlInP2pSearch);
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",pHddCtx->cfg_ini->ignoreDynamicDtimInP2pMode);
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIgnore_Chan165] Value = [%u] ",pHddCtx->cfg_ini->ignore_chan165);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3074,6 +3082,7 @@ VOS_STATUS hdd_set_sme_config( hdd_context_t *pHddCtx )
|
|||
smeConfig.csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
|
||||
smeConfig.csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
|
||||
smeConfig.csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
|
||||
smeConfig.csrConfig.fIgnore_chan165 = pConfig->ignore_chan165;
|
||||
smeConfig.csrConfig.fFirstScanOnly2GChnl = pConfig->enableFirstScan2GOnly;
|
||||
|
||||
//FIXME 11d config is hardcoded
|
||||
|
|
|
@ -656,6 +656,9 @@ void hdd_tx_timeout(struct net_device *dev)
|
|||
//disabled either because of disassociation or low resource scenarios. In
|
||||
//case of disassociation it is ok to ignore this. But if associated, we have
|
||||
//do possible recovery here
|
||||
|
||||
//testing underlying data path stall
|
||||
sme_transportDebug(0, 1);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -39,8 +39,8 @@ BRIEF DESCRIPTION:
|
|||
#define QWLAN_VERSION_MAJOR 3
|
||||
#define QWLAN_VERSION_MINOR 2
|
||||
#define QWLAN_VERSION_PATCH 1
|
||||
#define QWLAN_VERSION_EXTRA "f"
|
||||
#define QWLAN_VERSION_EXTRA "g"
|
||||
#define QWLAN_VERSION_BUILD 11
|
||||
#define QWLAN_VERSIONSTR "3.2.1.11f"
|
||||
#define QWLAN_VERSIONSTR "3.2.1.11g"
|
||||
|
||||
#endif /* QWLAN_VERSION_H */
|
||||
|
|
|
@ -1008,6 +1008,8 @@ typedef struct tagCsrConfigParam
|
|||
*/
|
||||
tANI_BOOLEAN fFirstScanOnly2GChnl;
|
||||
|
||||
tANI_BOOLEAN fIgnore_chan165;
|
||||
|
||||
}tCsrConfigParam;
|
||||
|
||||
//Tush
|
||||
|
|
|
@ -689,6 +689,8 @@ typedef struct tagCsrScanStruct
|
|||
tDblLinkList scanCmdPendingList;
|
||||
#endif
|
||||
tCsrChannel occupiedChannels; //This includes all channels on which candidate APs are found
|
||||
|
||||
tANI_BOOLEAN fIgnore_chan165;
|
||||
}tCsrScanStruct;
|
||||
|
||||
|
||||
|
|
|
@ -327,7 +327,7 @@ eHalStatus csrOpen(tpAniSirGlobal pMac)
|
|||
pMac->scan.countryCodeDefault[1] = 'S';
|
||||
pMac->scan.countryCodeDefault[2] = 'I';
|
||||
//status = eHAL_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
smsLog( pMac, LOGE, FL(" country Code from nvRam %s\n"), pMac->scan.countryCodeDefault );
|
||||
csrGetRegulatoryDomainForCountry(pMac, pMac->scan.countryCodeDefault, ®Id);
|
||||
WDA_SetRegDomain(pMac, regId);
|
||||
|
@ -1280,6 +1280,7 @@ eHalStatus csrChangeDefaultConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pPa
|
|||
#ifdef WLAN_FEATURE_11AC
|
||||
pMac->roam.configParam.nVhtChannelWidth = pParam->nVhtChannelWidth;
|
||||
#endif
|
||||
pMac->scan.fIgnore_chan165 = pParam->fIgnore_chan165;
|
||||
}
|
||||
|
||||
return status;
|
||||
|
@ -1338,6 +1339,7 @@ eHalStatus csrGetConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||
pParam->fValidateList = pMac->roam.configParam.fValidateList;
|
||||
pParam->fEnableBypass11d = pMac->scan.fEnableBypass11d;
|
||||
pParam->fEnableDFSChnlScan = pMac->scan.fEnableDFSChnlScan;
|
||||
pParam->fIgnore_chan165= pMac->scan.fIgnore_chan165;
|
||||
pParam->fScanTwice = pMac->roam.configParam.fScanTwice;
|
||||
pParam->fFirstScanOnly2GChnl = pMac->scan.fFirstScanOnly2GChnl;
|
||||
|
||||
|
|
|
@ -2849,29 +2849,35 @@ void csrApplyChannelPowerCountryInfo( tpAniSirGlobal pMac, tCsrChannel *pChannel
|
|||
tempNumChannels = CSR_MIN(pChannelList->numChannels, WNI_CFG_VALID_CHANNEL_LIST_LEN);
|
||||
/* If user doesn't want to scan the DFS channels lets trim them from
|
||||
the valid channel list*/
|
||||
if(FALSE == pMac->scan.fEnableDFSChnlScan)
|
||||
for(i = 0; i< tempNumChannels; i++)
|
||||
{
|
||||
for(i = 0; i< tempNumChannels; i++)
|
||||
{
|
||||
if(FALSE == pMac->scan.fEnableDFSChnlScan)
|
||||
{
|
||||
channelEnabledType =
|
||||
vos_nv_getChannelEnabledState(pChannelList->channelList[i]);
|
||||
if( NV_CHANNEL_ENABLE == channelEnabledType)
|
||||
}
|
||||
else
|
||||
{
|
||||
channelEnabledType = NV_CHANNEL_ENABLE;
|
||||
}
|
||||
if( NV_CHANNEL_ENABLE == channelEnabledType)
|
||||
{
|
||||
// Ignore the channel 165 for the country INDONESIA
|
||||
if ( vos_mem_compare(countryCode, "ID", VOS_COUNTRY_CODE_LEN )
|
||||
&& ( pChannelList->channelList[i] == 165 )
|
||||
&& ( pMac->scan.fIgnore_chan165 == VOS_TRUE ))
|
||||
{
|
||||
ChannelList.channelList[numChannels] =
|
||||
pChannelList->channelList[i];
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
ChannelList.channelList[numChannels] = pChannelList->channelList[i];
|
||||
numChannels++;
|
||||
}
|
||||
}
|
||||
ChannelList.numChannels = numChannels;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ChannelList.numChannels = tempNumChannels;
|
||||
vos_mem_copy(ChannelList.channelList,
|
||||
pChannelList->channelList,
|
||||
ChannelList.numChannels);
|
||||
}
|
||||
|
||||
ChannelList.numChannels = numChannels;
|
||||
|
||||
csrSetCfgValidChannelList(pMac, ChannelList.channelList, ChannelList.numChannels);
|
||||
// extend scan capability
|
||||
csrSetCfgScanControlList(pMac, countryCode, &ChannelList); // build a scan list based on the channel list : channel# + active/passive scan
|
||||
|
|
|
@ -87,260 +87,260 @@ static CountryInfoTable_t countryInfoTable =
|
|||
{
|
||||
254,
|
||||
{
|
||||
{ REGDOMAIN_FCC, {'U', 'S'}}, // USA - must be the first country code
|
||||
{ REGDOMAIN_WORLD, {'A', 'D'}}, //ANDORRA
|
||||
{ REGDOMAIN_WORLD,{'A', 'E'}}, //UAE
|
||||
{ REGDOMAIN_WORLD, {'A', 'F'}}, //AFGHANISTAN
|
||||
{ REGDOMAIN_NO_5GHZ, {'A', 'G'}}, //ANTIGUA AND BARBUDA
|
||||
{ REGDOMAIN_NO_5GHZ, {'A', 'I'}}, //ANGUILLA
|
||||
{ REGDOMAIN_WORLD, {'A', 'L'}}, //ALBANIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'A', 'M'}}, //ARMENIA
|
||||
{ REGDOMAIN_WORLD, { 'A', 'N'}}, //NETHERLANDS ANTILLES
|
||||
{ REGDOMAIN_NO_5GHZ, { 'A', 'O'}}, //ANGOLA
|
||||
{ REGDOMAIN_WORLD, { 'A', 'Q'}}, //ANTARCTICA
|
||||
{ REGDOMAIN_HI_5GHZ,{ 'A', 'R'}}, //ARGENTINA
|
||||
{ REGDOMAIN_FCC, { 'A', 'S'}}, //AMERICAN SOMOA
|
||||
{ REGDOMAIN_ETSI, { 'A', 'T'}}, //AUSTRIA
|
||||
{ REGDOMAIN_APAC, { 'A', 'U'}}, //AUSTRALIA
|
||||
{ REGDOMAIN_NO_5GHZ, { 'A', 'W'}}, //ARUBA
|
||||
{ REGDOMAIN_WORLD, { 'A', 'X'}}, //ALAND ISLANDS
|
||||
{ REGDOMAIN_NO_5GHZ, { 'A', 'Z'}}, //AZERBAIJAN
|
||||
{ REGDOMAIN_WORLD, { 'B', 'A'}}, //BOSNIA AND HERZEGOVINA
|
||||
{ REGDOMAIN_WORLD, { 'B', 'B'}}, //BARBADOS
|
||||
{ REGDOMAIN_WORLD, { 'B', 'D'}}, //BANGLADESH
|
||||
{ REGDOMAIN_ETSI, {'B', 'E'}}, //BELGIUM
|
||||
{ REGDOMAIN_WORLD, { 'B', 'F'}}, //BURKINA FASO
|
||||
{ REGDOMAIN_HI_5GHZ, {'B', 'G'}}, //BULGARIA
|
||||
{ REGDOMAIN_WORLD, { 'B', 'H'}}, //BAHRAIN
|
||||
{ REGDOMAIN_WORLD, { 'B', 'I'}}, //BURUNDI
|
||||
{ REGDOMAIN_WORLD, { 'B', 'J'}}, //BENIN
|
||||
{ REGDOMAIN_ETSI, { 'B', 'M'}}, //BERMUDA
|
||||
{ REGDOMAIN_WORLD, { 'B', 'N'}}, //BRUNEI DARUSSALAM
|
||||
{ REGDOMAIN_WORLD,{ 'B', 'O'}}, //BOLIVIA
|
||||
{ REGDOMAIN_WORLD, {'B', 'R'}}, //BRAZIL
|
||||
{ REGDOMAIN_WORLD, { 'B', 'S'}}, //BAHAMAS
|
||||
{ REGDOMAIN_WORLD, { 'B', 'T'}}, //BHUTAN
|
||||
{ REGDOMAIN_WORLD, { 'B', 'V'}}, //BOUVET ISLAND
|
||||
{ REGDOMAIN_WORLD, { 'B', 'W'}}, //BOTSWANA
|
||||
{ REGDOMAIN_WORLD, { 'B', 'Y'}}, //BELARUS
|
||||
{ REGDOMAIN_WORLD, { 'B', 'Z'}}, //BELIZE
|
||||
{ REGDOMAIN_FCC, {'C', 'A'}}, //CANADA
|
||||
{ REGDOMAIN_WORLD, { 'C', 'C'}}, //COCOS (KEELING) ISLANDS
|
||||
{ REGDOMAIN_WORLD, { 'C', 'D'}}, //CONGO, THE DEMOCRATIC REPUBLIC OF THE
|
||||
{ REGDOMAIN_WORLD, { 'C', 'F'}}, //CENTRAL AFRICAN REPUBLIC
|
||||
{ REGDOMAIN_WORLD, { 'C', 'G'}}, //CONGO
|
||||
{ REGDOMAIN_ETSI, {'C', 'H'}}, //SWITZERLAND
|
||||
{ REGDOMAIN_WORLD, { 'C', 'I'}}, //COTE D'IVOIRE
|
||||
{ REGDOMAIN_WORLD, { 'C', 'K'}}, //COOK ISLANDS
|
||||
{ REGDOMAIN_WORLD, {'C', 'L'}}, //CHILE
|
||||
{ REGDOMAIN_WORLD, { 'C', 'M'}}, //CAMEROON
|
||||
{ REGDOMAIN_HI_5GHZ, {'C', 'N'}}, //CHINA
|
||||
{ REGDOMAIN_WORLD, {'C', 'O'}}, //COLOMBIA
|
||||
{ REGDOMAIN_WORLD, {'C', 'R'}}, //COSTA RICA
|
||||
{ REGDOMAIN_WORLD, { 'C', 'U'}}, //CUBA
|
||||
{ REGDOMAIN_WORLD, { 'C', 'V'}}, //CAPE VERDE
|
||||
{ REGDOMAIN_WORLD, { 'C', 'X'}}, //CHRISTMAS ISLAND
|
||||
{ REGDOMAIN_WORLD, {'C', 'Y'}}, //CYPRUS
|
||||
{ REGDOMAIN_HI_5GHZ, {'C', 'Z'}}, //CZECH REPUBLIC
|
||||
{ REGDOMAIN_ETSI, {'D', 'E'}}, //GERMANY
|
||||
{ REGDOMAIN_WORLD, { 'D', 'J'}}, //DJIBOUTI
|
||||
{ REGDOMAIN_ETSI, {'D', 'K'}}, //DENMARK
|
||||
{ REGDOMAIN_WORLD, { 'D', 'M'}}, //DOMINICA
|
||||
{ REGDOMAIN_NO_5GHZ,{ 'D', 'O'}}, //DOMINICAN REPUBLIC
|
||||
{ REGDOMAIN_WORLD, { 'D', 'Z'}}, //ALGERIA
|
||||
{ REGDOMAIN_WORLD,{ 'E', 'C'}}, //ECUADOR
|
||||
{ REGDOMAIN_HI_5GHZ, {'E', 'E'}}, //ESTONIA
|
||||
{ REGDOMAIN_WORLD, { 'E', 'G'}}, //EGYPT
|
||||
{ REGDOMAIN_WORLD, { 'E', 'H'}}, //WESTERN SAHARA
|
||||
{ REGDOMAIN_WORLD, { 'E', 'R'}}, //ERITREA
|
||||
{ REGDOMAIN_ETSI, {'E', 'S'}}, //SPAIN
|
||||
{ REGDOMAIN_WORLD, { 'E', 'T'}}, //ETHIOPIA
|
||||
{ REGDOMAIN_WORLD, {'F', 'I'}}, //FINLAND
|
||||
{ REGDOMAIN_WORLD, { 'F', 'J'}}, //FIJI
|
||||
{ REGDOMAIN_WORLD, { 'F', 'K'}}, //FALKLAND ISLANDS (MALVINAS)
|
||||
{ REGDOMAIN_WORLD, { 'F', 'M'}}, //MICRONESIA, FEDERATED STATES OF
|
||||
{ REGDOMAIN_WORLD, { 'F', 'O'}}, //FAROE ISLANDS
|
||||
{ REGDOMAIN_ETSI, {'F', 'R'}}, //FRANCE
|
||||
{ REGDOMAIN_WORLD, { 'G', 'A'}}, //GABON
|
||||
{ REGDOMAIN_ETSI, {'G', 'B'}}, //UNITED KINGDOM
|
||||
{ REGDOMAIN_WORLD, { 'G', 'D'}}, //GRENADA
|
||||
{ REGDOMAIN_HI_5GHZ, { 'G', 'E'}}, //GEORGIA
|
||||
{ REGDOMAIN_WORLD, { 'G', 'F'}}, //FRENCH GUIANA
|
||||
{ REGDOMAIN_ETSI, {'G', 'G'}}, //GUERNSEY
|
||||
{ REGDOMAIN_WORLD, { 'G', 'H'}}, //GHANA
|
||||
{ REGDOMAIN_WORLD, {'G', 'I'}}, //GIBRALTAR
|
||||
{ REGDOMAIN_WORLD, { 'G', 'L'}}, //GREENLAND
|
||||
{ REGDOMAIN_WORLD, { 'G', 'M'}}, //GAMBIA
|
||||
{ REGDOMAIN_WORLD, { 'G', 'N'}}, //GUINEA
|
||||
{ REGDOMAIN_WORLD, { 'G', 'P'}}, //GUADELOUPE
|
||||
{ REGDOMAIN_WORLD, { 'G', 'Q'}}, //EQUATORIAL GUINEA
|
||||
{ REGDOMAIN_ETSI, {'G', 'R'}}, //GREECE
|
||||
{ REGDOMAIN_WORLD, { 'G', 'S'}}, //SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS
|
||||
{ REGDOMAIN_WORLD,{ 'G', 'T'}}, //GUATEMALA
|
||||
{ REGDOMAIN_WORLD, { 'G', 'U'}}, //GUAM
|
||||
{ REGDOMAIN_WORLD, { 'G', 'W'}}, //GUINEA-BISSAU
|
||||
{ REGDOMAIN_WORLD, { 'G', 'Y'}}, //GUYANA
|
||||
{ REGDOMAIN_WORLD, {'H', 'K'}}, //HONGKONG
|
||||
{ REGDOMAIN_WORLD, { 'H', 'M'}}, //HEARD ISLAND AND MCDONALD ISLANDS
|
||||
{ REGDOMAIN_WORLD,{'H', 'N'}}, //HONDURAS
|
||||
{ REGDOMAIN_HI_5GHZ, {'H', 'R'}}, //CROATIA
|
||||
{ REGDOMAIN_WORLD, { 'H', 'T'}}, //HAITI
|
||||
{ REGDOMAIN_HI_5GHZ, {'H', 'U'}}, //HUNGARY
|
||||
{ REGDOMAIN_APAC, { 'I', 'D'}}, //INDONESIA
|
||||
{ REGDOMAIN_ETSI, {'I', 'E'}}, //IRELAND
|
||||
{ REGDOMAIN_WORLD, {'I', 'L'}}, //ISREAL
|
||||
{ REGDOMAIN_ETSI, {'I', 'M'}}, //ISLE OF MAN
|
||||
{ REGDOMAIN_APAC, {'I', 'N'}}, //INDIA
|
||||
{ REGDOMAIN_ETSI, { 'I', 'O'}}, //BRITISH INDIAN OCEAN TERRITORY
|
||||
{ REGDOMAIN_WORLD, { 'I', 'Q'}}, //IRAQ
|
||||
{ REGDOMAIN_WORLD, { 'I', 'R'}}, //IRAN, ISLAMIC REPUBLIC OF
|
||||
{ REGDOMAIN_WORLD, {'I', 'S'}}, //ICELAND
|
||||
{ REGDOMAIN_ETSI, {'I', 'T'}}, //ITALY
|
||||
{ REGDOMAIN_ETSI, {'J', 'E'}}, //JERSEY
|
||||
{ REGDOMAIN_WORLD, { 'J', 'M'}}, //JAMAICA
|
||||
{ REGDOMAIN_WORLD, { 'J', 'O'}}, //JORDAN
|
||||
{ REGDOMAIN_JAPAN, {'J', 'P'}}, //JAPAN
|
||||
{ REGDOMAIN_WORLD, { 'K', 'E'}}, //KENYA
|
||||
{ REGDOMAIN_WORLD, { 'K', 'G'}}, //KYRGYZSTAN
|
||||
{ REGDOMAIN_WORLD, { 'K', 'H'}}, //CAMBODIA
|
||||
{ REGDOMAIN_WORLD, { 'K', 'I'}}, //KIRIBATI
|
||||
{ REGDOMAIN_WORLD, { 'K', 'M'}}, //COMOROS
|
||||
{ REGDOMAIN_WORLD, { 'K', 'N'}}, //SAINT KITTS AND NEVIS
|
||||
{ REGDOMAIN_KOREA, { 'K', 'P'}}, //KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF
|
||||
{ REGDOMAIN_KOREA, {'K', 'R'}}, //KOREA, REPUBLIC OF
|
||||
{ REGDOMAIN_WORLD, { 'K', 'W'}}, //KUWAIT
|
||||
{ REGDOMAIN_WORLD, { 'K', 'Y'}}, //CAYMAN ISLANDS
|
||||
{ REGDOMAIN_WORLD, { 'K', 'Z'}}, //KAZAKHSTAN
|
||||
{ REGDOMAIN_WORLD, { 'L', 'A'}}, //LAO PEOPLE'S DEMOCRATIC REPUBLIC
|
||||
{ REGDOMAIN_WORLD, { 'L', 'B'}}, //LEBANON
|
||||
{ REGDOMAIN_WORLD, { 'L', 'C'}}, //SAINT LUCIA
|
||||
{ REGDOMAIN_ETSI, {'L', 'I'}}, //LIECHTENSTEIN
|
||||
{ REGDOMAIN_WORLD, { 'L', 'K'}}, //SRI LANKA
|
||||
{ REGDOMAIN_WORLD, { 'L', 'R'}}, //LIBERIA
|
||||
{ REGDOMAIN_WORLD, { 'L', 'S'}}, //LESOTHO
|
||||
{ REGDOMAIN_HI_5GHZ, {'L', 'T'}}, //LITHUANIA
|
||||
{ REGDOMAIN_ETSI, {'L', 'U'}}, //LUXEMBOURG
|
||||
{ REGDOMAIN_HI_5GHZ, {'L', 'V'}}, //LATVIA
|
||||
{ REGDOMAIN_WORLD, { 'L', 'Y'}}, //LIBYAN ARAB JAMAHIRIYA
|
||||
{ REGDOMAIN_WORLD, { 'M', 'A'}}, //MOROCCO
|
||||
{ REGDOMAIN_ETSI, {'M', 'C'}}, //MONACO
|
||||
{ REGDOMAIN_WORLD, { 'M', 'D'}}, //MOLDOVA, REPUBLIC OF
|
||||
{ REGDOMAIN_WORLD, { 'M', 'E'}}, //MONTENEGRO
|
||||
{ REGDOMAIN_WORLD, { 'M', 'G'}}, //MADAGASCAR
|
||||
{ REGDOMAIN_WORLD, { 'M', 'H'}}, //MARSHALL ISLANDS
|
||||
{ REGDOMAIN_WORLD, { 'M', 'K'}}, //MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
|
||||
{ REGDOMAIN_WORLD, { 'M', 'L'}}, //MALI
|
||||
{ REGDOMAIN_WORLD, { 'M', 'M'}}, //MYANMAR
|
||||
{ REGDOMAIN_HI_5GHZ, { 'M', 'N'}}, //MONGOLIA
|
||||
{ REGDOMAIN_WORLD, { 'M', 'O'}}, //MACAO
|
||||
{ REGDOMAIN_WORLD, { 'M', 'P'}}, //NORTHERN MARIANA ISLANDS
|
||||
{ REGDOMAIN_WORLD, { 'M', 'Q'}}, //MARTINIQUE
|
||||
{ REGDOMAIN_WORLD, { 'M', 'R'}}, //MAURITANIA
|
||||
{ REGDOMAIN_WORLD, { 'M', 'S'}}, //MONTSERRAT
|
||||
{ REGDOMAIN_WORLD, {'M', 'T'}}, //MALTA
|
||||
{ REGDOMAIN_WORLD, { 'M', 'U'}}, //MAURITIUS
|
||||
{ REGDOMAIN_WORLD, { 'M', 'V'}}, //MALDIVES
|
||||
{ REGDOMAIN_WORLD, { 'M', 'W'}}, //MALAWI
|
||||
{ REGDOMAIN_WORLD, {'M', 'X'}}, //MEXICO
|
||||
{ REGDOMAIN_HI_5GHZ,{ 'M', 'Y'}}, //MALAYSIA
|
||||
{ REGDOMAIN_WORLD, { 'M', 'Z'}}, //MOZAMBIQUE
|
||||
{ REGDOMAIN_WORLD, { 'N', 'A'}}, //NAMIBIA
|
||||
{ REGDOMAIN_WORLD, { 'N', 'C'}}, //NEW CALEDONIA
|
||||
{ REGDOMAIN_WORLD, { 'N', 'E'}}, //NIGER
|
||||
{ REGDOMAIN_WORLD, { 'N', 'F'}}, //NORFOLD ISLAND
|
||||
{ REGDOMAIN_WORLD, { 'N', 'G'}}, //NIGERIA
|
||||
{ REGDOMAIN_WORLD,{ 'N', 'I'}}, //NICARAGUA
|
||||
{ REGDOMAIN_ETSI, {'N', 'L'}}, //NETHERLANDS
|
||||
{ REGDOMAIN_WORLD, {'N', 'O'}}, //NORWAY
|
||||
{ REGDOMAIN_WORLD, { 'N', 'P'}}, //NEPAL
|
||||
{ REGDOMAIN_WORLD, { 'N', 'R'}}, //NAURU
|
||||
{ REGDOMAIN_WORLD, { 'N', 'U'}}, //NIUE
|
||||
{ REGDOMAIN_ETSI, {'N', 'Z'}}, //NEW ZEALAND
|
||||
{ REGDOMAIN_WORLD, { 'O', 'M'}}, //OMAN
|
||||
{ REGDOMAIN_WORLD, {'P', 'A'}}, //PANAMA
|
||||
{ REGDOMAIN_WORLD,{ 'P', 'E'}}, //PERU
|
||||
{ REGDOMAIN_WORLD, { 'P', 'F'}}, //FRENCH POLYNESIA
|
||||
{ REGDOMAIN_WORLD, { 'P', 'G'}}, //PAPUA NEW GUINEA
|
||||
{ REGDOMAIN_WORLD, {'P', 'H'}}, //PHILIPPINES
|
||||
{ REGDOMAIN_WORLD, { 'P', 'K'}}, //PAKISTAN
|
||||
{ REGDOMAIN_ETSI, {'P', 'L'}}, //POLAND
|
||||
{ REGDOMAIN_WORLD, { 'P', 'M'}}, //SAINT PIERRE AND MIQUELON
|
||||
{ REGDOMAIN_WORLD, { 'P', 'N'}}, //WORLDPITCAIRN
|
||||
{ REGDOMAIN_FCC, {'P', 'R'}}, //PUERTO RICO
|
||||
{ REGDOMAIN_WORLD, {'P', 'S'}}, //PALESTINIAN TERRITORY, OCCUPIED
|
||||
{ REGDOMAIN_ETSI, {'P', 'T'}}, //PORTUGAL
|
||||
{ REGDOMAIN_WORLD, { 'P', 'W'}}, //PALAU
|
||||
{ REGDOMAIN_WORLD, { 'P', 'Y'}}, //PARAGUAY
|
||||
{ REGDOMAIN_WORLD, { 'Q', 'A'}}, //QATAR
|
||||
{ REGDOMAIN_WORLD, { 'R', 'E'}}, //REUNION
|
||||
{ REGDOMAIN_HI_5GHZ, {'R', 'O'}}, //ROMANIA
|
||||
{ REGDOMAIN_HI_5GHZ, {'R', 'S'}}, //SERBIA
|
||||
{ REGDOMAIN_WORLD, {'R', 'U'}}, //RUSSIA
|
||||
{ REGDOMAIN_WORLD, { 'R', 'W'}}, //RWANDA
|
||||
{ REGDOMAIN_WORLD, {'S', 'A'}}, //SAUDI ARABIA
|
||||
{ REGDOMAIN_WORLD, { 'S', 'B'}}, //SOLOMON ISLANDS
|
||||
{ REGDOMAIN_ETSI, {'S', 'C'}}, //SEYCHELLES
|
||||
{ REGDOMAIN_WORLD, { 'S', 'D'}}, //SUDAN
|
||||
{ REGDOMAIN_ETSI, {'S', 'E'}}, //SWEDEN
|
||||
{ REGDOMAIN_APAC, {'S', 'G'}}, //SINGAPORE
|
||||
{ REGDOMAIN_WORLD, { 'S', 'H'}}, //SAINT HELENA
|
||||
{ REGDOMAIN_HI_5GHZ, {'S', 'I'}}, //SLOVENNIA
|
||||
{ REGDOMAIN_WORLD, { 'S', 'J'}}, //SVALBARD AND JAN MAYEN
|
||||
{ REGDOMAIN_ETSI, {'S', 'K'}}, //SLOVAKIA
|
||||
{ REGDOMAIN_WORLD, { 'S', 'L'}}, //SIERRA LEONE
|
||||
{ REGDOMAIN_WORLD, { 'S', 'M'}}, //SAN MARINO
|
||||
{ REGDOMAIN_WORLD, { 'S', 'N'}}, //SENEGAL
|
||||
{ REGDOMAIN_WORLD, { 'S', 'O'}}, //SOMALIA
|
||||
{ REGDOMAIN_WORLD, { 'S', 'R'}}, //SURINAME
|
||||
{ REGDOMAIN_WORLD, { 'S', 'T'}}, //SAO TOME AND PRINCIPE
|
||||
{ REGDOMAIN_WORLD, {'S', 'V'}}, //EL SALVADOR
|
||||
{ REGDOMAIN_WORLD, { 'S', 'Y'}}, //SYRIAN ARAB REPUBLIC
|
||||
{ REGDOMAIN_WORLD, { 'S', 'Z'}}, //SWAZILAND
|
||||
{ REGDOMAIN_WORLD, { 'T', 'C'}}, //TURKS AND CAICOS ISLANDS
|
||||
{ REGDOMAIN_WORLD, { 'T', 'D'}}, //CHAD
|
||||
{ REGDOMAIN_WORLD, { 'T', 'F'}}, //FRENCH SOUTHERN TERRITORIES
|
||||
{ REGDOMAIN_WORLD, { 'T', 'G'}}, //TOGO
|
||||
{ REGDOMAIN_WORLD,{ 'T', 'H'}}, //THAILAND
|
||||
{ REGDOMAIN_WORLD, { 'T', 'J'}}, //TAJIKISTAN
|
||||
{ REGDOMAIN_WORLD, { 'T', 'K'}}, //TOKELAU
|
||||
{ REGDOMAIN_WORLD, { 'T', 'L'}}, //TIMOR-LESTE
|
||||
{ REGDOMAIN_WORLD, { 'T', 'M'}}, //TURKMENISTAN
|
||||
{ REGDOMAIN_WORLD, { 'T', 'N'}}, //TUNISIA
|
||||
{ REGDOMAIN_WORLD, { 'T', 'O'}}, //TONGA
|
||||
{ REGDOMAIN_WORLD, {'T', 'R'}}, //TURKEY
|
||||
{ REGDOMAIN_WORLD, { 'T', 'T'}}, //TRINIDAD AND TOBAGO
|
||||
{ REGDOMAIN_WORLD, { 'T', 'V'}}, //TUVALU
|
||||
{ REGDOMAIN_HI_5GHZ,{ 'T', 'W'}}, //TAIWAN, PROVINCE OF CHINA
|
||||
{ REGDOMAIN_WORLD, { 'T', 'Z'}}, //TANZANIA, UNITED REPUBLIC OF
|
||||
{ REGDOMAIN_HI_5GHZ,{ 'U', 'A'}}, //UKRAINE
|
||||
{ REGDOMAIN_WORLD, { 'U', 'G'}}, //UGANDA
|
||||
{ REGDOMAIN_FCC, {'U', 'M'}}, //UNITED STATES MINOR OUTLYING ISLANDS
|
||||
{ REGDOMAIN_WORLD,{ 'U', 'Y'}}, //URUGUAY
|
||||
{ REGDOMAIN_HI_5GHZ, { 'U', 'Z'}}, //UZBEKISTAN
|
||||
{ REGDOMAIN_ETSI, {'V', 'A'}}, //HOLY SEE (VATICAN CITY STATE)
|
||||
{ REGDOMAIN_WORLD, { 'V', 'C'}}, //SAINT VINCENT AND THE GRENADINES
|
||||
{ REGDOMAIN_HI_5GHZ,{ 'V', 'E'}}, //VENEZUELA
|
||||
{ REGDOMAIN_ETSI, {'V', 'G'}}, //VIRGIN ISLANDS, BRITISH
|
||||
{ REGDOMAIN_FCC, {'V', 'I'}}, //VIRGIN ISLANDS, US
|
||||
{ REGDOMAIN_WORLD, {'V', 'N'}}, //VIET NAM
|
||||
{ REGDOMAIN_WORLD, { 'V', 'U'}}, //VANUATU
|
||||
{ REGDOMAIN_WORLD, { 'W', 'F'}}, //WALLIS AND FUTUNA
|
||||
{ REGDOMAIN_WORLD, { 'W', 'S'}}, //SOMOA
|
||||
{ REGDOMAIN_WORLD, { 'Y', 'E'}}, //YEMEN
|
||||
{ REGDOMAIN_WORLD, { 'Y', 'T'}}, //MAYOTTE
|
||||
{ REGDOMAIN_WORLD, {'Z', 'A'}}, //SOUTH AFRICA
|
||||
{ REGDOMAIN_WORLD, { 'Z', 'M'}}, //ZAMBIA
|
||||
{ REGDOMAIN_WORLD, { 'Z', 'W'}}, //ZIMBABWE
|
||||
{ REGDOMAIN_KOREA, {'K', '1'}}, //Korea alternate 1
|
||||
{ REGDOMAIN_KOREA, {'K', '2'}}, //Korea alternate 2
|
||||
{ REGDOMAIN_KOREA, {'K', '3'}}, //Korea alternate 3
|
||||
{ REGDOMAIN_KOREA, {'K', '4'}}, //Korea alternate 4
|
||||
{ REGDOMAIN_ETSI, {'E', 'U'}}, //Europe (SSGFI)
|
||||
{ REGDOMAIN_JAPAN, {'J', '1'}}, //Japan alternate 1
|
||||
{ REGDOMAIN_JAPAN, {'J', '2'}}, //Japan alternate 2
|
||||
{ REGDOMAIN_JAPAN, {'J', '3'}}, //Japan alternate 3
|
||||
{ REGDOMAIN_JAPAN, {'J', '4'}}, //Japan alternate 4
|
||||
{ REGDOMAIN_JAPAN, {'J', '5'}} //Japan alternate 5
|
||||
{ REGDOMAIN_FCC, {'U', 'S'}}, //USA - must be the first country code
|
||||
{ REGDOMAIN_ETSI, {'A', 'D'}}, //ANDORRA
|
||||
{ REGDOMAIN_ETSI, {'A', 'E'}}, //UAE
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'A', 'F'}}, //AFGHANISTAN
|
||||
{ REGDOMAIN_WORLD, {'A', 'G'}}, //ANTIGUA AND BARBUDA
|
||||
{ REGDOMAIN_FCC, {'A', 'I'}}, //ANGUILLA
|
||||
{ REGDOMAIN_NO_5GHZ, {'A', 'L'}}, //ALBANIA
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'A', 'M'}}, //ARMENIA
|
||||
{ REGDOMAIN_ETSI, {'A', 'N'}}, //NETHERLANDS ANTILLES
|
||||
{ REGDOMAIN_NO_5GHZ, {'A', 'O'}}, //ANGOLA
|
||||
{ REGDOMAIN_WORLD, {'A', 'Q'}}, //ANTARCTICA
|
||||
{ REGDOMAIN_WORLD, {'A', 'R'}}, //ARGENTINA
|
||||
{ REGDOMAIN_FCC, {'A', 'S'}}, //AMERICAN SOMOA
|
||||
{ REGDOMAIN_ETSI, {'A', 'T'}}, //AUSTRIA
|
||||
{ REGDOMAIN_APAC, {'A', 'U'}}, //AUSTRALIA
|
||||
{ REGDOMAIN_ETSI, {'A', 'W'}}, //ARUBA
|
||||
{ REGDOMAIN_WORLD, {'A', 'X'}}, //ALAND ISLANDS
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'A', 'Z'}}, //AZERBAIJAN
|
||||
{ REGDOMAIN_ETSI, {'B', 'A'}}, //BOSNIA AND HERZEGOVINA
|
||||
{ REGDOMAIN_APAC, {'B', 'B'}}, //BARBADOS
|
||||
{ REGDOMAIN_NO_5GHZ, {'B', 'D'}}, //BANGLADESH
|
||||
{ REGDOMAIN_ETSI, {'B', 'E'}}, //BELGIUM
|
||||
{ REGDOMAIN_HI_5GHZ, {'B', 'F'}}, //BURKINA FASO
|
||||
{ REGDOMAIN_ETSI, {'B', 'G'}}, //BULGARIA
|
||||
{ REGDOMAIN_APAC, {'B', 'H'}}, //BAHRAIN
|
||||
{ REGDOMAIN_NO_5GHZ, {'B', 'I'}}, //BURUNDI
|
||||
{ REGDOMAIN_NO_5GHZ, {'B', 'J'}}, //BENIN
|
||||
{ REGDOMAIN_FCC, {'B', 'M'}}, //BERMUDA
|
||||
{ REGDOMAIN_APAC, {'B', 'N'}}, //BRUNEI DARUSSALAM
|
||||
{ REGDOMAIN_HI_5GHZ, {'B', 'O'}}, //BOLIVIA
|
||||
{ REGDOMAIN_WORLD, {'B', 'R'}}, //BRAZIL
|
||||
{ REGDOMAIN_APAC, {'B', 'S'}}, //BAHAMAS
|
||||
{ REGDOMAIN_NO_5GHZ, {'B', 'T'}}, //BHUTAN
|
||||
{ REGDOMAIN_WORLD, {'B', 'V'}}, //BOUVET ISLAND
|
||||
{ REGDOMAIN_ETSI, {'B', 'W'}}, //BOTSWANA
|
||||
{ REGDOMAIN_ETSI, {'B', 'Y'}}, //BELARUS
|
||||
{ REGDOMAIN_HI_5GHZ, {'B', 'Z'}}, //BELIZE
|
||||
{ REGDOMAIN_FCC, {'C', 'A'}}, //CANADA
|
||||
{ REGDOMAIN_WORLD, {'C', 'C'}}, //COCOS (KEELING) ISLANDS
|
||||
{ REGDOMAIN_NO_5GHZ, {'C', 'D'}}, //CONGO, THE DEMOCRATIC REPUBLIC OF THE
|
||||
{ REGDOMAIN_NO_5GHZ, {'C', 'F'}}, //CENTRAL AFRICAN REPUBLIC
|
||||
{ REGDOMAIN_NO_5GHZ, {'C', 'G'}}, //CONGO
|
||||
{ REGDOMAIN_ETSI, {'C', 'H'}}, //SWITZERLAND
|
||||
{ REGDOMAIN_NO_5GHZ, {'C', 'I'}}, //COTE D'IVOIRE
|
||||
{ REGDOMAIN_WORLD, {'C', 'K'}}, //COOK ISLANDS
|
||||
{ REGDOMAIN_APAC, {'C', 'L'}}, //CHILE
|
||||
{ REGDOMAIN_NO_5GHZ, {'C', 'M'}}, //CAMEROON
|
||||
{ REGDOMAIN_HI_5GHZ, {'C', 'N'}}, //CHINA
|
||||
{ REGDOMAIN_APAC, {'C', 'O'}}, //COLOMBIA
|
||||
{ REGDOMAIN_APAC, {'C', 'R'}}, //COSTA RICA
|
||||
{ REGDOMAIN_NO_5GHZ, {'C', 'U'}}, //CUBA
|
||||
{ REGDOMAIN_ETSI, {'C', 'V'}}, //CAPE VERDE
|
||||
{ REGDOMAIN_WORLD, {'C', 'X'}}, //CHRISTMAS ISLAND
|
||||
{ REGDOMAIN_ETSI, {'C', 'Y'}}, //CYPRUS
|
||||
{ REGDOMAIN_ETSI, {'C', 'Z'}}, //CZECH REPUBLIC
|
||||
{ REGDOMAIN_ETSI, {'D', 'E'}}, //GERMANY
|
||||
{ REGDOMAIN_NO_5GHZ, {'D', 'J'}}, //DJIBOUTI
|
||||
{ REGDOMAIN_ETSI, {'D', 'K'}}, //DENMARK
|
||||
{ REGDOMAIN_WORLD, {'D', 'M'}}, //DOMINICA
|
||||
{ REGDOMAIN_APAC, {'D', 'O'}}, //DOMINICAN REPUBLIC
|
||||
{ REGDOMAIN_NO_5GHZ, {'D', 'Z'}}, //ALGERIA
|
||||
{ REGDOMAIN_APAC, {'E', 'C'}}, //ECUADOR
|
||||
{ REGDOMAIN_ETSI, {'E', 'E'}}, //ESTONIA
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'E', 'G'}}, //EGYPT
|
||||
{ REGDOMAIN_WORLD, {'E', 'H'}}, //WESTERN SAHARA
|
||||
{ REGDOMAIN_NO_5GHZ, {'E', 'R'}}, //ERITREA
|
||||
{ REGDOMAIN_ETSI, {'E', 'S'}}, //SPAIN
|
||||
{ REGDOMAIN_ETSI, {'E', 'T'}}, //ETHIOPIA
|
||||
{ REGDOMAIN_ETSI, {'E', 'U'}}, //Europe (SSGFI)
|
||||
{ REGDOMAIN_ETSI, {'F', 'I'}}, //FINLAND
|
||||
{ REGDOMAIN_NO_5GHZ, {'F', 'J'}}, //FIJI
|
||||
{ REGDOMAIN_WORLD, {'F', 'K'}}, //FALKLAND ISLANDS (MALVINAS)
|
||||
{ REGDOMAIN_WORLD, {'F', 'M'}}, //MICRONESIA, FEDERATED STATES OF
|
||||
{ REGDOMAIN_WORLD, {'F', 'O'}}, //FAROE ISLANDS
|
||||
{ REGDOMAIN_ETSI, {'F', 'R'}}, //FRANCE
|
||||
{ REGDOMAIN_NO_5GHZ, {'G', 'A'}}, //GABON
|
||||
{ REGDOMAIN_ETSI, {'G', 'B'}}, //UNITED KINGDOM
|
||||
{ REGDOMAIN_WORLD, {'G', 'D'}}, //GRENADA
|
||||
{ REGDOMAIN_ETSI, {'G', 'E'}}, //GEORGIA
|
||||
{ REGDOMAIN_ETSI, {'G', 'F'}}, //FRENCH GUIANA
|
||||
{ REGDOMAIN_WORLD, {'G', 'G'}}, //GUERNSEY
|
||||
{ REGDOMAIN_WORLD, {'G', 'H'}}, //GHANA
|
||||
{ REGDOMAIN_WORLD, {'G', 'I'}}, //GIBRALTAR
|
||||
{ REGDOMAIN_ETSI, {'G', 'L'}}, //GREENLAND
|
||||
{ REGDOMAIN_NO_5GHZ, {'G', 'M'}}, //GAMBIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'G', 'N'}}, //GUINEA
|
||||
{ REGDOMAIN_ETSI, {'G', 'P'}}, //GUADELOUPE
|
||||
{ REGDOMAIN_NO_5GHZ, {'G', 'Q'}}, //EQUATORIAL GUINEA
|
||||
{ REGDOMAIN_ETSI, {'G', 'R'}}, //GREECE
|
||||
{ REGDOMAIN_WORLD, {'G', 'S'}}, //SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS
|
||||
{ REGDOMAIN_APAC, {'G', 'T'}}, //GUATEMALA
|
||||
{ REGDOMAIN_APAC, {'G', 'U'}}, //GUAM
|
||||
{ REGDOMAIN_NO_5GHZ, {'G', 'W'}}, //GUINEA-BISSAU
|
||||
{ REGDOMAIN_HI_5GHZ, {'G', 'Y'}}, //GUYANA
|
||||
{ REGDOMAIN_WORLD, {'H', 'K'}}, //HONGKONG
|
||||
{ REGDOMAIN_WORLD, {'H', 'M'}}, //HEARD ISLAND AND MCDONALD ISLANDS
|
||||
{ REGDOMAIN_WORLD, {'H', 'N'}}, //HONDURAS
|
||||
{ REGDOMAIN_ETSI, {'H', 'R'}}, //CROATIA
|
||||
{ REGDOMAIN_ETSI, {'H', 'T'}}, //HAITI
|
||||
{ REGDOMAIN_ETSI, {'H', 'U'}}, //HUNGARY
|
||||
{ REGDOMAIN_HI_5GHZ, {'I', 'D'}}, //INDONESIA
|
||||
{ REGDOMAIN_ETSI, {'I', 'E'}}, //IRELAND
|
||||
{ REGDOMAIN_NO_5GHZ, {'I', 'L'}}, //ISRAEL
|
||||
{ REGDOMAIN_WORLD, {'I', 'M'}}, //ISLE OF MAN
|
||||
{ REGDOMAIN_APAC, {'I', 'N'}}, //INDIA
|
||||
{ REGDOMAIN_WORLD, {'I', 'O'}}, //BRITISH INDIAN OCEAN TERRITORY
|
||||
{ REGDOMAIN_NO_5GHZ, {'I', 'Q'}}, //IRAQ
|
||||
{ REGDOMAIN_HI_5GHZ, {'I', 'R'}}, //IRAN, ISLAMIC REPUBLIC OF
|
||||
{ REGDOMAIN_ETSI, {'I', 'S'}}, //ICELAND
|
||||
{ REGDOMAIN_ETSI, {'I', 'T'}}, //ITALY
|
||||
{ REGDOMAIN_JAPAN, {'J', '1'}}, //Japan alternate 1
|
||||
{ REGDOMAIN_JAPAN, {'J', '2'}}, //Japan alternate 2
|
||||
{ REGDOMAIN_JAPAN, {'J', '3'}}, //Japan alternate 3
|
||||
{ REGDOMAIN_JAPAN, {'J', '4'}}, //Japan alternate 4
|
||||
{ REGDOMAIN_JAPAN, {'J', '5'}}, //Japan alternate 5
|
||||
{ REGDOMAIN_WORLD, {'J', 'E'}}, //JERSEY
|
||||
{ REGDOMAIN_WORLD, {'J', 'M'}}, //JAMAICA
|
||||
{ REGDOMAIN_WORLD, {'J', 'O'}}, //JORDAN
|
||||
{ REGDOMAIN_JAPAN, {'J', 'P'}}, //JAPAN
|
||||
{ REGDOMAIN_KOREA, {'K', '1'}}, //Korea alternate 1
|
||||
{ REGDOMAIN_KOREA, {'K', '2'}}, //Korea alternate 2
|
||||
{ REGDOMAIN_KOREA, {'K', '3'}}, //Korea alternate 3
|
||||
{ REGDOMAIN_KOREA, {'K', '4'}}, //Korea alternate 4
|
||||
{ REGDOMAIN_HI_5GHZ, {'K', 'E'}}, //KENYA
|
||||
{ REGDOMAIN_NO_5GHZ, {'K', 'G'}}, //KYRGYZSTAN
|
||||
{ REGDOMAIN_ETSI, {'K', 'H'}}, //CAMBODIA
|
||||
{ REGDOMAIN_WORLD, {'K', 'I'}}, //KIRIBATI
|
||||
{ REGDOMAIN_NO_5GHZ, {'K', 'M'}}, //COMOROS
|
||||
{ REGDOMAIN_WORLD, {'K', 'N'}}, //SAINT KITTS AND NEVIS
|
||||
{ REGDOMAIN_WORLD, {'K', 'P'}}, //KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF
|
||||
{ REGDOMAIN_KOREA, {'K', 'R'}}, //KOREA, REPUBLIC OF
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'K', 'W'}}, //KUWAIT
|
||||
{ REGDOMAIN_FCC, {'K', 'Y'}}, //CAYMAN ISLANDS
|
||||
{ REGDOMAIN_NO_5GHZ, {'K', 'Z'}}, //KAZAKHSTAN
|
||||
{ REGDOMAIN_WORLD, {'L', 'A'}}, //LAO PEOPLE'S DEMOCRATIC REPUBLIC
|
||||
{ REGDOMAIN_HI_5GHZ, {'L', 'B'}}, //LEBANON
|
||||
{ REGDOMAIN_WORLD, {'L', 'C'}}, //SAINT LUCIA
|
||||
{ REGDOMAIN_ETSI, {'L', 'I'}}, //LIECHTENSTEIN
|
||||
{ REGDOMAIN_WORLD, {'L', 'K'}}, //SRI LANKA
|
||||
{ REGDOMAIN_WORLD, {'L', 'R'}}, //LIBERIA
|
||||
{ REGDOMAIN_ETSI, {'L', 'S'}}, //LESOTHO
|
||||
{ REGDOMAIN_ETSI, {'L', 'T'}}, //LITHUANIA
|
||||
{ REGDOMAIN_ETSI, {'L', 'U'}}, //LUXEMBOURG
|
||||
{ REGDOMAIN_ETSI, {'L', 'V'}}, //LATVIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'L', 'Y'}}, //LIBYAN ARAB JAMAHIRIYA
|
||||
{ REGDOMAIN_NO_5GHZ, {'M', 'A'}}, //MOROCCO
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'M', 'C'}}, //MONACO
|
||||
{ REGDOMAIN_ETSI, {'M', 'D'}}, //MOLDOVA, REPUBLIC OF
|
||||
{ REGDOMAIN_ETSI, {'M', 'E'}}, //MONTENEGRO
|
||||
{ REGDOMAIN_NO_5GHZ, {'M', 'G'}}, //MADAGASCAR
|
||||
{ REGDOMAIN_WORLD, {'M', 'H'}}, //MARSHALL ISLANDS
|
||||
{ REGDOMAIN_ETSI, {'M', 'K'}}, //MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
|
||||
{ REGDOMAIN_NO_5GHZ, {'M', 'L'}}, //MALI
|
||||
{ REGDOMAIN_WORLD, {'M', 'M'}}, //MYANMAR
|
||||
{ REGDOMAIN_NO_5GHZ, {'M', 'N'}}, //MONGOLIA
|
||||
{ REGDOMAIN_APAC, {'M', 'O'}}, //MACAO
|
||||
{ REGDOMAIN_FCC, {'M', 'P'}}, //NORTHERN MARIANA ISLANDS
|
||||
{ REGDOMAIN_ETSI, {'M', 'Q'}}, //MARTINIQUE
|
||||
{ REGDOMAIN_ETSI, {'M', 'R'}}, //MAURITANIA
|
||||
{ REGDOMAIN_ETSI, {'M', 'S'}}, //MONTSERRAT
|
||||
{ REGDOMAIN_ETSI, {'M', 'T'}}, //MALTA
|
||||
{ REGDOMAIN_ETSI, {'M', 'U'}}, //MAURITIUS
|
||||
{ REGDOMAIN_APAC, {'M', 'V'}}, //MALDIVES
|
||||
{ REGDOMAIN_HI_5GHZ, {'M', 'W'}}, //MALAWI
|
||||
{ REGDOMAIN_APAC, {'M', 'X'}}, //MEXICO
|
||||
{ REGDOMAIN_APAC, {'M', 'Y'}}, //MALAYSIA
|
||||
{ REGDOMAIN_WORLD, {'M', 'Z'}}, //MOZAMBIQUE
|
||||
{ REGDOMAIN_WORLD, {'N', 'A'}}, //NAMIBIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'N', 'C'}}, //NEW CALEDONIA
|
||||
{ REGDOMAIN_WORLD, {'N', 'E'}}, //NIGER
|
||||
{ REGDOMAIN_WORLD, {'N', 'F'}}, //NORFOLD ISLAND
|
||||
{ REGDOMAIN_WORLD, {'N', 'G'}}, //NIGERIA
|
||||
{ REGDOMAIN_WORLD, {'N', 'I'}}, //NICARAGUA
|
||||
{ REGDOMAIN_ETSI, {'N', 'L'}}, //NETHERLANDS
|
||||
{ REGDOMAIN_ETSI, {'N', 'O'}}, //NORWAY
|
||||
{ REGDOMAIN_HI_5GHZ, {'N', 'P'}}, //NEPAL
|
||||
{ REGDOMAIN_NO_5GHZ, {'N', 'R'}}, //NAURU
|
||||
{ REGDOMAIN_WORLD, {'N', 'U'}}, //NIUE
|
||||
{ REGDOMAIN_APAC, {'N', 'Z'}}, //NEW ZEALAND
|
||||
{ REGDOMAIN_WORLD, {'O', 'M'}}, //OMAN
|
||||
{ REGDOMAIN_APAC, {'P', 'A'}}, //PANAMA
|
||||
{ REGDOMAIN_HI_5GHZ, {'P', 'E'}}, //PERU
|
||||
{ REGDOMAIN_ETSI, {'P', 'F'}}, //FRENCH POLYNESIA
|
||||
{ REGDOMAIN_APAC, {'P', 'G'}}, //PAPUA NEW GUINEA
|
||||
{ REGDOMAIN_HI_5GHZ, {'P', 'H'}}, //PHILIPPINES
|
||||
{ REGDOMAIN_HI_5GHZ, {'P', 'K'}}, //PAKISTAN
|
||||
{ REGDOMAIN_ETSI, {'P', 'L'}}, //POLAND
|
||||
{ REGDOMAIN_WORLD, {'P', 'M'}}, //SAINT PIERRE AND MIQUELON
|
||||
{ REGDOMAIN_WORLD, {'P', 'N'}}, //WORLDPITCAIRN
|
||||
{ REGDOMAIN_FCC, {'P', 'R'}}, //PUERTO RICO
|
||||
{ REGDOMAIN_WORLD, {'P', 'S'}}, //PALESTINIAN TERRITORY, OCCUPIED
|
||||
{ REGDOMAIN_ETSI, {'P', 'T'}}, //PORTUGAL
|
||||
{ REGDOMAIN_WORLD, {'P', 'W'}}, //PALAU
|
||||
{ REGDOMAIN_WORLD, {'P', 'Y'}}, //PARAGUAY
|
||||
{ REGDOMAIN_HI_5GHZ, {'Q', 'A'}}, //QATAR
|
||||
{ REGDOMAIN_ETSI, {'R', 'E'}}, //REUNION
|
||||
{ REGDOMAIN_ETSI, {'R', 'O'}}, //ROMANIA
|
||||
{ REGDOMAIN_ETSI, {'R', 'S'}}, //SERBIA
|
||||
{ REGDOMAIN_HI_5GHZ, {'R', 'U'}}, //RUSSIA
|
||||
{ REGDOMAIN_HI_5GHZ, {'R', 'W'}}, //RWANDA
|
||||
{ REGDOMAIN_APAC, {'S', 'A'}}, //SAUDI ARABIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'S', 'B'}}, //SOLOMON ISLANDS
|
||||
{ REGDOMAIN_NO_5GHZ, {'S', 'C'}}, //SEYCHELLES
|
||||
{ REGDOMAIN_WORLD, {'S', 'D'}}, //SUDAN
|
||||
{ REGDOMAIN_ETSI, {'S', 'E'}}, //SWEDEN
|
||||
{ REGDOMAIN_APAC, {'S', 'G'}}, //SINGAPORE
|
||||
{ REGDOMAIN_WORLD, {'S', 'H'}}, //SAINT HELENA
|
||||
{ REGDOMAIN_ETSI, {'S', 'I'}}, //SLOVENNIA
|
||||
{ REGDOMAIN_WORLD, {'S', 'J'}}, //SVALBARD AND JAN MAYEN
|
||||
{ REGDOMAIN_ETSI, {'S', 'K'}}, //SLOVAKIA
|
||||
{ REGDOMAIN_WORLD, {'S', 'L'}}, //SIERRA LEONE
|
||||
{ REGDOMAIN_ETSI, {'S', 'M'}}, //SAN MARINO
|
||||
{ REGDOMAIN_ETSI, {'S', 'N'}}, //SENEGAL
|
||||
{ REGDOMAIN_NO_5GHZ, {'S', 'O'}}, //SOMALIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'S', 'R'}}, //SURINAME
|
||||
{ REGDOMAIN_WORLD, {'S', 'T'}}, //SAO TOME AND PRINCIPE
|
||||
{ REGDOMAIN_APAC, {'S', 'V'}}, //EL SALVADOR
|
||||
{ REGDOMAIN_NO_5GHZ, {'S', 'Y'}}, //SYRIAN ARAB REPUBLIC
|
||||
{ REGDOMAIN_NO_5GHZ, {'S', 'Z'}}, //SWAZILAND
|
||||
{ REGDOMAIN_ETSI, {'T', 'C'}}, //TURKS AND CAICOS ISLANDS
|
||||
{ REGDOMAIN_NO_5GHZ, {'T', 'D'}}, //CHAD
|
||||
{ REGDOMAIN_ETSI, {'T', 'F'}}, //FRENCH SOUTHERN TERRITORIES
|
||||
{ REGDOMAIN_NO_5GHZ, {'T', 'G'}}, //TOGO
|
||||
{ REGDOMAIN_WORLD, {'T', 'H'}}, //THAILAND
|
||||
{ REGDOMAIN_NO_5GHZ, {'T', 'J'}}, //TAJIKISTAN
|
||||
{ REGDOMAIN_WORLD, {'T', 'K'}}, //TOKELAU
|
||||
{ REGDOMAIN_WORLD, {'T', 'L'}}, //TIMOR-LESTE
|
||||
{ REGDOMAIN_NO_5GHZ, {'T', 'M'}}, //TURKMENISTAN
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'T', 'N'}}, //TUNISIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'T', 'O'}}, //TONGA
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'T', 'R'}}, //TURKEY
|
||||
{ REGDOMAIN_WORLD, {'T', 'T'}}, //TRINIDAD AND TOBAGO
|
||||
{ REGDOMAIN_NO_5GHZ, {'T', 'V'}}, //TUVALU
|
||||
{ REGDOMAIN_WORLD, {'T', 'W'}}, //TAIWAN, PROVINCE OF CHINA
|
||||
{ REGDOMAIN_HI_5GHZ, {'T', 'Z'}}, //TANZANIA, UNITED REPUBLIC OF
|
||||
{ REGDOMAIN_NO_5GHZ, {'U', 'A'}}, //UKRAINE
|
||||
{ REGDOMAIN_WORLD, {'U', 'G'}}, //UGANDA
|
||||
{ REGDOMAIN_FCC, {'U', 'M'}}, //UNITED STATES MINOR OUTLYING ISLANDS
|
||||
{ REGDOMAIN_WORLD, {'U', 'Y'}}, //URUGUAY
|
||||
{ REGDOMAIN_WORLD, {'U', 'Z'}}, //UZBEKISTAN
|
||||
{ REGDOMAIN_ETSI, {'V', 'A'}}, //HOLY SEE (VATICAN CITY STATE)
|
||||
{ REGDOMAIN_WORLD, {'V', 'C'}}, //SAINT VINCENT AND THE GRENADINES
|
||||
{ REGDOMAIN_HI_5GHZ, {'V', 'E'}}, //VENEZUELA
|
||||
{ REGDOMAIN_ETSI, {'V', 'G'}}, //VIRGIN ISLANDS, BRITISH
|
||||
{ REGDOMAIN_FCC, {'V', 'I'}}, //VIRGIN ISLANDS, US
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'V', 'N'}}, //VIET NAM
|
||||
{ REGDOMAIN_NO_5GHZ, {'V', 'U'}}, //VANUATU
|
||||
{ REGDOMAIN_WORLD, {'W', 'F'}}, //WALLIS AND FUTUNA
|
||||
{ REGDOMAIN_N_AMER_EXC_FCC, {'W', 'S'}}, //SOMOA
|
||||
{ REGDOMAIN_NO_5GHZ, {'Y', 'E'}}, //YEMEN
|
||||
{ REGDOMAIN_ETSI, {'Y', 'T'}}, //MAYOTTE
|
||||
{ REGDOMAIN_WORLD, {'Z', 'A'}}, //SOUTH AFRICA
|
||||
{ REGDOMAIN_APAC, {'Z', 'M'}}, //ZAMBIA
|
||||
{ REGDOMAIN_NO_5GHZ, {'Z', 'W'}}, //ZIMBABWE
|
||||
}
|
||||
};
|
||||
typedef struct nvEFSTable_s
|
||||
|
|
|
@ -8976,6 +8976,9 @@ VOS_STATUS WDA_TxPacket(tWDA_CbContext *pWDA,
|
|||
pWDA->pTxCbFunc = NULL; /*To stop the limTxComplete being called again ,
|
||||
after the packet gets completed(packet freed once)*/
|
||||
|
||||
/* TX MGMT fail with COMP timeout, try to detect DXE stall */
|
||||
WDA_TransportChannelDebug(0, 1);
|
||||
|
||||
/*Tag Frame as timed out for later deletion*/
|
||||
vos_pkt_set_user_data_ptr( (vos_pkt_t *)pFrmBuf, VOS_PKT_USER_DATA_ID_WDA,
|
||||
(v_PVOID_t)WDA_TL_TX_MGMT_TIMED_OUT);
|
||||
|
|
Loading…
Reference in a new issue