From 673b44fd31a7ebf0b23161b36cbb3a1979536428 Mon Sep 17 00:00:00 2001 From: CN_SZTL Date: Wed, 12 Aug 2020 03:43:36 +0800 Subject: [PATCH] rtl8812au-ct: sync with snapshot --- package/kernel/rtl8812au-ct/Makefile | 6 +- .../patches/002-vendor_command_policy.patch | 156 ++++++++++++++++++ .../patches/003-wireless-5.8.patch | 37 +++++ 3 files changed, 196 insertions(+), 3 deletions(-) create mode 100644 package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch create mode 100644 package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch diff --git a/package/kernel/rtl8812au-ct/Makefile b/package/kernel/rtl8812au-ct/Makefile index 234c01c22b..aac754de7f 100644 --- a/package/kernel/rtl8812au-ct/Makefile +++ b/package/kernel/rtl8812au-ct/Makefile @@ -1,15 +1,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=rtl8812au-ct -PKG_RELEASE=1 +PKG_RELEASE=2 PKG_LICENSE:=GPLv2 PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/greearb/rtl8812AU_8821AU_linux.git -PKG_MIRROR_HASH:=9c78e0ddabe7d06862b9b45a2d1fe5ecd7357d079c76d33fbdc0be2908e65e2f +PKG_MIRROR_HASH:=fa689e034cad9e4683ea784b8f3cb590492ab5c68e8babd492a4e8bf2de3b114 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2020-01-13 +PKG_SOURCE_DATE:=2020-01-12 PKG_SOURCE_VERSION:=e0d586aa93cb8687dd7dc0e593b6a820df2d6e1d PKG_MAINTAINER:=Ben Greear diff --git a/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch b/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch new file mode 100644 index 0000000000..0b56ed6e59 --- /dev/null +++ b/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch @@ -0,0 +1,156 @@ +mac80211 from kernel 5.3 and later checks the new policy attribute. +As this driver does not define any policies and does strange things, +just tell mac80211 to ignore the policies. + +--- a/os_dep/linux/rtw_cfgvendor.c ++++ b/os_dep/linux/rtw_cfgvendor.c +@@ -1173,7 +1173,8 @@ static const struct wiphy_vendor_command + .subcmd = BRCM_VENDOR_SCMD_PRIV_STR + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_priv_string_handler ++ .doit = wl_cfgvendor_priv_string_handler, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + #if defined(GSCAN_SUPPORT) && 0 + { +@@ -1182,7 +1183,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_GET_CAPABILITIES + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_gscan_get_capabilities ++ .doit = wl_cfgvendor_gscan_get_capabilities, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1190,7 +1192,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_SET_CONFIG + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_set_scan_cfg ++ .doit = wl_cfgvendor_set_scan_cfg, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1198,7 +1201,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_SET_SCAN_CONFIG + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_set_batch_scan_cfg ++ .doit = wl_cfgvendor_set_batch_scan_cfg, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1206,7 +1210,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_ENABLE_GSCAN + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_initiate_gscan ++ .doit = wl_cfgvendor_initiate_gscan, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1214,7 +1219,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_ENABLE_FULL_SCAN_RESULTS + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_enable_full_scan_result ++ .doit = wl_cfgvendor_enable_full_scan_result, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1222,7 +1228,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_SET_HOTLIST + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_hotlist_cfg ++ .doit = wl_cfgvendor_hotlist_cfg, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1230,7 +1237,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_SET_SIGNIFICANT_CHANGE_CONFIG + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_significant_change_cfg ++ .doit = wl_cfgvendor_significant_change_cfg, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1238,7 +1246,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_GET_SCAN_RESULTS + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_gscan_get_batch_results ++ .doit = wl_cfgvendor_gscan_get_batch_results, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1246,7 +1255,8 @@ static const struct wiphy_vendor_command + .subcmd = GSCAN_SUBCMD_GET_CHANNEL_LIST + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_gscan_get_channel_list ++ .doit = wl_cfgvendor_gscan_get_channel_list, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + #endif /* GSCAN_SUPPORT */ + #if defined(RTT_SUPPORT) && 0 +@@ -1256,7 +1266,8 @@ static const struct wiphy_vendor_command + .subcmd = RTT_SUBCMD_SET_CONFIG + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_rtt_set_config ++ .doit = wl_cfgvendor_rtt_set_config, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1264,7 +1275,8 @@ static const struct wiphy_vendor_command + .subcmd = RTT_SUBCMD_CANCEL_CONFIG + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_rtt_cancel_config ++ .doit = wl_cfgvendor_rtt_cancel_config, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1272,7 +1284,8 @@ static const struct wiphy_vendor_command + .subcmd = RTT_SUBCMD_GETCAPABILITY + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = wl_cfgvendor_rtt_get_capability ++ .doit = wl_cfgvendor_rtt_get_capability, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + #endif /* RTT_SUPPORT */ + { +@@ -1281,7 +1294,8 @@ static const struct wiphy_vendor_command + .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = rtw_cfgvendor_get_feature_set ++ .doit = rtw_cfgvendor_get_feature_set, ++ .policy = VENDOR_CMD_RAW_DATA, + }, + { + { +@@ -1289,7 +1303,8 @@ static const struct wiphy_vendor_command + .subcmd = ANDR_WIFI_SUBCMD_GET_FEATURE_SET_MATRIX + }, + .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, +- .doit = rtw_cfgvendor_get_feature_set_matrix ++ .doit = rtw_cfgvendor_get_feature_set_matrix, ++ .policy = VENDOR_CMD_RAW_DATA, + } + }; + diff --git a/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch b/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch new file mode 100644 index 0000000000..64c5ab162b --- /dev/null +++ b/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch @@ -0,0 +1,37 @@ +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -5177,6 +5177,14 @@ exit: + return ret; + } + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)) || defined(BUILD_OPENWRT) ++static void cfg80211_rtw_update_mgmt_frame_registrations(struct wiphy *wiphy, ++ struct wireless_dev *wdev, ++ struct mgmt_frame_regs *upd) ++{ ++ ++} ++#else + static void cfg80211_rtw_mgmt_frame_register(struct wiphy *wiphy, + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)) + struct wireless_dev *wdev, +@@ -5205,6 +5213,7 @@ static void cfg80211_rtw_mgmt_frame_regi + exit: + return; + } ++#endif + + #if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy, +@@ -6019,7 +6028,10 @@ static struct cfg80211_ops rtw_cfg80211_ + .cancel_remain_on_channel = cfg80211_rtw_cancel_remain_on_channel, + #endif + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) || defined(BUILD_OPENWRT) ++ .mgmt_tx = cfg80211_rtw_mgmt_tx, ++ .update_mgmt_frame_registrations = cfg80211_rtw_update_mgmt_frame_registrations, ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) + .mgmt_tx = cfg80211_rtw_mgmt_tx, + .mgmt_frame_register = cfg80211_rtw_mgmt_frame_register, + #elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35))