From patchwork Mon Jul 18 12:36:17 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: 591629 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 8887FC43334 for ; Mon, 18 Jul 2022 12:36:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234573AbiGRMgk (ORCPT ); Mon, 18 Jul 2022 08:36:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56030 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234537AbiGRMgj (ORCPT ); Mon, 18 Jul 2022 08:36:39 -0400 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2087.outbound.protection.outlook.com [40.107.223.87]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8ED3E0DC; Mon, 18 Jul 2022 05:36:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kU00M/HfGiP1yqslaH3a5jqMsNlAaNWUJhkj1MDviMnHhpF8P1tK0dqvcsm7jTckneMh7k/CAFSXP6xMg5XKgLPTvIchkMTxypQykWLAGexQ8Okx+0ga+AgW/y1zPyIDb8l05IPd3Ub3LjvoQGjedUTdSReEDM03F2BdfsjZpQjCIhRCfk/yTwb0gAYjjmkQCCcWyTJCVzPmvK1o4Kr1txg+WpJodNywuKeoGDteUEvjeA6eQ6oEW+PLAzkBNEX8Nqd50zP2TF9CS+99FvrQ3LHmjJMZlNGPKDBPC3Yeb7TCGdZuYT+MdS9O1OtMBBlqFKVTvynkReyV5Usc1/dfkg== 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=wIBA6SaIQDgiyX43ZMoL5ZRp1ZT0Wv8JGx7bz03IrU0=; b=MGzhEHqKvx+EDQ6i9bjEplA+OZGZEF6hn0BqCcSB6kvangGXBhKF7zLOfk7SXcGnCEPvd47fmmZ5ak4cMWwRvlKhtCmUE09smUMfaS6S2UIX4H0OVttEKQs2NCW6huq0znPnHBJpeeqqjfqgiNeevMYXtTBFb0CkQuwJRMww1ROZY2Bk01gzNBNFNnVi87qxnf+7emt6ukPI5NpBMUDbS8K/aff9F9BotzHQnnwBCXj1J+QAZ950PtL+CopDgnezzvvsW1IofyK5Br+ejCO22bKlHuJyxP3vHfSF4QNHa3aa99QlE2ObjnMWPKyLKYWgybFoRF7cRJBYQ/ZpQ05C/w== 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=wIBA6SaIQDgiyX43ZMoL5ZRp1ZT0Wv8JGx7bz03IrU0=; b=NbeTPfz7oc40lVD/7wka3R7UkxP86gDKtmb6CGAngEm4tjSOQAB6AqUUlPsLKzx8C15uqy9hm38uMnfDm5P4Rv8sgVlO3xudtOA37bQpZEUxEod2YeqXVgX6lNyxJEmmSvqWtYtC3qPFJ+dwPMAq7NBeTnhq1qRWd7FRmX/eFhU= 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 BN9PR03MB6171.namprd03.prod.outlook.com (2603:10b6:408:100::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.17; Mon, 18 Jul 2022 12:36: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%7]) with mapi id 15.20.5438.023; Mon, 18 Jul 2022 12:36:35 +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, Bernice.Chen@synaptics.com Subject: [PATCH v3 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices Date: Mon, 18 Jul 2022 14:36:17 +0200 Message-Id: <20220718123618.7410-1-lukasz.spintzyk@synaptics.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: References: X-ClientProxiedBy: BE1P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:15::12) 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: 952cc97e-ba51-4685-68c8-08da68ba2738 X-MS-TrafficTypeDiagnostic: BN9PR03MB6171:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9MqeVEQ65/ixowCjxpd6EcHQ1iupctc1+3flhRfyF27QxKQNB5OM2s/+Tf8Irjgskgt2sE/muqXW+a1EGlsrfkmFqmblbXs+mNOK9OSUBlFl4Ihn/3tQeQR87kvNxpCU7/e2yPBMI5XuCuXG8meSSj7xIqN3foKLXrH+YH6rsHpoVO/bAc59iA6IrZqGzhOLFdR53BCtbyzsj7s3rVlfVdsqI9DaIdtPaFkvdmqsDBtwyr3feojBKfRbN3nGO3Z9KkWi/IvJylf3dlHlpiaJkC4Y3tJMiWVrh1bM6yYKEMksbbm2Lszmm5fyPcMH76k7B2zPn348QL9XII6unuk/6prMmJKbnT6PRX7Ri7adjJoq0EbkX+Tgno09VJxDC72iE6rWRRgH7bleplQzI73UNQyVzMiSY8P1ZAL/UkoYlHquueBzpSK1aq26B5ANZtKnJCEICNgSZPgciiI7h5bfEvMKB3OS3slDb/25NZ0VhOIwkKU5FBsRatHkr37hj2w7dRH2kBS8Ly+EHV5nwGI3KqMAjw42Mb9F/wkKWXYlwMnbSr9fOxKjBiNcadhlx8sW+fkns3XIaq/6osp34j8q+paXDO9Pk7MY15sveUdeolHxI3LxWdOGynJ9AkznhI9ur+B69ky4eLKXWBw5q6V5cToAal75BdbtqUu0NZOVMW7HtRQ/hUSscHj3udhCRuuqdYqfyBiKGrabFAaI3FcvlaXmihkQtRjkpZQiM9zM03KBUFenfh32KlLl29JwOBYgpwFXStI1FQAxO6kmOIpV2xRRjKau8dvAHF+5BYcfUEPzAQSpua+y++gx504/UO0C 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)(366004)(376002)(39860400002)(396003)(346002)(136003)(6916009)(38350700002)(19627235002)(38100700002)(316002)(36756003)(66556008)(66946007)(4326008)(8676002)(66476007)(26005)(41300700001)(2906002)(6666004)(186003)(6512007)(83380400001)(86362001)(5660300002)(2616005)(6486002)(478600001)(8936002)(107886003)(6506007)(52116002)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?sTUZG1QkBYotEqErJ57FMB6BqLP5?= =?utf-8?q?8mMBcwPU6pxxGbO2SJieOsldkcm4xAhJW+oTfsDdOSBMSV7Wx/H03Va+49ojYygko?= =?utf-8?q?bxOGlJfrpiYOEZfRyQQ7klVpPS/fXTFVebyCqtcfmxCZ7rQ5Epb+DP7zCp+7cZqX2?= =?utf-8?q?g6fruYj0uBYdqWkEtc1uI5543Fbq+yW3DmvOhXR1dGAsXoHSw/fgow+JZOPXgUVrz?= =?utf-8?q?FEdneEpp9+TpC4lrlVqRM4xzB2ZA8RxhnhbOl/YeTo5xalMSWBjJcKerCVMDw37sx?= =?utf-8?q?j1GQrtkLD4OCPHGcITXRQwai90OoNVu0QokR9D4tsGPjt/ERhkSC7ziP038OT1Qad?= =?utf-8?q?mtbTmKjh8Ef4+x585izzbketWBV6LyDpuIk8Bg3rqgijbjNueTu3p5o02GhaIUueb?= =?utf-8?q?au9h/D/McQsaGVBHrpapr0kEFLIop4J3T1z3KFsSUCNxhArZbl8dSt4w94Sqy7AlY?= =?utf-8?q?po0pJXXxS9aXyV/tw4WrepKp5NiIjfbBi12HU4oIJWgFQ4fhyAAcPJnot435/uLC/?= =?utf-8?q?dI/VtiX5iXfjxN3OQcCHlYSX7FzZVN+jckhh/jTKXAFbr9cdl4exMdWJl1yzjy/54?= =?utf-8?q?sOquINfufl5fHHElNJa6eQNy5G6NzI7NRhJSmTR9MsmbF592mCeswflcDOBpg58mQ?= =?utf-8?q?cITF99qZJZlPu1+Qa1wC4Rc2esjTLoCfJtRumFcUPNpmQMzVeRT3b9aCMTNYLtGRF?= =?utf-8?q?V++QZFebC47xw7fCrsKXz9wfl8HQenP8motEawdNsGcLbQWFU7+gZ80GCmac7i58r?= =?utf-8?q?QfvWyWi1jTzS3oj39urZRtfiSxQhDP0m1xT95YcsBSCMoD6PeWSBgCFPthsCYcW19?= =?utf-8?q?d7XyehQL3Oa4dB/uJqUb0uvVycYrP0GcT2Acj9HtM2qdyBfx/YjVWke3/0P0gUN4o?= =?utf-8?q?Mw/PDXT1xMz06SJi+VSCyC1X9ZnYBgw8GyKaE27gOu78gm0Wjg3df/HdLQKDkWNPW?= =?utf-8?q?+BWH3Pa4k0kUFTJs7ZoTxbNKfDrLlXto4Q56KP76oK8alvHQRbiwMA53/rJj0hdPP?= =?utf-8?q?52GLhM2/21GFc8oH/KTb2d2n9vJeRhpRyZ5L9aOqs6SAsny3R9Lv/mxk9RWDtBq73?= =?utf-8?q?Jr/yrUJWNYkRTV8IBvShYjwpjIzFXYP7M43ZvYOF4EvdXPWo5eW2EHXX0uhzqmaVr?= =?utf-8?q?Bc04lqL45+27WUQMf/Ukk0pd2+hUj2BVHeoLOXhIcUf51FbZE3ArGH47hChVFimWL?= =?utf-8?q?COyrnr6kcPz5gBsl6dfacQE6pmZ+OgpQzyEeq2Eg4UC7BigEp30BV8FEv2lMx5kvC?= =?utf-8?q?koTt/Y8o8D1ve+xiEz5LBvxdHH8thewEPzmFvbP04AjLftjOG6zmj8fBAxhcJFVfY?= =?utf-8?q?I9jE4ZYxFd6lWug3lOVpu4rRR/8D1nn9dz7oYfOGy1j5SB7LQoSyzUwK5s0zJ6uhH?= =?utf-8?q?uF3HBL/sOgQHwsjs1weSt1m6x7p1SMOaZr8FugypCMZLzJ0pemVY+sF13AdVB8hiZ?= =?utf-8?q?OIqALVSzeVYotU6jIJp98FaRIX3vFLPQNKL5XfE5qijECYwjgCevCaMM6IU7IkH/6?= =?utf-8?q?79KWRMvnqbttUcj72Hfsraf6drE7Mg4RAg=3D=3D?= X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 952cc97e-ba51-4685-68c8-08da68ba2738 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB6533.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2022 12:36:35.8966 (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: NNckzpqMgvyRa/aYyqinQutdo0SfcHxfcjUtmrt+TWyIxO900+ny2HhiGl1SQOF9MgOgHyBoHvearlGp1dIJbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR03MB6171 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: Dominik Czerwik Signed-off-by: Ɓukasz Spintzyk --- v3: We have decided to remove that copyright as this is not really necessary. This is v3 revision of the patch series. Please forgive me it is wrongly resubmitted with git-send-mail. drivers/net/usb/cdc_ncm.c ssary +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index d55f59ce4a31..af84ac0d65c9 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -1904,6 +1904,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 +2023,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),