From patchwork Sat Jun 21 19:07:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Schneider X-Patchwork-Id: 899021 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011039.outbound.protection.outlook.com [52.101.70.39]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 79D2426FD9F; Sat, 21 Jun 2025 19:07:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750532853; cv=fail; b=hFZ25Kb3+S8A1d8wKH09l8r6J4a3KGyDDCg471ipr+U9XtQIhAIG5EMukt8klD4Z2tu7xj/pnbC9/FrD4RUaqGO2OijbRXH+STPjtPK+Olr7he9aHTHDYgvHy9lghBEOVWXCK2YfauX4Dedm7+w1Oto3gBNbEGFbfTEVRsewrtA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750532853; c=relaxed/simple; bh=56H+hHxANaXHZfjOOzKHPVaSf5TUPs8UgOT85E0FiTw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AcnAg64lZrrS5Jhouf+YI7UVQI/ymKRVJSL1yT2fwZ3I1HXINN7u76pfIC4B6HiZITCJR71wiSAi7Iv96gEmdkU4RHzKgoV23Kq9ZkWXiCViihoFh95iYUUSogWco9lMOItZtnwgsNUAAJlfEReNeN9RescYYilhOZfJYqZkB+g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=I4aa/uS0; arc=fail smtp.client-ip=52.101.70.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="I4aa/uS0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AIjARS6M5EtcdbOFMvoiH0oR8doQ3ZH2/WVeA8+MizNqd4QBvGkoGEjLwxq5/N9UCoOO0AKF5sFnCKd8vlepay6xi6Hf0FB0ErywgTmUMIABJq9AEGDJ/7xNZH3axBYpQfU85pGIJULjMxsC6b4wCj4LL/bU3fYHGz3t106OO9MQT2hh4cSbFSjzYW6JN3LQOxkU6QLaxmgYCeSsvl60rT8qToG2xvXnusQHI+hypEMCnW+cH0POhl/zeTQLwwbGHHb04eeUlUEjPt4HpgIw1yoTzFZvKed02mdw4i5Rbpquy6olg2t0PC4addDC/gm5C1+zpnmmJ5jkDEwW5R5eGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=spb+5rmyMMc+ynZjuhR5wyXG/YzwDA6iLeZDNEk/lkk=; b=LXTfLOhWtTOMWAFfkM0S6Hc5YRkCDxNHCfbwxske590uHpX+7RNBpZB510pQxU5b2q80mkGQjclNTHuDWHk+cQuZAtMcJ6A3lBGfXisSyXZwBC53pdfxGalV9tlwSZ/ZanSqpCUZ0arY9wOoCOkEgxv6rVIp4oTQRAcLaCw1C5nu0TD+SQ6RjzpEfA11yAH+fRXoJt5aibFwUr21zyerjmoiJOQzYmJLzlSNobMW+F9pbm8lQJftJQE0bOdTa0gW4eeyagb691OgfiKgKQTDhDp2K+YuNAFoybzYl2+8+TRJ+WrYeCHVWXJJTiBKYxVhWwE9pr+kunGqRdw5PlPjbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=spb+5rmyMMc+ynZjuhR5wyXG/YzwDA6iLeZDNEk/lkk=; b=I4aa/uS0Il7qEcvp5LxiKomDHpMb5rqK5N/Ahp3AndJ4l71za2HP0Tq/9JkZTxoXnF5LZo64ub5O3lxJjXh1YyKYHzoeN0l4wEGO+eakbe1S6WBf2fNAHPAb7uT/ZEg6imIlriFza8kwNxVKLBPMG2p0bclr0FECWl4MULMwTBw= Received: from AS9PR04CA0126.eurprd04.prod.outlook.com (2603:10a6:20b:531::8) by DUZPR06MB8776.eurprd06.prod.outlook.com (2603:10a6:10:4dd::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.27; Sat, 21 Jun 2025 19:07:25 +0000 Received: from AMS0EPF000001B2.eurprd05.prod.outlook.com (2603:10a6:20b:531:cafe::ec) by AS9PR04CA0126.outlook.office365.com (2603:10a6:20b:531::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8857.27 via Frontend Transport; Sat, 21 Jun 2025 19:07:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by AMS0EPF000001B2.mail.protection.outlook.com (10.167.16.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.21 via Frontend Transport; Sat, 21 Jun 2025 19:07:23 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Sat, 21 Jun 2025 21:07:21 +0200 From: Johannes Schneider Date: Sat, 21 Jun 2025 21:07:14 +0200 Subject: [PATCH 1/3] usb: dwc3: gadget: Fix TRB reclaim logic for short transfers and ZLPs Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250621-dwc3-fix-gadget-mtp-v1-1-a45e6def71bb@leica-geosystems.com> References: <20250621-dwc3-fix-gadget-mtp-v1-0-a45e6def71bb@leica-geosystems.com> In-Reply-To: <20250621-dwc3-fix-gadget-mtp-v1-0-a45e6def71bb@leica-geosystems.com> To: Thinh Nguyen , Greg Kroah-Hartman Cc: Pengutronix Kernel Team , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, bsp-development.geo@leica-geosystems.com, Johannes Schneider X-Mailer: b4 0.14.2 X-OriginalArrivalTime: 21 Jun 2025 19:07:21.0562 (UTC) FILETIME=[B7223BA0:01DBE2DF] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AMS0EPF000001B2:EE_|DUZPR06MB8776:EE_ X-MS-Office365-Filtering-Correlation-Id: 1aa00a83-2d0f-447e-b75e-08ddb0f6dac4 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?vgz37WEg+E2y2V3S+mk4nIybknODFoB?= =?utf-8?q?ILd1v+eO1B7rKFKQlP5YRxAhPYd8rti35+n57JtlzeYNwBvzosSmietuDiDZ9bs/B?= =?utf-8?q?ko2svbs5WM0aU2fh0aoIThVFJ+Fv1MoG3bs0lZebXC/oXcZBTo6iATRIbCGBtaaKx?= =?utf-8?q?btQlClWQgk5Ogs0yzr03SdBkBVBC8kUFrR9zPsnFfGlKsjd0ZyIdVollSfWq2PNFg?= =?utf-8?q?uDjj3Ym70Mm9taLG56WTm9jhSnLlsKXKzxIe0JU6Na2RXO0sMzotujzjr4+BwEJBA?= =?utf-8?q?4A//R7QRwwOoxQ5jU5tejEspd/RLGwtqddfEzcYU+B/mJ3WGrdpdMDqCu95GERmRS?= =?utf-8?q?yXF8mamFzISn7w1hfHtrMmFW0UgULCsj21tfbuVJtKwerXspQW2THZyzvjAgVrCb9?= =?utf-8?q?IgX/bBLntncqrn3Djhc1rd10Jb4DW/YaIsugUbPS4Hu0T3tMKZZkpvRrAKRSa8yWm?= =?utf-8?q?pe1QXagLVp5UR2+CKlrtuFLLmXMLTHCRPQbonF688Rg9+PPrY3aqo/McSBbpMCcEh?= =?utf-8?q?ljBWuhBomUDXokzypziEXNwB6i0EXrdMYA5KaCX6RqK46yez/KjhM3LbXfjI271nu?= =?utf-8?q?pp1RouIH07N1FLYop4ybW4MCZZALGyxUNj9qGoKZFQYuDBzp5CNquDRSePg7vFFpU?= =?utf-8?q?L/3woldTrYR2P4JVG3nguEj72+Egid0OgnD0FIH73rzDrmefX4Mr1YqTOqvZ0cQJH?= =?utf-8?q?JoSEc8Nf9JMs1JnGLw8+gb3G7URUrlYiqtKEZxflIT1FIL6oLDlen5hlmGpemaHyt?= =?utf-8?q?b9sNN1ALwjt2BQkYmXpSXwja8BSj04fjPOY/gAxaPeXcIYjRm7GsTKgSytawfJxzK?= =?utf-8?q?iWRr9YaB5H6om51I75FToh4gCF1KLpP5toCgTcXSuNOIInt13WnNoutC7cgvnhZts?= =?utf-8?q?+hjl7CwfTZXiHUSuiqzYzpkHMBxMgowj4J50CTlcRfBNKJApqKrQPcYMuSkD8psb2?= =?utf-8?q?0bS8muqwJ+MJ7YQImRp0MvOKp6gqhQj0PpDt7fIJKFDyr4jO3isc9EDE4QpYPkxLz?= =?utf-8?q?cBAuJCMva7SzWFZOfXJKEwphUpz9lcqCvNNO4nx1GPlbPe0IgQBtW4PPbGdQReWEw?= =?utf-8?q?3ZoUfI7cml7YozMuHjv1e1VLV0cqX5+wcH0+RleyTqZhlndzSST1JIlb+4kg5CCDI?= =?utf-8?q?jzYLgeesB8ZNhIVe/3qW3Rp4MJzORt7EmBGySYgekYTsHXKWgycXK/8M5GcQ0ic9N?= =?utf-8?q?1zQntIwlQ3v5KUUkGCH9VR0GAK90lftTXnSQXje3RtsdVEmEZlKZw+DfZLnjsC0u+?= =?utf-8?q?xK3AuQT4WWSkQ4MWzLfoWWuNO9EzgidrVodYFJGNtt53ZZ8qruZkQxy9wx6BXU/pU?= =?utf-8?q?VnIrVvi07xoMwmZtDl520PINXZGEKU6neaz/pthqZNlskFema6Xzsv72MRye6escg?= =?utf-8?q?OoL4p7Ci85epbe14vsIJdY+iXbAcxVXvF1rfx/f1ag3niPhP2P/lGdGRlgy51b9JB?= =?utf-8?q?ctpRP+wMx8?= X-Forefront-Antispam-Report: CIP:193.8.40.94; CTRY:CH; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:hexagon.com; PTR:ahersrvdom50.leica-geosystems.com; CAT:NONE; SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 19:07:23.4288 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1aa00a83-2d0f-447e-b75e-08ddb0f6dac4 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a; Ip=[193.8.40.94]; Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF000001B2.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR06MB8776 Commit 61440628a4ff ("usb: dwc3: gadget: Cleanup SG handling") updated the TRB reclaim path to use the TRB CHN (Chain) bit to determine whether a TRB was part of a chain. However, this inadvertently changed the behavior of reclaiming the final TRB in some scatter-gather or short transfer cases. In particular, if the final TRB did not have the CHN bit set, the cleanup path could incorrectly skip clearing the HWO (Hardware Own) bit, leaving stale TRBs in the ring. This resulted in broken data transfer completions in userspace, notably for MTP over FunctionFS. Fix this by unconditionally clearing the HWO bit during TRB reclaim, regardless of the CHN bit state. This restores correct behavior especially for transfers that require ZLPs or end on non-CHN TRBs. Fixes: 61440628a4ff ("usb: dwc3: gadget: Cleanup SG handling") Signed-off-by: Johannes Schneider --- drivers/usb/dwc3/gadget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 321361288935db4b773cd06235a16670a6adda1a..99fbd29d8f46d30df558ceb23d2afe7187b4244c 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -3516,7 +3516,7 @@ static int dwc3_gadget_ep_reclaim_completed_trb(struct dwc3_ep *dep, * We're going to do that here to avoid problems of HW trying * to use bogus TRBs for transfers. */ - if (chain && (trb->ctrl & DWC3_TRB_CTRL_HWO)) + if (trb->ctrl & DWC3_TRB_CTRL_HWO) trb->ctrl &= ~DWC3_TRB_CTRL_HWO; /* From patchwork Sat Jun 21 19:07:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Johannes Schneider X-Patchwork-Id: 899181 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011051.outbound.protection.outlook.com [52.101.65.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA66F26A0F3; Sat, 21 Jun 2025 19:07:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750532851; cv=fail; b=Qd/H/pV4lMrMTwDP/TsrhrvTTmCGZz1D3sYKJzjx59zGsAELbD0e/zjPFXMOEJMxFpURquTBwJA2IUG3lMgv2T/Fu/3hK/0rM4wtL7hYAwsxOHr6+zKeWVp/JNTQeR69P+xYFMjQZP9JqweE53nMvIDBa+mkRWXTidlc/rzvCVE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750532851; c=relaxed/simple; bh=/BU3hgn5yD1T/4P6vtGOx7X6s0wuPbUXKqHBNF2pSaQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LSu8Uu236Jfjf3xfCJvme08jOWVAlt3MTTZZh1KUv4J85iaOHtNZX4HCLq+qCEeBhEb1dWDzCj5QTVpQAXkxvVXMtbWpsXolT8zTHf9w/bUlWQTMd3Z7Pyo41/ay4LmFWWmaG8taF/BChIPi32YHVVNIojy8FNDtAZT3+c918jE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=kcU66npb; arc=fail smtp.client-ip=52.101.65.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="kcU66npb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=v6eg8YH/V6TtkfTuJW0NKneua38V2xfu2owtJRLrOsiY4uZj8WODMWZ5joxWiABM4wrIVqYloJfExrWMMjeQU77TvsewqqRWgFc8ifZbdI7NvzQ7fjdXmtTMB4wYR598zNP8UUyiesSl4HcRTCamGCCBxpfWS5yeMQYG8T/R3HIxA7JOirKWERnf4IVAGRIYK7gJ7h8L5ycY8Tmt8+UCSv3GxyYapyTLzxLMFU3MWjxraf5KpRsbDoU/hlsMDeM73zSEEnDfkhEVFpEEnRF46lSvx+ZvZ7qY2C3gj/r5hgMO0LOxegc4Y4uZYfXWfPzl6v6v4gV0vyaPfbTibh00CA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=dbnmzeNVrOqJ7l8cdc0wCZw3ORYcI5MQc6Nwc4wkfww=; b=HghtMI20mZjtBYnYwg6Jl6oR5g3sUzONJBR1eVmpXHpN2OD8XvHvT3ZrSbiTp/emWhZ7DDRr3Sb7mZJJecLk5h/7C9Pu9bTHNMZYkb+dCvbOeXrcja6MnHsWZARIGq10XSt54uY/aDAsQDqXPH2KFMpcg8EpjrJ4rYovbiiUaqF1Doh1Dl1ctXI4B+aGgwA0xIWejmKyu2LjqOx67pXtbMgx9HDeps5Jja+ZrVxNvvic0y/kVT7JGDQ/NzLBIlnJeCVa9mf9SceRX9wev1NNRc2YX4qfL3nkCZZF15N4LBxpr+F3UBJ44rtX6wOefV844EFZhB8ufrj0T/+k1r1pHg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dbnmzeNVrOqJ7l8cdc0wCZw3ORYcI5MQc6Nwc4wkfww=; b=kcU66npbXYkMPQHuZ8/c7mvBNxz22H2WT1eUWHRIxosdNkUo0Bltx8zb5f4Vp940kLUKre4GJOnRvlOpT9FspL4Xj2+b6l91hTnuHhfvmKNCIPKoLJHAxPdohkdq2ecE2MWLOgbzUfdAr0WxEaHhd1/024GJAfyDcIBARYHmE7c= Received: from AS9PR04CA0114.eurprd04.prod.outlook.com (2603:10a6:20b:531::19) by AM7PR06MB6818.eurprd06.prod.outlook.com (2603:10a6:20b:1ab::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.27; Sat, 21 Jun 2025 19:07:26 +0000 Received: from AMS0EPF000001B2.eurprd05.prod.outlook.com (2603:10a6:20b:531:cafe::96) by AS9PR04CA0114.outlook.office365.com (2603:10a6:20b:531::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8857.27 via Frontend Transport; Sat, 21 Jun 2025 19:07:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by AMS0EPF000001B2.mail.protection.outlook.com (10.167.16.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.21 via Frontend Transport; Sat, 21 Jun 2025 19:07:25 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Sat, 21 Jun 2025 21:07:21 +0200 From: Johannes Schneider Date: Sat, 21 Jun 2025 21:07:15 +0200 Subject: [PATCH 2/3] usb: dwc3: gadget: Simplify TRB reclaim logic by removing redundant 'chain' argument Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250621-dwc3-fix-gadget-mtp-v1-2-a45e6def71bb@leica-geosystems.com> References: <20250621-dwc3-fix-gadget-mtp-v1-0-a45e6def71bb@leica-geosystems.com> In-Reply-To: <20250621-dwc3-fix-gadget-mtp-v1-0-a45e6def71bb@leica-geosystems.com> To: Thinh Nguyen , Greg Kroah-Hartman Cc: Pengutronix Kernel Team , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, bsp-development.geo@leica-geosystems.com, Johannes Schneider X-Mailer: b4 0.14.2 X-OriginalArrivalTime: 21 Jun 2025 19:07:21.0578 (UTC) FILETIME=[B724ACA0:01DBE2DF] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AMS0EPF000001B2:EE_|AM7PR06MB6818:EE_ X-MS-Office365-Filtering-Correlation-Id: f9a1703a-bc5a-450b-6a21-08ddb0f6dc3d X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?aLp/B16Df/DSRkOjDbna9SiovPVFR2R?= =?utf-8?q?VTk65EHahCYUYnxGKV2S22fAQBGiZ9CTKMsjSbQhhvPJ0ve8HNSZiaQM5vD5hnKLJ?= =?utf-8?q?L5h3Qa4rNIXLYRbu2ROCM0KApjiA9gtKw+LJbLQZ5eSB6trXJhgICUXi8nFiZt8LT?= =?utf-8?q?KzEI18alsFWsbMpvWSsgxQ9+e+1kgDMoesI8yuep6SQhWj1AUjbfm4L2TT9rQwAoU?= =?utf-8?q?aaxFQQNMyBUlkfeNn+IXs0Y5yatk+QkrUQgY3PErqvNpsEI7GW/fONLkvX3z7yYvI?= =?utf-8?q?twYC8DeIbWbL+wwoGQ5FS4daKbda6AJi1dIOqWgrHA8Z7my2GhOtHNlcnGoPJRR4J?= =?utf-8?q?pq9M4lrrse2RmDlIE49lKo0TPcUXZz8bMVuf7JC2QGre1xtcwifH28WREazX81Z2k?= =?utf-8?q?HCzO++vunTM92fpJ9YQ/8AAxjt/V+/yWjZx2F7G0Q5jyM1CxdTIhEpL+cpgKwhNRV?= =?utf-8?q?USO3x5oqzRRmDLy0BprFzFLGvq2kUCCaw3/M1rSnS/qLj3X22fe9u4EaNDw7Ze2Ac?= =?utf-8?q?TEY2r25oaum6SR0FZFXPIRTXAsiIJ4PEDUtl17oHZdnIz8Tv0FsOG/dLsHT1FXJNp?= =?utf-8?q?0KP+W0RKii5prT9AG+Z5LkcbZBY/rn9pkA83Wjp8xYO/Gk99DUHP2+icdbzfEB5Fb?= =?utf-8?q?TTEIqQLGd8xj73rGGe0zx3zIbN6UmYvZvNj/odeMZfZOTXNCOEmAr6cuWOD0Snsf6?= =?utf-8?q?MzMS4x5wtjqyIPjedOvGa5bAdpKIDTgju6ItgZTtqS6E8fJYXh2bZ5Y0hU5yTnodn?= =?utf-8?q?FViZuJ+UDdpQ++cuZQJkZcLBMzh8J5ofaM8shhiW9ZcOB3OS92hEcWOpXJSuXe279?= =?utf-8?q?9GyILuKJb6GeNk6D10/seWlv2Z395JbmxRP29G/EB9UU9bFNZloQx5P8nDn4GvC8u?= =?utf-8?q?Tu7OcnCzNNZVQAc2jI5Nr0jZe1cKtNbzsP1EYRRPwjKUVYNcMZU/THdZblOciT2km?= =?utf-8?q?5kugdnUJOURkLcDWPvy18fMgRVvfuOMKvu4YdqLH+NwrHPzaD3Ygd4FaqzxOQQH/Q?= =?utf-8?q?S9MWsEcMaD+hbiniAFNvyP0hhZOKZ7+Zm7Ndmd+K6DpMwq002CwhVX99oU65k4Pq0?= =?utf-8?q?f73ggX8WQQc1i5EzJdSuqoQz2gf75SwJABOEJbEVikjoLfpuGS2T6r/qzHyAPZqq9?= =?utf-8?q?geBVDBUlW4Qx5TOxb5qELvMyH+nX9PLDo72NkOetOYi31YJ5s85dsotMroLq0bSji?= =?utf-8?q?nUKOu676gNc//GQPzDcn3SOsCqTZHv3uDQCL05+PkfdtPF+Z2TbCB5oKZyFnrdDl9?= =?utf-8?q?uvQgaoEBDP28QJj6+jefFP2Kmaj5YoYzkVf0s1xroFKEcFj2eMc+29x3dn3TVLLUg?= =?utf-8?q?Owu+t/ZQzZ0So5In3fztHn7nLF/cVVn9LW6YTj4zujcqPAZAZqoMUVOc0da6yxXRw?= =?utf-8?q?JDP9aP9Wf2gwBFQtuYNtHOQHFwdDNmTSfa2TqEQDU46CNjOA9EFUFt24J2FlldPxz?= =?utf-8?q?yzV5KnprMu?= X-Forefront-Antispam-Report: CIP:193.8.40.94; CTRY:CH; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:hexagon.com; PTR:ahersrvdom50.leica-geosystems.com; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 19:07:25.9008 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f9a1703a-bc5a-450b-6a21-08ddb0f6dc3d X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a; Ip=[193.8.40.94]; Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF000001B2.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR06MB6818 Now that the TRB reclaim logic always inspects the TRB's CHN (Chain) bit directly to determine whether a TRB is part of a chain, the explicit 'chain' parameter passed into dwc3_gadget_ep_reclaim_completed_trb() is no longer necessary. This cleanup simplifies the reclaim code by avoiding duplication of chain state tracking, and makes the reclaim logic rely entirely on the hardware descriptor flags — which are already present and accurate at this stage. No functional changes intended. Signed-off-by: Johannes Schneider Acked-by: Thinh Nguyen --- drivers/usb/dwc3/gadget.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 99fbd29d8f46d30df558ceb23d2afe7187b4244c..a4a2bf273f943fa112f49979297023a732e0af2e 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -3497,7 +3497,7 @@ static void dwc3_gadget_free_endpoints(struct dwc3 *dwc) static int dwc3_gadget_ep_reclaim_completed_trb(struct dwc3_ep *dep, struct dwc3_request *req, struct dwc3_trb *trb, - const struct dwc3_event_depevt *event, int status, int chain) + const struct dwc3_event_depevt *event, int status) { unsigned int count; @@ -3549,7 +3549,8 @@ static int dwc3_gadget_ep_reclaim_completed_trb(struct dwc3_ep *dep, if ((trb->ctrl & DWC3_TRB_CTRL_HWO) && status != -ESHUTDOWN) return 1; - if (event->status & DEPEVT_STATUS_SHORT && !chain) + if (event->status & DEPEVT_STATUS_SHORT && + !(trb->ctrl & DWC3_TRB_CTRL_CHN)) return 1; if ((trb->ctrl & DWC3_TRB_CTRL_ISP_IMI) && @@ -3576,8 +3577,7 @@ static int dwc3_gadget_ep_reclaim_trb_sg(struct dwc3_ep *dep, trb = &dep->trb_pool[dep->trb_dequeue]; ret = dwc3_gadget_ep_reclaim_completed_trb(dep, req, - trb, event, status, - !!(trb->ctrl & DWC3_TRB_CTRL_CHN)); + trb, event, status); if (ret) break; } From patchwork Sat Jun 21 19:07:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Schneider X-Patchwork-Id: 899180 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013037.outbound.protection.outlook.com [40.107.162.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 992C726FDA5; Sat, 21 Jun 2025 19:07:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750532853; cv=fail; b=YHXi5B8wUqnUxVUuQn7o1lLJOgw5LmfodFzQRCrPtKO/cs6ChATvDx2CbSW0n/MPmc/ldQnYIJuQy20KOztgRqzTcnNpnChu7EkxQ+6Jto8Q4Nee8UI/m3C3euErLQFSmWvGe4qeX6E7bizPVBsb7vX8M3PPo3CWwkEwzdv87gY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750532853; c=relaxed/simple; bh=4ipMAEiyk61X6apx5AapvvwuwNX8+6h8B1105l7Jf0Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BXTBtwrmh3NjzLrP5qRd4fFPOZtJL2S4V4ZZ077rwWkvvLZtmkUtz3GApWFCwov+wljiLgTrQrlbI34fERqoD54hwXvIvXxIY402rmFPQOVHziLGu23QSsHL2JUbwpx8QJIhhERiexgXbdTsWGZiiXYjaTaXB4UGElJ5cacU4V0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com; spf=fail smtp.mailfrom=leica-geosystems.com; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b=dfuNJwnM; arc=fail smtp.client-ip=40.107.162.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=leica-geosystems.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=leica-geosystems.com header.i=@leica-geosystems.com header.b="dfuNJwnM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xcqCJ0NbHCwHUlquWoXbfqFWTkbm2PLqepPVoiKh4ltiBjONZR58uzs4zXfRkdUbxJ2+DAsuvShxgNvuu9AwxrDkuHzavL7nMBZmlDpAj3b9Neh3EOSYiW0lm4t15KkOMD2AAexRES3tOgYyzW0S38nUOcGp061Kaz0S++WWcMMazY13Lnxt8miBGAvLkq0Gi7QkJNoX9VR0gxXwq5GR6gnpqVLA40SGUzlPRx+m1UzUI2vWOwYNz6Fu/aeSKSJpWTyID0qBswgf0lrasZzO4G6TszshuqoQgmfWgr1sh1jOd23blomvxw1kbEsJ7Jhn7dNE/l6RqVKBKxF14TyEVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=YY7rMcxqP2rAwDJPSB6KS7LsXqmQvydyaHzNXoh2K2U=; b=gncFnHk7K9LJaWjRzg7KS/BRdLOaTSMqCuCLUTnRMiLex6pycDEjxd9paSGypsMScgEaohXUfWkAapOz/H5CpMioZDxipxoi7btXi4fAuJQKp+MiAHh27NgnJ61JxMeiHjJ/O7GEJ0zgbFRyOOkMIKmasesSeUlFLmOYe8UPIbwT87H23G0BIRczRngqrE69Me0fRknUmWCS6y/Nphuw+F9og/+nkLysAOjyloEJeE3B7qkFLY/Cx3cj0HXnfcpmnqkytdghqrhazoUJTkFqwMIqPF6HtNdYTj8qQYswqdytBCSYOav0ItTCDxLPfAx6DOAjnJF4sDVc+uca92ehGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 193.8.40.94) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=leica-geosystems.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=leica-geosystems.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leica-geosystems.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YY7rMcxqP2rAwDJPSB6KS7LsXqmQvydyaHzNXoh2K2U=; b=dfuNJwnM9hQSEhmika5sjwjRmXJiSkPOogWXiJBnWATGjQ9duz4H69bMXr1AX3AWxQJarKeKJ+W6fghT7qaLqd4eKbLNUC3Syql2SLajtV5j8ND74imTnf79X5rlDx2Em9CVM0wOEBGE2KlRdQ2oAbBA3jpvUiSlRz60G1Ictm4= Received: from AS9PR04CA0115.eurprd04.prod.outlook.com (2603:10a6:20b:531::25) by VI2PR06MB9090.eurprd06.prod.outlook.com (2603:10a6:800:227::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.26; Sat, 21 Jun 2025 19:07:26 +0000 Received: from AMS0EPF000001B2.eurprd05.prod.outlook.com (2603:10a6:20b:531:cafe::1b) by AS9PR04CA0115.outlook.office365.com (2603:10a6:20b:531::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8857.27 via Frontend Transport; Sat, 21 Jun 2025 19:07:26 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 193.8.40.94) smtp.mailfrom=leica-geosystems.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=leica-geosystems.com; Received-SPF: Pass (protection.outlook.com: domain of leica-geosystems.com designates 193.8.40.94 as permitted sender) receiver=protection.outlook.com; client-ip=193.8.40.94; helo=hexagon.com; pr=C Received: from hexagon.com (193.8.40.94) by AMS0EPF000001B2.mail.protection.outlook.com (10.167.16.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.21 via Frontend Transport; Sat, 21 Jun 2025 19:07:26 +0000 Received: from aherlnxbspsrv01.lgs-net.com ([10.60.34.116]) by hexagon.com with Microsoft SMTPSVC(10.0.17763.1697); Sat, 21 Jun 2025 21:07:21 +0200 From: Johannes Schneider Date: Sat, 21 Jun 2025 21:07:16 +0200 Subject: [PATCH 3/3] usb: dwc3: gadget: Simplify logic in dwc3_needs_extra_trb() Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250621-dwc3-fix-gadget-mtp-v1-3-a45e6def71bb@leica-geosystems.com> References: <20250621-dwc3-fix-gadget-mtp-v1-0-a45e6def71bb@leica-geosystems.com> In-Reply-To: <20250621-dwc3-fix-gadget-mtp-v1-0-a45e6def71bb@leica-geosystems.com> To: Thinh Nguyen , Greg Kroah-Hartman Cc: Pengutronix Kernel Team , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, bsp-development.geo@leica-geosystems.com, Johannes Schneider X-Mailer: b4 0.14.2 X-OriginalArrivalTime: 21 Jun 2025 19:07:21.0609 (UTC) FILETIME=[B7296790:01DBE2DF] X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AMS0EPF000001B2:EE_|VI2PR06MB9090:EE_ X-MS-Office365-Filtering-Correlation-Id: 0e698a22-a4dd-4f3c-f880-08ddb0f6dc97 X-SET-LOWER-SCL-SCANNER: YES X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?2a7dLmN17oPRPhsnhwSZXukQ4FzCmp6?= =?utf-8?q?PtE+VqCLKZQocqPJEABtyA72OTDzKMoGgXd7T2p0mxEnQbjD5wz961wYxR+aiPMUi?= =?utf-8?q?AXxlGX2M5zA67pGz+IHgOoHBKR5uQHsu2LqsGca1ZZv1fR+xtFsHZv8M1Scbx8zqn?= =?utf-8?q?Mzvcpm+fBxfQ2IgED0KBDko4HnLRaruTkqpWrri9Wjnn0JtaTUdCTndLbwBCQII+y?= =?utf-8?q?QJ6kPsZ4dj4N/c8siT4I2d2zbySoGBxOToGbCqM0jAANqrCRuDmDfMXLEey041xmR?= =?utf-8?q?7Bt7k383lu/r/5GVRzYNImt8Bcl3GZnFjGTYlyyeTSeexqgfzXf5Ycrbo/ECF9Q1E?= =?utf-8?q?KgdU83nyVPxNPVTfN9UBYKCLwG5Tj80/la0PxS8dIGoscGZYo5BtzBZpeoaiqxPzB?= =?utf-8?q?6YKzIYRhNSs94B/unvgiBct83TeL5anQXeZ1zC8HWDdSYZctEK1K11iyN2Tw5GRlo?= =?utf-8?q?8pB7uJXm52rd6l3vCbScxNoQholfy2aTppaAzEzvlBQNyqOdSh9bPCvaNr4Odyk5v?= =?utf-8?q?DgytgriNYwiW9XqroFVyCW4UPoziIdAD8RyjDfWUTGN784tylEcMzUJxr7TVSizJ1?= =?utf-8?q?+d5kP99xE5YvPVnarUFXStwaNW9+N/0CuMYV16EG3e6zUT5IolwmbwneXVwRmgagc?= =?utf-8?q?3MxzBWW9tgOLXdIioXIjU3t4gcc2ht0maUqyPgNMYLmCyEgIcNNIdlc/RgKSx2Tj5?= =?utf-8?q?/MVLMdgdrpxGLARr5szeCKUFYxw5SwLvFLqUerT/S35PNw2CNBFo8k0UCQJK7Bul8?= =?utf-8?q?zIUWWb0gLL1BrND1+PdFIz8eMFxAYZiIsylm7R4rKpjptr5o3ce/YvckYRR0X6JvN?= =?utf-8?q?jzdkmNQoX2WmMYmSF3OXp6c7kH5p4YRRTNLEIbjX/Svky97/xKz4Ixs8WpuBVgtkU?= =?utf-8?q?zobdgtxFnb+Pr3qmLtbUaNtFbHdtdNucLycxjoI8c+7MAXdFifL7y+SIvZBxD3MKY?= =?utf-8?q?q9MMzTwJayquDWOnE+7dZpJfCnXD/j+IgM9C3FPAPugkak5LFHwcDcg79Z3FMdGmo?= =?utf-8?q?675VyAbEjetZoE4l+0vSVLneSdR2aofPpbcGx3yj7gQ9F5VdL2e/Xs2oi9t7SZk/V?= =?utf-8?q?4b1klkT+JuXUyrk3wFeYwc28F1euyAHd5EP0IgdKhryZeP70U6lEotITafjO6lCH9?= =?utf-8?q?PgBUG50eQ11Oq8nbkr3sAXGT0xtAvLLWcwhMubjRxSBfhWjO2fiyzwutEIF75i9x+?= =?utf-8?q?V8vHXDC81OvtVZiWjsZtuqJrz7LvFH706tXCnn4UqDZPrjEMUHAiS5/sMqmPw0lFb?= =?utf-8?q?Thuqx0iPfDCvO4o/4ubMjCe6d7yVNGGCoX12HMQvzy4P11U0mqMQr3UVQS9L9J/FH?= =?utf-8?q?xaiaMhF8AxylIA4uLPkG9Gls04uDie8wp1dTV5Zgf/ZPKLlIwIKCJ2p5McuJ/V5Ic?= =?utf-8?q?gKxw0IyKz9pFycfw8OZgamwBfpYQPUYi/A7ONzIhgEJH+kUdKp+h8syF9G5QSga4u?= =?utf-8?q?hW8FmYFPwn?= X-Forefront-Antispam-Report: CIP:193.8.40.94; CTRY:CH; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:hexagon.com; PTR:ahersrvdom50.leica-geosystems.com; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: leica-geosystems.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 19:07:26.4931 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e698a22-a4dd-4f3c-f880-08ddb0f6dc97 X-MS-Exchange-CrossTenant-Id: 1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=1b16ab3e-b8f6-4fe3-9f3e-2db7fe549f6a; Ip=[193.8.40.94]; Helo=[hexagon.com] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF000001B2.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR06MB9090 The existing logic in dwc3_needs_extra_trb() checks multiple conditions in a compound expression to determine whether an extra TRB is needed, either for a ZLP or to handle short OUT transfers. This commit simplifies the logic without changing behavior: - Returns false early for isochronous endpoints - Separates the conditions for IN vs OUT transfers - Makes intent and flow easier to read and reason about No functional changes intended. Signed-off-by: Johannes Schneider --- drivers/usb/dwc3/gadget.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index a4a2bf273f943fa112f49979297023a732e0af2e..32d0fb090f4c2ffab61ae6eee29a02efd32ed032 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1420,12 +1420,13 @@ static bool dwc3_needs_extra_trb(struct dwc3_ep *dep, struct dwc3_request *req) unsigned int maxp = usb_endpoint_maxp(dep->endpoint.desc); unsigned int rem = req->request.length % maxp; - if ((req->request.length && req->request.zero && !rem && - !usb_endpoint_xfer_isoc(dep->endpoint.desc)) || - (!req->direction && rem)) - return true; + if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) + return false; + + if (!req->direction) /* OUT transfers */ + return rem != 0; - return false; + return rem == 0; } /**