s32 rtw_hal_macid_wakeup(PADAPTER padapter, u8 macid)
{
	struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
	struct macid_ctl_t *macid_ctl = dvobj_to_macidctl(dvobj);
	u8 support;

	support = _FALSE;
	rtw_hal_get_def_var(padapter, HAL_DEF_MACID_SLEEP, &support);
	if (_FALSE == support)
		return _FAIL;

	if (macid >= macid_ctl->num) {
		DBG_871X_LEVEL(_drv_err_, FUNC_ADPT_FMT": Invalid macid(%u)\n",
			FUNC_ADPT_ARG(padapter), macid);
		return _FAIL;
	}

	rtw_hal_set_hwreg(padapter, HW_VAR_MACID_WAKEUP, &macid);

	return _SUCCESS;
}
Ejemplo n.º 2
0
void rtw_mi_update_ap_bmc_camid(_adapter *padapter, u8 camid_a, u8 camid_b)
{
#ifdef CONFIG_CONCURRENT_MODE
    struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
    struct macid_ctl_t *macid_ctl = dvobj_to_macidctl(dvobj);

    int i;
    _adapter *iface = NULL;

    for (i = 0; i < dvobj->iface_nums; i++) {
        iface = dvobj->padapters[i];
        if (!iface)
            continue;

        if (macid_ctl->iface_bmc[iface->iface_id] != INVALID_SEC_MAC_CAM_ID) {
            if (macid_ctl->iface_bmc[iface->iface_id] == camid_a)
                macid_ctl->iface_bmc[iface->iface_id] = camid_b;
            else if (macid_ctl->iface_bmc[iface->iface_id] == camid_b)
                macid_ctl->iface_bmc[iface->iface_id] = camid_a;
            iface->securitypriv.dot118021x_bmc_cam_id  = macid_ctl->iface_bmc[iface->iface_id];
        }
    }
#endif
}