mirror of
https://github.com/Mange/rtl8192eu-linux-driver
synced 2025-12-10 00:04:17 +00:00
Updated to v4.3.8_12406.20140929
This commit is contained in:
117
hal/hal_intf.c
117
hal/hal_intf.c
@@ -43,28 +43,53 @@ void rtw_hal_read_chip_version(_adapter *padapter)
|
||||
|
||||
void rtw_hal_def_value_init(_adapter *padapter)
|
||||
{
|
||||
if (is_primary_adapter(padapter))
|
||||
if (is_primary_adapter(padapter)) {
|
||||
if(padapter->HalFunc.init_default_value)
|
||||
padapter->HalFunc.init_default_value(padapter);
|
||||
|
||||
rtw_init_hal_com_default_value(padapter);
|
||||
|
||||
{
|
||||
struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
|
||||
HAL_DATA_TYPE *hal_data = GET_HAL_DATA(padapter);
|
||||
|
||||
/* hal_data..macid_num is ready here */
|
||||
dvobj->macid_ctl.num = rtw_min(hal_data->macid_num, MACID_NUM_SW_LIMIT);
|
||||
}
|
||||
}
|
||||
}
|
||||
void rtw_hal_free_data(_adapter *padapter)
|
||||
{
|
||||
//free HAL Data
|
||||
rtw_hal_data_deinit(padapter);
|
||||
|
||||
if (is_primary_adapter(padapter))
|
||||
if(padapter->HalFunc.free_hal_data)
|
||||
padapter->HalFunc.free_hal_data(padapter);
|
||||
}
|
||||
void rtw_hal_dm_init(_adapter *padapter)
|
||||
void rtw_hal_dm_init(_adapter *padapter)
|
||||
{
|
||||
if (is_primary_adapter(padapter))
|
||||
if (is_primary_adapter(padapter)) {
|
||||
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
|
||||
struct dm_priv *pdmpriv = &pHalData->dmpriv;
|
||||
|
||||
if(padapter->HalFunc.dm_init)
|
||||
padapter->HalFunc.dm_init(padapter);
|
||||
|
||||
_rtw_spinlock_init(&pdmpriv->IQKSpinLock);
|
||||
}
|
||||
}
|
||||
void rtw_hal_dm_deinit(_adapter *padapter)
|
||||
{
|
||||
// cancel dm timer
|
||||
if (is_primary_adapter(padapter))
|
||||
if (is_primary_adapter(padapter)) {
|
||||
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
|
||||
struct dm_priv *pdmpriv = &pHalData->dmpriv;
|
||||
|
||||
if(padapter->HalFunc.dm_deinit)
|
||||
padapter->HalFunc.dm_deinit(padapter);
|
||||
|
||||
_rtw_spinlock_free(&pdmpriv->IQKSpinLock);
|
||||
}
|
||||
}
|
||||
void rtw_hal_sw_led_init(_adapter *padapter)
|
||||
{
|
||||
@@ -153,26 +178,29 @@ uint rtw_hal_init(_adapter *padapter)
|
||||
|
||||
rtw_hal_init_opmode(padapter);
|
||||
|
||||
for (i = 0; i<dvobj->iface_nums; i++) {
|
||||
padapter = dvobj->padapters[i];
|
||||
padapter->hw_init_completed = _TRUE;
|
||||
}
|
||||
for (i = 0; i<dvobj->iface_nums; i++)
|
||||
dvobj->padapters[i]->hw_init_completed = _TRUE;
|
||||
|
||||
if (padapter->registrypriv.notch_filter == 1)
|
||||
rtw_hal_notch_filter(padapter, 1);
|
||||
|
||||
rtw_hal_reset_security_engine(padapter);
|
||||
rtw_sec_restore_wep_key(padapter);
|
||||
|
||||
for (i = 0; i<dvobj->iface_nums; i++)
|
||||
rtw_sec_restore_wep_key(dvobj->padapters[i]);
|
||||
|
||||
rtw_led_control(padapter, LED_CTL_POWER_ON);
|
||||
|
||||
init_hw_mlme_ext(padapter);
|
||||
|
||||
#ifdef CONFIG_RF_GAIN_OFFSET
|
||||
rtw_bb_rf_gain_offset(padapter);
|
||||
#endif //CONFIG_RF_GAIN_OFFSET
|
||||
|
||||
}
|
||||
else{
|
||||
for (i = 0; i<dvobj->iface_nums; i++) {
|
||||
padapter = dvobj->padapters[i];
|
||||
padapter->hw_init_completed = _FALSE;
|
||||
}
|
||||
for (i = 0; i<dvobj->iface_nums; i++)
|
||||
dvobj->padapters[i]->hw_init_completed = _FALSE;
|
||||
DBG_871X("rtw_hal_init: hal__init fail\n");
|
||||
}
|
||||
|
||||
@@ -246,10 +274,10 @@ void rtw_hal_set_odm_var(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID p
|
||||
if(padapter->HalFunc.SetHalODMVarHandler)
|
||||
padapter->HalFunc.SetHalODMVarHandler(padapter,eVariable,pValue1,bSet);
|
||||
}
|
||||
void rtw_hal_get_odm_var(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID pValue1,BOOLEAN bSet)
|
||||
void rtw_hal_get_odm_var(_adapter *padapter, HAL_ODM_VARIABLE eVariable, PVOID pValue1,PVOID pValue2)
|
||||
{
|
||||
if(padapter->HalFunc.GetHalODMVarHandler)
|
||||
padapter->HalFunc.GetHalODMVarHandler(padapter,eVariable,pValue1,bSet);
|
||||
padapter->HalFunc.GetHalODMVarHandler(padapter,eVariable,pValue1,pValue2);
|
||||
}
|
||||
|
||||
void rtw_hal_enable_interrupt(_adapter *padapter)
|
||||
@@ -480,20 +508,47 @@ s32 rtw_hal_interrupt_handler(_adapter *padapter)
|
||||
|
||||
void rtw_hal_set_bwmode(_adapter *padapter, CHANNEL_WIDTH Bandwidth, u8 Offset)
|
||||
{
|
||||
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
|
||||
PDM_ODM_T pDM_Odm = &(pHalData->odmpriv);
|
||||
|
||||
if(padapter->HalFunc.set_bwmode_handler)
|
||||
{
|
||||
ODM_AcquireSpinLock( pDM_Odm, RT_IQK_SPINLOCK);
|
||||
if(pDM_Odm->RFCalibrateInfo.bIQKInProgress == _TRUE)
|
||||
DBG_871X_LEVEL(_drv_err_, "%s, %d, IQK may race condition\n", __func__,__LINE__);
|
||||
ODM_ReleaseSpinLock( pDM_Odm, RT_IQK_SPINLOCK);
|
||||
padapter->HalFunc.set_bwmode_handler(padapter, Bandwidth, Offset);
|
||||
}
|
||||
}
|
||||
|
||||
void rtw_hal_set_chan(_adapter *padapter, u8 channel)
|
||||
{
|
||||
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
|
||||
PDM_ODM_T pDM_Odm = &(pHalData->odmpriv);
|
||||
|
||||
if(padapter->HalFunc.set_channel_handler)
|
||||
{
|
||||
ODM_AcquireSpinLock( pDM_Odm, RT_IQK_SPINLOCK);
|
||||
if(pDM_Odm->RFCalibrateInfo.bIQKInProgress == _TRUE)
|
||||
DBG_871X_LEVEL(_drv_err_, "%s, %d, IQK may race condition\n", __func__,__LINE__);
|
||||
ODM_ReleaseSpinLock( pDM_Odm, RT_IQK_SPINLOCK);
|
||||
padapter->HalFunc.set_channel_handler(padapter, channel);
|
||||
}
|
||||
}
|
||||
|
||||
void rtw_hal_set_chnl_bw(_adapter *padapter, u8 channel, CHANNEL_WIDTH Bandwidth, u8 Offset40, u8 Offset80)
|
||||
{
|
||||
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
|
||||
PDM_ODM_T pDM_Odm = &(pHalData->odmpriv);
|
||||
|
||||
if(padapter->HalFunc.set_chnl_bw_handler)
|
||||
{
|
||||
ODM_AcquireSpinLock( pDM_Odm, RT_IQK_SPINLOCK);
|
||||
if(pDM_Odm->RFCalibrateInfo.bIQKInProgress == _TRUE)
|
||||
DBG_871X_LEVEL(_drv_err_, "%s, %d, IQK may race condition\n", __func__,__LINE__);
|
||||
ODM_ReleaseSpinLock( pDM_Odm, RT_IQK_SPINLOCK);
|
||||
padapter->HalFunc.set_chnl_bw_handler(padapter, channel, Bandwidth, Offset40, Offset80);
|
||||
}
|
||||
}
|
||||
|
||||
void rtw_hal_set_tx_power_level(_adapter *padapter, u8 channel)
|
||||
@@ -704,37 +759,50 @@ s32 rtw_hal_is_disable_sw_channel_plan(PADAPTER padapter)
|
||||
return GET_HAL_DATA(padapter)->bDisableSWChannelPlan;
|
||||
}
|
||||
|
||||
s32 rtw_hal_macid_sleep(PADAPTER padapter, u32 macid)
|
||||
s32 rtw_hal_macid_sleep(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;
|
||||
|
||||
rtw_hal_set_hwreg(padapter, HW_VAR_MACID_SLEEP, (u8*)&macid);
|
||||
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_SLEEP, &macid);
|
||||
|
||||
return _SUCCESS;
|
||||
}
|
||||
|
||||
s32 rtw_hal_macid_wakeup(PADAPTER padapter, u32 macid)
|
||||
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;
|
||||
|
||||
rtw_hal_set_hwreg(padapter, HW_VAR_MACID_WAKEUP, (u8*)&macid);
|
||||
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;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BT_COEXIST
|
||||
s32 rtw_hal_fill_h2c_cmd(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBuffer)
|
||||
{
|
||||
s32 ret = _FAIL;
|
||||
@@ -744,10 +812,9 @@ s32 rtw_hal_fill_h2c_cmd(PADAPTER padapter, u8 ElementID, u32 CmdLen, u8 *pCmdBu
|
||||
else
|
||||
{
|
||||
DBG_871X("%s: func[fill_h2c_cmd] not defined!\n", __FUNCTION__);
|
||||
rtw_warn_on(1);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif // CONFIG_BT_COEXIST
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user