diff --git a/package/ctcgfw/rtl8821cu/Makefile b/package/ctcgfw/rtl8821cu/Makefile index b8437584b2..188c0914dd 100644 --- a/package/ctcgfw/rtl8821cu/Makefile +++ b/package/ctcgfw/rtl8821cu/Makefile @@ -15,9 +15,9 @@ PKG_LICENSE:=GPLv3 PKG_SOURCE_URL:=https://github.com/brektrou/rtl8821CU.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2020-03-02 -PKG_SOURCE_VERSION:=7756a7ab6b4dfd105d36d8433a72802ac0620d53 -PKG_MIRROR_HASH:=4e9ac6bcedc0d3fc7d4b44be2076d6b9838d404ce0b8a8158b12287e9c0f53b6 +PKG_SOURCE_DATE:=2020-07-27 +PKG_SOURCE_VERSION:=93b04bfcd293fdd7d98d5a7c964ae9416a40159c +PKG_MIRROR_HASH:=0b0c12c69efa680481abc3a7703a1a224f7fcd6271f8eb3c038fbaef02945bfa PKG_MAINTAINER:=[CTCGFW] Project OpenWrt PKG_BUILD_PARALLEL:=1 @@ -27,7 +27,7 @@ include $(INCLUDE_DIR)/package.mk define KernelPackage/rtl8821cu SUBMENU:=Wireless Drivers TITLE:=Realtek rtl8821cu Support - DEPENDS:=@USB_SUPPORT +kmod-cfg80211 +kmod-mac80211 +kmod-usb-core +wireless-tools + DEPENDS:=@USB_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +kmod-mac80211 +kmod-usb-core FILES:=$(PKG_BUILD_DIR)/rtl8821cu.ko AUTOLOAD:=$(call AutoProbe,rtl8821cu) PROVIDES:=kmod-rtl8821cu diff --git a/package/ctcgfw/rtl8821cu/patches/020-compatible-with-kernel-5.2.patch b/package/ctcgfw/rtl8821cu/patches/020-compatible-with-kernel-5.2.patch deleted file mode 100644 index a6f5344843..0000000000 --- a/package/ctcgfw/rtl8821cu/patches/020-compatible-with-kernel-5.2.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c -index 345af67..54a07db 100644 ---- a/os_dep/linux/os_intfs.c -+++ b/os_dep/linux/os_intfs.c -@@ -1562,7 +1562,7 @@ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb - #else - , void *accel_priv - #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 - #endif - #endif diff --git a/package/ctcgfw/rtl8821cu/patches/010-fix-build-on-powerpc.patch b/package/ctcgfw/rtl8821cu/patches/020-fix-build-on-powerpc.patch similarity index 100% rename from package/ctcgfw/rtl8821cu/patches/010-fix-build-on-powerpc.patch rename to package/ctcgfw/rtl8821cu/patches/020-fix-build-on-powerpc.patch diff --git a/package/ctcgfw/rtl8821cu/patches/030-wireless-5.x.patch b/package/ctcgfw/rtl8821cu/patches/030-wireless-5.x.patch new file mode 100644 index 0000000000..52f0820b06 --- /dev/null +++ b/package/ctcgfw/rtl8821cu/patches/030-wireless-5.x.patch @@ -0,0 +1,94 @@ +diff --git a/include/rtw_security.h b/include/rtw_security.h +index ac8432e..6e40499 100755 +--- a/include/rtw_security.h ++++ b/include/rtw_security.h +@@ -249,11 +249,13 @@ struct security_priv { + #define SEC_IS_BIP_KEY_INSTALLED(sec) _FALSE + #endif + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)) + struct sha256_state { + u64 length; + u32 state[8], curlen; + u8 buf[64]; + }; ++#endif + + #define GET_ENCRY_ALGO(psecuritypriv, psta, encry_algo, bmcst)\ + do {\ +diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c +index c0df148..9666834 100755 +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -7149,11 +7149,20 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, + #else + struct net_device *ndev, + #endif ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++ struct mgmt_frame_regs *upd) ++#else + u16 frame_type, bool reg) ++#endif + { + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + struct net_device *ndev = wdev_to_ndev(wdev); + #endif ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++ bool reg = true; ++#endif ++ + _adapter *adapter; + + struct rtw_wdev_priv *pwdev_priv; +@@ -7172,7 +7181,11 @@ static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, + /* Wait QC Verify */ + return; + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++ switch (upd->interface_stypes) { ++#else + switch (frame_type) { ++#endif + case IEEE80211_STYPE_PROBE_REQ: /* 0x0040 */ + SET_CFG80211_REPORT_MGMT(pwdev_priv, IEEE80211_STYPE_PROBE_REQ, reg); + break; +@@ -9457,7 +9470,11 @@ static struct cfg80211_ops rtw_cfg80211_ops = { + + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)) || defined(COMPAT_KERNEL_RELEASE) + .mgmt_tx = cfg80211_rtw_mgmt_tx, ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) ++ .update_mgmt_frame_registrations = cfg80211_rtw_mgmt_frame_register, ++#else + .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register, ++#endif + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34) && LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35)) + .action = cfg80211_rtw_mgmt_tx, + #endif +diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c +index c4b5157..cdb9388 100755 +--- a/os_dep/linux/os_intfs.c ++++ b/os_dep/linux/os_intfs.c +@@ -1302,6 +1302,14 @@ unsigned int rtw_classify8021d(struct sk_buff *skb) + } + + ++#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 ++ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0)) ++ , select_queue_fallback_t fallback ++ #endif ++) ++#else + static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) + , void *accel_priv +@@ -1310,6 +1318,7 @@ static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb + #endif + #endif + ) ++#endif + { + _adapter *padapter = rtw_netdev_priv(dev); + struct mlme_priv *pmlmepriv = &padapter->mlmepriv;