enabled concurent mode

This commit is contained in:
fariouche 2019-08-31 17:44:23 +02:00
parent 11cb9c2a37
commit 5e7e1dec1d
5 changed files with 46 additions and 45 deletions

View File

@ -1294,6 +1294,8 @@ EXTRA_CFLAGS += -DDM_ODM_SUPPORT_TYPE=0x04
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IFACE_NUMBER=3
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
@ -2341,7 +2343,7 @@ export CONFIG_RTL8812AU = m
all: modules
modules:
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KSRC) M=$(shell pwd) modules
strip:
$(CROSS_COMPILE)strip $(MODULE_NAME).ko --strip-unneeded

View File

@ -171,7 +171,7 @@ void rtw_add_bcn_ie(_adapter *padapter, WLAN_BSSID_EX *pnetwork, u8 index, u8 *d
u8 bmatch = _FALSE;
u8 *pie = pnetwork->IEs;
u8 *p = NULL, *dst_ie = NULL, *premainder_ie = NULL, *pbackup_remainder_ie = NULL;
u32 i, offset, ielen, ie_offset, remainder_ielen = 0;
u32 i, offset, ielen = 0, ie_offset, remainder_ielen = 0;
for (i = sizeof(NDIS_802_11_FIXED_IEs); i < pnetwork->IELength;) {
pIE = (PNDIS_802_11_VARIABLE_IEs)(pnetwork->IEs + i);
@ -1931,8 +1931,7 @@ int rtw_check_beacon_data(_adapter *padapter, u8 *pbuf, int len)
if (!MLME_IS_AP(padapter) && !MLME_IS_MESH(padapter))
return _FAIL;
if (len > MAX_IE_SZ)
if (len < 0 || len > MAX_IE_SZ)
return _FAIL;
pbss_network->IELength = len;
@ -4589,6 +4588,7 @@ static bool rtw_ap_choose_chbw(_adapter *adapter, u8 sel_ch, u8 max_bw, u8 cur_c
, RTW_CHF_DFS
, cur_ch
, rfctl->ch_sel_same_band_prefer, mesh_only);
goto exit;
}
exit:
@ -5217,10 +5217,10 @@ u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct
status = WLAN_STATUS_ROBUST_MGMT_FRAME_POLICY_VIOLATION;
if (!sta->wpa2_group_cipher)
status = WLAN_STATUS_GROUP_CIPHER_NOT_VALID;
status = WLAN_STATUS_INVALID_GROUP_CIPHER;
if (!sta->wpa2_pairwise_cipher)
status = WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID;
status = WLAN_STATUS_INVALID_PAIRWISE_CIPHER;
} else
status = WLAN_STATUS_INVALID_IE;
@ -5237,10 +5237,10 @@ u16 rtw_ap_parse_sta_security_ie(_adapter *adapter, struct sta_info *sta, struct
sta->wpa_pairwise_cipher = pairwise_cipher & sec->wpa_pairwise_cipher;
if (!sta->wpa_group_cipher)
status = WLAN_STATUS_GROUP_CIPHER_NOT_VALID;
status = WLAN_STATUS_INVALID_GROUP_CIPHER;
if (!sta->wpa_pairwise_cipher)
status = WLAN_STATUS_PAIRWISE_CIPHER_NOT_VALID;
status = WLAN_STATUS_INVALID_PAIRWISE_CIPHER;
} else
status = WLAN_STATUS_INVALID_IE;
@ -5469,4 +5469,3 @@ exit:
return;
}
#endif /* CONFIG_AP_MODE */

View File

@ -5577,7 +5577,7 @@ u8 GetHalDefVar8812A(PADAPTER padapter, HAL_DEF_VARIABLE variable, void *pval)
break;
case HAL_DEF_RX_STBC:
*(u8 *)pval = 1;
*(u8 *)pval = 2;
break;
case HAL_DEF_EXPLICIT_BEAMFORMER:

View File

@ -4169,7 +4169,7 @@ void SetBeaconRelatedRegisters8814A(PADAPTER padapter)
//BCN interval
#ifdef CONFIG_CONCURRENT_MODE
if (padapter->iface_type == IFACE_PORT1){
if (padapter->hw_port == HW_PORT1){
bcn_ctrl_reg = REG_BCN_CTRL_1;
}
#endif
@ -4220,7 +4220,7 @@ SetBeamformingCLK_8812(
if ( (check_fwstate(&Adapter->mlmepriv, _FW_UNDER_SURVEY)==_TRUE)
#ifdef CONFIG_CONCURRENT_MODE
|| (check_buddy_fwstate(Adapter, _FW_UNDER_SURVEY) == _TRUE)
|| (rtw_mi_check_fwstate(Adapter, _FW_UNDER_SURVEY) == _TRUE)
#endif
)
{
@ -4795,7 +4795,7 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
}
#ifdef CONFIG_CONCURRENT_MODE
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
{
// disable Port1 TSF update
rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1)|DIS_TSF_UDT);
@ -4809,7 +4809,7 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
if((mode == _HW_STATE_STATION_) || (mode == _HW_STATE_NOLINK_))
{
if(!check_buddy_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE))
if(!rtw_mi_buddy_check_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE))
{
StopTxBeacon(Adapter);
#ifdef CONFIG_PCI_HCI
@ -4896,7 +4896,7 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
rtw_write8(Adapter, REG_BCN_CTRL_1, (DIS_TSF_UDT|EN_BCN_FUNCTION | EN_TXBCN_RPT|DIS_BCNQ_SUB));
#ifdef CONFIG_CONCURRENT_MODE
if(check_buddy_fwstate(Adapter, WIFI_FW_NULL_STATE))
if(rtw_mi_check_fwstate(Adapter, WIFI_FW_NULL_STATE))
rtw_write8(Adapter, REG_BCN_CTRL,
rtw_read8(Adapter, REG_BCN_CTRL) & ~EN_BCN_FUNCTION);
#endif
@ -4909,8 +4909,8 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
#ifdef CONFIG_TSF_RESET_OFFLOAD
// Reset TSF for STA+AP concurrent mode
if ( check_buddy_fwstate(Adapter, (WIFI_STATION_STATE|WIFI_ASOC_STATE)) ) {
if (reset_tsf(Adapter, IFACE_PORT1) == _FALSE)
if ( rtw_mi_check_fwstate(Adapter, (WIFI_STATION_STATE|WIFI_ASOC_STATE)) ) {
if (reset_tsf(Adapter, HW_PORT1) == _FALSE)
RTW_INFO("ERROR! %s()-%d: Reset port1 TSF fail\n",
__FUNCTION__, __LINE__);
}
@ -4933,7 +4933,7 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
if((mode == _HW_STATE_STATION_) || (mode == _HW_STATE_NOLINK_))
{
#ifdef CONFIG_CONCURRENT_MODE
if(!check_buddy_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE))
if(!rtw_mi_buddy_check_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE))
#endif // CONFIG_CONCURRENT_MODE
{
StopTxBeacon(Adapter);
@ -5020,7 +5020,7 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
rtw_write8(Adapter, REG_BCN_CTRL, (DIS_TSF_UDT|EN_BCN_FUNCTION | EN_TXBCN_RPT|DIS_BCNQ_SUB));
#ifdef CONFIG_CONCURRENT_MODE
if(check_buddy_fwstate(Adapter, WIFI_FW_NULL_STATE))
if(rtw_mi_check_fwstate(Adapter, WIFI_FW_NULL_STATE))
rtw_write8(Adapter, REG_BCN_CTRL_1,
rtw_read8(Adapter, REG_BCN_CTRL_1) & ~EN_BCN_FUNCTION);
#endif
@ -5029,7 +5029,7 @@ static void hw_var_set_opmode(PADAPTER Adapter, u8 variable, u8* val)
rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1)|DIS_ATIM);
#ifdef CONFIG_TSF_RESET_OFFLOAD
// Reset TSF for STA+AP concurrent mode
if ( check_buddy_fwstate(Adapter, (WIFI_STATION_STATE|WIFI_ASOC_STATE)) ) {
if ( rtw_mi_check_fwstate(Adapter, (WIFI_STATION_STATE|WIFI_ASOC_STATE)) ) {
if (reset_tsf(Adapter, IFACE_PORT0) == _FALSE)
RTW_INFO("ERROR! %s()-%d: Reset port0 TSF fail\n",
__FUNCTION__, __LINE__);
@ -5045,7 +5045,7 @@ static void hw_var_set_macaddr(PADAPTER Adapter, u8 variable, u8* val)
u32 reg_macid;
#ifdef CONFIG_CONCURRENT_MODE
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
{
reg_macid = REG_MACID1;
}
@ -5068,7 +5068,7 @@ static void hw_var_set_bssid(PADAPTER Adapter, u8 variable, u8* val)
u32 reg_bssid;
#ifdef CONFIG_CONCURRENT_MODE
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
{
reg_bssid = REG_BSSID1;
}
@ -5090,7 +5090,7 @@ static void hw_var_set_bcn_func(PADAPTER Adapter, u8 variable, u8* val)
u32 bcn_ctrl_reg;
u8 val8;
#ifdef CONFIG_CONCURRENT_MODE
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
{
bcn_ctrl_reg = REG_BCN_CTRL_1;
}
@ -5144,7 +5144,7 @@ static void hw_var_set_correct_tsf(PADAPTER Adapter, u8 variable, u8* val)
StopTxBeacon(Adapter);
}
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
{
//disable related TSF function
rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1)&(~BIT(3)));
@ -5158,7 +5158,7 @@ static void hw_var_set_correct_tsf(PADAPTER Adapter, u8 variable, u8* val)
// Update buddy port's TSF if it is SoftAP for beacon TX issue!
if ( (pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE
&& check_buddy_fwstate(Adapter, WIFI_AP_STATE)
&& rtw_mi_check_fwstate(Adapter, WIFI_AP_STATE)
) {
//disable related TSF function
rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL)&(~BIT(3)));
@ -5192,7 +5192,7 @@ static void hw_var_set_correct_tsf(PADAPTER Adapter, u8 variable, u8* val)
// Update buddy port's TSF if it is SoftAP for beacon TX issue!
if ( (pmlmeinfo->state&0x03) == WIFI_FW_STATION_STATE
&& check_buddy_fwstate(Adapter, WIFI_AP_STATE)
&& rtw_mi_check_fwstate(Adapter, WIFI_AP_STATE)
) {
//disable related TSF function
rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1)&(~BIT(3)));
@ -5204,7 +5204,7 @@ static void hw_var_set_correct_tsf(PADAPTER Adapter, u8 variable, u8* val)
rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1)|BIT(3));
#ifdef CONFIG_TSF_RESET_OFFLOAD
// Update buddy port's TSF if it is SoftAP for beacon TX issue!
if (reset_tsf(Adapter, IFACE_PORT1) == _FALSE)
if (reset_tsf(Adapter, HW_PORT1) == _FALSE)
RTW_INFO("ERROR! %s()-%d: Reset port1 TSF fail\n",
__FUNCTION__, __LINE__);
#endif // CONFIG_TSF_RESET_OFFLOAD
@ -5227,11 +5227,11 @@ static void hw_var_set_mlme_disconnect(PADAPTER Adapter, u8 variable, u8* val)
{
#ifdef CONFIG_CONCURRENT_MODE
if(check_buddy_mlmeinfo_state(Adapter, _HW_STATE_NOLINK_))
if(rtw_mi_buddy_check_mlmeinfo_state(Adapter, _HW_STATE_NOLINK_))
rtw_write16(Adapter, REG_RXFLTMAP2, 0x00);
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
{
//reset TSF1
rtw_write8(Adapter, REG_DUAL_TSF_RST, BIT(1));
@ -5267,7 +5267,7 @@ static void hw_var_set_mlme_sitesurvey(PADAPTER Adapter, u8 variable, u8* val)
#endif
#ifdef CONFIG_CONCURRENT_MODE
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
reg_bcn_ctl = REG_BCN_CTRL_1;
else
#endif //CONFIG_CONCURRENT_MODE
@ -5291,7 +5291,7 @@ static void hw_var_set_mlme_sitesurvey(PADAPTER Adapter, u8 variable, u8* val)
if( (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE)
#ifdef CONFIG_CONCURRENT_MODE
|| (check_buddy_fwstate(Adapter, WIFI_AP_STATE) == _TRUE)
|| (rtw_mi_check_fwstate(Adapter, WIFI_AP_STATE) == _TRUE)
#endif
)
{
@ -5329,7 +5329,7 @@ static void hw_var_set_mlme_sitesurvey(PADAPTER Adapter, u8 variable, u8* val)
{
if(check_fwstate(pmlmepriv, (_FW_LINKED|WIFI_AP_STATE))
#ifdef CONFIG_CONCURRENT_MODE
|| check_buddy_fwstate(Adapter, (_FW_LINKED|WIFI_AP_STATE))
|| rtw_mi_check_fwstate(Adapter, (_FW_LINKED|WIFI_AP_STATE))
#endif
)
{
@ -5383,8 +5383,8 @@ static void hw_var_set_mlme_join(PADAPTER Adapter, u8 variable, u8* val)
if(type == 0) // prepare to join
{
if(check_buddy_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE) &&
check_buddy_fwstate(Adapter, _FW_LINKED))
if(rtw_mi_buddy_check_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE) &&
rtw_mi_check_fwstate(Adapter, _FW_LINKED))
{
StopTxBeacon(Adapter);
}
@ -5393,7 +5393,7 @@ static void hw_var_set_mlme_join(PADAPTER Adapter, u8 variable, u8* val)
//rtw_write32(padapter, REG_RCR, rtw_read32(padapter, REG_RCR)|RCR_ADF);
rtw_write16(Adapter, REG_RXFLTMAP2,0xFFFF);
if(check_buddy_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE))
if(rtw_mi_buddy_check_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE))
{
rtw_write32(Adapter, REG_RCR, rtw_read32(Adapter, REG_RCR)|RCR_CBSSID_BCN);
}
@ -5413,11 +5413,11 @@ static void hw_var_set_mlme_join(PADAPTER Adapter, u8 variable, u8* val)
}
else if(type == 1) //joinbss_event call back when join res < 0
{
if(check_buddy_mlmeinfo_state(Adapter, _HW_STATE_NOLINK_))
if(rtw_mi_buddy_check_mlmeinfo_state(Adapter, _HW_STATE_NOLINK_))
rtw_write16(Adapter, REG_RXFLTMAP2,0x00);
if(check_buddy_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE) &&
check_buddy_fwstate(Adapter, _FW_LINKED))
if(rtw_mi_buddy_check_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE) &&
rtw_mi_check_fwstate(Adapter, _FW_LINKED))
{
ResumeTxBeacon(Adapter);
@ -5430,7 +5430,7 @@ static void hw_var_set_mlme_join(PADAPTER Adapter, u8 variable, u8* val)
{
//enable update TSF
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1)&(~BIT(4)));
else
rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL)&(~BIT(4)));
@ -5444,8 +5444,8 @@ static void hw_var_set_mlme_join(PADAPTER Adapter, u8 variable, u8* val)
}
if(check_buddy_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE) &&
check_buddy_fwstate(Adapter, _FW_LINKED))
if(rtw_mi_buddy_check_mlmeinfo_state(Adapter, WIFI_FW_AP_STATE) &&
rtw_mi_check_fwstate(Adapter, _FW_LINKED))
{
ResumeTxBeacon(Adapter);
@ -6111,7 +6111,7 @@ u8 SetHwReg8814A(PADAPTER padapter, u8 variable, u8 *pval)
case HW_VAR_BCN_VALID:
#ifdef CONFIG_CONCURRENT_MODE
if (padapter->iface_type == IFACE_PORT1)
if (padapter->hw_port == HW_PORT1)
{
/* BCN_VALID, BIT31 of REG_FIFOPAGE_CTRL_2_8814A, write 1 to clear, Clear by sw */
val8 = rtw_read8(padapter, REG_FIFOPAGE_CTRL_2_8814A+3);
@ -6131,7 +6131,7 @@ u8 SetHwReg8814A(PADAPTER padapter, u8 variable, u8 *pval)
case HW_VAR_DL_BCN_SEL:
#if 0 /* for MBSSID, so far we don't need this */
#ifdef CONFIG_CONCURRENT_MODE
if (IS_HARDWARE_TYPE_8821(padapter) && padapter->iface_type == IFACE_PORT1)
if (IS_HARDWARE_TYPE_8821(padapter) && padapter->hw_port == HW_PORT1)
{
// SW_BCN_SEL - Port1
val8 = rtw_read8(padapter, REG_AUTO_LLT_8814A);
@ -6374,7 +6374,7 @@ void GetHwReg8814A(PADAPTER padapter, u8 variable, u8 *pval)
case HW_VAR_BCN_VALID:
#ifdef CONFIG_CONCURRENT_MODE
if (padapter->iface_type == IFACE_PORT1)
if (padapter->hw_port == HW_PORT1)
{
/* BCN_VALID, BIT31 of REG_FIFOPAGE_CTRL_2_8814A, write 1 to clear */
val8 = rtw_read8(padapter, REG_FIFOPAGE_CTRL_2_8814A+3);

View File

@ -1665,7 +1665,7 @@ HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_MISC31);
for(i=0; i<6; i++)
{
#ifdef CONFIG_CONCURRENT_MODE
if(Adapter->iface_type == IFACE_PORT1)
if(Adapter->hw_port == HW_PORT1)
mac_addr[i] = rtw_read8(Adapter, REG_MACID1+i);
else
#endif