diff options
Diffstat (limited to 'drivers/staging/rtl8188eu/os_dep/os_intfs.c')
-rw-r--r-- | drivers/staging/rtl8188eu/os_dep/os_intfs.c | 111 |
1 files changed, 12 insertions, 99 deletions
diff --git a/drivers/staging/rtl8188eu/os_dep/os_intfs.c b/drivers/staging/rtl8188eu/os_dep/os_intfs.c index 0e0c32d46431..c7a44ab33d64 100644 --- a/drivers/staging/rtl8188eu/os_dep/os_intfs.c +++ b/drivers/staging/rtl8188eu/os_dep/os_intfs.c @@ -20,23 +20,20 @@ #define _OS_INTFS_C_ #include <osdep_service.h> +#include <osdep_intf.h> #include <drv_types.h> #include <xmit_osdep.h> #include <recv_osdep.h> #include <hal_intf.h> #include <rtw_ioctl.h> -#include <rtw_version.h> -#include <usb_osintf.h> #include <usb_hal.h> -#include <rtw_br_ext.h> MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Realtek Wireless Lan Driver"); MODULE_AUTHOR("Realtek Semiconductor Corp."); MODULE_VERSION(DRIVERVERSION); -#define CONFIG_BR_EXT_BRNAME "br0" #define RTW_NOTCH_FILTER 0 /* 0:Disable, 1:Enable, */ /* module param defaults */ @@ -69,8 +66,6 @@ static int rtw_short_retry_lmt = 7; static int rtw_busy_thresh = 40; static int rtw_ack_policy = NORMAL_ACK; -static int rtw_mp_mode; - static int rtw_software_encrypt; static int rtw_software_decrypt; @@ -130,7 +125,6 @@ module_param(rtw_rfintfs, int, 0644); module_param(rtw_lbkmode, int, 0644); module_param(rtw_network_mode, int, 0644); module_param(rtw_channel, int, 0644); -module_param(rtw_mp_mode, int, 0644); module_param(rtw_wmm_enable, int, 0644); module_param(rtw_vrtl_carrier_sense, int, 0644); module_param(rtw_vcs_type, int, 0644); @@ -548,7 +542,7 @@ static uint loadparam(struct adapter *padapter, struct net_device *pnetdev) registry_par->short_retry_lmt = (u8)rtw_short_retry_lmt; registry_par->busy_thresh = (u16)rtw_busy_thresh; registry_par->ack_policy = (u8)rtw_ack_policy; - registry_par->mp_mode = (u8)rtw_mp_mode; + registry_par->mp_mode = 0; registry_par->software_encrypt = (u8)rtw_software_encrypt; registry_par->software_decrypt = (u8)rtw_software_decrypt; registry_par->acm_method = (u8)rtw_acm_method; @@ -713,14 +707,12 @@ static const struct device_type wlan_type = { struct net_device *rtw_init_netdev(struct adapter *old_padapter) { struct adapter *padapter; - struct net_device *pnetdev; + struct net_device *pnetdev = NULL; RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+init_net_dev\n")); if (old_padapter != NULL) pnetdev = rtw_alloc_etherdev_with_old_priv(sizeof(struct adapter), (void *)old_padapter); - else - pnetdev = rtw_alloc_etherdev(sizeof(struct adapter)); if (!pnetdev) return NULL; @@ -751,7 +743,6 @@ u32 rtw_start_drv_threads(struct adapter *padapter) else _rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); /* wait for cmd_thread to run */ - rtw_hal_start_thread(padapter); return _status; } @@ -764,7 +755,6 @@ void rtw_stop_drv_threads(struct adapter *padapter) if (padapter->cmdThread) _rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); - rtw_hal_stop_thread(padapter); } static u8 rtw_init_default_value(struct adapter *padapter) @@ -812,9 +802,6 @@ static u8 rtw_init_default_value(struct adapter *padapter) padapter->bWritePortCancel = false; padapter->bRxRSSIDisplay = 0; padapter->bNotifyChannelChange = 0; -#ifdef CONFIG_88EU_P2P - padapter->bShowGetP2PState = 1; -#endif return ret; } @@ -837,8 +824,7 @@ u8 rtw_reset_drv_sw(struct adapter *padapter) pmlmepriv->LinkDetectInfo.bBusyTraffic = false; _clr_fwstate_(pmlmepriv, _FW_UNDER_SURVEY | _FW_UNDER_LINKING); - - rtw_hal_sreset_reset_value(padapter); + rtw_hal_sreset_init(padapter); pwrctrlpriv->pwr_state_check_cnts = 0; /* mlmeextpriv */ @@ -864,24 +850,12 @@ u8 rtw_init_drv_sw(struct adapter *padapter) padapter->cmdpriv.padapter = padapter; - if ((rtw_init_evt_priv(&padapter->evtpriv)) == _FAIL) { - RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init evt_priv\n")); - ret8 = _FAIL; - goto exit; - } - if (rtw_init_mlme_priv(padapter) == _FAIL) { RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init mlme_priv\n")); ret8 = _FAIL; goto exit; } -#ifdef CONFIG_88EU_P2P - rtw_init_wifidirect_timers(padapter); - init_wifidirect_info(padapter, P2P_ROLE_DISABLE); - reset_global_wifidirect_info(padapter); -#endif /* CONFIG_88EU_P2P */ - if (init_mlme_ext_priv(padapter) == _FAIL) { RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init mlme_ext_priv\n")); ret8 = _FAIL; @@ -912,9 +886,6 @@ u8 rtw_init_drv_sw(struct adapter *padapter) rtw_init_pwrctrl_priv(padapter); - if (init_mp_priv(padapter) == _FAIL) - DBG_88E("%s: initialize MP private data Fail!\n", __func__); - ret8 = rtw_init_default_value(padapter); rtw_hal_dm_init(padapter); @@ -935,49 +906,30 @@ void rtw_cancel_all_timer(struct adapter *padapter) { RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+rtw_cancel_all_timer\n")); - _cancel_timer_ex(&padapter->mlmepriv.assoc_timer); + del_timer_sync(&padapter->mlmepriv.assoc_timer); RT_TRACE(_module_os_intfs_c_, _drv_info_, ("rtw_cancel_all_timer:cancel association timer complete!\n")); - _cancel_timer_ex(&padapter->mlmepriv.scan_to_timer); + del_timer_sync(&padapter->mlmepriv.scan_to_timer); RT_TRACE(_module_os_intfs_c_, _drv_info_, ("rtw_cancel_all_timer:cancel scan_to_timer!\n")); - _cancel_timer_ex(&padapter->mlmepriv.dynamic_chk_timer); + del_timer_sync(&padapter->mlmepriv.dynamic_chk_timer); RT_TRACE(_module_os_intfs_c_, _drv_info_, ("rtw_cancel_all_timer:cancel dynamic_chk_timer!\n")); /* cancel sw led timer */ rtw_hal_sw_led_deinit(padapter); RT_TRACE(_module_os_intfs_c_, _drv_info_, ("rtw_cancel_all_timer:cancel DeInitSwLeds!\n")); - _cancel_timer_ex(&padapter->pwrctrlpriv.pwr_state_check_timer); + del_timer_sync(&padapter->pwrctrlpriv.pwr_state_check_timer); - _cancel_timer_ex(&padapter->recvpriv.signal_stat_timer); + del_timer_sync(&padapter->recvpriv.signal_stat_timer); } u8 rtw_free_drv_sw(struct adapter *padapter) { RT_TRACE(_module_os_intfs_c_, _drv_info_, ("==>rtw_free_drv_sw")); - /* we can call rtw_p2p_enable here, but: */ - /* 1. rtw_p2p_enable may have IO operation */ - /* 2. rtw_p2p_enable is bundled with wext interface */ - #ifdef CONFIG_88EU_P2P - { - struct wifidirect_info *pwdinfo = &padapter->wdinfo; - if (!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) { - _cancel_timer_ex(&pwdinfo->find_phase_timer); - _cancel_timer_ex(&pwdinfo->restore_p2p_state_timer); - _cancel_timer_ex(&pwdinfo->pre_tx_scan_timer); - rtw_p2p_set_state(pwdinfo, P2P_STATE_NONE); - } - } - #endif - free_mlme_ext_priv(&padapter->mlmeextpriv); - rtw_free_cmd_priv(&padapter->cmdpriv); - - rtw_free_evt_priv(&padapter->evtpriv); - rtw_free_mlme_priv(&padapter->mlmepriv); _rtw_free_xmit_priv(&padapter->xmitpriv); @@ -995,40 +947,13 @@ u8 rtw_free_drv_sw(struct adapter *padapter) padapter->rereg_nd_name_priv.old_pnetdev = NULL; } - /* clear pbuddystruct adapter to avoid access wrong pointer. */ - if (padapter->pbuddy_adapter != NULL) - padapter->pbuddy_adapter->pbuddy_adapter = NULL; + mutex_destroy(&padapter->hw_init_mutex); RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-rtw_free_drv_sw\n")); return _SUCCESS; } -void netdev_br_init(struct net_device *netdev) -{ - struct adapter *adapter = (struct adapter *)rtw_netdev_priv(netdev); - - rcu_read_lock(); - - if (rcu_dereference(adapter->pnetdev->rx_handler_data)) { - struct net_device *br_netdev; - struct net *devnet = NULL; - - devnet = dev_net(netdev); - br_netdev = dev_get_by_name(devnet, CONFIG_BR_EXT_BRNAME); - if (br_netdev) { - memcpy(adapter->br_mac, br_netdev->dev_addr, ETH_ALEN); - dev_put(br_netdev); - } else { - pr_info("%s()-%d: dev_get_by_name(%s) failed!", - __func__, __LINE__, CONFIG_BR_EXT_BRNAME); - } - } - adapter->ethBrExtInfo.addPPPoETag = 1; - - rcu_read_unlock(); -} - int _netdev_open(struct net_device *pnetdev) { uint status; @@ -1046,7 +971,6 @@ int _netdev_open(struct net_device *pnetdev) if (!padapter->bup) { padapter->bDriverStopped = false; padapter->bSurpriseRemoved = false; - padapter->bCardDisableWOHSM = false; status = rtw_hal_init(padapter); if (status == _FAIL) { @@ -1086,8 +1010,6 @@ int _netdev_open(struct net_device *pnetdev) else netif_tx_wake_all_queues(pnetdev); - netdev_br_init(pnetdev); - netdev_open_normal_process: RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-88eu_drv - dev_open\n")); DBG_88E("-88eu_drv - drv_open, bup =%d\n", padapter->bup); @@ -1107,9 +1029,9 @@ int netdev_open(struct net_device *pnetdev) int ret; struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev); - _enter_critical_mutex(padapter->hw_init_mutex, NULL); + _enter_critical_mutex(&padapter->hw_init_mutex, NULL); ret = _netdev_open(pnetdev); - mutex_unlock(padapter->hw_init_mutex); + mutex_unlock(&padapter->hw_init_mutex); return ret; } @@ -1121,7 +1043,6 @@ static int ips_netdrv_open(struct adapter *padapter) padapter->bDriverStopped = false; padapter->bSurpriseRemoved = false; - padapter->bCardDisableWOHSM = false; status = rtw_hal_init(padapter); if (status == _FAIL) { @@ -1164,13 +1085,11 @@ void rtw_ips_pwr_down(struct adapter *padapter) u32 start_time = jiffies; DBG_88E("===> rtw_ips_pwr_down...................\n"); - padapter->bCardDisableWOHSM = true; padapter->net_closed = true; rtw_led_control(padapter, LED_CTL_POWER_OFF); rtw_ips_dev_unload(padapter); - padapter->bCardDisableWOHSM = false; DBG_88E("<=== rtw_ips_pwr_down..................... in %dms\n", rtw_get_passing_time_ms(start_time)); } @@ -1235,12 +1154,6 @@ int netdev_close(struct net_device *pnetdev) rtw_led_control(padapter, LED_CTL_POWER_OFF); } - nat25_db_cleanup(padapter); - -#ifdef CONFIG_88EU_P2P - rtw_p2p_enable(padapter, P2P_ROLE_DISABLE); -#endif /* CONFIG_88EU_P2P */ - kfree(dvobj->firmware.szFwBuffer); dvobj->firmware.szFwBuffer = NULL; |