Update RTL8811CU driver to latest github source

This commit is contained in:
Vyacheslav Bocharov 2022-04-02 09:25:38 +03:00
parent dad2d913f1
commit 98ccbc9d26
No known key found for this signature in database
GPG Key ID: 476858332E6951A5
2 changed files with 1 additions and 74 deletions

View File

@ -426,7 +426,7 @@ compilation_prepare()
if linux-version compare "${version}" ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
# attach to specifics tag or branch
local rtl8811cuver="commit:ef3ff12118a75ea9ca1db8f4806bb0861e4fffef"
local rtl8811cuver="commit:de68bd50671ad8a5c09af97def3f2059b4a088aa"
display_alert "Adding" "Wireless drivers for Realtek RTL8811CU and RTL8821C chipsets ${rtl8811cuver}" "info"
@ -459,9 +459,6 @@ compilation_prepare()
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl8811cu\/Kconfig"' \
"$kerneldir/drivers/net/wireless/Kconfig"
# add support for K5.17+
process_patch_file "${SRC}/patch/misc/wireless-realtek-8811cu-5.17.patch" "applying"
fi

View File

@ -1,70 +0,0 @@
From 8b6faa20db3bc324824a9e4617c884c28d85ec0b Mon Sep 17 00:00:00 2001
From: Butterfly <gokhanlnx@gmail.com>
Date: Tue, 22 Mar 2022 16:16:53 +0300
Subject: [PATCH] Buildfix for Linux 5.17 (#1)
Buildfix for Linux 5.17
---
os_dep/linux/os_intfs.c | 8 ++++++++
os_dep/linux/rtw_proc.c | 2 ++
os_dep/osdep_service.c | 4 ++++
3 files changed, 14 insertions(+)
diff --git a/drivers/net/wireless/rtl8811cu/os_dep/linux/os_intfs.c b/drivers/net/wireless/rtl8811cu/os_dep/linux/os_intfs.c
index 257c581..248d4f7 100644
--- a/drivers/net/wireless/rtl8811cu/os_dep/linux/os_intfs.c
+++ b/drivers/net/wireless/rtl8811cu/os_dep/linux/os_intfs.c
@@ -1216,7 +1216,11 @@ static int rtw_net_set_mac_address(struct net_device *pnetdev, void *addr)
}
_rtw_memcpy(adapter_mac_addr(padapter), sa->sa_data, ETH_ALEN); /* set mac addr to adapter */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
+ eth_hw_addr_set(pnetdev, sa->sa_data);
+#else
_rtw_memcpy(pnetdev->dev_addr, sa->sa_data, ETH_ALEN); /* set mac addr to net_device */
+#endif
#if 0
if (rtw_is_hw_init_completed(padapter)) {
@@ -1653,7 +1657,11 @@ int rtw_os_ndev_register(_adapter *adapter, const char *name)
/* alloc netdev name */
rtw_init_netdev_name(ndev, name);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
+ eth_hw_addr_set(ndev, adapter_mac_addr(adapter));
+#else
_rtw_memcpy(ndev->dev_addr, adapter_mac_addr(adapter), ETH_ALEN);
+#endif
/* Tell the network stack we exist */
diff --git a/drivers/net/wireless/rtl8811cu/os_dep/linux/rtw_proc.c b/drivers/net/wireless/rtl8811cu/os_dep/linux/rtw_proc.c
index 370bd5a..e5e3cd3 100644
--- a/drivers/net/wireless/rtl8811cu/os_dep/linux/rtw_proc.c
+++ b/drivers/net/wireless/rtl8811cu/os_dep/linux/rtw_proc.c
@@ -37,6 +37,8 @@ inline struct proc_dir_entry *get_rtw_drv_proc(void)
#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
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
+#define PDE_DATA(inode) pde_data(inode)
#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24))
diff --git a/drivers/net/wireless/rtl8811cu/os_dep/osdep_service.c b/drivers/net/wireless/rtl8811cu/os_dep/osdep_service.c
index fea029e..d4a01c8 100644
--- a/drivers/net/wireless/rtl8811cu/os_dep/osdep_service.c
+++ b/drivers/net/wireless/rtl8811cu/os_dep/osdep_service.c
@@ -1294,8 +1294,12 @@ u32 _rtw_down_sema(_sema *sema)
inline void thread_exit(_completion *comp)
{
#ifdef PLATFORM_LINUX
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
+ kthread_complete_and_exit(comp, 0);
+#else
complete_and_exit(comp, 0);
#endif
+#endif
#ifdef PLATFORM_FREEBSD
printf("%s", "RTKTHREAD_exit");