mirror of
https://github.com/aircrack-ng/rtl8812au.git
synced 2025-01-03 21:04:05 +00:00
Merge branch 'v5.3.4' into v5.3.4
This commit is contained in:
commit
16a377fc5b
83
.travis.yml
83
.travis.yml
@ -1,6 +1,7 @@
|
|||||||
language: c
|
language: c
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
sudo: required
|
sudo: required
|
||||||
|
dist: xenial
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- sudo apt-get clean
|
- sudo apt-get clean
|
||||||
@ -14,24 +15,50 @@ before_install:
|
|||||||
|
|
||||||
script:
|
script:
|
||||||
- make CC=$COMPILER KVER=$KVER_BUILD-generic
|
- make CC=$COMPILER KVER=$KVER_BUILD-generic
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- KERNEL_URL=http://kernel.ubuntu.com/~kernel-ppa/mainline/
|
- KERNEL_URL=http://kernel.ubuntu.com/~kernel-ppa/mainline/
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
|
- compiler: gcc
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||||
|
packages:
|
||||||
|
- libssl1.1
|
||||||
|
env: COMPILER=gcc-5 KVER=5.2-rc1
|
||||||
- compiler: gcc
|
- compiler: gcc
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
- sourceline: 'ppa:ondrej/nginx-mainline'
|
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||||
|
packages:
|
||||||
|
- gcc-6
|
||||||
|
- libssl1.1
|
||||||
|
env: COMPILER=gcc-6 KVER=5.2-rc1
|
||||||
|
- compiler: gcc
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||||
|
packages:
|
||||||
|
- gcc-7
|
||||||
|
- libssl1.1
|
||||||
|
env: COMPILER=gcc-7 KVER=5.2-rc1
|
||||||
|
- compiler: gcc
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||||
packages:
|
packages:
|
||||||
- gcc-5
|
- gcc-5
|
||||||
- libelf-dev
|
- libelf-dev
|
||||||
- libssl1.1
|
- libssl1.1
|
||||||
env: COMPILER=gcc-5 KVER=5.0
|
env: COMPILER=gcc-5 KVER=4.19.45
|
||||||
- compiler: gcc
|
- compiler: gcc
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
@ -41,51 +68,22 @@ matrix:
|
|||||||
packages:
|
packages:
|
||||||
- gcc-6
|
- gcc-6
|
||||||
- libelf-dev
|
- libelf-dev
|
||||||
|
- compiler: gcc
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
packages:
|
||||||
|
- gcc-7
|
||||||
|
- libelf-dev
|
||||||
- libssl1.1
|
- libssl1.1
|
||||||
env: COMPILER=gcc-6 KVER=5.0
|
env: COMPILER=gcc-6 KVER=4.19.45
|
||||||
- compiler: gcc
|
- compiler: gcc
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
- sourceline: 'ppa:ondrej/nginx-mainline'
|
- sourceline: 'ppa:ondrej/nginx-mainline'
|
||||||
packages:
|
|
||||||
- gcc-7
|
|
||||||
- libelf-dev
|
|
||||||
- libssl1.1
|
|
||||||
env: COMPILER=gcc-7 KVER=5.0
|
|
||||||
- compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
- gcc-5
|
|
||||||
- libelf-dev
|
|
||||||
env: COMPILER=gcc-5 KVER=4.15
|
|
||||||
- compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
- gcc-6
|
|
||||||
- libelf-dev
|
|
||||||
env: COMPILER=gcc-6 KVER=4.15
|
|
||||||
- compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
|
||||||
- gcc-7
|
|
||||||
- libelf-dev
|
|
||||||
env: COMPILER=gcc-7 KVER=4.15
|
|
||||||
- compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- ubuntu-toolchain-r-test
|
|
||||||
packages:
|
packages:
|
||||||
- gcc-5
|
- gcc-5
|
||||||
- libelf-dev
|
- libelf-dev
|
||||||
@ -124,3 +122,8 @@ matrix:
|
|||||||
packages:
|
packages:
|
||||||
- gcc-4.9
|
- gcc-4.9
|
||||||
env: COMPILER=gcc-4.9 KVER=3.16.48
|
env: COMPILER=gcc-4.9 KVER=3.16.48
|
||||||
|
- gcc-7
|
||||||
|
- libssl1.1
|
||||||
|
env: COMPILER=gcc-7 KVER=4.19.45
|
||||||
|
- compiler: gcc
|
||||||
|
env: COMPILER=gcc-5 KVER=3.14.79
|
||||||
|
19
Makefile
19
Makefile
@ -10,6 +10,7 @@ EXTRA_CFLAGS += -Wextra
|
|||||||
#EXTRA_CFLAGS += -Wno-tautological-compare
|
#EXTRA_CFLAGS += -Wno-tautological-compare
|
||||||
#EXTRA_CFLAGS += -Wno-incompatible-pointer-types
|
#EXTRA_CFLAGS += -Wno-incompatible-pointer-types
|
||||||
#EXTRA_CFLAGS += -Wno-switch
|
#EXTRA_CFLAGS += -Wno-switch
|
||||||
|
#EXTRA_CFLAGS += -Wmissing-field-initializers
|
||||||
EXTRA_CFLAGS += -Wno-cast-function-type
|
EXTRA_CFLAGS += -Wno-cast-function-type
|
||||||
EXTRA_CFLAGS += -Wno-unused-variable
|
EXTRA_CFLAGS += -Wno-unused-variable
|
||||||
EXTRA_CFLAGS += -Wno-unused-value
|
EXTRA_CFLAGS += -Wno-unused-value
|
||||||
@ -43,8 +44,12 @@ CONFIG_RTL8821A = y
|
|||||||
CONFIG_RTL8814A = y
|
CONFIG_RTL8814A = y
|
||||||
######################### Interface ###########################
|
######################### Interface ###########################
|
||||||
CONFIG_USB_HCI = y
|
CONFIG_USB_HCI = y
|
||||||
|
######################### LED ###########################
|
||||||
|
CONFIG_LED_CONTROL = y
|
||||||
|
CONFIG_LED_ENABLE = y
|
||||||
########################## Features ###########################
|
########################## Features ###########################
|
||||||
CONFIG_NET_NS = n
|
CONFIG_NET_NS = n
|
||||||
|
CONFIG_IPV6_DISABLE = n
|
||||||
CONFIG_MP_INCLUDED = y
|
CONFIG_MP_INCLUDED = y
|
||||||
CONFIG_CONCURRENT_MODE = n
|
CONFIG_CONCURRENT_MODE = n
|
||||||
CONFIG_POWER_SAVING = n
|
CONFIG_POWER_SAVING = n
|
||||||
@ -151,6 +156,7 @@ CONFIG_PLATFORM_ARM_SPREADTRUM_6820 = n
|
|||||||
CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n
|
CONFIG_PLATFORM_ARM_SPREADTRUM_8810 = n
|
||||||
CONFIG_PLATFORM_ARM_WMT = n
|
CONFIG_PLATFORM_ARM_WMT = n
|
||||||
CONFIG_PLATFORM_ARM_RPI = n
|
CONFIG_PLATFORM_ARM_RPI = n
|
||||||
|
CONFIG_PLATFORM_ARM64_RPI = n
|
||||||
CONFIG_PLATFORM_ARM_ODROIDC2 = n
|
CONFIG_PLATFORM_ARM_ODROIDC2 = n
|
||||||
CONFIG_PLATFORM_TI_DM365 = n
|
CONFIG_PLATFORM_TI_DM365 = n
|
||||||
CONFIG_PLATFORM_MOZART = n
|
CONFIG_PLATFORM_MOZART = n
|
||||||
@ -1451,6 +1457,17 @@ MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
|||||||
INSTALL_PREFIX :=
|
INSTALL_PREFIX :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_PLATFORM_ARM64_RPI), y)
|
||||||
|
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||||
|
EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT
|
||||||
|
ARCH ?= arm64
|
||||||
|
CROSS_COMPILE ?=
|
||||||
|
KVER ?= $(shell uname -r)
|
||||||
|
KSRC := /lib/modules/$(KVER)/build
|
||||||
|
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
||||||
|
INSTALL_PREFIX :=
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_ARM_ODROIDC2), y)
|
ifeq ($(CONFIG_PLATFORM_ARM_ODROIDC2), y)
|
||||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||||
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
||||||
@ -1713,7 +1730,7 @@ install:
|
|||||||
/sbin/depmod -a ${KVER}
|
/sbin/depmod -a ${KVER}
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f $(MODDESTDIR)/$(MODULE_NAME).ko
|
rm -f $(MODDESTDIR)$(MODULE_NAME).ko
|
||||||
/sbin/depmod -a ${KVER}
|
/sbin/depmod -a ${KVER}
|
||||||
|
|
||||||
backup_rtlwifi:
|
backup_rtlwifi:
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_NEW_SIGNAL_STAT_PROCESS
|
#ifdef CONFIG_NEW_SIGNAL_STAT_PROCESS
|
||||||
static void rtw_signal_stat_timer_hdl(void *ctx);
|
static void rtw_signal_stat_timer_hdl(void *ctx);
|
||||||
|
|
||||||
@ -47,8 +46,6 @@ u8 signal_stat_calc_profile[SIGNAL_STAT_CALC_PROFILE_MAX][2] = {
|
|||||||
void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv)
|
void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_rtw_memset((u8 *)psta_recvpriv, 0, sizeof(struct sta_recv_priv));
|
_rtw_memset((u8 *)psta_recvpriv, 0, sizeof(struct sta_recv_priv));
|
||||||
|
|
||||||
_rtw_spinlock_init(&psta_recvpriv->lock);
|
_rtw_spinlock_init(&psta_recvpriv->lock);
|
||||||
@ -58,7 +55,6 @@ void _rtw_init_sta_recv_priv(struct sta_recv_priv *psta_recvpriv)
|
|||||||
|
|
||||||
_rtw_init_queue(&psta_recvpriv->defrag_q);
|
_rtw_init_queue(&psta_recvpriv->defrag_q);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sint _rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter)
|
sint _rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter)
|
||||||
@ -68,7 +64,6 @@ sint _rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter)
|
|||||||
union recv_frame *precvframe;
|
union recv_frame *precvframe;
|
||||||
sint res = _SUCCESS;
|
sint res = _SUCCESS;
|
||||||
|
|
||||||
|
|
||||||
/* We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc(). */
|
/* We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc(). */
|
||||||
/* _rtw_memset((unsigned char *)precvpriv, 0, sizeof (struct recv_priv)); */
|
/* _rtw_memset((unsigned char *)precvpriv, 0, sizeof (struct recv_priv)); */
|
||||||
|
|
||||||
@ -149,7 +144,6 @@ sint _rtw_init_recv_priv(struct recv_priv *precvpriv, _adapter *padapter)
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -188,7 +182,6 @@ void _rtw_free_recv_priv(struct recv_priv *precvpriv)
|
|||||||
|
|
||||||
rtw_hal_free_recv_priv(padapter);
|
rtw_hal_free_recv_priv(padapter);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool rtw_rframe_del_wfd_ie(union recv_frame *rframe, u8 ies_offset)
|
bool rtw_rframe_del_wfd_ie(union recv_frame *rframe, u8 ies_offset)
|
||||||
@ -230,7 +223,6 @@ union recv_frame *_rtw_alloc_recvframe(_queue *pfree_recv_queue)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return precvframe;
|
return precvframe;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -263,7 +255,6 @@ int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue)
|
|||||||
_adapter *padapter = precvframe->u.hdr.adapter;
|
_adapter *padapter = precvframe->u.hdr.adapter;
|
||||||
struct recv_priv *precvpriv = &padapter->recvpriv;
|
struct recv_priv *precvpriv = &padapter->recvpriv;
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_CONCURRENT_MODE
|
#ifdef CONFIG_CONCURRENT_MODE
|
||||||
padapter = GET_PRIMARY_ADAPTER(padapter);
|
padapter = GET_PRIMARY_ADAPTER(padapter);
|
||||||
precvpriv = &padapter->recvpriv;
|
precvpriv = &padapter->recvpriv;
|
||||||
@ -271,10 +262,8 @@ int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue)
|
|||||||
precvframe->u.hdr.adapter = padapter;
|
precvframe->u.hdr.adapter = padapter;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
rtw_os_free_recvframe(precvframe);
|
rtw_os_free_recvframe(precvframe);
|
||||||
|
|
||||||
|
|
||||||
_enter_critical_bh(&pfree_recv_queue->lock, &irqL);
|
_enter_critical_bh(&pfree_recv_queue->lock, &irqL);
|
||||||
|
|
||||||
rtw_list_delete(&(precvframe->u.hdr.list));
|
rtw_list_delete(&(precvframe->u.hdr.list));
|
||||||
@ -295,16 +284,12 @@ int rtw_free_recvframe(union recv_frame *precvframe, _queue *pfree_recv_queue)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sint _rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
|
sint _rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
|
||||||
{
|
{
|
||||||
|
|
||||||
_adapter *padapter = precvframe->u.hdr.adapter;
|
_adapter *padapter = precvframe->u.hdr.adapter;
|
||||||
struct recv_priv *precvpriv = &padapter->recvpriv;
|
struct recv_priv *precvpriv = &padapter->recvpriv;
|
||||||
|
|
||||||
|
|
||||||
/* _rtw_init_listhead(&(precvframe->u.hdr.list)); */
|
/* _rtw_init_listhead(&(precvframe->u.hdr.list)); */
|
||||||
rtw_list_delete(&(precvframe->u.hdr.list));
|
rtw_list_delete(&(precvframe->u.hdr.list));
|
||||||
|
|
||||||
@ -316,7 +301,6 @@ sint _rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
|
|||||||
precvpriv->free_recvframe_cnt++;
|
precvpriv->free_recvframe_cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -341,9 +325,6 @@ sint rtw_enqueue_recvframe(union recv_frame *precvframe, _queue *queue)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
caller : defrag ; recvframe_chk_defrag in recv_thread (passive)
|
caller : defrag ; recvframe_chk_defrag in recv_thread (passive)
|
||||||
pframequeue: defrag_queue : will be accessed in recv_thread (passive)
|
pframequeue: defrag_queue : will be accessed in recv_thread (passive)
|
||||||
@ -374,7 +355,6 @@ void rtw_free_recvframe_queue(_queue *pframequeue, _queue *pfree_recv_queue)
|
|||||||
|
|
||||||
_rtw_spinunlock(&pframequeue->lock);
|
_rtw_spinunlock(&pframequeue->lock);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 rtw_free_uc_swdec_pending_queue(_adapter *adapter)
|
u32 rtw_free_uc_swdec_pending_queue(_adapter *adapter)
|
||||||
@ -392,7 +372,6 @@ u32 rtw_free_uc_swdec_pending_queue(_adapter *adapter)
|
|||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue)
|
sint rtw_enqueue_recvbuf_to_head(struct recv_buf *precvbuf, _queue *queue)
|
||||||
{
|
{
|
||||||
_irqL irqL;
|
_irqL irqL;
|
||||||
@ -509,7 +488,6 @@ sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe)
|
|||||||
pframe = precvframe->u.hdr.rx_data;
|
pframe = precvframe->u.hdr.rx_data;
|
||||||
payload = pframe + prxattrib->hdrlen + prxattrib->iv_len;
|
payload = pframe + prxattrib->hdrlen + prxattrib->iv_len;
|
||||||
|
|
||||||
|
|
||||||
/* rtw_seccalctkipmic(&stainfo->dot11tkiprxmickey.skey[0],pframe,payload, datalen ,&miccode[0],(unsigned char)prxattrib->priority); */ /* care the length of the data */
|
/* rtw_seccalctkipmic(&stainfo->dot11tkiprxmickey.skey[0],pframe,payload, datalen ,&miccode[0],(unsigned char)prxattrib->priority); */ /* care the length of the data */
|
||||||
|
|
||||||
rtw_seccalctkipmic(mickey, pframe, payload, datalen , &miccode[0], (unsigned char)prxattrib->priority); /* care the length of the data */
|
rtw_seccalctkipmic(mickey, pframe, payload, datalen , &miccode[0], (unsigned char)prxattrib->priority); /* care the length of the data */
|
||||||
@ -524,11 +502,8 @@ sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (bmic_err == _TRUE) {
|
if (bmic_err == _TRUE) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* double check key_index for some timing issue , */
|
/* double check key_index for some timing issue , */
|
||||||
/* cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue */
|
/* cannot compare with psecuritypriv->dot118021XGrpKeyid also cause timing issue */
|
||||||
if ((IS_MCAST(prxattrib->ra) == _TRUE) && (prxattrib->key_index != pmlmeinfo->key_index))
|
if ((IS_MCAST(prxattrib->ra) == _TRUE) && (prxattrib->key_index != pmlmeinfo->key_index))
|
||||||
@ -558,7 +533,6 @@ sint recvframe_chkmic(_adapter *adapter, union recv_frame *precvframe)
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -575,7 +549,6 @@ union recv_frame *decryptor(_adapter *padapter, union recv_frame *precv_frame)
|
|||||||
union recv_frame *return_packet = precv_frame;
|
union recv_frame *return_packet = precv_frame;
|
||||||
u32 res = _SUCCESS;
|
u32 res = _SUCCESS;
|
||||||
|
|
||||||
|
|
||||||
DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt);
|
DBG_COUNTER(padapter->rx_logs.core_rx_post_decrypt);
|
||||||
|
|
||||||
|
|
||||||
@ -700,7 +673,6 @@ union recv_frame *decryptor(_adapter *padapter, union recv_frame *precv_frame)
|
|||||||
prxattrib->bdecrypted = _TRUE;
|
prxattrib->bdecrypted = _TRUE;
|
||||||
/* recvframe_chkmic(adapter, precv_frame); */ /* move to recvframme_defrag function */
|
/* recvframe_chkmic(adapter, precv_frame); */ /* move to recvframme_defrag function */
|
||||||
|
|
||||||
|
|
||||||
return return_packet;
|
return return_packet;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -719,7 +691,6 @@ union recv_frame *portctrl(_adapter *adapter, union recv_frame *precv_frame)
|
|||||||
u16 eapol_type = 0x888e;/* for Funia BD's WPA issue */
|
u16 eapol_type = 0x888e;/* for Funia BD's WPA issue */
|
||||||
struct rx_pkt_attrib *pattrib;
|
struct rx_pkt_attrib *pattrib;
|
||||||
|
|
||||||
|
|
||||||
pstapriv = &adapter->stapriv;
|
pstapriv = &adapter->stapriv;
|
||||||
|
|
||||||
auth_alg = adapter->securitypriv.dot11AuthAlgrthm;
|
auth_alg = adapter->securitypriv.dot11AuthAlgrthm;
|
||||||
@ -733,7 +704,6 @@ union recv_frame *portctrl(_adapter *adapter, union recv_frame *precv_frame)
|
|||||||
|
|
||||||
psta = rtw_get_stainfo(pstapriv, psta_addr);
|
psta = rtw_get_stainfo(pstapriv, psta_addr);
|
||||||
|
|
||||||
|
|
||||||
if (auth_alg == dot11AuthAlgrthm_8021X) {
|
if (auth_alg == dot11AuthAlgrthm_8021X) {
|
||||||
if ((psta != NULL) && (psta->ieee8021x_blocked)) {
|
if ((psta != NULL) && (psta->ieee8021x_blocked)) {
|
||||||
/* blocked */
|
/* blocked */
|
||||||
@ -757,7 +727,6 @@ union recv_frame *portctrl(_adapter *adapter, union recv_frame *precv_frame)
|
|||||||
/* allowed */
|
/* allowed */
|
||||||
/* check decryption status, and decrypt the frame if needed */
|
/* check decryption status, and decrypt the frame if needed */
|
||||||
|
|
||||||
|
|
||||||
prtnframe = precv_frame;
|
prtnframe = precv_frame;
|
||||||
/* check is the EAPOL frame or not (Rekey) */
|
/* check is the EAPOL frame or not (Rekey) */
|
||||||
/* if(ether_type == eapol_type){ */
|
/* if(ether_type == eapol_type){ */
|
||||||
@ -769,7 +738,6 @@ union recv_frame *portctrl(_adapter *adapter, union recv_frame *precv_frame)
|
|||||||
} else
|
} else
|
||||||
prtnframe = precv_frame;
|
prtnframe = precv_frame;
|
||||||
|
|
||||||
|
|
||||||
return prtnframe;
|
return prtnframe;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -963,7 +931,6 @@ void process_wmmps_data(_adapter *padapter, union recv_frame *precv_frame, struc
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1163,7 +1130,6 @@ sint sta2sta_data_frame(
|
|||||||
u8 *pframe_body = psnap_type + 2 + 1;
|
u8 *pframe_body = psnap_type + 2 + 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* RTW_INFO("[%s] %d, seqnum:%d\n", __FUNCTION__, __LINE__, pattrib->seq_num); */
|
/* RTW_INFO("[%s] %d, seqnum:%d\n", __FUNCTION__, __LINE__, pattrib->seq_num); */
|
||||||
|
|
||||||
if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == _TRUE) ||
|
if ((check_fwstate(pmlmepriv, WIFI_ADHOC_STATE) == _TRUE) ||
|
||||||
@ -1355,7 +1321,6 @@ sint ap2sta_data_frame(
|
|||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* check BSSID */
|
/* check BSSID */
|
||||||
if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
|
if (_rtw_memcmp(pattrib->bssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
|
||||||
_rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
|
_rtw_memcmp(mybssid, "\x0\x0\x0\x0\x0\x0", ETH_ALEN) ||
|
||||||
@ -1414,7 +1379,6 @@ sint ap2sta_data_frame(
|
|||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) {
|
} else if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) {
|
||||||
/* Special case */
|
/* Special case */
|
||||||
ret = RTW_RX_HANDLED;
|
ret = RTW_RX_HANDLED;
|
||||||
@ -1448,7 +1412,6 @@ sint ap2sta_data_frame(
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1465,7 +1428,6 @@ sint sta2ap_data_frame(
|
|||||||
unsigned char *mybssid = get_bssid(pmlmepriv);
|
unsigned char *mybssid = get_bssid(pmlmepriv);
|
||||||
sint ret = _SUCCESS;
|
sint ret = _SUCCESS;
|
||||||
|
|
||||||
|
|
||||||
if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) {
|
if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) {
|
||||||
/* For AP mode, RA=BSSID, TX=STA(SRC_ADDR), A3=DST_ADDR */
|
/* For AP mode, RA=BSSID, TX=STA(SRC_ADDR), A3=DST_ADDR */
|
||||||
if (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) {
|
if (!_rtw_memcmp(pattrib->bssid, mybssid, ETH_ALEN)) {
|
||||||
@ -1514,7 +1476,6 @@ bypass_deauth7:
|
|||||||
_rtw_memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
|
_rtw_memcpy(pattrib->ra, pattrib->dst, ETH_ALEN);
|
||||||
_rtw_memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
|
_rtw_memcpy(pattrib->ta, pattrib->src, ETH_ALEN);
|
||||||
|
|
||||||
|
|
||||||
*psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */
|
*psta = rtw_get_stainfo(pstapriv, pattrib->bssid); /* get sta_info */
|
||||||
if (*psta == NULL) {
|
if (*psta == NULL) {
|
||||||
#ifdef DBG_RX_DROP_FRAME
|
#ifdef DBG_RX_DROP_FRAME
|
||||||
@ -1539,7 +1500,6 @@ bypass_deauth7:
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1978,7 +1938,6 @@ sint validate_recv_mgnt_frame(PADAPTER padapter, union recv_frame *precv_frame)
|
|||||||
psa = get_sa(ptr);
|
psa = get_sa(ptr);
|
||||||
pbssid = get_hdr_bssid(ptr);
|
pbssid = get_hdr_bssid(ptr);
|
||||||
|
|
||||||
|
|
||||||
_rtw_memcpy(pattrib->dst, pda, ETH_ALEN);
|
_rtw_memcpy(pattrib->dst, pda, ETH_ALEN);
|
||||||
_rtw_memcpy(pattrib->src, psa, ETH_ALEN);
|
_rtw_memcpy(pattrib->src, psa, ETH_ALEN);
|
||||||
|
|
||||||
@ -2121,7 +2080,6 @@ pre_validate_status_chk:
|
|||||||
pattrib->hdrlen = WLAN_HDR_A3_LEN + a4_shift;
|
pattrib->hdrlen = WLAN_HDR_A3_LEN + a4_shift;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (pattrib->order) /* HT-CTRL 11n */
|
if (pattrib->order) /* HT-CTRL 11n */
|
||||||
pattrib->hdrlen += 4;
|
pattrib->hdrlen += 4;
|
||||||
|
|
||||||
@ -2233,7 +2191,6 @@ sint validate_recv_frame(_adapter *adapter, union recv_frame *precv_frame)
|
|||||||
u8 external_len = 0;
|
u8 external_len = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_FIND_BEST_CHANNEL
|
#ifdef CONFIG_FIND_BEST_CHANNEL
|
||||||
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS) {
|
if (pmlmeext->sitesurvey_res.state == SCAN_PROCESS) {
|
||||||
int ch_set_idx = rtw_chset_search_ch(rfctl->channel_set, rtw_get_oper_ch(adapter));
|
int ch_set_idx = rtw_chset_search_ch(rfctl->channel_set, rtw_get_oper_ch(adapter));
|
||||||
@ -2383,11 +2340,9 @@ sint validate_recv_frame(_adapter *adapter, union recv_frame *precv_frame)
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* remove the wlanhdr and add the eth_hdr */
|
/* remove the wlanhdr and add the eth_hdr */
|
||||||
#if 1
|
#if 1
|
||||||
sint wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
sint wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
||||||
@ -2405,7 +2360,6 @@ sint wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */
|
u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */
|
||||||
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
|
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
|
||||||
|
|
||||||
|
|
||||||
if (pattrib->encrypt)
|
if (pattrib->encrypt)
|
||||||
recvframe_pull_tail(precvframe, pattrib->icv_len);
|
recvframe_pull_tail(precvframe, pattrib->icv_len);
|
||||||
|
|
||||||
@ -2428,12 +2382,10 @@ sint wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
rmv_len = pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib) + (bsnaphdr ? SNAP_SIZE : 0);
|
rmv_len = pattrib->hdrlen + pattrib->iv_len + RATTRIB_GET_MCTRL_LEN(pattrib) + (bsnaphdr ? SNAP_SIZE : 0);
|
||||||
len = precvframe->u.hdr.len - rmv_len;
|
len = precvframe->u.hdr.len - rmv_len;
|
||||||
|
|
||||||
|
|
||||||
_rtw_memcpy(ð_type, ptr + rmv_len, 2);
|
_rtw_memcpy(ð_type, ptr + rmv_len, 2);
|
||||||
eth_type = ntohs((unsigned short)eth_type); /* pattrib->ether_type */
|
eth_type = ntohs((unsigned short)eth_type); /* pattrib->ether_type */
|
||||||
pattrib->eth_type = eth_type;
|
pattrib->eth_type = eth_type;
|
||||||
|
|
||||||
|
|
||||||
if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE)) {
|
if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE)) {
|
||||||
ptr += rmv_len ;
|
ptr += rmv_len ;
|
||||||
*ptr = 0x87;
|
*ptr = 0x87;
|
||||||
@ -2491,7 +2443,6 @@ sint wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
|
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
|
||||||
struct _vlan *pvlan = NULL;
|
struct _vlan *pvlan = NULL;
|
||||||
|
|
||||||
|
|
||||||
psnap = (struct ieee80211_snap_hdr *)(ptr + pattrib->hdrlen + pattrib->iv_len);
|
psnap = (struct ieee80211_snap_hdr *)(ptr + pattrib->hdrlen + pattrib->iv_len);
|
||||||
psnap_type = ptr + pattrib->hdrlen + pattrib->iv_len + SNAP_SIZE;
|
psnap_type = ptr + pattrib->hdrlen + pattrib->iv_len + SNAP_SIZE;
|
||||||
if (psnap->dsap == 0xaa && psnap->ssap == 0xaa && psnap->ctrl == 0x03) {
|
if (psnap->dsap == 0xaa && psnap->ssap == 0xaa && psnap->ctrl == 0x03) {
|
||||||
@ -2581,12 +2532,10 @@ sint wlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
|
#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
|
||||||
#ifdef PLATFORM_LINUX
|
#ifdef PLATFORM_LINUX
|
||||||
static void recvframe_expand_pkt(
|
static void recvframe_expand_pkt(
|
||||||
@ -2599,7 +2548,6 @@ static void recvframe_expand_pkt(
|
|||||||
u32 alloc_sz;
|
u32 alloc_sz;
|
||||||
u8 *ptr;
|
u8 *ptr;
|
||||||
|
|
||||||
|
|
||||||
pfhdr = &prframe->u.hdr;
|
pfhdr = &prframe->u.hdr;
|
||||||
|
|
||||||
/* 6 is for IP header 8 bytes alignment in QoS packet case. */
|
/* 6 is for IP header 8 bytes alignment in QoS packet case. */
|
||||||
@ -2657,7 +2605,6 @@ union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q)
|
|||||||
union recv_frame *prframe, *pnextrframe;
|
union recv_frame *prframe, *pnextrframe;
|
||||||
_queue *pfree_recv_queue;
|
_queue *pfree_recv_queue;
|
||||||
|
|
||||||
|
|
||||||
curfragnum = 0;
|
curfragnum = 0;
|
||||||
pfree_recv_queue = &adapter->recvpriv.free_recv_queue;
|
pfree_recv_queue = &adapter->recvpriv.free_recv_queue;
|
||||||
|
|
||||||
@ -2694,7 +2641,6 @@ union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q)
|
|||||||
pnextrframe = LIST_CONTAINOR(plist, union recv_frame , u);
|
pnextrframe = LIST_CONTAINOR(plist, union recv_frame , u);
|
||||||
pnfhdr = &pnextrframe->u.hdr;
|
pnfhdr = &pnextrframe->u.hdr;
|
||||||
|
|
||||||
|
|
||||||
/* check the fragment sequence (2nd ~n fragment frame) */
|
/* check the fragment sequence (2nd ~n fragment frame) */
|
||||||
|
|
||||||
if (curfragnum != pnfhdr->attrib.frag_num) {
|
if (curfragnum != pnfhdr->attrib.frag_num) {
|
||||||
@ -2730,8 +2676,6 @@ union recv_frame *recvframe_defrag(_adapter *adapter, _queue *defrag_q)
|
|||||||
/* free the defrag_q queue and return the prframe */
|
/* free the defrag_q queue and return the prframe */
|
||||||
rtw_free_recvframe_queue(defrag_q, pfree_recv_queue);
|
rtw_free_recvframe_queue(defrag_q, pfree_recv_queue);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return prframe;
|
return prframe;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2748,7 +2692,6 @@ union recv_frame *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *prec
|
|||||||
union recv_frame *prtnframe = NULL;
|
union recv_frame *prtnframe = NULL;
|
||||||
_queue *pfree_recv_queue, *pdefrag_q;
|
_queue *pfree_recv_queue, *pdefrag_q;
|
||||||
|
|
||||||
|
|
||||||
pstapriv = &padapter->stapriv;
|
pstapriv = &padapter->stapriv;
|
||||||
|
|
||||||
pfhdr = &precv_frame->u.hdr;
|
pfhdr = &precv_frame->u.hdr;
|
||||||
@ -2787,7 +2730,6 @@ union recv_frame *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *prec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Then enqueue the 0~(n-1) fragment into the defrag_q */
|
/* Then enqueue the 0~(n-1) fragment into the defrag_q */
|
||||||
|
|
||||||
/* _rtw_spinlock(&pdefrag_q->lock); */
|
/* _rtw_spinlock(&pdefrag_q->lock); */
|
||||||
@ -2795,7 +2737,6 @@ union recv_frame *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *prec
|
|||||||
rtw_list_insert_tail(&pfhdr->list, phead);
|
rtw_list_insert_tail(&pfhdr->list, phead);
|
||||||
/* _rtw_spinunlock(&pdefrag_q->lock); */
|
/* _rtw_spinunlock(&pdefrag_q->lock); */
|
||||||
|
|
||||||
|
|
||||||
prtnframe = NULL;
|
prtnframe = NULL;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -2827,7 +2768,6 @@ union recv_frame *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *prec
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((prtnframe != NULL) && (prtnframe->u.hdr.attrib.privacy)) {
|
if ((prtnframe != NULL) && (prtnframe->u.hdr.attrib.privacy)) {
|
||||||
/* after defrag we must check tkip mic code */
|
/* after defrag we must check tkip mic code */
|
||||||
if (recvframe_chkmic(padapter, prtnframe) == _FAIL) {
|
if (recvframe_chkmic(padapter, prtnframe) == _FAIL) {
|
||||||
@ -2836,7 +2776,6 @@ union recv_frame *recvframe_chk_defrag(PADAPTER padapter, union recv_frame *prec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return prtnframe;
|
return prtnframe;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -3279,7 +3218,6 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, un
|
|||||||
/* _enter_critical_ex(&ppending_recvframe_queue->lock, &irql); */
|
/* _enter_critical_ex(&ppending_recvframe_queue->lock, &irql); */
|
||||||
/* _rtw_spinlock_ex(&ppending_recvframe_queue->lock); */
|
/* _rtw_spinlock_ex(&ppending_recvframe_queue->lock); */
|
||||||
|
|
||||||
|
|
||||||
phead = get_list_head(ppending_recvframe_queue);
|
phead = get_list_head(ppending_recvframe_queue);
|
||||||
plist = get_next(phead);
|
plist = get_next(phead);
|
||||||
|
|
||||||
@ -3302,7 +3240,6 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, un
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* _enter_critical_ex(&ppending_recvframe_queue->lock, &irql); */
|
/* _enter_critical_ex(&ppending_recvframe_queue->lock, &irql); */
|
||||||
/* _rtw_spinlock_ex(&ppending_recvframe_queue->lock); */
|
/* _rtw_spinlock_ex(&ppending_recvframe_queue->lock); */
|
||||||
|
|
||||||
@ -3313,7 +3250,6 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, un
|
|||||||
/* _rtw_spinunlock_ex(&ppending_recvframe_queue->lock); */
|
/* _rtw_spinunlock_ex(&ppending_recvframe_queue->lock); */
|
||||||
/* _exit_critical_ex(&ppending_recvframe_queue->lock, &irql); */
|
/* _exit_critical_ex(&ppending_recvframe_queue->lock, &irql); */
|
||||||
|
|
||||||
|
|
||||||
return _TRUE;
|
return _TRUE;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -3504,7 +3440,6 @@ static int recv_indicatepkt_reorder(_adapter *padapter, union recv_frame *prfram
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* s3. Insert all packet into Reorder Queue to maintain its ordering. */
|
/* s3. Insert all packet into Reorder Queue to maintain its ordering. */
|
||||||
if (!enqueue_reorder_recvframe(preorder_ctrl, prframe)) {
|
if (!enqueue_reorder_recvframe(preorder_ctrl, prframe)) {
|
||||||
/* DbgPrint("recv_indicatepkt_reorder, enqueue_reorder_recvframe fail!\n"); */
|
/* DbgPrint("recv_indicatepkt_reorder, enqueue_reorder_recvframe fail!\n"); */
|
||||||
@ -3517,7 +3452,6 @@ static int recv_indicatepkt_reorder(_adapter *padapter, union recv_frame *prfram
|
|||||||
goto _err_exit;
|
goto _err_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* s4. */
|
/* s4. */
|
||||||
/* Indication process. */
|
/* Indication process. */
|
||||||
/* After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets */
|
/* After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets */
|
||||||
@ -3554,7 +3488,6 @@ _err_exit:
|
|||||||
return _FAIL;
|
return _FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void rtw_reordering_ctrl_timeout_handler(void *pcontext)
|
void rtw_reordering_ctrl_timeout_handler(void *pcontext)
|
||||||
{
|
{
|
||||||
_irqL irql;
|
_irqL irql;
|
||||||
@ -3692,7 +3625,6 @@ static sint MPwlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */
|
u8 *ptr = get_recvframe_data(precvframe) ; /* point to frame_ctrl field */
|
||||||
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
|
struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;
|
||||||
|
|
||||||
|
|
||||||
if (pattrib->encrypt)
|
if (pattrib->encrypt)
|
||||||
recvframe_pull_tail(precvframe, pattrib->icv_len);
|
recvframe_pull_tail(precvframe, pattrib->icv_len);
|
||||||
|
|
||||||
@ -3732,7 +3664,6 @@ static sint MPwlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
_rtw_memcpy(ptr + 12, &len, 2);
|
_rtw_memcpy(ptr + 12, &len, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
len = htons(pattrib->seq_num);
|
len = htons(pattrib->seq_num);
|
||||||
/* RTW_INFO("wlan seq = %d ,seq_num =%x\n",len,pattrib->seq_num); */
|
/* RTW_INFO("wlan seq = %d ,seq_num =%x\n",len,pattrib->seq_num); */
|
||||||
_rtw_memcpy(ptr + 12, &len, 2);
|
_rtw_memcpy(ptr + 12, &len, 2);
|
||||||
@ -3745,12 +3676,10 @@ static sint MPwlanhdr_to_ethhdr(union recv_frame *precvframe)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int mp_recv_frame(_adapter *padapter, union recv_frame *rframe)
|
int mp_recv_frame(_adapter *padapter, union recv_frame *rframe)
|
||||||
{
|
{
|
||||||
int ret = _SUCCESS;
|
int ret = _SUCCESS;
|
||||||
@ -3964,6 +3893,12 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
|
|||||||
rtap_hdr = (struct ieee80211_radiotap_header *)&hdr_buf[0];
|
rtap_hdr = (struct ieee80211_radiotap_header *)&hdr_buf[0];
|
||||||
rtap_hdr->it_version = PKTHDR_RADIOTAP_VERSION;
|
rtap_hdr->it_version = PKTHDR_RADIOTAP_VERSION;
|
||||||
|
|
||||||
|
#ifdef CONFIG_RTL8814A
|
||||||
|
/* RTL8814AU rx descriptor has no bandwidth, ldpc, stbc and sgi info */
|
||||||
|
/* fixup bandwidth */
|
||||||
|
pattrib->bw = pattrib->phy_info.band_width & 0x03;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* tsft */
|
/* tsft */
|
||||||
if (pattrib->tsfl) {
|
if (pattrib->tsfl) {
|
||||||
u64 tmp_64bit;
|
u64 tmp_64bit;
|
||||||
@ -4093,11 +4028,15 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
/* guard interval */
|
/* guard interval */
|
||||||
|
#ifndef CONFIG_RTL8814A
|
||||||
hdr_buf[rt_len] |= BIT2;
|
hdr_buf[rt_len] |= BIT2;
|
||||||
hdr_buf[rt_len + 1] |= (pattrib->sgi & 0x01) << 2;
|
hdr_buf[rt_len + 1] |= (pattrib->sgi & 0x01) << 2;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* STBC */
|
/* STBC */
|
||||||
|
#ifndef CONFIG_RTL8814A
|
||||||
hdr_buf[rt_len] |= BIT5;
|
hdr_buf[rt_len] |= BIT5;
|
||||||
|
#endif
|
||||||
hdr_buf[rt_len + 1] |= (pattrib->stbc & 0x03) << 5;
|
hdr_buf[rt_len + 1] |= (pattrib->stbc & 0x03) << 5;
|
||||||
|
|
||||||
rt_len += 2;
|
rt_len += 2;
|
||||||
@ -4132,7 +4071,9 @@ static sint fill_radiotap_hdr(_adapter *padapter, union recv_frame *precvframe,
|
|||||||
hdr_buf[rt_len + 2] |= (pattrib->sgi & 0x01) << 2;
|
hdr_buf[rt_len + 2] |= (pattrib->sgi & 0x01) << 2;
|
||||||
|
|
||||||
/* LDPC extra OFDM symbol */
|
/* LDPC extra OFDM symbol */
|
||||||
|
#ifndef CONFIG_RTL8814A
|
||||||
tmp_16bit |= BIT4;
|
tmp_16bit |= BIT4;
|
||||||
|
#endif
|
||||||
hdr_buf[rt_len + 2] |= (pattrib->ldpc & 0x01) << 4;
|
hdr_buf[rt_len + 2] |= (pattrib->ldpc & 0x01) << 4;
|
||||||
|
|
||||||
memcpy(&hdr_buf[rt_len], &tmp_16bit, 2);
|
memcpy(&hdr_buf[rt_len], &tmp_16bit, 2);
|
||||||
@ -4419,7 +4360,7 @@ int recv_func(_adapter *padapter, union recv_frame *rframe)
|
|||||||
|
|
||||||
if (cnt)
|
if (cnt)
|
||||||
RTW_INFO(FUNC_ADPT_FMT" dequeue %d from uc_swdec_pending_queue\n",
|
RTW_INFO(FUNC_ADPT_FMT" dequeue %d from uc_swdec_pending_queue\n",
|
||||||
FUNC_ADPT_ARG(padapter), cnt);
|
FUNC_ADPT_ARG(padapter), cnt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4463,8 +4404,6 @@ s32 rtw_recv_entry(union recv_frame *precvframe)
|
|||||||
struct recv_priv *precvpriv;
|
struct recv_priv *precvpriv;
|
||||||
s32 ret = _SUCCESS;
|
s32 ret = _SUCCESS;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
padapter = precvframe->u.hdr.adapter;
|
padapter = precvframe->u.hdr.adapter;
|
||||||
|
|
||||||
precvpriv = &padapter->recvpriv;
|
precvpriv = &padapter->recvpriv;
|
||||||
@ -4475,10 +4414,8 @@ s32 rtw_recv_entry(union recv_frame *precvframe)
|
|||||||
goto _recv_entry_drop;
|
goto _recv_entry_drop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
precvpriv->rx_pkts++;
|
precvpriv->rx_pkts++;
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
_recv_entry_drop:
|
_recv_entry_drop:
|
||||||
@ -4488,8 +4425,6 @@ _recv_entry_drop:
|
|||||||
padapter->mppriv.rx_pktloss = precvpriv->rx_drop;
|
padapter->mppriv.rx_pktloss = precvpriv->rx_drop;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@ else
|
|||||||
echo "About to run dkms install steps..."
|
echo "About to run dkms install steps..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DRV_DIR=rtl8812au
|
DRV_DIR="$(pwd)"
|
||||||
DRV_NAME=rtl8812au
|
DRV_NAME=rtl8812au
|
||||||
DRV_VERSION=5.3.4
|
DRV_VERSION=5.3.4
|
||||||
|
|
||||||
cp -r $(pwd) /usr/src/${DRV_NAME}-${DRV_VERSION}
|
cp -r ${DRV_DIR} /usr/src/${DRV_NAME}-${DRV_VERSION}
|
||||||
|
|
||||||
dkms add -m ${DRV_NAME} -v ${DRV_VERSION}
|
dkms add -m ${DRV_NAME} -v ${DRV_VERSION}
|
||||||
dkms build -m ${DRV_NAME} -v ${DRV_VERSION}
|
dkms build -m ${DRV_NAME} -v ${DRV_VERSION}
|
||||||
@ -20,7 +20,7 @@ RESULT=$?
|
|||||||
|
|
||||||
echo "Finished running dkms install steps."
|
echo "Finished running dkms install steps."
|
||||||
|
|
||||||
|
if grep -q -e "^CONFIG_DISABLE_IPV6 = y$" "$DRV_DIR/Makefile" ; then
|
||||||
if echo "net.ipv6.conf.all.disable_ipv6 = 1
|
if echo "net.ipv6.conf.all.disable_ipv6 = 1
|
||||||
net.ipv6.conf.default.disable_ipv6 = 1
|
net.ipv6.conf.default.disable_ipv6 = 1
|
||||||
net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf; then
|
net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf; then
|
||||||
@ -29,6 +29,6 @@ echo "Finished running dkms install steps."
|
|||||||
else
|
else
|
||||||
echo "Could not disable IPv6"
|
echo "Could not disable IPv6"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
exit $RESULT
|
exit $RESULT
|
||||||
|
@ -7,7 +7,7 @@ else
|
|||||||
echo "About to run dkms removal steps..."
|
echo "About to run dkms removal steps..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DRV_DIR=rtl8812au
|
DRV_DIR="$(pwd)"
|
||||||
DRV_NAME=rtl8812au
|
DRV_NAME=rtl8812au
|
||||||
DRV_VERSION=5.3.4
|
DRV_VERSION=5.3.4
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
PACKAGE_NAME="realtek-rtl88xxau"
|
PACKAGE_NAME="realtek-rtl88xxau"
|
||||||
PACKAGE_VERSION="5.3.4~20190407"
|
PACKAGE_VERSION="5.3.4~20190522"
|
||||||
CLEAN="'make' clean"
|
CLEAN="'make' clean"
|
||||||
BUILT_MODULE_NAME[0]=88XXau
|
BUILT_MODULE_NAME[0]=88XXau
|
||||||
PROCS_NUM=`nproc`
|
PROCS_NUM=`nproc`
|
||||||
|
@ -334,7 +334,7 @@ void rtl8814_init_dm_priv(IN PADAPTER Adapter)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
Init_ODM_ComInfo_8814(Adapter);
|
Init_ODM_ComInfo_8814(Adapter);
|
||||||
odm_init_all_timers(podmpriv );
|
odm_init_all_timers(podmpriv );
|
||||||
//PHYDM_InitDebugSetting(podmpriv);
|
//PHYDM_InitDebugSetting(podmpriv);
|
||||||
|
|
||||||
pHalData->CurrentTxPwrIdx = 18;
|
pHalData->CurrentTxPwrIdx = 18;
|
||||||
|
@ -1094,7 +1094,7 @@ PHY_SetRFPowerState8814A(
|
|||||||
#elif (DEV_BUS_TYPE == RT_SDIO_INTERFACE)
|
#elif (DEV_BUS_TYPE == RT_SDIO_INTERFACE)
|
||||||
bResult = phy_SetRFPowerState_8814Sdio(Adapter, eRFPowerState);
|
bResult = phy_SetRFPowerState_8814Sdio(Adapter, eRFPowerState);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RT_TRACE(COMP_RF, DBG_LOUD, ("<--------- PHY_SetRFPowerState8814(): bResult(%d)\n", bResult));
|
RT_TRACE(COMP_RF, DBG_LOUD, ("<--------- PHY_SetRFPowerState8814(): bResult(%d)\n", bResult));
|
||||||
|
|
||||||
return bResult;
|
return bResult;
|
||||||
@ -1230,17 +1230,18 @@ PHY_GetTxPowerIndex8814A(
|
|||||||
tic->ebias = 0;
|
tic->ebias = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
phy_TxPwrAdjInPercentage(pAdapter, (u8 *)&txPower);
|
||||||
if(txPower > MAX_POWER_INDEX)
|
if(txPower > MAX_POWER_INDEX)
|
||||||
txPower = MAX_POWER_INDEX;
|
txPower = MAX_POWER_INDEX;
|
||||||
|
|
||||||
//if (Adapter->registrypriv.mp_mode==0 &&
|
//if (Adapter->registrypriv.mp_mode==0 &&
|
||||||
//(pHalData->bautoload_fail_flag || pHalData->EfuseMap[EFUSE_INIT_MAP][EEPROM_TX_PWR_INX_JAGUAR] == 0xFF))
|
//(pHalData->bautoload_fail_flag || pHalData->EfuseMap[EFUSE_INIT_MAP][EEPROM_TX_PWR_INX_JAGUAR] == 0xFF))
|
||||||
//txPower = 0x12;
|
//txPower = 0x12;
|
||||||
|
|
||||||
/*RTW_INFO("Final Tx Power(RF-%c, Channel: %d) = %d(0x%X)\n", ((RFPath==0)?'A':(RFPath==1)?'B':(RFPath==2)?'C':'D'), Channel,
|
/*RTW_INFO("Final Tx Power(RF-%c, Channel: %d) = %d(0x%X)\n", ((RFPath==0)?'A':(RFPath==1)?'B':(RFPath==2)?'C':'D'), Channel,
|
||||||
txPower, txPower);*/
|
txPower, txPower);*/
|
||||||
|
|
||||||
return (u8) txPower;
|
return (u8) txPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1248,7 +1249,7 @@ VOID
|
|||||||
PHY_SetTxPowerIndex_8814A(
|
PHY_SetTxPowerIndex_8814A(
|
||||||
IN PADAPTER Adapter,
|
IN PADAPTER Adapter,
|
||||||
IN u32 PowerIndex,
|
IN u32 PowerIndex,
|
||||||
IN enum rf_path RFPath,
|
IN enum rf_path RFPath,
|
||||||
IN u8 Rate
|
IN u8 Rate
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -863,7 +863,7 @@ static int wpa_set_auth_algs(struct net_device *dev, u32 value)
|
|||||||
static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
|
static int wpa_set_encryption(struct net_device *dev, struct ieee_param *param, u32 param_len)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
u32 wep_key_idx, wep_key_len, wep_total_len;
|
u32 wep_key_idx, wep_key_len, wep_total_len = 0;
|
||||||
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
|
_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
|
||||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||||
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
||||||
|
@ -1273,20 +1273,18 @@ unsigned int rtw_classify8021d(struct sk_buff *skb)
|
|||||||
return dscp >> 5;
|
return dscp >> 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(4,19,0))
|
|
||||||
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
|
|
||||||
struct net_device *sb_dev,
|
|
||||||
select_queue_fallback_t fallback)
|
|
||||||
#else
|
|
||||||
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb
|
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
||||||
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0))
|
||||||
, void *accel_priv
|
, void *accel_priv
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)
|
#else
|
||||||
|
, struct net_device *sb_dev
|
||||||
|
#endif
|
||||||
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 2, 0))
|
||||||
, select_queue_fallback_t fallback
|
, select_queue_fallback_t fallback
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
_adapter *padapter = rtw_netdev_priv(dev);
|
_adapter *padapter = rtw_netdev_priv(dev);
|
||||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||||
|
@ -218,6 +218,7 @@ static struct usb_device_id rtw_usb_id_tbl[] = {
|
|||||||
{USB_DEVICE(0x056E, 0x4007), .driver_info = RTL8821}, /* Elecom - WDC-433DU2HBK */
|
{USB_DEVICE(0x056E, 0x4007), .driver_info = RTL8821}, /* Elecom - WDC-433DU2HBK */
|
||||||
{USB_DEVICE(0x0BDA, 0xA811), .driver_info = RTL8821}, /* GMYLE - AC450 */
|
{USB_DEVICE(0x0BDA, 0xA811), .driver_info = RTL8821}, /* GMYLE - AC450 */
|
||||||
{USB_DEVICE(0x3823, 0x6249), .driver_info = RTL8821}, /* Obihai - OBiWiFi */
|
{USB_DEVICE(0x3823, 0x6249), .driver_info = RTL8821}, /* Obihai - OBiWiFi */
|
||||||
|
{USB_DEVICE(0x2357, 0x0122), .driver_info = RTL8821}, /* TP Link - T2U Nano */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8192E
|
#ifdef CONFIG_RTL8192E
|
||||||
|
Loading…
Reference in New Issue
Block a user