rtl8188eu: Remove code selected when CONFIG_CONCURRENT_MODE is defined

This parameter can only be set for RTL8192DU.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2015-02-15 14:31:30 -06:00
parent 1305b2dc4b
commit 020675ff42
28 changed files with 78 additions and 3708 deletions

View file

@ -1353,14 +1353,7 @@ static int rtw_cfg80211_set_encryption(struct net_device *dev, struct ieee_param
DBG_871X(" ~~~~set sta key:groupkey\n");
padapter->securitypriv.dot118021XGrpKeyid = param->u.crypt.idx;
#ifdef CONFIG_CONCURRENT_MODE
if (padapter->adapter_type == PRIMARY_ADAPTER)
rtw_set_key(padapter,&padapter->securitypriv,param->u.crypt.idx, 1,true);
else
DBG_871X_LEVEL(_drv_always_, "second interface do not set cam.\n");
#else
rtw_set_key(padapter,&padapter->securitypriv,param->u.crypt.idx, 1,true);
#endif
}
#ifdef CONFIG_IEEE80211W
else if(strcmp(param->u.crypt.alg, "BIP") == 0)
@ -1772,9 +1765,6 @@ exit:
}
extern int netdev_open(struct net_device *pnetdev);
#ifdef CONFIG_CONCURRENT_MODE
extern int netdev_if2_open(struct net_device *pnetdev);
#endif
/*
enum nl80211_iftype {
@ -1818,23 +1808,10 @@ static int cfg80211_rtw_change_iface(struct wiphy *wiphy,
}
#ifdef CONFIG_CONCURRENT_MODE
if(padapter->adapter_type == SECONDARY_ADAPTER)
{
DBG_871X(FUNC_NDEV_FMT" call netdev_if2_open\n", FUNC_NDEV_ARG(ndev));
if(netdev_if2_open(ndev) != 0) {
ret= -EPERM;
goto exit;
}
}
else if(padapter->adapter_type == PRIMARY_ADAPTER)
#endif //CONFIG_CONCURRENT_MODE
{
DBG_871X(FUNC_NDEV_FMT" call netdev_open\n", FUNC_NDEV_ARG(ndev));
if(netdev_open(ndev) != 0) {
ret= -EPERM;
goto exit;
}
DBG_871X(FUNC_NDEV_FMT" call netdev_open\n", FUNC_NDEV_ARG(ndev));
if(netdev_open(ndev) != 0) {
ret= -EPERM;
goto exit;
}
if(_FAIL == rtw_pwr_wakeup(padapter)) {
@ -2142,21 +2119,8 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
struct cfg80211_ssid *ssids = request->ssids;
int social_channel = 0, j = 0;
bool need_indicate_scan_done = false;
#ifdef CONFIG_CONCURRENT_MODE
PADAPTER pbuddy_adapter = NULL;
struct mlme_priv *pbuddy_mlmepriv = NULL;
#endif //CONFIG_CONCURRENT_MODE
//#ifdef CONFIG_DEBUG_CFG80211
DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter));
//#endif
#ifdef CONFIG_CONCURRENT_MODE
if (padapter->pbuddy_adapter) {
pbuddy_adapter = padapter->pbuddy_adapter;
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
}
#endif //CONFIG_CONCURRENT_MODE
_enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL);
pwdev_priv->scan_request = request;
@ -2249,31 +2213,6 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
goto check_need_indicate_scan_done;
}
#ifdef CONFIG_CONCURRENT_MODE
if(pbuddy_mlmepriv && (pbuddy_mlmepriv->LinkDetectInfo.bBusyTraffic == true))
{
DBG_8192C("%s, bBusyTraffic == true at buddy_intf\n", __func__);
need_indicate_scan_done = true;
goto check_need_indicate_scan_done;
}
if (check_buddy_fwstate(padapter,
_FW_UNDER_SURVEY|_FW_UNDER_LINKING|WIFI_UNDER_WPS) == true)
{
if(check_buddy_fwstate(padapter, _FW_UNDER_SURVEY))
{
DBG_8192C("scanning_via_buddy_intf\n");
pmlmepriv->scanning_via_buddy_intf = true;
}
DBG_8192C("buddy_intf's mlme state:0x%x\n", pbuddy_mlmepriv->fw_state);
need_indicate_scan_done = true;
goto check_need_indicate_scan_done;
}
#endif
#ifdef CONFIG_P2P
if( pwdinfo->driver_interface == DRIVER_CFG80211 )
{
@ -2756,17 +2695,6 @@ static int cfg80211_rtw_join_ibss(struct wiphy *wiphy, struct net_device *ndev,
goto exit;
}
#ifdef CONFIG_CONCURRENT_MODE
if (check_buddy_fwstate(padapter, _FW_UNDER_LINKING) == true) {
DBG_8192C("%s, but buddy_intf is under linking\n", __FUNCTION__);
ret = -EINVAL;
goto exit;
}
if (check_buddy_fwstate(padapter, _FW_UNDER_SURVEY) == true) {
rtw_scan_abort(padapter->pbuddy_adapter);
}
#endif //CONFIG_CONCURRENT_MODE
if (!params->ssid || !params->ssid_len)
{
ret = -EINVAL;
@ -2869,17 +2797,6 @@ static int cfg80211_rtw_connect(struct wiphy *wiphy, struct net_device *ndev,
goto exit;
}
#ifdef CONFIG_CONCURRENT_MODE
if (check_buddy_fwstate(padapter, _FW_UNDER_LINKING) == true) {
DBG_8192C("%s, but buddy_intf is under linking\n", __FUNCTION__);
ret = -EINVAL;
goto exit;
}
if (check_buddy_fwstate(padapter, _FW_UNDER_SURVEY) == true) {
rtw_scan_abort(padapter->pbuddy_adapter);
}
#endif
if (!sme->ssid || !sme->ssid_len)
{
ret = -EINVAL;
@ -4459,10 +4376,6 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy,
_cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer);
#ifdef CONFIG_CONCURRENT_MODE
ATOMIC_SET(&pwdev_priv->ro_ch_to, 1);
#endif //CONFIG_CONCURRENT_MODE
p2p_protocol_wk_hdl(padapter, P2P_RO_CH_WK);
}
@ -4480,12 +4393,6 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy,
pcfg80211_wdinfo->remain_on_ch_cookie= *cookie;
rtw_scan_abort(padapter);
#ifdef CONFIG_CONCURRENT_MODE
if(rtw_buddy_adapter_up(padapter))
rtw_scan_abort(padapter->pbuddy_adapter);
#endif //CONFIG_CONCURRENT_MODE
//if(!rtw_p2p_chk_role(pwdinfo, P2P_ROLE_CLIENT) && !rtw_p2p_chk_role(pwdinfo, P2P_ROLE_GO))
if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))
{
rtw_p2p_enable(padapter, P2P_ROLE_DEVICE);
@ -4508,79 +4415,29 @@ static s32 cfg80211_rtw_remain_on_channel(struct wiphy *wiphy,
duration = duration*3;//extend from exper.
#ifdef CONFIG_CONCURRENT_MODE
if(check_buddy_fwstate(padapter, _FW_LINKED) &&
(duration<pwdinfo->ext_listen_interval))
{
duration = duration + pwdinfo->ext_listen_interval;
}
#endif
pcfg80211_wdinfo->restore_channel = rtw_get_oper_ch(padapter);
if(rtw_ch_set_search_ch(pmlmeext->channel_set, remain_ch) >= 0) {
#ifdef CONFIG_CONCURRENT_MODE
if ( check_buddy_fwstate(padapter, _FW_LINKED ) )
{
PADAPTER pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
if(remain_ch != pbuddy_mlmeext->cur_channel)
{
if(ATOMIC_READ(&pwdev_priv->switch_ch_to)==1 ||
(remain_ch != pmlmeext->cur_channel))
{
DBG_8192C("%s, issue nulldata pwrbit=1\n", __func__);
issue_nulldata(padapter->pbuddy_adapter, NULL, 1, 3, 500);
ATOMIC_SET(&pwdev_priv->switch_ch_to, 0);
DBG_8192C("%s, set switch ch timer, duration=%d\n", __func__, duration-pwdinfo->ext_listen_interval);
_set_timer(&pwdinfo->ap_p2p_switch_timer, duration-pwdinfo->ext_listen_interval);
}
}
if(remain_ch != rtw_get_oper_ch(padapter) )
ready_on_channel = true;
//pmlmeext->cur_channel = remain_ch;
//set_channel_bwmode(padapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}else
#endif //CONFIG_CONCURRENT_MODE
if(remain_ch != rtw_get_oper_ch(padapter) )
{
ready_on_channel = true;
//pmlmeext->cur_channel = remain_ch;
//set_channel_bwmode(padapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}
} else {
DBG_871X("%s remain_ch:%u not in channel plan!!!!\n", __FUNCTION__, remain_ch);
}
//call this after other things have been done
#ifdef CONFIG_CONCURRENT_MODE
if(ATOMIC_READ(&pwdev_priv->ro_ch_to)==1 ||
(remain_ch != rtw_get_oper_ch(padapter)))
{
u8 co_channel = 0xff;
ATOMIC_SET(&pwdev_priv->ro_ch_to, 0);
#endif
if(ready_on_channel == true)
if(ready_on_channel == true) {
if ( !check_fwstate(&padapter->mlmepriv, _FW_LINKED ) )
{
if ( !check_fwstate(&padapter->mlmepriv, _FW_LINKED ) )
{
pmlmeext->cur_channel = remain_ch;
pmlmeext->cur_channel = remain_ch;
set_channel_bwmode(padapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}
set_channel_bwmode(padapter, remain_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}
DBG_8192C("%s, set ro ch timer, duration=%d\n", __func__, duration);
_set_timer( &pcfg80211_wdinfo->remain_on_ch_timer, duration);
#ifdef CONFIG_CONCURRENT_MODE
}
#endif
DBG_8192C("%s, set ro ch timer, duration=%d\n", __func__, duration);
_set_timer( &pcfg80211_wdinfo->remain_on_ch_timer, duration);
rtw_cfg80211_ready_on_channel(padapter, *cookie, channel, channel_type, duration, GFP_KERNEL);
@ -4610,9 +4467,6 @@ static s32 cfg80211_rtw_cancel_remain_on_channel(struct wiphy *wiphy,
if (pcfg80211_wdinfo->is_ro_ch == true) {
DBG_8192C("%s, cancel ro ch timer\n", __func__);
_cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer);
#ifdef CONFIG_CONCURRENT_MODE
ATOMIC_SET(&pwdev_priv->ro_ch_to, 1);
#endif
p2p_protocol_wk_hdl(padapter, P2P_RO_CH_WK);
}
@ -4652,68 +4506,7 @@ static int _cfg80211_rtw_mgmt_tx(struct adapter *padapter, u8 tx_ch, const u8 *b
rtw_set_scan_deny(padapter, 1000);
rtw_scan_abort(padapter);
#ifdef CONFIG_CONCURRENT_MODE
if(rtw_buddy_adapter_up(padapter))
rtw_scan_abort(padapter->pbuddy_adapter);
#endif /* CONFIG_CONCURRENT_MODE */
if (padapter->cfg80211_wdinfo.is_ro_ch == true) {
//DBG_8192C("%s, cancel ro ch timer\n", __func__);
//_cancel_timer_ex(&padapter->cfg80211_wdinfo.remain_on_ch_timer);
//padapter->cfg80211_wdinfo.is_ro_ch = false;
#ifdef CONFIG_CONCURRENT_MODE
if (!check_fwstate(&padapter->mlmepriv, _FW_LINKED ))
{
DBG_8192C("%s, extend ro ch time\n", __func__);
_set_timer( &padapter->cfg80211_wdinfo.remain_on_ch_timer, pwdinfo->ext_listen_period);
}
#endif //CONFIG_CONCURRENT_MODE
}
#ifdef CONFIG_CONCURRENT_MODE
if (check_buddy_fwstate(padapter, _FW_LINKED )) {
u8 co_channel=0xff;
PADAPTER pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
co_channel = rtw_get_oper_ch(padapter);
if (tx_ch != pbuddy_mlmeext->cur_channel) {
u16 ext_listen_period;
if (ATOMIC_READ(&pwdev_priv->switch_ch_to)==1) {
DBG_8192C("%s, issue nulldata pwrbit=1\n", __func__);
issue_nulldata(padapter->pbuddy_adapter, NULL, 1, 3, 500);
ATOMIC_SET(&pwdev_priv->switch_ch_to, 0);
//DBG_8192C("%s, set switch ch timer, period=%d\n", __func__, pwdinfo->ext_listen_period);
//_set_timer(&pwdinfo->ap_p2p_switch_timer, pwdinfo->ext_listen_period);
}
if (check_fwstate(&padapter->mlmepriv, _FW_LINKED ))
{
ext_listen_period = 500;// 500ms
}
else
{
ext_listen_period = pwdinfo->ext_listen_period;
}
DBG_8192C("%s, set switch ch timer, period=%d\n", __func__, ext_listen_period);
_set_timer(&pwdinfo->ap_p2p_switch_timer, ext_listen_period);
}
if (!check_fwstate(&padapter->mlmepriv, _FW_LINKED ))
pmlmeext->cur_channel = tx_ch;
if (tx_ch != co_channel)
set_channel_bwmode(padapter, tx_ch, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}else
#endif //CONFIG_CONCURRENT_MODE
//if (tx_ch != pmlmeext->cur_channel) {
if(tx_ch != rtw_get_oper_ch(padapter)) {
if (!check_fwstate(&padapter->mlmepriv, _FW_LINKED ))
pmlmeext->cur_channel = tx_ch;
@ -5591,11 +5384,6 @@ int rtw_wdev_alloc(struct adapter *padapter, struct device *dev)
else
pwdev_priv->power_mgmt = false;
#ifdef CONFIG_CONCURRENT_MODE
ATOMIC_SET(&pwdev_priv->switch_ch_to, 1);
ATOMIC_SET(&pwdev_priv->ro_ch_to, 1);
#endif
return ret;
rtw_mfree((u8*)wdev, sizeof(struct wireless_dev));

View file

@ -1725,28 +1725,6 @@ static int rtw_wx_set_wap(struct net_device *dev,
struct wlan_network *pnetwork = NULL;
NDIS_802_11_AUTHENTICATION_MODE authmode;
;
/*
#ifdef CONFIG_CONCURRENT_MODE
if(padapter->iface_type > PRIMARY_IFACE)
{
ret = -EINVAL;
goto exit;
}
#endif
*/
#ifdef CONFIG_CONCURRENT_MODE
if (check_buddy_fwstate(padapter, _FW_UNDER_SURVEY|_FW_UNDER_LINKING) == true)
{
DBG_871X("set bssid, but buddy_intf is under scanning or linking\n");
ret = -EINVAL;
goto exit;
}
#endif
#ifdef CONFIG_DUALMAC_CONCURRENT
if (dc_check_fwstate(padapter, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)== true)
{
@ -1934,12 +1912,7 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
// When Busy Traffic, driver do not site survey. So driver return success.
// wpa_supplicant will not issue SIOCSIWSCAN cmd again after scan timeout.
// modify by thomas 2011-02-22.
if (pmlmepriv->LinkDetectInfo.bBusyTraffic == true
#ifdef CONFIG_CONCURRENT_MODE
|| rtw_get_buddy_bBusyTraffic(padapter) == true
#endif //CONFIG_CONCURRENT_MODE
)
{
if (pmlmepriv->LinkDetectInfo.bBusyTraffic == true) {
indicate_wx_scan_complete_event(padapter);
goto exit;
}
@ -1967,22 +1940,6 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
}
#endif
#ifdef CONFIG_CONCURRENT_MODE
if (check_buddy_fwstate(padapter,
_FW_UNDER_SURVEY|_FW_UNDER_LINKING|WIFI_UNDER_WPS) == true)
{
if(check_buddy_fwstate(padapter, _FW_UNDER_SURVEY))
{
DBG_871X("scanning_via_buddy_intf\n");
pmlmepriv->scanning_via_buddy_intf = true;
}
indicate_wx_scan_complete_event(padapter);
goto exit;
}
#endif
#ifdef CONFIG_DUALMAC_CONCURRENT
if (dc_check_fwstate(padapter, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)== true)
{
@ -2164,15 +2121,6 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a,
DBG_871X("DBG_IOCTL %s:%d\n",__FUNCTION__, __LINE__);
#endif
/*
#ifdef CONFIG_CONCURRENT_MODE
if(padapter->iface_type > PRIMARY_IFACE)
{
ret = -EINVAL;
goto exit;
}
#endif
*/
if(adapter_to_pwrctl(padapter)->brfoffbyhw && padapter->bDriverStopped)
{
ret = -EINVAL;
@ -2199,21 +2147,6 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a,
}
#endif //CONFIG_P2P
/*
#ifdef CONFIG_CONCURRENT_MODE
if(pmlmepriv->scanning_via_buddy_intf == true)
{
pmlmepriv->scanning_via_buddy_intf = false;//reset
// change pointers to buddy interface
padapter = pbuddy_adapter;
pmlmepriv = pbuddy_mlmepriv;
queue = &(pbuddy_mlmepriv->scanned_queue);
}
#endif // CONFIG_CONCURRENT_MODE
*/
#if 1 // Wireless Extension use EAGAIN to try
wait_status = _FW_UNDER_SURVEY
#ifndef CONFIG_ANDROID
| _FW_UNDER_LINKING
@ -2224,31 +2157,6 @@ static int rtw_wx_get_scan(struct net_device *dev, struct iw_request_info *a,
{
return -EAGAIN;
}
#else
wait_status = _FW_UNDER_SURVEY
#ifndef CONFIG_ANDROID
|_FW_UNDER_LINKING
#endif
;
#ifdef CONFIG_DUALMAC_CONCURRENT
while(dc_check_fwstate(padapter, wait_status)== true)
{
rtw_msleep_os(30);
cnt++;
if(cnt > wait_for_surveydone )
break;
}
#endif // CONFIG_DUALMAC_CONCURRENT
while(check_fwstate(pmlmepriv, wait_status) == true)
{
rtw_msleep_os(30);
cnt++;
if(cnt > wait_for_surveydone )
break;
}
#endif
_enter_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
@ -2324,27 +2232,6 @@ static int rtw_wx_set_essid(struct net_device *dev,
DBG_871X("DBG_IOCTL %s:%d\n",__FUNCTION__, __LINE__);
#endif
/*
#ifdef CONFIG_CONCURRENT_MODE
if(padapter->iface_type > PRIMARY_IFACE)
{
ret = -EINVAL;
goto exit;
}
#endif
*/
#ifdef CONFIG_CONCURRENT_MODE
if (check_buddy_fwstate(padapter, _FW_UNDER_SURVEY|_FW_UNDER_LINKING) == true)
{
DBG_871X("set ssid, but buddy_intf is under scanning or linking\n");
ret = -EINVAL;
goto exit;
}
#endif
#ifdef CONFIG_DUALMAC_CONCURRENT
if (dc_check_fwstate(padapter, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)== true)
{
@ -3999,33 +3886,7 @@ static int rtw_wext_p2p_enable(struct net_device *dev,
pwdinfo->operating_channel = pwdinfo->listen_channel;
ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
bwmode = HT_CHANNEL_WIDTH_20;
}
#ifdef CONFIG_CONCURRENT_MODE
else if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_IDLE))
{
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
//struct wifidirect_info *pbuddy_wdinfo = &pbuddy_adapter->wdinfo;
struct mlme_priv *pbuddy_mlmepriv = &pbuddy_adapter->mlmepriv;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
_set_timer( &pwdinfo->ap_p2p_switch_timer, pwdinfo->ext_listen_interval );
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
pwdinfo->operating_channel = pbuddy_mlmeext->cur_channel;
// How about the ch_offset and bwmode ??
}
else
{
pwdinfo->operating_channel = pwdinfo->listen_channel;
}
channel = pbuddy_mlmeext->cur_channel;
ch_offset = pbuddy_mlmeext->cur_ch_offset;
bwmode = pbuddy_mlmeext->cur_bwmode;
}
#endif
else
{
} else {
pwdinfo->operating_channel = pmlmeext->cur_channel;
channel = pwdinfo->operating_channel;
@ -4237,12 +4098,6 @@ static int rtw_p2p_get_status(struct net_device *dev,
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev);
struct iw_point *pdata = &wrqu->data;
struct wifidirect_info *pwdinfo = &( padapter->wdinfo );
#ifdef CONFIG_CONCURRENT_MODE
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
struct wifidirect_info *pbuddy_wdinfo = &pbuddy_adapter->wdinfo;
struct mlme_priv *pbuddy_mlmepriv = &pbuddy_adapter->mlmepriv;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
#endif
if ( padapter->bShowGetP2PState )
{
@ -4913,11 +4768,6 @@ static int rtw_p2p_connect(struct net_device *dev,
_queue *queue = &(pmlmepriv->scanned_queue);
struct wlan_network *pnetwork = NULL;
uint uintPeerChannel = 0;
#ifdef CONFIG_CONCURRENT_MODE
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_priv *pbuddy_mlmepriv = &pbuddy_adapter->mlmepriv;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
#endif // CONFIG_CONCURRENT_MODE
// Commented by Albert 20110304
// The input data contains two informations.
@ -4967,15 +4817,7 @@ static int rtw_p2p_connect(struct net_device *dev,
_exit_critical_bh(&(pmlmepriv->scanned_queue.lock), &irqL);
if ( uintPeerChannel )
{
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
_cancel_timer_ex( &pwdinfo->ap_p2p_switch_timer );
}
#endif // CONFIG_CONCURRENT_MODE
if ( uintPeerChannel ) {
_rtw_memset( &pwdinfo->nego_req_info, 0x00, sizeof( struct tx_nego_req_info ) );
_rtw_memset( &pwdinfo->groupid_info, 0x00, sizeof( struct group_id_info ) );
@ -4993,34 +4835,10 @@ static int rtw_p2p_connect(struct net_device *dev,
rtw_p2p_set_pre_state(pwdinfo, rtw_p2p_state(pwdinfo));
rtw_p2p_set_state(pwdinfo, P2P_STATE_GONEGO_ING);
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
// Have to enter the power saving with the AP
set_channel_bwmode(padapter, pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_ch_offset, pbuddy_mlmeext->cur_bwmode);
issue_nulldata(pbuddy_adapter, NULL, 1, 3, 500);
}
#endif // CONFIG_CONCURRENT_MODE
DBG_871X( "[%s] Start PreTx Procedure!\n", __FUNCTION__ );
_set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT );
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_CONCURRENT_GO_NEGO_TIMEOUT );
}
else
{
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_GO_NEGO_TIMEOUT );
}
#else
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_GO_NEGO_TIMEOUT );
#endif // CONFIG_CONCURRENT_MODE
}
else
{
} else {
DBG_871X( "[%s] Not Found in Scanning Queue~\n", __FUNCTION__ );
ret = -1;
}
@ -5049,11 +4867,6 @@ static int rtw_p2p_invite_req(struct net_device *dev,
uint p2pielen = 0, attr_contentlen = 0;
_irqL irqL;
struct tx_invite_req_info* pinvite_req_info = &pwdinfo->invitereq_info;
#ifdef CONFIG_CONCURRENT_MODE
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_priv *pbuddy_mlmepriv = &pbuddy_adapter->mlmepriv;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
#endif // CONFIG_CONCURRENT_MODE
#ifdef CONFIG_WFD
struct wifi_display_info* pwfd_info = pwdinfo->wfd_info;
@ -5183,15 +4996,7 @@ static int rtw_p2p_invite_req(struct net_device *dev,
}
#endif // CONFIG_WFD
if ( uintPeerChannel )
{
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
_cancel_timer_ex( &pwdinfo->ap_p2p_switch_timer );
}
#endif // CONFIG_CONCURRENT_MODE
if ( uintPeerChannel ) {
// Store the GO's bssid
for( jj = 0, kk = 18; jj < ETH_ALEN; jj++, kk += 3 )
{
@ -5207,41 +5012,12 @@ static int rtw_p2p_invite_req(struct net_device *dev,
rtw_p2p_set_pre_state(pwdinfo, rtw_p2p_state(pwdinfo));
rtw_p2p_set_state(pwdinfo, P2P_STATE_TX_INVITE_REQ);
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
// Have to enter the power saving with the AP
set_channel_bwmode(padapter, pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_ch_offset, pbuddy_mlmeext->cur_bwmode);
issue_nulldata(pbuddy_adapter, NULL, 1, 3, 500);
}
else
{
set_channel_bwmode(padapter, uintPeerChannel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}
#else
set_channel_bwmode(padapter, uintPeerChannel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
#endif
_set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT );
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_CONCURRENT_INVITE_TIMEOUT );
}
else
{
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_INVITE_TIMEOUT );
}
#else
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_INVITE_TIMEOUT );
#endif // CONFIG_CONCURRENT_MODE
}
else
{
} else {
DBG_871X( "[%s] NOT Found in the Scanning Queue!\n", __FUNCTION__ );
}
exit:
@ -5271,11 +5047,6 @@ static int rtw_p2p_set_persistent(struct net_device *dev,
uint p2pielen = 0, attr_contentlen = 0;
_irqL irqL;
struct tx_invite_req_info* pinvite_req_info = &pwdinfo->invitereq_info;
#ifdef CONFIG_CONCURRENT_MODE
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_priv *pbuddy_mlmepriv = &pbuddy_adapter->mlmepriv;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
#endif // CONFIG_CONCURRENT_MODE
#ifdef CONFIG_WFD
struct wifi_display_info* pwfd_info = pwdinfo->wfd_info;
@ -5411,10 +5182,6 @@ static int rtw_p2p_set_pc(struct net_device *dev,
uint p2pielen = 0, attr_contentlen = 0;
_irqL irqL;
uint uintPeerChannel = 0;
#ifdef CONFIG_CONCURRENT_MODE
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
#endif // CONFIG_CONCURRENT_MODE
struct wifi_display_info* pwfd_info = pwdinfo->wfd_info;
// Commented by Albert 20120512
@ -5713,11 +5480,6 @@ static int rtw_p2p_prov_disc(struct net_device *dev,
uint p2pielen = 0, attr_contentlen = 0;
_irqL irqL;
u8 ie_offset;
#ifdef CONFIG_CONCURRENT_MODE
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
struct mlme_priv *pbuddy_mlmepriv = &pbuddy_adapter->mlmepriv;
struct mlme_ext_priv *pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
#endif // CONFIG_CONCURRENT_MODE
#ifdef CONFIG_WFD
struct wifi_display_info* pwfd_info = pwdinfo->wfd_info;
@ -5900,12 +5662,6 @@ static int rtw_p2p_prov_disc(struct net_device *dev,
#endif // CONFIG_WFD
DBG_871X( "[%s] peer channel: %d!\n", __FUNCTION__, uintPeerChannel );
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
_cancel_timer_ex( &pwdinfo->ap_p2p_switch_timer );
}
#endif // CONFIG_CONCURRENT_MODE
_rtw_memcpy( pwdinfo->tx_prov_disc_info.peerIFAddr, pnetwork->network.MacAddress, ETH_ALEN );
_rtw_memcpy( pwdinfo->tx_prov_disc_info.peerDevAddr, peerMAC, ETH_ALEN );
pwdinfo->tx_prov_disc_info.peer_channel_num[0] = ( u16 ) uintPeerChannel;
@ -5923,40 +5679,12 @@ static int rtw_p2p_prov_disc(struct net_device *dev,
pwdinfo->tx_prov_disc_info.ssid.SsidLength= P2P_WILDCARD_SSID_LEN;
}
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
// Have to enter the power saving with the AP
set_channel_bwmode(padapter, pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_ch_offset, pbuddy_mlmeext->cur_bwmode);
issue_nulldata(pbuddy_adapter, NULL, 1, 3, 500);
}
else
{
set_channel_bwmode(padapter, uintPeerChannel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
}
#else
set_channel_bwmode(padapter, uintPeerChannel, HAL_PRIME_CHNL_OFFSET_DONT_CARE, HT_CHANNEL_WIDTH_20);
#endif
_set_timer( &pwdinfo->pre_tx_scan_timer, P2P_TX_PRESCAN_TIMEOUT );
#ifdef CONFIG_CONCURRENT_MODE
if ( check_fwstate( pbuddy_mlmepriv, _FW_LINKED ) )
{
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_CONCURRENT_PROVISION_TIMEOUT );
}
else
{
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_PROVISION_TIMEOUT );
}
#else
_set_timer( &pwdinfo->restore_p2p_state_timer, P2P_PROVISION_TIMEOUT );
#endif // CONFIG_CONCURRENT_MODE
}
else
{
} else {
DBG_871X( "[%s] NOT Found in the Scanning Queue!\n", __FUNCTION__ );
#ifdef CONFIG_INTEL_WIDI
rtw_p2p_set_state(pwdinfo, P2P_STATE_FIND_PHASE_SEARCH);
@ -6305,18 +6033,12 @@ static int rtw_rereg_nd_name(struct net_device *dev,
if(rereg_priv->old_ifname[0] == 0) {
char *reg_ifname;
#ifdef CONFIG_CONCURRENT_MODE
if (padapter->isprimary)
reg_ifname = padapter->registrypriv.ifname;
else
#endif
reg_ifname = padapter->registrypriv.if2name;
strncpy(rereg_priv->old_ifname, reg_ifname, IFNAMSIZ);
rereg_priv->old_ifname[IFNAMSIZ-1] = 0;
}
//DBG_871X("%s wrqu->data.length:%d\n", __FUNCTION__, wrqu->data.length);
if(wrqu->data.length > IFNAMSIZ)
return -EFAULT;

View file

@ -715,18 +715,11 @@ u32 rtw_start_drv_threads(struct adapter *padapter)
_status = _FAIL;
#endif
#ifdef CONFIG_CONCURRENT_MODE
if(padapter->isprimary == true)
#endif //CONFIG_CONCURRENT_MODE
{
padapter->cmdThread = kthread_run(rtw_cmd_thread, padapter, "RTW_CMD_THREAD");
if(IS_ERR(padapter->cmdThread))
_status = _FAIL;
else
_rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); //wait for cmd_thread to run
}
padapter->cmdThread = kthread_run(rtw_cmd_thread, padapter, "RTW_CMD_THREAD");
if(IS_ERR(padapter->cmdThread))
_status = _FAIL;
else
_rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); //wait for cmd_thread to run
#ifdef CONFIG_EVENT_THREAD_MODE
padapter->evtThread = kthread_run(event_thread, padapter, "RTW_EVENT_THREAD");
@ -774,12 +767,7 @@ void rtw_stop_drv_threads (struct adapter *padapter)
{
RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_stop_drv_threads\n"));
#ifdef CONFIG_CONCURRENT_MODE
if(padapter->isprimary == true)
#endif //CONFIG_CONCURRENT_MODE
{
rtw_stop_cmd_thread(padapter);
}
rtw_stop_cmd_thread(padapter);
#ifdef CONFIG_EVENT_THREAD_MODE
_rtw_up_sema(&padapter->evtpriv.evt_notify);
@ -1137,9 +1125,6 @@ u8 rtw_free_drv_sw(struct adapter *padapter)
_cancel_timer_ex( &pwdinfo->find_phase_timer );
_cancel_timer_ex( &pwdinfo->restore_p2p_state_timer );
_cancel_timer_ex( &pwdinfo->pre_tx_scan_timer);
#ifdef CONFIG_CONCURRENT_MODE
_cancel_timer_ex( &pwdinfo->ap_p2p_switch_timer );
#endif // CONFIG_CONCURRENT_MODE
rtw_p2p_set_state(pwdinfo, P2P_STATE_NONE);
}
}
@ -1207,321 +1192,6 @@ u8 rtw_free_drv_sw(struct adapter *padapter)
}
#ifdef CONFIG_CONCURRENT_MODE
int _netdev_if2_open(struct net_device *pnetdev)
{
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev);
struct adapter *primary_padapter = padapter->pbuddy_adapter;
DBG_871X("+871x_drv - if2_open, bup=%d\n", padapter->bup);
if(primary_padapter->bup == false || primary_padapter->hw_init_completed == false)
{
_netdev_open(primary_padapter->pnetdev);
}
if(padapter->bup == false && primary_padapter->bup == true &&
primary_padapter->hw_init_completed == true)
{
int i;
padapter->bDriverStopped = false;
padapter->bSurpriseRemoved = false;
padapter->bCardDisableWOHSM = false;
padapter->bFWReady = primary_padapter->bFWReady;
//if (init_mlme_ext_priv(padapter) == _FAIL)
// goto netdev_if2_open_error;
if(rtw_start_drv_threads(padapter) == _FAIL)
{
goto netdev_if2_open_error;
}
if(padapter->intf_start)
{
padapter->intf_start(padapter);
}
rtw_proc_init_one(pnetdev);
#ifdef CONFIG_IOCTL_CFG80211
rtw_cfg80211_init_wiphy(padapter);
#endif
padapter->bup = true;
}
padapter->net_closed = false;
_set_timer(&padapter->mlmepriv.dynamic_chk_timer, 2000);
if(!rtw_netif_queue_stopped(pnetdev))
rtw_netif_start_queue(pnetdev);
else
rtw_netif_wake_queue(pnetdev);
DBG_871X("-871x_drv - if2_open, bup=%d\n", padapter->bup);
return 0;
netdev_if2_open_error:
padapter->bup = false;
netif_carrier_off(pnetdev);
rtw_netif_stop_queue(pnetdev);
return (-1);
}
int netdev_if2_open(struct net_device *pnetdev)
{
int ret;
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev);
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->hw_init_mutex), NULL);
ret = _netdev_if2_open(pnetdev);
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->hw_init_mutex), NULL);
return ret;
}
static int netdev_if2_close(struct net_device *pnetdev)
{
struct adapter *padapter = (struct adapter *)rtw_netdev_priv(pnetdev);
padapter->net_closed = true;
if(pnetdev)
{
if (!rtw_netif_queue_stopped(pnetdev))
rtw_netif_stop_queue(pnetdev);
}
#ifdef CONFIG_IOCTL_CFG80211
rtw_scan_abort(padapter);
wdev_to_priv(padapter->rtw_wdev)->bandroid_scan = false;
#endif
return 0;
}
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,29))
static const struct net_device_ops rtw_netdev_if2_ops = {
.ndo_open = netdev_if2_open,
.ndo_stop = netdev_if2_close,
.ndo_start_xmit = rtw_xmit_entry,
.ndo_set_mac_address = rtw_net_set_mac_address,
.ndo_get_stats = rtw_net_get_stats,
.ndo_do_ioctl = rtw_ioctl,
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
.ndo_select_queue = rtw_select_queue,
#endif
};
#endif
struct adapter *rtw_drv_if2_init(struct adapter *primary_padapter, void (*set_intf_ops)(struct _io_ops *pops))
{
int res = _FAIL;
struct net_device *pnetdev = NULL;
struct adapter *padapter = NULL;
struct dvobj_priv *pdvobjpriv;
u8 mac[ETH_ALEN];
/****** init netdev ******/
pnetdev = rtw_init_netdev(NULL);
if (!pnetdev)
goto error_rtw_drv_if2_init;
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,29))
DBG_871X("register rtw_netdev_if2_ops to netdev_ops\n");
pnetdev->netdev_ops = &rtw_netdev_if2_ops;
#else
pnetdev->open = netdev_if2_open;
pnetdev->stop = netdev_if2_close;
#endif
#ifdef CONFIG_NO_WIRELESS_HANDLERS
pnetdev->wireless_handlers = NULL;
#endif
/****** init adapter ******/
padapter = rtw_netdev_priv(pnetdev);
_rtw_memcpy(padapter, primary_padapter, sizeof(struct adapter));
//
padapter->bup = false;
padapter->net_closed = true;
padapter->hw_init_completed = false;
padapter->dir_dev = NULL;
padapter->dir_odm = NULL;
//set adapter_type/iface type
padapter->isprimary = false;
padapter->adapter_type = SECONDARY_ADAPTER;
padapter->pbuddy_adapter = primary_padapter;
padapter->iface_id = IFACE_ID1;
#ifndef CONFIG_HWPORT_SWAP //Port0 -> Pri , Port1 -> Sec
padapter->iface_type = IFACE_PORT1;
#else
padapter->iface_type = IFACE_PORT0;
#endif //CONFIG_HWPORT_SWAP
//
padapter->pnetdev = pnetdev;
/****** setup dvobj ******/
pdvobjpriv = adapter_to_dvobj(padapter);
pdvobjpriv->if2 = padapter;
pdvobjpriv->padapters[pdvobjpriv->iface_nums++] = padapter;
SET_NETDEV_DEV(pnetdev, dvobj_to_dev(pdvobjpriv));
#ifdef CONFIG_IOCTL_CFG80211
rtw_wdev_alloc(padapter, dvobj_to_dev(pdvobjpriv));
#endif //CONFIG_IOCTL_CFG80211
//set interface_type/chip_type/HardwareType
padapter->interface_type = primary_padapter->interface_type;
padapter->chip_type = primary_padapter->chip_type;
padapter->HardwareType = primary_padapter->HardwareType;
//step 2. hook HalFunc, allocate HalData
hal_set_hal_ops(padapter);
padapter->HalFunc.inirp_init = NULL;
padapter->HalFunc.inirp_deinit = NULL;
//
padapter->intf_start = primary_padapter->intf_start;
padapter->intf_stop = primary_padapter->intf_stop;
//step init_io_priv
if ((rtw_init_io_priv(padapter, set_intf_ops)) == _FAIL) {
RT_TRACE(_module_hci_intfs_c_,_drv_err_,(" \n Can't init io_reqs\n"));
}
//step read_chip_version
rtw_hal_read_chip_version(padapter);
//step usb endpoint mapping
rtw_hal_chip_configure(padapter);
//init drv data
if(rtw_init_drv_sw(padapter)!= _SUCCESS)
goto error_rtw_drv_if2_init;
//get mac address from primary_padapter
_rtw_memcpy(mac, primary_padapter->eeprompriv.mac_addr, ETH_ALEN);
if (((mac[0]==0xff) &&(mac[1]==0xff) && (mac[2]==0xff) &&
(mac[3]==0xff) && (mac[4]==0xff) &&(mac[5]==0xff)) ||
((mac[0]==0x0) && (mac[1]==0x0) && (mac[2]==0x0) &&
(mac[3]==0x0) && (mac[4]==0x0) &&(mac[5]==0x0)))
{
mac[0] = 0x00;
mac[1] = 0xe0;
mac[2] = 0x4c;
mac[3] = 0x87;
mac[4] = 0x11;
mac[5] = 0x22;
}
else
{
//If the BIT1 is 0, the address is universally administered.
//If it is 1, the address is locally administered
mac[0] |= BIT(1); // locally administered
}
_rtw_memcpy(padapter->eeprompriv.mac_addr, mac, ETH_ALEN);
rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr);
primary_padapter->pbuddy_adapter = padapter;
res = _SUCCESS;
return padapter;
error_rtw_drv_if2_init:
if(padapter)
rtw_free_drv_sw(padapter);
if (pnetdev)
rtw_free_netdev(pnetdev);
return NULL;
}
void rtw_drv_if2_free(struct adapter *if2)
{
struct adapter *padapter = if2;
struct net_device *pnetdev = NULL;
if (padapter == NULL)
return;
pnetdev = padapter->pnetdev;
#ifdef CONFIG_IOCTL_CFG80211
rtw_wdev_free(padapter->rtw_wdev);
#endif /* CONFIG_IOCTL_CFG80211 */
rtw_free_drv_sw(padapter);
rtw_free_netdev(pnetdev);
}
void rtw_drv_if2_stop(struct adapter *if2)
{
struct adapter *padapter = if2;
//struct net_device *pnetdev = NULL;
if (padapter == NULL)
return;
/*
pnetdev = padapter->pnetdev;
if (pnetdev) {
unregister_netdev(pnetdev); //will call netdev_close()
rtw_proc_remove_one(pnetdev);
}
*/
rtw_cancel_all_timer(padapter);
if (padapter->bup == true) {
padapter->bDriverStopped = true;
#ifdef CONFIG_XMIT_ACK
if (padapter->xmitpriv.ack_tx)
rtw_ack_tx_done(&padapter->xmitpriv, RTW_SCTX_DONE_DRV_STOP);
#endif
if(padapter->intf_stop)
{
padapter->intf_stop(padapter);
}
rtw_stop_drv_threads(padapter);
padapter->bup = false;
}
/*
#ifdef CONFIG_IOCTL_CFG80211
rtw_wdev_unregister(padapter->rtw_wdev);
#endif
*/
}
#endif //end of CONFIG_CONCURRENT_MODE
#ifdef CONFIG_BR_EXT
void netdev_br_init(struct net_device *netdev)
{
@ -1721,14 +1391,6 @@ int _netdev_open(struct net_device *pnetdev)
netdev_open_normal_process:
#ifdef CONFIG_CONCURRENT_MODE
{
struct adapter *sec_adapter = padapter->pbuddy_adapter;
if(sec_adapter && (sec_adapter->bup == false))
_netdev_if2_open(sec_adapter->pnetdev);
}
#endif
RT_TRACE(_module_os_intfs_c_,_drv_info_,("-871x_drv - dev_open\n"));
DBG_871X("-871x_drv - drv_open, bup=%d\n", padapter->bup);
@ -2332,18 +1994,8 @@ int rtw_suspend_common(struct adapter *padapter)
rtw_suspend_free_assoc_resource(padapter);
#ifdef CONFIG_CONCURRENT_MODE
if(rtw_buddy_adapter_up(padapter)){
rtw_suspend_free_assoc_resource(padapter->pbuddy_adapter);
}
#endif
rtw_led_control(padapter, LED_CTL_POWER_OFF);
#ifdef CONFIG_CONCURRENT_MODE
if(rtw_buddy_adapter_up(padapter)){
rtw_dev_unload(padapter->pbuddy_adapter);
}
#endif
rtw_dev_unload(padapter);
exit:
@ -2359,12 +2011,6 @@ int rtw_resume_common(struct adapter *padapter)
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
struct mlme_priv *mlmepriv = &padapter->mlmepriv;
;
#ifdef CONFIG_CONCURRENT_MODE
rtw_reset_drv_sw(padapter->pbuddy_adapter);
#endif
rtw_reset_drv_sw(padapter);
pwrpriv->bkeepfwalive = false;
@ -2378,16 +2024,6 @@ int rtw_resume_common(struct adapter *padapter)
netif_device_attach(pnetdev);
netif_carrier_on(pnetdev);
#ifdef CONFIG_CONCURRENT_MODE
if(rtw_buddy_adapter_up(padapter)){
pnetdev = padapter->pbuddy_adapter->pnetdev;
netif_device_attach(pnetdev);
netif_carrier_on(pnetdev);
}
#endif
if (check_fwstate(mlmepriv, WIFI_STATION_STATE)) {
DBG_871X(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_STATION_STATE\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv));
@ -2403,29 +2039,5 @@ int rtw_resume_common(struct adapter *padapter)
} else {
DBG_871X(FUNC_ADPT_FMT" fwstate:0x%08x - ???\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv));
}
#ifdef CONFIG_CONCURRENT_MODE
if(rtw_buddy_adapter_up(padapter))
{
mlmepriv = &padapter->pbuddy_adapter->mlmepriv;
if (check_fwstate(mlmepriv, WIFI_STATION_STATE)) {
DBG_871X(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_STATION_STATE\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv));
#ifdef CONFIG_LAYER2_ROAMING_RESUME
rtw_roaming(padapter->pbuddy_adapter, NULL);
#endif //CONFIG_LAYER2_ROAMING_RESUME
} else if (check_fwstate(mlmepriv, WIFI_AP_STATE)) {
DBG_871X(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_AP_STATE\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv));
rtw_ap_restore_network(padapter->pbuddy_adapter);
} else if (check_fwstate(mlmepriv, WIFI_ADHOC_STATE)) {
DBG_871X(FUNC_ADPT_FMT" fwstate:0x%08x - WIFI_ADHOC_STATE\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv));
} else {
DBG_871X(FUNC_ADPT_FMT" fwstate:0x%08x - ???\n", FUNC_ADPT_ARG(padapter), get_fwstate(mlmepriv));
}
}
#endif
;
return ret;
}

View file

@ -1245,7 +1245,7 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
dvobj->padapters[dvobj->iface_nums++] = padapter;
padapter->iface_id = IFACE_ID0;
#if defined(CONFIG_CONCURRENT_MODE) || defined(CONFIG_DUALMAC_CONCURRENT)
#if defined(CONFIG_DUALMAC_CONCURRENT)
//set adapter_type/iface type for primary padapter
padapter->isprimary = true;
padapter->adapter_type = PRIMARY_ADAPTER;
@ -1606,12 +1606,6 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
goto free_dvobj;
}
#ifdef CONFIG_CONCURRENT_MODE
if((if2 = rtw_drv_if2_init(if1, usb_set_intf_ops)) == NULL) {
goto free_if1;
}
#endif
#ifdef CONFIG_INTEL_PROXIM
rtw_sw_export=if1;
#endif
@ -1646,12 +1640,6 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
status = _SUCCESS;
free_if2:
if(status != _SUCCESS && if2) {
#ifdef CONFIG_CONCURRENT_MODE
rtw_drv_if2_stop(if2);
rtw_drv_if2_free(if2);
#endif
}
free_if1:
if (status != _SUCCESS && if1) {
rtw_usb_if1_deinit(if1);
@ -1699,16 +1687,8 @@ static void rtw_dev_remove(struct usb_interface *pusb_intf)
LeaveAllPowerSaveMode(padapter);
#ifdef CONFIG_CONCURRENT_MODE
rtw_drv_if2_stop(dvobj->if2);
#endif
rtw_usb_if1_deinit(padapter);
#ifdef CONFIG_CONCURRENT_MODE
rtw_drv_if2_free(dvobj->if2);
#endif
usb_dvobj_deinit(pusb_intf);
RT_TRACE(_module_hci_intfs_c_,_drv_err_,("-dev_remove()\n"));