mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-14 11:31:51 +00:00
Update r8152
This commit is contained in:
parent
d1760e0efb
commit
cb31c04475
3 changed files with 112 additions and 0 deletions
55
r8152/Makefile
Normal file
55
r8152/Makefile
Normal file
|
@ -0,0 +1,55 @@
|
|||
#
|
||||
# Download realtek r8152 linux driver from official site:
|
||||
# [https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-usb-3-0-software]
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=r8152
|
||||
PKG_VERSION:=2.16.3.20220914
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/wget/realtek-r8152-linux/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=61ed7af34c8882c6028ddd1a27bb78fb5bfba41211f84dd7a06e4dc84dbe9a9a
|
||||
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/realtek-$(PKG_NAME)-linux-$(PKG_VERSION)
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/usb-net-rtl8152-vendor
|
||||
VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
|
||||
TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
|
||||
SUBMENU:=USB Support
|
||||
DEPENDS:=+kmod-usb-net
|
||||
FILES:=$(PKG_BUILD_DIR)/r8152.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8152)
|
||||
CONFLICTS:=kmod-usb-net-rtl8152
|
||||
endef
|
||||
|
||||
define KernelPackage/usb-net-rtl8152-vendor/description
|
||||
Kernel module for Realtek RTL8152/RTL8153 Based USB Ethernet Adapters
|
||||
endef
|
||||
|
||||
R8152_MAKEOPTS= -C $(PKG_BUILD_DIR) \
|
||||
PATH="$(TARGET_PATH)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
TARGET="$(HAL_TARGET)" \
|
||||
TOOLPREFIX="$(KERNEL_CROSS)" \
|
||||
TOOLPATH="$(KERNEL_CROSS)" \
|
||||
KERNELPATH="$(LINUX_DIR)" \
|
||||
KERNELDIR="$(LINUX_DIR)" \
|
||||
LDOPTS=" " \
|
||||
DOMULTI=1
|
||||
|
||||
define Build/Compile
|
||||
+$(MAKE) $(PKG_JOBS) $(R8152_MAKEOPTS) modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,usb-net-rtl8152-vendor))
|
19
r8152/patches/010-5.19-support.patch
Normal file
19
r8152/patches/010-5.19-support.patch
Normal file
|
@ -0,0 +1,19 @@
|
|||
--- a/r8152.c
|
||||
+++ b/r8152.c
|
||||
@@ -1026,6 +1026,16 @@
|
||||
#define RTL_ADVERTISED_1000_FULL BIT(5)
|
||||
#define RTL_ADVERTISED_2500_FULL BIT(6)
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0)
|
||||
+static inline void netif_set_gso_max_size(struct net_device *dev,
|
||||
+ unsigned int size)
|
||||
+{
|
||||
+ /* dev->gso_max_size is read locklessly from sk_setup_caps() */
|
||||
+ WRITE_ONCE(dev->gso_max_size, size);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
|
||||
* The RTL chips use a 64 element hash table based on the Ethernet CRC.
|
||||
*/
|
38
r8152/patches/020-6.1-support.patch
Normal file
38
r8152/patches/020-6.1-support.patch
Normal file
|
@ -0,0 +1,38 @@
|
|||
--- a/compatibility.h
|
||||
+++ b/compatibility.h
|
||||
@@ -237,9 +237,15 @@
|
||||
#define napi_disable(napi_ptr) netif_poll_disable(container_of(napi_ptr, struct r8152, napi)->netdev)
|
||||
#define napi_schedule(napi_ptr) netif_rx_schedule(container_of(napi_ptr, struct r8152, napi)->netdev)
|
||||
#define napi_complete(napi_ptr) netif_rx_complete(container_of(napi_ptr, struct r8152, napi)->netdev)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
|
||||
+ #define netif_napi_add_weight(ndev, napi_ptr, function, weight_t) \
|
||||
+ ndev->poll = function; \
|
||||
+ ndev->weight = weight_t;
|
||||
+#else
|
||||
#define netif_napi_add(ndev, napi_ptr, function, weight_t) \
|
||||
ndev->poll = function; \
|
||||
ndev->weight = weight_t;
|
||||
+#endif
|
||||
typedef unsigned long uintptr_t;
|
||||
#define DMA_BIT_MASK(value) \
|
||||
(value < 64 ? ((1ULL << value) - 1) : 0xFFFFFFFFFFFFFFFFULL)
|
||||
--- a/r8152.c
|
||||
+++ b/r8152.c
|
||||
@@ -20718,10 +20718,17 @@
|
||||
|
||||
usb_set_intfdata(intf, tp);
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
|
||||
+ if (tp->support_2500full)
|
||||
+ netif_napi_add_weight(netdev, &tp->napi, r8152_poll, 256);
|
||||
+ else
|
||||
+ netif_napi_add_weight(netdev, &tp->napi, r8152_poll, 64);
|
||||
+#else
|
||||
if (tp->support_2500full)
|
||||
netif_napi_add(netdev, &tp->napi, r8152_poll, 256);
|
||||
else
|
||||
netif_napi_add(netdev, &tp->napi, r8152_poll, 64);
|
||||
+#endif
|
||||
|
||||
ret = register_netdev(netdev);
|
||||
if (ret != 0) {
|
Loading…
Reference in a new issue