static int netdev_open(struct net_device *pnetdev) { uint status; _adapter *padapter = (_adapter *)netdev_priv(pnetdev); HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); struct pwrctrl_priv *pwrctrlpriv = &padapter->pwrctrlpriv; RT_TRACE(_module_os_intfs_c_,_drv_info_,("+871x_drv - dev_open\n")); printk("+8192cu_drv - drv_open, bup=%d\n", padapter->bup); if(padapter->bup == _FALSE) { padapter->bDriverStopped = _FALSE; padapter->bSurpriseRemoved = _FALSE; padapter->bCardDisableWOHSM = _FALSE; status = rtw_hal_init(padapter); if (status ==_FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("rtl871x_hal_init(): Can't init h/w!\n")); goto netdev_open_error; } if ( rtw_initmac == NULL ) // Use the mac address stored in the Efuse { _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); } else { // Use the user specifiy mac address. // Commented by Albert 2010/07/19 // The "myid" function will get the wifi mac address from eeprompriv structure instead of netdev structure. // So, we have to overwrite the mac_addr stored in the eeprompriv structure. // In this case, the real mac address won't be used anymore. // So that, the eeprompriv.mac_addr should store the mac which users specify. _rtw_memcpy( padapter->eeprompriv.mac_addr, pnetdev->dev_addr, ETH_ALEN ); } printk("MAC Address = %x-%x-%x-%x-%x-%x\n", pnetdev->dev_addr[0], pnetdev->dev_addr[1], pnetdev->dev_addr[2], pnetdev->dev_addr[3], pnetdev->dev_addr[4], pnetdev->dev_addr[5]); status=rtw_start_drv_threads(padapter); if(status ==_FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("Initialize driver software resource Failed!\n")); goto netdev_open_error; } if (init_mlme_ext_priv(padapter) == _FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("can't init mlme_ext_priv\n")); goto netdev_open_error; } #ifdef CONFIG_DRVEXT_MODULE init_drvext(padapter); #endif #ifdef CONFIG_USB_HCI if(pHalData->hal_ops.inirp_init == NULL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("Initialize dvobjpriv.inirp_init error!!!\n")); goto netdev_open_error; } else { pHalData->hal_ops.inirp_init(padapter); } #endif #ifdef CONFIG_PROC_DEBUG rtw_proc_init_one(pnetdev); #endif padapter->bup = _TRUE; padapter->ledpriv.LedControlHandler(padapter, LED_CTL_POWER_ON); } padapter->net_closed = _FALSE; if(( pwrctrlpriv->power_mgnt != PS_MODE_ACTIVE ) ||(padapter->pwrctrlpriv.bHWPwrPindetect)) { padapter->pwrctrlpriv.bips_processing = _FALSE; _set_timer(&padapter->pwrctrlpriv.pwr_state_check_timer, padapter->pwrctrlpriv.pwr_state_check_inverval); } //netif_carrier_on(pnetdev);//call this func when rtw_joinbss_event_callback return success if(!netif_queue_stopped(pnetdev)) netif_start_queue(pnetdev); else netif_wake_queue(pnetdev); RT_TRACE(_module_os_intfs_c_,_drv_info_,("-871x_drv - dev_open\n")); printk("-871x_drv - drv_open, bup=%d\n", padapter->bup); return 0; netdev_open_error: padapter->bup = _FALSE; netif_carrier_off(pnetdev); netif_stop_queue(pnetdev); RT_TRACE(_module_os_intfs_c_,_drv_err_,("-871x_drv - dev_open, fail!\n")); printk("-871x_drv - drv_open fail, bup=%d\n", padapter->bup); return (-1); }
u8 rtw_init_drv_sw(_adapter *padapter) { u8 ret8=_SUCCESS; _func_enter_; RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_init_drv_sw\n")); if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("\n Can't init cmd_priv\n")); ret8=_FAIL; goto exit; } 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_IOCTL_CFG80211 #ifdef CONFIG_P2P rtw_init_cfg80211_wifidirect_info(padapter); #endif //CONFIG_P2P #endif //CONFIG_IOCTL_CFG80211 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; goto exit; } #ifdef CONFIG_TDLS if(rtw_init_tdls_info(padapter) == _FAIL) { DBG_871X("Can't rtw_init_tdls_info\n"); ret8=_FAIL; goto exit; } #endif //CONFIG_TDLS if(_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) { DBG_871X("Can't _rtw_init_xmit_priv\n"); ret8=_FAIL; goto exit; } if(_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) { DBG_871X("Can't _rtw_init_recv_priv\n"); ret8=_FAIL; goto exit; } // We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc(). //_rtw_memset((unsigned char *)&padapter->securitypriv, 0, sizeof (struct security_priv)); //_init_timer(&(padapter->securitypriv.tkip_timer), padapter->pnetdev, rtw_use_tkipkey_handler, padapter); if(_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) { DBG_871X("Can't _rtw_init_sta_priv\n"); ret8=_FAIL; goto exit; } padapter->stapriv.padapter = padapter; rtw_init_bcmc_stainfo(padapter); rtw_init_pwrctrl_priv(padapter); //_rtw_memset((u8 *)&padapter->qospriv, 0, sizeof (struct qos_priv));//move to mlme_priv #ifdef CONFIG_MP_INCLUDED if (init_mp_priv(padapter) == _FAIL) { ERR_8192C("%s: initialize MP private data Fail!\n", __func__); } #endif ret8 = rtw_init_default_value(padapter); rtw_dm_init(padapter); rtw_sw_led_init(padapter); #ifdef DBG_CONFIG_ERROR_DETECT rtw_sreset_init(padapter); #endif #ifdef CONFIG_BR_EXT _rtw_spinlock_init(&padapter->br_ext_lock); #endif // CONFIG_BR_EXT exit: RT_TRACE(_module_os_intfs_c_,_drv_info_,("-rtw_init_drv_sw\n")); _func_exit_; return ret8; }
u8 rtw_init_drv_sw(struct adapter *padapter) { u8 ret8 = _SUCCESS; RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+rtw_init_drv_sw\n")); if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) { RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init cmd_priv\n")); ret8 = _FAIL; goto exit; } padapter->cmdpriv.padapter = padapter; 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; } 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; goto exit; } if (_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) { DBG_88E("Can't _rtw_init_xmit_priv\n"); ret8 = _FAIL; goto exit; } if (_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) { DBG_88E("Can't _rtw_init_recv_priv\n"); ret8 = _FAIL; goto exit; } if (_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) { DBG_88E("Can't _rtw_init_sta_priv\n"); ret8 = _FAIL; goto exit; } padapter->stapriv.padapter = padapter; rtw_init_bcmc_stainfo(padapter); rtw_init_pwrctrl_priv(padapter); ret8 = rtw_init_default_value(padapter); rtw_hal_dm_init(padapter); rtw_hal_sw_led_init(padapter); rtw_hal_sreset_init(padapter); spin_lock_init(&padapter->br_ext_lock); exit: RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-rtw_init_drv_sw\n")); return ret8; }
u8 rtw_init_drv_sw(struct adapter *padapter) { u8 ret8 = _SUCCESS; _func_enter_; RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+rtw_init_drv_sw\n")); if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) { RT_TRACE(_module_os_intfs_c_, _drv_err_, ("\n Can't init cmd_priv\n")); ret8 = _FAIL; goto exit; } 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; goto exit; } if (_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) { DBG_88E("Can't _rtw_init_xmit_priv\n"); ret8 = _FAIL; goto exit; } if (_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) { DBG_88E("Can't _rtw_init_recv_priv\n"); ret8 = _FAIL; goto exit; } if (_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) { DBG_88E("Can't _rtw_init_sta_priv\n"); ret8 = _FAIL; goto exit; } padapter->stapriv.padapter = padapter; rtw_init_bcmc_stainfo(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); rtw_hal_sw_led_init(padapter); rtw_hal_sreset_init(padapter); _rtw_spinlock_init(&padapter->br_ext_lock); exit: RT_TRACE(_module_os_intfs_c_, _drv_info_, ("-rtw_init_drv_sw\n")); _func_exit_; return ret8; }
int rtl8821au_init_sw_vars(struct net_device *ndev) { struct rtl_priv *rtlpriv = rtl_priv(ndev); uint8_t ret8 = _SUCCESS; ret8 = rtw_init_default_value(rtlpriv); if ((rtw_init_cmd_priv(&rtlpriv->cmdpriv)) == _FAIL) { ret8 = _FAIL; goto exit; } rtlpriv->cmdpriv.rtlpriv = rtlpriv; if ((rtw_init_evt_priv(&rtlpriv->evtpriv)) == _FAIL) { ret8 = _FAIL; goto exit; } if (rtw_init_mlme_priv(rtlpriv) == _FAIL) { ret8 = _FAIL; goto exit; } if (init_mlme_ext_priv(rtlpriv) == _FAIL) { ret8 = _FAIL; goto exit; } if (_rtw_init_xmit_priv(&rtlpriv->xmitpriv, rtlpriv) == _FAIL) { DBG_871X("Can't _rtw_init_xmit_priv\n"); ret8 = _FAIL; goto exit; } if (_rtw_init_recv_priv(&rtlpriv->recvpriv, rtlpriv) == _FAIL) { DBG_871X("Can't _rtw_init_recv_priv\n"); ret8 = _FAIL; goto exit; } /* * We don't need to memset rtlpriv->XXX to zero, because rtlpriv is allocated by rtw_zvmalloc(). * memset((unsigned char *)&rtlpriv->securitypriv, 0, sizeof (struct security_priv)); */ /* _init_timer(&(rtlpriv->securitypriv.tkip_timer), rtlpriv->pifp, rtw_use_tkipkey_handler, rtlpriv); */ if (_rtw_init_sta_priv(&rtlpriv->stapriv) == _FAIL) { DBG_871X("Can't _rtw_init_sta_priv\n"); ret8 = _FAIL; goto exit; } rtlpriv->stapriv.rtlpriv = rtlpriv; rtlpriv->setband = GHZ24_50; rtw_init_bcmc_stainfo(rtlpriv); rtw_init_pwrctrl_priv(rtlpriv); /* memset((uint8_t *)&rtlpriv->qospriv, 0, sizeof (struct qos_priv));//move to mlme_priv */ rtw_hal_dm_init(rtlpriv); rtw_hal_sw_led_init(rtlpriv); exit: return ret8; }
u8 rtw_init_drv_sw(_adapter *padapter) { u8 ret8=_SUCCESS; _func_enter_; RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_init_drv_sw\n")); if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("\n Can't init cmd_priv\n")); ret8=_FAIL; goto exit; } 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; } 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; goto exit; } if(_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) { DBG_871X("Can't _rtw_init_xmit_priv\n"); ret8=_FAIL; goto exit; } if(_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) { DBG_871X("Can't _rtw_init_recv_priv\n"); ret8=_FAIL; goto exit; } _rtw_memset((unsigned char *)&padapter->securitypriv, 0, sizeof (struct security_priv)); //_init_timer(&(padapter->securitypriv.tkip_timer), padapter->pnetdev, rtw_use_tkipkey_handler, padapter); if(_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) { DBG_871X("Can't _rtw_init_sta_priv\n"); ret8=_FAIL; goto exit; } padapter->stapriv.padapter = padapter; rtw_init_bcmc_stainfo(padapter); rtw_init_pwrctrl_priv(padapter); //_rtw_memset((u8 *)&padapter->qospriv, 0, sizeof (struct qos_priv));//move to mlme_priv #ifdef CONFIG_MP_INCLUDED if (init_mp_priv(padapter) == _FAIL) { ERR_8192C("%s: initialize MP private data Fail!\n", __func__); } #endif ret8 = rtw_init_default_value(padapter); rtw_dm_init(padapter); rtw_sw_led_init(padapter); #ifdef SILENT_RESET_FOR_SPECIFIC_PLATFOM rtw_sreset_init(padapter); #endif//SILENT_RESET_FOR_SPECIFIC_PLATFOM exit: RT_TRACE(_module_os_intfs_c_,_drv_info_,("-rtw_init_drv_sw\n")); _func_exit_; return ret8; }
static int netdev_open(struct net_device *pnetdev) { uint status; _adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev); struct pwrctrl_priv *pwrctrlpriv = &padapter->pwrctrlpriv; RT_TRACE(_module_os_intfs_c_,_drv_info_,("+871x_drv - dev_open\n")); DBG_8192C("+871x_drv - drv_open, bup=%d\n", padapter->bup); if(padapter->bup == _FALSE) { padapter->bDriverStopped = _FALSE; padapter->bSurpriseRemoved = _FALSE; padapter->bCardDisableWOHSM = _FALSE; status = rtw_hal_init(padapter); if (status ==_FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("rtl871x_hal_init(): Can't init h/w!\n")); goto netdev_open_error; } DBG_8192C("MAC Address = %x-%x-%x-%x-%x-%x\n", pnetdev->dev_addr[0], pnetdev->dev_addr[1], pnetdev->dev_addr[2], pnetdev->dev_addr[3], pnetdev->dev_addr[4], pnetdev->dev_addr[5]); status=rtw_start_drv_threads(padapter); if(status ==_FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("Initialize driver software resource Failed!\n")); goto netdev_open_error; } if (init_mlme_ext_priv(padapter) == _FAIL) { RT_TRACE(_module_os_intfs_c_,_drv_err_,("can't init mlme_ext_priv\n")); goto netdev_open_error; } #ifdef CONFIG_DRVEXT_MODULE init_drvext(padapter); #endif if(padapter->intf_start) { padapter->intf_start(padapter); } #ifdef CONFIG_PROC_DEBUG #ifndef RTK_DMP_PLATFORM rtw_proc_init_one(pnetdev); #endif #endif padapter->bup = _TRUE; } padapter->net_closed = _FALSE; _set_timer(&padapter->mlmepriv.dynamic_chk_timer, 2000); if(( pwrctrlpriv->power_mgnt != PS_MODE_ACTIVE ) ||(padapter->pwrctrlpriv.bHWPwrPindetect)) { padapter->pwrctrlpriv.bips_processing = _FALSE; _set_timer(&padapter->pwrctrlpriv.pwr_state_check_timer, padapter->pwrctrlpriv.pwr_state_check_inverval); } //netif_carrier_on(pnetdev);//call this func when rtw_joinbss_event_callback return success if(!netif_queue_stopped(pnetdev)) netif_start_queue(pnetdev); else netif_wake_queue(pnetdev); RT_TRACE(_module_os_intfs_c_,_drv_info_,("-871x_drv - dev_open\n")); DBG_8192C("-871x_drv - drv_open, bup=%d\n", padapter->bup); return 0; netdev_open_error: padapter->bup = _FALSE; netif_carrier_off(pnetdev); netif_stop_queue(pnetdev); RT_TRACE(_module_os_intfs_c_,_drv_err_,("-871x_drv - dev_open, fail!\n")); DBG_8192C("-871x_drv - drv_open fail, bup=%d\n", padapter->bup); return (-1); }