From patchwork Thu Jul 14 12:02:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?=C5=81ukasz_Spintzyk?= X-Patchwork-Id: 12917760 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0FF4C433EF for ; Thu, 14 Jul 2022 12:02:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237751AbiGNMCl (ORCPT ); Thu, 14 Jul 2022 08:02:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229801AbiGNMCj (ORCPT ); Thu, 14 Jul 2022 08:02:39 -0400 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2047.outbound.protection.outlook.com [40.107.93.47]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9499C39B84; Thu, 14 Jul 2022 05:02:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f8gvuMnh2iXs+8z9HFFk9P5thEyYyoMZ8ZnEMBOjoerK+sLIyI1BSzQOkcXDuIVootnf6PkaazT3PPeM2J8o4JpW9uHN25I6e5qu/A23rSjyt5/yJYBe+pMmr3QYVnUtnMQdcOY2Znyl5XVIvSTWXTLvi3ZWdV/mx2GdAFmeMHdpW62K/OzRKmRyqdhh+uqVVcsFyvYIRF3M4eorRtfQeefaM6hud67KcGLieZjdn9ZUq2JnqOKBDNpw3e2pAMu1d7JpW0GJVJxGucoHH9QmLDKtgnTpKDBAoKDfk8uA2SG/xjzWnSbq9grYDyCqrw3g26J+23gfMHGdHxox9VNiSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qLTOReH/PVP6RGVYpobmm3Iz4GGuGvWeB9KNrtkkHL0=; b=f1oYLx1oOm6pGWOOMYFWJiEyTuBH8WPz2Y1XFsOOcL10R/vISANdG8vCmeMhrb7Ovt0K1bto+JEGPRqr5nEjDwlW8P79RkrbBLwgIRGYXyuMS360K/41W8lbf+AWT4Ehk7Qk5LnLtAbpwSaRyIEfHVQ7lQndmLwZF4lTlfvxYDNEIo4sEttlvGHBa+v/HXIhLMrac+LrCHb14Wz/SFZGzlJrn1f3sunxsbbAlozHozRCGpBW7mwK7gm9LV0F797DMNndcVhLpzLpaJMatzBbJDjSb27mv8esREB0/AuUhKz1Hc1eRko6Nvfc4ELlkUpg6JrlvTM0TJDWqHDo7SYKRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synaptics.com; dmarc=pass action=none header.from=synaptics.com; dkim=pass header.d=synaptics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Synaptics.onmicrosoft.com; s=selector2-Synaptics-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qLTOReH/PVP6RGVYpobmm3Iz4GGuGvWeB9KNrtkkHL0=; b=UVXgOamp+EkoktL3AkcbXpTn+9qcvhRBI/txuXolrPrKqpVnP752mrovRQECoJUI9cQqriPqN1fe+Fha45txey0cyIlnWtBlYdTcqnqdWojANWjx1PSxl+c/YE5bIT4RJQ3ghp/On/Ce19raa9lscyexrUbZEliN33jjWZ3AV14= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=synaptics.com; Received: from SJ0PR03MB6533.namprd03.prod.outlook.com (2603:10b6:a03:386::12) by BN8PR03MB4915.namprd03.prod.outlook.com (2603:10b6:408:dc::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.12; Thu, 14 Jul 2022 12:02:36 +0000 Received: from SJ0PR03MB6533.namprd03.prod.outlook.com ([fe80::d52:5cb7:8c3b:f666]) by SJ0PR03MB6533.namprd03.prod.outlook.com ([fe80::d52:5cb7:8c3b:f666%6]) with mapi id 15.20.5417.026; Thu, 14 Jul 2022 12:02:36 +0000 From: =?utf-8?q?=C5=81ukasz_Spintzyk?= To: netdev@vger.kernel.org Cc: linux-usb@vger.kernel.org, oliver@neukum.org, kuba@kernel.org, ppd-posix@synaptics.com Subject: [PATCH v2 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices Date: Thu, 14 Jul 2022 14:02:16 +0200 Message-Id: <20220714120217.18635-1-lukasz.spintzyk@synaptics.com> X-Mailer: git-send-email 2.36.1 X-ClientProxiedBy: BE1P281CA0071.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:26::16) To SJ0PR03MB6533.namprd03.prod.outlook.com (2603:10b6:a03:386::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9d87dfbf-ab4d-4af8-42ed-08da6590bda1 X-MS-TrafficTypeDiagnostic: BN8PR03MB4915:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qJ7dG1BQLUdvz1j8jCyWQBuk24OH0bQWThpNij2eVkt4NVViWF50NSJc7KfSPHJLqFm+x1+SdJcy2CQf3zK3w+7iq5sRWH2ldIfNKgHTOTAtTQTA0F3Pz7l+/SaoFr7NGa5TXgU6Odh3Y1xK5VIgE2oq+lj77BuBRMhuqHWEesSgy+xUIH7R+14aXHzkU2obJg3x96pa1mxEfMS+0zzJlAB+ZC/zQojTT+/HDnW+iJhjrW3/5ZTLpn4hFf8reOiy8Z6DuQHBl+76JCIQPQTQC4VAqFo9pVkBudXTH4qNfBUO6USYGgu9+XhE+SRYsXAiu1Xl5hhNIaGMeZA/nVzGvkKhqXoZXQuMUmDXozEgUjeObV9niEHnaIxn0BQtP53Kjvz1SJOCphho6c4nB5+bgE4XiJuw0m8jm4VCwDBi665XmxNHggHrvtuIVoLHusy8j9GZEWb1tJqYrKPVp1OZ/3r8MT7+DhAYBpy5db2/Scs0/2Yj6lLrJMD7tFTW6ylxWgwFWCyisag+zQ+K8vldJE8Q2b6IR3WtTxIMGVMYKDDZGFXU+8KKpudMNGPHy4bEyAYfly137OLZXcmSj8qgOgT6fmx6z0Qf0bI+d45jJ5zRGiROgeO8pk4OZxn8n7PoMulrjiUevh4PZ+7MX/YKOk3eR3FWUNIBi6vWruoTbzqImrYuAoPHcNy/H20JGcBVQUBp4upSpW/LGQebBC4+05QPvPY5jaOjWWR4NWBHhOmLeDG4Txm6linyvljuibvb6HHoDUkN7TBKGnYwkMyTcerjskWjd/9aOAIXfrpTK7lhsrITMieT9zYLr+mlKj+A X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB6533.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(366004)(39850400004)(396003)(376002)(346002)(6916009)(6666004)(1076003)(6512007)(66476007)(19627235002)(41300700001)(316002)(2906002)(36756003)(8676002)(6486002)(66946007)(26005)(5660300002)(186003)(83380400001)(8936002)(478600001)(52116002)(107886003)(86362001)(2616005)(38350700002)(4326008)(6506007)(66556008)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?kaKw5iPRpKenFojUdlHzhbyDImBF?= =?utf-8?q?WGC8Fp/BHkjMR76xIlotHQsdof86h0zMQFe791lKesU6NNB7Qru1K3a2YPAjjCPz1?= =?utf-8?q?PBZdFJd9WaXAnTov/Hk/+1SWLjQzMxiEhqYCcbd3avg9VYRoGROz3bjAYiHvQ0qpc?= =?utf-8?q?9JvFv7u5wCdCtdSKTznhJCaneg1gLb+ypNjcoPybtE8z4Xv1p1b8MkvKUB4iB7+KO?= =?utf-8?q?+YeZmXPAfuu5f1qityPRWXfeXhPjJsYIBTArjriygpj5T8+rtPClhk+8uE5EnX3uy?= =?utf-8?q?JSr8rfyy8qcD/Rc0zvZfvXQRqUQXYpXbLDlFjPsIksQWagKZ9I6Nn8jkU6qs7LIFR?= =?utf-8?q?CKMWKqnBvyV6wZMLm3kuNZwmwxjeOJGa1V+DXOLzuJmmLVqyZg5Y5Ahx6ABK70cqC?= =?utf-8?q?Zd91cOOY7tCVLnhDO2suNAXPZop6W4C0v0F41wLreeVNmpQDAC/TdkI5JxogmPz0Z?= =?utf-8?q?jfISzWaVrqZtzQGK44TSI4bqZGH788CnePVwJKmQK9h637QcQYAHVhU8gdFazCl0y?= =?utf-8?q?dsZRy2QS/2ftz5tSi5jyewKjJAg8jlUsrRqQ4aPHcUj+D110CVU/1FHQ+QRTklB4n?= =?utf-8?q?pw7mB8iCD5KDVJH/m5j2rVwVetEihbBaJW8GNqxmysIBg/ze/6PsBzQMlJWuqTl8k?= =?utf-8?q?zph74afv5zwR6Xg1yWGVenmkZ6CqEiVgUZ7FXh3pGd41v70kbsmTGcen17mLNGf3U?= =?utf-8?q?pJWL+yQjMh4OvlK8POrGwjAxdh9LGvDeSxBmJKoMQ0zOIJNDlHQxrqCby5mJI0ZPY?= =?utf-8?q?zQaUtjrFWVXUzYRJcFJQrwUbyLh6Fv1L4qDp5Xkf73j0gvQrcG9WMR9AUI9igzAzS?= =?utf-8?q?wW65X+4dROt3/9yonZ3vOKLkps7l43DysePujpMyMIZ2fYjV3whqRa5Pqg8xLErCm?= =?utf-8?q?gXzQSjo8YnpIioJtQl0OY5nfuCdZeb/SdHzX6SiLBv/654X2JYwjpCZ1yPxYUroqi?= =?utf-8?q?Yed5R9GZHJLkQSIFSVOJV5zmbZrqQ2w9Vsty1c76DVbF+YKJCNw+AWyOqKRYtYNjI?= =?utf-8?q?4a18+O+Ssnz9x/d3iG9h2UwG8eYs6JGt+RxtTamoTxMxqRdaTUqXKzIUAglGtoy36?= =?utf-8?q?2BrGzxty5whkvcX1XaOYLJSjeYQJfYOIzJ8kBds9sNddkjojkRrjYpT7rDH+GkaLm?= =?utf-8?q?6YgldSJAJwVihu90EmXKB9AxEHXv1sHQzDAJ/YLYaBepNRDtQhE3OtKGGbCv1+Nl9?= =?utf-8?q?IhInDoS9TwI0yczY6GTbOshtvYg6telsHZEgzl26pdQ1lZMbQKBHnOZEcoAUJTD/u?= =?utf-8?q?ZVPO10C353QquFuJr7OJGN+7d5qlpCIYpBnC4DtvEv9mIDXGU+Wn20cd0OXki3MrV?= =?utf-8?q?Isad6ioiqdl8qne346pTtj29MITnT30IbQ1NEsLciw3birMRuTGNffR2PKUAoOH7g?= =?utf-8?q?yaL60l3ytW7iwAYCZeEkjsp+rJHKWnokvVKXjJ3Tw4uTgZ9gA+4QBFlCJ+nNFAeWo?= =?utf-8?q?uMxkmeKWe0nRahGKmEeUTwEShdTPY2MbByyxHM46wyu0ksOrTYHxLrEejMfGxsMxi?= =?utf-8?q?4KnsvBDY0HPO?= X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d87dfbf-ab4d-4af8-42ed-08da6590bda1 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB6533.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2022 12:02:35.8754 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335d1fbc-2124-4173-9863-17e7051a2a0e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3xeJDBrvntHD90rwLcfcTS3yOfcSqjMT7dqY2R/iPy65tHNohGw7eNE5y7rrfssMJM9b25cAbL3/JTot2zQ1WQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR03MB4915 Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org From: Dominik Czerwik 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 Signed-off-by: Dominik Czerwik Signed-off-by: Ɓukasz Spintzyk --- 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 * Original author: Hans Petter Selasky * @@ -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),