From de82a0353df9f1231a33d54f1a567afcab4a78ff Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 23 Oct 2023 14:39:05 +0200 Subject: [PATCH] Some changes for 6.6 kernel --- .../mac80211/patches/build/900-userhdr.patch | 31 +++ 6.6/package/kernel/rtl8812au-ct/Makefile | 55 ----- .../patches/001-use-kernel-byteorder.patch | 15 -- .../patches/002-vendor_command_policy.patch | 156 ------------- .../patches/003-wireless-5.8.patch | 30 --- .../patches/004-remove-extern-inline.patch | 24 -- .../rtl8812au-ct/patches/005-kernel-6.1.patch | 14 -- ...osdep_service-use-new-get_random_u32.patch | 25 --- ...de-fix-always-TRUE-condition-warning.patch | 72 ------ ...de-use-correct-type-for-tasklet_init.patch | 93 -------- ...09-treewide-drop-const-from-dev_addr.patch | 56 ----- ...linux-proc-move-to-pde_data-function.patch | 26 --- .../rtl8812au-ct/patches/100-api_update.patch | 56 ----- .../linux/generic/hack-6.6/251-kconfig.patch | 210 ++++++++++++++++++ .../810-bcma-ssb-fallback-sprom.patch | 187 ++++++++++++++++ ...include-asm-rwonce.h-for-kernel-code.patch | 29 +++ ...0211_ptr-even-with-no-CFG82111-suppo.patch | 59 +++++ ...-bus-mhi-core-add-SBL-state-callback.patch | 48 ++++ ...ice-struct-copy-its-DMA-params-to-th.patch | 73 ++++++ build.sh | 33 +-- 20 files changed, 657 insertions(+), 635 deletions(-) create mode 100644 6.6/package/kernel/mac80211/patches/build/900-userhdr.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/Makefile delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/001-use-kernel-byteorder.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/005-kernel-6.1.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/006-os_dep-osdep_service-use-new-get_random_u32.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/007-treewide-fix-always-TRUE-condition-warning.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/008-treewide-use-correct-type-for-tasklet_init.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/009-treewide-drop-const-from-dev_addr.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/010-os_dep-linux-proc-move-to-pde_data-function.patch delete mode 100644 6.6/package/kernel/rtl8812au-ct/patches/100-api_update.patch create mode 100644 6.6/target/linux/generic/hack-6.6/251-kconfig.patch create mode 100644 6.6/target/linux/generic/hack-6.6/810-bcma-ssb-fallback-sprom.patch create mode 100644 6.6/target/linux/generic/pending-6.6/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch create mode 100644 6.6/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch create mode 100644 6.6/target/linux/generic/pending-6.6/790-bus-mhi-core-add-SBL-state-callback.patch create mode 100644 6.6/target/linux/generic/pending-6.6/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch diff --git a/6.6/package/kernel/mac80211/patches/build/900-userhdr.patch b/6.6/package/kernel/mac80211/patches/build/900-userhdr.patch new file mode 100644 index 000000000..045eb50f4 --- /dev/null +++ b/6.6/package/kernel/mac80211/patches/build/900-userhdr.patch @@ -0,0 +1,31 @@ +--- a/backport-include/net/genetlink.h 2023-10-19 17:24:48.721119999 +0200 ++++ b/backport-include/net/genetlink.h 2023-10-19 17:35:11.810569190 +0200 +@@ -3,6 +3,7 @@ + #include_next + #include + ++#if LINUX_VERSION_IS_LESS(6,5,0) + static inline void __bp_genl_info_userhdr_set(struct genl_info *info, + void *userhdr) + { +@@ -13,6 +14,7 @@ + { + return info->userhdr; + } ++#endif /* < 6.5.0 */ + + #if LINUX_VERSION_IS_LESS(4,12,0) + #define GENL_SET_ERR_MSG(info, msg) NL_SET_ERR_MSG(genl_info_extack(info), msg) +@@ -47,10 +47,12 @@ + } + + /* this gets put in place of info->userhdr, since we use that above */ ++#if LINUX_VERSION_IS_LESS(6,5,0) + static inline void *genl_info_userhdr(struct genl_info *info) + { + return (u8 *)info->genlhdr + GENL_HDRLEN; + } ++#endif + + #if LINUX_VERSION_IS_LESS(4,10,0) + #define __genl_ro_after_init diff --git a/6.6/package/kernel/rtl8812au-ct/Makefile b/6.6/package/kernel/rtl8812au-ct/Makefile deleted file mode 100644 index be1acabf2..000000000 --- a/6.6/package/kernel/rtl8812au-ct/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=rtl8812au-ct -PKG_RELEASE=1 - -PKG_LICENSE:=GPLv2 -PKG_LICENSE_FILES:= - -PKG_SOURCE_URL:=https://github.com/greearb/rtl8812AU_8821AU_linux.git -PKG_MIRROR_HASH:=31e658df3e4d4c18c396259c2e0bef2bfc44a4aa870931f031a31e948be98af4 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2021-11-07 -PKG_SOURCE_VERSION:=39df55967b7de9f6c9600017b724303f95a8b9e2 - -PKG_MAINTAINER:=Ben Greear -PKG_BUILD_PARALLEL:=1 -#PKG_EXTMOD_SUBDIRS:=rtl8812au-ct - -STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h - -include $(INCLUDE_DIR)/kernel.mk -include $(INCLUDE_DIR)/package.mk - -define KernelPackage/rtl8812au-ct - SUBMENU:=Wireless Drivers - TITLE:=Driver for Realtek 8812 AU devices comfast 912-ac, etc - DEPENDS:=+kmod-cfg80211 +kmod-usb-core +@DRIVER_11AC_SUPPORT - FILES:=\ - $(PKG_BUILD_DIR)/rtl8812au.ko - AUTOLOAD:=$(call AutoProbe,rtl8812au) - PROVIDES:=kmod-rtl8812au -endef - -NOSTDINC_FLAGS := \ - $(KERNEL_NOSTDINC_FLAGS) \ - -I$(PKG_BUILD_DIR) \ - -I$(PKG_BUILD_DIR)/include \ - -I$(STAGING_DIR)/usr/include/mac80211-backport \ - -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ - -I$(STAGING_DIR)/usr/include/mac80211 \ - -I$(STAGING_DIR)/usr/include/mac80211/uapi \ - -include backport/backport.h \ - -Wno-error=address \ - -Wno-error=stringop-overread - -NOSTDINC_FLAGS+=-DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DBUILD_OPENWRT - -define Build/Compile - +$(KERNEL_MAKE) $(PKG_JOBS) \ - M="$(PKG_BUILD_DIR)" \ - NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ - modules -endef - -$(eval $(call KernelPackage,rtl8812au-ct)) diff --git a/6.6/package/kernel/rtl8812au-ct/patches/001-use-kernel-byteorder.patch b/6.6/package/kernel/rtl8812au-ct/patches/001-use-kernel-byteorder.patch deleted file mode 100644 index dd42b1243..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/001-use-kernel-byteorder.patch +++ /dev/null @@ -1,15 +0,0 @@ -Fix compile problem when rtw_byteorder.h and asm/byteorder.h gets -included in addition for example indirectly, do not use realtek own copy -of the byteorder headers. - ---- a/include/drv_types.h -+++ b/include/drv_types.h -@@ -30,7 +30,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include diff --git a/6.6/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch b/6.6/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch deleted file mode 100644 index 0b56ed6e5..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/002-vendor_command_policy.patch +++ /dev/null @@ -1,156 +0,0 @@ -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/6.6/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch b/6.6/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch deleted file mode 100644 index 67ebb82b3..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/003-wireless-5.8.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/os_dep/linux/ioctl_cfg80211.c -+++ b/os_dep/linux/ioctl_cfg80211.c -@@ -5177,6 +5177,15 @@ 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) -+{ -+ -+} -+#endif -+ - #if defined(CONFIG_TDLS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - static int cfg80211_rtw_tdls_mgmt(struct wiphy *wiphy, - struct net_device *ndev, -@@ -5990,7 +5999,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, - #elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,34) && LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,35)) - .action = cfg80211_rtw_mgmt_tx, diff --git a/6.6/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch b/6.6/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch deleted file mode 100644 index 871fe1063..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/004-remove-extern-inline.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/include/ieee80211.h -+++ b/include/ieee80211.h -@@ -1313,18 +1313,18 @@ enum ieee80211_state { - (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \ - (((Addr[5]) & 0xff) == 0xff)) - #else --extern __inline int is_multicast_mac_addr(const u8 *addr) -+__inline static int is_multicast_mac_addr(const u8 *addr) - { - return ((addr[0] != 0xff) && (0x01 & addr[0])); - } - --extern __inline int is_broadcast_mac_addr(const u8 *addr) -+__inline static int is_broadcast_mac_addr(const u8 *addr) - { - return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ - (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); - } - --extern __inline int is_zero_mac_addr(const u8 *addr) -+__inline static int is_zero_mac_addr(const u8 *addr) - { - return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \ - (addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00)); diff --git a/6.6/package/kernel/rtl8812au-ct/patches/005-kernel-6.1.patch b/6.6/package/kernel/rtl8812au-ct/patches/005-kernel-6.1.patch deleted file mode 100644 index 98aa67849..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/005-kernel-6.1.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/include/osdep_service_linux.h -+++ b/include/osdep_service_linux.h -@@ -163,7 +163,11 @@ typedef void* _thread_hdl_; - typedef int thread_return; - typedef void* thread_context; - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)) -+#define thread_exit() kthread_complete_and_exit(NULL, 0) -+#else - #define thread_exit() complete_and_exit(NULL, 0) -+#endif - - typedef void timer_hdl_return; - typedef void* timer_hdl_context; diff --git a/6.6/package/kernel/rtl8812au-ct/patches/006-os_dep-osdep_service-use-new-get_random_u32.patch b/6.6/package/kernel/rtl8812au-ct/patches/006-os_dep-osdep_service-use-new-get_random_u32.patch deleted file mode 100644 index 16ebbb1ea..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/006-os_dep-osdep_service-use-new-get_random_u32.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e8f10b21abd8ae440632f561f8b65f37b4b55cc8 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sun, 30 Jul 2023 11:16:32 +0200 -Subject: [PATCH 1/5] os_dep/osdep_service: use new get_random_u32 - -Drop prandom_u32 as got deprecated for get_random_u32. - -Signed-off-by: Christian Marangi ---- - os_dep/osdep_service.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - ---- a/os_dep/osdep_service.c -+++ b/os_dep/osdep_service.c -@@ -2335,7 +2335,9 @@ u64 rtw_division64(u64 x, u64 y) - inline u32 rtw_random32(void) - { - #ifdef PLATFORM_LINUX --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) -+ return get_random_u32(); -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) - return prandom_u32(); - #elif (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)) - u32 random_int; diff --git a/6.6/package/kernel/rtl8812au-ct/patches/007-treewide-fix-always-TRUE-condition-warning.patch b/6.6/package/kernel/rtl8812au-ct/patches/007-treewide-fix-always-TRUE-condition-warning.patch deleted file mode 100644 index be7b70ab5..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/007-treewide-fix-always-TRUE-condition-warning.patch +++ /dev/null @@ -1,72 +0,0 @@ -From dc4024894c9deefc56f8dd6b2d2822b277f268a5 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sun, 30 Jul 2023 11:18:48 +0200 -Subject: [PATCH 2/5] treewide: fix always TRUE condition warning - -Fix always TRUE condition warning an drop redundant check. - -Signed-off-by: Christian Marangi ---- - core/rtw_sta_mgt.c | 3 +-- - hal/OUTSRC/phydm_debug.c | 16 ++++++---------- - os_dep/linux/ioctl_cfg80211.c | 3 +-- - 3 files changed, 8 insertions(+), 14 deletions(-) - ---- a/core/rtw_sta_mgt.c -+++ b/core/rtw_sta_mgt.c -@@ -207,8 +207,7 @@ void rtw_mfree_stainfo(struct sta_info * - { - _func_enter_; - -- if(&psta->lock != NULL) -- _rtw_spinlock_free(&psta->lock); -+ _rtw_spinlock_free(&psta->lock); - - _rtw_free_sta_xmit_priv_lock(&psta->sta_xmitpriv); - _rtw_free_sta_recv_priv_lock(&psta->sta_recvpriv); ---- a/hal/OUTSRC/phydm_debug.c -+++ b/hal/OUTSRC/phydm_debug.c -@@ -870,12 +870,10 @@ phydm_cmd_parser( - case PHYDM_RA: - - for(i=0; i<5; i++) { -- if(input[i+1]) { -- PHYDM_SSCANF(input[i+1], DCMD_DECIMAL, &var1[i]); -+ PHYDM_SSCANF(input[i+1], DCMD_DECIMAL, &var1[i]); - -- PHYDM_SNPRINTF((output+used, out_len-used, "new SET, RA_var[%d]= (( %d ))\n", i , var1[i])); -- input_idx++; -- } -+ PHYDM_SNPRINTF((output+used, out_len-used, "new SET, RA_var[%d]= (( %d ))\n", i , var1[i])); -+ input_idx++; - } - - if(input_idx>=1) { -@@ -891,12 +889,10 @@ phydm_cmd_parser( - case PHYDM_PATHDIV: - - for(i=0; i<5; i++) { -- if(input[i+1]) { -- PHYDM_SSCANF(input[i+1], DCMD_HEX, &var1[i]); -+ PHYDM_SSCANF(input[i+1], DCMD_HEX, &var1[i]); - -- PHYDM_SNPRINTF((output+used, out_len-used, "new SET, PATHDIV_var[%d]= (( %d ))\n", i , var1[i])); -- input_idx++; -- } -+ PHYDM_SNPRINTF((output+used, out_len-used, "new SET, PATHDIV_var[%d]= (( %d ))\n", i , var1[i])); -+ input_idx++; - } - - if(input_idx>=1) { ---- a/os_dep/linux/ioctl_cfg80211.c -+++ b/os_dep/linux/ioctl_cfg80211.c -@@ -2170,8 +2170,7 @@ static int cfg80211_rtw_scan(struct wiph - - #ifdef CONFIG_P2P - if( pwdinfo->driver_interface == DRIVER_CFG80211 ) { -- if(ssids->ssid != NULL -- && _rtw_memcmp(ssids->ssid, "DIRECT-", 7) -+ if(_rtw_memcmp(ssids->ssid, "DIRECT-", 7) - && rtw_get_p2p_ie((u8 *)request->ie, request->ie_len, NULL, NULL) - ) { - if(rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE)) { diff --git a/6.6/package/kernel/rtl8812au-ct/patches/008-treewide-use-correct-type-for-tasklet_init.patch b/6.6/package/kernel/rtl8812au-ct/patches/008-treewide-use-correct-type-for-tasklet_init.patch deleted file mode 100644 index 606741316..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/008-treewide-use-correct-type-for-tasklet_init.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 5f3bb5602615894cda88ca1b44fdfafdfb01c8c8 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sun, 30 Jul 2023 11:20:39 +0200 -Subject: [PATCH 3/5] treewide: use correct type for tasklet_init - -Update and use correct type for tasklet_init to fix compilation error -for not valid cast. - -Signed-off-by: Christian Marangi ---- - hal/hal_hci/hal_usb.c | 2 +- - hal/rtl8812a/usb/rtl8812au_xmit.c | 2 +- - hal/rtl8812a/usb/usb_ops_linux.c | 2 +- - include/rtl8812a_xmit.h | 2 +- - include/usb_ops_linux.h | 2 +- - os_dep/linux/usb_ops_linux.c | 4 ++-- - 6 files changed, 7 insertions(+), 7 deletions(-) - ---- a/hal/hal_hci/hal_usb.c -+++ b/hal/hal_hci/hal_usb.c -@@ -35,7 +35,7 @@ int usb_init_recv_priv(_adapter *padapte - - #ifdef PLATFORM_LINUX - tasklet_init(&precvpriv->recv_tasklet, -- (void(*)(unsigned long))usb_recv_tasklet, -+ usb_recv_tasklet, - (unsigned long)padapter); - #endif /* PLATFORM_LINUX */ - ---- a/hal/rtl8812a/usb/rtl8812au_xmit.c -+++ b/hal/rtl8812a/usb/rtl8812au_xmit.c -@@ -30,7 +30,7 @@ s32 rtl8812au_init_xmit_priv(_adapter *p - - #ifdef PLATFORM_LINUX - tasklet_init(&pxmitpriv->xmit_tasklet, -- (void(*)(unsigned long))rtl8812au_xmit_tasklet, -+ rtl8812au_xmit_tasklet, - (unsigned long)padapter); - #endif - #ifdef CONFIG_TX_EARLY_MODE ---- a/hal/rtl8812a/usb/usb_ops_linux.c -+++ b/hal/rtl8812a/usb/usb_ops_linux.c -@@ -475,7 +475,7 @@ _exit_recvbuf2recvframe: - } - - --void rtl8812au_xmit_tasklet(void *priv) -+void rtl8812au_xmit_tasklet(unsigned long priv) - { - int ret = _FALSE; - _adapter *padapter = (_adapter*)priv; ---- a/include/rtl8812a_xmit.h -+++ b/include/rtl8812a_xmit.h -@@ -331,7 +331,7 @@ s32 rtl8812au_hal_xmit(PADAPTER padapter - s32 rtl8812au_mgnt_xmit(PADAPTER padapter, struct xmit_frame *pmgntframe); - s32 rtl8812au_hal_xmitframe_enqueue(_adapter *padapter, struct xmit_frame *pxmitframe); - s32 rtl8812au_xmit_buf_handler(PADAPTER padapter); --void rtl8812au_xmit_tasklet(void *priv); -+void rtl8812au_xmit_tasklet(unsigned long priv); - s32 rtl8812au_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf); - #endif - ---- a/include/usb_ops_linux.h -+++ b/include/usb_ops_linux.h -@@ -78,7 +78,7 @@ int usb_write16(struct intf_hdl *pintfhd - int usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val); - int usb_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 length, u8 *pdata); - u32 usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem); --void usb_recv_tasklet(void *priv); -+void usb_recv_tasklet(unsigned long priv); - - #endif - ---- a/os_dep/linux/usb_ops_linux.c -+++ b/os_dep/linux/usb_ops_linux.c -@@ -717,7 +717,7 @@ void usb_init_recvbuf(_adapter *padapter - int recvbuf2recvframe(PADAPTER padapter, void *ptr); - - #ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX --void usb_recv_tasklet(void *priv) -+void usb_recv_tasklet(unsigned long priv) - { - struct recv_buf *precvbuf = NULL; - _adapter *padapter = (_adapter*)priv; -@@ -870,7 +870,7 @@ u32 usb_read_port(struct intf_hdl *pintf - } - #else // CONFIG_USE_USB_BUFFER_ALLOC_RX - --void usb_recv_tasklet(void *priv) -+void usb_recv_tasklet(unsigned long priv) - { - _pkt *pskb; - _adapter *padapter = (_adapter*)priv; diff --git a/6.6/package/kernel/rtl8812au-ct/patches/009-treewide-drop-const-from-dev_addr.patch b/6.6/package/kernel/rtl8812au-ct/patches/009-treewide-drop-const-from-dev_addr.patch deleted file mode 100644 index 64ad85372..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/009-treewide-drop-const-from-dev_addr.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 51ab9d6a959de87206731f941b1df39e5c5d63ea Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sun, 30 Jul 2023 11:21:49 +0200 -Subject: [PATCH 4/5] treewide: drop const from dev_addr - -dev_addr is not const and conflict with memcpy function. Fix compilation -warning by casting dev_addr to void*. - -This operation is safe as this is done before netdev register. - -Signed-off-by: Christian Marangi ---- - os_dep/linux/os_intfs.c | 6 +++--- - os_dep/osdep_service.c | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - ---- a/os_dep/linux/os_intfs.c -+++ b/os_dep/linux/os_intfs.c -@@ -1885,7 +1885,7 @@ int _netdev_if2_open(struct net_device * - - _rtw_memcpy(padapter->eeprompriv.mac_addr, mac, ETH_ALEN); - rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr); -- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); -+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); - } - #endif //CONFIG_PLATFORM_INTEL_BYT - -@@ -2254,7 +2254,7 @@ static int _rtw_drv_register_netdev(_ada - /* alloc netdev name */ - rtw_init_netdev_name(pnetdev, name); - -- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); -+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); - - /* Tell the network stack we exist */ - if (register_netdev(pnetdev) != 0) { -@@ -2334,7 +2334,7 @@ int _netdev_open(struct net_device *pnet - #ifdef CONFIG_PLATFORM_INTEL_BYT - rtw_macaddr_cfg(padapter->eeprompriv.mac_addr); - rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr); -- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); -+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); - #endif //CONFIG_PLATFORM_INTEL_BYT - - padapter->bDriverStopped = _FALSE; ---- a/os_dep/osdep_service.c -+++ b/os_dep/osdep_service.c -@@ -2209,7 +2209,7 @@ int rtw_change_ifname(_adapter *padapter - - rtw_init_netdev_name(pnetdev, ifname); - -- _rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); -+ _rtw_memcpy((void *)pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN); - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) - if(!rtnl_is_locked()) diff --git a/6.6/package/kernel/rtl8812au-ct/patches/010-os_dep-linux-proc-move-to-pde_data-function.patch b/6.6/package/kernel/rtl8812au-ct/patches/010-os_dep-linux-proc-move-to-pde_data-function.patch deleted file mode 100644 index 1c62e77d1..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/010-os_dep-linux-proc-move-to-pde_data-function.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f455198acaa71c2963746a6b17c878c7d1d0e331 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Sun, 30 Jul 2023 11:22:58 +0200 -Subject: [PATCH 5/5] os_dep/linux/proc: move to pde_data function - -PDE_DATA macro was dropped in 5.17 with the new pde_data that does the -exact thing. Fix compilation error and use new function. - -Signed-off-by: Christian Marangi ---- - os_dep/linux/rtw_proc.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/os_dep/linux/rtw_proc.c -+++ b/os_dep/linux/rtw_proc.c -@@ -37,6 +37,10 @@ inline struct proc_dir_entry *get_rtw_dr - #define file_inode(file) ((file)->f_dentry->d_inode) - #endif - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)) -+#define PDE_DATA(inode) pde_data(inode) -+#endif -+ - #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)) - #define PDE_DATA(inode) PDE((inode))->data - #define proc_get_parent_data(inode) PDE((inode))->parent->data diff --git a/6.6/package/kernel/rtl8812au-ct/patches/100-api_update.patch b/6.6/package/kernel/rtl8812au-ct/patches/100-api_update.patch deleted file mode 100644 index 2c081256e..000000000 --- a/6.6/package/kernel/rtl8812au-ct/patches/100-api_update.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/os_dep/linux/ioctl_cfg80211.c -+++ b/os_dep/linux/ioctl_cfg80211.c -@@ -798,8 +798,8 @@ check_bss: - - DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter)); - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) -- roam_info.channel = notify_channel; -- roam_info.bssid = cur_network->network.MacAddress; -+ roam_info.links[0].channel = notify_channel; -+ roam_info.links[0].bssid = cur_network->network.MacAddress; - roam_info.req_ie = pmlmepriv->assoc_req + sizeof(struct rtw_ieee80211_hdr_3addr) + 2; - roam_info.req_ie_len = pmlmepriv->assoc_req_len - sizeof(struct rtw_ieee80211_hdr_3addr) - 2; - roam_info.resp_ie = pmlmepriv->assoc_rsp + sizeof(struct rtw_ieee80211_hdr_3addr) + 6; -@@ -1389,6 +1389,7 @@ exit: - - static int cfg80211_rtw_add_key(struct wiphy *wiphy, struct net_device *ndev, - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) -+ int link_id, - u8 key_index, bool pairwise, const u8 *mac_addr, - #else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) - u8 key_index, const u8 *mac_addr, -@@ -1529,6 +1530,7 @@ addkey_end: - - static int cfg80211_rtw_get_key(struct wiphy *wiphy, struct net_device *ndev, - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) -+ int link_id, - u8 key_index, bool pairwise, const u8 *mac_addr, - #else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) - u8 key_index, const u8 *mac_addr, -@@ -1562,6 +1564,7 @@ static int cfg80211_rtw_get_key(struct w - - static int cfg80211_rtw_del_key(struct wiphy *wiphy, struct net_device *ndev, - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) || defined(COMPAT_KERNEL_RELEASE) -+ int link_id, - u8 key_index, bool pairwise, const u8 *mac_addr) - #else // (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) - u8 key_index, const u8 *mac_addr) -@@ -1581,7 +1584,7 @@ static int cfg80211_rtw_del_key(struct w - } - - static int cfg80211_rtw_set_default_key(struct wiphy *wiphy, -- struct net_device *ndev, u8 key_index -+ struct net_device *ndev, int link_id, u8 key_index - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) || defined(COMPAT_KERNEL_RELEASE) - , bool unicast, bool multicast - #endif -@@ -4019,7 +4022,8 @@ static int cfg80211_rtw_change_beacon(st - return ret; - } - --static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev) -+static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev, -+ unsigned int link_id) - { - DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); - return 0; diff --git a/6.6/target/linux/generic/hack-6.6/251-kconfig.patch b/6.6/target/linux/generic/hack-6.6/251-kconfig.patch new file mode 100644 index 000000000..e1ecbca6f --- /dev/null +++ b/6.6/target/linux/generic/hack-6.6/251-kconfig.patch @@ -0,0 +1,210 @@ +From da3c50704f14132f4adf80d48e9a4cd5d46e54c9 Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Fri, 7 Jul 2017 17:09:21 +0200 +Subject: kconfig: owrt specifc dependencies + +Signed-off-by: John Crispin +--- + crypto/Kconfig | 10 +++++----- + drivers/bcma/Kconfig | 1 + + drivers/ssb/Kconfig | 3 ++- + lib/Kconfig | 8 ++++---- + net/netfilter/Kconfig | 2 +- + net/wireless/Kconfig | 17 ++++++++++------- + sound/core/Kconfig | 4 ++-- + 7 files changed, 25 insertions(+), 20 deletions(-) + +--- a/crypto/Kconfig ++++ b/crypto/Kconfig +@@ -55,7 +55,7 @@ config CRYPTO_FIPS_VERSION + By default the KERNELRELEASE value is used. + + config CRYPTO_ALGAPI +- tristate ++ tristate "ALGAPI" + select CRYPTO_ALGAPI2 + help + This option provides the API for cryptographic algorithms. +@@ -64,7 +64,7 @@ config CRYPTO_ALGAPI2 + tristate + + config CRYPTO_AEAD +- tristate ++ tristate "AEAD" + select CRYPTO_AEAD2 + select CRYPTO_ALGAPI + +@@ -75,7 +75,7 @@ config CRYPTO_AEAD2 + select CRYPTO_RNG2 + + config CRYPTO_SKCIPHER +- tristate ++ tristate "SKCIPHER" + select CRYPTO_SKCIPHER2 + select CRYPTO_ALGAPI + +@@ -85,7 +85,7 @@ config CRYPTO_SKCIPHER2 + select CRYPTO_RNG2 + + config CRYPTO_HASH +- tristate ++ tristate "HASH" + select CRYPTO_HASH2 + select CRYPTO_ALGAPI + +@@ -94,7 +94,7 @@ config CRYPTO_HASH2 + select CRYPTO_ALGAPI2 + + config CRYPTO_RNG +- tristate ++ tristate "RNG" + select CRYPTO_RNG2 + select CRYPTO_ALGAPI + +--- a/drivers/bcma/Kconfig ++++ b/drivers/bcma/Kconfig +@@ -16,6 +16,7 @@ if BCMA + # Support for Block-I/O. SELECT this from the driver that needs it. + config BCMA_BLOCKIO + bool ++ default y + + config BCMA_HOST_PCI_POSSIBLE + bool +--- a/drivers/ssb/Kconfig ++++ b/drivers/ssb/Kconfig +@@ -29,6 +29,7 @@ config SSB_SPROM + config SSB_BLOCKIO + bool + depends on SSB ++ default y + + config SSB_PCIHOST_POSSIBLE + bool +@@ -49,7 +50,7 @@ config SSB_PCIHOST + config SSB_B43_PCI_BRIDGE + bool + depends on SSB_PCIHOST +- default n ++ default y + + config SSB_PCMCIAHOST_POSSIBLE + bool +--- a/lib/Kconfig ++++ b/lib/Kconfig +@@ -457,16 +457,16 @@ config BCH_CONST_T + # Textsearch support is select'ed if needed + # + config TEXTSEARCH +- bool ++ bool "Textsearch support" + + config TEXTSEARCH_KMP +- tristate ++ tristate "Textsearch KMP" + + config TEXTSEARCH_BM +- tristate ++ tristate "Textsearch BM" + + config TEXTSEARCH_FSM +- tristate ++ tristate "Textsearch FSM" + + config BTREE + bool +--- a/net/netfilter/Kconfig ++++ b/net/netfilter/Kconfig +@@ -22,7 +22,7 @@ config NETFILTER_SKIP_EGRESS + def_bool NETFILTER_EGRESS && (NET_CLS_ACT || IFB) + + config NETFILTER_NETLINK +- tristate ++ tristate "Netfilter NFNETLINK interface" + + config NETFILTER_FAMILY_BRIDGE + bool +--- a/net/wireless/Kconfig ++++ b/net/wireless/Kconfig +@@ -1,6 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0-only + config WIRELESS_EXT +- bool ++ bool "Wireless extensions" + + config WEXT_CORE + def_bool y +@@ -12,10 +12,10 @@ config WEXT_PROC + depends on WEXT_CORE + + config WEXT_SPY +- bool ++ bool "WEXT_SPY" + + config WEXT_PRIV +- bool ++ bool "WEXT_PRIV" + + config CFG80211 + tristate "cfg80211 - wireless configuration API" +@@ -208,7 +208,7 @@ config CFG80211_WEXT_EXPORT + endif # CFG80211 + + config LIB80211 +- tristate ++ tristate "LIB80211" + default n + help + This options enables a library of common routines used +@@ -217,17 +217,17 @@ config LIB80211 + Drivers should select this themselves if needed. + + config LIB80211_CRYPT_WEP +- tristate ++ tristate "LIB80211_CRYPT_WEP" + select CRYPTO_LIB_ARC4 + + config LIB80211_CRYPT_CCMP +- tristate ++ tristate "LIB80211_CRYPT_CCMP" + select CRYPTO + select CRYPTO_AES + select CRYPTO_CCM + + config LIB80211_CRYPT_TKIP +- tristate ++ tristate "LIB80211_CRYPT_TKIP" + select CRYPTO_LIB_ARC4 + + config LIB80211_DEBUG +--- a/sound/core/Kconfig ++++ b/sound/core/Kconfig +@@ -17,7 +17,7 @@ config SND_DMAENGINE_PCM + tristate + + config SND_HWDEP +- tristate ++ tristate "Sound hardware support" + + config SND_SEQ_DEVICE + tristate +@@ -27,7 +27,7 @@ config SND_RAWMIDI + select SND_SEQ_DEVICE if SND_SEQUENCER != n + + config SND_COMPRESS_OFFLOAD +- tristate ++ tristate "Compression offloading support" + + config SND_JACK + bool +--- a/net/Kconfig ++++ b/net/Kconfig +@@ -430,7 +430,7 @@ config NET_DEVLINK + default n + + config PAGE_POOL +- bool ++ bool "Page pool support" + + config PAGE_POOL_STATS + default n diff --git a/6.6/target/linux/generic/hack-6.6/810-bcma-ssb-fallback-sprom.patch b/6.6/target/linux/generic/hack-6.6/810-bcma-ssb-fallback-sprom.patch new file mode 100644 index 000000000..c581a512c --- /dev/null +++ b/6.6/target/linux/generic/hack-6.6/810-bcma-ssb-fallback-sprom.patch @@ -0,0 +1,187 @@ +From e4d708702e6c98f2111e33201a264d6788564cb2 Mon Sep 17 00:00:00 2001 +From: OpenWrt community +Date: Fri, 12 May 2023 11:08:43 +0200 +Subject: [PATCH] ssb_sprom: add generic kernel support for Broadcom Fallback SPROMs + +--- + drivers/bcma/Kconfig | 4 ++++ + drivers/bcma/Makefile | 1 + + drivers/bcma/bcma_private.h | 4 ++++ + drivers/bcma/main.c | 8 ++++++++ + drivers/bcma/sprom.c | 23 ++++++++++++++--------- + drivers/ssb/Kconfig | 5 +++++ + drivers/ssb/Makefile | 1 + + drivers/ssb/main.c | 8 ++++++++ + drivers/ssb/sprom.c | 12 +++++++++++- + drivers/ssb/ssb_private.h | 4 ++++ + 10 files changed, 60 insertions(+), 10 deletions(-) + +--- a/drivers/bcma/Kconfig ++++ b/drivers/bcma/Kconfig +@@ -18,6 +18,10 @@ config BCMA_BLOCKIO + bool + default y + ++config BCMA_FALLBACK_SPROM ++ bool ++ default y ++ + config BCMA_HOST_PCI_POSSIBLE + bool + depends on PCI = y +--- a/drivers/bcma/Makefile ++++ b/drivers/bcma/Makefile +@@ -11,6 +11,7 @@ bcma-$(CONFIG_BCMA_DRIVER_PCI_HOSTMODE) + bcma-$(CONFIG_BCMA_DRIVER_MIPS) += driver_mips.o + bcma-$(CONFIG_BCMA_DRIVER_GMAC_CMN) += driver_gmac_cmn.o + bcma-$(CONFIG_BCMA_DRIVER_GPIO) += driver_gpio.o ++bcma-$(CONFIG_BCMA_FALLBACK_SPROM) += fallback-sprom.o + bcma-$(CONFIG_BCMA_HOST_PCI) += host_pci.o + bcma-$(CONFIG_BCMA_HOST_SOC) += host_soc.o + obj-$(CONFIG_BCMA) += bcma.o +--- a/drivers/bcma/bcma_private.h ++++ b/drivers/bcma/bcma_private.h +@@ -38,6 +38,10 @@ int bcma_bus_resume(struct bcma_bus *bus + void bcma_detect_chip(struct bcma_bus *bus); + int bcma_bus_scan(struct bcma_bus *bus); + ++/* fallback-sprom.c */ ++int __init bcma_fbs_register(void); ++int bcma_get_fallback_sprom(struct bcma_bus *dev, struct ssb_sprom *out); ++ + /* sprom.c */ + int bcma_sprom_get(struct bcma_bus *bus); + +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -668,6 +668,14 @@ static int __init bcma_modinit(void) + { + int err; + ++#ifdef CONFIG_BCMA_FALLBACK_SPROM ++ err = bcma_fbs_register(); ++ if (err) { ++ pr_err("Fallback SPROM initialization failed\n"); ++ err = 0; ++ } ++#endif /* CONFIG_BCMA_FALLBACK_SPROM */ ++ + err = bcma_init_bus_register(); + if (err) + return err; +--- a/drivers/bcma/sprom.c ++++ b/drivers/bcma/sprom.c +@@ -51,21 +51,26 @@ static int bcma_fill_sprom_with_fallback + { + int err; + +- if (!get_fallback_sprom) { ++ if (get_fallback_sprom) ++ err = get_fallback_sprom(bus, out); ++ ++#ifdef CONFIG_BCMA_FALLBACK_SPROM ++ if (!get_fallback_sprom || err) ++ err = bcma_get_fallback_sprom(bus, out); ++#else ++ if (!get_fallback_sprom) + err = -ENOENT; +- goto fail; +- } ++#endif /* CONFIG_BCMA_FALLBACK_SPROM */ + +- err = get_fallback_sprom(bus, out); +- if (err) +- goto fail; ++ if (err) { ++ bcma_warn(bus, "Using fallback SPROM failed (err %d)\n", err); ++ return err; ++ } + + bcma_debug(bus, "Using SPROM revision %d provided by platform.\n", + bus->sprom.revision); ++ + return 0; +-fail: +- bcma_warn(bus, "Using fallback SPROM failed (err %d)\n", err); +- return err; + } + + /************************************************** +--- a/drivers/ssb/Kconfig ++++ b/drivers/ssb/Kconfig +@@ -25,6 +25,11 @@ if SSB + config SSB_SPROM + bool + ++config SSB_FALLBACK_SPROM ++ bool ++ depends on SSB_PCIHOST ++ default y ++ + # Support for Block-I/O. SELECT this from the driver that needs it. + config SSB_BLOCKIO + bool +--- a/drivers/ssb/Makefile ++++ b/drivers/ssb/Makefile +@@ -2,6 +2,7 @@ + # core + ssb-y += main.o scan.o + ssb-$(CONFIG_SSB_EMBEDDED) += embedded.o ++ssb-$(CONFIG_SSB_FALLBACK_SPROM) += fallback-sprom.o + ssb-$(CONFIG_SSB_SPROM) += sprom.o + + # host support +--- a/drivers/ssb/main.c ++++ b/drivers/ssb/main.c +@@ -1287,6 +1287,14 @@ static int __init ssb_modinit(void) + { + int err; + ++#ifdef CONFIG_SSB_FALLBACK_SPROM ++ err = ssb_fbs_register(); ++ if (err) { ++ pr_err("Fallback SPROM initialization failed\n"); ++ err = 0; ++ } ++#endif /* CONFIG_SSB_FALLBACK_SPROM */ ++ + /* See the comment at the ssb_is_early_boot definition */ + ssb_is_early_boot = 0; + err = bus_register(&ssb_bustype); +--- a/drivers/ssb/sprom.c ++++ b/drivers/ssb/sprom.c +@@ -180,10 +180,20 @@ int ssb_arch_register_fallback_sprom(int + + int ssb_fill_sprom_with_fallback(struct ssb_bus *bus, struct ssb_sprom *out) + { ++ int err; ++ ++ if (get_fallback_sprom) ++ err = get_fallback_sprom(bus, out); ++ ++#ifdef CONFIG_SSB_FALLBACK_SPROM ++ if (!get_fallback_sprom || err) ++ err = ssb_get_fallback_sprom(bus, out); ++#else + if (!get_fallback_sprom) + return -ENOENT; ++#endif /* CONFIG_SSB_FALLBACK_SPROM */ + +- return get_fallback_sprom(bus, out); ++ return err; + } + + /* https://bcm-v4.sipsolutions.net/802.11/IsSpromAvailable */ +--- a/drivers/ssb/ssb_private.h ++++ b/drivers/ssb/ssb_private.h +@@ -143,6 +143,10 @@ extern int ssb_bus_scan(struct ssb_bus * + extern void ssb_iounmap(struct ssb_bus *ssb); + + ++/* fallback-sprom.c */ ++int __init ssb_fbs_register(void); ++int ssb_get_fallback_sprom(struct ssb_bus *dev, struct ssb_sprom *out); ++ + /* sprom.c */ + extern + ssize_t ssb_attr_sprom_show(struct ssb_bus *bus, char *buf, diff --git a/6.6/target/linux/generic/pending-6.6/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch b/6.6/target/linux/generic/pending-6.6/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch new file mode 100644 index 000000000..7b342e696 --- /dev/null +++ b/6.6/target/linux/generic/pending-6.6/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch @@ -0,0 +1,29 @@ +From: Felix Fietkau +Date: Thu, 22 Oct 2020 22:00:03 +0200 +Subject: [PATCH] compiler.h: only include asm/rwonce.h for kernel code + +This header file is not in uapi, which makes any user space code that includes +linux/compiler.h to fail with the error 'asm/rwonce.h: No such file or directory' + +Fixes: e506ea451254 ("compiler.h: Split {READ,WRITE}_ONCE definitions out into rwonce.h") +Signed-off-by: Felix Fietkau +--- + +--- a/include/linux/compiler.h ++++ b/include/linux/compiler.h +@@ -203,6 +203,8 @@ void ftrace_likely_update(struct ftrace_ + __v; \ + }) + ++#include ++ + #endif /* __KERNEL__ */ + + /* +@@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const + */ + #define prevent_tail_call_optimization() mb() + +-#include +- + #endif /* __LINUX_COMPILER_H */ diff --git a/6.6/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch b/6.6/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch new file mode 100644 index 000000000..2c1ec55d0 --- /dev/null +++ b/6.6/target/linux/generic/pending-6.6/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch @@ -0,0 +1,59 @@ +From 686c603f67ae87bf21a61b5e4b1564443f41c3ee Mon Sep 17 00:00:00 2001 +From: Christian Marangi +Date: Thu, 20 Oct 2022 03:34:43 +0200 +Subject: [PATCH] net: permit ieee80211_ptr even with no CFG82111 support + +Introduce a new flag CONFIG_CFG80211_HEADERS to compile in ieee80211_ptr +even if CFG80211 support is not compiled in. This is needed for the +backports project and for any downstream wireless driver that loads in +the kernel dynamically. + +Signed-off-by: Christian Marangi +--- + include/linux/netdevice.h | 2 +- + net/batman-adv/hard-interface.c | 2 +- + net/wireless/Kconfig | 4 ++++ + 3 files changed, 6 insertions(+), 2 deletions(-) + +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -2168,7 +2168,7 @@ struct net_device { + #if IS_ENABLED(CONFIG_AX25) + void *ax25_ptr; + #endif +-#if IS_ENABLED(CONFIG_CFG80211) ++#if IS_ENABLED(CONFIG_CFG80211_HEADERS) + struct wireless_dev *ieee80211_ptr; + #endif + #if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN) +--- a/net/batman-adv/hard-interface.c ++++ b/net/batman-adv/hard-interface.c +@@ -308,7 +308,7 @@ static bool batadv_is_cfg80211_netdev(st + if (!net_device) + return false; + +-#if IS_ENABLED(CONFIG_CFG80211) ++#if IS_ENABLED(CONFIG_CFG80211_HEADERS) + /* cfg80211 drivers have to set ieee80211_ptr */ + if (net_device->ieee80211_ptr) + return true; +--- a/net/wireless/Kconfig ++++ b/net/wireless/Kconfig +@@ -26,6 +26,7 @@ config CFG80211 + # using a different algorithm, though right now they shouldn't + # (this is here rather than below to allow it to be a module) + select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS ++ select CFG80211_HEADERS + help + cfg80211 is the Linux wireless LAN (802.11) configuration API. + Enable this if you have a wireless device. +@@ -36,6 +37,9 @@ config CFG80211 + + When built as a module it will be called cfg80211. + ++config CFG80211_HEADERS ++ bool "cfg80211 - headers support" ++ + if CFG80211 + + config NL80211_TESTMODE diff --git a/6.6/target/linux/generic/pending-6.6/790-bus-mhi-core-add-SBL-state-callback.patch b/6.6/target/linux/generic/pending-6.6/790-bus-mhi-core-add-SBL-state-callback.patch new file mode 100644 index 000000000..874df43e7 --- /dev/null +++ b/6.6/target/linux/generic/pending-6.6/790-bus-mhi-core-add-SBL-state-callback.patch @@ -0,0 +1,48 @@ +From 5f7c5e1c0d7a79be144e5efc1f24728ddd7fc25c Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Sat, 5 Nov 2022 20:02:56 +0100 +Subject: [PATCH 1/2] bus: mhi: core: add SBL state callback + +Add support for SBL state callback in MHI core. + +It is required for ath11k MHI devices in order to be able to set QRTR +instance ID in the SBL state so that QRTR instance ID-s dont conflict in +case of multiple PCI/MHI cards or AHB + PCI/MHI card. +Setting QRTR instance ID is only possible in SBL state and there is +currently no way to ensure that we are in that state, so provide a +callback that the controller can trigger off. + +Signed-off-by: Robert Marko +--- + drivers/bus/mhi/host/main.c | 1 + + include/linux/mhi.h | 2 ++ + 2 files changed, 3 insertions(+) + +--- a/drivers/bus/mhi/host/main.c ++++ b/drivers/bus/mhi/host/main.c +@@ -900,6 +900,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ + switch (event) { + case MHI_EE_SBL: + st = DEV_ST_TRANSITION_SBL; ++ mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_SBL_MODE); + break; + case MHI_EE_WFW: + case MHI_EE_AMSS: +--- a/include/linux/mhi.h ++++ b/include/linux/mhi.h +@@ -34,6 +34,7 @@ struct mhi_buf_info; + * @MHI_CB_SYS_ERROR: MHI device entered error state (may recover) + * @MHI_CB_FATAL_ERROR: MHI device entered fatal error state + * @MHI_CB_BW_REQ: Received a bandwidth switch request from device ++ * @MHI_CB_EE_SBL_MODE: MHI device entered SBL mode + */ + enum mhi_callback { + MHI_CB_IDLE, +@@ -45,6 +46,7 @@ enum mhi_callback { + MHI_CB_SYS_ERROR, + MHI_CB_FATAL_ERROR, + MHI_CB_BW_REQ, ++ MHI_CB_EE_SBL_MODE, + }; + + /** diff --git a/6.6/target/linux/generic/pending-6.6/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch b/6.6/target/linux/generic/pending-6.6/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch new file mode 100644 index 000000000..478a2cb27 --- /dev/null +++ b/6.6/target/linux/generic/pending-6.6/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch @@ -0,0 +1,73 @@ +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Subject: [PATCH] bcma: get SoC device struct & copy its DMA params to the + subdevices +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +For bus devices to be fully usable it's required to set their DMA +parameters. + +For years it has been missing and remained unnoticed because of +mips_dma_alloc_coherent() silently handling the empty coherent_dma_mask. +Kernel 4.19 came with a lot of DMA changes and caused a regression on +the bcm47xx. Starting with the commit f8c55dc6e828 ("MIPS: use generic +dma noncoherent ops for simple noncoherent platforms") DMA coherent +allocations just fail. Example: +[ 1.114914] bgmac_bcma bcma0:2: Allocation of TX ring 0x200 failed +[ 1.121215] bgmac_bcma bcma0:2: Unable to alloc memory for DMA +[ 1.127626] bgmac_bcma: probe of bcma0:2 failed with error -12 +[ 1.133838] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded + +This change fixes above regression in addition to the MIPS bcm47xx +commit 321c46b91550 ("MIPS: BCM47XX: Setup struct device for the SoC"). + +It also fixes another *old* GPIO regression caused by a parent pointing +to the NULL: +[ 0.157054] missing gpiochip .dev parent pointer +[ 0.157287] bcma: bus0: Error registering GPIO driver: -22 +introduced by the commit 74f4e0cc6108 ("bcma: switch GPIO portions to +use GPIOLIB_IRQCHIP"). + +Fixes: f8c55dc6e828 ("MIPS: use generic dma noncoherent ops for simple noncoherent platforms") +Fixes: 74f4e0cc6108 ("bcma: switch GPIO portions to use GPIOLIB_IRQCHIP") +Cc: linux-mips@linux-mips.org +Cc: Christoph Hellwig +Cc: Linus Walleij +Signed-off-by: Rafał Miłecki +--- + +--- a/drivers/bcma/host_soc.c ++++ b/drivers/bcma/host_soc.c +@@ -191,6 +191,8 @@ int __init bcma_host_soc_init(struct bcm + struct bcma_bus *bus = &soc->bus; + int err; + ++ bus->dev = soc->dev; ++ + /* Scan bus and initialize it */ + err = bcma_bus_early_register(bus); + if (err) +--- a/drivers/bcma/main.c ++++ b/drivers/bcma/main.c +@@ -236,13 +236,17 @@ EXPORT_SYMBOL(bcma_core_irq); + + void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core) + { +- device_initialize(&core->dev); ++ struct device *dev = &core->dev; ++ ++ device_initialize(dev); + core->dev.release = bcma_release_core_dev; + core->dev.bus = &bcma_bus_type; +- dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); ++ dev_set_name(dev, "bcma%d:%d", bus->num, core->core_index); + core->dev.parent = bus->dev; +- if (bus->dev) ++ if (bus->dev) { + bcma_of_fill_device(bus->dev, core); ++ dma_coerce_mask_and_coherent(dev, bus->dev->coherent_dma_mask); ++ } + + switch (bus->hosttype) { + case BCMA_HOSTTYPE_PCI: diff --git a/build.sh b/build.sh index 08b8579d3..5bf69816c 100755 --- a/build.sh +++ b/build.sh @@ -752,24 +752,30 @@ if [ "$OMR_KERNEL" = "6.6" ]; then echo "# CONFIG_PACKAGE_kmod-meraki-mx100 is not set" >> ".config" echo "# CONFIG_PACKAGE_kmod-gpio-nct5104d is not set" >> ".config" echo "# CONFIG_PACKAGE_kmod-r8168 is not set" >> ".config" - echo "# CONFIG_PACKAGE_kmod-usb-net-rtl8152 is not set" >> ".config" - echo "# CONFIG_PACKAGE_kmod-usb-net-rtl8152-vendor is not set" >> ".config" - echo "# CONFIG_PACKAGE_r8152-firmware is not set" >> ".config" + #echo "# CONFIG_PACKAGE_kmod-usb-net-rtl8152 is not set" >> ".config" + #echo "# CONFIG_PACKAGE_kmod-usb-net-rtl8152-vendor is not set" >> ".config" + #echo "# CONFIG_PACKAGE_r8152-firmware is not set" >> ".config" echo "# CONFIG_PACKAGE_kmod-button-hotplug is not set" >> ".config" echo "# CONFIG_PACKAGE_kmod-cryptodev is not set" >> ".config" - echo "# CONFIG_PACKAGE_luci-proto-modemmanager is not set" >> ".config" - echo "# CONFIG_PACKAGE_modemmanager is not set" >> ".config" - echo "# CONFIG_PACKAGE_luci-proto-ppp is not set" >> ".config" - echo "# CONFIG_PACKAGE_luci-proto-ncm is not set" >> ".config" - echo "# CONFIG_PACKAGE_luci-proto-3g is not set" >> ".config" - echo "# CONFIG_PACKAGE_comgt is not set" >> ".config" - echo "# CONFIG_PACKAGE_comgt-ncm is not set" >> ".config" + #echo "# CONFIG_PACKAGE_luci-proto-modemmanager is not set" >> ".config" + #echo "# CONFIG_PACKAGE_modemmanager is not set" >> ".config" + #echo "# CONFIG_PACKAGE_luci-proto-ppp is not set" >> ".config" + #echo "# CONFIG_PACKAGE_luci-proto-ncm is not set" >> ".config" + #echo "# CONFIG_PACKAGE_luci-proto-3g is not set" >> ".config" + #echo "# CONFIG_PACKAGE_comgt is not set" >> ".config" + #echo "# CONFIG_PACKAGE_comgt-ncm is not set" >> ".config" # Remove for now packages that doesn't compile - rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/network/services/ppp - rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/kernel/mac80211 - rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/kernel/ath10k-ct + #rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/network/services/ppp + #rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/kernel/mac80211 + #rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/kernel/ath10k-ct rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/kernel/mt76 rm -rf ${OMR_TARGET}/${OMR_KERNEL}/source/package/kernel/rtl8812au-ct + # Remove not needed patches + rm -f package/kernel/mac80211/patches/build/200-Revert-wifi-iwlwifi-Use-generic-thermal_zone_get_tri.patch + rm -f package/kernel/mac80211/patches/build/210-revert-split-op.patch + rm -f package/kernel/mac80211/patches/subsys/301-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch + rm -f package/kernel/rtl8812au-ct/patches/099-cut-linkid-linux-version-code-conditionals.patch + rm -f package/kernel/rtl8812au-ct/patches/100-api_update.patch fi #rm -rf feeds/packages/libs/libwebp @@ -782,6 +788,7 @@ rm -rf feeds/${OMR_KERNEL}/luci/modules/luci-mod-network [ -d ${OMR_FEED}/iperf3 ] && rm -rf feeds/${OMR_KERNEL}/packages/net/iperf3 [ -d ${OMR_FEED}/golang ] && rm -rf feeds/${OMR_KERNEL}/packages/lang/golang [ -d ${OMR_FEED}/openvpn ] && rm -rf feeds/${OMR_KERNEL}/packages/net/openvpn +[ "$OMR_KERNEL" = "6.6" ] && [ -d ${OMR_FEED}/xtables-addons ] && rm -rf feeds/${OMR_KERNEL}/packages/net/xtables-addons echo "Add Occitan translation support" cd feeds/${OMR_KERNEL}