Skip to content

Commit a9052db

Browse files
committed
Update to v2.17.0
1 parent 20f0561 commit a9052db

File tree

5 files changed

+2754
-1170
lines changed

5 files changed

+2754
-1170
lines changed

50-usb-realtek-net.rules

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,42 @@ SUBSYSTEM!="usb", GOTO="usb_realtek_net_end"
55
ENV{DEVTYPE}!="usb_device", GOTO="usb_realtek_net_end"
66

77
# Modify this to change the default value
8-
ENV{REALTEK_NIC_MODE}="1"
8+
ENV{REALTEK_MODE1}="1"
9+
ENV{REALTEK_MODE2}="3"
910

1011
# Realtek
11-
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
12-
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8155", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
13-
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8153", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
14-
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8152", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
12+
ATTR{idVendor}=="0bda", ATTR{idProduct}=="815[2,3,5,6]", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
13+
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8053", ATTR{bcdDevice}=="e???", ATTR{bConfigurationValue}!="$env{REALTEK_MODE2}", ATTR{bConfigurationValue}="$env{REALTEK_MODE2}"
1514

1615
# Samsung
17-
ATTR{idVendor}=="04e8", ATTR{idProduct}=="a101", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
16+
ATTR{idVendor}=="04e8", ATTR{idProduct}=="a101", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
1817

1918
# Lenovo
20-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="304f", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
21-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3052", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
22-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3054", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
23-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3057", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
24-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3062", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
25-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3069", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
26-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3082", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
27-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3098", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
28-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="7205", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
29-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720a", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
30-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720b", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
31-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720c", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
32-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="7214", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
33-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="721e", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
34-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="8153", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
35-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="a359", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
36-
ATTR{idVendor}=="17ef", ATTR{idProduct}=="a387", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
19+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="304f", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
20+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3052", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
21+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3054", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
22+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3057", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
23+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3062", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
24+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3069", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
25+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3082", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
26+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="3098", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
27+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="7205", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
28+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720a", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
29+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720b", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
30+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="720c", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
31+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="7214", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
32+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="721e", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
33+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="8153", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
34+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="a359", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
35+
ATTR{idVendor}=="17ef", ATTR{idProduct}=="a387", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
3736

3837
# TP-LINK
39-
ATTR{idVendor}=="2357", ATTR{idProduct}=="0601", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
38+
ATTR{idVendor}=="2357", ATTR{idProduct}=="0601", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
4039

4140
# Nvidia
42-
ATTR{idVendor}=="0955", ATTR{idProduct}=="09ff", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
41+
ATTR{idVendor}=="0955", ATTR{idProduct}=="09ff", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
4342

4443
# LINKSYS
45-
ATTR{idVendor}=="13b1", ATTR{idProduct}=="0041", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
44+
ATTR{idVendor}=="13b1", ATTR{idProduct}=="0041", ATTR{bConfigurationValue}!="$env{REALTEK_MODE1}", ATTR{bConfigurationValue}="$env{REALTEK_MODE1}"
4645

4746
LABEL="usb_realtek_net_end"

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ clean:
3232

3333
.PHONY: install
3434
install:
35+
ifneq ($(shell lsmod | grep r8153_ecm),)
36+
rmmod r8153_ecm
37+
endif
3538
ifneq ($(shell lsmod | grep r8152),)
3639
rmmod r8152
3740
endif

compatibility.h

Lines changed: 99 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
#include <linux/init.h>
99
#include <linux/version.h>
1010
#include <linux/in.h>
11+
#include <linux/acpi.h>
12+
13+
#if defined(RTL8152_S5_WOL) && defined(CONFIG_PM)
14+
#include <linux/reboot.h>
15+
#endif /* defined(RTL8152_S5_WOL) && defined(CONFIG_PM) */
1116

1217
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
1318
#include <linux/mdio.h>
@@ -16,6 +21,43 @@
1621
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0) */
1722
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31) */
1823

24+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0)
25+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0)
26+
#define PHY_MAC_INTERRUPT PHY_IGNORE_INTERRUPT
27+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
28+
#ifdef CONFIG_PM
29+
#define pm_ptr(_ptr) (_ptr)
30+
#else
31+
#define pm_ptr(_ptr) NULL
32+
#endif
33+
34+
#define from_tasklet(var, callback_tasklet, tasklet_fieldname) \
35+
container_of((struct tasklet_struct *)callback_tasklet, typeof(*var), tasklet_fieldname)
36+
37+
#define tasklet_setup(t, fun) tasklet_init(t, fun, (unsigned long)t)
38+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0)
39+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0)
40+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0)
41+
/* Iterate through singly-linked GSO fragments of an skb. */
42+
#define skb_list_walk_safe(first, skb, next_skb) \
43+
for ((skb) = (first), (next_skb) = (skb) ? (skb)->next : NULL; (skb); \
44+
(skb) = (next_skb), (next_skb) = (skb) ? (skb)->next : NULL)
45+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0)
46+
#ifndef __has_attribute
47+
# define __has_attribute(x) 0
48+
#endif
49+
50+
#if __has_attribute(__fallthrough__)
51+
# define fallthrough __attribute__((__fallthrough__))
52+
#else
53+
# define fallthrough do {} while (0) /* fallthrough */
54+
#endif
55+
56+
#define MDIO_EEE_2_5GT 0x0001 /* 2.5GT EEE cap */
57+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0)
58+
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0)
59+
#define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080 /* Advertise 2.5GBASE-T */
60+
#define MDIO_AN_10GBT_STAT_LP2_5G 0x0020 /* LP is 2.5GBT capable */
1961
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0)
2062
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0)
2163
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
@@ -58,12 +100,21 @@
58100
#define BITS_PER_BYTE 8
59101
#define reinit_completion(x) ((x)->done = 0)
60102
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)
103+
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
104+
#define DEVICE_ATTR_RW(_name) \
105+
struct device_attribute dev_attr_##_name = __ATTR(_name, 0644, _name##_show, _name##_store)
106+
#define DEVICE_ATTR_RO(_name) \
107+
struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
61108
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
62109
#define NETIF_F_HW_VLAN_CTAG_RX NETIF_F_HW_VLAN_RX
63110
#define NETIF_F_HW_VLAN_CTAG_TX NETIF_F_HW_VLAN_TX
64111
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
65-
#define USB_DEVICE_INTERFACE_CLASS(vend, prod, iclass) \
66-
USB_DEVICE_AND_INTERFACE_INFO(vend, prod, iclass, 0xff, 0)
112+
#define USB_DEVICE_INTERFACE_CLASS(vend, prod, cl) \
113+
.match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
114+
USB_DEVICE_ID_MATCH_INT_CLASS, \
115+
.idVendor = (vend), \
116+
.idProduct = (prod), \
117+
.bInterfaceClass = (cl)
67118

68119
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
69120
#ifndef SPEED_UNKNOWN
@@ -462,6 +513,7 @@
462513
}
463514
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) */
464515
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
516+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) */
465517
static inline bool usb_device_no_sg_constraint(struct usb_device *udev)
466518
{
467519
return 0;
@@ -487,10 +539,21 @@
487539
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) */
488540
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0) */
489541
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) */
542+
static inline int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr)
543+
{
544+
return -EOPNOTSUPP;
545+
}
490546
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0) */
491547
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0) */
492548
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) */
493549
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0) */
550+
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,10) && \
551+
!(LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,217) && LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
552+
static inline void skb_mark_not_on_list(struct sk_buff *skb)
553+
{
554+
skb->next = NULL;
555+
}
556+
#endif
494557
static inline void linkmode_set_bit(int nr, volatile unsigned long *addr)
495558
{
496559
__set_bit(nr, addr);
@@ -515,8 +578,41 @@
515578
else
516579
linkmode_clear_bit(nr, addr);
517580
}
518-
519581
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0) */
582+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0) */
583+
// static inline u16 pci_dev_id(struct pci_dev *dev)
584+
// {
585+
// return PCI_DEVID(dev->bus->number, dev->devfn);
586+
// }
587+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) */
588+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) */
589+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) */
590+
static inline void tcp_v6_gso_csum_prep(struct sk_buff *skb)
591+
{
592+
struct ipv6hdr *ipv6h = ipv6_hdr(skb);
593+
struct tcphdr *th = tcp_hdr(skb);
594+
595+
ipv6h->payload_len = 0;
596+
th->check = ~tcp_v6_check(0, &ipv6h->saddr, &ipv6h->daddr, 0);
597+
}
598+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0) */
599+
static inline void fsleep(unsigned long usecs)
600+
{
601+
if (usecs <= 10)
602+
udelay(usecs);
603+
else if (usecs <= 20000)
604+
usleep_range(usecs, 2 * usecs);
605+
else
606+
msleep(DIV_ROUND_UP(usecs, 1000));
607+
}
608+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0) */
609+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) */
610+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0) */
611+
static inline void eth_hw_addr_set(struct net_device *dev, const u8 *addr)
612+
{
613+
memcpy(dev->dev_addr, addr, 6);
614+
}
615+
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
520616

521617
#ifndef FALSE
522618
#define TRUE 1

dkms.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PACKAGE_NAME="r8152"
2-
PACKAGE_VERSION="2.14.0"
2+
PACKAGE_VERSION="2.17.0"
33
BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
44
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/ethernet/realtek"
55
AUTOINSTALL="YES"

0 commit comments

Comments
 (0)