From nobody Sun Feb 8 06:04:54 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013029.outbound.protection.outlook.com [52.101.72.29]) (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 2990138734F; Tue, 13 Jan 2026 09:53:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298027; cv=fail; b=IewvVqwtimPqDGv97fvTROl/ZPfC027dUPSS+7xR7BzVKkI8bHCkkV9w4BALs5n8hNFgGb7xYfSxQe04EYGuE660l3jKFbH9RKLjmPqFNay9wbqwpIkaIiimCGOcyKWEnbWssjlZoYTTdSY+CmdmxUzS9TPxg+R2/lCvmKoa1wM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298027; c=relaxed/simple; bh=sRTfQ63pQ3+0ubDFeQBHordauSXpGCvslSf0VeMEoGU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=tHP6wrJDi0NE1fRAGVLu8stlgVjxFEVapeOc7XByxtOaZyzJS6XO1/Mo0HNlTN8S29c9sJg1WKXXUvHsLYGDWVfeZcFH9Q+GJs6Jv/+Mr4CFKGs8HYtlSlmChvE+izb7fqDxo9vLhVyMJOfvPAZEJHSNyk6nCIN1Z3+FvYHIigQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=VJ4BWwye; arc=fail smtp.client-ip=52.101.72.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="VJ4BWwye" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r/ltmioU+ZO1wf71G8ED5dsGCZNz5Pb7Z394ERMLL+Qdn668Ob2uqFpBnIwA7bpDXk7HpQ/FRbSE4C35bSzXuvFIjNImQDDFXiS8td4o/EkHgyobuxLdFhZfeOinKDjDxjp14Z7a54YUH/cmiAFehCpd9aPDe6E9Fta0fuYqGSxEm43Tt6Vq2h2F0AFR2iLKDu2qwhRnSTehakrL0FbWuNxfa8BWUixw6RF356xzEcQ+3KnmaTtqeLIKBW/ESz4dl708EphEeh3xLAWEZ95zv8m+UstSvrNMCszPS2jUPtBxJ9iODyYZwS4eVfmPhxo0TASJRxon4vXKK3fNJmlLAw== 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=ybR1OZei7XXHQJnp7CbZLKHP14IgoAKTgiCpORcffXc=; b=j6WzD5ECYwS9LtpLHa3O6r2GAIaO2q9XuMpvPbNIua97WnxyVbqiaynEOwSfkAAOZDAz0RZVTn/dbDpfgYl8qeHUuf8ltlE3IgPRMIVSd9eh8twsS3oa5wdNW4bx2yLBdcp0uFM2XFJ1f/MctNkVsSj+v+9yLsB4s6MKOjK89MIaV+lwljcMz3lIyXBGFNr3YU0eZymUXZJY7eytFzkL0XkfXEiDsnvuE73tLfq3RDb8SUkTfjme/bOcbfaZt1X++sdwwpxXyCiWwGRmd007Ki1SdhFOGElUn+HgEYou0GeuxdrxqAqAXxChH4mg1Oj3rMglxPiEpk221vS8ZIgPHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ybR1OZei7XXHQJnp7CbZLKHP14IgoAKTgiCpORcffXc=; b=VJ4BWwyeauT3B7gSFKxEI/Nlo3Te78W1nBlsCWTEbtPE5U8Uk9XcfxmPRpe7wlMMrpZlPOXdq1oh84SECnhUVT4SxHCfPwHhHZH18bhI/YI1iHNvThV9MsFWW1FkNuk/P2CjI1hCsL6qGpfBrMb/Y9+6/7368cSR2yN0SU3jx9+F9/kQBredB03vGn9NpA5K9g1JBFO7jNqoKNl8FAIn0O8FurY+388TRyEua1DgzZwcB4iO9EQrF9j3BX3aXimP27/zsFigDYpqfysmewuSSJOkEecjkyoLWDRtSSddEkG0X4MxISQn0nFekxsMYgSzGY3Po60PGtP5U2wSTCNZvA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) by AS8PR04MB7798.eurprd04.prod.outlook.com (2603:10a6:20b:2a3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Tue, 13 Jan 2026 09:53:41 +0000 Received: from DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce]) by DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce%5]) with mapi id 15.20.9478.004; Tue, 13 Jan 2026 09:53:41 +0000 From: Xu Yang Date: Tue, 13 Jan 2026 17:53:07 +0800 Subject: [PATCH v2 1/4] usb: gadget: uvc: fix req_payload_size calculation Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260113-uvc-gadget-fix-patch-v2-1-62950ef5bcb5@nxp.com> References: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> In-Reply-To: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> To: Greg Kroah-Hartman , Michael Grzeschik Cc: jun.li@nxp.com, imx@lists.linux.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Xu Yang , stable@vger.kernel.org, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1768298011; l=4599; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=sRTfQ63pQ3+0ubDFeQBHordauSXpGCvslSf0VeMEoGU=; b=8EOr17v6vT3vM+aNjgVwblz6DhOPhPCNnDiueXWfYERpW74fUjQVv53cmU4+/K734Tmq/5Mjk fS7QniD8JZFDhx2tncm7Xczh+PoSdG72zpSNhxSnbwrmyOrF0w7xZr1 X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SG3P274CA0009.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::21) To DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8822:EE_|AS8PR04MB7798:EE_ X-MS-Office365-Filtering-Correlation-Id: ace396ae-f549-4d9c-aaeb-08de5289a1ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|19092799006|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Wm1JY2s2RHdxMEl5SGZpY2VFRmczYVV2TjZ4T2dleDZyYnpLS0I1TVlUejEv?= =?utf-8?B?NFk1emVndGJBTGRjN0tFNjdrOFRDRzBTdStKK0w4elJJMVpTNXUwRnpsam5G?= =?utf-8?B?Z1Q1Z3U2aXh2NjJpTGZ6SVRkNFpFRjM4c1RYdk8rc09Sb2VxOGpxZWdLNDZN?= =?utf-8?B?Q0Z1cmtUaG9ZN2w0dlBYRW9DMXJYMlZSY3hEbzNHb0VKNDh4UTBFeE1tMnNQ?= =?utf-8?B?ZzhRaXNyTC9LYUpENTZsaXpKL2dHc3AvMklXUjhYRUhNNm5MVDRXMi82dEIv?= =?utf-8?B?azhTNUhDaFU1M1F1eHl1ck1ZNkhBRDd1a0YzL0dUbU9zSzJkUHV1WkNtQ3dF?= =?utf-8?B?dTFwVXU5bEJGWTQ1VHpmdUhMeHdVaTNQWGhWakdOL2VtUUh1OUdzeUdGS3Vs?= =?utf-8?B?YkN1ejJVVHNnUldZUjVhamdyaWI0Zk5zcHBnVmRueFp0Y3JhYnlWVzhpcnJR?= =?utf-8?B?S2hlaXZ5b3JEK3RhK0NQV1V1NWJ4YUpFelZXaDdxY1pBa3F2VzZLODM0ZmYz?= =?utf-8?B?dXdnZlp2VUE2REFKdnZMZCtsV1VGeERra0htNWFkTEp1QmJISmZIbWNJSGxF?= =?utf-8?B?RWdKQTZ3anNOSE5RZTlJSGR3a1p0S20walc0b3RJbVB4TTlSVGxyMG5QV2NL?= =?utf-8?B?SVIyWk1IOGk2dU8yeXFCUndYL2tWOHNDRXlxYjk5TUEvc3VrVS9UOEZrL0Zy?= =?utf-8?B?cTVMZ1NrT0ROdGk4N0h6SThHeTdyZTJEZTlqMkJ6VGdVam94RmxoZkg2QXMx?= =?utf-8?B?a1ZQMzRrMC8yQzZLVmE0Z3RiaU9hV2JXbkRNcTFsRlR2ei9tTytBbjBiSUVm?= =?utf-8?B?aWkzK1RkeGVxSWttMDhDY1pkZCswOFM4dDEwZUNMYmFWTUNUWk5DOTZhSDZT?= =?utf-8?B?bTJDekFDc1d2MUJGUy9FdWJXaXpLOUNQZUo4ajJkNUdpR1VwVEUxa3REQmw4?= =?utf-8?B?MjNFT2syYS9OMUhvdTFLTkxwOU9nbVg3M3FsRndLZW1BSENpTFBjNFVyM0xy?= =?utf-8?B?WXBYc0VFZXpWS3JCdUZueWlWRGNDcUU5VmoyQi9rT244MjJaWHlOUWdabGlh?= =?utf-8?B?MS9aQXZXdzZ4R0tpT0YwdzY5MVdFcmEycjQ0TkZrZXc1SmhRVWgxcXFwT0Ji?= =?utf-8?B?a2dRMDFCQkVMWlMvSmtUMW1QVEV1Ky9FVGtPR3c2MVZpSWhyYzkyZzVpaWxq?= =?utf-8?B?UUNuM0ZsdzBvVlNDZ0tLRnBaVkJQUGJQMk9sVHBDTzNpaUgrZGdNQXE0SUNI?= =?utf-8?B?ajYvZUIrWk1pNFBIb3ZxYnlsOTdLK0ZNK2F5dGtYMW5WZFI0TDNxdGZQQ3lZ?= =?utf-8?B?TEQ4RXk1UGV6RDRNcm5GYlBaYnkxWXhjNzloSFVidlBhdUE5aDZpdnRHYTBI?= =?utf-8?B?TDMxRzZ6QW5TQlFoWVRkYThmM0RzdmVia1FXUlA1eUp4RWNWZU5Pd3RiWWZP?= =?utf-8?B?MVhDRzg1MjNtYkxNYkNjaS9IcG53WVY5UEhLMG5HNUtJZEF5TFlHSlJQZjY4?= =?utf-8?B?M3BNZEQ2eTNybjNWRjhjUFdwTU1kaEt4L041VWN5UzdaWFVSWGExSHBNMy91?= =?utf-8?B?aVVUVUFkOERNVzd2RnVwSzgxbDNvMElpRkdHZ3dTdHE0YUVpTGVpWUpCR2Zx?= =?utf-8?B?VzBIaWxXcUtoZkVTUmYrWGNrTi9tZTNBRnh2MTVKWHdxVDZnN28yZFdwTWov?= =?utf-8?B?b0YyNHFWNHM0cmdCelF1ZGNQM0ZZQlZJSzFwc2VxbzJNR0FRcHRBRWlEd1dS?= =?utf-8?B?VEh6Q1BhWjRzbTlVWW5rZnRUVnhiWnhsb2VGanR4VzVGZzlVcWV4VXFlR20y?= =?utf-8?B?VUYzc0UxTi95NDVJQkdNNXhhaXhTSVlPT1FOMTFDRUxTU3VaS01kc1lJYldB?= =?utf-8?B?R2tDdUR6RHpkV3QzU2pRWDBtZGFWeTMwTWFDQVhYc3BRZUdOMDZFRFNGYWJE?= =?utf-8?B?eHJwcmpReXA4dS9lRnd3Rk1yNzMwZ2VQUHRDcDlSRVhIc0lHQXNjekJGYUhY?= =?utf-8?B?UU10OGpseUNQNXE1dlpjczBrRmFBYTd6UnMvK0hDdDArSXcrNEVQVWRZZnRr?= =?utf-8?Q?F8amzx?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8822.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(19092799006)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bHNxM1MrZXhobW43cTg0WEhCdUUzOUZ1cGlQZ2o2MUlob2JUVm5VWjdKdXJL?= =?utf-8?B?VTZuNTVOL0p1WklGSCtzcWV3SGRTKy93OEM3YzRTa3AvVU5DUVVFVHpGaHZp?= =?utf-8?B?Z1Jvb0xJd3M1dU1uNTFMRWhWM1l1a2xBd1o0U2RrUFdoQWF2Ly9XNE40RUhv?= =?utf-8?B?a1pTaHJySFhpWVdXMGF2bzVGL0FCc20rbjU5Yk5TMC9vYUh6RHlSRTl2c0Qz?= =?utf-8?B?c1RINmJ0TncrRGRHdGlkY2tyd21UeXQ5Z0VZMXdOSWREeGNOWHRGbkVtd2sw?= =?utf-8?B?UWNpbUtBMkhlcnZIMGRzVE1YUk44RTJTSXNhZEJ0eVdnTkRMdER0aWUwcFdx?= =?utf-8?B?RWlZMWpOUkhheWxWMnlqazJvUmRldDVxTFlJWmR5Q2tuTnhaTlBqblpodTVs?= =?utf-8?B?YWlyM1lya0lEY2JUWVN2MTdEaStiUGpmbngzRGtLd2tpWmJ2Y0d3QkFpNDhn?= =?utf-8?B?bFdBMUJhODFBNHlFd2JGcmdSdGVEUVdXT1Y1TXNsU1U0Szg0di96SVBObjNz?= =?utf-8?B?ME8zc0ZmMVZMZFhFWUhHRi83cTBzVEpmRVZ3T3F0L3dpSktUZFZPMWdBaWlO?= =?utf-8?B?MVlEQWYzTmdBQldXamNWR0RxejFycmhiWG1neCt5Z0dnSGg0RWxuOVJMenBr?= =?utf-8?B?ZlF5VDJwRGJUVE8yekV6WlZ0bUdWQXRKOE40MnNIL054WDMra2xoY0p0ajlr?= =?utf-8?B?SkpNMEN4ZGVwZ2hURFlMTGQvZDRqaFdJZVpTbmJhcTFvRWhVSzlPaWMwYlBa?= =?utf-8?B?Q0RCOHFjaFl6NDNtVTk2RmQ1RTNzd2tmMERNcWRBV3Fsek5vL0h1MUIxd0sw?= =?utf-8?B?Y3g4UG84V2xjUWFaR085b1FSM0JtUkJXNXYvK2MzT21zMGRSSHZaYmVjZkNy?= =?utf-8?B?MTFkbE5aVUcvRHZTd0JQSzZ2QklieGYzbUQyeWFNbU1aUFhocVdxdS9GQWxG?= =?utf-8?B?YjBkR0I1dTB1K1hPQ3NIdDlGVHdYZWpDUnFjVTdrZStwbXlKai9lUzk4SGVX?= =?utf-8?B?eFZicm9zTmw3bW5MMFY4bHVCNFQxUVVqa1pBS2t5QmtMMWkycEgxSGpRL3FV?= =?utf-8?B?YlNrdWcvRG1ra3lSdDBVWmJoR2JnVitRSi9zb2JwL2lzWjgxOHNQallEZlE1?= =?utf-8?B?NE1ualpncjgyNmdqdU9NRnJWTFhUS2svbVdmWmZScU9Pb1I3Q0pmUGh1TEN6?= =?utf-8?B?RFg5ZFc5Q3JmS20rQ0gxaS9TZHlzYjZ0SzZHUVRXeUpDakJIeFVCUE0vTmJi?= =?utf-8?B?SzJtNktZaE9vNGQvd1VMS0krQVpuOWJlRERVTTRMdWZGSlpyMnF0cjh6N3lp?= =?utf-8?B?eHdGZ2Zsc3BpQWdMSlVUVjhXdHQvWm4zdC81bTQzQ2lIU3YyVGIzWWVXYXRI?= =?utf-8?B?ejdKRThrZzBqbWduc1VXalp3YjVpOEJ0OXBJY0IyTTJIT1BGNnpmcEwxY2pr?= =?utf-8?B?a0FKMi9VN2NXT1E5VWUrRHZLbkVyNlVxN3pZb29TZHA3TWNKcEp3c3B4Q3Za?= =?utf-8?B?Y1FidDE3TzV4Skc1V2VqN3ZoRXlsdlNyR1M2SS8rUThCbHdxWEpkMVJqWk1M?= =?utf-8?B?YzJMRXk3S0dBZEFKT1hvck0yRDJMWTBYNGFSV3JXamdBSDUvMFFacDM4c2t3?= =?utf-8?B?dkp4N0ZnY2NoZzRmbGJieDNOVGZncGZHaFZQbUlraDVlMmNVbGFtdUMvQWJG?= =?utf-8?B?aTdDT3N0djRnZDErZjRKRWUwZUMvT1ZodXlaVjExd09QZmhCM1drOEZBQllK?= =?utf-8?B?d0FwZmtyRTJSVTBENmV2TkZPMDdnRmFvTWx3UGxJM2t4S3ViOVhSK3o5MS9v?= =?utf-8?B?ZkhSVEdXd2szRzBtZ0FXY0RLUE4yOEJBRnplNGhnWFdEajBHN01mQmlkUmcw?= =?utf-8?B?akJNSkRvOUZmZGg3Q3F5Q2k1d0hvVmtFRmN1NjMrQm5DLzVQSW5XbmFhUVdG?= =?utf-8?B?M2ZmMHVIRTJwZUVJcWlJWGxjSElqR1JsQkIvYnpoSy8xWC9DNlZZNVRhT3FK?= =?utf-8?B?aE5aenRNRk0rMXc2TlJWWitSU3pnL3kvU0x2M1BoMVRZUFJVcWY2SWV4VDAy?= =?utf-8?B?endQbFRrcjczajFVTDcxZnNwYU5ycUtGY1c1UDdEdDBqYzgxVkZnUWtQd0Vk?= =?utf-8?B?a2syVW0rN2hUaEU2ZFlUaEVySVQyZnRDVVhUSmZIZ25pc1ZwazJIMlVibTRs?= =?utf-8?B?QWtHeHBlL2svV3RCRC91elVUU1BSM2k0Y0NHZmFGeS84UkJHS0JvRmNvVU82?= =?utf-8?B?WkpzTU5KV3pBUlFPNkFIc1pZR1JDOGMySWRiQWxGeDNHNVQ0cStKQk9BZklv?= =?utf-8?B?anYxRFpjemo2VEt6Myt5Ui9jNVhWZXM0TWhpSUJmTVpVZm1NZmNndz09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ace396ae-f549-4d9c-aaeb-08de5289a1ac X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8822.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2026 09:53:41.0466 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: so6iuO29JeUxgmBOAI+3aMW1AtPT+Yd8s9R+RCvrtLdjS5wWXDB3Njcwc5OIBwPR1mShJdJAykqPdC413CP22A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7798 Current req_payload_size calculation has 2 issue: (1) When the first time calculate req_payload_size for all the buffers, reqs_per_frame =3D 0 will be the divisor of DIV_ROUND_UP(). So the result is undefined. This happens because VIDIOC_STREAMON is always executed after VIDIOC_QBUF. So video->reqs_per_frame will be 0 until VIDIOC_STREAMON is run. (2) The buf->req_payload_size may be bigger than max_req_size. Take YUYV pixel format as example: If bInterval =3D 1, video->interval =3D 666666, high-speed: video->reqs_per_frame =3D 666666 / 1250 =3D 534 720p: buf->req_payload_size =3D 1843200 / 534 =3D 3452 1080p: buf->req_payload_size =3D 4147200 / 534 =3D 7766 Based on such req_payload_size, the controller can't run normally. To fix above issue, assign max_req_size to buf->req_payload_size when video->reqs_per_frame =3D 0. And limit buf->req_payload_size to video->req_size if it's large than video->req_size. Since max_req_size is used at many place, add it to struct uvc_video and set the value once endpoint is enabled. Fixes: 98ad03291560 ("usb: gadget: uvc: set req_length based on payload by = nreqs instead of req_size") Cc: stable@vger.kernel.org Reviewed-by: Frank Li Signed-off-by: Xu Yang --- Changes in v2: - add R-b tag --- drivers/usb/gadget/function/f_uvc.c | 4 ++++ drivers/usb/gadget/function/uvc.h | 1 + drivers/usb/gadget/function/uvc_queue.c | 15 +++++++++++---- drivers/usb/gadget/function/uvc_video.c | 4 +--- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/funct= ion/f_uvc.c index aa6ab666741a9518690995ccdc04e742b4359a0e..a96476507d2fdf4eb0817f3aac0= 9b7ee08df593a 100644 --- a/drivers/usb/gadget/function/f_uvc.c +++ b/drivers/usb/gadget/function/f_uvc.c @@ -362,6 +362,10 @@ uvc_function_set_alt(struct usb_function *f, unsigned = interface, unsigned alt) return ret; usb_ep_enable(uvc->video.ep); =20 + uvc->video.max_req_size =3D uvc->video.ep->maxpacket + * max_t(unsigned int, uvc->video.ep->maxburst, 1) + * (uvc->video.ep->mult); + memset(&v4l2_event, 0, sizeof(v4l2_event)); v4l2_event.type =3D UVC_EVENT_STREAMON; v4l2_event_queue(&uvc->vdev, &v4l2_event); diff --git a/drivers/usb/gadget/function/uvc.h b/drivers/usb/gadget/functio= n/uvc.h index 9e79cbe50715791a7f7ddd3bc20e9a28d221db61..b3f88670bff801a43d084646974= 602e5995bb192 100644 --- a/drivers/usb/gadget/function/uvc.h +++ b/drivers/usb/gadget/function/uvc.h @@ -117,6 +117,7 @@ struct uvc_video { /* Requests */ bool is_enabled; /* tracks whether video stream is enabled */ unsigned int req_size; + unsigned int max_req_size; struct list_head ureqs; /* all uvc_requests allocated by uvc_video */ =20 /* USB requests that the video pump thread can encode into */ diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/f= unction/uvc_queue.c index 9a1bbd79ff5af945bdd5dcf0c1cb1b6dbdc12a9c..21d80322cb6148ed87eb77f453a= 1f1644e4923ae 100644 --- a/drivers/usb/gadget/function/uvc_queue.c +++ b/drivers/usb/gadget/function/uvc_queue.c @@ -86,10 +86,17 @@ static int uvc_buffer_prepare(struct vb2_buffer *vb) buf->bytesused =3D 0; } else { buf->bytesused =3D vb2_get_plane_payload(vb, 0); - buf->req_payload_size =3D - DIV_ROUND_UP(buf->bytesused + - (video->reqs_per_frame * UVCG_REQUEST_HEADER_LEN), - video->reqs_per_frame); + + if (video->reqs_per_frame !=3D 0) { + buf->req_payload_size =3D + DIV_ROUND_UP(buf->bytesused + + (video->reqs_per_frame * UVCG_REQUEST_HEADER_LEN), + video->reqs_per_frame); + if (buf->req_payload_size > video->req_size) + buf->req_payload_size =3D video->req_size; + } else { + buf->req_payload_size =3D video->max_req_size; + } } =20 return 0; diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/f= unction/uvc_video.c index fb77b0b21790178751d36a23f07d5b1efff5c25f..1c0672f707e4e5f29c937a1868f= 0400aad62e5cb 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -503,9 +503,7 @@ uvc_video_prep_requests(struct uvc_video *video) unsigned int max_req_size, req_size, header_size; unsigned int nreq; =20 - max_req_size =3D video->ep->maxpacket - * max_t(unsigned int, video->ep->maxburst, 1) - * (video->ep->mult); + max_req_size =3D video->max_req_size; =20 if (!usb_endpoint_xfer_isoc(video->ep->desc)) { video->req_size =3D max_req_size; --=20 2.34.1 From nobody Sun Feb 8 06:04:54 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013029.outbound.protection.outlook.com [52.101.72.29]) (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 E119C3168E4; Tue, 13 Jan 2026 09:53:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298030; cv=fail; b=WB1qhES69av0w1bD5JcDsYl1quY+PGbDb6G/40LhGiBucHOMfvRI6dxbHSkn58Mvm6ZQ6nVGtJmW0MaoQ/0F9D50YKHi67Gg5KCL7hPo6Mv3OQubUpjCsvmZrTBXRRHIT7eJmKYa/8fXleF2/0cXElgHH3s7Zs2QteZyMSPZO/s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298030; c=relaxed/simple; bh=/cvDuOqraUmTX1IF+Mi9AlpDpOmNp21Krck73UwK1S0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YTYbvPbpWO+78cMQ7U24+Hcc9kzVKqC5JJdrBNDIU1M1y8ftRQ/KoeGN/4QqBZ2hKb9U4vvYrzF+844hEpAn9JTYhk13jDT+5XIBYlnSoPboApBduQJXygdFHL75E1V7zJpM1qJQ9Zx8SAg5vhEqx+xTiDda1QHxq5Ug3lNW10Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=PwABNjTI; arc=fail smtp.client-ip=52.101.72.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="PwABNjTI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yFlPdE3WsIA8pWABHQO7WzhvItYRuIv9tYgbYoXv6jefnNszHMm37o7BIYO6jtjlzQYVNngidVUf/ByyC2PKIlz73Dj96cDC+yP49UC61LPIhdP4w6/HMgExqwXabhnxoUfGLb/KV29YhhKQTwbCRYTey3XcFN1Us+jyEZichD1z0/iwM4gNP0WW5ZuJKi+Z1Hx8/sJ82u0fWFUGz32KHdxzCaWAV/hboJPRX+atpeiNXQSP9hKH4NUkCcrETDORXYyvFP0g58knpcMClvhj1xRDdX7X5Tc0F07lcK/4psobD0VSUFry9qLS3S9xdhf+okdNx0yRma92qpNrAQZ3UA== 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=VXhB+5CHpyAtvOK6kcfqqvq4ZuuW+6X3kbKp1s2oRzw=; b=I8/Yc1NPlusjuoGe1R8sV5qJcukgbq9Iab/BVbY20EQN7kDf4l1OfYiOqqW5jXV/tR7XbtjlWoZukZo4KtPBdikZEtroSoRDoWduxYQeay4kKMwtI+MatqwXRfIXe11xPgnHGylaLn+12YlO2hzYq5rGlftLCUNXBmZ9pGHd0voRhcNrLqzOAH/HmVNesivO0+RvjE21/N6et338+N8qR2jN+ef8WapZT5q2XC4ajGaBPgPAw2Qh9+zIWUVlpBEhDkU1w5jxJD5eSjXRIew0yjUOYf4vzx0JSTz+yESYYrmCl/E4yZjuJlue/uhyvhf1sOM3qRLLDwz8g+7vqcr02g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VXhB+5CHpyAtvOK6kcfqqvq4ZuuW+6X3kbKp1s2oRzw=; b=PwABNjTIfSGmkx4zrj2QNzXCW1RwFqrKCMU/EsFnJqHZJ77z5oKd8GUh48Cc7ogpK+liBpQ4E9nP02SVVljWTw8OUytlCMPZlrVQrquW3G8G9Z9rsmUXzJ77TVIhPBjb7ApjAtWTk6nEHZuarFcv+ghq0gRj3QrfJGcI8mogg3wbxG+AChRSCQWzYKaaZrqV4wAZIV0F1ujmIJHS+wQASWHXfs8YI34wJpuv385cKdSj45fR/+01hRG170MXIdDA60PJ8s2wxt27gZdlvPmgx8TL8/YpM6UjTRRu5z8xmr73GgCq1VqulqU9dCaD137Hd1xSk9AL9nstiCAb5Svg/g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) by AS8PR04MB7798.eurprd04.prod.outlook.com (2603:10a6:20b:2a3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Tue, 13 Jan 2026 09:53:44 +0000 Received: from DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce]) by DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce%5]) with mapi id 15.20.9478.004; Tue, 13 Jan 2026 09:53:44 +0000 From: Xu Yang Date: Tue, 13 Jan 2026 17:53:08 +0800 Subject: [PATCH v2 2/4] usb: gadget: uvc: fix interval_duration calculation Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260113-uvc-gadget-fix-patch-v2-2-62950ef5bcb5@nxp.com> References: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> In-Reply-To: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> To: Greg Kroah-Hartman , Michael Grzeschik Cc: jun.li@nxp.com, imx@lists.linux.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Xu Yang , stable@vger.kernel.org, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1768298011; l=2438; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=/cvDuOqraUmTX1IF+Mi9AlpDpOmNp21Krck73UwK1S0=; b=sQ6FnHsD2Mzzj7bAxvHJEnNletHh8tR/T+pP+jySmgvgAebAmPZexFa8tD66t7ayj+d7DaA96 QokVYcWGgSqA2dZsVIabVpyqew5h3TF+Xra7k2sGeupTXIB+o8sv3HX X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SG3P274CA0009.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::21) To DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8822:EE_|AS8PR04MB7798:EE_ X-MS-Office365-Filtering-Correlation-Id: b1d90f3c-7717-4ded-3177-08de5289a37c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|19092799006|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eGtDNDJlblQrMnhKSGJ0bFZISzhGNTFkSHIzdnFab0xFb2lYd01MMkd4cC9J?= =?utf-8?B?dWIyMmw3TVpXQUcrb2JPM09GQjVESHFqM0M4am43Zm1YYWtSbDJUUE9nSEkr?= =?utf-8?B?NnowMVF3a1VobVZub2I0YU9QcnBSemZUS2NYRTVzdFdzcVNVNkZtb0JJV0ZI?= =?utf-8?B?RWVvUitTL0x0N2k2dlVkVi95ZWY2MEpYQ0xzcVpIczR5SUx1ay9RZk5DNWNI?= =?utf-8?B?Y3p6UEhhZW5DRmE1bzhyWk1pS3BBN3JaUjRVOFVQVlROeGlJMkV2RkJ4WThV?= =?utf-8?B?KzV5TFYvZTdtU0FuVTVkM3NoT21IeHVidGJ3b2hEUGM0U0J1dU8rZ09RNU1Q?= =?utf-8?B?aXdLbkNJZkdsc3FjcCtCSW45MTdKZmNvUmREOUZmSVVUZDRlZXIzNW1jYisz?= =?utf-8?B?Ym9KaXVHcXlLOVI0K2M1SlpYS2ROZmVsb29zOUVoaUM5NmZLeWlpMFV6L2tK?= =?utf-8?B?enZSQWx2QTlGb0hrejFYWTNwY0REbE5KNUxMZWNta1BnZUVxQ2RRRFVkUERi?= =?utf-8?B?enMxMk01VXE0eC9VQXpYdGJGOTlNVkdkZXhrWEppSmI1MVNoMjg2d1EzTG1y?= =?utf-8?B?a2VIbFE2VXRLYTJ1OFJFVStKYlZxU1NDWm1KNHpBOUpvQWpCQS9JVFRJa3NU?= =?utf-8?B?OFRVL1YvL0VURnB4UGhnY1ZGcWFEcU1ZZmFZT3lETW01elUxZWEwS2ZqTUJZ?= =?utf-8?B?MDcyRC9HV2kzdVNjRkc0YmFrNWkvcmhxMEtqZjJ4ZHNNdUt0eGtvamd0U1Vr?= =?utf-8?B?WTVjMmJ0Sml0cWpUTlR5WVNEUUNXaUdsSWplN3B2Y0tVc0NtdUtZbVhsdUwr?= =?utf-8?B?akttdVBtWjREZ21LWkZJV0hxV1dsdnJicDRucWs5bkNSOHlqcklHdWRuSmtK?= =?utf-8?B?R095M2paOVN6enhoRXhLcHFuYmhPTlZXUndoSFAwakNrcFVhQXB0d00wZTlX?= =?utf-8?B?VTZNS0hPRTdZUUhXSGpseWpMWVhtZTAveXVWUnZxMTl0Zk5GMDhNalhLY0Jq?= =?utf-8?B?SEFkRFc3Mm55a09rVXNpTVZGaDNQWWhDTHljVmZRS2pNMWVoZTF1eVBBaVAx?= =?utf-8?B?eDRXMDFUQzdHSklLem0rbjI5V1pOcHhVMFIyRG0vTDFabjlRRnU1STRKNGtO?= =?utf-8?B?bmJpTkVwRCthOXZTMUMycGJ0MHMvcERGNCtYMC8vZERIdnZIanhrYUs4R2Y2?= =?utf-8?B?VlNmUTJ1ejh5Q0tWWUx3LzFiZG5DOGpqRzI1WDh1WEs5MFBpbVZCcFI2aDZo?= =?utf-8?B?ZWVjUjJncWtQaXNiUGZDbEtrSFltZWFCc1hHSVRLZzZXbllXV290NDhib3Z2?= =?utf-8?B?Y2RESGRob0hYUXp0WTJXQmg3SS8vZE9aN3I3SEwzSCtPWExBc2VLUXBNNjI1?= =?utf-8?B?UFRQVXJSTmRKZk81dm16UE1GUTUyeUxYSnA5QWVrT1RnQ2lFcVV5eUhkNmJM?= =?utf-8?B?c045R0k4QVBSTkZVYldHYXY4VUtUQlNLQVVnem9DUmxheHBJcThHQzkwVjB6?= =?utf-8?B?cVlHMjNVYnJNNGtWSS9DcjJFY1I3RGZVY2Z3WTRnTXlieE5iWU4wRTM2aFN2?= =?utf-8?B?K3Fpb0NTSXpVZXI0b09VelU4SHV5bDdHc3kwVjEycWZnbzN6OVlrd3FpNnlX?= =?utf-8?B?SS8rYkpxNkNkRkQ3SDNsVFo3TXg4SmZGL3NiWGNHM01acEMrSG52dTBXRTls?= =?utf-8?B?MjBMRmxjRkJLL2FnZXdtQmI2YXozOExlSngralRGTzZkVzNya0N3aklkSjEy?= =?utf-8?B?ck81ZFdtbHc2enZja00vbjA0cGcvYlNqRFBZTER6RjNzT0IxNUtMdGF6SExu?= =?utf-8?B?TkZoMkNyUHNGejhmbThjTnFsY1dJbUtlQ21sbmt2eFRsMm1VemgyRDg3cndC?= =?utf-8?B?NGhaYnRFU240YmRLZElMb3JiVEp3YmZyMTdFZjNXa3dScWRoTW9ZdEhETll6?= =?utf-8?B?aWZmdmFDZnYyVFN2RWVlT3lzMnVsbkhPdWg3bXhHN0dvUjQwbER6bzJWcGg3?= =?utf-8?B?bnhVODRUYVdJSHJXRzg1SkZuOU1vaGZyQzFyZWJlTTg1MGtPZE5lbkFaN3N4?= =?utf-8?Q?zLnCrZ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8822.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(19092799006)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YVJKemlVWE5lRHhkSHBEL2RrZS84bWlDUkxlUFJQTmNITnh5ZG52VmdacVNi?= =?utf-8?B?Qi9oTFhVTnEvOHl2RWxXRUhPb1BDT0NZdDZBV3BTbGVOZHJZV3FaTGxLNVJn?= =?utf-8?B?Sjc3a0orWEhWdlhTMVRhNm9YdHNqVTZ4dFBjSDBwdFVYMlZxdEFGN0VmTU9C?= =?utf-8?B?KzFEb0M1MDg1cy9QRWZNdjM2U2JwVUFmSC85VzZMOHo2RFFvbXNZVDEzYWFU?= =?utf-8?B?K0R4NjZuK3M4RUFsYnVwRU1CNTlkckdPa2xEeGg5RE90T1dGaXhxYU9UZ2pp?= =?utf-8?B?NmthT0lDRHUyaU5rbnpUVUV6bjl5WVJJTnBzcDlyZVNHSkNlZExoMFpwSmdi?= =?utf-8?B?NWNPK1Q1Rk1DbUZuUUN3ZTBYSGY2U2ZrZ2k2QzFJK0N1aEYxTkdVMmpTR2Rm?= =?utf-8?B?dTBaeW4vU1NHcUMzVS9uTThWSDEvVDZia1VpMzNOUTV4VXQxZndCU3JaR29B?= =?utf-8?B?VDZCYTlIZk42RmZpa1RsK1dXWXNLdXg2WkF1cjJFT1ZsbXpsRHhaR1ZEZi93?= =?utf-8?B?dlFnU1JtclhHS3pMQitQQmhGaUpmQUtsbnlIR2wvcjBUejRybHAwbTBWSEth?= =?utf-8?B?NGI3Q3FUQ3JTSzFYTFN0dHpHUXF6UzBHNUp6UCs3UERaSlV2a3EyTnZSWExU?= =?utf-8?B?SWl2VkFwQTI5Qkk0MGRIUTNSbTNrNDI3OXJZM1A2MGdYRGQweTlJODVmbnBw?= =?utf-8?B?YXFUNGdFa0NraUNsR3RGT0NwTzlYaFRwMGd4dDY3b2orRWlDa0g5MDFPNW55?= =?utf-8?B?Z3JCci9PM3ozYW9qQlpNT3NiUUtYUnhZNzVodnJYZXN1b2VtMUdaV2poRVho?= =?utf-8?B?U3pKanhEeTdBSXVWQzNiSEt4R2NSeEdrNkZ3UnE1ZEdwbThNZmlKdHNrWkN6?= =?utf-8?B?TnM2Sk8wbStSUlh3ZFdNNHdLUDd5ZHRnVTB6WWVES1dvelFmK3VydDBYR0Vt?= =?utf-8?B?WnNiWFVpNlR0dmlrVTdoampXWmIvSU11aHlway85bmUrcS94anE4SjFXWnI0?= =?utf-8?B?Njgxam5XWk9VR3lTVmh5bVpjYVVZY3Y4cXMySnNhVGNlWXNhMGxrOUc1Snds?= =?utf-8?B?bjYrSEUwblBLWDl4UTU1bm1ERDE3N1pwb2ZsQ014SzJiVndud0Y5QXExaHRF?= =?utf-8?B?S1YvcG1TblN5VFZHaTk5VDUyaHhzcEMwVUxDWi9zM2FWd0wzMXFYSlhqR0Mr?= =?utf-8?B?R1h0dGpwRzkvRm9NbU9DS0dZTXNBeitidFFFcG9qS1lRaTRQZ290cXJLeXJH?= =?utf-8?B?ZXNGWURrYzdvbGt5ZHIrak55RUpIY0RvbDgwaU5EaVdEZ1U0K0xUSWpuNXZj?= =?utf-8?B?d01MVENJYUxnTXY4dnkzcjFYaGVTem9UNnVGczFlVXRGY2d0T3grZVk5L1pm?= =?utf-8?B?SkhQa0trVkliSk1tRGVVYm1ZQ0lZZHQrSGJWYmNPS2ZwanRrYnpzWnRzMzNq?= =?utf-8?B?MSs5OXJseWhBbGhXbUNmZk53elhvbXF5VGdjQlJwTk5OMisydXhKRE02N2FW?= =?utf-8?B?bHhNVkpGNkFZQ0dOUENTYkhybHRrZW1pTjBWa1VCUlhGK0IyYWZSOUNGWUhz?= =?utf-8?B?WjgzcXp1ZVFJRktqcmdiV1NRMUJnNGxieEMvdlVES280eTdzbUpaUmF0Tlp4?= =?utf-8?B?TlJWY3BadGRIM1hQYVBRNjljMmo0anM2ekpTMU5Sa0tnRXRIQUFxeGRvTEZI?= =?utf-8?B?MmkrTTNoa2NaMFlCOHA1czZRVzl2c0U2aTdXQnJBY3Q3UjBPbjYxTGhhTjNV?= =?utf-8?B?UDVwemgwQjRoUmF0Zy9KVWsxT2hBUEd4ZXp1N2k2UXFadTk0bUVDa0MzUUF3?= =?utf-8?B?MkdyN3hYdUVTMmttRHRUUElLTlgzZkZFNHZwVXB0UU5McWtoRHlWVDRhZ2pI?= =?utf-8?B?cmdKTkUzTXhjeUwxcXp1ZTh5SmVENG9uWXpXN1JyS1MwenlFUjdiOGxNWXha?= =?utf-8?B?TDBVOS9VUk1adUhEczJsZEdjREV3S0lCVXQ2UEppY2ZvOWRvem1QSmloWGJj?= =?utf-8?B?VExzaXVDczdxMU5RUm9EanVmSVErY0VTS0RTSC8zWWZpR3JLRWNkZ0lETERk?= =?utf-8?B?aVo1UUEvY3FjVDhWMFp2V0Q0Y2dIVi9HMHh6Mm5pWnY0aGp3TFBEVG03Skp5?= =?utf-8?B?ZlZCa241U3hHVzFVR0VrZ1dmWXlFbytYamZKcCtlNC9mTXBMeGFXZkNmOU52?= =?utf-8?B?T2drQlQ0QjN3TDN6TW5rekJOSXdJVWVCZU9lYXZXQmtxckFWRSs4MCsxaEY2?= =?utf-8?B?S28vVS90bUYrV3hKcVV6ZVVZbDc4Lys4dFJxV3FVV0ZDcUFDNDh5d2U2MUNy?= =?utf-8?B?UU0ycjlHNUEwMndJUEhhTkhJaFMycXRIZG5SWHEwYkRrOXc3aVJIUT09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1d90f3c-7717-4ded-3177-08de5289a37c X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8822.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2026 09:53:44.1125 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gW0WrvKL4JwZDvQKsz71+W7yPCpD2OIQyx5vVFaeTmAFMEezYZgIIfXbNdTxIg76JtpOy8b+xJ/4+OQCkdJBmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7798 According to USB specification: For full-/high-speed isochronous endpoints, the bInterval value is used as the exponent for a 2^(bInterval-1) value. To correctly convert bInterval as interval_duration: interval_duration =3D 2^(bInterval-1) * frame_interval Because the unit of video->interval is 100ns, add a comment info to make it clear. Fixes: 48dbe731171e ("usb: gadget: uvc: set req_size and n_requests based o= n the frame interval") Cc: stable@vger.kernel.org Reviewed-by: Frank Li Signed-off-by: Xu Yang --- Changes in v2: - replace int_pow with left shift - add R-b tag --- drivers/usb/gadget/function/uvc.h | 2 +- drivers/usb/gadget/function/uvc_video.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/usb/gadget/function/uvc.h b/drivers/usb/gadget/functio= n/uvc.h index b3f88670bff801a43d084646974602e5995bb192..676419a049762f9eb59e1ac68b1= 9fa34f153b793 100644 --- a/drivers/usb/gadget/function/uvc.h +++ b/drivers/usb/gadget/function/uvc.h @@ -107,7 +107,7 @@ struct uvc_video { unsigned int width; unsigned int height; unsigned int imagesize; - unsigned int interval; + unsigned int interval; /* in 100ns units */ struct mutex mutex; /* protects frame parameters */ =20 unsigned int uvc_num_requests; diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/f= unction/uvc_video.c index 1c0672f707e4e5f29c937a1868f0400aad62e5cb..9dc3af16e2f38957198bf579987= f4324fc552c5d 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -499,7 +499,7 @@ uvc_video_prep_requests(struct uvc_video *video) { struct uvc_device *uvc =3D container_of(video, struct uvc_device, video); struct usb_composite_dev *cdev =3D uvc->func.config->cdev; - unsigned int interval_duration =3D video->ep->desc->bInterval * 1250; + unsigned int interval_duration; unsigned int max_req_size, req_size, header_size; unsigned int nreq; =20 @@ -513,8 +513,11 @@ uvc_video_prep_requests(struct uvc_video *video) return; } =20 + interval_duration =3D 2 << (video->ep->desc->bInterval - 1); if (cdev->gadget->speed < USB_SPEED_HIGH) - interval_duration =3D video->ep->desc->bInterval * 10000; + interval_duration *=3D 10000; + else + interval_duration *=3D 1250; =20 nreq =3D DIV_ROUND_UP(video->interval, interval_duration); =20 --=20 2.34.1 From nobody Sun Feb 8 06:04:55 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013029.outbound.protection.outlook.com [52.101.72.29]) (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 16457389460; Tue, 13 Jan 2026 09:53:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298032; cv=fail; b=cXymbgxFyAO5ruRNlrqPWyGRivn7pWy39xz0DqXyHsZjeqkLVPaSomyYu+ZnV+G7Hlts4mzerb1uBlULwb03NtacGcZ63Wg18xk9dDVaohUEdksiRA01Gc5B4E0/2kkBUqZCzbTL2iqKm69NdBLekkMcLT7+5Af0wtYyXKDGad8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298032; c=relaxed/simple; bh=pzeUxTT3RV+/Xcn1D3snwMrEPzHZa1zg3QOGxFm+O/g=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=r7rBBxzSvoRkUNj2dQVVr4aT56sPQVRIkNVBEkbFJGLrGi294hmj/DaACkTha1mUU9mYlmGCAtvZwMb3R9iH2zGPgkbCoIB2/h55DYZwbHLPe5U2I4SyELwGNErK8FMIESP8Q6S8xSODuuc6k2lPjT1l64GiizkxFfN0bDmKLaA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Cti/rAcp; arc=fail smtp.client-ip=52.101.72.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Cti/rAcp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hottHDWaGLLxs7Qiz5Fc18Pp3pGzoM45UXoCiIpkmHoJEyJdQcQrYnLNZUh2hKkGUM/hFWQUnCzsQ99AiUEm/bK/1UBafcjM5b8an9YBMb1BnbdYvUFZv0FHkyQoni1LC0g5kOA1woCbFwq4ZeivOfLxEn+9+nOk3gGAOxKi5T1hWUEDBrqbixWXRnH6T8BNn/gMmnNk81WA1yf7Z0c8ihrRFEXxtibKLcB3Fy/CUldQ/28dZ5BPv5DVXYvnzTs3oT67zyKFNfCFhv/asNQBAWS2/oT8F+F71NEJ/gafs5gpu9YjJXGRTmxirerY36NzW+1mE6LDujUtvpgne9GxjQ== 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=wKN+fN8BLjEZXTzjK/FF+ytumogtHlNP8gpq6CKHaQk=; b=ws092C59M9oeHMVcRSef7u64Ggtnmg0BnNvQ6VWtlqFWWbyyxoXjUw3uhxOgeCF9F14QRTWfsz3b1gkQkyTdDpw11KdJknMf30DHzKtFk737EsUKgL/4ebzpzZLEf5qhG1iKS45ZihkjxNY8OShT/0xkGW+KzGqoq4AafqVWCmRGku4nO1y9uUxTBKL1JeruMPXJk8EZ+AeLS5lm4KtMroHyAR8ZlG0/KkY+KhYOd76dKETrxG1ir1UL4ZJKSwtORNTvMe+HqRb6OpTdJ+OSRpx+q75r/78rp5Wun+9CcpliDBFzFZztXtUhE2OUxIt/qZovKvjUNdkgY9FopfzqPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wKN+fN8BLjEZXTzjK/FF+ytumogtHlNP8gpq6CKHaQk=; b=Cti/rAcpN8OfxLCT7hnFaDgzCKrlqDXga7gE/KcRPJOXED3itA3RQHwts6hi9xw/K+MgyJ/M9EphID+qz4P8C6iP/iZsrbQUIv/3hv8vXddcs/HmSMLjLhgCmOQJ4Nu77RMmUOWO64QfFa9v2jrYogoAub4IfdIH8dmiuYwtbSfADAbgpA4OFkyBOQ5ylo9IfITDcdv6apcDAx1m3vsQ5LGwozixHkSJkDe8Di94py0OfxQV0L/5mTS9eG+PW5h+Vhux1/6cDLRZmD1RvWOBhXdHUiYXXYdiCv3GQznTkhBOY9wIlCZy8PlOsxW3ttRHPKeoPMEwCM8Lp9pw+9zpIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) by AS8PR04MB7798.eurprd04.prod.outlook.com (2603:10a6:20b:2a3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Tue, 13 Jan 2026 09:53:46 +0000 Received: from DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce]) by DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce%5]) with mapi id 15.20.9478.004; Tue, 13 Jan 2026 09:53:46 +0000 From: Xu Yang Date: Tue, 13 Jan 2026 17:53:09 +0800 Subject: [PATCH v2 3/4] usb: gadget: uvc: return error from uvcg_queue_init() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260113-uvc-gadget-fix-patch-v2-3-62950ef5bcb5@nxp.com> References: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> In-Reply-To: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> To: Greg Kroah-Hartman , Michael Grzeschik Cc: jun.li@nxp.com, imx@lists.linux.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1768298011; l=1033; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=pzeUxTT3RV+/Xcn1D3snwMrEPzHZa1zg3QOGxFm+O/g=; b=L94Eu66y2QiqrsbFguSEx55nkeYaj1PpLR79AIQ5PoQ/Mx1N9cfepSw1q0Tu7Nb9u/vdxD3L+ O6hUvDnBIwmDsexVs79XaWPfZMDugRNODotISOUTQPGjrRwyIf165FM X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SG3P274CA0009.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::21) To DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8822:EE_|AS8PR04MB7798:EE_ X-MS-Office365-Filtering-Correlation-Id: 1ae6162f-bafb-41c2-5e31-08de5289a511 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|19092799006|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VHRxMVVBak1QWUdrSkI3M0c0THNJMkI5bTc0YXRMMjVnV0xKenRFRDFkanAx?= =?utf-8?B?dkc2bTg1VVBEZVZvbVFlQXZLci82eURjMlV5Uk43Qzl3VHhqZm9wZnNZVTJp?= =?utf-8?B?aEFKRS8rZ3BjSVpkS2dHbXNnazU1OFkvdHVUZkFJRGllakpLd1NDdWdNMG40?= =?utf-8?B?NmlZR002WnVqbk4xeDUwOFdEalJNS1hzakE0SGdPbXoycm5ldlZLNGprY0VJ?= =?utf-8?B?cTlxVGVDL1lJa0Fua0tjRVdUcVJnbUxVRjFXL1dWYmVKQ1lrVHZWSmtDSVJl?= =?utf-8?B?VWVMeWdtZy9VdDRodkU4a3JGa1QzMU9rQlVWTjVDUjhObENWY1BBdlRoSTJp?= =?utf-8?B?bUVuNDhVenU3OW9NTjFLUlhGVnNKdzUzVmtiUEFma3ZSL3Z0SFdTRS9Ra0Zv?= =?utf-8?B?TEUrQUt3Z3BBOEtLd2hGNVBybTJFdHVFcjNWa3BsQ2JYUlR3cE1YLys3eXZO?= =?utf-8?B?a0ROSERPS21UVmRFaENMeUJMMkFhQ2U0Z0JzODVFdGt3QU1mOHhHRGxmdVlQ?= =?utf-8?B?T29mK3ppRnVuYTNsN1MzekJ1NzdPNHRuYzVVRG5uVFpSNFplZjMxR3lNUktF?= =?utf-8?B?d1Z2SEV5aGJmWHlGYWYwNjUvTHNTdTVvRnVTYzIvUzZCbXhSNTNWbGlXd1pV?= =?utf-8?B?bDRKdzJINW9lU1NkamlDdnJMKzFwRkh6bUg4T2szdjZleFExZWRWVGpoekNi?= =?utf-8?B?MEtLeHlhb3gyL3ArQ2hIRUdPTWloRndpQ0V2N0dHWTVzQ3dmZm9sT29VOU9F?= =?utf-8?B?MmF3dWMrUjA1MkgwVUhXa3IydGQ0U1UrNTVYeDlGWG9xYUMxYnIwcDFsWjlv?= =?utf-8?B?cjloTUNWNEM4T1dJR0RuWjI0QVM0TW1hU0E0SG9CMm53UDV5U1ROd0RHdnNO?= =?utf-8?B?dFpuQzlGcENCYWdHcCt1VnN3TjJEaTdWWThFTVhSRi9hazB2NnB5ZDFpTk45?= =?utf-8?B?b2JzQ3h5bGlPbnZwUDJFOTdJTTJFRHVBYVROOXg5NWVQdnkrQklVTDVocmxw?= =?utf-8?B?K0NRNkpOZzlZN1FCbDBuTTBHVlFTNG5sdldSTTgwNksySmxMMzZBYk1IZ0JR?= =?utf-8?B?OFU5YndReWFkT3NNMHh5WWtkQlNDV1RnRnRyaGlUU2xJOTN6aGE0U1MxN1hp?= =?utf-8?B?Tyt0QXBEWW05WUVjWU0vU2hYeU80VUUyYTFwRTV2UzZXVTJxMHZWQjNhNGcr?= =?utf-8?B?V2FHai8zYjNzVzVUSHhtclRJajdRUXRGeGVwd3FCR3hwRDMzaFkrZmhVNTBZ?= =?utf-8?B?eEJwWkZnWldBUENiSE5ycXNNbnB5djRpNm03NWFyYnZnTE1sU1ljTFhZL1Vo?= =?utf-8?B?eGxEWUU0NTdKWXZHODRTbmk5dnBuejRwNjlOMjRIS25qRXBTTS8xb3RVZldm?= =?utf-8?B?NE96KzNiMEhsNnRuTmhYZVlBS21EdWlNN0NXeXNSQlFHZjREK215SXcxRTBV?= =?utf-8?B?eTJ4Z0dEajh0QkhBbU1tNU5wb2dFLzhGZEZBWm85RG9TUWpDcW1MMytZYmtC?= =?utf-8?B?UmZ4cVdWQU9hdmpDT2Q4bitDblJyWE96WWpBT0RLQzI4ckE1UnJjMC8vdjVE?= =?utf-8?B?YlhJSkdzSjZuVkpqNDNYeXovRW1WT1Fka09rZjZhdkk0aUpmRjVDMkoxRDVT?= =?utf-8?B?eGtzSkFWOEFLRUNkYVlyQzdzL2FLS00xQkFkMlYrb3VqdFBnSEl5eWJ0UTF3?= =?utf-8?B?Nm5ueUJwRmxITHJidkxaTWFYZm1MTHRMTjg0a0lkK2tlbFFkaDMvNFlSVlZF?= =?utf-8?B?c2RUK1R0N3BDNzlOL2dzWlNUVTh0eVhxbGgvWmRKd0hJbm5mYmtET05wTDFB?= =?utf-8?B?T2xuZThJNjBsRjhRRVZMNmRqOEg5WFg5Z1k3WVBqN1Z5MUlZWWpUM0pOS2tm?= =?utf-8?B?LzNTN09xMmxmZlBKMjVvbjBPMFg4Wlo4allaZkVwd0w5Z0tGTUlSSnJJcXZZ?= =?utf-8?B?TVpVaHQvamZJbHU3ZVZDNVRGWmlNZ0JFd0hnWkVHWFNBZU10MmI5V3BxbTdl?= =?utf-8?B?OWt4akVyYjJxejdQNlE2djFab1VydEYveUFDemRhREoxdUFlL2ZOVE9DU1Vl?= =?utf-8?Q?GYweGK?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8822.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(19092799006)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T1luVkVBT3RNbk42aVNxLzc4TzdNcHdoNXFhRVZBYWR1WUkwTkh4WG12Rk9H?= =?utf-8?B?V1J4NDNoUWJPR0FaWDl5aGhKQVZVUjZZWXAvbHBVc1pBa25OTEl3MUl6QXBy?= =?utf-8?B?ZE1lL0t2WmZrSjlxZENOZEFxUFN6ZGJ3UkxxV1Z3NkhtNFd1RUllTTlqbEhR?= =?utf-8?B?Q3hMbXpJK0tkamNKQTM5eVRuSlN0V2hOcjlDRkVUUkVheDZNYWFNK1haWndD?= =?utf-8?B?d0VneVFGMm1ZRUpLWDZMRUpvNGxMcFdsaGxNUXlYSFphekFSS09ENXV2QXRD?= =?utf-8?B?Qyt4a01ZNjdZYmVwcTJ2aHNnbmFOMTd0U0NibWpTbmY3VkR1VDdmem9IeG8x?= =?utf-8?B?Z3VSMEswSHd3c1lMeUdQREVPWWUyUURkUWk0cHE0UURmTC9OQVNnVzlrZm43?= =?utf-8?B?am1mZG9CODBrYXF2aWVWRm1JTzZCL0FBTCtEeG9UZ3RnRFc4REp0MEtWazBN?= =?utf-8?B?WVFxc3g0WVlqcEVsMEcxR0p1bFZEY3I3UjlhMlZtWHBBa2czUm5tdVJ4RjV1?= =?utf-8?B?enRQNkpEbDNuY1FNaS9zVGxyTjM5YXR4RWZkb3BIZ2padUJaOGJtT3NVZjBr?= =?utf-8?B?NlJEZGRSdWQxUGE4K0o2eFBRWVEvSUoxMFY1aEg4Y2FFZHBYYTFHWUpmZGxR?= =?utf-8?B?UVNWbm9ob0VWOVNVUVhYVndqTzdqeXZFQVlDQlVTblRrcUFtWmxpV1llOFRZ?= =?utf-8?B?N0p6UjVXVTM3R2ttY0tPVk5WVUR1VTJpdkttQWFwT3ByVm9CMWFOZUdGd1Uz?= =?utf-8?B?dVVtd0dpUmNiV3ZwUnJnK1RYbkRVTjdSSXNyQ1lSakgxL0RLcnVGdFV0TVNp?= =?utf-8?B?NS94TytNWWIycVJZMnBmWlZlZHRpWlNFVWxHdHh3dzh0WE1MVU8vd2Mvb2I5?= =?utf-8?B?VERRQXAxL1poUHQ3YUI5UUdZdmFwcVpvWDNBM0NCczlST0IzQ09nY0JrcEVo?= =?utf-8?B?WUlsYkIvWkM5NkMxcndwUGo4OXV1ZGdVSGZlczVBem1ieFhTQUdCQzQwTHVm?= =?utf-8?B?bnpmbm10UjJOSys4NmlhWTVVdFN3aWJDSGo0T2hSRGY4TXFSWW9JdVlTaGtn?= =?utf-8?B?ck5acFRLTTQ0TUtzTW1NeGtpb1JrWUNmYmlsNzRoYnRxNXdPazFyOUpnU0dR?= =?utf-8?B?ZTk2VGZ5L1AwQXUxNTREY0xNT2Q4OHpXQ0JJTWphK0pBWk5QNEVPOW5lTEFT?= =?utf-8?B?MmlPdXF6UFFaaHhER3NyYmxVZHliMGFlTGR2azl1U3hOdDFQbnVWZXczbGFY?= =?utf-8?B?ZGs0bGR2anBlVVBYREtmKzJtUG10cHB4Z2R0bCtJd3hnbHFOS0h5Z3U5SXRo?= =?utf-8?B?Y0prc25sRlN5TkhXaEx2WUtxdVFDNHdSeE4vNFhONWRqNmNrVk80TUxXZ043?= =?utf-8?B?UlRhZ0J4eDNPVU5DalhoZTAwdXRBNjJWeFp0TUE3Y29pcmwvWVFmZnU2SXJB?= =?utf-8?B?RjB2bUxpQ2FJMStwOThoSkN4SEFHYnk0b0hXYmVSdGlSVUlpdWxsZk9jY1lx?= =?utf-8?B?N1FES1J2dExXRXlJaSt0TGpqOHh4cU9tZ2h1SEJwVVFzRWdOcEhoWFdjcGNy?= =?utf-8?B?ajVjazd6LzNUQVZhM3dlRS9oVHp4VWdRQ2Jhdk9XZkcraW1uVEhZSW1lK2tn?= =?utf-8?B?RC9mZTZQZ1BuNWtTQzQyUFMwWTNRVjkzN2Y2QXY2Y3M0eVpHQnFnSXdjTHA0?= =?utf-8?B?Y0gvakxwTkFveDhxTTRNRSt5RlhaZUw5aFd1WDNNWDVaeGdKQ0h4SHd5am82?= =?utf-8?B?U05NaDZxcDJkUEttbGp2d1c5VGt5cE9VQUhsN1lrQjdLUWh6OU8waW1YT3l5?= =?utf-8?B?SmU1RmkvTXAvRkloT0hlMUpnL2h0Z0NzLzEzT2NJbTZ5T3dmODgxNkt2dzVp?= =?utf-8?B?RDRGaXc1NlJMNStZQ3Q0SHN1WHV6SGc0bHRSNUpzem10THdydzRheGNhWWsr?= =?utf-8?B?QUhTSllCMjB4ekVqLzZHR3ZZL0lma2xPWXk4bzVudzhvd3kvRENjZ2ljVWZs?= =?utf-8?B?NC9DdEUwRWdHVExwZk1KaEptUExWTEFFbWJkUzdKaXU5VUpUU0FqUG4yWHR1?= =?utf-8?B?bThCdmtyaWl1bFFITy9UWFF1VXVrdzlGbHA4VitrYWU0ZlQxMmxmSThjMzdk?= =?utf-8?B?akl3UU1zM0NMSGk0RXhwRW5LLzM3bktNb2I4NGJ5WVZheEt3eThXOXVDYjlV?= =?utf-8?B?NEV1MmV5dWxVOU9vVVJRaFk0U0tEeFJacVdpT0N4Q1FSUTJQQnFNVU8rbGk2?= =?utf-8?B?TXB0akd2NHZ0UkJKQjVvVlU5UkJRTDJnOUxpY09oemw2cHlXWjhTdjgrbnRR?= =?utf-8?B?NDVyalE3Q3NJaHNvUkdtWjJRUXMzUVk5MVdEaGYyM2VGM29SdjNwZz09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ae6162f-bafb-41c2-5e31-08de5289a511 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8822.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2026 09:53:46.7702 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ioF4eksbsuVzI7SaDXiUGPr79UWnWiUErg0Wt4DhHhGjEkGGJD+S40+TRZJAtYdVymkeFRMYNijx4Z1Qgm7c8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7798 uvcg_queue_init() may fail, but its return value is currently ignored. Propagate the error code from uvcg_queue_init() to correctly report initialization failures. Signed-off-by: Xu Yang --- Changes in v2: - improve commit message --- drivers/usb/gadget/function/uvc_video.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/f= unction/uvc_video.c index 9dc3af16e2f38957198bf579987f4324fc552c5d..f568dee08b3b7273be124a67368= 2c02d20f7c77b 100644 --- a/drivers/usb/gadget/function/uvc_video.c +++ b/drivers/usb/gadget/function/uvc_video.c @@ -838,7 +838,6 @@ int uvcg_video_init(struct uvc_video *video, struct uvc= _device *uvc) video->interval =3D 666666; =20 /* Initialize the video buffers queue. */ - uvcg_queue_init(&video->queue, uvc->v4l2_dev.dev->parent, + return uvcg_queue_init(&video->queue, uvc->v4l2_dev.dev->parent, V4L2_BUF_TYPE_VIDEO_OUTPUT, &video->mutex); - return 0; } --=20 2.34.1 From nobody Sun Feb 8 06:04:55 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013029.outbound.protection.outlook.com [52.101.72.29]) (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 B6637389E0B; Tue, 13 Jan 2026 09:53:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298034; cv=fail; b=X26J9bTEqIrXc21nIOsIfuUqB8YC+et7wsy5B9bJLxATDdn6JgVAXepvjJRRrKSZWhWTavLL/0xfYgxyJwWeSs/nUwSpsCA16Dwr6o0nH12c5siWSHntRw1xsMfg37PiMTMzqDJ21MAznrwrrPJJ1gJgwYdsJpXUR9BDt3GX9pQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768298034; c=relaxed/simple; bh=/xppMTszu8W+sHVD7VIxWFvFV3SeoGZ+c8GH6wJbO6Q=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Llf5Xujvb0+NUjDHZ3nW8+j7Pgt0kyfOpOx0KZsGiRhosWTRovCF9Rxnzg/o+RCyThWLBbusnQZNija4eiM5xkTznlMQh8BHajOfoLFlBE6kfSe5DeuphufHGU7q1Kpegc/XvgCol9iXBQ69dss+ieUINEx7a/tGFSmK5/wq2Fk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=n6fz4Jke; arc=fail smtp.client-ip=52.101.72.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="n6fz4Jke" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ECnLz9zBD9+sEvHDTzyyEAVbvtKwuOWHtdhVbUGqtYKALQVgp1Mn4Cv+W+azPCUdSn/LpAPhggzfoGkvvhCMYDDT0KnIgI+9zxMTsR8m5ac6lPDa8n6oAWzWa83a7wERkvSo2LxaCK2oduRhhRLrLQSWnA3w6aOw9rtccX+eM3Y40+aUbyfCzRpdsbRrP5KhfWHmBjF3qpra4WLswy661d4eNwaA1k/pyUbx4fK9+8/lxO2PgsNe7tx0zrW0rsaNVsccleTbq0+ya/INMPv9F9Jeu5dfnJPBMfBxXgFzFqdVxQRtKWwrEWC9RoX8+jEXvn20Qfwg7Lt/qGIJgE7mfg== 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=Emt5nygwpweGWVW6KrNdiFBErTqtJBaZ1EjYO7zts7k=; b=eJTWt+4ktQJlWCsT32Of7ECG1G3g+NAGPNYHnvyytfexvZnqhKzgu8lVdtYuXsh5Gv2UzcWd0Zc98ohpoO30V1fChUBbm7JSUCDJO15ygFlGrgD3T59qrEtihdHAI/nkKP+4hi5nCiFkboBUU3MsGrny0TaXZT5dfdEYsjoQzjISd3RFRCEt93Y/lDa5+Prx54qTKqHSOMw46HCQ7Afbxy88XP+e14WOVEIt/AFvSUhbkcdzZ31EupBP89el4C1OH+MrSvZw/rd1ULSZTRDO+ky+nAboG/InxLOElr1Rn2TUnXwDjnOPhna0Q3JroxoP4FqmLd32i5nRmqpBpSIuBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Emt5nygwpweGWVW6KrNdiFBErTqtJBaZ1EjYO7zts7k=; b=n6fz4JkeDEjmyR9zKk3kv5PIa9P476HMkRVzJbHxrj6JJZ9TdlCtQsKU65JOM6yQ5+QzCTc23IRwhA1q2C9sJMqRUTPe+/9IaXbEgj2svUavXAEqZW9J+aTV50zFu4MkVqxz+Znm1MVQhu/JM8seeQ3B+PBBp6CfmOFZAmShWhekasFdzXIJLiaJFEAw4zHvDDrSGQxJqPUGhIkASXHdI7K9iXLSIiVMcmggfT4AOA7nIYIQU+uYB/xqUYghMqb/mgJe3T11SBTXYeNQLA6Bl+yDwW/BkMWMpRPAM42UIk9CTcg/x528+MVFiWBN3bmblv3gw1WMvnxLv7PB65csLw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) by AS8PR04MB7798.eurprd04.prod.outlook.com (2603:10a6:20b:2a3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Tue, 13 Jan 2026 09:53:49 +0000 Received: from DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce]) by DU2PR04MB8822.eurprd04.prod.outlook.com ([fe80::c67b:71cd:6338:9dce%5]) with mapi id 15.20.9478.004; Tue, 13 Jan 2026 09:53:49 +0000 From: Xu Yang Date: Tue, 13 Jan 2026 17:53:10 +0800 Subject: [PATCH v2 4/4] usb: gadget: uvc: retry vb2_reqbufs() with vb_vmalloc_memops if use_sg fail Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260113-uvc-gadget-fix-patch-v2-4-62950ef5bcb5@nxp.com> References: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> In-Reply-To: <20260113-uvc-gadget-fix-patch-v2-0-62950ef5bcb5@nxp.com> To: Greg Kroah-Hartman , Michael Grzeschik Cc: jun.li@nxp.com, imx@lists.linux.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Xu Yang X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1768298011; l=1989; i=xu.yang_2@nxp.com; s=20250815; h=from:subject:message-id; bh=/xppMTszu8W+sHVD7VIxWFvFV3SeoGZ+c8GH6wJbO6Q=; b=FbNhxDo4HFBlZ4AKTCOGeoMBzCrjDSy3x74+WHGyz9tfbjfhdMlTFi9Wl9R0N6ao4SypTFrB8 Wc/LaxS+xWuDwg9WgtUJJTKXDNpFNpJuRR9dD9OUvlLFX7W8hYHR7+a X-Developer-Key: i=xu.yang_2@nxp.com; a=ed25519; pk=5c2HwftfKxFlMJboUe40+xawMtfnp5F8iEiv5CiKS+4= X-ClientProxiedBy: SG3P274CA0009.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:be::21) To DU2PR04MB8822.eurprd04.prod.outlook.com (2603:10a6:10:2e1::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8822:EE_|AS8PR04MB7798:EE_ X-MS-Office365-Filtering-Correlation-Id: 758977ea-d520-4b4f-a5b3-08de5289a6b5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|19092799006|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Rk0yandNRHZRVDhwbk9Tbi95d3RDZ2hnQ0VnRVl0VUIvazVNTzFOOWZpR3hF?= =?utf-8?B?N210Vm9LdHlrbjFKL08yN1NXbWRkRVMzbDVnbTBOc1U5NmY2Q0tpN0RxQVdp?= =?utf-8?B?R2NGM245YnJzbSt4MXdtZWJUaGhmL040QWEvUmRxOEJDcW9ySU1MeUZxcy9Y?= =?utf-8?B?TUs2Y2RlVE9xQjdsV09tZUdsbUZSUHh2bEJNM3R2ZjNwQVVlMFpNN2ZWTmdX?= =?utf-8?B?bmRRUkRCNmcxVTNHajlLVW45SUVjc1RKM0I1L003OGxoeUMwY01ybUNFSFh5?= =?utf-8?B?UFRDVDhSNm5CUkcrNFdHOVV5NnJnSFRlTzV2c1d1ZlIvNEtMUkRQSC95NVhk?= =?utf-8?B?bHoxdzFCN3pJcmx5c3dqTlJLaW1WNENGMlFGM2hzeExaWDBMODUxb2JrTEJi?= =?utf-8?B?QXNHU2E3c3hDeFduUUxBU2RicnFLVUlqK0ozZDFZZzN2SkxFeEFuZ0h5SEEy?= =?utf-8?B?dDdUaVlrNlMxVUxlSjJNWlJPMkFtNGZOSUNOcE95OUx5RjR1NSsvcXM3bzZ5?= =?utf-8?B?Q0F0T1NMeFlIMzVtaitzRTVBNyt6RkM2Tm5Wd1U4VVZHZ3J6bU1PRDQ5SWRV?= =?utf-8?B?WVF1WXg4UExKcVV4cko3ZXc1dHhLU1JSOVBRMENPWk5GVkJpSnBYd29FRFFs?= =?utf-8?B?VXp0cHpOSWZENDBzR0tXUmxjU2tLWEtpNE9FZVk5UjJIeE96MkJ2cG5yUFZm?= =?utf-8?B?ZFJOTzZpU0xqY2NDZ2tYaTJpcDRvYi9oeGZIRHNzZUtERU1ZQVorQjNxNW5y?= =?utf-8?B?RTJVTTdpbllMYk1URnN6YndOOTRBa1Q3RHNlTkd4em13T0tTYUFJbGRtVHRk?= =?utf-8?B?WjJDQ3FWTXFROXdOUHkzTUNLV0NENTNON210TFdTQkpIQ29UeXF0M3VXMmlU?= =?utf-8?B?alN1UitRQldZTUYzOUNRQkFGZkQzOGtaVGM5REpIQ2ZBUnk5NVJWamNZTjA1?= =?utf-8?B?dGdvVTNzUmNMYnVZcDZ4YmJEZ25ydTA5aUdiQUdUNWNIWG4vcEkzMnc2SGVI?= =?utf-8?B?UkxNSFNNMmgzRno3bTJLOFpHTE9sdExjQnVJTUNSRkR0bmppdGNqYVd3OVhq?= =?utf-8?B?Tkl3MUpQTlJmQ2doWndiQ0ZNMlQ3WjZmSzNlanE1VVcrcnc4MGRzajN4ck80?= =?utf-8?B?NGJpZU5BUjdxVTNIZ1pDNWhLUkFnN0cxZFJKN0VacEZ0U1dZakxGNnh5RHdR?= =?utf-8?B?KzVmRk16RXNPY3MycHVSNHgzRzVhaTdMRksydFZOblJUU0N2Q0FSa0ZGR3Zp?= =?utf-8?B?Z1RFOTdGT3lsSWczcnpGeC85Wm03SGZQckh4WCsrVWNuT3lrNFRydndZM1d6?= =?utf-8?B?eVE1TWhodmVtZTZEM3puUFNZdExuekVUWWxrYlhkM0JKQnpmL3hHR28zbnZH?= =?utf-8?B?a3VnbGFDUmV6M3J6Y3hZVjZMUDNrZE9Ua2hubG1adFVUK3ExVGJjdyt6cS9z?= =?utf-8?B?K21LN0xuSEdWWVNVSnZwc3ZNYkRjOFJkZW9QaDNCaXlnS1Fucks1WGcxcFRv?= =?utf-8?B?K0dvTURPYWsyN25CL0l6WGV6MEFBeEFIOE01N3hyMVZFZTA0MGlyYXNadHBO?= =?utf-8?B?bXA5anlMbGsxVFV1MlVyUVByNEtmMDhPN295aFQ3NmlERHVaMU9rWFBEYlph?= =?utf-8?B?ek41ZWp1bDBQWHprekNTSSsyTE82eWtISmRPZmNZUndtamNLUFJoNmthZmlW?= =?utf-8?B?SDR5VkMvczF0MzBLTHFQd1Fvck9jcExQNzl0YUVueWVjend1UkJuUTZTcXpW?= =?utf-8?B?TzdsSkJnWThvMG5VRkFiS3l5Z05oK2lCQm9wa0ZnSDRzN1BDV2xnTjlEUzlD?= =?utf-8?B?bjBNQk5OdGNzcFZaNmdCT1RVMnplZFJTZERnQzdRQjhBR2dXUU9SWGVxcnRV?= =?utf-8?B?UU53c3N5dU0yZTg2NDM5ZGNSdFZxNFBMdDVGVnJzM3IvQXlsMmkwNzk1ME5M?= =?utf-8?B?elF0TExGV2VVVDhpMzI4M2FXUGZnMitueG9iYTZmNDZ6ZHdUNEw3OHFVYW9z?= =?utf-8?B?cFJEcTgydDdHZmVkSVhpN0xpdGVKM0pGS3dVQkRoQ3hFNyszYjVDM0FydWha?= =?utf-8?Q?L+e3g6?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8822.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(19092799006)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?emlhWFl5VU5ZYmVBK09JTEpiOFU4amlZUHEzVzFrcHhvNWpvSTVLQzMzbzZm?= =?utf-8?B?Q0lPTnJ3TUIydEhSSXhpbFk0Y1J1MnNjcjY0NUFUT05yaGl4SmhNOG1QSUxQ?= =?utf-8?B?R0NiUWdyRHp3MnpwUllBRTIzYXhmRk5aYXptSFRsdWZHOEVPdHZMajU1Y1pY?= =?utf-8?B?dVpScjcwSDcwK2xWWE1KWTZrK3pxUUpmUElNVlVEYVZXZXFNMWlrMXpyS1h2?= =?utf-8?B?RkcrY2FwVU5PNGFsOFkzeUw1MlRXT2F0bnR3b1NCSVZuQmkwYzdkNEZQdlNW?= =?utf-8?B?MTk2eXh5ZG1Wdy9FRDRjSVdubEpBYTQ1dkswUU5BSTBXR0I3d0tNSzgzU3ZH?= =?utf-8?B?aG8xb2lMWThDOVhvbHJnQjNtMmora2ZmL0MwV2lRaE9uN1FDOStFOEgvSGxO?= =?utf-8?B?djg3ODBRZnZFVVovU2U4Nkd1VjBZUnJUVnR6TEVOYWZzenJnSThnZ2NkUFhM?= =?utf-8?B?bUZqNzk0SWdvTUJac3U3RDV5OUhCSHA2SWJtZEZSeFJFL2hFdmhoUDNCbExa?= =?utf-8?B?SE1CanVsckVsMVREMmVWQksvWkh1bWFvVGdXTHcvaHdBN0pmU0xVcFRNYU1j?= =?utf-8?B?NkhKU0grejI3TmxKOE9TRkllbnNsdW5yQm9ycFBCYVhobDZTUVRzelZnUTY1?= =?utf-8?B?OVVkOXpvaGJJTmdVQTUyMWRyRFF6eEUxMzFsVHo1M3JlV3RiSDRteWtiTmU0?= =?utf-8?B?clB3bEswc3NndGF6bStrbnRwL1FWbXVoMXRncW90NHFTcVVUTEVmR0pUMVB0?= =?utf-8?B?ZWwwc3AwUUI0ZEtYVzFEcWI4dWxFRmpHWlk1TWZRanpuYXFPaURzZmtqRG9v?= =?utf-8?B?MGFxekdZRHc2enJ0UW0welFHekY5SStGQ09JQ1BRVnVPM3BnYnNJNHI2NDJV?= =?utf-8?B?YTNxYkltMUJqY2hKdThpUWpqdkZIU3diMDBUYVlkZzZpK3hUVDNqVXlYT0RZ?= =?utf-8?B?TDdjRHdVWjBTSnozTHlway9vWFdzZXdnSmozRUpzYVp5NCt6d2EvdTBwUkdS?= =?utf-8?B?NHhYSGxHMWhKZFRaZ0pOQjYwSGtmdUZUblRYVS9pcnRDOWNuZ05wTHJ1RWRy?= =?utf-8?B?NytkaTlzMXB4QmdyNngvdjJxcEk2M1ZTWGZYN3VBaUxlL3pBdTcxYjZNNzVu?= =?utf-8?B?bjRzUDF6K2JNSURBWUFObWxDUks4ZUd2Y0YxOVVlYWc1QTJoTldoVWhBbnlt?= =?utf-8?B?NmJkOGJPNE50bmYrOGhGYUt2dk94elhORWU1bWNHdXhkMWJldSt4MElWRFIw?= =?utf-8?B?ZkxSQ1BHMGdHbWVRQjRZUzlJK1NyYkZiMFM2SHRTWENqSXh5UVdnUHJVa2NR?= =?utf-8?B?WUQ3L0FCZ2F6d1VoWnIvejZydWZCdlVGQ3lBVklXc2dJSmR1WGtQeDhPUElK?= =?utf-8?B?eUU0dStMdVlCWklTK2t0MTJUb2N0bzhDOVdqTERHdlhRRitnV0lZaFZIUFRY?= =?utf-8?B?djFIM25rVGpSNUVtejJRRUhPRlFHLzZ6ZklNT2JwSk1lallEK3pUaXNtVUxO?= =?utf-8?B?VW1jYlRraXcrZDdtNlZ0dXRwaVlQbHpweUxoSEc1bENadEhydFovYlVqaDdk?= =?utf-8?B?MENyS2ZNL3dld3RRTlBRY2lCbGRtbTVZSUxsR3dzcFFXOU83QmRZQlA1eElx?= =?utf-8?B?cnpidUJMdXpsTXJIOGJvOFhvNDBmWldVMVljY1VPWEQ5RkZJV1h2N2hWRkN3?= =?utf-8?B?cHhmUXpudXNjbGFiVldtYUc3b0U2eGFSMWRMT2IzYmZwZUtkVG5KNVVJdnQr?= =?utf-8?B?eGd0UXpDMWdpYTBoS0trQlZ1WGhnWlVYMzNYMUVEWTFOQjBvV2kzbWFGdHNZ?= =?utf-8?B?aG55dk05Z0N2UzJRNHhRUzc1V29WcDdDbmE4MjgwcEJuYjlweUEwbVQ5bFJh?= =?utf-8?B?UUl4TExGY21pN1l2eDBKRGNkN2hiNUNOOThkKzRHbzhoUUpzaE43TVdYb3J4?= =?utf-8?B?VU5BdlJhNEVmeXNTYXd3a1RUdTJWY0VyMVM3bkc4SkZFWWtGclYzT2FhWkt1?= =?utf-8?B?ZHRDSHdiWDFmUGt0ek82L0FuSDg3L0Vvd2EvVG5uenZjVDB6MGxLdmQ2QWNz?= =?utf-8?B?dk1hQ3ZkeU1RRkI1dlNWdU5icE1VZ29COVhQakJvbDB3RHBIanA1NTdrSWRI?= =?utf-8?B?L0twaVVpZFFURDZGUTRrTlovNUUzY092T2dpS1VOVWRXeEhORUxLVnJadlpI?= =?utf-8?B?TlRJSS9aTHRmbEVZZEdmRmZQWHh0YXlScVJzZDNUaW5OUWxTU1BnbllHMTBu?= =?utf-8?B?UU5CNUcyQ2pUdkJqQjFNZEpJWm4yQ3pkWUN2aTBrUis0YmpFNTYvajkrUktE?= =?utf-8?B?ZStLaGU3cmJjQVhJUitVRHcrYmdSK3l3RUd4aHd2NmVsQzNDb24yUT09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 758977ea-d520-4b4f-a5b3-08de5289a6b5 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8822.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2026 09:53:49.5076 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9QaPNf0QObOKLhy24YU1qsRrTpnhQPBBhFma5qmvwev9LB7UOfQSZXhdV2OZwmMce5pypXaBC72YuCCoVu+H7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7798 Based on the reality[1][2] that vb2_dma_sg_alloc() can't alloc buffer with device DMA limits, those device will always get below error: "swiotlb buffer is full (sz: 393216 bytes), total 65536 (slots), used 2358 (slots)" and the uvc gadget function can't work at all. The videobuf2-dma-sg.c driver doesn't has a formal improve about this issue till now. For UVC gadget, the videobuf2 subsystem doesn't do dma_map() on vmalloc returned big buffer when allocate the video buffers, however, it do it for dma_sg returned buffer. So the issue happens for vb2_dma_sg_alloc(). To workaround the issue, lets retry vb2_reqbufs() with vb_vmalloc_memops if it fails to allocate buffer with vb2_dma_sg_memops. If use vmalloced buffer, UVC gadget will allocate some small buffers for each usb_request to do dma transfer, then uvc driver will memcopy data from big buffer to small buffer. Link[1]: https://lore.kernel.org/linux-media/20230828075420.2009568-1-anle.= pan@nxp.com/ Link[2]: https://lore.kernel.org/linux-media/20230914145812.12851-1-hui.fan= g@nxp.com/ Signed-off-by: Xu Yang --- Changes in v2: - add more information in commit message --- drivers/usb/gadget/function/uvc_queue.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/f= unction/uvc_queue.c index 21d80322cb6148ed87eb77f453a1f1644e4923ae..586e5524c171f115d98af5dda43= fb800466f46d2 100644 --- a/drivers/usb/gadget/function/uvc_queue.c +++ b/drivers/usb/gadget/function/uvc_queue.c @@ -182,7 +182,15 @@ int uvcg_alloc_buffers(struct uvc_video_queue *queue, { int ret; =20 +retry: ret =3D vb2_reqbufs(&queue->queue, rb); + if (ret < 0 && queue->use_sg) { + uvc_trace(UVC_TRACE_IOCTL, + "failed to alloc buffer with sg enabled, try non-sg mode\n"); + queue->use_sg =3D 0; + queue->queue.mem_ops =3D &vb2_vmalloc_memops; + goto retry; + } =20 return ret ? ret : rb->count; } --=20 2.34.1