From nobody Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020098.outbound.protection.outlook.com [52.101.225.98]) (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 208D236D4E1; Sat, 18 Jul 2026 20:09:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.98 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405390; cv=fail; b=WJgn3xrhN7A268jxbiEr4G1Kp8bus67T3PdhBH9KJvnRrqFuJ24MwcNjGHNGy9+2d+AU2NesS6lfGSaGSgDpeSxcZTbtkP2z9UtriYpeOZ53QYdO+FVC5UpeYXKe5+QDDBy6mM16welyeTPdNzjXoAJPK2g2E5OHHUhZNTKQcTg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405390; c=relaxed/simple; bh=g3Uy0ndykGe9VoH1vrHeui+fFWLFsfjDExLFM/UxQpk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=dFJCJxujChHekAdnywinWt5lrcgdOCMYWBbfnjOocEYi1wrI6xZ5z+0rGrRkvzODY8dLVp1c4Hg1G3671r4z/SPJbmr57r+J73NTfDlhnUI17Nk1f2I+W2w1Hj55efzEekIU1xPandGTs0kqCG833KK6JtTPtgUBsGV8D4zZFkM= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=GykSLOBa reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.98 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="GykSLOBa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wg3OykdvQgvtTyYrO+evEdJfbbeo3yNp7+xmH0v6FxggMkbyV2bE5PRUhXt/ArudiS/qPWtHzr2hTYTKAOCU2Llw+tgu/TA67sFgz81Wj0w1FUOHdSKTfNc02oZ1HZoK9pDdFM7cT80qLq4vqF6FNk9jrv+hPOUTSgc355rtntdX3RVMaN+CTKTQ5FjjhaREo3vwpsltKsWuEsF6Z/OuiDRSTC1efW8gDm8cHqLqOsRdNFgbIy1AB6E7yrRWP+skXudOHn1dr2j8Z+Ar5tWl+aYHzzgBBFPAQ/GATasvQvZTYKW5Ux+Z/EW0zRWuwApAKbZ3AaF++inRCuKwyQvU9A== 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=MLpq8g7CRlQ9oZV9Och3/8B49QDOschsCqGjxTC5ylI=; b=ZZdrBAYSdT/FAG7ntMpIzAsxZ3DMVjJSUUS0E+AaGcPop/ffQEO4ozf7AS87Fjb/l8lmZ7w8h3I0GKNuKahr76mAmQxOp4XsmetCSnhzTUxzmJiJn09wlitTJCezbV4/cg2N7ca+auQNNnQZ5MX6ohCXDk5zaENFSm0qMu2ZZ/QCGuQBPen+GsfGmhhaCq+L037/z7lxdUwz0C4vbKMQBeH81YYWqgCmtOkMO97fDKCQKDBLx7+vzdTxTyKaKB/qKCz+Dfgsi/TXyWb7JZpi+o7YU7hzKK/azcqijDED/JZBAJ0JuhTq0LC2wEzju4DUVaz6HG/PVWrXIwIiZPudUQ== 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=MLpq8g7CRlQ9oZV9Och3/8B49QDOschsCqGjxTC5ylI=; b=GykSLOBaVPV2tqIaIXb+aGNgdnFZjoVu6QESCbQ6oqLYuiZmykARJnr1A+4Z2zeFjY+q/2uHPD0Dr/HWKtUkfl47aPtGz/QGcgh4jQSJ+v3o9MEp/4VdsBwYjS6Ey5DIYgmSuo2rVyAG/nG7Cvu+rOdRvdadPGV/lDPdOO3m3NmrAaDq5cK6Ewiaqhm8ItRDIMsqng9e8Kj1IY2yBYFSLAsOXC0S2GyNLhczwioaSIHhMEZpe0xjdrw/B0GbDmH8JJffPNdos9jVZmKHuNEfpJhRTdT6HvNMOI3tbudtRmiesar/0+SBQDB4HK0wXI1WZe1qlujFsyCii5B75Nv5Dg== 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 PN2P287MB1343.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.15; Sat, 18 Jul 2026 20:09:45 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:09:45 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 01/17] media: i2c: os05b10: Use pm_runtime_get_if_active() when applying controls Date: Sun, 19 Jul 2026 01:38:52 +0530 Message-Id: <20260718200912.16001-2-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB1343:EE_ X-MS-Office365-Filtering-Correlation-Id: 50e9893e-0c30-4485-9112-08dee50882ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|23010399003|376014|52116014|22082099003|18002099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: NJX3d6CSEDLn7aVEKMIwLCZKBw5JsEYzINWzfhGON5SXJCh5lzl1fAW0bQ5HiOa6psM7P2UZ7npwpjKLjxV4yrwo4uxmcHJPQY/gb2AVpPTsFzbgu4FkAyVu9O6QwFuYff/LtfdzHdenIzAOUG1s2ggTr+ZYu4Amv7Vo+nbOq//RG0NxAD1DEItROYMoLDQBxY8qAwkHqj50znyqTtLRQR3kcXrIZnSPefUlEJhdHyQ7lEdjQKkApknLQ29vj4fCYV4Fo02TADa5PECCp0eW5M/4qAx3kE5c3msWgLo2dQ451euxvwHXDg68O778UCsoro5YSNzPfGBY6HqaeyUMSu9bjRk/snu9Tx6IjiFbcHN+qWIhn1fzD4Gipj4yDkmye9kH5ON187r9l42kewlK4cmOaYI311bCxRsM/ZVmq7NI2K8K5OvuJDMmUPhlgD4KqNeWnJvQoEPt1fTByVhABmyhA4RMR9741rV6hQwFqCYweKoZnK/EiQ2n2oV4qT3pctJuKrOW0aH7KTv5xDxzxCrcIylVjOfHEUN/cZWV3YQk/Q1vJWp9uLk4ZOoEdvfjBUOsoLfyA8AgOgwXUrIMklmd3kIm+EzK62f4i/Y8EBcOIyprySi/h0DfMQ9nkv5DQlfHH7ZAKoW69ASap1IMH0POXBvwdPNY0G2d0JHzegg= 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)(366016)(1800799024)(10070799003)(23010399003)(376014)(52116014)(22082099003)(18002099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fWWkRWXQK0bcljeJbtJCwz79/R3kdhwqqz9/fjsPbElXrQhWh8Ymzol5D9Ai?= =?us-ascii?Q?zesejjAFp9qxOuConT+8y9yHY+nWsnlBTyYrcqhUrLzE7q69pIKCOQzGqhC2?= =?us-ascii?Q?Zzw9W3oyiDUReakBfcvsbblaIjR3RvGFF/oYWAy9I6I+r7smMYjT3FJZDBMC?= =?us-ascii?Q?JgjspD7zM9B8afCKFPL/5cCGsqG6hhSgNWTlkenrpxK7pM84JhiG5Isn6tTO?= =?us-ascii?Q?6RzD5jkFX7w135oDqOF5VEkao6X5Tp7Ibvosu6CB+fFz0d6mIiXRSG+lUf2j?= =?us-ascii?Q?+x6ZyB1w2J0oE3oBcOK0yTlWqpw9Ij/uGEBBh6v/G3iJege9q7k9Wxj+lF2A?= =?us-ascii?Q?GfpMZgX6um9t7/EXrmHf3wdDLzEG/AMn1wacX5dhOsnsAUNmCcaJYpYKmBmG?= =?us-ascii?Q?FoiIc3FhOcyQHyZcheRxhAWE3ILRiKDU1zLwVVGmVbOrWHpXxhyHKWKLePT5?= =?us-ascii?Q?RJYIz1awFlwyUbV/He0jSVb5X+wbF7l8Adf02xn6hdn17lZyRvBogf2ZA4FY?= =?us-ascii?Q?4Q/u97YaHNB8heLpCFP4vC9q6BA341RxrBjlK5n6VQ2ireRE2FXlWrHdBhkP?= =?us-ascii?Q?UgFvxK8qDDO9QexyYh3U+6k5/fHkamYe09iHkSjp2pHjuxe/QSRk2DaeRvcY?= =?us-ascii?Q?A/xtg4yWHDQDGK3v4vhQya+dZ4oNNptL4KR9ZRPd1TT8tt2dBPRshjiguh95?= =?us-ascii?Q?WSBwDIG9ArkEPKSiEyMNS4Qzv5mRhuGPcg4GSasQSt9BNlycmNh+5DVnPClb?= =?us-ascii?Q?I4I2AWHX6Khj19p5+mwSilIjULLTMdXn5ePtS+H5ZRQQtX0hMzHvdCifcK62?= =?us-ascii?Q?kRs7n0juvMn6MAncz9i8936YvycnOh7MhUJaB+xVBuCj82H4kw2HdYl1MaQg?= =?us-ascii?Q?CMIEG+LZNAR9styLtl4CeOAcIlTJwB6Yf7WWK/uptNYGHfI4chf5rMax5Hzk?= =?us-ascii?Q?MFwvWgtrn977ylGsqtB0n/9S7BtQACT1vE9Ym9RbvZvFcWw5Eb+6vVErUV2w?= =?us-ascii?Q?WlXd2PZfz6/HbDbgcCi6ZtFTqLsyw2V0pARwFZ58FIJPz/iPleNHVR4T07LH?= =?us-ascii?Q?M1qfU1LdTLBBuoxpZxYFa7UuVdODDhcmFET2GANuRGg52ort/8p9jDyxHRfK?= =?us-ascii?Q?zPlY9jD2wFDFthLmXaRm0L8NAfB0hCVI1ESg1vQTAlCFPmwdr/ZNt9o/pOHZ?= =?us-ascii?Q?ksp2W9xP/M2K/rDH/qjqfcWb6sAqzb5tP5vxZdTk+UJ6rChkGL0KSJ0zAH09?= =?us-ascii?Q?AuWRivDgUoPN27TrFwdFFNIv26UcKaK7Rs0TJr7kZPF64E4APahil/LdTiUe?= =?us-ascii?Q?SK7OJ6FKljWIfcF82CLMHRZSu/imuA68axENRiH/phTMFm8U9dUpF/+c00qJ?= =?us-ascii?Q?K5CybIGE1qo/v6A8rn5EZU49DCObPH8K9Yul7XFfyqRbHkje0DDP9sSrM84Y?= =?us-ascii?Q?pslH89fBDyZo72FHTDD3diyKbCKCuxDrpppiSDStp0BcRBfxI6GmkrhZqrRl?= =?us-ascii?Q?L7p33nC1Fe8vgB4BX0FbrvbbXy8Lo6Rk5Emr4S5Rv0ap3lotC6MrUG4MkPlY?= =?us-ascii?Q?CK/GCoQHVHWNfSg+JTxKrne+iCBTuYjGUSo8m02CJY3TlDC5cOD82Q8CyS9A?= =?us-ascii?Q?/mYHvmYnOLFYsFdOgwEsw6HcQlWBCKUAZ85yG38JX9IP5mgONd4jqPDdvO/0?= =?us-ascii?Q?A1SEUH1zumYdgmpayeDEFrLBr2ArDeZdks/lrYFjRI4A9iibnKpV8V+JCV5r?= =?us-ascii?Q?dSF4BRQyiUsB0f8TvD7juJPiQddXRSt3NlkmHeNJKk9rNboAMiNvnDjXklTB?= X-MS-Exchange-AntiSpam-MessageData-1: qmPVEFfOEP8P0RnHlFKsb8xY6aqaBocSwDw= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 50e9893e-0c30-4485-9112-08dee50882ac X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:09:45.1043 (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: XkDoLKTC+qAQ50UQdNkg6/pZt/ZcB2QO3lyZirMEX3MN3zjOcHHcQ3gZ0B6mkbZlBvMlRYWaZtlpbzMTSHgJGbjeHyBrMkLZmF6klFrVbiY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB1343 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. Use pm_runtime_get_if_active() instead so controls are applied whenever the device is runtime-active, regardless of the current usage count. Signed-off-by: Tarang Raval Reviewed-by: Mehdi Djait --- 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..3e0440220c07 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)) return 0; =20 switch (ctrl->id) { --=20 2.34.1 From nobody Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020097.outbound.protection.outlook.com [52.101.225.97]) (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 ECB4F35E923; Sat, 18 Jul 2026 20:09:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.97 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405397; cv=fail; b=BRwVnK9gc1DG/avkdXSyDdDpcr3HsvBfV30ABiEVAhsUfouC70zHNQqKbUuckHnbB3VrGyRA7RdeTBLpQ9Q9XZA+9uwlz/eyqU+nFGyLXxiZZAAOsskYQ0/zff4RDbI0l/r2ayCqQ3hwTcgm3h4mFcPT+iST8PDm1uJQtF2+E2U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405397; c=relaxed/simple; bh=SXoFkxLLQk6HIVYO9veUxT9HrP9cGooE/H8rHRI4meY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=h5Oedy1E71QHx8h08Z9dFxISx/dUm/9EwI2z9JQAJYux20B/J9m+ArKgFRafYiDqMeXNMVJLqDUfG48aTbv0s5nb1JIAa7VlLVwLmjo4r8PbdfqGv1ho3B24Is+02cCCY69rKa8rh/WwAoRzl976zaV/Yn8n3S/qrM+tQ7f2UNE= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=RIT/K7aT reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.97 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="RIT/K7aT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gkrLjuEYx1OzEh5jgm7dfn4O92umF3ct8q0aVMkIvNmbjWoA5PoJ8xqtQ/vbx+BnSFiAlU5VyQKiGj0MSvinQyfKjbOEL6I8QxBoQOUy7O9mxnUvkAvlY8AUMzm9OUvkRGGd1dvz4/91GGiVSQ7Ed5xMqvy/zfOzJ5Nfr/sF1KD5var1KSvnoPMUbmWuO5ImxklY9GZO0f07sZjfllNlXF4ZPZ6zExuNR6d3NOhKLnn9McEkVjRZiSR0Ti7iYOM1L9ZAd+IOebST3saon8HUcYEwxbXIKMztaW7S0FfExKOTkXeh1waedbtPRLPXBqvPm8O30A+05+/n7Uf6yChcVQ== 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=r9bDRWzcIdwXL7DQbAFtsTEcGNurp130vgj2aNgSAA0=; b=XfGGK4bNeT+1S1O4DH32kG1PpvO5TS55hU8ddoEvrm2/Fo04ryfg2RHNpinP8Is+dAMEYDWo8SKIheiCyqQ9GF+TMbsiC1r5RhBTfOQ/QpOwESMtDAPYsAodiOuKE8E2GluROn7JMgmtNEfbQhpXMd+aQ+wmQsHH6/DkFdjPsrlMP55FmtYf69Fm32R1uU53rfvLyfMFOMHj35OixQkvW2J3zjUMMWR6ecUy0XhrERrEiX33ErbZCbcXWMyOLIfHIRknwHSZPhe5INd1NEFcJFenJJVeMybFz9lsP7/apRnp1UAzy0w0QCDroEpBaLZydfMuuXfMUDM97KSIdsG2fw== 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=r9bDRWzcIdwXL7DQbAFtsTEcGNurp130vgj2aNgSAA0=; b=RIT/K7aT4aDbK9YawHWORspDSOaCjlU1ONBk+X5sMr/IR7DdgM8cU08GshGo0PRop3Wtd4Sm3+VqmbvSHsDvJymqZ1MsDnhOtU/2TNM0hGlM1DC+d/EZifkRDPqqGiZZbquY561dOnjsWAVQrRynJmOoxZuhRCS32xd/NR8m5Emu1KhhRbLn6rVER5qeX6zwbMa8bWMdUrESMfsuG25pnG+JYoqOY2hIZLyflT7SIb8Rr6bpa7fude2fhbP98tIiC46jOHT0wdxj5RZqlcvLwGPO67Mq+nB4WRIa8ofSZ97TbNWOQ8P4FrPPripX6C7BiEEz6rMe7pkCZmgbyty9gQ== 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 PN2P287MB1343.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.15; Sat, 18 Jul 2026 20:09:53 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:09:52 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 02/17] media: i2c: os05b10: drop unused group-hold programming Date: Sun, 19 Jul 2026 01:38:53 +0530 Message-Id: <20260718200912.16001-3-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB1343:EE_ X-MS-Office365-Filtering-Correlation-Id: 76e8b678-ae8a-4d71-ace8-08dee5088767 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|23010399003|376014|52116014|22082099003|18002099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: ibTL2G6TFNNts9H16Jeq8xApjVIyYcxlL2nAZkIr70+FDB3hyL7xFSl1tbFMSMnBTNprrrm4p3m5ZqMJZKRkWjteGrUSnJW595VvNWt4fGXNIVugl/SeDjTyZ+K8at2TslsbIrVawfVBycXtweUX16CBXTuIzl3C+e4lElkO14x+uJyWdnrNHskCWycrNFAeWGvWCDte6zXfc1Tc64veX5UxMEGnpnr4rQOwkACJBTKDXyrj0qG4xhPu5rG5WqidrNfq5a0go6N0e0IJdSl2VZCTWbld1G4P19smjqNmWW9vrniSwkO+xU6Pklyw7guLYqmO1mHP4ov+RZs0EZ2kSM6N6GawgEfpVvtzoK+H4P0a0IOsc0uGrzH5qefhIyvcCoHFXLmf5J2PkvzBalfQzIjeSunKuyjhQrhXs8rSyQB1sveq7GqwYjH13kRSc+7D/eVYahEQ+GxNyy8bvfaxjI0XaB/XRF3UF7upYXKJfWFcH+J4ljbz0S5MX/7ZEJVNK+08CpCxaCqICPc5ztZKc4RjzfOCrOXbb0UvePMd5/ydj8pSTSnXV7kreYtwFmRwFr8BrtWJUhYRvAEJrPjDUzxCKye5pxvLFOf4EWsa+QiVQk5ztmO/fTjex0pyKuy/sB4ynECTrObAf38Cmdd48hzdGr6oDkcfr/pOj4l83I0= 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)(366016)(1800799024)(10070799003)(23010399003)(376014)(52116014)(22082099003)(18002099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XWi/Pz1K+W1nwYIUjik15Pe5HWsK11axFeohHXK+I66icUKImhgrdIdyECfP?= =?us-ascii?Q?YGXEt9gpxpVJY3Rd3WKTL7SJZZ0qrsGxueD7TeXSc6hNMak4c6/9xHKMcLjp?= =?us-ascii?Q?uzJZbikpKcuOCGY91mKkH/iYZAHmNnVPaANPdiqXrUBwFkqawegThBk1ydIL?= =?us-ascii?Q?JdP7FRZ2SiKs6rwJsFyNZrc9zYsDgCNfzsfqKpn24s4Unyvo2DCzl+jTsl4+?= =?us-ascii?Q?+QVj7RRbxwod2X9X2mNG9ow2e4YR4yS5Gx9mVORUV80f8GH2bwa+iXCkHsKS?= =?us-ascii?Q?WLx1W93QrfHxld+U7Yq6QBFj14JJqY4v0y4q8qPq5xoZOVa88wDZy4hJNSHO?= =?us-ascii?Q?L94WYfAVgbS1SBQ1FphewBTKDE6e3s3GTH5nRLapYoPX9lP2IT6CJ1XTFHgK?= =?us-ascii?Q?+Dr/GjesjObnwtnwW9O62TC//o24CbapFmCQQx7AS+aAzlgdEGcmrMBzZOX4?= =?us-ascii?Q?Y+K+CrWy/3WCSvfe13MEsz28pVxuVXChRaQRDaOVSmhLOxxJVJxmcS2qd2Au?= =?us-ascii?Q?9Q3FMWaJZxSmSFv4kMe/BXRAtLQAexvlNZs1TscWCdqxhi9SKj2T75djWRBj?= =?us-ascii?Q?TLSZhW4YN4seNZxXCvDnYA0KQPc1PCKX33Bbx1+FsegXHA2kNsfvTPe+NKt6?= =?us-ascii?Q?d53pWAifVXB7HDS6zVqZC35efJ5VYVPrnjTM0hXcISTQ9F832ceVqi7Y0Piy?= =?us-ascii?Q?SG+8EtMEy8loL/QlzdAYC+Q4wigEClqUk9Y8DofF/AGOaRnYHDzYAjySciXq?= =?us-ascii?Q?7vlwNrQIbGtTUXCQlly3qTZjLxWwlNZABn6n7PzvWSOwZT8NqtaHjttw/UFL?= =?us-ascii?Q?CrNKx/CcJNiHUV70JxU3WMs4SljaUxQJ2H0fWdfBkjoB9ABORX6yoshhZ6Cl?= =?us-ascii?Q?C0NRZa8MZWda43uejEsPNEZLTWMfhsCw/55xqMQzpQlS7NBQSlac61mXH753?= =?us-ascii?Q?T7ZP7+RJ5kkXT7Fz6E13h6/1+z6KTolKl8sHYD/23QC922un0GOGFKz49qRD?= =?us-ascii?Q?Yd1w4P0waiLbtvPvxSaO43tr8GntyRL0mWVzI4vVQFy2eaRvzWijHmEcpaIp?= =?us-ascii?Q?A5OFmSp7ffjIgEXzwz/97/HX4zyD1av08A6JwOh+ROVyk78sF1J3sIFdPFnW?= =?us-ascii?Q?rEZoJ/iFw5y+l7Mg9e0oxC9LEcEWBwBYzPlowu/WH8dMlvqDdfeVkpa01e7C?= =?us-ascii?Q?3BVD5QfV2zquKXHkVrZLzxzgGz6By89/+W7Yn4kT5t3QqcubfJLleAMVoYLc?= =?us-ascii?Q?imjLmcL3uiv1Y3Q6PGXvBCsErVOAxc6bca13pavNvksiBCZ0A9hsYT2JoqYG?= =?us-ascii?Q?7jn5+rZMOe5HltGSEMrTil6UFnYuaS6iEqfO99OqxKTZmZ9V/RjEj6ULVcVL?= =?us-ascii?Q?C0qxfNCwnjmKXAknTrSerlx09iqSl50g6E9PUd82aKrj6ifseg8zLZFk4lJX?= =?us-ascii?Q?iUAtdn8Y/Nf68ijWB18QM1OUlY4kPINnp+dXTTe5XhYX6pWpXmBnM87OtbFv?= =?us-ascii?Q?VOzyorq9KJetBnzdqIw2W/3ZALGcGTyTW/WzQcN6Iryf765+akAUoqoByLMs?= =?us-ascii?Q?tzV1EJxhw/LACbGHVVm0mQN6zUCBgftCKyrd1RMVupnhAyjpyae28C9PgSGt?= =?us-ascii?Q?NmBScoXKNFxA+e+L9pL4lAQ4443pPzqvI5dOD3xBKAHQY2L/+3XuZWxjO5PN?= =?us-ascii?Q?XI6dy5kTekrcQ04H0QLYrcT0zSxsaz9RuQOxonv56zPs4ZWV37g/2Fuxe1ke?= =?us-ascii?Q?hC+yDiWwBCQBeQWeMawVpa4w3xY3ExuppB1I9j+3vYOTuAbE100RflgIZnXy?= X-MS-Exchange-AntiSpam-MessageData-1: JJGe3WSJPlkuKV0KTI17Zpf4ptKUJik1NDI= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 76e8b678-ae8a-4d71-ace8-08dee5088767 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:09:52.9312 (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: BdhiGcA3qaL21R5x8hzWFUaAOtR0nL9zohOpx34MWHscZh/jGkKL2+9aEj++pa6I2CIi0CeJ1roVP/N/STM0mfUYQ1PjYe5oZkKsXzpJ2R0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB1343 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 Reviewed-by: Mehdi Djait --- 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 3e0440220c07..84621370d1da 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 Sat Jul 25 04:19:34 2026 Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazon11020101.outbound.protection.outlook.com [52.101.227.101]) (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 0239F35E923; Sat, 18 Jul 2026 20:10:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.227.101 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405405; cv=fail; b=lfGKA2LZk915sv63PwJzFpC9UHF8e19pXqwGgsHV1Rekbj4C9pn1yEAT9AICtH1Qd7/b9hWeVyGiGwDDKrKx5wmxnbx4w66MhQ2g9JrQZhLH85XiI9YeDRpMlUXW/x1X6Hw1Tj/+F2rwo34w3PRGe9qdR5lmt6pZZRy0IccYMhg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405405; c=relaxed/simple; bh=TpDvPAkqCvmr21oJgP1tuH/u02yTVNQv2hxDOv1+Kak=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=GO9QCgAhoKLV2Ax3r5SFpxT9FjxBJ1OtYEJfi71vYtNcO78/6JZtUSmc2THrh4UsoLMTWDFzKnXFbrhoEbhTZY0lYejGnKAIrLbqy4KFNyFo7Ia1XhmOuTXvWQLtgEEWo9YUM8Zimtdkm3thOrU1R9wCUzuWrxTVYeKhkeLYNUI= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=VFLjMLmD reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.227.101 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="VFLjMLmD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TPzVqRYeCXIaX5iq3aMoPbh0Ptxm3tYOPuU3j/JdkNZHQLCrWWaM5ay2X6IOdbcWGqLgQ8CyDUQAnfPopW18P7+fmNKs6cbFYXLJsaEtc27H/4rM10505rIotXzn+dxdFjGsIRCn/EnAow50cx5sPvRT0VJBhK7Utzbpqh8W2R7S/c6RGnvGP0zxAX6k5DyzyzuoG/GF3K8VbH4ULM20zmPO4bauSi5GNIH673zEAvMOFJ1viQZHDLMRsN0h3jfB2bMIH7i3P3dcpWc9TEb3YyA5KCqPNXvEYP20RVcSAy5/uvJHRuSm1pQqSQPGB77AiIxLGg8uW91cdTik5xwfyg== 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=XejteLcS0LsvZEvhM3MXo/pQwgT3qCcdx5mO3Xjlk8M=; b=FoRUT8/ThYG/yMbwcR+BltXEPOXyeth5b2zAmLGjfzFgHANp4djAGMg/X+9eL4HydSwg9jFS3NMhibeSGXR1nfTG+MjzYO7UcTeq5hmDw03FoPXgISL4opDak91aV2ykelI21t8BLgJPF3CJnFtb96IRuX8R8LrPuPiX3YYvEg0COU2nKTfwwtEcCeQEs96K5shxD+kaGU0G3Yn/sOP4EcnxbGHejCuh77ZQZbFS2lJiJxSw4mtC7VF4Z8v2bTSCqErseEP6K7Vz3Nx8iLQb7sU+zmlbrpPa4o5OLKx1HLyQBJgrZzWxDrLqmZi33etKnQSkgxolieVNsC27Phf+Hg== 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=XejteLcS0LsvZEvhM3MXo/pQwgT3qCcdx5mO3Xjlk8M=; b=VFLjMLmDoVHO85R+TPWPQXBHAQ5ANi1tTH6+QV1ghTh4urQHcWJSABT2E8OtZsjn6NgQXu5JvZ267zN0lwuXLWkJKclGdty+057qrVn9VrBa0Y1TZyLZvPOOGZuqkfDr/1I1nu/hAYdveqRj0kE68jChGslXPXgg6HHuKZRemc8OF+vG1zu5l7AO1xupgm7waQStuRfiLq0DQJAmqQbykANDd7/NoZ6Iu8uKRo5Xj610Gz70zRA1krzP33C6keZhv5FOrjCGzqhURa9fJwkUxmND2ylr0e0xxh3ndOxQMYtM2DbUoA9oy9oQ2LKpWFRLz/Z2+eQGPLfqmpS9BkrI4A== 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 PN2P287MB1343.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.15; Sat, 18 Jul 2026 20:10:00 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:00 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 03/17] media: i2c: os05b10: add register definitions and use them in init table Date: Sun, 19 Jul 2026 01:38:54 +0530 Message-Id: <20260718200912.16001-4-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB1343:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ca34436-fdf9-402e-73ff-08dee5088bf4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|23010399003|376014|52116014|22082099003|18002099003|3023799007|10067099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: UpwuXFvaL5DNHYGvdtC5T3T2kZs+RAgZqwyv1XGt2GnqNGnCl2NEKce7n1yYKxyFKPLwMUPJG6yT5w6hx6HQ1yrQkmrl9YfDksojinmaLdgLNr38rCxthsdxP8wvu63NUe1sAML9WeyT66Fjs2DSaKeuOXebIdlNKiywJvcVzS5g9jrRgLeAe8vOuI5Oz/C2MCHGlCtJ+iI7wL5iMQe8lIgzWPPUMQxuGSyxhhtTt/MxAt9u/nbL/cMuN31H3B5jYU20SGuTxg12C91Z2OlzfBQv3v8yWXc+GOTxsqNxPxp36tG0NUBmtCnWXwQcn2Za00JGtqEOHVSMy9AHbTzUg0fXFTn1n3EVcvXXvEzYRiB0g9mdVcynMD0Pzme88W8Q6gBvbKolVmTmv9c3nyWulVretpfqAcB6c1Um09vgMmIIKAi2H+juXjeUsEuM9pMpSGBMh47WRPNZeDdn1cU/DS6kc26g32rgSoJN9R/Fq28H7WOLdeTJtxhx629CreX2Q7WHa1z6vKuhQQWdIxs2NeXni6+AoX8iUtp3ASzHUJk9o6Fu6FhlXeerlvLLsLsniluG1pBD3nJx+lVNCO+itKYHyL/sPbLOllg9jIT70ZwPI4bMqJUDyNVsfes0w/y5cp9y56DOJEDGgHe5ACqut568HQEm9GfOXlF4DI/fvqA= 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)(366016)(1800799024)(10070799003)(23010399003)(376014)(52116014)(22082099003)(18002099003)(3023799007)(10067099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?A5T8SbpVuN8J22VLTbMD++EMHIeydM0PezJRsPMG4BT1ysAJD04qTGi2NfZ1?= =?us-ascii?Q?7SmNrjkPcJ3tyYaQ2y0CEHDpVdanM3B7ZGv3szSfQqlMFyQ7N726alZCQUXT?= =?us-ascii?Q?b2wPBEWcj2+Fg2WpSqymUb0p5flAj315A4zVmJcYEAkH4Md4EjPJHg0oazDK?= =?us-ascii?Q?7lbgjcZaAU3yotaLOmmS0960O5M/R8e9NejYX6s5QEuf8dR9Rt9ufDelWhu3?= =?us-ascii?Q?b1KYVtC2wCB3hOtfcDFMOjXawmfzekBsVggw+GmCLBxqBxpHI/7i924aWUh0?= =?us-ascii?Q?O2Ibih6cRcSBEwv3oURfei0GKyrm0fqoLfJOxFOjz+trP3TYX81TeLwjGodZ?= =?us-ascii?Q?tIS5d3GhA8zDeUquOYFJwN7dOmB9AH9/tw/o9RryXarByCoQC3Q8+DpUUN2n?= =?us-ascii?Q?kkGB+Gc8r864tubLXAZWBV69/nl16JOas3beVuwFzgP/GVCvH1+YJ9qPX9lh?= =?us-ascii?Q?z38o7lN2r4ygndDiEl7M/EasEjmhpJGNJhb5FinHkdklxoIOLVJ6LE6QEqRA?= =?us-ascii?Q?gMPcgY9GTs+l+pdmFd27Fr3lU4VHGznBEy7dvqdC14CGDJKigLS8a2k490iC?= =?us-ascii?Q?E8T8HGZse4m8tbapK9gRzp4dz+o8p8pBMPFft/qrnC8+EskszkX6M2UBQxXM?= =?us-ascii?Q?5cAuRZtthJMLAzKMB4/Z4YxsI106cYOJ3PYVYjO/iZtOksszKLMQKqkN7pGN?= =?us-ascii?Q?94my8cOnkAqw6KukOF/uv/rQEeSguMEFeQik5c++PDeHD+QxyrMZfwfHgWCw?= =?us-ascii?Q?Mk96PeMOaY81Jz1cqeoFpLaP5o+rNq5iJ6jqDSOh8450dcA2g8DOBDFwAqTb?= =?us-ascii?Q?4OfW2uMHCUl6zYuWcVTVcglnDDxEBGbk3tAbF5XrYvXyxf3y0/5R/60G0ldQ?= =?us-ascii?Q?QfxHX92K6vk8PkWJm/NsOfJqyaA6Xi0rn5W6/h8+C94V3EW6RPiLXsGb6ESx?= =?us-ascii?Q?qC605TEeXgJQYGOfwK5J21gEz+MZYSvmrItA3bsVSD+MhqldKu0mZowARkl3?= =?us-ascii?Q?kBR2S1BnWSwLZn8CzJCTXZbDDZoMdf+FWzlPWXW+weHdVLgpCL8l5t5ja2vh?= =?us-ascii?Q?x11jWSJ0Ngk5bMwZQqu1OOXEJA4ppwNLTajcV9TuwgaoDeT3S+mOov+0CMzy?= =?us-ascii?Q?aygA3zGlFnHepgvJZ3pH2RA5owDxKd0G6Mh1tB35rb9FJ9U/x2lOl2xQxXSf?= =?us-ascii?Q?PBsX0Ev5usgmYEsRqC6cK5RUeZlPvyaC3pjF16LR/RZXe2jGUVRlHHNXRLgc?= =?us-ascii?Q?5mm0JKH5EmtJJJqD41+ChEhYKNhdJ/9/5eA8jZ7feJn17ScJa7bhLJDuafRw?= =?us-ascii?Q?Y2g4C4ms/NJ561wohROnFAblEkwO720xS+bRsYwowz0V3I3vUnkZjiUJUbcq?= =?us-ascii?Q?2mgL/kFOoWKN93+WbbYQdQpgDKm9ZAnJ4aQ6WB9H+rQmEgPQGNpHUqnIf0wl?= =?us-ascii?Q?qSdliqkTh3tUxR8GhEbNoKWycWdXedFRZVzfQ4HaT/zFYqSDk3qRovrrWq0k?= =?us-ascii?Q?6yUIDuq7Hbd6eMqB6xdDm3CB5HTe24tZQGnl3GSJJO4oNp1gZfk3Gk+E1+Zq?= =?us-ascii?Q?i3cNTk4sgRCp7j8g5oB5dxHloE/ulkm6eKVBMPnTP9WZsaghRZkkKswzRVtm?= =?us-ascii?Q?39KgKBB/nAGm9LMbsE+n0ybRJP6ckF/X52eNswn7T8W722I94XvYC1vUx4Q2?= =?us-ascii?Q?8F7JelkQgfKy3s5JXmOrvxoP5RCQesK4dh0yn1r2PPU56wzVi8KB3nf5lRpC?= =?us-ascii?Q?CzvAn2g7puXE6whu3WLLrGUS4Oe2TiHo5vGkYuKwtc+p/7NKQCOng19JUUnR?= X-MS-Exchange-AntiSpam-MessageData-1: obQVvO0l0p3mQtfkdPN/4kXcnosh7j/lMBw= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 6ca34436-fdf9-402e-73ff-08dee5088bf4 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:00.6486 (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: Cbr/7H5m/4uPReokswfyGNS6hNbVqamJxYLqhnQOBlbglLIj3wt/QvdpXqwr8hxbdvi80Y+tPDObOEes9NlypPIcm0fncskK3itLetTjifw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB1343 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 Reviewed-by: Mehdi Djait Reviewed-by: Vladimir Zapolskiy --- drivers/media/i2c/os05b10.c | 110 +++++++++++++++++++++++------------- 1 file changed, 70 insertions(+), 40 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 84621370d1da..96395cd7a2ca 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,41 @@ #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 1 +#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_LINK_FREQ_600MHZ (600 * HZ_PER_MHZ) =20 static const struct v4l2_rect os05b10_native_area =3D { @@ -77,30 +121,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, OS05B10_DIGITAL_GAIN_DEFAULT }, + { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, { CCI_REG8(0x3600), 0x4d }, { CCI_REG8(0x3601), 0x08 }, { CCI_REG8(0x3610), 0x87 }, @@ -274,34 +313,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 Sat Jul 25 04:19:34 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021104.outbound.protection.outlook.com [40.107.57.104]) (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 679EF36D4E1; Sat, 18 Jul 2026 20:10:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405414; cv=fail; b=YM/CtpJZj+tsYvPJFmk21ucsx8JGw98IgXs7YCMGY94NfYTneDfr70gkRWh2M1fOp2xKx997SOXaKNyWEfZv4Zz4/89XS5BZtGWa22wyO6C1DLM7lP7dDlXd3c+GgB2344m9yL14PnQ+iraEQoSEkBUR38MRLAEqqRxvy/Qt2xM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405414; c=relaxed/simple; bh=CAdXsa4A7U4Zz1ydmzyBcLEnNbfoOlRFEgjN3PSgYTI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=GjLmUUTxbQf+Y98NuiiOjH4YqL/b9vr/MVtrswvY9grj2Gd8oi2FXT1ZjPlbBnQ+Of0R8gKiZMUKnr0OpGRWJ61XtkO0lPO5fwwAlmqbHUUNdl+c1IvCN6ngDPHsNsGzH9jUzxBtvh1d0i8D/VzQkE95MiO3uh0cXA124BCjt5I= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=LSZTB9X3 reason="key not found in DNS"; arc=fail smtp.client-ip=40.107.57.104 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="LSZTB9X3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wuVweA7UBiTCayEZmXAustZ0BVc2OgxPxxQNZZJnqUXaSO/QdZJaDcaBp7uJcwMruyGx8jzp2cNwXjYxqUi3S5n301QyOx1ZGgK6tlGPlXVcttDN52iu93y3tYKIr+tzT36NGiBkB2fgP78U4Y09d4Dlw3HvAuDRyUyhFXetrkIjMoIW+y8NfhkboU5D6OgoD6BcNBdelnfrtMluvRPp45ZVSpssCmacD14o7c4YjWE5458DgWVT/J5AI+VITk/foSgg851//WXa9pO6Q04sP1IdjhQ7T/0RKB6d05nw/xJyDJr4PG3NRmxZUkIfWK7j1+oJQ6elvbVbhN91z+OEAw== 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=9GO7Ex4g2ZXaBhFTFxAcuBIN/P2fGIB7Z1VRRsjLbJc=; b=xm4/7nxqauwNU/m86cLrIlyN6n0Eew7SylfAe4X6BCWEIr41/uCqXfrOJHPmHaRXNZKGpWwtvY4E7KqdA1F3GMEZizYr2etxjR7qECnfyVNLBmFaI16s/WzUTP9D8jSSK6MnigYH4+dyb/6dyfXFlc8ldsVOmK4GWqFkGNhexTPBS6MxnGU/tN4MQRMOYRK8hBGXbiyaHBxMwjnBmDEtoF8nW5ujWKb6BI8Xhe01vx5D3VLt1FKdsx1lCbOxb3ejSkQhsYy6sbVJ6MQMZ4NL2jQHFKLCIrG2qyduBjGZqpOW2fFrPG2HpEuH75M1EGI3raQ87karwR7k7Q5urqUoJw== 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=9GO7Ex4g2ZXaBhFTFxAcuBIN/P2fGIB7Z1VRRsjLbJc=; b=LSZTB9X39L9fddTBCGxTbk7OwLwLI4LPgYYGCwSN+0m+/cYgVv8dplSSygy7u0PO9ft13txoSlKhvcYH+emnQibNKLWoxt0Xh/u0RaJi/z3qqmXY08yhbz7r02PA4/UrB+2y9owo0A1VAFdxxL0MUAbTmdIIyj+y3zied0ALrdRfAe0MgZ+tWMcuSWc1gkB/imRsp95iYUjWuD6WXP3avbs4m7t0GD+EkCcMgPEooXPI6VUAViiiTZkGMBphm17nhm9WzgQNIeda0Zob9wo2SUeUADTRJKv7N0XKw9sj7Gh5p8pxry4jFNLbHNjUkWmJ2TQqOEfXsbn3OpOERH4Sow== 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 PN2P287MB1343.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.15; Sat, 18 Jul 2026 20:10:08 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:08 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 04/17] media: i2c: os05b10: split common and mode-specific init registers Date: Sun, 19 Jul 2026 01:38:55 +0530 Message-Id: <20260718200912.16001-5-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB1343:EE_ X-MS-Office365-Filtering-Correlation-Id: d5b825a0-5ddc-441f-5e58-08dee50890d5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|23010399003|376014|52116014|22082099003|18002099003|3023799007|10067099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: jPhcD6qVzom/zf3iRS0flDG4BllXbstgSmEj4V9CTW+rksgcZaupKWF71HVrDxcbEyuDPtNagVp6nQtWQJfPtQ2fZFf3cxkJHy+pPhmBGWE19d+7Dcb1q1loG7nYkv9r+b0WRUylkFXCx1iTHH6pmL9SOG6NmB65IHt+44Bo0YtX1DffAk1O9KI83bH8eaDYR2YudjdFIdX1Fq2ReSrlE0GfryopBk4/CG2vzV053c5maerHVdu+Xo6Qf85uPW+pmSImal2xx+8hGsTYUKzudVEoybbcvyRRO19eABwp/PYFrGjdwRPZCBn86AZL7dk5ynTuaPlVlTmSqYdFnd1Uq9FNu2PqZxx2XlPnl0JpqZzH3l9VoC+BWe0Cep0akCuaBKnKs+hWA0GZ8PE8OFf5kC2iwdR70GjvGOmVUKVp2VjlvQUx7n3lSEkFzUSxC3Q7T8rR/sI20uBDa6tU9E1CgF7YZ4f24tu/YlcqBNC0Wv0BMWYvwyed2tsQwmeJ6Btv4vwjRCxQSqLaMrq+K5CuSZ9OPOAzjezACdMQsjcdmqyAY38RR6jMh8Nw5VYX9TxIUn/zWOWe4482qjpDDjQ3w2nM1iVq+/IcYzRr7x2PTyVf9ZqFsMP6sKMHMPdPXRpcSlxl2hAw0N1tUdxJn5zYOPwyHzlsmcCZ0RYtB5CtYy4= 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)(366016)(1800799024)(10070799003)(23010399003)(376014)(52116014)(22082099003)(18002099003)(3023799007)(10067099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?p6IBsoR4X0lH6w0uTssimHHiFzE8w5iZVA7bP2gm4hH1bozzzftq1Xq1PwmE?= =?us-ascii?Q?O+cJMMmzLagn5n/ji7jLPx37heWkl1kNLMb0qZeun52LDOrDFJ67zQ09E3H6?= =?us-ascii?Q?PnYKexTeAeux7i8ynuMZ/Kgfd7fiJ/pb1Hne1K/tpiJ5l9pUJ0a+2rMSLb0c?= =?us-ascii?Q?BYY0EOIKe7tD3pj//PfNKjegTYA0ER0s+qUUEE+Lh0WYF222pfSYd3LMjeWU?= =?us-ascii?Q?KGg0FhE4OPNZVpGElj2BVn4RywDkxQhPqo3eaYnKODhULUqlkJWI/3ZKFIuJ?= =?us-ascii?Q?C701HZ8B/RqZ/W5IobSTXUWJK++GdxHrbWfxoEySrvKgda7a8LoNiMBhc6E+?= =?us-ascii?Q?RuHvXEH/REVSVpCqt98uHffPv29Y34HTyF46MyLR5DPH6vEYO7w18yxO32rB?= =?us-ascii?Q?JYb/NwFb8MOSKynPIwVbb1GoSBghWAw9xTgkrE5qxyWjQNe5kH4/QU6EnAmD?= =?us-ascii?Q?D9jWAJ0TSsYcqTtXn6iXk+s/0SeXn2OOxF+uSewgJ3ySIlD7JN+Eji3ZeOuf?= =?us-ascii?Q?Dyx6xcxLHQ8GxkA4vikpECpdAqm3y+o5QgCjQ00nkZxcXqWniZGu1eT1TB9x?= =?us-ascii?Q?jnBfUF3t0uRm/qqmsTnuVlRpMWzszxGCyjsOdvEev7C3j5BFhqC6cC/71iSA?= =?us-ascii?Q?SAnJJPNnv+EqUsd3KBFtiaaqS8kfsoQvZgOetIgYs+FXdUBGh2HRYpv7t6RE?= =?us-ascii?Q?5aJTx3cs6Vp7pEdt6cPpSRRS+NEC5CgfeWyJKqSSzmLlDWDPTFUHS6raPOuC?= =?us-ascii?Q?YFzesLijAL2mZ+pKxY3NSqHQxKf+RryeRotzft7if2QAT3Bg3t4l742SvP/C?= =?us-ascii?Q?76xLGC7PfqUBewjPZEy2ebPtQUaCrHtSOFLQLqVyUEFrMLl9SujkVCDI0V0P?= =?us-ascii?Q?bsCvPdr50O5jWiFCClgu0QjdkaHDufNb225yGGUjLPpt3IhGGXHqlblHnZjp?= =?us-ascii?Q?8dRZtcRSxHaW4TBKIbubPvo3H74DRrKk8cie0Hyfx/p14t/cee6bdt8fTxpq?= =?us-ascii?Q?mbMK54SB9bZoD2nTDJ8p65d8ZgXDz+FFeg6dh+0vK8PhC9x+1jDk1q2Vfdu6?= =?us-ascii?Q?FQwhuYbUMjbuNJPBZ9XfRf+KMQxE1s8qzWNh4n2OR8lLupOQEBOUbX27vvnp?= =?us-ascii?Q?rwK9dHIRnB54m38drhBcLkZFqhERb+5N2GDVGz5t42kQUt/KXvEsnwLXc+Gg?= =?us-ascii?Q?eISWdvAzauWlJvz8Guvu/nLEY6g6Drp1LU0IK3/H85pE9IZ6WcsD9LEhb9NJ?= =?us-ascii?Q?y24RUy1UQXf487Q2Ji/F7D6AtqAPa4DbQqe1ybI54zvmKbGFxJ53334A7un1?= =?us-ascii?Q?/N8ETV2CiUlkzwBUmiH4k7ZyP9S9w0WJWMqFiJKp86OmlvF4otxAljRx/Em1?= =?us-ascii?Q?qZCkQekRKcfkPy3QRDpgI4MgODClAqx8F0kdXaSJ60A6mMlxYTVSWpjJo6eV?= =?us-ascii?Q?+vjf+Ul4wqi9M9uAEy53doJqu5UglE/ix64YGnR0QvnK6qVF4KnMcw5j6eMc?= =?us-ascii?Q?Qa9SEW0I1BvAZglOdl/LYL8k6wwVtxcTCzKmX+IXmbiUBINYRMx/pxoK47kW?= =?us-ascii?Q?2332li30f5YGenvM6tVE1bJQKXjO6gft0Q7Gyc4KkkhDcqKvswiBtQNRSG11?= =?us-ascii?Q?lqrXD44hYeLTgxAwTnzzeB1dk1PQEFtCzV97fUc/8mlcv2Yfg2VAodByVUEW?= =?us-ascii?Q?v1omO2Lhhz7NeEaRvjCgFD4LFZhwQChIdTgnrnhB4GoeV2E16GquDTBLcnk0?= =?us-ascii?Q?WKucGSUsLcimJHWZvxgY2pfr71+YuY1rM8kdULGPfQjFxlVmyko/f7Ohs/qa?= X-MS-Exchange-AntiSpam-MessageData-1: D5a+LnsCWZrm2dKUia1qWmKlNfvtNVl2xXE= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: d5b825a0-5ddc-441f-5e58-08dee50890d5 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:08.8210 (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: f7UdgVriTn9uSfy0zw9FntsXqxUgauSzIqQc5lT4I+mxSSiMrPib/x4Sbu4dge7ssquux0PIFMmV6hqafnlX+i3D6XfJlxPI8n8FRPME9DE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB1343 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 Reviewed-by: Mehdi Djait Reviewed-by: Vladimir Zapolskiy --- drivers/media/i2c/os05b10.c | 96 ++++++++++++++++++++++++------------- 1 file changed, 63 insertions(+), 33 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 96395cd7a2ca..12c4e2610d6f 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -142,16 +142,13 @@ static const struct cci_reg_sequence os05b10_common_r= egs[] =3D { { 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 }, @@ -235,7 +232,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 }, @@ -244,7 +240,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 }, @@ -290,8 +285,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 }, @@ -300,7 +293,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 }, @@ -313,25 +305,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 }, @@ -341,7 +318,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 }, @@ -362,26 +338,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 }, @@ -401,7 +370,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 }, @@ -413,7 +381,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 }, @@ -446,6 +413,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; @@ -468,6 +471,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; @@ -475,6 +483,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 { @@ -485,6 +494,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 @@ -654,8 +667,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; @@ -668,6 +689,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 Sat Jul 25 04:19:34 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021099.outbound.protection.outlook.com [40.107.57.99]) (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 4F31736CDF2; Sat, 18 Jul 2026 20:10:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.99 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405420; cv=fail; b=mbag9grtPQFeVtd7HlR1sGfQDehGSndbTwAcFZEjyPLZ3cGsz0wqCB4rvNl0rBddu2CvPpoUCoJ9dgaqvhp/KBmkORqhBS0CHJPUHM8VGJgQl/hqekiVKjijy0zNWddblEiBU2wmIOlHa8TfM2HhAAIHJK5qILsA2tlng+FsWHQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405420; c=relaxed/simple; bh=++Ic+8fkjRV/UWeRKwi1zgwyvxWphN9giOcvkpXNIks=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=VAhPd5ka0dB9AIAhi6XYvMKykYLNlqepYteHLskUD3ZrJV7ahoNdLkeVkz1NXatzWvCyur0X6/MeHxOF1y/ZPhGC/XPQZMqabiH6ECm1zsNq3qXBZoSsux5RGQUMnwOic8SeIGgmw8zuAtgc+dRAo27+vogQUvKqWks0oNouTms= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=V4weB8kn reason="key not found in DNS"; arc=fail smtp.client-ip=40.107.57.99 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="V4weB8kn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yRMY5YTve2VJlWjNtySeJgPpyduqyRZv8ew0ckNM2srJjKyhduqua0JCTB+ixUFhzz1bTN7bGLOEnZqGMWm91AtI8MSz8fW6y2z/tlSDgxRlkfWI0eTogw4sWrllAcxjN3gn53YSY2gpuhRMJeHj/PuW1OGGWitl/pyabUOjL6/Ayp9PW7Ha21dwH6CeUviW60JILgGOYa9yXQr4OZt1EA/86Aeu2FJY18G2eZayNHBlL8GT+KV87HzW7m0bnfiXoM0zrAGcVf/gHtuahuJUGn1jZsx9We8aqwUtsQO7cG0gHoadb+aKUJq/8jtPH07Ai0ibzFI7CogdiEBZeVuMIA== 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=rnmkqzwVgtmBm3+EMyIcRbkONMsAF6bi/iibxyMEqd0=; b=sLM3uLieyQhkxlvMqd4BKfJn/60Go/nQw4gt7pjYtJs1GezOCFKFRVBtPQ0zdLytUkDm5AE7eGb19qSNBHZnsGAHv6A2i186YGM+iGclsv5F5IOO2l69NQMqdcfbfFz57/4R8ItOVqcGZZNCthfFsKxSjsJX69Pj5mhf+j4lqXARXQm9TEUvbtJzYDzS+bOgireC5LWOuVVgTXsEW7G0oYA9fHFjJv7rCnBspLk4KrmJ2xPesPvnESXoZ44C+wBgUIx421mxU+d9PFvAfNqAhuIZNywPBO9au1C3r3q7xOcgZhlf/pDFCgOpAJ3DNskyUacDbZhESbDUwAz0y4Blgg== 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=rnmkqzwVgtmBm3+EMyIcRbkONMsAF6bi/iibxyMEqd0=; b=V4weB8knOXL2HEQVFiJOfDakMSU8T1CduxJrBMX2WJIcxpfCqfY6LLWsnDqCZ72GgJjejYCL75lczcSaiReee8A4h3TUpHfzi/nLX5jEIO9EDlyzlF5b2Wum4m3QLXqmaG96tS678vhcQtBbflMXrzoF7uwPizaJCGsPOZNyCAkB5SVufvd4oFa3N6/l+FdsBRL932uObOxXPEBF4HqjqE2NVh42lXLI/Geuq1WwmocGtv91qWRSmrHOAGOGgSwOs/fyAUlldJUoAWrMxhVMxv27tbWsMbI1dfnuDhcfBgQ+5sq+kvXiIp7HpWFfH0cfKCggWzDv380V17ZoNg2qaA== 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 PN2P287MB1343.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.15; Sat, 18 Jul 2026 20:10:16 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:16 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 05/17] media: i2c: os05b10: add V4L2 digital gain control Date: Sun, 19 Jul 2026 01:38:56 +0530 Message-Id: <20260718200912.16001-6-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB1343:EE_ X-MS-Office365-Filtering-Correlation-Id: 5121c606-8f89-4ba8-fd61-08dee508953c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|23010399003|376014|52116014|22082099003|18002099003|10067099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: kUps6FnCW2/yteeAanx+P7MBa6jcx6ClEzReAped8ZAwQTbUgnMK0NesUt7JU+A/T/K2ZvAOZkWhCVpCwVOwkhWXWNUjOlOegW3N8VbeK87/PS/Ih1rlFYQRNcM884OCKmcvO1QaSkrY+hfZ8eF1LjYIkpnrmMhw4yXNJK7o6uLBPypBp67PSaZt2hba8YA0F8kJqVsds0m+sSQnHE7rBdVlnD+L3O5WS/GYbEQ1UMsJcpX0OWFttk4jj3CTzkFkEreZX//jr2JgbPdqCV5pDwSxoAOLZMKrFx3s5G/bKFjZaaazbVlfrFA05tFARQQZCONQ8VOjbcG61ca7teIHM487kBc3bGuQe+eNpDfE/mVEox1UpXYC3xzXJVICU2xh2uennJSrnjhWX0LctarZ6Me9I5xI0+hARoxdda/8axRyg9CM8iKaEbOUZcW7W2F5Ms/uj7tZ20vuYk+eMkE3rIrRXkJ8n4bjgGCmOSCEGPR0Axe1ie8GxR9Dkq8x7SSpTWSvCjRmEh6aoUYfzzXcv8xYf5wFmpT4Vln3Ii35sOeH5/wFW1zwkBNDsrJzD42G0lAPDkPuKlJrl53N9QukAL5n5upbEP1Xpfk39BafHqB3AgctQhHG6G1j2fvidC3F7aJF2aF4gUW47i7XlGNVQVXgw5wYCJJkte+S6ZZNz+U= 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)(366016)(1800799024)(10070799003)(23010399003)(376014)(52116014)(22082099003)(18002099003)(10067099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aPdm2GAnw2rUnB8KrOY4mvVCgAJq/fyhChW+daWL0CGi7FML1AmvTQ5LyHvT?= =?us-ascii?Q?vosQa1S3F+rYdgWNZAqBe09svNTvqgyu/MkE8Uc+WZ9Ni498Y2mc+Yj0cZzQ?= =?us-ascii?Q?g8eOM4rAjcNtWVktNNKTCcY9Unj6ZmAN+V7sSGWwz4S1VvXFxR/j7aTA0gm1?= =?us-ascii?Q?iS/b0YNe4y1JCTL0MeCRDF2L6gwKnptj5X+xoKowOi1aaN1JLxRe+KEYNYDB?= =?us-ascii?Q?EIzK7FvJvNPBe1meo4c0MEnSOPCmd4jZpgDYBhnObBz+IBGQSS7IdEV2PBG7?= =?us-ascii?Q?9szr52H1TJ4gFIdnl1Xam8rJc21ocAgxGQXt5KI9DXZXIf9bpbwsaBJCVNdT?= =?us-ascii?Q?JIZHlgGFT+mfu6g8dk2N51EG/C7ijjnT9Z3alApfhjJKW26j9MUhm2nT+Jkl?= =?us-ascii?Q?TqHXMlAcOOSPlFB/SWBGx4UP2yyp5L7P4UX+s4x3dk77lgVgvHaKZbrdM+Z9?= =?us-ascii?Q?/hp2hlETqYqZW4i7u3KCt/lZ/LWLq1tMFyyVqIQD3Ioru2kwgKN4WmyRoymX?= =?us-ascii?Q?q9VaEHOE3gcEiaVd2milFLdK923H6lyyc4VWLopwxcnueDDKzXkJZijVmhGz?= =?us-ascii?Q?/s+O9bz5UPPWKCFtDnVXjbUvp2cI655X94MN4jowDI1/sklVSZorNJB5N2dZ?= =?us-ascii?Q?KDAgBDfUo4Sx9CMqsgx8DreZbOaD8gIVQl0i+i5KaL2D9FYisT7tAQingBzs?= =?us-ascii?Q?SOnXCah8ViSBE3dzztw7Jnpqfw5X+NsUfRrSj3aHhh/T4UlSafB/u8Bu1vKX?= =?us-ascii?Q?z5VCpNIOj6jH3b0n8ZDWjswoK/a0n+4U1POsJvriV3ynfys3V9jkyQGq9e5z?= =?us-ascii?Q?/G1VSDdpgopq4bxFCrc18+rZcVk1V46ne+cELGnkzziZjf4Iii7iAIJ4jQAI?= =?us-ascii?Q?m5RW9hbB658PMh4hxY2eFGL/Ru7G+D0N1lHxZGwu96YGnAUzwwuDG0TmXxPa?= =?us-ascii?Q?R8PTA+W3Vq925bbMjaNl3bS9K58Vm+D2JvqWfTgQ5ypyyxzon8UsBrQKwpkz?= =?us-ascii?Q?SvvmJZmMq1gc1/zM+VCjqqsUBYucwt3DbNE+FB5zaWzzP7k1PWmJEw/GsQhE?= =?us-ascii?Q?DxzpR16p/6CnHEBV5kfTU08D80NrVtyvdm7KS6nGKJTGjuDuW4m3zMjBGiJQ?= =?us-ascii?Q?/gyIMGrxKdSAl8D1N/GxzZERuW0SiwCMp6RPNNOJ46c5AvBwQz1+FZMhcPMs?= =?us-ascii?Q?ytI74Am6pmaWwsyV12XTRR+dMY8x/xfePfeISXrid6WYKStAGhQkhR7nVEQS?= =?us-ascii?Q?IbZx/nhmJ3Ra072Yv75jAG/vuj5FBZ8+/14sxc5oJ0h4wgH/55aURembVOjE?= =?us-ascii?Q?KKKlf5cDHDiuVBnObQmD/YmvE5vM+Ugh6pPQQkrrd7NoYyWMgACvriSazt/S?= =?us-ascii?Q?Z0xQTiud+oM5a2Au4vE1lKT1plyLfHIXBz0el01X+OH8LASaczLLq9SVyM78?= =?us-ascii?Q?fOXe3RrYveNbcWn7weOK8mfgXeiMtf6zCMVVyb3P53MQ4gKX/jf3iJlZEVa6?= =?us-ascii?Q?SKUvZPOOIna4FR5wRhjG3gv5AegFbX/vqA28bWObKr1khYVgVrbAX51SQozV?= =?us-ascii?Q?fLaCqYsCQFklfMeCWxJ851sybbLrQL86R65EYbQQmUjtLOZ4ZSC4hdeKkM72?= =?us-ascii?Q?FHQf6LzEFvMIGMkKKN/FBGl/FZWY36Af9oO+m8gcYIkPKiMkoAB5NTcSNp5V?= =?us-ascii?Q?H8HnY3cElq7/gLGNon3FeFO5OjCKul7lRb+wtuZXYPoryw7ic27pJlN/fCRg?= =?us-ascii?Q?wN2sdehYV4RX4lIBl1MaCOUrC1+PiK3+O9CuhHCE1UDSIoGUmqUHGv0OkQJr?= X-MS-Exchange-AntiSpam-MessageData-1: /yBjB2YWms6VgD/GaVE8nofuvwnxB5KRiyY= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 5121c606-8f89-4ba8-fd61-08dee508953c X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:16.1489 (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: ACoKInEAlx/07etCa6CGxCaoTi4csNCykTQ4UzGp04vmH97PfpNxXDYbIdpmg/3ydM135m3HqZYAri/53vg2JqQIcyI2tUnt736JChDKv70= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB1343 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 Reviewed-by: Mehdi Djait --- 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 12c4e2610d6f..abf3d2970900 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -138,7 +138,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { CCI_REG8(0x3503), 0x88 }, { OS05B10_REG_DIGITAL_GAIN, 0x0400 }, { OS05B10_REG_ANALOG_GAIN_SHORT, 0x0080 }, - { OS05B10_REG_DIGITAL_GAIN_SHORT, OS05B10_DIGITAL_GAIN_DEFAULT }, { OS05B10_REG_EXPOSURE_SHORT, 0x000020 }, { CCI_REG8(0x3600), 0x4d }, { CCI_REG8(0x3601), 0x08 }, @@ -549,6 +548,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); @@ -925,7 +928,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, @@ -967,6 +970,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 Sat Jul 25 04:19:34 2026 Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazon11020141.outbound.protection.outlook.com [52.101.227.141]) (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 6CC1836F429; Sat, 18 Jul 2026 20:10:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.227.141 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405430; cv=fail; b=XnZ+3NV6oSFeBU4+aNVpdAPNo05YBGMwngCyJCdwrejbCPk6D2+yEyA+O1bJ8eXDBUEhKdHsaIT0dhJ+BMgWNNkpNlOu0HoL37W8n/yWaIfQMUiSGox2Zzy5Hb30r6iIsY5aE/hKESkEvMzbO5md1a03wcQc8rjXW8v/hGojmuo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405430; c=relaxed/simple; bh=Z1jBAuLYs/OR8rlHSGDT4x7omaMB7ydihKK+5UkJuJU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JqnxP3U6POFrorXo1i6azyUTHasFDBZvVGwdaq7E8rNJHwrbGJsNch9jFqv/9z/OKARGysoWAJof+JUAoJkmNblFjAuVUWWsVdxfJkAOQqMdW/Y/8h0CDAdUB0V9qptegupnH8ii7gvChwvzlJI77d3EUcCCN4YIMtfT6uEzK4g= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=lc0td0lV reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.227.141 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="lc0td0lV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oEEEOChVlpv/L8kXWvcn4MAYj0+e6Qjp26yjynoGlitNhwAw8ghib6khCqiobbdDhmcfBjajbfNeRyavwcXx1Qj1EWfQl0TKaP8TD24cFW4BxG8ekdBU5kDl5RnChd8tyH58a3zttHNm9EzaSwfosNC/IzQ9Jbq8Zsj/wVtwyUUCuK+/IqWofd44N61X4mYhkD5aHcqNTUJ31JMCD9UnJnjstkFYaprd8pxaF4ZPx/J2aBRMbqdrf0M7FRwD6FE4Sk9W2UDIvLCNz3q46pn3G4ITC+FPHE3sP1F9RdcGM5dTCzgj8NgqRL4SCRXR+DtWyqt4HXJ//03JoNBfhwMrOg== 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=utkcQEoix0OQGFKZxY0TVQPRz0lmn6kOp5F7s7Rqcqc=; b=OME3Rl3zYrobWY+nUgGNeFekqaOlbV/vfNe2L8nOMIob87Twz0SFyw3/nGSEmxFV1DdVxIYy3wWlfu3KxRIekTOr2S375tfd7VO088a6SX5MIq32SkBpN4IHBlZCiPWBDLTG0fKNg7JsD6fOD4puh7TZ07HiHh4jj3pXq2N4Z+yoWGoyDyIqFFLBkQH4SysfmC//5Hjqm1/cpXbWTA7N0Clkdp5UAHpc9bPE9NdinoN2BufLxsqkXjVqT8zkZB0wiXMX8KxsxNzlWNiZKNQSve06Hzxmo1QRAb1fSXhcKtZ04qVGtC6hwSjSTXWS/g6/yBPaKIyi0MWoTCuuvoH24Q== 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=utkcQEoix0OQGFKZxY0TVQPRz0lmn6kOp5F7s7Rqcqc=; b=lc0td0lV3laa/nLMB5HC2vt5I/8X31wdchbIzjwavWoLLPovY65P/e2zpqR6VJ8jsV4Fc4LvoVKODiYaXu9DxfISp3sTyDUN8HjEQY/4AwltEPJkGNLpl6ITdKetXYJMTZlbZuGX5vz7460YbpX+/3OpGTC2J3jSeMxDhiYEWf8YnGra89NYcyqAy/zdUEt/iJHNENWbzdBkAv/mCLdp9BeaNUvcemvsRxYHOiRCxzuZiG7kD8xiknXseIBA0Bar+DMXbFCjeQO/LplWeQa8WJjcydZ/v8PCKPOqitEuKiKJ/5nEMg5+jn3RTBN1nKPtLlL/w+LaDWqa8Si2rqAkYg== 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 PN2P287MB0774.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:131::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:10:24 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:24 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 06/17] media: i2c: os05b10: Add H/V flip support Date: Sun, 19 Jul 2026 01:38:57 +0530 Message-Id: <20260718200912.16001-7-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB0774:EE_ X-MS-Office365-Filtering-Correlation-Id: c50157de-b497-47e4-97dd-08dee50899ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|10070799003|1800799024|376014|23010399003|18002099003|22082099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: S/dSVZU0m2Z/gmf9e8BqLPBie5BaBRNsqRBDODd/K+EuxAxL8qv+d1S0xN5KWqz5NlWY5lq77vww/I80vG2XbLSRnpvmS4eFmF/Z4BixiU39oUPRfPfBz9a0b/zWezsXuOtlCiHPmnxVVF/Zs04VuTOs246HTdzUmOEFHMB93bZcbyQ2C8+4jODO4Qn8KRYXnU9v9TVPf9bELWPJ0WxkwnCgZO+mx+XnDrDOuYAnzqFoTmJgMC6Fe0U8C4gUQ8XO+0izYICKuCPcTTlSe72qizVNquIg4/vk38n96kDEYQdI0bmyqjNBXFagBJMJ6TcJIx+BKZkSrYqrB3hA3dFONVkRo4vTLM00YvP5uej2PA7rpYUqowzJMASYl7fZszICBZ7GVrF3LzWJrEyNM8eGHDpHD8eEK96BN/kWBEeuflbOSAe0kQi2Miet4SAvPa1x3xplmgV+hJpMlcofyXHTE4dSKbgektiedeZOq1WOjr6TdOdb5gKMhEAvk4ubvHO1i/C9osLCF9+KigWzu3bbXZ8dkrcp1kSP4ECsleQjCCd7XX76684N81vBb1BoS8oFNeQwXDUUwTLST21sal+YYf7nONfRvuNsW97oGLFyn6zKRA4NBNDdAnqqjPm+JLax/0KOGXUX3T4e9T+G6FjnBPHhmf2mPV6ud73BsOn66mw= 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)(366016)(52116014)(10070799003)(1800799024)(376014)(23010399003)(18002099003)(22082099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UlK+kS4+62ZV2ng3Tuh0bSAY6rDbc7kxnJRxRASJTH3M3xYW6+Di0lXj9X0s?= =?us-ascii?Q?PG3/SDTP7noMTuvOg0WgYUyqK4eacddrt1SBp3WHIysrI6pHxLhax68gp1n7?= =?us-ascii?Q?L0dMpm8D7adJRky+lWtKW1U+OAf4FAvRKRnQmEoQLMfx8HqRc5tGdhGHFZ+j?= =?us-ascii?Q?CI7YZ83QFt81sC5pMgkCq7rbnevOMxJEmJ6gjbsipHSAkA7kkchcVat1FzB3?= =?us-ascii?Q?W+eM6yv2H3Sxn5lWR7yhxBDqV4S+I6NMbqoSGth5M07NVTRaUB/R8IR948Ew?= =?us-ascii?Q?L7b/ijspq8Ti2YWc3SNq0ev0mWGPIrL3tjc9R9ZwPeYeUg4xetUw3ufvVWaj?= =?us-ascii?Q?Wdlsxc46PBOh/iU3CYGbtbsEquLYEY5KWC135jFa0D5vNFlIDe+R0T109lUw?= =?us-ascii?Q?1HbfkvDh0o1cSVESqL8rSNFSn9RJ/4evbaVKRBK/RyRp9/RPCR6yhhB2M0Dq?= =?us-ascii?Q?hYLJT9HwVGcfJWfrLlc9rkzUEOKFaBpo3GstFDjMy4/Jc3X8xpWSl1Ah0VcB?= =?us-ascii?Q?xeTwuel5Tp5hwKJ/0xJ7hjXqEx2Y1evPCsRS99H+GaneWCO+pvBS6zqlvRgf?= =?us-ascii?Q?i2jeYN/OsSJc3XQXuMx0YWJmUI6+4EGBKkGTQzrQRmCMWDweSeACgJnPyoXo?= =?us-ascii?Q?juOb43xZBvDrK+N/xMbxj2pOy7hCmGWTPbMFDQ1KU4AvBnsRO3F7+Db81vmD?= =?us-ascii?Q?etmPEFjlVUZzPfnYg6TxRDY0oXdA8EUYTSUqJ138Uw0tg6+2si1s6sPFVlVy?= =?us-ascii?Q?t7LxMFYUzAsWAfXkHP5aTcxP+gdgWHfrnxEeAQPXg7fvkJsoXI1sz7rKZilq?= =?us-ascii?Q?4BFZDxfmWLr9EFPMaxQUPnkeM4GPl21N2bOkat5uyWnNiKY+NR11nw4ATJJp?= =?us-ascii?Q?u/sqq96TeOSdELKPfp2ZQGoHmm/83EhElS7VKdEwAsxYwpZpzT+dm6CNMM4e?= =?us-ascii?Q?NC0zMYUbMB/SRfMiM0r3ftmn1hCevQdtKJveTb2EkI1GCHFMFNZ/T+ZYmS8z?= =?us-ascii?Q?8K8QX9MpHCaj0cExL+y1AiyH29Rq94Tw/LeYJ3kvZzep4ATtYRUq0AcPkP1F?= =?us-ascii?Q?xIhcvNl4DPC6SLLxt07IHXO4RQFq8B5bcThv9Ixp0mLohl9bYjqaG2r74coe?= =?us-ascii?Q?b0FlM1qOXzwqSWNwzFBUg9z0vEZa5ZS3BnF5TP/EB1sOfwbXIHECShVsbNGq?= =?us-ascii?Q?bLuG9FIFYVRd8b++PzVZHZQ9ll0Xkb6HCvtIrBlEtBtkjU4u3rytbbI6A/bD?= =?us-ascii?Q?j716g/16+JSXV5YH3D3VZyxgh+ZzszLECqgiD2DoIgmViPrihJHBJcDRmOUj?= =?us-ascii?Q?h7IH9uO8FxCUfkNZpwU9NQd61lonI3ZFH5wEel3vQfnlTplvhHtdwzDB216O?= =?us-ascii?Q?n0NBNbtmZtusX+nPQUxsFdRQegfI64zETdWW3Z6eHvaPjsHyAbPb4B505zSM?= =?us-ascii?Q?GH441x5wKiCQtQgVZoIfNXFp0GihOwFdarslFK7k1kGFQGotB9cFBVZlryqb?= =?us-ascii?Q?QpoZKXHExhyf8ZC7BQJj9lyw9vTmV4kjLUsH3sBlkfgedbNyHN2dQaxcspd8?= =?us-ascii?Q?rQBBVXDB/4c3fY1FNcN3y8jNH2/okx2ucDuSWfhqlm188rh3/vSvGqw5RziE?= =?us-ascii?Q?iZym76n2zWSV8q7+l4Rq2ofJm0fqJ84N2qLT934PRbX1uIqR5J7txARlcRCw?= =?us-ascii?Q?e6arb25OknssUulba/m0pIKk/zxDLV9XQ9b0djbVMiJkBXHvuxtxtuq/sac3?= =?us-ascii?Q?Jn24DKiE+GtjWGjf+ps4ph4+SeZ3+wORvL5BSyEZN5YrQnN8BV/sO4r5Npx2?= X-MS-Exchange-AntiSpam-MessageData-1: NqtTWWnvB9sHQIzb7kLpDr5Uahe+MZi3d5M= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: c50157de-b497-47e4-97dd-08dee50899ff X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:24.1330 (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: fkHibRJeWwCxgPLgCECWC7SPwhwPI+1npDtzzBAATcNCGJzGQoW/6D2Nep6efEFDmqIudYzNyM6y3ik4qTJEQycOrEA+z7zwli/XG+8TRwM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB0774 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 | 56 ++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index abf3d2970900..61c51844a91e 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) =20 #define OS05B10_LINK_FREQ_600MHZ (600 * HZ_PER_MHZ) @@ -231,7 +235,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 }, @@ -465,6 +468,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; @@ -513,6 +518,16 @@ 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, }, + }; + + return codes[os05b10->vflip->val][os05b10->hflip->val]; +} + static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) { struct os05b10 *os05b10 =3D container_of_const(ctrl->handler, @@ -556,6 +571,20 @@ 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, + OS05B10_MIRROR | OS05B10_FLIP, + (!os05b10->hflip->val ? + OS05B10_MIRROR : 0) | + (os05b10->vflip->val ? + OS05B10_FLIP : 0), NULL); + + 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; @@ -570,10 +599,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; } @@ -712,6 +743,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: @@ -732,6 +766,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; @@ -740,6 +777,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 @@ -747,7 +785,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; @@ -928,7 +966,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, @@ -974,6 +1012,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 Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020077.outbound.protection.outlook.com [52.101.225.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 4D2C837187B; Sat, 18 Jul 2026 20:10:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.77 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405437; cv=fail; b=UuRpZ0iI6ilgZstWEbnbGgVpWLfd4kF+97k6pJzxfqme5AfbO5sK5Cvzxy63AKHC21zQMB44eLCbFo/vmfypbAqOfRwZo/lqZQFwmLfUEKeKVcwlOt9vQIsZwBg/spSgySWO+N6adwm1HkBnSZMjcIxvPLY88this8L4yrOQmeE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405437; c=relaxed/simple; bh=BeT+w++g0TdOMGjfC3PvGXJCHpFvCHD1DFZwMOq653s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PpDBWK6IDfD1JHcUPQfPCI6yqvXTYVJj1fHfgd/muw1kMKagc/RZOVUE610Hz4rM7KWPyFPVTOK/49K2+0vIo4B8W1Tc3ByQIqNTClMBCab9D8BMTL5GG0yooHwcCIdm0MyxkLpOmP4R2Ox+Ym+5Vnay8UA6J7xWXBxJnZ7NDAo= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=JtCg8cma reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="JtCg8cma" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IgDK85g/gsW/ONpo/MB1xWn7pbNP89Oz1gg5NTN0DtwWZs2/4dCs/d+9+GoKbJB2B7ceU47qHf1h6G9h3zIcGUQ17VPXxoyZYlbmcHd+jEHHhJpxOC2J/pUYDPDAamQfiwf4Gqj2XP5GPPzDxN9hm8HCa9NTOpkirj40nouIOTTIKi0qqarI4liFD8rq0hruIaAUhAiy5FEingz3xbODAoHs1d8PwplGGb2PKSqAcvXNvdeYg53mRxQkyv781eBSJQaj1+xHMCEmhGcKq+7h1nB+wuFa/z9U9IAjw9EJEd7b4H1eVwyAHIJQVeAroaZw1hQ2Ha0zFWCAtxy/yIbE2Q== 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=Q7+XU4whYSK6BWYbgj1egk5+CMNLCeL+A7N9fx7q15k=; b=aAlne8fd6rGuiwtFJm2GooWsWBbhG8t+cYlAVT8KNsSRRC2Yzdm7x4GYSY2kujORaFQ77kdfHbhMbJzhCPo7Uja4U5PEdZG7Al1pdHyldTNkXvEEW7j9CAEBAzaGwlKpdzBSPMP2F9ASOdzaHi2Sh/+H7SCQXq5+PTlvqNgw2GdgmMdjGX1ZqsKZXTWWU34L7a9BQf2ce/DJGdJa+pmhHMKWyfnaFpqEUhTlQbl+GE1P7LTrFoi5Tm5iZOZQeqtsvAW/aFY6+7FxBnKfPJ5RSuMLItRHTsgeo/KMMHKbmMUBcIudg1aTgx8/cbzPmKU3j37Xx1Rojnctlw4mS+MFRw== 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=Q7+XU4whYSK6BWYbgj1egk5+CMNLCeL+A7N9fx7q15k=; b=JtCg8cmanfxC7897Z7AaQ62enUvcjNoQTQ9gfmtGGmfxfRbQlzTjKlf6q+Y4MmdngSCoBv8RdvbYmMHNsUIBnhdSNzfaM42+BLMz9SKeUbFewjPI/9g8dvBlbPaOitnMnG0Fk5us8RkwJJ7+d/MOtCnPnkogLz8FPnNYiLnyHqRtwW3Y2UyIXmfdo5XdjJlUlVh8PYtkP7KXUidphsjK/srv6QkPstx2OlT8HOcN/IO1dSpluES9F6x71voIPUycKU39jrvKYnEmPaVIchanhubmtDG9+ZqhUdCqW1L2anoEZQ6XwPRxQL6KlAfYiEWda0dWWsQbS8GHHWea3/GV3w== 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 PN2P287MB1343.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.15; Sat, 18 Jul 2026 20:10:32 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:32 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 07/17] media: i2c: os05b10: Add test pattern options Date: Sun, 19 Jul 2026 01:38:58 +0530 Message-Id: <20260718200912.16001-8-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB1343:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ba41bd7-9817-4bff-8d72-08dee5089ea2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|23010399003|376014|52116014|22082099003|18002099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: IelIQSreS5Y0JFCscT1ExV7xBhlCw1uPlx4A1WqAPXYaHH1Hi1gAYCYNDTboMoxO/MZcBo7F5VB6Dw2tpGx55UgGE6O0VR0++0NDJB1p5kbVzXzRHaPniB94bZ5jafsfrT7gTvkTQZ3qBWEZrsR3nF+cgC9ErXQwOQ12SYwhGhLKy3AxZ8/1ngYyNJbQ4Dbw71Q2XEENkDtQaZvihQXesIi3Xy+W0xLip1JBOibYDQRXpT9QNnjQehNzk9/3dtLngaDIMx/pltTqWG83/EbC7m++PGZRo1S4bH6n5zKhnEQKyRqHAABAEUk1mMAwMdU1HIzMFwKSGKOzm7PGt05JXeR55viASgojJLJaLgbMeqtkWDI1M2AP+XbaGZQLSlD6ti0+h9qgKY7zYXpCGHS7RPBUYcETzdQ8K3bJQuHcAdoayqhziEwYc09EyynI+LcVWCdxCnm1VQWuDSK7cb0YqSUAMt2EszAvvAN/59pKJaNcxZh/BX8IEoREvQ+2rT1X7a14pPLWcELmxg+iEfF3/oAExLxTqKzoBvpAaHyUKqa/U6VOa6ll2CKtNs+Jeq5xfVE+c3Ei0QFM3sSsDww9STVT64G7kGj9dFZN1m5+1ecDf1rT54hmhgItpNFUWlvhiwi0AZUKRsaQUzkFeqIO9LF7SY1B1DD2DqvxpqpB20E= 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)(366016)(1800799024)(10070799003)(23010399003)(376014)(52116014)(22082099003)(18002099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NG0gsOCQXQR7uDx33TvETklUcjmpnwC2ehbmcaYU9SKwNRlv1ZjTVbroY06i?= =?us-ascii?Q?xKEtTp5wyUwSrYs+yInR3pudWHW8ehPjKjnrp4sQFRT0NJ7CFc1aJ4HTBrby?= =?us-ascii?Q?9T1EVxxjy+Ej2hoArid8zdJnib/Vn9mUmpmH8OqxZEeHejoE7qtfgoCATscI?= =?us-ascii?Q?0llH7ZqcPxPb5Ye8T5ZCxrxs+IAmN9zRJS/DYDdPKjyiTzQEF/mpv9n5EPmv?= =?us-ascii?Q?9jx9A680OKLAXwRVIlK9+M1g07D2fAuunSwtpAGj2HywZdDyG6E49+502Y5L?= =?us-ascii?Q?3YnDZPbXmRN9SwVIarXImNw8E2LEKB0oczz2b5Dc138i/++VKQJjPmbq0HQY?= =?us-ascii?Q?5Kts1clCMLx+IsSeNosRkLm6ZLbga5op+ilrOXYHh35rQVV8Xtz8yfoTk2zg?= =?us-ascii?Q?2UUaDSW2bU7ETEjEfGITg8defhg2dvuzQESo8LOFxbczMonmCjO4DPPJ6NkH?= =?us-ascii?Q?94X9lrstg2l0DUcTaThQbLBk2Fy5+nMRaiJ76wwznxYy8u6s6yQNB4N5p9O0?= =?us-ascii?Q?sH+VXTLfzgBeLgfPgJW0n7o2WV/XQJ3prCwH5xcJPh09BYg77VSIW/dj+/sd?= =?us-ascii?Q?iZLQhIoes4KgW21kdGU+8R+MhcOoXOdkj1gRWDNsfdwa3wuXRw4KlBPhduif?= =?us-ascii?Q?SLTLF7wX+Re567va2GKB/3+1fNIbV9diePZ414zis9V0tx5VP8FFGzJeQRMX?= =?us-ascii?Q?egIxmnDa5xnfXJWxVXhAg/HhYox3KFe2c3EYn/u7Epge0cASztCECqK7wZTH?= =?us-ascii?Q?9+/Vj2j+jBEIrQUHH4umW+LFYn1QJiDC+EbscuTKju8othWZY5vWJVtO3F0j?= =?us-ascii?Q?SbtEkFeJEn+FPZioU5SXbMUNzd57uX2PQ+c5n77fiYvIz3pB3zVryQYkdmtH?= =?us-ascii?Q?cajg7UWhSKaWr5VCakVGIeqzzXj8m8t2nXKpaS6mYRSCQQc3JOkfCRa5WSZt?= =?us-ascii?Q?NdW6C8fYeTxCa8CS76WmunzxZykMVchkOWwsDs9kIr6fajxhGgizVnH1RPMP?= =?us-ascii?Q?u4dvDNJS+Opt9jiP7+cvKN7tvdndlzLiFMRcUnFYzr/ujYdEJ+08UjXZ9u+W?= =?us-ascii?Q?YVUs4Cik8XYeooBfwo4Rj5f69XexG1wLGl7mth/R/A5oZ0IOPcDKLqfQSaid?= =?us-ascii?Q?4W9JsBU1frHVked5x3VCcMm+sQKGf9B+IrvCpaAfwW/VoqP03VB3a24olPmP?= =?us-ascii?Q?PbCbwKT31poYhQs1dxZBeIWm3kk3haFFrywZTYf+orVsoIqz5NmSxunEjv+2?= =?us-ascii?Q?Iz8zmq8ll2Ws2K7Vo+Irkwj2oGipixStBN+p4H/Ffd1fOmtaqSHXG8ZJaVtz?= =?us-ascii?Q?OhhcPYYlK6pQi9BikuZvuhrRa5PDIa6RYNqx4BmW8pTpYPtEaYyZ3dURwOeo?= =?us-ascii?Q?vh7oC4weTIhl5osY1BjT4L0L98pM+FojzQzDZYVdIAfTkWqKwoOI7Cs3GAiu?= =?us-ascii?Q?7MoHk31jftcWxR8wE5fvMq5xBY/mIFahZCVuZKMY3jQoMypqnfXQUF48ZmCO?= =?us-ascii?Q?9uv4dzGsoCS92dLIdhvOQ+ukQfRAMnxXAMBxCTa5134ixgbW1CaunWEbLIRi?= =?us-ascii?Q?KRlUMm2mosJ1ttEdLq6leK+uCKXRnahGWO98Wcyv+zBSn4aGHp9YYECsjXJJ?= =?us-ascii?Q?xzNllbGr4AK6gxrFkLg8d0X0GoasPWNhQ81Os36IVFsyWdojjSAjgn7jTb0f?= =?us-ascii?Q?iBfCS4mFb9zGNgvKrceZrgOqIiWofOIiZX1Z4bVfF9/4eoI1/ErI2CYrikYZ?= =?us-ascii?Q?fS2hCRtzzH3UumxP2RI/pZ2j1t0cchJ/izeQ5qB3IWCQ/NQAgVQuhGt1MtzF?= X-MS-Exchange-AntiSpam-MessageData-1: NVLXxbpWLffYdn5SD1s2njTENnCJWlHC4hs= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 2ba41bd7-9817-4bff-8d72-08dee5089ea2 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:32.0104 (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: wIRQak6hRsBWnbV8f5PIMxwZVsfBbJefOzIq1K8YkkJWe2xgdRE159IpjbueHK5n2esXLvAiNL600r+AW+SFa21QjbmF84/D+WTHgNcBfqI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB1343 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. Removing the default write of 0x04 to register 0x5080 does not change the sensor's default behaviour. The value 0x04 leaves the test pattern enable bit (bit 7) cleared, so the sensor remains in normal streaming mode. It only programs the color bar style field, which is ignored unless a test pattern is enabled. Signed-off-by: Tarang Raval Reviewed-by: Mehdi Djait Reviewed-by: Vladimir Zapolskiy --- 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 61c51844a91e..4e177eacc815 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -102,6 +102,17 @@ =20 #define OS05B10_REG_FORMAT2 CCI_REG8(0x3821) =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 { @@ -395,7 +406,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 }, @@ -513,6 +523,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", + "Colour 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); @@ -528,6 +562,15 @@ static u32 os05b10_get_format_code(struct os05b10 *os0= 5b10) return codes[os05b10->vflip->val][os05b10->hflip->val]; } =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, @@ -585,6 +628,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; @@ -966,7 +1012,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, @@ -1022,6 +1068,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 Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020083.outbound.protection.outlook.com [52.101.225.83]) (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 0F331373BF2; Sat, 18 Jul 2026 20:10:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.83 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405444; cv=fail; b=ku6MPuLQmR6sKXOQQe7MU1/ggxcjmullJdG5srhA09NOk6qb17D5hrtyyjbShNqQxY6nGKU3FuWsE1ooDQC8cO8Lcm8Db/gQIxArzEjh6K51wreCZPDjvfCfOeo4wWCd4O5DT1IXOb9LZFBti1IIg9opJ/q221E9QVOh0D1Wfag= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405444; c=relaxed/simple; bh=C5LaAEgXjg4/jXueYjIJuMIaWA6/Meqsmax4MeZIzOQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=s5oFyEpyRH5GPzUOsDDPpiuhdvxBfd0ePEAG1ntVMb5rbyxQKuCps8Fq8LTzp0WSGXJwyU24UgzZsHUwzxkwHYS7T8J3RdiqNC/96nAtwZ+8YNyEI6eZiw0FuA9ZMz0/qMBy4cpDDAFMnVyNuIpnuFzn+wb6B6FY32ALQt9kAbA= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=VZCtn6n7 reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.83 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="VZCtn6n7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vBndydUfOtKTM/XHAkSn0v5Jv9yI+xqdiCtc3L3pOPYudZ90k3JEMwI1odd3dXmArHBAngBl0nhWP43ixZiAmBEuvJ9UnSalYN1FI91RRX+Yvm865BjSw0XUNWzMgQwn3wfYsn1VXf72YmjEv/cT6wwfL/OieHvIbgklBAYEaj6cI3W+5P9raTTgMhGn1GJvx1XJ8A0ITAvi1yU8xt/B4UWxK+BqNGeDyLomiObyAFrZjRr5lLEufe6hMFM36ZCFQV1s30aEk3FEcBT/EjjuVKJHFXwVJS4FQpdqhQUxWn4mw7L0K9X6W1xlwY/RbtQtzxhflkZ5UmzPjWtE0oAgIQ== 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=Rb83TLv7EiIElqVGF82Xi+8rIVwJRj1ESdhfAG37KOw=; b=Ua2DfiucuSNF5PC+zla1yvGJIJzPQGZO/qQCWpPzWBDjyz6mcUBjYHlKSOTr1VLCRZDQ3XLtmafoqss/G1A2pHtE/8bdNWORfo3+63D+qOg2pWvR5egtYbPeq9V4jgT0aH/sVi/ESGl+6oGNLvW0tVXphHDpvWeLuZNrn5PA18Z4krbrhNUtHwm6c/MWkqhSYOQRSz2codE2VZi7SKwBb+gwWXoCL65KVPMceU/qsN+kN0oiEHw0/bGJ+a9sRFqAotAzJiUSztwTT79/WdJoGVcBFFprZyFe9w9DYe3UUQIlvRNjwUq0h0sm6Vgy6R/v3YkgmF2P0S6/aMhRw4AOOg== 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=Rb83TLv7EiIElqVGF82Xi+8rIVwJRj1ESdhfAG37KOw=; b=VZCtn6n7OHVGIiVNBWsK02g4XSoSTmnLCZDCwi2itGBvBYAu3QHdSYEgbMduFP3GeI147s+JJ03j1z+DEWLTxVO2IqL1BLeGQFX8iXnvyKE0nOcEz0iRcM0dCnWdQ+//7wKxXop9bCluReb0KSlhtNjuP9O5r/SGDXOJU1pdVJ2itOfIjQbDkkTGMsCvHo2HkiTFAWjf6bl3ZngbtMPaHzeFCIfEpgQPvQUqI++p3zOfLIi/0XFYAVRuxyFRS/NrFeamAE9MmuFfdme6+mgxb4oZlc9xgkQqFw15M6krmm3LNyy7z0HXaGdmGmfTqlRtgO9TgbaDBkUgqzfyxtqnIg== 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 PN2P287MB0774.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:131::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:10: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%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:40 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 08/17] media: i2c: os05b10: add 12-bit RAW mode support Date: Sun, 19 Jul 2026 01:38:59 +0530 Message-Id: <20260718200912.16001-9-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB0774:EE_ X-MS-Office365-Filtering-Correlation-Id: 78e7b7d3-0bb7-4869-42cd-08dee508a364 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|10070799003|1800799024|376014|23010399003|18002099003|22082099003|3023799007|10067099003|56012099006|6133799003; X-Microsoft-Antispam-Message-Info: 4n1N8TEjqdfya8sX/7XrcJkBPXGA5XBaaNd2kAzbu/tjUaOQyfgG+D977MTA+nW+VAt/hEluSpxChFlCgIzfouBO7wvwM0l+cZcbQMAi5OIADuNdmFlGacbX/MQkzOx0QoaKFcY2F9a7DYV94+ecerp2w3MLkT/Qfw0vlD0bFPcDWHKExo3/9n1ITL9AhP1OTNawGgEH6ITot/0jrRhe+88o/k1b4cj/iz35Sns1pT0jk2pGHzwXgM3SxE0P7mPJBvdue/6JzCPjSDCVKOJQf9U3ZgRFoHPQXq+37QMPAioepu04DBcOA4qjTl2IISKzS5R0dauBQ6wAW0DNZQyW6JYo2TNte3ptkByzuL6DOmngHmDJa3Yg+qQ2YzJZB8u8Rhqu/jv3SET99vho/cenRbmEvSDKBwoOn94J/eHTVzmFaP+xCtIraaMSiOBP7JMB9hkJze6tpXt026PtbCbsFGbiEfN4JViDERw4UKtdrlO5gvX1ZW/11VfYADtYokcEESKhejc417LNRf52qJKaOfAK2JZyLsLXJ6nK2e3a4ZRaRcIdV78LoBsFTlZvBB1ceXw1I7+ZKVRoEMJdrBnlfeQKnF4C3PTsRD46p+tDIslvoau5PyuH2F/J5zPQBpcImSNmgLGJikAMdQmyuyYhh1az/S0+XHC+t4v0rf1dhoY= 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)(366016)(52116014)(10070799003)(1800799024)(376014)(23010399003)(18002099003)(22082099003)(3023799007)(10067099003)(56012099006)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ggVRWyvbHBUs48K+vgCHXjrVscJYcbS9qv/+asdA4ng+G3KvpqB2LFc1eBTe?= =?us-ascii?Q?pMT/1mj41gddT3+15Z81SBEjZGBLrZNqnaOtHbey2YpW4wnK4uPjIDwrdI4d?= =?us-ascii?Q?5dAf3k/tYjtxs4z1W6EYKblAOXI8lixfJE4icbc5S+57YSJw8LGvnWe5nFiV?= =?us-ascii?Q?KSJIZCmtfzOPjcw5SdLviTaQt+zdsu5y/y8bQ38oHhodtCSl8rPxWL9DwiHK?= =?us-ascii?Q?I3PT45EJvg61r8CDNTuUqwbkG9MCOYFPgIJFov8ikIHyqXsUkXbIIVwhuMii?= =?us-ascii?Q?9GIQa9UmSPxG/x2b+eVgopkr1aFKsMdDBvY6rV0a2p/Viud+qahZbNQxaOkK?= =?us-ascii?Q?nUWSkM9gzoM7Vo8fK4Hlhvrqmoopz0OUP0dPhU/Q0Pa8GGsi8rp8qqA1VCKz?= =?us-ascii?Q?doZYpAPEcJrKl3KIh5fOavosJWwaNDD94eAZyKnIGLD43ss0VrNxFncdfsh+?= =?us-ascii?Q?uo8l3ViPpo5N/aKTVl8MRM4M52mit6F/fekq0aLCtEmCZAv9RSjMoa5QlI/Q?= =?us-ascii?Q?51n3/vQk3WAVGKiiCkBuVxHaauIK6q6TJInku6ONqtPkBi6ACSfnSGv9m31L?= =?us-ascii?Q?O44iIJKCWLGRv1KpGS0zxgjBBAUn3awrh97Q45MkzAdCTWVvK2mcC6tvspWc?= =?us-ascii?Q?II/7Rknc9pK8IN40DAFAH7JcXOOytQiXe6dGkiKgbxzG/V3G6tBQnMcrTzAu?= =?us-ascii?Q?cZOeDevwc5EkKAE2ExjqwUKkTdtqm02Wuy3nKl3PFHEU/1XV0LkQhmot9c7f?= =?us-ascii?Q?MkYDSBlb8BW71Tbu5CxWC+pTUN1ckMhGuSzx/M6X0R6fBKfzzF1ukvk14yTI?= =?us-ascii?Q?YWccaaVZtrG27sn9oKyIzw87NH8V70gqDQ4YmPfjgT24aNFVzR5XPCmA3XxQ?= =?us-ascii?Q?Z6i5wyKfsDLk8N5eEb62sor//CTsBv5seRX+b0jVWr4h7uRfE1qJxJw7RwLM?= =?us-ascii?Q?rRmdH/VDKUOYqZa8EjtpYji/8q1MjOcPS7TRvn64vZfD33mx+iOvcL/fyQ2O?= =?us-ascii?Q?RUfu9hRouXveYXAd9AsVEwbbFz1e5QUbCwoyqKSDMt0i+uZCNMPtS+KnD5GI?= =?us-ascii?Q?5cWntC4VS/GtTYd2jY3BIfyzqFFv5ATioU829rPncsYodpXDeMeI2sgOt4e3?= =?us-ascii?Q?sm7plRgCuafI9rRw3AisACFpmDYbEKUUdG0Bs0emXIHDOSOM4f++H2dcePZu?= =?us-ascii?Q?wex8vxhj1zUenlIve86nJKdTjaXq0yY7Ov6lRR0wTqlL4ThCTmQGvcwu1Ckj?= =?us-ascii?Q?yREF5zNfiIIsR7WY68S7Gyj3VKu+roA8hLkGG0W8t5GaylPUS87xUuEtHlea?= =?us-ascii?Q?KZDRuiePL4bRlmTFeibPx+vvlwr7tmtjP6pUX4KiDFAyWDuoT58UGXJFLh3B?= =?us-ascii?Q?ecaMgcshXkutvkt0b+zDwK3Fpv2PZbi7a/YOUviiFF0hMTvkgvHnsrxx1dWs?= =?us-ascii?Q?z/BWsl8FJvAII4igeFLm8dSInvSdtMa2qI/BNx0Uck9+kbUoMLpK0NuygHnE?= =?us-ascii?Q?pcdZKBEmTqo+0NMR7jJXXV2OehcrGeIsImkZ7FWrfKFjU0G13/xxaISd+FcU?= =?us-ascii?Q?cfmDR+EeBQHl0hU+VyoQd42UErHBgh42fOu1ELkallC+k6zOg9lm9OKEPB5u?= =?us-ascii?Q?e+KKPKqPvaaeqN7TKyzF4Vi2lV1Na3KFl6p+a2YW/NDQdyDE14vqw7Q7PxEj?= =?us-ascii?Q?0G/7Gjx1FgtcPErs0GQSe5kCvYnuWOcTMjzscdbZQlByhL2VfoxctpoKN79V?= =?us-ascii?Q?//mSE+ggt3xSDNNcc3IV6EJ8Qy3DxhB8F32DpWMDK+4N9GdsfhyHfdv3m3HG?= X-MS-Exchange-AntiSpam-MessageData-1: PEmDB8T3uNpjOO9AJpgg0Exfuw6Xc3r8Hkc= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 78e7b7d3-0bb7-4869-42cd-08dee508a364 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:39.9799 (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: kdCtdt/WXXe+ycniz0sSMA9FWkE8qLicpqruo0ySmaRMgonm6jysJnjplJ+ZQap3hCpPdWUufFFrnjjAy86KwBbAQx1mDPU+DidfbKI+6lo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB0774 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 | 112 ++++++++++++++++++++++++++++++------ 1 file changed, 96 insertions(+), 16 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 4e177eacc815..e11a3c308299 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -146,7 +146,6 @@ static const struct cci_reg_sequence os05b10_common_reg= s[] =3D { { 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 }, @@ -500,6 +499,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, @@ -521,6 +535,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 { @@ -552,14 +567,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 { - { MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10, }, - { MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10, }, + static const u32 codes[2][2][2] =3D { + { /* 10 bpp */ + { MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10 }, + { MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10 }, + }, + { /* 12 bpp */ + { MEDIA_BUS_FMT_SBGGR12_1X12, MEDIA_BUS_FMT_SGBRG12_1X12 }, + { MEDIA_BUS_FMT_SGRBG12_1X12, MEDIA_BUS_FMT_SRGGB12_1X12 }, + }, }; =20 - return codes[os05b10->vflip->val][os05b10->hflip->val]; + return codes[bpp =3D=3D 12][os05b10->vflip->val][os05b10->hflip->val]; } =20 static int os05b10_update_test_pattern(struct os05b10 *os05b10, u32 patter= n) @@ -571,6 +592,34 @@ static int os05b10_update_test_pattern(struct os05b10 = *os05b10, u32 pattern) os05b10_tp_val[pattern], NULL); } =20 +static int get_mode_table(struct os05b10 *os05b10, unsigned int code, + const struct os05b10_mode **mode_list, + unsigned int *num_modes) +{ + switch (code) { + case MEDIA_BUS_FMT_SBGGR12_1X12: + case MEDIA_BUS_FMT_SGBRG12_1X12: + case MEDIA_BUS_FMT_SGRBG12_1X12: + case MEDIA_BUS_FMT_SRGGB12_1X12: + *mode_list =3D supported_modes_12bit; + *num_modes =3D ARRAY_SIZE(supported_modes_12bit); + return 0; + + case MEDIA_BUS_FMT_SBGGR10_1X10: + case MEDIA_BUS_FMT_SGBRG10_1X10: + case MEDIA_BUS_FMT_SGRBG10_1X10: + case MEDIA_BUS_FMT_SRGGB10_1X10: + *mode_list =3D supported_modes_10bit; + *num_modes =3D ARRAY_SIZE(supported_modes_10bit); + return 0; + + default: + dev_err(os05b10->dev, + "Unsupported media bus format: %#x\n", code); + return -EINVAL; + } +} + static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) { struct os05b10 *os05b10 =3D container_of_const(ctrl->handler, @@ -650,8 +699,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,11 +733,20 @@ 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 + ret =3D get_mode_table(os05b10, fmt->format.code, &mode_list, &num_modes); + if (ret) + return ret; + + 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; @@ -731,12 +789,21 @@ 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)) + struct os05b10 *os05b10 =3D to_os05b10(sd); + const struct os05b10_mode *mode_list; + unsigned int num_modes; + int ret; + + ret =3D get_mode_table(os05b10, fse->code, &mode_list, &num_modes); + if (ret) + return ret; + + 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; @@ -749,13 +816,18 @@ 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); + ret =3D get_mode_table(os05b10, fmt->code, &mode_list, &num_modes); + if (ret) + return ret; + + 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) @@ -769,6 +841,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, @@ -831,7 +911,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 Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020142.outbound.protection.outlook.com [52.101.225.142]) (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 7466A36E47F; Sat, 18 Jul 2026 20:10:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.142 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405455; cv=fail; b=MyqCFYT9tv12YlprYyAx6M7wFQSL75mT2PyyHvne1KpOfVD2Lvm128TSMmqUEOVqTZFESJuAe876bo0JND1af09+yOYrn6H49AhKdN1w9Aed6xm/D8hJkdbwJqUO8EtWqJNpHASvzNOSRPnKmvwZVMeShU+iDESCTvPGPbo7AVI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405455; c=relaxed/simple; bh=hwnCnPsUnIQqYp9EnGZ1aeZDDaq/xdYMNdDUb//gUkI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=S3M+y7gq/AoUwmHn1lw0Hef+aMdXx+RRpPK8RGBhBzI0iH3dXvZrWi67hzOA9F1Vn1m6PrbZ6DY1ZXEVp8t2CBO2aXfbKK66viRb4YKdFpUmaxk1YewmBcthvAEOQkF/1TX9Xy69DDdx6OStE4STUtTOZIgPTpSc8IfUsnJF4uM= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=QT9r8kAw reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.142 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="QT9r8kAw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tTDd7ox4LZdEHU3cUQv8yz3GDhaW/2ncFJWi1uzb8et9i3VyHwZwe59ayV+Uw5P/mNUD/r+F/V/+oF0x/8eqoYfMdza2GWOjh7Dsxif/ZJHgxecw0yh8r9vK+6n9wZi+n1ARFxQEWJ7Lg3tng3Or92YEYY2wZ1Z2AhOzjduProVVRvvLkBvMPeqRX37iJPZUoto+JueXcSqeDRYLOb2pfKLuT8aJSk/f3j+cs9Uru7w09dAYYE4F1BqGEv52hG9hclsZJlF4y/w8aegq4fLHxz7ijT5sZQI8DqeYWiD8vHJDexuLA/09+btlb28v2YJJ64VuSIoAYt9RcYgt5joaKg== 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=rZayPR4m6i3n1r+tgHtOcU8g2OmE7F4DmJdIVnkP/w8=; b=w2usz5EpngvBdi4H7g23/AwK+NwjbQqilbFOsKQDxXP8VYahcsPa1mtlY6gTSDGi0EtmOI6f2NFaFPcohaTbLWhVvMZY2LrcrRJmKZs/ufxoP3lwVciec0HBmU73mbwbog3TIc83VG+kPHOYQ9o8ec4WAU3bgEPORg9qB/PvDuQFqrNZH2swO1QefIUCi7WOPi50FS2RSvTsA6/44zvXZZYa51wHq1PkQ53Y/cGDhTJHPFdSDkUObKYprL4xu+nPWdRFtoRASubvyv8kdXiEDGSEu1n60HpQ70fBOzXu/MZ77s6jSY37ibiQZHbu/lxejHvVk4pp/MGXc08iPUSjZQ== 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=rZayPR4m6i3n1r+tgHtOcU8g2OmE7F4DmJdIVnkP/w8=; b=QT9r8kAwEogxoNzyOkuQz7wcaMdOthcSQXHVzPWUew2b6RVbCNCYfYGs9ccXgYAm5pCFsFXoDTFD1IVCbEwOw6IvwGzGAESW6EldjzphCw/93urgUHUV/sI6h65bWrMEUJvbS0bN4JyTjf8mM7xyEfOGo1A1+DbghhStBz7yquznq289XaUpZUpPh6QFIlRRxrvJnVYNfOKsyCVBCbyTl4fhyypgX5r7c07xDNfpSg1p5NLSTkE2DWfQ5VwQQZofXGABeAg0PSkQB7VtgUuVt7+zuVpXR4OUJmzl8vAOSTmc/eqQibOJ/CNWPTjZBRZ/b6aHJb8kLTAMjGznVKBvIw== 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 PN2P287MB0774.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:131::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:10:51 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:51 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 09/17] media: i2c: os05b10: update pixel rate on 10/12-bit mode switch Date: Sun, 19 Jul 2026 01:39:00 +0530 Message-Id: <20260718200912.16001-10-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB0774:EE_ X-MS-Office365-Filtering-Correlation-Id: d28a3ef1-bc31-4abf-b693-08dee508a9fc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|10070799003|1800799024|376014|23010399003|18002099003|22082099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: FRlTeWLVx9eg94u8TfYeZ0AFfoNhJ6DL7PfCXhbRMbs/ytKHevBNJMRc84k28xsrF97vo8w/sbCQ8WtpI6VBp50f/0xSnuPixauSv3C3AChZ4Lh6OJgGt65LWTBuGdC9fS78mQt8uxfTvZpwWzJKUMUsIhhMvtaUYRgdyuUL8QItXQd3oPd+hFEvGgKs6c07/jr2zXHNdBr+ga0/Wza5f/sZpMx72FTvaB6mi7hdj2P/4qDE04tKiCi3bxUMagGMYS55hssH5g+uOEOT9iF2ayBonWOQHIpVVywpSdOlUfhWl/iTDoCqRL5qxKn1PRRIXLqvi4FXjMreT3W7tFxhMntmVIzW7gphygro6mdtN1KMRf6zobI/lrTe8v+LDJ7I3bb6lS4ppy15766KGPRG2z7y6OTXNurE9t6DpyzEYZIYVTlmNnWhaG7D39fybGbUtUQ36Z4ju8Iezk2E2N7tZtpgakiLg8FBHz5xrtQ6TeHHQ559nzAXUqkYpr8tIl+0ZW1I7762ZelBctk8ckzKLxvhqsyKmhowRoPi2VoEEoQliHoW7ahDpztpnzOlR6Lzp3DC9F8bQKtb1I8tLEzuTe4Fuxuoqs2NAokwpH16TyZHqN98UD/bLJIa2jQbQ8BFVzVE2aPsMGd9Nm934Nqhp+BRK1vNYBP6HKeu/4vq+jU= 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)(366016)(52116014)(10070799003)(1800799024)(376014)(23010399003)(18002099003)(22082099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9hNhn2OJo/uvv7kOGq4sZaKN+M3ndFsyP/AMC/EH0qNwEs/sQi2uoBM59Xii?= =?us-ascii?Q?kUV1eoxObbNEBe7cDt2yL359tMZCTb/0iVBzrjOAUhcgOZ+s7fBC+ejw6vW6?= =?us-ascii?Q?SGLr7/hblZFoGO75L0+c4mhcJQZ0gdx/c708o8gZ26rldkhLlvn4839a2nw1?= =?us-ascii?Q?mjh7j5FclS4QKQbMZxufBwXSEHfJDFz+ZvRllxIhKORM4LYLWay0zUzTwMid?= =?us-ascii?Q?MKdp3l/5ZMMfIHX9IoExB6D5pHKzI0fMVh7js3QpES77E8yj1oU4j8BDtTlx?= =?us-ascii?Q?o3XkY8Us/VvRWh82tCOmXr+PXRLPDw2lfUl/PHWa26fyRSofA2X7Drkj/GQQ?= =?us-ascii?Q?SHenazH1ZriVy27euOzpgPshr6Taw70fODjPLjxfVyRiwua/FcyLoHmZt/Vy?= =?us-ascii?Q?va/5CBRKoSEmQplRWyYWQxTTWX2xv/c/xT/BAJS1vKyNzwxDBK7LWwqJHQTM?= =?us-ascii?Q?GEBaBo7B/9jOx9Zr7kRZ9HDy15OEkWnGHMhhQ4bDKEKNMHfCJEn/I5gfQx2o?= =?us-ascii?Q?5a0uqMUgors9Z0sxDpLUkI8X7jtfXHML91NC/TaK4jNFxpBfygixKCNc7AFH?= =?us-ascii?Q?O/YpQ3cR9/hvR43F1NgEIuGulgz+bTqejsO09HFFGac/+LRARGDDt3ai1vE+?= =?us-ascii?Q?MviMQQheYuilYrDuXWY1p0bOP96cDf3D+ozHWKI+wPIZl/miuYWusbnOolCv?= =?us-ascii?Q?kwcY2ehunBxtl288HMyza62MUq95Mp0UBeX2t2dQTEBPXMPgXWPFndc+g6Ft?= =?us-ascii?Q?VYV083NzQvX7YjWJdbi3czjErqw2zV/WIUWVtiqUJfuD8Q2zOtGW5ggsc2W0?= =?us-ascii?Q?5bAR5EURWjyptfT3CM6E02NhTETUJk+v1Hve+opxFyPXRDhGM0q9yMgBlcBM?= =?us-ascii?Q?T9sxpBNEN1cz9XEouq9QpG/uNYjZXZHYOnFKnaXBV58n1ue69SgXU3lkYvMY?= =?us-ascii?Q?Q0afVsc/9jBKW7Hzix2VSgTNet2jjfcRnsZL5P6opb0t+2+SgOY3GPEIofID?= =?us-ascii?Q?24OIqnB1kIOF362rjqd5rtIBr4qT/aueRNdhXqlGy9mDpL8wjNYTiVRKxz4M?= =?us-ascii?Q?mJFfeBgU+YNhZK4MMViBJqVZfyXUPkYroUw+bC9Bi9hqj91n/8+b1jd2d63z?= =?us-ascii?Q?NjNbu4Cvr95wjHdVS2BjuO4L8swzFLtU+lorFvz6D6W8w0zsyz2wvXsctH2E?= =?us-ascii?Q?d5QmvkVrb/BtiRy7wXMZil7SzTiPHG6NWdAtWByjSiXOaL60hxiWv1j6clU2?= =?us-ascii?Q?XbKzefceWP5s3Yr+uAr+OkSv/O8Gz5by9PoP8fiFCGsanCxy+UiO2UPfhbhJ?= =?us-ascii?Q?O0aIbivJzmqRlE//n450ryd9YkKO3tZDKL2Z26so3RmW/S+C2FBXa15tXSpx?= =?us-ascii?Q?M3VXDaNr6umcrvyrSsdtAXpgcu8k8o/+WFwsYVIDlAaQq3luj5st9YuOFloM?= =?us-ascii?Q?7VlILAb9uFVyFQT7PjiVboyS9ARybZL97GO9CfcRgUuU3iejahj5fjKsnAja?= =?us-ascii?Q?pSymkjVHg5vFT8ibTNbHqBZsihgd6aGxzDWmHjr3jailBo6MIuXEX11MlcEl?= =?us-ascii?Q?wwsFaxRyKo10DDeaS6+h1KbSWEp0to9OAtu4DB/pPB1OFKMeucUAUds08dLb?= =?us-ascii?Q?Zf8Wt2Rb95+jxyiiQUtW3kFJu776TuRl2qx79qlu5m7JC4ypaNmMRHdTH5kD?= =?us-ascii?Q?xWM6ecpt82W4Pz4m6SRezoub+cnJ2SOVOgtPwJHXZ9nsTvFNGdmfuibh05s0?= =?us-ascii?Q?lxepxOm+04gjebQsYSfKLvfnqNwK+3bJS746xwB5m8q+6YYwakSKDHuPce7k?= X-MS-Exchange-AntiSpam-MessageData-1: JC10zvTTt5TrG4VNSxKVjxpm8DGwXUmF4jM= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: d28a3ef1-bc31-4abf-b693-08dee508a9fc X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:51.0291 (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: QDu0xPlQ9MPeRFC+6JC4U4Dl2yV44i7ZpeU+1rS9Z7RWQ+dbUJrkP7PFgbJfrgLvgOhWw6PIQzP3SEa67Nqk53wgrf8hIdnE93+vGjVVmns= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB0774 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 e11a3c308299..3fd788bd8b20 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -473,6 +473,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; @@ -704,12 +705,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); @@ -1070,18 +1094,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) { @@ -1095,8 +1107,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 Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020100.outbound.protection.outlook.com [52.101.225.100]) (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 51B4236F902; Sat, 18 Jul 2026 20:11:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.100 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405464; cv=fail; b=Ft/UuKl8JHu93K6ahsrUqZzsXoHmstI25jXVl4rKg8wNvwj5wh8t9UrOAZIGDeeJ13moPzmTqBcAi+lGlfYhOinsfR43wQqvHF94DXLocvkCWwyHcAB+O7uMP9GuUh7aP5MIg3JCovoV400iI2vC6iK4vOxk0/gputYTXAzh9hk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405464; c=relaxed/simple; bh=TxSwgzPW7fAsHkvyDkFVt/kk08b+bgNdrOP5U+N8i9w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=obuzMj/LjUyrPf/HsaMiAG3ZELuyOAdhR7hwZ5JT3r+pr9ncnLh0TaKUABN2ngNmNWRe1YAsww7qgQTG9if08XH+mt8l9eKAH4BZXJoyYJkKcwRhBi/zmttdbygN+d3UxWAWsEVePRCCPJCmLOT1lysGn8gj0Xv6+bAtE41Sxms= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=QaF6q2xi reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.100 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="QaF6q2xi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Q4zD3kLv7vcYPr4p1nVzUlZIgwx4BiPGBQ3XSmkqXsKdH91N5O9bbym/XIMuniZqzBY159LftHM+H4TK8u6ibfKUCycbQYzrhpPeB2o1U1GwZcXMBTlrd88+Swi53usSYNG8Ii6F8wpDqAsLrdDZgL490SFKUd4nxackp7SwRqm/HX+lluSRfiCg2QFoHZVxW28hIpMmVsszE+9v3ho7CkaiiI25UsmCA4Tvu+L8iql/wwpaZX6sw/GZDI45qhUVw8JgEwuI3KmdwrFYOIZCykQShD1jkFTW1zLwYoOkMISsLwu8xA5WEGeRmjIk2GV9lrvscHT7A2hiPK0smjfCPQ== 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=SulYllcxhxEMXg5K9mQ8wG00pQBEAsU/Hsb0umBScMU=; b=H9Fk7iS8Y87QO3r7wtcV3UfBB6bOTdD+EVVUUaa3Yh8weoyBhwUd3eL/FcwTFch9vVKVqyP5rnotiwAA5RdhPjFKbp5B9OkXZsdm2jDJr07b2kUKvz8kMB0IRAPm6EaPIirAjfo54nYoNY4X7qj/LMhQgPSb7yKcUB3Ymn77e551kiPpOIgQDjtldtJmSk5JjTcet/rnmc32sGbXSfuzKJ2selcBsO6+X/efY0gVeHF7iyqzmI7xoY9ilLBaYc666IEymMvgpG67jPJ74C00xFrqqW7J5tZxjdanIrF43fWBu3X3PpNTnk8Q9Vyba2l2m75dVezKeLwN1062QYg3Qg== 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=SulYllcxhxEMXg5K9mQ8wG00pQBEAsU/Hsb0umBScMU=; b=QaF6q2xiWNVOqWG4roWctF5JK5tYR7UEPf5OpaqUFlm+SFIKVdGHKTO2LWxgEXugGEw4+b81XdUALD0Lfk0hpYP4iKFqyn/eUMDZMqxpVRXRxQ8btLPTOtbrvpcr/iYAQyH6K1bpUL2Dv+NWsWWb1J3qJX2zOdGPZ7bR3Z0ie9THYp9qZNcZHvuiN5VzpniBQloLPlgNHc1Gv/L0a8QB83FGxUpBCmqU4BAoMs4ffHprPI/1n2GKzryvKvthjWKY2ItCVFn9XDgy4GVZaYLtwrwE9rhM/5WKvCM4VzIR91Aq3zztkgs0lkEmeSLJYviUrfjNnVPb4um8M9bm+PFjZw== 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 PN2P287MB0774.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:131::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:10:59 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:10:59 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 10/17] media: i2c: os05b10: Add 1080p and 2x2 binning 720p modes Date: Sun, 19 Jul 2026 01:39:01 +0530 Message-Id: <20260718200912.16001-11-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB0774:EE_ X-MS-Office365-Filtering-Correlation-Id: 3aa04865-8d06-4853-5147-08dee508aec0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|10070799003|1800799024|376014|23010399003|18002099003|22082099003|3023799007|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: UqPh2Sp4vxWHxeeH7tZ1rKVVd3m6joNiwvB9r6LsvV/+jx2fujIYBP6+qrpkXWLSvRQW7T/iKGYGkMemfIL3D078DuWV5t7QVGGMxX4jaDqSqVtUc2lhF7HnBmv8vJYd63MJutDF9bbpRIVrlOrYsuG67uVXeL0Hkrh4ezzH1Uv+Zm2C9MBBGloqaOdwSN6OT8XIeL27Exqam96K7bgjxHKDFolBgse4Dif/ZGSWoBTp7fcp9fCpcw8E7SVYUl3BK3E5q4d7C+2rj16yBS+0/rDZISMl7UObu406Vn4cXbwF4X3BxXwp6Jm/ScLGi+Gz9UgvAynRdWTmFcRJfkOqYm2+ys7xexOMmRJpM5AJpK6kOTJrKadjRXhvI8y7ToccGcllgnb+vzp55oDQT5qiy80eXDmW9z5k4JBZGR/7Dc6ewngodsNX6Tn+ddDdEIoow2ULWbZnwOvEqmm3NL1Wij8ud4zHcS15iIjsnJ+80osKBt4fZOkzxbpmSTXTwXO5ApiLpxxyuzbAparsjQKqBoBD6nrDrNAV93iAnZAekyPT29N8lmg83OR/OIKLWqluRUkDKhWK57Ox7YWF7O8piXzqDPQkcQNHaCt96etezJvu4ecYDbv0MISj9qc0sWDOhKNFp2Kw30F45aFQa3OCMvb9xhY8roWJr5IEuwNSRS0= 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)(366016)(52116014)(10070799003)(1800799024)(376014)(23010399003)(18002099003)(22082099003)(3023799007)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QkTNzF2nrHFI+jf0kl/vSiJLexvgmMtVeXkKxutf2SAI+t1X8KWSuvx/cdxB?= =?us-ascii?Q?kaHo24zrbeDlLGlVcLljINFi5K9HmSjJaahJ0UJmv097Sa/pTdnZLWNRx4Ur?= =?us-ascii?Q?L43P3/7uTu6hXTxZ1WvSktBAuaouAtkl43psNa9F6+wFmhYKtvUvMQVHiED+?= =?us-ascii?Q?/MDhCJs/8TtuZln7qjnuRVepkwh9ISzHkt9fMlvPwe1D7c+QQRbtPaF0ZIW7?= =?us-ascii?Q?3okggLrrl3ctjjg9o873zEThmUKmWWFz1fpDPmOf+we/FRtaOhe/8pms7Reg?= =?us-ascii?Q?fQ35An9wRpwluH3nVH+qOAukmglLS4xqCXOVh4fOLF+hCQq4cQShTWJrN/af?= =?us-ascii?Q?j4JPJwGRDtB+5SZyg921sAJk4K0AO2GHV02LpO0ytWZtlCzCuPpMZcP2XQfZ?= =?us-ascii?Q?1knTkLTLUfjp8JNL5R02w6s7vv7a2yygd3c40U6HM/xSl88cJ+u2uWmhGUph?= =?us-ascii?Q?4e/Q7MxK0/IuX4HpKl8A7NfMlyBgc+Ueldnhr76zcsLwjQh0HFiRP45VfzoU?= =?us-ascii?Q?5eA223k50YZAH+78aY5kDw/E3ARj7gc/jVOSxBV05QuxcaAV3BZ8da5TyVsS?= =?us-ascii?Q?3u/SQyuxJ1/8ecMFadIUB++aKRFGmLZCc+B1jRDFE5sMK57AXPjquuSn8/Yd?= =?us-ascii?Q?FsqjkONCa75sgBJVTZPLIOWGAPEflrQ4YC7vdVjYMzf9KFreG3wTLMBva2Uy?= =?us-ascii?Q?fjgsI7hoe0o43CeixVHS9P3ClM2UdZ/laTyxVeKXmGHCvTi2QbbQKMc2pt4S?= =?us-ascii?Q?OpNtC7pGsQ+eAhPUcxzdpX3phHvSugrDpNFNI4P0se9VgDLA28bX+FWnpNYF?= =?us-ascii?Q?eYhPO1TMxPNzXNbdjxNR6oFjmtAtiDQm+eOV00ASmCyASP9ibCdfR3kiRIla?= =?us-ascii?Q?ikLpaWYCYXZKU/qsJ+2LjdEWSMm9oxGkXiaTJwU/BNlvWBxaFIaIHMe22gJw?= =?us-ascii?Q?tsDhworYpNW/M3/PpIpP37GEISEUs341HWT8vQjk3o5XEeG/o/c/GLVEDpiX?= =?us-ascii?Q?0SCepup9ilDdxppRypMYyrFpQ0bTXGnLgADcZ2D+MdbzTIxppE9BMQr6IaMq?= =?us-ascii?Q?73I0cw3V34G2l93YDsHX5+4LfYK6/HfucJbIMOgkWF4fnNqU8D3VqxlnNCKR?= =?us-ascii?Q?pF9GLTi1qBFnV/2vuEQZckBPGEW88GqoaNQ32fFh5cC9Y9xEK02sPCNwynX0?= =?us-ascii?Q?bXYOv71n31AT1U9UyY6vfcIEyLbTskJN2LslvyeXVa2Os3fkieAzBFdw8yk4?= =?us-ascii?Q?6CZk/eGdQO1A28YyWT1sPZYorlO+l6PDOaZAyHxm2MhxRYxdYvi+Z39TfpZU?= =?us-ascii?Q?MaUJ729P7o54w0+Qzhg3zkB0COjyqYt+u8yuS9QVdWYLo9iXJ69xuUCUWvTl?= =?us-ascii?Q?YaMRLecmHB6IYWVqh1AlS7q5fBr+v+BUHUu3Toc6FikQo1OyrpxrO2rG2NhS?= =?us-ascii?Q?3AkPCJfO7K/ZKWPwWJfOfwOM0XVJiWISeApdUDQKFYWAFyEod2PTsDC8Pl5m?= =?us-ascii?Q?NcRvFJySUdv3ptqE1cqLiwofd4YryfvrEJ4SX1ZBNn6VXngfN9cevEcePVKU?= =?us-ascii?Q?3r+kImq2AYggp/6fs1I9lK+8EoX7ShDlSG2IhiuT6LARUkcFUpmNpf51Y+l3?= =?us-ascii?Q?b6CocUuAItqtGpnsk06rLx+caQqJNNTZYzuv2Htikh0VWMg1lNZO63ghtSpb?= =?us-ascii?Q?s0hzwOslf2j22ArvBYICZtFagpd7kHSeZEe7f8am4e8qju+ZyBe7/QUoFHg7?= =?us-ascii?Q?aZaX+oFQOJqb5niy5d7VCF2OKI9yFaNSP9ZBdxwvOylp8Org1ljwnRLSpsSG?= X-MS-Exchange-AntiSpam-MessageData-1: jx+snrHPzOA587JOhGuUIEfCkHQiyLTiupg= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 3aa04865-8d06-4853-5147-08dee508aec0 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:10:59.0918 (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: qz887X/PPTSjeshDvnGmDoCFOzmzZSqGwOo+xmDAX6q0w5QnbGA+AIM+fJCJ2dbkW5wqzT7K4SDTlj/6scgx3vaTSHzL3mQB3omgVdhzDc8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB0774 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 3fd788bd8b20..c54b466656aa 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -460,6 +460,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; @@ -513,6 +585,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 { @@ -528,6 +624,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 Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020125.outbound.protection.outlook.com [52.101.225.125]) (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 04CD336D4E1; Sat, 18 Jul 2026 20:11:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.125 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405471; cv=fail; b=nXq2ItG89SVHZuZDDB4OvVKs4SxBWcK3dCyPEyS03WLPAhyEigeoaewv8Bznfnp6cGrfjOfVR/umyBN6KkdCt3k/gYubtF4vBiKQTdU+JpBDkfvrRQVHwcaWZL6naCriIxenbA7HjvF8PPho8b/z4+hWK7NeE/Ufr95Ncr2XiFw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405471; c=relaxed/simple; bh=9rJE0g4yJHGHvikXqZKw5GwWuZYYbbNoz5dC6lkiXik=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Srg2dOyf0tQupfsDk7YKseWb9ddK1s7BY27vd82GtQ+Dh4g7pEJY74gCViAbGN0ruyXfaNB+4V8ZAY65UGeltVBDoAjRUtDcLG8exPxYqe7kTe34HWPm12BkxLPtMY44/TiICfmWXsju+24g/+rnsDWeug2/01pO9d6pfQZLZPo= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=Iw5LR6SJ reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.125 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="Iw5LR6SJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xYzaS0DI3sSVU06MI4GNgLmr7HQ6VgvEgbZDaEJPwqvqUB8edCULsbiZ0tR8sNE2yI3LoCAnYIB/qT/Q5WAQX2xp+S946vahw3TZ9AvfFh6LD+2frfr5CtJpHJdCLLXFTeB5zDQnHQ7r0MExQlQVYGoDSLEmoxe9qFhttjiu/nv+X64qcgCC6kl9HlkvURgi74y3S4JnInXDDdCwpFm8nn8PGJID0ts9Kzcj54mmsA1Kn+dfciA9E30pgAI5XFB3E4En+SXWZsl6Dr9bUu3+h8pHRcdzoNry1Q2hRmyeckPCzJjdbWOKwRcXNu5F0JjU5w2o6yG8zBtPgV8LTAEXKw== 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=4ATgSpa1bA7EVzME8BH6eq2KERIMb69wPRvEuP4GA6k=; b=D+jiqy/4JUpOl1ztWvEj6QVNCBqWxDBExtfG+4nX7M9QGfYOdL2r+dCpD4aPqXktsrkuG8h5qPXDQ5w0NZQtV5EOhPvN+dhYOS9j1WMauWtOHp9ykgJ2aVHfbxOTJwb6aKKZHUlEqmBQzJzbcJeUrBulziiyUxtgJU3Nq8ySyMCG0i8Sbbo4fIaFKLCnMaN4wcCyrpUpNr0UK5xVWClPNFvd3hdzOWSUSf1oEqrwbNJuyjQH7QG95cOdOPJC9KfNF3eQ3QldDx+UJDZKJLPwXpemazB46wQrnWpWo4xb7c0JbGTXEYzLuOFy2QzspYDUmkaTmQgd2Pqwko0hSaE7cQ== 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=4ATgSpa1bA7EVzME8BH6eq2KERIMb69wPRvEuP4GA6k=; b=Iw5LR6SJ/B9jftDrDmOcgbujyZqoZViWF0XWhh8CKT5i2lEgaJ1bT3d+wcmtl8N7vY9A/1+jGWUvEYh/Ll1jZzzx3GxL9664DIC++SAzWbrt4Nyu3Il4j5DAeaoQXTAkmaPugvBNeMDKgyYTgrCOyuV2ArG7i2zQpkH0N1tH7NKdskmp/1sKBk5Qeyo7vmSWtLjJUU/bPke5rqAL8VTOYSENIDKFp9/hz6UuQB3mujigtiTWWXdAjY35Q3sy42TkMrLb2giDmEuBkO5m4OqI+zZGUGGnciwrey62ofQ3fsCOMts7YGrzPW6S3eZ2hzFPVZjxw6LjbqaZSpBNedgjLg== 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 PN2P287MB0774.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:131::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11: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%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:06 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 11/17] media: i2c: os05b10: keep vblank and exposure range in sync on mode switch Date: Sun, 19 Jul 2026 01:39:02 +0530 Message-Id: <20260718200912.16001-12-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB0774:EE_ X-MS-Office365-Filtering-Correlation-Id: 96204b8e-9752-41fb-d318-08dee508b360 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|10070799003|1800799024|376014|23010399003|18002099003|22082099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: /T0w4LLd1Ybqeyi7yxu8fenCwbEUg6hUsunmTNlZHAiXh6tDBWotf1tGeqp8obgizyI1j0TPGpQ0qwoFnetKIBXtWB4nrUDzh4XQt4QKeDf+rw1z8JRqNbziU1ABBONZVtbKhSdV4KA2AYoQ+a9pUEYPL+030n10YU+vTpXMSTZgguSajPfo2KXWv5t2Z9fp/kpic1oTlE1roYryjKA4leIjSwrPYfHCwDX2jphiRsu3sJEqlcrNxOiJfIjKNB/13UcVtxA8FgTwRQS3TzfVJhyL7sfTL1xTq5uHx0YAW9y53WUZy+axHvPhj1FGFokThfnemlOuAPSrdJxCH1bekIwoskVgTsRr3HnHUG1vZfAZ4rDnN24LSiu82Ewh3rfE2iImq+MKjXJ1goZaxjFdeAEXvlWw/AGWqmGExQ3hSV9RrPCgs34L3MPSK8iQJER/QbCgtJGMHqQHtCP2v8SgheDg3cXBYIiALpJLhGI37h7cLGlfJwe9GBcfl21RKpcNi9h7t1gOxUsm5E1OFAjgBPB/vmCulJBh66tsNENZhnYyLPQi1QhbDHvq9uNzCjhHhI59oddlX7Jq4ltPWVdaF7H+vV62pHnPHQ05KOojxhcAQSx9rsPt1Yi5IhrfGPklEOspqVzBu09qGBwPeufAcSd63MzMU5uI5nssmvDdLjM= 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)(366016)(52116014)(10070799003)(1800799024)(376014)(23010399003)(18002099003)(22082099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?swEJrSVr+V7o44nYFAuVhrtl6viL+YgKxF8O8OF2ZkPcoICzioNuG6cmqU3a?= =?us-ascii?Q?EU6zZK81x50RVHzqJimbSmjN+JlM0YAAzItcZlyGAKfDO0uT4f53DAw6XkrO?= =?us-ascii?Q?P7T4Zq1vW2uSN1zhmheFsISIVSVLX9cqqRv0Jmzs2WLdkfEVOOj5uMW8Zyxb?= =?us-ascii?Q?sJ0uNDm0IBjUGsn0ZarpYn8PgIdx5+z5WLCrULRwyzFAtYfTGeE5fxmlBGHM?= =?us-ascii?Q?Q1bnfxYuMiz1w5I51wBqSNOhItDDCKqYnryUptExD8pipn3ZQXFOrvk4URvs?= =?us-ascii?Q?E/mIbex5+/yH0WZePDglTK5u0y1WFpgiOXTi9GeknAqU1NNlGdLZf3KCDhOQ?= =?us-ascii?Q?orlBvS8tkVoI8QMjUpUWf4/WMGyFDuYxfqhyPo8dBYJPiNJVsfl8XV+Mp1PR?= =?us-ascii?Q?1O9Qvor4csyXkrjUW7GvInZkdR0eJC0fjDENi35cxjem8Hx+lOpPbyWEv4F3?= =?us-ascii?Q?uuT/MpOap89IHEqIJxsfzB9U0+RDF8KeYA7b+oXk/1sZpMW65SpUQJlfVdTm?= =?us-ascii?Q?1uSwkoASESL6y9pteN72NHAQg4xvpxGfNkMOcGCi9u9lf4GeQzdNe++uC5j3?= =?us-ascii?Q?l+GV+62l6s+pOeRdo6nvkTxozm2Oq7DuFe35sKMhoCLyyP4TmKwVyJkiLG/3?= =?us-ascii?Q?GVUQtmhgGlsPvtYfBS5rLU+xupyDltlwM2F+5Q2m5M7GSPK36nPiKCmGZPoA?= =?us-ascii?Q?9lIhDjoWu1OGczLm8E3sUXqfzAM8FkrrT42+xYJc0qBO1emgTs60APg8PbCe?= =?us-ascii?Q?cuVRt+QUlBAplyKZT7C7VrAJQE8BM99tBivqsJiMIed3Cx8qJUk30qbUHR6i?= =?us-ascii?Q?NkXb0N491yxbY1SVEivo0RHPJeCeF4wASqc9ctW5KkklwPs71UEK6sp9l1Tb?= =?us-ascii?Q?T80wy8rpzBZUrLWkeItDRny3AZDjV8NQAxdV11aofAty3pV/OR1gwqZxqhZL?= =?us-ascii?Q?znu7tlqq0GVZNit49sV1Me4+zBKgGGs+8EXdU1M70AlUzY8ltxbia1uF5EK3?= =?us-ascii?Q?/lwGE0Kx84NtNxkpwriJZNWYypeJje2dg2+4CAhqd2uxt4EU2xY2NX9thbjO?= =?us-ascii?Q?A5Mi9ZrLsBG5N6sPUdpoFQUaTghBlGBehogl5/VnVMtR91QH7jqcMyx/7urP?= =?us-ascii?Q?mgQZ/Rq3s5RgPKySe+3u6LOxtSL5/KZAXkqVTpmgfT8LAjgPtchEeVDvCUNK?= =?us-ascii?Q?ja4XPyAm2yukA6N6IwyRrSJEfLaHVc/SEa1/Zo1NqnZ6Ga6RH5+EMjOgDoq/?= =?us-ascii?Q?U+Cqkp/G+tQ4QLNbVlLbFZVXu/CXLoLmNhigq8SguAf1yUrH9Wxtpwyns5BO?= =?us-ascii?Q?AibvTWNVPQEP2+ieaZltYnpFEGXRSNb0pFlRDKQwQO1N9EgKhqiJExicWfs4?= =?us-ascii?Q?5bIzpgte2/KSabJjBtsQW3fRwbZUeuxRX50JvgYB8WauZdjPXU3uYlRY7QdN?= =?us-ascii?Q?uMW76kI9ORIv6JWnZraV9EJctoroEKCbhj1uS7mNgdYJupGeKBtiMCZiqanp?= =?us-ascii?Q?voJj/L67eG2MQ1Y8p8nE3434D75H9z/E3gvs1y1Glp2RUYoiWCq63SDfxeVe?= =?us-ascii?Q?YhXQsCZ8BhUGosMYAsqlvgiZBaMeFOcGTVk/71co1SSsYCmIRW8OKlfIAkI1?= =?us-ascii?Q?l6a+cN7TXrbCDyDDk6R7Mttl8lFJpyQchNSMRuStse3dBISUqluxCREXuVLe?= =?us-ascii?Q?Ca0q7QHWCfw9e9urv0OWClPDLxo+UqYaEX1l5yiXvrOrQjvuvvcN+7wr8Ylo?= =?us-ascii?Q?8mXHjoX9/ryYZwduxzzBz4EJP6+8bI4pWDSwVA36DpB8KDxV7Qau/10JvsPX?= X-MS-Exchange-AntiSpam-MessageData-1: LdESJtSxN3Rhgtak67q1gcyNgJmWGJForJ4= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 96204b8e-9752-41fb-d318-08dee508b360 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:06.8478 (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: M8PvTl4DzcHQjExd8veLNluzDoxUuPbaKE8Iiz+qmoA3hRWWN2bNyznewH/wqoLv80EpvCUx3B5qha3wkHNIgpH3u8amSA+Nxq38Omm1pas= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB0774 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. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index c54b466656aa..d124db74766c 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -745,13 +745,23 @@ 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; struct v4l2_subdev_state *state; + const struct os05b10_mode *mode; 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 + ret =3D get_mode_table(os05b10, fmt->code, &mode_list, &num_modes); + if (ret) + return ret; + + 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; @@ -759,7 +769,7 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) 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; } @@ -842,7 +852,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, @@ -867,10 +877,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); + 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 Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020114.outbound.protection.outlook.com [52.101.225.114]) (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 7543237187B; Sat, 18 Jul 2026 20:11:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.114 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405479; cv=fail; b=YABgeFAA8oEjQr8rGFm3FYbXDlYkt/KDK1fvO5YUOW1igkO4ZTf0nmV3QOzgRsScx5yI3VczLwBY3nIna6tzkve8fS7/m/filHkU6A4Iau54CYqLMQsBbJyaeG1/3KgRJq3xaR3ME0JAv+q2fIPp/ABo8f1Ekg5ZX1vHtUFymMQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405479; c=relaxed/simple; bh=4m4CzQVKT4Mjk3Ded31+r7Dv3tt+HSulOC2USJta/6U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lI47L7++RrAz747Lc/YbV9DPr9/aeW6V0OZOIRe7ULF/VtuRxGmCKnjHw4UwhLN3AWxZOlo7NUqllDnb46s+E4VcmoyAZd7IHNh8ta9FvuzPhtgOuBzd6xSMY9j+435yk6HcP7W06+i2z6ygvXx45opbw9nuGPWFIArpz3lHzpw= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=c560HAx9 reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.114 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="c560HAx9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I2t6Uc4XuLssFxXxLLBHP96xm3E+hdRYHEEgMV+NDIwZsGoNgvzgZYfbclTdV4NNHTsxDpTNrACmMoCRYWgXJgNZStv8w18EvlSijqGtYUs0KAZq6XJihGXAzAdeHp/Vg3UGo53Qg1SILe3d7NRXlLE1thEb/WmwnqDvrFWHXErRnJM6LRFPfMQFoyihSUT6lSCM5+v/LECTIVScf1iHxj0vJmi2TlIEc6WEny722gKb2L+BBzBNeLiRYnErQXbmbDPD3/zsx2XkaKKosNupY83vVcKA/dI2uXL6s2rLfABPRZ9D9Dk1AI50EalGAFQzKcBhdtPfkpzDUOq3EafS7w== 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=55WkyTp4D6/g3NGB00m3oqHmRuCgJlja+lgAJulh1DQ=; b=dNYkEj0UzBt6mqKHHiFTojqk3IbW6LI8Tu//x46IeJClTE/LLfPOtyof9yMUZ/eDawU3czdd755hVpzPl01E7WTlZTCrXTe+OxlCsjcdisyn3nttpa9PIZURQuCb9BDQjzlXLiq0paVd0XxQXMvwz+zn33Rvj7aId0Wm8zw9gRjJ9BSM6cwvNbBX/Ti9dpA1sEdm1LHl94MDt0ZRU5BOAbfmBW6F9bZZOtDWY9b0maRuh81k7MCRUp/8uhXfV7WrmSKFgGp7JhKHr4u1FlgI735G1edFh42hx6T6EpVOtR0uiH/FdxbivnFH/JtGfrUA8uY0s92x1UPXGVcRJHHAsg== 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=55WkyTp4D6/g3NGB00m3oqHmRuCgJlja+lgAJulh1DQ=; b=c560HAx9QEdEGyEIyqJmK/lPLDvHW34mME4ux135cJauWaGnryC8KutyrL5eL1aPjBq4lQ4FVI1pB7aderwcIyptMTgMiJXyd1xhDWVQJxH66TurEqgrRPV19ZpbcNeLbMr8Gvp+A3Oza5kCSpEP//9NoSoHsqvvUd9q8stxzK7IcZUgkhfvDlPpVSF3HruG8RvNhbaEo6UbhUpyMVhso2o3m1H/Eol+b6YRSOfgtKJdYXGRJVv52ivJMN8izkVDN6uIBZB2KZpIAOxEGIvS5rjZcN2rch3IZPrB9VJugVBMFcOFdIDbzt22WNQsOlxoUidX7FVXL4TZ1QxOGnjd9A== 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 PN2P287MB0774.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:131::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11: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%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:14 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 12/17] media: i2c: os05b10: Update active format before adjusting framing controls Date: Sun, 19 Jul 2026 01:39:03 +0530 Message-Id: <20260718200912.16001-13-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB0774:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d53232e-ebac-4aab-83c6-08dee508b7e7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|10070799003|1800799024|376014|23010399003|18002099003|22082099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: MP39nuU7AEbE6BO9YINhCp98TrVlp4b1J63d2GZrg5IuoQD3LaK2imAXQNliaQEnXCeV1gVaH4KYvraFR+jCL3Hd792RKpp5IZ3Hr4IO7rmTQshspycGdAi6xdk7mjM7al9Dfsxa/xhDtsIB/MwtfmhLo0Y7fAiTmFWRcH612ZBUzVFonYmdJvZ5Fv9PhHAJd+MHWVb5zpQOjz99li69Q+yVFvUrisOsV+LAbN2G60auvPVS8amq0xtWMtzCmSTgb/r5s/P0DUK2M+rljpoBLDZfDY4pVZOxd7E1Hri0oXz+1qvthsdOJYjXECBOk+mxf5HOXSPkFvJSrNY9J7wuc2Ad+U3K6mnsUheZejv78p1aBDX9fyRIcbWylV8FL9l4EZnKIQKylNDWoY9RGqov9yrgGGEmdhMRVY2i4DsxOs7p8It6ev/Itzf5gjt/PJ1z8tsb0/E5eEudvTl2xWiBbpoLH6BZhDgkI3LADbhwHbvlYTynvEPZJR6UBh7uWZBtiTT/yr8DMdzk/ylynvGZShzn49QMa+reR9sIk6lzDSn34ePhajA6ywU/BZBvU6lH3vS3/AOuhRytXDvgJz4olFCa4w9faz4Gd5d3iJ0wxqIS1CXtYGAXNybfOREDAPk1WPmVdZSSmqU0X+loewF2YJma4Xqq7pwDUybJvUXsfVQ= 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)(366016)(52116014)(10070799003)(1800799024)(376014)(23010399003)(18002099003)(22082099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NNSV05NGeh+OykR4Uapl0egzeN7mn+mNbVRFZb5DDcogR0kxrJWCsNb3p7T9?= =?us-ascii?Q?HTh7w2tKNwTdbo2E9W56b7v053cAFVoNPe9mliTlc+HdLlIIYJUKHvNxqpLF?= =?us-ascii?Q?YHmoFNsU0+RWV2Usxh3nN/LL4Ji7dk9Dq1dvSBvKMMhea8baYq1b0G3VFwuc?= =?us-ascii?Q?5fJYM3jKmmbwI3YHjXaBtxaquAAUrxNxjfy0oLCABe5CFd8YaHJTpGtF94hb?= =?us-ascii?Q?/Pxhj+l5INNUlyl0+PYGxgVJ8bg0wAn3QPno75PUQXU8FiH/R3aBY5gxFrBA?= =?us-ascii?Q?eZd60vwDt/qjUkh8Oepd5gMGSEtYcr+KJc1gMicL/zKP15bVVEZ+Pf72NAuH?= =?us-ascii?Q?GLMkeWtnwV4ZcLss1tghx2KAERBNYJuR2tjSPyQtO9XMkaan5tnzgH3oQt0u?= =?us-ascii?Q?mA11pHd9LnTPgG6+7i3py4CYf8Pr2jnCN/dWPPGgOX0WUUOAW2dRSur+Vf37?= =?us-ascii?Q?jMKt71ewQFQ8FWo5OT4RtiFzPc2DaLJFkADohTyZ1QbEPXndyLBWczkJ7dkn?= =?us-ascii?Q?y8k9Vyw/aPlZZGY4tbGXPKQbgd5/irfdeRbFXiq99TSzhwJTZqpP5ClCKOVF?= =?us-ascii?Q?DV7PoQFXBEynoumK3ttNewPfbEzBuwV5GtUIWOkWqBJsBbYvwb1KsZz3zCcR?= =?us-ascii?Q?RTVqk4yk3jsC6fxbhW/r5k6HqeLztab4iXUI9zTpTpbhlrWg7gziiUgn4YGi?= =?us-ascii?Q?/qO2jdp/Ss8PXnCYCq8jZtUaHMuzg4PE0TYlNWjwAmXbBAoxafA/jqq0VRN0?= =?us-ascii?Q?272ra+LH3DDDwGzU5IjAYJY/l4aXn931YNRGw7A5RpkBRH3UiRwWr3t8kzR8?= =?us-ascii?Q?D4CiwsRrOGPhUm2/6PhDTDuXDr/ed4Yzi4jh+u77DN95Ave48Qo+HNq2kidU?= =?us-ascii?Q?rZhyD9c9845tQL3l2DSDQsGd5/MrWrhQ7kM8gW2NzpaKAyOHdaOfFunQnuhG?= =?us-ascii?Q?3lL0mqyBqSIOPKuLxxIR4JV94/pS27Vape+pfEflZ8+Va+NWmf7dugjmkviU?= =?us-ascii?Q?NeaLQnlKZ5I13DsBOrSWvlpK+f0dL+W6aV5dudKsueA0eQ/lgj9ySKd7UDJq?= =?us-ascii?Q?qDr2cIibnM99RN6XNxB+/9nMcQw3k0zf7MeVsT5CHabt5Sa50aTnNamf8zZg?= =?us-ascii?Q?oJEhv2IznyjqNEeX9eIH4tKXjuJlWoAQr/e0iUHpQr5rFd1BYgLLrFt3xQAj?= =?us-ascii?Q?etslLFZVv/XrplPrAZ/QnecDujvlQgA2fyoseoyRFZbzyQIxakGKA1pVKh2e?= =?us-ascii?Q?2DcJXu09DaXUbyB5c6gucJLmppnhydxCqpdw7J6Bw8BZT4wImypMRHEdH5Tc?= =?us-ascii?Q?ewQduRi7vvcsE3qxfmguLDgmBtLDWUpP3TYj0haIyl8qUSKLiUPA43J3NtnO?= =?us-ascii?Q?0H0qD6LfuC/e2PBrtaWGX4zvChL74DD1ChnTKWlv3DhS+UNx8SDhiReNSRyw?= =?us-ascii?Q?oTwaT6L69BN2/rl6i2F41Bllq7CsSLZqmYKLgveTVLHo48BF53JH7nIMMnAL?= =?us-ascii?Q?71JqIivZ/+4k6WOXrz8dOh6xWolYDu7wh5qkHpLqE+hYDxlR6stopfMkKQ7l?= =?us-ascii?Q?7zbkfaVGW2xuftfRN4F5iTD5aPTgZU1uioz2kNkEwe0Cdb5pq09o5Cq1KiQc?= =?us-ascii?Q?3yXXLjapu6Q3mmxdrm+v9J3FU5l6ZllKkjCPRzVWi8fFWuMRAxIa/9OAGiTW?= =?us-ascii?Q?sQevoE7JqIr+KZMor3KMq2RghkMqnN8kflWfaTnMZWOLq0umULsVmHl+32y0?= =?us-ascii?Q?rtzwy5wWfAUK42hzHPAmBQqPtfmcRAfTKFNPopGbayouKQ4JrooSAgOio+Uu?= X-MS-Exchange-AntiSpam-MessageData-1: us9HwFk2nMosocB0cvTRyxcAJvi5bzIhUfq8yLQzT947yQgdPS+DNXsx X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 4d53232e-ebac-4aab-83c6-08dee508b7e7 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:14.3829 (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: mZndiMCjh4pFQroPRgC7AzHyQKbtpkMPx6wZ3UzpWrAf9TbjfF2c8awAcVigNSAAe8i7iphNazj58M1W2Ea8UlQPKXkmhN2U34BVb1c1Gwc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB0774 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 d124db74766c..82a96081fe21 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -907,14 +907,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 Sat Jul 25 04:19:34 2026 Received: from PNZPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11021075.outbound.protection.outlook.com [40.107.51.75]) (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 EFEF337187B; Sat, 18 Jul 2026 20:11:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.51.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405487; cv=fail; b=uBWTXq0IzpYP2xxL+x+UN69edv8WOjZebbb1hj1T8oCPQl1PgbYD3Z36ACxtTOjhU8BlZKCLcua2VBZLzcNzkK6VkISteLrsi9oWIr7xzuWGa+5sh3HqGcKpvdp4iSwk3ydUqNpXvqZDcZqBNZkLTjosm1+dX3aMfqhFKpxbEv4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405487; c=relaxed/simple; bh=N8hi+fQeu74z7Wt0xRY+tMq7XjrX5I15PQs+9FsPqTo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=nNYKqWG+cJ1qH4Rnuz/1WdSb4aNx/aAQ8e7h64PBFt9ISjUuXctKRzDZAMrDKeRbynM1a+J1UkqOIKRUuPezrdWIXFH+y06jDs0c3NpYxMtAEtrusG/1bg8EJjAd1Us+bzoK7tkARJ7m2PE8K7NhhcCmBLFOQkwH4ypHO1WwgUg= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=IL14DFqi reason="key not found in DNS"; arc=fail smtp.client-ip=40.107.51.75 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="IL14DFqi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rFZmc1xttwyAWlfyLDYW/WI6J8VFUspS5OPuW8nOomG3QgiBFYUtVD5DcuaLJBhprthoaXo5boDxMgiEFRdFacmUgfSzbs3gIjIn7BYYpfJQf3J+oDYGH6NDmirs0plu3lovirCyhOjeWuKHrd4hvixUjbhhZs3X6qlaDuN4vNQhYMmai8FB7w63j0I+CYcV+hkrxwfYehDLzjivJ7jvTs7j+d9+rLlJxt9CQyMVdkLcC9fHoQNTe67Vu7eeCNneH85SGBne/K8GIAriFmv4ZNTXapxcXjv54ekhZtXUQfjQx2Mil2B46K5BJEFLXQj2oY6HFyEp7yFf2OwYVtUBUA== 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=k64FrxwUjxN49bWCIE7+MzJg62kEIITycdwl5Zv7oeA=; b=YqokoLgHsgJJaV2i3Us3x9rvQ4DCvW+fURu+/HpuzKQOqXlnPFA5CwUPa9GlNjb5j3fFoh6GlpitIPr5Vyr0xjIsjqM6zKOkK/aw11ep/BmOOqx5BMHb32meBXcFDRlABNASvX+wf6rkSeK1yIPy8Rk1Dy3/nWGf4kPBrHdMY833M3yYWfXwMHzyr/+Bx0kjjZmy6tTWnUFvMJkgpvOdPS5v/u0Nq3zqNrxKNELVilWkPQXuBDbx+mXi6nv4prSY+Np8YbqDafzKjv0ARJpDQYr1fwWPdC19CUw/jUjZ3V42Re9aMQcOJghfmWoDVKPL9I9BnbN8fSZLwv0iGDBEZg== 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=k64FrxwUjxN49bWCIE7+MzJg62kEIITycdwl5Zv7oeA=; b=IL14DFqiG5AhnAC+p0AT9mShOrd6jat89imsB9j5VrRgGxTuhspTFBtVlo7hmZm6qZc5SCNOLRM0KfAbFFF7fPn0a1L6fuz7SBv564e4Zd+/2QGeYix/7lUD8tajlGijQ22e970ESVPhKSyDyk0usbbfgIjGTN3N5cciCROm8zdQFvoQktMMb3gyDhzPDUvbtCg2MQKmjjN2ZY829IYpdtbONhxTfLaqnAxFfkHO+miHUOHktdN/XZW5/nAZTsNiacEdjSblWowlCpepF/Y3eRPC5MDGy1dg1TEm1r+9MlGb3XCO3qsCHqlUlWGjW6ptyU1Y+iTdbvnvnCFSNwtwsA== 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 PN2P287MB2078.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1c2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11: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%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:21 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 13/17] media: i2c: os05b10: Rename vmax variable in VBLANK control Date: Sun, 19 Jul 2026 01:39:04 +0530 Message-Id: <20260718200912.16001-14-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB2078:EE_ X-MS-Office365-Filtering-Correlation-Id: 91eb37e7-ed79-4840-8829-08dee508bbed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|23010399003|10070799003|56012099006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: iUTqVrDtHnUX3UMyiHoOw0a89N91m4tQzZqtXzM+YVuvmUDZdygIsgpGWqqPWCnRQB7q+e4RMYTqRAT/a23m0t47acDVvEQVqEJTdNXH4670tfN05+7RTpxQniR74ntYtTXXj/Tn0PbMrj5uotZuvXdp1IHCfAn9ZKVwKhJ4Iji6UU2CeyYajDowWrfB3zQfwAr62J4mpeqNI5GG9k0+OTeK6ElFuibosjkNP/Dj4avRXbM1gRAQ1UIuXCIxjVJLq60IiWrHsPXtW4clblfew7DlJM+k8+9DbmNR2yQ3o+XP4Bex61zuhwmTvNrQhwlW0NqiJlhEm0IP2cBQTsHtbGvxK+NNLHlbxT0a+hI/qG//3xjLhoAe7QvY58XPvn9TTgSCl7mUz9NZOGlIcbWxtD5L+obCQ5hOaG/MsYiAj25JnMzSm/8IgE87I50xnmng2z1zfj32KXOVnZCnr2vGkWtmfZEEglxPMeXOtTJ8IYIE8yJtgKjDCfqbKPi/g/ZB5hcugASCzVcZcnGOj14w9lZsqHtW+cY4E0orsu31nkt3AFhfabXLdAlGm5SrjWGKwZ4VwZBG49FXjUC4LVEJ6os0/4tP1RbYe8xX7AxKVBC4nsutEPXt/mKpwdOrufLxGN8m+2jf56stPOtz52rIN450jdOKnMf7+f+uHOWvwjY= 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)(366016)(376014)(52116014)(1800799024)(23010399003)(10070799003)(56012099006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3N58uXFXd+7hHNV6vDVYuHtcyqOti9o33BcEihs4+XJAkOkZc2ZaWgLNQbD7?= =?us-ascii?Q?jFnbKgBdBK2W78yqsSVDfslR+D8XdTGkdhBRriEYNx8TRbKpzcMqda6NzFP3?= =?us-ascii?Q?eCKGUUIuqKKJIjdhmPyHLKSE607WCYmicxHo4ArajCqI1L2COR3XUwKNTBUT?= =?us-ascii?Q?GRtw4kP4xqQgLoN7tDYIFseIc+OV1RMGTkg2FIHdc2j6ExsekW1nVjaCVU2g?= =?us-ascii?Q?2cuozCFkFQZrCabkCyrNrCUmm83Gl75GJ8ofcVsRd2B/eQYbklo7TcykyOUQ?= =?us-ascii?Q?GpBqfpklwqImdNxQoi+JAuXg4uZqAOrG5wu6i+Eof1AMijlwPk38QWLeegcm?= =?us-ascii?Q?LPoR0356M3In9YefBqk59E7LRJ/49FD5+wFtuv6eJTVrbb2qxSdgWjW9WHkC?= =?us-ascii?Q?GZBnSJT0JEcYwRZbfTwnFajgnNh4wKVTKAjrDNI2/CdnoQCGbMgONO5jTY7t?= =?us-ascii?Q?BYgzEgDd4Zn+VYcxYGpCsPPdaQXJH1VunCOGDFmnUBJL9rVyFfqfXVh0JRPr?= =?us-ascii?Q?zvnm0/7NJRBaR7dpry0I2jY5kMBFrJEdIy2qotXLUrELBhQHL5Chgz8HEyPg?= =?us-ascii?Q?3KWqbmWQm/dfu8EFe2ADs+eo/3Bqfdhyd0YYvXNqgrAwBCkNILHwdF9VcAdu?= =?us-ascii?Q?hlhE/xJoTTyJEb+Xl8QwSCKYC1WD9J398SL1172OUMzV3h9148bcr8DJyvSf?= =?us-ascii?Q?kLgPnv/dtzULdkEBsFuj0mEcrIgVpV/mi7VcmQlId6IDLVOT1P3pMzLI6wjx?= =?us-ascii?Q?IOqxgXk4MfAlALySFgMS70P5Yj4hJLGFgHQzKw4j9pYXCSSBSgwh2KbE3O5M?= =?us-ascii?Q?NpdnnRVWVdQ4lJqLm7ey1v4550gaYU6gk0OBUMS1wxHiF5Xuo0Xz0iCsWqG5?= =?us-ascii?Q?ssD3chopuQgHVzQMQgiUh4zRdVQil1jn5B+gamVapd0lwGd5bO/GKdwnczy6?= =?us-ascii?Q?sA45aUz58jfje7L7xsn1WWWqRGUuBQlpIFGTSg7WJDXLYybzWZYmJSlig7fH?= =?us-ascii?Q?9M8jYGfxTwHxscxmbPS5BH9V+2X4OW82QRhg4TsvvVMChOjNUMNKK5o5XSYE?= =?us-ascii?Q?5FRR2h7Kev58u3z51Ih6Q4s3FdmNr+yqmc9QaxVjAZ91cjjOjpc9nFM7LGqv?= =?us-ascii?Q?4Y2HZ1xgm+Neo80BCH5zoq+QEvKlvcrBdokY5/MbKXjWlP4q70UEMklds6ai?= =?us-ascii?Q?B6egYV9T6RDMjYfkXgFDnvNIjSVxSIVLphxzmYjKnM+WOIDjopzIpxvPDtby?= =?us-ascii?Q?Kc8IY/DC9b77NPw0Va5eLZpyaYiA1L6HxNuSTxrUtm4UDETo6UF644u5SGW9?= =?us-ascii?Q?Vp9mZYtIsghnZzd05DrJnEsY/S4Rn1vxdvIXZSIFuEABPx9AEu2gGUsmzI9m?= =?us-ascii?Q?xRYo0Txpd63TYcsXvyISjH3qgkFOVZmq46YnHJSLIB4UuWhiwMPclAGkbIFC?= =?us-ascii?Q?7PmmqGLADPgeQ176vdTa3YwVFAeO0/ZmgEvswu3yOrjfLZA7vet1o/ziiSVU?= =?us-ascii?Q?TzX+1ZrAqvXpBy4e3LuYSkhYlqSyJIWRE6AGA7vgIrtX84WhfmQ2FSlP4M/W?= =?us-ascii?Q?GDMFYHxxEsYWDPlwPmKzkIm5TZoWeDgGD9i6+K6a01/GkAD6AHZ6jw46/z03?= =?us-ascii?Q?nZtnXuk8YeXGPuLqWNNjJvdnMerzbADLz+Uqk/WN7318LqwXlkhkXYYqn5xG?= =?us-ascii?Q?JbcNQ0rr8BEwXyAce/2WWcdXjwbFFCTeypN3DFV/7nbIH7eAjfPEEhil0zOm?= =?us-ascii?Q?NHeBBjMllVaa7w65GbOg5T8hXKhKK7jsrAWL+cpkQ+BgcJDLfJ2F/tlrkFnL?= X-MS-Exchange-AntiSpam-MessageData-1: +tL1elNEvJ74CIoXwMk3phKGnB4kvbvhLATJlUPCzkG40CHvsYYBOWrM X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 91eb37e7-ed79-4840-8829-08dee508bbed X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:21.1505 (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: yZH1b1E2U/TDwjs0gxiInJeHnIRdUGmoUblJI3BrKXAR7kpZaMQs6R8tfv3ugXejTynLA5oK6PX0RBdxsmoBEfhbKVy4cgeCyzUMe/ozMIk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB2078 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 82a96081fe21..876186b22f5f 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -750,7 +750,7 @@ static int os05b10_set_ctrl(struct v4l2_ctrl *ctrl) const struct os05b10_mode *mode; 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); @@ -779,8 +779,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 Sat Jul 25 04:19:34 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021079.outbound.protection.outlook.com [40.107.57.79]) (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 38A4B2FDC53; Sat, 18 Jul 2026 20:11:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405494; cv=fail; b=pRB360LRMHZ91aAOIByumivjg7SsoBL+iF6LPWLPCGyuYILUip/smT6PQedjbUD41tzcsBDOGbguEsPin+fphgHq+Y+KvMMYSG5VRJChgo8RCuXiNY4eL+xLybT0DmtjlI2QejhQgZ7hBXJqrEYHTCcin8zvtLnHWpJrCjX7txY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405494; c=relaxed/simple; bh=R6igej2sY32PZKfEW7CfKcCECo2KcHBINFR0sZQnucg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=UPFptJG2RpC7/GUJkUuAbkQSAQ6SGHxWTufUNC8/LjVy5sMjHoDUt58+KlQRg0MbZyUVEp9m3dEEJUGerzFw3RoN5v0K9vtC9/L19W6fGCwlPeXavYj9Eyit6mj41droP4tV2LtiW8lFbRbxGRi8/l0XbyzmbX3FyIakVpRv9Ts= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=VEBZ7xGB reason="key not found in DNS"; arc=fail smtp.client-ip=40.107.57.79 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="VEBZ7xGB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IrbxmjFcHPAJC6NLq+p05Yu+r2pdJdNMA7Zkbi+flCl6hLJVkEMCqe/PsPwa7w/U+WIgEqIOLmiho/B0rlR18QqqDTnn/ERvbNsOwQKksr5QdODFYH2rlefgt41WIqoCcdQyhh5z6TJf+XwO5+fq/Ud49W+FSlAnM6xV0/t2Y1WtaYdlJH4/jfvG4flS7Sd65Sv9J8sK/AtCszqHCVSMF8HsJM6nSdqffC2yoJGUr5hPfKFOLpP/+4SrWkOG0xTZJCKDzOjYyDucauua9dx0lT2oxR6p9ScuZbYr2UtBW06yAOjZhqs1cHpgzMbsqCNTbx4maXY1Xv+SZTZt4Knp0A== 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=B8cNfUd3jTaeRtDPxa8VW9gFntfPtsUZq2aQpDVoJrs=; b=kMvcb7pe8zkvo0bnahPw2OVEdBY7ukny+8qRl/06IpQz8YJvBRap3kOvd9Qd6EG9oY66KoxRvR+bCEky1Xap60tIDE/7hlZUGI75jpqWFxzU7E47k4wIcGTalIk+U9NQKvk0w1cYT+5zmIbcyrZLK0MDiKwMJKeJgNn3jQboEw1M8uMtOEELKb5cjR0bHnw+GEi4b2uifUtzqYsv6atI/eVW5uY4V+76/QkYFrX09ijGrj52Qy84Jr5Dw7cIGzqCziPEW4kvrnx87a863W7R3Fp94jMBohfyUslpRwW3WCcmbr6kKzrCF7wbeEWFzqvtBXqEtX4eNL0QP65uRx6wzw== 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=B8cNfUd3jTaeRtDPxa8VW9gFntfPtsUZq2aQpDVoJrs=; b=VEBZ7xGBedKO7H0sKxdUs74tEO/H0LLxk/CjVVpiqLuzA49ahN80Jui+ca6u0E4AjlPdogY4ZZm/CENZv7qBMWtSTqwDnI4EcQk6IioulIhvjAlaaq5IvHm3+gpeQCVa8fLMMEKYpZn58Ovbr017psOolDAlhb0VoNo7wJyGj8ffeNnmT6rRZyJ1TIE1fyjGs7BAp8If+XFTDw0n0Fd3bUBUT/V87txdxKdm9+Ma53rHzuV29aZY8nWi0Za0oZRmhQEFoMZBhACAhJSGAp4Cn620s2Ujb6olNOUjFhwD9a7+bvqIMbFGwfL9inyf87iYJyL0Ny1z24cJi3+wQ9qzjw== 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 PN2P287MB2078.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1c2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11:29 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:29 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 14/17] media: i2c: os05b10: add 2-lane support Date: Sun, 19 Jul 2026 01:39:05 +0530 Message-Id: <20260718200912.16001-15-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB2078:EE_ X-MS-Office365-Filtering-Correlation-Id: fa11a358-329b-4a93-7020-08dee508c09b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|23010399003|10070799003|56012099006|6133799003|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ZqP2l6CYSb0TZrpZ6/qeUn5zmj1yLG9J7v4Y54WjsxiD7OsjYqTHSZy+UEpc09ms1tKwjvgZezUHutQWzf/mheAqMVCRxsMHI8unxPGFEOFsIFbRXIYyyapDjkTktrS1hJFm81XOvgtPAfvG0wcohx2MtWeGFHZLOwxv4CZSe9u/vuVEUvmZzqLyJGGJpemdM8TLr/QHS4Dm7IwW71uExi9E3FoeioL3SN3y9/V8OW/6+NEpDjvfWuOwUGmgezc/Q122gy32G8nykRzDVxNnjC3ezvUQ/327fk3jd53sgihHjKqIzP6Y1MTg7feFml38khgw1oXBTxfClfLThaV5Vf12NJnAYyZBjM6i0pKmTCfTTS9GoO17jgQgz/5UGUl8HHFvZfy4GFr+Wa/H2HzgokL3Ymr/l9xiKX44hT6mnoEu29seMzSfN1Nxnl7/F5m5zoWgpXYL0RbnWtAALluDUVcLyzike9pfteIuV9b+v+xhUPTTXqfrJYN5lLNRyRj69oT5q8jr3U2PxDOXA766v9pYMBR+b4sJUpVLt+nQAMODNkqoi9kDJiUaS//fE7Jx22okoxa5X3iIoIzNCAc4KtZq32Cp2Z0R83kts+HaOZ+0Q8WGklOJGXTrmmlQAyB+2snQ3IdvZ7IDpT0Eb/mpiLthcBqWmp4X/bNvp47eiWY= 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)(366016)(376014)(52116014)(1800799024)(23010399003)(10070799003)(56012099006)(6133799003)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xDGl6yRxg8E9yBDQV13L++VCk4dA0NiL9G+IUaeR8iRwqawEvNkdijHbfBqY?= =?us-ascii?Q?PDbHuS57O7Mi+S4W/+zBxQwjuWVVlNn29skOv2zvLc8Q8McKU4WnSuBv4QPz?= =?us-ascii?Q?WcKKqEPmnB8SvHBDT/Co4rzE0ICDw3QJ11ssTCQ7xfocJ7xS+RoPEjnxZqwV?= =?us-ascii?Q?0wGi24dfCy53QPoxZv+VwsGHlZpsBoUSqHujth6cKRPZjzYOK93a4p8ERg1Z?= =?us-ascii?Q?Hs5prkGIGW7Pdcu25bF2mMFglZO4t27amvqWrnJuMXuFZSQLa7KmnxmmCTzE?= =?us-ascii?Q?DvlLigAQdB+I/rZoShB4mSCYjpYhuZwDw94ZrsuspapvPBMa8IPXL4ljmgbE?= =?us-ascii?Q?XJV0EED1JQj3dKIB8RHGxvSVdeHAtvQLclxQ74ODpP+ANYcMWvsSKJV4yfY6?= =?us-ascii?Q?E7NBQXJQLx0/CDutieb1OtEZtFCvFiTbb9outypB7YsLkeS/jYqmvH/VBuP4?= =?us-ascii?Q?I4lImo2Tdmbv8urudFqaghCTvkGk00iXIsORx5jQ7I2zEEKl/i63YcIKFgHZ?= =?us-ascii?Q?DFGxcIZt5tViRRKKAl3OqY41MV3grePsK6psWYgl3TLKD+Ola5alNQp2XAbt?= =?us-ascii?Q?y3QJZ33IjK+ZtEL7nZhfZJCY7UK9jZMivl0fFOu5a6W6CHWRdWi4npCn3M8P?= =?us-ascii?Q?y1F7uw7qE1euBVLbQ/4GfPFBvCGgteAZ0/tFcAKab2IzzD5h4dkZp0LrIQ/0?= =?us-ascii?Q?WHkNGqNGc0cnjsyK4KVGYnTOKtFsHCrIMMzO9k5Bz3pvJuB0umCiikBZkDK/?= =?us-ascii?Q?tUk7DOUaBZsmqApoubeP0Q3o/jirFO6CN/IBNXGcxP5bZQD4wxbnhpZpdYjs?= =?us-ascii?Q?VM2qEh9zL5BmfdG/qsvd3Fdz2qzee+WbNhPwFFRWg7AcvDwf+/idM5nW98Ir?= =?us-ascii?Q?Ra90enQotBIY6cOxdfVe6PxBDO1zILk2+aJ1V5vw52z+WJPP/IGXwk9LaNi1?= =?us-ascii?Q?53a2s/axErJdTCipPiRp2NP/PeW/aDA7s1ouRqEwLg1vpSwNulNiAkgImT/c?= =?us-ascii?Q?XhydI8cVL04PO1pSSlcXjkdXjqLBH1sVf6FdfhrxlDsa6m7NKXb6T7PVsFKa?= =?us-ascii?Q?wPae42B2oexGLLJfDKn0dZKw7YrnQbQMbw4vK2MBhUUsLGMAjCcr+tWNI+Uh?= =?us-ascii?Q?P5bJBpiQjsBWwzhKsYZFmVb0FNLziQMY5sNXrZr129IwNO5zZfUgBanfzvLy?= =?us-ascii?Q?0PG0v2Zcu6uy6T0cO42gS4O35tNVCfR73czgiCMLDjTG5XMC8Rv7DqQzUOx+?= =?us-ascii?Q?nCB/qjdqzgE9qpE4G9JGDiEBWT7wKvgdHWD9hGhwmc0AgQK5m2lD1HN4YSG6?= =?us-ascii?Q?aX8R5KF0F7bKv/wktro3BgWHvsa7cVc0Bi0+KfR4ZKNIo62l/ksZ/BUAHF2g?= =?us-ascii?Q?FrmTdr/k3MODNMZtVLCL3XII/iPtNLDr7inOloRy9WMX61LB+0jgvKq32vwk?= =?us-ascii?Q?PQSnLZiJoHF0/MjktaBTpLuMHZpR700yyAbwJ6s3MCL+kUhjcAAzHT2DFar3?= =?us-ascii?Q?XKagOe4rwecCA2VQy1q5XyCXPRBTgH1DMFRs9KucqlF72iavhHvxoYdCLvGF?= =?us-ascii?Q?65T9qAcsprAlS+EWKUV2cLTWSxki57nqrW8VF/IXp5uqLAvEeRltV3DMOLDq?= =?us-ascii?Q?Wxlc0CMGdMhmxiMDic68um22tCmsShweYxEhttK6n3w0TJagowM5/ALzoSyi?= =?us-ascii?Q?AGS4Nhx2ELLI24Z61xVD0ZJKVCSuN+FW+o0A78GnUQYl1kVVXpoBz15A6Amf?= =?us-ascii?Q?NcuIB8RFZhntpmzOYmYQZdg24ZY8jgJ47WN9+MGpYkef2G3M4Keh3RhqiW01?= X-MS-Exchange-AntiSpam-MessageData-1: hutNh/1pdYRQzhHqpBVIyJFKwCyohPUlUwI= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: fa11a358-329b-4a93-7020-08dee508c09b X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:29.1390 (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: CZnlu6USnds7R5rjmEpZoGZ6CjZpMh0VbPa9wzAk+HqsJseZfm+koC1Mimi0DTap9bu+iTlYvBNI77Z0U+O10BN0q0n28vrbYbpEUjpOynk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB2078 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 876186b22f5f..6d91a9660660 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -113,7 +113,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, @@ -136,13 +137,7 @@ 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 }, { CCI_REG8(0x3002), 0x21 }, - { OS05B10_REG_MIPI_SC_CTRL, 0x72 }, { CCI_REG8(0x301e), 0xb4 }, { CCI_REG8(0x301f), 0xd0 }, { CCI_REG8(0x3021), 0x03 }, @@ -532,6 +527,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; @@ -650,8 +663,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 { @@ -838,7 +855,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, @@ -983,6 +1002,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, @@ -1195,22 +1225,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); @@ -1240,10 +1287,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 Sat Jul 25 04:19:34 2026 Received: from MA0PR01CU012.outbound.protection.outlook.com (mail-southindiaazon11021138.outbound.protection.outlook.com [40.107.57.138]) (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 DFA53373BF2; Sat, 18 Jul 2026 20:11:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.57.138 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405501; cv=fail; b=fTjhOjZP7CvUngkeLTH1Kklc8qYOzzeF7Ru6xzVCDTAviQuFheXVaHCYTd0vkXuGqJUtRuovC0vwvUCwA8/aVPQYEMbKvZAXADvM8soXwQzMIq1j/FB3HtVB04qNNML5CcooyPu2E04TNPdTvsoe9QUdTrHuGAd080RmQJwCcWY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405501; c=relaxed/simple; bh=TFioPRNRHj2/WpTxiGxjyPw30p5oLdeYvw7G2wsTpKs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=S2PlnbQp3ORSyV0/LLc379/MTeVh+Rtb1tPsxyTbmCjW9X3qKrDLx6/Qe2um5afeUiXt4XFxNDPc+9hwdMmuh4VKsx3cVLI1BfNa8BFKy3IGo1UluCpt+mwQ4JMNXJ5vKrh+Tyl9AuYDlnnPZZ5cBEG+8g58/V/fRrQ15cJ2aVY= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=BoFj2M3J reason="key not found in DNS"; arc=fail smtp.client-ip=40.107.57.138 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="BoFj2M3J" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p+SavS22EKBg+IKg7QT5O5lFJVPrQW0x2+c7rYGw6LbNkAsb/K6l/2T46imbge/ufRIPO+6As7wVJJqn/n/Lh8TQkqfESKOtNILZpkofVpIp05PSkWwzuRsC4yfpkmNAA3/T97s39cywyKJVxN/z8Sel1vxS6Bi7lpCT2J+eDEXb8YXoSCp4cycbF601xcumaSp6Nefx/m/npcI7NP8kjODb0yBbGJaj757flnfD9GrsGxqv2AV3UhEetjeI37dP/dgJ+6De+Bkbq4Y3HRXGrpfJ0CMkA3U0gJEgWiWwoik8kJkjcjrlHwxptyj9godHxwg3G558szJL140HL5Qffg== 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=40yFaiZiWa1D14Yz894KaSGlFDqktHVRFAfwfdsxUP4=; b=XVB5wnBKXW51ERfEf1XTi5rpJ9DZFsK6cIJ6YRbp/l4edX2hisLzzP8qat/WgGJNmYzRIWuisTXLc0YoHdt4fi/rNNvJ3U7dcKEK4uPSO0WSR/SuVozKswkQ6iL+YkAOgZYQYQRnb7fGg7CsxKow4zQbDCx2HtrxIfIqlC0ICf7qBYqGljMLa+6Tx3dvFuY4o4DxctgQVualBQ7Pz0gNszKREf1OS2hIiQidjt2mPEzPEaBgbWfwRFds50p8HlCNX9O+dfXVS4spyHYisq/FAEClZblLn0Y59etUuLgAHfczdzJ/XlQdgDCDmWlo1CMmurCO44uqzn0XQzmbPjjAYg== 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=40yFaiZiWa1D14Yz894KaSGlFDqktHVRFAfwfdsxUP4=; b=BoFj2M3J9fJo2MClbiAPKZ1E4qJ2j+tBM8Fadm0d3ztzIBPyHxB7fimDizHMVGhkjkDRcT+SmpWmxb2I748Y4o23i7pqHRRgEYCgkdPJdmQVgVIe9K6/34bhWaoL3FJNpwhEgTbCLMPJ9uNSmCmIVJjQHX0LUyrIZ/sW1RAvdjL5X+8eBitl+6ZPwdHgDCAmLro4Zo/U2XsV4iQI/xnVHNlKaQE2RSYctj+pWCqXwco/vKUmQH6rinVz2/PNKK/BRC/2OZrBqKYCjO6KfpPuaLOt7QKLdXwBiMajzswMAfgm4Z1QQqtZABt/pR+zaVtbLx0KFVaYpty6n38HqlhPaQ== 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 PN2P287MB2078.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1c2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11:37 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:36 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 15/17] media: i2c: os05b10: fix negative hblank calculation Date: Sun, 19 Jul 2026 01:39:06 +0530 Message-Id: <20260718200912.16001-16-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB2078:EE_ X-MS-Office365-Filtering-Correlation-Id: 94823a34-5603-4e36-230f-08dee508c573 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|23010399003|10070799003|56012099006|6133799003|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: MQg6kSIDYI4dfb1LKJWT0voVPTD/ld9Qybr/5O2JYRcbb3BXRO44nVuV1S3rDpg0PReurbYTHJ2KacsyuZz2xlvnCfUjbM6FUWpY4DBD53zNwI9cqjZkhbCYxQR94fKcefgFvpUF4PsTedF7qICRdv3ySDevOQsxOZ8iDTkH1PstrMEPYU0ZWTowUYKp5Gv42z/hf9VFAPlKt3Glgoshk8A1lTTWciQb4xPu4ui4KXJVqump3rvhmE1yx/QYhXvUZRSLEsM769vAlcNgAVTHtEaiXC5VYTkpCC2q4zpRv1hSCWrsz4CghMa/YSFKl9n3ZfMiV7f4aExZuWrOzr/PTEnmH5mrssiddoIwnL6UtgWyF/qq7Y6jnWWK0tOLokgCJTi5xIBLD8xuql8dzXTx1VwnMM16MbRQ3tdSOJVPiP644jOZGQBumdcMMDbbfRTQM+MCYn6wpOmnaWlIKHgYAwP/7HM3gc5uUDYb/2bFy+fAwkyyFtbSVrbCkPHXRaIzSifMGq6bPTtROZhdmTRgcdzQwLnF6FhKnDOea0vvuIXlbWOU6cnr1Dcz1mePq1/MYuK3x09AsJ0EB1jw/jkTulLqs9NeFxFc6Banh/svu2BR/8m0GjGx1O0gnjP5zlcZXo983LHpmEFkuVjUinyikWPuqO6ztBgDSJ7atL/dT84= 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)(366016)(376014)(52116014)(1800799024)(23010399003)(10070799003)(56012099006)(6133799003)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ui4f3A+9nGGMwWw0YUtAJ/uM7TQWmR8G3wAy1b0EeSxhnzYktAuubQVWajS+?= =?us-ascii?Q?9uGBIUupMkRv+f0STLqqz7S1nojsGIDukReg4ms3V1J69W9ZwvRF3cjok7H7?= =?us-ascii?Q?Ec5jblO/O1W7Kapfzr5Pv2Zis4pSmTd+m+qEQ7Z+vfG3OUGHm0a16oInjhR5?= =?us-ascii?Q?xNzkffHVVuiyE7FD1/T6Yj9IFxSCKWPNucSrLvI0RYFZPKhyjpz8oIZZ0CH5?= =?us-ascii?Q?N5AT2IL3TdUckb2Nq/c8aBf6mnbeN8MStY58QcQ5OfIj1x4SZVWoNbVaZbOP?= =?us-ascii?Q?NSwxs8Iq8VaAdqfmQTJiKvyq6aJrKBqqFQcuqybfS6dxTdlt5jmXoXUQwOMR?= =?us-ascii?Q?Oyy7zqMTF5lFQ/bW2psaXeFDnlZpo16qJqehPspDoF4ePGK8AuL5VqNEtC4g?= =?us-ascii?Q?TYDprvZ1EcQumRid/YNs6+aZZD+PMrVDJvDQKh755okF7K3aK2Tt+8pH+nbu?= =?us-ascii?Q?nIfYn3j+4/Tnsbm8edvkDIjGVQIhrFcfjaBH89L+SNSMJi+CL8bAUZIsYpwP?= =?us-ascii?Q?nai+pyNX1FgWm0/SrhzoBNy1SaZKSWIvRcW39fkGaFrIdFPjsw/ErwglRc9O?= =?us-ascii?Q?8zc2EUHfPSJZ3ijdLE/9vGrL/7OSXB116lQwCI06I/PAQGWC13/VL4KNWCH/?= =?us-ascii?Q?bKoZvbjcOASBNRfgKBRXcFz5u16M3vHdNr9O9BziXFNLFcrwSnZayGilGT4V?= =?us-ascii?Q?TtWnJubDRYR6S2RJ4ZD8VOvexbxezrXC3DV/22/UjMJDu8Qiddc65CkmaCzd?= =?us-ascii?Q?tnzqICoHdXlqm2kK5eYRVFk1jLgOo8SIsF9f71aiyJOurxytFcK4jk22oaVI?= =?us-ascii?Q?w+y9MhRlw1OpZxuWc9YfsYVHQ6Rzh08u4j+x7GNKX4TKQVD+Zc3WbjWmZC39?= =?us-ascii?Q?Q4Dh5y1Oe6J+JPldo2Fu1ZGxo9YLnfUk7F1VTQfzXAsB8aGlVSNOIrp76BHV?= =?us-ascii?Q?iWJGQGmfN/XYHwo03ZBKG1JRCrEhjH9+M8IZ4V8PXx/bHafdrpzpMfqz6JOp?= =?us-ascii?Q?A6go81ju6jODAoSnAjvDYTcGGS44fg4HUu89+YSOyfiKy2zKJM9Xu7cLgJto?= =?us-ascii?Q?Dd8x5ffcXmj/nFw/rK6ZTEmjOcAA/mG6QeaVllc+ANnrHAyti444diA26qmY?= =?us-ascii?Q?2C7UO9oFc19ZH/wgxZm1QpQWStpqYO+mMTFVHix3kTJN3Xrfc8+aYKFfEFYW?= =?us-ascii?Q?mVoJZd0WdNd4cuW0yvjWz1hBGMGctJs4v2hkh8VbyWlWQ1Sjbzu1kc0l2gSe?= =?us-ascii?Q?aUafPSWBVk7IECtwq4rq0WeAIc4jxoI2BPPqfaOJaglMJ6ygfTH7mO2KriUk?= =?us-ascii?Q?izAV1pwih2heff7soCY99QPpZb9T+A5CjTUN+bucC0btM03NV24SoBIUwY17?= =?us-ascii?Q?ngdbU2dXoYWG2qk+Q2qJeHw8MSMo47pFVjrRsPLlv4ihRUZoPISaSKd3Tmec?= =?us-ascii?Q?vwiREpO9SvVgoEFyzJL3bdIN0ee5I5oyaw6DCe7mp49nO5dQb27KbNk92pgk?= =?us-ascii?Q?vD1UQUFaqGu1RoQUhYe8XeKAtbYapbdhlY/lGPj+RWW9Dz0buckj1fA96gf4?= =?us-ascii?Q?SbuB2TZJwxYMeC/1llJVCmg++J8YltuO5lVfdXhF1Z2BKiPhd5zsIRzp9QR2?= =?us-ascii?Q?dMIhsJKhkU0Pax3lfs5enPWzEDVrvMpT2qT8bmO48yxJHJMMHhbLeBeIUeNL?= =?us-ascii?Q?lQWvlnJSypgt33iulBEgNAJMdJy6lMT1zBP8A3S1J1KdTKMxxWvREEzqLepX?= =?us-ascii?Q?W0/cx4x47+9gM7+W5zwsBdml9km/NwuN1jgNMgYCT2MBg8igLL7Prkqo3y/Y?= X-MS-Exchange-AntiSpam-MessageData-1: An17ZnogQ3TVAXysH8CIiu92AiuRSTcUPF4= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 94823a34-5603-4e36-230f-08dee508c573 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:36.9298 (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: KYoTe59IMcybC6HOabYswN/4eutsRCFHD6Rarw0zWBMgBSvTSiNUqpdB3WLUvA00OECS6TIkt7VO/VGHepLXakwoerVtYcRCqrrIpneWLyE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB2078 Content-Type: text/plain; charset="utf-8" hblank is computed as "mode->hts - mode->width", but both are u32. For every mode hts < width (e.g. 1744 vs 2592 for 2592x1944), so the subtraction wraps in unsigned 32-bit arithmetic instead of going negative. That wrapped value ends up in the control's s64 min/max, which v4l2-compliance flags as out of range: fail: v4l2-test-controls.cpp(413): returned control value out of range fail: v4l2-test-controls.cpp(476): invalid control 009e0902 and v4l2-ctl shows: horizontal_blanking 0x009e0902 (int): min=3D4294966448 max=3D4294966448 step=3D1 default=3D4294966448 value=3D-848 flags=3Dread-only, has-min-m= ax The same bug exists in os05b10_init_controls(), which sets the control's default before os05b10_set_framing_limits() runs. Fix both sites by casting to a signed type before subtracting, so the real (possibly negative) value is computed directly. Fixes: 3aa9296a23ec4 ("media: i2c: add os05b10 image sensor driver") Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 6d91a9660660..59097eb96561 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -871,7 +871,8 @@ 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; + u32 vblank, vblank_max; + s32 hblank; int ret; =20 ret =3D __v4l2_ctrl_modify_range(os05b10->pixel_rate, pixel_rate, @@ -883,7 +884,7 @@ static int os05b10_set_framing_limits(struct os05b10 *o= s05b10, if (ret) return ret; =20 - hblank =3D mode->hts - mode->width; + hblank =3D (s32)mode->hts - (s32)mode->width; ret =3D __v4l2_ctrl_modify_range(os05b10->hblank, hblank, hblank, 1, hblank); if (ret) @@ -1272,9 +1273,10 @@ static int os05b10_parse_endpoint(struct os05b10 *os= 05b10) static int os05b10_init_controls(struct os05b10 *os05b10) { const struct os05b10_mode *mode =3D &supported_modes_10bit[0]; - u64 hblank_def, vblank_def, exp_max, pixel_rate; struct v4l2_fwnode_device_properties props; struct v4l2_ctrl_handler *ctrl_hdlr; + u64 vblank_def, exp_max, pixel_rate; + s64 hblank_def; int ret; =20 ctrl_hdlr =3D &os05b10->handler; @@ -1295,7 +1297,7 @@ static int os05b10_init_controls(struct os05b10 *os05= b10) if (os05b10->link_freq) os05b10->link_freq->flags |=3D V4L2_CTRL_FLAG_READ_ONLY; =20 - hblank_def =3D mode->hts - mode->width; + hblank_def =3D (s64)mode->hts -(s64)mode->width; os05b10->hblank =3D v4l2_ctrl_new_std(ctrl_hdlr, NULL, V4L2_CID_HBLANK, hblank_def, hblank_def, 1, hblank_def); --=20 2.34.1 From nobody Sat Jul 25 04:19:34 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 9F4B636F902; Sat, 18 Jul 2026 20:11:48 +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=1784405510; cv=fail; b=Yp2y4ILDucitOPfrXGgf35J1VPBeUM5L/cTnNdxwFLCoUWi3g9JmtsWxgeepl2UtAtHHCKDmwEiyhIB62EXxSgYy01SP3G9XBjiXxFYS2PvU6a7eAJ8wf5i67fJKbiosmhzVxrAw+tDiJd1nIGNFQI+cONL5K0RaZuRYq2HgSBY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405510; c=relaxed/simple; bh=n8z9VdJyr/zCI0kZAQkjFPuJDdsTS9s+E9L8R3j9CUA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ORxT+gJPFvziIdITzkIitmtrIsUC30Mv973B1tA9Vmns/t8Ct3ipXTiAsi32TKVMDeVStGn5iG2j1RynFWEIGHoyX1qNRfFtPS+2pHIxsv984al7ClOLH2ASJb6UNAWcg6gfmrz6V4+Jz2X8pmTAIH1QU3RGZ9uynXdw4sli6i0= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=M07LGn1U reason="key not found in DNS"; 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="M07LGn1U" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YkbEOf21bNUiN4lYjmbA2jP2XeoW8W9F0PQzLZQxI/NHEDT0rYC2QXq0JGq95IMQnTw6rRBLrH65tzveJwwdg2DeB0kn4+vKeOuDtTWUoT6nSlquuD9VLB2mzl+LtQwV08b4k0YV4VTPwYEKVZStNnjmnLvzYzB9tU5/teo4nFR7em9YEXRcIMakHjJQsimcMnx6M0/Hee3Ec3t9ZUHFYuSbVx6Je/MZH1mOUCNoy0xxhtHNysfxnJC89azN2VbSjWn9qH0wAoIOGROZXcsQovHTnMNLyeYMspl6DzuAg9Vl71qOq+rlb+wABCH0J/HefTaeyvmwEfmfMwZUA9yibA== 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=gc5OCCBuEaJ9NtHaiGUIbbOyhqH0G8dD4fStrEfSsag=; b=crM7Q+bbMfxeTda0MIbVak69DAdaxosNo5H4QUniACGQRYLs76YTMSnt9wU3OeKjwwHZl0N5rAHZnhyCZKbx5P517uShHyxI0ssKUf7ygXSYhEKjlE6RxTIyXH0cQimigefULSwCJ9ZTDuuJJXv+YuMZmBytNJNbHencAmhZFxa99BrUGpd08GFXlV1UHuub/B640lcqtRj4UBLXBAeEzh5LeUN+wdbHQy4o1+IFls5n3Jg8FSzrZmVVuaqSP6r+aNiW/FTzuTNF7Jdk3iWsqhxZCAbCwKB2trU5suDOTiONZSIAeZdlsUYoQCmE+3fTOEp/W1vfoE81F4UtJTzC5A== 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=gc5OCCBuEaJ9NtHaiGUIbbOyhqH0G8dD4fStrEfSsag=; b=M07LGn1UQUqs6Nj93Tg0D9i8toXG4oDj1134L28iVs9BB8ow1fSPMKHdr6ZAYvT5pJ6YF28bAUqZOEgDpsyCZIB7tKQZDQ269wKLa2y+9zYj4TNI3yfa0OP5CZqVJArty3POx5SkCDBxb+XWc5Lx2wIuXDobfI/PGhOFQBuVe4ypY1zD6brjbGz5q7iOGdgOMub0QUu2bvY2pEKxCBWbTptJTWDRgjCJSsVlz6a7j8WNaIcv0N0LhKJGNmwnA5FpN7ZvTK3Vhs7sRSV3tk+XyQJ6vs9JTRfuhaWFX6wU0hx6Hxs3wAzY9gIfw8wj9xx4mgEa52uwQild1Z7iA6NH1g== 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 PN2P287MB2078.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1c2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11:45 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:44 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com 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 v3 16/17] media: i2c: os05b10: Enable runtime PM autosuspend Date: Sun, 19 Jul 2026 01:39:07 +0530 Message-Id: <20260718200912.16001-17-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB2078:EE_ X-MS-Office365-Filtering-Correlation-Id: 907110c0-df20-446a-5dce-08dee508c9fa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|23010399003|10070799003|56012099006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 1Gm+Cx5aU9mh2ad/EZ9neq4zh8XyakuV3VICbLUhCo/AuUJVD8/BL2jK4gcy3DgvXFFj4E2zogPUAuqrXB+Q9gczpD+MtuMHJu7gLw51lMdEPSwF4HQ+WT2FgRhSixSSkWx9a2XmKI+YwdfwoB3KyDD0n5PNhkAojtYuq6Ygv++QZbpm2NP1wnpPNop2/WNudJP2+Efb+kyqPWozA3wol5RmxURFzvPMi+3a3GR8Q+9Vb6nMB/DOHoc+71Nd5hgPecaUdDMFawXEG6lmmuSIiam/gylGod4qnqRl5MbAVNh/2DQg1im5Mr5gb2oqp/CQ+c03RKGH/Dm8AXO1H8pdPAbTO7MVegmIhFoaucuuTPmy16Aw18M/YinANm4GYE0FgEMGMvizuFpeNxT+W06UepDKKXlzJIyco1aR9vqNslL2LLUhMVWzwOFP5uvp+YTw9dvwxxW6Ky+G1GSAttuiRsN6xOdIYnPqjPJXqJiDZwM/FxfFCYu7kSvv6RGB8iFiLgh1lFbKzkCPc/YhxftgZqFHcT3DCJjny8oC7TXyatNPJAtm9zaUITL01NrQyNo99gcbK4lVujHPMR4/stg7nF0CUxewFxeaSCokFGc0mzlkXnf0u26B6iUzrJrYGAWN1JD9zOfXJkHa6eXNrsFX7wPVTGO1NMuEAZw8og3PYOI= 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)(366016)(376014)(52116014)(1800799024)(23010399003)(10070799003)(56012099006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0/BBVdTpCuhomXQhIPIPe6oyG8SBtghsHALatVJ4Stk7k/o9QCy9Eu+vNI8o?= =?us-ascii?Q?DVdNLgc6zKCJ6ZqH81dJxBNDiB6ZxWuJ9V/crI8ejacq4p9w22amI5d2cy1I?= =?us-ascii?Q?rG/kDTM02SP2cGjmSXTiGe7X/7UR8s+WOZzhINlxX3BvMgQ/qKWNSmgmruM9?= =?us-ascii?Q?js2iGlCToXBU8r0yaEQGl9vMOY45FtOeQpqx/ijQydcD86YycAVer8xpmYgE?= =?us-ascii?Q?IypVrmDyYWicJsKdqd5r155Uqlvjjl9RExrVyGHlRRXX6ZN6wHA9nIn5dpsZ?= =?us-ascii?Q?jzODxnxn5aQBy+iIOAXM+xIP3PSJIBkDW85kcACi+WHYO3ZMwb/7ot1QFGMT?= =?us-ascii?Q?ppZhaah0Tc0IDwDLGEvSXQ/U7Zidy92MuU8ul1+qkTVCXuOjvd6AuZ16wuVg?= =?us-ascii?Q?6dLM/OzF2Ua6oM9zECMMChOraSi2kFwiFc8heXZsaWQ4EzjxixTmwR/E0bJU?= =?us-ascii?Q?wW0+BSp7RB+ULeT7QDERDXDR1hagJ2YREfYHnG8N/ZJ/8oJH3nvW75k6YoPC?= =?us-ascii?Q?nvzihuSWhnCQzQCH+HhQzZsOiNVq7jqk7uj841bcVUMvPhK9m/xwIO36FImV?= =?us-ascii?Q?DdC4qCbcXd8YEJPXdoxbAyI27VxIZozps7PZhSan6SjE7AwVZBYSLFAyVtYd?= =?us-ascii?Q?j5aAdRMjLcebjS4HVtKQG0D620t+SC/OUlAuFaBi5oX+mybazkTJli5ALSPn?= =?us-ascii?Q?q0ckG3ZnarvtSGD1r2HICFE/5nJcp/r3Br+cdNCRBN9JW45hvpeug/VTWhF/?= =?us-ascii?Q?AL9ZFuqe3v8Jd8FTQJrnOIRVX8hWz2I40e+u82rfNO4hwxIiAUcPiRgfuDHu?= =?us-ascii?Q?rejenX9BTBzNLYeGIuGvzDpCGBnheYdPhqG2hz5xQXM/O9Ahue/rI1Nbp+DU?= =?us-ascii?Q?jfnQf0xGzL7p/a2GVN0kodS+URxd0V6Hm+W2tYa0huGpnLyQ1byq+HkGKgK5?= =?us-ascii?Q?daAjdd3UbrIWStddLvWuPtR4KxQbdqs0eJlSzGJiP0yq5UnycZbU8X7ELkTu?= =?us-ascii?Q?edv51HqFRGJFx8oMGV9OZAyB/lyMlLO/VsQPTpIkTkOIg88erYOiHgdHp1Hf?= =?us-ascii?Q?EwQzvGOB5POcHvO3VBzPUgEyVXe/IzZ7Q/1arDE6dqeiHH5jIqEoRJRrNRvX?= =?us-ascii?Q?Sv3MvL62Qy5yOwy4GsSNhdtOHjbDOFxQbLMKvVJXUYzxCJK9RPDDl12AY4Yh?= =?us-ascii?Q?iB4U3h4k2W7SDYCvwJwg3EdxukAAYVGgCBOBHjmcXoTrFuzd+pW+D8F4TfLu?= =?us-ascii?Q?58bTWEt0SuxFyPZXwEwOocDO/6iYKolMcKHRCdX7L+cCy/tt4SF9OIDwqhd1?= =?us-ascii?Q?jePGS3G02DZPydl/W3pAprisVp+YS5hkeS29582M6TN9fYvrnULBQJn7iTrm?= =?us-ascii?Q?dZ3Ga2VfK0MB6+KTgqY1Sot9KJ6dPJVYfrzUFRAG9IZwAhjxDqDQ4SIzcYdd?= =?us-ascii?Q?sRdhxZE82JnSos3ufayG6mI9yvIVVJqFu6u+OSQGc5GStrm6vJyWWyB2jkXG?= =?us-ascii?Q?B66oK9mP2rcWJFC7KOclwmCp4kXfFHWuYlnuHcUh2fH3+6i5mLT2QZc12s96?= =?us-ascii?Q?fIxd1MixTRSbs9pOFxeC7qUtXRCdte3CpZyH5CmqtKQzOUjjJJmjXCwDNpKM?= =?us-ascii?Q?NA19ybikDzbgV8v0pBrwK4voK75ivCRC77zr4blvT7ohsy082JZigpfPLvPw?= =?us-ascii?Q?ONo5g2dIL5QbRkBfNtpN/+8V4vCeUd42Yl4WJqn+CWiA5qP46gLlkhw2BszT?= =?us-ascii?Q?y1KP70s98gaNc65WnmSK0b/lIVtkTgKAXN86IlMk6r/0FYuAiQWSnz7ZMiV8?= X-MS-Exchange-AntiSpam-MessageData-1: mVApXUrVJTAWQmaAO2FEa3pJiligCrXfZkA= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 907110c0-df20-446a-5dce-08dee508c9fa X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:44.8451 (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: AoxqfhyYvtzUAZONSFwUR2MbXdTRZkyAMAyF0caPnqs5BzeyRygVJ/QW6+JvZ5avx4huUvHKEH8IOCjOvbWxbLlRwSLEKzyMadWFnnd63Dk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB2078 Content-Type: text/plain; charset="utf-8" Use pm_runtime_put_autosuspend() instead of pm_runtime_put() to allow autosuspend. Set a 1000ms autosuspend delay. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index 59097eb96561..b4dd3137ad5c 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -1057,7 +1057,7 @@ static int os05b10_enable_streams(struct v4l2_subdev = *sd, return 0; =20 err_rpm_put: - pm_runtime_put(os05b10->dev); + pm_runtime_put_autosuspend(os05b10->dev); =20 return ret; } @@ -1077,7 +1077,7 @@ static int os05b10_disable_streams(struct v4l2_subdev= *sd, __v4l2_ctrl_grab(os05b10->vflip, false); __v4l2_ctrl_grab(os05b10->hflip, false); =20 - pm_runtime_put(os05b10->dev); + pm_runtime_put_autosuspend(os05b10->dev); =20 return 0; } @@ -1455,6 +1455,8 @@ static int os05b10_probe(struct i2c_client *client) =20 pm_runtime_set_active(os05b10->dev); pm_runtime_enable(os05b10->dev); + pm_runtime_set_autosuspend_delay(os05b10->dev, 1000); + pm_runtime_use_autosuspend(os05b10->dev); =20 ret =3D v4l2_async_register_subdev_sensor(&os05b10->sd); if (ret < 0) { --=20 2.34.1 From nobody Sat Jul 25 04:19:34 2026 Received: from PNYPR01CU001.outbound.protection.outlook.com (mail-centralindiaazon11020119.outbound.protection.outlook.com [52.101.225.119]) (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 0378A2FDC53; Sat, 18 Jul 2026 20:11:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.225.119 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405517; cv=fail; b=jq3GCOGIEf6fnaBOUEcuw7D26UM2+hqiuLly2ld2LxezHtoqTmED4T8OPR/hc4U1/yGVLVfwyK+GFagQDNNDfyoZKYMzlAngloy3lSiIqZQd/wh3hUjw7z6PTFY9WUpsChoJQO3zQagQ3NMtoRJKqy77gUrEys/zgQdBtFxdIdQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784405517; c=relaxed/simple; bh=67tQ3Hr5m3yF4yJ2O3ZQ/MmzVQudU6Sj2P+3nyYHdWE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=czkV4aewCUE7l5vMXm8ag2fcxmbJ4LHb3KlJEU7wPGHMo7GkMUdA+rskc0/sXjqAaWI3+iZY1tlbVp/plRMeopSxXSDDmZw94EUMQLQjRUV8rdMD9+rICRZW2GjgtnOxmIeX+xHm5dD2Qx/uzNALKACp7qA4zIG0HRZ5vqmecnM= 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=fail (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b=IK6u7ubm reason="key not found in DNS"; arc=fail smtp.client-ip=52.101.225.119 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=fail reason="key not found in DNS" (0-bit key) header.d=siliconsignals.io header.i=@siliconsignals.io header.b="IK6u7ubm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gU/TU/+H5R4zQA7b1ksG4ZMWEpiWxUI740tF4J2fPXYNM0mQIcbI5+RBYhPDU/c+ntWtpmZV1guMk9gxSJc+4VgYnryShVyHNz1Uywxm88ZNgN/eYaDz4NFHhq3yk6ygZ5i5DpkLTOHQDb5D3uVGl8tHHSB+6WMKbc8ShRj6eebFRVhIcVB+4laXtYqOvUpwegUi3zeZUegM7rcYMs8vg+I+dIoY7HTHYaLNicUqN5raA95fb+M1POuAlimult20nDRJY0eQTWaGp53WlydX8vrxk3Pov15KEulIxSpfYvC+vPZngmGhk4DG9FjrCXE6hg7WXpNmGK+lClP8g7DAlg== 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=PflYzfzrCl5/JCCSCDtDtLWWlWynimrdFaNNhgKfm8c=; b=OGcUIn3sP8lY2MOoaKSOcZNQNWUC3Rx/1XhadGLFlPaqRFKdEYdd20wk4MBbhj4F0c0z4J+rpBoeLytfl5PzasxkpjymMIbdKHWU/lqSLNx6KtIiVUaBe2I6CcduK7ExlPtJBv9s7KB2v2mleTKyhUcGndoaWHV77l9TwwSQsxo65jySTVt6gGTUUW2Wt08dRNJAYxrXJiiiLhxHPPCwJJHTVkySwYXyp6RkBwOSbsLJ+Mag9OYigh1lB+9ocRRBhHSlkNrnutXM2PMvVkW9jnJRiRNS55AocypBLf9Cca9TIk9/XST1XjpqBix7IQ+VRSxjYjIs/xky5qJgCas+gQ== 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=PflYzfzrCl5/JCCSCDtDtLWWlWynimrdFaNNhgKfm8c=; b=IK6u7ubmZ7ussyrdN2F/U//kr627e6J1PfQEe79CDjBzA4fD+GfuVgOh3kiqDus1L+mONPkWXOu4/basot3lFrQIerDSl4KvgR9PegzZN8VZCQovPrj2u0H+sVWH9p1Bv2/fSjCtljiWm2F6oawN/DJdmm4D3oYHKb4Z3XirhdWv3bFtbZs16hZo1hjR6nz1vssSLUwWsaHAXJASU1b9fmcrBNDy0LPF8uNlaPf9UNyl3Nf/DClex0sR9R+actWVBVcmvCdXuoyZq+/dIcUz8A0B9Wy9uWJQWl1Jgx7SNUl02R1AH9V24WsQnGLSlryYB+iGCjDdNuPgki6atN5o4w== 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 PN2P287MB2078.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:1c2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.14; Sat, 18 Jul 2026 20:11:53 +0000 Received: from PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b]) by PN3P287MB1829.INDP287.PROD.OUTLOOK.COM ([fe80::ce63:5749:b390:508b%3]) with mapi id 15.21.0223.013; Sat, 18 Jul 2026 20:11:52 +0000 From: Tarang Raval To: sakari.ailus@linux.intel.com, mehdi.djait@linux.intel.com Cc: Tarang Raval , Himanshu Bhavani , Elgin Perumbilly , Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 17/17] media: i2c: os05b10: remove unused control fields, simplify error handling Date: Sun, 19 Jul 2026 01:39:08 +0530 Message-Id: <20260718200912.16001-18-tarang.raval@siliconsignals.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260718200912.16001-1-tarang.raval@siliconsignals.io> References: <20260718200912.16001-1-tarang.raval@siliconsignals.io> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PN0PR01CA0018.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:4f::23) 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_|PN2P287MB2078:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c7680c1-8366-4ec4-f429-08dee508cef7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|1800799024|23010399003|10070799003|56012099006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: tdXWpqdg6khxo+7NkjZwJW0jj0UTnnQkHBRz20EoCdysJEyBpjceIZB+D5xbn/cPO3+XuQIH0uAvGS3zlJCO+vM0aV+KwxMGjUGpKF23TbpLtkn2gYH2ulg9ho1UgOM9AT3upikaLKpBC9rZrh6mH4ewBToF70kmzm/YB/yDPoYT9TF6z0Dyjh9IZ+l9h6z+k4nl2U+CbQu2FdpkQMpq08TqkK+4R95nEAzfXW0btEZOpo8W+5JabxM1xRKqeX8UOdwp2WYoqUU6Tj/syI7qh3M5vFDQYyqPUNMiqQpHRr728iwiSC7TUsLU0GSWex8+yzxz+6wXjzz1dWdJgll0unEHe2q4PI9fXjgd4gg0lMgYmxRi2i4rmOyIvECW4v1qpWDaPoW33/eyQek8H6Osw66y73gc6bYs5DzWVvMR6Lz3EGIbWavFsz2LaDGvslEIDeSqV+E2Fpo45/I9ASPbbnKdXiih0lAjgpssU2HqDvyBrNOwBb4Tl3dyurKzpl/fqK5ZgSN1iWRtZkBgTzFt6S9tLDB8tcDScSYTaSSKSUQy4km8oG993GvxcB9dlcNqrFpZ2vcPR4u3kvelzL59MCBvbXph9TE9J23+lwjze0SXMpyDu5avJ1HlHVbFixraJr/TUH9dmcH3J1Fs5uABiKW3ml2ZarWfcjebxH0sxU8= 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)(366016)(376014)(52116014)(1800799024)(23010399003)(10070799003)(56012099006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LchqtoJO1JIMXlmPQm7wy1gxTsoVOsFwM7upnIxnpbZdzTv+u0SAumyXLhEb?= =?us-ascii?Q?tkeGg5J/gUJd7KNL8zdEdaVoOM0svzYwfI353bmrXm1+fCuky8NXq/dW0Mic?= =?us-ascii?Q?6ux04+4sxc142ZIZqfCqxHvD5X7JLdaFzHVK8mIFDjQLKx2hGCwwMREOIwpQ?= =?us-ascii?Q?O/ZeauEjnC9MXvmmdKMpJzg2V8GdxSyWnW7ISlTnicvuDM6DcDzKMM9pmvPO?= =?us-ascii?Q?aO15OQ7+gB2c/PFPUnca3NuKGZTWmLEdrygICvg0ssnXyk1qTsh01qouPvGi?= =?us-ascii?Q?XHBXvAfGf+hsG6yqxPbuOKzRU8SKooxbI+sJdqisSGXkWKLrC2zmXToZUEtq?= =?us-ascii?Q?O3bxTVFaUxYVBIte5rA+7BjtZLz/HgCx7FsXnbx3UIMON/QTHuSs67JD988l?= =?us-ascii?Q?tHGkhY+h/ZiTSqoQEZh5X+WRf4qHzk4OryMYPWemo4W5rXIpPiNgLt7DhWh3?= =?us-ascii?Q?eKAHsBLswY8l35Vb09Kudpzc3x+N4k7ogWiCN45112GVYmpWMrHj2VOccbG7?= =?us-ascii?Q?KgqplgNT2odqKHSTfu9zFN/2dw4L+DorJ8nTIQYIzyv7hDUErrNeIuBd4LCo?= =?us-ascii?Q?1S63OWIMYuZoOioO4vm7TuerkcIfnyrz2q9Br+Fo+fow9TPxxNQ8Iv9NPqRo?= =?us-ascii?Q?G8GNqtSyUnnk2XcFoouZLWK6XrQ1znJ9ZPpvN0nX6N2baBuUOJDfkxRTESJd?= =?us-ascii?Q?3U/emAA6FK2Bfmad97bKQ3d3e0pVnE/K0/0rVKVv4WmmDxngsOf3uyx5VG5t?= =?us-ascii?Q?9Sri7vbaUZ21z/nOcM0fyFb46pSP6Etl4W2bKCwpl2porbOcdn0iW0/EaDBr?= =?us-ascii?Q?fpuyyzWUEqAxht0Y9dvcvFJnmLiDCmPgEBq8yxRnTebfiFZkTAJOyx8rbIcI?= =?us-ascii?Q?bd+dgoQTMEqZWoVFNsTsGmhnFyjMUDVgBDeFu6BwxFLCCbxLq5pMe/ROgB6T?= =?us-ascii?Q?triXGzS2wIZF+I/o+HfppxANmTFjCvSTBmJrRdVKMk3lcI0HWEaei7tND53X?= =?us-ascii?Q?YSlnQUKKhN6uX3j81RyuLKlKIVG8y07rpEqkxkD6sIYgzuVdBUnGHUjDHZb8?= =?us-ascii?Q?t/NNECcf/gDMtawhgyEx2+Vxttq1NYxibaM51fUWYQHgkyEsEgv2DmwMqN07?= =?us-ascii?Q?DVSHUI7lLSieXlIsroiL8/5KyetrZtLW4lCjmzdlNl4ANkCl//iCXsas0LUL?= =?us-ascii?Q?xeUsgYxoKtZMS/6AAW/WDOjvAc4frY7wSErmsIiMrWgBVhVMaANTb883NvNo?= =?us-ascii?Q?idUr5AITmNINoHqYjH3OeFcwKxFSpg5Hq2nhIeiUFTT+ywIaVApPlvIQc1S1?= =?us-ascii?Q?1iX0NDMwYub5zkyOv1P7LoSro2vUiHc/i6bdux06bh8+XRUu2VNgqf/aFmXF?= =?us-ascii?Q?s/coTYWPhZ+mrdiaDVUUd5zrMBVmCPsX2JRUFHgEfmccEe33fPLAFL+uSEdR?= =?us-ascii?Q?6Z17rXjaa20y3mht13hEEej9RQnqw0z1UlGITJUj+Exqun7nrcpFc5xGHjEo?= =?us-ascii?Q?wqBmRDvmHpE4IFE5QjGZ3njt/oPwZpFT+/jKq6SkEGqqGKfYoWCBXz+i7IhO?= =?us-ascii?Q?pyFBG3WqicQBZ3ILoN2YjCERXYEwWD10SN7W68PnXUoSVoDpm81zB+EztbZX?= =?us-ascii?Q?TPbYK3jJTP7e2KGqLNfTzjm9li4wFjud4YQD+NQhzB/wq4uMBbz2FFr/vUAj?= =?us-ascii?Q?OQMnTPEdXmOHT68AU/K8xAaotKe/kJljbbrfz18Hc1Mb05pV2tpp3oh1xpQ3?= =?us-ascii?Q?dEagGKW209/FtKerssgRJJUx0jKabCimlVbrrR5KHCsRHSTJZ5Z96JTArW0/?= X-MS-Exchange-AntiSpam-MessageData-1: xO6r3IpDT161S+7dVuWiq1fKitdfPqqK1ao= X-OriginatorOrg: siliconsignals.io X-MS-Exchange-CrossTenant-Network-Message-Id: 0c7680c1-8366-4ec4-f429-08dee508cef7 X-MS-Exchange-CrossTenant-AuthSource: PN3P287MB1829.INDP287.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2026 20:11:52.9158 (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: 3jIyN6ysS0hmz5lZFjY/4f+igcK0oeqfTXJJ1UtAY8a30CT/p3wlT1ropOH24WNMVS87yb/Dx3LYHmzX9jLeSHZndljiQabPW8A1zZctlNg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2P287MB2078 Content-Type: text/plain; charset="utf-8" link_freq and gain don't need to be stored in struct os05b10; make them local. Parse the fwnode properties up front and register them before the single ctrl_hdlr->error check, so all controls are covered by one check and the per-control NULL guards before setting flags can be dropped. Signed-off-by: Tarang Raval --- drivers/media/i2c/os05b10.c | 55 +++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/drivers/media/i2c/os05b10.c b/drivers/media/i2c/os05b10.c index b4dd3137ad5c..c355ac197eb2 100644 --- a/drivers/media/i2c/os05b10.c +++ b/drivers/media/i2c/os05b10.c @@ -557,11 +557,9 @@ struct os05b10 { =20 /* 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; struct v4l2_ctrl *exposure; struct v4l2_ctrl *vflip; struct v4l2_ctrl *hflip; @@ -1276,9 +1274,14 @@ static int os05b10_init_controls(struct os05b10 *os0= 5b10) struct v4l2_fwnode_device_properties props; struct v4l2_ctrl_handler *ctrl_hdlr; u64 vblank_def, exp_max, pixel_rate; + struct v4l2_ctrl *link_freq; s64 hblank_def; int ret; =20 + ret =3D v4l2_fwnode_device_parse(os05b10->dev, &props); + if (ret) + return ret; + ctrl_hdlr =3D &os05b10->handler; v4l2_ctrl_handler_init(ctrl_hdlr, 12); =20 @@ -1287,22 +1290,18 @@ static int os05b10_init_controls(struct os05b10 *os= 05b10) 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, - ARRAY_SIZE(link_frequencies_4lane) - 1, - os05b10->link_freq_index, - (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; + link_freq =3D v4l2_ctrl_new_int_menu(ctrl_hdlr, &os05b10_ctrl_ops, + V4L2_CID_LINK_FREQ, + ARRAY_SIZE(link_frequencies_4lane) - 1, + os05b10->link_freq_index, + (os05b10->data_lanes =3D=3D 2) ? + link_frequencies_2lane : + link_frequencies_4lane); =20 hblank_def =3D (s64)mode->hts -(s64)mode->width; os05b10->hblank =3D v4l2_ctrl_new_std(ctrl_hdlr, NULL, V4L2_CID_HBLANK, hblank_def, hblank_def, 1, hblank_def); - if (os05b10->hblank) - os05b10->hblank->flags |=3D V4L2_CTRL_FLAG_READ_ONLY; =20 vblank_def =3D mode->vts - mode->height; os05b10->vblank =3D v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, @@ -1317,12 +1316,10 @@ static int os05b10_init_controls(struct os05b10 *os= 05b10) exp_max, OS05B10_EXPOSURE_STEP, mode->exp); =20 - os05b10->gain =3D v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, - V4L2_CID_ANALOGUE_GAIN, - OS05B10_ANALOG_GAIN_MIN, - OS05B10_ANALOG_GAIN_MAX, - OS05B10_ANALOG_GAIN_STEP, - OS05B10_ANALOG_GAIN_DEFAULT); + v4l2_ctrl_new_std(ctrl_hdlr, &os05b10_ctrl_ops, + V4L2_CID_ANALOGUE_GAIN, OS05B10_ANALOG_GAIN_MIN, + OS05B10_ANALOG_GAIN_MAX, 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, @@ -1330,33 +1327,31 @@ static int os05b10_init_controls(struct os05b10 *os= 05b10) =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; =20 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; =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); =20 + ret =3D v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &os05b10_ctrl_ops, + &props); + if (ret) + goto error; + if (ctrl_hdlr->error) { ret =3D ctrl_hdlr->error; dev_err(os05b10->dev, "control init failed (%d)\n", ret); goto error; } =20 - ret =3D v4l2_fwnode_device_parse(os05b10->dev, &props); - if (ret) - goto error; =20 - ret =3D v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &os05b10_ctrl_ops, - &props); - if (ret) - goto error; + link_freq->flags |=3D V4L2_CTRL_FLAG_READ_ONLY; + os05b10->hblank->flags |=3D V4L2_CTRL_FLAG_READ_ONLY; + os05b10->hflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; + os05b10->vflip->flags |=3D V4L2_CTRL_FLAG_MODIFY_LAYOUT; =20 os05b10->sd.ctrl_handler =3D ctrl_hdlr; =20 --=20 2.34.1