From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazon11020120.outbound.protection.outlook.com [52.101.227.120]) (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 7032E3CFF6B; Wed, 25 Mar 2026 11:47:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.227.120 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439222; cv=fail; b=SCnMTDtH7HZTbvwAEn8WVKdxE6xmPKs9bfWhtQB5f+SGm7umfME2sJZXPDpAAr2inEpdWyNIt5gbLGYwBe2uJEBOb/8vr7ppUJcdokSUO6A0pXzDifKHmb/GaZznevgsq5yfYa5gIYond4Ts9eqeURzFzpPyV/jXFOzLAhERLvE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439222; c=relaxed/simple; bh=BRUnWregPOVou3eLOrtwaA/8+ejTvFHUqv3VGkmUPhU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=U8kMhnTAtqLOWoPwkZwgNb/vL1c6Fe4IXIhPEVIlxp0Lv/LhAvgfpHex6j0K9wC0YT3exufeMeZhAUPxNc+qLlNnV5n+l81hlVLaDgmH/U1gwJVLjfqWQQ3Zgff3q1Vc2pC6lus6wZy+THt5BwvZQb5bWLNigWYWCmADjdrh4r0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=EBQzDQ7H; arc=fail smtp.client-ip=52.101.227.120 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="EBQzDQ7H" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=i95SYwugxtyqZMmOcNcq3Vv5oBI089DVV8m9mlD1W23NkSq/m5bL80L+47dVo/r2q1Otn3U5pGJ5BEc8LxheaDgjb7xuqjDuAR7G4ZtOaYRBa2BPR3PIyw/D5oG6PvWAtKSRvo/VSJ6hl1uDYbIb0NYZKrqLHHiNrZf4hwCItsmPLDpKTgdTch1hLdUNvKjo6g/1pUG/V9tyWB5FkqVv7IybB7h2iPugzNkey/wb9w9D8rNmJac6E7h3tY8Fo0BWMxUoXvNZwVkcftg/R4xEZY2T+NNhpL5w4xe9cFb0AeinZp+LuEETWf3UADfgTAykIMMhf+fjlPDxklZ/cPCiPw== 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=+20EqWohn5xgVSZpHYO1cUO3+0KJIM2A1GS8Mt2/0oQ=; b=nrWuRA1vlIRSsGBAzbjnlk9UZSG4Jbrx+EFBHeXJ1lhE1biaUaoURziYlG2j7DCqYZo/vEudTaTO8XXMUvhbiTSkySB4YZyyXsOxqIpteWbJMTvzI+IvDTaGkBS/P3hQVh0wZWW7mzYKTVsd8BhS9nFdMcghsgpQLrFUjdO6hv3+O7qxkMffr10FiMm2Xo+1EOzIvKR36d7UbfvTy85fNR4ny/hRCF0+U9v+FBHY9tEpRcpAq8NqzJX1bsp0M1jEWzyh3jqe4bs9/5TAJ8cfRAvbtoITlUMEzxh3Uo2RogDwPjNZjs2Usuwh8OCZde660Emvn3eb26mP+X0uXHtL4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+20EqWohn5xgVSZpHYO1cUO3+0KJIM2A1GS8Mt2/0oQ=; b=EBQzDQ7Hh+uUbXiAvkGDWz4eUoyOfv7fLGSAqNzKbYcj+ezCiRo72KZmcRUP2xOm6XybuCi3GROXUbebQAO/JXhy3M8s61Zx/rcXwebmwFt6I/uZ034yrP4YKCMKSCYXTwZamcQkovd43BZ1WI/hdSL4JaOIOtR33ZsMaMvFx56X0nYkG9oYYW4P+tHCt7cylYOp5SWi68WauS9Koxwv55kh9FFH3B7SG4zfW8rWS7gQdNGUkkVA+bjA+VWNpLgIwGzn2SsgdF3sm2Q3+m4aBXykqwbvMqjvlGRmz9d7UHU5N8An/MfIkhCWrs8UXmRMQmI5sTrZgcyUmly5AXf77g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by MAUP287MB4907.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:17f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:46:58 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:46:58 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , stable@vger.kernel.org, Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Vladimir Zapolskiy , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 01/15] media: i2c: os05b10: Use pm_runtime_get_if_active() when applying controls Date: Wed, 25 Mar 2026 17:13:47 +0530 Message-Id: <20260325114404.95188-2-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|MAUP287MB4907:EE_ X-MS-Office365-Filtering-Correlation-Id: dec732e5-e823-43f5-15bf-08de8a643863 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: KQmcX7MYQhFONu+dxnsiK0LTlmq00+PDtgwi9HEzM29Z9LkFaDI7d+EORCrGtGPz/25cSehZc6wX7ir6DGZ9i210MSvx6tOWf9ygc+xIx0u2gVFZZeS4XGgL6hDFNdfep2Q/e1oGvDnQLB5QJ2W6bKMfvUywOU9zhWUUmHhcg5DDPkk2VMYRf+9U1LGbndeuwwZfSqnPUbOhAwdXbPXjeVTBxYwllhQlrIKQN2JjeR3k32tlhjrULLhvihcSHK0JpoX0WTNejicDmYwJWGwcECyDmuIEPij2S0y3Vj8uoxSRCddcfoV6vVvCaaG4OmW1mT4y/Trw+tVcOfL7u9iGmlmwmZmEf4ZwxwDyc8UzofpkHutDLm2an0ZJTVTsY+dgj2u599Gd+jjCn89LcEeUelk1zhNrJgSk5+zQs0NkbYr/2s1rH9b7CO1lBfx7Sl2awAM3aoJJjOZiwUYzJ9MtTvETXr0ZHCKKzy4+GQ1jHq1O4rZKhKZXD2KZ2z3VnK55hc2OcJDQkTfPudKWL4jWBhnqslE1o0HtKqodF2XAfN+pcCZf2qmkTSh0QIRokNo29KvZjVefmrEaJdIADnSHZ2CrY3u7YMbSm28TH6dPZ+Xh6pKX4Tn8+7mSID/FIs0xBqjsnNepIdY8XhS35XAggBHAa7do0KWFsERDPDMpxSiJPIWeOoQF+VlsPvwKkGzCouAI39fHkon2Dh18YeFKbU069wZ2QGlFTBHJYWajI9/HldpCy7K5ORtinpCU4BKDvfLynS86pcrxFsPM5YiLiyg3zrNd/BX1IfT2ZsRTumk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?X1PnmV/EtA39i6s9OZz9hW40DC4i5midtslzL0iujJbIvq1g8hS1SK71nZ+x?= =?us-ascii?Q?/uamRWPWm/g6VzXg4iSHjZd8bMb7f9kK+Bb1V6GP+cJVhFBC9p/FpAJ8dAfV?= =?us-ascii?Q?xqr0r78Z3GV/DmxL6RgjMlp19S5+PiH0zh28gq8CCwlxnZWZTDFN3mpcsBU6?= =?us-ascii?Q?oDUqCxQMBhLBmN03PwOWUmYsXY11sJfT9MblyC7pmeMAVWMDUMulwOoXd48Y?= =?us-ascii?Q?TCX7ln8GX/D8AWFV3gnznVwXEcS+jnwt6qDQ5EK4ZQ/mv5YDAmjaWk5a/V76?= =?us-ascii?Q?Bh5GlNnQfeHhJ88ceC4QB/xP3U2SO9W02PWIvw5e9juhzzsP4DxkWaxIuBQJ?= =?us-ascii?Q?AhF7+i+Ar4B/eQ94n0kJaVFH8n6XNezDtybPUtFXm9GFmZuWOn4pUklrL+gY?= =?us-ascii?Q?7E1MybWSZca/JQDhPsXVbnBIDCw3nLpRO90cvF+auPpEKYfmrxFzd7mD3u0S?= =?us-ascii?Q?li26H5JsnKPg58SlEZFCIJX/jUi4StCWl4TNipPKnlGmGVcd41eAJDwgXs6y?= =?us-ascii?Q?C+IyhtGEqeMpC8LfqX4ciFR9bOCCavGrBtQd/fPcdB41pJqmKMMlTrJ8nuQP?= =?us-ascii?Q?+ndCfF28lznXqYlgHpOG47VPJ75B8SAX1YosnJ+tPoBpAHtHSRTRA/7t7m1l?= =?us-ascii?Q?TebIae1XhXjSmSL17G5EEag/FA+dhjcrFhfyNfvBYEcP/sDJ/CRwvIFz7beb?= =?us-ascii?Q?gnwEIeF3+WK7AFE7jKkZeXY9KXyjXyLrkC5OhlBA0uT3DjN0/2oBtSPDppF9?= =?us-ascii?Q?R4UvZ2JdS15v6m3wijxiqN7/+U4zB9DZcyAj+NoZkI4OexyZZ0iBrmNxulMc?= =?us-ascii?Q?RsvJLVMlLx9i9Hhd5Hc5J3k4N0Sirj1ZD7VaHaNpUkJdQKdjwAL9msgdAmBI?= =?us-ascii?Q?dk4vi8wY/nMcQWGLKvpWiKZiYi2uOpZRImDZhvM9RHf/pBJs3gXTxi115SV8?= =?us-ascii?Q?FVs9Hiw8kfi6+AWjU0yNqeOrf4s/RQfC4vJ4rejGR3SlbLB7w8Iob0b+/2xq?= =?us-ascii?Q?Rsjhp+SWMrPubAymdUdJeplJaaCU/ikPemnYCZcZSVYHNQbofGpWMI43HC23?= =?us-ascii?Q?EinGaxT/sMw9JFqzgF9IpW76+25jqBlcixhMwFclobIhKYoRFGUwayFVhIiR?= =?us-ascii?Q?xEGQB/Rm5gQMfNua+LgNOMeVJ7uFUSzbLfopjGiPse1YstJEE6vP8oCE6iC/?= =?us-ascii?Q?/azb4cLTjTEWZEC6qwlEZPm2dCvKtFzI4fdN+NuOeeUVKEYkrTNcOte/BhWB?= =?us-ascii?Q?4P9IpIq0wOkuONagSLdrboKxnKCjWxQhgQvldQ4Xq0GRQpm1lVdDWyojU607?= =?us-ascii?Q?e9wNKEA0umVb7hdDL9SPCXnWnDGs6NKIiBOIPFJl02n9+3Ezv4LnzcNq+GxE?= =?us-ascii?Q?Lcrsj+oge9pF26s8Leb23/FvzD9NptIc/2d8YiJ6JPbrSNvJp7AR114DC5fg?= =?us-ascii?Q?/2KxELvYwFy3Q5apclyO0giSK6lqcS4QetN0owpsw5njZE13zaudqZHrn6du?= =?us-ascii?Q?lsO2Pl1xz412UQEJEQAq7v/LtkHjj4SyXOfgJUKBYC9imLlcizj85G4FJoUN?= =?us-ascii?Q?ccvBvObyw5vdXzRNaILFq85G1YL4daTqNo3u6gN1G9X35qxFAF2HnzfjjFd/?= =?us-ascii?Q?G7v/m4eJin7gPqgdrS97XHM9KJ1XiEneSO6iCAGSeLx+fRwy4v9l2JG06Bho?= =?us-ascii?Q?LB0V4v41+c9mBACeYlvQPT47mFVxDKOwDLqXWookZP7OwiovbhWDKjI0im++?= =?us-ascii?Q?TZHvqOR0t3gK9U33L7NlAMp2BCiGjC0=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: dec732e5-e823-43f5-15bf-08de8a643863 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:46:58.1619 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Os3AcCPWpioqcGw5Kkgq0ItN4LOy+hBy8z5MIZdYQWUYwCUGvyIb9YsXx4n+BXdVpDmm+YUzfhoQCGz0YctzYAbESnDYNGp7aOkuiR0EMMk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MAUP287MB4907 Content-Type: text/plain; charset="utf-8" os05b10_set_ctrl() currently uses pm_runtime_get_if_in_use() to decide whether controls should be applied to hardware. This is not correct for the intended behavior. If the runtime PM usage count is 0 while the device is still active, pm_runtime_get_if_in_use() returns 0 and the control update is skipped, leaving the software state updated but not the hardware state. Use pm_runtime_get_if_active() instead so controls are applied whenever the device is runtime-active, regardless of the current usage count. Cc: stable@vger.kernel.org Fixes: 3aa9296a23ec4("media: i2c: add os05b10 image sensor driver") Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index e0453c988e4a..5da5b7d21f31 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -531,7 +531,7 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) return ret; } =20 - if (pm_runtime_get_if_in_use(os05b10->dev) =3D=3D 0) + if (pm_runtime_get_if_active(os05b10->dev) =3D=3D 0) return 0; =20 switch (ctrl->id) { --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazon11020124.outbound.protection.outlook.com [52.101.227.124]) (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 85B353CFF42; Wed, 25 Mar 2026 11:47:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.227.124 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439230; cv=fail; b=VFA7t0ufExT1Q85G79rXk6PSsYZ74YuivW4d7QvPDXtCP/+zkvJ1zExlstC64t2DBvFHOJtllmVtEylNwJndhJxlcYYbmfw5jL8egCKkK5VxFi45aIPqOevaEjpBqFPYBb0rJODhALE/v22YA3d59LnqDJTC2kAar9Jf1xTavvA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439230; c=relaxed/simple; bh=sV0//TpYrSdAvr8C9HURf9op49zldOiqFHBtU9Ojp38=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=suwq+erA7ggkDydSuc+uPHyI27rWERG60cA0HKm3ilEMAcWAXH86gT6RCrXHXWMa4Q85I3tn1eJwHiLxArVdZGEjCPcDixymnBYSjSsi5jhwq3utuBglnTpMRzOdEmLxFTUyBqQhUUCQfdW8z77kcye/t+QFQxDFMs3VCnXzyDw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=WMMAF+Di; arc=fail smtp.client-ip=52.101.227.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="WMMAF+Di" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OelM7JZS/Gc2Qv4M/NGx0ws0FMQ/1YsM8h1elUWmxIm0Wq+DAUIDi2K1tThUW7RFZYRlMrxI8iKmmH6mjoaVVijzt7X1qCBMjpsUL8N4UKJZBi6jg3EJjtfSec+v5APasubYlfmmsAzwk9wzX5XPGkAwomnTtOx7AnIOIS/nbqroGXEXBnbmzzbYaVJFIggvAbEGbweDoD14dDjsynCk2Mo+a6neDmEKLElJVSn3wPGgwvEzpH1GNVnxevq8/4c0ph5PHAEbeicNhDgAgTd1ePI3doOawTfbekcTeWWilJfHrgtA4JgTRU4lF12MTp/kmF4khm/1p/ozvbWwy/QpaQ== 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=IM37VSQt1QHB+R0sC4mC4iXEo3Wjrgx1apr29kCLO0Y=; b=gArFvyHoEtBSq2O71QUuif4S0+Hkg1OYDWGUV/q9fxMnta1SQwBNE/xnX/VhdxPYrCAZGDsqYy9TM7nOTw3dqcbB1daqQc5W/QTZExbFuoCYGZtAbpNz2zk784TXSA0oOZl0ZcVZkyFJHh4D6R4/Yt5wrg9ArjF4LJQGGJXRopv9ocqdS4dsfd0BNPEsK8l+aXJmGE8qtM5uvT3+Wf5LF4qQCyuGyUrpY8FRk0KEhRsBlhpmLWbNKjm8NEnoKWXniAuzjbnO5DMKD2j57LlwYacFQC4u1U9YbL2pBzsyEtup3c7Y2UKUAqJZflIabRtpOrgJXVhtBkQCL2rZ1dn3HQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IM37VSQt1QHB+R0sC4mC4iXEo3Wjrgx1apr29kCLO0Y=; b=WMMAF+DiSUpbBKyivWe/k/seBU8nkDSJVpKpxArC7CZ9XmVv1uuE86wz69ETDcncTBv0d1IsPKQt1tGR3eR8iSE8ccp+0DB2qTf+tK4rCY05b7HoVqPexYBPdapGka5P6ZUjaTCaQoNn8gy+mbrwTV2eLpUUE3nGiJZY7s3cYo9mOVv3E2Ka9M7S6s1sXJTGNgX7GB6CjO1GM2+dtQENxkX75EcGuh7BryFd+3r0XORyLUDTsS6acvHBXXi4655XBiWYLcNpejz/HWBnMAe8eoOrBeEfynQ3Le1bRMPUcJtaiE4nMRx7fNINry+AdAVVofL5Xg4tntZDQneBipH96g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by MAUP287MB4907.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:17f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:47:06 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:06 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Vladimir Zapolskiy , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 02/15] media: i2c: os05b10: drop unused group-hold programming Date: Wed, 25 Mar 2026 17:13:48 +0530 Message-Id: <20260325114404.95188-3-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|MAUP287MB4907:EE_ X-MS-Office365-Filtering-Correlation-Id: 2d4653de-9149-46b0-4e54-08de8a643d54 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: ozQo4F1Hg6dndlPgQrVj/k+raC1qen4mZ9/417ePaeAB3qBExvTJ1PnSOGRpShCYle1bEs3vcgxtJCUIv/rzgCBPqnpr7yjupJQO5tiyNevDBb5ylD/est47obUNknBBynIMjm9m3dUZR33RQVq3pCIG+m5e644FLNYG2r7YormoMfp7PZeRh4ff+Ft7BzOx2cYZ6lofefMHLdX/2DwKvjTHsueNlmUcDZSwPKAkd1pTYA0NpPl4Y0vA+SbeApc6X/YwkUlTxXgopmTBgdV3Jk3XeQWoLbfD0glpkhRv0G3f/4R/eR5xzvOePryHxuRLkPCIOPm7lVt8yg27ZthAR3okXU9eIkITkHxGEUZyMo5/5ApgHe4Wb9WuHZVwaoFOeLn1Yul9RNP6uNJBhhKRhsZyDw+ygxvQhpLc+qN1PcG/x4KQ+DJ3t5vFccvf8BgY8as8Zd9R6zOsjmR64OKJ94nNU13t3V/9tXkNVlCCKfmQMrLh4yVuZ9kIWLLysyCaE/LybyJramB77IG5qNjPa36Va7l+F4G9tKUEVC5PN0raVu8wLwt5OQ3oTfkVVK0u1Ltwg2bf1ii8wHurrXwVKOWsbQmPIujwLwPEhoCzkmt2oNJ+ocMKryIvHiw791OIRrQuauT8ZLeeJspm3nPPv1kwUaow6k/SakfmVqz0PuJaKv533jeqETT3dNdxLUBBjoLR+1rBXCefw7IuYMOov77knmrMHRjECaPhRgnDN0CwC2VGCm0sqTybwH+yIzb1HyjxDXfe4QQxYqwdLx+08+G8jkp2AIk6L5kftRf8r38= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l5Lc9HmRmNh5jykj91uJgM/wOjZuVFAsBiwq/5eUcnklerkbGLl/F6nOT94l?= =?us-ascii?Q?CQzIHODTxqBaj5uRI99wx/kl57H398lYdxVlNScKGKtI49DYRtfRbOEgpbau?= =?us-ascii?Q?Gwkze+rldeVw/L/nctpaWCbDrcReonUaJVlpdulVsYEIONtwppNplu7DD1ps?= =?us-ascii?Q?rATS8ZJuQSObb437wZc2JFErAn91n7nCSMI75zjsharHEvBVsw2rHPbic98B?= =?us-ascii?Q?0WNAMjBxwnejqmgNTamNcAx5PD3gSNDPg+MCB6v8PCSlSVap9wsYSDk9tEPI?= =?us-ascii?Q?dumqnTbzZ8ODoqusQf6WECZw44HwE9XQ/+hwzb6JtxfemTPO/jKGacVEv1iL?= =?us-ascii?Q?mPD+W47FTEkR3kosrRNov6NTA+DiN8BfuKymsIrZmZYXqeEVjCm/AutnlcHS?= =?us-ascii?Q?JoI3dBEQbcdx0oOWD8Tm9oQ2jAc04x4k60fPy/xh9NvNUAdumtbnSPiHlO9G?= =?us-ascii?Q?XLweQYFL4HQNqPxNxWn0tLdmnvdK6PvaXYFiai4jf7EBLDW8WAsg4dyiYLvL?= =?us-ascii?Q?fTmK4URELRS1k+24gyMzHX+gwtjn3MOfhpzVNRXs2CJmu8eMikr/zQ6xdQMW?= =?us-ascii?Q?uTZVoaKTq83JKZ7M3VdWdME2ZyesvRZwk7kJURzHjFPl/R3eOob3UtCDJgCb?= =?us-ascii?Q?Q2JQ8e34+A+BSlKKwjLjQw3v7HQ7D6PLz6DpgWE5DMF3d15ZxnFdRg/eqUO1?= =?us-ascii?Q?oSQcC5QPnAivXwM3QRqrQ0VLc4oAQbyr5u5v+kE/0YacwmYfMO3VwyZcwl3X?= =?us-ascii?Q?6R5ifx9LqVZAM/8JLJj4qpfhl0CzpOYnpWUYCdfeUSglWZrAqSP7SW7TdkNk?= =?us-ascii?Q?TEr+b1DmWfXURZHPPrrK48E5m97J3ZL5mhDrL/mrPwK0kLGXkqbrx+bGp2Ys?= =?us-ascii?Q?Dta1oEFX/qFHN1CjucxcVuEGEt4oMziDfsLYbaSjvDS6KF4kBdpBFsdNhE/n?= =?us-ascii?Q?M5tC5W8su5cp0L67vFR3CEV26AiZdlpQkT0CrlZZ1qdGjipkySA8s2clovnQ?= =?us-ascii?Q?W7jF1Rup4pccga52u1HwIfhTLp1kYdGQ6p6f6sPUBsiDSvxcHFShoI4C6jxK?= =?us-ascii?Q?g0q32A5rEr/Us5iyb3aUObqT0wtfMI8/MSbU2ZzGakexy4dsvK6pRXYfNzyT?= =?us-ascii?Q?L7QJkAX5wjit9UJusxazzWiOxi+bVpAfdqw2eUmQ7LPRMH81hmDJIo1XFLiU?= =?us-ascii?Q?YBZ4RS8DQKh5oUxIAk+m2TFeFHu/gXm0AsBPUHsmtFYojLHloK1Zga4wkwfO?= =?us-ascii?Q?2jwiuAE7H5O0xLghdNeAFblUPH/U0L+AFwfXOwt7Ha8AG0tCaubHvRME8tMo?= =?us-ascii?Q?4FtEloLdoyI9ZFMbSQ5r9ZILKGH6YOuMDZZg9PsDQTUUKYMNkKhOkkvZ6B3f?= =?us-ascii?Q?u8CbK//uavgT1JieZ4bFPyIT6zEb4bWQXt0atSBxLUXqS5ErafA8GNRTbGSy?= =?us-ascii?Q?UYTLGDKZYVx67l+ayeErPZxzHMaMcNG8CPAUDCLSHibbhKKzSwysq0KFwZow?= =?us-ascii?Q?maj7Oe7BrPDobEJPZj7Y+6lkJA0tHqVuwz36ruX9fGVTmfDSI4hRzqiVdtAe?= =?us-ascii?Q?5d+jCc0OKfseu9YLJLO/Jwp7jUVWOY1L5/2qaIspTdOXhlcTkGjytCchV/Ik?= =?us-ascii?Q?Co0LYVOAjlELPDIehcGT+xG4TOf4+VR9s5nT+fLksr0HSQheynE5aqq/LB8R?= =?us-ascii?Q?mtHXUF2+nkfIBEFmvwfVmqOVHtCslnZSUYgE7oT29OgTvKpRYIKnXvu1Karf?= =?us-ascii?Q?/DJsH1vqZFgyOGQ5klVwrdjij2ECRXs=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 2d4653de-9149-46b0-4e54-08de8a643d54 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:06.4540 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3z142djBweI8ujEFxqD2NXUS0hMky8Id2GmmJ8BUnoLrOE7VHjITyjSEbSOmJPZgNum1e0F6qY94FgSYpDHG74M0FUO0s7VocekUaxUOG6Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MAUP287MB4907 Content-Type: text/plain; charset="utf-8" Register table included group-hold (0x3208) sequences for groups 6/7/8/9 that only stage alternative tuning values in SRAM but are never launched by the driver. Remove these group-hold blocks. Also remove a duplicate register entry for 0x37bf. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 5da5b7d21f31..62fb856cbdea 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -250,7 +250,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x37ab), 0x0e }, { CCI_REG8(0x37ac), 0xa0 }, { CCI_REG8(0x37be), 0x0a }, - { CCI_REG8(0x37bf), 0x05 }, { CCI_REG8(0x37bb), 0x02 }, { CCI_REG8(0x37bf), 0x05 }, { CCI_REG8(0x37c2), 0x04 }, @@ -415,42 +414,6 @@ static const struct cci_reg_sequence os05b10_common_re= gs[] =3D { { CCI_REG8(0x5820), 0x00 }, { CCI_REG8(0x5821), 0x00 }, { CCI_REG8(0x3222), 0x03 }, - { CCI_REG8(0x3208), 0x06 }, - { CCI_REG8(0x3701), 0x1d }, - { CCI_REG8(0x37ab), 0x01 }, - { CCI_REG8(0x3790), 0x21 }, - { CCI_REG8(0x38be), 0x00 }, - { CCI_REG8(0x3791), 0x5a }, - { CCI_REG8(0x37bf), 0x1c }, - { CCI_REG8(0x3610), 0x37 }, - { CCI_REG8(0x3208), 0x16 }, - { CCI_REG8(0x3208), 0x07 }, - { CCI_REG8(0x3701), 0x1d }, - { CCI_REG8(0x37ab), 0x0e }, - { CCI_REG8(0x3790), 0x21 }, - { CCI_REG8(0x38be), 0x00 }, - { CCI_REG8(0x3791), 0x5a }, - { CCI_REG8(0x37bf), 0x0a }, - { CCI_REG8(0x3610), 0x87 }, - { CCI_REG8(0x3208), 0x17 }, - { CCI_REG8(0x3208), 0x08 }, - { CCI_REG8(0x3701), 0x1d }, - { CCI_REG8(0x37ab), 0x0e }, - { CCI_REG8(0x3790), 0x21 }, - { CCI_REG8(0x38be), 0x00 }, - { CCI_REG8(0x3791), 0x5a }, - { CCI_REG8(0x37bf), 0x0a }, - { CCI_REG8(0x3610), 0x87 }, - { CCI_REG8(0x3208), 0x18 }, - { CCI_REG8(0x3208), 0x09 }, - { CCI_REG8(0x3701), 0x1d }, - { CCI_REG8(0x37ab), 0x0e }, - { CCI_REG8(0x3790), 0x28 }, - { CCI_REG8(0x38be), 0x00 }, - { CCI_REG8(0x3791), 0x63 }, - { CCI_REG8(0x37bf), 0x0a }, - { CCI_REG8(0x3610), 0x87 }, - { CCI_REG8(0x3208), 0x19 }, }; =20 struct os05b10 { --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021085.outbound.protection.outlook.com [40.107.51.85]) (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 66E513CFF4A; Wed, 25 Mar 2026 11:47:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.85 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439240; cv=fail; b=iXDnnqbRxX627QKYQ+XW2XRErfnDUQlUf5kYLfKUGlf/UVVtSyBKSxmuINgMb832Tv1Lz6m7jCY9BGWjLBLiEjcNIYZ3TAXZ3vEgQs//8tfY+bCQtTT8kwWYPacO5R8Cj94JBeQuuSJiaEhsROTi2GOcINtkahVoKSsLzUgYilA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439240; c=relaxed/simple; bh=LFvc99wkiB3yqGzhJ4lVf7Q7DTWBZwRhSj+P3sOkaS4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=FnpxoH631g7ERNLAF2IKxVXPzQ20sl0uEOdVJZteKgFtjUFmz/jWk8Tx3hfOAQaswZZPBNE4Sv7uFejwzRu69dPFTYEUE22jtDx6B85rIlwiVL5HWLg0DgjDGn6ipQ7QjUahlfyn77OIG4YBoUADQ7H7YqPKl35SWAl3TM5OPBA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=BFDFWDjQ; arc=fail smtp.client-ip=40.107.51.85 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="BFDFWDjQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=va7g/p9zLvPKs/ju+CPiE0h1iFnHSRtF0H8agsNKJBz7mLI6dvrDiFF5EHc20gHBP6aelUb7iksJfH4R8EJcKmiGHtI1+qZlZc9uf2BJIfy85rMWdZEe7ZlXsrLJ0BquED2gU7BKMMMRL9PKZVQ46fc77ULVI0wkndaOJmeOgkAPV6nL20lbmSqY+C0ddzn2JoJGzKPn6cN48uLCmwBaeqB2wvgQgo7QuSAXRZLITAtn0BEVWPxgnDP1rVml683UsPFKXvgku3KqBLsTFTnBPtgJWjIin0K/aKzpumq4dgr/0wXXS6wliSCg3LMDSgD0T6CZQAOXwIDtend1fnjgFQ== 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=8ViS/ZoM2dPcxlBSeNXmRtcAJ3IyiuUZYKFarxVYUrc=; b=YZBB3lN3kmWZl3AWsf0QmG4lM0GUIwy1jgMh1DMYYEq58IUsEY82LFZgTSik/4ZHteikc5Qwnfe35bUegE5T4N4Q0bMDM2FtI6x08EaN7TjdmzmaE8B17sR67M2WmajOdnn9W/TftUMxPfGW5CIXB3WiggXs/y6Hw6Tb8Wx5vDnTtdlt0TMCWLSgDA9owjZhrV0OmkkL38EtW2nMGkT5MsJJ3JgcRyb6CFM3qz+GvUbytPt3LotbIhALeqwO0fCCcSI3cO633AvvRq0ZE8xRmWszE11PiEM8+1VO9RKhmPlTtKjjvsMHgt9GjJAikABRYaI73QmB+iADvlWcmIAlIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8ViS/ZoM2dPcxlBSeNXmRtcAJ3IyiuUZYKFarxVYUrc=; b=BFDFWDjQ/mNGxxH/0J/uyufJaORl7Dx6rhMnmf4oz8TXtR2aSHqG0TfsCJx/hQqjhUmEr2ciT+ff8PmxDmhYa9sWznk9r+QWQakLnUhFNc5UJga8WFWosqpQeXZFakd3v9Gpm55dyAJpZtbG0yrxGYxJ+3rP4HnM7MAvmyoSHXX7BCnE/H5guKcywPUc+7+mHXji9Wnm9BX2uCFoPG7fv1WeLEO81fuRd8l7DKKqtGP3NfIiBFNMkzw50i/CR5AZPDQoqFtkVgLwI2U8FD/Bl89Dy7lnn0prjaMdgED2sA+Hcmnv2wGtpEL8KJst6kmIuDYwEwvwGaNvo8FYfnVshA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PNYP287MB4501.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2e3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar 2026 11:47:15 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:15 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Mehdi Djait , Vladimir Zapolskiy , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 03/15] media: i2c: os05b10: add register definitions and use them in init table Date: Wed, 25 Mar 2026 17:13:49 +0530 Message-Id: <20260325114404.95188-4-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PNYP287MB4501:EE_ X-MS-Office365-Filtering-Correlation-Id: 60ab3e8c-6abe-4136-e679-08de8a6442a0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: LlszBnMgap3aitgPUuPQ8bNhkL1uZwP0d9zLYFOLOi3UHsvhTG5AEBJP3Ds6SB4CxQFFFSY78FkX35E4FvwNBGg67fawjMmBIZuw1wE3BZT5QIS4CVpZITsJLJiFz+VIduwdOKd8Q8vj35FcVVzetHbGWJrF9R59rNnITyk2FJlgE5rAD6wW8joe5yxtier8OShOxlrgr0q8EvQMIUalzBSQDMKBBgWI/EZDHV7rK3n3f28wQxuQGVURQOa6at3wzkZl1PXTyBL8lpm7ZyfbNWDQpqOn56j2n5OH2dPerJDmxFdJwE9SH29I1Z6VH1mBAHM8eM1qcVyC8Brvcds8kDiTHivOivaHpWnNn3/ISmMyfUlkMaxp0ywRX97aRDKzb0+dVeacJAUIK8X0a0htBRQm2lFAVQUxOxsznjqypmf/ZMLlr03Z3ZjjEs0AbCleG6VM0ekPT2ztYl4+e48iUUiJTveD56NCa9L5HEsLzb0voKbJYKfMj9Jo486MgToa5OpPPKPGdmrVq7NMfUmRl/oeeT1ZbFJiWSGy5cwVYOGMJkO96ccfFlUJwzKAtmyJ2ifCSmetAIihG+eVriaXJWNly9pExIDbXwc58JwKVEPOu4/3Mqd1ZhG+Iokkp8BQ70zEGxOdfZ24erxwic2+BUi3ZjL4taiSp+nkVfkiaPNpFD2za0ZuGhmVyIXyr29Y5VZ4BNVvWeFhKcqNUOXNuRSClbEpBCsfOZztXjeO6WCZZ8sttEHaYHxzYkNGy14SnUpUb7CaCIRDsfg8U+gbvdCOvCSVA0Eru7omD2jFvzo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fgv0IrC4vRf06u8oFA+taq1Qc0Onv4ToJO/hKL+T0rRYtopiFS23SjFZNvPK?= =?us-ascii?Q?d5tGEmKBldUoBArfN/QV5n2Y6A66EiQmGP9YZ1DySHfmzwX3RhK2nC3Uup1S?= =?us-ascii?Q?98HV6skNO1DRolFzz9MDSW6A+wcJnh68JA+/b1XZuBxr9d8FKlu+mJz39fU+?= =?us-ascii?Q?4PbYVFBBhovGDgk1APHRPzjXLw5mprHqeeRO6IbljAo3NGshe+QAiOY8DB13?= =?us-ascii?Q?d+7LihZXVmdI9ODqabkfN+TdigxbxPkfsOfSHIkShqXtPx2Iyb+Rh3yd9bzs?= =?us-ascii?Q?yQvgo5hk3ExsECeQty0IOGrZEe2ZqCizSKfgu9n/2Ea+f1M6pl8CMRLWeGXu?= =?us-ascii?Q?JlrXPghqPOEkogz0TYeqXXT2kTH4wS/0/EgXBtC3EmXvxUSXVfGTzvDzsHND?= =?us-ascii?Q?QBeMmCA945MYmMkO17a8LSK+4UYXizgbaYv8ovNPxD/OpDA1hjNetfAO48lW?= =?us-ascii?Q?sRcSx9TJAsapp10ZqI2IhHYRQ+VZKh+kUf/cybWFsUofMZOxlYysByyjSckm?= =?us-ascii?Q?bPB6gis7ldCnh4XuLjxjFz4qY9RLGhrO/eIlCzMdLrEbwqKR8lPtWGnVAizw?= =?us-ascii?Q?/i2YhOTQ6PWEFMNPzL6zEOq++ww9c/pSQCQroRQwT5t6DiFaLwRDHUZWlpZg?= =?us-ascii?Q?WHsqCzp1B5gRrYK3FhSFrDBVfi4XRJOlQ6VLQrVTCsGRczkqZU6L4/RXDE0G?= =?us-ascii?Q?dFuLQzDtHIuafxwueUEGVQ8xuiXBRS41nU/+Jom7drpNg2xeBG4VKYPXLOeR?= =?us-ascii?Q?ba9hgCS06Zd5CrUwL5TZAfFzPGM/KxTJI3iom2xrvwemydnWb8AbCQN+kYEs?= =?us-ascii?Q?4oXXZDosSClBcJWvQ+HnZ/0g7POh5YMY7lNgOJuOgSje2hxe9gDVou4PMCCP?= =?us-ascii?Q?3y+khc11CTfpxjg1le9SSIjLBXPwHoWWme06Tr9q21UlHOuFtreYuL5mtpbV?= =?us-ascii?Q?3of/i3EZE09+YEchWIXfpHdiNlMRgsj9dfikEN6NCo1wunRyzdeFrFbTxnzJ?= =?us-ascii?Q?DMyeZ7A3mJ9wo8YtYKT/uedLgQz5td70H2YBGuk4Vrl5DU8DkxJ1+VlyxmLp?= =?us-ascii?Q?uXQEAzJedb28LIDexjtP2G0zi+o1QRrYzYoMRyEwnlhxk9CbW9QY0hrzAfxp?= =?us-ascii?Q?CQuX4eyE+OUA40A9XC6AAX5Mmk1f5AsFDI7xkJTTDpZ6+73/3YXf2SzbBFY8?= =?us-ascii?Q?PtNGjqSkPFJkh7cTbj+8DZJAHm6PmImIaB8/kKibyv59f17ZKZJbqi9WLKGi?= =?us-ascii?Q?4SlOiIP0YRUHPyJE1TPOdQJCl8se6oW5Dx2+was8hzDxjOD/SA2NDCwkvWKZ?= =?us-ascii?Q?htRjDB/wrYEnVnVqwmaBtrniK0TgDQFwYqAwNqLc4qd0fBQMD2aihzbySgcU?= =?us-ascii?Q?DIGZWIpb3+2bVNS1Jx+NIdv6X3btGUMk5fl/GjdAZLiXt0OS239+06itu6yA?= =?us-ascii?Q?HX/ziMd4n6BLdSs9ISiD8iGTSoFEGlBZy6VuMwRn0fTDi0hCf4wOts53apQY?= =?us-ascii?Q?b/chC6DbmLlsUToTLOo7aB4G+lumD1IHpxJ35KBDDQIaROGThambFwONzZDj?= =?us-ascii?Q?mwVV6vLKF3rmETcK9h/kNq4U+PSsLkK64J7NHD1kKjHJo/79NZ8p2VSyC6OT?= =?us-ascii?Q?qTPTfotNnabMO3xdaBVLojHdmKIrc7j1vqf4VnR3PdBXf6w/hw4gwrpAi/FK?= =?us-ascii?Q?wa3dcWlp6PB3OexMRbOC+z3HDtftiMISAF84DvMzBcBIZiSvcfhBRKLV1pki?= =?us-ascii?Q?BW4c90x/sWAh6bOUyD3zivuQqrmNh/4=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 60ab3e8c-6abe-4136-e679-08de8a6442a0 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:15.3299 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LNXS/ZFPyaB2Ok0RJCdg4AaGmD0vVJeCSLKVlrK/ctdqfaPvQZ9QoKTKxdSTn40aeuqIed+0mIL5csiqgjDZTUsaQcKk+yNo+EM6bymDgi4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYP287MB4501 Content-Type: text/plain; charset="utf-8" Define named register macros for OS05B10 and replace raw register addresses in the common initialization array with the new definitions. This improves readability and maintainability without changing functionality. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 111 +++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 40 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 62fb856cbdea..751494fdba6d 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -38,6 +38,20 @@ #define OS05B10_MODE_STANDBY 0x00 #define OS05B10_MODE_STREAMING 0x01 =20 +#define OS05B10_REG_PLL_CTRL_01 CCI_REG8(0x0301) +#define OS05B10_REG_PLL_CTRL_03 CCI_REG8(0x0303) +#define OS05B10_REG_PLL_CTRL_05 CCI_REG8(0x0305) +#define OS05B10_REG_PLL_CTRL_06 CCI_REG8(0x0306) +#define OS05B10_REG_PLL_CTRL_25 CCI_REG8(0x0325) + +#define OS05B10_REG_MIPI_SC_CTRL CCI_REG8(0x3016) +#define OS05B10_4_LANE_MODE 0x72 +#define OS05B10_2_LANE_MODE 0x32 + +#define OS05B10_REG_MIPI_SC_CTRL_1 CCI_REG8(0x3022) +#define OS05B10_10BIT_MODE 0x01 +#define OS05B10_12BIT_MODE 0x61 + #define OS05B10_REG_EXPOSURE CCI_REG24(0x3500) #define OS05B10_EXPOSURE_MIN 2 #define OS05B10_EXPOSURE_STEP 1 @@ -49,11 +63,42 @@ #define OS05B10_ANALOG_GAIN_STEP 1 #define OS05B10_ANALOG_GAIN_DEFAULT 0x80 =20 +#define OS05B10_REG_DIGITAL_GAIN CCI_REG16(0x350a) +#define OS05B10_DIGITAL_GAIN_MIN 0x400 +#define OS05B10_DIGITAL_GAIN_MAX 0x3fff +#define OS05B10_DIGITAL_GAIN_STEP 16 +#define OS05B10_DIGITAL_GAIN_DEFAULT 0x400 + +#define OS05B10_REG_ANALOG_GAIN_SHORT CCI_REG16(0x350c) +#define OS05B10_REG_DIGITAL_GAIN_SHORT CCI_REG16(0x350e) +#define OS05B10_REG_EXPOSURE_SHORT CCI_REG24(0x3510) + +#define OS05B10_REG_X_ADDR_START CCI_REG16(0x3800) +#define OS05B10_REG_Y_ADDR_START CCI_REG16(0x3802) +#define OS05B10_REG_X_ADDR_END CCI_REG16(0x3804) +#define OS05B10_REG_Y_ADDR_END CCI_REG16(0x3806) +#define OS05B10_REG_X_OUTPUT_SIZE CCI_REG16(0x3808) +#define OS05B10_REG_Y_OUTPUT_SIZE CCI_REG16(0x380a) + #define OS05B10_REG_HTS CCI_REG16(0x380c) =20 #define OS05B10_REG_VTS CCI_REG16(0x380e) #define OS05B10_VTS_MAX 0x7fff =20 +#define OS05B10_REG_ISP_X_WIN CCI_REG16(0x3810) +#define OS05B10_REG_ISP_Y_WIN CCI_REG16(0x3812) +#define OS05B10_REG_X_INC_ODD CCI_REG8(0x3814) +#define OS05B10_REG_X_INC_EVEN CCI_REG8(0x3815) +#define OS05B10_REG_Y_INC_ODD CCI_REG8(0x3816) +#define OS05B10_REG_Y_INC_EVEN CCI_REG8(0x3817) + +#define OS05B10_REG_FORMAT1 CCI_REG8(0x3820) +#define OS05B10_MIRROR BIT(3) +#define OS05B10_FLIP GENMASK(5, 4) + +#define OS05B10_REG_FORMAT2 CCI_REG8(0x3821) +#define OS05B10_HDR_ENABLE 0x04 + #define OS05B10_LINK_FREQ_600MHZ (600 * HZ_PER_MHZ) =20 static const struct v4l2_rect os05b10_native_area =3D { @@ -77,30 +122,25 @@ static const char * const os05b10_supply_name[] =3D { }; =20 static const struct cci_reg_sequence os05b10_common_regs[] =3D { - { CCI_REG8(0x0301), 0x44 }, - { CCI_REG8(0x0303), 0x02 }, - { CCI_REG8(0x0305), 0x32 }, - { CCI_REG8(0x0306), 0x00 }, - { CCI_REG8(0x0325), 0x3b }, + { OS05B10_REG_PLL_CTRL_01, 0x44 }, + { OS05B10_REG_PLL_CTRL_03, 0x02 }, + { OS05B10_REG_PLL_CTRL_05, 0x32 }, + { OS05B10_REG_PLL_CTRL_06, 0x00 }, + { OS05B10_REG_PLL_CTRL_25, 0x3b }, { CCI_REG8(0x3002), 0x21 }, - { CCI_REG8(0x3016), 0x72 }, + { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, { CCI_REG8(0x301e), 0xb4 }, { CCI_REG8(0x301f), 0xd0 }, { CCI_REG8(0x3021), 0x03 }, - { CCI_REG8(0x3022), 0x01 }, + { OS05B10_REG_MIPI_SC_CTRL_1, 0x01 }, { CCI_REG8(0x3107), 0xa1 }, { CCI_REG8(0x3108), 0x7d }, { CCI_REG8(0x3109), 0xfc }, { CCI_REG8(0x3503), 0x88 }, - { CCI_REG8(0x350a), 0x04 }, - { CCI_REG8(0x350b), 0x00 }, - { CCI_REG8(0x350c), 0x00 }, - { CCI_REG8(0x350d), 0x80 }, - { CCI_REG8(0x350e), 0x04 }, - { CCI_REG8(0x350f), 0x00 }, - { CCI_REG8(0x3510), 0x00 }, - { CCI_REG8(0x3511), 0x00 }, - { CCI_REG8(0x3512), 0x20 }, + { OS05B10_REG_DIGITAL_GAIN, 0x0400 }, + { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, + { OS05B10_REG_DIGITAL_GAIN_SHORT, 0x0400 }, + { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, { CCI_REG8(0x3600), 0x4d }, { CCI_REG8(0x3601), 0x08 }, { CCI_REG8(0x3610), 0x87 }, @@ -274,34 +314,25 @@ static const struct cci_reg_sequence os05b10_common_r= egs[] =3D { { CCI_REG8(0x37f5), 0x00 }, { CCI_REG8(0x37f6), 0x00 }, { CCI_REG8(0x37f7), 0x00 }, - { CCI_REG8(0x3800), 0x01 }, - { CCI_REG8(0x3801), 0x30 }, - { CCI_REG8(0x3802), 0x00 }, - { CCI_REG8(0x3803), 0x00 }, - { CCI_REG8(0x3804), 0x0b }, - { CCI_REG8(0x3805), 0x5f }, - { CCI_REG8(0x3806), 0x07 }, - { CCI_REG8(0x3807), 0xa7 }, - { CCI_REG8(0x3808), 0x0a }, - { CCI_REG8(0x3809), 0x20 }, - { CCI_REG8(0x380a), 0x07 }, - { CCI_REG8(0x380b), 0x98 }, - { CCI_REG8(0x380c), 0x06 }, - { CCI_REG8(0x380d), 0xd0 }, - { CCI_REG8(0x3810), 0x00 }, - { CCI_REG8(0x3811), 0x08 }, - { CCI_REG8(0x3812), 0x00 }, - { CCI_REG8(0x3813), 0x08 }, - { CCI_REG8(0x3814), 0x01 }, - { CCI_REG8(0x3815), 0x01 }, - { CCI_REG8(0x3816), 0x01 }, - { CCI_REG8(0x3817), 0x01 }, + { OS05B10_REG_X_ADDR_START, 0x0130 }, + { OS05B10_REG_Y_ADDR_START, 0x0000 }, + { OS05B10_REG_X_ADDR_END, 0x0b5f }, + { OS05B10_REG_Y_ADDR_END, 0x07a7 }, + { OS05B10_REG_X_OUTPUT_SIZE, 0x0a20 }, + { OS05B10_REG_Y_OUTPUT_SIZE, 0x0798 }, + { OS05B10_REG_HTS, 0x06d0 }, + { OS05B10_REG_ISP_X_WIN, 0x0008 }, + { OS05B10_REG_ISP_Y_WIN, 0x0008 }, + { OS05B10_REG_X_INC_ODD, 0x01 }, + { OS05B10_REG_X_INC_EVEN, 0x01 }, + { OS05B10_REG_Y_INC_ODD, 0x01 }, + { OS05B10_REG_Y_INC_EVEN, 0x01 }, { CCI_REG8(0x3818), 0x00 }, { CCI_REG8(0x3819), 0x00 }, { CCI_REG8(0x381a), 0x00 }, { CCI_REG8(0x381b), 0x01 }, - { CCI_REG8(0x3820), 0x88 }, - { CCI_REG8(0x3821), 0x00 }, + { OS05B10_REG_FORMAT1, 0x88 }, + { OS05B10_REG_FORMAT2, 0x00 }, { CCI_REG8(0x3822), 0x12 }, { CCI_REG8(0x3823), 0x08 }, { CCI_REG8(0x3824), 0x00 }, --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021120.outbound.protection.outlook.com [40.107.51.120]) (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 AE13D3CFF62; Wed, 25 Mar 2026 11:47:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.120 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439246; cv=fail; b=dqoxDid7Dgq9AC7x5eYclvkEU5WYHkRWcKREgpcaw9/3gwwRiyeUuJ+XSwQBQV47wDWFMZBTjT5AXatcLI1gQ9ORiDj7O23aQk1GKIMATe6TB2bzpCHFH7UIdKLFd39+tLkby/uz/+eF6BJrZK5NwezdtMhziVCrnw1W9+xozMQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439246; c=relaxed/simple; bh=xntUIrjK3u/bReHSl7fz/J2JXefI+1tc03nrf1tvTUo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=WA0APvrWieto9JziqhErY4ffN7rG/YMatPRYzgwBTzfoMAM1lbbFjsTewMae7jdHZHI+J6GIORgSIMEKzdlvNrBzEy18nVLGOb0CjxuPfjVPOJTLsZTkDGZQ89EWTV8yf5q8RGDidaspeAU5ojlBpBkwe9r0PeaNABgUIx9bvfo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=kXaR8XXD; arc=fail smtp.client-ip=40.107.51.120 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="kXaR8XXD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RdOk1om4Q8RfVIHJeJS/DUSTYFfrBodXW+3dg1tyKtdXCxJm/kZ2/3gVrQptyFm2CJy4FZL6kzRlp+A2qq8DNodgbtL7XYQBne+sE5cKk3lnKT+HOU8b1dWMiA8Rp3XB6NKz6sATVxRjNJtRAlHiOrCBRksKWo1ujBnqqmOzq0GiYyIqRXoaKgSDwUPUrvCAk7DwNkU0PmjdeMKMMuTmVpw93SmZrLkzFVs11oW1nI8p79gdZGvTjVgjqvUt2nd9WbBsnYJwXQoFB8DEVw6WX4QJba3IxGduQNzoXfY1PrhhGN7YLUFUxOGDZElOp2RWs0PrYHZH4eQ8TEW41VWS/Q== 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=wWGGxD9O1ULfgpILKe2XqlR0z5k9AVvOzzSxsZKBOw0=; b=MUCTCtH4PnHlz/gXQB8auiUlQzr6kZ48OyBTDhZxVqnTVgiB7aP8pbM+i3V3QjTZSP8q02rshgMnEbvucAD14HFJb4tdZBUq2D6EjUKPZ9MxRNNS5ko/hCHjIin57JhGM3dffsWAdtWuHCBresAV2YlJR6SrQjpu+zQ+SwXS/oDR2kkiixKE8o4rD9a6BVnsM1JSP9nlk8RWDri2TjJ6mBPxLJJjHbbO9o34bG8E0+SJ+7eWIQ23nSjfv61CR6jPt4XzU7JA01hsHLDnbbf1j7Pqr4L3yKogtvFIt/rp13NYU/ekb+If76EhtmKWw+6AlUgr+axLAPZC5MX69h2AMA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wWGGxD9O1ULfgpILKe2XqlR0z5k9AVvOzzSxsZKBOw0=; b=kXaR8XXD5ah3mKpYeGwymkzIncg9rYJvkc2/dxyOEMFOadoHOZMEZ1GVJ+aGVkdQ4SHpu2zj6YXuZubk/MpQXjRw+HmGz0RfnJ4TfwWj/9DfE6w7xhbqI3K/MazHG+zWvnpYSFN6aHoWhH6wBnn5dtnhFLujxuR32UTalC3TAYkFkMkchII56K3n/lzK7uvTqwR40bQK7DgAEI218UC1xhvf4p/QcY2me1NUc/lY7MOxB6U1uIFxasE7SpVIepPeaG4NsDe26UJ3LpzSAyn4X1FQKQZNDiJ/4uMOicJOKwhnbeSCG6H0OsGOWPjfeXilEenq6zvlou+sHlzqCIhHuQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PNYP287MB4501.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2e3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar 2026 11:47:21 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:21 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Vladimir Zapolskiy , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 04/15] media: i2c: os05b10: split common and mode-specific init registers Date: Wed, 25 Mar 2026 17:13:50 +0530 Message-Id: <20260325114404.95188-5-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PNYP287MB4501:EE_ X-MS-Office365-Filtering-Correlation-Id: b44fc4fa-1d92-4e37-5cef-08de8a64466d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: NiPWO6jnE+H0YlLa+Wo9MGHHoqZLSNPaYiaRQmQrr32uYg2EI0G/qKOdBReS4QSG3QlVmGec615EnvzeYUwi/hRCHGYh9vqkyeEx+ikLiTVeDkHk28+nmfTczmnwgUVvk+Mh61Xf8923Ofj290J4S1hrlM0U0psevW99KrVpDA3BIpcuAPDOoV8eQc7CPblI4ybdA8bDSsGX2/b4EugNvRsPFCAjEGHIAzgJmbw3dh0M0ii+yzjMKyZkQGGA0CsRr6ORz1scU4jusfupuxpu3rJFxWGHBcwpng8wUuwgBsbYDhRzSft5PyUzCBO13ysK52NZOjPZvaYjNUeo97WhCMGWXq8wKU+WCorN8h7zxvHY6Xq3rhij4gwGXkOYqQWXcCK2BsOwiBSie6emlm8k8ajtm6Pe2Dgc2HKWvtY5YBDLT7szR49Ca9wkuBgNRXUkAQKz9dvdB0yHDAKUKXvHRy9jWnbgX5o1/fgaFwFozUC9kAaC2BEqe/i1/PcVirAIGHg2npgpyCW/Dqo+WQzU9NN00jldldopzR3GfcIaxMh/nHxt27E8/45yfpeQ9DZddEiRMgI8ftIhDWXLAU9O1ZS47dT4eD8VCMSTrUU28HQDmWuR0jSMYS7KyK98ulHRNw0m8p3JVvgDBUfdPodW+v8o/4NOnAGB/OrWzn6J4wBbuv96/qBTWrWm7Ej/brJT+t7pU/t+bD53n2C8Uk0mDzGrk4unO+BmGW9F1Ep1zX/Bn0lsyHc4j0yQBAJGAuvHPiT9rEl30XUOheIHYhDq+I0wnTd4nT95JKyNdvksVOk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BhoGjbemuerKV1POoanraVkz4dDGR3zs+jFAsaPKu6e8lk3WYOfDZrNJ8VOq?= =?us-ascii?Q?9d3KiiOktbZcY7VQ22m2iGucTfG0/XA80wfh8WctX2hFsYcGv2vyPqDUUvjW?= =?us-ascii?Q?9MtwsqSM27q2uSqVxWYyMzp1PgskSooSs/3v2K1xTHbCE1P/QPCFOs3ca3hi?= =?us-ascii?Q?+j8AJ0oEWMo/PpLXnIroKjWCp681ilSrp1hHJQH408tOve/AOD8IFO9Drbkp?= =?us-ascii?Q?ntpvPU3+cKnppcdFU5Nn1lmXk0W9CeU8yCYI9Nahff4zU38oEONDz8uW1nxf?= =?us-ascii?Q?Lz8COucVGjTf5eiiEQnYpBo6l5Yv5fA5s4axVh719eFSkkD3xLIBww3/CYV7?= =?us-ascii?Q?bTpc/6duSwmwCJvRrUzFHaDgYK+RQ0bfVI5FrjRw9V5Cp9PaKhD4ZZRPqQJs?= =?us-ascii?Q?MWHDuc0DdZgFYg/Mohg+arZs0+v685x5+/GYxCif+Txtd9ke9jD8Tn3re6DE?= =?us-ascii?Q?eyoDkGRqgyIfK9TjluC8m3rzd/6rpyLIrnWj81NHafHVearFYDuGCG4WtCD+?= =?us-ascii?Q?0sYgEGCaDOA8Hxo6eUPXsOYn42vXn0TQrtHqOqsbwme+6ftEknTC+9ImIPIA?= =?us-ascii?Q?Ae+WvK4EIO2SxLcPxtygFkzfD1f6JkgAuYSfOFYIsE03jb1WJwqPQxDUbdYZ?= =?us-ascii?Q?NGbxDrbFFpWshvWLlfOEk2zXCmA3kbZN3uolZUKFVNmiTM4+8mFLEUSeiuz7?= =?us-ascii?Q?9is6iGqmqIKVGC/cp182cfnvmKZg6HwlHY1PkFkorYX73Qv83r47vszUoHgl?= =?us-ascii?Q?EyNdV2XdX2+Q2KDr0VKKbST8z9/Dax/M98RvdhFYgSQ6ZCZSYGLG0FXgyGQi?= =?us-ascii?Q?XV78fn6GLZS107SoNXJMLloJB41wepyxAcjCr/6d1ZalRUXlGGtjfVX36ROQ?= =?us-ascii?Q?vAQncXGaO4RZu5XaEmlXbJGesyR+hj85q5dju6KYqJWTHfnwCl2H/zpfxITv?= =?us-ascii?Q?GCdx+FYx/ePcIMdNiSTOVr+x/trF8XU4ggDzVl7ABLYaCRTaYVwP4QEZKqes?= =?us-ascii?Q?VfvhxqgrLf5tCk/QH7w+UWzgup4CnC3nYs8YjeEI43rg7c3iQ+tA3qHDcLAc?= =?us-ascii?Q?8u5ExRdkJIvCoQFd/ycBq6JhEk46FO37FOEbFxozqVAJ9ZOKZTVVumtgxwsE?= =?us-ascii?Q?c7KF7MSd0q+UII15UTfun1inCb8NQenv6mhGlN6FgZ5g0nYQkQvzbq14E+uO?= =?us-ascii?Q?abzEuKsOhPX/Fnw+VEfxK4V6zq/s2qSxh+/Eb08pSKd76L1WEYpPbTdugxQU?= =?us-ascii?Q?zezKTSmqm+1b/rIL6hcNxv0T7ugJCWNtjUdtJl2b9w+QiIy7sxKFTqPObRfR?= =?us-ascii?Q?LlHEiC3pb/ZEbxZkwEGSUNgt64bxzL8oLL2Fn20wdQLcclWIv6MnPG2vL4Id?= =?us-ascii?Q?8/+TFHVfaDQ42DX2ukLrAdt98Oecq7QAtTKXo32bWgNbclqnxYZh0oFjZjQm?= =?us-ascii?Q?oinRAhE7iVFTLmmHU8ifY3U59V2+1OgqVNjioyyOB1+AU+sNgbEWOcYyIH+2?= =?us-ascii?Q?T0Tc+TVcI4XjsAdC0AtfivwWjZqT1O+XxKBVUV2ltOR1SsY8NXMRFOoAvy+K?= =?us-ascii?Q?svYFxHoLEJvs8YRJLQPajUclWEGiy82messmb53EZpkqtvWEoJKSOsGziiuO?= =?us-ascii?Q?LkoNq2pQ1WwmzFeEo+vrJFiGw54VI/72YWeDSyf2DNuUHFamyLTTzhFd1CmZ?= =?us-ascii?Q?pNqQn75KFo29TFPmHwtVjm4WUPjSIKuRm7FF/BpxU08ubUK9IjzRxqL+r/5C?= =?us-ascii?Q?6RoLjp8zRs3r9vhtyaDBC/CrQlKFpuA=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: b44fc4fa-1d92-4e37-5cef-08de8a64466d X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:21.6919 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rHmPFZZzh3V1hHwCm7bHrMlgglFMdYO+D36Qt1RhP8ixoOHBHCRwxDTlSSr+LEJkhpoLGTdMX4V7Z45mh2aF87Fe8avyui4AvmmYsJjaOHw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYP287MB4501 Content-Type: text/plain; charset="utf-8" Separate common initialization registers from mode-specific settings. Move resolution-dependent registers into a per-mode register list and program them during stream enable. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 118 ++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 44 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 751494fdba6d..9499867ad40e 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -122,37 +122,34 @@ static const char * const os05b10_supply_name[] =3D { }; =20 static const struct cci_reg_sequence os05b10_common_regs[] =3D { - { OS05B10_REG_PLL_CTRL_01, 0x44 }, - { OS05B10_REG_PLL_CTRL_03, 0x02 }, - { OS05B10_REG_PLL_CTRL_05, 0x32 }, - { OS05B10_REG_PLL_CTRL_06, 0x00 }, - { OS05B10_REG_PLL_CTRL_25, 0x3b }, + { OS05B10_REG_PLL_CTRL_01, 0x44 }, + { OS05B10_REG_PLL_CTRL_03, 0x02 }, + { OS05B10_REG_PLL_CTRL_05, 0x32 }, + { OS05B10_REG_PLL_CTRL_06, 0x00 }, + { OS05B10_REG_PLL_CTRL_25, 0x3b }, + { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, + { OS05B10_REG_MIPI_SC_CTRL_1, 0x01 }, + { OS05B10_REG_DIGITAL_GAIN, 0x0400 }, + { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, + { OS05B10_REG_DIGITAL_GAIN_SHORT, 0x0400 }, + { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, { CCI_REG8(0x3002), 0x21 }, - { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, { CCI_REG8(0x301e), 0xb4 }, { CCI_REG8(0x301f), 0xd0 }, { CCI_REG8(0x3021), 0x03 }, - { OS05B10_REG_MIPI_SC_CTRL_1, 0x01 }, { CCI_REG8(0x3107), 0xa1 }, { CCI_REG8(0x3108), 0x7d }, { CCI_REG8(0x3109), 0xfc }, { CCI_REG8(0x3503), 0x88 }, - { OS05B10_REG_DIGITAL_GAIN, 0x0400 }, - { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, - { OS05B10_REG_DIGITAL_GAIN_SHORT, 0x0400 }, - { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, { CCI_REG8(0x3600), 0x4d }, { CCI_REG8(0x3601), 0x08 }, - { CCI_REG8(0x3610), 0x87 }, { CCI_REG8(0x3611), 0x24 }, { CCI_REG8(0x3614), 0x4c }, - { CCI_REG8(0x3620), 0x0c }, { CCI_REG8(0x3632), 0x80 }, { CCI_REG8(0x3633), 0x00 }, { CCI_REG8(0x3636), 0xcc }, { CCI_REG8(0x3637), 0x27 }, { CCI_REG8(0x3660), 0x00 }, - { CCI_REG8(0x3662), 0x10 }, { CCI_REG8(0x3665), 0x00 }, { CCI_REG8(0x3666), 0x00 }, { CCI_REG8(0x366a), 0x14 }, @@ -236,7 +233,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x370f), 0x1c }, { CCI_REG8(0x3710), 0x00 }, { CCI_REG8(0x3713), 0x00 }, - { CCI_REG8(0x3714), 0x24 }, { CCI_REG8(0x3716), 0x24 }, { CCI_REG8(0x371a), 0x1e }, { CCI_REG8(0x3724), 0x09 }, @@ -245,7 +241,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x3730), 0xe1 }, { CCI_REG8(0x3735), 0x80 }, { CCI_REG8(0x3739), 0x10 }, - { CCI_REG8(0x373f), 0xb0 }, { CCI_REG8(0x3740), 0x28 }, { CCI_REG8(0x3741), 0x21 }, { CCI_REG8(0x3742), 0x21 }, @@ -291,8 +286,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x37ac), 0xa0 }, { CCI_REG8(0x37be), 0x0a }, { CCI_REG8(0x37bb), 0x02 }, - { CCI_REG8(0x37bf), 0x05 }, - { CCI_REG8(0x37c2), 0x04 }, { CCI_REG8(0x37c4), 0x11 }, { CCI_REG8(0x37c5), 0x80 }, { CCI_REG8(0x37c6), 0x14 }, @@ -301,7 +294,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x37cd), 0x17 }, { CCI_REG8(0x37ce), 0x01 }, { CCI_REG8(0x37d8), 0x02 }, - { CCI_REG8(0x37d9), 0x08 }, { CCI_REG8(0x37dc), 0x01 }, { CCI_REG8(0x37e0), 0x0c }, { CCI_REG8(0x37e1), 0x20 }, @@ -314,25 +306,10 @@ static const struct cci_reg_sequence os05b10_common_r= egs[] =3D { { CCI_REG8(0x37f5), 0x00 }, { CCI_REG8(0x37f6), 0x00 }, { CCI_REG8(0x37f7), 0x00 }, - { OS05B10_REG_X_ADDR_START, 0x0130 }, - { OS05B10_REG_Y_ADDR_START, 0x0000 }, - { OS05B10_REG_X_ADDR_END, 0x0b5f }, - { OS05B10_REG_Y_ADDR_END, 0x07a7 }, - { OS05B10_REG_X_OUTPUT_SIZE, 0x0a20 }, - { OS05B10_REG_Y_OUTPUT_SIZE, 0x0798 }, - { OS05B10_REG_HTS, 0x06d0 }, - { OS05B10_REG_ISP_X_WIN, 0x0008 }, - { OS05B10_REG_ISP_Y_WIN, 0x0008 }, - { OS05B10_REG_X_INC_ODD, 0x01 }, - { OS05B10_REG_X_INC_EVEN, 0x01 }, - { OS05B10_REG_Y_INC_ODD, 0x01 }, - { OS05B10_REG_Y_INC_EVEN, 0x01 }, { CCI_REG8(0x3818), 0x00 }, { CCI_REG8(0x3819), 0x00 }, { CCI_REG8(0x381a), 0x00 }, { CCI_REG8(0x381b), 0x01 }, - { OS05B10_REG_FORMAT1, 0x88 }, - { OS05B10_REG_FORMAT2, 0x00 }, { CCI_REG8(0x3822), 0x12 }, { CCI_REG8(0x3823), 0x08 }, { CCI_REG8(0x3824), 0x00 }, @@ -342,7 +319,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x3829), 0x03 }, { CCI_REG8(0x382a), 0x00 }, { CCI_REG8(0x382b), 0x00 }, - { CCI_REG8(0x3832), 0x08 }, { CCI_REG8(0x3838), 0x00 }, { CCI_REG8(0x3839), 0x00 }, { CCI_REG8(0x383a), 0x00 }, @@ -363,26 +339,19 @@ static const struct cci_reg_sequence os05b10_common_r= egs[] =3D { { CCI_REG8(0x38a7), 0x04 }, { CCI_REG8(0x38b8), 0x02 }, { CCI_REG8(0x3c80), 0x3e }, - { CCI_REG8(0x3c86), 0x01 }, { CCI_REG8(0x3c87), 0x02 }, { CCI_REG8(0x389c), 0x00 }, { CCI_REG8(0x3ca2), 0x0c }, { CCI_REG8(0x3d85), 0x1b }, - { CCI_REG8(0x3d8c), 0x01 }, { CCI_REG8(0x3d8d), 0xe2 }, { CCI_REG8(0x3f00), 0xcb }, - { CCI_REG8(0x3f03), 0x08 }, { CCI_REG8(0x3f9e), 0x07 }, { CCI_REG8(0x3f9f), 0x04 }, { CCI_REG8(0x4000), 0xf3 }, { CCI_REG8(0x4002), 0x00 }, { CCI_REG8(0x4003), 0x40 }, - { CCI_REG8(0x4008), 0x02 }, - { CCI_REG8(0x4009), 0x0d }, - { CCI_REG8(0x400a), 0x01 }, { CCI_REG8(0x400b), 0x00 }, { CCI_REG8(0x4040), 0x00 }, - { CCI_REG8(0x4041), 0x07 }, { CCI_REG8(0x4090), 0x14 }, { CCI_REG8(0x40b0), 0x01 }, { CCI_REG8(0x40b1), 0x01 }, @@ -402,7 +371,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x4305), 0x83 }, { CCI_REG8(0x4306), 0x21 }, { CCI_REG8(0x430d), 0x00 }, - { CCI_REG8(0x4505), 0xc4 }, { CCI_REG8(0x4506), 0x00 }, { CCI_REG8(0x4507), 0x60 }, { CCI_REG8(0x4803), 0x00 }, @@ -414,7 +382,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x481f), 0x30 }, { CCI_REG8(0x4825), 0x34 }, { CCI_REG8(0x4829), 0x64 }, - { CCI_REG8(0x4837), 0x12 }, { CCI_REG8(0x484b), 0x07 }, { CCI_REG8(0x4883), 0x36 }, { CCI_REG8(0x4885), 0x03 }, @@ -447,6 +414,42 @@ static const struct cci_reg_sequence os05b10_common_re= gs[] =3D { { CCI_REG8(0x3222), 0x03 }, }; =20 +static const struct cci_reg_sequence mode_2592_1944_regs[] =3D { + { OS05B10_REG_X_ADDR_START, 0x0130 }, + { OS05B10_REG_Y_ADDR_START, 0x0000 }, + { OS05B10_REG_X_ADDR_END, 0x0b5f }, + { OS05B10_REG_Y_ADDR_END, 0x07a7 }, + { OS05B10_REG_X_OUTPUT_SIZE, 0x0a20 }, + { OS05B10_REG_Y_OUTPUT_SIZE, 0x0798 }, + { OS05B10_REG_HTS, 0x06d0 }, + { OS05B10_REG_ISP_X_WIN, 0x0008 }, + { OS05B10_REG_ISP_Y_WIN, 0x0008 }, + { OS05B10_REG_X_INC_ODD, 0x01 }, + { OS05B10_REG_X_INC_EVEN, 0x01 }, + { OS05B10_REG_Y_INC_ODD, 0x01 }, + { OS05B10_REG_Y_INC_EVEN, 0x01 }, + { OS05B10_REG_FORMAT1, 0x88 }, + { OS05B10_REG_FORMAT2, 0x00 }, + { CCI_REG8(0x3610), 0x87 }, + { CCI_REG8(0x3620), 0x0c }, + { CCI_REG8(0x3662), 0x10 }, + { CCI_REG8(0x3714), 0x24 }, + { CCI_REG8(0x373f), 0xb0 }, + { CCI_REG8(0x37bf), 0x05 }, + { CCI_REG8(0x37c2), 0x04 }, + { CCI_REG8(0x37d9), 0x08 }, + { CCI_REG8(0x3832), 0x08 }, + { CCI_REG8(0x3c86), 0x01 }, + { CCI_REG8(0x3d8c), 0x01 }, + { CCI_REG8(0x3f03), 0x08 }, + { CCI_REG8(0x4008), 0x02 }, + { CCI_REG8(0x4009), 0x0d }, + { CCI_REG8(0x400a), 0x01 }, + { CCI_REG8(0x4041), 0x07 }, + { CCI_REG8(0x4505), 0xc4 }, + { CCI_REG8(0x4837), 0x12 }, +}; + struct os05b10 { struct device *dev; struct regmap *cci; @@ -469,6 +472,11 @@ struct os05b10 { u32 data_lanes; }; =20 +struct os05b10_reg_list { + u32 num_of_regs; + const struct cci_reg_sequence *regs; +}; + struct os05b10_mode { u32 width; u32 height; @@ -476,6 +484,7 @@ struct os05b10_mode { u32 hts; u32 exp; u8 bpp; + struct os05b10_reg_list reg_list; }; =20 static const struct os05b10_mode supported_modes_10bit[] =3D { @@ -486,6 +495,10 @@ static const struct os05b10_mode supported_modes_10bit= [] =3D { .hts =3D 1744, .exp =3D 1944, .bpp =3D 10, + .reg_list =3D { + .num_of_regs =3D ARRAY_SIZE(mode_2592_1944_regs), + .regs =3D mode_2592_1944_regs, + }, }, }; =20 @@ -655,8 +668,16 @@ static int os05b10_enable_streams(struct v4l2_subdev *= sd, u32 pad, u64 streams_mask) { struct os05b10 *os05b10 =3D to_os05b10(sd); + const struct os05b10_reg_list *reg_list; + const struct v4l2_mbus_framefmt *fmt; + const struct os05b10_mode *mode; int ret; =20 + fmt =3D v4l2_subdev_state_get_format(state, 0); + mode =3D v4l2_find_nearest_size(supported_modes_10bit, + ARRAY_SIZE(supported_modes_10bit), width, + height, fmt->width, fmt->height); + ret =3D pm_runtime_resume_and_get(os05b10->dev); if (ret < 0) return ret; @@ -669,6 +690,15 @@ static int os05b10_enable_streams(struct v4l2_subdev *= sd, goto err_rpm_put; } =20 + /* Write sensor mode registers */ + reg_list =3D &mode->reg_list; + ret =3D cci_multi_reg_write(os05b10->cci, reg_list->regs, + reg_list->num_of_regs, NULL); + if (ret) { + dev_err(os05b10->dev, "fail to write initial registers\n"); + goto err_rpm_put; + } + /* Apply customized user controls */ ret =3D __v4l2_ctrl_handler_setup(os05b10->sd.ctrl_handler); if (ret) --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021092.outbound.protection.outlook.com [40.107.57.92]) (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 537D33CF682; Wed, 25 Mar 2026 11:47:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.92 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439255; cv=fail; b=NA+URHebpKRGcVuZau5IJCVQZmJN9hn0HQPC4SfpWynRjvlW72azt1ZSlYijuMKD44SYJUwSvxmuuSYDYbzxzpDu8RKX73SbnXlRp7Gh+GaTUFNbfHg50fiyVZjEXhcs8EkqdvgBfHStgsGbJg5mMlHOm5HkewGtM/+VQrC1cIA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439255; c=relaxed/simple; bh=P4nTqaZeGMZn/EZdoQSpBk4fReRYtxEIEjhHKF6QBZg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=iMVeWd1c7nvVlf3m5ynIre2St8uFymqrRwRSC+9pGB8pKgmSR8IjpFtIv/MFlKGMJlg3CWbQ0Hdqqumyf/WAndvE7JK+PZVc//vp9JmtV3J+tD5fQ99DY0Enbh11YfLE8FfDyI4HW12vZMeTpT0y/GywOJs46FjWk9fyltdql+g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=ieM8iHRl; arc=fail smtp.client-ip=40.107.57.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="ieM8iHRl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x5yutHNIECx6ScZH5+CLmVHfVv4Wne3JnWJkKJpUT4MiWcK+GafVq2Sh3OGI+CjqedLb+4WrXQimob/wZTnW6EI1dZAHReFrMWL3DGpST6ODxrL5AJ+3pawLNcuZxGGTbPm4PF8+00ZbQTl0Cz/fwkXbwrDfsdGp9ltPnhrM9HiYSfxuScBkviMe2akfDApgeph3G3gqmPL9SQxxqpEqsqzHUtx7OjZowN8OGmoR0BHggry1QeCodeIsBrTgfBN9NWRfR7F5On4G37kP08u+nwB+rwA/N1C6P29cu2Mzo9rutnsVt4n4wxQhqUh8t2qTNigXQW4yCBa4zL6IIAKpUg== 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=kTvCUHnZzgZN8jdgQ6UucRi7PmbDQL5KSYAiv48Wi/I=; b=vpASA1HSxS4e9UbiY/V+yEFSZy1DiaN4/kKviVQBRrLHRXOk5ErmRE7AJxlz5+PJ2PLW5b0CFa4wfYakYUDsqTJFP+YymdqYIdhqoJlJTJG7l7vMGJd155aCM47h119pJDPHPBmB6LsBl2WcCjF9iq0kgmge6KmLyxdC9GpK4o79M6/DXIZh+wNlEbjdXfKwR+dbbOgsdKAze2RzzF32eUb4uyqf6SbHEMw3EvCAvlDYwB/a+eSp7e5uQut53nqsJ7/nMsPLZy1hyoP+LCyv3O7DGn7hL+qtg4VKky/Bu6EikIw8mtYniEK6k8oPspEhXQf5ivTitGHl00swI1ujbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kTvCUHnZzgZN8jdgQ6UucRi7PmbDQL5KSYAiv48Wi/I=; b=ieM8iHRlR5nc1g46GlIv/bc9IXJVzIojfZ7n3bXB3lL8ab09C70Dp2WWRsmJSVDz70hS1wAZ9lFi/d/qjbdkV73V0kTSeErkW8oSI5VPSmj8KfRC9B+MxBFX9RHGrVkeqOieaGxe7X//pdxF6dvXBuHjNGGGQfws3d4Ab3AM6hNTffQ0XfzIK8IT/XgbOz2cXRUWc/cXJeZSX4bR3F6MicTR0xmMPRW7mrWBE8UGaaH+c8LHcuSoKFOmMWiNiAF6ubULnqU1ChU6cmv518/EASwnnhZf1ueMbHorP7BLB1YlsvIt9nSkywV0EBieCdXDaOSMHYu6Q2hbisH8jMNFTg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PN4P287MB4294.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:47:30 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:30 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Vladimir Zapolskiy , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 05/15] media: i2c: os05b10: add V4L2 digital gain control Date: Wed, 25 Mar 2026 17:13:51 +0530 Message-Id: <20260325114404.95188-6-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PN4P287MB4294:EE_ X-MS-Office365-Filtering-Correlation-Id: 219179c5-50fa-453c-597d-08de8a644b8c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: nDucQDkMS36BrwC/3F3mvPRzsOZyLiUoLZ4fZspJ4fpnPgxnSR8ms966p5Uoyt7/2QX8Rw9AzgQDGbcgbi/Bejoltdws8SGIs6Ewn+SGaPcBSRBFzmcyeR3Q0YF/aEyRr1JLV4TC6po77kemOpiZdVkDuFyPN+sk4urc9v95cjxP0z3pZwtoM5Tj909vkEzQYJ5exhbAKTgFmsVeLp5G/+9H5ANEu18sf/A9gLLo8czcvkowDOGWt0Q33ZgLVjOpCOfhkO3e69TtcaiIBlOyBDz0kOI2K5Ih73JFdU/ckPk27c75lC7NdzKVOt+v+DGC1dTVrgkd0079fEbkl1i1ob3AiVAEtDTRseAAWlbl/nxzVRRpYPHPT92oPxspto0SxG8V9TSQHwk8ntu0te4DAQoB3DDB3CqisMGQpa5eeL4KoHyhhWtlc1BCWTSjB1903K1z3+5pTV12U4uo7kTL8XEzjpSaRQiyCKH1kzL/wg4N1h7Cot1OwJ2YwIgFuXJOHasING3fjeaaiJ79aeTWxlB8O4zuXQxHI6JPRwHWH2mB4G4kXPQ6girBATMRm+6a1xKEG9olo7wOSYjPJxgCz+8vXF9X4izwD5YoyLZQKTFtq1B9h7UF5sCQYUmb1VrdnT+sUAAi9hlmIEg4Pdk1NHJbN8L984zIiDAhl1ATnDjdxSuqFnyD2ykd5CVGf1a2ht8RLG5AvDzUpK+QlCSwb4O9OERleuNHa6lXiBNJa2Opp9GxfmPprgvara7SWpS/2mZ1wG7OmuxVmx7Q7SAa5L3JfEn/d38K7idfHwpMgSA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HPshzzn+WG1/XTSexQrpiTrxos+AgfWnUUvf4vzAJn6L24P/977DjfHrCP1T?= =?us-ascii?Q?lbs9BVXyExrgieLyLxezdX8U27YmFDzl6tDGojk2Q/Btg+NXTB8JbmUc2spZ?= =?us-ascii?Q?KCCO1DDuXYNVcejORhE+qo+R4qUtHDF2togkrqIAJsEaIDVu00+vXBTd+Zb6?= =?us-ascii?Q?cSTrtJykEhCNKD+kR7Vzkq/N6B3s9ZjAcvvJyqnh0P7q+zbCnmmwO8v+mlzM?= =?us-ascii?Q?e/C2oeJNlpor7XKN9w2guv72Vv+jNeehfTaVbQp6dvfocMnB9XbyApUOLKEs?= =?us-ascii?Q?OJA8GieOTKByXjUMOEPzA4S35Ao+kI8gO4t4v/PPxaX1W7DMzXtrMxTz6WXV?= =?us-ascii?Q?WXhQHYprVyrabuvEla44Ne98HM92OirVa+znr3WOSswBhVOaFjt26BT8//Hg?= =?us-ascii?Q?+jfnmiBin+3QIBf5GG5QM69eldi/8Pk+Id9I7ggt5cCuRUEzQ9AFMGL4Cwsv?= =?us-ascii?Q?vBrf1rZXsbqxqjGFUrO4lSzIiFIwFOQNNSe4KbrSjs7/HYkZ+8p66KFjEFWP?= =?us-ascii?Q?JairiRawxjZRvJWO2/1Ny+ao90yBVUmOS4kWw+wsbrpN76OTEinoDW9T37qb?= =?us-ascii?Q?qnT4R1VugUuFW4dHvxYnyfGqJxkwxxJrpDeUefvtYJ0ztAZLqQfVhFq8eicX?= =?us-ascii?Q?KlVeFwS5pXAFE1n7/EuFi/3l84zwUS6CNcxClzhSLKfiIz5/+8RJcqeObSem?= =?us-ascii?Q?/qOyRcnSHkimzyY0YlBvFssgCIg+e9QUleOiR2vLrWEtXSFXppl7s8Gf1w9O?= =?us-ascii?Q?wvuJcXcvVNqbTw/il+E7mhoTwIykP/YFaILVYsm6ImO6IwtIF353uR8mwOKm?= =?us-ascii?Q?B9eM7dBGKTnXOHhTWg6hJ16YpLvy1JdyFvHoWaHgeXGA7MO4NJpZuIs7AkDr?= =?us-ascii?Q?S8+3zUECTYvOdPt1CynmD29a2/MyC7UAr/JIkbzlwKK5yvSDK02bZJlVxwrz?= =?us-ascii?Q?Mul8RrvApRNIKZloPJiVPp0YyqTjLNg0FRbtIS+VzoBSjORTsZAc3CHZG2sh?= =?us-ascii?Q?I20SpQYgHp5NVK+h49odWDwUXwuMquthqHa7HFjzGxCUTdYoGBYBTepi1NUh?= =?us-ascii?Q?f76f9dFLyM4xb6bY/lllOZOZf3CrWqhSisqiOiykAIZcEP680uGUbA3N1dhu?= =?us-ascii?Q?Y3bSt4uVKA/mgYcAec97T8fIMYeaJ8nn/AY/uwj25Or/MwHGPq1RaOA2A8U7?= =?us-ascii?Q?2913nTU+azr8Je70brmBNo8jZVx5Q/WHQb7qQkhPlsRjHyhn9bIH4p/8G3MF?= =?us-ascii?Q?pVEwcdHioPbflJpgCd8Yum2ZHBbZrIRptzBuYRxgAtnEO5BBNvKUp1/QnOqi?= =?us-ascii?Q?k5HQKmUtl4Q1m/XuqEHji81XNZw32+TO2NjGmC6JWH3QktIrazSLQwA4x/sk?= =?us-ascii?Q?qubwBNhP9jd8BQ9h5VVr4VS+Mc7D9k1xEoDT2S2ZDCYXjYEtUPnqf3LLEktI?= =?us-ascii?Q?ozzC6WHwGJkmnHmC/8OZILqiGIbmAIEgqhMrvs9Nen5PaYzMfaRWX4OCf4MW?= =?us-ascii?Q?V0L7BJDKD0qA0IIVJ4YC48KEuFjIxyTxZ9V9J15EnnxBrF2WBKQn8UGE5xRP?= =?us-ascii?Q?p3Nzmhrc7MoMG7Y3JSZSoqe47zmjyjezrHyJCh/gOji7wODUg0ESnlfN0qFn?= =?us-ascii?Q?7UdLGAl728bo8NqwEMZnP9a1l9kxgSjllz4u9YOSlE6SA9pXJ4PorNIvRvNf?= =?us-ascii?Q?Mz4TNyn3dsDTDJMjX5i63LYWS0E85XypVeoeVXaLRdb6zTMCr4hvKq/iVOdU?= =?us-ascii?Q?n4U5T3XXD8QxWGe7VQxzvSLWAHzxFZc=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 219179c5-50fa-453c-597d-08de8a644b8c X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:30.3099 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: h+sEt7pbtDYet+jvpf0LjM8iwNgJf7fEmVySpK+AjVRfESe+OvGJongGzL8dtjoK8rQcfS6KfpLMUXCxIlbrX8w8iwUX13SSYQ5AXDfoeIc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN4P287MB4294 Content-Type: text/plain; charset="utf-8" Stop programming digital gain in the common register sequence and expose it= as a V4L2_CID_DIGITAL_GAIN control. Initialize the new control and handle writ= es in the ctrl callback. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 9499867ad40e..2f47b02149b7 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -129,7 +129,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { OS05B10_REG_PLL_CTRL_25, 0x3b }, { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, { OS05B10_REG_MIPI_SC_CTRL_1, 0x01 }, - { OS05B10_REG_DIGITAL_GAIN, 0x0400 }, { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, { OS05B10_REG_DIGITAL_GAIN_SHORT, 0x0400 }, { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, @@ -550,6 +549,10 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) ret =3D cci_write(os05b10->cci, OS05B10_REG_ANALOG_GAIN, ctrl->val, NULL); break; + case V4L2_CID_DIGITAL_GAIN: + ret =3D cci_write(os05b10->cci, OS05B10_REG_DIGITAL_GAIN, + ctrl->val, NULL); + break; case V4L2_CID_EXPOSURE: ret =3D cci_write(os05b10->cci, OS05B10_REG_EXPOSURE, ctrl->val, NULL); @@ -926,7 +929,7 @@ static int os05b10_init_controls(struct os05b10 *os05b1= 0) int ret; =20 ctrl_hdlr =3D &os05b10->handler; - v4l2_ctrl_handler_init(ctrl_hdlr, 8); + v4l2_ctrl_handler_init(ctrl_hdlr, 9); =20 pixel_rate =3D os05b10_pixel_rate(os05b10, mode); v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, V4L2_CID_PIXEL_RATE, @@ -968,6 +971,10 @@ static int os05b10_init_controls(struct os05b10 *os05b= 10) OS05B10_ANALOG_GAIN_STEP, OS05B10_ANALOG_GAIN_DEFAULT); =20 + v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, V4L2_CID_DIGITAL_GAIN, + OS05B10_DIGITAL_GAIN_MIN, OS05B10_DIGITAL_GAIN_MAX, + OS05B10_DIGITAL_GAIN_STEP, OS05B10_DIGITAL_GAIN_DEFAULT); + if (ctrl_hdlr->error) { ret =3D ctrl_hdlr->error; dev_err(os05b10->dev, "control init failed (%d)\n", ret); --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021112.outbound.protection.outlook.com [40.107.57.112]) (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 808513CF682; Wed, 25 Mar 2026 11:47:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439265; cv=fail; b=ifgvpQm0Ug0YkuAVKd+4nfJt+wsmT99WfIsYWwtTB7qT180aiZIEKzYBTlh9BVEo37u/qQ4F4P+wU8bUxhzbJKmuGOliGQ74k0jdE2wuSkY0lOQ3/qshEcR4Sb+P5wyr8cn51T9tZRbr3Aj/8s3t62iGJFPWwZULlgc8vP7t6c4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439265; c=relaxed/simple; bh=/h4HLe/SeIhtzdAOaXTqjUZiOoRFeiV7uJBGik8VLao=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=GOCuuDk/eaEB01/xSseU0LgXFy7cAzvbs8XZeidAWl15DlbFQ+Y3rRtCyb6Esr8aOrk1PTwVtHNcrT99Phlczj0LU9wb02Wkw3/ISnI5ygxfJ/2f5E0rqzPZqdT1Y4l6eEVeEXiMKfk43piICiPK5oY3nejVyEEPi8IJ68bbuqc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=VHTjmnEb; arc=fail smtp.client-ip=40.107.57.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="VHTjmnEb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qL5ITMD/0sHu1Jg6JqMgnhtiA64CtI/6ImFYAq+cShYn1mjWkRWFd9uq5i4T9WdTZPULFS/H7JIkjISmHvMUVFuaTMe9f6au5wGX7mcfxwMdGkDIjzmm1ftvX06Gr9YiA+DqwINLR+CSstt+EBsRq2XUJ/ekvJXEWwyLGarwkBnuqjnzGonOJPzV3nErKBCGH2v01w7V8po1h9dkozZDyLPH13l6xpruDBV88UrDaOD4Bj4sgFw8qbO3hfzi7IrxYi2rmodE+7TyEYuyEu/Hi/5Bd6PlQXPFcnOTiYh5yCwptMcW38qUrXXY5S25R0H9r+5+Rv0ZgumADkqoNstTlg== 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=ZDolXAS5oqHRyeMBLRQ+fO0fXod4B6OneODG49BEcIs=; b=bcgvEljncygdXmqmL0+wEUPU5dASnRiLSxY+SFQNdEINTyRa4aP8asqG/gpadwggF+fbnJ7doWrReqy4e+RDeUXFwluJmR+whZBEixHWxJRnovufrFwo/MRS1D+638dBay0mzeCZ1yum1cBz/8Dm2uRTbtHZnMHYd5B+B/tPSQkf0VH/51G+F019umMN+cogFMUBEz++bLs6r7IDH4E6mI+DYMH7wDusBaqJVA1ET2SQt4ZcOOs0OT/GDtuU2bJ/BwR5w2CBGsAFu3GX+3Rdv+DfedRsFIcUXgoFAbal1ZqValIAgxzDzcugkHs3N7Nc2sOfaV63/yQ2ScI2VEQRGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZDolXAS5oqHRyeMBLRQ+fO0fXod4B6OneODG49BEcIs=; b=VHTjmnEbXwNgTZKAYkYekmgpPMiHnuifrngp+JHC9BjBdQJLbMMyIC2k33ODtR7MA0GSsApfJ/wDPBAHb1EaLTidNDcMqJOsQCYrFSHteHPDQc8QszTgBR+DjjxFJElQN12gDFlWo8khYgs5EpNgV3cIiHV3Lya49ltXcliyYnVS4mSXJldLMGOf8P8MZCiJmdxk6p0v6XFf9ccT9Zq1FV9TqN8GD5PEfKRvuxRY1hUdEl+EFoArKj9MnE2ORQ2Cnmj93FhIHk/pUH22jKKhGN8ZzMb0Y9PlDwsc2xHIs6SNNCAk+LFVF1s7gdcpFxdVgpuSJ4xCGSWCbizfdzgRyw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PN4P287MB4294.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:47:39 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:39 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 06/15] media: i2c: os05b10: Add H/V flip support Date: Wed, 25 Mar 2026 17:13:52 +0530 Message-Id: <20260325114404.95188-7-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PN4P287MB4294:EE_ X-MS-Office365-Filtering-Correlation-Id: 72d1a511-f472-43ca-23c1-08de8a6450ee X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: aUOA78dfY3qcoK/EFjy7mmcy8lj0dV2yG8oqe3pWfW4VAijTmXVqIz0uEE6jsA0zRDFkL0JtnynpWKzQHhZ6UTwR6o/YE2ukcQiwE9lyZ+BAcAj3DihECqWrYWBhA0UM2FwBwaSiBHttWXhcpdyAuyf/unBk9IiTx7Gb8yqHtekgnaYoXLeyDp752qxCWfnl5cf8hBw3pc9Kf2lWO26qkow2xkLHlK49LEiv7nHKgU4csLd5Do7tfCxjYVvEQFrRrS5TPE5hp34fMlW92ePATNgPnKoX0E7KBQuK39cIrPSPL0ySm8XElJuq0F0RzQjZkrJe8HnOlBVcGY4Lmq78O/bBy3C5zKKehcs6rq8z4GeRCAswpRg0duZhm/Z40fTCOQ566ZBIR6riHfelaWjvcvfJpBEANQ309U+8aK8a+ioSowwEbHdjFklhkNhEa8BeRMc6nxSRNJUavahnCTpZoSHcdMxGKA9WvFpzcuqKscw+pmiJGAiomPkBt8DaU93aaiX/nrai2CvuFYWvRHEh0Kv2jjP7wy2SgM/Ay6vtWRefkmSGYE8idYT2l0F50UEpTJwx+JMeeB8W/dFiBG0XlHIsLg5AWoSUdnS0f6p+uyW9aI8ibEjf5tbGWcaNnsyQbnu+ZJjIsB0hj5i95vtN0y+4nQAbdb3uCbazOltAY0Agt+/iQMcECvr5dYgxcoWOLzyDtU2djO1LnJO9SnoXxVXE3JPc3l5QZthcIiLOSfRsdmw778A88M5lK+W4rzDA1mge45OFRma5A1cwdHfEKMfQGU4pJbH0v2Bi0XEYzqo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ig/VR5UHVEBKl7m3k20KtqdtBz9b+rdGlz2hLDtm6LzSx33SqSSIaPIBk9aZ?= =?us-ascii?Q?cOKZrEI9UmGIXuUkW25GtpKZVMn4zocQ+7gsOXWYY5UU29ehfzbN9+4s5o/q?= =?us-ascii?Q?Dl/byAEh2lQHFC2WOv5UtXi0b+Doa3JaxZuRx6aigMZWKwyF9cZDFDQk1Rkb?= =?us-ascii?Q?6wX9JxiXvsclCp/QG0kIkmdpf6hECSUJx1iDrBDyyYAmfeRypf98iP2YMqbA?= =?us-ascii?Q?3Gwh6M54Rl56/hMjDrXZadhmosCgOZGWmNwP1kP1+agMsGrPFYz8PSIInTgA?= =?us-ascii?Q?O0ppWTrIPMnZPwIBV/2ZlShbeymYjDyGu3FnCX+JA01/gDibP4t3NVIc5dRI?= =?us-ascii?Q?P9vuRgc95oIV1GC4v1+DPr+ggDxMH/6aN7mXUHd6hxwcJpCfcEidrFODzmAZ?= =?us-ascii?Q?3QsYVHuLfrWgvhGZIiJl8eG48iob+sTTJ4EX19x7YgbDkq0FVn0SbV12Qt1M?= =?us-ascii?Q?Im2qH4b/XN2E7oBsyYV8Rqs6P4jUUxstmIfcE+tIFXY7iWXP97LW9vNdbiOo?= =?us-ascii?Q?kj+jhGJ3+8JMsmNkZrQcgb0WxPHC8ivUp6DSioWYUq6Gw75UMS+F7RUUtlyX?= =?us-ascii?Q?4+2JaU4PauGxQEkwRe5pKRwHJLSmRHqRLKLBk07Ez2b6JIkTY+/08Ifx+e0d?= =?us-ascii?Q?jQX7imDcG01wcu9wpwgdHPZwFEOZrw/u9YaLfDZyXXOQPdAcDWERvTia+KcX?= =?us-ascii?Q?o5yPlvloy8wg/myU1ypGYJTTSknpColQmgricv81TbrhqaAnsvEc/yL0kYul?= =?us-ascii?Q?rRnaEqCWn5CH4yLABYZj1/Xz2Cc83IZn6OrV0qe4NlN/6mmQPMDGOKvO0eaA?= =?us-ascii?Q?ab+GhW8jm1Q+bSYk3oFRK4ksPql9jXoIG4ZxfMi9AQyFs6Wueb8VOj1hJThS?= =?us-ascii?Q?ZLGLtOpwotJgkj8GFgjG5zfWrH/jvQHyngbw3IhVyNmyx5kZSJuhPgHhy2b0?= =?us-ascii?Q?H6FEU8BHyP7O+ekhasRWjt9Mex016w+XlV2ucFH3MqoQhQfrjO8RNz0q7Epr?= =?us-ascii?Q?9/hetRLUXKNCvwcPTKRzgcnESXSaXTfzSEfYUSgiRy8ZnrJNy06eUC0EqNNX?= =?us-ascii?Q?oinSaHgIAB/P5E5gif9Lpoa4CglDs3WR+3yt1wblsX0EGVMa8ZFvXelW6s/L?= =?us-ascii?Q?MHzjZEh5dWkvnwhmsve5xMVykTMv/8WwUdh44Vgapv7SpXrtOtE2de+nN6BH?= =?us-ascii?Q?QDhxwh9jkSRsHAz2Tyl6syNtaPKnb3+FV80Fj+5xPxHpw5mbg6ldDh9mDXUa?= =?us-ascii?Q?D6bRcFJlL41UKF0+Qnahvg8PCqtlk3D915Tx9uCB9UWaAIMhaIgHuU48I2n9?= =?us-ascii?Q?votQjrPiqG1ecFSQYhR/fY+LNgJL4ZxY/dOJHU5GuMMlthYwdMMs+YcU9bho?= =?us-ascii?Q?RSnGkWajrdLigj+pmJS8C5i5mzUhg9PL+ouVD3uMKzHmYrU4Uy0c7A990OMA?= =?us-ascii?Q?RmKMkEnItrbye8xVhXybKG8wrE4MZcLnk6+uUCToKggNsGSMsE2aA5F9Asjq?= =?us-ascii?Q?+aAgiOIt7cC/xYqPPN+A6HDxmkzNdAeXvZaWvfkm7wxoQP4eKvrEHw3SZmgk?= =?us-ascii?Q?9Vq/YHRsbbfmuwhzeZx7/X0CG8f/wqAuOy4zwkN7dYwDmEY7cO8aSGHfAyM0?= =?us-ascii?Q?8hSE0vg9XDzHDZWpxlxSD3pqU1jjYl3iZypivCCBl6m4vGd+1HTerxlGR5AR?= =?us-ascii?Q?Xze3vc3PA0WxYvI1BWkYUZgqIhDB8b0KsSEYkuZ11iTIX8K2QvIg+einKN3Q?= =?us-ascii?Q?4jXS3EjeVdf2pNaqEVwajJM5qvOsmk8=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 72d1a511-f472-43ca-23c1-08de8a6450ee X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:39.3398 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6447qB2SxpOrmmiFxQI0wSMStquBnSxjp78WxHn+lijai1pcDLK+esSHj5AGBzoEIaM38cQALKuQRyJBx4lhfJp02ILaQi5AVURveyq5xi4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN4P287MB4294 Content-Type: text/plain; charset="utf-8" Add HFLIP and VFLIP controls, lock them while streaming, and update the reported Bayer format based on the flip state. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 59 ++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 2f47b02149b7..bf848eb9ba52 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -96,6 +96,10 @@ #define OS05B10_MIRROR BIT(3) #define OS05B10_FLIP GENMASK(5, 4) =20 +#define OS05B10_REG_ANALOG_FLIP CCI_REG8(0x3716) +#define OS05B10_FLIP_ENABLE 0x04 +#define OS05B10_FLIP_DISABLE 0x24 + #define OS05B10_REG_FORMAT2 CCI_REG8(0x3821) #define OS05B10_HDR_ENABLE 0x04 =20 @@ -232,7 +236,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x370f), 0x1c }, { CCI_REG8(0x3710), 0x00 }, { CCI_REG8(0x3713), 0x00 }, - { CCI_REG8(0x3716), 0x24 }, { CCI_REG8(0x371a), 0x1e }, { CCI_REG8(0x3724), 0x09 }, { CCI_REG8(0x3725), 0xb2 }, @@ -466,6 +469,8 @@ struct os05b10 { struct v4l2_ctrl *vblank; struct v4l2_ctrl *gain; struct v4l2_ctrl *exposure; + struct v4l2_ctrl *vflip; + struct v4l2_ctrl *hflip; =20 u32 link_freq_index; u32 data_lanes; @@ -514,6 +519,18 @@ static inline struct os05b10 *to_os05b10(struct v4l2_s= ubdev *sd) return container_of_const(sd, struct os05b10, sd); }; =20 +static u32 os05b10_get_format_code(struct os05b10 *os05b10) +{ + static const u32 codes[2][2] =3D { + { MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10, }, + { MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10, }, + }; + + u32 code =3D codes[os05b10->vflip->val][os05b10->hflip->val]; + + return code; +} + static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) { struct os05b10 *os05b10 =3D container_of_const(ctrl->handler, @@ -557,6 +574,21 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) ret =3D cci_write(os05b10->cci, OS05B10_REG_EXPOSURE, ctrl->val, NULL); break; + case V4L2_CID_HFLIP: + case V4L2_CID_VFLIP: + ret =3D cci_update_bits(os05b10->cci, OS05B10_REG_FORMAT1, + GENMASK(5, 3), + (!os05b10->hflip->val) << 3 | + os05b10->vflip->val << 5 | + os05b10->vflip->val << 4, NULL); + if (ret) + return ret; + + ret =3D cci_write(os05b10->cci, OS05B10_REG_ANALOG_FLIP, + (os05b10->vflip->val =3D=3D 1) ? + OS05B10_FLIP_ENABLE : OS05B10_FLIP_DISABLE, + NULL); + break; default: ret =3D -EINVAL; break; @@ -571,10 +603,12 @@ static int os05b10_enum_mbus_code(struct v4l2_subdev = *sd, struct v4l2_subdev_state *sd_state, struct v4l2_subdev_mbus_code_enum *code) { + struct os05b10 *os05b10 =3D to_os05b10(sd); + if (code->index >=3D ARRAY_SIZE(os05b10_mbus_codes)) return -EINVAL; =20 - code->code =3D os05b10_mbus_codes[code->index]; + code->code =3D os05b10_get_format_code(os05b10); =20 return 0; } @@ -713,6 +747,9 @@ static int os05b10_enable_streams(struct v4l2_subdev *s= d, if (ret) goto err_rpm_put; =20 + __v4l2_ctrl_grab(os05b10->vflip, true); + __v4l2_ctrl_grab(os05b10->hflip, true); + return 0; =20 err_rpm_put: @@ -733,6 +770,9 @@ static int os05b10_disable_streams(struct v4l2_subdev *= sd, if (ret) dev_err(os05b10->dev, "failed to set stream off\n"); =20 + __v4l2_ctrl_grab(os05b10->vflip, false); + __v4l2_ctrl_grab(os05b10->hflip, false); + pm_runtime_put(os05b10->dev); =20 return 0; @@ -741,6 +781,7 @@ static int os05b10_disable_streams(struct v4l2_subdev *= sd, static int os05b10_init_state(struct v4l2_subdev *sd, struct v4l2_subdev_state *state) { + struct os05b10 *os05b10 =3D to_os05b10(sd); struct v4l2_mbus_framefmt *format; const struct os05b10_mode *mode; =20 @@ -748,7 +789,7 @@ static int os05b10_init_state(struct v4l2_subdev *sd, format =3D v4l2_subdev_state_get_format(state, 0); =20 mode =3D &supported_modes_10bit[0]; - format->code =3D MEDIA_BUS_FMT_SBGGR10_1X10; + format->code =3D os05b10_get_format_code(os05b10); =20 /* Update image pad formate */ format->width =3D mode->width; @@ -929,7 +970,7 @@ static int os05b10_init_controls(struct os05b10 *os05b1= 0) int ret; =20 ctrl_hdlr =3D &os05b10->handler; - v4l2_ctrl_handler_init(ctrl_hdlr, 9); + v4l2_ctrl_handler_init(ctrl_hdlr, 11); =20 pixel_rate =3D os05b10_pixel_rate(os05b10, mode); v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, V4L2_CID_PIXEL_RATE, @@ -975,6 +1016,16 @@ static int os05b10_init_controls(struct os05b10 *os05= b10) OS05B10_DIGITAL_GAIN_MIN, OS05B10_DIGITAL_GAIN_MAX, OS05B10_DIGITAL_GAIN_STEP, OS05B10_DIGITAL_GAIN_DEFAULT); =20 + os05b10->hflip =3D v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, + V4L2_CID_HFLIP, 0, 1, 1, 0); + if (os05b10->hflip) + os05b10->hflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; + + os05b10->vflip =3D v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, + V4L2_CID_VFLIP, 0, 1, 1, 0); + if (os05b10->vflip) + os05b10->vflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; + if (ctrl_hdlr->error) { ret =3D ctrl_hdlr->error; dev_err(os05b10->dev, "control init failed (%d)\n", ret); --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazon11020117.outbound.protection.outlook.com [52.101.227.117]) (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 D37A83D1CC0; Wed, 25 Mar 2026 11:47:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.227.117 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439272; cv=fail; b=TZRhCc3JFl28ixmqnC0p1G65qcQGOWYYz6ZndcUlDZGawAZ4tk+V5eoGy7So8BHWDd+BKoLLt+VKPz6MZh1u7UuZEQIg9pYiT3/DQQdxVg3l3JriIiPujLYiZEYuXisj91DUdXSfMnvmrYErxPHvh2TK/49ufozQHdRb1r50qBs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439272; c=relaxed/simple; bh=gX9mn3wuDX1yBRmG5gFeT/aYslwp2JHUCQb8gh7YS6U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PiEWAkoouqTpxOAik9gqWSQpzOKpt4k0v7+fd1E361ql/tFNQ5N9Vcdwsu6kQWOXxjf2qpKM0Qzw5p0e6oYhsgXiCu8Xa9pqYrFw8OBCGVmZ6O8NZOkEW2dNLxvCU5ITEnzK1j0MRv+QmkdI2FsK+HkMzV8xUQqlCXpUyH91aAw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=MdSv5pby; arc=fail smtp.client-ip=52.101.227.117 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="MdSv5pby" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BFpWTSrxPBIaicqntTW1uD30cSACctfIBS6hOMZDpoq3yeXG+YVXKigvKUZG6Nl7/ObhrgniHIEcI8XnT81bEGthMQvBoh2SpUHbVnDxZ+RrirumrvjlVp2UBhAYnD9QsA9zqKEAycSCmcWb2/Xxa8O18YYNnADAT4RSs7aMWPxW5OEOVZmNWDL1v2kkVyiW8vtpFUe897Tv3OKCzkFuaFyvt7XjpDfnaweKR5HCNGdxhi+Jkd26YMuMNpzRy9tarWiOv9eQ54qXWW5xClaeCcSjHmzShVw6w4SoOqLxur5M3+ZHYJ+vPo5tkSf5lo/xfum6ESmgq5SUxSBH4u/nYA== 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=yg2CnANZW4m3CptM0Td2WkiyB7eit3Sf9FhnKNcttLI=; b=TnkGrI/1NxXV2jpChSIqrrJCE/XWf79qltygZUHfMOxNcjzGtoKJ5aSOVWpDHBEvVdqbyJ+kj4wlUUvjTff+KSqjHmrrO7CrxB/GD/FG78nEYvIThWDUCPYW/zuGvzcLrZESgQRYUhzYWWFWPpY77ekNEM8TSm3Mh07KhEKVx4QhsVNzTHDJhsMR97R67fe14g8Z+BNPeII4K2UA3sLd37FTywREAmy3cW2VcRXp9wHvWFozatpSafpmumC1jLISMAAOpWIxrcmPljp5CmyudxevligqX30bfZ+9B/sIOzQ+gHfhRUyiXnFuBEZgKhCq6lSZ0cxC1ZJBpPhUZX7tOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yg2CnANZW4m3CptM0Td2WkiyB7eit3Sf9FhnKNcttLI=; b=MdSv5pbyO/CA2Mh87g6Y2Fyougz/oCykgo2dqivblu7G3YF354qhdTYAiedXs1J47XxRChU8MXCFqZosiVX0mTosY9y9DZNYzw8IHM4APDxWjOAS92eweQc1jin5vDX91WwHJicQABKgX9RLsyG0DTGey4BepXyDHIzIJDc6hxjrQmhf6078Jv7AK8iixrGs9ZI4GzbfXKULfIHPf73tdPCQfEqp2B0FblxFU7yRMTIot/utypb/qnq0L/dvgaB+5cHYhvrQ1WFMopHhzAm5ZABmDvhxj+GAlFPvQgnuFUbtqMA9aOPeOV2EOr0EVi/YVKu8R6xxpWi53MbTbr2SvQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PN4P287MB4294.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:47:47 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:47 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Mehdi Djait , Vladimir Zapolskiy , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 07/15] media: i2c: os05b10: Add test pattern options Date: Wed, 25 Mar 2026 17:13:53 +0530 Message-Id: <20260325114404.95188-8-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PN4P287MB4294:EE_ X-MS-Office365-Filtering-Correlation-Id: 4db4c79f-0623-44a3-0efe-08de8a645608 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: YVCh/jgmg/f/KaSALG4EABitS4KYaMNfjenmKEqUYGBoceU5WppI6GLufI5pNuqZ27xVXZ0l3OxnZ2syQZlmcz2dftUsGGJDZE18bsIbBhbpk177qOWZiAP7IpeaHeo20KiXZcrT9eoNQTrKq6DilQ9R2+we8gv/W+m063wg3fRcb0CZmNZyCnm+IYSXPz+K9g8LBxEoCU+OwUPR7XHYh8gxbY8jPwlOoyuI6PWj3s9u81bYpwJ0b3rjfnkpfwZwTw+5HdY+77/jopAwnMxzMLu1V6dwO886KCpew86McQ6u8q1s2876QSwgTgFLSfKYyVg0wvhV+OWTAQ7yuM9Y++ZvraBOLiufj+eeg1rKTY2QaOSahcRZv9FNkZHYHYMzlzKsCAHmtzzXACkhuvZOJLzSgk3yqZLwXWSTQndMSdyVotv6SLsBtdfDk4XDIGxBXcJBJRFDSNouB9BQjlRto+EalNfOFKyu1Prm+Uh/U4wygLaK66GCBkdftwkV2iP6j//gWUoSm9/TmG+vKKHzIv2u6QxjgGB8ihklKx2IubCRO0Tc48pdWiRsbhEtB7AteyQuHPJQQtnloT5kP6Y2hGAHfLbD/dYHosdGPG+eBUlcg53WW8oWNnaZfP9Gr7iUNz71YNFKbyECUXKnDbg4agZpvPptli3nBCQ6yryB4pEEco0ffoVpvbPXiLzE2CbKS4ri+2R091cnjhY/iuzaJjcB4/o20gGS6sRpzPhGbBQeppLsUB2hqfBGTNLd0aQht+vRCt8+5GFG8mR/9SgIx3w4eEc6Nib/WE3NIzLvGiE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DUFcE1o1S1wDC4oayxJy9GJYQl/jdlzlJt15ISz34fJj2vHITjuKdMuc/da1?= =?us-ascii?Q?IyJfeAOwEk6Uz1+MkRBOhGhE4ZnVPqrPLWtBcUPcrwGlt9nR3YDIebiyyxfM?= =?us-ascii?Q?ZRn0SNUObBnZi/zgCxN9MRVsO7sjvT/f20SUNBsdOUOA9Iya9+fgdF7sSFlU?= =?us-ascii?Q?4/j0i1RKkIqU9vL+0wlA4alLt0C4Fz4v7H1PcAl5FItJyWmmnC/QwjOgV5s0?= =?us-ascii?Q?h5aFgs5FR7BkHayCT8pHHkUYkN9++yLulTYzl5YS8aK+pDTTytkIixP5uZci?= =?us-ascii?Q?Jw6xgNK1DgEn/H3VEuFYx1fXZA+awjUsrjfFt+gg4BUYcePOWbH3an4OVPmb?= =?us-ascii?Q?qWtBSHGXoWhnM54yf18sWosCvjETIxly8YAWorSMWCSj/f/ve3cCO358619S?= =?us-ascii?Q?+InzKlBh0gQ6c33bo0iBRubVKaDIEgUHT3tcXDD4QD1cz0LyEvvavIKUOm5s?= =?us-ascii?Q?0HkloYwlWpPsEVXkMML2JogAKfQQWH8OhrDstXLKM6rtQZq4SdVfsHGmToot?= =?us-ascii?Q?ivTIC2hPmAqrgLyEcOz9bdy7hazQ3bKKsbZw4fLHyMEtO6XkZAYTd7R9EVov?= =?us-ascii?Q?/LUE+Kp09wjMbnMEI9avhYQP4kvj4fdu2cA6A+H4kAUvJGZMmkRGvsjy+ny4?= =?us-ascii?Q?dGKa/9PayE09eKaXeJpd+gz/BvjjmWHM+Tjc9HMURVeSa0Q+aRi/J6AkkW09?= =?us-ascii?Q?MOZauyf4MywwOqbLeGR1cBz+lpL1qkRlLFP/jMQzTsDhmAAK0ev4NItXs1dK?= =?us-ascii?Q?flN62LAAtTsuPafh/YGbhCF5F5CIWqtQLUF0vjCNYbMRAPL8Fbcc93G2CYIF?= =?us-ascii?Q?tM31JVo1SlqA4yCRGBV3mTaap0yChlUaqM78ZvItiULjVIelMVQuoiavsEbE?= =?us-ascii?Q?mUyM1mawJk1uhV1ScKr82UNvyPE8Iv5QeUCuUAOjhcB7v6kk4+ZaUk9/zbIE?= =?us-ascii?Q?eK2xoY+s/Pg92lVsXLbS++yFbDRZvjRYN8YVLBPaZ0tZmkBtUy0a0MwzZs2u?= =?us-ascii?Q?4/xubSzaj0hv2awPlV7U6pBpEynuklKCyA8e4ZwqcNmz1rZFZQYoBhqUJvkN?= =?us-ascii?Q?cQYUH1zps5wEAwwe/LJ1NjVSnync35D1nteLWM/EgOZpqxHWGAQD5lK1rP/T?= =?us-ascii?Q?tZp+lJYZ4yiwdDBrSlMylEx/MvX1fxkFMUH9IEYiP6ZE61LzKkY0ZsWFpcTH?= =?us-ascii?Q?iS0QCDwvsk1L5CG66zsKcbLoDAnft9HE7c/cL/m3z34Ft/DAp33sZ2pdPPpf?= =?us-ascii?Q?CUWqUZ0uzmzviXtdYU4+JTEN0n69xHR910IS6mP+LTDn9iLK71Kscn45Egsr?= =?us-ascii?Q?/Vq1laD+xj6WkBS7TYRpGE6tP2HSEMF5w+hRlgkZmlixHwhiBF3IULPTFTcl?= =?us-ascii?Q?3l05TEBJeRoQjGxDhsc3MnOCjDnZPSvi1InqdThlntMokHu5X2XZFER+zCwM?= =?us-ascii?Q?kGTBF6JREF67RAvQD5uNHz1hUCkwu9MlAnWS/FB1m6KIbG5YbUyC7Dd4JSp4?= =?us-ascii?Q?MoM6ErS7TAkSPmB0hk7TDVRNgwiMVuxxGWvdD/P3E8VJ9o1ndqLwo855spuV?= =?us-ascii?Q?i5i0lZXgRmsq0XzVKeStQcWLWWlM7c1CPg/rf1/5MiL6DlcpBuoTyHNhoXTg?= =?us-ascii?Q?FMgszTtwJKRQT4SGmaE4vxSZayNOvocE/Dy1DQ16SLiPgm9vkLqgKpSSnn8k?= =?us-ascii?Q?vkOm1yWAwDjI/jWMxvR3cmY//m4oKD5aza7hURrCBtpfL3LvdcXkhA+xbtu3?= =?us-ascii?Q?Lsaq6XZU9grNcK+9YKw9RKGIcMiLj5c=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 4db4c79f-0623-44a3-0efe-08de8a645608 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:47.8657 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Cu8RZXMf9YEztm0yuF8GzhCQQBehXSnxZaM0bIAvNnAg1zYQQsM7P4UQj8GoNhEx/iLHQB92JRgPrBpIGC+/532y5TK2ViGhGFIRMtN4jbE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN4P287MB4294 Content-Type: text/plain; charset="utf-8" Add V4L2_CID_TEST_PATTERN support with multiple sensor test-pattern modes and program them via register 0x5080. Drop the fixed 0x5080 setting from the common register sequence so the pattern is selected only through the control. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 55 +++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index bf848eb9ba52..c8de7f5601bf 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -103,6 +103,17 @@ #define OS05B10_REG_FORMAT2 CCI_REG8(0x3821) #define OS05B10_HDR_ENABLE 0x04 =20 +#define OS05B10_REG_PRE_ISP_20_0 CCI_REG8(0x5080) +#define OS05B10_DISABLED 0x00 +#define OS05B10_COLOR_BAR_1 0x80 +#define OS05B10_COLOR_BAR_2 0x84 +#define OS05B10_COLOR_BAR_3 0x88 +#define OS05B10_COLOR_BAR_4 0x8c +#define OS05B10_COLOR_SQUARE 0x82 +#define OS05B10_BW_SQUARE 0x92 +#define OS05B10_TRANSPARENT_EFFECT 0xa0 +#define OS05B10_ROLLING_BAR_EFFECT 0xc0 + #define OS05B10_LINK_FREQ_600MHZ (600 * HZ_PER_MHZ) =20 static const struct v4l2_rect os05b10_native_area =3D { @@ -396,7 +407,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x5004), 0x00 }, { CCI_REG8(0x5005), 0x0e }, { CCI_REG8(0x5036), 0x00 }, - { CCI_REG8(0x5080), 0x04 }, { CCI_REG8(0x5082), 0x00 }, { CCI_REG8(0x5180), 0x00 }, { CCI_REG8(0x5181), 0x10 }, @@ -514,6 +524,30 @@ static const u32 os05b10_mbus_codes[] =3D { MEDIA_BUS_FMT_SBGGR10_1X10, }; =20 +static const char * const os05b10_test_pattern_menu[] =3D { + "Disabled", + "colour bar type 1", + "colour bar type 2", + "colour bar type 3", + "colour bar type 4", + "color square", + "black-white square", + "transparent effect", + "rolling bar effect", +}; + +static const int os05b10_tp_val[] =3D { + OS05B10_DISABLED, + OS05B10_COLOR_BAR_1, + OS05B10_COLOR_BAR_2, + OS05B10_COLOR_BAR_3, + OS05B10_COLOR_BAR_4, + OS05B10_COLOR_SQUARE, + OS05B10_BW_SQUARE, + OS05B10_TRANSPARENT_EFFECT, + OS05B10_ROLLING_BAR_EFFECT, +}; + static inline struct os05b10 *to_os05b10(struct v4l2_subdev *sd) { return container_of_const(sd, struct os05b10, sd); @@ -531,6 +565,15 @@ static u32 os05b10_get_format_code(struct os05b10 *os0= 5b10) return code; } =20 +static int os05b10_update_test_pattern(struct os05b10 *os05b10, u32 patter= n) +{ + if (pattern >=3D ARRAY_SIZE(os05b10_test_pattern_menu)) + return -EINVAL; + + return cci_write(os05b10->cci, OS05B10_REG_PRE_ISP_20_0, + os05b10_tp_val[pattern], NULL); +} + static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) { struct os05b10 *os05b10 =3D container_of_const(ctrl->handler, @@ -589,6 +632,9 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) OS05B10_FLIP_ENABLE : OS05B10_FLIP_DISABLE, NULL); break; + case V4L2_CID_TEST_PATTERN: + ret =3D os05b10_update_test_pattern(os05b10, ctrl->val); + break; default: ret =3D -EINVAL; break; @@ -970,7 +1016,7 @@ static int os05b10_init_controls(struct os05b10 *os05b= 10) int ret; =20 ctrl_hdlr =3D &os05b10->handler; - v4l2_ctrl_handler_init(ctrl_hdlr, 11); + v4l2_ctrl_handler_init(ctrl_hdlr, 12); =20 pixel_rate =3D os05b10_pixel_rate(os05b10, mode); v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, V4L2_CID_PIXEL_RATE, @@ -1026,6 +1072,11 @@ static int os05b10_init_controls(struct os05b10 *os0= 5b10) if (os05b10->vflip) os05b10->vflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; =20 + v4l2_ctrl_new_std_menu_items(ctrl_hdlr, &os05b10_ctrl_ops, + V4L2_CID_TEST_PATTERN, + ARRAY_SIZE(os05b10_test_pattern_menu) - 1, + 0, 0, os05b10_test_pattern_menu); + if (ctrl_hdlr->error) { ret =3D ctrl_hdlr->error; dev_err(os05b10->dev, "control init failed (%d)\n", ret); --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021086.outbound.protection.outlook.com [40.107.57.86]) (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 906AB3D090F; Wed, 25 Mar 2026 11:47:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439281; cv=fail; b=dTvACwTthiRpPSaKQOgoL/lFHmsaQt8VL9QBHftrIqMUdrjL5mOrHxR5Sz/yfvgd++JMZN71y2y9d+usyQiKJ8nQQuE/Qik3jk6xgUEQQl1tLnyGF+lKEggAO+I0IyYhgFJyBuW2ESDh2mm7EgCQQQKEQCm0yMuz2N2gXSrRZHU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439281; c=relaxed/simple; bh=Xs+XHVvVLnYEFFg/HkG+4j6UqXCGU6mITPJmA9dcnHg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=adAHW2jaKf7fuZvk37Zp2dpc5Zn6OWTcXzXYeJ1wEARzi3XvQzqmP3JFdaWBdCxoxes0qD+36VH6hjPFUGjpeCy6xV+yb5yXqdkMyx3pEoEKl8LcbkZzIEl/tLTd17fNxzGQOsbtDzCsUXXM75XbkMj3Y737Ee03bKg5C56u4O0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=Ww7OPRuB; arc=fail smtp.client-ip=40.107.57.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="Ww7OPRuB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CdX2v65AhhY2bIKlFIpgEfQ+d7PLMpYbLJ4w0ipefNWwf+cxUsfTHkEN8CPz5RZ850KuYJxDVzOrATohiwuwkVzai2ldMRwKA3B8cZNn6RkfdQO4T4RfKfF668tn9/VyYq9CNvp4yF/7LeOC4Tkzflp1m5HTB2AcjW3ZEZIiI0yfYse4+RtTze/s5JHvjf0tSwWUjAYq8cIi9vDai0J733g0lFLAkGE4jiXbuxj4SIftGXys2e864L9IO+FpkDSLc7Q/qdafl62kNIS0BZjdG7H83R+D6ZW0orlbgyWOGdFW5hpBAg/hBYpS8ZJRYI+9mLCa4HIm4XEhrmthgEqZ9A== 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=jSthp18lFyUvZ3sRISVwWk9bSk+9phYEXQ9ONxR9F4s=; b=HDnPnlhYpQZMe/eAFhF+W9YwOPe3pttmxy2t2Xw93DGMgC09HEnp2Pp10Z36cuth5a699Ew6tUCrtnbCaOZOmzBFo8J0/fsq3etPAlfMl7eTS0Y3fpTer1l3iMWxit2AJy6dxxR/IWKa1lC7/x2P8cRSihjzvi3WZtwMjRiAE686Z6zbJUYTVa9vurlIYhh0//7rlFG2vhNobC3imWkZ0CbIb34z5dOyeklqa/TfeGR1+vTSvNqNxxbNh6/dzizH53WmTB8SILPzzr1XsEfvnJIaoNZ+aJ/CkymKnZHkR4WEIJlv6I9H6FGMJt6Pr7t8l+VB0cfV5yAQjlAdSH6CVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jSthp18lFyUvZ3sRISVwWk9bSk+9phYEXQ9ONxR9F4s=; b=Ww7OPRuBMtve9YYApnRR2Cri9NeIffnA8P6jYkZzB1D7eWM950OCv7Jz/dz4uARlyaGf4dsbpuEJTZ6KhAbjBoQTdmkaQ2udxZXHOvWGjQatbQaNlnpGRCoTNZ6Bj8Hyje9+tqbf261jZ6k0qaCIYQygiXyT2vPVObsN3QaDVqprKbcIaYjg3wxLkCGvZlLphaelesCbZXtvV0LTySpTyM4pZX2usl8B2ixrEGZ3O/BbRBksUSd2e3TCQ496n4ypTmKVNu5XpSgfESSpYRWKIHpyuQxb0Cbih16Sf9AWR4b+sh7911PJj0Qpito6Zou6fsObaE+rybn1m1BTv2pk4w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PN4P287MB4294.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:47:56 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:47:56 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Vladimir Zapolskiy , Mehdi Djait , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 08/15] media: i2c: os05b10: add 12-bit RAW mode support Date: Wed, 25 Mar 2026 17:13:54 +0530 Message-Id: <20260325114404.95188-9-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PN4P287MB4294:EE_ X-MS-Office365-Filtering-Correlation-Id: c7a2c340-394e-477b-7f34-08de8a645afd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: hm+OP4PNhQ8hAxCz54nukoFoTPIXH8sHbYi8/ljUM4iCRcCokR0rZ9UY5b33Qqq7EZ5Rv5JyJFtGTYCayyJJv1QIxP+eU74d9YZ5bcm7HBIBX5NkbFLUrAvmynLNcU26LkgcVVsUkPyvu9lW0VCVxTLOBkriCSj0Pv15KCljEK3hqwuwAPBfHaKDgfR9qmg8TyOgMjTvknD+WGCWenFxiq3XetUN7ymQG6gQsUQYmyCHWEvZx4slkAq3gLxoEVDZNnyTLCTp99nZi2snrFZbFE+wWkepx4Vzv4b9hnVzSClKciqAFKgqvD7FEBSLy3lR3DN21W1bX5n2mz+4Gx48GfwyAa5P0vlTuOLagLK5SoApBZ5vHxlVFSL8MZ+CMlOY/dpFGAlCTND9j7omc1Z9AjMaa9d8eU7C5riEGLAbrKSjCh1y3UuKwcvmfZ12NOrSBFvfjZlw7vYUyGSdaV5OX9NPg7jkl/lzfnxnLIPwXVDJ5dF193VpCjnUICw6ktnq2eKqDkZiyakVPCuI2E0lPycivh9uUhA8TpPttIPPTjk6XTxsYGQVBVEK+b3G6QKXl2rzBh4uBaa+zjGYFxgxTYZtKtQ3JXjxPzEv6huDcANdSsp7vx4YSyvdJPQ8JizjX+ZBrzruLDa26baQdFSkx7mlbZZbqcGA1g3k+2kGfxgde9ViwMYVA46jJgYil2xRDFtsZFhj4iVvWJFMN6OayPaI0k5gJKonilsK0imS0K+Lke663/UpyBy75Y62l7rVOoQngv911jpWsOt286kzv6vyUuJ2XTI5Wpi4hE0Vjik= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m+spOvJGFp6oNJIwqUDwbtKhtkKrDbpzezwfod89Owc1Dzi9K6Xdqc7d8+XE?= =?us-ascii?Q?BRi/CK4UtFtwrA0DbthMlbC4g7PpugC0wBq9C37qrWzjEj/wDIol2WEXCHbo?= =?us-ascii?Q?CWEpPN31iGBUMyf8b3+LaDoNK0qRa04lh0i7vzY3apxDspkMPcQNo4zN2yOh?= =?us-ascii?Q?fobzXmmFFPCf3tvrYt950U1pXNPqyTXZJ2P8R0guidAzNlz72SRgRe/Rz6Yn?= =?us-ascii?Q?N//TbtKtgsdX9+14HkPCMrJjDU3GSM912VF18GFGVqn6wFohKldc23Zposjz?= =?us-ascii?Q?B7lybwZLo3Vu9z8Gwv/4aNB7RMxnYKMSCo7fRGVh/1nGxpukU5cOnInNuFk7?= =?us-ascii?Q?6oi7Ewj2olnRgzZM9Hbxu86CtcbeqkvgxpacWpj1ORhpHJr5qdQK/EAm5lK4?= =?us-ascii?Q?K29RWkfyzeNuUcu+ZBiZwSLMVng4zEG9LYzc66LcV/6MWXj5yuVMk87J2NJS?= =?us-ascii?Q?jhOSVyWrRW0vDkx56gGjPcgu6DF2KNX2eLjzdJcG2qdjLqVwJMGIqhNXXbmW?= =?us-ascii?Q?4RBTW0tyNN9eneFHiSdC2QqQ3l/AVCgIVolvEthT6REfSkXDSP4RcIJYbbgC?= =?us-ascii?Q?1U+w1eGmiZCcFB7vb03O6L0y+qhtrjReMXehHCQBok6bfddqcfWRjfi3sD2j?= =?us-ascii?Q?7B4nkAtnWzj5Kc+zDqLyA/gNsrDuBGxv61xO+Nu9HsnyC81/jam1aqJn34I0?= =?us-ascii?Q?NWQHZuUnKI6NH8oiB5LWOIMgtNcv5MaLe/QZplYdqgonfeXTvYVopUmywYWf?= =?us-ascii?Q?T2vX6sxSfasCbhdCu3881jdwTI7cnQ+O3jfhwIFDaNKVobiB66W9C6zU3Agj?= =?us-ascii?Q?m6mupc/Rpxgc3pEyKUd1DYv2c9ncGhml3FGbBsKSex16Q6wH+reNg69xWOmU?= =?us-ascii?Q?n3ZVW+KBC5j1QKHRXuw2GTWKzXTFa8P8sB6e7Z5c+kYamPdp+La+l/vTIKPb?= =?us-ascii?Q?GGyUczE+HMU50LMC1yqfQOShd3VmQUmdsaLvFmyaoyodTtiLNcsWcKPMw9Ph?= =?us-ascii?Q?DHqykBxFWNsI5CEoueh/HhEjMrOS0Aup0vY2i6j6rMGMeKSk/Hlp4xiY0fVi?= =?us-ascii?Q?HeToIKCrdhLXr97n+L2FPZPPaKVpqLp/jl8neFdDpEv+WvwJcJ8iUhVVI6E5?= =?us-ascii?Q?+Cbi8s8+YQvkrsHVOSDvvYgrax2b4UkzxO4sSDo10ozfuZmDl/PgoiUjwxpi?= =?us-ascii?Q?Ji2BzyqADr0xSihVkEGo/Vo3EfwAGS0MVV0pZ1pKcb6LGNB52wV0lCxvzvQZ?= =?us-ascii?Q?FZiBhPlrZ9Sb/XBqDP7AlqeElj617NzA8kikiRDtt1Mo8qKcduA/VuXH9vUq?= =?us-ascii?Q?ZZQJcl8efIgR6YmiJVRJYrF6YbOozQQghZi0noKbJ4cu4fbKWvFfupK7UNOY?= =?us-ascii?Q?msM+bBSK8Q1YAFeWMr2JBlNlWPNa07evX/ERhwydLh7zepSYa/RAHMrYYVIg?= =?us-ascii?Q?L49BA9FG/yKUN+xDAI3eUmk0ouvojdZLNVRQvj1gq9jKvgbM0faIJrko1USX?= =?us-ascii?Q?lAIHCD4Ulro9M9ZnEu6QuQ93aZpRJMXwzdtdLxVmlDw87tvOvylWxJKAyI7U?= =?us-ascii?Q?SGYhwjHFPmloge7fmj7OVPbaK8Mqre2jsKeTQ4qn6dj3saNeyYvQ1TYd6qdd?= =?us-ascii?Q?3mujdEU0FRMqEeKjc4+NgExRbNJeGO+rvMbpCL5Ut817XVpJrF04zUJNU5LJ?= =?us-ascii?Q?oNYViewW0BKYzTXHuX2pcisbUBN3WaeF9Wt3K1K7HRaLiRYWVoo73s6ZNUTC?= =?us-ascii?Q?rOIwJsw0LHLvzd046V+tuga4TNRUKgM=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: c7a2c340-394e-477b-7f34-08de8a645afd X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:47:56.4146 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ciHg2c8W4ZboMpSBNsIw42uKnC3xi54vg8ZzD6VSO9qtXVSYj+/RKh6PCrsaWZtz852ASkqDBvDBQEQ7N4xyHlyqGyvyRBztNbKxxQDzCgY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN4P287MB4294 Content-Type: text/plain; charset="utf-8" Expose a 12-bit Bayer output option in the OS05B10 V4L2 sub-device driver. Add a 12-bit mode table alongside the existing 10-bit mode, extend the enumerated mbus codes to include RAW12, and select the correct mode table based on the requested mbus format in enum_frame_size and stream enable. Also move OS05B10_REG_MIPI_SC_CTRL_1 programming out of the common register list and program it at stream-on depending on the selected mode bpp (10/12). Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 90 +++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 13 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index c8de7f5601bf..5c191d58a636 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -143,7 +143,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { OS05B10_REG_PLL_CTRL_06, 0x00 }, { OS05B10_REG_PLL_CTRL_25, 0x3b }, { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, - { OS05B10_REG_MIPI_SC_CTRL_1, 0x01 }, { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, { OS05B10_REG_DIGITAL_GAIN_SHORT, 0x0400 }, { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, @@ -501,6 +500,21 @@ struct os05b10_mode { struct os05b10_reg_list reg_list; }; =20 +static const struct os05b10_mode supported_modes_12bit[] =3D { + { + .width =3D 2592, + .height =3D 1944, + .vts =3D 2007, + .hts =3D 1744, + .exp =3D 1900, + .bpp =3D 12, + .reg_list =3D { + .num_of_regs =3D ARRAY_SIZE(mode_2592_1944_regs), + .regs =3D mode_2592_1944_regs, + }, + }, +}; + static const struct os05b10_mode supported_modes_10bit[] =3D { { .width =3D 2592, @@ -522,6 +536,7 @@ static const s64 link_frequencies[] =3D { =20 static const u32 os05b10_mbus_codes[] =3D { MEDIA_BUS_FMT_SBGGR10_1X10, + MEDIA_BUS_FMT_SBGGR12_1X12, }; =20 static const char * const os05b10_test_pattern_menu[] =3D { @@ -553,13 +568,20 @@ static inline struct os05b10 *to_os05b10(struct v4l2_= subdev *sd) return container_of_const(sd, struct os05b10, sd); }; =20 -static u32 os05b10_get_format_code(struct os05b10 *os05b10) +static u32 os05b10_get_format_code(struct os05b10 *os05b10, u8 bpp) { - static const u32 codes[2][2] =3D { + static const u32 codes_12[2][2] =3D { + { MEDIA_BUS_FMT_SBGGR12_1X12, MEDIA_BUS_FMT_SGBRG12_1X12, }, + { MEDIA_BUS_FMT_SGRBG12_1X12, MEDIA_BUS_FMT_SRGGB12_1X12, }, + }; + + static const u32 codes_10[2][2] =3D { { MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10, }, { MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10, }, }; =20 + const u32 (*codes)[2] =3D (bpp =3D=3D 12) ? codes_12 : codes_10; + u32 code =3D codes[os05b10->vflip->val][os05b10->hflip->val]; =20 return code; @@ -654,8 +676,8 @@ static int os05b10_enum_mbus_code(struct v4l2_subdev *s= d, if (code->index >=3D ARRAY_SIZE(os05b10_mbus_codes)) return -EINVAL; =20 - code->code =3D os05b10_get_format_code(os05b10); - + code->code =3D os05b10_get_format_code(os05b10, + (code->index =3D=3D 1) ? 12 : 10); return 0; } =20 @@ -684,15 +706,42 @@ static int os05b10_set_framing_limits(struct os05b10 = *os05b10, OS05B10_EXPOSURE_STEP, mode->exp); } =20 +static inline void get_mode_table(unsigned int code, + const struct os05b10_mode **mode_list, + unsigned int *num_modes) +{ + switch (code) { + case MEDIA_BUS_FMT_SBGGR12_1X12: + *mode_list =3D supported_modes_12bit; + *num_modes =3D ARRAY_SIZE(supported_modes_12bit); + break; + + case MEDIA_BUS_FMT_SBGGR10_1X10: + *mode_list =3D supported_modes_10bit; + *num_modes =3D ARRAY_SIZE(supported_modes_10bit); + break; + default: + *mode_list =3D NULL; + *num_modes =3D 0; + break; + } +} + static int os05b10_set_pad_format(struct v4l2_subdev *sd, struct v4l2_subdev_state *sd_state, struct v4l2_subdev_format *fmt) { - const struct os05b10_mode *mode =3D &supported_modes_10bit[0]; struct os05b10 *os05b10 =3D to_os05b10(sd); + const struct os05b10_mode *mode_list; struct v4l2_mbus_framefmt *format; + const struct os05b10_mode *mode; + unsigned int num_modes; int ret; =20 + get_mode_table(fmt->format.code, &mode_list, &num_modes); + mode =3D v4l2_find_nearest_size(mode_list, num_modes, width, height, + fmt->format.width, fmt->format.height); + fmt->format.width =3D mode->width; fmt->format.height =3D mode->height; fmt->format.field =3D V4L2_FIELD_NONE; @@ -735,12 +784,17 @@ static int os05b10_enum_frame_size(struct v4l2_subdev= *sd, struct v4l2_subdev_state *sd_state, struct v4l2_subdev_frame_size_enum *fse) { - if (fse->index >=3D ARRAY_SIZE(supported_modes_10bit)) + const struct os05b10_mode *mode_list; + unsigned int num_modes; + + get_mode_table(fse->code, &mode_list, &num_modes); + + if (fse->index >=3D num_modes) return -EINVAL; =20 - fse->min_width =3D supported_modes_10bit[fse->index].width; + fse->min_width =3D mode_list[fse->index].width; fse->max_width =3D fse->min_width; - fse->min_height =3D supported_modes_10bit[fse->index].height; + fse->min_height =3D mode_list[fse->index].height; fse->max_height =3D fse->min_height; =20 return 0; @@ -753,13 +807,15 @@ static int os05b10_enable_streams(struct v4l2_subdev = *sd, struct os05b10 *os05b10 =3D to_os05b10(sd); const struct os05b10_reg_list *reg_list; const struct v4l2_mbus_framefmt *fmt; + const struct os05b10_mode *mode_list; const struct os05b10_mode *mode; + unsigned int num_modes; int ret; =20 fmt =3D v4l2_subdev_state_get_format(state, 0); - mode =3D v4l2_find_nearest_size(supported_modes_10bit, - ARRAY_SIZE(supported_modes_10bit), width, - height, fmt->width, fmt->height); + get_mode_table(fmt->code, &mode_list, &num_modes); + mode =3D v4l2_find_nearest_size(mode_list, num_modes, width, height, + fmt->width, fmt->height); =20 ret =3D pm_runtime_resume_and_get(os05b10->dev); if (ret < 0) @@ -773,6 +829,14 @@ static int os05b10_enable_streams(struct v4l2_subdev *= sd, goto err_rpm_put; } =20 + ret =3D cci_write(os05b10->cci, OS05B10_REG_MIPI_SC_CTRL_1, + (mode->bpp =3D=3D 12) ? OS05B10_12BIT_MODE : + OS05B10_10BIT_MODE, NULL); + if (ret) { + dev_err(os05b10->dev, "failed to write pixel bit registers\n"); + goto err_rpm_put; + } + /* Write sensor mode registers */ reg_list =3D &mode->reg_list; ret =3D cci_multi_reg_write(os05b10->cci, reg_list->regs, @@ -835,7 +899,7 @@ static int os05b10_init_state(struct v4l2_subdev *sd, format =3D v4l2_subdev_state_get_format(state, 0); =20 mode =3D &supported_modes_10bit[0]; - format->code =3D os05b10_get_format_code(os05b10); + format->code =3D os05b10_get_format_code(os05b10, 10); =20 /* Update image pad formate */ format->width =3D mode->width; --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021112.outbound.protection.outlook.com [40.107.57.112]) (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 94E4F3CFF4A; Wed, 25 Mar 2026 11:48:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439288; cv=fail; b=ZkSNkrpl85DOYlhgCTcro3qs/ojW2OkqljkH1cgKHYAfqPXMxhEdaboqiXa2KN1G/4CGa+U2iah9qZVKQymPQkpQJJlQ+r6SvO8lLqx9b0Oi0NMBZ5fXkA0sLDLsRHZaJ2Cya6rb59bljW7UX0AHF+/LzDqyusFntyGcEI5TAcw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439288; c=relaxed/simple; bh=O2fCGsKd7bpNNSKWbAH+QP/BT/yq3PqlV6cMj4nRcEU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Dl8nGdsCx5R/+EqyYc7irhyTmr5vqjyhnnknHBc3Z+HHAuc53RDmBr3u7RUZvnj5GnNle+Vc2Xqwz7wYxC4vSDriDPG65hFX+gf4oyHQGzNJZD9qlDzSZ8pneD5OXq+lY6XkqQ7rktfntMXD5JW7rsqq2S+coO7mLTZ6UdGZ9vI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=iIce7b1w; arc=fail smtp.client-ip=40.107.57.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="iIce7b1w" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t5yYR7J/cPXpSqx8Uqw54t5Oj2C6nVKE5/fwws9jDYRjdFrYlYrPsrBJqw46BBFjxUhhi3fz4fs8IqT0IgIPI56t93KTANnQS2tKzk8sR12YOjTCJ9tdAdmAr47WA48okrRKz/YSi3w1aD5WkhotzZYwk6p31NvgpuxLBvHvnoGnxFmCKZktgsPBVuknmL+NdCc3ApScV49sjpwwPFlEQdZLR0hgLb129STwt+cn/8OCW7/dHPIZT/BtIVhk6R/6tPKLFI9wftvZn4bsrirhqXjMtrS9uGr9sPPpBRfu+bJH7LI12rYEkheYgiWaDnKdVaeVl5jnQ/UxzPKDctRvFA== 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=cJR0NbRca6cQsbpDyBHwl+lhWqwDFHH82VUY3M5xIfU=; b=VeufTfAxbSyhLa83PXuAvSf9+thXrMb/TOjD4XoFsSIHhKhoAkqCwwTVXvlHcJHnFgzUYr+6ivkTr4X8fDJugddB2ZpFHPMV0vZQa/LUMfdQAxH2gtB8PiaeaTTnswzZ1+nO+YFJNk4BDOlqcicMbcIKyi1BzygyjT2H0m38UywUje7avKIZEHPzVynh20Hy3jOFDdtOszzKeGXwThgVwwJEYZpGLBRXHzQskEWnfXWHWqsXVmtn+AOx1VGvBbOSupHwgAtt2RoD1DstZJctD2xr/kZO8e47KXP43iAHgYTRtdmkevVme9p0RTRJ2wcDeD+ZTW/hLtemTytLTfa9Fw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cJR0NbRca6cQsbpDyBHwl+lhWqwDFHH82VUY3M5xIfU=; b=iIce7b1wdZG662HGuGARPFWndba2RNj13AXvnHNPQEfT/+0lVqGeTRe/O8Hl8U5XtZvBga2qb+gVUbrTcpgigiWhhlCGAEyhoGNW0DkW/xsUCTyZl/9Dw9UBkIegAbzbgPcvRyL1a4MKa/O28625aogVPZNXEES2gUqcZSquMbZzHTlHMLwoJB+yY6JmT9aSFjx5rw/JnlPvvPNVWiN1NKp4tKG8x5mqGAdFkXHzAJq7jkWRj0jpBM8eznzOIvHNNwO6t4iJT6XgWneswZBlihtF7JqIae8RbmhkZmuUw1YcKlDDuxS+guFD0WOXsxSS033dxJM6Y6zhv0jDdRqSKw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PN4P287MB4294.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:48:04 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:04 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Vladimir Zapolskiy , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 09/15] media: i2c: os05b10: update pixel rate on 10/12-bit mode switch Date: Wed, 25 Mar 2026 17:13:55 +0530 Message-Id: <20260325114404.95188-10-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PN4P287MB4294:EE_ X-MS-Office365-Filtering-Correlation-Id: a09e8ab9-7bef-49c0-a366-08de8a646010 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: J8VmYF23BOUXt6ppLtt666rq9irE1CSADRziG1s+l0k8Hyvvt4f99fhZ4IBWPgtlaSt+PDBg3vM98nWlzVxXxnErfr0qrNSXCgH0qLeM4xZwx8xXOFuTOE2EMRMyPkcy+Q8hDjFKECy3wCtI5Pg3Zo3PPRPfNu0m/a5sE4/xdHHgRcieVQ8T0XDj3a3m3CuH7xJ44Zh3p3H3vbZ+w2RRZqLFD5EpzgRqruZE+IpFbYMcVeYgDm4ch+ooJUpzQYBSWOBHxPf7d++Q1xIttVlLJYCKyMbuMFjmzSeSgklXVGdUKQwqChOSqu+sOvGUFFiwiarUmqIAiIewZD5zU/LUAJZ7BPZWyPOumx7W+uBPNzdtYYsuL66aHSPsNNBNLBVg24LER4eBhq3fbURRibDhSdYZDyb8rSqosYYW10e8X6pyKUwiogxB5ErYTE2sgqALa35hL4vXiQS3yZGLNAst+K92zDblRpeM9cujl0dtlTCdHXXuVX9pD6jvljNmYqGntVyvZUsjAH+67NDmahL8Co87iJOva9mvU6+CwO1pktyHQkD3pJNmK2GmLmgRHDcSPKgqoYzAv4H2LZEk5gHMtb/tluu6bv9NJGqu4cA3xfbKSKVR/iWaJlXjTGBBjHz/6OUNgWYCTLGtQbulJbEfuInAJi1WZffwb5/T7uBDHP1O/LTk4gNK7wK9WNavOiYWTM4qPWyn5UQuX5Ger/L9vAaq3C/gbw23zPag0lSp0P5xjQg5fTZfL6YlPazozjJaqlGAs22bzWBNh1Jury2pS3ztlNHgaQt/R2RUezdnlhQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?apnrY5xIhW3GQXvZvI59SyXUpfbmTtWXMIHwFgbHRPa4rfjGMFwH5Ik2lH7k?= =?us-ascii?Q?BkDC379OmPqUPmhtm62DjW2xRE9P4s5dyAAWFwaL0fpLkGMQsX/a5axC8rX3?= =?us-ascii?Q?ofq/uUa92jfCEVZqUxULclPpJ7fFC7i2Ajd7MiBRAshU/QLhKjPMo6zhP9Ep?= =?us-ascii?Q?62rvNH4LJW9nxvvyJXS2ekkdqnrkV9PIyAjrvCTgJPf2KuBOQqzNBxbTiEqG?= =?us-ascii?Q?53d3qesMQ/RaAIx5n/bDpSq/m4z8AzXEEKFUcixK26bbXdoComBQAJqwN+93?= =?us-ascii?Q?qv0icXl0YPHiNupYuEC7qXkSWQVBYn2MtB5ewrAm7Vd/qnJ9v8f4XChNXwar?= =?us-ascii?Q?5Keik6qYgQnSwD+Rfz6+s/l31GvXuOXGh4Pxv3I1fjpgMvXrhLfz3YErXFBY?= =?us-ascii?Q?bfrTxa2ugzIuy5zDkB/xztNpDGxCpYr5I3RzUJbtw2P7rXwk6QQVMVmnOXH3?= =?us-ascii?Q?RQyqX0O2vWXbUvVKJ/lIx9TVw0NAaxK5kpU/XHFiX8RAGBavaX2YMYftynjg?= =?us-ascii?Q?2uwxp9YXerIme5OjVTueNBpayufJa6E2sUnnJTv6SWEDP1qOd4ZETDT85a8t?= =?us-ascii?Q?VmMho2lgyoX/XXFITP4aW4GwGvfoejR+Ian6D4WGEK5VYh6DeMRYZinycLdl?= =?us-ascii?Q?fvD67hee2xYDVnKYvFc1Pz5zPFo1SkqJ3hU/l5L0XAoBSoRHEbm8BztABpcR?= =?us-ascii?Q?GYIqtGYl6IJsIfNNaREKnO88EE+JCqfyAVBOP4qjBnxn7E77xye7rfrHIHi1?= =?us-ascii?Q?p1aAn6lHEUDeGK5FFROu1cosf0QiSev6GlgvX6bxphiHlEeQjJNYrVNLgaqK?= =?us-ascii?Q?WI/yQx5ME+UkeJMJ5msgqEAIxbgN6t5p2EpbzR7Fg0FlHC82nnZu4fkw0/gE?= =?us-ascii?Q?A0gogTebuuzjXa46XPWMjkp33uddsgVWMwmx9FPutG4ticxsVf8Zok3duDjm?= =?us-ascii?Q?NybLg0Rq1Hl8AkTOQbfynC8cXcoOSB9kwnty0U7rSZAJBsDflo0VWTPTrsag?= =?us-ascii?Q?Ud4+oPJ8jn8sfTaZf05V9nRSYE7nUpBHctiNnBgKElQQEfnDa2SytCzQl4oD?= =?us-ascii?Q?RsIm/KOArlu/XgLMDzIDidpwwirI4P3Z3PsNx4jykzlx1RDJNS/jLHvhF2kE?= =?us-ascii?Q?ZnJi0vWNXgO3PQI8hwjJcTmzJnfuyyNyaTL89O2Thrrn8M0EnSPhisvbi3hF?= =?us-ascii?Q?9ItwQaUce5X9Y98iA/cTHxZmf8xKo0BxdIWAeO1uAZy9WZmUjupHqbOkVZrO?= =?us-ascii?Q?XbiwEKJB4EfFc+kye2BB5IvCqJMKnY68+HXcZsi+fv6LNol1oyLdL/UIDnOv?= =?us-ascii?Q?foaFVfKZcycEfxu9yhYHZlgczayNv/QQJThnva3OYB/Bbp0bzW8CcdzbI1e7?= =?us-ascii?Q?U7qqZ9gFZ92W8B+qhEGTknTz0vlBuR4MoPkaYqKU/vh2tpNb7GsiSv4W5Zlb?= =?us-ascii?Q?obiX0ohXsaCbTU/dyXv4Oh41MH+277wCnzWmXgfZyvzWoWB22vDOs6G/qaHC?= =?us-ascii?Q?BXlsVYyEgT1thrMygyStsFOpHITjopNHmQ12IV0ZN4HoxNnp+p7dnkFieosa?= =?us-ascii?Q?d1ymLV1Bbnf+hcAPVNnErBjHrglQFW9U7kSs/oU6s8NUeZIUB4AWDgDJ4UmF?= =?us-ascii?Q?KWJIrEpcdeVL6rVeMNj/t1+SdPCc0Q+VCMlxaG0qtuRN77NRMMXTNVp7tPHd?= =?us-ascii?Q?aREw62CigF+lx0TZeb9J8nfhaTHGtXInLPXIsaBOIdW8rfnNMUK10AeTTqKh?= =?us-ascii?Q?0r0dsJHrO7+JSgmLfxTB1uSrsWlUPp0=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: a09e8ab9-7bef-49c0-a366-08de8a646010 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:04.8050 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HqAKvyOXGZiKtDZ0/ZQZC6yBB4GDPIzqDWlkWWiBvCMRadP2z0mkuFs1Wnomo6o58rL+GZfZ/bROeeHKL4AaB3lwumGj+prq4wFxAKadZw0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN4P287MB4294 Content-Type: text/plain; charset="utf-8" After adding 12-bit RAW support, the pixel rate depends on the selected mode bpp. Store the V4L2_CID_PIXEL_RATE control pointer and update its range/value when the mode changes so 10/12-bit switching reports the correct pixel rate. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 41 ++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 5c191d58a636..1fe5650680bb 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -474,6 +474,7 @@ struct os05b10 { /* V4L2 Controls */ struct v4l2_ctrl_handler handler; struct v4l2_ctrl *link_freq; + struct v4l2_ctrl *pixel_rate; struct v4l2_ctrl *hblank; struct v4l2_ctrl *vblank; struct v4l2_ctrl *gain; @@ -681,12 +682,35 @@ static int os05b10_enum_mbus_code(struct v4l2_subdev = *sd, return 0; } =20 +static u64 os05b10_pixel_rate(struct os05b10 *os05b10, + const struct os05b10_mode *mode) +{ + u64 link_freq =3D link_frequencies[os05b10->link_freq_index]; + u64 pixel_rate =3D div_u64(link_freq * 2 * os05b10->data_lanes, mode->bpp= ); + + dev_dbg(os05b10->dev, + "link_freq=3D%llu bpp=3D%u lanes=3D%u pixel_rate=3D%llu\n", + link_freq, mode->bpp, os05b10->data_lanes, pixel_rate); + + return pixel_rate; +} + static int os05b10_set_framing_limits(struct os05b10 *os05b10, const struct os05b10_mode *mode) { + u64 pixel_rate =3D os05b10_pixel_rate(os05b10, mode); u32 hblank, vblank, vblank_max, max_exp; int ret; =20 + ret =3D __v4l2_ctrl_modify_range(os05b10->pixel_rate, pixel_rate, + pixel_rate, 1, pixel_rate); + if (ret) + return ret; + + ret =3D __v4l2_ctrl_s_ctrl_int64(os05b10->pixel_rate, pixel_rate); + if (ret) + return ret; + hblank =3D mode->hts - mode->width; ret =3D __v4l2_ctrl_modify_range(os05b10->hblank, hblank, hblank, 1, hblank); @@ -1058,18 +1082,6 @@ static int os05b10_parse_endpoint(struct os05b10 *os= 05b10) return ret; } =20 -static u64 os05b10_pixel_rate(struct os05b10 *os05b10, - const struct os05b10_mode *mode) -{ - u64 link_freq =3D link_frequencies[os05b10->link_freq_index]; - u64 pixel_rate =3D div_u64(link_freq * 2 * os05b10->data_lanes, mode->bpp= ); - - dev_dbg(os05b10->dev, - "link_freq=3D%llu bpp=3D%u lanes=3D%u pixel_rate=3D%llu\n", - link_freq, mode->bpp, os05b10->data_lanes, pixel_rate); - - return pixel_rate; -} =20 static int os05b10_init_controls(struct os05b10 *os05b10) { @@ -1083,8 +1095,9 @@ static int os05b10_init_controls(struct os05b10 *os05= b10) v4l2_ctrl_handler_init(ctrl_hdlr, 12); =20 pixel_rate =3D os05b10_pixel_rate(os05b10, mode); - v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, V4L2_CID_PIXEL_RATE, - pixel_rate, pixel_rate, 1, pixel_rate); + os05b10->pixel_rate =3D v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, + V4L2_CID_PIXEL_RATE, pixel_rate, + pixel_rate, 1, pixel_rate); =20 os05b10->link_freq =3D v4l2_ctrl_new_int_menu(ctrl_hdlr, &os05b10_ctrl_op= s, V4L2_CID_LINK_FREQ, --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021107.outbound.protection.outlook.com [40.107.57.107]) (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 3E5253D0936; Wed, 25 Mar 2026 11:48:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.107 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439297; cv=fail; b=BmAIY6e61TamTKcIgCbmoMal/f/myIZhnRxvmk7KfzGwHaZubLdHU6dXwhCd8PAGrmjRWTlsNIRqmfCM1M607KzZK0TAJ1et0cUhvqHd5rFNOr9ZAs+yCD6CO86viVa3js+KDALTMv7Yf5HSu6hOqyki4msyUxfIkYhoYWk7JY8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439297; c=relaxed/simple; bh=LB9rxTJH9RTbJnLMxi167H/i9hQeEqmSrRcI1zLdwjM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gbM/Fn7MLNmuExR/7Id4EySdnBY6VD6PrPrLSZkL4Glq5v8SzBBUQ240FbRjy9N8S/JWgjjaKODqcwy3LrmTVjSDKBhNBquAAkP0aGMvLb24qooUqcOXDx5K2gYOutKvfSomH4XozmTnJFh7JYBQqX1Sol/EY0w7Za5biBGY0yg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=Daec+RPZ; arc=fail smtp.client-ip=40.107.57.107 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="Daec+RPZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yrY+4UfNwjXiY4s/rnKS3bPWt4mdjpHP4C3nelx14o7T4qb7ywfqDPqWO7l1b4MkgCqoBmdrACCdBwY5YhVNBNKtPSKWtd+wFKn5YWLqNtplzpV9Hc/ABsG9u2HPzOQ60D4HXIiyl1pjiph6sDLwtTobkXSDjN8tgVY5r7QRQIliqnOerzNnz609fRktZYChL6OmSNiPFZ3PPZuxbJ7Ur8AV2CAt8NtbfXwVoJ6cqHziQE4XQk/6rgbvljbMH/BGmYbp+XYid5jKebbME8M8n5EBdg5pA5xR4XnAXYyexljEqXlWpA/JDjwSNJD1S6v/FycnBpwNxyDMgPatjHV+3Q== 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=JwdxXt9V6jjEKkBKnowy+CyjSbh8W71UBf6dwSLmA3k=; b=bj4M3Pq70EE25M6bBBQ4MAmUH95w861D7qGmz9yEX/1lB/hLAj8VPFQqL3z7Es0M2evhOkjDn4t7fYjH2J7tHDHdbeTGvuRjJQRn74gK+9AgcKqtmtgAjexRnRDcK6f2pOpiMPWrSnt5WWjgA1k0RRJgVXFlV/hbMR85Z5AVZlHLJwsWYHCywGKAmkL1Uhux3QPpsrr+zPKd4ybkDvh55paBn4Fqxf8hQolsTZv1TKNiPijPHGn2OByeYu9RKgmqoqKDVGekYuc4mnx2j+sjEDOxyPaV9bp7BGQZkU2LWSrI5Lesl7njzo9E9SUKDcJylzZzvg+RroyjnLFwHIUbGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JwdxXt9V6jjEKkBKnowy+CyjSbh8W71UBf6dwSLmA3k=; b=Daec+RPZvgc/9gHlEb3Qf7RfWdCiAYh1KMbbt5whsS6w59Jdo4iJS4VAOUd2RWfkJyp7Qs58ldgUEiUjH4jLpPSOoDyykqHxGSKDIMGn2zsOQcfJYzQIEBY0zCkHbAgMHIds5rbANbf013pwZnAx0OqjYdlB5KgDj0RF5TtAewYlg6lKHpDdXR7pdZmNYwkUIU/pyb2kMultxqeCnk0Xn2ghTTDkUzalZTxYtYuUAGFh5hwLQXx2Wv9smVCs1t1Z6FL/rp2wYMXyZfmjKQ63BB1q0jpSnDPQ8bIDbga3fOG6soGG4U6BHswVCdxfXS6tTZJGbyVStDuuq6BiRQU+sg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PN4P287MB4294.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:48:13 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:13 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Vladimir Zapolskiy , Hans Verkuil , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 10/15] media: i2c: os05b10: Add 1080p and 2x2 binning 720p modes Date: Wed, 25 Mar 2026 17:13:56 +0530 Message-Id: <20260325114404.95188-11-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PN4P287MB4294:EE_ X-MS-Office365-Filtering-Correlation-Id: ec0ddd7c-21e7-4dc9-e234-08de8a64650d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: m+x8VOX4YeoDTmu0q/4I9QYcRQl9lcdGcnbbwx7Tb2icfJeP6K03GGLTVS5rjzhGk65ueQgOKICrD0gzl18FdjrBqDw0/z4B5p/JFXyOiihvoVrfr/T1ZB760N23mLeaVoNZg+2Z4X1j7cyKye8uFGGX02EO4b+sdGjyDYBFIA7pPBK3NFkf1BaaoRP+eAcskUx9CuFECJQlUCeHr2f3tpv9o6knwTl/ftX+uMeN5ZqQmjfC3CK/d+PYa9UWANHuAkCtDyGCYqd8ThsQTFXIBC7CayPltixseSZ4djwbMZvcNkQN6WW83LjxBLK4Pt+pW3rtBbzDOOiLHzWzTFBE2o69Hk6JlvLvUpnYNeXWY/3QC1hDLfhkgbT6V5UhyJa10EucsqbBSctrRpiN2YtTNV3dAsqoqo6KXK7aFGJYO4CQQ9cIzzyAGSdujzYhzCBEWv9xSR/OFOQdHy7UpfU/VBMkSmFbz/Q8aAnQJX2kRcxFF6fTYbvjDXkjysRT5M1Y3NS1QEJoO+S3eHtx6rl9tnXxsuPJAgGxaAh2+04pQlwrn6b7g9svdjHInpIvwzD1aLhiNObpoi1/qoSFTe83OHvpeoF83oj8XZGxbIZ33FtJz6H5Oj1X89Avp2ptdN5/aHVrWU3Y9j96FD2GFm+/Y5/9N8Oth5U3tcRHf+4WnvQN7KPjilkxLSFo1vpWNQv0ZxgV5qyGDxUOH8qQysqP239JWImhiYfC0UiaR8DnHi3ItVFGS5ZFZQPO7sHBpAs3SCszclW3tL/cHvn2fd5COOVeEh3PUjmK0eFBlxI/pHs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?x2WLj+RrHa6r2r9DjYCt9r0zzHF78Q6fh3HosxzFwnfCE/AhwHxWo20dbqJ/?= =?us-ascii?Q?sFae12GIO7P2PfudxCPS3ybfkJ0nHRyi4EHa5jeWC9Z+I52g1Jx2BeVLth1t?= =?us-ascii?Q?g8onr+p6iWmr2L5jtMIZP0j/+VY4x/pfJKxpOMpjgazSxaIlUo4XWCElm0m2?= =?us-ascii?Q?kXttC64yN9rgAn2lxL4SFH0DR4znzsh/DiKdIfzQR0hNN6m36OL1Tj6b7fDM?= =?us-ascii?Q?xpBqLlhVt3W6IstGvM7xDubxbHCb0NxKqhB1hcTKcJsBrxH1ZEHM1LqNnGCD?= =?us-ascii?Q?3VD7I6QjH0K1duuxz3v93moazCkdMXdP4nKrXRy75WYyU0sAbfHl0n74Be7+?= =?us-ascii?Q?BdvZ/vgQxBjcS04+SR6P/LmI6OT7EtyGEJP605btybFsGNUV4xJxmSl/9e9k?= =?us-ascii?Q?3EOtsW1+qvTeqODIngSvtXa9xXTU92eUIkN0gLGtWA/yNkKo11YDpyRTpng4?= =?us-ascii?Q?ScPt0Y2wN/PXEqausn/p56UEDih2gTjf0h3Sx66uQviJ1JsnN5itbcmjIJJg?= =?us-ascii?Q?whIb/aV0XCit+U3kTga4+frFNxx+c5CU4DRcdicwxMhZTpp5htJtuB3v+xHA?= =?us-ascii?Q?SmuB2Sf1R7P1i2k+jycpEts1wzrkB9g+qHVvYH8nDxMYHKyeNQaGXRM9okS7?= =?us-ascii?Q?whP0lkqwQVeJaibttsTBWI0F1L0hxAieDjS39B4w3W2AyH2uoQOW4QzczowL?= =?us-ascii?Q?xvxWO/VFUhGtiZo5rjLz+e8HXe1q7AKlAuDCfDiT6XubFdnAAu67rbTqzKzL?= =?us-ascii?Q?9+AzK8qCAnjCNJhBeuoxkP2it+yGB/6lUkfaM590uGBh1Gw45CTP6RV4PRpX?= =?us-ascii?Q?Aft9FRnN2nCbTU4TMu/nII7eLRtC+k3GX2UoCtS2dk0KTphaSbIk0K4VykHt?= =?us-ascii?Q?KGc1dd739CExmpIFKJFiGU+lDF90YhZpU7ULLoxUPhCk/v2/AKzvt+PlDWTV?= =?us-ascii?Q?gWP0EqfyCNOb8FyHEyRhh6iZTYR5dkp1f8pVKBBsaOmWCXBLqQym1LBfPSDr?= =?us-ascii?Q?WI3w4a8V8PQEI3nLSrAMAj7e6JYjkqW1Km6wskAJZS61nw7Dii6oih01B0Aw?= =?us-ascii?Q?E0twDOrpFogVD/qa22LrTUSDjHVs/4zvffE0+NZnE99e2z7ShQsOTprfBlJ6?= =?us-ascii?Q?wgxzfYhjyhVOAXhN/Kp/NrYnWI5fBuqcqaazS5iv5cUs4DFryT1OIplt1NBh?= =?us-ascii?Q?VQKpSHTUYkV/XT6qrLDecnVWunOFl4BK9dZIDKEtaiUXzkJUKfl8Ya+mfV25?= =?us-ascii?Q?h0gc6108x6OEArcxOfdOe683HCwEFMYAI98oCCk4zJokXLGOmqbMyg/0upJT?= =?us-ascii?Q?jH5FlPjoMHq44mVPIfrbuXbRNU0sa86tQdSiih/9LaVRjOvRPNj+OxwjPnyq?= =?us-ascii?Q?UfN/bnyapOp5KEXDEpmdWhpDnYe8UIvdyr+fu8O+YstzW7DumLYlsqeHGmNR?= =?us-ascii?Q?/hTX3TvvcB0/390FOdhBOSuw7eZE1k3ZiQOU8/73UP966btMRxU7V2gSs4/8?= =?us-ascii?Q?5eAhGIM0T+fST4ZALJlK3k0ImJG0K9byp4hbEpWb3WgRIZfVAj7bOppxdhmI?= =?us-ascii?Q?du9lS+JJHeGz4iw0+fJtX1ht0mBqn4rNR+YwiF9kCKjE44IOWlerQuiVaPD5?= =?us-ascii?Q?tnuk+VUVMHJU5afuuUDD3BBi6hJzsCpkMsdbKxpULFYYAzV8T8Q2TLP45PaE?= =?us-ascii?Q?e0EXuQo9n6kGvVhKBR+ssCv8zg/beRdKcnwSzXFsi6mkhxUAm9zh/HViXezK?= =?us-ascii?Q?FUTQeZJ09MkPwnUnW+mBVeOmIdIzyVI=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: ec0ddd7c-21e7-4dc9-e234-08de8a64650d X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:13.2606 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2F4Ud8zFE6ns+HMRrt/i5oj8BdO4jGFriVeSvGmhDKnfmcyRzHvNAK8yw9263HLigw05yMRqGimEcfGznm3tXv/LqoAKlkrTDWy9icaNloU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN4P287MB4294 Content-Type: text/plain; charset="utf-8" Add support for 1920x1080 and 1280x720 resolutions. The 1280x720 mode uses 2x2 binning. Both 10-bit and 12-bit pixel formats are supported. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 120 ++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 1fe5650680bb..1496342c24d3 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -461,6 +461,78 @@ static const struct cci_reg_sequence mode_2592_1944_re= gs[] =3D { { CCI_REG8(0x4837), 0x12 }, }; =20 +static const struct cci_reg_sequence mode_1920_1080_regs[] =3D { + { OS05B10_REG_X_ADDR_START, 0x0280 }, + { OS05B10_REG_Y_ADDR_START, 0x01b4 }, + { OS05B10_REG_X_ADDR_END, 0x0a0f }, + { OS05B10_REG_Y_ADDR_END, 0x05f3 }, + { OS05B10_REG_X_OUTPUT_SIZE, 0x0780 }, + { OS05B10_REG_Y_OUTPUT_SIZE, 0x0438 }, + { OS05B10_REG_HTS, 0x06d0 }, + { OS05B10_REG_ISP_X_WIN, 0x0008 }, + { OS05B10_REG_ISP_Y_WIN, 0x0008 }, + { OS05B10_REG_X_INC_ODD, 0x01 }, + { OS05B10_REG_X_INC_EVEN, 0x01 }, + { OS05B10_REG_Y_INC_ODD, 0x01 }, + { OS05B10_REG_Y_INC_EVEN, 0x01 }, + { OS05B10_REG_FORMAT1, 0x88 }, + { OS05B10_REG_FORMAT2, 0x00 }, + { CCI_REG8(0x3610), 0x87 }, + { CCI_REG8(0x3620), 0x0c }, + { CCI_REG8(0x3662), 0x10 }, + { CCI_REG8(0x3714), 0x24 }, + { CCI_REG8(0x373f), 0xb0 }, + { CCI_REG8(0x37bf), 0x05 }, + { CCI_REG8(0x37c2), 0x04 }, + { CCI_REG8(0x37d9), 0x08 }, + { CCI_REG8(0x3832), 0x08 }, + { CCI_REG8(0x3c86), 0x03 }, + { CCI_REG8(0x3d8c), 0x71 }, + { CCI_REG8(0x3f03), 0x08 }, + { CCI_REG8(0x4008), 0x02 }, + { CCI_REG8(0x4009), 0x0d }, + { CCI_REG8(0x400a), 0x02 }, + { CCI_REG8(0x4041), 0x07 }, + { CCI_REG8(0x4505), 0xc4 }, + { CCI_REG8(0x4837), 0x0d }, +}; + +static const struct cci_reg_sequence mode_1280_720_regs[] =3D { + { OS05B10_REG_X_ADDR_START, 0x0140 }, + { OS05B10_REG_Y_ADDR_START, 0x00fc }, + { OS05B10_REG_X_ADDR_END, 0x0b4f }, + { OS05B10_REG_Y_ADDR_END, 0x06ab }, + { OS05B10_REG_X_OUTPUT_SIZE, 0x0500 }, + { OS05B10_REG_Y_OUTPUT_SIZE, 0x02d0 }, + { OS05B10_REG_HTS, 0x0368 }, + { OS05B10_REG_ISP_X_WIN, 0x0004 }, + { OS05B10_REG_ISP_Y_WIN, 0x0004 }, + { OS05B10_REG_X_INC_ODD, 0x03 }, + { OS05B10_REG_X_INC_EVEN, 0x01 }, + { OS05B10_REG_Y_INC_ODD, 0x03 }, + { OS05B10_REG_Y_INC_EVEN, 0x01 }, + { OS05B10_REG_FORMAT1, 0x8b }, + { OS05B10_REG_FORMAT2, 0x00 }, + { CCI_REG8(0x3610), 0x57 }, + { CCI_REG8(0x3620), 0x01 }, + { CCI_REG8(0x3662), 0x08 }, + { CCI_REG8(0x3714), 0x28 }, + { CCI_REG8(0x373f), 0xa0 }, + { CCI_REG8(0x37bf), 0x05 }, + { CCI_REG8(0x37c2), 0x14 }, + { CCI_REG8(0x37d9), 0x04 }, + { CCI_REG8(0x3832), 0x00 }, + { CCI_REG8(0x3c86), 0x03 }, + { CCI_REG8(0x3d8c), 0x71 }, + { CCI_REG8(0x3f03), 0x1d }, + { CCI_REG8(0x4008), 0x01 }, + { CCI_REG8(0x4009), 0x06 }, + { CCI_REG8(0x400a), 0x02 }, + { CCI_REG8(0x4041), 0x03 }, + { CCI_REG8(0x4505), 0xe4 }, + { CCI_REG8(0x4837), 0x0d }, +}; + struct os05b10 { struct device *dev; struct regmap *cci; @@ -514,6 +586,30 @@ static const struct os05b10_mode supported_modes_12bit= [] =3D { .regs =3D mode_2592_1944_regs, }, }, + { /* 40 fps */ + .width =3D 1920, + .height =3D 1080, + .vts =3D 1504, + .hts =3D 1744, + .exp =3D 1472, + .bpp =3D 12, + .reg_list =3D { + .num_of_regs =3D ARRAY_SIZE(mode_1920_1080_regs), + .regs =3D mode_1920_1080_regs, + }, + }, + { /* 2x2 binning 120 fps */ + .width =3D 1280, + .height =3D 720, + .vts =3D 1003, + .hts =3D 872, + .exp =3D 970, + .bpp =3D 12, + .reg_list =3D { + .num_of_regs =3D ARRAY_SIZE(mode_1280_720_regs), + .regs =3D mode_1280_720_regs, + }, + }, }; =20 static const struct os05b10_mode supported_modes_10bit[] =3D { @@ -529,6 +625,30 @@ static const struct os05b10_mode supported_modes_10bit= [] =3D { .regs =3D mode_2592_1944_regs, }, }, + { /* 40 fps */ + .width =3D 1920, + .height =3D 1080, + .vts =3D 1504, + .hts =3D 1744, + .exp =3D 1472, + .bpp =3D 10, + .reg_list =3D { + .num_of_regs =3D ARRAY_SIZE(mode_1920_1080_regs), + .regs =3D mode_1920_1080_regs, + }, + }, + { /* 2x2 binning 120 fps */ + .width =3D 1280, + .height =3D 720, + .vts =3D 1003, + .hts =3D 872, + .exp =3D 970, + .bpp =3D 10, + .reg_list =3D { + .num_of_regs =3D ARRAY_SIZE(mode_1280_720_regs), + .regs =3D mode_1280_720_regs, + }, + }, }; =20 static const s64 link_frequencies[] =3D { --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021073.outbound.protection.outlook.com [40.107.57.73]) (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 36D083D34AA; Wed, 25 Mar 2026 11:48:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439304; cv=fail; b=d86NRFIW8uxvvLIgamwOq8BdFUhAQWZibXw2wMYnWwz6oZGx7KPg445NFaUyA2KZQBqg6PceDLUU7Cmfm4rToYB0sRvLk0SIoFvvAOb+SlXwYhbgaajajhtb2fflLBKObXHHnP01nx3XXH5Y4mpiNAitmVU+m8zSaadhak5BUH8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439304; c=relaxed/simple; bh=0/zwOU2J/26W3Mus249xmb0TLDYM2ucqD6Cl5HUr5WI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=EHKzL3uOGEcKsg44xZS81jjFZMsV8mQsPjiNU3jkIa6jOE7Yqlkbax24noJp4jxsDKFg/w3mg8aoDhZcvGzhqxRSz/AGGZXZpw0aCU8u3pLDC7UwfIVsKUfsDSZGnh8Bg/0q2K5zVOIHTtwJOumfcUxUT89bkq7zH7YhvtErB1M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=dNJCHNJG; arc=fail smtp.client-ip=40.107.57.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="dNJCHNJG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vSTICvx1Plzs5KMDvb3uHWzk0iJP7XDFRM/+a5S/q9UgBi71l3ylDxVwHfPuZB3kV3U8/LnDXQsh+GP7jSY4YnlPiRvY8lSlWwDnCWB1lqNwt+so2NfwW3gZHV4HRkfx9+sZXxnWmNBHHh5ARmRbOdB9pK0gqRlcyS2jwcbda3f2JJWgSXV8WDUU8Ew3zBJMTmyPiVC2/wfSR25gSm6MQMtBNCeePrNJXDfKq7Pld32p956wauVeHKeHof4BOyjzah8qnw5F7+YUPFAA99/KsOCW9ofTLA1RG/tcfZ7xG0PU/XtAWJgXqfGPZWBZZnINVwPt9AVK8yStSczrRQua0Q== 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=WwNoLCC2DjRHIBYyspP7UlLZ05Y2LbjPY0Xiwp4g49Q=; b=LSZsDL/P+3kvHMJBlDiB+kMpwC+YNs3qWg8WJz+a/OsntMuVHTeRrhLrURPKmdYmzUq0dXnhpm99teTDdHTaT0MSAffiHyym35BVqlde9+blRQkJ1iSa7j7qDFII0xeKomGjwrjaOYlfxpZQIlovKTAcU7o/AxD/Dv43D9FA530Cv4P8Xkr/4vmtyclUUF2zCBP51Tji1qVjVB/BzvrF6sORkgUwMaViEYAamAMKmF2AOm3OVbGGgbcFV8jXDdT/WCSUo7V2OZTw1eqCMhA5mlwqYsj2lQz4RVxylcm9ye5N7o/Jz/5aVrfaqI6sDVM7CIuB9X/+q9REpQUAbpzUKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WwNoLCC2DjRHIBYyspP7UlLZ05Y2LbjPY0Xiwp4g49Q=; b=dNJCHNJGhvsdel5kfMXDhy4moxcw7EjFZNxL6/5da1HhiBsNStbind3qABK+T6tUS5nDcXVsNJT9L0/LLmbx6rAVAFrmikQ6DdWD+dmOU8EI2BDh6Mww4W7CDLi2+rD7BHg8Ihq3a2BgZOyKvMW21Rlq3bwvSpGJD1IhWTc6wv3TiGCur3Eel9GMjEILBKN2I7kvRU/8unRsqDCRRsSBteX50vi98bHmAPU0eMrF6dBaiWLVvNTAQtDUzDXFelaovvVWbhsCQc+1LzEWED2UcEXgX6FttgHhoJZtdGtLdG8pO+3xEeogcmUkOXpWuQfwW5HSNcFqpGaDtK2mgAvqQw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PNYP287MB4501.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2e3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar 2026 11:48:20 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:20 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Vladimir Zapolskiy , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 11/15] media: i2c: os05b10: keep vblank and exposure range in sync on mode switch Date: Wed, 25 Mar 2026 17:13:57 +0530 Message-Id: <20260325114404.95188-12-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PNYP287MB4501:EE_ X-MS-Office365-Filtering-Correlation-Id: b9620314-06b2-46bf-1bf0-08de8a64694f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: x/btqlJdy01a8iVHNIcoX9wyPDETQwEMkjS9eqqfPf2402td09QduMSTuuLRpZP7NSXRwfOArCYE1byI+X1wstXF0Joi5wrgFFrbdnrEgNf09wNm0vFmH6ofuuCoPQsnnbMG3cHCqXWpgqRU9ryRwJ2Ka2VA6PRa7M9Fp4i865LZiOEs5L8zX4yJIr0YXPZSRCCrBcUdGUM2VwDA2TZ2BTHIIdnGRLNCJyzGd7rWUZyCDFNYSooKfThX+RsIWT8gYK931AQRQatUx4+d5/A9PIFOCha1WZ8bXquqFJc4R/e2VNQ8barEbn1S5TN3pakdEnTzwpPlG0L3oo6va79HPwPJYRDg3UWPf8CPKz0KZfaUVvIIxKGgnwGJpVw9kcZjbxTWF5ARQqafGM9GSUeC/Pxw4LGkx4iCmlddUfqOZ6yJiYnllYJ1Lg0iXAUhXDOQFrF5BaQF56crqKwXPZ3tsSdVV1ckeNJ1rRwy1VdYGUkSF7igDKuSxi7rucd77aD2m2Kcv/GQTvZEOlxri0gnEApJRVyCYiChbXn1+j5Ngdnx+fVLDKKbvS+/25F5Jlh3ww4Mr10ofg17bPkFu45DX3KqqZZ0Tr78BA8EtBKXFk01hm6+jKdWtEGU/XvC5SeZwzKoZIS/6o/KXv+IsAqwdfrf+gjvvHer+z2ikMS27tEdEPfDIYyrcWEKHJ9wGtufcw2mmNKHAovbvWVgQjxKmkx/yiMOWUoe8hOhHtF0JOaBhrzpFnR+PONhNUneMTtqpSQFG2Oz1ajKURsAKC0YAOz8ljFLq8ymccV0e9k3GAI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BK+7y2ID1DrnfPi4K6w3vFMVEh5iyLRsvurJo+Mtn3IU7F72sxT5UsheS+LV?= =?us-ascii?Q?Idl2Fr+fSBKIoQ14fKhb1kA4arVZU18C6IICuX7uGnPREtWa9EjLtCWozEQw?= =?us-ascii?Q?5A+aaq2uknzU88FsM9q3cVCnU+bHiKIjML4G7VasFEPUsWmYnxTyA5K/emA/?= =?us-ascii?Q?cc7UHWoyLfAKyHVLtyFaZTFeqvkfNUfu+7QJMqLDHN/Ay7KPkP5RPXd+/zBR?= =?us-ascii?Q?T++7mbFrNL1d8Qo5k3zUt2YVfmwu0sq3oB4NOi/D5o6Fs1Us/bNVjddVKTl0?= =?us-ascii?Q?96abq3NjpZWJ2gvX82ysaqknl10E+6xvt8/DGuwxN0QI6ao89WAxnpPaVrz6?= =?us-ascii?Q?QDhwRYhbGVCdwzxqhl6HhXc0n4nVMmg9c8m78ah9NJLfpY/wqK0qDAna3UQt?= =?us-ascii?Q?liGhNXgMVMjQ5cYLAh8B2wF71ujEo5p23WLnWztJ7rFrPGg6PiPL3sTSrTA3?= =?us-ascii?Q?SlI77Cg9TGjuFC6rYSNlUfQKE0GuXfKIlog6hkEAmXby5RRnrateK1wlXhf5?= =?us-ascii?Q?3bsooNbh7bIy3j+nhi1iR3VE/pXH4iUIj54pXsCgqa8cesS2+vJzusYnpbR5?= =?us-ascii?Q?XMPf3Qv1denWSVfPRbeJrzvpR85j8HUgLv9L8/wnFbtpISJI4w3nk1z7VWiH?= =?us-ascii?Q?sSLF6VF8YEeA+Xu0Z+UF24BLbplBRGJ+JgrSoRnJo3Z1b5RautitdyE68RUj?= =?us-ascii?Q?GT5dciAKsm6gjJBtLqluZlDgxQPNGRH/sSB5dlq8G0Hzdm/UW0A8GasRl+F4?= =?us-ascii?Q?G0WGDcR1iLiXBVeQ7Hlqy4RWtZltFuFNURhEnBRZk9xvseMpeLXfCyH9FzNC?= =?us-ascii?Q?SO0vNf+uyHUZ8zhh2uONa5ozxnDrXOujj/ONIl+WTN+DOSYFia8razIYVCPx?= =?us-ascii?Q?mU0bKnJJv4ewKxh/NdHc3M4YFDwQbdO9LZ5c3WKJwhWv5HmyKZpx56Koo0Ly?= =?us-ascii?Q?xRW3TLq1ntcBEIDlhe1yPLIhZCd13Sk+9zgbC7Vc7zU9MFpy0kZ9fdFKkqtf?= =?us-ascii?Q?Zi5WTvNas5iz6pkimDHSBxrPdIi5c7pWHd0nzHM1Ys0TPnuEMLtTIsn3wrU2?= =?us-ascii?Q?U4JobH3mtEC2mRsU0HS/ygSk1xI8Tl/P1c8u+W2Q5iV+YkAoNPyzHgaPIwqq?= =?us-ascii?Q?sSok+xJBw+u4AOYh0AKgKn6mvRPnVt7CqeVigufzGtsQL4EzL+9lvPpyY6LP?= =?us-ascii?Q?l8FJZqUy2jh32wpF5HCdsxXwrv3pbGMh1n6OzPLY3n2R/yorVgz7QCnk5w4F?= =?us-ascii?Q?LfAjdEUn5x2fhkwdKbRwN5cU7ykIlbO/p0Ns3xrVijQN2l5hx1LTpHGkJwBe?= =?us-ascii?Q?RYvg47C3zLNbRn6v4dxIw4IYfkusaLi+RAkS7WytFJQYZXFJyy/0lw2cmQr5?= =?us-ascii?Q?crsWBa0isj+/8GaK70Iqrbq6BvBGF1Cz/5/NtIWBKB4OcWY2e3Vq/g2bZkhZ?= =?us-ascii?Q?2rIaYRkhSWtc/XfsrViX7ZhtCFe9m9anDjgTLXiD8jJ6tySpKKflletjNkq6?= =?us-ascii?Q?ogVGgpfw6YmGDVmfv9zN+l+SXvGhy2tAW760P3EfeS+fENSx1WU7Dp2wqkm5?= =?us-ascii?Q?KdsDmOSlwMC6LNQpFgTPSL3cbt6hlK9r6TiyeLtcHv1At9NnhB9VP51NaEHr?= =?us-ascii?Q?pWVpO+BUni93BVX8APRQsJSN9KHdIGkw6gBlzre+p/+5sBJyAnfO0GmWGCBe?= =?us-ascii?Q?ColxaTpiZbUJJs7wWMIQDHPWkUvRBZU1IVLMZtCHrvcACfPKozcQmFKXqjig?= =?us-ascii?Q?cPO5z0bOpkwAF1QWsl27avm2TclXDEA=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: b9620314-06b2-46bf-1bf0-08de8a64694f X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:20.2465 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PV6A/4Pk4x2K5UKkaGXpji24SJOgaM3ZgDa9RjKHvNtL5QDMi8o2jjz6kR0JggX85bNv0qnVJ9aA0D7lmUeySLJvBn/+p07qapBBOpRHPec= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYP287MB4501 Content-Type: text/plain; charset="utf-8" Update vblank through the control path on mode changes so exposure limits and default values are recalculated consistently from the active mode. Move get_mode_table() before its first use to avoid the build issue. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 59 +++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 1496342c24d3..e3dea793121d 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -717,25 +717,52 @@ static int os05b10_update_test_pattern(struct os05b10= *os05b10, u32 pattern) os05b10_tp_val[pattern], NULL); } =20 +static inline void get_mode_table(unsigned int code, + const struct os05b10_mode **mode_list, + unsigned int *num_modes) +{ + switch (code) { + case MEDIA_BUS_FMT_SBGGR12_1X12: + *mode_list =3D supported_modes_12bit; + *num_modes =3D ARRAY_SIZE(supported_modes_12bit); + break; + + case MEDIA_BUS_FMT_SBGGR10_1X10: + *mode_list =3D supported_modes_10bit; + *num_modes =3D ARRAY_SIZE(supported_modes_10bit); + break; + default: + *mode_list =3D NULL; + *num_modes =3D 0; + break; + } +} + static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) { struct os05b10 *os05b10 =3D container_of_const(ctrl->handler, struct os05b10, handler); + const struct os05b10_mode *mode_list; + const struct os05b10_mode *mode; struct v4l2_subdev_state *state; struct v4l2_mbus_framefmt *fmt; + unsigned int num_modes; int vmax, ret; =20 state =3D v4l2_subdev_get_locked_active_state(&os05b10->sd); fmt =3D v4l2_subdev_state_get_format(state, 0); =20 + get_mode_table(fmt->code, &mode_list, &num_modes); + mode =3D v4l2_find_nearest_size(mode_list, num_modes, width, height, + fmt->width, fmt->height); + if (ctrl->id =3D=3D V4L2_CID_VBLANK) { /* Honour the VBLANK limits when setting exposure. */ s64 max =3D fmt->height + ctrl->val - OS05B10_EXPOSURE_MARGIN; - ret =3D __v4l2_ctrl_modify_range(os05b10->exposure, os05b10->exposure->minimum, max, os05b10->exposure->step, - os05b10->exposure->default_value); + mode->exp); if (ret) return ret; } @@ -819,7 +846,7 @@ static int os05b10_set_framing_limits(struct os05b10 *o= s05b10, const struct os05b10_mode *mode) { u64 pixel_rate =3D os05b10_pixel_rate(os05b10, mode); - u32 hblank, vblank, vblank_max, max_exp; + u32 hblank, vblank, vblank_max; int ret; =20 ret =3D __v4l2_ctrl_modify_range(os05b10->pixel_rate, pixel_rate, @@ -844,31 +871,7 @@ static int os05b10_set_framing_limits(struct os05b10 *= os05b10, if (ret) return ret; =20 - max_exp =3D mode->vts - OS05B10_EXPOSURE_MARGIN; - return __v4l2_ctrl_modify_range(os05b10->exposure, - OS05B10_EXPOSURE_MIN, max_exp, - OS05B10_EXPOSURE_STEP, mode->exp); -} - -static inline void get_mode_table(unsigned int code, - const struct os05b10_mode **mode_list, - unsigned int *num_modes) -{ - switch (code) { - case MEDIA_BUS_FMT_SBGGR12_1X12: - *mode_list =3D supported_modes_12bit; - *num_modes =3D ARRAY_SIZE(supported_modes_12bit); - break; - - case MEDIA_BUS_FMT_SBGGR10_1X10: - *mode_list =3D supported_modes_10bit; - *num_modes =3D ARRAY_SIZE(supported_modes_10bit); - break; - default: - *mode_list =3D NULL; - *num_modes =3D 0; - break; - } + return __v4l2_ctrl_s_ctrl(os05b10->vblank, vblank); } =20 static int os05b10_set_pad_format(struct v4l2_subdev *sd, --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021077.outbound.protection.outlook.com [40.107.51.77]) (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 D7F28351C21; Wed, 25 Mar 2026 11:48:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439317; cv=fail; b=eyUgg4uNKfiFDNBVEleJOyIlfjENYr7HcFV87qEEJUsDEkCau+BZ2p3fLnY9rrOhojnkptRgAbb6VcmC2wKwkxDkSmj1tMMyTzKSi6vWhVg14+tcprjPrhDwB/HKqvr9X5R51k2x4rv54Z7oUHWagZcnGgDBXNm1doR8VPdJLZY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439317; c=relaxed/simple; bh=Ju0GjAe7bDkU86M5xAwWiDyi9VcWtGkgy5HYbKAf2Oo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hJoB/3TzQ2I/ivtBsDHNKSAPHEn4GCYmZjH7J0H41aYLi4fTQqsX2bfpcuxbJ3Wi6vAJgT/7ggbD3O2D+0UB+twy+VVxdJ1PQ4FtzhiUBs7r/5Uo9iXNwNG8YBxttqaXE4SEu7PxTVq9KXWbAqnZCuFDEwsYfZTG+AyMFIz3VZ4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=WOfq6u5C; arc=fail smtp.client-ip=40.107.51.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="WOfq6u5C" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=waIAVEMNV1eI/uzNYy/H6RAPO3quVWQbUixTERHVsE2Mky66AwvH0lf5Xylp9QcxDt2gPlDeDzi50biGbWgtCTk3ztEpoa7b5wvwzNfKp5yorxFY9KhqaI2SadftZrzgJQfdi8Nl9/qErtwbPkITnxen5QnHZeK81QSAHv40EgUnITTareBq5ZVS1AqYTosFHb5rxm/hGrA19J7uE28LDXdc/sfiQ4b6MOdgAhKHGzHRUl+B2gaGg+mcPWKknbFYO+IB5h6flTvAFAQDd6wt1Ue8roLVcnWxQzthpVcZKPdqe8CBplZlDOU22QpWozk3GBDNwdkxzOannR+eIBahzg== 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=h5xPLpPCHDSCjY6Gm3xO7oGqj5xiwGNauxGHk15O/Xg=; b=Yf5EtAVDXGGEUBlF2A86U18d4n50Z72GGV24p3KzSNm1EGkGHr1WEy4iyC93Y5TeXb6BK2Xi1lcnzSHlZ7mQuvfC8n7Xn50Ww1GkLcW0qWL2MbKOkBA2hlVcpG89Vv6Oxb2X9ze0y7eGr2zCqtRqeAeEK2XxpFOP+g1dYmrp9f7srJ1AtEQNVcwm3tjl4LDo58Civtiq1IoSpQpPbs29GhNSlutmrgH0MSDEonJcUz0345a+wBTGCzbTnRj2x4d2Nb0Kj67xS2+ieOuD0VmpIbj4CZmNA2qBv9n/ENJx4gVgNWvwjed3WvoCNnybk+z/zsIRlCVSMcUi78zms52xdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h5xPLpPCHDSCjY6Gm3xO7oGqj5xiwGNauxGHk15O/Xg=; b=WOfq6u5ClmpAGmnHVjAG08t81HZi0Fj08sDhKBw7TO0lGQkyIRA1Oln2b+zx+Xx/Zu/H1MlgS4o/j9e66lIS5P26ltBN4L6rUVfTnfce+i9VLaWk1K4hy+ZSLc7MrITsgkhzGGmR1LFeBeaPH/kWklQ9PHvf99qNnJVHMxL/nRAk2E3Bt1E6Nxw2aLXlhzv7vH+Qikt7IykZ8qZxyMScGz0xKWl08JaCtdxwUZXGW2g/JOEYWR6/9zoFySKWk0cG0ZXf4Kr15/3mTpSOIoGm/mSmJy/xUOnYT/wPnwhKDpNw5fR4ErrfCNR2CD/Bf9DL2f4qarXmYoCJeEa9eGzfWA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PNYP287MB4501.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2e3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar 2026 11:48:33 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:33 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Mehdi Djait , Vladimir Zapolskiy , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 12/15] media: i2c: os05b10: Update active format before adjusting framing controls Date: Wed, 25 Mar 2026 17:13:58 +0530 Message-Id: <20260325114404.95188-13-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PNYP287MB4501:EE_ X-MS-Office365-Filtering-Correlation-Id: 32c2bbc6-456e-4da5-93e6-08de8a64709b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: RM+nQp/NC5AxuNaxi5bMlw9MvM2OUa6sVjAYm2G/1sU+j9+zWZx6Z/BRwImeVh6RkYUVX9tjbgBFV2Echji/zsCYXmkNEM0SLjmx9Kscy6ROJMVs7WxZhtQdZ/KVm6pPh41xUler8fip1SOKfCy6oq0tVbJauZkNjyTkXVteXm76STfb7GlaBw/CwklP22vykzY2jqZJ1i4VvW/t5Hfsqh53Kmx82o+2x0/5XdJDaSrUp2a90cfc3z71NEOuMn7hp8FzjGjnJ8j88zG3OfmOOnrBaOj6eK6+SrOU6pM1MaUzinhriKphTmsUWc7Ob5VqylDubb0DfnStZlrhjpsdeT5vEs6s/t8fioLhzy+OFb5fwNksXCaPA7vdQboPXXANp65MqUcT/vsUC1RDhGznqL+dOhxLQ+LUvNIkp3sooxl6cnULxdUHApmn45o5jJJ66sg32+w2xVceiJgOdE8niJpCZ8OX01EzgFubytfM6rf26EPZJRQK2aaZIuZqiubdevh+A5TgBk/s8v81GD/fSOSF7ZirhD2jsjaTdRM2vnK9/cREKbEg8Xc0hmh0wxQmElpZ7k4v05t7seq0kq5SW/8yK8fIuo4DjIuGoZfG0nrDaUXwB3DGONfVJLr3sUjuMV5xfhNlUqCwhA/t0evyRR5e0m8dBA9xctwFjFpa/1GpK9kRnr2kspZBCq9SV/9Cwmma5Ep7nNYXVyxDtWv6jBb8WsdSDFBVZkZVI+20nf/dipBB27lJ8BB2tLyOsbqQagidfRVs3GbqOGl+OrTcQD5inw52fwIyhONQnGH8Kxo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LFYP1iTEqbDlbcZz1XCR1iVtran1O4PYFS3hkvljEGdsOsOnUcif8uc4Joqz?= =?us-ascii?Q?a9MSeMv8r4W3pjz/S1s93s2b8hkyhRaryv4ZBJ2LtS2I+Lzp31CjNzor/Eza?= =?us-ascii?Q?xQJcqVNDp4YQUWVPRM2rYUR8bnexynmOhaVZahQRZTm4ehLQ81Jz/LKgtsWT?= =?us-ascii?Q?aZ3sEJ7Ufsfi67CVjYQd0zXU9BPriMxmQHp4f5196x8wB7CiNlLFt5WCunVn?= =?us-ascii?Q?MpnDzBJQ8NBEBm+OV3+xS/ubJFfuDv25pK83EoJcSnOIISPgi+nB6T33EB63?= =?us-ascii?Q?+6rDl8rurdQ5AgIwavIOOd7ZkLseppz1CYT8/Y/ZbrAxzwviqopl8pwLKQar?= =?us-ascii?Q?RIGeTdQ/LliXtpduzshoQPmKo8Ia62EDwlBrgtm6JyB9alR7Mi017osVRpAY?= =?us-ascii?Q?ZGB/u2yZoz/xL0C9YbaOi/tNODsbkQhwDqO+dd3wyC7HLZXREfKkA6wNfXAX?= =?us-ascii?Q?XWlqbzRe5KQZuHgNTDak2ZKOl20oQCNrw8ZVF7eVfOSbTnzhB5m2TPJ0RB2O?= =?us-ascii?Q?H7KZBYgcvqm30reaS7MQLNUo/pPN9JGDOJezbEuVutCxz+bAkh6T3ssT6S8V?= =?us-ascii?Q?yC7INoWPrTLgsFn346mJbGKmxgGvJ1py6112kxjNT5VzS652nM54WgeivouB?= =?us-ascii?Q?T9QkpNPK+w7aG0WuF98320Ud+qy3MpMXlPXysQDThj2ZkgWvae/IDccrNEAU?= =?us-ascii?Q?iLJvP8uhFs7Pht+7ImVImYO0YXlWEqaCJqSaY6elBgYxp6pQpAmUS1W7Ht9m?= =?us-ascii?Q?Q7sEbzvoJJTWnKz59ARWzARc5XeXrbYcg0yIOlPbcsVhqx8W1w8PHbD6wGf6?= =?us-ascii?Q?cOj0fAmItCAgEkPkEsxNpBYPsihf6FzSMlPB6G+CwRjuLCvxh81V7EProI+k?= =?us-ascii?Q?H++vfLiUQojyDyLK9gFJ9AwdnAGhjzXRU4oEjnH481CGeIFrd5EDiPKSboMG?= =?us-ascii?Q?848uIftko1Rqib13u2EqytMtL0Q1TuPTb2lJHI487FTi8dreOu+fvz81KELP?= =?us-ascii?Q?KkdM2Y+fvq0yHScBaQYlPwLwrTTtu+z+Ult55LVfqMb3+Mmz/HePlf1xD/2h?= =?us-ascii?Q?2T7zpyMTsISvTXxm61B/vSM23MkQrFuaifVwDjMBTdvnE6G2ZMnTmM7n2oEp?= =?us-ascii?Q?mr4Mrm9cRZPfMNVyzvZqwqqTQ/3W7XkQXsI2wzu1Z5/Him7smUkhqKnoAeDT?= =?us-ascii?Q?ufhAcRPuzpTCbVhkDt8tpi763kUvhoiEG8Fn58flXGDCKN8qwm4L4ENf3pt8?= =?us-ascii?Q?fWG3D7lhlHQ5RM3IITT+5vwHPzdxvmocg7N2Bnw3ycUz0AtdB8ysJvZcgu9p?= =?us-ascii?Q?IP60n3WRJxiNL/CQ+Vt1BTut8jfP81T+UKOWB/3bkDiCZLN85524uevE2R3C?= =?us-ascii?Q?9hkv4o5KFNEGuZCqUymJU02oaUaBs198wOdpBpkJEnR7PikhZv0pw5zYrDkt?= =?us-ascii?Q?BiYdTEnMsBwBzk5FIfzafHc6uomWYvR4SVbXKdELSNjHJOfNt+0KiUoNEDdK?= =?us-ascii?Q?fACj41Pjb+NvSOv7kZHbVhYFVBD6JLkvDsmHkr/dx9zB8m1gWvEarYp6J6RB?= =?us-ascii?Q?Vs5XXnGPsgo2Oxwo6eQHyiSzY8mmEgv6QkdEZUG5/yDHlpUnFkiGoK9wLBH3?= =?us-ascii?Q?6E3Xn3Bf+JVnUU8AxcxznUwzFRoHjdQ9/ysjznYnWS1/QWRQivsq0wLZXevl?= =?us-ascii?Q?bKksyXhW9Vee0/kXO0JT5X8/01WJrujL2cioAWHEsHU9AoCbVV6qUN0aQgvb?= =?us-ascii?Q?dXL3k5EFTIy0msMxKJ9C7UOsJ4Q4VxA=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 32c2bbc6-456e-4da5-93e6-08de8a64709b X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:32.4927 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7OYoiHbrRYA+5ZSixuAM2oqkjqVmdpmOmgZ98FIV9lIaaweoI6Yy0iDsABfkD/zkWObmX8yVg6n2/kxkK7eza2EYXcgkDvcaLdeYT17oOJ8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYP287MB4501 Content-Type: text/plain; charset="utf-8" os05b10_set_pad_format() calls os05b10_set_framing_limits() before updating the ACTIVE format. As a result, the VBLANK control handler uses the old height when recalculating exposure limits, causing -ERANGE when switching to a larger resolution. Update the ACTIVE format before adjusting framing controls so control callbacks use the correct dimensions. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index e3dea793121d..4db257570689 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -898,14 +898,14 @@ static int os05b10_set_pad_format(struct v4l2_subdev = *sd, =20 format =3D v4l2_subdev_state_get_format(sd_state, 0); =20 + *format =3D fmt->format; + if (fmt->which =3D=3D V4L2_SUBDEV_FORMAT_ACTIVE) { ret =3D os05b10_set_framing_limits(os05b10, mode); if (ret) return ret; } =20 - *format =3D fmt->format; - return 0; } =20 --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021077.outbound.protection.outlook.com [40.107.51.77]) (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 361683D1CB3; Wed, 25 Mar 2026 11:48:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439324; cv=fail; b=deQWIR777eNoG78jDRW5USJdpn9E7VkmaiLPzpKct/YfLqVPfWBi/rJPIIaai7vh90tkJI/kCYGZMGDyjHO4mChWBJW8DrQxlB2l1Ll5nfM02VlcVPowj2KsbFXxrxoTNQCMw+qmlVkmEpvkhrqhO85NeipX2BrnJrGdQut9Z7M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439324; c=relaxed/simple; bh=v0xmikUuYoixoX0db/svL9PpmJiugjDpW6VqxTTO4y8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=I8bYZhl6ZdUEy+/gbOmt6eQIGsK+iQp3XvNEePJcFri5kcetrKf9tnsMsOiAyvuEyYQuSO6667VfeSfI1613OILQ50O72mGS1xaiJX9pc5nrCqhEOpY1hRmQDd2h2X1Fi8s7tK2kj9jX95O8fgwzndTQQ0OAtrdVgg+DyLTUgyY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=kjtpJYN8; arc=fail smtp.client-ip=40.107.51.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="kjtpJYN8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UXMpp0kjE2e5ilOZgu2sfpVlD9/mzAYbnuQxWMptMcXzerAk/HnbZebjAkYsHJcRZ0+JxJfGlEOAF+knUg2mUymik2wCg2TkmBqZVr+BRELsWBHC+XUR9bcHp181yo1babkiYhQBXQsSfuGs7lPqR2NvMzNfyHrEpX8lcFSzrNv6y245k447Zw6OXn0EYQeJCVpZLQP7T5Mrx1M/uzloKIpdXTSIap0Iv2QhvoC/DJ/+DSxMYVuBoJL+qdvkRXrMujUFhsqC4WLa5bnRgGDmM53Qgnzu4dODTvVvXHxOb84bMASbuUzq0201GFWM32zRDvcRLvpCHjqnyJ3IZV13xA== 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=o90sbzqH5PvCl41PV2l29WdvrT6nqDR3R4tQvdwJILs=; b=QKVqbdoFj49rjBd9vtkYc5Q+dB8C6eySGydGofvbkKRMum0+Bot7BsfCSPppPP9IWAx4uwDvtkG4l6E8SvvIsvIaTpT63aDnrLYWF4aWKTce/iYRIBy9bbjYI8t/9egAuS+q2pwQljg5q+7o7/ew+GTxnr9jBWx6l+lQeCg6H/nRsPPvfCPg2UhOQO4vPDi3WEOYmy7qNM3TcjS18ZDDZC9R8PBHbIK6GR3H4pwereOaMccnmokdwYxr/5/puCu6JjiN9B2q8Bx1L+6Jxz9rC2yOd2FNaSvsb5ZI4FL83WTN9v9l4YAQLRuVsVzesH4bQRHlxMUkwRh+ZAMcmw1NJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o90sbzqH5PvCl41PV2l29WdvrT6nqDR3R4tQvdwJILs=; b=kjtpJYN8IdxeT74ViM6zVC9GsyvXfFOV1U+W4oiwi7FTIegXxIXkObiC3rua0ek8DbiuhuaN2vnrIRroFsYXd/leuN+T7dgPN3ETJFqw3adL4bpiGiDt6DTuMEz6uLj54LVc86wVqurpuAM55YXW+hAn2YoFZZ0Nm1mzWx1So3skXwB8IRZNGh+6y+NQON6IMi7G1xJsf8LbPRpxNwU4ylkV9XkHCbalDaaqQUAjiFsr8Mv9XCwFnD3UDbeAdn1Yeag8GPI/0RBOKieqhJ1xFYxHBSIvk3H+dgt81DUYBvjIjlxyZNjAQaEGXc0WhbWx/4NTtU2Swx6CKSIV4Paeiw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PNYP287MB4501.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2e3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar 2026 11:48:40 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:40 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Vladimir Zapolskiy , Hans Verkuil , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 13/15] media: i2c: os05b10: Rename vmax variable in VBLANK control Date: Wed, 25 Mar 2026 17:13:59 +0530 Message-Id: <20260325114404.95188-14-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PNYP287MB4501:EE_ X-MS-Office365-Filtering-Correlation-Id: cfb9cfec-2908-459b-a6a3-08de8a647530 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: e2agenJ5X32BVvTM0I0qYaSF3BMb29V/PEickv0pfD1lEODTemWkcsBeD+/pRUhldvB1AbZzbrRsV3vAXaADYoSpm2WJkVHBsohLfirI7GHgUq0STszmzmrMQOcEih6GSNmn252n6fGL9eBG2h2vWRbS0AzX0JAlykitkC4s8eo1WUBmBCiB8mY8ysBOnnIxVeiPxM5g6+5WIFcA9FARIiuilk0/YjEFM78/g+O/d/haS520pLMTGOaBuEWjaSa4X3cH5AZ3YZdxQVspocvDSANpddehYHDh9bqua2Nbllv/nFGDKAbnqJitDRnG7G9Ilkqo/r9GbpnyQTNHtHG5R2w7ZhEfRj4Yc+Lq4wZTbnDosNiTh86TyAXI2qih+ZoKTWR546sLaFZHDwX1rftF0kZ08MmVwJD7R88xFy0c6Ao7GBLGMyEXrJxORaPY9QNQkIX9isgtNwNMHp2R/Jp7deaojymT4yncehDq9qdnGzt29XUTXozSVFjtxNy7wk6CP9ViootPeMbxUh3iULPS64LnC4fT4GBfn06/DJxrwSyEhmFHTl+YAsBZPIFCLDe2URBdJkJKiDbNrXAoeEBtB6FhDTil1TbGjVwm33sItV6dVgpyY+ruS345Rj0LctI45lRKgI0s8wY8LzYdnI+6oT58C7132ocPm7UQvMONDzsKiW/mVbF+Hs1kdt7KHO+HRVt8xLxA4MAtfJXpkn+13SJ+SKPT7k/qzA4+xOpOP1rpKqSbJE/J3mA8oMhaV9hhcnyZqTIjSMdso1YgRrbDqPBxN/M0XbN1YghM5mzheu0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5L+tH8/f6bd468J7JOwGKfVoFd/QKZ7RfCPt/0nJQn8OHDGJ1/7+9B69koqE?= =?us-ascii?Q?ZoeVSGlZwxzA7WlOhSexZLovB67ek2g/CvfXj1/yUu75AJjCcMCKyn7lDTZx?= =?us-ascii?Q?77uqpfL0l6bd29+2uIl+M/cSFB5DLsWDrAsmCv8eJas56+NL3GLXROg33yZo?= =?us-ascii?Q?5K+8zOTbloQqQgHpxkRpgqTgRse1amJVmPO5k9qUQgwCL7jsSi2h7fkkfMAZ?= =?us-ascii?Q?eZCOdDQ6IexvDk69ScbTS7dTRhq3ewFnOzuf34otZ1/reUEmwqX1343/9PM6?= =?us-ascii?Q?1vXie1bj90OhQMuQqBqsJYlV8wbBH+GCpavmoDLnKdbLUxPlUqUJ9BD2bUeQ?= =?us-ascii?Q?X0hQfxzIYfH9ZPFNUnyiTyrn7gfDb0uCmUARkMJrkt79yScHf4H1ffwQqYeW?= =?us-ascii?Q?LjdIoZCDIJmgefVuq51WNNARxU67s/G91IDVfm4OaqJGbFR/HmxZ3yNisg6b?= =?us-ascii?Q?35Ahg2oqnY2CBehWY7vR3tCtCTUesG9aVKQ42vNTsgNdbhscxXcBnDTBHVuB?= =?us-ascii?Q?9CGIcaZuUs69lRRtHMfT+J4kxfRazXPaaaGKKsQvYaDqE7iHjROKCFDgpQNu?= =?us-ascii?Q?dq0ji0VKagPPYkBupMvuIpRx/zqUy6lY+SpkZzk73QrAjlEIjoh1Fd4PgVsP?= =?us-ascii?Q?FOHM+ubjrkn2oA36DBL07wGL9J9yZLKo3oScb/vuigFuCxiuYO4dBNgzgwkt?= =?us-ascii?Q?aL5p6ubte/9SN8l+so+v29SobVoTCtIHU7Z7wsXSkVbd+VTEg7/2JEZ3+kv3?= =?us-ascii?Q?G49kXkJeWf8AvirtvB13X9wZwFsRM11L2I42e1OZCUYDESuxHA7+3NDz+xG3?= =?us-ascii?Q?46FsuVgmBVV3E4VLR7va0erW//nDkWgts4jfnoXtPKmunB70GVLscpdqcJoH?= =?us-ascii?Q?m+smHVFGnhax+gOvOZOCNzuhqv4jyNT4xJxRfPDAud85E0rbuuEVBNYOpk45?= =?us-ascii?Q?CVygXSP9M6wxVMhazd6iCjCmzc9rI2DUSNAAdIIphtWFvPONs8P0BSj2FWij?= =?us-ascii?Q?UuCLMBnuO7d80lpssBqoZFsSr6EtG9CFFX3rV278pcV8vgIDnzYG/Gjsq8O6?= =?us-ascii?Q?IatVtFjEOmf8g5eHA9h5s7z1j+FG8zxPzyHzv7SzTrFP6gZffSjlaleK1BrF?= =?us-ascii?Q?LCJ5o+NsEx5AN0zhjOFE4tIB4OcYIlnoclWqIu/BvGKaHGA1gSnGR0mf5eiL?= =?us-ascii?Q?FaVdYZORvDY5FGBU5egDIgGIDlicpgchUTNkdJo+ssNxsxRcUstxg1w5JzFa?= =?us-ascii?Q?oreVxo1PLLtRp2QcxFDc8J2T5vm0eQhfHfCEyc1ocKIOmigBZ+CP2KVv7PML?= =?us-ascii?Q?PkA9wrvLjjgQF+k+BlagLsCD+o3rUXH0QQBVTTLNVXU395WwQCZFkVahkjnf?= =?us-ascii?Q?77y4dLrb5+UwFTWYMW5d0E2iQNSuKV9ZEZ2nODI2JcKA85BSFk7smqIuvT/N?= =?us-ascii?Q?iVbeoQUABuHYDIS0h2vYM/frYVUtU4SQrQTjWhgO5pPMU8caDXg5bqe+yXVX?= =?us-ascii?Q?O246UG8iM4+HGLp14TlthZv43Vgjh4bw/13MdblZWrf+AY/1e0eIrzO+jmak?= =?us-ascii?Q?DOaTk8tGmMGzyI9z4xMid/W+OAK6sQR9B34ZRK68hTVT6RAPhuw+ScPkjDBf?= =?us-ascii?Q?UuWd3Y8IQBWWVsmqSMLD9v9Q0bGsbfAWxc5d8KHBUubFVComJWhffIT1fIO7?= =?us-ascii?Q?j4TTUNV8PQhSHT0AxQCnGgGKPw5jsyy0Mt4AAuq7VUzMcBUOzXcPK1qYW8j9?= =?us-ascii?Q?VKqyaCzO+ImQaqRiV5146fO7sPFieu0=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: cfb9cfec-2908-459b-a6a3-08de8a647530 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:40.2516 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: R9T/HeDLeoIh7Qg1h9NBMV2+8tk3LN6EXDD+4BBcIbjs8LAnkyVqPHhIb4DcEDfKOaSrMuzHWHwEH2h3eC3sxzENl4hIs9q7CJm/QIAl1BQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYP287MB4501 Content-Type: text/plain; charset="utf-8" The VBLANK control programs the sensor VTS register. Rename the local variable from vmax to vts to match the register meaning and improve readability. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 4db257570689..bc6df8c8faf0 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -747,7 +747,7 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) struct v4l2_subdev_state *state; struct v4l2_mbus_framefmt *fmt; unsigned int num_modes; - int vmax, ret; + int vts, ret; =20 state =3D v4l2_subdev_get_locked_active_state(&os05b10->sd); fmt =3D v4l2_subdev_state_get_format(state, 0); @@ -772,8 +772,8 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) =20 switch (ctrl->id) { case V4L2_CID_VBLANK: - vmax =3D fmt->height + ctrl->val; - ret =3D cci_write(os05b10->cci, OS05B10_REG_VTS, vmax, NULL); + vts =3D fmt->height + ctrl->val; + ret =3D cci_write(os05b10->cci, OS05B10_REG_VTS, vts, NULL); break; case V4L2_CID_ANALOGUE_GAIN: ret =3D cci_write(os05b10->cci, OS05B10_REG_ANALOG_GAIN, --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021140.outbound.protection.outlook.com [40.107.51.140]) (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 5D0913D1CB3; Wed, 25 Mar 2026 11:48:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.140 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439333; cv=fail; b=AM8G8bAM8JxoXuIXGQX/hwsh/fgy/Ui8YGY/yFyq/Koa13zNbNAuPM/MiT56vVmVW7idMjhaQuAbR6sLDcQydyOit+IDkTMrZHJCPh6RNaElogdikbhLxsR3ODWNR90sZOMM35NcqrviC2btUvL6NRRWJjdkJpm3njN64yX4iGc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439333; c=relaxed/simple; bh=dwWw/OZqVdgRyJ6ZBDA8Ae3qtKpoBA1a9m+KdvD8gto=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JtvL3PgbbtmNnq8beGk46D+PyNQvhkyuhjTWhvH0dJMY4b0nHrpQHXB1oTmjn/Rybt3/OKQ0edEs9aF3QPvJik4ZeO/gpdUC764t3wAPTEHSDWDAr7D420oAHvqq3OvCW/rA63FQ2L1KUJJEYvVcERkF6kdYAejh5YRCfyy2BhA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=f84YLhSy; arc=fail smtp.client-ip=40.107.51.140 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="f84YLhSy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gLpIb/nx6DWetQx44xvdOT8w72Pl978ElXFBN0xbfj+Jr2XuoNz55CYfL7d/y+g5xWuVhgBWdU7igKAvS8df49S9+nPRZo14CnVVPVANLa2TzjF2ZdYddRpWQIREXuaux/0QcC8oG4Z8fBpTig1V/KZyWM0NvzXDNiwAS/6FWuOhd868BpByz1DrAYQ+z4ErLRpQmE+4gYQIyUziisgENnzZpz7T7Hk9Fjn3NcX1A4DhSnqKX/I2oQ5FGsQOqKertFgWHch8Exf2uJ/8ZDLNxxF1rURttFQoW9j8ZKFzsYRgMxWGtq+wdHnetaz+3xStRkVOAi+cpgmes/Md9bCCSg== 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=tt0H03EyrOid37NTiCEXiFAg4GQdbfJBdFpbBCFix1c=; b=dJHp5fyEmN2A2clnYEWSDMrjnrThR+c7kZ9wbsrbQvqgMEEelFDUSFWO++O/n7EWUoGBjVNN9bAfJPASITFUMH2xKUE7jiZrpcppXNlEo8oT4FqLIT4qrRiAQdAD6lnbewPlXst1/3N4+8WCtO8nYlYbjLkBwZYNqeV5rnWMdBdyvhYM2bxmwY0DzJrSf/FGzNV7aYNb7TBM+MEKdiSRiHXgcTbs5mGi/uSxnBzFknxZjTPiC8bsrx6Jn3HCzsoAEcz3k8tgS2n3ApWMaBkxwltOwDtxPgivSD/tEho0jOQb24b+DzukKig7i4fST3bMnI8/6bD0CU1ej+4vyms7MA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tt0H03EyrOid37NTiCEXiFAg4GQdbfJBdFpbBCFix1c=; b=f84YLhSyjSGTJhNpy8awHQRVk2vn7WfUeD46Dx2SIeAoHZjDHndffBypqiDEKu3Xo3BACOuCxDFzAOBEE1g7fSG6OLBTGNMVxkXiOZjug9m9MxtysdXePnN8QK233CpQgsd1jUG8JQDyHMBLWPKYPqbk6SwJCCd3SU1FbDFzYPBfGN836amk5h6OWlXgv6roR1aF1IQDuj3IH8Drgd+v6X6O8OdKj0nklmiQSNz2XdqynlgjMfu2duJDJ6M4vq3lebKNO6r0m607TR9R0L61jGE7BPaKtHaD7nKAVk4uQf0y6Hod0W5FqYtylKUP0O5JHdec2a/4qlrLNJqG4/ojbA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by PNYP287MB4501.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2e3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.31; Wed, 25 Mar 2026 11:48:49 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:49 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , Vladimir Zapolskiy , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 14/15] media: i2c: os05b10: add 2-lane support Date: Wed, 25 Mar 2026 17:14:00 +0530 Message-Id: <20260325114404.95188-15-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|PNYP287MB4501:EE_ X-MS-Office365-Filtering-Correlation-Id: b0401a1d-999a-4b82-54ec-08de8a647a4d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 6QwV8an7XBgYUsIg2pVrysNyZd+YpUbysPTc04F6ymTpFlJLzYG3q0ggCZvJl9H0dvoi2ZwAWtMGIEyJjCSjaVfb34rh4K62TreRTu3Jq4K97Zc8bcLbkrW/M98BA/uxJMolg0bGuqSqL9U2rqcP4NEfiSSRMaz5roW68wOz87+Go8vn/wxKNMP0c5nCsYGr9d+dNsgHt0JV4WdUJzIKsUZv7HRd6jwQUIi2CrESvsFQeOun7ycvSKSeY30GTQ5FpKzwhUHD7Ab4jTUOcQjMJAb4MPRUnS908jtoBSAkX6xtFFggWk6cr6ihq1PFQ658hk2FcqIMMfUBbd4THdyU4drXG6AV56V3y9IWxmdl7EmJS4SdB9TiruCQstdtXuWY6BRWphbUzi7CKzKFu0zyR5vd8jfCvHjuNMqUhTYw5ec1vakgymQXx5rn3/YH/JVKowyTY4DeLYlZjJ8O1I8nePjWEBUPByO5Jo3IZDkGId95NY9Fz6ZLcvDX1FLezug0pnF0/IyM19MGhSglaNtGLzAsZUA6gIGR4MguG2rj8Swdt6hOGkpEdkfLEPReZgqUd+bbvz5XrIpeWLb1KbkcNIG3Lr+4zinp9oZWvlOZsRLOPcz6rJcSVO7xAeDy1aLcD2ThZpMvdllhwUDY99GygLFVuSXU5P06lpHIyqURbl3HFdzeWk4JEcXxXuQ+uOQnXMZdZ5dA5F/w+zyPI9EH5Cw1QQc92nRv/FYf+eIGp2b6ixUJVHmgPqFnCD92Ub3l0k5+MS4eUa0oZnrdNyB40+2lp7Tk5KyTMoNQ6lksrt4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HzGmr6XW21pdC5kVS/62aV8IbRHQRFL4qiRWgZcSr2ENF7kNg1ict4I0fSkG?= =?us-ascii?Q?bZ6cBZzCBYwRdKlxHYyoELslrUzVVQVP7DHr86GnZuTNtMbZ3u1ofD0ASdXU?= =?us-ascii?Q?E2NuoRExNxIx/c9g89+dp9F3GOSesf52T84qFkbJCUsFs6RHSOL4lAYGLxFl?= =?us-ascii?Q?gk0X+knaru/PhdRFxMsyHNcz8EJJ3gyPnmcqVsPoLbQleTpGT8m+W32fExoD?= =?us-ascii?Q?kjmDLMOXdK29jB1Ao8HKiznitHSWuq45tBjse/63DEKiWVSIn+cpiJF6oQDT?= =?us-ascii?Q?s6wiOufPT9F7WTyKWNKT2JQJ4Sfjm5f1qIq56z/KAwor+hx1SXA7RxtcJcWh?= =?us-ascii?Q?nP6oOz/ZOD9zz/5qENSCqTbNJ8jlxZplwP16kbXd8rqtbnRdtc3XhNgmUswH?= =?us-ascii?Q?ElrbyTMQVxHG/RLPLgMIEPCOUALs4t4ss8YxlBdfWITq9kV6wLJDR5jKuv7C?= =?us-ascii?Q?rl/QNSFKw4CNGJqJnL081Q/1CDZwcg7pjcqnJfU/wON5QEsZ5+7i7O3ZAFqn?= =?us-ascii?Q?Un3dZSFks04j8kpipjeeOZq6jLLu1/GfFrZ9oRkfsB4mGWzpkP74lBEf0i+0?= =?us-ascii?Q?eh+Zxx35k4le7yYD0fAqsk3D8EUQ0ppfAz2Vfw+3ztcrAD5O3lCt2Ew7rzsX?= =?us-ascii?Q?voF0Dvs8i9MEFKEVuDb053kWFsGx/a53AgiKMFr+syf9fu0DbnNqNAkG7nV9?= =?us-ascii?Q?3uyMpEnqOlihG25CkVLZ92Lkroh6nD1I+onwrLr9SruttYLNilVooaGAJvsP?= =?us-ascii?Q?XNUc3qHko9tY6D37jgJze1XC2ZY9N74up8epEf5h2XuvJ/vDTVaSVzSNH/e1?= =?us-ascii?Q?QUmICPgwSLy2tUSEbXp5B22cQAsEH8NCzOHAip7S4Li2jZ3u7pVmcrXf3crS?= =?us-ascii?Q?2wjFZOiFuYu11lip/OBWQCKJ54vC+DykpJHJLPSl2Bmu2nUjByEMgdb6l1ur?= =?us-ascii?Q?4xzLZZch0AkRcQjitn9vZrchVLT2R6skd+IskVf2MOnBKWtbPp3/RuZBg7XN?= =?us-ascii?Q?mSLWmxu6+el/6KCA4Jq6+B+jQ3bdZde/n3rJ9dmQ0Wq7VGLBPbl9D6L4GtF6?= =?us-ascii?Q?mOKClXgVqN/16ffOHz1IGwD4WaDQ3t/AcgCY4BINPMFqXvUnH/whObn5v17K?= =?us-ascii?Q?s4n+LOxTGlTF0dMjWOhf1wcw1ofhJCJqP/MLj4+HU9fxwSSNG1mhFBDHeGP3?= =?us-ascii?Q?PgCev+sYd1heC3IpohlevXksq6O3JUvDGmnihpJs4LWI5CdNN5ozFy/pQzH5?= =?us-ascii?Q?xSbfeKnu4KIyi5brQlRyNA9zS7mi+YfINcwL1HgbQ3+8rDUbffKQhxOKsvOj?= =?us-ascii?Q?67YPKyLK6ZwGpIPgu5HGH6YFobl4YV99MqY8QLzAf/Nwjy4r40XWxg3awwig?= =?us-ascii?Q?ehcXFF2LQPEcewnkEhHloZqL0c46OFmJf0iwmgDOE2vl6IrlWj5AINeI7NQk?= =?us-ascii?Q?4IQ36JEwL9gx2NSlh8SWwYRuZCos7WN2/G44P1FtRgAJms4dk/iibpEWGhCF?= =?us-ascii?Q?vqnZMfu235nJ8cYmdqGe7Ln04iyXjNRdhI7B3dPCqz0vkDVVJed9auT4Gozn?= =?us-ascii?Q?8OCTUU/7SwhtV1EAI5FApUc5HG2ikQ6+OnFY0YI67n2rIATpnV/BLzJZJdf4?= =?us-ascii?Q?oZhKVHDK6y3K4/bxS2yhh1xk0oPheBu0mIYcypC/gpm1ckuXfkmKc5sMeDcq?= =?us-ascii?Q?vpvvZW0fUiy4B2NVxHUaQvnXI2p8nzfyhp27rZL6xzO5HxUKMnXgA34adlWj?= =?us-ascii?Q?hRHd6zA4nqXlPFSYNcWpB+5b/RLOw0E=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: b0401a1d-999a-4b82-54ec-08de8a647a4d X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:49.0145 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: m02UvWQo7buFpn4c8kCbfgdd4XsBX7XPmWX49kcYipxMSUTe68tkIEO7eRu5/MsJ0H9TsOKZmauGr1mNGFFfeFxWlXQWZBIVp5o0+pR2I8Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PNYP287MB4501 Content-Type: text/plain; charset="utf-8" Add support for 2-lane. Update link-frequency handling to select 750 MHz for 2-lane and 600 MHz for 4-lane, and adjust pixel rate computation accordingly. Extend endpoint parsing to accept 2 or 4 data lanes. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 94 ++++++++++++++++++++++++++++--------- 1 file changed, 71 insertions(+), 23 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index bc6df8c8faf0..bdfd203bf672 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -114,7 +114,8 @@ #define OS05B10_TRANSPARENT_EFFECT 0xa0 #define OS05B10_ROLLING_BAR_EFFECT 0xc0 =20 -#define OS05B10_LINK_FREQ_600MHZ (600 * HZ_PER_MHZ) +#define OS05B10_LINK_FREQ_4LANE (600 * HZ_PER_MHZ) +#define OS05B10_LINK_FREQ_2LANE (750 * HZ_PER_MHZ) =20 static const struct v4l2_rect os05b10_native_area =3D { .top =3D 0, @@ -137,12 +138,6 @@ static const char * const os05b10_supply_name[] =3D { }; =20 static const struct cci_reg_sequence os05b10_common_regs[] =3D { - { OS05B10_REG_PLL_CTRL_01, 0x44 }, - { OS05B10_REG_PLL_CTRL_03, 0x02 }, - { OS05B10_REG_PLL_CTRL_05, 0x32 }, - { OS05B10_REG_PLL_CTRL_06, 0x00 }, - { OS05B10_REG_PLL_CTRL_25, 0x3b }, - { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, { OS05B10_REG_DIGITAL_GAIN_SHORT, 0x0400 }, { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, @@ -533,6 +528,24 @@ static const struct cci_reg_sequence mode_1280_720_reg= s[] =3D { { CCI_REG8(0x4837), 0x0d }, }; =20 +static const struct cci_reg_sequence os05b10_2lane_regs[] =3D { + { OS05B10_REG_PLL_CTRL_01, 0x44 }, + { OS05B10_REG_PLL_CTRL_03, 0x02 }, + { OS05B10_REG_PLL_CTRL_05, 0x64 }, + { OS05B10_REG_PLL_CTRL_06, 0x00 }, + { OS05B10_REG_PLL_CTRL_25, 0x3b }, + { OS05B10_REG_MIPI_SC_CTRL, OS05B10_2_LANE_MODE }, +}; + +static const struct cci_reg_sequence os05b10_4lane_regs[] =3D { + { OS05B10_REG_PLL_CTRL_01, 0x44 }, + { OS05B10_REG_PLL_CTRL_03, 0x02 }, + { OS05B10_REG_PLL_CTRL_05, 0x32 }, + { OS05B10_REG_PLL_CTRL_06, 0x00 }, + { OS05B10_REG_PLL_CTRL_25, 0x3b }, + { OS05B10_REG_MIPI_SC_CTRL, OS05B10_4_LANE_MODE }, +}; + struct os05b10 { struct device *dev; struct regmap *cci; @@ -651,8 +664,12 @@ static const struct os05b10_mode supported_modes_10bit= [] =3D { }, }; =20 -static const s64 link_frequencies[] =3D { - OS05B10_LINK_FREQ_600MHZ, +static const s64 link_frequencies_4lane[] =3D { + OS05B10_LINK_FREQ_4LANE, +}; + +static const s64 link_frequencies_2lane[] =3D { + OS05B10_LINK_FREQ_2LANE, }; =20 static const u32 os05b10_mbus_codes[] =3D { @@ -832,7 +849,9 @@ static int os05b10_enum_mbus_code(struct v4l2_subdev *s= d, static u64 os05b10_pixel_rate(struct os05b10 *os05b10, const struct os05b10_mode *mode) { - u64 link_freq =3D link_frequencies[os05b10->link_freq_index]; + u64 link_freq =3D (os05b10->data_lanes =3D=3D 2) ? + link_frequencies_2lane[os05b10->link_freq_index] : + link_frequencies_4lane[os05b10->link_freq_index]; u64 pixel_rate =3D div_u64(link_freq * 2 * os05b10->data_lanes, mode->bpp= ); =20 dev_dbg(os05b10->dev, @@ -967,6 +986,17 @@ static int os05b10_enable_streams(struct v4l2_subdev *= sd, ret =3D pm_runtime_resume_and_get(os05b10->dev); if (ret < 0) return ret; + /* Set pll & mipi lane configuration */ + if (os05b10->data_lanes =3D=3D 2) + cci_multi_reg_write(os05b10->cci, os05b10_2lane_regs, + ARRAY_SIZE(os05b10_2lane_regs), &ret); + else + cci_multi_reg_write(os05b10->cci, os05b10_4lane_regs, + ARRAY_SIZE(os05b10_4lane_regs), &ret); + if (ret) { + dev_err(os05b10->dev, "failed to write pll & mipi lane registers\n"); + goto err_rpm_put; + } =20 /* Write common registers */ ret =3D cci_multi_reg_write(os05b10->cci, os05b10_common_regs, @@ -1179,22 +1209,39 @@ static int os05b10_parse_endpoint(struct os05b10 *o= s05b10) if (ret) return ret; =20 - if (bus_cfg.bus.mipi_csi2.num_data_lanes !=3D 4) { + if (bus_cfg.bus.mipi_csi2.num_data_lanes !=3D 4 && + bus_cfg.bus.mipi_csi2.num_data_lanes !=3D 2) { ret =3D dev_err_probe(os05b10->dev, -EINVAL, - "only 4 data lanes are supported\n"); + "4 and 2 data lanes are supported\n"); goto error_out; } =20 os05b10->data_lanes =3D bus_cfg.bus.mipi_csi2.num_data_lanes; =20 - ret =3D v4l2_link_freq_to_bitmap(os05b10->dev, bus_cfg.link_frequencies, - bus_cfg.nr_of_link_frequencies, - link_frequencies, - ARRAY_SIZE(link_frequencies), - &link_freq_bitmap); - if (ret) { - dev_err(os05b10->dev, "only 600MHz frequency is available\n"); - goto error_out; + if (os05b10->data_lanes =3D=3D 2) { + ret =3D v4l2_link_freq_to_bitmap(os05b10->dev, + bus_cfg.link_frequencies, + bus_cfg.nr_of_link_frequencies, + link_frequencies_2lane, + ARRAY_SIZE(link_frequencies_2lane), + &link_freq_bitmap); + if (ret) { + dev_err(os05b10->dev, + "For 2 lane 750MHz frequency is available\n"); + goto error_out; + } + } else { + ret =3D v4l2_link_freq_to_bitmap(os05b10->dev, + bus_cfg.link_frequencies, + bus_cfg.nr_of_link_frequencies, + link_frequencies_4lane, + ARRAY_SIZE(link_frequencies_4lane), + &link_freq_bitmap); + if (ret) { + dev_err(os05b10->dev, + "For 4 lane 600MHz frequency is available\n"); + goto error_out; + } } =20 os05b10->link_freq_index =3D __ffs(link_freq_bitmap); @@ -1224,10 +1271,11 @@ static int os05b10_init_controls(struct os05b10 *os= 05b10) =20 os05b10->link_freq =3D v4l2_ctrl_new_int_menu(ctrl_hdlr, &os05b10_ctrl_op= s, V4L2_CID_LINK_FREQ, - ARRAY_SIZE(link_frequencies) - 1, + ARRAY_SIZE(link_frequencies_4lane) - 1, os05b10->link_freq_index, - link_frequencies); - + (os05b10->data_lanes =3D=3D 2) ? + link_frequencies_2lane : + link_frequencies_4lane); if (os05b10->link_freq) os05b10->link_freq->flags |=3D V4L2_CTRL_FLAG_READ_ONLY; =20 --=20 2.34.1 From nobody Fri Apr 3 01:25:55 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021127.outbound.protection.outlook.com [40.107.51.127]) (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 8EE383CF682; Wed, 25 Mar 2026 11:49:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.127 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439343; cv=fail; b=udNQphKo5w7aO8oEQ9KJK9CBKO4hROCirdObaE2PcImLs9lbkjQPM8BbptfCdScsUUTJgZWZxhawaUY+35ulAwJlE0VerKEWx+7mEuDmEFPiANR20DBtNjlx9tqK2moEEtjUPNfVHMmSpbwB719wDU2DOIVhZQ7/nsK3BQY5cK8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774439343; c=relaxed/simple; bh=3PwNVPVDu+JxJ3x1Zd7k8XdVH8O9no2lWXwCpXG1Vtg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=k50fJ1E+meFi2xkibANZWUbd/4GPD0rJi2bfaohZbjr6JEnQ17Zk68cvvSblsVLniX6ApaYkqKZWC1wEqODaxahvI2xwtJj7IHFjvsUcX9VeRfqO6HifIF2VMc6O/5Q+nDs1O5NfiMDYz5j9FeWWjMl/GWquu6ZLidz2cJIqPZ4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io; spf=pass smtp.mailfrom=siliconsignals.io; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=TNW89bbC; arc=fail smtp.client-ip=40.107.51.127 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siliconsignals.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="TNW89bbC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pa5YjgoZSNRLOXH/bQniKRVjpjATwNmg8I6Su2/6hR2UL/XgQGAKT3dB2+zkamUP2CMZmi8FJB/5gyKX+Bg6c4/2OxzycW0Gt8USv6SfZf73bUOb9RKyS8kjRcTrJWEYgrPOI2Ra2ojtojUkd4ICwsEfHr06B5VI0zgcN5V9qlUFuqUoJgJXLwV8PT5xJbeYrylwgQMx9Riqq0EUNrq/an3faBwHSeMLb1QACPmo41IBq/cr7InQegq1wF1UT8TQ83a84PDZbJxswxFgUSNlMIQqvljAtj8gvmnPJCTL1YfEd/N2mQkvwE1Q+N4Dw3wW53owaPtlOvmIhP57o4cNkA== 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=aJfSq97S8IQu2PVFaoAywcU/qdgoohCm6Tra0yejqXs=; b=IQacYaw8HqvAFm6iNqYRu66/DtuXO99uMlgtz0u0Z1eDYXfjl8zxkHC32WEFJ5XoXC/dvnU7pQhQrE24eQaDVl88eG/wK8CzxkbgmjS27es35dma8tOfbmZjh4vYiiZ74RlUcFCYf632r/plCeeQZ+f1yUtMNM2XHaLpM6rfrJvXhOrfPDSlZSTiQLZFp66hqLoEOn1RNrNgzcCsyRmiRaxCnsoILpcTjbwJTRwUwmpusJPA1XLawhm9lbbTtkM3Lc7f9JeSMnTuPvG06XOqfsmIfX90v6Q1goUfPkwTk+MtGiiR8eTMZLsP+t56jdTl6A8NtMqPPfp6PpMxs2Z40w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siliconsignals.io; dmarc=pass action=none header.from=siliconsignals.io; dkim=pass header.d=siliconsignals.io; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siliconsignals.io; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aJfSq97S8IQu2PVFaoAywcU/qdgoohCm6Tra0yejqXs=; b=TNW89bbC8FHzovXcmD4qzGmMDI3ZPqA3uNV7qSHRViIlTzlrYkvFxojrOBTQCewrRuNK2IdegMVpB0TkEaCsy9d4sYrFQNQgjx34OqjEwsBS794i05hBc/97ibbOlyP52oE5uxRRWbuLfi6/2gvP66DZmRsFcWf3eiKFOlRNeI5hM7wgMVIDJ4QF+CUCemoa5dhuSPJ5NrEK7tX7PSkaG0m94LHpSf3sk7wQLVAJFZUM5zfE/MN2KeGipaRzATqRbLLPe+npcfbOhz6kUP4l5ewZq+irM3O7zfsmE8m7rTSwNPNQdaG71KA4UdnLFXfg8im1lVBRlC77EGdMY+gCqQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siliconsignals.io; Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) by MA0P287MB0017.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:5c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar 2026 11:48:57 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%6]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026 11:48:57 +0000 From: Tarang Raval To: Sakari Ailus Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Vladimir Zapolskiy , Mehdi Djait , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 15/15] media: i2c: os05b10: fix negative hblank calculation Date: Wed, 25 Mar 2026 17:14:01 +0530 Message-Id: <20260325114404.95188-16-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260325114404.95188-1-tarang.raval@siliconsignals.io> References: <20260325114404.95188-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN2P287CA0008.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::13) To PN3P287MB1829.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:199::7) 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: PN3P287MB1829:EE_|MA0P287MB0017:EE_ X-MS-Office365-Filtering-Correlation-Id: a470a12a-dac6-4a32-c4b7-08de8a647f6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|52116014|366016|38350700014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: zD6JUU0aeqZM8jQIw8YmSFOl1gLeoU5MLzN+pgkvGSdHCmEkdS7s5hG3VVQUOigtSTEgsz4PVx0xxSoklOlTDR/DxLYiJetUk5c0vjodBusBhdzuWFE8y9GEK4L6AREPqeH9wqQjjexn3B0TP8FR2hee4okG9IUh5j2TEHvY3aq5trx8RmjbmxZR8dq8Ye9mWJkRme2iXjWN3eJiRhLkV/gkGM+4uL0yXQWFJ7f3mbjYc4IZ5HfJmIMZvx87ODRvQuGVoRE4tEvL/l/0h3aMkhFq5gYyNw8N6w1RhcqeP0+HmMUS/QqfYL6K7HoZnzQFErUK1B22xju+hbKSv/Pn3fXrEyJR9GK8C4p8B6fmLxD8iW8vq7vRxXm07fnvcoeD9/WvyWjCqvUedCrOA5qbVXnc1IZ3lnf15vG0D51FvZGvQbH09+g2hrAF35QTNITK/dndi5lV+TNrpVqjRWDEWIkTXECUknAD6SPdZwWEJeco3B1rahwSLE3FesR25r9SEag+huHFVN7ZZVAYLoiXxh6jXcCGV1vRx0pEdVUr9ZOh/QM83WzGhb8HiNesDF7JNuHxR/ucXYpcXj44W2vp2+2s2bq1BNVqRXvUTA55iNzEjpxWWFOIvPpSwVvVlXp1zYVxHlARD7Peal+DRjkcQizPppPD7o2QgWMQ8vHOmFpt52v2iFiVx0tzRpcfrbfwr5EpjXKPQjjF6R+YIrr2nR+1KGNanJKUUcYX0HsTBClN90xVRs+BrDZU/vyeVyQbqAX4bxE3ccCsKmG2tuxVKi2tjIajfcIWV+JMHQWqPhU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PN3P287MB1829.INDP287.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(52116014)(366016)(38350700014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?C43XifZ9u6vV0FvBSuyRDwqskNQQ0wn5IoB1/6RmZqTYOEXCXUsS0dlrA5rG?= =?us-ascii?Q?Av0TCO5ZzGDqWOPuRmpfAFgkNYlwKg87cNOIMjw3yKk6j2YF8cxNn8C6teex?= =?us-ascii?Q?uzobKb1BfHoM4n/28e55fHVGoHbhd9v0R2ZhVDSMwwgcXSpnxpHzrCihaU7I?= =?us-ascii?Q?5LY8dNAZGRYXFSdAnOieEBop3rq4Bus/UH27bEibt/m/SvcgUB9fEvYCN/EV?= =?us-ascii?Q?juiYC0wJ6P689QzML3lFPW0lfXc5o9vc8q7HCASuolebZtpPtIp/oXIPgFJB?= =?us-ascii?Q?yRXq3vW38aIMcVdUKuL67sO2fYhW7iesvTrcddfmoISsnVeDxL9pmzpXKGYs?= =?us-ascii?Q?EEDVspQR9lxBr50TDT3x+PHRaaiXoyDQ+3qWFcstYmu8N8VOmjMgQ21pYLR6?= =?us-ascii?Q?W9Ge7qO6EBODZgv9MJ7rm6TRx3GQUeEQUnt4RlKpDuF2BQuLRJOQj/CL6Ufj?= =?us-ascii?Q?wpYTvOiCgq6R95qemAdH60KHH7PGBT0DBx/klK8Rb2aFVkjMcKFKRD6RVGsO?= =?us-ascii?Q?+bs8Goy0rQS2iNr+7R6kUPLpa52s27bg1OMUPlNUNczxQoFCInB+7S+dJnqy?= =?us-ascii?Q?2qf6QKD4CX0imP+S7L7g8wwSNdBJySP55QkLrQq/7cOVIBctyI1j2Z5/Tq3l?= =?us-ascii?Q?gN/wTvr35N7o1FAoX/XnM5E7gTsElk14Rjm+NXm6SRnvnHcdt4AqfRUSD0SK?= =?us-ascii?Q?LwPMAxwGEFwPBIC3eR3EbQcgjrYEX2cYY0uCJrPVF/JDX6P6p0S8D0GlTUi/?= =?us-ascii?Q?TJ3X6e73FFkqLRptsPt0VQJRGjWlF6krlw4msE/H+RCLK6mkDaBfDZLloRWE?= =?us-ascii?Q?Ar8YCZIATUo0717ryfA6Xnj3lhv7ai1sAK8riweOHKi4/vIjqHn0ZkRCOgPk?= =?us-ascii?Q?s5WctL580AAo38a31W7dFtNTjEShXiQvP6ZcLJLRS0QEwLZK6fXoGr5PB/OJ?= =?us-ascii?Q?nJVjBPRPd4xhkNUYfQDS63AaiqI4DVGq0+wxLWefvu3S4UPerwS0sFezVQ2w?= =?us-ascii?Q?h5ZwkxXavzkcsEAPm9TYCUSNlhBkWJTc0omVar6rOia7IAGk8nvOXe2P3VTq?= =?us-ascii?Q?7sEanVUTmNXlc6wqqo3uZ+MNwmXi793kq5LiMYsWVn2odQwvhSdOk6EtzX+9?= =?us-ascii?Q?VfqTMsb7D4qm9g7SU/rH+WHNs3FVqm4QGmfdcpRdZ6FWd/3/0NpM8vmXwefL?= =?us-ascii?Q?dwjahoZ7IYv3i4RRGsXMOILKzjmuVu2q/8DvHusXDEpyRx/qVB8edwU6L6/L?= =?us-ascii?Q?wfSNRF5Sf0n9v/7BxiJY55SfED6Eh4hZcrSYIn38kdZvMQ4PJKqLm2UUEbw1?= =?us-ascii?Q?6bOnp3732/JoFMgo7dGNGJuLPYmzH+o44au9l8uKJIrtQzMDQ5PQqPN1gnia?= =?us-ascii?Q?8bIYrg8EbQRFeWcqloq3Kne8N5x0zRjcXcB2CDyyOcfCQtOfXPy5LaVK6VFe?= =?us-ascii?Q?Jo+yxWokBG00q4WyfDTm5zkkd6a5WabnJrYgH4UUeOeDlWdfloEqEY/kXjwO?= =?us-ascii?Q?aIHKiZ2Gvw7mVaSvyP1bDaJbacw/ewlmSn0UZjz6fgeUE4dvJ8ErfzxrhcqU?= =?us-ascii?Q?GOJQZZ4bLug11tlQ5nvjrVm6Ql6wru7C2n2pCPUcwfMtcj5c3w61Tsln5iR9?= =?us-ascii?Q?7+oOTp4W7yyTkqDn464YGT2pzCsF9TnWZYLagNWnhza7vdtPFVGPkDBhxu2X?= =?us-ascii?Q?OIt3VemeWYHnKVypXfUu9eizlwd9wnMZHOk3V8D1SQFBMsCGMQr+vCbjplCb?= =?us-ascii?Q?7ldySMcu8fczO/NmtHLFHMafq0T4DBE=3D?= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: a470a12a-dac6-4a32-c4b7-08de8a647f6d X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2026 11:48:57.6984 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7ec5089e-a433-4bd1-a638-82ee62e21d37 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YZqgaR2XX/y90rBr2kNZu+QOiA89clept3sDq9O27qLhE3PpRzcrEOEgP6AYKPO8RMDwUm7l/p2kK5oEDy1JARrbPHJwYlerDQVfXHKBsuI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MA0P287MB0017 Content-Type: text/plain; charset="utf-8" Using HTS directly in the hblank calculation results in a negative value, such as 2592x1944 with HTS set to 1744. Scale HTS by 2 before subtracting the active width so that hblank is derived correctly. The datasheet describes 0x380c/0x380d as HTS, but does not document the exact unit used for this value. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index bdfd203bf672..8acb4d76c90f 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -877,7 +877,16 @@ static int os05b10_set_framing_limits(struct os05b10 *= os05b10, if (ret) return ret; =20 - hblank =3D mode->hts - mode->width; + /* + * Using HTS directly results in a negative hblank. + * (e.g. 2592x1944 with HTS =3D 1744). Doubling HTS produces a valid + * horizontal blanking value. + * + * The datasheet defines HTS (0x380c/0x380d) as total horizontal + * timing size, but does not specify the unit (whether it is + * in pixel clocks or requires scaling). + */ + hblank =3D mode->hts * 2 - mode->width; ret =3D __v4l2_ctrl_modify_range(os05b10->hblank, hblank, hblank, 1, hblank); if (ret) --=20 2.34.1