mirror of
https://github.com/lwfinger/rtl8188eu.git
synced 2024-11-10 15:39:38 +00:00
rtl8188eu: Remove code selected by CONFIG_DUALMAC_CONCURRENT
This variable only applies to RTL8192DU. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
parent
020675ff42
commit
e8487f5809
10 changed files with 0 additions and 829 deletions
|
@ -1078,9 +1078,6 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf)
|
|||
|
||||
}
|
||||
#endif //CONFIG_80211N_HT
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_set_ap_channel_bandwidth(padapter, cur_channel, cur_ch_offset, cur_bwmode);
|
||||
#else
|
||||
//TODO: need to judge the phy parameters on concurrent mode for single phy
|
||||
//set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode);
|
||||
|
@ -1091,7 +1088,6 @@ static void start_bss_network(struct adapter *padapter, u8 *pbuf)
|
|||
pmlmeext->cur_channel = cur_channel;
|
||||
pmlmeext->cur_bwmode = cur_bwmode;
|
||||
pmlmeext->cur_ch_offset = cur_ch_offset;
|
||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
||||
pmlmeext->cur_wireless_mode = pmlmepriv->cur_network.network_type;
|
||||
|
||||
//let pnetwork_mlmeext == pnetwork_mlme.
|
||||
|
|
|
@ -1214,9 +1214,6 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf)
|
|||
#endif // CONFIG_P2P_PS
|
||||
|
||||
rtw_os_xmit_schedule(adapter);
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_resume_xmit(adapter);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DRVEXT_MODULE_WSC
|
||||
drvext_surveydone_callback(&adapter->drvextpriv);
|
||||
|
@ -1876,10 +1873,6 @@ void rtw_joinbss_event_callback(struct adapter *adapter, u8 *pbuf)
|
|||
mlmeext_joinbss_event_callback(adapter, pnetwork->join_res);
|
||||
|
||||
rtw_os_xmit_schedule(adapter);
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_resume_xmit(adapter);
|
||||
#endif
|
||||
}
|
||||
|
||||
static u8 search_max_mac_id(struct adapter *padapter)
|
||||
|
|
|
@ -1018,9 +1018,6 @@ unsigned int OnProbeRsp(struct adapter *padapter, union recv_frame *precv_frame)
|
|||
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
|
||||
{
|
||||
report_survey_event(padapter, precv_frame);
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_report_survey_event(padapter, precv_frame);
|
||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
||||
return _SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -1058,10 +1055,6 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame)
|
|||
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
|
||||
{
|
||||
report_survey_event(padapter, precv_frame);
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_report_survey_event(padapter, precv_frame);
|
||||
#endif
|
||||
|
||||
return _SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -8647,9 +8640,6 @@ void site_survey(struct adapter *padapter)
|
|||
//SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset);
|
||||
|
||||
{
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_set_channel_bwmode_survey_done(padapter);
|
||||
#else
|
||||
if( pwdinfo->driver_interface == DRIVER_WEXT )
|
||||
{
|
||||
if( rtw_p2p_chk_state(pwdinfo, P2P_STATE_LISTEN) )
|
||||
|
@ -8663,7 +8653,6 @@ void site_survey(struct adapter *padapter)
|
|||
{
|
||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
}
|
||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
||||
}
|
||||
|
||||
//flush 4-AC Queue after site_survey
|
||||
|
@ -9085,14 +9074,6 @@ void start_clnt_join(struct adapter* padapter)
|
|||
}
|
||||
else if (caps&cap_IBSS) //adhoc client
|
||||
{
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
if(dc_handle_join_request(padapter) == _FAIL)
|
||||
{
|
||||
DBG_871X("dc_handle_join_request for Ad-hoc fail !!!\n");
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
Set_MSR(padapter, WIFI_FW_ADHOC_STATE);
|
||||
|
||||
val8 = 0xcf;
|
||||
|
@ -9884,9 +9865,6 @@ void mlmeext_joinbss_event_callback(struct adapter *padapter, int join_res)
|
|||
|
||||
exit_mlmeext_joinbss_event_callback:
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_handle_join_done(padapter, join_res);
|
||||
#endif
|
||||
DBG_871X("=>%s\n", __FUNCTION__);
|
||||
}
|
||||
|
||||
|
@ -9955,9 +9933,6 @@ void mlmeext_sta_del_event_callback(struct adapter *padapter)
|
|||
//restore to initial setting.
|
||||
update_tx_basic_rate(padapter, padapter->registrypriv.wireless_mode);
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_set_channel_bwmode_disconnect(padapter);
|
||||
#else
|
||||
//switch to the 20M Hz mode after disconnect
|
||||
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
@ -9965,8 +9940,6 @@ void mlmeext_sta_del_event_callback(struct adapter *padapter)
|
|||
//SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset);
|
||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
|
||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
flush_all_cam_entry(padapter);
|
||||
|
||||
pmlmeinfo->state = WIFI_FW_NULL_STATE;
|
||||
|
@ -10613,17 +10586,10 @@ u8 join_cmd_hdl(struct adapter *padapter, u8 *pbuf)
|
|||
}
|
||||
|
||||
/* check channel, bandwidth, offset and switch */
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
if(dc_handle_join_request(padapter, &ch, &bw, &offset) == _FAIL) {
|
||||
DBG_871X("dc_handle_join_request fail !!!\n");
|
||||
return H2C_SUCCESS;
|
||||
}
|
||||
#else //NON CONFIG_DUALMAC_CONCURRENT
|
||||
if(rtw_chk_start_clnt_join(padapter, &ch, &bw, &offset) == _FAIL) {
|
||||
report_join_res(padapter, (-4));
|
||||
return H2C_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
//disable dynamic functions, such as high power, DIG
|
||||
//Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
|
||||
|
@ -10684,15 +10650,11 @@ u8 disconnect_hdl(struct adapter *padapter, unsigned char *pbuf)
|
|||
|
||||
pmlmeinfo->state = WIFI_FW_NULL_STATE;
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
dc_set_channel_bwmode_disconnect(padapter);
|
||||
#else
|
||||
//switch to the 20M Hz mode after disconnect
|
||||
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
flush_all_cam_entry(padapter);
|
||||
|
||||
|
@ -10802,10 +10764,6 @@ u8 sitesurvey_cmd_hdl(struct adapter *padapter, u8 *pbuf)
|
|||
|
||||
pmlmeext->sitesurvey_res.scan_mode = pparm->scan_mode;
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
bdelayscan = dc_handle_site_survey(padapter);
|
||||
#endif
|
||||
|
||||
//issue null data if associating to the AP
|
||||
if (is_client_associated_to_ap(padapter) == true)
|
||||
{
|
||||
|
@ -11231,624 +11189,6 @@ u8 tx_beacon_hdl(struct adapter *padapter, unsigned char *pbuf)
|
|||
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
void dc_SelectChannel(struct adapter *padapter, unsigned char channel)
|
||||
{
|
||||
struct adapter *ptarget_adapter;
|
||||
|
||||
if( (padapter->pbuddy_adapter != NULL) &&
|
||||
(padapter->DualMacConcurrent == true) &&
|
||||
(padapter->adapter_type == SECONDARY_ADAPTER))
|
||||
{
|
||||
// only mac0 could control BB&RF
|
||||
ptarget_adapter = padapter->pbuddy_adapter;
|
||||
}
|
||||
else
|
||||
{
|
||||
ptarget_adapter = padapter;
|
||||
}
|
||||
|
||||
_enter_critical_mutex(&(adapter_to_dvobj(ptarget_adapter)->setch_mutex), NULL);
|
||||
|
||||
rtw_hal_set_chan(ptarget_adapter, channel);
|
||||
|
||||
_exit_critical_mutex(&(adapter_to_dvobj(ptarget_adapter)->setch_mutex), NULL);
|
||||
}
|
||||
|
||||
void dc_SetBWMode(struct adapter *padapter, unsigned short bwmode, unsigned char channel_offset)
|
||||
{
|
||||
struct adapter *ptarget_adapter;
|
||||
|
||||
if( (padapter->pbuddy_adapter != NULL) &&
|
||||
(padapter->DualMacConcurrent == true) &&
|
||||
(padapter->adapter_type == SECONDARY_ADAPTER))
|
||||
{
|
||||
// only mac0 could control BB&RF
|
||||
ptarget_adapter = padapter->pbuddy_adapter;
|
||||
}
|
||||
else
|
||||
{
|
||||
ptarget_adapter = padapter;
|
||||
}
|
||||
|
||||
_enter_critical_mutex(&(adapter_to_dvobj(ptarget_adapter)->setbw_mutex), NULL);
|
||||
|
||||
rtw_hal_set_bwmode(ptarget_adapter, (HT_CHANNEL_WIDTH)bwmode, channel_offset);
|
||||
|
||||
_exit_critical_mutex(&(adapter_to_dvobj(ptarget_adapter)->setbw_mutex), NULL);
|
||||
}
|
||||
|
||||
static void dc_change_band(struct adapter *padapter, WLAN_BSSID_EX *pnetwork)
|
||||
{
|
||||
u8 network_type,rate_len, total_rate_len,remainder_rate_len;
|
||||
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
u8 erpinfo=0x4;
|
||||
|
||||
//DBG_871X("%s\n", __FUNCTION__);
|
||||
|
||||
if(pmlmeext->cur_channel >= 36)
|
||||
{
|
||||
network_type = WIRELESS_11A;
|
||||
total_rate_len = IEEE80211_NUM_OFDM_RATESLEN;
|
||||
DBG_871X("%s(): change to 5G Band\n",__FUNCTION__);
|
||||
rtw_remove_bcn_ie(padapter, pnetwork, _ERPINFO_IE_);
|
||||
}
|
||||
else
|
||||
{
|
||||
network_type = WIRELESS_11BG;
|
||||
total_rate_len = IEEE80211_CCK_RATE_LEN+IEEE80211_NUM_OFDM_RATESLEN;
|
||||
DBG_871X("%s(): change to 2.4G Band\n",__FUNCTION__);
|
||||
rtw_add_bcn_ie(padapter, pnetwork, _ERPINFO_IE_, &erpinfo, 1);
|
||||
}
|
||||
|
||||
rtw_set_supported_rate(pnetwork->SupportedRates, network_type);
|
||||
|
||||
UpdateBrateTbl(padapter, pnetwork->SupportedRates);
|
||||
rtw_hal_set_hwreg(padapter, HW_VAR_BASIC_RATE, pnetwork->SupportedRates);
|
||||
|
||||
if(total_rate_len > 8)
|
||||
{
|
||||
rate_len = 8;
|
||||
remainder_rate_len = total_rate_len - 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
rate_len = total_rate_len;
|
||||
remainder_rate_len = 0;
|
||||
}
|
||||
|
||||
rtw_add_bcn_ie(padapter, pnetwork, _SUPPORTEDRATES_IE_, pnetwork->SupportedRates, rate_len);
|
||||
|
||||
if(remainder_rate_len)
|
||||
{
|
||||
rtw_add_bcn_ie(padapter, pnetwork, _EXT_SUPPORTEDRATES_IE_, (pnetwork->SupportedRates+8), remainder_rate_len);
|
||||
}
|
||||
else
|
||||
{
|
||||
rtw_remove_bcn_ie(padapter, pnetwork, _EXT_SUPPORTEDRATES_IE_);
|
||||
}
|
||||
}
|
||||
|
||||
void dc_set_channel_bwmode_disconnect(struct adapter *padapter)
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
if((check_fwstate(pbuddy_mlmepriv, _FW_LINKED)) != true)
|
||||
{
|
||||
//switch to the 20M Hz mode after disconnect
|
||||
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//switch to the 20M Hz mode after disconnect
|
||||
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
}
|
||||
}
|
||||
|
||||
u8 dc_handle_join_request(struct adapter *padapter, u8 *ch, u8 *bw, u8 *offset)
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX*)(&(pmlmeinfo->network));
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_ext_priv *pbuddy_mlmeext = NULL;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
u8 ret = _SUCCESS;
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
|
||||
if(pmlmeext->cur_channel != pbuddy_mlmeext->cur_channel ||
|
||||
pmlmeext->cur_bwmode != pbuddy_mlmeext->cur_bwmode ||
|
||||
pmlmeext->cur_ch_offset != pbuddy_mlmeext->cur_ch_offset)
|
||||
{
|
||||
if((check_fwstate(pbuddy_mlmepriv, WIFI_AP_STATE)) == true)
|
||||
{
|
||||
//issue deauth to all stas if if2 is at ap mode
|
||||
rtw_sta_flush(pbuddy_adapter);
|
||||
|
||||
//rtw_hal_set_hwreg(padapter, HW_VAR_CHECK_TXBUF, 0);
|
||||
rtw_hal_set_hwreg(pbuddy_adapter, HW_VAR_CHECK_TXBUF, 0);
|
||||
}
|
||||
else if(check_fwstate(pbuddy_mlmepriv, _FW_LINKED) == true)
|
||||
{
|
||||
if(pmlmeext->cur_channel == pbuddy_mlmeext->cur_channel)
|
||||
{
|
||||
// HT_CHANNEL_WIDTH_40 or HT_CHANNEL_WIDTH_20 but channel offset is different
|
||||
if((pmlmeext->cur_bwmode == pbuddy_mlmeext->cur_bwmode) &&
|
||||
(pmlmeext->cur_ch_offset != pbuddy_mlmeext->cur_ch_offset) )
|
||||
{
|
||||
report_join_res(padapter, -4);
|
||||
ret = _FAIL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
report_join_res(padapter, -4);
|
||||
ret = _FAIL;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (is_client_associated_to_ap(pbuddy_adapter) == true)
|
||||
{
|
||||
issue_nulldata(pbuddy_adapter, NULL, 1, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (!ch || !bw || !offset) {
|
||||
rtw_warn_on(1);
|
||||
ret = _FAIL;
|
||||
}
|
||||
|
||||
if (ret == _SUCCESS) {
|
||||
*ch = pmlmeext->cur_channel;
|
||||
*bw = pmlmeext->cur_bwmode;
|
||||
*offset = pmlmeext->cur_ch_offset;
|
||||
}
|
||||
|
||||
exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dc_handle_join_done(struct adapter *padapter, u8 join_res)
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
struct mlme_ext_priv *pbuddy_mlmeext = NULL;
|
||||
struct mlme_ext_info *pbuddy_mlmeinfo = NULL;
|
||||
WLAN_BSSID_EX *pbuddy_network_mlmeext = NULL;
|
||||
u8 change_band = false;
|
||||
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
|
||||
pbuddy_mlmeinfo = &(pbuddy_mlmeext->mlmext_info);
|
||||
pbuddy_network_mlmeext = &(pbuddy_mlmeinfo->network);
|
||||
|
||||
if(((pbuddy_mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) &&
|
||||
check_fwstate(pbuddy_mlmepriv, _FW_LINKED))
|
||||
{
|
||||
//restart and update beacon
|
||||
DBG_871X("after join, current adapter, CH=%d, BW=%d, offset=%d\n", pmlmeext->cur_channel, pmlmeext->cur_bwmode, pmlmeext->cur_ch_offset);
|
||||
|
||||
if(join_res >= 0)
|
||||
{
|
||||
u8 *p;
|
||||
int ie_len;
|
||||
struct HT_info_element *pht_info=NULL;
|
||||
|
||||
if((pbuddy_mlmeext->cur_channel <= 14 && pmlmeext->cur_channel >= 36) ||
|
||||
(pbuddy_mlmeext->cur_channel >= 36 && pmlmeext->cur_channel <= 14))
|
||||
{
|
||||
change_band = true;
|
||||
}
|
||||
|
||||
//sync channel/bwmode/ch_offset with another adapter
|
||||
pbuddy_mlmeext->cur_channel = pmlmeext->cur_channel;
|
||||
|
||||
if(pbuddy_mlmeext->cur_bwmode == HT_CHANNEL_WIDTH_40)
|
||||
{
|
||||
p = rtw_get_ie((pbuddy_network_mlmeext->IEs + sizeof(NDIS_802_11_FIXED_IEs)), _HT_ADD_INFO_IE_, &ie_len, (pbuddy_network_mlmeext->IELength - sizeof(NDIS_802_11_FIXED_IEs)));
|
||||
if( p && ie_len)
|
||||
{
|
||||
pht_info = (struct HT_info_element *)(p+2);
|
||||
pht_info->infos[0] &= ~(BIT(0)|BIT(1)); //no secondary channel is present
|
||||
}
|
||||
|
||||
if(pmlmeext->cur_bwmode == HT_CHANNEL_WIDTH_40)
|
||||
{
|
||||
pbuddy_mlmeext->cur_ch_offset = pmlmeext->cur_ch_offset;
|
||||
|
||||
//to update cur_ch_offset value in beacon
|
||||
if( pht_info )
|
||||
{
|
||||
switch(pmlmeext->cur_ch_offset)
|
||||
{
|
||||
case HAL_PRIME_CHNL_OFFSET_LOWER:
|
||||
pht_info->infos[0] |= 0x1;
|
||||
break;
|
||||
case HAL_PRIME_CHNL_OFFSET_UPPER:
|
||||
pht_info->infos[0] |= 0x3;
|
||||
break;
|
||||
case HAL_PRIME_CHNL_OFFSET_DONT_CARE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(pmlmeext->cur_bwmode == HT_CHANNEL_WIDTH_20)
|
||||
{
|
||||
pbuddy_mlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||
pbuddy_mlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
||||
if(pmlmeext->cur_channel>0 && pmlmeext->cur_channel<5)
|
||||
{
|
||||
if(pht_info)
|
||||
pht_info->infos[0] |= 0x1;
|
||||
|
||||
pbuddy_mlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40;
|
||||
pbuddy_mlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
|
||||
}
|
||||
|
||||
if(pmlmeext->cur_channel>7 && pmlmeext->cur_channel<(14+1))
|
||||
{
|
||||
if(pht_info)
|
||||
pht_info->infos[0] |= 0x3;
|
||||
|
||||
pbuddy_mlmeext->cur_bwmode = HT_CHANNEL_WIDTH_40;
|
||||
pbuddy_mlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
|
||||
}
|
||||
|
||||
set_channel_bwmode(padapter, pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_ch_offset, pbuddy_mlmeext->cur_bwmode);
|
||||
}
|
||||
}
|
||||
|
||||
// to update channel value in beacon
|
||||
pbuddy_network_mlmeext->Configuration.DSConfig = pmlmeext->cur_channel;
|
||||
p = rtw_get_ie((pbuddy_network_mlmeext->IEs + sizeof(NDIS_802_11_FIXED_IEs)), _DSSET_IE_, &ie_len, (pbuddy_network_mlmeext->IELength - sizeof(NDIS_802_11_FIXED_IEs)));
|
||||
if(p && ie_len>0)
|
||||
*(p + 2) = pmlmeext->cur_channel;
|
||||
|
||||
p = rtw_get_ie((pbuddy_network_mlmeext->IEs + sizeof(NDIS_802_11_FIXED_IEs)), _HT_ADD_INFO_IE_, &ie_len, (pbuddy_network_mlmeext->IELength - sizeof(NDIS_802_11_FIXED_IEs)));
|
||||
if( p && ie_len)
|
||||
{
|
||||
pht_info = (struct HT_info_element *)(p+2);
|
||||
pht_info->primary_channel = pmlmeext->cur_channel;
|
||||
}
|
||||
|
||||
// update mlmepriv's cur_network
|
||||
_rtw_memcpy(&pbuddy_mlmepriv->cur_network.network, pbuddy_network_mlmeext, pbuddy_network_mlmeext->Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
// switch back to original channel/bwmode/ch_offset;
|
||||
set_channel_bwmode(padapter, pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_ch_offset, pbuddy_mlmeext->cur_bwmode);
|
||||
}
|
||||
|
||||
DBG_871X("after join, another adapter, CH=%d, BW=%d, offset=%d\n", pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_bwmode, pbuddy_mlmeext->cur_ch_offset);
|
||||
|
||||
if(change_band == true)
|
||||
dc_change_band(pbuddy_adapter, pbuddy_network_mlmeext);
|
||||
|
||||
DBG_871X("update pbuddy_adapter's beacon\n");
|
||||
|
||||
update_beacon(pbuddy_adapter, 0, NULL, true);
|
||||
}
|
||||
else if (is_client_associated_to_ap(pbuddy_adapter) == true)
|
||||
{
|
||||
if((pbuddy_mlmeext->cur_bwmode == HT_CHANNEL_WIDTH_40) &&
|
||||
(pmlmeext->cur_bwmode == HT_CHANNEL_WIDTH_20))
|
||||
{
|
||||
set_channel_bwmode(padapter, pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_ch_offset, pbuddy_mlmeext->cur_bwmode);
|
||||
}
|
||||
|
||||
issue_nulldata(pbuddy_adapter, NULL, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sint dc_check_fwstate(_adapter *padapter, sint fw_state)
|
||||
{
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
|
||||
if(padapter->pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
|
||||
{
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
|
||||
return check_fwstate(pbuddy_mlmepriv, fw_state);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 dc_handle_site_survey(struct adapter *padapter)
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
|
||||
// only mac0 can do scan request, help issue nulldata(1) for mac1
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
if (is_client_associated_to_ap(pbuddy_adapter) == true)
|
||||
{
|
||||
pmlmeext->sitesurvey_res.state = SCAN_TXNULL;
|
||||
|
||||
issue_nulldata(pbuddy_adapter, NULL, 1, 2, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void dc_report_survey_event(struct adapter *padapter, union recv_frame *precv_frame)
|
||||
{
|
||||
if(padapter->pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
report_survey_event(padapter->pbuddy_adapter, precv_frame);
|
||||
}
|
||||
}
|
||||
|
||||
void dc_set_channel_bwmode_survey_done(struct adapter *padapter)
|
||||
{
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
struct mlme_ext_priv *pbuddy_mlmeext = NULL;
|
||||
struct mlme_ext_info *pbuddy_mlmeinfo = NULL;
|
||||
u8 cur_channel;
|
||||
u8 cur_bwmode;
|
||||
u8 cur_ch_offset;
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
|
||||
pbuddy_mlmeinfo = &(pbuddy_mlmeext->mlmext_info);
|
||||
|
||||
if(check_fwstate(pbuddy_mlmepriv, _FW_LINKED))
|
||||
{
|
||||
if(check_fwstate(pmlmepriv, _FW_LINKED) &&
|
||||
(pmlmeext->cur_bwmode == HT_CHANNEL_WIDTH_40))
|
||||
{
|
||||
cur_channel = pmlmeext->cur_channel;
|
||||
cur_bwmode = pmlmeext->cur_bwmode;
|
||||
cur_ch_offset = pmlmeext->cur_ch_offset;
|
||||
}
|
||||
else
|
||||
{
|
||||
cur_channel = pbuddy_mlmeext->cur_channel;
|
||||
cur_bwmode = pbuddy_mlmeext->cur_bwmode;
|
||||
cur_ch_offset = pbuddy_mlmeext->cur_ch_offset;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cur_channel = pmlmeext->cur_channel;
|
||||
cur_bwmode = pmlmeext->cur_bwmode;
|
||||
cur_ch_offset = pmlmeext->cur_ch_offset;
|
||||
}
|
||||
|
||||
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode);
|
||||
|
||||
if (is_client_associated_to_ap(pbuddy_adapter) == true)
|
||||
{
|
||||
//issue null data
|
||||
issue_nulldata(pbuddy_adapter, NULL, 0, 0, 0);
|
||||
}
|
||||
|
||||
if(((pbuddy_mlmeinfo->state&0x03) == WIFI_FW_AP_STATE) &&
|
||||
check_fwstate(pbuddy_mlmepriv, _FW_LINKED))
|
||||
{
|
||||
|
||||
DBG_871X("survey done, current CH=%d, BW=%d, offset=%d\n", cur_channel, cur_bwmode, cur_ch_offset);
|
||||
|
||||
DBG_871X("restart pbuddy_adapter's beacon\n");
|
||||
|
||||
update_beacon(pbuddy_adapter, 0, NULL, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||
}
|
||||
}
|
||||
|
||||
void dc_set_ap_channel_bandwidth(struct adapter *padapter, u8 channel, u8 channel_offset, u8 bwmode)
|
||||
{
|
||||
u8 *p;
|
||||
u8 val8, cur_channel, cur_bwmode, cur_ch_offset, change_band;
|
||||
int ie_len;
|
||||
struct registry_priv *pregpriv = &padapter->registrypriv;
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
WLAN_BSSID_EX *pnetwork = (WLAN_BSSID_EX *)&pmlmepriv->cur_network.network;
|
||||
struct mlme_ext_priv *pmlmeext = &(padapter->mlmeextpriv);
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
struct HT_info_element *pht_info=NULL;
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
struct mlme_ext_priv *pbuddy_mlmeext = NULL;
|
||||
|
||||
DBG_871X("dualmac_concurrent_ap_set_channel_bwmode ==>\n");
|
||||
|
||||
cur_channel = channel;
|
||||
cur_bwmode = bwmode;
|
||||
cur_ch_offset = channel_offset;
|
||||
change_band = false;
|
||||
|
||||
p = rtw_get_ie((pnetwork->IEs + sizeof(NDIS_802_11_FIXED_IEs)), _HT_ADD_INFO_IE_, &ie_len, (pnetwork->IELength - sizeof(NDIS_802_11_FIXED_IEs)));
|
||||
if( p && ie_len)
|
||||
{
|
||||
pht_info = (struct HT_info_element *)(p+2);
|
||||
}
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
pbuddy_mlmeext = &pbuddy_adapter->mlmeextpriv;
|
||||
|
||||
if(!check_fwstate(pbuddy_mlmepriv, _FW_LINKED|_FW_UNDER_LINKING|_FW_UNDER_SURVEY))
|
||||
{
|
||||
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode);
|
||||
}
|
||||
else if(check_fwstate(pbuddy_mlmepriv, _FW_LINKED)==true)
|
||||
{
|
||||
//To sync cur_channel/cur_bwmode/cur_ch_offset with another adapter
|
||||
DBG_871X("Another iface is at linked state, sync cur_channel/cur_bwmode/cur_ch_offset\n");
|
||||
DBG_871X("Another adapter, CH=%d, BW=%d, offset=%d\n", pbuddy_mlmeext->cur_channel, pbuddy_mlmeext->cur_bwmode, pbuddy_mlmeext->cur_ch_offset);
|
||||
DBG_871X("Current adapter, CH=%d, BW=%d, offset=%d\n", cur_channel, cur_bwmode, cur_ch_offset);
|
||||
|
||||
cur_channel = pbuddy_mlmeext->cur_channel;
|
||||
if(cur_bwmode == HT_CHANNEL_WIDTH_40)
|
||||
{
|
||||
if(pht_info)
|
||||
pht_info->infos[0] &= ~(BIT(0)|BIT(1));
|
||||
|
||||
if(pbuddy_mlmeext->cur_bwmode == HT_CHANNEL_WIDTH_40)
|
||||
{
|
||||
cur_ch_offset = pbuddy_mlmeext->cur_ch_offset;
|
||||
|
||||
//to update cur_ch_offset value in beacon
|
||||
if(pht_info)
|
||||
{
|
||||
switch(cur_ch_offset)
|
||||
{
|
||||
case HAL_PRIME_CHNL_OFFSET_LOWER:
|
||||
pht_info->infos[0] |= 0x1;
|
||||
break;
|
||||
case HAL_PRIME_CHNL_OFFSET_UPPER:
|
||||
pht_info->infos[0] |= 0x3;
|
||||
break;
|
||||
case HAL_PRIME_CHNL_OFFSET_DONT_CARE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(pbuddy_mlmeext->cur_bwmode == HT_CHANNEL_WIDTH_20)
|
||||
{
|
||||
cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||
cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||
|
||||
if(cur_channel>0 && cur_channel<5)
|
||||
{
|
||||
if(pht_info)
|
||||
pht_info->infos[0] |= 0x1;
|
||||
|
||||
cur_bwmode = HT_CHANNEL_WIDTH_40;
|
||||
cur_ch_offset = HAL_PRIME_CHNL_OFFSET_LOWER;
|
||||
}
|
||||
|
||||
if(cur_channel>7 && cur_channel<(14+1))
|
||||
{
|
||||
if(pht_info)
|
||||
pht_info->infos[0] |= 0x3;
|
||||
|
||||
cur_bwmode = HT_CHANNEL_WIDTH_40;
|
||||
cur_ch_offset = HAL_PRIME_CHNL_OFFSET_UPPER;
|
||||
}
|
||||
|
||||
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode);
|
||||
}
|
||||
}
|
||||
|
||||
// to update channel value in beacon
|
||||
pnetwork->Configuration.DSConfig = cur_channel;
|
||||
p = rtw_get_ie((pnetwork->IEs + sizeof(NDIS_802_11_FIXED_IEs)), _DSSET_IE_, &ie_len, (pnetwork->IELength - sizeof(NDIS_802_11_FIXED_IEs)));
|
||||
if(p && ie_len>0)
|
||||
*(p + 2) = cur_channel;
|
||||
|
||||
if(pht_info)
|
||||
pht_info->primary_channel = cur_channel;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, cur_bwmode);
|
||||
}
|
||||
|
||||
DBG_871X("CH=%d, BW=%d, offset=%d\n", cur_channel, cur_bwmode, cur_ch_offset);
|
||||
|
||||
if((channel <= 14 && cur_channel >= 36) ||
|
||||
(channel >= 36 && cur_channel <= 14))
|
||||
{
|
||||
change_band = true;
|
||||
}
|
||||
|
||||
pmlmeext->cur_channel = cur_channel;
|
||||
pmlmeext->cur_bwmode = cur_bwmode;
|
||||
pmlmeext->cur_ch_offset = cur_ch_offset;
|
||||
|
||||
if(change_band == true)
|
||||
dc_change_band(padapter, pnetwork);
|
||||
|
||||
DBG_871X("dualmac_concurrent_ap_set_channel_bwmode <==\n");
|
||||
}
|
||||
|
||||
void dc_resume_xmit(_adapter *padapter)
|
||||
{
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
DBG_871X("dc_resume_xmit, resume pbuddy_adapter Tx\n");
|
||||
rtw_os_xmit_schedule(pbuddy_adapter);
|
||||
}
|
||||
}
|
||||
|
||||
u8 dc_check_xmit(struct adapter *padapter)
|
||||
{
|
||||
struct adapter *pbuddy_adapter = padapter->pbuddy_adapter;
|
||||
struct mlme_priv *pbuddy_mlmepriv = NULL;
|
||||
|
||||
if(pbuddy_adapter != NULL &&
|
||||
padapter->DualMacConcurrent == true)
|
||||
{
|
||||
pbuddy_mlmepriv = &(pbuddy_adapter->mlmepriv);
|
||||
if (check_fwstate(pbuddy_mlmepriv, _FW_UNDER_SURVEY|_FW_UNDER_LINKING) == true)
|
||||
{
|
||||
DBG_871X("dc_check_xmit pbuddy_adapter is under survey or under linking\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
int rtw_chk_start_clnt_join(struct adapter *padapter, u8 *ch, u8 *bw, u8 *offset)
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
|
|
|
@ -438,12 +438,6 @@ void SelectChannel(struct adapter *padapter, unsigned char channel)
|
|||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
//saved channel info
|
||||
rtw_set_oper_ch(padapter, channel);
|
||||
dc_SelectChannel(padapter, channel);
|
||||
#else //CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||
|
||||
//saved channel info
|
||||
|
@ -452,21 +446,12 @@ void SelectChannel(struct adapter *padapter, unsigned char channel)
|
|||
rtw_hal_set_chan(padapter, channel);
|
||||
|
||||
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||
|
||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
||||
}
|
||||
|
||||
void SetBWMode(struct adapter *padapter, unsigned short bwmode, unsigned char channel_offset)
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
//saved bw info
|
||||
rtw_set_oper_bw(padapter, bwmode);
|
||||
rtw_set_oper_choffset(padapter, channel_offset);
|
||||
dc_SetBWMode(padapter, bwmode, channel_offset);
|
||||
#else //CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
|
||||
|
||||
//saved bw info
|
||||
|
@ -476,8 +461,6 @@ void SetBWMode(struct adapter *padapter, unsigned short bwmode, unsigned char ch
|
|||
rtw_hal_set_bwmode(padapter, (HT_CHANNEL_WIDTH)bwmode, channel_offset);
|
||||
|
||||
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
|
||||
|
||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
||||
}
|
||||
|
||||
void set_channel_bwmode(struct adapter *padapter, unsigned char channel, unsigned char channel_offset, unsigned short bwmode)
|
||||
|
@ -511,14 +494,6 @@ void set_channel_bwmode(struct adapter *padapter, unsigned char channel, unsigne
|
|||
}
|
||||
|
||||
//set Channel
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
//saved channel/bw info
|
||||
rtw_set_oper_ch(padapter, channel);
|
||||
rtw_set_oper_bw(padapter, bwmode);
|
||||
rtw_set_oper_choffset(padapter, channel_offset);
|
||||
dc_SelectChannel(padapter, center_ch);// set center channel
|
||||
#else //CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||
|
||||
//saved channel/bw info
|
||||
|
@ -530,11 +505,7 @@ void set_channel_bwmode(struct adapter *padapter, unsigned char channel, unsigne
|
|||
|
||||
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||
|
||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
|
||||
SetBWMode(padapter, bwmode, channel_offset);
|
||||
|
||||
}
|
||||
|
||||
int get_bsstype(unsigned short capability)
|
||||
|
@ -2252,21 +2223,6 @@ int rtw_handle_dualmac(struct adapter *adapter, bool init)
|
|||
pbuddy_padapter = NULL;
|
||||
DBG_871X("%s(): pbuddy_padapter exist, Exchange Information\n",__FUNCTION__);
|
||||
}
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
if (dvobj->InterfaceNumber == 0) {
|
||||
//set adapter_type/iface type
|
||||
adapter->isprimary = true;
|
||||
adapter->adapter_type = PRIMARY_struct adapter;
|
||||
adapter->iface_type = IFACE_PORT0;
|
||||
DBG_871X("%s(): PRIMARY_struct adapter\n",__FUNCTION__);
|
||||
} else {
|
||||
//set adapter_type/iface type
|
||||
adapter->isprimary = false;
|
||||
adapter->adapter_type = SECONDARY_struct adapter;
|
||||
adapter->iface_type = IFACE_PORT1;
|
||||
DBG_871X("%s(): SECONDARY_struct adapter\n",__FUNCTION__);
|
||||
}
|
||||
#endif
|
||||
}else {
|
||||
pbuddy_padapter = NULL;
|
||||
}
|
||||
|
|
|
@ -99,37 +99,6 @@ uint rtw_hal_init(struct adapter *padapter)
|
|||
struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
|
||||
int i;
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
if(padapter->hw_init_completed == true)
|
||||
{
|
||||
DBG_871X("rtw_hal_init: hw_init_completed == true\n");
|
||||
return status;
|
||||
}
|
||||
|
||||
// before init mac0, driver must init mac1 first to avoid usb rx error.
|
||||
if((padapter->pbuddy_adapter != NULL) && (padapter->DualMacConcurrent == true)
|
||||
&& (padapter->adapter_type == PRIMARY_ADAPTER))
|
||||
{
|
||||
if(padapter->pbuddy_adapter->hw_init_completed == true)
|
||||
{
|
||||
DBG_871X("rtw_hal_init: pbuddy_adapter hw_init_completed == true\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
status = padapter->HalFunc.hal_init(padapter->pbuddy_adapter);
|
||||
if(status == _SUCCESS){
|
||||
padapter->pbuddy_adapter->hw_init_completed = true;
|
||||
}
|
||||
else{
|
||||
padapter->pbuddy_adapter->hw_init_completed = false;
|
||||
RT_TRACE(_module_hal_init_c_,_drv_err_,("rtw_hal_init: hal__init fail(pbuddy_adapter)\n"));
|
||||
DBG_871X("rtw_hal_init: hal__init fail(pbuddy_adapter)\n");
|
||||
return status;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
status = padapter->HalFunc.hal_init(padapter);
|
||||
|
||||
if(status == _SUCCESS){
|
||||
|
|
|
@ -190,10 +190,6 @@ struct registry_priv
|
|||
u8 fw_iol; //enable iol without other concern
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
u8 dmsp;//0:disable,1:enable
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_80211D
|
||||
u8 enable80211d;
|
||||
#endif
|
||||
|
@ -482,25 +478,11 @@ struct adapter {
|
|||
|
||||
struct adapter *pbuddy_adapter;
|
||||
|
||||
#if defined(CONFIG_DUALMAC_CONCURRENT)
|
||||
u8 isprimary; //is primary adapter or not
|
||||
//notes:
|
||||
// if isprimary is true, the adapter_type value is 0, iface_id is IFACE_ID0 for PRIMARY_ADAPTER
|
||||
// if isprimary is false, the adapter_type value is 1, iface_id is IFACE_ID1 for SECONDARY_ADAPTER
|
||||
// refer to iface_id if iface_nums>2 and isprimary is false and the adapter_type value is 0xff.
|
||||
u8 adapter_type;//used only in two inteface case(PRIMARY_ADAPTER and SECONDARY_ADAPTER) .
|
||||
u8 iface_type; //interface port type, it depends on HW port
|
||||
#endif
|
||||
|
||||
//extend to support multi interface
|
||||
//IFACE_ID0 is equals to PRIMARY_ADAPTER
|
||||
//IFACE_ID1 is equals to SECONDARY_ADAPTER
|
||||
u8 iface_id;
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
u8 DualMacConcurrent; // 1: DMSP 0:DMDP
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BR_EXT
|
||||
_lock br_ext_lock;
|
||||
//unsigned int macclone_completed;
|
||||
|
|
|
@ -765,22 +765,6 @@ extern void process_addba_req(struct adapter *padapter, u8 *paddba_req, u8 *addr
|
|||
extern void update_TSF(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len);
|
||||
extern void correct_TSF(struct adapter *padapter, struct mlme_ext_priv *pmlmeext);
|
||||
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
void dc_SelectChannel(struct adapter *padapter, unsigned char channel);
|
||||
void dc_SetBWMode(struct adapter *padapter, unsigned short bwmode, unsigned char channel_offset);
|
||||
void dc_set_channel_bwmode_disconnect(struct adapter *padapter);
|
||||
u8 dc_handle_join_request(struct adapter *padapter, u8 *ch, u8 *bw, u8 *offset);
|
||||
void dc_handle_join_done(struct adapter *padapter, u8 join_res);
|
||||
sint dc_check_fwstate(struct adapter *padapter, sint fw_state);
|
||||
u8 dc_handle_site_survey(struct adapter *padapter);
|
||||
void dc_report_survey_event(struct adapter *padapter, union recv_frame *precv_frame);
|
||||
void dc_set_channel_bwmode_survey_done(struct adapter *padapter);
|
||||
void dc_set_ap_channel_bandwidth(struct adapter *padapter, u8 channel, u8 channel_offset, u8 bwmode);
|
||||
void dc_resume_xmit(struct adapter *padapter);
|
||||
u8 dc_check_xmit(struct adapter *padapter);
|
||||
#endif
|
||||
|
||||
int rtw_chk_start_clnt_join(struct adapter *padapter, u8 *ch, u8 *bw, u8 *offset);
|
||||
int rtw_get_ch_setting_union(struct adapter *adapter, u8 *ch, u8 *bw, u8 *offset);
|
||||
|
||||
|
|
|
@ -1725,15 +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_DUALMAC_CONCURRENT
|
||||
if (dc_check_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
|
||||
|
||||
if(_FAIL == rtw_pwr_wakeup(padapter))
|
||||
{
|
||||
ret= -1;
|
||||
|
@ -1940,14 +1931,6 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
if (dc_check_fwstate(padapter, _FW_UNDER_SURVEY|_FW_UNDER_LINKING)== true)
|
||||
{
|
||||
indicate_wx_scan_complete_event(padapter);
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Mareded by Albert 20101103
|
||||
// For the DMP WiFi Display project, the driver won't to scan because
|
||||
// the pmlmepriv->scan_interval is always equal to 3.
|
||||
|
@ -2232,15 +2215,6 @@ static int rtw_wx_set_essid(struct net_device *dev,
|
|||
DBG_871X("DBG_IOCTL %s:%d\n",__FUNCTION__, __LINE__);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
if (dc_check_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
|
||||
|
||||
RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_info_,
|
||||
("+rtw_wx_set_essid: fw_state=0x%08x\n", get_fwstate(pmlmepriv)));
|
||||
if(_FAIL == rtw_pwr_wakeup(padapter))
|
||||
|
|
|
@ -163,10 +163,6 @@ static int rtw_hw_wps_pbc = 1;
|
|||
int rtw_mc2u_disable = 0;
|
||||
#endif // CONFIG_TX_MCAST2UNI
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
static int rtw_dmsp = 0;
|
||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
#ifdef CONFIG_80211D
|
||||
static int rtw_80211d = 0;
|
||||
#endif
|
||||
|
@ -271,10 +267,6 @@ MODULE_PARM_DESC(rtw_fw_file_path, "The path of fw image");
|
|||
module_param(rtw_mc2u_disable, int, 0644);
|
||||
#endif // CONFIG_TX_MCAST2UNI
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
module_param(rtw_dmsp, int, 0644);
|
||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
||||
|
||||
#ifdef CONFIG_80211D
|
||||
module_param(rtw_80211d, int, 0644);
|
||||
MODULE_PARM_DESC(rtw_80211d, "Enable 802.11d mechanism");
|
||||
|
@ -425,10 +417,6 @@ static uint loadparam( struct adapter *padapter, _nic_hdl pnetdev)
|
|||
registry_par->fw_iol = rtw_fw_iol;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
||||
registry_par->dmsp= (u8)rtw_dmsp;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_80211D
|
||||
registry_par->enable80211d = (u8)rtw_80211d;
|
||||
#endif
|
||||
|
|
|
@ -1245,17 +1245,6 @@ 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_DUALMAC_CONCURRENT)
|
||||
//set adapter_type/iface type for primary padapter
|
||||
padapter->isprimary = true;
|
||||
padapter->adapter_type = PRIMARY_ADAPTER;
|
||||
#ifndef CONFIG_HWPORT_SWAP
|
||||
padapter->iface_type = IFACE_PORT0;
|
||||
#else
|
||||
padapter->iface_type = IFACE_PORT1;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef RTW_DVOBJ_CHIP_HW_TYPE
|
||||
//step 1-1., decide the chip_type via vid/pid
|
||||
padapter->interface_type = RTW_USB;
|
||||
|
|
Loading…
Reference in a new issue