1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter.git synced 2025-03-09 15:40:20 +00:00

Some changes for 6.6 kernel

This commit is contained in:
Ycarus (Yannick Chabanois) 2023-10-23 14:39:05 +02:00
parent 7e3973ef27
commit de82a0353d
20 changed files with 657 additions and 635 deletions

View file

@ -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 <net/genetlink.h>
#include <linux/version.h>
+#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

View file

@ -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 <greearb@candelatech.com>
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))

View file

@ -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 <drv_conf.h>
#include <basic_types.h>
#include <osdep_service.h>
-#include <rtw_byteorder.h>
+#include <asm/byteorder.h>
#include <wlan_bssdef.h>
#include <wifi.h>
#include <ieee80211.h>

View file

@ -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,
}
};

View file

@ -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,

View file

@ -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));

View file

@ -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;

View file

@ -1,25 +0,0 @@
From e8f10b21abd8ae440632f561f8b65f37b4b55cc8 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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;

View file

@ -1,72 +0,0 @@
From dc4024894c9deefc56f8dd6b2d2822b277f268a5 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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)) {

View file

@ -1,93 +0,0 @@
From 5f3bb5602615894cda88ca1b44fdfafdfb01c8c8 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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;

View file

@ -1,56 +0,0 @@
From 51ab9d6a959de87206731f941b1df39e5c5d63ea Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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())

View file

@ -1,26 +0,0 @@
From f455198acaa71c2963746a6b17c878c7d1d0e331 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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

View file

@ -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;

View file

@ -0,0 +1,210 @@
From da3c50704f14132f4adf80d48e9a4cd5d46e54c9 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Fri, 7 Jul 2017 17:09:21 +0200
Subject: kconfig: owrt specifc dependencies
Signed-off-by: John Crispin <john@phrozen.org>
---
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

View file

@ -0,0 +1,187 @@
From e4d708702e6c98f2111e33201a264d6788564cb2 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
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,

View file

@ -0,0 +1,29 @@
From: Felix Fietkau <nbd@nbd.name>
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 <nbd@nbd.name>
---
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -203,6 +203,8 @@ void ftrace_likely_update(struct ftrace_
__v; \
})
+#include <asm/rwonce.h>
+
#endif /* __KERNEL__ */
/*
@@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const
*/
#define prevent_tail_call_optimization() mb()
-#include <asm/rwonce.h>
-
#endif /* __LINUX_COMPILER_H */

View file

@ -0,0 +1,59 @@
From 686c603f67ae87bf21a61b5e4b1564443f41c3ee Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
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 <ansuelsmth@gmail.com>
---
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

View file

@ -0,0 +1,48 @@
From 5f7c5e1c0d7a79be144e5efc1f24728ddd7fc25c Mon Sep 17 00:00:00 2001
From: Robert Marko <robimarko@gmail.com>
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 <robimarko@gmail.com>
---
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,
};
/**

View file

@ -0,0 +1,73 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
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 <hch@lst.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
--- 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:

View file

@ -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}