mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 02:29:01 +00:00
210c534ce2
This commit moves the patches for the r8152.c driver to the generic directory. Previously they were only available on the bcm27xx target. With these patches the Realtek RTL8153C, RTL8153D, RTL8156A and RTL8156B chips are supported on all targets by the kmod-usb-net-rtl8152 module. The RTL8156A and RTL8156B are the 2.5Gb/s Ethernet adapters. The patches have been tested on TP-Link UE300 (RTL8153A) and UNITEK 1313B (RTL8156B). Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
52 lines
1.3 KiB
Diff
52 lines
1.3 KiB
Diff
From e78b75f5be204a0a235da995d01c778dc282bb42 Mon Sep 17 00:00:00 2001
|
|
From: Hayes Wang <hayeswang@realtek.com>
|
|
Date: Fri, 19 Feb 2021 17:04:41 +0800
|
|
Subject: [PATCH] r8152: check if the pointer of the function exists
|
|
|
|
commit c79515e47935c747282c6ed2ee5b2ef039756eeb upstream.
|
|
|
|
Return error code if autosuspend_en, eee_get, or eee_set don't exist.
|
|
|
|
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/usb/r8152.c | 13 +++++++++++++
|
|
1 file changed, 13 insertions(+)
|
|
|
|
--- a/drivers/net/usb/r8152.c
|
|
+++ b/drivers/net/usb/r8152.c
|
|
@@ -5758,6 +5758,9 @@ static int rtl8152_runtime_suspend(struc
|
|
struct net_device *netdev = tp->netdev;
|
|
int ret = 0;
|
|
|
|
+ if (!tp->rtl_ops.autosuspend_en)
|
|
+ return -EBUSY;
|
|
+
|
|
set_bit(SELECTIVE_SUSPEND, &tp->flags);
|
|
smp_mb__after_atomic();
|
|
|
|
@@ -6157,6 +6160,11 @@ rtl_ethtool_get_eee(struct net_device *n
|
|
struct r8152 *tp = netdev_priv(net);
|
|
int ret;
|
|
|
|
+ if (!tp->rtl_ops.eee_get) {
|
|
+ ret = -EOPNOTSUPP;
|
|
+ goto out;
|
|
+ }
|
|
+
|
|
ret = usb_autopm_get_interface(tp->intf);
|
|
if (ret < 0)
|
|
goto out;
|
|
@@ -6179,6 +6187,11 @@ rtl_ethtool_set_eee(struct net_device *n
|
|
struct r8152 *tp = netdev_priv(net);
|
|
int ret;
|
|
|
|
+ if (!tp->rtl_ops.eee_set) {
|
|
+ ret = -EOPNOTSUPP;
|
|
+ goto out;
|
|
+ }
|
|
+
|
|
ret = usb_autopm_get_interface(tp->intf);
|
|
if (ret < 0)
|
|
goto out;
|