mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
34d2964554
Fixes issues with RTL8156 2.5G USB adapters - # ethtool eth1 Settings for eth1: Supported ports: [ ] Supported link modes: Not reported Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 2500Mb/s Duplex: Half Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: off MDI-X: Unknown Current message level: 0x00000007 (7) drv probe link Link detected: yes - # - r8152: break the loop when the budget is exhausted - r8152: Block future register access if register access fails - r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE - r8152: add vendor/device ID pair for D-Link DUB-E250 - r8152: try to use a normal budget - r8152: set bp in bulk - r8152: adjust generic_ocp_write function - r8152: fix the autosuspend doesn't work - r8152: Add __GFP_NOWARN to big allocations - r8152: reduce the control transfer of rtl8152_get_version() - r8152: remove rtl_vendor_mode function - r8152: avoid to change cfg for all devices - r8152: add USB device driver for config selection - r8152: use napi_gro_frags - cdc_ether: no need to blacklist any r8152 devices - cdc_ether: add u-blox 0x1313 composition Build system: x86_64 Build-tested: bcm2711, rockchip, x86/64 Run-tested: bcm2711/RPi4B, rockchip/nanopi r2s, x86/64 Signed-off-by: Marty Jones <mj8263788@gmail.com>
448 lines
12 KiB
Diff
448 lines
12 KiB
Diff
From 715f67f33af45ce2cc3a5b1ef133cc8c8e7787b0 Mon Sep 17 00:00:00 2001
|
|
From: Douglas Anderson <dianders@chromium.org>
|
|
Date: Fri, 20 Oct 2023 14:06:58 -0700
|
|
Subject: [PATCH] r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE
|
|
|
|
Whenever the RTL8152_UNPLUG is set that just tells the driver that all
|
|
accesses will fail and we should just immediately bail. A future patch
|
|
will use this same concept at a time when the driver hasn't actually
|
|
been unplugged but is about to be reset. Rename the flag in
|
|
preparation for the future patch.
|
|
|
|
This is a no-op change and just a search and replace.
|
|
|
|
Signed-off-by: Douglas Anderson <dianders@chromium.org>
|
|
Reviewed-by: Grant Grundler <grundler@chromium.org>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/usb/r8152.c | 96 ++++++++++++++++++++---------------------
|
|
1 file changed, 48 insertions(+), 48 deletions(-)
|
|
|
|
--- a/drivers/net/usb/r8152.c
|
|
+++ b/drivers/net/usb/r8152.c
|
|
@@ -763,7 +763,7 @@ enum rtl_register_content {
|
|
|
|
/* rtl8152 flags */
|
|
enum rtl8152_flags {
|
|
- RTL8152_UNPLUG = 0,
|
|
+ RTL8152_INACCESSIBLE = 0,
|
|
RTL8152_SET_RX_MODE,
|
|
WORK_ENABLE,
|
|
RTL8152_LINK_CHG,
|
|
@@ -1244,7 +1244,7 @@ int set_registers(struct r8152 *tp, u16
|
|
static void rtl_set_unplug(struct r8152 *tp)
|
|
{
|
|
if (tp->udev->state == USB_STATE_NOTATTACHED) {
|
|
- set_bit(RTL8152_UNPLUG, &tp->flags);
|
|
+ set_bit(RTL8152_INACCESSIBLE, &tp->flags);
|
|
smp_mb__after_atomic();
|
|
}
|
|
}
|
|
@@ -1255,7 +1255,7 @@ static int generic_ocp_read(struct r8152
|
|
u16 limit = 64;
|
|
int ret = 0;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
/* both size and indix must be 4 bytes align */
|
|
@@ -1299,7 +1299,7 @@ static int generic_ocp_write(struct r815
|
|
u16 byteen_start, byteen_end, byen;
|
|
u16 limit = 512;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
/* both size and indix must be 4 bytes align */
|
|
@@ -1536,7 +1536,7 @@ static int read_mii_word(struct net_devi
|
|
struct r8152 *tp = netdev_priv(netdev);
|
|
int ret;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
if (phy_id != R8152_PHY_ID)
|
|
@@ -1552,7 +1552,7 @@ void write_mii_word(struct net_device *n
|
|
{
|
|
struct r8152 *tp = netdev_priv(netdev);
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
if (phy_id != R8152_PHY_ID)
|
|
@@ -1757,7 +1757,7 @@ static void read_bulk_callback(struct ur
|
|
if (!tp)
|
|
return;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
if (!test_bit(WORK_ENABLE, &tp->flags))
|
|
@@ -1849,7 +1849,7 @@ static void write_bulk_callback(struct u
|
|
if (!test_bit(WORK_ENABLE, &tp->flags))
|
|
return;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
if (!skb_queue_empty(&tp->tx_queue))
|
|
@@ -1870,7 +1870,7 @@ static void intr_callback(struct urb *ur
|
|
if (!test_bit(WORK_ENABLE, &tp->flags))
|
|
return;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
switch (status) {
|
|
@@ -2614,7 +2614,7 @@ static void bottom_half(struct tasklet_s
|
|
{
|
|
struct r8152 *tp = from_tasklet(tp, t, tx_tl);
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
if (!test_bit(WORK_ENABLE, &tp->flags))
|
|
@@ -2657,7 +2657,7 @@ int r8152_submit_rx(struct r8152 *tp, st
|
|
int ret;
|
|
|
|
/* The rx would be stopped, so skip submitting */
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags) ||
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags) ||
|
|
!test_bit(WORK_ENABLE, &tp->flags) || !netif_carrier_ok(tp->netdev))
|
|
return 0;
|
|
|
|
@@ -3057,7 +3057,7 @@ static int rtl_enable(struct r8152 *tp)
|
|
|
|
static int rtl8152_enable(struct r8152 *tp)
|
|
{
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
set_tx_qlen(tp);
|
|
@@ -3144,7 +3144,7 @@ static int rtl8153_enable(struct r8152 *
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
set_tx_qlen(tp);
|
|
@@ -3176,7 +3176,7 @@ static void rtl_disable(struct r8152 *tp
|
|
u32 ocp_data;
|
|
int i;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
|
|
rtl_drop_queued_tx(tp);
|
|
return;
|
|
}
|
|
@@ -3630,7 +3630,7 @@ static u16 r8153_phy_status(struct r8152
|
|
}
|
|
|
|
msleep(20);
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
break;
|
|
}
|
|
|
|
@@ -3662,7 +3662,7 @@ static void r8153b_ups_en(struct r8152 *
|
|
int i;
|
|
|
|
for (i = 0; i < 500; i++) {
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) &
|
|
AUTOLOAD_DONE)
|
|
@@ -3704,7 +3704,7 @@ static void r8153c_ups_en(struct r8152 *
|
|
int i;
|
|
|
|
for (i = 0; i < 500; i++) {
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) &
|
|
AUTOLOAD_DONE)
|
|
@@ -4049,8 +4049,8 @@ static int rtl_phy_patch_request(struct
|
|
for (i = 0; wait && i < 5000; i++) {
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
- break;
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
+ return -ENODEV;
|
|
|
|
usleep_range(1000, 2000);
|
|
ocp_data = ocp_reg_read(tp, OCP_PHY_PATCH_STAT);
|
|
@@ -6008,7 +6008,7 @@ static int rtl8156_enable(struct r8152 *
|
|
u32 ocp_data;
|
|
u16 speed;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
r8156_fc_parameter(tp);
|
|
@@ -6066,7 +6066,7 @@ static int rtl8156b_enable(struct r8152
|
|
u32 ocp_data;
|
|
u16 speed;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
set_tx_qlen(tp);
|
|
@@ -6252,7 +6252,7 @@ out:
|
|
|
|
static void rtl8152_up(struct r8152 *tp)
|
|
{
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8152_aldps_en(tp, false);
|
|
@@ -6262,7 +6262,7 @@ static void rtl8152_up(struct r8152 *tp)
|
|
|
|
static void rtl8152_down(struct r8152 *tp)
|
|
{
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
|
|
rtl_drop_queued_tx(tp);
|
|
return;
|
|
}
|
|
@@ -6277,7 +6277,7 @@ static void rtl8153_up(struct r8152 *tp)
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153_u1u2en(tp, false);
|
|
@@ -6317,7 +6317,7 @@ static void rtl8153_down(struct r8152 *t
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
|
|
rtl_drop_queued_tx(tp);
|
|
return;
|
|
}
|
|
@@ -6338,7 +6338,7 @@ static void rtl8153b_up(struct r8152 *tp
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153b_u1u2en(tp, false);
|
|
@@ -6362,7 +6362,7 @@ static void rtl8153b_down(struct r8152 *
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
|
|
rtl_drop_queued_tx(tp);
|
|
return;
|
|
}
|
|
@@ -6399,7 +6399,7 @@ static void rtl8153c_up(struct r8152 *tp
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153b_u1u2en(tp, false);
|
|
@@ -6480,7 +6480,7 @@ static void rtl8156_up(struct r8152 *tp)
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153b_u1u2en(tp, false);
|
|
@@ -6553,7 +6553,7 @@ static void rtl8156_down(struct r8152 *t
|
|
{
|
|
u32 ocp_data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags)) {
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
|
|
rtl_drop_queued_tx(tp);
|
|
return;
|
|
}
|
|
@@ -6691,7 +6691,7 @@ static void rtl_work_func_t(struct work_
|
|
/* If the device is unplugged or !netif_running(), the workqueue
|
|
* doesn't need to wake the device, and could return directly.
|
|
*/
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags) || !netif_running(tp->netdev))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags) || !netif_running(tp->netdev))
|
|
return;
|
|
|
|
if (usb_autopm_get_interface(tp->intf) < 0)
|
|
@@ -6730,7 +6730,7 @@ static void rtl_hw_phy_work_func_t(struc
|
|
{
|
|
struct r8152 *tp = container_of(work, struct r8152, hw_phy_work.work);
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
if (usb_autopm_get_interface(tp->intf) < 0)
|
|
@@ -6857,7 +6857,7 @@ static int rtl8152_close(struct net_devi
|
|
netif_stop_queue(netdev);
|
|
|
|
res = usb_autopm_get_interface(tp->intf);
|
|
- if (res < 0 || test_bit(RTL8152_UNPLUG, &tp->flags)) {
|
|
+ if (res < 0 || test_bit(RTL8152_INACCESSIBLE, &tp->flags)) {
|
|
rtl_drop_queued_tx(tp);
|
|
rtl_stop_rx(tp);
|
|
} else {
|
|
@@ -6890,7 +6890,7 @@ static void r8152b_init(struct r8152 *tp
|
|
u32 ocp_data;
|
|
u16 data;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
data = r8152_mdio_read(tp, MII_BMCR);
|
|
@@ -6934,7 +6934,7 @@ static void r8153_init(struct r8152 *tp)
|
|
u16 data;
|
|
int i;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153_u1u2en(tp, false);
|
|
@@ -6945,7 +6945,7 @@ static void r8153_init(struct r8152 *tp)
|
|
break;
|
|
|
|
msleep(20);
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
break;
|
|
}
|
|
|
|
@@ -7074,7 +7074,7 @@ static void r8153b_init(struct r8152 *tp
|
|
u16 data;
|
|
int i;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153b_u1u2en(tp, false);
|
|
@@ -7085,7 +7085,7 @@ static void r8153b_init(struct r8152 *tp
|
|
break;
|
|
|
|
msleep(20);
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
break;
|
|
}
|
|
|
|
@@ -7156,7 +7156,7 @@ static void r8153c_init(struct r8152 *tp
|
|
u16 data;
|
|
int i;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153b_u1u2en(tp, false);
|
|
@@ -7176,7 +7176,7 @@ static void r8153c_init(struct r8152 *tp
|
|
break;
|
|
|
|
msleep(20);
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
}
|
|
|
|
@@ -8005,7 +8005,7 @@ static void r8156_init(struct r8152 *tp)
|
|
u16 data;
|
|
int i;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_ECM_OP);
|
|
@@ -8026,7 +8026,7 @@ static void r8156_init(struct r8152 *tp)
|
|
break;
|
|
|
|
msleep(20);
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
}
|
|
|
|
@@ -8101,7 +8101,7 @@ static void r8156b_init(struct r8152 *tp
|
|
u16 data;
|
|
int i;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_ECM_OP);
|
|
@@ -8135,7 +8135,7 @@ static void r8156b_init(struct r8152 *tp
|
|
break;
|
|
|
|
msleep(20);
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
}
|
|
|
|
@@ -9164,7 +9164,7 @@ static int rtl8152_ioctl(struct net_devi
|
|
struct mii_ioctl_data *data = if_mii(rq);
|
|
int res;
|
|
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return -ENODEV;
|
|
|
|
res = usb_autopm_get_interface(tp->intf);
|
|
@@ -9266,7 +9266,7 @@ static const struct net_device_ops rtl81
|
|
|
|
static void rtl8152_unload(struct r8152 *tp)
|
|
{
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
if (tp->version != RTL_VER_01)
|
|
@@ -9275,7 +9275,7 @@ static void rtl8152_unload(struct r8152
|
|
|
|
static void rtl8153_unload(struct r8152 *tp)
|
|
{
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153_power_cut_en(tp, false);
|
|
@@ -9283,7 +9283,7 @@ static void rtl8153_unload(struct r8152
|
|
|
|
static void rtl8153b_unload(struct r8152 *tp)
|
|
{
|
|
- if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
|
+ if (test_bit(RTL8152_INACCESSIBLE, &tp->flags))
|
|
return;
|
|
|
|
r8153b_power_cut_en(tp, false);
|