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
|
#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
|
//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, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||||
set_channel_bwmode(padapter, cur_channel, cur_ch_offset, 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_channel = cur_channel;
|
||||||
pmlmeext->cur_bwmode = cur_bwmode;
|
pmlmeext->cur_bwmode = cur_bwmode;
|
||||||
pmlmeext->cur_ch_offset = cur_ch_offset;
|
pmlmeext->cur_ch_offset = cur_ch_offset;
|
||||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
|
||||||
pmlmeext->cur_wireless_mode = pmlmepriv->cur_network.network_type;
|
pmlmeext->cur_wireless_mode = pmlmepriv->cur_network.network_type;
|
||||||
|
|
||||||
//let pnetwork_mlmeext == pnetwork_mlme.
|
//let pnetwork_mlmeext == pnetwork_mlme.
|
||||||
|
|
|
@ -1214,9 +1214,6 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf)
|
||||||
#endif // CONFIG_P2P_PS
|
#endif // CONFIG_P2P_PS
|
||||||
|
|
||||||
rtw_os_xmit_schedule(adapter);
|
rtw_os_xmit_schedule(adapter);
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
dc_resume_xmit(adapter);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_DRVEXT_MODULE_WSC
|
#ifdef CONFIG_DRVEXT_MODULE_WSC
|
||||||
drvext_surveydone_callback(&adapter->drvextpriv);
|
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);
|
mlmeext_joinbss_event_callback(adapter, pnetwork->join_res);
|
||||||
|
|
||||||
rtw_os_xmit_schedule(adapter);
|
rtw_os_xmit_schedule(adapter);
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
dc_resume_xmit(adapter);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 search_max_mac_id(struct adapter *padapter)
|
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)
|
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
|
||||||
{
|
{
|
||||||
report_survey_event(padapter, precv_frame);
|
report_survey_event(padapter, precv_frame);
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
dc_report_survey_event(padapter, precv_frame);
|
|
||||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1058,10 +1055,6 @@ unsigned int OnBeacon(struct adapter *padapter, union recv_frame *precv_frame)
|
||||||
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
|
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS)
|
||||||
{
|
{
|
||||||
report_survey_event(padapter, precv_frame);
|
report_survey_event(padapter, precv_frame);
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
dc_report_survey_event(padapter, precv_frame);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8647,9 +8640,6 @@ void site_survey(struct adapter *padapter)
|
||||||
//SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset);
|
//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( pwdinfo->driver_interface == DRIVER_WEXT )
|
||||||
{
|
{
|
||||||
if( rtw_p2p_chk_state(pwdinfo, P2P_STATE_LISTEN) )
|
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);
|
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
|
//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
|
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);
|
Set_MSR(padapter, WIFI_FW_ADHOC_STATE);
|
||||||
|
|
||||||
val8 = 0xcf;
|
val8 = 0xcf;
|
||||||
|
@ -9884,9 +9865,6 @@ void mlmeext_joinbss_event_callback(struct adapter *padapter, int join_res)
|
||||||
|
|
||||||
exit_mlmeext_joinbss_event_callback:
|
exit_mlmeext_joinbss_event_callback:
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
dc_handle_join_done(padapter, join_res);
|
|
||||||
#endif
|
|
||||||
DBG_871X("=>%s\n", __FUNCTION__);
|
DBG_871X("=>%s\n", __FUNCTION__);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9955,9 +9933,6 @@ void mlmeext_sta_del_event_callback(struct adapter *padapter)
|
||||||
//restore to initial setting.
|
//restore to initial setting.
|
||||||
update_tx_basic_rate(padapter, padapter->registrypriv.wireless_mode);
|
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
|
//switch to the 20M Hz mode after disconnect
|
||||||
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||||
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
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);
|
//SelectChannel(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset);
|
||||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||||
|
|
||||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
|
||||||
|
|
||||||
flush_all_cam_entry(padapter);
|
flush_all_cam_entry(padapter);
|
||||||
|
|
||||||
pmlmeinfo->state = WIFI_FW_NULL_STATE;
|
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 */
|
/* 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) {
|
if(rtw_chk_start_clnt_join(padapter, &ch, &bw, &offset) == _FAIL) {
|
||||||
report_join_res(padapter, (-4));
|
report_join_res(padapter, (-4));
|
||||||
return H2C_SUCCESS;
|
return H2C_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//disable dynamic functions, such as high power, DIG
|
//disable dynamic functions, such as high power, DIG
|
||||||
//Switch_DM_Func(padapter, DYNAMIC_FUNC_DISABLE, false);
|
//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;
|
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
|
//switch to the 20M Hz mode after disconnect
|
||||||
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
pmlmeext->cur_bwmode = HT_CHANNEL_WIDTH_20;
|
||||||
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
pmlmeext->cur_ch_offset = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
|
||||||
|
|
||||||
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
set_channel_bwmode(padapter, pmlmeext->cur_channel, pmlmeext->cur_ch_offset, pmlmeext->cur_bwmode);
|
||||||
#endif //CONFIG_DUALMAC_CONCURRENT
|
|
||||||
|
|
||||||
flush_all_cam_entry(padapter);
|
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;
|
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
|
//issue null data if associating to the AP
|
||||||
if (is_client_associated_to_ap(padapter) == true)
|
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)
|
int rtw_chk_start_clnt_join(struct adapter *padapter, u8 *ch, u8 *bw, u8 *offset)
|
||||||
{
|
{
|
||||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
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;
|
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);
|
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||||
|
|
||||||
//saved channel info
|
//saved channel info
|
||||||
|
@ -452,21 +446,12 @@ void SelectChannel(struct adapter *padapter, unsigned char channel)
|
||||||
rtw_hal_set_chan(padapter, channel);
|
rtw_hal_set_chan(padapter, channel);
|
||||||
|
|
||||||
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
_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)
|
void SetBWMode(struct adapter *padapter, unsigned short bwmode, unsigned char channel_offset)
|
||||||
{
|
{
|
||||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
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);
|
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
|
||||||
|
|
||||||
//saved bw info
|
//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);
|
rtw_hal_set_bwmode(padapter, (HT_CHANNEL_WIDTH)bwmode, channel_offset);
|
||||||
|
|
||||||
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->setbw_mutex), NULL);
|
_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)
|
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
|
//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);
|
_enter_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||||
|
|
||||||
//saved channel/bw info
|
//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);
|
_exit_critical_mutex(&(adapter_to_dvobj(padapter)->setch_mutex), NULL);
|
||||||
|
|
||||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
|
||||||
|
|
||||||
|
|
||||||
SetBWMode(padapter, bwmode, channel_offset);
|
SetBWMode(padapter, bwmode, channel_offset);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_bsstype(unsigned short capability)
|
int get_bsstype(unsigned short capability)
|
||||||
|
@ -2252,21 +2223,6 @@ int rtw_handle_dualmac(struct adapter *adapter, bool init)
|
||||||
pbuddy_padapter = NULL;
|
pbuddy_padapter = NULL;
|
||||||
DBG_871X("%s(): pbuddy_padapter exist, Exchange Information\n",__FUNCTION__);
|
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 {
|
}else {
|
||||||
pbuddy_padapter = NULL;
|
pbuddy_padapter = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,37 +99,6 @@ uint rtw_hal_init(struct adapter *padapter)
|
||||||
struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
|
struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
|
||||||
int i;
|
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);
|
status = padapter->HalFunc.hal_init(padapter);
|
||||||
|
|
||||||
if(status == _SUCCESS){
|
if(status == _SUCCESS){
|
||||||
|
|
|
@ -190,10 +190,6 @@ struct registry_priv
|
||||||
u8 fw_iol; //enable iol without other concern
|
u8 fw_iol; //enable iol without other concern
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
u8 dmsp;//0:disable,1:enable
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_80211D
|
#ifdef CONFIG_80211D
|
||||||
u8 enable80211d;
|
u8 enable80211d;
|
||||||
#endif
|
#endif
|
||||||
|
@ -482,25 +478,11 @@ struct adapter {
|
||||||
|
|
||||||
struct adapter *pbuddy_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
|
//extend to support multi interface
|
||||||
//IFACE_ID0 is equals to PRIMARY_ADAPTER
|
//IFACE_ID0 is equals to PRIMARY_ADAPTER
|
||||||
//IFACE_ID1 is equals to SECONDARY_ADAPTER
|
//IFACE_ID1 is equals to SECONDARY_ADAPTER
|
||||||
u8 iface_id;
|
u8 iface_id;
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
u8 DualMacConcurrent; // 1: DMSP 0:DMDP
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_BR_EXT
|
#ifdef CONFIG_BR_EXT
|
||||||
_lock br_ext_lock;
|
_lock br_ext_lock;
|
||||||
//unsigned int macclone_completed;
|
//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 update_TSF(struct mlme_ext_priv *pmlmeext, u8 *pframe, uint len);
|
||||||
extern void correct_TSF(struct adapter *padapter, struct mlme_ext_priv *pmlmeext);
|
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_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);
|
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;
|
struct wlan_network *pnetwork = NULL;
|
||||||
NDIS_802_11_AUTHENTICATION_MODE authmode;
|
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))
|
if(_FAIL == rtw_pwr_wakeup(padapter))
|
||||||
{
|
{
|
||||||
ret= -1;
|
ret= -1;
|
||||||
|
@ -1940,14 +1931,6 @@ static int rtw_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
|
||||||
}
|
}
|
||||||
#endif
|
#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
|
// Mareded by Albert 20101103
|
||||||
// For the DMP WiFi Display project, the driver won't to scan because
|
// For the DMP WiFi Display project, the driver won't to scan because
|
||||||
// the pmlmepriv->scan_interval is always equal to 3.
|
// 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__);
|
DBG_871X("DBG_IOCTL %s:%d\n",__FUNCTION__, __LINE__);
|
||||||
#endif
|
#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_,
|
RT_TRACE(_module_rtl871x_ioctl_os_c, _drv_info_,
|
||||||
("+rtw_wx_set_essid: fw_state=0x%08x\n", get_fwstate(pmlmepriv)));
|
("+rtw_wx_set_essid: fw_state=0x%08x\n", get_fwstate(pmlmepriv)));
|
||||||
if(_FAIL == rtw_pwr_wakeup(padapter))
|
if(_FAIL == rtw_pwr_wakeup(padapter))
|
||||||
|
|
|
@ -163,10 +163,6 @@ static int rtw_hw_wps_pbc = 1;
|
||||||
int rtw_mc2u_disable = 0;
|
int rtw_mc2u_disable = 0;
|
||||||
#endif // CONFIG_TX_MCAST2UNI
|
#endif // CONFIG_TX_MCAST2UNI
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
static int rtw_dmsp = 0;
|
|
||||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
|
||||||
|
|
||||||
#ifdef CONFIG_80211D
|
#ifdef CONFIG_80211D
|
||||||
static int rtw_80211d = 0;
|
static int rtw_80211d = 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -271,10 +267,6 @@ MODULE_PARM_DESC(rtw_fw_file_path, "The path of fw image");
|
||||||
module_param(rtw_mc2u_disable, int, 0644);
|
module_param(rtw_mc2u_disable, int, 0644);
|
||||||
#endif // CONFIG_TX_MCAST2UNI
|
#endif // CONFIG_TX_MCAST2UNI
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
module_param(rtw_dmsp, int, 0644);
|
|
||||||
#endif // CONFIG_DUALMAC_CONCURRENT
|
|
||||||
|
|
||||||
#ifdef CONFIG_80211D
|
#ifdef CONFIG_80211D
|
||||||
module_param(rtw_80211d, int, 0644);
|
module_param(rtw_80211d, int, 0644);
|
||||||
MODULE_PARM_DESC(rtw_80211d, "Enable 802.11d mechanism");
|
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;
|
registry_par->fw_iol = rtw_fw_iol;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DUALMAC_CONCURRENT
|
|
||||||
registry_par->dmsp= (u8)rtw_dmsp;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_80211D
|
#ifdef CONFIG_80211D
|
||||||
registry_par->enable80211d = (u8)rtw_80211d;
|
registry_par->enable80211d = (u8)rtw_80211d;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1245,17 +1245,6 @@ static struct adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
||||||
dvobj->padapters[dvobj->iface_nums++] = padapter;
|
dvobj->padapters[dvobj->iface_nums++] = padapter;
|
||||||
padapter->iface_id = IFACE_ID0;
|
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
|
#ifndef RTW_DVOBJ_CHIP_HW_TYPE
|
||||||
//step 1-1., decide the chip_type via vid/pid
|
//step 1-1., decide the chip_type via vid/pid
|
||||||
padapter->interface_type = RTW_USB;
|
padapter->interface_type = RTW_USB;
|
||||||
|
|
Loading…
Reference in a new issue