Message ID | 20210108202727.11728-2-leon@is.currently.online |
---|---|
State | New |
Headers | show |
Series | r8152: Add Lenovo Powered USB-C Travel Hub | expand |
On Fri, 8 Jan 2021 21:27:27 +0100 Leon Schuermann wrote: > This USB-C Hub (17ef:721e) based on the Realtek RTL8153B chip used to > work with the cdc_ether driver. When you say "used to work" do you mean there was a regression where the older kernels would work fine and newer don't? Or just "it works most of the time"? > However, using this driver, with the > system suspended the device sends pause-frames as soon as the receive > buffer fills up. This produced substantial network load, up to the > point where some Ethernet switches stopped processing packets > altogether. > > Using the Realtek driver (r8152) fixes this issue. Pause frames are no > longer sent while the host system is suspended. > > Signed-off-by: Leon Schuermann <leon@is.currently.online> > Tested-by: Leon Schuermann <leon@is.currently.online>
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c index 8c1d61c2cbac..6aaa0675c28a 100644 --- a/drivers/net/usb/cdc_ether.c +++ b/drivers/net/usb/cdc_ether.c @@ -793,6 +793,13 @@ static const struct usb_device_id products[] = { .driver_info = 0, }, +/* Lenovo Powered USB-C Travel Hub (4X90S92381, based on Realtek RTL8153) */ +{ + USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x721e, USB_CLASS_COMM, + USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), + .driver_info = 0, +}, + /* ThinkPad USB-C Dock Gen 2 (based on Realtek RTL8153) */ { USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0xa387, USB_CLASS_COMM, diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index c448d6089821..67cd6986634f 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -6877,6 +6877,7 @@ static const struct usb_device_id rtl8152_table[] = { {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7205)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x720c)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x7214)}, + {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x721e)}, {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0xa387)}, {REALTEK_USB_DEVICE(VENDOR_ID_LINKSYS, 0x0041)}, {REALTEK_USB_DEVICE(VENDOR_ID_NVIDIA, 0x09ff)},