[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220714120217.18635-1-lukasz.spintzyk@synaptics.com>
Date: Thu, 14 Jul 2022 14:02:16 +0200
From: Łukasz Spintzyk <lukasz.spintzyk@...aptics.com>
To: netdev@...r.kernel.org
Cc: linux-usb@...r.kernel.org, oliver@...kum.org, kuba@...nel.org,
ppd-posix@...aptics.com
Subject: [PATCH v2 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices
From: Dominik Czerwik <dominik.czerwik@...aptics.com>
This improves performance and stability of
DL-3xxx/DL-5xxx/DL-6xxx device series.
Specifically prevents device from temporary network dropouts when
playing video from the web and network traffic going through is high.
Signed-off-by: Bernice Chen <Bernice.Chen@...aptics.com>
Signed-off-by: Dominik Czerwik <dominik.czerwik@...aptics.com>
Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@...aptics.com>
---
v2: Added Bernice Chen as company lawyer.
drivers/net/usb/cdc_ncm.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index d55f59ce4a31..4594bf2982ee 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -2,6 +2,7 @@
* cdc_ncm.c
*
* Copyright (C) ST-Ericsson 2010-2012
+ * Copyright (C) 2022 Synaptics Incorporated. All rights reserved.
* Contact: Alexey Orishko <alexey.orishko@...ricsson.com>
* Original author: Hans Petter Selasky <hans.petter.selasky@...ricsson.com>
*
@@ -1904,6 +1905,19 @@ static const struct driver_info cdc_ncm_info = {
.set_rx_mode = usbnet_cdc_update_filter,
};
+/* Same as cdc_ncm_info, but with FLAG_SEND_ZLP */
+static const struct driver_info cdc_ncm_zlp_info = {
+ .description = "CDC NCM (SEND ZLP)",
+ .flags = FLAG_POINTTOPOINT | FLAG_NO_SETINT | FLAG_MULTI_PACKET
+ | FLAG_LINK_INTR | FLAG_ETHER | FLAG_SEND_ZLP,
+ .bind = cdc_ncm_bind,
+ .unbind = cdc_ncm_unbind,
+ .manage_power = usbnet_manage_power,
+ .status = cdc_ncm_status,
+ .rx_fixup = cdc_ncm_rx_fixup,
+ .tx_fixup = cdc_ncm_tx_fixup,
+};
+
/* Same as cdc_ncm_info, but with FLAG_WWAN */
static const struct driver_info wwan_info = {
.description = "Mobile Broadband Network Device",
@@ -2010,6 +2024,16 @@ static const struct usb_device_id cdc_devs[] = {
.driver_info = (unsigned long)&wwan_info,
},
+ /* DisplayLink docking stations */
+ { .match_flags = USB_DEVICE_ID_MATCH_INT_INFO
+ | USB_DEVICE_ID_MATCH_VENDOR,
+ .idVendor = 0x17e9,
+ .bInterfaceClass = USB_CLASS_COMM,
+ .bInterfaceSubClass = USB_CDC_SUBCLASS_NCM,
+ .bInterfaceProtocol = USB_CDC_PROTO_NONE,
+ .driver_info = (unsigned long)&cdc_ncm_zlp_info,
+ },
+
/* Generic CDC-NCM devices */
{ USB_INTERFACE_INFO(USB_CLASS_COMM,
USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),
--
2.36.1
Powered by blists - more mailing lists