Exemple #1
0
/*----------------------------------------------------------------------------*/
P_BSS_INFO_T
cnmGetBssInfoAndInit(P_ADAPTER_T prAdapter, ENUM_NETWORK_TYPE_T eNetworkType, BOOLEAN fgIsP2pDevice)
{
	P_BSS_INFO_T prBssInfo;
	UINT_8 ucBssIndex, ucOwnMacIdx;

	ASSERT(prAdapter);

	if (eNetworkType == NETWORK_TYPE_P2P && fgIsP2pDevice) {
		prBssInfo = prAdapter->aprBssInfo[P2P_DEV_BSS_INDEX];

		prBssInfo->fgIsInUse = TRUE;
		prBssInfo->ucBssIndex = P2P_DEV_BSS_INDEX;
		prBssInfo->eNetworkType = eNetworkType;
		prBssInfo->ucOwnMacIndex = HW_BSSID_NUM;

		return prBssInfo;
	}

	if (wlanGetEcoVersion(prAdapter) == 1) {
		ucOwnMacIdx = 0;
	} else {
		ucOwnMacIdx = (eNetworkType == NETWORK_TYPE_MBSS) ? 0 : 1;
	}

	/* Find available HW set */
	do {
		for (ucBssIndex = 0; ucBssIndex < BSS_INFO_NUM; ucBssIndex++) {
			prBssInfo = prAdapter->aprBssInfo[ucBssIndex];

			if (prBssInfo && prBssInfo->fgIsInUse &&
			    ucOwnMacIdx == prBssInfo->ucOwnMacIndex) {
				break;
			}
		}

		if (ucBssIndex >= BSS_INFO_NUM) {
			break;	/* No hit */
		}
	} while (++ucOwnMacIdx < HW_BSSID_NUM);

	/* Find available BSS_INFO */
	for (ucBssIndex = 0; ucBssIndex < BSS_INFO_NUM; ucBssIndex++) {
		prBssInfo = prAdapter->aprBssInfo[ucBssIndex];

		if (prBssInfo && !prBssInfo->fgIsInUse) {
			prBssInfo->fgIsInUse = TRUE;
			prBssInfo->ucBssIndex = ucBssIndex;
			prBssInfo->eNetworkType = eNetworkType;
			prBssInfo->ucOwnMacIndex = ucOwnMacIdx;
			break;
		}
	}

	if (ucOwnMacIdx >= HW_BSSID_NUM || ucBssIndex >= BSS_INFO_NUM) {
		prBssInfo = NULL;
	}

	return prBssInfo;
}
Exemple #2
0
BOOLEAN glResetTrigger(P_ADAPTER_T prAdapter)
{
    BOOLEAN fgResult = TRUE;;

#if CFG_WMT_RESET_API_SUPPORT
    if(kalIsResetting()) {
        DBGLOG(INIT, ERROR, ("Skip triggering whole-chip reset during reseting!" 
            "Chip[%04X E%u] FW Ver DEC[%u.%u] HEX[%x.%x], Driver Ver[%u.%u]\n", 
            MTK_CHIP_REV, 
            wlanGetEcoVersion(prAdapter),
            (prAdapter->rVerInfo.u2FwOwnVersion >> 8),
            (prAdapter->rVerInfo.u2FwOwnVersion & BITS(0, 7)),
            (prAdapter->rVerInfo.u2FwOwnVersion >> 8),
            (prAdapter->rVerInfo.u2FwOwnVersion & BITS(0, 7)),
            (prAdapter->rVerInfo.u2FwPeerVersion >> 8), 
            (prAdapter->rVerInfo.u2FwPeerVersion & BITS(0, 7))));
        
        fgResult = TRUE;
    }
    else {