mirror of
https://github.com/chinawrj/rtl8812au
synced 2024-11-09 23:57:10 +00:00
Added HT Greenfield capab + various ported fixes
This commit is contained in:
parent
4b0db32429
commit
472b8b3176
6
Kconfig
Normal file
6
Kconfig
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
config RTL8812AU
|
||||||
|
tristate "Realtek 8812A USB WiFi"
|
||||||
|
depends on USB
|
||||||
|
---help---
|
||||||
|
Help message of RTL8812AU
|
||||||
|
|
@ -9227,7 +9227,13 @@ static void rtw_cfg80211_init_ht_capab(_adapter *padapter
|
|||||||
|
|
||||||
ht_cap->ht_supported = 1;
|
ht_cap->ht_supported = 1;
|
||||||
|
|
||||||
ht_cap->cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
|
/* According to the comment in rtw_ap.c:
|
||||||
|
* "Note: currently we switch to the MIXED op mode if HT non-greenfield
|
||||||
|
* station is associated. Probably it's a theoretical case, since
|
||||||
|
* it looks like all known HT STAs support greenfield."
|
||||||
|
* Therefore Greenfield is added to ht_cap
|
||||||
|
*/
|
||||||
|
ht_cap->cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | IEEE80211_HT_CAP_GRN_FLD |
|
||||||
IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20 |
|
IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20 |
|
||||||
IEEE80211_HT_CAP_DSSSCCK40 | IEEE80211_HT_CAP_MAX_AMSDU;
|
IEEE80211_HT_CAP_DSSSCCK40 | IEEE80211_HT_CAP_MAX_AMSDU;
|
||||||
rtw_cfg80211_init_ht_capab_ex(padapter, ht_cap, band, rf_type);
|
rtw_cfg80211_init_ht_capab_ex(padapter, ht_cap, band, rf_type);
|
||||||
|
@ -19,6 +19,10 @@
|
|||||||
#include <rtw_mp_ioctl.h>
|
#include <rtw_mp_ioctl.h>
|
||||||
#include "../../hal/phydm/phydm_precomp.h"
|
#include "../../hal/phydm/phydm_precomp.h"
|
||||||
|
|
||||||
|
#ifdef MARK_KERNEL_PFU
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <asm/fpu/api.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_RTL8723B)
|
#if defined(CONFIG_RTL8723B)
|
||||||
#include <rtw_bt_mp.h>
|
#include <rtw_bt_mp.h>
|
||||||
@ -1718,6 +1722,10 @@ int rtw_mp_tx(struct net_device *dev,
|
|||||||
|
|
||||||
PMAC_Get_Pkt_Param(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
PMAC_Get_Pkt_Param(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
||||||
|
|
||||||
|
#ifdef MARK_KERNEL_PFU
|
||||||
|
kernel_fpu_begin();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (MPT_IS_CCK_RATE(pMptCtx->PMacTxInfo.TX_RATE))
|
if (MPT_IS_CCK_RATE(pMptCtx->PMacTxInfo.TX_RATE))
|
||||||
|
|
||||||
CCK_generator(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
CCK_generator(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
||||||
@ -1726,6 +1734,11 @@ int rtw_mp_tx(struct net_device *dev,
|
|||||||
/* 24 BIT*/
|
/* 24 BIT*/
|
||||||
L_SIG_generator(pMptCtx->PMacPktInfo.N_sym, &pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
L_SIG_generator(pMptCtx->PMacPktInfo.N_sym, &pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef MARK_KERNEL_PFU
|
||||||
|
kernel_fpu_end();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 48BIT*/
|
/* 48BIT*/
|
||||||
if (MPT_IS_HT_RATE(pMptCtx->PMacTxInfo.TX_RATE))
|
if (MPT_IS_HT_RATE(pMptCtx->PMacTxInfo.TX_RATE))
|
||||||
HT_SIG_generator(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
HT_SIG_generator(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
|
||||||
|
@ -1364,7 +1364,7 @@ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb
|
|||||||
#else
|
#else
|
||||||
, void *accel_priv
|
, void *accel_priv
|
||||||
#endif
|
#endif
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)
|
#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
|
||||||
|
@ -175,8 +175,26 @@ static struct usb_device_id rtw_usb_id_tbl[] = {
|
|||||||
{USB_DEVICE(0x1740, 0x0100), .driver_info = RTL8812}, /* EnGenius - EnGenius */
|
{USB_DEVICE(0x1740, 0x0100), .driver_info = RTL8812}, /* EnGenius - EnGenius */
|
||||||
{USB_DEVICE(0x2019, 0xAB30), .driver_info = RTL8812}, /* Planex - Abocom */
|
{USB_DEVICE(0x2019, 0xAB30), .driver_info = RTL8812}, /* Planex - Abocom */
|
||||||
{USB_DEVICE(0x07B8, 0x8812), .driver_info = RTL8812}, /* Abocom - Abocom */
|
{USB_DEVICE(0x07B8, 0x8812), .driver_info = RTL8812}, /* Abocom - Abocom */
|
||||||
|
{USB_DEVICE(0x0846, 0x9051), .driver_info = RTL8812}, /* Netgear A6200 v2 */
|
||||||
|
{USB_DEVICE(0x2001, 0x330E), .driver_info = RTL8812}, /* D-Link - ALPHA */
|
||||||
|
{USB_DEVICE(0x2001, 0x3313), .driver_info = RTL8812}, /* D-Link - ALPHA */
|
||||||
{USB_DEVICE(0x2001, 0x3315), .driver_info = RTL8812}, /* D-Link - Cameo */
|
{USB_DEVICE(0x2001, 0x3315), .driver_info = RTL8812}, /* D-Link - Cameo */
|
||||||
{USB_DEVICE(0x2001, 0x3316), .driver_info = RTL8812}, /* D-Link - Cameo */
|
{USB_DEVICE(0x2001, 0x3316), .driver_info = RTL8812}, /* D-Link - Cameo */
|
||||||
|
{USB_DEVICE(0x13B1, 0x003F), .driver_info = RTL8812}, /* Linksys - WUSB6300 */
|
||||||
|
{USB_DEVICE(0x2357, 0x0101), .driver_info = RTL8812}, /* TP-Link - Archer T4U AC1200 */
|
||||||
|
{USB_DEVICE(0x2357, 0x0103), .driver_info = RTL8812}, /* TP-Link - T4UH */
|
||||||
|
{USB_DEVICE(0x2357, 0x010D), .driver_info = RTL8812}, /* TP-Link - Archer T4U AC1300 */
|
||||||
|
{USB_DEVICE(0x2357, 0x0115), .driver_info = RTL8812}, /* TP-Link - Archer T4U AC1300 */
|
||||||
|
{USB_DEVICE(0x2357, 0x010E), .driver_info = RTL8812}, /* TP-Link - Archer T4UH AC1300 */
|
||||||
|
{USB_DEVICE(0x2357, 0x010F), .driver_info = RTL8812}, /* TP-Link - T4UHP */
|
||||||
|
{USB_DEVICE(0x2357, 0x0122), .driver_info = RTL8812}, /* TP-Link - T4UHP (other) */
|
||||||
|
{USB_DEVICE(0x20F4, 0x805B), .driver_info = RTL8812}, /* TRENDnet - */
|
||||||
|
{USB_DEVICE(0x0411, 0x025D), .driver_info = RTL8812}, /* Buffalo - WI-U3-866D */
|
||||||
|
{USB_DEVICE(0x050D, 0x1109), .driver_info = RTL8812}, /* Belkin F9L1109 - SerComm */
|
||||||
|
{USB_DEVICE(0x148F, 0x9097), .driver_info = RTL8812}, /* Amped Wireless ACA1 */
|
||||||
|
{USB_DEVICE(0x0BDA, 0x8812), .driver_info = RTL8812}, /* Alfa - AWUS036AC, AWUS036ACH & AWUS036EAC */
|
||||||
|
{USB_DEVICE(0x2604, 0x0012), .driver_info = RTL8812}, /* Tenda U12 */
|
||||||
|
{USB_DEVICE(0x0BDA, 0x881A), .driver_info = RTL8812}, /* Unex DAUK-W8812 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8821A
|
#ifdef CONFIG_RTL8821A
|
||||||
@ -189,13 +207,24 @@ static struct usb_device_id rtw_usb_id_tbl[] = {
|
|||||||
{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x0823, 0xff, 0xff, 0xff), .driver_info = RTL8821}, /* 8821AU */
|
{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x0823, 0xff, 0xff, 0xff), .driver_info = RTL8821}, /* 8821AU */
|
||||||
/*=== Customer ID ===*/
|
/*=== Customer ID ===*/
|
||||||
{USB_DEVICE(0x7392, 0xA811), .driver_info = RTL8821}, /* Edimax - Edimax */
|
{USB_DEVICE(0x7392, 0xA811), .driver_info = RTL8821}, /* Edimax - Edimax */
|
||||||
|
{USB_DEVICE(0x7392, 0xA812), .driver_info = RTL8821}, /* Edimax - EW-7811UTC */
|
||||||
|
{USB_DEVICE(0x7392, 0xA813), .driver_info = RTL8821}, /* Edimax - EW-7811UAC */
|
||||||
{USB_DEVICE(0x04BB, 0x0953), .driver_info = RTL8821}, /* I-O DATA - Edimax */
|
{USB_DEVICE(0x04BB, 0x0953), .driver_info = RTL8821}, /* I-O DATA - Edimax */
|
||||||
{USB_DEVICE(0x2001, 0x3314), .driver_info = RTL8821}, /* D-Link - Cameo */
|
{USB_DEVICE(0x2001, 0x3314), .driver_info = RTL8821}, /* D-Link - Cameo */
|
||||||
{USB_DEVICE(0x2001, 0x3318), .driver_info = RTL8821}, /* D-Link - Cameo */
|
{USB_DEVICE(0x2001, 0x3318), .driver_info = RTL8821}, /* D-Link - Cameo */
|
||||||
{USB_DEVICE(0x0E66, 0x0023), .driver_info = RTL8821}, /* HAWKING - Edimax */
|
{USB_DEVICE(0x0E66, 0x0023), .driver_info = RTL8821}, /* HAWKING - Edimax */
|
||||||
{USB_DEVICE(0x056E, 0x400E), .driver_info = RTL8821}, /* ELECOM - ELECOM */
|
{USB_DEVICE(0x056E, 0x400E), .driver_info = RTL8821}, /* ELECOM - ELECOM */
|
||||||
{USB_DEVICE(0x056E, 0x400F), .driver_info = RTL8821}, /* ELECOM - ELECOM */
|
{USB_DEVICE(0x056E, 0x400F), .driver_info = RTL8821}, /* ELECOM - ELECOM */
|
||||||
{USB_DEVICE(0x20f4, 0x804b), .driver_info = RTL8821}, /* TRENDnet */
|
{USB_DEVICE(0x0411, 0x0242), .driver_info = RTL8821}, /* ELECOM - WDC-433DU2H */
|
||||||
|
{USB_DEVICE(0x2019, 0xAB32), .driver_info = RTL8821}, /* Planex - GW-450S */
|
||||||
|
{USB_DEVICE(0x0846, 0x9052), .driver_info = RTL8821}, /* Netgear - A6100 */
|
||||||
|
{USB_DEVICE(0x0411, 0x029B), .driver_info = RTL8821}, /* Buffalo - WI-U2-433DHP */
|
||||||
|
{USB_DEVICE(0x056E, 0x4007), .driver_info = RTL8821}, /* Elecom - WDC-433DU2HBK */
|
||||||
|
{USB_DEVICE(0x0BDA, 0xA811), .driver_info = RTL8821}, /* GMYLE - AC450 */
|
||||||
|
{USB_DEVICE(0x3823, 0x6249), .driver_info = RTL8821}, /* Obihai - OBiWiFi */
|
||||||
|
{USB_DEVICE(0x2357, 0x011E), .driver_info = RTL8821}, /* TP Link - T2U Nano */
|
||||||
|
{USB_DEVICE(0x2357, 0x0122), .driver_info = RTL8821}, /* TP Link - T2U Nano */
|
||||||
|
{USB_DEVICE(0x2357, 0x0120), .driver_info = RTL8821}, /* TP Link - T2U Plus */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8192E
|
#ifdef CONFIG_RTL8192E
|
||||||
@ -217,13 +246,20 @@ static struct usb_device_id rtw_usb_id_tbl[] = {
|
|||||||
#endif /* CONFIG_RTL8703B */
|
#endif /* CONFIG_RTL8703B */
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8814A
|
#ifdef CONFIG_RTL8814A
|
||||||
|
|
||||||
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8813), .driver_info = RTL8814A},
|
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8813), .driver_info = RTL8814A},
|
||||||
{USB_DEVICE(0x2001, 0x331a), .driver_info = RTL8814A}, /* D-Link - D-Link */
|
{USB_DEVICE(0x2001, 0x331A), .driver_info = RTL8814A}, /* D-Link - D-Link */
|
||||||
{USB_DEVICE(0x0b05, 0x1817), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
|
{USB_DEVICE(0x0B05, 0x1817), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
|
||||||
|
{USB_DEVICE(0x0B05, 0x1852), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
|
||||||
|
{USB_DEVICE(0x0B05, 0x1853), .driver_info = RTL8814A}, /* ASUS - ASUSTeK */
|
||||||
{USB_DEVICE(0x056E, 0x400B), .driver_info = RTL8814A}, /* ELECOM - ELECOM */
|
{USB_DEVICE(0x056E, 0x400B), .driver_info = RTL8814A}, /* ELECOM - ELECOM */
|
||||||
{USB_DEVICE(0x056E, 0x400D), .driver_info = RTL8814A}, /* ELECOM - ELECOM */
|
{USB_DEVICE(0x056E, 0x400D), .driver_info = RTL8814A}, /* ELECOM - ELECOM */
|
||||||
{USB_DEVICE(0x7392, 0xA834), .driver_info = RTL8814A}, /* Edimax - Edimax */
|
{USB_DEVICE(0x7392, 0xA834), .driver_info = RTL8814A}, /* Edimax - Edimax */
|
||||||
|
{USB_DEVICE(0x7392, 0xA833), .driver_info = RTL8814A}, /* Edimax - AC1750 */
|
||||||
|
{USB_DEVICE(0x0BDA, 0x8813), .driver_info = RTL8814A}, /* Edimax - EDUP Adapters */
|
||||||
|
{USB_DEVICE(0x2357, 0x0106), .driver_info = RTL8814A}, /* TP-LINK Archer T9UH */
|
||||||
|
{USB_DEVICE(0x20F4, 0x809A), .driver_info = RTL8814A}, /* TRENDnet - TRENDnet */
|
||||||
|
{USB_DEVICE(0x20F4, 0x809B), .driver_info = RTL8814A}, /* TRENDnet TEW-809UB */
|
||||||
|
{USB_DEVICE(0x0846, 0x9054), .driver_info = RTL8814A}, /* Netgear A7000 */
|
||||||
#endif /* CONFIG_RTL8814A */
|
#endif /* CONFIG_RTL8814A */
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8188F
|
#ifdef CONFIG_RTL8188F
|
||||||
|
@ -274,11 +274,15 @@ void rtw_regd_apply_flags(struct wiphy *wiphy)
|
|||||||
ch = &sband->channels[j];
|
ch = &sband->channels[j];
|
||||||
|
|
||||||
if (ch)
|
if (ch)
|
||||||
|
#ifndef CONFIG_DISABLE_REGD_C
|
||||||
ch->flags = IEEE80211_CHAN_DISABLED;
|
ch->flags = IEEE80211_CHAN_DISABLED;
|
||||||
|
#else
|
||||||
|
ch->flags = 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifndef CONFIG_DISABLE_REGD_C
|
||||||
/* channels apply by channel plans. */
|
/* channels apply by channel plans. */
|
||||||
for (i = 0; i < max_chan_nums; i++) {
|
for (i = 0; i < max_chan_nums; i++) {
|
||||||
channel = channel_set[i].ChannelNum;
|
channel = channel_set[i].ChannelNum;
|
||||||
@ -316,6 +320,7 @@ void rtw_regd_apply_flags(struct wiphy *wiphy)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_DFS */
|
#endif /* CONFIG_DFS */
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct ieee80211_regdomain *_rtw_regdomain_select(struct
|
static const struct ieee80211_regdomain *_rtw_regdomain_select(struct
|
||||||
|
Loading…
Reference in New Issue
Block a user