From nobody Sat Oct 4 00:31:19 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011050.outbound.protection.outlook.com [40.107.130.50]) (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 C17362E9ED0; Thu, 21 Aug 2025 20:16:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807379; cv=fail; b=lzP/kopzsvd+Z/SXfw02xbkhjN4VbqujHF5oYd5vFIidXnc9m47oGqA+GrO6RLNEaJTZRH53h/hTThjIyel2PMWryPtts2U2VzxbqBKt/LcnQAyzottvL+o8cdR0uQFzcziWRo4giRuuLIc1IK5CVUk48P6Z5Y/yh6VvGJlmYmg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807379; c=relaxed/simple; bh=Fmig6UFR5T6LwkMsKHH1h1Ci1nR5Kq8Nzznokeotcg4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=M3+Uug2Zz00R3KlqeH5W6UnWczakC/PcRiI/BF4+hJYBCLEYEhdepaCsBcSXJKgn6J+A+JnF2NjaEaIzcRlOx1Q9nDSvSQ0NGaWL99DPgj7XJWu4mT05Ft6mcWgrqJD79XZXOJdqZfD4ijKvFjuZKn5/AwCkEZ7I0ng9HFfA19Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Zf+WGjya; arc=fail smtp.client-ip=40.107.130.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Zf+WGjya" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tIqchdrlSGBm8a79rB6Ge2XVz1K0VdY0Y9grKWMiFLpNHAI/MOIlQnBoeb+onQEUk2k6g35KEdFCQEHFjgeoLrgi/eTyQJizEhCtmjAOmMlCFTMQFcEh0gETnaNfpzfwvcVzFQCrLHtcxBYVdtKWZWV1V1hEHuKzkQGKHIjgMqUpPq1QhuIENCOMQnUQTvBsRssFzPXsmy6juj+yh//3caQEHXdA/JHgMMTMg8wphmhR8d+qrfTXrXYl5l6mKqGqLh2b8msn1+wRzJWXJHqiGq46td0GedVm3scoZkAMJWyS3lJcq4UAzC3jpngHu7B8qvSZje5fFSL1VRnyyqCl1w== 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=T6DUzJksOmZDw1eCTR2/1iQdFMBTUrjcEDfpbH9VMXg=; b=i8690oBCI4/3JqYkb5jKuQieTyiqQyqrLo7JUY4pJhH3NjAIwd58OkdldyazTU+L7RRFLGEWhrfHyFfniU7yjyyRI3BAwP4sDbOj2b22DZ2kXDHPl32G7/66bOg9DGV19wyJoLOy3gybwI6OaMLcAmLLFE1hebDFcIADIe6ur3AmDazFiHqxW8R95DyNkaF2iyreAbGgNF6llfCG6VPBDMtR8aLSPnnIFUq3mIXRi0zZXlyc3TkZQmLFTIjHO6dPhWjB32/thfOnMbpTLOR7f0ScZPlY25B7RoaShCrEqGlANL5NZXAgMjo7OUFs8QsmdNMBPOOvTYsAVTcsCJCKOg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T6DUzJksOmZDw1eCTR2/1iQdFMBTUrjcEDfpbH9VMXg=; b=Zf+WGjyaixgDyiY5pNbN1tFjP4exyglEcvEQfT3WNq7BMZG/prdo/EqaeQyLks9z4jrg9UNN8McaIYRXYorWuCnuWb//EJonDXATMKGCpiHoIoF+wOScSzxZSqUPoFoMLUCrDaEbS/xGUs8aHSN+Wh7JxPa2en82nzarf7t6Lm29kGsFOY8Z3kVm2Yz97nES5e/ciG9yZFhaxPf17h1AizvfIOXcYLCRvglG1Bm38pZiaiCkvJnmfwQB520lBguA4ZyyfiKkxt+1unKYvmFehs0oPCgMfHm5jDGeLOsI2J46mw0T4ruLp1UmSQTyXEtsN4eUTddt0GxArFjy/FBhWw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:15 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:15 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:36 -0400 Subject: [PATCH v3 01/31] dt-bindings: media: add DW MIPI CSI-2 Host support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-1-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li , Luis Oliveira X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=5433; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=DWX1jA2//m1GBlkbCXbsa8qsz145e9p/CEF0IT01wd0=; b=cEpZs49PVIrO447k7Z0DoMFfiBdHpg3kvShub+LrJe0tSP/WP7Yj8hSwVXxPuvbMQtKooHTAt 3Fra+WYzDfTDqyUS7LWfSgnDrK9Ws3m7vTPbtX2HIV1vRXr/RxoKhsd X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f11747f-2474-4a37-81fa-08dde0ef947c X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?N2UzUktza0s0S3hyWlBtYW1UVzY1d2ducjlhamRNVTFnMmRQeHZWa0xwL2tM?= =?utf-8?B?R2JzNm5JdlRzVDRIOEoybTlFVkM1VkdtT0VFRXFQWkZkVDJVUnpzaFFiWm9R?= =?utf-8?B?aE9ZUE9pZ3g3Sk02WlpoVnhVNEtXR3UvTkpTb2tRakh4cmNJczB5TmdOMHFj?= =?utf-8?B?T3lyS2I0a0hRWjN1QlZWdWNIL3Jrd0dzbjFycit2TnBqcnZja1NNTDA4WFQx?= =?utf-8?B?V1VGcWdtVWt6WitRYjhUamlKMjYyS0t0dnBXZDdMcCtXRUdGUXZZM3o0UGs3?= =?utf-8?B?cmlJRHdFSlRTVzlRSTZZcEdnVFcweVh4Q1lYNlBZNXJRNGc3SU5rQ2toRm5J?= =?utf-8?B?TTUvT3c1cEY1dmMzUVN2dkFaVVQ3Z3MrSWNyWEJIZTdzYUdEK1E4U01ndk1W?= =?utf-8?B?Zy9mQnFVT3pCZHFaelovdy9WaW1Md1JIeEZKcjBxWmQ0S1cydEtrWHZJRm42?= =?utf-8?B?WUV0eVhQeW1scmxRYXRvRzE1WmF6VFB5V0J0S0xVU3BJZG9BM1YwZGtYZEh3?= =?utf-8?B?ZzNvSDNwWDJqeWxmRzdkQlJGMjlNZ3VCdkJXVUx1ZlpXaWV0ZXZ1Yy9qa0lX?= =?utf-8?B?VGIreUdFMHlrTUtCaVRCbm5IaDVsZDVEMTd2d25OQTFaU3E4RWY1UG4rNWhl?= =?utf-8?B?UnNyQVFuVkFCTk5WK3RMenRvd3Q0VHdrREh4Nm5NclRHZ1RTc21WU0Y1UjQ3?= =?utf-8?B?eUd5WnM4MWdXcmQ5L3E2ZFBjS21BSzVMT0dqdjhwTUtnTnpKVmtzYS8yNHd6?= =?utf-8?B?MmtuSGN5ZHAyK2ljUjU4bDRTMzREdnJ6WnZ5TjJuZnkweHpSWVhlbDg3MTBp?= =?utf-8?B?NWsrRUEzcy90cXVpNVZpc25VZ05mTnhlb0ZMMnlIcHduakNTS1ZSSmVGbGFm?= =?utf-8?B?NGJEait5eXlHazc4Y2w4SmkvU3VTNU5KWHpYTG5MOUZtM21jbUVOM0VuTk5I?= =?utf-8?B?bC9XeXRGOHMwRVJVaCtxNGVEM0F0LzFkelhEc3VUdVRPanJZU0wyZXF3L1J1?= =?utf-8?B?cTJ1azllUlJpSE43TjFLNFRDNW5Kb3J3ZjhyT201ZDdYTGFMSngvM3duVlRC?= =?utf-8?B?Z3pGQnhNTDQvaHdtZ3k1REFKUVpTeTRqWVNYZWVTVFdLWFZndjIzZGxzY2lS?= =?utf-8?B?SWoyQkJYVDFHV3V0OGNxTS9sbUhQVk41NDJJbG9NSmlkTFNPc1pBSENnakxE?= =?utf-8?B?cVFvK3liTE1WS3cvRWY2QjlHYys4cE9walZrellDY0E3OEtiQmFGYmpZZ2hm?= =?utf-8?B?dHZxMDdMMFM1M0lKOFUxY0V3US9EWEcxNjczS09GMC9iNE5tSnFhNklWOTA4?= =?utf-8?B?dUZaNlhVWWJqZTFFRjJtTkk4UFRrZDdvMGovSW1uSjQxRngycXZtVFFuRE5n?= =?utf-8?B?WVJLQ3orNjFSaUZqWWhGRzV0NE1hK05Bb29oNG0zMlVHVU9qampSbXlSVFd1?= =?utf-8?B?dzVubmtmdmhlajRGSm56NVVIZ2huUFZKR25ZbFI1SG1BVXJWUGxOMUsycFIv?= =?utf-8?B?VWJsMm4xNytqY1JCaG1qMnAwcXJXZUhpRzRkMjJvUUxkRmxIZVpjMHZEMUZ2?= =?utf-8?B?ZGxKRnk1R012dktBTWR1RmdOL0hkSEozM09nU2VTR0h3b2w5SnZlYnNUWlJt?= =?utf-8?B?TDJzajN6MnhIbTlaS2U3dnVLdkN1VldLemFNT290Uzh5TXZqZ1dBUVlkdk5N?= =?utf-8?B?R0VXUUM2ZEFRTDFqb2Uwb09yTUNacjZzd3ZiSjl5ODVoNVNjTjBIZDVLYTVZ?= =?utf-8?B?cWlMbDhxd3M3Z3hHdUYxR2JsR1ZzeTFWMGlkS1VqWGs4TDFabXJzRkpiRFZ3?= =?utf-8?B?cFZEQkgwVVJkTWNwaDFkWGtkMXBDOHRKNytHdXlWeWFxTk9jSmVCb0dMUjNh?= =?utf-8?B?Z09vS0tPQ3JGelVyMnJlUnNwaVF4bjc3YmlvZ3RoRm9PMk1KS3BiMFYza1Bh?= =?utf-8?Q?64NWPf5DSFlnNhQG3t+oVQaMiNxEqvWG?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TC9uQ1RJZk4zWDFWczVMRkYwUzdud3ZhY21RbXd3alArNDUwRG1CQ0xZWDZE?= =?utf-8?B?bTBjdHV6QWNzaVo3MUsrUTdWbXFVSDQ0WGxMUFZ5R3pIb0F1RlVORmszSmVO?= =?utf-8?B?K0lReXlkR2tyWFJuZ3UvWGc3Z0dmZGpiWUZSdG9UTmE1cGxpVGVGM3VvalRp?= =?utf-8?B?OG1RNnRiQ0VNTzZRZkRQamp4TEtueTVSdm1JNFZoTytjOEloamJpbzFKakEr?= =?utf-8?B?ZGl2WjNBVUlHaGMxSFhWUys0TDRPZkZBQ2ZaZDltSmZ0UlNLS2lGYUFjQWZi?= =?utf-8?B?NzZNMTIvVTY2M0ZQcmMvQkhmK3I5VitJRFdGNTFXanlNVWxDSmNVVEZ1SmlT?= =?utf-8?B?ZjE4RGR1Yk96R0gzRmVveDgwYllGNm5UWHVJdkZVaDlQOE9CclJpdVlBTjJC?= =?utf-8?B?aTkvczh5czdGWDk3THJWMmdvYTNYeTd0Z205eWRESldMVHM1dFFrZzFZc0Ry?= =?utf-8?B?R2JKZllqeThKWEFiOHFwRFJ4a29RTTJHR2xlWFhTZFBMSXZaSk83bjRJY2RY?= =?utf-8?B?VkdkQ0FOT2VNMHhPaDRRelNOTC8xbW1USlIvam1rZlJWc2xyV3NHajlWQ2sz?= =?utf-8?B?RHpGRVVoRWg5U29rWUVoeWZrNnVLdjlBMS9uTUtVS2x1bmQ2Z01neWE1Tmsw?= =?utf-8?B?Y2VDdnhSUXFET0x3TUtNb2tSN0N6OVZaVzNWWDB4N1gySkgxQWd6T0tkb3Rv?= =?utf-8?B?YXVlK3RHUDJFUEhzSkxIaXhXNWhIc09jK2FsWXFwVnBLNlBYQzlTRHZhU0RZ?= =?utf-8?B?Rzh0NDRZcWd1U2hnUCtUbWxmZlZ5L2Y2OVFiTll3a2VGUWkzSkpFU05jTGtv?= =?utf-8?B?MHBNMnUzblRML2tlMTVoTW5uYXQ2ZDJwM0Q3Y3k3OVh6K1RwSU81M2xhOVZr?= =?utf-8?B?SUNMZVBEVUVUR2ZKYnVsU0VSREU1NEJja0dJQklxZGVnbjdET1N5MkVxdGZn?= =?utf-8?B?WG1zRHBIdjZZTUNwWXFlVEVUaGNEZFFJSFlLUC93THo3NW00cjdaUTNoUno4?= =?utf-8?B?ZzdvYnM4QnBnaG9OaGtRam5RTCtneWg3VEI4ZE1Ddy8zZW9MNjRhSU9xZ1hO?= =?utf-8?B?U1NMeEhiZTVCRW1wUkJaWEU3UXhLUUFJSEJzQURYOTVGa0loNGludTF2U0dp?= =?utf-8?B?cGsva1ZPZlMvVDNvWWswaWJIL3ZwVVdpb0hOOURtUmFaYlJBV095ZEhXYStL?= =?utf-8?B?ZTh6Q0hrUDU5c0R5NmExN1ZLYkIrVzRpUTF0MG5CK3diZkVOQ2x0TEdJN01V?= =?utf-8?B?UlJhek9UckxlS1ptbndtbTBjK1dVVXBSWE1jZ1FCUXd6QjVSMERQT2V6Z0JI?= =?utf-8?B?djMvaEhBRDRUOWdBNC93MHVqNVhZdmsxWDIzbGh1eGFoTFl3ZXg5LzF1N3ZJ?= =?utf-8?B?UUtLeXhlMG5IV2pKZ2JEM3ErcTNkZ21tTks4ODk2SXZRMTdKeVByZ0ZpSEZ1?= =?utf-8?B?WWpPdjZCNlB3cG1GSFU0R3l2T09FQ0dpTFl3YlFMRGRBUUhXZ1doSWM1aW0y?= =?utf-8?B?YitPMFhPWG03cVpoWThjVkdsS0paK3gzU2NNV0tLZldxTXpoaVJhYzhaUC9F?= =?utf-8?B?ODVYbEtzMjQvREFNYlQ2anZvOGtjRWtYcWpMcjZRS0hEMnZTb3pSTEo5ZXdL?= =?utf-8?B?bEFRS2h5am1lNndjVzllK0ZQWFlNS2toZ3JScEQ5VzNsVWN0QmdBQUFleHRm?= =?utf-8?B?OU01OXpkRDY0YnR3TWJVdmxiMHpXYWdHbHg4d3lHTFJ2a3pwY1kwQy9zR1FC?= =?utf-8?B?QmNVRUFOaytJVHNJbmhDQjJBMXA1TDF3ekpTdGdLa3REd2h5c2VrSGdkeTlG?= =?utf-8?B?b0cwc2F3d0hQQVRGcmhJbmxMdDhxTE92eUdwWkRIYWlyYlA2bFRLRWw4QVpY?= =?utf-8?B?UE9vOTRVT1B2TVRjNmVwT0kyVVRwK3NuL01nVytrTm1naEZlUDVVcnFxdklP?= =?utf-8?B?cW82SndjS2xDNlVNRnVSNi9xVGkzeUZzRXVFOTFWbXUxY3F5V3hNTzIvd2ZY?= =?utf-8?B?aGMyQWN0dFFwVml0cGxRVXdEV0Q4UFVYK1VxUUtJckhYdlQyR09QVHN2UTF5?= =?utf-8?B?NEJ4VTJhSm40VjdWTGNEVHZadGNaTm5iY2UxbW5tOW9sRE9CSDBRaisvSWdi?= =?utf-8?Q?VJRUmEDgnNsmX1sF9bvSCN1Tp?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f11747f-2474-4a37-81fa-08dde0ef947c X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:15.1191 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XgzO93Ten1mtydg/pznXeuu8YSH5gcKhZQU8Zptj5JOH9BRKh7jCESoDBfBQBqeYgELHh3fWVirFO1k/YTQTSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 From: Eugen Hristev Add bindings for Synopsys DesignWare MIPI CSI-2 host, which used at i.MX93 and i.MX95 platform. Signed-off-by: Luis Oliveira Signed-off-by: Eugen Hristev Signed-off-by: Frank Li Reviewed-by: Rob Herring (Arm) --- Change in v3 - drop remote-endpoint: true - drop clock-lanes Change in v2 - remove Eugen Hristev from mantainer. - update ugen Hristev's s-o-b tag to align original author's email address - remove single snps,dw-mipi-csi2-v150 compatible string - move additionalProperties after required --- .../bindings/media/snps,dw-mipi-csi2-v150.yaml | 151 +++++++++++++++++= ++++ MAINTAINERS | 1 + 2 files changed, 152 insertions(+) diff --git a/Documentation/devicetree/bindings/media/snps,dw-mipi-csi2-v150= .yaml b/Documentation/devicetree/bindings/media/snps,dw-mipi-csi2-v150.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d950daa4ee9cfd504ef84b83271= b2a1b710ffd6b --- /dev/null +++ b/Documentation/devicetree/bindings/media/snps,dw-mipi-csi2-v150.yaml @@ -0,0 +1,151 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/snps,dw-mipi-csi2-v150.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Synopsys DesignWare CSI-2 Host controller (csi2host) + +maintainers: + - Frank Li + +description: + CSI2HOST is used to receive image coming from an MIPI CSI-2 compatible + camera. It will convert the incoming CSI-2 stream into a dedicated + interface called the Synopsys IDI (Image Data Interface). + This interface is a 32-bit SoC internal only, and can be assimilated + with a CSI-2 interface. + +properties: + compatible: + items: + - enum: + - fsl,imx93-mipi-csi2 + - const: snps,dw-mipi-csi2-v150 + + reg: + items: + - description: MIPI CSI-2 core register + + reg-names: + items: + - const: core + + clocks: + maxItems: 2 + + clock-names: + items: + - const: per + - const: pixel + + phys: + maxItems: 1 + description: MIPI D-PHY + + phy-names: + items: + - const: rx + + resets: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: + Input port node, single endpoint describing the input port. + + properties: + endpoint: + $ref: video-interfaces.yaml# + unevaluatedProperties: false + description: Endpoint connected to input device + + properties: + bus-type: + const: 4 + + data-lanes: + minItems: 1 + maxItems: 4 + items: + maximum: 4 + + port@1: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: + Output port node, single endpoint describing the output port. + + properties: + endpoint: + unevaluatedProperties: false + $ref: video-interfaces.yaml# + description: Endpoint connected to output device + + properties: + bus-type: + const: 4 + + required: + - port@0 + - port@1 + +required: + - compatible + - reg + - reg-names + - interrupts + - ports + +additionalProperties: false + +examples: + - | + csi@3000 { + compatible =3D "fsl,imx93-mipi-csi2", "snps,dw-mipi-csi2-v150"; + reg =3D <0x03000 0x1000>; + reg-names =3D "core"; + phys =3D <&mipi_dphy_rx 0>; + phy-names =3D "rx"; + resets =3D <&dw_rst 1>; + interrupts =3D <2>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + endpoint { + bus-type =3D <4>; /* MIPI CSI2 D-PHY */ + remote-endpoint =3D <&camera_1>; + data-lanes =3D <1 2>; + clock-lanes =3D <0>; + }; + }; + + port@1 { + reg =3D <1>; + + endpoint { + remote-endpoint =3D <&idi_receiver>; + bus-type =3D <4>; + }; + }; + }; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index 9d9d2be7be8037dfa96f1c9edd24a0cf997b9393..ecb7bc7cc8ad797f43173075ca8= 973804bf335f7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -15334,6 +15334,7 @@ F: Documentation/devicetree/bindings/media/fsl,imx9= 3-parallel-csi.yaml F: Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml F: Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml F: Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml +F: Documentation/devicetree/bindings/media/snps,dw-mipi-csi2-v150.yaml F: drivers/media/platform/nxp/imx-mipi-csis.c F: drivers/media/platform/nxp/imx-parallel-csi.c F: drivers/media/platform/nxp/imx7-media-csi.c --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011042.outbound.protection.outlook.com [40.107.130.42]) (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 55E0D26A09F; Thu, 21 Aug 2025 20:16:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807386; cv=fail; b=L1wYWGzgU3aIBxc7MHdF6Lk53KJtI+TipuFjc4VB1HCZW+NJQbdpBaMojV8sSo47Iz2PCkfLl/rzaQT7/YGqBQOaRlxHnx1W9CPdagtRs5Syrx3tHFA9wqK8ftASUFF3zziG9vpR9/HOo+HkcG2bExNNt6AwWBnvoC5nqsWK/ng= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807386; c=relaxed/simple; bh=cHVd3dk4+Wvd6gewVV8jF52PHkO4/s5j/6pa1Fi3I4Q=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=NuHw8+76SXD44O78In20da905O9TzSBVu3UGL5FAQfVydtwJJLBkFKs6woJBzmVWWbftgADvXkFB72PJ7uv3hq0cCXJHaows5dE2tClwPY0IYIN8r++gRjxckWbZMsAd0TwQDISAsYzXPs6j242qV1LE1BNO5ZFk6SuWeCtGF3g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=GV9L+d8i; arc=fail smtp.client-ip=40.107.130.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="GV9L+d8i" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YHXu0dSxSR2/VVQRjaFRnxObQ4AWhZkLA/euUzNZ6palrLS33aayvh1APWVHXT4GBS10MQrjtlcwqh5BxT0O3kIj4Q6AD3zUiPwHesNbg940TIpGGAAm6HEv5Ya7QNpDKhLMIp1RF85p8jnb8q9Vu+0ebpcDpakNeWFvY+0u+5LKyeNQ76+OfvmYMMpS27qf0xAPAuGYR0kyudBksOGU79r0ADtd7yZDrmHJyl/N0nPWPMcm5XhpqGnqwpIwGkzBuRt7+cMZIJFvoKa9x3NvIXz4eme/T/ODeyuSw7xNSeC8bXhO0IR6r2o01wR+D5bwmQX00vZ8U0VULqeAlQIMDw== 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=z/IKrVeqR2kaTJLCiDkaafeUm1wnwrzEQuYrgccqs0Y=; b=Qui4IweP1FOPdgiPaMP0D+VuGcCpj9aIkklQkqpk7bdu9V2SQB5INSU2+Ft1TzPkp6px0gjys9c47kEEI46NRbz/dyxZfLNjEgOPVTXPxs1JTkFrnfE+wlYOFM9gE4FMLdPt2ggxIDPYIiYA/786H7aTg1fEXPm0X50/7agp1jRFlSRioq6h2WHDMoqO3s+deapFUA06X8nMFINYpnT3D71CEhLMYocCSrgHIovLd+q+Ezd/2/iiVzNAT9v+vAeVTcAgYJ9aVLbhqB6AS8lBIuHaHeMuDCKqq86asvS0JFqJSFzrY2AVFQ91meBJmwNqqz35/ocxDSWbrB19wfOv1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z/IKrVeqR2kaTJLCiDkaafeUm1wnwrzEQuYrgccqs0Y=; b=GV9L+d8iYNZtwC1awtocUTnh9RwkOB23U1Cq1+/gNw+FbDCG65cs6Ss3E38SN602tD1aqBhN8jC59Uqr/K0OEbdN1mrMNRuwaxKO3XJgMKwSraLZQmxT2bsk/i+z7Qbirsq2qwFplmeeejJjfX6tJMYllSMXTN9lweW6zhEx0UOjSXyXotVWQaXm5nTcGpiaa6xzmJyVlSvCbZuP1d3cOcB2/Hp02qMmkJNLDVoJDKMpoc16knsGdrdPhENgNblvCEGLHoPuSu+UaNABK+94GMHqZQn4VYBhn/ZMj814ChUAGbCFWlQXFCACNsSdyZN0mpsnOdYM20AQq6fwM9wIsg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:21 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:21 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:37 -0400 Subject: [PATCH v3 02/31] media: v4l2-common: Add helper function v4l_get_required_align_by_bpp() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-2-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=2204; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=cHVd3dk4+Wvd6gewVV8jF52PHkO4/s5j/6pa1Fi3I4Q=; b=MR3d66F2ITTAyRU1zEBcOm6gjCUtXpLbb3+wm25rzmzyisn/JV+LrbN6hQz481hyla36R4DZN jFJmkw5E9BOA7lvaHE4K1bkkQaXXnRxKqCqeS2cbns3rc6yPNeGjqr3 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ea1e8ae-764a-4d3e-ab26-08dde0ef982b X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UUs4SExGUStqekFTSzg3RkE1TFJEd282T0d6K21xN1hLQ2F6RUlFYXlwOEox?= =?utf-8?B?MVRyTm8xSm00VmcrZ2dSZFdPbm0xc1JpU3QxS1NselcralJkS2EyYW5aNDYw?= =?utf-8?B?N0dHNTFpcVhicEp2dkJaOTd5a2RYVXVFcUt2QVFLOUN1SEx2am1PZWxPUWRy?= =?utf-8?B?M0F5Qmpad0tEVmR1Nm5IN2R5ZmdqMFRUd2VvVk5tTkRWY0NDMWpXK1JXcVZE?= =?utf-8?B?MkNOTjd4Qkl0Sk81NmU0aVllMEZWeDBrRlcvMU1jWVlBZWc0VGJxcmFWWXk2?= =?utf-8?B?TG9tekZ6V3l4cjNRbW1iTTlvMWtIYnJPY2UybkMyclljZGV1eTd1MDRYeGdM?= =?utf-8?B?T0s2aVlhRkNhclQxTTFwM2hyN25oQ1YvSjVibldWNXMybHJwYWt6K0JhUmRM?= =?utf-8?B?Qk9LSWZaTk9NcklrNVZDNWhmVUxXdnlLNU9aRWd3MXFqb0c5NlNta2tucCtB?= =?utf-8?B?QWVLV0YxVzhHa3JiSml1dTZwRVZ4aCtEVlJBcmJIOWoybHQ1eDIrYTVwRkEx?= =?utf-8?B?WmZ0MVZlZVJPVG04LzhydStxRXp5YnZnQUpEQlAzYXhlWCsxYmtIOVdva2Fz?= =?utf-8?B?UW5jRk9BQ1F5d2JBeWxUL29NQXpRZi9Ic2VMcTRkb3N5YVRGaVV2UUdkNWt4?= =?utf-8?B?am5WWnRVMWZXZ0RRcm44Ly9RRU9jclZCT1BHL3ArWU9hbGxUYW50OXlBYmpV?= =?utf-8?B?RXJNdVozSFVpUzI0YzRVRGxvdjlVd0xLaFMzQkV2QTlycW9ERU1SMS9lb21j?= =?utf-8?B?OVUvMFMwVENYQ0YraUpteTVtWTFOZGluV3pGdGY5ZmNhMmEralVXTTZJb0p5?= =?utf-8?B?b3dwTHAyUDFmckhOVExIN3krM2hHZmU0YXNTRnVlMmdSaVdFQXdvSmRJSk5t?= =?utf-8?B?ektvbFdFeml3aGxyMUY2a0UrSjJLTWZOZWQ3Wk54eUF0NXNpNnA2UXFPSXg0?= =?utf-8?B?RHFUbGhMbnlzYTZ2cFNZT1lKUkVXTSt4WGY2aFowcTBTZDJjaHhwQ0M3SVEy?= =?utf-8?B?Nm9RbGU1VnBNaFUvUDcrS0ZMcXQvOWR6TjJKMzYxb0YvaUI0aDllanJheUxj?= =?utf-8?B?QWJaMmZqQklPcWpRZHNqd2VoNWR6aHA4ei9OVDNaVk5kUDJnTVhRTHB1Z1Fo?= =?utf-8?B?N2o2U1R5OVdjSTl5NjEwMVdMZy85ZG00cWxzRlRVTHJPaDU4Qk9jNDVRY0hM?= =?utf-8?B?TEREdVhwMjBSWk8xNkVFQ20wZzZoUTZjdHExa0tyMUpDN2V1YWRodC8wZmdH?= =?utf-8?B?cTBZb2RJalZIQjA3ZHNodVJLVDZTMGpzZWNYb01VZnBvRFgrUjJDU0tncGtk?= =?utf-8?B?cGJ5eHJnN1pDS01SaTcrZWk0NWZnbGdpN3J0cTdvN01SMksrcktmb0FReTR0?= =?utf-8?B?bHdLUk1TSzRpOVFTd1RVR0lId2VzaXlUZDhtdHJXUzZRcExBSnFoZEJocjBy?= =?utf-8?B?SmtlbGkwRkR1d0l4cFdtaUxsZDFibTNIRDQ1UnlCdHBSM3NPbWZnb3Z4QktD?= =?utf-8?B?UVJIcmhBclMrVXpLcXIxTVhMcGFtWGxKbjZyWUtKeXpQSW9qN1NvOE5TQ202?= =?utf-8?B?QVlrY2FueTZ2YkNIRDV2Qi84MmI1VjBGT2RIbmNLSzFBcXlCYm04MDdQUXlQ?= =?utf-8?B?UTVvS05tazZIbXdnY2hKTDU5UUVOKzlwZFd6NzRFV2VlM2lUUVhNbzFQUVdw?= =?utf-8?B?N3FodUtVbVFzQ2t4MmJFVW5Lb283QlhWU2RFQ1FSZ2MvMEZnWGdnblYwTVNT?= =?utf-8?B?c3ZDZnNsdzJINVFMazk2MTZJMEZERjhsQmRrc1VlY1JsQS9VcVNCY1NjbUZ0?= =?utf-8?B?SXVFbjd2c0dOT1hpZ0VrUTltRDRiV1EwMTdUU2J2N05kSWwxWUZGY2ZaV0xK?= =?utf-8?B?Y3NhMXhtb1VjV3E4bnhFR2NsTzBKU2cvdVhsMCsyMll3WU5VdkVvTmhVTEx2?= =?utf-8?B?Vm5uZVozaDBoc3FrdGRXK0FydDdsbDZLM25BdDFQMkhNNHNvM2s4amdjaWV0?= =?utf-8?B?cElIMTRFUkVIN3Y2ZkdVWmV4U3FEeXViS1hLS3RoMjRMa0pJNENvdnB5ZklC?= =?utf-8?Q?nxImzJ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?STJ0RjdFdCttTUc1ODJ6K0F5R3UxODZCKzI3cWx5T2EyN0FRMkRKckE0T3Jp?= =?utf-8?B?d2toM1NQeC9nYUlFVlJXQno1Skt0RHZSbE8xa2R2UFlCa3BMYTkrT0lIbGlk?= =?utf-8?B?Ynh3TFVwZGoyT3BFSU9KL1RMUmVBUkdRK1cvdnRXQlArRFFBNGtYeWZORG5I?= =?utf-8?B?d0ZDczJ0VzFDd21DV3lBTjB3aG9vN0NuQlZOK01wRXpVY1ZGU3VBVENpUHp1?= =?utf-8?B?MTF0UnJ0NWFkTVVtZzgrUEJscVQ1V3Y4UEpLUUpMM1loT2pvbjhERHdsQzd5?= =?utf-8?B?WnVDRWduNCtJNEcxK0RHMERDVEZMUTVJMmxJbk5xWXRhVUE5SVdXVnZ2RG4y?= =?utf-8?B?Z1JkaDEybFIzRURQZkV2TzJtZlFZLyttV2diYXVseGNkcDlTN1ZNSitQWW5I?= =?utf-8?B?bWxWby83QzdFQWlnT0EwUHJGemdxNHpuQkNROHFiVXBRVk9yTGxNUmZZMkYr?= =?utf-8?B?RTdFOUlKOWhqY0w5WStpL0IvbE1YWFVzUWh0NmNJMEcrZ0Y1aFlLdC9IdjNT?= =?utf-8?B?a3A3Umg4a0xUQUtmN0RJcm1pL3o5cUZON0xOK0dqREZ1a2lGV2lOd2cxRHp0?= =?utf-8?B?cC9vUEZuQ0dWRmREWklRbWVnLzFoejRNT2FIa2dxV29tU3hUTjNQNXFQTG5k?= =?utf-8?B?T05zM2poNnJNWmdmdGFVL1lndkFqQWRiZEZYdFRSaFdtN2tieDVjbUVMSnM0?= =?utf-8?B?d1VMZnZWakFwZXZWdmhpVndpcGJscHJRUGRUYTc1ZlBIZjBXMUtYWFJzQndV?= =?utf-8?B?Z2VuWWo3Qm9BY2owemk2ckJvcnZQSDBoVnpLQm03ZHQreVdOdnZ6bCtsb3gx?= =?utf-8?B?MHhaMFlya2pVTWpuTnQyZHowc2ErWmtzdXkwajVidWlvZnRrbHFSZlN3VVZH?= =?utf-8?B?MzFZbDQxeWNheVcrcDlKN29MdlB0c3B1R0hCT0pzSmtadXFjVmhTQ1NGanpS?= =?utf-8?B?NUJqSjBzSzRVMGlYQjc3ckd1SmVTN0hVRWhBNkMwMWNrMWVEcFNkaEJlU0RC?= =?utf-8?B?WEFWNTVDdGxMNEtJOTU0RTFIZmZJcmc0cUMxSS9XcGxVa0l3Wk01MDViTmV4?= =?utf-8?B?NU9ObEFPVDZWdzJuNzlmTFJFTGQvZUh5MHJncVlJU1c3TExqMmxFb0VJN1lD?= =?utf-8?B?MnZtVFVrQmxyOVVCY1kwK1dDVFh3TWNIYVVHYTRyTGxZbTJJWmRwai9tS3lv?= =?utf-8?B?NXk1VUtmcXhJb3hwTTFVcVZ1L0RldzJKalRJc2cvc3d2dVJtR3RmMTg0ajFR?= =?utf-8?B?ZUlkL0ZlN0ttQzhnYVdUM0pxMEd6U1BydFlHSGlEek4vMWpOSjNMNm00K3Z4?= =?utf-8?B?cFZPS2Mwd0lNZWRhS0xyZ1Y3aThLUEQzdUcvcnJvWWo0WThiRXpjUDJmOEFX?= =?utf-8?B?TnY1QzVDZ1JmL3k3L0RndFUwaEdsQTNUOWcyd0N5dG92YXUrVktVYjdFYnNS?= =?utf-8?B?b2JkbzJYcXhUQVRvT0pNNnlncE5pWW05WEE0U1lsajkyMlN2RDE4aS8zOHo2?= =?utf-8?B?RjJvZnVNa2tMeDkwUkpaZ3JpUUY1OC8weGd2TmNLWW8zUmRFU3p0SlV6TVVS?= =?utf-8?B?RzM2NWd3dmtCem1aenkxTXlqUlBCeFBpdlVJYzJUaWl4RVBvdlVodlVqeHlu?= =?utf-8?B?Q1QxWkRUc0pTN0F2R21zQlQ2Tnd1MjJKby9kLzhtN056dWU2eU1Ja3Y3V0lJ?= =?utf-8?B?a1ZSQ2sweTl3OGhOTy9NeW1wUHRtd0hsNmk4dWw5amFxbEJiU2lLRHlUU0tR?= =?utf-8?B?Q1VTbEh4NDhLekVjaTBmbTFlWTg3Snl1Y2FLL0h5NXRwUzBaVHpUWWtUL3BB?= =?utf-8?B?WEQ3MzMxNnRJVTlyL2xUelZKbXkwUEdFdi9xQ2VZM0gvK2NQbDRybDBEc01l?= =?utf-8?B?QUJ6SWZjY3Noc0lReXpRR1BvQWV5QW5KdTk4eG51ZUo1YmYxQkFrRzVJY2Jr?= =?utf-8?B?WnlRTXRFMTVLSnJXekdUWVRnWVpvcXRFUjBqSnVDdTI4bnoyVlVLZ1Z4eTk3?= =?utf-8?B?M3FrU2JNV3VtU3hRODFUejdzUEtHWjZ6OTFTWGFsdWdxU08raUtPc0p3eHlR?= =?utf-8?B?SmtWais5cTFpMWRDSmVJMXpaeFBTOVdpd3phZE5sU1VrM3hqQnJLRjN2NWE1?= =?utf-8?Q?LqgNkgY7vhpHUIvf7WAoIaL2N?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ea1e8ae-764a-4d3e-ab26-08dde0ef982b X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:21.2943 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: v5bSDPM7zPKn1n01WNNPVcCj0M7Mm5eeV4tOd5JefhUfbL00VciVSbONao3uD6a0/9zNeOUPnMlfFZItudW/XQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Add helper v4l_get_required_align_by_bpp() to help get width alignment requirement. Basic replace below logic and enhance to any 2^[0..31] in drivers/media/platform/nxp/imx-mipi-csis.c mipi_csis_set_fmt( { ... switch (csis_fmt->width % 8) { case 0: align =3D 0; break; case 4: align =3D 1; break; case 2: case 6: align =3D 2; break; default: /* 1, 3, 5, 7 */ align =3D 3; break; } ... } Signed-off-by: Frank Li --- The same patch will be see at https://lore.kernel.org/imx/20250729-imx8qxp_= pcam-v4-2-4dfca4ed2f87@nxp.com/ dw csi2 patch also this --- include/media/v4l2-common.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h index 39dd0c78d70f7b935c2e10f9767646d2cedd3079..0a9da5e8daaddf26903d9ff4bed= 08b283dcd38b2 100644 --- a/include/media/v4l2-common.h +++ b/include/media/v4l2-common.h @@ -704,4 +704,34 @@ static inline bool v4l2_is_quant_valid(__u8 quantizati= on) quantization =3D=3D V4L2_QUANTIZATION_LIM_RANGE; } =20 +/** + * v4l_get_required_align_by_bpp - get align requirement for + * v4l_bound_align_image(). (bpp * width) % (1 << align) have to be 0. + * given number bpp, get width's alignment requirement. For example, + * if align is 3, means require bpp * width must be multiples of 8. + * bpp return width's requirememnt + * 0 0 none + * 1 3 8 (need 3 zero bits) + * 2 2 4 + * 3 3 8 + * 4 1 2 + * 5 3 8 + * 6 2 4 + * 7 3 8 + * @bpp: input bpp + * @align: expected alignment, 2^(align). + * + * return: required alignment. + */ +static inline u32 v4l_get_required_align_by_bpp(u32 bpp, u32 align) +{ + int pos; + + if (bpp =3D=3D 0) + return 0; + + pos =3D ffs(bpp) - 1; + return pos > align ? 0 : align - pos; +} + #endif /* V4L2_COMMON_H_ */ --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013033.outbound.protection.outlook.com [40.107.162.33]) (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 651FD335BAB; Thu, 21 Aug 2025 20:16:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807392; cv=fail; b=Ye5Yq9be7deiE5uJTALcluK3fiZQG0b6VKFCUwWUzDa1n9q3UL8t+IUmmMGqmZFQlVEx0WiTmS397gshPxNkTl4fcacTsxoUYdyIGFomaT1OMWKJnY1wZdtGomTxeVxcTD61aDu6M8c5x0p1ju0lur8h+h5wfCkNrq5ozOuDKWM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807392; c=relaxed/simple; bh=NE6j6tTYEJg2WyyX2y2FyEBvCvcCUuqfoyIVylB+eEc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=iPybbhEMrvWWNLMwlxfwbupOVXEJ2yjTftG5/9jNEqN65oHS+3hCBqX+Eex02mo0ZlHKMmrFOxJ/p9GH9qR5ViLRIRJydi/TMmu4/dV5DIZtt9VyVGq/4XcMeJwk2wKRPkfegqHZP725G7t5NCVQmaIYLiR4vU6mB+AmARvb+hw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=P5XG03iS; arc=fail smtp.client-ip=40.107.162.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="P5XG03iS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wnrzcthrpFdQG+eSP1cLGi93FUMm/Hekxel/nRL8jdTqXM1npVYTnJFpXnpoRP+6WLX73WapHL6WRWqhvHiIwdsKzb5XpNWSMqX86y0RaWD82qI1XiOQDZ2GLvv+3ylHD2yUsdW+FT9z3/3EJyB0qzBABROOqTVsyXK1hK7bYEmkQsickJUxDgI+wRRQ8rugfBqqJmbmnDKCEncWldpYXm8Ujo9rmf9u1FiK6Wk/E6LpCx/MsXztNLmWfiRD6+h9ue5nDhF//r5L/p4zdF9PwOK0hE70Ii0pljTwoBllV+BzLUfFE74LcsDgtrCUCL6BOKCVgs0Gm+MsRI1KU0kFOA== 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=KV8eCJe9DwpiMf17kdUY7SuVvO252dOHstr3jr2Ra7w=; b=UlmCYYsbo3kFiCFPZ33h2GWymWkhRW6tbHvAiZf7GfnogZ7wQWAMGP4KBvH8OE0c+fQ/Qfn+7c9WPFQuZRLZyUPAlGB3GcqsrpHOI2yOhM6wEqWUkqJ75JY625kTDmIygv1x7A7BCUyGEVLOcBIIPhlbsZIiXfx9cUmDk1lpMukj13TjnOmpqk1ojom+nlrUSGu+ahc90YDRMzw4oLEZ3QCStkMZp8d18yONqZl0TpgCdX0GdHXx9qOti/n4H6TbdSpuIXrxAvUIKCdPVxur3iUjg5o6Vwfdrt6D1gjuqI+Dqj0QVGta2QCCqo3QT8QLU3FTkbEf/OcA/tV31q/RKA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KV8eCJe9DwpiMf17kdUY7SuVvO252dOHstr3jr2Ra7w=; b=P5XG03iSu9fU3SQQCYZySTBPj4tgJMZ6k4E/2icUDMDFFKzRBGtXg/V1urio4P1N4vDI72+bmQp6ECSNi4uXfJdmEK418Qc0mxpvklYO71AsT9Ez1B0GrnTc/+ciILlwF5MHBafsxN8GdLlA4op6SO3NwatUXTE4hJn6WVxsxh5VIVNl3RNJSrt3cPDEFFv4G4/kv0EMaPOhtEej1wdrY0auT7qoT7RzlY78WfuAYrv53p6E3lJEaezbEfHxxwZeVeaDWeC3y815nVZmVazz0/77f+yODq9o586r4QFKVpEnuSEaNbmfpvTpmq2gsJ2KWzgTlxZ1tBj+5dc9RpK1wQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:27 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:27 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:38 -0400 Subject: [PATCH v3 03/31] media: v4l2-common: Add helper function media_bus_fmt_to_csi2_(bpp|dt)() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-3-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=11959; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=NE6j6tTYEJg2WyyX2y2FyEBvCvcCUuqfoyIVylB+eEc=; b=VQZT3eOC9j/3t90jJb1UaKWd9mQvZ2Ff7PBXjtIL/ZR/fHdHgtkcLAOY31ui+P+fKd7ZW2H38 r8QGoCi1xxWCG1e3itr+j1Nz99SYEd7cKog27gvDmImjk9t8hNL/2gt X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a737de3-e7bb-41fb-ae26-08dde0ef9be2 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Sk9BUFNER0dFdE1oRXpPUTBKdXd2bC9uRzJBcEVvYTIxTkxwQnVldDJFSlNh?= =?utf-8?B?eURzL2dmcUxWSE56YXlucllWcVhnek8zemtRUVI2dm9vZEtCcDRPRTZlb2gz?= =?utf-8?B?NC9VZlhoY0xSWnJFUnV2ZUJ3bENJRXJHU0IyN25TRzNhQkZQcXFzRDd2SE9E?= =?utf-8?B?SFhhblZETnNvT2JRZXRENlZzSml4TTVLTCtEVnI4am4ydjRNWjZxeCtTZEpY?= =?utf-8?B?VmMxUUVmdEF2TStrTisyQ3ZKYzBCbDBVVk9hdXNtNlc0SzZwK2Z0dWhITE11?= =?utf-8?B?Rk81WEEvbEw2TUFRbDRTTXg5Zm1mZ1lEUFJNVit6ODVXZHVRbUJRMGtUQ1pu?= =?utf-8?B?c1Bva0s1YitLWEczbEhVTFVZdTBUbDY5T1pjY0FkYThzNWw4Z1BBV01Camcx?= =?utf-8?B?eG5QMzJURlVlanR2SnRZOC9tWHR6Y011VEE4Y2tIVFFUWEJuM3JxNERiQ0Jz?= =?utf-8?B?ZlFBb3UwOXQySndjOUhpZGs3cHAxMmFWUnJYQW1aTXVQQ080RW1OTjMySGE4?= =?utf-8?B?WllaWXQyWnNGQUEzSkdKN0k2aFRIVHJ2WlVsVFgvWW9adUlpakJBaGpyNFha?= =?utf-8?B?MStjWklOM1BtZGVKcHBzSUVmaEx1Ty8xZWZZSWNvYzZzWCt6eGRJUUF6Qlg2?= =?utf-8?B?aU5yVVZObzJtWTJJeTNFNGEvSThsa0dOUkM0NW5YUHVEZmRtTHpmVXErYUxO?= =?utf-8?B?ZytKanhKRzkxT3RYM0VsNlhOaXU2ZlloSnhPaWltc2NUUEZBUytYb0JUVnJ5?= =?utf-8?B?ekpXMmFWNFRSV0JvOG1Pc0JUc0V2QnAxUW9iWlNSM2d1SythbWpqaWg4UllK?= =?utf-8?B?dGovRktPR3NaZHFtMUFUSEM0UTVOWEdoYWp0a2dHcVd5T1VOZ1pTalU0Q3hW?= =?utf-8?B?UWtsdGtHbTlNY2xJSnNCV2FHeXVoRHZJTFhCMkh0eFJnaThWdjViZmIrYXQ4?= =?utf-8?B?RmFta0xBallrazd5cVBPOVU3Z0czcDRSUVNUNlQ3R2Z4RGNyOS9tN0hnN293?= =?utf-8?B?QkNhbHFUL3hIOWVCdjFEQUs4TVRtQUdJT1BweVJBemwxU1FYaHhvaXo3V0ZW?= =?utf-8?B?dFVHc1Z0Q0F4RkpCdHpPL1BFeUsvMGx1cE5FU2lJRlBNMzN2T3pYOC9pR1Ju?= =?utf-8?B?YjYySmNPQ04zWUFncWQwNUNqdGpleXRhTkprRG9FQnZrT24vK3o0SDRhb3Fn?= =?utf-8?B?TkIrNUZUL3NUalBUNk1uN3NXeG5iZHZrK2Q5SmRBb00vOVRUOXZzSnRXN2x2?= =?utf-8?B?YlB5Q09sS1hjM3BmcWo3Szc4aXlGTitwSU5uTjBGZk9KSXV0UmFoeEk5RVJX?= =?utf-8?B?MkFzc3RaOGM2OU1LckZiSk85MmM0bkFzVDRZaTFkcnplZWx5ZVI2R1RsSGhm?= =?utf-8?B?VS9tY1Q3c1BaM3J1VVBKWWVsVUF5MGtLenRENFYxdXM4eW5BUXRDcWZTTFIy?= =?utf-8?B?YmpMalRhYUlCNFdUbmpCZlFCUXpodXY4cnVoVllxMWtZbzFhNXdERHNPRmxC?= =?utf-8?B?WjFvQm1IcTVYOGoxMHhYZ1FqZHE1UjZCM1lzMHp4dFo2MzZxbDB1ME14RitU?= =?utf-8?B?SEk2cFUvdU4wdUdDZ1lxeDBUb0hLS293VDRIZy8rWHBtUVZvTnF3c3FMcmRs?= =?utf-8?B?UWo4cHpIWG0zZTdqYWZlWW5mKy9MYTgwYTg2d2k5eVpYaUhyM1BQeEluckV3?= =?utf-8?B?dzNpQ1liWVRFZm9CL1hRUTZSeFhSVE5JMDdCUmFUejFDVkVOSTZBSW15TkMw?= =?utf-8?B?M0tWQTJBOUk5YWNDQWplVmo2QkpjU3FwOGVKU1Z6RzVPSk1Ca2tTdGk0c3NW?= =?utf-8?B?Q214RzhYWUNGNk1JVUdXZE1qZzFMZDVoU252d2M4WVA0TmI0MkRWK2lXSjNT?= =?utf-8?B?cWlubS9YZkZicHI3Tlo0OEdCNlRVN0d3SzlDSU1WRE5BQTR2M1RKeUxlZnM2?= =?utf-8?B?S0YzMFdsbnU1OExyYmpVRTJLVGpJT1ZGRUZGYnNBNGtVdk9MQzdrMEVzTlNm?= =?utf-8?Q?wTRWyAWda0vLuO8oEEpTsx+krh5ZAY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M1RkTXZueWNVWkU0QjVHV0dyWExFMlZqcSsrZzVMaGlGM1B1bHBXNm9HaDlQ?= =?utf-8?B?dHZxNkF0N2JFZ1JRU3JCSEVYYk05eEY2aWVKdTJnUmxMdVdkMHFwU2psM3RX?= =?utf-8?B?QncvNE41eUh1dFppMWNZeFBHTXFpM003VXZkeTJycUIxS2Vjc0tDeWFVUmtP?= =?utf-8?B?RXNvYW4xbyttT0pSaXRyZFgwaVZjMEtQZ242UFI0QkFzMWVsbkN0L3AxTEZw?= =?utf-8?B?TFprUXRad0lWWXZvS0hhZ3RUK1ZKYWx6TG1EQzRmWHVSR2tUcG8zbmdQYWhs?= =?utf-8?B?cVFZNExwelZmekRmSGFjdklVZUhSUmRNcXJENUI5eEpxNWlQZ0N4VVV5T2lh?= =?utf-8?B?bE4vTUNpU3pMdUxFK3RFa2hDNU5ON1lhdU5YYTlacXd2Visza0hjbmFNbk9h?= =?utf-8?B?YU82RHFwVWVreHRhQWFkUmV4TnFUMnBqLzFQZ3F2RHJ6NWVmZmVvaHFHZGds?= =?utf-8?B?K2NDb3FWaVgzU2p4eTVORkJMczF0UWZja0tzSlFEUyt0RkljeXdWNHZiazYr?= =?utf-8?B?d3pSUDVHTU9RYXQ5TTFVSnlRNVlJL2RRbDdWY0grZ2FkMStJdnZsU1IvblFa?= =?utf-8?B?QnM4Y3ZoV1ZQOERPRitraFllOC83OFd3V3hhSFZpVW83b1diTHRpbmNhMGoz?= =?utf-8?B?SUFqNkNKMllzMkEwUU9jY0FQSDZXLzZMRzVuanhLbkZid2RzQ0hTWElEYmFw?= =?utf-8?B?QUJPSEVCa2l0eDhEdU9yZk9WWkc0TDdXK0lqOGdqMWhVQUlMM1hUUDl6eFc4?= =?utf-8?B?R2JJRXBMVUUvb05XdXRyakgyVWxOTFRTWHRaUGtYZU52ZXNrMzlTeDFKbVhC?= =?utf-8?B?NXZXRWFwREZyVHZsaENmNGxZRmVxYmI3Y0RsUXFVVElrNlQ2bFZMbzFtY09G?= =?utf-8?B?bk1VZWU2M29meGxLc2NRRHZwN2J2ZUlQZ3BsUk1HK1pVZ29pTjVFQXEzbHFY?= =?utf-8?B?RUFERHVlQ0Q3dEpFTTFQUk9uTzVqc3lEeFM5MlFHVHhqOEIyZHJnUXNzM011?= =?utf-8?B?MzJnQlJwS2o3NTlPblB1V3N2ellBR3JnVHp4SWVHRHpKUkpId2NSZkQ2VWQw?= =?utf-8?B?TDNCM1ZlYTZiN0VVdXpQWHlQczlKSU5TdVF0eFhvaDVWUDRqOHorNnNWMGVr?= =?utf-8?B?clhlY1dSSXpxVE5ZS1V0WXM2dUxuYy82WlFHbkc2NlJDRi9FclBONUlJOEJJ?= =?utf-8?B?d1NWYXhJNWNNQU1SK3BNNTN2UXNEazFZVnpKWitOVmdpVWd2TGd3YUVkNXNM?= =?utf-8?B?dHY3cExzc2ZqeE1EWk9YVW9adm42WTVWTGRPa0FPd21ucWVLcCtEMGR5MkRH?= =?utf-8?B?SGZjQjlyWGhoWDJ0WVpUem0ydzQxdWRKa2tYL1lqLzlvUllDMWsxSG9EZnBy?= =?utf-8?B?T0JZTXFjTGZJemtUL2RKVCtBTzRUTDJLR0ErTldPaWsxYW1Ja1RLVFpZcUpz?= =?utf-8?B?TXVCSlRIT0JpU1U0NnZLTmhkbjBUdG5sK1hCbWR0UUJxSmd5a0NiUXhYcjc3?= =?utf-8?B?Z0UrZXRZbExKYjQ0K0JHSm02bStkMG9zeFk4VUtBRGpmUGgzNXJ1RFRRYTlZ?= =?utf-8?B?ckxGTXowTnV1K1JoK0t0Tkg0dVB6TENFdUkzaGVIaEFXMUpVcWR0Qk01Y2hC?= =?utf-8?B?U0xoQVNnUlA5UGZhWDc0aUpmRTA4d01yRzFpVkpVd2ZjL3VDcnlGNTZJekVJ?= =?utf-8?B?VG5sRGRaemRkZ3RoSm5Rc2ZZZEhKNTNwUlMrUVY3cHFxK0ZZQ1dzbHZ6Wndo?= =?utf-8?B?RkQ0YXpCZ1l0M1Fkb0JPQTkrM2VlNzJGK2VEeDlFOU1jbkpKbDNvMVk3T013?= =?utf-8?B?NUtId3d4RGJ5MVo2d3R2S2RlbENtQStUS0NONE96U0ZqVmlVOVlYQy9aSGlw?= =?utf-8?B?bFY2M0tQblNadzNNT2w1TERZNGhlMUN4WDRpdnFRcTBKRzQxeGFadWxDc0xE?= =?utf-8?B?dmJFNkhsUjZlaFdnRnZ0V0MrMTJiVkd4RFpYbHR3YWFpdzZvQW9td1pWMnNO?= =?utf-8?B?SStMOEtpMDYxYmZ5bWttRTdYMzBvanFTcWFqWm1nKzAzNEFZYzhsWlZkK1BQ?= =?utf-8?B?N1V0dUZXdldwVzhLL3Y5cHFHQXY2ZVNBSGlMWTUwM0wwekxBU1ZFNS9KVVlv?= =?utf-8?Q?D9RFpPOlvEyXIlfa268svnjEd?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a737de3-e7bb-41fb-ae26-08dde0ef9be2 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:27.5672 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: x8nST42oWRJLVoW6Vz3A2cC9bkZR5jDrnc0T+fqo/sp88M7PgTWzHhAAA3D+x7a8c4WvWXnOnJO1X2chNRYbRA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Add helper function media_bus_fmt_to_csi2_bpp() to get media bus fmt's bpp to reduce codes such as static const struct imx7_csi_pixfmt pixel_formats[] =3D { { .fourcc =3D V4L2_PIX_FMT_UYVY, .codes =3D IMX_BUS_FMTS( MEDIA_BUS_FMT_UYVY8_2X8, MEDIA_BUS_FMT_UYVY8_1X16 ), .yuv =3D true, .bpp =3D 16, }, .... .bpp can be removed from pixel_formats with this helper function. CSI2 data type is defined by MIPI Camera Serial Interface 2 Spec Ver4.1. See section 9.4. Add helper function media_bus_fmt_to_csi2_dt() to convert media bus fmt to MIPI defined data type and avoid below duplicated static array in each CSI2 drivers. { .code =3D MEDIA_BUS_FMT_UYVY8_1X16, .data_type =3D MIPI_CSI2_DT_YUV422_8B, } Only add known map for dt type. Need update media_bus_fmt_info when new mapping used. Signed-off-by: Frank Li --- Change in v3: - squash two help function patch to one. - use media_bus_fmt_info to do map. --- drivers/media/v4l2-core/v4l2-common.c | 149 ++++++++++++++++++++++++++++++= ++++ include/media/mipi-csi2.h | 30 +++++++ 2 files changed, 179 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-cor= e/v4l2-common.c index a5334aa35992e5f57fb228c33d40c51fdafdc135..a75987aa5fc69d6368709b7d521= bede666da9513 100644 --- a/drivers/media/v4l2-core/v4l2-common.c +++ b/drivers/media/v4l2-core/v4l2-common.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -757,3 +758,151 @@ struct clk *devm_v4l2_sensor_clk_get(struct device *d= ev, const char *id) return clk_hw->clk; } EXPORT_SYMBOL_GPL(devm_v4l2_sensor_clk_get); + +static const struct media_bus_fmt_info media_bus_fmt_info[] =3D { + { .fmt =3D MEDIA_BUS_FMT_RGB444_1X12, .bpp =3D 12}, + { .fmt =3D MEDIA_BUS_FMT_RGB444_2X8_PADHI_BE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB444_2X8_PADHI_LE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB555_2X8_PADHI_BE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB555_2X8_PADHI_LE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB565_1X16, .dt =3D MIPI_CSI2_DT_RGB565, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_BGR565_2X8_BE, .dt =3D MIPI_CSI2_DT_RGB565, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_BGR565_2X8_LE, .dt =3D MIPI_CSI2_DT_RGB565, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB565_2X8_BE, .dt =3D MIPI_CSI2_DT_RGB565, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB565_2X8_LE, .dt =3D MIPI_CSI2_DT_RGB565, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_RGB666_1X18, .bpp =3D 18}, + { .fmt =3D MEDIA_BUS_FMT_RGB666_2X9_BE, .bpp =3D 18}, + { .fmt =3D MEDIA_BUS_FMT_BGR666_1X18, .bpp =3D 18}, + { .fmt =3D MEDIA_BUS_FMT_RBG888_1X24, .dt =3D MIPI_CSI2_DT_RGB888, .bpp = =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB666_1X24_CPADHI, .dt =3D MIPI_CSI2_DT_RGB888,= .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_BGR666_1X24_CPADHI, .dt =3D MIPI_CSI2_DT_RGB888,= .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB565_1X24_CPADHI, .dt =3D MIPI_CSI2_DT_RGB888,= .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, .bpp =3D 21}, + { .fmt =3D MEDIA_BUS_FMT_BGR888_1X24, .dt =3D MIPI_CSI2_DT_RGB888, .bpp = =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_BGR888_3X8, .dt =3D MIPI_CSI2_DT_RGB888, .bpp = =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_GBR888_1X24, .dt =3D MIPI_CSI2_DT_RGB888, .bpp = =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_1X24, .dt =3D MIPI_CSI2_DT_RGB888, .bpp = =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_2X12_BE, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_2X12_LE, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_3X8, .dt =3D MIPI_CSI2_DT_RGB888, .bpp = =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_3X8_DELTA, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, .bpp =3D 28}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, .bpp =3D 28}, + { .fmt =3D MEDIA_BUS_FMT_RGB666_1X30_CPADLO, .bpp =3D 30}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_1X30_CPADLO, .bpp =3D 30}, + { .fmt =3D MEDIA_BUS_FMT_ARGB8888_1X32, .bpp =3D 32}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_1X32_PADHI, .bpp =3D 32}, + { .fmt =3D MEDIA_BUS_FMT_RGB101010_1X30, .bpp =3D 30}, + { .fmt =3D MEDIA_BUS_FMT_RGB101010_1X7X5_SPWG, .bpp =3D 35}, + { .fmt =3D MEDIA_BUS_FMT_RGB101010_1X7X5_JEIDA, .bpp =3D 35}, + { .fmt =3D MEDIA_BUS_FMT_RGB666_1X36_CPADLO, .bpp =3D 36}, + { .fmt =3D MEDIA_BUS_FMT_RGB888_1X36_CPADLO, .bpp =3D 36}, + { .fmt =3D MEDIA_BUS_FMT_RGB121212_1X36, .bpp =3D 36}, + { .fmt =3D MEDIA_BUS_FMT_RGB161616_1X48, .bpp =3D 48}, + + { .fmt =3D MEDIA_BUS_FMT_Y8_1X8, .dt =3D MIPI_CSI2_DT_RAW8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_UV8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_UYVY8_1_5X8, .bpp =3D 40}, + { .fmt =3D MEDIA_BUS_FMT_VYUY8_1_5X8, .bpp =3D 40}, + { .fmt =3D MEDIA_BUS_FMT_YUYV8_1_5X8, .bpp =3D 40}, + { .fmt =3D MEDIA_BUS_FMT_YVYU8_1_5X8, .bpp =3D 40}, + { .fmt =3D MEDIA_BUS_FMT_UYVY8_2X8, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_VYUY8_2X8, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_YUYV8_2X8, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_YVYU8_2X8, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_Y10_1X10, .dt =3D MIPI_CSI2_DT_RAW10, .bpp =3D 1= 0}, + { .fmt =3D MEDIA_BUS_FMT_Y10_2X8_PADHI_LE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_UYVY10_2X10, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_VYUY10_2X10, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_YUYV10_2X10, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_YVYU10_2X10, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_Y12_1X12, .dt =3D MIPI_CSI2_DT_RAW12, .bpp =3D 1= 2}, + { .fmt =3D MEDIA_BUS_FMT_UYVY12_2X12, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_VYUY12_2X12, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_YUYV12_2X12, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_YVYU12_2X12, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_Y14_1X14, .dt =3D MIPI_CSI2_DT_RAW14, .bpp =3D 1= 4}, + { .fmt =3D MEDIA_BUS_FMT_Y16_1X16, .dt =3D MIPI_CSI2_DT_RAW16, .bpp =3D 1= 6}, + { .fmt =3D MEDIA_BUS_FMT_UYVY8_1X16, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_VYUY8_1X16, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_YUYV8_1X16, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_YVYU8_1X16, .dt =3D MIPI_CSI2_DT_YUV422_8B, .bpp= =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_YDYUYDYV8_1X16, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_UYVY10_1X20, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_VYUY10_1X20, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_YUYV10_1X20, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_YVYU10_1X20, .dt =3D MIPI_CSI2_DT_YUV422_10B, .b= pp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_VUY8_1X24, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_YUV8_1X24, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_UYYVYY8_0_5X24, .dt =3D MIPI_CSI2_DT_YUV420_8B, = .bpp =3D 120}, + { .fmt =3D MEDIA_BUS_FMT_UYVY12_1X24, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_VYUY12_1X24, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_YUYV12_1X24, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_YVYU12_1X24, .bpp =3D 24}, + { .fmt =3D MEDIA_BUS_FMT_YUV10_1X30, .bpp =3D 30}, + { .fmt =3D MEDIA_BUS_FMT_UYYVYY10_0_5X30, .bpp =3D 150}, + { .fmt =3D MEDIA_BUS_FMT_AYUV8_1X32, .bpp =3D 32}, + { .fmt =3D MEDIA_BUS_FMT_UYYVYY12_0_5X36, .bpp =3D 180}, + { .fmt =3D MEDIA_BUS_FMT_YUV12_1X36, .bpp =3D 36}, + { .fmt =3D MEDIA_BUS_FMT_YUV16_1X48, .bpp =3D 48}, + { .fmt =3D MEDIA_BUS_FMT_UYYVYY16_0_5X48, .bpp =3D 240}, + + { .fmt =3D MEDIA_BUS_FMT_SBGGR8_1X8, .dt =3D MIPI_CSI2_DT_RAW8, .bpp =3D = 8}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG8_1X8, .dt =3D MIPI_CSI2_DT_RAW8, .bpp =3D = 8}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG8_1X8, .dt =3D MIPI_CSI2_DT_RAW8, .bpp =3D = 8}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB8_1X8, .dt =3D MIPI_CSI2_DT_RAW8, .bpp =3D = 8}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_ALAW8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG10_ALAW8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG10_ALAW8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB10_ALAW8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_DPCM8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG10_DPCM8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG10_DPCM8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB10_DPCM8_1X8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_BE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_2X8_PADHI_LE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_BE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_2X8_PADLO_LE, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR10_1X10, .dt =3D MIPI_CSI2_DT_RAW10, .bpp = =3D 10}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG10_1X10, .dt =3D MIPI_CSI2_DT_RAW10, .bpp = =3D 10}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG10_1X10, .dt =3D MIPI_CSI2_DT_RAW10, .bpp = =3D 10}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB10_1X10, .dt =3D MIPI_CSI2_DT_RAW10, .bpp = =3D 10}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR12_1X12, .dt =3D MIPI_CSI2_DT_RAW12, .bpp = =3D 12}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG12_1X12, .dt =3D MIPI_CSI2_DT_RAW12, .bpp = =3D 12}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG12_1X12, .dt =3D MIPI_CSI2_DT_RAW12, .bpp = =3D 12}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB12_1X12, .dt =3D MIPI_CSI2_DT_RAW12, .bpp = =3D 12}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR14_1X14, .dt =3D MIPI_CSI2_DT_RAW14, .bpp = =3D 14}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG14_1X14, .dt =3D MIPI_CSI2_DT_RAW14, .bpp = =3D 14}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG14_1X14, .dt =3D MIPI_CSI2_DT_RAW14, .bpp = =3D 14}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB14_1X14, .dt =3D MIPI_CSI2_DT_RAW14, .bpp = =3D 14}, + { .fmt =3D MEDIA_BUS_FMT_SBGGR16_1X16, .dt =3D MIPI_CSI2_DT_RAW16, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SGBRG16_1X16, .dt =3D MIPI_CSI2_DT_RAW16, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SGRBG16_1X16, .dt =3D MIPI_CSI2_DT_RAW16, .bpp = =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_SRGGB16_1X16, .dt =3D MIPI_CSI2_DT_RAW16, .bpp = =3D 16}, + + { .fmt =3D MEDIA_BUS_FMT_JPEG_1X8, .bpp =3D 8}, + + { .fmt =3D MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8, .bpp =3D 8}, + + { .fmt =3D MEDIA_BUS_FMT_AHSV8888_1X32, .bpp =3D 8}, + + { .fmt =3D MEDIA_BUS_FMT_META_8, .bpp =3D 8}, + { .fmt =3D MEDIA_BUS_FMT_META_10, .bpp =3D 10}, + { .fmt =3D MEDIA_BUS_FMT_META_12, .bpp =3D 12}, + { .fmt =3D MEDIA_BUS_FMT_META_14, .bpp =3D 14}, + { .fmt =3D MEDIA_BUS_FMT_META_16, .bpp =3D 16}, + { .fmt =3D MEDIA_BUS_FMT_META_20, .bpp =3D 20}, + { .fmt =3D MEDIA_BUS_FMT_META_24, .bpp =3D 24}, +}; + +const struct media_bus_fmt_info *media_bus_fmt_info_get(u32 bus_fmt) +{ + int i; + + for (i =3D 0; i < ARRAY_SIZE(media_bus_fmt_info); i++) + if (media_bus_fmt_info[i].fmt =3D=3D bus_fmt) + return &media_bus_fmt_info[i]; + + return NULL; +} +EXPORT_SYMBOL_GPL(media_bus_fmt_info_get); diff --git a/include/media/mipi-csi2.h b/include/media/mipi-csi2.h index 40fc0264250d779ab5dfa7d2fe16e6f1382c07d4..3227d28224b7c32ef2745548391= da9e792cfa559 100644 --- a/include/media/mipi-csi2.h +++ b/include/media/mipi-csi2.h @@ -8,6 +8,8 @@ #ifndef _MEDIA_MIPI_CSI2_H #define _MEDIA_MIPI_CSI2_H =20 +/* DT value ref to MIPI Camera Serial Interface 2 Spec Ver4.1 section 9.4 = */ + /* Short packet data types */ #define MIPI_CSI2_DT_FS 0x00 #define MIPI_CSI2_DT_FE 0x01 @@ -44,4 +46,32 @@ #define MIPI_CSI2_DT_RAW20 0x2f #define MIPI_CSI2_DT_USER_DEFINED(n) (0x30 + (n)) /* 0..7 */ =20 +/** + * struct media_bus_fmt_info - information about a media bus format + * @fmt: media bus format identifier (MEDIA_BUS_FMT_*) + * @dt: data type define in MIPI spec (MIPI_CSI2_DT *) + * @bpp: bit width per pixel + */ +struct media_bus_fmt_info { + u32 fmt; + u32 dt; + u8 bpp; +}; + +const struct media_bus_fmt_info *media_bus_fmt_info_get(u32 bus_fmt); + +static inline int media_bus_fmt_to_csi2_dt(int bus_fmt) +{ + const struct media_bus_fmt_info *info =3D media_bus_fmt_info_get(bus_fmt); + + return info ? info->dt : 0; +} + +static inline int media_bus_fmt_to_csi2_bpp(int bus_fmt) +{ + const struct media_bus_fmt_info *info =3D media_bus_fmt_info_get(bus_fmt); + + return info ? info->bpp : 0; +} + #endif /* _MEDIA_MIPI_CSI2_H */ --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010030.outbound.protection.outlook.com [52.101.84.30]) (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 EB35934A328; Thu, 21 Aug 2025 20:16:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807400; cv=fail; b=Je6TuEfAVKluELjXmQ5JF7/WeHvJeO2y1rcS/Hr7o8oXjyd1FRxN4f8PjIMr5/MozFiCnIkjDcnNs4Q7IkcX8zA+Rp2SoRgda3eSMUp5P8rW5+l9TTqg8HOCSJqRQ9Sl5Qonw7tLZEYHd8bLHrJ4Dx3EBo9DZc1i/L+qPfKlif4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807400; c=relaxed/simple; bh=LJheYFsFE3gTgbB/4exm7kW6px7qSqmIClCgzXMKKxs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=aIpDT+/C7l6rPXRZnmQsxKNlI7p1VI2Td2rqX94njltg7n7TdE8UMHk37ih8IevKgSuZiHgdP3g5P3Lzy3QCsy+VrG7yr9aIafaX2aKMWgwlyhsH0rCQomn8c3yltmZdofVtMlcR38evpnSwtJp7zpSPKub9wUdw1G9MBjlWPiw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=HpHba11V; arc=fail smtp.client-ip=52.101.84.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="HpHba11V" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ek4sspxPtD2ql+kKnfLE1fKs6uUa8tgGwdO27JHZ9pYKw6wgGIX4YOeAdTajjvPvWIWlad0iHkxuEufqAZldGIEPlblBo82oXiIOuL7epAxo035Rjd4TaAzx+n7PCrg/f607OqbEaJ3b6AuvOMWVuJa9N+eKotCpkq6lsi7fz7eYUKL/WysPfHj7G3XvFtdbyBjPpdV5uIADBpHU054fSAIGMzzrn0EmaIw297lB3VpC5KziUALlC7vM62IJaVL5aqpGLGXOoTbh8fOO5hmD7R9rWH90iPJgGpSi/1egpuzTJodJUiF2wDVKoNxUqbtZlTJD7ZNbBrAZhpOd+Z1Kuw== 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=GWDSKYGOK866sldsSpKS6S3hnBKaYQtP/Dg7w21A5r4=; b=CEduPT3vyXzzc0wQ1C05ODvbTLe1YoIgWjugC927SsCIsTAAkYuWfRCp/IPvyxJ8vOpdBXx6RwVe2VDHOeBvw1JCUZ5vtliXeNyz4wlNQy1cd/GfG30H1h1zl5oeRQCmNmnyk07Vv6nrdbYt0S94DP/eIp1d7hFlf7kMtvOqCOKhyjQK4+upNdnldWpRxxk555aKo9k+oAepn1vc+//bAAYzKuDhkz0IcAQC2xEEOF7qCWIhKAxLkvHC+QurKD3tpnsh+AIkuQ/jZY7V5HT0epJzGG0HAALQbw0RSXEaQUc0CeaBzVd5qn/p19wNn0OldtYXR4FN4M2y5wI+HkTgUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GWDSKYGOK866sldsSpKS6S3hnBKaYQtP/Dg7w21A5r4=; b=HpHba11VS+tV9etTqCemBG3U3jiL913Noi+8x256O6PQ6NtXY3Vo4kQFbKb9LQUB5xILJCw6q3ACW76GUWrgc3FtlA/BeZ10nMUY6oFxk93vlzUUDrlgWTZ9t1Qk6H8mIiRB1Ldb1hFlkZUfOsScyN1klUOZgCQfw1Z3K9O9XBA7b+6REa/OKM3TLJYIkQKanbf+O4PSqP/Urx5DFumGk/oLy/oO5j5gl79xMETm4ctEjjsvKR4DEoXlmkkdDyK5PvFiFNAcH3Ft8oBnUJ5fmzwEx7HyrxvNi3GC0tzhlqF5VrxaRYXCfsq62mHHav7YaBUg4Ph7ZIH3PDMrwNQECg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:33 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:33 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:39 -0400 Subject: [PATCH v3 04/31] media: staging: media: imx6-mipi-csi2: replace space with tab for alignment Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-4-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=4945; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=LJheYFsFE3gTgbB/4exm7kW6px7qSqmIClCgzXMKKxs=; b=jMD6eJMAsVHPop33Cjce3ajECgBKKA0LXb9gwf/ubOGiRabyniC1R2WJ03NKpAnIMpNyHdXPi dKBct8Ak2btD1d8ov9LVcBHtpQYQtTO0eitK+4ryZH2LEUwxQwO0X2r X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 23f2f335-75ba-4a6b-6b72-08dde0ef9f97 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eDlPV25EVmdVdjFOSWVBYzFBOXhxaVVVTmhudHlOdi93a0hoMDIzbDIycHI5?= =?utf-8?B?KzRLaVE5WXF0b0s3NmdvdkJJY0ZEVW82cEhkNnhnb1RldkJxNGVQZHhMaTdN?= =?utf-8?B?SVNUTTJqU2oxaFo3MVRJVFAxWkR6WGdtbGlkNDJmcGZkQlVTc3NIMEpOS3hm?= =?utf-8?B?NFlMVC8yeUZSTE1DU01tckFQOFRUWHV2VVRpOXREYW8vYXNrN1RJak9BdVMw?= =?utf-8?B?TGcveSswUkNweDV4SXFIYmZ2QTI4MlIrL0pjYnVFbFFwcnBLK1lhaTFRT2h0?= =?utf-8?B?R04vcXZ1M0UyZ0ZXL2dhRlh5QWhqMHFVczBBSitWdGo3c01yTE45QmdHY2xQ?= =?utf-8?B?L0pYOEx6WG9GZ1ZvK2preWdzYkp4MDNmSDJBa1pneDBFT1FxT2JxWnZxMGg1?= =?utf-8?B?QkREVlFXS1hSRXpoWTJhMVhDS2hITUN2OFFjVHV5SzJwelpIY1h3eGVVUGRv?= =?utf-8?B?Wi94QlVHOWlqK1UyMEF6MGpxVDlzajN4MUhBcTZ3MytFYVVNS2FKekZqNUxO?= =?utf-8?B?R05lSS9GQmJjK2pKTEVNQ3JacStYWklCNkNPRVZuY1h6K2tVZ2MwOUFQVFdM?= =?utf-8?B?Zzh0UVRJcStzbEhEQnBRR1kvLzZpWWFEdjhOWDdXV2V0RlFwNHhhNmNBeGZp?= =?utf-8?B?ZkJjSkpDRmpETWxqa0NsbytGRVlnWURLRUt1TGxDamdPWm0rNis0NVBXWm9W?= =?utf-8?B?Ky82T2VVUFRDQk5CMHZMcHNSdGxaMFROUWlRcmdGeWRvbkQ5ZGNtQnpGeTZK?= =?utf-8?B?YWFtRzVjUWVTR0p1MzFmTFhmZEM4WTU2VlF3eXJFSW1nMk41cy95QWtmL0J1?= =?utf-8?B?TnZ3OEd4VStHZkkwY09ZK0xpaUUwL3VPTlRSYmM4Z1FJL2Qza01abTJCS2xk?= =?utf-8?B?Ykh3dExZdTVSL2Ezb2ZiRTc2VVZxcUZhbEtuaCt0N3Rra2ZmOXd4S1YxMHRS?= =?utf-8?B?RktOZERlcUl0Y3EwOHdTNHd6cU5aUi85UTdnaWpGMU9QRDhnYlcxNG5lRGlk?= =?utf-8?B?cXppK0orVmFxT3N4a093eFdWVXdhVHJITW85SERKSWlzaFVrYW53OUlNTlJ3?= =?utf-8?B?NzFSVVF6ZTJPK2ZUOGFoYWlLczVTbEV1SFV0OEo1V0l3N0NMT2QzQ3NLVzZ1?= =?utf-8?B?b3RYKzNRaFljUUNMWHBWTmgxdWhwUTI4NmhYYTFadGVMaDN1NTBFZWNQYllz?= =?utf-8?B?QUxQekUxY0JRWG5PL2RrWEhsTEZMNTVWVUtRblV2T05OR3FIK3Jaa0pIeUpt?= =?utf-8?B?RGQ0RUZIWnJ3bmliY0d0YmRhTFFkRHFTeWNVWjkvLzNrUkNMaHc1d1E4RkNh?= =?utf-8?B?Z2QwYXcxM3UvblUwMzFobDIvdHBFRU5BQlcweW0rSVNYbnZKYzhzSk44T3NO?= =?utf-8?B?cElRaFRGd0JLV01oM0t6MjJFMDlsOGpDSW9iRHAvN21URGNscmV1cmNDUGpG?= =?utf-8?B?RTNQaGlGd3RvSVR6S0Uxd3RnQ2llSWlWa3MrUlFob0ovSmltSkNQSU9tU2Jt?= =?utf-8?B?MHZOazgzdGM2SE45R2taaGNOOGRmOTZGSHlodHgxYk12cUJoTlBKUHplYVRl?= =?utf-8?B?RjRDS1dNd2FwRzhZRzN3aXFmd053SGhUaERYT3ZFQU9Oc2tBSDJEeFZQeTJI?= =?utf-8?B?ZlNuVXR3NnFBWnRxSWVHRDJ5REFuSjZ6aFU1cEZYNVYrMnJuWXQwQ0RYcFhu?= =?utf-8?B?QkR1c2dhZGp1ZTByOUhqRGdFMG9qRDVFaGtVZG8zaUp1clcxQ1RpMU1kK2Qy?= =?utf-8?B?OVIvSk5NcnMvUlIxQkpDZUNsUDl0S0h4SHZmaldDNDJCQmtSdjRPWUQ2WGF6?= =?utf-8?B?aDRJTnFtUUwwQit4WGhvd2dPOEZySVUvaWFVYlBiME16S25LSi9FZnh1dkdX?= =?utf-8?B?TFB2TmRDN1dpS2VVSE1ocHAvaFJkUU9leU1PRkppV092VXVNTmFaYjNGczhB?= =?utf-8?B?Tm80Z1VZVTRqZ3AxbWVYejB3azlmQ1d4VWlrWXAyM2FKYVYybzNXdC9QRTJ6?= =?utf-8?Q?z3y3fIKzzncdccSzVJbairDAuNZnGM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dm1kWnNXd1NjdER5UlU2RWZCcXMrcWZSQTE2RFkzUDYvY1lNcFJwcXJzN0lE?= =?utf-8?B?YUFLMm1wSmpmSmRJdVM2WGZBZU1UYTJRcEZjdGtrbXRtWXZFWEd4K0VGeGl3?= =?utf-8?B?U09RaVJXR2NiNm1RNy9zSmpQUFBPbUNQVzg4NmtTWXFXb0NRdFAvcmQ3dHR2?= =?utf-8?B?MkExUTdWc3VRRnpRUHhTT3h6NmtoOWFYeTFsOWw2ZUtoSjhaY0VlVWFvemtT?= =?utf-8?B?cUV1VHhXSDVkTnRXUGNzVWx5MDhZQ1o4K1Jzam8xTGtCb0REbnJRVGhka0F5?= =?utf-8?B?c1BNek1rbGkydG9nMitzYy9BeWw5T05CL3pOV3p3THBiRGZqdThPdmIwRHFO?= =?utf-8?B?d2pQNkJ2QmxzY0M0OEN1dTdlTkJEdkoxVElWMk5ORVhsME9BUDVobkxBdkh5?= =?utf-8?B?ZC9RZ2pxLzJPd2owalJ5TnNTWmNWZ3JRS0cvTnkrc2FVTGdTdFBKTG8xV1Jy?= =?utf-8?B?L3JpdFhkSFNIZzRaM0NrMjFRb2M3MWNBdUtId3lzeGNxaCtNNEQ0V2gvUmsy?= =?utf-8?B?M0YxRW84ejlzMUNnRm1iKzhVMExncGZTOXJpUGljUzE4YjNJZTJPdGNRRll3?= =?utf-8?B?Z2dhbkpXdzQxbVVSTyt4bDhGY2w2QUp2SnRYcUx6SHFJZmZvY0dMbUZneWo3?= =?utf-8?B?SVFTeTdjcXJlWFI3L2VEVGxQcVYyYThqcVNBQXJVclF4MjhlSE9BVmVtdmhr?= =?utf-8?B?ODM0cWF0YzBzeUZUSFBRZ2JUclVzc1pmZHNaWTFlVU42Kys3ZC9WSWplSmxv?= =?utf-8?B?dEcwU2gzS2lrcmZyUkpWK2ZTeG5vcndYZjVSOHBYTzEvZ0xOVzYwc1NEUExF?= =?utf-8?B?N1NNc0FRNFFNai9EN0V1WE10K24weE9memNSMjhTUlAxSmNoeE9hTExVdTNs?= =?utf-8?B?UUkxTWFXZGZNeDNMa2xKbDZZOUhGKzRHSVVuK2hUZXlWOEt4WWxaL3IvUVR4?= =?utf-8?B?NDNSQzJ5cHVDbnRZSTRGNzRyd0I5a0hVeExqdHZHMVg1NEthbkQ2UXdxOVFX?= =?utf-8?B?OXVURzdNejJrYWVwc1UvZjU2OTYxM3NEN1gxWE1NK1B0RFdlU3JBdHgyaG43?= =?utf-8?B?TnBja3hRSXpHS0hzM2EyekdvOHVjSnQ0SVFvNDJ3ZitOdWhSd3lZcXlRVVlQ?= =?utf-8?B?c1B5SXNJUTNVNnRWWVMwaTNMbDRqRkZVQThzVGpuenlQVHNjeTB4UXdpNzNj?= =?utf-8?B?SW9QcFNRZUxPNkZ2OXI4bjV3aGhXNWZxUmY2UktEZUxlRHFaTVBhdjFkN2d4?= =?utf-8?B?S0xPdUxUdkRUeWlIcHVsdG00VUprU2phbFpiaTFGNk1FVUducDhDNFV3NXBt?= =?utf-8?B?SU9aUCtibVZTcnp2ZEZtY0ZyQzVzb1U4QmVOd1E4cUVsam0yakxKU1htTVNU?= =?utf-8?B?VXFRV2NoQ0xMdFZMQ1BSeXdFUmk2WU05OUlTd3UvWWZ3MkROLzJMSTFnL0Rx?= =?utf-8?B?azVRdlRYS3U5akp0M2crZ2dxc3JGRmRWYmpuMVArL1VxUE45enM0eCtFeHhv?= =?utf-8?B?aElCbGl6bFJIckd6TkF2WnlhV0QvK0p1Z0xmTnUyU0YwY2YrYjFxVk1MemtW?= =?utf-8?B?R09nN0V3Tm1raGJQRXdyVW1RSmRtNVd5WTVodjR0VE5lcDRaM0IrTk1DSkRD?= =?utf-8?B?TFlBSFpkeWUzbU5xdGh3ZUgweWloblM0eHRYd2poNElDUGJjQlJ6THBBdnVT?= =?utf-8?B?Nm9KNWpJdy9sb3BMd1FKYW1MMWlnWDFzeTNRcktqYmxNMzZteEk5Y2c2eVpq?= =?utf-8?B?b05PcEpHT2lldllIdWkyWkZiZnpMZXl6dXFnQVhYcktjcTg1MmRXTTdNTW9i?= =?utf-8?B?OUFHbm9qa2tMNkNidTN1VW50SHNhdUxITkl3QnBMSkRiZFQyVFhPMldsRXQx?= =?utf-8?B?RTNIcWpIRnBaVlBXU0htSUQxWGdkS0RNR0dSWWZUMk1aY3R4TUlPdG5LQUMx?= =?utf-8?B?OFdvc3k2RHpzQ1BzUWF5Y0l3bUR1VTB1NTJyNGpETW5IOHFJZG1mOUkxK3Zu?= =?utf-8?B?US9Pd1hhOTB6V1cyNTQzSERPZERtVVZpTXpTSldrZEV0dHFEQ1IvTHByZDVO?= =?utf-8?B?RXZIWGhCa05VaHRLa0p3QW5waHhWWFBXQjBiNk9OQlI0cUdlZXlYYS9iY0FJ?= =?utf-8?Q?p/Xo=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23f2f335-75ba-4a6b-6b72-08dde0ef9f97 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:33.7458 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZLzm5hdr1kDgystJEFbJXb3YV+LZGt+Jf7K4jVchAk9fDYPi/2YPIVTSFDilFjdtc5oXJG9zmDycrhueqRZ7KA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Replace space with tab to follow coding convention. No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 92 +++++++++++++++-----------= ---- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index dd8c7b3233bccfc34b59e0f0ff813b36752e1526..42256441b881d9f132ad7ff899d= 6f1e35643b4ac 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -23,65 +23,65 @@ * there must be 5 pads: 1 input pad from sensor, and * the 4 virtual channel output pads */ -#define CSI2_SINK_PAD 0 -#define CSI2_NUM_SINK_PADS 1 -#define CSI2_NUM_SRC_PADS 4 -#define CSI2_NUM_PADS 5 +#define CSI2_SINK_PAD 0 +#define CSI2_NUM_SINK_PADS 1 +#define CSI2_NUM_SRC_PADS 4 +#define CSI2_NUM_PADS 5 =20 /* * The default maximum bit-rate per lane in Mbps, if the * source subdev does not provide V4L2_CID_LINK_FREQ. */ -#define CSI2_DEFAULT_MAX_MBPS 849 +#define CSI2_DEFAULT_MAX_MBPS 849 =20 struct csi2_dev { - struct device *dev; - struct v4l2_subdev sd; - struct v4l2_async_notifier notifier; - struct media_pad pad[CSI2_NUM_PADS]; - struct clk *dphy_clk; - struct clk *pllref_clk; - struct clk *pix_clk; /* what is this? */ - void __iomem *base; - - struct v4l2_subdev *remote; - unsigned int remote_pad; - unsigned short data_lanes; + struct device *dev; + struct v4l2_subdev sd; + struct v4l2_async_notifier notifier; + struct media_pad pad[CSI2_NUM_PADS]; + struct clk *dphy_clk; + struct clk *pllref_clk; + struct clk *pix_clk; /* what is this? */ + void __iomem *base; + + struct v4l2_subdev *remote; + unsigned int remote_pad; + unsigned short data_lanes; =20 /* lock to protect all members below */ - struct mutex lock; + struct mutex lock; =20 - struct v4l2_mbus_framefmt format_mbus; + struct v4l2_mbus_framefmt format_mbus; =20 - int stream_count; - struct v4l2_subdev *src_sd; - bool sink_linked[CSI2_NUM_SRC_PADS]; + int stream_count; + struct v4l2_subdev *src_sd; + bool sink_linked[CSI2_NUM_SRC_PADS]; }; =20 #define DEVICE_NAME "imx6-mipi-csi2" =20 /* Register offsets */ -#define CSI2_VERSION 0x000 -#define CSI2_N_LANES 0x004 -#define CSI2_PHY_SHUTDOWNZ 0x008 -#define CSI2_DPHY_RSTZ 0x00c -#define CSI2_RESETN 0x010 -#define CSI2_PHY_STATE 0x014 -#define PHY_STOPSTATEDATA_BIT 4 -#define PHY_STOPSTATEDATA(n) BIT(PHY_STOPSTATEDATA_BIT + (n)) -#define PHY_RXCLKACTIVEHS BIT(8) -#define PHY_RXULPSCLKNOT BIT(9) -#define PHY_STOPSTATECLK BIT(10) -#define CSI2_DATA_IDS_1 0x018 -#define CSI2_DATA_IDS_2 0x01c -#define CSI2_ERR1 0x020 -#define CSI2_ERR2 0x024 -#define CSI2_MSK1 0x028 -#define CSI2_MSK2 0x02c -#define CSI2_PHY_TST_CTRL0 0x030 +#define CSI2_VERSION 0x000 +#define CSI2_N_LANES 0x004 +#define CSI2_PHY_SHUTDOWNZ 0x008 +#define CSI2_DPHY_RSTZ 0x00c +#define CSI2_RESETN 0x010 +#define CSI2_PHY_STATE 0x014 +#define PHY_STOPSTATEDATA_BIT 4 +#define PHY_STOPSTATEDATA(n) BIT(PHY_STOPSTATEDATA_BIT + (n)) +#define PHY_RXCLKACTIVEHS BIT(8) +#define PHY_RXULPSCLKNOT BIT(9) +#define PHY_STOPSTATECLK BIT(10) +#define CSI2_DATA_IDS_1 0x018 +#define CSI2_DATA_IDS_2 0x01c +#define CSI2_ERR1 0x020 +#define CSI2_ERR2 0x024 +#define CSI2_MSK1 0x028 +#define CSI2_MSK2 0x02c +#define CSI2_PHY_TST_CTRL0 0x030 #define PHY_TESTCLR BIT(0) #define PHY_TESTCLK BIT(1) -#define CSI2_PHY_TST_CTRL1 0x034 +#define CSI2_PHY_TST_CTRL1 0x034 #define PHY_TESTEN BIT(16) /* * i.MX CSI2IPU Gasket registers follow. The CSI2IPU gasket is @@ -106,13 +106,13 @@ static inline struct csi2_dev *notifier_to_dev(struct= v4l2_async_notifier *n) * reference manual is as follows: * * 1. Deassert presetn signal (global reset). - * It's not clear what this "global reset" signal is (maybe APB - * global reset), but in any case this step would be probably - * be carried out during driver load in csi2_probe(). + * It's not clear what this "global reset" signal is (maybe APB + * global reset), but in any case this step would be probably + * be carried out during driver load in csi2_probe(). * * 2. Configure MIPI Camera Sensor to put all Tx lanes in LP-11 state. - * This must be carried out by the MIPI sensor's s_power(ON) subdev - * op. + * This must be carried out by the MIPI sensor's s_power(ON) subdev + * op. * * 3. D-PHY initialization. * 4. CSI2 Controller programming (Set N_LANES, deassert PHY_SHUTDOWNZ, --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011031.outbound.protection.outlook.com [52.101.65.31]) (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 EE22E34DCD6; Thu, 21 Aug 2025 20:16:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807404; cv=fail; b=IernrpEJTbtHD1WXr6lVSZFqzxtoloKiEWJsqgkgCS9ZYHgb6xTacdJM/Fombwzy/b7hzuMv2pzhr/+AXYeJt2fK78qPbhh5oPyOGNRVxrFkc0bxBTt9ZujYH5KimfyXj7nJv7JrpX096jLrJs673dQZXs2PW8lQ9hXDdCiGhfk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807404; c=relaxed/simple; bh=JykNP3Wr8V27V/V5mRXR63Vo77tMC6HLDGjlTMTwCO0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=T9YpjNZAPI+YwqC4r5Ia3+jlsm+QD0wx79JfYtTkneP5Gr4UpgfMhet4J89GOu70F5xJfqH2VL8/qdQZYgYlPCqydxvOWN/rmNJwuwYKwcuYCcByMFXLmJg3gzTyIBuKXKYkQYaFsNLi3JyTJDhUFmFbM5ikepacVnL4SDCcGPg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=VRXu5vch; arc=fail smtp.client-ip=52.101.65.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="VRXu5vch" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aSwOn+TNCpf5MyFcB+yrmfbxYkB/osh60pLJaxtI1oIqbbrGbOwEWq3+M5HqbSCRpIMPc5tR/k1jcImMVVGYRsVu1qny+tkAw8k5fqoVVQ+7wgHZMHowt8awH1SIaKONS7ssAX1LWqpHPaLvoxl7wfF8fWOVE9it/reVFv1Iga+TQ2axjxoYVnky2nfPoJKC3F55rDdqxQqNEepJdGarj1DGTlnDiHQN8CFPZZax2TtADTKd4BlXTVU2vKBlcuhsVPa9IQZrGuHPwo2M+jRrOYMdnOsK4EDKpnwATO++BhpEH+FLfppyXCwh2GvXkY9R6mYSIPOQnuj3Oc4DSSYILg== 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=16r7ZGQxZ/iSnep82FApZjOgA5LJ98oPP+SxebBXSDM=; b=ClEmPrqNB9k7SDFVGdIxKOboT6kxgvP6N+oXUIjaJ823ONbuuYVmC73M4exIHGRlTlX476uGazqAkPDt85VEFfS7SPJgY4HTHMY3RsGKkNKVTmWsogmiKCaBqYU4awu3pDNGICIFETIbZXLhyEsMNacunQ+rOfqB4KAWg32HsCMCuckwbot5MB013J148st3rfYUu8Z2tGgXDYLpoJ1GhuSDBl8SYpYk713CjyFwXan9QNzIkxidfiQkL2ycADIoLUZ0GGyaRgWwIs+1wTMV7MSi/xEeAn8wyNyFzvc8V5tJF2HwU+Vnkuxv5doBVqcNwIlk83+gKTAbXgOAFWqynw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=16r7ZGQxZ/iSnep82FApZjOgA5LJ98oPP+SxebBXSDM=; b=VRXu5vchf9wBhkRhYdJ5CiDz9HKYW0QQ/c2l3Zqb8ELZ+M9BHZFtc1MFz6OAeMWNOxJAh2c2TQ8nBTc3Qc1rStc+m76zeSW1mS4FRLXAKDLmn5eU22OF6w7F1KEQfoJ/ph/h6GPLmaEKDQ9EBlHKB4bhdOWPoGSyNDNiMGN8OIb2n9phBl31oEaW3F8zW7NCeAPEebL2bIa3wqpsMvli+6rgSkUSTLAi/b4ac/mj6YihjkEKLQXbYWhjk6J8ZV0HNOGj4RvSJRhkneTJj6HDY1bYaqqvIeA3Cd/hz8xBK1D0ERDFNMaSS9mEiisDshOsMz/zoPWewIAuXd661MtpsA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:40 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:40 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:40 -0400 Subject: [PATCH v3 05/31] media: staging: media: imx6-mipi-csi2: use devm_add_action_or_reset() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-5-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=1965; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=JykNP3Wr8V27V/V5mRXR63Vo77tMC6HLDGjlTMTwCO0=; b=ZRUfDt+t7fvvq4eHZclIfIAt4sWaXtaw4xovnARUYAHPs/MmZ2W7cN0qOOERw7XvAKI1NmPyE H1csb/rjFSjASTrIMYsldJULfRDHGgKS053l8bqTjYCdI6VCrPzeR1x X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 627f0e25-ff22-4953-49ea-08dde0efa34e X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?T2E5c1BqaHNEd21GekcxNXpWZmYydlRwL0drMkMySnpZN2JsZlFyaExod3dt?= =?utf-8?B?OWNLM0lyRCtIUGtMcGxQL285UkpxOTNuZVN0OXJPbWkvT0pmQTZUSnQybVEv?= =?utf-8?B?ZGYwWi9ITk1kVWI4eWpUZ2UwUUQxVW5md3NmWVZOSzJLZ1RCOXJVcVVUczdS?= =?utf-8?B?WTFKWmE5eS9jbExGNnFJNXdoTGNqN2RLek4wRTlra1B6dHgwa3o4ZElsQ29E?= =?utf-8?B?Q0wxUGZpdktZYjEwbkVUcFFTOEg4SnFUZlhHNE9tVU9KMWFXUTFVY1VJSVc2?= =?utf-8?B?d3Vka3VqL0I3RGI1SjlwbnR1NUVFb2hiMVpvMXFPTGovZHZjZ0RiTWFZSXFh?= =?utf-8?B?ZUhDNk9jOUN4dHNBSjV6UmxnTGtTNkpMM0Z3RGJyNk9KZEZyTzNhVjlHdkhv?= =?utf-8?B?MWsxcXlnYTh2YUJPNDFMS0tkNTEvNHY2MzhEdm5OMTNEUHdIK1BSbFFHVzFK?= =?utf-8?B?Q2ZSaTNRL3o0enpscjdBUWlMbTlJREpuNGhLdTF3NUxIaFVlZEFPWE1FZVdE?= =?utf-8?B?OTVNWjVLd1FINlE3MHF4a0svNlFic1hBWUFJdDJNcXlUVmdCMnJ4T1BXeVJu?= =?utf-8?B?aGVza0tYMDJCVzVuWHV2WGQvUE01UWF1ejdhd1dsbnFHK3NVYW14Q09ONVh0?= =?utf-8?B?YWM2OTJKSDdqQVdaYkZlV2hnbmwyalZ5dnhDaCtmVlZTK1FqNnhHREhiWXZu?= =?utf-8?B?OGhwcUFSckpLNmg5NEVJckY2TWNWRndWZjlmUVk1R2dHOFRROGNxR3ZqNVVQ?= =?utf-8?B?MjE5WjBEVFQ5V1YvQVB2WUMxdXhybWZaYU1oNklOVHd6U0x3Q3RMdU5DNlZa?= =?utf-8?B?Tm41YVZtN3hsZmdjcDZnbW9CZ29OanJIWGl6cDUwT3MyWFFUTEZkQmFMNk5L?= =?utf-8?B?QnRDelVEZXBxZ2NKVGp0S1o1Qm9LSDd1SEYrWHU3RkdXclhjZnZOa1o1VXJZ?= =?utf-8?B?V0ltaHkycWEwOGR3YkV6c2ZjN1dnVm1YcS91MTd1a1RyKytvU0xYTEFzQmhq?= =?utf-8?B?bWQzUit0amJPQUk4c1plQUNtOXVudVBPZVlHVEVKOEdpc3BiTmsxck1XK0JK?= =?utf-8?B?bTh3MTVDczFXUS90bVJ3MlVCbjdzWjNXVWhiUS9KZVVZRFI3OFU1blAwVDFm?= =?utf-8?B?T3BYNVhkZFBDdHlIQWtvZWdTeWs0Z3l1RUpLM1FpNkNQaTRnTHl4OWlvYkdP?= =?utf-8?B?c09Ja1lxMU1zVVlPUHo2UXFkd2JJTmtNb2JmNmR2NEo1dXZBV2RyUlZFRmtN?= =?utf-8?B?NUFFaHM0Q0pINjAwNFN5d2tUS2pYVG9Ebk5aclFYRTlCU1FBdW9rbTljRUJ4?= =?utf-8?B?d1R3Y1BZNXZTeWk4akl3dkdNbjVubStseHlTa1lEYVc0alB6VE93ajJIeUlR?= =?utf-8?B?VU80TEg4QUMzVWhvOEw4TExieXNQUk5CQVlDdDM4RTNVWWhaWGRJWUxQS0R6?= =?utf-8?B?VU5TekZqMU1DSlo4RHd2UkVMVWVKemlXVTI3Q1I1QlFiQi9COUFOVXNjR2xv?= =?utf-8?B?aEJUNngwQ1VZWEl6cWJ0bnFPZkZWaTNQdFlCR1g0NXVvUlQrUXdQekVETElh?= =?utf-8?B?ZWlsUlMzUnpsaGc4WElnVHZxWGpWYTBpTDZVUVRyR1hKMkh0Vm9wQ2lPdlR4?= =?utf-8?B?SlA0TWZZb3hXZEtEWm1ud09wSHRGZXBUcjd3THJoczVuUFpqUVJVOGVGN3A4?= =?utf-8?B?V2swT1huVEtxR0JKWXVSdWFvMkRxQUNlQ0gyUzB1dFRJazFhQTE5VSthcm82?= =?utf-8?B?Vkp6SnpaQ3RHcFN6dG1xa2ZTbDMzc29ieWwxYUhIQTJBcnFtS1Z0NWJFdDQx?= =?utf-8?B?RGtYNnYrZ0hrazFsYTV5MFNMbENKREdNclpPREszd3Y5ZnFRODdRcG9YWjFO?= =?utf-8?B?YmNaL3VQV2Z4ZG5RRExiMldoMFBsOWE2bUdGL1E2L1ppQVdnRmJGd0ROQU1x?= =?utf-8?B?dFhuVEJya002cWZxQWhCakJqTXpRWi9paGUvVk41bEc2QTZVUTA0L0dMWkZB?= =?utf-8?Q?feYxlHpzHhjueHwGXG4LWPcHksY0s8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L0gzSGFPdGJ3NExhYlY4M212c3JkU2pwL1lzRkdrUEYxcmdiU3hLazAwWWNO?= =?utf-8?B?MWxwaUEvNm1YNVYxd0dRQXIzRjc1WldNUHh1N2w1MmhJcDN1NzNEZThOcmlZ?= =?utf-8?B?S0lUV1pFYTdDT3hveU9WeFBRWUNCN0J0bTVGQ1RlZlJaUkRCZmtYcDhWQkpv?= =?utf-8?B?N3JwVXlNZmtUUWFIc3Zuak5CTXBhVVZ5b2N2ekVuaCtwRFlPK3FwL3ZXV3pN?= =?utf-8?B?YnRIRmQ1ZVlZYWtZNHNzU1dBK3g4Q3RjWXQxNWxLcWJKZ2FTNUgrTjlWNkJW?= =?utf-8?B?U1VhSlNhVHNVNURIZDBRbWVtVWZiTW4zd3dHaWlXeTUxM0liWGptUjBkNlho?= =?utf-8?B?Snc0anBoaVhMTGUxbnZmWjlDUEJOL3JJL00rY0QxTWZJL0RQbzlJcXArd2pQ?= =?utf-8?B?bG1Lbk9oTy8weGduU3ZDZ3pCV1ZnaGtMcnM1eE54b0llaGp5dGZzUnFSeEhr?= =?utf-8?B?NHIrVXhtcVBYczNSSVNsdXEyNnRoeGlyZjc3MXM1UWV0UG1scmIyemkyRGMv?= =?utf-8?B?b0g3YmVkTUtiNlhiTUI5VFdZOFNtenZLWFNickxIZnVjM2NpWHVTMzVnaFFN?= =?utf-8?B?dGZ1L3JBam1QSlNXU1hlR3NqSkVzVEEwVGhtNlBES0k4bzQ0TjYyZ3VzMUdt?= =?utf-8?B?NlFnUkI3ZnlWaW1YcmpYZzd2T04wRFpWTUt1S3B3NDN1cWtLcW1pYUpZMG1N?= =?utf-8?B?MnljTjFFWWp0UnlrcXcxN3ZhdnlmQVp3cVVBVEk1emtTa1JKMlU1eUxsNnVI?= =?utf-8?B?VW02ZU9sU0JhR1BETk5pSGVqRFVJd0R0VWlMUnhGOWxPUWc4OS9ZcG1CLzJo?= =?utf-8?B?QzQyZ0xlS3ZaaDkrK1BmZ3hYSmFqMEwvalFkK0xadXErc0lsemViV3BRZm5v?= =?utf-8?B?cEw0Rm1sMnRKSVFLb211ZStORkhEUjdLdDFhZDd1dGJraURxcVRjWko4TGZK?= =?utf-8?B?eWhTdUY0R1Zuc0lIeEVta1RJRUZ3UUJPRmt1ajlxVXV4cER0ak4xR3VHaXlD?= =?utf-8?B?dGtUYzZ3N2IvWlEzbGxNbThMNW44Z2hST1Z6YWFTSHVPMHljbitGZ1BMWjdh?= =?utf-8?B?cFNkYWFPdk5LN0dBbFozYlNWNExITGh0Z2ZLdVV2ZEMrcHBkY2dvdGk2aTZx?= =?utf-8?B?azM1eTU5YURFOVNrMHpjRXI0bkMzemZVNUx4WTVRcms3c3hyNmRiZS9nUEhW?= =?utf-8?B?bGpDVDZXVy9TR3BidVBlQ2pacUZ2eXgvbEJnU1NBditCVlVYWUovMmh0VFhr?= =?utf-8?B?Y2NJZ1ltcWFxUGIyL2ZiNnF5VnpEc2pPSUlqQ2s1RkpKdnpPR3JseG9xeEhi?= =?utf-8?B?T0lKcXh0cVQybTNrYkM5ZmdheEJLRmVHODNocWE4N0lQWWU1OUFuWlJ4NVFD?= =?utf-8?B?RENFZXIwVXRIR00rWm9LVzRScVBxbmtUMG94dHpiM0tjSUN1OE51bW01Sjll?= =?utf-8?B?NjBEQ2JodEhrT1p6SW5VNkJIYTBHRkpsM3FkMXJlRURoK205TVlrYThnM0Yv?= =?utf-8?B?TUJWTjNVMzFJQ1owTXQ0K2tSZUN0dkpTUlM4RURDODRYZm5VMkJ6NytsTzF4?= =?utf-8?B?ci9VdDR2U3RZK3Q1M0Z2czM2VjJnNEppQW1BcFl0MDZTaVpmWFErS1N6Tm12?= =?utf-8?B?dzFKQzFXbHJZSWN3MUdKMlJMQUxoM3dwVCtHZml1U3UwdVRBZXZJa29QUmU0?= =?utf-8?B?aGlUWnF3NEhRNlJGWTVDYUVqaUFvZGczeW5RVlNpTm05c25xc2c1YmJPTHVz?= =?utf-8?B?VEtITEVPMU9nanp1TzlXZ2o0TGJaZVVNWmR3dVpYdWwrU1ROcGQvMXJiWmdy?= =?utf-8?B?VW1zV2FvRTZCRFFOS2dZbWFQc2ViTDN4azlEMmRRRFhQdXBNQVE0bENMWmNU?= =?utf-8?B?NzB6RnF6eHZxckxxWVllODBGRU5HQ1FkcDF4RkttZWdBbFdWbC9TWHI5ZUZZ?= =?utf-8?B?aWsxWjRaaDdVN044akJpY0pVcnd6Vnk3ZWRNVVlIOHZpa2xybnZjdTUzVWpC?= =?utf-8?B?b0JORld2ZTMxaEZNcXZwMVZBakRCRmdnc3Q1UU1SMUlkc285allxcXBwWitU?= =?utf-8?B?UEZQR2g5TE5EbHNxZ2dubFh5NUswNWVwQm5jZFZDV1E4R1BpTXJLVUI4ZVlU?= =?utf-8?Q?NpGM=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 627f0e25-ff22-4953-49ea-08dde0efa34e X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:40.1040 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 26cttLSvnEs+uoFdvvcAdAvWFU977etnodgzOShwtPonHWqT/j3gP6V2QEKQD5pW/qXWNA+t0yrVyw6V/E+zQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Use devm_add_action_or_reset() to simplify the code. No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index 42256441b881d9f132ad7ff899d6f1e35643b4ac..eba9a650030f5e380aa900b9472= 8ad375171c6a5 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -716,6 +716,14 @@ static int csi2_async_register(struct csi2_dev *csi2) return ret; } =20 +static void csi2_nf_cleanup(void *data) +{ + struct csi2_dev *csi2 =3D data; + + v4l2_async_nf_unregister(&csi2->notifier); + v4l2_async_nf_cleanup(&csi2->notifier); +} + static int csi2_probe(struct platform_device *pdev) { struct csi2_dev *csi2; @@ -749,6 +757,10 @@ static int csi2_probe(struct platform_device *pdev) if (ret) return ret; =20 + ret =3D devm_add_action_or_reset(&pdev->dev, csi2_nf_cleanup, csi2); + if (ret) + return ret; + csi2->pllref_clk =3D devm_clk_get(&pdev->dev, "ref"); if (IS_ERR(csi2->pllref_clk)) { v4l2_err(&csi2->sd, "failed to get pll reference clock\n"); @@ -800,8 +812,6 @@ static int csi2_probe(struct platform_device *pdev) return 0; =20 clean_notifier: - v4l2_async_nf_unregister(&csi2->notifier); - v4l2_async_nf_cleanup(&csi2->notifier); clk_disable_unprepare(csi2->dphy_clk); pllref_off: clk_disable_unprepare(csi2->pllref_clk); @@ -815,8 +825,6 @@ static void csi2_remove(struct platform_device *pdev) struct v4l2_subdev *sd =3D platform_get_drvdata(pdev); struct csi2_dev *csi2 =3D sd_to_dev(sd); =20 - v4l2_async_nf_unregister(&csi2->notifier); - v4l2_async_nf_cleanup(&csi2->notifier); v4l2_async_unregister_subdev(sd); clk_disable_unprepare(csi2->dphy_clk); clk_disable_unprepare(csi2->pllref_clk); --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010028.outbound.protection.outlook.com [52.101.84.28]) (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 302D834F481; Thu, 21 Aug 2025 20:16:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.28 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807411; cv=fail; b=KkgZUUUUvG2236igXva535U4nidAm7TYhFRDe+TLNLeaJ3rhj+b3JyR5AuDT2JkOzMvMnH9bM3mkYtB5ijGrEx0Ci58E40f/RArPWmmqf7dJxZaP8Rl8gFSnfxJiXlcDpfX+bMxvJycc4RN+VPkTdCktgayt9SKC5KkHZRBuqWA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807411; c=relaxed/simple; bh=ZPa6mjkgxqtQVjDUUTFy5knCNwpffsk/7qHAD9es29U=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=gVAlAc4F+839fXs6GmVhqv5kHYJWPt0vEyt3nFvcS1iBFL499D0edRYeMdeocf3msx7ztLmxq/OTK75Slp0onbhBmL3OWyjilv4k8FJZXR9fJaSMPBqeaJ+4nX92qHHswdKZW/js8B5z++DO5MDKcrl+m0tzYWlHeRFwfxMi0U0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Pgq8DSce; arc=fail smtp.client-ip=52.101.84.28 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Pgq8DSce" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uDuEvElnpnR/6zuuG9+JfzicUxOdpl6BvGgv1AEDUVfdgpj311DR21wCAXYjTantmVfuElkRI3QxpmE1eqrSnE7/zYQmZHE+9CXxeoHurlR6Ls0P/07RiS7RZwQPXYQmtxg2jnKA6xxprH1lvK/y9A8e1bO6ncoGMTez0oPEGGlTYtiW9etD/vbSpZ4c75dU4kQfNPe8N7lnKJTpNEfUZhtE4GDFGzHyBpF8pgWvbQ0Mg/Sq75uUcEUJrhuM9CCcSbdXSfll+9cRtGGtN13d6swtNlWE325jdPYYA1IzbJXg9SsLLH5DMcNt6nRljgk1ZA6tgonvVlN99XUI1qsKow== 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=nRqelGO03ujk0kGPxK0ruEl8D+gjJr44LC7/09+yWy4=; b=pzIfX+CJLbMstFnpNP4uQgtQ7mwPOxu3bTUHSM07Xg80YmVImQZMg8XfVKmB7Bsw0hoPYLpDkOgS/75MmzIR9S/IYBbIxcoFj0Y0IxkeaN9NoSXcE5gbr8X+WhBm8fGkaCcoZR8bFmOUVzP/W04nYAIjdFhm6XtL/BTZHLEzta8YxJG9ARURQW2zh2TbhqTKF5yXk/7DEYDYweXVkuvFxKJqMyTo3eLZlypl+vKh2QTsljnQS1oLrcxImsaB3Nja34XrGB5EDaWkqsPpJJt5wQYa63VGxGDIpH3gk9AN6Z/dL9m3Q6BB1lS5eLnjhbzNDhLTmTjIzGvn21vV7suxFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nRqelGO03ujk0kGPxK0ruEl8D+gjJr44LC7/09+yWy4=; b=Pgq8DSceuC9tQkeJUaupmDkm7MjVX3DWea/SpnVW6ctbCwxma5+ZTr6sDYDob4QLudoGrHLJwldMv8UaJA1IsSWwxWws2eSGedLvBBzHn7B3BcFJQf9l6f7CRQEcW+60be8ZXYvSHMqo4f9YS+xOuJgnaNJzHo+6RIz8oifsHRks/8mMuaMIO2hBJatBcoi1yNJNl5LDlu4iHuWfYlkL0R5hWuBTgRtdBTSLq6OcuRhgVIHcJCcNoYe77W2xv7wohfAIo3d4VReQzd4Jj4JcGNp3mwVhYT6D9sl1IQOJmsmidd1adIGrDp+SbC/HIdLWrHdkTvE+M4reLukC4BS5Ig== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:46 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:46 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:41 -0400 Subject: [PATCH v3 06/31] media: staging: media: imx6-mipi-csi2: use devm_clk_bulk_get_all() to fetch clocks Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-6-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=4005; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ZPa6mjkgxqtQVjDUUTFy5knCNwpffsk/7qHAD9es29U=; b=wj5R80/E7hitRcqphfBamLhnesJBJ8YAX8wN/WpKVWs0EFERsbeMiW5TQKFLHOJfi2IVrkttM Q4B3xzKsDFIB1MGVgb2y8gilbn2Oris3QH00eO3eNdhzBn4m0X+3pN7 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: be780b85-795c-4e8d-09eb-08dde0efa70c X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bEU4MC9TTEVLSWVkS1cvbWNYMjVlNmh5dUxNNHBuWUp6a1lPZ2dRWnB3cmxm?= =?utf-8?B?bDhwbEZJVzVlZHZsWDl4bXRCOUlibzZESk00elp2bGZLVmhScWt6N3hmYmcx?= =?utf-8?B?S3VaQ0hEU3ZPcWNBMnpRSmhGYlphZjVBSmVnTUVxUU5SbWsweGNaVEQ0OFdm?= =?utf-8?B?UFg2L2o0Y29jOFhoQkltT0xiaGJLR1BJWDZrNGRHbHl1QkpkeGptZCtJejU0?= =?utf-8?B?NW8zR1UxM2FwRWVORmZmOEF2R1I2WlBHWVp3NjViMVFBSUVCS0RYdzVZK1hQ?= =?utf-8?B?VEl5dmh0aTBSL3MzengxRHphV25WOFpSc0VsZkFGSHB1TnJ1blJzU1JIdUJy?= =?utf-8?B?OFd5d0tMT2lCNnowQTFlSSs3eVc0WjY1Ukt5dE1OeVFaaThpOVU3U0lHWTB0?= =?utf-8?B?L2lLK25NcWtLcmxwc29wT2R6MUlDaXUzR0xVaFFKSm41c1oxRFRZbU5ibUUy?= =?utf-8?B?QjMxdDR3M2x3enF5ZEhJcTloMndrNnNqYjRoTTEyWVZiK2JrZTR3WmhTRU53?= =?utf-8?B?UW1nZ1Z1UkJsNFN3dGUxRjFrbjhXRUhyZHE1ZU5ZUHdHZWlKM0FQRnlFTDVX?= =?utf-8?B?VTNxR2s5ZXFmdU5wNFRNRXo3eExNY3hDNGpOaVNrSExMb2xsRktJSWUrY040?= =?utf-8?B?M1lmQkQrK2gxd0lOL2s0NVZvU05aaWEyNzVRTG5XR0MwQkR3bDNWSDBxTEg4?= =?utf-8?B?aEZoQzdJT3JsRTVBZUdVV3kyRHFqYzNsN2lka1hrNWN5K3hLbzFHa3lBYmE2?= =?utf-8?B?a1FVbGJlSjBZcDZldHNtQ05ZaGp5WW10UXVXek1Xbm9RR3pVK056L0x4Q1RN?= =?utf-8?B?SHo2R0IwQmI1WUoxRkxORHQ3N2FLMU5vZFFyTEMxYjlieTVqcVl1NFc2T2hJ?= =?utf-8?B?WHRaUmtEejMyQi9oemdsU1A4eXl2WmxOSi81Q2lwYStIb1dJcTdyNUh3bXlm?= =?utf-8?B?aTlMWm5ZckRTWjBBVTFxd3lvekpMTzBYa3ljNTBXOXROa0V4b0h3b3dXTllX?= =?utf-8?B?ZXQwTVhYYkxhYzlVTE1MeDk1YXhNODlGdXRWUmpuN3VBMGV6YTZuOEVUNFZ4?= =?utf-8?B?MTdEQzhhTVByTUIzbHk4SWRac1Z2UUkwMUlsd2xuRkpGbThEaDNlYytoQ3R6?= =?utf-8?B?N0hxc1A5TFZCcHg0UEhLZW9iSmw1MS9aN0s4a2puUTJjdUtCMHRQclh5ZW1q?= =?utf-8?B?aHdDZDRNVnpjZnh3dk1xSkxGU2hhMW1yeGViZkM4WjU3K09JM1NJWEd6Z3J3?= =?utf-8?B?TFdZVlhQZTlIbWdOTFdmdTZXaTZzWncrQndIZ1hrZkdEazdOeUN2RFdReU9W?= =?utf-8?B?L2dmNjVaVDhsNE1tMDJUWm9ZTVo4ajZPU0JhRUVFOEVxMU85VkRrUGVtdklF?= =?utf-8?B?UnBhR3BNVGR0WHczdmxIeXVLS1V1Y3A0dnZRQm45SHZWN0JIWFkxSmQ1QnFB?= =?utf-8?B?aWVpajJ4anNTSWFDOXVCMDR3Z1QweTBsNWJGVU54OUl5Q244eGtiZXRnZ1hl?= =?utf-8?B?bjhPdmFiN2FoQ2dDYmx6THNINFlXQ3IwWndJSFROb3JvZGV1R1FoL1hQb2Yr?= =?utf-8?B?RzRPMWh0OEw1SHlwcE5uQUhoSUE1RTdkbk9VVVRQc2xTMkJzendBcjFHZW9m?= =?utf-8?B?ZC9ROWJaaklKUmxSZXo1bmIvYUp4b2xNZE5hSS9OM2pHa2xua1VNeGcrRHRF?= =?utf-8?B?c3BBWnpkejBoL0E4d1NxaVUxZy9uNGJGOGpXQ25aR2JQdHJ5Qmw0ZVhmOVJY?= =?utf-8?B?dzJiSmlIbHpqcStVa1RvNi9hWlI5WFVqUFdybUUrWXNCYjhHc2FBTWtnZFdP?= =?utf-8?B?ckJHUFVUZHZ0VWNWV1Y3eTl0Ulh2WFNKNHo4MjFLZVhWRThDcXM3b1lESk5X?= =?utf-8?B?TTh4enZKTGRoQitUakJXUHk2aUtDMnRnbUV6S2loUjVUZUxnYWw2ZGljblU4?= =?utf-8?B?VE5KVUZwcG0wTjVYQ1BjRWx3NmtHZk16bVd5L083UTFjR3NoSVMwQlQ0bEFN?= =?utf-8?Q?DttaIIDrroFJI/X6jxURSyJ7CNJzeI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a3hoUzIvVzIreVRNT0tySTZKY2pIZTcvNmNLTGpMRmhJMS80OHROZnk0QVRu?= =?utf-8?B?bnRjM29lTkpRTVg2OFNQbE0vREQvYWNRZGJuT3VEQ2xVeU1mdzdTZjFEYW84?= =?utf-8?B?RTI5WVI5K0lqa1ZZK2p5cE1XcHB1UXR2V2E4amxwdHlVbjA0M3dQOHpEMkpj?= =?utf-8?B?Q0ZsQmlLVnlQTmx6eWlrZ24vaGdWM1FTZEkwTUZoUVdCMXVaWEZzbGh6YlZu?= =?utf-8?B?UTRQWkJKWmZ4ODBOdUJYYnQ2aW81cnoyMlpqTmw4Z0pDbXZQNXJFaHhpVkVV?= =?utf-8?B?b0NoTXFJeGpIUjk3Sjd0YnNDcXVFT2p4OTNHS0Q0OVQwOVVuVWRVUU1raXp6?= =?utf-8?B?NlE1czh2NjVZRlNHRERGWVJKMk1KcHdueklDNENoQzZvUVFXYlFYTURtVVRt?= =?utf-8?B?bUprSTFNMklRQmZLRGdmN2RRWGMyNnJ3RjErU1V3amNKOXAxeWkzY2IyR21V?= =?utf-8?B?bk50QkpBN1lxSVVmM2RDbzA0bzYzZUpoWE1MZkhSVnIwVFAySnRVeU02M0NI?= =?utf-8?B?T2pRb3ZiSVpiUnl3Tmc0dDdlV0tZOGR2ZVhmY3QvcStUekozYlc2bUZ5aUFM?= =?utf-8?B?TXllbzVLem80YllWbW9UV1ovTEVTSGlOWFk2ZHF1ZTF3OXBYbHNtbHNhdUtD?= =?utf-8?B?NFREeWZNZHlDcHZ2M1IwTmxCeE0zdEpid2x3ZWIzZDVqbDE3bUY3UEt5SCsw?= =?utf-8?B?cnlyaE10bEIxRm9HVHBpR1lweWtIOVZaZVViRllTTFlNZHVqQThvZ05xcGZ5?= =?utf-8?B?QnNQMVUxM0g2MVF2TXRONGgvM1BMcFRsckhXb09iM1hPTjRmT0w5c294Y1F5?= =?utf-8?B?WmttVHFaVXZxejgzSll4akczMFA5TFZTTFVSZDBmWFpmbjNJOFIxNFdMRGJ4?= =?utf-8?B?ZXRhMGlIamFaK0pUSTFlbHpoNGNlQ3hGSlBZQzdJblROQktxNzR0WHRxeW9G?= =?utf-8?B?RFpGd0o1TGxZZitoTXRVaGFNT0ZEOE55UXRhcDc1N0Uxd3FGd01LY2E3bUo2?= =?utf-8?B?ZjFPNEJ1RzY2bU45UGNUQzdtdmlZUlRqNTVWV2Z4ajE5Zk9USFAvZ0hmWGV3?= =?utf-8?B?SUZaTmIvTDJTb2tLbnBEdFZUWVE3U2JuU1hYOVlaOVYxeVlmNzBVa2xoS3BY?= =?utf-8?B?bUwyKzJPZjJ2VXRPaUpwR25SZy9vb092Y3kzTnlnT3RHR2pZL0JOeWRWQTBC?= =?utf-8?B?aU1PTjFRYXNvZzZRVnBTaVFwVERuNWhwdjRaY2VNSFFIM09qTExKNVVUamZa?= =?utf-8?B?aFNQRWtqSTlwMTJZYTR3dVdHVVhxTndOc0QySElNR3hwbjJsSHk4WVc0MTUx?= =?utf-8?B?SmFWdTB0bS80TXhVUzBDZUpBL0pFRlBONXR6MW5QQkdXY3A0OXg0V2Fzb2xH?= =?utf-8?B?WTRpRHJyREtaazdqNEpoMXVENitQa0NWMlp3OUcrUldEYVNMemdqY09KNmhJ?= =?utf-8?B?eXBlczI3Zk91aTBYcTEwQUhQdzQ5cW1YaWlSL0drTlF4ZXdRVVFvSGxZUW5D?= =?utf-8?B?Q0FJbHFTMHIxZm51c1IrUURSa3JESGJBQW54amxDakRPY0xjcEp6YXZVOUZy?= =?utf-8?B?STVpR3pycEhtTnpOcm9ORHZmd0ROTTEvaXBZejNvUFlGcmVOMlUvZWlPQkts?= =?utf-8?B?L0tWbVBleDZJTU5wSkI3Q2ZpZ2xrWU1maThPbDR2L25FYVN3TS9RaWYxYUhu?= =?utf-8?B?dWRENFlGMUlFcnFmUGpVTHpmNDN2aVhzeEpmMXh5ajJqNFU1RjA1L24vdlBR?= =?utf-8?B?OWU2Z1dRaHgwd3hIV1ByMUFUWG1mT1JnY2I2M0xhMituWUpVRUVVYXlmTHUz?= =?utf-8?B?M3J1NjVjdmNmb25YZDNyRlFKUkxPY256U0d1clo3MWN4MGNCRVlYYnJjRElG?= =?utf-8?B?VnRraTdUeElNTmF4WVR0bzhvQ3phay9rVDc1T2NVU1hlSUtoMXBtNWNTRVdv?= =?utf-8?B?eG5HYVNiZCs2R1lyREZ2ZElzSTJDY0xRQlZYUDJBY1QvWXRBY3ZjV0Jjc2dK?= =?utf-8?B?QUpud1ZBZENxTG8yM2RRNFdYU1A4MVNod05DZW42b3NiZkR3UzcvT2VxWEgz?= =?utf-8?B?bFVxdjBNZnVOL0p1YU84WE9XRlh5ZndiTFhCbmdsUk0zT2xxQ2hiRWpNV1hE?= =?utf-8?Q?V/Gg=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: be780b85-795c-4e8d-09eb-08dde0efa70c X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:46.3518 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: X6bS8YX0uvvNvwzwsTikfFDYjr2x5GJkdWLVJj0wy768y/qNVtRelT239M+wyLyHAlqjHKf9f0QK4HZViMHbaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Use devm_clk_bulk_get_all_enabled() helper to simplify clock handling. Defer all clock prepare and enable to csi2_start(), which previous only enable pix clock here. We can safely do that because there are not register access before csi2_start(). Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 52 ++++++--------------------= ---- 1 file changed, 9 insertions(+), 43 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index eba9a650030f5e380aa900b94728ad375171c6a5..32ddcef7ec8535a44e121754bb6= 21c0d2e226369 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -39,11 +39,11 @@ struct csi2_dev { struct v4l2_subdev sd; struct v4l2_async_notifier notifier; struct media_pad pad[CSI2_NUM_PADS]; - struct clk *dphy_clk; - struct clk *pllref_clk; - struct clk *pix_clk; /* what is this? */ void __iomem *base; =20 + struct clk_bulk_data *clks; + int num_clks; + struct v4l2_subdev *remote; unsigned int remote_pad; unsigned short data_lanes; @@ -343,7 +343,7 @@ static int csi2_start(struct csi2_dev *csi2) unsigned int lanes; int ret; =20 - ret =3D clk_prepare_enable(csi2->pix_clk); + ret =3D clk_bulk_prepare_enable(csi2->num_clks, csi2->clks); if (ret) return ret; =20 @@ -390,7 +390,7 @@ static int csi2_start(struct csi2_dev *csi2) err_assert_reset: csi2_enable(csi2, false); err_disable_clk: - clk_disable_unprepare(csi2->pix_clk); + clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); return ret; } =20 @@ -401,7 +401,7 @@ static void csi2_stop(struct csi2_dev *csi2) v4l2_subdev_call(csi2->src_sd, video, post_streamoff); =20 csi2_enable(csi2, false); - clk_disable_unprepare(csi2->pix_clk); + clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); } =20 /* @@ -761,24 +761,6 @@ static int csi2_probe(struct platform_device *pdev) if (ret) return ret; =20 - csi2->pllref_clk =3D devm_clk_get(&pdev->dev, "ref"); - if (IS_ERR(csi2->pllref_clk)) { - v4l2_err(&csi2->sd, "failed to get pll reference clock\n"); - return PTR_ERR(csi2->pllref_clk); - } - - csi2->dphy_clk =3D devm_clk_get(&pdev->dev, "dphy"); - if (IS_ERR(csi2->dphy_clk)) { - v4l2_err(&csi2->sd, "failed to get dphy clock\n"); - return PTR_ERR(csi2->dphy_clk); - } - - csi2->pix_clk =3D devm_clk_get(&pdev->dev, "pix"); - if (IS_ERR(csi2->pix_clk)) { - v4l2_err(&csi2->sd, "failed to get pixel clock\n"); - return PTR_ERR(csi2->pix_clk); - } - res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { v4l2_err(&csi2->sd, "failed to get platform resources\n"); @@ -791,19 +773,9 @@ static int csi2_probe(struct platform_device *pdev) =20 mutex_init(&csi2->lock); =20 - ret =3D clk_prepare_enable(csi2->pllref_clk); - if (ret) { - v4l2_err(&csi2->sd, "failed to enable pllref_clk\n"); - goto rmmutex; - } - - ret =3D clk_prepare_enable(csi2->dphy_clk); - if (ret) { - v4l2_err(&csi2->sd, "failed to enable dphy_clk\n"); - goto pllref_off; - } - - platform_set_drvdata(pdev, &csi2->sd); + csi2->num_clks =3D devm_clk_bulk_get_all(&pdev->dev, &csi2->clks); + if (csi2->num_clks < 0) + return dev_err_probe(&pdev->dev, csi2->num_clks, "Failed to get clocks\n= "); =20 ret =3D csi2_async_register(csi2); if (ret) @@ -812,10 +784,6 @@ static int csi2_probe(struct platform_device *pdev) return 0; =20 clean_notifier: - clk_disable_unprepare(csi2->dphy_clk); -pllref_off: - clk_disable_unprepare(csi2->pllref_clk); -rmmutex: mutex_destroy(&csi2->lock); return ret; } @@ -826,8 +794,6 @@ static void csi2_remove(struct platform_device *pdev) struct csi2_dev *csi2 =3D sd_to_dev(sd); =20 v4l2_async_unregister_subdev(sd); - clk_disable_unprepare(csi2->dphy_clk); - clk_disable_unprepare(csi2->pllref_clk); mutex_destroy(&csi2->lock); media_entity_cleanup(&sd->entity); } --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013037.outbound.protection.outlook.com [40.107.159.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 827FC35207D; Thu, 21 Aug 2025 20:16:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807417; cv=fail; b=O0t1q5VE/PjFEhNBscI5JSQvQuChku4C+VtVl2qD5UfWyXgCVUAcDHFF/d0OVVBClJZx1SWmsWXcnu3T4GklRwCIWxJsW1reuYCwLeGSpYvZ8OaFjUMS8fPA1nrX5RgCua8Uv2OWOuF9LvLWwQ5HNsKiFgLcLP6nbWGk/KvEQIY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807417; c=relaxed/simple; bh=Nx6m2kTz9MnGvT0LPTpNQlk+9kR/GrBRxiKGW1eySIc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=S4QwHdIejnocDKVRlPTrptfQx4sxyvF5H+ljf63A7RR3xdNjZWDAfy2oazljCUnc3f6bJ2ZBvLBpq7vrBFdEZO0WgjEPU++EEpUJM/6XHzGNW9ViCBhLevt3CJ7CVrEQ9os5COM8MooWet4Yk2FIfG7pQ5DZbJRgy3SRh1ahXLQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=WVbEVPSe; arc=fail smtp.client-ip=40.107.159.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="WVbEVPSe" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=clvQ5KN3CnYyr7G5i2lAUZ4silvxZVKumzErurChDD6rFIywVhIfCgZATbWy+1flO/lMxthhnnpwB4gzU81weFXL9aeqm6eaY5WXtigN2p0RLp3RyYmdzOhVnqRkq+o9VvsEFnTvwm5KZ306On7aiaoMwIRaZLeJzS9IP/e4OFld8NZfLpFOUsIm86/NJLqBsDID7bvmA0beCwsGF2EpeIhLDqdLKREFC6w8szqpMXiTdVPUUF65Wh9PRVoYpfrf6lIt1wyN7smkY9djZoCLLxQhoQELXGEuwJq8NYlyvwnSb5R4CZCMEwdmRY0u858XArj853y7urJHyGOemErVdA== 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=C2IfrSM34hUvUtXMsyqdeTNctH21ohqKZkLvLNQvb1s=; b=phLKvEr79M3tm7xKKkY/+5wrbp2qd4+qM8697FeGYKeF8P/SBoc+D+UTe3B8cg5p0yqT1tA3whyp4yWJothzZukqC0C8kVsYif5WdHAFmFAc7m2qG/brIYymT1VreV+rrwf79oLp5xza+lsZHrAvB6S8eVakL59NL46LuCame6NkP8l+o2vvD3148mW8HS9F6ZCkcdV8DMt385aQR0m5fuPPNt17aZajXxhgQO5ApSluTY1qgw2Tt0nE1KMinb5zZ1CKJNg7kiWWyZTugw8GGQVGQNRyG8hAqJkxlOA+GhpeMhgXGZCgBj3zcyiCsI+GifVymF7Al6K68kw+p0Xc1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C2IfrSM34hUvUtXMsyqdeTNctH21ohqKZkLvLNQvb1s=; b=WVbEVPSeOuWluNHFeVR56RIBMFrjs7XGzN52rDvTy5L5w11/l9ose94nrdXy6EC1SY5FHKmZ6Q3+zitrRFryrDyKftG9AslQovoCUn9pth6L06rCVjDw5iB1nfh61C8zVvXm2lFYfOMeA1fUo2DLmFhPvRbTKLSVBN11b6FxqaldqFRSCiKNmDwle1+pKrfJSVD8/FlrGfkgyOkXohxUw/ZFjQVXkNRiFFGbgzo2HzUqwmJsFJxKdjRLjqK1JONBysz4VDCWfwPgkARrSW9NtfPKuEZuP2IwUKlq0bnT0LDJyR+Jz1Qu2wev0EUr915iSPjvW42BwkXzWv3NwB3O4w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:52 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:52 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:42 -0400 Subject: [PATCH v3 07/31] media: staging: media: imx6-mipi-csi2: use devm_mutex_init() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-7-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=1431; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Nx6m2kTz9MnGvT0LPTpNQlk+9kR/GrBRxiKGW1eySIc=; b=tjV8h6yTb/HTsO0TZA9jyD/lDQtQypQ2VVDusG+7YVtmFEGP+Epofwo1U1aW2K5w/QIVgdP4N XRdizlm7AUZCLxYIWyxn68nirO9OnogGcv44yYHrrTTSbXGpO4pj+8V X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 989ed605-c612-4c94-51c2-08dde0efaad3 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UXo2OUwzeExaOFpIa2oxVHNSSjBGWHkzZGFBckMwQ2ZJQnorQjhyZGtoMjYx?= =?utf-8?B?Z041Tzc1cUNNaE5JekZ2YWwxbGc3WkVjMjBaZEtRdlpsQVdKTUp3dnNYalNw?= =?utf-8?B?aFNYN0RKdFBUNUI1QlVicDlHL25lTit2ZldUVnBSRXgwejlYc1RHZFlvSytU?= =?utf-8?B?ckZGZVF3SVd4UXo1VEszckdTQ1pwbkFkNGwxb21EMHZTTWxVWkpkUXV5Wndl?= =?utf-8?B?Si9XUTllMWY4WFBDWHA1T05oY0E2b2dFTmJtWUdoZjRKSHlldmsxckVBVC82?= =?utf-8?B?RnBmREd0ZmZUSG1PdE10OUhSajFIWFNWQ1ArV1kza1k5RTFJb0NhOTltYlZp?= =?utf-8?B?ckF6LzNjNnZrMWVoMENWbXZDRUUzd0hjWEhzYnoxUG1iVVlhM0NuL0JuT1B3?= =?utf-8?B?RlNQZnV1MHNBcTNGQXJnNG5JSTF2a0ZiTlpOeVU1U091aWJVSlBNMDR2OHRF?= =?utf-8?B?eHBiS2l2MXNzL0lKQXBDSkZzNjJUMTJycFpVV3ZJbytUN05wcUd6YUNlWnhB?= =?utf-8?B?TlRINnhYVjFKcWFDN3NuMFdTbkRVL2trck53N3BlNCtBSlNvZzBueWZUQkk2?= =?utf-8?B?L2loTFZKMDh5eEo5STVZeUQxN28zblpSUnVyaEhKRXRHNEVGNER0TUdUdEZv?= =?utf-8?B?TWJGRXVGYUhqN2p1d1ZZZ0RvOWNKVm5rR3ZOQVVJZXE0aUtsSVFrZVR5R1Bv?= =?utf-8?B?RFJYemRRZXZuWHJDNW1aL0RWVytwZ0FBOThjdlBMdHFjUVRaNDIyWUZPMVJq?= =?utf-8?B?SEJMMWYwTVBwK3ZOdkluSkwvNDZ0OFRuV3htOEhFL1U5Y05lUTY4ekhRTlMw?= =?utf-8?B?aXdBR1VrNVRjSzU0R1Zlam9iUnkrb1JKZExKWVgwdHBZQzQ3Z3pvN09WVXpO?= =?utf-8?B?c0dEZndhU0hhc241VFBOVWU2YjJxVXdaL3UxVkxJSFFZaXpLQnRTT3dIVFFQ?= =?utf-8?B?QWl4Q0lpdzBXdCtNSHhUUUlGV2Q1R2xXOHRtNVlmSDJia0M3eG1vcU5mVGRP?= =?utf-8?B?SUx5U0R2TkxFQWJaTCtwcGN6TE1lRlJGcWI4bk8zM3I2a1F4MHdiZWtXYzcy?= =?utf-8?B?WDRCUFcwUzNKVmh3ZDQ0MDVReXVGc001M3crUHYyeXVGVTNKdUFWZDhMT3p5?= =?utf-8?B?MHBTVWdBZEVjbmVIRGFXQk5yamJOWTNoK3kzczIvMlpEQjVsOHNhY0trKzhC?= =?utf-8?B?dm0xRWQ3emw0TE9OMmcwQWsvbjVJSllEcDFkVnpBcXRnUW5sVGkzSk11RWhN?= =?utf-8?B?WHFzbFVUUVdjR25UWGJyekpKNW1PWDZJYkRYaWthL3Roc1ZHTklnWHBxZmlQ?= =?utf-8?B?OUxzWHc4ZEg1UDFzR291UlVPQUZ1aUJGQnYyMHhIZ2JBSGI0LzBCMFBlTXBp?= =?utf-8?B?aEc4Sk5QeTQrd1VCRGxiWmVRU0VrSDNoTkI1aGgrOWwrSXFYM3ZTdjZqT2VE?= =?utf-8?B?VGhLd01LRndWTnNBZUpwSlo0TFp4bVpSVHJONE1zaFBNYzdCSm1DbzhTTVQ1?= =?utf-8?B?TTdmR3lJay9Xdjc1UEdEMVppYlBrVGFOdGdCZkYybnRsZ3FmeVNvK21GaC9a?= =?utf-8?B?bzFiU2UxRkpqRTR2eEh3WGdNM0ZTazlzTXkvd0pEa0FxMDVFRmFnQ2lMbUhj?= =?utf-8?B?TXR2TllIVGhhK0oyYklocjU1N21rMkNUdnlDeHB0Y0QzOVBLTnU3bVFoMktH?= =?utf-8?B?bmFiaXdyemRvemtDMkVkZHk3VnVpeklhTDBoSnY3S3dpRWJNM2kyOUUzc0FP?= =?utf-8?B?K1dIOUsyZzBxTzc1THl6dHJxblBpbElyODdUc3o1ZzFGUkd3aC9DSkU1cFp5?= =?utf-8?B?VTRmcEpqbnAyWHlBdktmMll2Ry8yNHFuVFFFNHhQVkQxSmtQMVJiektLc1hq?= =?utf-8?B?cUJpeWZKRU5nWitKczBpT094cUEzbEhoN2VqWDE5MzBPK2ZOZnJwMkhLa0dy?= =?utf-8?B?NFh1YjdkQnEvZHZRZDQwV0JwTU5udm05SXJjSmszNlcwdnRaL2h4dWx4Y3V3?= =?utf-8?Q?3kx4IfkTjyCz1zBN8qP5M8XOlYq5+o=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SUVNMjhnTitsMnRYdTRhc1hnSUFlRCt2SGtqUllIVEVqVm00S2VXek1EYlAz?= =?utf-8?B?ZGp5NlJNeFQ0K1Y2MmYyVnlJLzNqTkxVcnF3RHJhblp1bEVTZEtGSE15L0JQ?= =?utf-8?B?RXI0eTh6WnBtc25ZeUVqMHBiTXlseVN0ejJiRFhuSGJtTUF4Y21ZbVFrTThL?= =?utf-8?B?YXk5blVheFNKaytzWnFqbEl1WXUyWVhsK2phYlFucFZlZEw3bDJTNk9vb3ZH?= =?utf-8?B?c0xFSWdpdmpVMVNwWlhDb0lzMTh2ODQyQktJOE50cDVkc2lTb0NEZGhZSExR?= =?utf-8?B?dmpaR3c3bk9RZjNWWEd5cGhrdlVQTmlYUUtnb1VPTHgrRmtWMHUzeGcxZEkw?= =?utf-8?B?aTdHdVpSUWhWcnI2LzA4OE1YU3RLSFI5d0gvWFFibHJwbkRGelBRbUszR3dS?= =?utf-8?B?Q0tSQ2d0b0NSbUFMWmJpbU1yNWpPUzliK1BNK0Y5eHI3NzM4ZkNoOS96alpG?= =?utf-8?B?bi9EM2NTNmF5d0VlWUJzM1ZEK0EzTnFZSkJKajl5cjVqbWdaMVFWVk5GUVhU?= =?utf-8?B?T1FpMWE0QXlmbEJiZmVSUllJaUlkRG1sdVVhMlBuWWRRTDF4bDhneDJBQkV2?= =?utf-8?B?dU5OcUdCbFFLL1Y4cEFFTXV6WHVTUlhQWFZCUEwwSkdwOW5FUGxoelpPQlg5?= =?utf-8?B?N095aXUrSk15WFZMblE4Z092d0hGaTA3UjI2b3B3Tmdmd2lLbWR3b1NFcENy?= =?utf-8?B?emYwL2pjdFBJT28rUHd4bVVybXNhZFJSZE82eFhUT3MvS2p5bFlEV0tXaVhC?= =?utf-8?B?eU1jL0ZvblhJUG9LWEtLVlJ2OTJiMUE4SWRnUjJ1ZFM1NTNjb2U5clJvdVpF?= =?utf-8?B?Smd6eTNKa1VRYkNnTjYyczVOc0xxQi92Z2ppQ3dFUEp5KzhxUTJOV1A4Umpr?= =?utf-8?B?dVpLb1Q3cWMzdk9VTENsTklyL3lxNGRlWW5xV2wxQTYrYjZpRnlOWEdUNXlt?= =?utf-8?B?Nm1QeXJnc0l6cExVTTMrU3dVdWJ3djlJMEloSUliZXJkSGQxblNRVVlBWlBI?= =?utf-8?B?amZYZUhzMFdJS0NLV2VIaFpyYlZBZlk0NnJnQWlrR3dhYXBUOG9raGJmUVFO?= =?utf-8?B?UFIzSmJ1QlRqZkt2RzRyRFBDMUx2cnRIdjJVT2dUbWwyLzFZVnl0VTBVMW5B?= =?utf-8?B?a2NMSEcycHArd1JGYmJTYi9hZG8zYWtNZFc0TTk2MFFTbk0yakJHb2h2Zy9q?= =?utf-8?B?aGNwUjBUeUszZjcwY3o5MGhvQUFISmJROUZybDFBMWFzSW1oOEE0VWh2MU5K?= =?utf-8?B?dGlnUTliKzJ2M0kzZXUyZXZETGYxdVpoeUNhSkpqUzVleFNsVFFjdEovSUI0?= =?utf-8?B?REFwclNCKy9iVzdIcVZzZVZPMG5IRHVGK3NtVnZFNDhldU11VXJKNld5eWlG?= =?utf-8?B?UmpSMXNNbmpmZnUxTURpLzMxNm4rYjNnelMyd3k4ZDBBeGp3YVdzWk45OTdP?= =?utf-8?B?bXRsa3l2ZDFWYUw5T1dneVE5QlVQT1dYeEdSdWFoQ0RIalpUaTk5bkNxWVAw?= =?utf-8?B?SjNKVXhKRHhEVFp4bnhSeFJFaHA4L3I2OHh1OGFhMjBHbUhrTXprQmxXelQ0?= =?utf-8?B?V2NjNS9oRFFONzVGTTY4Uzl0d1gxRnE5dEp2S0pTOU0vZDcvYXhFSFo0SjlW?= =?utf-8?B?S09Zd2JuODFsY2JTd1JYSG9oTnpNdUhiSFhCVFNMaVIvZVNUTHhyNzdUS3Jj?= =?utf-8?B?R2xESFRCMjhZc0xOQ3NkU0IvOU1mVW5neVVTZjVEd2s5OUVIditKYzZVUE9s?= =?utf-8?B?SU4vNG5VRUM4a0tPNElWckhGbnl0bHJaWDh5K1g2cnpVM25ZOVJsRGNFSGdy?= =?utf-8?B?MjQ3L0F2N3ZyWGJzbThCWnJyc2RKSmhIdnBCQW44NWpFYXdLcm92OTZQTkd0?= =?utf-8?B?alY1SXRScUdncVJRajR2dzhhWVVJbUxjY0lWK3Z6SGtoL0xiSzdPL1VaZUZK?= =?utf-8?B?a01FVlFiZXlrc2xNWUFQSlJuNjZQMG1zblNjM09sYzRhUFZ0d0tET1VhdlJj?= =?utf-8?B?SG1uVWpmaU9yNzR0NTJkUUtBamsycUZycUo5UFdhODhHZkdsOTdsVDQ4R3Vz?= =?utf-8?B?Z01aWDhMb003Nys0UXZNYnNzeEdLSW1HWnA5KytxTHRxZmxXeXdnRTFuMFkr?= =?utf-8?Q?QnDY=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 989ed605-c612-4c94-51c2-08dde0efaad3 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:52.6164 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 23QVYO8TW5wWsyAXKcKLww/vMYmW6qExpus0WeRZBAKjwV/hJ6JH/E7SzXB4SXewt0RdSWB3mB4J1QjjNalN4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Use devm_mutex_init() to simplify the code. No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index 32ddcef7ec8535a44e121754bb621c0d2e226369..f8d0b3b8b250774af51f2aba731= e639131aceff9 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -771,30 +771,23 @@ static int csi2_probe(struct platform_device *pdev) if (!csi2->base) return -ENOMEM; =20 - mutex_init(&csi2->lock); + ret =3D devm_mutex_init(&pdev->dev, &csi2->lock); + if (ret) + return ret; =20 csi2->num_clks =3D devm_clk_bulk_get_all(&pdev->dev, &csi2->clks); if (csi2->num_clks < 0) return dev_err_probe(&pdev->dev, csi2->num_clks, "Failed to get clocks\n= "); =20 - ret =3D csi2_async_register(csi2); - if (ret) - goto clean_notifier; + return csi2_async_register(csi2); =20 - return 0; - -clean_notifier: - mutex_destroy(&csi2->lock); - return ret; } =20 static void csi2_remove(struct platform_device *pdev) { struct v4l2_subdev *sd =3D platform_get_drvdata(pdev); - struct csi2_dev *csi2 =3D sd_to_dev(sd); =20 v4l2_async_unregister_subdev(sd); - mutex_destroy(&csi2->lock); media_entity_cleanup(&sd->entity); } =20 --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012024.outbound.protection.outlook.com [52.101.66.24]) (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 11B2035209D; Thu, 21 Aug 2025 20:17:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807424; cv=fail; b=HlFsA7RhKT4i2PlJPWYG61wROcm4UH3aLzVCtlaYHK+Zhy6fjUG3wS4NTJR2GStxv518CqZYFirqXisW2q1okmJGkzsvp+NuWRdagZ17ZDatm4P5FIlzs6z75sCQ74X5mPMkHeFxWBu1yTynZ9SgCz610C8SJ41H5gyCpejtPjc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807424; c=relaxed/simple; bh=eGD2tk77cR8fVglEDQuFj1Sy+TcvFsZNM0lIOm4qL3I=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=TlsL22Bj5IgPewdNTHdTsbVyylI3f0uCJlpBTq5N/eJZHDExlQv+JLL9K1eZWRHOUJrNmYwPsGu39vyM6VrtVD5J8SQMAPG9x7pMnhZDhHVjgwIF0CCjyJ2X2MFliTS6ylgWjmrv89ofgf4YEnohpbT/P1+QLCCVzyxwSa8zvS0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=c0LcRqEd; arc=fail smtp.client-ip=52.101.66.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="c0LcRqEd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R1aDUMFb18KsVlFaU0OEGk9GNXIAhDQRFKO7KenbcsU5FhEgSDCgrvMq6xaeguJ/Qx1s1wOCRnnhW8pY9CgCMOr/9elLa3+ZOtRwTQq7j2vYMxekSd6pFghMMpV5vRbhrXdPjE1fz6PMo+qQI9xjNOkeP/q+cZ0Mfs1GpKR//WTgouxzZzxgymJKaP4+v5N3PySNVmVNnqPhR2EPk2HED8Kuh7dFpXH5XAKGg3AjKEy7F28C5VYFuohZL5wdNVfMBmcndJ6xWnGFk1Tgp0HeSK62yG0BINOpS5K80nZV4UuIXAkyFKw0P3uCntrIKRL1DEJqfVzk/K1mSsQw6HGZrA== 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=j61iBTfAvtUUioPVvhteYZChR7xRl7RJTbqqqSt/s/s=; b=dwHwV0zMAOfEpAPPZGOzEa8DuVOaTKrn0Jf/bmDaM/dBuk/dOflYxOkYxj86OA+U6rzt5lgwcQTq/qHYXXuDSK1saIzYBsOE8TEz7VXArIsI202MHd17xXlpfnluDxTo/71mnXL6ja/25zKMcuYg+PzjffTAIS/jJW/tKJbMnPTIHBS8ljtLyGDsiW2q+49zYjZyZo6L8dmxE0JyQ+Gmmj/AusqQ4wDekuQPtkfVYp3aMqWXXT/cJHtXLXj/xBK0tCyAgu2Wi3gVRBrf++5S4ZIuSkAuPrMI+WoYOLovyoBjLsNzttk38txATxsP65ngQNXZoifAobm7R0p06a6Cow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j61iBTfAvtUUioPVvhteYZChR7xRl7RJTbqqqSt/s/s=; b=c0LcRqEd0TzpW+lrOoKZgGqGCPbr24b8qSPfzdGwliOer0UNsE7VQ7zo1v82RIIL3wzszejpJyO9MsAtuZvcQKjl0Zjk7Z8eBO1VbawlFzZ0cmiCQ35pf+dVWstk347n5+KSZhwcPAhyGRIebh0u4NxyciRTpanjZRK68nS8LfME5pPbQA4gDPg7+In4vNMQEPDK3d34ybd/vYsKoQSRVm7i08eo4h0JNhTVLvRLHLRZuG1nYXiSNRkU+Ts6wMXP0gKsHriit2mAH6ypdh4VIf3Bx083GgFcrbESCj9xYq66BG+eZ4JwSiW7+iTHR4TWay6LhNv4LWLznYEz+GISxw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:16:58 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:16:58 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:43 -0400 Subject: [PATCH v3 08/31] media: staging: media: imx6-mipi-csi2: use guard() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-8-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=3565; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=eGD2tk77cR8fVglEDQuFj1Sy+TcvFsZNM0lIOm4qL3I=; b=S0mI1WGyQ/0JM7u5jVN2TUSQ8Fvb8Cxvsx+lc7WemR5WcvQ6e9AFs543FDqvGYRgks8AE8nu8 /NIul0VsziNBWpSeHdXIUdMQrl+sDX47ucc6A6CnRkEdf+yRdpcG8lU X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: b14a6ed9-36ae-41eb-73ab-08dde0efae86 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MkpLV0NwMzVuNVR0U2N6Mkw4RjVnUm5vdEFrNFRYM2FyWEViMjFXTEJDdFZv?= =?utf-8?B?QzBOdEoyWFJDTmU4N2ZaSHRHMFBOdXBGcVpPV1pnTU5kMGlJVDRVL0hpSjF1?= =?utf-8?B?bHg4M0NmckpMZUN1eGFsblZTT3ppMk5vaXZSREFLOVFnZ0QyaW1ZaVE0T0M2?= =?utf-8?B?b0pOd0FnR0lxMjRTaWhZRGZSbCtXVkxpeHRJdGkwT09yRGtvdzBuV2pzcEhS?= =?utf-8?B?RkE0YzFqSjV5cFdwcUtuT3BFaUc0OVRWT2o5Q1FEdWtlbTByeEUrcVd4OEZL?= =?utf-8?B?TlNvYXZRcm9LeEVKTC9OdU1vZkYxeXNXU29ZUys2T3BMdjNsblRUbUI0SFI3?= =?utf-8?B?NjBXa2Z0dzVORTlCRjE1TnUwOU5RNUR0ekZraGNWelVLVjhaUlptdDRaWW81?= =?utf-8?B?R1pQNW5IVERreDNjUnZ5U0NUcUhUaW1OdkxzNXBQUm1KcFBibUFrdkVXNEVl?= =?utf-8?B?T3ZZTUozaUNUOEh5aDFIdXo3M0FKQ083d1FJVnVzRjlLVWZOQzdqSy81cmIz?= =?utf-8?B?aWFmOTFsZGNQbjRONStmaWlrUkgvQVJDNjlBak96L1E2QmFPaElFR1MxNjRY?= =?utf-8?B?dDNqQjRWaExGS3NDVGsvbjdGL2hBRVFsSWNqcEVQVUxnM0xWQTBsTVlPU2pM?= =?utf-8?B?Qnhlem1jbGk5dHI5QkdiK0M2cEM0MzVNbjRndEQ3MTR2ci9XM2I4YUFqWWVy?= =?utf-8?B?d3hzVU1FNk1GT1hORjFPTlVjWGFrbERWMW9BcVVocHNrcjErdGVPVWs3bnov?= =?utf-8?B?MXNQTWQ2dWZtZjhyZ2tJMTZ3REhZTDJHVlorNFhnTzJSRzllVHN1c1NQK1B2?= =?utf-8?B?NU9YTHNsMHRoa2FlTmo1LytVbFhvc1FTaG9ZZjFRZlIxR1V1S1ZRcXlsTXdt?= =?utf-8?B?aFRvYzlaVkUrUkZEcGpqcWMzR1paTG9ITWN2WXR3OTdWL1hRUjQ0dWV4cHlS?= =?utf-8?B?L1N5bnNIWExzVEhhdEJYTFNGSVRDR3JJanFUZEdHb2I2aXBaN0E4RnYrMUw5?= =?utf-8?B?cTBEb0FON0lvdWdxcUJmQlZyVHpPdFYxVG9WZ3pYSXg1RWlrRXErVU1LejAr?= =?utf-8?B?VE04QkRBSGQyRFBueis3NTYwWm5BbHZSM1BucTZuUzdwb2NiZnFFZjJFYmti?= =?utf-8?B?QkQzNG5PTFR6WGdHMVdicDN4ZjZFVndib05HQXdRdy94WFFFaGZEdXhkZ3RI?= =?utf-8?B?MGh4ZjVBejVHemR2OWt1WXBSY1dyQmFGWkwxQ3h2OXdIL2xQR21jL3FzT2hk?= =?utf-8?B?bkl1UlBxb3Q2RXY5dnRBcGhIU3Ayb1gyaFl6OXRFU2FSY1BiQWo4VXAxNWJR?= =?utf-8?B?T0VNWEhGcFFsa0VYWkswaTdTNnNKNlF4ajBxYkR1dFkyMzI0S0NDOGlEQkFN?= =?utf-8?B?aGNYbGlRaXVwWm85OVZTS3I3ZWVYdEJYRlJRWkwreEpoTmE1dmVsZGpMc2RP?= =?utf-8?B?NEdreG53R0RJNVpwNEZXVmxYcGhLTDJuODhsN3NCdW01cU13Rm5MNElCZ3BH?= =?utf-8?B?MzlNN01UdDZsV0VLeTFpZ1UyNGllLy9DRXRoYkN1WE5rVmgyY09UMEJoYjhp?= =?utf-8?B?Mzc1OGw5QlpHR3BFSnVrV3drV0REa2dBeCs4SFRrUXZuRi9McXd1VkhKZXhJ?= =?utf-8?B?ZkNpTk93N1hYeXNXWU9FZ1pMcmNOL2tZMytwMWo2dnhMdFBjdkp4VWc0UEdV?= =?utf-8?B?M3I2Y2I3MFRCMWswTjlwR1pYRlJmZnNETHNnL3BTRVViRXJGQXpLRWY1Sldo?= =?utf-8?B?cjFZOXNHQUtqdXNqQUhlVEVtNGJBaU10ZldQY1VjYTlyRG5LRnRwZnBGK0Uy?= =?utf-8?B?aFRWTDl6TDVIK242SUovV2U5V0R0Nk12alF4RnR6Tkh4U2xvRGZTR09TRzRH?= =?utf-8?B?M21VNHZ3MVRGM2RPcHZGcjgwU0ZwQkRBQ20zRWs3R0ZGOFh4aVllY3hYcCtm?= =?utf-8?B?aFpHL09aTmZHOUJIOFdIUnZGdnRHQ1JDMXBlSFpHOEZWYklXVUJEUjh3QlhM?= =?utf-8?Q?orY+ssWb15lzhqUgF43eD0sAXJAquM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UU5HbVdpWjhJWVdtMzVEb3pMN2dTZU5KNFpqVWQySWFFMHV0TkowSmFCN1pO?= =?utf-8?B?WXF6c2w0STdTMi9VUDVycVp1MDV0NEJOa0pua2M1dTNGRWl1bTRMa2VPMWxt?= =?utf-8?B?ays2aVdHenBjb2ZXWU1jdEo3UldFSnltT1JGN3QzWTlNTVpEQzV3OVBnUXpM?= =?utf-8?B?a2hhMHpKZ3FQWlBVbVNiQzhPNTJNMVBTdDd0S3MxeDNZVlhRY0RlczlrbG00?= =?utf-8?B?c1VxTi82NU5BTGNZNkc0aXhWTEl1YjJBVkgwZS9xTm53ZjhCdVUrQ2MwNUhh?= =?utf-8?B?eXhQcFUzTkF1YzUxVHAzVmczOWUyc1paelNjdmRvQ0tLSzFhNENYRnZiZ0Er?= =?utf-8?B?ME85b1pXZGprdEZFMVJUMGdBWElRY1ZSMmRKOE1ZVjJlM2RualA0eXlrU0U2?= =?utf-8?B?OSsrSGVpU1liNUtvUU8rNmw0WkRxZldKSWh0MUdxa1ZEcWdBOTV6dFhRQUow?= =?utf-8?B?TUdFQW55K24rVzcwTStOWkxiYmlqMU9XQWZwc2lGeUlNcVFUb29qMGU4ZUFa?= =?utf-8?B?VzBvYlBZTlJxQ2RMc2NHejUvZmhVOGxvQU52VThoYVdEUlhNaEU1dXAxL2p4?= =?utf-8?B?NGxSYjRhUWxkc3BCQzJZd3ZTSWsraFhCZ0RwRmpjaXRTNmhXNVAvWTZyYjNO?= =?utf-8?B?QkpmZEtVbjNsSVRYUk1ETm5IT2FRUFBmT0t6UkNuN25NU3Q5OUNpbnNPRzJy?= =?utf-8?B?cm5ka0JoUWtPeEdCbUVnMHdEaG43OGtXTmpTdTRrYjF6L3BESmQ3SGJ5MFY4?= =?utf-8?B?NTVVV3ZlSDNqc1pqbWNJNWR6T2pVSHNkekNaKzV1WTErSVJlTVdrczZmL0lE?= =?utf-8?B?dS9lZ1lGN1VvUVlNcEI5YzdidkRPOUJ6OEZuOWRWT3JJcmJ6bDQ0clRaOTBK?= =?utf-8?B?VTUvSmRQWnErczZuSVFjTzNlbU9GcjFibnhvWXNYalZlcEtDZGdQRlh5ME5r?= =?utf-8?B?U0s0Q2RYY2ZSQzE0c29MMC9IMFRlakQrQm01TlNObHdMbm9pbko5T25JWEEz?= =?utf-8?B?L3c2ajdNbEpKdXFnWE1welZDWVhoOE8ra1Y1R05pVy9aTko0S0NQaFNubyth?= =?utf-8?B?Y3FxYTNNa21RSEJuQ1EzZjhSR1lhV1F3Q2NwSWZ0bzluNWVSOUpZVmlnS0Z5?= =?utf-8?B?MkdIN0V1TWRoZUxKSUtVNCtQMTVwb0NwWlRNdEtHbW1VUFR1V2FmaHpRUmJk?= =?utf-8?B?TUxVUHdZZS9LUXY0a3lpOFhiOHNnbW5XdUZ0OUtHemExVHAwY1BvSXhaUllq?= =?utf-8?B?Z1JtM1hrK0tNVXRQRE9sQTNOWHpmWXNYVGtiRTU1VnpsT0Q1dm1KL3NUek5V?= =?utf-8?B?N2h2TkJMYWI4QkNFL3FuRjdQNkxKbGhHcUhwdXM3L255WGdjL3ZaOFBlSUtM?= =?utf-8?B?cUdEUG4rVjhTZUttNUQ5U29VUkVPTG9xVWNpSVFIeGFkUjgzZ3VHQm9zWHZK?= =?utf-8?B?U0N0Vjg1UzdMR2FudE8rV1NoR2ZURUVOYUtvdGhKN0hwa1JML1dKa3AwbE1k?= =?utf-8?B?cFdsZU9sM3BQRTgrcm5QNjZRaEswa1Q5QUYyWWE0RFhyVkdSM1JIdWZVVWZ0?= =?utf-8?B?VVBxMC9tSU8wOGtIV1gyT01BTW1GQVVnSkVWeTRmTFdNQzFNWGovTGJkcHR2?= =?utf-8?B?bUd1bnprem1GRFBuNnYrQnBKSW1oRzN0SDlTRW1zak4vbENuenJsQzk4Rzd6?= =?utf-8?B?NVBzcmpwSXdPOWQ1UjZPMlA3ejNzYjJpcWRjU05HSVFFUXRLYWVQZFVraE5N?= =?utf-8?B?YVh5L1BYdys5Z2ZwdnBUclpWQUNvOUhvSFRGSXJ5aDJCSklQaXRJbEdYQ3p5?= =?utf-8?B?UU8yZUpueGZjeWJvNjhLSCt0N0hmK3VzYTZYL295b01jRmI5eWtydHpFSXdW?= =?utf-8?B?OFhWZzZIN2tiU2ZPQ3lWN2dSRGxoblJhZDVQdjFCVkdwQ1MzOVFGOVd0T1dU?= =?utf-8?B?ditGZWpxREdrV2pndW5vK1F1cmVCVXViT1hRS3lCeHFEU0w1SzhNY2dDY0ZB?= =?utf-8?B?UENJR1ZjSnd2WkY4MXJDN1o5dnl5ei9XRTVuUUZwVHdpRUpWSXpUVlVzaEVD?= =?utf-8?B?enRUNzhNTnRFVWpLakZGZEVjcjIyNDI3aXFWQW5GVDZFNTFQenZvUXptUjl1?= =?utf-8?Q?Wx+I=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b14a6ed9-36ae-41eb-73ab-08dde0efae86 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:16:58.7727 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RQ8dW7VIg5VoCDyIkHRYi68vy9KEzNHza/gWFnU9rAlSCiUJt80E03EglHX651xSFyhKscZ7i3ztrGHaVRa6LQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Use guard() to simplify mutex locking. No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 54 +++++++++++---------------= ---- 1 file changed, 19 insertions(+), 35 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index f8d0b3b8b250774af51f2aba731e639131aceff9..54e9491d3428686288a5bc9bb58= a5a0a25aca696 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -413,21 +413,17 @@ static int csi2_s_stream(struct v4l2_subdev *sd, int = enable) struct csi2_dev *csi2 =3D sd_to_dev(sd); int i, ret =3D 0; =20 - mutex_lock(&csi2->lock); + guard(mutex)(&csi2->lock); =20 - if (!csi2->src_sd) { - ret =3D -EPIPE; - goto out; - } + if (!csi2->src_sd) + return -EPIPE; =20 for (i =3D 0; i < CSI2_NUM_SRC_PADS; i++) { if (csi2->sink_linked[i]) break; } - if (i >=3D CSI2_NUM_SRC_PADS) { - ret =3D -EPIPE; - goto out; - } + if (i >=3D CSI2_NUM_SRC_PADS) + return -EPIPE; =20 /* * enable/disable streaming only if stream_count is @@ -442,14 +438,12 @@ static int csi2_s_stream(struct v4l2_subdev *sd, int = enable) else csi2_stop(csi2); if (ret) - goto out; + return ret; =20 update_count: csi2->stream_count +=3D enable ? 1 : -1; if (csi2->stream_count < 0) csi2->stream_count =3D 0; -out: - mutex_unlock(&csi2->lock); return ret; } =20 @@ -467,32 +461,28 @@ static int csi2_link_setup(struct media_entity *entit= y, =20 remote_sd =3D media_entity_to_v4l2_subdev(remote->entity); =20 - mutex_lock(&csi2->lock); + guard(mutex)(&csi2->lock); =20 if (local->flags & MEDIA_PAD_FL_SOURCE) { if (flags & MEDIA_LNK_FL_ENABLED) { - if (csi2->sink_linked[local->index - 1]) { - ret =3D -EBUSY; - goto out; - } + if (csi2->sink_linked[local->index - 1]) + return -EBUSY; + csi2->sink_linked[local->index - 1] =3D true; } else { csi2->sink_linked[local->index - 1] =3D false; } } else { if (flags & MEDIA_LNK_FL_ENABLED) { - if (csi2->src_sd) { - ret =3D -EBUSY; - goto out; - } + if (csi2->src_sd) + return -EBUSY; + csi2->src_sd =3D remote_sd; } else { csi2->src_sd =3D NULL; } } =20 -out: - mutex_unlock(&csi2->lock); return ret; } =20 @@ -513,14 +503,12 @@ static int csi2_get_fmt(struct v4l2_subdev *sd, struct csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; =20 - mutex_lock(&csi2->lock); + guard(mutex)(&csi2->lock); =20 fmt =3D __csi2_get_fmt(csi2, sd_state, sdformat->pad, sdformat->which); =20 sdformat->format =3D *fmt; =20 - mutex_unlock(&csi2->lock); - return 0; } =20 @@ -530,17 +518,14 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, { struct csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; - int ret =3D 0; =20 if (sdformat->pad >=3D CSI2_NUM_PADS) return -EINVAL; =20 - mutex_lock(&csi2->lock); + guard(mutex)(&csi2->lock); =20 - if (csi2->stream_count > 0) { - ret =3D -EBUSY; - goto out; - } + if (csi2->stream_count > 0) + return -EBUSY; =20 /* Output pads mirror active input pad, no limits on input pads */ if (sdformat->pad !=3D CSI2_SINK_PAD) @@ -549,9 +534,8 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, fmt =3D __csi2_get_fmt(csi2, sd_state, sdformat->pad, sdformat->which); =20 *fmt =3D sdformat->format; -out: - mutex_unlock(&csi2->lock); - return ret; + + return 0; } =20 static int csi2_registered(struct v4l2_subdev *sd) --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013043.outbound.protection.outlook.com [40.107.162.43]) (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 D15F1356908; Thu, 21 Aug 2025 20:17:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807430; cv=fail; b=t4Irxvh4wOo3smhm4URz566hLY5nqKrYMgUzUEXfbngbxtclieHPdgBIq4kfpTBAMV1Sb6IVvHT5/ivphm1cm7jEF/R4Vb7KFv6kE4xevd6HHr2v0ZauVjlzI+RdMl+uteWvrSD9KqfNSj1A8WktOd6yTZwn8sp/1hLrQuIS0fQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807430; c=relaxed/simple; bh=3pDTYj54ZDo4n98QHzd+FXpEBsweRyFJ3wROB1HMjiE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=IHFDvnc/iE2L7DxYq6eyG6qwhF666/+EwTbfLTrdp4vUNfwxWs5fpTMoZGKX8scO/opOM/lPZnugIppXFPXx1I8IKeJ5H0cc1rXvp488nVOAL8LV5ez++fl7I4T6JD3hpc1O8Jzdfql0dTejy63UFV6J7eMdxbdO5xOciB34B7w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=K+q6IkUR; arc=fail smtp.client-ip=40.107.162.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="K+q6IkUR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EQh7FFoJ0spo1ABioZnA5AEFwz1g0wq4Z01HsRSTQVVwvGO4ZrU5LLma+gqJQ56d1fy+94+1OTKyMjhs9ZH45tj5Otlv3FwA1AzDatTKwyVHGzHQwgwQAQa92/D85AmxniPSKLJPrwQWLFISCZPSl2BniT9gjw69YfAJJKMHXsoBmwB3TZtWTegUHnTYlnSBzTwqqHjh29WXtcwIEy86Jt783DhuxUI4iUvF0Dgf0OdyIJTiJJIiTTkbmPWdaMjby8QrWwCQvTnxTJ0vRVjHRrvu1OQFgtconXswSgjPDli1fGVutLnSmBQM7oTqtf5V181paiCGUuk323M2e+e3Sw== 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=XyiNTzVCgRpstN7QGs9Y1yoqXesRVoERKYbQPB5PhAk=; b=LkaQ1GklrWF8mZnBHwkN/BxyyvAaibwybTQT1pr2DjFzdv+z6RWLUHokKWTdO3z2zmHffuaP4A0wSfjRxlSelyqEtXu+qxlBxdR0k+JfFKqYQIUTB/NC2MNOsgrosG7calLJMyadJhMqRM5210mrNhExxfax74cdrwHoSgR9KlK5vLAieCBJVNTNs/TT5h661tbTx6YGfqoZl+8kcanwyw3igM/ET4EA0edUqSqFHUqQUYppluedms4h9DAsAPtoMabE5nJIIIIBS/XSCYVq652S6mD2o+Rx+6yRmV9mBeA4JgqCTRdinK9Dfmk5s0hiE6+UZOmrTF+zSCikQwPoug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XyiNTzVCgRpstN7QGs9Y1yoqXesRVoERKYbQPB5PhAk=; b=K+q6IkURvwknTb+v9HkUzaQ/i7XGmg5jLakpmx1cusGNTQo6q65B75/zLBpBaxsfmiyW/Zu5/lQV6eEhpK6Qpolh4iiHmYVtWdzDfR7yrN+UMwhjStXCf6MtYX5oitGyE4PhfVgx4s4uKUXZ/eXq1Ticoxy8dADsQLoTqlwKyADVyb7QfsanbNpkLY3bv2+2X4zbN92iXErRxqTFdP1TZp8X+h8OX7m323x4ICCtH3a4VeYNYyTh8hw9JDJdjQa2dn6/Duh4IxbQF+Jyx8fdnXPt/beeEwBuVGMY6ILxIvoDZ37ZdnC6ahazKc4nmiLkhbGJ2GbYC9pzEhY+rIkdVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by VI1PR04MB7181.eurprd04.prod.outlook.com (2603:10a6:800:12a::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:17:05 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:05 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:44 -0400 Subject: [PATCH v3 09/31] media: staging: media: imx6-mipi-csi2: use register structure to match hardware Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-9-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=10227; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=3pDTYj54ZDo4n98QHzd+FXpEBsweRyFJ3wROB1HMjiE=; b=ojTUAaJimF+Sofh4Dt2/VKHqTvM5vIreAz/O3G2BuPLduq9bzSmmP04ASUskfB8msyX8pP74k mPtGYEG2p92AqCCFEcGB2TggE1mDA0CGSRBy/sGMnrCMxRvjAYoGxDy X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|VI1PR04MB7181:EE_ X-MS-Office365-Filtering-Correlation-Id: 719165ad-bd7f-49e8-61d2-08dde0efb231 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|19092799006|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WEFZeGhJeDNhb2g3ZU5NYWcvMXZWcFdQNGx4aTgzVXNUUEhJQ2RzWlRRcW11?= =?utf-8?B?NTRtaUNtTXcwRTFvcURuTFZQSWF0dnQxVlNpZ2hxakhCL0gwWW9BZ045T2Zp?= =?utf-8?B?dFRDOEUyZnVNNDNHZzhnSnp0a1duQ3dyUmw2UkthS3djUTNRRTZrN0M4U2tj?= =?utf-8?B?YSt5V1RxdC9NeC9GU1FjYzdLVTdKaWxmMUlKK2tmWWVNdDJ3NzdLajZLWXdV?= =?utf-8?B?Q1ZyY2tqKzZ0Z3BEeWsyQVNXNjNicCtsSG0waU00Y21MaUlHRnFBZHlXbEZv?= =?utf-8?B?WktzemFHSWtRTzdpSDVpUmZpK0llMU42Y3IyZVFCczhEN010RWpaMjBUdHlS?= =?utf-8?B?d200S3ZIU3gzMGE0VEQ5U2h3N1RBbU5pRFdOU3FhQlM4N0dVYjg4QUZnOU9D?= =?utf-8?B?NFk2ZjNRTGJXWElyczY2dnZGeFdwd2EwY1JtSXI0OEVYdHFVR3FzNU5HR1JG?= =?utf-8?B?QkdWODRFU3B0OWFnSk43RWNLKzRhcE1PTEtoV0VsanBobnVPeHZGSTJXaERu?= =?utf-8?B?N1c5NlV4YTh5b2o1Z3d2TWFnZExWdXUxa3NtWC9HbUFTNTR5VXRqUlA2bWJ5?= =?utf-8?B?V2lqMG53cjlvNGtVYTcxSU1jZDdYcmV6ek96cFFtbzArd2FBM2V1cy9WSnR3?= =?utf-8?B?SnNzNnhHUGRld1pqa0cxK2VEU2M3ZnY3eFFiYVBxWU9BZ0M0c0pvUFljMm4v?= =?utf-8?B?QnYwTDNIYjhYYUpjRzlsQUdzRFJVSjNmYStoV0VWOHJlTi8zWFdTN0t0dHlU?= =?utf-8?B?NDRZQXE0Z3ZwYlpiS1p5cUl4MU1RVmVqS2R6T1lVUDl5QkFNM2N1ekZnRjcz?= =?utf-8?B?aVd4ZHlkQnNkYk1CWXhXdWxCaG91REZ4NXpFTVRESGR3ejB6WnhSNXdWT2oy?= =?utf-8?B?Vkx3NXRuWmloZHJ1NVNPM0xRZWVmODNKVEM2cGdob1RydEtqR2l3azVGM0VW?= =?utf-8?B?UWFYT0dWaTM2T1JTN1VFdndBcUFSQW83anJOeU1lMlBpWUhSYWVrYTB4d2tr?= =?utf-8?B?ZzV4Mm8rR3VjZjN6cGZxVEo5MVNnREJ1TnFaKzVDOE1xanRVUWNuT3EyRmk1?= =?utf-8?B?TENQb2ZwSVIrbzI4TWc2NlZGZk5GMGsvRkNyYThPT0d3bWhFaC9OUU5IUi8y?= =?utf-8?B?RmxKNFFpT3hoUm9sbjJiZUM3YkphaWxOc1J3L3RtNjdSMGhqQndIOS9uUUpQ?= =?utf-8?B?YWlHRDQ2SXlvRUxkQWM2S2E1WSs1VUEySUVCY29YaEt4SUZJWldJeE5MVlFi?= =?utf-8?B?M1F6cmc3bWg5YUMyQ3UrSTNQRDVnUjNMakZWWnZ5M1Z3eHBianRPaVhoVjBT?= =?utf-8?B?YmI2Qmt1eTNkeGlqQ3EybkJJQTg2M1Rqa3RHYXZSbXV1MXhweCt0WTlKaFlx?= =?utf-8?B?OGV3YytBRXB0NktyYTl0V0FtU1lINVNobFJFekRlNVNCLzM2b1BOSDhnRHFx?= =?utf-8?B?TjdVRlllWnQ3dXR2dGlvZjV6ajNWenlIQldFbDkyaElxMVc0dmxDOTl4a1lm?= =?utf-8?B?aHFpd2RCK2VtNFhkenk4V3d5ZU5kRUF0clc2T3l0UnJCWEFZT1YrSFE2UjhZ?= =?utf-8?B?SEdSZWN4dWFiQjBraWJLL0E3OGtoMlQ2OGFnNkZCM20wa0VSZVFGUmhpdDc0?= =?utf-8?B?NEI2WlM0dUxmaUFIWTdzYW53NDhnS05iOVFnMEh1L0xsd1ZrcEdKdmJra3hM?= =?utf-8?B?bmZ0V3phUFAvS1BnS0NuUnYzUTk2TmpaUGdpU0YxUkpZZXhzdWdHcnJVQ1Zm?= =?utf-8?B?Z2pBckxRKzBpWTlXblBBM1BLTDlXQWR6WXVPNWtsb0haZll4cWxBbEdlaHE2?= =?utf-8?B?MzRlNlU4YXlpSk5wMmtvUTlNaGZ1MFJMNUhVOGFweHQ1SG96YmxhOGYyQmw3?= =?utf-8?B?Qk80ZURVTVJrTTY1TnRkN1NzY1JtVVg2L1dRKzZEa2FhdHhwdG5TeTZaVmJy?= =?utf-8?B?RGpNL2Z0Y2ROTlF1cnNNdmxiOXNjRDMrV0JJaHhCSldFWXdJaFM5YlFPYVFZ?= =?utf-8?Q?gMVl5mKlTevnxKwvndFDjQFdn/Xpo0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(52116014)(19092799006)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VmZGQlJyMjlVTjJUYWpmaE9FVzI2UXRyS0Y2N1JNbVRicGFMcDFURkdybWhv?= =?utf-8?B?TWh1OC96NVgrc3dBclM4SEcxTmFMWjQyMEN5bUsyQVF6dUFZQ0RGVDh3cXVQ?= =?utf-8?B?U2tTSEZHZTNxd25udGwxUjJRdU44ZUM4K1hXR1dNNHhzWExJdTFTd3gzK0kr?= =?utf-8?B?dkhHbTdsZ1E4eXJoM0RkWGsxWityQWViakhNaDJHajBWZE1uU0pFS2J3eWtJ?= =?utf-8?B?V2lzd2g0UVJ1cDczQ011cWFsYklEY2hSRFdlOVVLMndDT3VTVS9kY29Ndk5l?= =?utf-8?B?OUJVd05TQ0dhN3ZPV0hLYldib2ErV3FyYW02OThYZmpVUDFxcWNEV3BqYVh4?= =?utf-8?B?LzdncGtWM0VaUEtUT3prTWxhNE92MWZSblE1NU1lOGtBWkF5YlBzcVlBWkhH?= =?utf-8?B?VUlUSUVjbjkxUy90UkVIYzNOaTNvTXozV0JpNDR5azdRSld5SWRtZGlicEN6?= =?utf-8?B?Vlp0eFdNZjFIN0NMSVFxN0RpcEtONHgvejhKc2pITVhqTXhJK253SGR2dkJN?= =?utf-8?B?SGlpWU01TllZZW12Qk13V3dZUjhmL2ZOUkF2TFB1dFgwN3oyN0h3SUxHeFhs?= =?utf-8?B?V0RZdmR1bVFnTXhpTWpDaDhQakhqa3BjSlRkNjJvZWo0SmRYakMyTCtENzNU?= =?utf-8?B?N29DNzBMeXV4a1NYbDVCQTU4UEdZVGh1a05LWmplMUFEWVZyODhqdUJYN1Ja?= =?utf-8?B?NzMyK3VMazFpcGhBdzI3eTdCYU9oQyt4NzNzcTEzNG1pWFdZbkhKS2c5ZzM1?= =?utf-8?B?ekZ2dzYvNDUwUHFodTlKYUphZGRxMHpvWUowQ256VkhKaDlnNExxUFJEK0h1?= =?utf-8?B?QnBMWWV2RjRTVHBlL216T1FIOW9oSGcvVFBha3BUeDdUQWV4c2RqZUgveSti?= =?utf-8?B?MkNvajZuc2tRQTlQVXZHU1dyV3FkdWtBM1NHc1g3MExuZ3pwdlJvL1NaK045?= =?utf-8?B?ajNrSXFRakF4YTlzR0NaT1hEcXJQNWt5bEliS3BQTEoyZnlQK2RKaHcvQ0RW?= =?utf-8?B?Qm9mZGcxRDlVR0p4ck1oR3EyWlMxTGxsWWt4dWRDbXJIS1FNWjc3TUZFNzFB?= =?utf-8?B?ZlBxRWtMN205WE1LTHJqU2FlS1dqNFlyVnNEUW5EYVRqR3RQK2VPU0tRSVNj?= =?utf-8?B?YjNDUnBxSUlSNWxBUnYvdUI3bGo0Uld5SzBpQkltaTVBV3hlR2p0Rk9ZazVP?= =?utf-8?B?K0UyazBqZCt1Q0p5bkpCMzJKcWVOOGlzdG5OaW11SmZ4bEdiU1NjVHcxUzJC?= =?utf-8?B?WmNnbXVOZysrNnZwdTJrZUl1dU9YVnFqNEFZQ1hzY0t4bCtKa0FXZFVFUEtq?= =?utf-8?B?MEF6aFZSc3R6OFVnSUFSdUp2elV4NUxPejA4WXVCdWo4ZFJ4c1hERiswNXNF?= =?utf-8?B?N0VEeXliUURLSkcrRkp2Q0F2SUlvajdpRGM3R3I0QVJtZWRIdHh1TE9ncVd3?= =?utf-8?B?THRSUE1wTHp2R0hyZG5ZNHBEZ3ZJNWg3eEJ3SHplRmw5TzEyZXBxUjZaN2tp?= =?utf-8?B?MUhveUlkNzNlQ0dYbUJSdjgySFpEMXJLbHlXOFlZMlhUZldWaCtOTzNMdXc1?= =?utf-8?B?ekpEYWRlTDlOMkhmRGJUOTFkRjd1NDc1bGpBZjg2TkFwNDAvMURhVXRLblFo?= =?utf-8?B?dFVDNC9kVm93bG9JbmNOODhvamJyWWVHbTZWMGVsZEFVdDhLSnVTaXdobnhP?= =?utf-8?B?di9GRW1KNGQzaTZMNm42R01PVUJWWEZuLzFEV2h5b2lqOExsWVNJWmFqVWZz?= =?utf-8?B?OEY1ZzQ4ZTliaFNUODZCa2VTREZPRk9wRkRXVDRCR2ovWEVKTDgzRHE3dG5t?= =?utf-8?B?OVRUTThvdkRJYVM4SUlEQ09DWE1tekw1Zy9BaWxpdEFzeTBoUEtCNkZXRVNU?= =?utf-8?B?eUN1NllocU9CU0tudWdPVDJaT0VRZm5QaTZjbm5SYWFZbS9JUWdxdlk5N05Q?= =?utf-8?B?WDhyUTRLbWZpZjlCdklJYWhiM2c2TFdhR0xtVUtCWUo3UGVDdkNKdXF4bDNo?= =?utf-8?B?YmtnT25zUXc4Y1pmSXlYNVVzNXdpL3ZuM3o2UDFJNlZNeUwxbmRGYTl1eWVL?= =?utf-8?B?T0ZiU2dSQUMzMVBFMzRpMFIrb21LeUJ2YWZab1VqcnJpMUs2Ti9YMXVSSEFh?= =?utf-8?Q?hLjU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 719165ad-bd7f-49e8-61d2-08dde0efb231 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:05.0185 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8laeaI+flk5pIsqrHtaCUG3ju/iefwp/WBXNvdEJbHjWaVlnwr/G6FbPgd3BY8XFxjacCz9ogsLwyNI6ZlQz5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7181 Use register structure to handle different versions of the DesignWare CSI2 controller, as register offsets slightly differ between versions. Add register existence bits to detect invalid register access when using different versions of the CSI2 controller. No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 165 +++++++++++++++++--------= ---- 1 file changed, 96 insertions(+), 69 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index 54e9491d3428686288a5bc9bb58a5a0a25aca696..b04c1b98c088b8bfa66eb3f61cc= a8bb735b7eae4 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -34,12 +34,30 @@ */ #define CSI2_DEFAULT_MAX_MBPS 849 =20 +struct dw_csi2_regs { + u32 version; + u32 n_lanes; + u32 phy_shutdownz; + u32 dphy_rstz; + u32 resetn; + u32 phy_state; + u32 data_ids_1; + u32 data_ids_2; + u32 err1; + u32 err2; + u32 msk1; + u32 msk2; + u32 phy_tst_ctrl0; + u32 phy_tst_ctrl1; +}; + struct csi2_dev { struct device *dev; struct v4l2_subdev sd; struct v4l2_async_notifier notifier; struct media_pad pad[CSI2_NUM_PADS]; void __iomem *base; + const struct dw_csi2_regs *regs; =20 struct clk_bulk_data *clks; int num_clks; @@ -60,28 +78,53 @@ struct csi2_dev { =20 #define DEVICE_NAME "imx6-mipi-csi2" =20 -/* Register offsets */ -#define CSI2_VERSION 0x000 -#define CSI2_N_LANES 0x004 -#define CSI2_PHY_SHUTDOWNZ 0x008 -#define CSI2_DPHY_RSTZ 0x00c -#define CSI2_RESETN 0x010 -#define CSI2_PHY_STATE 0x014 +/* Help check wrong access unexisted register at difference IP version */ +#define DW_REG_EXIST 0x80000000 +#define DW_REG(x) (DW_REG_EXIST | (x)) + +/* Register offsets for v0 */ +static const struct dw_csi2_regs dw_csi2_v0 =3D { + .version =3D DW_REG(0x0), + .n_lanes =3D DW_REG(0x4), + .phy_shutdownz =3D DW_REG(0x8), + .dphy_rstz =3D DW_REG(0xc), + .resetn =3D DW_REG(0x10), + .phy_state =3D DW_REG(0x14), + .data_ids_1 =3D DW_REG(0x18), + .data_ids_2 =3D DW_REG(0x1c), + .err1 =3D DW_REG(0x20), + .err2 =3D DW_REG(0x24), + .msk1 =3D DW_REG(0x28), + .msk2 =3D DW_REG(0x2c), + .phy_tst_ctrl0 =3D DW_REG(0x30), + .phy_tst_ctrl1 =3D DW_REG(0x34), +}; + +static int dw_csi2_reg_err(struct csi2_dev *csi2, const char *name) +{ + dev_err_once(csi2->dev, "access to unexisted register: %s", name); + return 0; +} + +#define dw_reg_exist(csi2, __name) ((csi2)->regs->__name & DW_REG_EXIST) + +#define dw_writel(csi2, value, __name) (dw_reg_exist((csi2), __name) ? \ +writel(value, (csi2)->base + (csi2->regs->__name & ~DW_REG_EXIST)) : \ +dw_csi2_reg_err((csi2), #__name)) + +#define dw_readl(csi2, __name) (dw_reg_exist((csi2), __name) ? \ +readl((csi2)->base + ((csi2)->regs->__name & ~DW_REG_EXIST)) : \ +dw_csi2_reg_err(csi2, #__name)) + #define PHY_STOPSTATEDATA_BIT 4 #define PHY_STOPSTATEDATA(n) BIT(PHY_STOPSTATEDATA_BIT + (n)) #define PHY_RXCLKACTIVEHS BIT(8) #define PHY_RXULPSCLKNOT BIT(9) #define PHY_STOPSTATECLK BIT(10) -#define CSI2_DATA_IDS_1 0x018 -#define CSI2_DATA_IDS_2 0x01c -#define CSI2_ERR1 0x020 -#define CSI2_ERR2 0x024 -#define CSI2_MSK1 0x028 -#define CSI2_MSK2 0x02c -#define CSI2_PHY_TST_CTRL0 0x030 + #define PHY_TESTCLR BIT(0) #define PHY_TESTCLK BIT(1) -#define CSI2_PHY_TST_CTRL1 0x034 + #define PHY_TESTEN BIT(16) /* * i.MX CSI2IPU Gasket registers follow. The CSI2IPU gasket is @@ -132,42 +175,42 @@ static inline struct csi2_dev *notifier_to_dev(struct= v4l2_async_notifier *n) static void csi2_enable(struct csi2_dev *csi2, bool enable) { if (enable) { - writel(0x1, csi2->base + CSI2_PHY_SHUTDOWNZ); - writel(0x1, csi2->base + CSI2_DPHY_RSTZ); - writel(0x1, csi2->base + CSI2_RESETN); + dw_writel(csi2, 0x1, phy_shutdownz); + dw_writel(csi2, 0x1, dphy_rstz); + dw_writel(csi2, 0x1, resetn); } else { - writel(0x0, csi2->base + CSI2_PHY_SHUTDOWNZ); - writel(0x0, csi2->base + CSI2_DPHY_RSTZ); - writel(0x0, csi2->base + CSI2_RESETN); + dw_writel(csi2, 0x0, phy_shutdownz); + dw_writel(csi2, 0x0, dphy_rstz); + dw_writel(csi2, 0x0, resetn); } } =20 static void csi2_set_lanes(struct csi2_dev *csi2, unsigned int lanes) { - writel(lanes - 1, csi2->base + CSI2_N_LANES); + dw_writel(csi2, lanes - 1, n_lanes); } =20 static void dw_mipi_csi2_phy_write(struct csi2_dev *csi2, u32 test_code, u32 test_data) { /* Clear PHY test interface */ - writel(PHY_TESTCLR, csi2->base + CSI2_PHY_TST_CTRL0); - writel(0x0, csi2->base + CSI2_PHY_TST_CTRL1); - writel(0x0, csi2->base + CSI2_PHY_TST_CTRL0); + dw_writel(csi2, PHY_TESTCLR, phy_tst_ctrl0); + dw_writel(csi2, 0x0, phy_tst_ctrl1); + dw_writel(csi2, 0x0, phy_tst_ctrl0); =20 /* Raise test interface strobe signal */ - writel(PHY_TESTCLK, csi2->base + CSI2_PHY_TST_CTRL0); + dw_writel(csi2, PHY_TESTCLK, phy_tst_ctrl0); =20 /* Configure address write on falling edge and lower strobe signal */ - writel(PHY_TESTEN | test_code, csi2->base + CSI2_PHY_TST_CTRL1); - writel(0x0, csi2->base + CSI2_PHY_TST_CTRL0); + dw_writel(csi2, PHY_TESTEN | test_code, phy_tst_ctrl1); + dw_writel(csi2, 0x0, phy_tst_ctrl0); =20 /* Configure data write on rising edge and raise strobe signal */ - writel(test_data, csi2->base + CSI2_PHY_TST_CTRL1); - writel(PHY_TESTCLK, csi2->base + CSI2_PHY_TST_CTRL0); + dw_writel(csi2, test_data, phy_tst_ctrl1); + dw_writel(csi2, PHY_TESTCLK, phy_tst_ctrl0); =20 /* Clear strobe signal */ - writel(0x0, csi2->base + CSI2_PHY_TST_CTRL0); + dw_writel(csi2, 0x0, phy_tst_ctrl0); } =20 /* @@ -233,16 +276,15 @@ static int __maybe_unused csi2_dphy_wait_ulp(struct c= si2_dev *csi2) int ret; =20 /* wait for ULP on clock lane */ - ret =3D readl_poll_timeout(csi2->base + CSI2_PHY_STATE, reg, - !(reg & PHY_RXULPSCLKNOT), 0, 500000); + ret =3D read_poll_timeout(dw_readl, reg, !(reg & PHY_RXULPSCLKNOT), + 0, 500000, 0, csi2, phy_state); if (ret) { v4l2_err(&csi2->sd, "ULP timeout, phy_state =3D 0x%08x\n", reg); return ret; } =20 /* wait until no errors on bus */ - ret =3D readl_poll_timeout(csi2->base + CSI2_ERR1, reg, - reg =3D=3D 0x0, 0, 500000); + ret =3D read_poll_timeout(dw_readl, reg, reg =3D=3D 0x0, 0, 500000, 0, cs= i2, err1); if (ret) { v4l2_err(&csi2->sd, "stable bus timeout, err1 =3D 0x%08x\n", reg); return ret; @@ -259,8 +301,7 @@ static void csi2_dphy_wait_stopstate(struct csi2_dev *c= si2, unsigned int lanes) =20 mask =3D PHY_STOPSTATECLK | (((1 << lanes) - 1) << PHY_STOPSTATEDATA_BIT); =20 - ret =3D readl_poll_timeout(csi2->base + CSI2_PHY_STATE, reg, - (reg & mask) =3D=3D mask, 0, 500000); + ret =3D read_poll_timeout(dw_readl, reg, (reg & mask) =3D=3D mask, 0, 500= 000, 0, csi2, phy_state); if (ret) { v4l2_warn(&csi2->sd, "LP-11 wait timeout, likely a sensor driver bug, ex= pect capture failures.\n"); v4l2_warn(&csi2->sd, "phy_state =3D 0x%08x\n", reg); @@ -273,8 +314,8 @@ static int csi2_dphy_wait_clock_lane(struct csi2_dev *c= si2) u32 reg; int ret; =20 - ret =3D readl_poll_timeout(csi2->base + CSI2_PHY_STATE, reg, - (reg & PHY_RXCLKACTIVEHS), 0, 500000); + ret =3D read_poll_timeout(dw_readl, reg, (reg & PHY_RXCLKACTIVEHS), + 0, 500000, 0, csi2, phy_state); if (ret) { v4l2_err(&csi2->sd, "clock lane timeout, phy_state =3D 0x%08x\n", reg); @@ -556,34 +597,20 @@ static int csi2_log_status(struct v4l2_subdev *sd) struct csi2_dev *csi2 =3D sd_to_dev(sd); =20 v4l2_info(sd, "-----MIPI CSI status-----\n"); - v4l2_info(sd, "VERSION: 0x%x\n", - readl(csi2->base + CSI2_VERSION)); - v4l2_info(sd, "N_LANES: 0x%x\n", - readl(csi2->base + CSI2_N_LANES)); - v4l2_info(sd, "PHY_SHUTDOWNZ: 0x%x\n", - readl(csi2->base + CSI2_PHY_SHUTDOWNZ)); - v4l2_info(sd, "DPHY_RSTZ: 0x%x\n", - readl(csi2->base + CSI2_DPHY_RSTZ)); - v4l2_info(sd, "RESETN: 0x%x\n", - readl(csi2->base + CSI2_RESETN)); - v4l2_info(sd, "PHY_STATE: 0x%x\n", - readl(csi2->base + CSI2_PHY_STATE)); - v4l2_info(sd, "DATA_IDS_1: 0x%x\n", - readl(csi2->base + CSI2_DATA_IDS_1)); - v4l2_info(sd, "DATA_IDS_2: 0x%x\n", - readl(csi2->base + CSI2_DATA_IDS_2)); - v4l2_info(sd, "ERR1: 0x%x\n", - readl(csi2->base + CSI2_ERR1)); - v4l2_info(sd, "ERR2: 0x%x\n", - readl(csi2->base + CSI2_ERR2)); - v4l2_info(sd, "MSK1: 0x%x\n", - readl(csi2->base + CSI2_MSK1)); - v4l2_info(sd, "MSK2: 0x%x\n", - readl(csi2->base + CSI2_MSK2)); - v4l2_info(sd, "PHY_TST_CTRL0: 0x%x\n", - readl(csi2->base + CSI2_PHY_TST_CTRL0)); - v4l2_info(sd, "PHY_TST_CTRL1: 0x%x\n", - readl(csi2->base + CSI2_PHY_TST_CTRL1)); + v4l2_info(sd, "VERSION: 0x%x\n", dw_readl(csi2, version)); + v4l2_info(sd, "N_LANES: 0x%x\n", dw_readl(csi2, n_lanes)); + v4l2_info(sd, "PHY_SHUTDOWNZ: 0x%x\n", dw_readl(csi2, phy_shutdownz)); + v4l2_info(sd, "DPHY_RSTZ: 0x%x\n", dw_readl(csi2, dphy_rstz)); + v4l2_info(sd, "RESETN: 0x%x\n", dw_readl(csi2, resetn)); + v4l2_info(sd, "PHY_STATE: 0x%x\n", dw_readl(csi2, phy_state)); + v4l2_info(sd, "DATA_IDS_1: 0x%x\n", dw_readl(csi2, data_ids_1)); + v4l2_info(sd, "DATA_IDS_2: 0x%x\n", dw_readl(csi2, data_ids_2)); + v4l2_info(sd, "ERR1: 0x%x\n", dw_readl(csi2, err1)); + v4l2_info(sd, "ERR2: 0x%x\n", dw_readl(csi2, err2)); + v4l2_info(sd, "MSK1: 0x%x\n", dw_readl(csi2, msk1)); + v4l2_info(sd, "MSK2: 0x%x\n", dw_readl(csi2, msk2)); + v4l2_info(sd, "PHY_TST_CTRL0: 0x%x\n", dw_readl(csi2, phy_tst_ctrl0)); + v4l2_info(sd, "PHY_TST_CTRL1: 0x%x\n", dw_readl(csi2, phy_tst_ctrl1)); =20 return 0; } @@ -719,7 +746,7 @@ static int csi2_probe(struct platform_device *pdev) return -ENOMEM; =20 csi2->dev =3D &pdev->dev; - + csi2->regs =3D &dw_csi2_v0; v4l2_subdev_init(&csi2->sd, &csi2_subdev_ops); v4l2_set_subdevdata(&csi2->sd, &pdev->dev); csi2->sd.internal_ops =3D &csi2_internal_ops; @@ -776,7 +803,7 @@ static void csi2_remove(struct platform_device *pdev) } =20 static const struct of_device_id csi2_dt_ids[] =3D { - { .compatible =3D "fsl,imx6-mipi-csi2", }, + { .compatible =3D "fsl,imx6-mipi-csi2"}, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, csi2_dt_ids); --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013040.outbound.protection.outlook.com [40.107.162.40]) (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 628D03570C5; Thu, 21 Aug 2025 20:17:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807436; cv=fail; b=OfCtAKeoK5+8QoKtvzeJnN4BAYOR7qtqvcGbaSgdD9c/oNfbdzLpCcH92o6dA+pl3JAV3oavZCc1C3CzyyJmdvZ3VMiMUNpyTucnwUPVGnaQSARdipocJT5RB9uT05jS0lYuCccEG5U9yRbXk/b3tluL8+zpZMjlZSpLWLQqVEI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807436; c=relaxed/simple; bh=zgkiq41sBjVmIq8lPRyZaw2+HzWqoUbenMg/fiWquic=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=VJCOi55DL9bp6tFaAh3gJOQrLJS74VjoyB76tBEeP+VuJgF0kksqjmz3hfYFXnNAHx+vcd3vU5NmcS0EU2AMDC8/wE+8u+3XlabV+ipk/7QVHK4Vwrv/rr8BzcNRrg9toqd+aOdAOjqu1LEOnMSbwW+XIkG/J8hxSt56fmH6h9w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=kjmrCAhQ; arc=fail smtp.client-ip=40.107.162.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="kjmrCAhQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WnNUY6WvSjzqzcLENNmb6cDin0aS/JKMKj7hR4RZmR7ojWSXPvHpT6CwcNnPyYufsiyPMNomiXuLnSUNVzU3ANBuKUKSQBitrpZHe8DhNvaQXNs1/u+HR2P6kt9LajURH7ZKb/lZuuW1/N8SHXkMpRB4j3N1N1lG0MQY5MAF/5sIXJof7+b8G65toX+yex72iqOe8YlzjTNAcc6QC5m0/DuF2cNUyTiQC8Dv3WGtf1UqKBuialnJ/r7M0pOtFUlT21LYEEKWW3VnOi1DougJeGyvho6+HqNH2VqrSJ7tr7YG+SK0dTsZxhUTF4VA8AGSOyn0HNFrc6kVOBBsMlEvMQ== 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=tdI3SfYM5azAkZSeabX/v+xP7mJmaaaMvJHHJdT1ieE=; b=EKPzof0gjhWxWPmrbJJBmayNRMQbVOVdwMTCaciAO43bD+hNe15XJ770clGS+AtXpqJqcKZts88vJ6XMNpww5T277CUEMi0UhJXaIV84xHtdikmnrqaFRtifTbQGtmlcQiWkycv29d4WCKMW0yrJeaH3RFLiw6yHALkubT9noc/Ll3/4J5qrFUmOct4RZREEEOLeiCw/kYpU1RLfsBl/3u8qwzlFZNHBuCiadPz1hieOZrAy2ynimcQNkGXTGJqufnX04Egy/aFb2zfwNKNxacSfoUx8bwUeXuxM6MW2kMwqYUc3MPIuZzpOZj85xgvyWIk+rzzLSs0qH0EiRLnGUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tdI3SfYM5azAkZSeabX/v+xP7mJmaaaMvJHHJdT1ieE=; b=kjmrCAhQBzRbBhbShf39VQ/T3lh1P1+rgT2Txd0EquCa91tyf6RNx9w6eVK+KC3WVUjl5YqPnn15Uzvi4mjuMAeCFePjpOnNySjbmRhgwYTNh4Lx6mdFUWBLh3M5fKvMWuwUw+4lNrcCVynyYxLCLMnYVwfqjcueSKhtlM5yCAihNEics+PjhiTU4x36MkbQUH4RJdfWE0RjDdzx8iFHMNrklEL+bJrCYqaVdHE+3oaFSrHwJIJpr4eps+eAeFA4q97H5yiH/nxq0kPph99RlsnUaL197V0+arfC5pwyKH/Hj11aPaYzUWVYjtSntd91sXYzizfyFNEx+IilNIOOTg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:11 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:11 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:45 -0400 Subject: [PATCH v3 10/31] media: staging: media: imx6-mipi-csi2: use devm_platform_ioremap_resource() simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-10-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=1427; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=zgkiq41sBjVmIq8lPRyZaw2+HzWqoUbenMg/fiWquic=; b=C84JVFCox1/syTYRIIWySF1Z09RYbhJfwYzB/s1UzkDR+cwmQkzKiJPPJ4SLUPXDWUvYPmVvv gddUAQodwdJBPszRT6Jy0Zdi1knEdZIsNc9437zsdHEcT5y+CcjyL+K X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ed5cd7b-7758-4b1d-8070-08dde0efb5e8 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UHQ3RGlnV1BUTzl1bjZDbjNSY0ZFRzY3SFRvTGlybGJybW5wTCtCNWUxVDVN?= =?utf-8?B?RFoySHNFWTR3akpZQ2Y1Rm9OcmVEOXpKYUZTYkZuYkpnZm51Z05ESURiUHB2?= =?utf-8?B?N0ExSGFLNWRkVGJxb2VYVkYrd08vWU41Y2tCYnlWOUVJbXdZVzl2ZDNoTXVV?= =?utf-8?B?QTBqNlBnYlZpb2pCM0IyV1gyOEF5VlZJWTlhanhkbVdFOVdEMDhtaXgvTHBU?= =?utf-8?B?bDliRWlta2MrTGRQUTBPR1N4aHlCMC9GbGs1MjVmSkorQW9WMVg5SjZDZEVl?= =?utf-8?B?eVJOMzZVNG11SEROUVhuZm94Tk16bFpmRENCMUtXMnMzd25nVWVaYXpvSE5m?= =?utf-8?B?ekJ1UUExU3BFT2VKaGdqR25sS1RNTW9OeFhZcnFBTjdZSnlRd0k1MVl4cWpW?= =?utf-8?B?bUxGUWRrS3pSWnBkbW5adEpVaW0xVlZwWnEyQk5sRFJ5VWZpZzZtTEIxQlll?= =?utf-8?B?Umd4QUpwaFFSRTZVSlhXK1pZWTc0VldRTTE4ZWQrdnBySTBOakZQM0FyMnZ3?= =?utf-8?B?ZC9oVFdudWhPN2tpVkdNcEJkek9lZTdyb1NRemVvT0tLb1MwSDRaUlZLdTgr?= =?utf-8?B?SlpuZHcwKzhMd2xsVEpMOHN1aEVEQ1ZiNHU3VzR1NFFsL3RvbmhuaTVROUZZ?= =?utf-8?B?YW11dTljeFhndXBYYlRNZDRla2xkOTNreDJ5SStFRGJPRThoQW9CSi9YbFg3?= =?utf-8?B?b3NXdGcvbTUyV2MxSUtON1R3SW9oRDBzSUJJUitqTjJuTm44NzFBWkVFY2lD?= =?utf-8?B?ckdJS1ZqNTJNaW1NZmNhQkFkd2dYbE1yMkVabGxKOTlFZTUvWG82ekxGUmFE?= =?utf-8?B?eGN6UmdYYVZLM2RFYkVKQUk1bjJjSUJMWGlmZnl4Sk5vOG10elI1SkdZYXNV?= =?utf-8?B?a1hzTFVteGZTdGpiMUtKTkFJSElDQ0tuUmFFZjZ6cnJxVHhwYUlYRWY4VnhW?= =?utf-8?B?TDNqVnBvVzV1eXcvbEJ5V1p2Vi9ocjcvQTZOZm9Ha2dib3haZkRFaUQ0SitM?= =?utf-8?B?bTkybmNGcmloL0huRG50MElKZTZTNUU5Zk9Da0FVWDVJOElibEY2QjZGejYz?= =?utf-8?B?czBFNGFnT1p1ZlkwUlNIQ3NwT1FwVjgxak9BZC9Pc1ZvMThKTHJoaG9mdFpp?= =?utf-8?B?RW9EVm5ZdkNRQitNdGlBTnFpOUEvbmxtRU1weEQvamVpZ0ZrRTN3ZVpmM2I4?= =?utf-8?B?RzlrUk8vVmpEeitlcVU4MEZTc2I0RmhvYk9NUFUveXpUNEE5QUhDbk1FRHJ2?= =?utf-8?B?OG90Ymtic2dHYk9oOVRNT3ZHNUhqbks0UnFNY1N5b2dkMkIzVVFRSnZIdlBW?= =?utf-8?B?bEFoN28yU1I2R050MzFWMjZ5cnRFRU9LZk0raWY0N0kyV3pQbkN6UlNDMDRG?= =?utf-8?B?aE92d1RSWHIwQWlUVzdERjVlY2dWUHdESUprOFpNMDZFWnNoWWNYTWVsSnN4?= =?utf-8?B?WTB4NjNwQklZdEF1SVdyVDRvczYxSlgvOUlnQ0Fna1VCVjcxcHE3UXlTT3E4?= =?utf-8?B?T0dreGM4Zkp5T1Y4bzJ4Rmt3cTNmekJNNkZQWEh2cTBYamM4RzF2YzdLZ0xt?= =?utf-8?B?N0d0amlEbTBUb0NaSk4wdE50bnhJdDhWU2Q0aVRuWVVJZGthTUJBcHdHbGgr?= =?utf-8?B?WVp4WHdVRW5TWWxKcndwUkQ3Ymc4dHV3SmRTQ1hOQ3NSL2Rha1htMEM2U0tQ?= =?utf-8?B?VndnZXhOenhGcExiMzZXdTdVRlJWdGpYcy9rQlJYSmR4YitBbUh4Y0pINGJw?= =?utf-8?B?RjVUbG5TYWhQWFkxcURPVlZqYXc5dm04dm1CZFoxbEhOZ05uWFl1UjgzQjVC?= =?utf-8?B?S3U3NDV5aCtWZFRJWmcvYjBJajdzSWlJQnEvcEJZajV4dzVqY0NlT1d2amJL?= =?utf-8?B?dHdwcEhSa0ZWWGVYU2J6TzYrQzhhNndybGwxZkZyUmlaUkhQNTdPa21YTlU2?= =?utf-8?B?azJ3SWJwQ3h4amtuaHVBUlk2ZThndktxTHJ1M0Q2WlJBdENYQTdmdkNnVWE2?= =?utf-8?Q?A7S4qEwTtVlMG1237U6jB71CdGzx8Q=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MGRId1l1Z2tUTUlHc1M2ZVFOd3duamxyZDV4dkdHVXo0azYxdFExaU5Wd1JE?= =?utf-8?B?RHJmT1VRVDZueVBIbTRHQzM1Q1VXZTVRblBJRGxuRDUxYmNwbmNpVjU2Yldw?= =?utf-8?B?dGpsa0swWm5kcUFUUWVic0FVanpEUERXc0ZxN2dMeEhNcVFMUkk1aHpWR2Ns?= =?utf-8?B?TmlwU05BR3hSVUsvWUdQQkJockVWdlhvcW91dEg4SXVlNERnZzhKT0I3Zkdk?= =?utf-8?B?SnlIY2djQkR0eThVTExJQVd0eUJsbVF2THNKVDFENTVOWWFyNjVISFA4elB6?= =?utf-8?B?RWhEL0I1VzZuUVlmamRFdjdybEsvWHh4TWl5cStoNkgrNTA0WEVpWWpVRExv?= =?utf-8?B?b3hNRjV2SEwwVWwyMC9jUmRTR05mRzhFQmNseERxL1JqbmlpM2Y0V3QyR2V0?= =?utf-8?B?Y1ZKQjZWTmZuQ1BJZlJnbkVvU29zY3ZDejcvaWgrS2hLTmdjOGVWcUx3enFp?= =?utf-8?B?WldWQlVKUmF5Zm8yR1dJYlkrOEFFeENjTDZvM2dMNEZSNHRTWlBDRFlTcFl3?= =?utf-8?B?eE9kV0lSVGRyRzQxSVhnV0ppSXd0eVNjUk1EdHJCUGpjeU5MMEZuQy91QkJq?= =?utf-8?B?Tlp2L1ZteFA1U1RjYU1HRStqSFo1TmY1b21Md2w4K0JUbTVGb0xiWTBEYW1n?= =?utf-8?B?aEdRbGYzdkQxTUNwS2JJejgwS1h6YUZiWC9jSW1oblVDTTFtYkkwQXlOeWhy?= =?utf-8?B?TjhxcVEyQmp2bzFFajkwQit1QzZidDhKeE9pTmdIS1lDSGNIOHUwOHhiTm56?= =?utf-8?B?VDhiWDFCSDJxY1FUTlNKTVBsOFBBU1ZMdnp1ck5sODgwcXhNNDdaQnpMTU1K?= =?utf-8?B?VGw5ZFBYWnUvNTZtL2RUa09zRDZOL1g1WnprTU9QNFpSeDA5amJlY3lURzRz?= =?utf-8?B?RWU0dDNKaTYyM2xsTkxOQnJDTXQ5bUNOUGlKRHY3NkszSzUzSjFsZnhNY1Nj?= =?utf-8?B?dVZOd1kxN3RNc0tCN2RPbzVsMXE3Q0JtOFFMRkJvL2pxbGhIYzlReXdTV1VN?= =?utf-8?B?aFdKMEZZdmFKRy9sZmVkeWtOaFljMkNyS3Z2WEZyeENJc095djlyUURFK0Jh?= =?utf-8?B?SUlGMXFTR3daRExzdCtRV2FSQnh6Q3BEZW90NDlHZVVvQmdRL2lkUTZrdWNz?= =?utf-8?B?MHF0UXFBQkRNTGNoSkt3d1A3K3VqK0Q4cnlMTHVEcDc4c3NpWlZQdzlNeUlZ?= =?utf-8?B?dVVBekVRaUpSVFFlOEdMVDJvaW9Fak9LZ2NveEdZTTE4aUNIYldRS2ZVdFZm?= =?utf-8?B?cmRzcG9FakY3NG5aNHJWR3BzRlNKZGhqMjgwZGFXNzhPeFFMLzNLVTU3cUNk?= =?utf-8?B?djBWTzBtb2hyZnNiOVhOYTZ2a2FGcDlOemVtaHk3T09aQ2ZlZ1VqVmtZUEcv?= =?utf-8?B?Sk13dUtoRHV2Tmk1ODhxcldjWUJZU2FNYnNxa3hkNXcyVEQwNWlzN3dVVkZE?= =?utf-8?B?Ti9VOGo5aHk1QXFwc1dlalJybjdnV3RvSHpWSU5qV1RlRndHdUZPRDhzQlQw?= =?utf-8?B?T2Y0S3ZMNFdNYTNOR2h0TzFIdGIyb3pGTERUMW9EcnkvbkF1OEFIdjdXOURB?= =?utf-8?B?R3hiM1lpa1FlNDZnUXd0OFpBbk9VNE1YWnJMejZ5TE5STm82Z01TRkllSjVa?= =?utf-8?B?b3liall1R2w5bU5hNlVBaExtaWtGOFhVZG1YZzdaN1JSZ243WXZpRXY5cUhK?= =?utf-8?B?ejFWTDBDL1J6YmhCdEhWMUJ0b2JUWDE3TGNiWXFCTXdVYkpWQ1ZmVmxndFZZ?= =?utf-8?B?MEhKY2QxVmR6UDVWbUlST01WVmRrMVZKZnBaWmJBeXlPZXp0Z000Njd1YjE3?= =?utf-8?B?dFFFeWJ2ZkRiYmhGYjhhTGYvL2ExWmlmYXNXYitHc0wrdm85Vkg4VHlIdFBM?= =?utf-8?B?cjY0dGs4Z0xDcHV4RGlYY0s4djBURmpuZVRmWkw3eDR3SmJyZkVIaTdiMWpF?= =?utf-8?B?VFZDb3VubUR3dHQzdjdPUks3bUVTYVpYVVBQMWZtb3VaTVRGanlwR1FLUWNY?= =?utf-8?B?N0JnM003WUpNY2RQNkM4WTQyV2hjTnhMTjNpaFdFczJWZ3h1MFhDOGl4Wm1u?= =?utf-8?B?eDBCcXJ2WGYrcm8venVvbkZrM0JnSHVFMlV3YUNHUFU1YTMrcmNTYXgyR2s5?= =?utf-8?Q?kizI=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ed5cd7b-7758-4b1d-8070-08dde0efb5e8 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:11.1522 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: e0Px/9TrsvGz8exRcIzOV3oOLjGNnYI81Xvthgxmln4TC6GxQT43Io6HYsIC0AetDSNuCTO/Y7hN/uIMPJRSiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Use devm_platform_ioremap_resource() simplify code. No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-mipi-csi2.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index b04c1b98c088b8bfa66eb3f61cca8bb735b7eae4..7b8911bea3fad8187fafb1d0916= d730fd6fa671c 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -738,7 +738,6 @@ static void csi2_nf_cleanup(void *data) static int csi2_probe(struct platform_device *pdev) { struct csi2_dev *csi2; - struct resource *res; int i, ret; =20 csi2 =3D devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); @@ -772,15 +771,10 @@ static int csi2_probe(struct platform_device *pdev) if (ret) return ret; =20 - res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - v4l2_err(&csi2->sd, "failed to get platform resources\n"); - return -ENODEV; - } - - csi2->base =3D devm_ioremap(&pdev->dev, res->start, PAGE_SIZE); - if (!csi2->base) - return -ENOMEM; + csi2->base =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(csi2->base)) + return dev_err_probe(&pdev->dev, -ENOMEM, + "failed to get platform resources"); =20 ret =3D devm_mutex_init(&pdev->dev, &csi2->lock); if (ret) --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 D243135AAA9; Thu, 21 Aug 2025 20:17:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807444; cv=fail; b=OYxl8a448dpmpnL4mYSAo8XJuMQ5GxyW60ZY7snVIBQN8HnZC2GEIbkMoICOe30E6VL10DlWm8tV4g+2X52N1GkB1m8jYN5YY1k8O/Q/kMqIXfZulp/vbh0M/Hw+IFjJ0jLCMJr/JUHHUZK5Dlh4MSuC0QvPz0M2rJWi6jWxqCI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807444; c=relaxed/simple; bh=hH7/rhTJ88NOxiRxYMd7JYvI16I4CIVL3+9vr1CK+Nc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Q++3M9oKzPGrp4Afv6DmotrOuHQj2Zc09lhMKvPtqFmhKwVl9sSF0mmPeBBsMI9b4fmtNVzP/saUCat5JYNyfDvwuCwvSpQYBCj2e4PjDJzAl4uwcUzqupQf1lb44AxdMD6jevchzeqYY+3QL3vYPCE38BRkh1hCxzGIHc6+XD4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=UbdMnmCw; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="UbdMnmCw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PEGLyZXHVEHUKtjL6Mog+IwvDxPG074gRyVzygzlp/7/mgJfNLrJKHubICDXedR3xIMSlhmtN5qhOSLyUkVgcqNuV+J+650YzgryfUhL0HxaVjSChqrB3S72iYwvC3eQzyc5ZZoadIkHpFCQhh5LCYPvtPPGuBWn7zbxwdlTbbtWe7HUEYC0wpj129y83Kv1Ts3KtlrM1BMfEJs/hc49iTwipjPOWtizGMCmCTNCEyY9AGw/DD4ENaiWOf5+uhSoiWSvAMqHcbxB+brTyxVe3mtxDuqhzSCRBdawYoeCTdfa8DC7qpBYmuyjNWvyQREEaYwQmxhRE6C3t9bSwOVt3A== 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=QHynjD9WnZ1E9QTFCo3jsxZ+nUSYiBC7LKhzY6ZlN5I=; b=orlKVk6bPf/42mcoD+5hnOimPsac4tIvsGAz4OCZAkkw1pbWRT9VnYn7phIzsAt6SE/8wLlKMP0SvWfbTM7328NaFrXsY8Lc3zJWy+hyxZpfC5iC41zABTtNd0TArzDMTAYWxSxIry3GUsdVfYZaT8A7n0gZCgJFDADPy7gDzUYsdg2jIXfGrjROrk7BlpGg/JvZ6R+3LpXvKIQeEygSYheO/FCEgxnVLccmuPzpI2zOfvHf16de6WY4wR2UssCksfB05WPl3ArkM4kCj3B/AzHLqRWkVEjhrcZjtoTxmVJih5aZ1bunSWWLw5kuNb7HmRYoJ7qZIkz6MDTYk46Q0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QHynjD9WnZ1E9QTFCo3jsxZ+nUSYiBC7LKhzY6ZlN5I=; b=UbdMnmCwFpHIn+bV21HCsdg/zLrA3O3rQwO9bDv+rLWajH0F61fyWwhJNChisIzC/8oWps1kFfTyrNSTwxR4VoM7xIIMO/OdbyaE8b/K3UGEmLa9OxlcamOMtzBXpa1dVlnnpoN3yqxj7UA/IShhyFv3W75Os2YPuEPFQLAo+OmHKSmp1zGiFyGFG8I86kPloXe9nqmZhS5bm/hwBV6YYuBBnM4sEtn23HD4ApnwQhMMdDQu9Ab4/jx1/aLewuywPLCM4XrtDxt9+Xa2hE/tkLnY8pNluut5wqbd6tTAIAtE8IIJH0ZCN4A5u/s7MHld7UYq5Uasd5DfwMNb/cBxLw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:17 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:17 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:46 -0400 Subject: [PATCH v3 11/31] media: staging: media: imx6-mipi-csi2: move probe part to imx6-csi2.c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-11-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=16267; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=hH7/rhTJ88NOxiRxYMd7JYvI16I4CIVL3+9vr1CK+Nc=; b=6mICnbE2lNVMYW5uK9YQc1h4dqDKIORu748t/hIeghSVPHbfIFSBmQ/bWO6bjr7Fmu094Ni0a g3r/XrFUBkBAfi40ugJx9goZGAqTOfVYwDspXygM3jmWJZbeN/FuJv5 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f537e42-6b26-417f-5729-08dde0efb997 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QVRhOEFneCtTWGdnUkY5SVlvY3Avd1dxQkpMdU43TDdtbFJsRk54NkFYQ1Va?= =?utf-8?B?UmRCdnRjb0l1UzVPLzVSSm03dmNsTkpOR3NFSXh0OXFmSHlQeVpVQk9qWURG?= =?utf-8?B?Rm9ZZFlMTUU4S2hhWFhHc3NRTjZFeXZ2WVczajVtWm5Da2R5eHNGeEFqQVZO?= =?utf-8?B?QkVCc0llRFhJOXYvZ0ZKR2NDc21xdmtwVUh3ay9Ic2FlNTdqR0dOMzNVaWw5?= =?utf-8?B?Y1huMmVJSzRSSXVkbVQwdmJDbHVGQ0g0c1hMK0xFMVBTekNjRkd5S1NNb1dQ?= =?utf-8?B?MWZ6ZzQ3WXpRRGxmQThxbnhRMS9WUENjVGw4UngzUkQreWVpS1hIM2d3ZDdJ?= =?utf-8?B?Ny8vSnBnVS9RenVCNjNSRVhydFBQMkpSbmFMR3Z2RlVtTU5PTFBkSVpHaFVh?= =?utf-8?B?dHJMVWJnZFpUcUZRMlI5bUZCWFRwZzBacjd6SlZ2TVdiYm1vMkdaNTdXaE5V?= =?utf-8?B?ejc2Z1J1UUZ2NmNxb3FGTkJDQzY2KzFiMFlWQ3VCcXZCeGkrOFp3WGFkRzho?= =?utf-8?B?WkNaRllEblBucTl3MEJCRmREQTl6THZ1Ylp1enlyTkZ6T3BQWkpmY1BUejE4?= =?utf-8?B?eTdFbUZodU5MZGc4T3dROE5veExOUzZzc01ZdjRnK2VTU1E0a0ZXYTlzOXRV?= =?utf-8?B?bFE0akRkamRyUWpBYkhaTURReXhuUVk4NStWQStYTSs2dGsxWnRZZkZXOStR?= =?utf-8?B?SXlTdFIwdDZQT2JRbGFqQWtsY2VPVUcrTWNxeTVyK3N4ZGJCU0F4MTE5Y3RR?= =?utf-8?B?NThJR2lGRUsxUWJESUg4YzRFc2ZQcXVnZmNzdEdMRlpDdCs4N3FMUFpaR2kx?= =?utf-8?B?NndCeUtFTThMcWdNa0o5YjMvdGFZbUhzcWp4anZ0TjdiWHEreit6bThTaTZP?= =?utf-8?B?NWZYaUVyYU10VUM0L05Ba1lYaHI1MHYyM0JhQnlVdkNqM3hkODFnbXUrUm9Q?= =?utf-8?B?S3lnQUIxeko1YitwQ3BzM09QZHk2Qms5ZWpFNldSSmE4RE0vNTNjUnk5LzE0?= =?utf-8?B?Z1ZsTFdUY3pvVlQ0VmREeFBuWmxlM3NYZGI2UFd4d3Jya2szNjJ3QU1mK1Vy?= =?utf-8?B?ekVRTnREaVk5dndDOFBYWk9vdDlvMmZRVjZ6ZUE1aUhkYi81cTBrQWZhSlY1?= =?utf-8?B?YUJOd1hnUjFHV2VpOXdEWlk0SXVoQmFQMXNLT2Z4UElsV1EySWs0d2J3MlNs?= =?utf-8?B?T3RaNnlGUldHamhhWGlaR2NWejhWT01NVlFqTTE5OGRYcVl2Ym03bWFTcW80?= =?utf-8?B?WHpzbDlSV0ZrOEJEQlI2eWtxNUlKb2E1MEIydkZGbTJQODkwdTIvdkdVYUdz?= =?utf-8?B?b0R0dlRiSW5Oc0hpckpYQUk2U1pjdnEySXd3WDZ3ZkJRT1BwUWxBS1Z5MGp4?= =?utf-8?B?ZTlxOVRzaHp2VlkvM0JmMENHRHg0UDdsN0FuNmNCUitqLzZ1NEpVcFdMWG1O?= =?utf-8?B?VkhmZ0svVTM1dGJURWJHRDMyTGNwMVZXL1ZvMzJGczA3NU4yTmVhSmYyNEZw?= =?utf-8?B?dkRSeVVPZEoyQStRSkMxUEYrWUNZbmtXQzFKOUQrVzcybXE1V3JIQnJQMmV5?= =?utf-8?B?eUJZc0ZVdnNBMU42aVM3bFMrbld2RkI1YWNlY1FNQ1RvQVVZeGJWL0Zva2Yy?= =?utf-8?B?aVhOYUIveGVpd1FhVVFJNWdRUlhONzlRUld2LzhDNjlSamQ3TElnNWdydVk1?= =?utf-8?B?Rld6Y1dEMjIwTUwvbmhjYUMxRW5NYmYrZ1RpaU8zUnMwVWhVOW9iRGRXTlFk?= =?utf-8?B?NkIyaVgydFpRd1hxNmRzWm9LbUxXUGdlSytrRzdXTkRxYlFmOERrZ1hWV3E2?= =?utf-8?B?QnZDU3UrelJTMWJxU1QzRjlnZXNzY2xoazFPK2krNExjWTh5RFNKbUF6K0Rm?= =?utf-8?B?SW8zdGlWcVpTeFAyd1oxRUR2Zm5MbWFLL2xBb1ZKZk1nWk5nQjZrOVVuN0Zj?= =?utf-8?B?RE9RWHZQSVhKZFZ0aUFoVUFWTUVTTnIxcnRaRXEvU2J3SWNwYjMvVCt0SEdI?= =?utf-8?Q?Zad5E25NyF/F/vhxyyAHqzbiJzyMq4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?STJiVlhNWldXZzdJYWRwNDJxUENzNGk1cFJZckROWmJHUXZlN2hFRU5OSlFk?= =?utf-8?B?QU1WZ25PWHNPcExvZm90cnM0bzFYNCtuUEhCSlZSSjhJYklTMVFEV0c2aUla?= =?utf-8?B?WkhMYlZ0R1hvWURqYk81Zk9vWm9KUi9TVG1yOHJPRzhuMU5MdG5wUzZLZ3o4?= =?utf-8?B?VVlnWkxpNUFMaXFLbC9EdHdZeUwxd0QxekZ4ekl1cThPblRXVlFTd3BqbFdq?= =?utf-8?B?OFVGQjBISFBpN1YvZEV4Q2xDK3V5d3FrN1h4b1E1VDNORWdaRk9lMnBBc25o?= =?utf-8?B?U3hVRlJuRE53NGt2ZnloUVA5MFlzbmRxUlNyVE16Q0JLSUVlS3hqTXNwdVk3?= =?utf-8?B?T1lCVnFrRmI5MVNQKzEwV3ZLODBvN0Y4VnhCOS9ZMGR1cG1vRmgzeVdDWDgx?= =?utf-8?B?RGkySEg4UTk5ZzkzQXZwK2tjNit3dDN1T0U0T3FRcC8xNnN1VkdzVllZeWhz?= =?utf-8?B?Q2thc2RYU3lPbDMzdVRPckRwdWlqeElKcE5GZEExWmwwdHVHZ3ZDaHc1d0cv?= =?utf-8?B?RitSUVFUVnhWa1RYelpUcmRoUFFmcmhyUlpEeHlNQ0lTRXFUQTczK2ljRDlv?= =?utf-8?B?ZTJNWldiY0w2ZE5vWXppcisrOHF2ajFEM045WTNSWW1vYkZweFpyTEE0VWM2?= =?utf-8?B?RGNMc2JnOE5Lak41T1JoNzRUMERJNm9Zazg4MkhZZ3J1SmZDdDBNOVVaOGhi?= =?utf-8?B?ZEVDY0FZQ0NWQnRIc05YaktOWFdWd2ZEdjlvU2tGcWVxU3BGOVlnWXVIQURC?= =?utf-8?B?SEVnRDk4NEM3N2RlaWlpWks4NTNpYTQvemdQd051SlhWU0xMblVZa29YQkRS?= =?utf-8?B?VXNyTGFJbHI1MVVPNy9qNDd4dEZYa2U1NXY1d0pZcDF1ajlCeWNEWXdUQWZZ?= =?utf-8?B?dnFvS0V4WEJ0ZnBRTDV4dVZITytBWXFEWFpURm5hcDNvb1JFdDBZZHNob3Nj?= =?utf-8?B?bXAyQUk4em55YjhpeS94UzU2VUszMm9LSjNkZ0VCMzl1NHh1OWFKREljd1BS?= =?utf-8?B?NXBka2pOMWJvdEZDeGtuYmZPQ3FxYytydjJWczF2QjdyektmRHZyL1JHOTBV?= =?utf-8?B?WEdEa3Q2VDdaL3huNWg1MitPb0hlYkNKVndSa253L1NHOCtsK1ZuOWlMMFp1?= =?utf-8?B?ZFZzL3RzQXM0elZiZUIvanJPQzZHc0xsME5QenhnYkV3SXo3V1dUQkNHNHJh?= =?utf-8?B?SG1zRDhOM0IrLzRRL3JLZjE3d1dIRXhHbTJKZnhHbjM1a0hyM1l6am9vWnky?= =?utf-8?B?Z3pZdzFQRWRNbDFaZVYrUCtyYURtbnpicnVKSWpMYkpSWWl1SEF6ai9rQWwx?= =?utf-8?B?KzZuSWtLYk9KMTg0eGN1dyt6RjZVTzRhc3VGMEZTeEhLeGVoUkk4Z2s0aFg5?= =?utf-8?B?UnFZb2VIcWEzby9BZU05U2UvRkpHS3BLQ2ZBY1VQbWthWnc5SkcwaXhEVmJ0?= =?utf-8?B?OVcwby8wMHd2L3A2dGx3UUlUMThnbXRzaDFMKzNYaU1CSjJlY1JseXpUYklk?= =?utf-8?B?dmR0ZFlOck94SzQ4MUpYc2ttNkhEQmxDR3JEYVY0THpXY2RXT25tOHpFT21J?= =?utf-8?B?QnI0b3k2WktkbG5QVDFxUUsrcVFMSkhETVE5eXgrblJTU2RmU2dtSXNnKzdG?= =?utf-8?B?bTNvREJhd2ptaEhUYVJRek5yZmpZNll1bSs5QU9OM0hqZk5xRVdXS0JnWTda?= =?utf-8?B?V3ZLUWwrTVNuZTYzc0Vab0NPWHFwZElpS2wvRi9va2Q0MWQxQWtVYmhrMkls?= =?utf-8?B?allpaUNGNmRoVGd4OEpld0hRQVMwcnpMcXBObWx2ZDJTOE1keVE1L1EyQWlD?= =?utf-8?B?eGhHeGpVSkdteVVsUTZjc2NQMzIzb2RWbFpRVFVuZGtTSDZZMmd2VkR4NGcy?= =?utf-8?B?OEkxeHhWVXpCTHdqNnplb1BWdTZGRzc2U1JYNDRUYitldEIzMjg0aE5aTEsv?= =?utf-8?B?endGY1VlVUEwcWVJK1BDdDdUYmw1cXBubTRObzFsbmxaa1BNSEc1Vm5xSDhR?= =?utf-8?B?OXFtYmJOK0w2K3gwSU9qM3JPVmlocDZ2V1VHVzRlLzBXd0tkTW9tKzNLTVE1?= =?utf-8?B?K0FmTVNnZCt0YVI3b20zT2wwU0lpazFNYnU0L1JsNmpZK3o5aEZZbURDYXlr?= =?utf-8?Q?8AKk=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f537e42-6b26-417f-5729-08dde0efb997 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:17.3526 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RiGDo0PhteEzlS+JA9wChx5TXaPFPdyWn8e6nzV1nGaT+DNN0jdpAoDob/b9UJCzl4RORIPYQQN3Q3nn46iPhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Prepare create common dw mipi csi2 library from imx6-mipi-csi2.c. Move probe part to imx6-csi.c. Rename struct csi2_dev to struct dw_mipi_csi2_dev and move it include/media/dw-mipi-csi2.h. Create two API dw_mipi_csi2_init() and dw_mipi_csi2_deinit(). No functional change. Signed-off-by: Frank Li --- drivers/staging/media/imx/Makefile | 2 +- drivers/staging/media/imx/imx6-csi2.c | 61 ++++++++++++++ drivers/staging/media/imx/imx6-mipi-csi2.c | 130 ++++++++-----------------= ---- include/media/dw-mipi-csi2.h | 62 ++++++++++++++ 4 files changed, 159 insertions(+), 96 deletions(-) diff --git a/drivers/staging/media/imx/Makefile b/drivers/staging/media/imx= /Makefile index 330e0825f506bd98d6a8093a58d3b7d06a94a626..064a6c6c069aa440c72a483080c= bedf89d370193 100644 --- a/drivers/staging/media/imx/Makefile +++ b/drivers/staging/media/imx/Makefile @@ -11,4 +11,4 @@ imx6-media-csi-objs :=3D imx-media-csi.o imx-media-fim.o obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx-media-common.o obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-media.o obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-media-csi.o -obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-mipi-csi2.o +obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-mipi-csi2.o imx6-csi2.o diff --git a/drivers/staging/media/imx/imx6-csi2.c b/drivers/staging/media/= imx/imx6-csi2.c new file mode 100644 index 0000000000000000000000000000000000000000..72eff685fad99b3def46cf28665= 65191b7de9a8b --- /dev/null +++ b/drivers/staging/media/imx/imx6-csi2.c @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * MIPI CSI-2 Receiver Subdev for Freescale i.MX6 SOC. + * + * Copyright (c) 2012-2017 Mentor Graphics Inc. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "imx-media.h" + +struct imx6_csi2 { + struct dw_mipi_csi2_dev dw; +}; + +static int csi2_probe(struct platform_device *pdev) +{ + struct imx6_csi2 *csi2; + + csi2 =3D devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); + if (!csi2) + return -ENOMEM; + + return dw_mipi_csi2_init(pdev, &csi2->dw, NULL); +} + +static void csi2_remove(struct platform_device *pdev) +{ + struct v4l2_subdev *sd =3D platform_get_drvdata(pdev); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dw_mipi_csi2_dev(sd); + + dw_mipi_csi2_deinit(csi2); +} + +static const struct of_device_id csi2_dt_ids[] =3D { + { .compatible =3D "fsl,imx6-mipi-csi2"}, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, csi2_dt_ids); + +static struct platform_driver csi2_driver =3D { + .driver =3D { + .name =3D "imx6-mipi-csi2", + .of_match_table =3D csi2_dt_ids, + }, + .probe =3D csi2_probe, + .remove =3D csi2_remove, +}; + +module_platform_driver(csi2_driver); + +MODULE_DESCRIPTION("i.MX5/6 MIPI CSI-2 Receiver driver"); +MODULE_AUTHOR("Steve Longerbeam "); +MODULE_LICENSE("GPL"); + diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index 7b8911bea3fad8187fafb1d0916d730fd6fa671c..b5911a37972be868e10c115ada1= 910fa04b2765c 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -4,6 +4,7 @@ * * Copyright (c) 2012-2017 Mentor Graphics Inc. */ +#include #include #include #include @@ -12,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -19,15 +21,6 @@ #include #include "imx-media.h" =20 -/* - * there must be 5 pads: 1 input pad from sensor, and - * the 4 virtual channel output pads - */ -#define CSI2_SINK_PAD 0 -#define CSI2_NUM_SINK_PADS 1 -#define CSI2_NUM_SRC_PADS 4 -#define CSI2_NUM_PADS 5 - /* * The default maximum bit-rate per lane in Mbps, if the * source subdev does not provide V4L2_CID_LINK_FREQ. @@ -51,31 +44,6 @@ struct dw_csi2_regs { u32 phy_tst_ctrl1; }; =20 -struct csi2_dev { - struct device *dev; - struct v4l2_subdev sd; - struct v4l2_async_notifier notifier; - struct media_pad pad[CSI2_NUM_PADS]; - void __iomem *base; - const struct dw_csi2_regs *regs; - - struct clk_bulk_data *clks; - int num_clks; - - struct v4l2_subdev *remote; - unsigned int remote_pad; - unsigned short data_lanes; - - /* lock to protect all members below */ - struct mutex lock; - - struct v4l2_mbus_framefmt format_mbus; - - int stream_count; - struct v4l2_subdev *src_sd; - bool sink_linked[CSI2_NUM_SRC_PADS]; -}; - #define DEVICE_NAME "imx6-mipi-csi2" =20 /* Help check wrong access unexisted register at difference IP version */ @@ -100,7 +68,7 @@ static const struct dw_csi2_regs dw_csi2_v0 =3D { .phy_tst_ctrl1 =3D DW_REG(0x34), }; =20 -static int dw_csi2_reg_err(struct csi2_dev *csi2, const char *name) +static int dw_csi2_reg_err(struct dw_mipi_csi2_dev *csi2, const char *name) { dev_err_once(csi2->dev, "access to unexisted register: %s", name); return 0; @@ -134,14 +102,11 @@ dw_csi2_reg_err(csi2, #__name)) #define CSI2IPU_GASKET 0xf00 #define CSI2IPU_YUV422_YUYV BIT(2) =20 -static inline struct csi2_dev *sd_to_dev(struct v4l2_subdev *sdev) -{ - return container_of(sdev, struct csi2_dev, sd); -} +#define sd_to_dev sd_to_dw_mipi_csi2_dev =20 -static inline struct csi2_dev *notifier_to_dev(struct v4l2_async_notifier = *n) +static inline struct dw_mipi_csi2_dev *notifier_to_dev(struct v4l2_async_n= otifier *n) { - return container_of(n, struct csi2_dev, notifier); + return container_of(n, struct dw_mipi_csi2_dev, notifier); } =20 /* @@ -172,7 +137,7 @@ static inline struct csi2_dev *notifier_to_dev(struct v= 4l2_async_notifier *n) * steps 5 and 7. */ =20 -static void csi2_enable(struct csi2_dev *csi2, bool enable) +static void csi2_enable(struct dw_mipi_csi2_dev *csi2, bool enable) { if (enable) { dw_writel(csi2, 0x1, phy_shutdownz); @@ -185,12 +150,12 @@ static void csi2_enable(struct csi2_dev *csi2, bool e= nable) } } =20 -static void csi2_set_lanes(struct csi2_dev *csi2, unsigned int lanes) +static void csi2_set_lanes(struct dw_mipi_csi2_dev *csi2, unsigned int lan= es) { dw_writel(csi2, lanes - 1, n_lanes); } =20 -static void dw_mipi_csi2_phy_write(struct csi2_dev *csi2, +static void dw_mipi_csi2_phy_write(struct dw_mipi_csi2_dev *csi2, u32 test_code, u32 test_data) { /* Clear PHY test interface */ @@ -243,7 +208,7 @@ static int max_mbps_to_hsfreqrange_sel(u32 max_mbps) return -EINVAL; } =20 -static int csi2_dphy_init(struct csi2_dev *csi2) +static int csi2_dphy_init(struct dw_mipi_csi2_dev *csi2) { struct v4l2_ctrl *ctrl; u32 mbps_per_lane; @@ -270,7 +235,7 @@ static int csi2_dphy_init(struct csi2_dev *csi2) * Waits for ultra-low-power state on D-PHY clock lane. This is currently * unused and may not be needed at all, but keep around just in case. */ -static int __maybe_unused csi2_dphy_wait_ulp(struct csi2_dev *csi2) +static int __maybe_unused csi2_dphy_wait_ulp(struct dw_mipi_csi2_dev *csi2) { u32 reg; int ret; @@ -294,7 +259,7 @@ static int __maybe_unused csi2_dphy_wait_ulp(struct csi= 2_dev *csi2) } =20 /* Waits for low-power LP-11 state on data and clock lanes. */ -static void csi2_dphy_wait_stopstate(struct csi2_dev *csi2, unsigned int l= anes) +static void csi2_dphy_wait_stopstate(struct dw_mipi_csi2_dev *csi2, unsign= ed int lanes) { u32 mask, reg; int ret; @@ -309,7 +274,7 @@ static void csi2_dphy_wait_stopstate(struct csi2_dev *c= si2, unsigned int lanes) } =20 /* Wait for active clock on the clock lane. */ -static int csi2_dphy_wait_clock_lane(struct csi2_dev *csi2) +static int csi2_dphy_wait_clock_lane(struct dw_mipi_csi2_dev *csi2) { u32 reg; int ret; @@ -326,7 +291,7 @@ static int csi2_dphy_wait_clock_lane(struct csi2_dev *c= si2) } =20 /* Setup the i.MX CSI2IPU Gasket */ -static void csi2ipu_gasket_init(struct csi2_dev *csi2) +static void csi2ipu_gasket_init(struct dw_mipi_csi2_dev *csi2) { u32 reg =3D 0; =20 @@ -342,7 +307,7 @@ static void csi2ipu_gasket_init(struct csi2_dev *csi2) writel(reg, csi2->base + CSI2IPU_GASKET); } =20 -static int csi2_get_active_lanes(struct csi2_dev *csi2, unsigned int *lane= s) +static int csi2_get_active_lanes(struct dw_mipi_csi2_dev *csi2, unsigned i= nt *lanes) { struct v4l2_mbus_config mbus_config =3D { 0 }; int ret; @@ -379,7 +344,7 @@ static int csi2_get_active_lanes(struct csi2_dev *csi2,= unsigned int *lanes) return 0; } =20 -static int csi2_start(struct csi2_dev *csi2) +static int csi2_start(struct dw_mipi_csi2_dev *csi2) { unsigned int lanes; int ret; @@ -435,7 +400,7 @@ static int csi2_start(struct csi2_dev *csi2) return ret; } =20 -static void csi2_stop(struct csi2_dev *csi2) +static void csi2_stop(struct dw_mipi_csi2_dev *csi2) { /* stop upstream */ v4l2_subdev_call(csi2->src_sd, video, s_stream, 0); @@ -451,7 +416,7 @@ static void csi2_stop(struct csi2_dev *csi2) =20 static int csi2_s_stream(struct v4l2_subdev *sd, int enable) { - struct csi2_dev *csi2 =3D sd_to_dev(sd); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); int i, ret =3D 0; =20 guard(mutex)(&csi2->lock); @@ -493,7 +458,7 @@ static int csi2_link_setup(struct media_entity *entity, const struct media_pad *remote, u32 flags) { struct v4l2_subdev *sd =3D media_entity_to_v4l2_subdev(entity); - struct csi2_dev *csi2 =3D sd_to_dev(sd); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_subdev *remote_sd; int ret =3D 0; =20 @@ -528,7 +493,7 @@ static int csi2_link_setup(struct media_entity *entity, } =20 static struct v4l2_mbus_framefmt * -__csi2_get_fmt(struct csi2_dev *csi2, struct v4l2_subdev_state *sd_state, +__csi2_get_fmt(struct dw_mipi_csi2_dev *csi2, struct v4l2_subdev_state *sd= _state, unsigned int pad, enum v4l2_subdev_format_whence which) { if (which =3D=3D V4L2_SUBDEV_FORMAT_TRY) @@ -541,7 +506,7 @@ static int csi2_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *sd_state, struct v4l2_subdev_format *sdformat) { - struct csi2_dev *csi2 =3D sd_to_dev(sd); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; =20 guard(mutex)(&csi2->lock); @@ -557,7 +522,7 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *sd_state, struct v4l2_subdev_format *sdformat) { - struct csi2_dev *csi2 =3D sd_to_dev(sd); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; =20 if (sdformat->pad >=3D CSI2_NUM_PADS) @@ -581,7 +546,7 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, =20 static int csi2_registered(struct v4l2_subdev *sd) { - struct csi2_dev *csi2 =3D sd_to_dev(sd); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); =20 /* set a default mbus format */ return imx_media_init_mbus_fmt(&csi2->format_mbus, @@ -594,7 +559,7 @@ static int csi2_registered(struct v4l2_subdev *sd) =20 static int csi2_log_status(struct v4l2_subdev *sd) { - struct csi2_dev *csi2 =3D sd_to_dev(sd); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); =20 v4l2_info(sd, "-----MIPI CSI status-----\n"); v4l2_info(sd, "VERSION: 0x%x\n", dw_readl(csi2, version)); @@ -649,7 +614,7 @@ static int csi2_notify_bound(struct v4l2_async_notifier= *notifier, struct v4l2_subdev *sd, struct v4l2_async_connection *asd) { - struct csi2_dev *csi2 =3D notifier_to_dev(notifier); + struct dw_mipi_csi2_dev *csi2 =3D notifier_to_dev(notifier); struct media_pad *sink =3D &csi2->sd.entity.pads[CSI2_SINK_PAD]; int pad; =20 @@ -672,7 +637,7 @@ static void csi2_notify_unbind(struct v4l2_async_notifi= er *notifier, struct v4l2_subdev *sd, struct v4l2_async_connection *asd) { - struct csi2_dev *csi2 =3D notifier_to_dev(notifier); + struct dw_mipi_csi2_dev *csi2 =3D notifier_to_dev(notifier); =20 csi2->remote =3D NULL; } @@ -682,7 +647,7 @@ static const struct v4l2_async_notifier_operations csi2= _notify_ops =3D { .unbind =3D csi2_notify_unbind, }; =20 -static int csi2_async_register(struct csi2_dev *csi2) +static int csi2_async_register(struct dw_mipi_csi2_dev *csi2) { struct v4l2_fwnode_endpoint vep =3D { .bus_type =3D V4L2_MBUS_CSI2_DPHY, @@ -729,21 +694,17 @@ static int csi2_async_register(struct csi2_dev *csi2) =20 static void csi2_nf_cleanup(void *data) { - struct csi2_dev *csi2 =3D data; + struct dw_mipi_csi2_dev *csi2 =3D data; =20 v4l2_async_nf_unregister(&csi2->notifier); v4l2_async_nf_cleanup(&csi2->notifier); } =20 -static int csi2_probe(struct platform_device *pdev) +int dw_mipi_csi2_init(struct platform_device *pdev, struct dw_mipi_csi2_de= v *csi2, + const struct dw_mipi_csi2_config *config) { - struct csi2_dev *csi2; int i, ret; =20 - csi2 =3D devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); - if (!csi2) - return -ENOMEM; - csi2->dev =3D &pdev->dev; csi2->regs =3D &dw_csi2_v0; v4l2_subdev_init(&csi2->sd, &csi2_subdev_ops); @@ -787,32 +748,11 @@ static int csi2_probe(struct platform_device *pdev) return csi2_async_register(csi2); =20 } +EXPORT_SYMBOL_GPL(dw_mipi_csi2_init); =20 -static void csi2_remove(struct platform_device *pdev) +void dw_mipi_csi2_deinit(struct dw_mipi_csi2_dev *csi2) { - struct v4l2_subdev *sd =3D platform_get_drvdata(pdev); - - v4l2_async_unregister_subdev(sd); - media_entity_cleanup(&sd->entity); + v4l2_async_unregister_subdev(&csi2->sd); + media_entity_cleanup(&csi2->sd.entity); } - -static const struct of_device_id csi2_dt_ids[] =3D { - { .compatible =3D "fsl,imx6-mipi-csi2"}, - { /* sentinel */ } -}; -MODULE_DEVICE_TABLE(of, csi2_dt_ids); - -static struct platform_driver csi2_driver =3D { - .driver =3D { - .name =3D DEVICE_NAME, - .of_match_table =3D csi2_dt_ids, - }, - .probe =3D csi2_probe, - .remove =3D csi2_remove, -}; - -module_platform_driver(csi2_driver); - -MODULE_DESCRIPTION("i.MX5/6 MIPI CSI-2 Receiver driver"); -MODULE_AUTHOR("Steve Longerbeam "); -MODULE_LICENSE("GPL"); +EXPORT_SYMBOL_GPL(dw_mipi_csi2_deinit); diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h new file mode 100644 index 0000000000000000000000000000000000000000..4e656f09c81db9dc9f232ed061f= 70803a5478c85 --- /dev/null +++ b/include/media/dw-mipi-csi2.h @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ + +#ifndef __DW_MIPI_CSI2_COMMON_ +#define __DW_MIPI_CSI2_COMMON_ + +#include +#include +#include +#include +#include + +struct dw_mipi_csi2_config { +}; + +/* + * there must be 5 pads: 1 input pad from sensor, and + * the 4 virtual channel output pads + */ +#define CSI2_SINK_PAD 0 +#define CSI2_NUM_SINK_PADS 1 +#define CSI2_NUM_SRC_PADS 4 +#define CSI2_NUM_PADS 5 + +struct dw_mipi_csi2_dev { + struct device *dev; + struct v4l2_subdev sd; + struct v4l2_async_notifier notifier; + struct media_pad pad[CSI2_NUM_PADS]; + void __iomem *base; + const struct dw_csi2_regs *regs; + + struct clk_bulk_data *clks; + int num_clks; + + struct v4l2_subdev *remote; + unsigned int remote_pad; + unsigned short data_lanes; + + /* lock to protect all members below */ + struct mutex lock; + + struct v4l2_mbus_framefmt format_mbus; + + int stream_count; + struct v4l2_subdev *src_sd; + bool sink_linked[CSI2_NUM_SRC_PADS]; +}; + +static inline struct dw_mipi_csi2_dev * +sd_to_dw_mipi_csi2_dev(struct v4l2_subdev *sd) +{ + return container_of(sd, struct dw_mipi_csi2_dev, sd); +} + +int dw_mipi_csi2_init(struct platform_device *pdev, + struct dw_mipi_csi2_dev *csi2, + const struct dw_mipi_csi2_config *config); + +void dw_mipi_csi2_deinit(struct dw_mipi_csi2_dev *csi2); + +#endif + --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013049.outbound.protection.outlook.com [40.107.159.49]) (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 B79BB35AAB0; Thu, 21 Aug 2025 20:17:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807446; cv=fail; b=tLZ0zkve5p74Xb03oY75+HUIUuunD8Hhcr60wjbU8VnjXcQZZEMZRxY4iwij/w1w2CddiU9MHA7fC79KSnRx6VOFRLoeSH+ku3cf8VYxLbMP3uk+My+98KpaL7NSo4DzY6mxGnJdsAN73MOPCQ/Jh6zQhaSJawCvCWLXc4tHK5o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807446; c=relaxed/simple; bh=8w79Wl0EyJKq5EFsgsdHKUY2U5V+ptzXonM7Hz8e5HM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=r1io9pa8pHqE1TAPHr8oi1qsyg9vFd009xi4DzTgiiaPxMdELSR+2DPQpM8vLTy56HXA8y+fhH8MXiMK49oDfBuI4ey+AbrVfFS+EFcwsFqP5C6+3rFjw5Rg7ujKghx8xTvuoXU2nhTzLtFbpQ1c0FHcIHDOvm7ZP3voc2Zq+I4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=mhRaQTdu; arc=fail smtp.client-ip=40.107.159.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="mhRaQTdu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uk/rfwzUQWWA0bH3DCGDWXWwFG2NbUkZ6jtg3cTpA41V+Z0vwAbr+co3XNjxD2QlPYEawuD1gmnLMc291kw6Vj5Cfgn29Ze7Mlj/jvcyeKHOXy9poJIBPcw6oCnFQcXgvKuFS3eG0h1FLFe7PfJaAZcJI4GKDZ3XLpX5QK0maAutcfQcI3JhlUOAb68hfT0A/PWVEC1JifktDYN0MzsfEq7ZTImGpFJIjFJyQfvTV5NP+xlX2c0nspmjv+W7FLigpKtTX0M8V7GQz//xofACyX5AmECaTa4YjVFe0Y6xpSywTkuWvHaS2BK3RaPonSlt3vL2/fiOguicTMVUf7j3jQ== 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=GTmTV1SQnjr8zHAw+ghWpz+KNrNzMjsQdl1eszcJT80=; b=OoEHVuNF2sT0utSYL0f/+rfrqNz4kted9CvnO6BZLdE8YlA3neFlYPPoKeMhxIYFa3Apg71IHMMw1jWAM7tTakAT9ESVteUW4067d2zLOkR/9GdrGzqiB/PYjRlFgLjtxuGbMFbLePeW/frn/4ACUue6p9y+XFtuo+EKVQ92DsnUMbVZ9SVeVWk57sf/g7NDNR3s90spoKpDsMZaZJCkoN9YJMfFdQ+6kNDIkVBZm7JuMTzr9jGlnje1LkJ6zFEwX408TjltWZpBJUJgskIUpRhvOKJe7ZA/PaCMkLI+5rimXS6dSVJrGZCCij2HXAvhvpPkx9eACex4HWBlOAMn/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GTmTV1SQnjr8zHAw+ghWpz+KNrNzMjsQdl1eszcJT80=; b=mhRaQTduyMJP094uKDDQobnIbDGNqvol29H1vHDiSJ5p7CNFZSZu+LTsC88/as9Qcs4drUWSZAia9GdhNsmm54sIFqX4Tl+jrXcpCspG86RQpk79AM9944Z0Q9HPOlyVG9x4P91xK1qOzGbJkpiGF73fOcmyO/3RNmRcyE9Nf8+W5h/EO8ri2QC4zQNjRX7HJWTlbYs53ecOkzcljYp9D+DswHd9ImjLSw3lDJRA3fLiXZdPdu9qJcXLQo0Kl5iOSWy75G6i+BLr9JjNXd705cavtQy4q83lHAA6zN3XSfa8Vj2/0xnraxAEg5dmEixvtdlfReNnp3FohbPav1xW+Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:23 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:23 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:47 -0400 Subject: [PATCH v3 12/31] media: staging: media: imx6-mipi-csi2: move sd imx6's specific initialization into imx6-sci2.c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-12-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=4741; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=8w79Wl0EyJKq5EFsgsdHKUY2U5V+ptzXonM7Hz8e5HM=; b=LiMh2X5hYCVHsMeRYnixCNN8QC0gXA5jUlSwRes83vd5flEERZ8MWrnsENAf2GYR273Yhd+IM /Pn8cWj9PY6A4xGpAkOHyOWiothQAm9bY0NzR3saT/uQZ4xUhmCPh4x X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ebc50fd-f88e-4b4f-e9b0-08dde0efbd3b X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?R2YxZ3pBV3dIc2p4Q2xDRGZwNm5FTWhoUUNXdmpicEdZcm44aXJSSXRLU3d4?= =?utf-8?B?TmhnVnNTOU5SN1R3cmFtdVpWTnRENDBudUxMd3NUd3I0YkhRMzB0TFhnM1FZ?= =?utf-8?B?cUcxSGwyRUhGa3RiZTVCbUx0VkowZGgxU2R1WnJhamtsem5WRWoyU2VuanQ1?= =?utf-8?B?V3FUMXlxWVBRWDZJTXlwYXJzZTJoK2syaHdIVVpULzRDbUJqQjJ2bDZmRWZB?= =?utf-8?B?cXJ0K2RHWCt4RmNBeUV1Y0pHcFh1ajU5dis1eGZqenBiYnhwbWhTMFpMc3dj?= =?utf-8?B?anlEMnVvOFRyM3VLSkFhTXAzVmtTbFVQS3g3WDhHNUZoQ0xiY2hSQ0I4UnlR?= =?utf-8?B?TUZISXNJdGV0d25rTktzclRIb1BPeU9XaFczTnVKQVlSOHJxTzNxRTFIWkhn?= =?utf-8?B?SWhTSHRvMHBoY1kvZmErc29lTDg3VFRNMytsNHZ5WEdad2ttbVFZN0NNL29P?= =?utf-8?B?VGlnWmlKajdLYkU0TUgzbmc1dit3dVJXOXovNG1RaDM3eUZBdE92UC9lMDMx?= =?utf-8?B?bTVrYW9UTWZxdkJoNDRiVHR2aE9HdHhjYi9zdm5rS09rN2FpMVNLTjBLbUhE?= =?utf-8?B?OFI2WjNMVXJFYWl4ZHJud2JhYndVVmpNaFBKRVlOSmlpUER6VFB4ZGlQRjM0?= =?utf-8?B?TG92QloxMkJ3eVJpckdxSFh3TnA3bHZHRWFZWFRUaFk5ODhJd3lLN2FWNm5n?= =?utf-8?B?cUd3dTNaZDkySXV1eU03enlwK21DOTF0eCtTU1Q4R0MwdFptZnp2VE1YNVV5?= =?utf-8?B?NytXRGVzUjRkNkdqTHdkeGZJRDZZRkt6LytHL25tcENiZ0R5ZGM5Z2F6elJs?= =?utf-8?B?emd1U0lOMFdLNGFESmRKYlpqZnNkWFdrWXhnVjNTR3U1MDVJWlY0aGoyZWY2?= =?utf-8?B?ZTdVSzN6MnJBMk1UWUdweW45YUZLYnNuUkZXREh0REw1S3FxYm9uZ21aZGFa?= =?utf-8?B?cFhkdjl4Q3k5UjJQZXA3ckFmVmlsaUpJQkJNWWlkd2JzRmJZaTBXcnZ6aVEr?= =?utf-8?B?Ui9uQUtCaU93K0tLaTVMcXZYQjE0WFlaOG1SdWlGWlRDckNyQk84bU1vRkh6?= =?utf-8?B?VzFkM2RxWlo1MnlVandNbzdOdGRRTTYzZmU4OUxlNk1pOG5wM2VYZ0RQelB3?= =?utf-8?B?dG9nOVN5dHRsSGttYU8vc3BHRDhXNU1ZSW9RdWxyLzUzdzRYNGIrdjl4ejRH?= =?utf-8?B?U0dzY2p3Z0FVWDBjOEh0dXkxbXRPMTNPRzdBNEtid2NuMzU1cXJkSGhXL1Uw?= =?utf-8?B?OTVWWWlJZXA5bXgxbUYySkhLdFkrbTVyREFZU0psY1d2aGZMOXY1bWNEdmhz?= =?utf-8?B?ekpkbDdsWnAxNEplellPd3F5M1diMEpVY2R2UExpaG4yZTdqVE1BQWpOc2dY?= =?utf-8?B?Z2MxTVQ1ZFJ4QUxObGRYSjZDQlFIME9saVJmU0V2Uzh6YlpPYStsNWl1dkVi?= =?utf-8?B?ampSTkViVHJobW9uZ21IUUNjODloeFJndE1oYW9ENTBqRzJUK2VnUjErZUhx?= =?utf-8?B?ZUd0SGpxcVdZWmtrVWcvUUg2ZmRzdjc0ekxLVU0xcTh1cURTdWM1VHVLbU9j?= =?utf-8?B?Nnl5OXROdVVtV2pHcHprZEhYSVVRa3A1dkRoWHEvSTEvM2NhalU5VStQYThV?= =?utf-8?B?NkFJeTNwTlh1TTVWZmFkblZrMjBXTmYybW1XaEV1V1V5NFFqd3NJRUhldVBZ?= =?utf-8?B?cGFJODhTMXNlT2w4RVh5TWpqVXdQVFJnQ2dNQ2plQ25ZcUVUVVAySzN5Z3Vw?= =?utf-8?B?YVVqdlFQenpmSDNkK3d6c3NHNmpqdGZvNFRwcTVUbVFHNzgydTZkdGhUOHF2?= =?utf-8?B?TUtWMm9MUkNKQjZFcXhaRy9DRUtCSDVGempaYXBXb0E0dFNzSVdqc041VU5q?= =?utf-8?B?Mk5Cc3BZaGlaU0daNCtPVlIza2xFM21ROE9IOWMyVnk2dnczeWhJSjZHTjFD?= =?utf-8?B?aFl4RG9vZm1wUUhCUUkvcXRmU3hZdmxhNUkzd29HR3BYckpWM09pc3RWdlF2?= =?utf-8?Q?oTD4YtCcyHxuL8RFXqPotm/I8lrG1M=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SmFtRElUcU9uQXh3MC9RazRhMVFKZE13NVlkYmFpbloyVDVjMllXMnpadTR2?= =?utf-8?B?MGlhQjB2b2pWUk9LQURWL1VWY0pmNEw3em9ZV0NrVEp1Q0w2aTlweGIyREI5?= =?utf-8?B?TnVsMjhyby80MXFqOThwNDRDSWZQTjZVOURwUWMyM0pUTStkNjhCRnlkRHJm?= =?utf-8?B?T1JXdEJLQnJOeGxRdUE3ZjhiQXhzUFpKKzZRa2VWaVhsdFl0UXNLL0xJT1RL?= =?utf-8?B?RDlHZnM0eVc4L3daNDdoSlZzaG55Q1dJck9CMmlyZ3VjT3dRaDZqdXJzYWpt?= =?utf-8?B?Um9ITmNJbWliVkdCd0dYWEliYy9tWjB5RHZ3QnIyV0xXcnZrMDdLNnRUREhr?= =?utf-8?B?dWF2M1IwWTVKaFMwZVpob3hjUmtPcCtQL0I4UkFKbGpmaVc3b2VSbEVoSXFk?= =?utf-8?B?WlU5UktlTFVLR2dIMjcreGVvY1FwY05Fd1ZoM29QejU1UVB2RXJ4YWcwSjVz?= =?utf-8?B?RWx4K0dUbkh5NGxpdGtzZFRPV0N2QnFjdVZMdkkrSVNFNzNIMFdNSzNFS2dr?= =?utf-8?B?TkNIeDAvZHR3M1g5ZXdCOFBsM3NybE9UMVUrTEhOLzBxemVmM3ZBZG1ENksz?= =?utf-8?B?WlltczFNbmhpdU1EMjZ5QUZLQTI5aUVKODI2TUl1M0dZaFl3WnY4RlZyalNR?= =?utf-8?B?Nm9rcWVvS01FcnF4YS9seklKTWhmby9yUVYwVWkzZ1BPTHM2RHlNYWl2eUpN?= =?utf-8?B?cGNtOTFhcHpTT2JjMnFKaGhRWTJ5ektuRjhOcEhvWkJtZXlTbHZtbkpqbmJY?= =?utf-8?B?SEZFY0k2dFJLcDQrTncxOUNzRkE5SUU2c0hsRllWaHBuUEVLVzVWeDRJWDFX?= =?utf-8?B?ZWkvbGhjVHl3ay9CVVF3RVowc1VRZmhBc2RFZmZPM3ZIb2lzQkxZallPUzQ3?= =?utf-8?B?OVFQVk9EWlh6YUZPTTVPUjBPbXdIdlIreHJrSU9yTVNFNDFTODRIOU1CSEg5?= =?utf-8?B?MUZneU5NK0lzOVRzYVFRV3dsSjBIZFNMcCs1cEl0RlpGT0pMQXBPRlFoa2V0?= =?utf-8?B?alFvNE9TK0s2WUxKdlREUGVEbThUTTkvdGtRd2JibXlOaUt6MkQ3TzlBZFZ4?= =?utf-8?B?T25rcFNRQTd3dDl3VmZSNlJoNDZ5R0hhQXhpV1UzNDRwbGRqQzN3aTN1U3lZ?= =?utf-8?B?SHdVZFVBSzlSdVRWNVlQSzF6V1hlNzZwb05TamMzN3ZhTDZud0F2VE8xTE52?= =?utf-8?B?VkdhK21zQmtiUC9MZXhKaXdZV2lJUDUvWnprK2FCckxFZzBZazdRTDZ3Y1dX?= =?utf-8?B?OFlLdHpIRWJhR1V4U3pQUVJLcjNwN0hOdHlGUkdwZUp0akR5ZnlnRlFYMEJq?= =?utf-8?B?Mmt1UmVYYThBbkJDeEFFTkd6cEh4TkhTU1o2dzlFYVl4TmtzU25jSGhnZml1?= =?utf-8?B?VmY4ZzJTTkw1RlN6Nmt0Z1FkWlFQUjdONnh5cGlOZ2w1WUMvNkt6RzBBQWs4?= =?utf-8?B?bjk1RGwwdWVrNW5QWXY3QXY3c2RibHlEaGdBUjlhY0FIMk81YVpkNW0ycHNu?= =?utf-8?B?NlcyY1ltZ0szaGxUZ2c5OU82SmtBQm1Ea0NsMVU1VmVDZHhrbExKdkNvQ0Fw?= =?utf-8?B?NmVNN0pNNGN4L3I3NzlMc0Q2QzBIMVhYdUN3Uit6enJHaU5TOXQ4OHVZTTd0?= =?utf-8?B?MmJvcWgzTGtKaWR6VnpvRWRMblVyTUpYZGJnUUJ1VHgzWjBHTmxOVmFQeDk1?= =?utf-8?B?b3N3M1VndDdkQWFsR3pqYXk5MnQ4N1FhdkNtZkJpdFVLV1huLzZTMVBveE8z?= =?utf-8?B?dFZvWXZXbC9YaHQwWHpML1FLK2paRXR1NGRlQWdWZXFkTVhOWmoyNTJ1UllX?= =?utf-8?B?SDZkVHplSHMwajVwOEJ3M25JNlEyVVlRTGxFWkNWZnNzdW5CYi83ZlQzR1dU?= =?utf-8?B?V29MckJWZk1LUUZDWDhHY3Vyalc3eUNKZFBJa3NJaXdSZmZxTVRvcVVUb0N2?= =?utf-8?B?SnpzeEpZLzA3SVFIMVdwUkhxS3dZNTNYcHVVcVJjL0lMUkJKWWxsTjd1MXJu?= =?utf-8?B?Qis0cDR5MHcybG9ickVYWjBVM1VtNGNwRzJHdXlzNThScG8wbjIxQWN4TSsr?= =?utf-8?B?Qy8zZVZzYTh4bFFwVnNnWUNwOG5zTkY4Y1BHRkovQ1Bqa3ZPTWZFM3Y4cEYr?= =?utf-8?Q?ErYk=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ebc50fd-f88e-4b4f-e9b0-08dde0efbd3b X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:23.4852 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Lwv3y9AQbB9M7WY9XD7P7vXnZysvS5Z3qL55XbFAwgjBd3G9s/RbTdNT9PtvcpnNYb6V3+LNTCKSP9jkXEjZjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Move imx6's specific sd's owner, name, csi2_internal_ops, grp_id into imx6-sci2.c. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-csi2.c | 23 +++++++++++++++++++++++ drivers/staging/media/imx/imx6-mipi-csi2.c | 29 ++++++--------------------= --- include/media/dw-mipi-csi2.h | 4 ++++ 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/drivers/staging/media/imx/imx6-csi2.c b/drivers/staging/media/= imx/imx6-csi2.c index 72eff685fad99b3def46cf2866565191b7de9a8b..66274d8d73b67b35682bb82a9eb= 745bb24da7ae4 100644 --- a/drivers/staging/media/imx/imx6-csi2.c +++ b/drivers/staging/media/imx/imx6-csi2.c @@ -19,6 +19,29 @@ struct imx6_csi2 { struct dw_mipi_csi2_dev dw; }; =20 +static int csi2_registered(struct v4l2_subdev *sd) +{ + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dw_mipi_csi2_dev(sd); + + /* set a default mbus format */ + return imx_media_init_mbus_fmt(&csi2->format_mbus, + IMX_MEDIA_DEF_PIX_WIDTH, + IMX_MEDIA_DEF_PIX_HEIGHT, 0, + V4L2_FIELD_NONE, NULL); +} + +static const struct v4l2_subdev_internal_ops csi2_internal_ops =3D { + .init_state =3D imx_media_init_state, + .registered =3D csi2_registered, +}; + +static const struct dw_mipi_csi2_config imx6_config =3D { + .module =3D THIS_MODULE, + .name =3D "imx6-mipi-csi2", + .internal_ops =3D &csi2_internal_ops, + .grp_id =3D IMX_MEDIA_GRP_ID_CSI2, +}; + static int csi2_probe(struct platform_device *pdev) { struct imx6_csi2 *csi2; diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index b5911a37972be868e10c115ada1910fa04b2765c..ff06a739b957b305625d145c04c= 06999d0c13cae 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -15,11 +15,11 @@ #include #include #include +#include #include #include #include #include -#include "imx-media.h" =20 /* * The default maximum bit-rate per lane in Mbps, if the @@ -44,8 +44,6 @@ struct dw_csi2_regs { u32 phy_tst_ctrl1; }; =20 -#define DEVICE_NAME "imx6-mipi-csi2" - /* Help check wrong access unexisted register at difference IP version */ #define DW_REG_EXIST 0x80000000 #define DW_REG(x) (DW_REG_EXIST | (x)) @@ -544,17 +542,6 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, return 0; } =20 -static int csi2_registered(struct v4l2_subdev *sd) -{ - struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); - - /* set a default mbus format */ - return imx_media_init_mbus_fmt(&csi2->format_mbus, - IMX_MEDIA_DEF_PIX_WIDTH, - IMX_MEDIA_DEF_PIX_HEIGHT, 0, - V4L2_FIELD_NONE, NULL); -} - /* --------------- CORE OPS --------------- */ =20 static int csi2_log_status(struct v4l2_subdev *sd) @@ -605,11 +592,6 @@ static const struct v4l2_subdev_ops csi2_subdev_ops = =3D { .pad =3D &csi2_pad_ops, }; =20 -static const struct v4l2_subdev_internal_ops csi2_internal_ops =3D { - .init_state =3D imx_media_init_state, - .registered =3D csi2_registered, -}; - static int csi2_notify_bound(struct v4l2_async_notifier *notifier, struct v4l2_subdev *sd, struct v4l2_async_connection *asd) @@ -709,14 +691,15 @@ int dw_mipi_csi2_init(struct platform_device *pdev, s= truct dw_mipi_csi2_dev *csi csi2->regs =3D &dw_csi2_v0; v4l2_subdev_init(&csi2->sd, &csi2_subdev_ops); v4l2_set_subdevdata(&csi2->sd, &pdev->dev); - csi2->sd.internal_ops =3D &csi2_internal_ops; csi2->sd.entity.ops =3D &csi2_entity_ops; csi2->sd.dev =3D &pdev->dev; - csi2->sd.owner =3D THIS_MODULE; csi2->sd.flags =3D V4L2_SUBDEV_FL_HAS_DEVNODE; - strscpy(csi2->sd.name, DEVICE_NAME, sizeof(csi2->sd.name)); csi2->sd.entity.function =3D MEDIA_ENT_F_VID_IF_BRIDGE; - csi2->sd.grp_id =3D IMX_MEDIA_GRP_ID_CSI2; + + csi2->sd.owner =3D config->module; + strscpy(csi2->sd.name, config->name, sizeof(csi2->sd.name)); + csi2->sd.internal_ops =3D config->internal_ops; + csi2->sd.grp_id =3D config->grp_id; =20 for (i =3D 0; i < CSI2_NUM_PADS; i++) { csi2->pad[i].flags =3D (i =3D=3D CSI2_SINK_PAD) ? diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index 4e656f09c81db9dc9f232ed061f70803a5478c85..dfd25e23ea93fd53b064471b6a9= 557ef9c070fe7 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -10,6 +10,10 @@ #include =20 struct dw_mipi_csi2_config { + struct module *module; + const char *name; + int grp_id; + const struct v4l2_subdev_internal_ops *internal_ops; }; =20 /* --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013048.outbound.protection.outlook.com [40.107.162.48]) (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 301EE35CEC0; Thu, 21 Aug 2025 20:17:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807454; cv=fail; b=Fa16i83qSA6ZNrftO3Qia7siusGlWDGsFO6pzh6OoJDSUhVmICrxXOXKrP6SYEpWoeyRUKwOZrkpNezTwP1ypciGlfHA4JZnn98LZ0rNj3pyLS7j4c5Q+EYbJd0GYx8arHk7nCWm7h6EXpx8595aQ6sB/xdiZKnAEk8n3s1VOHQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807454; c=relaxed/simple; bh=pjtVt1UE6iWo82hZu3iG7AmAe3NUNFE8s8Oaj11gRx8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Hv8eXBaQimfGhgBitzKRcAXPhDI6HOonqWEwdtpmuorBJae8kmvwpGwZh2xlw8g7azBsGfLd1ab0ydc2n8oatf0fDaHHbyLze/HjMUKHmVYKQT5jHUN99nPJz/WG+cej1IfHqiSDHGx4vz5GWEFM8Wpy8o9YWuPWuYeJCBHtEmg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=FZc8FIzK; arc=fail smtp.client-ip=40.107.162.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="FZc8FIzK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ls1iY2nlZUCEnMRt0ox8/qrG3KaO2MpWPB+xGNc7ffU8S1GRY5KcnP0XNTNhxccoM8jHVRaPBm2HkqsPtFxeh7mY7Wjiacs8pWU/DLxIxhba29NdTNoTKsGj9yfftvBeif2Pw5YIm4gw2DLinlsIsz8O9cwkwE4/tHXDfI5x//HcKn//AvBfSGbJ0CwVXFGLYp17EkxjtofQqvU5XOTnk+q2RH56P1NpFAzyxdIGjG+m+CDKEbs38QNqDFm8//mwIbE2sPctzzdaMJYo8q7F3sRuLBQjHqFreNgMfvHJxkf9sIpqzgv94dTxJLSVrZjgknwAQ09AHKz3IPA6oYuRyA== 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=10dFbfEWmY6JjMAtUy3PSPRA5Vr28fbyBXNOwzFROzo=; b=OM5/CQlK3P1Z9Zsg4O73/IbwVg2UmuAa/FzsT1a5pPIoTBr1HUt6bthe5BxYqo3Mz1F/UrJ/xWqJ2aDviSW5/y0eHtm/VUWE+q57v+dKqj6rRZnzdheRUl9zDP8yQCmAwvrjfdn0ARXZbO6JXHw4BKeOEdRWmFkPZtAg8eubboMDCsMM1A+S+qP1+mw4m9JkrdJbUHbwFOER9MZjgIqdxoU9o8ljjTTQWpaOtWX1TVdVyEK8Sd02yh8QdUQ3qN6o4c/L1E7yYWYIgek0qogBWlO/lr6WFt+72Rj3t+h8/rQWqGgpOBZoqgV6eE4xQu0C2ORoXw0CBSWgh+gyjsX/lQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=10dFbfEWmY6JjMAtUy3PSPRA5Vr28fbyBXNOwzFROzo=; b=FZc8FIzKgYrFCl15hL1yXYWRysbv82DEiMVPuXFIGkWyiG1cx17acE2A3/QL378I3HPakNELaw9Ap4lBs8QA0pmTWYvg5H67ct45mx+ALLOpGNaGZdShf9vZQqm3XT1oW3HkTsd5od8zPx7uhDgTOdeddPN5xO5631QCDZnv+MJxb/UILxAcF5nHEDhd4Eo641HGfNmURQLzM7qheBb+c5Y1minCEMTWl6lOq6dkwCx6mnXm1sSTasjroWrzbZVfsK7qxrj54FK2RhfGRwNdyVRRLRO+ZPJU/SNuy6axyPSvkUXXoIshe6+lgkQ0UJzFSPqxhNsSz5KsuZ8vazxG1w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:29 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:29 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:48 -0400 Subject: [PATCH v3 13/31] media: staging: media: imx6-mipi-csi2: move csi2ipu_gasket_init() to imx6-csi2.c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-13-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=5048; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=pjtVt1UE6iWo82hZu3iG7AmAe3NUNFE8s8Oaj11gRx8=; b=15JjKviRh8wK/akL1ruS3x9GNSk9J+Bvx+ZeZ3GM9Y9kmBZB7NfO4aKTu98wD9gdVueUe/QAv oGIy1c+8mxnApxjeXrkZK2KjzMkwnuJwMxCOXaMR+gTunMXACj1SKNe X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 633e3de7-d0d6-47d8-6cb0-08dde0efc0ed X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?M0t2SDYySTV0Tkx1TkI0Skt6cHc3MUpYdzRxVUtqK1hIaXdFYUEwUG5vd281?= =?utf-8?B?TmU3T1dybnlTc2ltUXJYUVZPKy9XbGEveU1VREl4U0s3SjFTZGZ6c1BMS1BH?= =?utf-8?B?ODNGeW1UaU1aSVZUYjNNTWpQQlMrM1M3dm1BNGdoOG84TjVaTDM2RTc0WXNn?= =?utf-8?B?RTNZTmQ0UWRBOTREbkdXa3F6bWd3cWZZWnBQWk9UNGMyYXVpK1pvMldzQ1Jw?= =?utf-8?B?dkFZSnc2ZFJ2Vk05VWhLWWNvUDBEMXN5allYTUYwWFB1cnJhN2NHU0g2a29T?= =?utf-8?B?bURnUWNWZWNFYUZDeFNjNU5uS09sajVhMjZwZDd2a204elRoVXhlT2FjYkFS?= =?utf-8?B?MUo2eTh4Z0VBZTVTNzdWTFhXV3ZpYkFua3ZmK2FobElsUEQ4MDl5RmVlVHYy?= =?utf-8?B?RnRHd3JrWUNOT3hyblRKMU1SQllFeVZxV1pjVkwrUWRDaFdhaHNDaDVmSm5H?= =?utf-8?B?MklDdjBhVWJrSldQTytlbkpxNXg3WDZWUktsanlKczhIYjY4amx1dFJWLzEw?= =?utf-8?B?cjUvNTBrUEFFNzVUUml1ckhnQXdIOENjdGpSWm1TR3pKeU1Qa2huNEg0YWRK?= =?utf-8?B?M2hwcGhFNWJ3NU5teXRyNEVBb2VZVmx3Ykl6K2VpUkNzODNPYzBvdjNlakU1?= =?utf-8?B?RTU4MTdDRXZ1L0lWdnlYZVdLRW5aOTVDbXZGanBLaHRIOGRHdkVydFVKNjNw?= =?utf-8?B?MzhvQTNSdmcxTTFFOVNPVkNjZ255M0JPUncydm5hUnZNMnh3NlBMYlBqc3Vk?= =?utf-8?B?VlRCenhkUzFLYlVxRi9aQ2ZPV2VteE10SDBjUXc4Umo4TStkMWIwZ0VVZnRs?= =?utf-8?B?UlJyV1BjUEY2cXVVc3pnN1krZGZ1RjRvQlN4NnVaanpxdkRlaGpDOWFJYW8v?= =?utf-8?B?a2FCa056MHliaHJUcWpsMWc4RllVZHVXc2pCN1FkeUE0cW40bkFyUCtNRXFU?= =?utf-8?B?UDJPc1ZmWjFJa0x0SHQwZkhyaEthc2lqUHVITU9OTGRvSERRVG9VZkxRa21J?= =?utf-8?B?QzJwUTd5bUxqS1pxVVIyZ0Ztai93d3Zhbm5udzF5QTN6aTVmaGNrY0RLV0xZ?= =?utf-8?B?UFZ3MFNTbnNHRisxWGpsYkNuQXRsUSt4dTFhRGlOMzBzQ1p0S2YvbnBnS2Np?= =?utf-8?B?VHVBMWJCU3hETVIwcC9tcHlPTkY3WUpZSEF0dklwU3JIdjBIY0tTWVp1YzBo?= =?utf-8?B?UktzdzZPWkR4NVcxNjZielNUUUNxaXVRSW1CdGpQaTc0aExSaTk2Yktjc3My?= =?utf-8?B?ZWlCS0lERjEzVUFjdFBJdDNEMDRVQ0c3cDZGNS9TRVo4Y0ZWaGtIbXVocEVv?= =?utf-8?B?UTlFM3JaZVR3YzFGR2FjZ01BaFRNUG5QV3kwRHhDRUNid1BnU1ZPWmlLOFBJ?= =?utf-8?B?d3FsY1VkMm5IRzAwc1BBMUFyZVNoOXUra0Nxam9vdGVMazJrbStYYWw1UHBq?= =?utf-8?B?VXpnWFF0TlUzTjZ3S1Raa29nREdiU3Z6VDBnUnMzOGpIVG1WTDljZW8zMVdT?= =?utf-8?B?bmEzYTErR0hVZ0g0VVFWV1daWEZUR0laekdBZ1kycks5TXFhRVIxWDAvUDhm?= =?utf-8?B?RDZoc1BJbVJLb1B4WEk0VFNzaG9USWdscjRUMWcvb3RkT0dpeVpUVmcvbUN0?= =?utf-8?B?UisrZFRGUkZERzhRb1NsYmJZWURldG5VNCtBNVJ0UitPcmNrKy9YaXg5Qm11?= =?utf-8?B?Y0ptUkxhclowM096ZWJmbHVMRmptdGZsR1M5eEVJb0EvWjg1cnhjRzFzcVNI?= =?utf-8?B?dDd3bS9pY1Q2NDErRVFvSWplY01jV2Y0ZzJPU2hScFJFU1ZoL2RNdUZBNjVT?= =?utf-8?B?OHpKVXFkZC9GU2NlSU4vYThTVkhVcU0rcVJ3OGYrM2pmcnhnMUFidzVHTUFy?= =?utf-8?B?NmNPSS9WL2NwOFZYdDV6ajl0UTY2VW5XdXVGZDlSSkxuMG13UnQxS3c2ekZt?= =?utf-8?B?N1R5eForS1RIRFA3NUd2YzBBUEhZNXN4STJwRFI1NTEreFpDM3hPWjNramJw?= =?utf-8?Q?C/O6Y9I+bQwuNp/1srUgCndxZvvwOI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NTRDNUtmY2VnRmR5RjJ0KytDMGNGUGZhWTNyclJacVZmV3Nuc1BUWFNaa3lk?= =?utf-8?B?cHQrOHdRU2o1TmxwK2FlR042ZU5VWWwzSVVqMlV3RFhHMFIzbHNFOHFyOWc3?= =?utf-8?B?UjZBRTEvR1FmbE9jV1VrZnkrdS81MUdzZzNZcXVtdDN2ZEwxTmI0VVp2SHAz?= =?utf-8?B?dkdrc2xqaE1reXJxYzJneDNHMlJMZDdrL2VXNXdSU1lDK1FRVjZCM1h4amNE?= =?utf-8?B?djZYcFFyTVNSb0ZRMkdzWmlYeW54RG5xRXh6a1plKzIvTUk5VVBQNVg0Nlhp?= =?utf-8?B?bWxvVnU5S2ZJa0RZTWg3MnpVYjlscFl1N2REOVZDN0JET3gzaG1NSFJCOHpW?= =?utf-8?B?cUFTREZMd1hZYnNYOFpSQkt2VUgvRTB6b0UwamJ0Q0w4SmxsVytMUlNESkFR?= =?utf-8?B?bUJtUVJ0K1J1WnZVTFpjMWdGK2d6OWswQUpOY0dHRHlxNTdnYjlBUkNhNWlJ?= =?utf-8?B?UGJOcmFWUFpRNzA2eVZVVGRiZFJsTmlaKzRXbGYzQWMwTkRpd2MvSUFnVHN5?= =?utf-8?B?OVlLRFVaWlBpUVE2L1FoK1cxendDWGplT3c0dnM4S3Q3QzZMcExPK0hyQ0VG?= =?utf-8?B?T2lvcjNVeVNWaGRxUTBSSnptbmdQMnNXN2tyTTU1R3o3QkFlSlFLZ3ovdVJo?= =?utf-8?B?cHNxOVVoT0tNQUY3ZkpjeUFMak82STJqY1Bkcll5ODNnQ3RuaHZ3Si9NSnNW?= =?utf-8?B?QnZrZHAxcVk1Y3lVQVJPMGluZnZqZDJoQldkZk1QRTlMU3JwTlRJZXBDbys0?= =?utf-8?B?QVdsQXNPNlUwUTlmUnVUZ09zUU0yek8vckVZRzFlRjNmMEY5UHBMVkFMaEUr?= =?utf-8?B?ODhYRkVTNW1zcXhVMXg0bWszYkU0ekdZNWcrVWN1bW00OTFhMDVRQ2ZIZ3hP?= =?utf-8?B?T1hvVGpMSjc5NW1FR1JKbUt1QXEvU0pKZmdCRC96UHU4YWlyeFB5WVp2WmNL?= =?utf-8?B?RW1qYUhaaUM4cDM4YzNtaDZhYnZoZWE1S0kxblVJOUN2akNuOHNRbk9OWVJT?= =?utf-8?B?VWp0ZStRV24wbGVIVkpRWjEvQjg1d3JaVVY1K1FoUk0rN0JHaGorMlRpb1Y1?= =?utf-8?B?anRtVFZGK1IzQ2dLRHNTVzhic2dzZW80UjhiK3EyWUFCd2k5NFM3aFovN0dj?= =?utf-8?B?TGFSVzIwbEtCTlJNWmc3cnNyNTBKLytFN0tGYkhnanZ0VWw4MmhMNzFJV1Yr?= =?utf-8?B?Qi92Y3lzMVhsazNOc0RhZTBhQXdHaDViWEtEMzNDSDVyYVFyZ3ByT09qa1p3?= =?utf-8?B?eGNLQmtIUkZlalZ2QlZ0SlVsYVcvUW1HczNWcXpIaElRUkZ4a2R5S1A2QnNr?= =?utf-8?B?QW5JTHFtd0xZbnNNZE1hWWxOUUw4UE80U2d4QjJzRVAyei9XVUsrK1VLaUFX?= =?utf-8?B?aGc2eXVEcDF6LzdJeVRydFhqOWl6T24yd1JDdUQxc0hVZm03TWNkZlpjMUFh?= =?utf-8?B?L3Q4eXRSYXNlMEN6dDQ2L2tRVmc5djg2cFZBUldlbTl6TC9vdDFEL0lCbmRW?= =?utf-8?B?TmZYNkRBZm1YV2lTVmZGQnpDaDFWSGFnVHlTUFdqT2NDbWhxaGNaRXNRbjdx?= =?utf-8?B?VVJsVVFpTWxMWFJaZC9DUTRHamM0amM2UVlPQldXcnQrY09BNnMzSENtc3hm?= =?utf-8?B?SHFPdDlBZjEweCtOZ3pDREFwUnl2clJFeXJNc1dsdmZXcjAvYzFHYVYraENN?= =?utf-8?B?aVhGd3BGMnhaUzNUQkpNdzgxc0pXVU9QUk9mUjdkR2RvODlMaUtXN2VPMTZH?= =?utf-8?B?UUpQVUZsaFRwM2E3ZkRSR241b1pmekFCYmxBcEQ5c0xudFAzNE96bzlsKzVC?= =?utf-8?B?UjAzYVl2SkMwdWdIVVNtK25BdlVtUlFKck1WUDRLVnRka3dVdVpUL0F6eVJp?= =?utf-8?B?N1J4N2xEQjhEcUZPR1dpOWtUTmJ5enBWSU1ZVmdTdE9JTHppa2F0SlVJVU10?= =?utf-8?B?VnN6Tzg2RmlJSWczYjdyRkp4Zy96MlpFa2VROHpuUE5QSzhKTW16L3VRTVMv?= =?utf-8?B?ZUs0b093YVk3cFdZUmFrcU5sSDNTOGtlUkdpcGFocFdmWTF6MGt1dWs5bEt0?= =?utf-8?B?bHlVM1hwYkZXMmg1M0tGU1p5cUV5dm5xdWk5RXVuSXY0ejFPdGE0SlprZlRE?= =?utf-8?Q?9Wcw=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 633e3de7-d0d6-47d8-6cb0-08dde0efc0ed X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:29.6787 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XQgVlS4m0849nfQPmXKyPeJLFY83pvpI8bejT91gnqHwjBJnTh2iOS6XBu7RmC9Wm6+WLRHQNf681K/RfYGm8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Move platform specific csi2ipu_gasket_init() to imx6-csi2.c. Create callback function in struct dw_mipi_csi2_config. Prepare create common library for dw MIPI CSI2. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-csi2.c | 28 ++++++++++++++++++++++++++= +- drivers/staging/media/imx/imx6-mipi-csi2.c | 28 +++-----------------------= -- include/media/dw-mipi-csi2.h | 6 ++++++ 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/drivers/staging/media/imx/imx6-csi2.c b/drivers/staging/media/= imx/imx6-csi2.c index 66274d8d73b67b35682bb82a9eb745bb24da7ae4..b7ea710df07cba33465d79ef57b= e4792c503958a 100644 --- a/drivers/staging/media/imx/imx6-csi2.c +++ b/drivers/staging/media/imx/imx6-csi2.c @@ -15,10 +15,35 @@ #include #include "imx-media.h" =20 +/* + * i.MX CSI2IPU Gasket registers follow. The CSI2IPU gasket is + * not part of the MIPI CSI-2 core, but its registers fall in the + * same register map range. + */ +#define CSI2IPU_GASKET 0xf00 +#define CSI2IPU_YUV422_YUYV BIT(2) + struct imx6_csi2 { struct dw_mipi_csi2_dev dw; }; =20 +/* Setup the i.MX CSI2IPU Gasket */ +static void csi2ipu_gasket_init(struct dw_mipi_csi2_dev *csi2) +{ + u32 reg =3D 0; + + switch (csi2->format_mbus.code) { + case MEDIA_BUS_FMT_YUYV8_2X8: + case MEDIA_BUS_FMT_YUYV8_1X16: + reg =3D CSI2IPU_YUV422_YUYV; + break; + default: + break; + } + + writel(reg, csi2->base + CSI2IPU_GASKET); +} + static int csi2_registered(struct v4l2_subdev *sd) { struct dw_mipi_csi2_dev *csi2 =3D sd_to_dw_mipi_csi2_dev(sd); @@ -40,6 +65,7 @@ static const struct dw_mipi_csi2_config imx6_config =3D { .name =3D "imx6-mipi-csi2", .internal_ops =3D &csi2_internal_ops, .grp_id =3D IMX_MEDIA_GRP_ID_CSI2, + .gasket_init =3D csi2ipu_gasket_init, }; =20 static int csi2_probe(struct platform_device *pdev) @@ -50,7 +76,7 @@ static int csi2_probe(struct platform_device *pdev) if (!csi2) return -ENOMEM; =20 - return dw_mipi_csi2_init(pdev, &csi2->dw, NULL); + return dw_mipi_csi2_init(pdev, &csi2->dw, &imx6_config); } =20 static void csi2_remove(struct platform_device *pdev) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index ff06a739b957b305625d145c04c06999d0c13cae..e5593f23253b92def63040fa70f= cf5fb50ec2fd2 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -92,13 +92,6 @@ dw_csi2_reg_err(csi2, #__name)) #define PHY_TESTCLK BIT(1) =20 #define PHY_TESTEN BIT(16) -/* - * i.MX CSI2IPU Gasket registers follow. The CSI2IPU gasket is - * not part of the MIPI CSI-2 core, but its registers fall in the - * same register map range. - */ -#define CSI2IPU_GASKET 0xf00 -#define CSI2IPU_YUV422_YUYV BIT(2) =20 #define sd_to_dev sd_to_dw_mipi_csi2_dev =20 @@ -288,23 +281,6 @@ static int csi2_dphy_wait_clock_lane(struct dw_mipi_cs= i2_dev *csi2) return 0; } =20 -/* Setup the i.MX CSI2IPU Gasket */ -static void csi2ipu_gasket_init(struct dw_mipi_csi2_dev *csi2) -{ - u32 reg =3D 0; - - switch (csi2->format_mbus.code) { - case MEDIA_BUS_FMT_YUYV8_2X8: - case MEDIA_BUS_FMT_YUYV8_1X16: - reg =3D CSI2IPU_YUV422_YUYV; - break; - default: - break; - } - - writel(reg, csi2->base + CSI2IPU_GASKET); -} - static int csi2_get_active_lanes(struct dw_mipi_csi2_dev *csi2, unsigned i= nt *lanes) { struct v4l2_mbus_config mbus_config =3D { 0 }; @@ -352,7 +328,8 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) return ret; =20 /* setup the gasket */ - csi2ipu_gasket_init(csi2); + if (csi2->config && csi2->config->gasket_init) + csi2->config->gasket_init(csi2); =20 /* Step 3 */ ret =3D csi2_dphy_init(csi2); @@ -700,6 +677,7 @@ int dw_mipi_csi2_init(struct platform_device *pdev, str= uct dw_mipi_csi2_dev *csi strscpy(csi2->sd.name, config->name, sizeof(csi2->sd.name)); csi2->sd.internal_ops =3D config->internal_ops; csi2->sd.grp_id =3D config->grp_id; + csi2->config =3D config; =20 for (i =3D 0; i < CSI2_NUM_PADS; i++) { csi2->pad[i].flags =3D (i =3D=3D CSI2_SINK_PAD) ? diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index dfd25e23ea93fd53b064471b6a9557ef9c070fe7..d3e1c334df692c5dff10b467d75= 9fe4da45b7b5f 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -9,11 +9,15 @@ #include #include =20 +struct dw_mipi_csi2_dev; + struct dw_mipi_csi2_config { struct module *module; const char *name; int grp_id; const struct v4l2_subdev_internal_ops *internal_ops; + /* Deprecated, should go through phy interface */ + void (*gasket_init)(struct dw_mipi_csi2_dev *dev); }; =20 /* @@ -48,6 +52,8 @@ struct dw_mipi_csi2_dev { int stream_count; struct v4l2_subdev *src_sd; bool sink_linked[CSI2_NUM_SRC_PADS]; + + const struct dw_mipi_csi2_config *config; }; =20 static inline struct dw_mipi_csi2_dev * --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013061.outbound.protection.outlook.com [40.107.159.61]) (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 83A1235E4DC; Thu, 21 Aug 2025 20:17:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807462; cv=fail; b=nW5vD9uzmM+OcRPUCd0zAjzxLSdLVM+iPjPWmx+Kc22UZYMS9TsCUq5rQq+SlsP2iPQ58JBWOQrXrr2LrM4UDHpqKl+sCTcX7aWAa0NmuBPSw10FPp3otwQCH5cyjglrhElY9IW4rRsr6bb91NCwq6T1RvCeiFxxszc8Vyn4mzk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807462; c=relaxed/simple; bh=RvzFCrTNqFCiSku/iUpT66qluclYVbPXZhqfa/xW/Gw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=VtJ20XotKY7RFjkf5UqvfReElGcqmiLabjwbhCZQugGOn0Mn6/kn6lphmU75y5ltyZj6mVqn3EgxTWPHmHepp3GbHMF9K/3gbA83dwNJB+DY2tSymp2fqg64HtqbXf6RVOaGAguiuIk8mZNSptUN4j7C4w8Lj/xTj+yM/aUMHug= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=KllV666e; arc=fail smtp.client-ip=40.107.159.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="KllV666e" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L73ASmyKVSbyUCL5fN23CMKZSQOYazLRBWg62Yfk104M36UQoQ3qxEahGbgJ1+8d/ZErWXr6jAakJctl647qj2+w+PRK1mmuiNl29qF1unU7IR4XoP2I+4P5mS5zEB0vepB8uZVy87NWtxeZaJZLoa02X362dPiLwyihK9R7yAcTrMwNsfJye9RBNxRnAURTTAprYFSdybKt58sQWwYe1SW8n3ajDng4hdz6QXTNOy+snGcWllgmFTfheEz6JVy2vp2VW2935hPvWTpnTcdEEgFqq9WoGu+31LKz9YzD26RKc4tHlW/F/lDGtz9jt+kJKd+tLvREVD8aa4i8KOvAvw== 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=YDFjkWi2VycgN5IYKSzwSycYpCFYlCbbQfA8/AXN9e0=; b=UcxhE82x+Tx6noRBEu9ZI1c6dWl4HtNTy7zxtKzEEFOSWzmzI/r433szTcmIo8OjFEFQ3cyASxXyY/6f6oY5EzRQ1GQvEY6Zs7xRkCveVCX+q/SOtLqMW79Rs+z/er7V5fevbDJp2u3g90HQpv9Nk0Kw/oFdEkONALXHm8VsPhaRHqQztENovnzi3ef5bU6T0edsiUlxFPzTFzARsHj1w1VWOH4syxsGKcerZ0fE1rvp+HIwjt8QWR6kyIKF+kxfE0O7h3xXTlgtaChAJGHhu1uLiaEWPRLsj3yxL/0Z1kZo/5fECwa83P6o9uSgtcT9cW+ZHRKCI0oim2S75boPJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YDFjkWi2VycgN5IYKSzwSycYpCFYlCbbQfA8/AXN9e0=; b=KllV666eQsnqYdHAKIC9JNsb/CN1ICy5k+MvkDzf/6asPea7u4CkREl8kjZGp1Ax1MvqojbdkgGYTvTwkY4e8ySgG7re4E4CSoR8lgpmvfsg6F/8VotFDMloCnrem9aFnu6ayZQ4n1VPiGwjTFmkXWo1ZuxPaN/84qjsl2OirAPz87DPlzmS0nfjN1afvlxQALY0gPQLhDNg6gZLEDp1g1KsW6nmq4TzsKvhDOAzP4OaH4cQRYVqY+wlbsddtXtYV8PEs1OuaQnL4Gl+GkUlZg3POIZrgAY/jx5vJbcOukwMv8UddrP4XYNd53v7LdeDiJFZszZ1hnPCIfiziEE5sA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:36 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:36 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:49 -0400 Subject: [PATCH v3 14/31] media: staging: media: imx6-mipi-csi2: move number pad macro define into imx6-csi2.c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-14-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=5799; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=RvzFCrTNqFCiSku/iUpT66qluclYVbPXZhqfa/xW/Gw=; b=qUjkqVXnEBr5lBQmNgtHvivMIbDBwxnb4lTugcAzllNYzCpqXZ655kIZ6mtIf4W1BLQ+0j+GK ivX/Yh5Ovs0DpuDV7/5YRQqiMLtbfx1ZVq2T7/unZjNrw/d1T/Pul27 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 740212e6-6200-48d0-83d4-08dde0efc524 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RzZObVM0L09mUkk2MktPN1NwaE5HdlFlbXFJMzhzQndSUXFmUDlNcUJ0T1h1?= =?utf-8?B?cSttSHN5STRrYXhoamk2QWtKYlM4SXlQTVBJR1JxZVY3QnovYXd2L2pPWXBX?= =?utf-8?B?c1F0c2ZoREhtL01icjRhWFM1QWFtaitZdnM2dUdycUtUWTFVUU9SMWtSVU5B?= =?utf-8?B?UGVzSklkSWxkUi9YVm5pdFZyNHlyKytIbmRpSFJYVEJITHpSdVF2YXhJd3dh?= =?utf-8?B?bk1HemxXUUp2RHNhbzBHTkFtd00zMi82U0VMT1EvWDlQaWJpNDZvamJMcmli?= =?utf-8?B?UVcrbGo1YXU0aVNXYTR1QjFqdS9sR0dLY0xmWUUxMEs5VWdZOVpRZ2xDcW9u?= =?utf-8?B?U29BNTlvZy9sT1FCdGhra2xzSGUvcllBRkpXVGFBbGhZNU9PbXdaSmNKZGpt?= =?utf-8?B?VjM5NExzSkkvM1ZSWVlNbkN4QlZGQVlkUGpIR29McmFUVXN3K1J2VGxNRGpM?= =?utf-8?B?NXI0UWpFL0I4eGl1c1pySHF1Qkk3R0hQdHRVa3VvVTNpVGZ5VFRqTzZ2MVcy?= =?utf-8?B?TXJnb0ZTZ2lOWFgxNHhPdU01RFRISmhCWXh1ZnJ3Nm5pUFFGYzdta1BGeTAw?= =?utf-8?B?Z0NGSXowRURlSk1HcHpjZm5Cb2ptUGxaVHJDMWFBS05zb3NpUjBkNTRuVTQw?= =?utf-8?B?dmlvRVZCNVkxUDJwcHNKdVJ2ODJ2bkx5dTQ2cVVBamRrZmRNaWZsMlk0NGta?= =?utf-8?B?T3UyWGpCbU1GSHVjMDRxcHl6MjkyV2N6QVBLMk1oOXVmUDZrQWNJeHk0NHNt?= =?utf-8?B?SUxSZndydTF3dWtPMlZ0bmpVSHJQQXN5c05OQUloVS80bzBFZ25yaFBJdCtE?= =?utf-8?B?U1dFbkhVMzFoemJjL2lJTU05c2x3Rm51bkl1alNzc3NIcFpWTmp4Qi96YnZp?= =?utf-8?B?UVNYOWRuYnhkeHY2b0t1NFJlT1hhTGR2UmI2TE85dGJWUnJqa1RRcjBOWXVB?= =?utf-8?B?emVCeHBrdlNibE5YQms3ZkdJUVFoWHZ4MGZmeGtqWXV4M2s1NExQd2JzOG1p?= =?utf-8?B?TktqWDR2MDBHdWdvbC9Ha2RpT0VwanNwYk5SMk1CTVhiTGE2SnJicWp3Y05x?= =?utf-8?B?d1VwRDR2Y1RJdTc0ZXd2SUM0YlMrc2ZZcFpTODJEbFJiTmNXcVpvMVA4Z3VZ?= =?utf-8?B?OXhmMkRGazI3NEFSZjlCL1N0dE1SRnovSzFmNDRDOUxQc29rc29BZzdOTlMr?= =?utf-8?B?WlBHRlZCTjhKSjYxWjd4MEZST01aTjlxVE16RVA1WWRHWWdjNmR1K2htQUFL?= =?utf-8?B?RmdHK0w2NFdXbnhsaENQVjZCN1pSOEJRMEpzWDNaVTYzSXVCVTN6VXRqV3Vq?= =?utf-8?B?QWVaR2Z5clJwSUF5bURGdno2dEU5eHZ6Q1ZhWDdVQ3pvczVPMS9aVHZPL1l5?= =?utf-8?B?Rko5S0R6VE5DY09hVEFlaGp1ckxoOGo2blhrNmpCY3BucjJ1V0FPdEJaSkNj?= =?utf-8?B?VzZ4ZHFUVU9scE1BK0hWaGNOODM4Q2RiK3pIS09qOHNKc0FaVnljQVB4R2tP?= =?utf-8?B?MTIzMkZhMW9LOGhBYVA0ZlNQdlVjZnlkQ3F2eVNZKzlleTFiWThXVTQ3U3Bv?= =?utf-8?B?UUY1aHh3UGNaV1NJYWkxOEFPQVRxZyszRzkxejJTQ2s0OVhRN3lja3FBTStH?= =?utf-8?B?ZnhvOUZWa1lmT2pRb012MXBBZmFhcnVLRVo2cFBBZWxZVENrbHlvSXRvL2NU?= =?utf-8?B?VEVTUHk5YTZGSFBQYXBjUkhoMzA2cTcrbHphdTRvdVNYZEhLc3oyU25USG1Z?= =?utf-8?B?SHh4OVBIUTFURG9hY3dOR2xLcFByYm9MamVWSGl3eTlrTElOR1VLc0tIcWtk?= =?utf-8?B?eEZDaWVMTm5rTzMyTThTakRjaVpmYUNmS0JWb2dpU0pnVTgwTWxrb1cwdlk2?= =?utf-8?B?emZHSXcwUUl1eVNpWWJOWjVqcmwzcUVQc1ZuVFpaWHI3NkY4Yk5GVFVmVUhV?= =?utf-8?B?L1JwZStRazJBWTR2dkF2ZUNzZzRxVlVnT2tXQWREWmdsSjk4TXBXejM2aEwz?= =?utf-8?Q?1A//61OhuQ7JwRv6dG+tXVCSQZOAFk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0p3V01BeGJoSStTZmNGZktCbWNEd3VjOTRMRHRPSXQ0OEV4d0twamgrSmVj?= =?utf-8?B?K1pWZ1RnSjhiOWVCd0FxL0o3OVpqTkQwVHR1TnNGTUxPMS9Tc0NPTXdPV3VU?= =?utf-8?B?SW55SW1iR3FMZHU0OTRFakpPWk5HR0lWN3ZkcXJ4akpaL3BiK2NndlZWTTV0?= =?utf-8?B?U3dkRGNSNStqRWY3Y29sSU8yTDcyYmNVRlFGWEVVdllpbTQ1ZitUSGxmTExq?= =?utf-8?B?RS9zRndjVkxRaEpoSXhodTdVRktMNzQvRXFyWU9ZbTk5cFRyYTFEVFFkQVVz?= =?utf-8?B?U0gvaHRRUGplNXQrZFgzcksrbHE4bVNDQ1kxZmxMUkFqWVNiM3hDZVpCTDFP?= =?utf-8?B?akN5bDNoMXl6WTFYZUd1K1ZFUGUyMmlFNjFUejBCMWNHdHF3YUduaTNOdWk3?= =?utf-8?B?MWp3Skl1TDVYSWJTQTJ6QnVHaTBIWEk4S1BaR3gxUlNBSW4zVnc5a3RrMFZ2?= =?utf-8?B?UVdwYmg1Um5oN3V6ZVU5Nzk5N20vd1FWcEE2T2d4ckxuSWFxNlN1UURWRmFm?= =?utf-8?B?ZnovVzV4VEc3VmRMNng4cGhiWU9wZjR5ZHdwczdoM3JrNm84UE9jSURlK0Js?= =?utf-8?B?QWVBQUlVS082V0hKeFROOUJWRG5xTTY2c3Fva2VXTnRMR2ZGMEtxTUNtbktC?= =?utf-8?B?S2tNUzZKVkk1VHBYWWc1U2VDb3dOSE05UHBlb3E4RlpTSE1tWmJsRHFjaUNq?= =?utf-8?B?MXB0Rlp4b2dNVTQyUktwUnJBeUtFSWh6M1NHa2VuMWdZMHJEUVduaVFrdnlv?= =?utf-8?B?ZFR6bEthZGhmUlcyNHJWVE5KLzFhMUVsbjJ5VjJPeHIyWnpjd2V6TFVCbUxr?= =?utf-8?B?NEVCVVlwMWwrVTVCWitCNXZYR0dXV2l1MGMzNVgyaFU3amlqcFFuZ1I2WFha?= =?utf-8?B?bG1vQUlGUTcwYm1MNW5peTZtY0EzRjI2YytDUzBqN3c3azk0aEFheHhRdFpw?= =?utf-8?B?cXZESGQrV01Cbk95Y2U0am44UWM5ZnQ5OU94aFFjdzAzWUw3cTU3VjVER3E3?= =?utf-8?B?WklGUTRVaDdyU24wNXdNZjhSb0F2SVVwckR1VkJRT0paaTR1clRyeWlPajUy?= =?utf-8?B?Uy9QdGVldFdITGJpTFQwenJzN2lSaXVVQnFRRDFETEdMQWtrdjU2ZnRHKzUr?= =?utf-8?B?Yy9ZOURkWVpMRFJndkl2LytwalZDMVVKbUxJYWI0T1hib2E5bkdYQ2dibUhw?= =?utf-8?B?T2w2NXRMRkRiU3NIdnVPMjhMVkRnZXd2R2d5WFhQMGpvZW1QRDJvWTdLTk9k?= =?utf-8?B?Uzhwc1JaWkZEMHpVTFdZeUFvTk1sbG14c25YSjVqUEh6aEJoZXVPZXVVRks1?= =?utf-8?B?WVkxNHdCU2RlOEVXT1BNZ0ZXTk0wRmxIN1YzTUJkdER5NlR0SDYyTlVsSzBG?= =?utf-8?B?eGFhTzBRNUpQNjZxaWU1Z2dSV0FOWFZCUU5mWFlqekN1T1BTV2h2ZzZ2Wmgr?= =?utf-8?B?cTkxdTJKdXI1YWFJT2lNTmVSdk91Y2J1YjVLSHRveXFhRTRoRXkxZHJzK2JW?= =?utf-8?B?NU5CMGRXMytoQWExL2dOTW4xTm0yMThnNlo4cU1ORGRXZGI0VVQrWU1SbC9V?= =?utf-8?B?UzdqYm5SR2FYZndtUVZQK2JkUjJ1WUliY2pNWGtTbHdHNHRUTlJzekNPU3or?= =?utf-8?B?Sytja254VGQ0RDBBNjZnU1hiaXRGQi91OXNGQ0tEejhjckhNeXFESmY1T29M?= =?utf-8?B?WDg2ak1WTGd5ZlorS1h2T1p3ZERpbW9iQlh6bkVMcDEyYXVTOUVYbmZGblQz?= =?utf-8?B?Vnl3OUJFWlpORndjNkFWd2tKVTVMcmVNRFROMk5xZUh5bVA0d2h2Skd1cUFO?= =?utf-8?B?bUhQNUxuMEFzME1INnBGRkl5TjdUa3pMOTFOYkFZYTlRV0NvTkdXblJ3bitk?= =?utf-8?B?MWk4RFR1TVpEN0xGc3pnWFY3czV1NG5jUWxqenRoU3NUS0c2OFlXSEtFa0xW?= =?utf-8?B?MDE1ckd2M1kzUVlzZzFSK1lFSzltcjBjeWZDNUVxV1lkaENjb1FwK1dtNGt1?= =?utf-8?B?OFI2N2ZIbTg2cHdqSGtHczB6VUVReUhUWGd4ZUdhNThCTW5BUGt2K3hpRitF?= =?utf-8?B?dEQwdEY4U0R3dGdhbmhMQkhqQmg5em9mdDczS0lDQm1jS09NL3VzMWdIdWdy?= =?utf-8?Q?ooDM=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 740212e6-6200-48d0-83d4-08dde0efc524 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:36.7783 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mReCaB4ZcCLCvX/FAj2Bo+UYlh8P/u+Hvs2nO3cdFTKQcD9PYV5XR8reLzGppAiRiajxYqtFwHa5/hGG33CJfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Move number of pad macro to imx6-csi2.c. The number of pads is platform related feature. This version just support maximum 32 pads. Prepare to create common library for dw MIPI CSI2 controller. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-csi2.c | 12 ++++++++++++ drivers/staging/media/imx/imx6-mipi-csi2.c | 27 ++++++++++++++++++--------- include/media/dw-mipi-csi2.h | 21 +++++++++------------ 3 files changed, 39 insertions(+), 21 deletions(-) diff --git a/drivers/staging/media/imx/imx6-csi2.c b/drivers/staging/media/= imx/imx6-csi2.c index b7ea710df07cba33465d79ef57be4792c503958a..062db72a36ef294566272d9f39d= 82e9414640e9a 100644 --- a/drivers/staging/media/imx/imx6-csi2.c +++ b/drivers/staging/media/imx/imx6-csi2.c @@ -4,6 +4,7 @@ * * Copyright (c) 2012-2017 Mentor Graphics Inc. */ +#include #include #include #include @@ -60,12 +61,23 @@ static const struct v4l2_subdev_internal_ops csi2_inter= nal_ops =3D { .registered =3D csi2_registered, }; =20 +/* + * there must be 5 pads: 1 input pad from sensor, and + * the 4 virtual channel output pads + */ +#define CSI2_SINK_PAD 0 +#define CSI2_NUM_SINK_PADS 1 +#define CSI2_NUM_SRC_PADS 4 +#define CSI2_NUM_PADS 5 + static const struct dw_mipi_csi2_config imx6_config =3D { .module =3D THIS_MODULE, .name =3D "imx6-mipi-csi2", .internal_ops =3D &csi2_internal_ops, .grp_id =3D IMX_MEDIA_GRP_ID_CSI2, .gasket_init =3D csi2ipu_gasket_init, + .num_pads =3D CSI2_NUM_PADS, + .sink_pad_mask =3D BIT(CSI2_NUM_SINK_PADS), }; =20 static int csi2_probe(struct platform_device *pdev) diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index e5593f23253b92def63040fa70fcf5fb50ec2fd2..d591288d2240c9042851f3a8622= 99d372af9775c 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -399,11 +399,11 @@ static int csi2_s_stream(struct v4l2_subdev *sd, int = enable) if (!csi2->src_sd) return -EPIPE; =20 - for (i =3D 0; i < CSI2_NUM_SRC_PADS; i++) { + for (i =3D 0; i < csi2->num_sink_pads; i++) { if (csi2->sink_linked[i]) break; } - if (i >=3D CSI2_NUM_SRC_PADS) + if (i >=3D csi2->num_sink_pads) return -EPIPE; =20 /* @@ -500,7 +500,7 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; =20 - if (sdformat->pad >=3D CSI2_NUM_PADS) + if (sdformat->pad >=3D (csi2->num_src_pads + csi2->num_sink_pads)) return -EINVAL; =20 guard(mutex)(&csi2->lock); @@ -509,7 +509,7 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, return -EBUSY; =20 /* Output pads mirror active input pad, no limits on input pads */ - if (sdformat->pad !=3D CSI2_SINK_PAD) + if (!(csi2->config->sink_pad_mask & BIT(sdformat->pad))) sdformat->format =3D csi2->format_mbus; =20 fmt =3D __csi2_get_fmt(csi2, sd_state, sdformat->pad, sdformat->which); @@ -574,7 +574,8 @@ static int csi2_notify_bound(struct v4l2_async_notifier= *notifier, struct v4l2_async_connection *asd) { struct dw_mipi_csi2_dev *csi2 =3D notifier_to_dev(notifier); - struct media_pad *sink =3D &csi2->sd.entity.pads[CSI2_SINK_PAD]; + int sink_index =3D ffs(csi2->config->sink_pad_mask) - 1; + struct media_pad *sink =3D &csi2->sd.entity.pads[sink_index]; int pad; =20 pad =3D media_entity_get_fwnode_pad(&sd->entity, asd->match.fwnode, @@ -679,12 +680,20 @@ int dw_mipi_csi2_init(struct platform_device *pdev, s= truct dw_mipi_csi2_dev *csi csi2->sd.grp_id =3D config->grp_id; csi2->config =3D config; =20 - for (i =3D 0; i < CSI2_NUM_PADS; i++) { - csi2->pad[i].flags =3D (i =3D=3D CSI2_SINK_PAD) ? - MEDIA_PAD_FL_SINK : MEDIA_PAD_FL_SOURCE; + if (!config) + return -EINVAL; + + for (i =3D 0; i < config->num_pads; i++) { + if (config->sink_pad_mask & BIT(i)) { + csi2->pad[i].flags =3D MEDIA_PAD_FL_SINK; + csi2->num_sink_pads++; + } else { + csi2->pad[i].flags =3D MEDIA_PAD_FL_SOURCE; + csi2->num_src_pads++; + } } =20 - ret =3D media_entity_pads_init(&csi2->sd.entity, CSI2_NUM_PADS, + ret =3D media_entity_pads_init(&csi2->sd.entity, config->num_pads, csi2->pad); if (ret) return ret; diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index d3e1c334df692c5dff10b467d759fe4da45b7b5f..12e1db1d149513fcd0db8c191c8= 01cb144d18143 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -11,6 +11,8 @@ =20 struct dw_mipi_csi2_dev; =20 +#define DW_MAX_PAD_NUM 32 + struct dw_mipi_csi2_config { struct module *module; const char *name; @@ -18,22 +20,18 @@ struct dw_mipi_csi2_config { const struct v4l2_subdev_internal_ops *internal_ops; /* Deprecated, should go through phy interface */ void (*gasket_init)(struct dw_mipi_csi2_dev *dev); + u32 num_pads; /* Max 64 pad now */ + u32 sink_pad_mask; }; =20 -/* - * there must be 5 pads: 1 input pad from sensor, and - * the 4 virtual channel output pads - */ -#define CSI2_SINK_PAD 0 -#define CSI2_NUM_SINK_PADS 1 -#define CSI2_NUM_SRC_PADS 4 -#define CSI2_NUM_PADS 5 - struct dw_mipi_csi2_dev { struct device *dev; struct v4l2_subdev sd; struct v4l2_async_notifier notifier; - struct media_pad pad[CSI2_NUM_PADS]; + struct media_pad pad[DW_MAX_PAD_NUM]; + int num_src_pads; + int num_sink_pads; + void __iomem *base; const struct dw_csi2_regs *regs; =20 @@ -51,8 +49,7 @@ struct dw_mipi_csi2_dev { =20 int stream_count; struct v4l2_subdev *src_sd; - bool sink_linked[CSI2_NUM_SRC_PADS]; - + bool sink_linked[DW_MAX_PAD_NUM]; const struct dw_mipi_csi2_config *config; }; =20 --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013036.outbound.protection.outlook.com [52.101.83.36]) (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 37F9B35FC05; Thu, 21 Aug 2025 20:17:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807469; cv=fail; b=rriqFPvec3MmTQ7Dm8iUnYuFPPK6LzdtZN90KWeudnzsNfIUonhbyMtTwZm06zKG0Qcq5wyccy41fZ+cWPMgbccw3xyCVpeiRTC7aLkgClB8K8bNPnyw5UJNKF4Dmvdwyks7qbyEZQlFJZz74riTMfZgTuz8tqKuVQdcaJOS2sg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807469; c=relaxed/simple; bh=O2r0DLpCKo0zS1uYMkQTsAeCRUOb2Rnw55ytXFmYtWM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UhPpyh0eozZy/v2335RfZUvY/Qi2wnOYcWFiUf9qpP1reInrNdvnZSc54fdEUrvgD6MMEiGlKFiMNKJa9tM1J5d11WjPEpzMQKSkfIW0Jm1EIEFmDvA8SD8V+h5+Mi/H46zq+z7WnXafe83gHuRpViVVLuPDXC5eQqlMjnXGkxU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=CmMqDVUo; arc=fail smtp.client-ip=52.101.83.36 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="CmMqDVUo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pI6mNOte2ZnXyxUTvCnEebRdfxysTbzep5TBTmmJ9CE0TuGTTzqRzG0bzYrwc/5QjtkaLUftmnl01tChxGNhuo3tb4tcSr+iQvoTPjtQNZDxfyW7Ze8UTxjvU9LpqE1Z9/w1HWN7WE40U+JNtoLeqV0QVaNTqYR07Yk3PTEJGDdhQ6t06NbaxkL+HrcRE3NucWtWDi7cDOMUDnTwyLc8H6bntLy7Va453aGFqybklfjQ8xeSt+kN4NcKUr1PAbsCvxMgmSanpYcW6dpHS4KsEvvixJ4U51fclsefg+OPFb9LPMbcJrlwSu0WMYkNo5/vFAulsOo4pfe/L9KFHuFM1Q== 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=XSxOLm0rqTKeeONfHo14us2eFGPUdpblJT3Uj5AeO6M=; b=eov0zu7jIDkX/OolXWwYVX6A++jbKvRuSTVI9jUl3l967tIwmXT87yNUzNsnKTsU9VkhzQbZlozNJFWdNBZfHKkNfECJrAlHvduHtuoLwMuHfItfRoNHqjXpCXWInmb2BOqbRc49xTbVjni1fyx7uXL4pG294zPYmnqjktuEyFVrYZEUsSvRGYWMw8M8g+5ha7VqCULREpk+mN5uWH/cOSBTjGqxabNeKAgkqrQEAngOwGm8tLDPEO03dFK1CZ6J8057rujOShwEl/YMUVgKNzEjLGf8tGgwrBI1cSRjTfmqrl01cEC+3VXS7ExcLbADxyr4W7UkzPhWdkxv06B41g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XSxOLm0rqTKeeONfHo14us2eFGPUdpblJT3Uj5AeO6M=; b=CmMqDVUosGT/KVssQQLhF8KgHFwfX0wrKO2JW1QlJcSkicX36q6B46qJnhjgRdgWq1Q+o7tQYSzY+lSi7hwJQhGO9uY6KRU/Db5DgF2M/IQhZAzB8+HN8nyfmYzJkJW0YJZy4JGh6VzeHrKI0/CAYubXHohSjEdB1I3GIbRyhBncKLXy63Rib2D4FzxC1/Es2LEQt+zpeNTODfScUzqsO4n7bt2jDGoxOzZI4Ts2+8N+58qyC3DCneyrGMdhd00fvuYf0dq+ZRp8UBfwf9mUS7bogjm/7O/undKd3qotor2FOl57RKX19LdU5Lkoo4f0mwfs1u+MYT4n8RkNW8hPUg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:43 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:43 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:50 -0400 Subject: [PATCH v3 15/31] media: staging: media: imx6-mipi-csi2: move dphy init part to imx6-csi2.c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-15-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807361; l=7975; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=O2r0DLpCKo0zS1uYMkQTsAeCRUOb2Rnw55ytXFmYtWM=; b=TIWjYs5giou28iOoe1skKmoEJQtJus4nHqE/ANxbalQeLdQd7R+Zi/CwaxH9BEenp5RIlnAsd K52Fgp3+WOdDtZJv73Q12PIyLcIZFbQahFolNMpiIU08qITeRAbOCIG X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a250aba-32b8-47fb-8c55-08dde0efc8d7 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SzBsREI0SVMwZUlCNk94cys0V1dLR0wxdlhiWTVRcVpSTHpqWDFHSjliZDh0?= =?utf-8?B?RkJDWWpjdyt3MEF1M3B4ZU5UUjNuMndmYWhsSkdmRDJBWXc1NElsR2Q1ZUFB?= =?utf-8?B?OWllckFUcEp2VkZBL1FKVzNZcXdyNlZnYzNmU0pkOEIrNGF0aVZQank2ZHQ2?= =?utf-8?B?VTRONEk4TG1TNC9tTnVLcGZFWUdEN2VLM0VINkpJSnlWNWJGb1Y3MTEyL3Zw?= =?utf-8?B?MUFkQzdYdW9OQi9BaTZNQXpreGRDcGpLakdqMzEyWTRqbFh6MXR1RjJCUFVh?= =?utf-8?B?aS9VdnRzRlZyWitWTjNGZkhicElzKytGcXBIVDVlKzdqTjgxMzZMWm16dTY0?= =?utf-8?B?dVkwYkk0QnJsWUZoZGE2YS81L1BoUXpxMUVkMW4vRmJncEwwWXR6UThlMkNn?= =?utf-8?B?TGdFVjdtNEs3WWJGdXNVSjVOeEtaQ1BYZGUva21MUHNpRFlVc1ZlNVB6ZFRa?= =?utf-8?B?dFVGSXBTWFpFK2tiY08yVWtlZlBseDJZR1A0Tk11b2lsdTY3aDRSVWkwOTJx?= =?utf-8?B?MWcvRzFYcjg2VEl4QVFqNlhMOTYzcHBORzRHS2I5ZHBSN3F1NEw5MGQwU1Fp?= =?utf-8?B?TWlrV3gwYjBwdGM3RHFUV2VWd1JQL2YrKzM4SFJKSFg0d1NUMGplOHVZL2Fk?= =?utf-8?B?dTE5QTRIWlRuQkhMUkx6VGt2N0F2cXY3Y05vOURCZHRXVk9zMkdTLzRwYkFa?= =?utf-8?B?TjlJbi94aTdJM2tBRVZ2MEJNNGhDdHZOY0RkcW9lb0VuaUw4Snc4Zy9HL3Bo?= =?utf-8?B?Rm55Q0FJZGt6cHN6dWN0c2wxQU1zbjcvZ3hlWnY4ODVvSkRWazRwcjF2YUoz?= =?utf-8?B?WU5DSkx4eFphKzJsMUx4RlNHRG40NCtIcHBxekZIZTFjZTRxaGZya0NQRDJQ?= =?utf-8?B?K3hDcTRwWG5lQXpvVU1OdkJLMkJsSVVRZXhxTDhITS95VGFDQ214ZFhnRCtG?= =?utf-8?B?cHdlc1JEb3NkMmJsMkc2RkNkRVIwOEFwdnVjVEt5VHAxOXFDclo1K2xyNTIw?= =?utf-8?B?eVpSN0doSUdwcUk5Nllvb1piVjg1cGx5K28zajNqNTBZcWdjcHRrWFZaaHNk?= =?utf-8?B?Y21UdGpTY0dBLzhLb1hnWkpnajcxaUxZSmlqOElpakJJZEYxMUN3OHF0R1pT?= =?utf-8?B?ZFZ2bHpXZzZ2Z2hhSTB5QTUwZk5XeGRJdVhaajZVM0dkZlAwaUxTdkVmSnJi?= =?utf-8?B?MkNVYjNsdXRvZ3JtcnpvTDZjT3BMQ0xKYTkraTN1MVFMRDNoWXVPVHNMYW1G?= =?utf-8?B?ZDhVV3hZR0tzMC8zc2UvVExGWEo5anJTcDdqOWtNa05Xclo2VjJnNHhXNm1s?= =?utf-8?B?Q3hGRnJFdWdKREo2MzYzRDFhY0RVRlgxOGdDRWlySTYyMFVpTXhhQ1AwZTM5?= =?utf-8?B?QlE2QW4yQzRKNE9rYjF2YmZCV0lxQzIzak4rN3Z5dXZrQy9VQ0NtZ3hBeCtH?= =?utf-8?B?eUMzSDY1ZjdweW5qalF6MVBXblFWeG5tcHZzVmZWbjQ1RS9ONVdJVXQwL0Zu?= =?utf-8?B?MkQ4QUNpSlBTQUg0ZUtyR21WaHZmTzdZeU5hbXE1QUxtZUtoYWswaDNZL3JN?= =?utf-8?B?RzkyU0JZdDRIa3o4cmhVQ3FqK2NNN0djMFlDZCtUK2JkWHlENDZkWXA0OHRp?= =?utf-8?B?MDNBMHpsSjE2NE5SSmZPUFd1Z2hpOXp5SDNuSHdzK0kwVCtkRFlQdG5mUWxJ?= =?utf-8?B?WXBEWnNYOGZpcTRkaDdWaDlhREhrS0xlZHFobTBJRW5leVorMzZaajRqeC9F?= =?utf-8?B?WXk4ZmoxQmhManJwaHIxeW1tKzcvMUhqbUpIeFVsdjZDNzJCVjhSNkt5VkIw?= =?utf-8?B?MlRsb0JsWHNsOTRYaEJEazhmUjQzZHdxdmRRazNkVVE3cUtpVWFsRHRaQ3pX?= =?utf-8?B?djdmOERDcERBQlplWEpzNm1nMTRhblRhbzNWQVdaVVFlaFdBZHE0cUEvZGJY?= =?utf-8?B?UFlnMk9qSjRaR1BLdEI2VkU4c002blIvVjhpcFYxYnkwUlZDRjRlQ28rQUl1?= =?utf-8?Q?1Hn2fguUYeEjvl/ol0FLdlgstwwAWc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UWtLS3lvTXc5U0tlWHlmbEtmclA1ME0wd2hNMEVjeWJldjBuRjhQSnUrZmhH?= =?utf-8?B?SE5qYm56eCtldzBGS1dTb3VqQVp4bFVHU05mVHpRalkrV3lqWEE2NzVJRFZB?= =?utf-8?B?bFlEK3EyRUh6TnFyS05Kb3hDOXgyd1EwL21sMGkxclJoZVN3bG9hVjY5bG00?= =?utf-8?B?Z1RHMHM3cU8rS290Qm9yb2pUbUpyYTZhMEUrS2tpV0JqMEpmckJBT1U2blEr?= =?utf-8?B?RlNJeGZlejVHVUZKZkRiSmxPcng2Q3p4S2ZXSmJKQzlINVQyL0d1TkN2aXFX?= =?utf-8?B?T1lYT1lZV3NZWDI3OE9qZVRnc2p1VkZ6ZTFKYnRZbHFvbTNDSlFvelNGTFdM?= =?utf-8?B?YURTMGlRdi94b3dPUG8rWHh2VkRkZDR0WXlTTEo3UmR6eVlrakY0Q0U1OGxS?= =?utf-8?B?czFiK0dqT0ttTXA2VmRsb0ROSDMvUGRDNHk0MEIrZkNnbjhiQ0YxenlwL2dP?= =?utf-8?B?SHB0enVvMHVVY0FWV2wrNkx2L2IxbGRlZjF3NGJ5TU1NZUpiWTRnZTJmK3pj?= =?utf-8?B?QUlrWFZZeGJvSTBnZDJ5QlBGeVRadEpSWDR0YjBzc29TREJxUUZiQ050d2Nk?= =?utf-8?B?K1ZMU0x0eTVRR0xCM1pXSkxjL1JVaytPZ3JxRU5WcUtvbXZhWWpNRThPYmRM?= =?utf-8?B?ZTd3ZzByS3dZOEd5eEVydjliVjR5Rkh4MlFYUTI5RXMzQXFac295NEUyT2d3?= =?utf-8?B?Ry9JbjdqanhlU3g2RlUrbWorQ3FUMjB2UjFFWUFmNG1idnBlZXVoN2pSbFJ1?= =?utf-8?B?S0JHbEZhemRoRDFYSFFlZzUwdytZa29IN09QV3JINTBiTmVGY2h0MUV2YnIw?= =?utf-8?B?aUQ4UlZiQ0RPSjc0dUFFYVFtSkcva0dDT1VlWXJVMnVVampjUGUrdUFNTkZC?= =?utf-8?B?dG5VRDJZVDE4UjVrY21kV04vQmM3U1N2Sit2azcvclRMNmw2ejVwWThlaGY1?= =?utf-8?B?ZURwSjJrUlpQdS9taVIrWksyVi9zM3lzc042UDJBQmw0WlJ1anB5WXZsbE81?= =?utf-8?B?ZVVCZEJTNXBhbWt5Zkt3UTIza0VacDFvT3krd0VEL244aTFGWmNnampyWWNk?= =?utf-8?B?NnZnaEc2RW5NRDlEYVE4N3BNN3NMa0duSHl3VUNzbFB4ZXJwYnhYMzVCNHBZ?= =?utf-8?B?am5pUG02YTZjeXlSN2VRYWJGK2E1RnI2QVcrYmZaOTVabDNXUFZQc25WYVVn?= =?utf-8?B?cytXV054TTVHS0F3c1lvQ2lBd3NIMHRjUU5RZm15OVU3L1dwSjBjV0l2eHRi?= =?utf-8?B?bGZFVGlNYkdJY01uV0diczlpNzdGOGE0aHJXb1VFSXRQTTJTMFAwL241dXNM?= =?utf-8?B?M2IzQkIyK3J4K3drYXNNVklPWit2VHNwZUIwY2lKUXdxU3ZiVHY3WXBCRlRC?= =?utf-8?B?bjdNSnRBeXZqWWVuNUErVTc0Uk1sQVpKeUNWb0haWTM5TGhPOWJWT0ZtYm9E?= =?utf-8?B?SFhYaXE4YjR5SWFWUm1pWCtwNnV6SjBsbHgwVjZEUE9ZckVmQVdyT0FZYmZJ?= =?utf-8?B?NjE3eVBLZW9zdUhrVTc1ajd2VUFUTklhaXhTcDdRTTc0QnRuanE3cFBORVoy?= =?utf-8?B?Y2IwcElsUTFpWjNxYjQ1MVhjNVB3SDJ5U2oyckZ2WkF3NktXeHJYUWxTRVhG?= =?utf-8?B?MzhPSUt4K0toaVpQbXpBZjJ0VTVYN3VwU2VOOG1GeTlrVGNpaGtyL29SMEVY?= =?utf-8?B?aEJDWEF2ZXErM09ERFNGclNJamplTnAwZndHNjZ2TitYcmpNcE81eEI1ZDRZ?= =?utf-8?B?ZmFCOHFpV0lpY1MxaFdEYmpKd1ZoakROR3ROME1nNDhkejlMTCt5d255bTBm?= =?utf-8?B?VHdWR1VlMlVWcm8rc2QxUTNlVys5aDk4a2xmNXlmMEpGbWtHMVBiT2dzaE5u?= =?utf-8?B?ZGRLam5tb2dnUkJ3WVRBaFZOblFCRCt3d0RPZm9EbmlCODI5aFRMOURCTXZM?= =?utf-8?B?RVhFQ0x6WmpEOHhmdm9uaXV4WTFpY2JqSFFpZG9MMlBpOFY0V1dDMCtwcjg5?= =?utf-8?B?T0lKWmtEeWoyYXFtVW9ELy9mRGZ5WnNBRklvdTZUS1hlZmVRbE03NStBTm9I?= =?utf-8?B?OGtOaGRTOTVVWlo3cllPWG1nbkppTEhmb1ZLM29BVkRQOVk3Q0pKQnlCUU5I?= =?utf-8?Q?dPLs=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a250aba-32b8-47fb-8c55-08dde0efc8d7 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:43.0486 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: YC3VcLiAhSVMuhw3LotRB7oaHPNq2wAFOEJks0Ig3f+fGGhU/1F652raQrMEq/OqGb6tYlSzLSZJuUCmFhO6ow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Move dphy init part to imx6-csi.c. Prepare create common library for dw MIPI CSI2 controller. Add callback for dphy_init in struct dw_mipi_csi2_config. New driver should use phy interface. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-csi2.c | 55 +++++++++++++++++++++++ drivers/staging/media/imx/imx6-mipi-csi2.c | 72 ++++++--------------------= ---- include/media/dw-mipi-csi2.h | 21 +++++++++ 3 files changed, 89 insertions(+), 59 deletions(-) diff --git a/drivers/staging/media/imx/imx6-csi2.c b/drivers/staging/media/= imx/imx6-csi2.c index 062db72a36ef294566272d9f39d82e9414640e9a..696644aa04c83b1f2877b2b2315= 202627d927e96 100644 --- a/drivers/staging/media/imx/imx6-csi2.c +++ b/drivers/staging/media/imx/imx6-csi2.c @@ -16,6 +16,12 @@ #include #include "imx-media.h" =20 +/* + * The default maximum bit-rate per lane in Mbps, if the + * source subdev does not provide V4L2_CID_LINK_FREQ. + */ +#define CSI2_DEFAULT_MAX_MBPS 849 + /* * i.MX CSI2IPU Gasket registers follow. The CSI2IPU gasket is * not part of the MIPI CSI-2 core, but its registers fall in the @@ -28,6 +34,54 @@ struct imx6_csi2 { struct dw_mipi_csi2_dev dw; }; =20 +static const struct { + u32 max_mbps; + u32 hsfreqrange_sel; +} hsfreq_map[] =3D { + { 90, 0x00}, {100, 0x20}, {110, 0x40}, {125, 0x02}, + {140, 0x22}, {150, 0x42}, {160, 0x04}, {180, 0x24}, + {200, 0x44}, {210, 0x06}, {240, 0x26}, {250, 0x46}, + {270, 0x08}, {300, 0x28}, {330, 0x48}, {360, 0x2a}, + {400, 0x4a}, {450, 0x0c}, {500, 0x2c}, {550, 0x0e}, + {600, 0x2e}, {650, 0x10}, {700, 0x30}, {750, 0x12}, + {800, 0x32}, {850, 0x14}, {900, 0x34}, {950, 0x54}, + {1000, 0x74}, +}; + +static int max_mbps_to_hsfreqrange_sel(u32 max_mbps) +{ + int i; + + for (i =3D 0; i < ARRAY_SIZE(hsfreq_map); i++) + if (hsfreq_map[i].max_mbps > max_mbps) + return hsfreq_map[i].hsfreqrange_sel; + + return -EINVAL; +} + +static int csi2_dphy_init(struct dw_mipi_csi2_dev *csi2) +{ + struct v4l2_ctrl *ctrl; + u32 mbps_per_lane; + int sel; + + ctrl =3D v4l2_ctrl_find(csi2->src_sd->ctrl_handler, + V4L2_CID_LINK_FREQ); + if (!ctrl) + mbps_per_lane =3D CSI2_DEFAULT_MAX_MBPS; + else + mbps_per_lane =3D DIV_ROUND_UP_ULL(2 * ctrl->qmenu_int[ctrl->val], + USEC_PER_SEC); + + sel =3D max_mbps_to_hsfreqrange_sel(mbps_per_lane); + if (sel < 0) + return sel; + + dw_mipi_csi2_tstif_write(csi2, 0x44, sel); + + return 0; +} + /* Setup the i.MX CSI2IPU Gasket */ static void csi2ipu_gasket_init(struct dw_mipi_csi2_dev *csi2) { @@ -74,6 +128,7 @@ static const struct dw_mipi_csi2_config imx6_config =3D { .module =3D THIS_MODULE, .name =3D "imx6-mipi-csi2", .internal_ops =3D &csi2_internal_ops, + .dphy_init =3D csi2_dphy_init, .grp_id =3D IMX_MEDIA_GRP_ID_CSI2, .gasket_init =3D csi2ipu_gasket_init, .num_pads =3D CSI2_NUM_PADS, diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index d591288d2240c9042851f3a862299d372af9775c..8a8741e1c688756ee755e9a1399= 1ccca893e5b5c 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -21,12 +21,6 @@ #include #include =20 -/* - * The default maximum bit-rate per lane in Mbps, if the - * source subdev does not provide V4L2_CID_LINK_FREQ. - */ -#define CSI2_DEFAULT_MAX_MBPS 849 - struct dw_csi2_regs { u32 version; u32 n_lanes; @@ -146,9 +140,11 @@ static void csi2_set_lanes(struct dw_mipi_csi2_dev *cs= i2, unsigned int lanes) dw_writel(csi2, lanes - 1, n_lanes); } =20 -static void dw_mipi_csi2_phy_write(struct dw_mipi_csi2_dev *csi2, - u32 test_code, u32 test_data) +static int dw_mipi_csi2_phy_write(struct dw_mipi_tstif *tstif, + u32 test_code, u32 test_data) { + struct dw_mipi_csi2_dev *csi2 =3D container_of(tstif, struct dw_mipi_csi2= _dev, tstif); + /* Clear PHY test interface */ dw_writel(csi2, PHY_TESTCLR, phy_tst_ctrl0); dw_writel(csi2, 0x0, phy_tst_ctrl1); @@ -167,6 +163,8 @@ static void dw_mipi_csi2_phy_write(struct dw_mipi_csi2_= dev *csi2, =20 /* Clear strobe signal */ dw_writel(csi2, 0x0, phy_tst_ctrl0); + + return 0; } =20 /* @@ -174,54 +172,6 @@ static void dw_mipi_csi2_phy_write(struct dw_mipi_csi2= _dev *csi2, * https://community.nxp.com/docs/DOC-94312. It assumes * a 27MHz D-PHY pll reference clock. */ -static const struct { - u32 max_mbps; - u32 hsfreqrange_sel; -} hsfreq_map[] =3D { - { 90, 0x00}, {100, 0x20}, {110, 0x40}, {125, 0x02}, - {140, 0x22}, {150, 0x42}, {160, 0x04}, {180, 0x24}, - {200, 0x44}, {210, 0x06}, {240, 0x26}, {250, 0x46}, - {270, 0x08}, {300, 0x28}, {330, 0x48}, {360, 0x2a}, - {400, 0x4a}, {450, 0x0c}, {500, 0x2c}, {550, 0x0e}, - {600, 0x2e}, {650, 0x10}, {700, 0x30}, {750, 0x12}, - {800, 0x32}, {850, 0x14}, {900, 0x34}, {950, 0x54}, - {1000, 0x74}, -}; - -static int max_mbps_to_hsfreqrange_sel(u32 max_mbps) -{ - int i; - - for (i =3D 0; i < ARRAY_SIZE(hsfreq_map); i++) - if (hsfreq_map[i].max_mbps > max_mbps) - return hsfreq_map[i].hsfreqrange_sel; - - return -EINVAL; -} - -static int csi2_dphy_init(struct dw_mipi_csi2_dev *csi2) -{ - struct v4l2_ctrl *ctrl; - u32 mbps_per_lane; - int sel; - - ctrl =3D v4l2_ctrl_find(csi2->src_sd->ctrl_handler, - V4L2_CID_LINK_FREQ); - if (!ctrl) - mbps_per_lane =3D CSI2_DEFAULT_MAX_MBPS; - else - mbps_per_lane =3D DIV_ROUND_UP_ULL(2 * ctrl->qmenu_int[ctrl->val], - USEC_PER_SEC); - - sel =3D max_mbps_to_hsfreqrange_sel(mbps_per_lane); - if (sel < 0) - return sel; - - dw_mipi_csi2_phy_write(csi2, 0x44, sel); - - return 0; -} - /* * Waits for ultra-low-power state on D-PHY clock lane. This is currently * unused and may not be needed at all, but keep around just in case. @@ -332,9 +282,11 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) csi2->config->gasket_init(csi2); =20 /* Step 3 */ - ret =3D csi2_dphy_init(csi2); - if (ret) - goto err_disable_clk; + if (csi2->config && csi2->config->dphy_init) { + ret =3D csi2->config->dphy_init(csi2); + if (ret) + goto err_disable_clk; + } =20 ret =3D csi2_get_active_lanes(csi2, &lanes); if (ret) @@ -680,6 +632,8 @@ int dw_mipi_csi2_init(struct platform_device *pdev, str= uct dw_mipi_csi2_dev *csi csi2->sd.grp_id =3D config->grp_id; csi2->config =3D config; =20 + csi2->tstif.write =3D dw_mipi_csi2_phy_write; + if (!config) return -EINVAL; =20 diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index 12e1db1d149513fcd0db8c191c801cb144d18143..935c664440aae82d69f0253a551= b91ec4ff2724e 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -20,10 +20,26 @@ struct dw_mipi_csi2_config { const struct v4l2_subdev_internal_ops *internal_ops; /* Deprecated, should go through phy interface */ void (*gasket_init)(struct dw_mipi_csi2_dev *dev); + int (*dphy_init)(struct dw_mipi_csi2_dev *dev); u32 num_pads; /* Max 64 pad now */ u32 sink_pad_mask; }; =20 +struct dw_mipi_tstif { + int (*write)(struct dw_mipi_tstif *tstif, u32 indice, u32 data); +}; + +static inline int dw_mipi_tstif_write(struct dw_mipi_tstif *tstif, u32 ind= ice, u32 data) +{ + if (!tstif) + return -EINVAL; + + if (!tstif->write) + return -EINVAL; + + return tstif->write(tstif, indice, data); +} + struct dw_mipi_csi2_dev { struct device *dev; struct v4l2_subdev sd; @@ -51,8 +67,13 @@ struct dw_mipi_csi2_dev { struct v4l2_subdev *src_sd; bool sink_linked[DW_MAX_PAD_NUM]; const struct dw_mipi_csi2_config *config; + + struct dw_mipi_tstif tstif; }; =20 +#define dw_mipi_csi2_tstif_write(csi2, indice, data) \ +dw_mipi_tstif_write(&(csi2)->tstif, indice, data) + static inline struct dw_mipi_csi2_dev * sd_to_dw_mipi_csi2_dev(struct v4l2_subdev *sd) { --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013019.outbound.protection.outlook.com [40.107.162.19]) (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 BE9DC35E4DC; Thu, 21 Aug 2025 20:17:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807473; cv=fail; b=H1F5mu0deMns/PIit+ev7biBzLqTo2UxafsEnAjqWtgPKFQi5QSto9WQF0YtUiPKSyKCiNcladSTtLE2RIdpIBbUJpc2EA5i1YJCaqBxG7+ofE5aACP7JEVKETbAjRGrqVhxfBrRPMaj09qSvBMmQKNkYXdNVWMgsdhYn5ZT4Z4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807473; c=relaxed/simple; bh=vLyAn5GtDIw5OZwos/W3CqNAfHCStIGMfdU+MZAuv3c=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=unyqmdUrnZUW+p3kOioy2orXrETNwFDwSvDD95tqERm+TxCIqUtRaKT49Khsga6mcFOQ5mympYy1yubafWWj2JNYmWarTXnSB7ksYGGl0BsN2lWHmrTOY1RxGBJoX08gaFzA53QW/8gS6IJdQ4MXWvkF7y0g9kiTbMopeYloRtQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=avuCclTF; arc=fail smtp.client-ip=40.107.162.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="avuCclTF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PJmP+7BW62SLeVzkZ2HS5iP2ZEwsUlqEpxJezEb/yBb0+5YHcjd0VXrOsJRybz0qvU9n3WqDK1iFbXshFLDa2QpUTp+cWVvP+Azdy7XOA74BJ4nZbj2uSxaFCUa9z9087h5CLXUvMoHtwel+xqfH+80yjNg/ewlOJApRasPwRRAEOTSkL86nRrppGIaxdj+c8h1mr4HOSmYO6YdegjLcBHKrszq9eUvrgTtj4YdaJvFmr2Wsecp4YGbI2RIi3v8Ig1zI2ls9TixYvNY/0lVQVKJLWHOOpczFJaXF8CSZ+EpbqKEiuTKCwaptyBBdSuM2+fZv++/5rNDwvi4RrJzEIg== 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=rjKsY+K6hVQFxwCyihNqgD5l30BqHuDohdw214ma8sQ=; b=EkuRVWlOK/sPdaRmuz7iGeL75/dHJUL/bF8hR2yIiJCYWFpGKJZzzk/yxLiAn1juL4J4TL0Ij2KPrcWBxYN7K4J1MuWpL+tCwuOQ3v0LmaIjicxL24BNGW/TKR9xkg8Lf6ziSBvzDIJFxGAKNvAxtve7RTs4PcNWLt0+fKabAzb9U5CzaXvVP4otaccYLIZJAbALsHk0Jy/Ga42I+a8H0htdtwsjt5EOTL+7RWs3RFUnBX6Q9McDSmOcwr+hMSy3YoQH/YuPeVHv140bZ1lPy6YVHJRPH35yXgOA0GqiJfcXbs86zCKBsLftb9MSuDJx8ftcqjmwMJ/mS6mo8/agBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rjKsY+K6hVQFxwCyihNqgD5l30BqHuDohdw214ma8sQ=; b=avuCclTFsNwxrfMQ8TOx8fKFwEHLo8U1PbAko5OZA27gZnWtMVyUSA03DzJ7cB5zOt7aBhOrFCeshuvBXkotgzTzqXWUJxPXwid9tWTrLAHHXNqbF49V20aRf7iDKeto0uIB32sB6t9/qMcltTvjdpvJRZmcqXCpSDtrFsmF6H2/FLsn1h8fZF1AYxqSuSrErWIJd/wC2+PuC9p6734CFu1BslhnRL3DJ6mTjXG4qitGxmNix5GaesNVZOwsDLpqj4xO08OcfdlgPaOIxWWNV3s8KhG1JkRh8p9MRh+lr+JPE5lwmrgpAAbAQfMEloaAE7HwiqXOmHv1P2Y2uqOo+Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:49 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:49 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:51 -0400 Subject: [PATCH v3 16/31] media: staging: media: imx6-mipi-csi2: use runtime_pm frame to control clks Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-16-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=3877; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=vLyAn5GtDIw5OZwos/W3CqNAfHCStIGMfdU+MZAuv3c=; b=DJg2obFH2kFJMRrgqA7/8AEgneo2NdeJMMLsFpwdJitXJRNtoti0GwLDGhlDRDDn1GE9IUjwQ wqQ6YyVoyDjDavhlJURhrGFWD79MWgGRH15jBcBN0U7l5oJz8Iw/5Fi X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 4943533d-d239-446b-9f8e-08dde0efcc9c X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?blMvRFBDa2UzaGdkL1JKaVVpL1FWckdPL203c3V1bVRTVWNYUjFRYUQ4aVZB?= =?utf-8?B?N2t6Sm1odmF3OWdWRG5rbVlNU0JNTzFIaTRPN3FGdUszUDFBak9zTE9JNmJy?= =?utf-8?B?cVhQR1NkRmJBZFB2RnlVdzlTVlFEQ0tLaFJGMVIwbUVDTHVmcTRCN0JON1U3?= =?utf-8?B?d2NLcXo4SHJUcGd6NU5EREFuWFJObjdkRzlydHNYNnBBV08rU1hqblA3anV1?= =?utf-8?B?SDg4Wm1NQkVSbEpkWUtUenc2dG9PVDdDSjNBem5OY1FZMmtjZGxtazZ6eE00?= =?utf-8?B?eTZDTXErc3hqQ2ZoT2VRUmRhM1c0d0JOeFRXTWFvektxWEZyeVA5anpSa0pu?= =?utf-8?B?Qk1SaXJkZlBWMzJQcG1XT1ZpaFVMSGc3cmhaZ0tySXJQU2wzOGFoTGsxNnJN?= =?utf-8?B?UFNVc01JWSthSjIyWHVOdXFDTCt5T1dmYUJyM0lHLzdrV2RGc3pDcHJZVmxU?= =?utf-8?B?VTJFVUpMZ2JCaG9GOWtWdXF1V053cTQrM2dGRlowZlV5SDM2Qm1NeVMwOXV2?= =?utf-8?B?YzZ0dTRDbUR4bFliOER3aEZNakcrREhldHlOL0ZhbFFZeUNiVnJqdVYrM2ZE?= =?utf-8?B?OEh5V3lPK0I2WEJxaDFmSUNOQUtweUM3OUcvcG4xbFhuUW8rTVlJUWZ0RFBD?= =?utf-8?B?WXlOV0FNWHFBUmxZNVR6MUVBdGxJMU9TMVNPNWk5akVMTVFXRit6NTFmNDdY?= =?utf-8?B?ZS9uSzJmZlBBYWFrQ0ZseVVWUGwvMHBPd3VLSk1WS3M1SThiZXpuZTlCaDRK?= =?utf-8?B?SFVTY0Q2YVNySWhjNzJGOWNvTWdTT01VcDZ1RWlaM0J3OFhyMXZKdURaN1d1?= =?utf-8?B?Tm5qd2xZUFhUNUZua3JHWW1waUhTc0VjUGR5MGNZL2VlNTVHVEE2bFFUSDNn?= =?utf-8?B?YmdsMThIdlpkc2kraEV1aG1VT3U4ai9UdW1LcnYzZlZ3K2NleWliR1BZajZ3?= =?utf-8?B?TXByaWpSK2kzK09DUHBhQVh0ZEhwQ3BHZjd0SStzYU44dzc0cHNKSzFYcVln?= =?utf-8?B?OEFON2Z6cFlSS2JMZkpwQmNkNHNmN0tkNlB6amFiMjdEbmZ4OE10TTNHM1Iw?= =?utf-8?B?bGhXMGNrbFNxbFZ6NUpKbG56Zkc5dmJRUm9EYURoV3RDdEV1VkljNW1NOTIr?= =?utf-8?B?MHZRVzBKSHlZNlRBYmR0d3lsQmZ3aXQ3SStoamVjNnlpQmZzcjQxOC82Q3Zv?= =?utf-8?B?SmprQmJjT2N2ckZqZlJwYWkyVEdLL2hzZEZHSWJzaXlrYWExeUx1Z3Z5QjFN?= =?utf-8?B?aEF3dUwrUFhPeEhNSDhxMFBGdlF1YjFQTFdvVFk5VlNPMVhSMUlNc1FtOGxn?= =?utf-8?B?SzFubGQ3dEtHNGl0T3BkdklGWFNxaHRkdDN6TXU3cVRIb0VXRjB2ZmpSMDNJ?= =?utf-8?B?OW00VFNUS1hrc1A1MTNpZWZmaXFveWo2bm5TTVVYaDV0Q0RhaDRlNC92bnNj?= =?utf-8?B?T0hCRGJZaWZtclFpRjdLWjhkcmp0ZlRNeHdQcDE2QjBFd2xpVS9WYjFjeTRq?= =?utf-8?B?Q2hqRnJwL280KzRxR1REQWZGZEdJUzYyZ3lreC9oTjArUFJ3ZGViZEtLRUV0?= =?utf-8?B?dUp5OGFEZXpwemx1QXcyQ25LWUIrTmROQ3JPUDh0TVFjZ1B1VGFDQVZPWmdr?= =?utf-8?B?M3dNUkMxcGpUcWtpaFk4STBhdGlqcHZBL1RWNW4xeXl1NHJpL2g3dGFsaE1z?= =?utf-8?B?Y3A2UjhqR2tGSWpLcmpnWE92ekhKZHRoMC96Z1FyS2VlbDZ4QjdiaG1QWXpG?= =?utf-8?B?UnVjUEkxcmM2bGxaamQ5b2JoTWg4d0NlTWxTOW1zcFhCL2hGbEEvMU9mb1h5?= =?utf-8?B?azJydnl5N2h1YzJSUEYyM3d3Q1BiTTVCVGV1RDhQWGUzVHNiYUp4SjNMZWZJ?= =?utf-8?B?ZFZBS1FjZm9hMTlTYWRXTUsyUGIwVzE4U1RuK09HcDFVSjVUc3kzTWpUeVF1?= =?utf-8?B?ako3VUMzOFFHVVR4MUxtdDlUSlRkMk5sMmdtekdvTFptMzE0ZXMzZTJlRVpD?= =?utf-8?Q?A2s8i426s9JpUwpJ+qbMXTolIgkp/8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SUltZWhVVHdSWUQvdnQ3cE9WMmcrSjVMUG05bzBDMW9pMXBqeUhhdUVYSDZh?= =?utf-8?B?TEUyMHNJUDlXVUowQlBWVlZub3IvQlV1QlByaHB1QmVHMXZwV3RrYXhtVHdI?= =?utf-8?B?Y0xuVmdLMUJKeE43ajUva2tKTnV6UVBFR0ovck9YRnc1L05BUE94K1ZBZ0Rq?= =?utf-8?B?ckxyMGdVUmh1STJ5cmRqY1BYTHlUU3d4OVYzSHVZcjgwa2FhVXp1bE53WTJ2?= =?utf-8?B?K3llYnZQRlJrVmJSU01pYXJBUmdZMkpQTWdVTjZHNVRoWGIxOHBmcWZMUVJT?= =?utf-8?B?Ykl3T2xOdlNyZk90bmN6a3l5RWg4V2M4YzYzQmhlUkhaenY0TVZuRnBpL1RV?= =?utf-8?B?Lzc2czNHZFZUMHNRU3Evc3lSTVVwMUk2c1dKZnBnMFhvQUR1cjQxTk9SSkVs?= =?utf-8?B?Qy9EL2JibC9ZdlVxdjdqK2p2d0xoellKVVRCdHBPUzNlQ2V2UDA5cDJkZGp0?= =?utf-8?B?K1B5Q3dqMzJXRE1MN0l0NUFnQ0ZIMno5TW52YVQ1dmI0WEhwNmVEbUJlYnFH?= =?utf-8?B?bWVlWUhpRXRNdnRidU1LVkFVTVMwajM2b1BIYU54ZVNaRld1M3A1UXA5M1VN?= =?utf-8?B?Q3RiRUs4NDNzc3NyK1VoVFN6elJ4ZFpLaWNRU0RKV3BOWHlKNWZvQUJiRFJy?= =?utf-8?B?RmNLd1NpNmZYMFZxeWpQQVYwQXora3ByKzVwdFpxZWEzVVRQNktvc2hrRnRP?= =?utf-8?B?aTEyMnE0V1ZNZGNWNmVPaU1NYSs3cEpiVHl0UDVzWEo3d0N5YVJXRnZCZ2VT?= =?utf-8?B?cDM4aGZDZVZ3alZ1OU9RTVByT2JHQ3IybW51OHNtNUlCWkxtUDJOTWFtM3Zz?= =?utf-8?B?M2dPU3hQM1pVS2pzMFExQnZ5VWhRUTM2eE1LeFFtdkNXOStLSUcrQ2JxNEpp?= =?utf-8?B?b2NqM3NZTW1rcTFIS0tOTFYyNUdGL1RmUi9vTGhaZXN2blVDNUNCWjlLbnc1?= =?utf-8?B?NER4bnNBOTdWV2ZUakNObTFTWm1FcDA1Y3NHb01UQkNpQzNGVkJwdEFUcjV2?= =?utf-8?B?aVNDKytOcWN1UVkrVFNXQmJoWkplOCtjTlpBc1VldEt3SmQ2OTVPMEFrcGd5?= =?utf-8?B?cUhzdFVqUTJ6azlBUVBUVXR5WC8wQTgrNGRJckpubStzV0M4TWRHWDRrenRq?= =?utf-8?B?UERjZlZ1YVhhUlFzYUZ5UHcrWVRNZmt0bTgvdGpuZFJjckJMU2tvdGxDbExK?= =?utf-8?B?QXFQdnB3Ykc1VnR2dytGdzNnOVBLc2dqSUhqMHVpcS9pWVpSM21UUGFRSjVY?= =?utf-8?B?aC9sdk11ZVdzQjQwN2NjSkFZMUdoRmMwTkQ4SG9qMU52OVNMS1p3NEVvUVJt?= =?utf-8?B?MjFGRGxIM3RES0Q1cHZDZUx5eDFuc0JSRnFPbno1eDkxeTZWZkNhanBKQVIw?= =?utf-8?B?eEFCVTZJd09mWExDSkNrQ2IySWFFbFVxcGpTdXhFV0oycHB6Y1piUFBpNFh6?= =?utf-8?B?cE9BNUlhT3BQRzh4SGtvTTdpdmI5ZldWSUxpSWNmMUxlVWlrTFViK0ZPb09R?= =?utf-8?B?TXdnNWk2RVNJUzF1WUx1ZE8wY1hhc3Fad1RPcXd3SFU5RlZBMjlkT3NsNVBK?= =?utf-8?B?VHRYT0tvcDlzL09NVXl0NTQ4LzZGeGpxQ0FldDBUcWZzNlo2N1kybTBzbkRX?= =?utf-8?B?d2p4dXhkRnlPZG5LSXZRZnBhdlduajBpbDBwdm9pRkhpYnh4amJEZEdSZFph?= =?utf-8?B?dmFPRGVqZEVtSklhNTViZ2JaS0FSTTRtWW5ydTRtM2ZLS0JDUEs2RTJXMzNi?= =?utf-8?B?VFFrSnhuZXpJMGtRS2dhOFQ2RmRFMUV2MFFGRlJqV1EwdHlnMXlkMW5mUGJO?= =?utf-8?B?dFZ6QXJjcEEzQzVFYnZGa1BQNy91MmhoNFdCWVh0WGErWGQrVmVxWVFYZUpM?= =?utf-8?B?MEtSd0Y2T3gyeGlCWE1Ia3ZtRlRzUVZnaVpvaHJhd2V5NG1JcG1OTWpWTXgw?= =?utf-8?B?ZlN5RGV0bXd5VStGUUxkOWErU2ZVaHgzOFFJK2FPZlRHbEhXbXpYRmxFSWMr?= =?utf-8?B?QzBuWUl6RmM4YWo1bW45WTRVdkVjeU12T280TlRSME9tVjNXeDZuLzIzR3lW?= =?utf-8?B?RVcxZEZ0OWpxdTJpRlA1czVGY0FzQkZJeDI0bWJpOEtnZ1E3ZGwrR0FDaTJU?= =?utf-8?Q?86vc=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4943533d-d239-446b-9f8e-08dde0efcc9c X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:49.2827 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PeKU/7x2ocVmHJzJgaYB5exXyEo0I4BnQJNNFFphZgR+CxOWEhSxWMi1r4moFGdAw6riuZwyB+IYHo3mfE6oHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Enable runtime pm and use runtime pm API to control clocks. Signed-off-by: Frank Li --- drivers/staging/media/imx/imx6-csi2.c | 4 ++++ drivers/staging/media/imx/imx6-mipi-csi2.c | 11 ++++++++--- include/media/dw-mipi-csi2.h | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/drivers/staging/media/imx/imx6-csi2.c b/drivers/staging/media/= imx/imx6-csi2.c index 696644aa04c83b1f2877b2b2315202627d927e96..e5192bcd886958a27f4255fca10= 55ae0a94866ef 100644 --- a/drivers/staging/media/imx/imx6-csi2.c +++ b/drivers/staging/media/imx/imx6-csi2.c @@ -154,6 +154,9 @@ static void csi2_remove(struct platform_device *pdev) dw_mipi_csi2_deinit(csi2); } =20 +static DEFINE_RUNTIME_DEV_PM_OPS(imx6_csi2_pm_ops, dw_mipi_csi2_runtime_su= spend, + dw_mipi_csi2_runtime_resume, NULL); + static const struct of_device_id csi2_dt_ids[] =3D { { .compatible =3D "fsl,imx6-mipi-csi2"}, { /* sentinel */ } @@ -164,6 +167,7 @@ static struct platform_driver csi2_driver =3D { .driver =3D { .name =3D "imx6-mipi-csi2", .of_match_table =3D csi2_dt_ids, + .pm =3D pm_ptr(&imx6_csi2_pm_ops), }, .probe =3D csi2_probe, .remove =3D csi2_remove, diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/staging/m= edia/imx/imx6-mipi-csi2.c index 8a8741e1c688756ee755e9a13991ccca893e5b5c..22e0021fab17f3c8e9a6c41c2f2= 109f5112dd6e5 100644 --- a/drivers/staging/media/imx/imx6-mipi-csi2.c +++ b/drivers/staging/media/imx/imx6-mipi-csi2.c @@ -273,7 +273,7 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) unsigned int lanes; int ret; =20 - ret =3D clk_bulk_prepare_enable(csi2->num_clks, csi2->clks); + ret =3D pm_runtime_resume_and_get(csi2->dev); if (ret) return ret; =20 @@ -323,7 +323,7 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) err_assert_reset: csi2_enable(csi2, false); err_disable_clk: - clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); + pm_runtime_put(csi2->dev); return ret; } =20 @@ -334,7 +334,8 @@ static void csi2_stop(struct dw_mipi_csi2_dev *csi2) v4l2_subdev_call(csi2->src_sd, video, post_streamoff); =20 csi2_enable(csi2, false); - clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); + + pm_runtime_put(csi2->dev); } =20 /* @@ -634,6 +635,8 @@ int dw_mipi_csi2_init(struct platform_device *pdev, str= uct dw_mipi_csi2_dev *csi =20 csi2->tstif.write =3D dw_mipi_csi2_phy_write; =20 + platform_set_drvdata(pdev, csi2); + if (!config) return -EINVAL; =20 @@ -669,6 +672,8 @@ int dw_mipi_csi2_init(struct platform_device *pdev, str= uct dw_mipi_csi2_dev *csi if (csi2->num_clks < 0) return dev_err_probe(&pdev->dev, csi2->num_clks, "Failed to get clocks\n= "); =20 + devm_pm_runtime_enable(&pdev->dev); + return csi2_async_register(csi2); =20 } diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index 935c664440aae82d69f0253a551b91ec4ff2724e..3d70c1f4f38e7d663f9b043d890= 3ce57d630d1b1 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -3,6 +3,8 @@ #ifndef __DW_MIPI_CSI2_COMMON_ #define __DW_MIPI_CSI2_COMMON_ =20 +#include + #include #include #include @@ -86,5 +88,21 @@ int dw_mipi_csi2_init(struct platform_device *pdev, =20 void dw_mipi_csi2_deinit(struct dw_mipi_csi2_dev *csi2); =20 +static inline int dw_mipi_csi2_runtime_suspend(struct device *dev) +{ + struct dw_mipi_csi2_dev *csi2 =3D dev_get_drvdata(dev); + + clk_bulk_disable_unprepare(csi2->num_clks, csi2->clks); + + return 0; +} + +static inline int dw_mipi_csi2_runtime_resume(struct device *dev) +{ + struct dw_mipi_csi2_dev *csi2 =3D dev_get_drvdata(dev); + + return clk_bulk_prepare_enable(csi2->num_clks, csi2->clks); +} + #endif =20 --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013037.outbound.protection.outlook.com [52.101.72.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 85E7135FC20; Thu, 21 Aug 2025 20:17:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807481; cv=fail; b=dIsvjLZkQDhMp+Q7FL59uSitG58AYKM8xksi6L+BZod0be7SvnSEj2ILGkad0EFFrBgmEZzt/yEGp3QOTGPKTVflHja6Y9iqcDbxdY5tSVIe/3f3m5KLZcIl/F7+WPezh+VC8j7WLvBLcGPXPh9+T6pZFw7i9qTjjvnJ1g5p5GU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807481; c=relaxed/simple; bh=S37Bf1KZBfE8dF5MUGPi/zF/YObDJGNoXWg6MjoaFzQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=gSw07WGPM7xQuxXYKtHrg8qioiJaLSVu8+zCg/J2znbI+ScDRYSgXTL/n8oEAU8TfYn++GS+4Oc/VN6ViFfTAXWubEyI4yiCx2cLUQMtSLJXTr7Co7A5bF5zTRmG+5gJsxKoemzW6yWbXmlru0tNg168NXSRq4GWmM/xSzSyHyM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=awMmoe3r; arc=fail smtp.client-ip=52.101.72.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="awMmoe3r" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Tk0amaQZyoYxfG3v6GQKHwT8jUKNVcI25rcjY7eW0poa2roXY78tOt+7TE2M5oWW4s0reHYTHZpACzU4Mk4FBrjWDIiXxI73DBPXQKD4TM+w+5MtgO/n4zQ7MpMwgbRcBdH7ylDhr9J8aqNhMETjW102g1LhZKFFDdOrMOmhblOfiFACry0bzkLwIDimh3lJkWOOqQmoh/BnkaMVSaxa0VSoSbm4gTJjcj1dOUJYWmTaxrz1ATSarxkIp4K6eWnHSG0KdRN++cfanN4IRUTrJZRAn7jP0OlLbrHzzVgGxFdo8XD3sIep6CL90mBIgydv6sa8EmUwVYwW+2AzNu2lEQ== 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=JwCXkMMYMtGtf/YAT9fCxB/d8zsUxX3DACZ6s1GR+cU=; b=XUbQIDx+9U5LwyjDfW+ZF1cEqhUUcuff0yGyPKCF8/c+f+XKsP5iRhr6gVOlPT5Xh2UtjNCL9OT77z4c0UY9+avQt1ciIHObEy1SebzH53aWTNaKflzu0FqTmCVvQ7pRLNnTu8dncsqZBANQFxi29kJU5UQOp/x1mUwtAueBYBtR4/V0SeJNsNgieGOoXyVB53YyEUaxS48c/wxxup04Du0UX7Nm3henQlc9OLF42hKP/WcVS/oI3vYKUnkgVeTPnxp7Be+ODUXtq1ozXE0UtHNt6vfQD0969VSHFsM24OeqDA6eclI2Xx/BbDP8mTPioaknC4ZkIrFLduAG9taMvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JwCXkMMYMtGtf/YAT9fCxB/d8zsUxX3DACZ6s1GR+cU=; b=awMmoe3rAjBvITemPCtNebJJdvziPB44etu7lCfPXyn6jXLNd3NTnRdPvYl1xEpSndexeDtgoNkj4/Rcwdx9nGHHstOOM58fPQJFeoVyJhhlA6GN5+NoVDchl0D0e/4IWXs5EifuAyTwRaQD07OtOm3spQf47qa/ONXgks0qN+BB5oau6XNw7Jcws7Z+PycfiSIJ70yvH8Ie8+br6EvZgvL5o4C7Rj9E5VQxFLjtuytqDLQ8wv+Amj4ogdJ9sWVtsOkrEyt5BICR8isGJIYHOHHVPh4XEwxoNzpVVDpxzCC5C4nf5812aufdBh0j7y6K0E44AfXLH4o4lUKSauwNKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:17:55 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:17:55 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:52 -0400 Subject: [PATCH v3 17/31] media: synopsys: move imx6-mipi-csi2.c to synopsys/mipi-csi2.c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-17-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=3262; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=S37Bf1KZBfE8dF5MUGPi/zF/YObDJGNoXWg6MjoaFzQ=; b=CfLeJ4qr7lxu+9b6qcf/U+frF3XFIdCwHm64PXFMyUUJu84LgRiNZhgv0N1xZggF7VjDGNuCh RzEX2vGYkViCeFy2g9/Us2n1e/O4kxojjXp7fP4AFDVeaMJyR63k1sv X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 7582a270-986a-4952-7a66-08dde0efd04d X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Z3dvUWwxUWFLb3VkRFNCUGtvcWpIWVVNT2x5NlowQVpZR2Y0VGJFM3ZTaGZS?= =?utf-8?B?UTc2ekFQZjNUa2VjaTJIUEoyTThMcW81VWlGK3VwNzYybEpObkdSdEFNeWk4?= =?utf-8?B?Wmh0UXJ3OG84NGJkZkorc3VvSVZOWWxHQXBQODNWWEhnVFJTZjB0ZUxqaWFR?= =?utf-8?B?VW9TbUhONkJrLzE3MHpRbzF2YU9ESDBvdUN1YVIwRXE5MHZ6cE1GaVNOd0lt?= =?utf-8?B?aklEVXZpNitxQnhYeC8zQVFRRjJiSDdUSi9rSHhLVHA3Vi9PQmVGWEc2ZlZD?= =?utf-8?B?dlJucVc5VXJFL0dNSDZiaEk2VkpCWXdNK053aWcwd3ZPNVh5eUdtUXl2a0ZJ?= =?utf-8?B?aGp2MGlqYzFOS2lrQWlhTEMyTFIwa0pzeTVDWXVSOC9JM1didVVDTWNZWE40?= =?utf-8?B?WjBBZm5sT28wbVlRby90NjlidUx5TTQycUpJSWM2alB4MlpJamFKR21tUlR1?= =?utf-8?B?N2V0L1FnZUtoT1hLK1FrMWIrV2szbGdMekR3SDlzSlo2ekgzWU4xbEg4TnZo?= =?utf-8?B?cmlWNS83cDh2dklHdUJFdm5sWWozSFlnQU9QUVI3bnkveC9aM0dRYTNoajBY?= =?utf-8?B?NkRKUUxMaVRsRmlZd0JHWjNhVHRtWFZXZGp0bW9YZmdpUmk4NnQvUW1GNUwy?= =?utf-8?B?ZVlPMk93WGJ5c0lrY2JHbmFlS0R6c0Q5MDdEUzRXaU5QY1JzQlNTZjlobEVB?= =?utf-8?B?M1ZBRW1yQml1aGpiODRlazFOWi9TdmI0U09CdFBKcUVaVGFRQ1c2b2syRzVj?= =?utf-8?B?c1NyL1ZSd3VER2JYZFhOZlcvbDNhK0RTcHdSREp0QWFvdy9icGJWR2lReDVp?= =?utf-8?B?MVRjYzhaT1JDZlJocS9tZCtkaTF1U3JmL29tK2RrMk9rbUlXSUdyb3RHVTlT?= =?utf-8?B?YTRLQmlFRWxIN3k4TDI2ODdRM1YwTXpDRDIyVXVodkhWQmVNRk9oUWZaVXY3?= =?utf-8?B?WFcrQ1Jmbnl0c2hPc1hPTXZ0ZmljZUxyZThBTnRZYzl4TjdvL0llOEZPZ0oz?= =?utf-8?B?Ykk4RkIzL0Z5UTJSek9qMHZPcDRibUNKcmdPdFJEcEx5WnJJbFEydGh5Ykts?= =?utf-8?B?ZS82QXRkMG9sUnZvMlFLcWlBUWVHVnB0TlBiN3B1VHI2ampDYkNHNmxSNEls?= =?utf-8?B?aEc2WHN4QnFQVFQ1cU9VWHpsQXNRcmtvSjNFeHJtbzhualpPWWIwRFlpS1RR?= =?utf-8?B?QmlyWk5GOURlT0NMbjJMU01EYUtTVU9wSlV4eWEyUEV4a2liOWNleVRyVWlV?= =?utf-8?B?RTluWm5QSlkvWGswWXNZRC9LemxMdFNzczFKdGlGRjhVUlpHaGxoOWJmc3NY?= =?utf-8?B?S25FZ1laMTZSNWFyNU15UVhhd25mMGNVSVVtMXM2YXNhNHkxelBKMnREWGpE?= =?utf-8?B?TlcxRU12QVl2bFhoa1VnUlFuc01JS1RKdTdMNmVCK2hLV1k1Ry9FYVJxbmJz?= =?utf-8?B?N2IxUXhtWDhNL0JUMHRBREszVmg2a0pSS25ZTWsvTWRoQ0lVQ2M4WFQ0d2FX?= =?utf-8?B?OVlpN2M0aFkyTFdFTElCMEFpbndpUk1SVlJvN3M4bkowbDAyaW9uVnlXRXd4?= =?utf-8?B?ZWlNTC9PTmx3Q29ObFpIcmcvVlJlQzFISDdJbGZLUW93QnlqNzZFVE9rSkNt?= =?utf-8?B?ZXI4cFFvVFVEWEFFWmFEb29md0JMUGRRNktJRndNV0oyWkdycGhtSnpBQzRz?= =?utf-8?B?ZlcweVo3eisxNjNnMTFCcnlhUEQyWVBRVXl6STRHYTRuMWMvd0MzalFWRW5n?= =?utf-8?B?Qmt1WFVneGx2eVMyYUlPMmtqa09ueVpDYWtNUnBRaDY4TU04OGxVUXJQRlFK?= =?utf-8?B?T3JhbmRZbVYrSDIyN0NCa0Z0THhpNlpiU0tSb250RjFVaHFaZHY0ZldFM3NS?= =?utf-8?B?akV3MmpMV1JzVUhvUXJCRXFZeWVva09xTVR3ZTlHK2NQVUYzemxoMXFKejNa?= =?utf-8?B?RmQ4WDc1SzlJUVF3Z1FWOFBnR3RXOG54aU9SWDJHMUJjKzh0YU05ZHBZS2sx?= =?utf-8?Q?VEpd28dybhm9f0FlJSr0ukWB/+mrfQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZVV2NjAzU2ZVa1U0aTZTYXRMR2o2am5nNHlIQ2dEMHJOcE80d3c3dlMySzJ6?= =?utf-8?B?VGtSMGxGTm9KejdraDN3ckxIV0kyTmV2SHE5cGE4bmQ1V1RKWGVPV0ZOdzZk?= =?utf-8?B?VVJ0ODkvcFgraFArdlFUTDNYa0tpQzdlbHBzMHRLc3dHNldtQTRPZElEV00w?= =?utf-8?B?RHQ5UjlpTk9BSElrTS94MkRJek5YaUtNOGczLzJ6WkdJeHBqUmluNFVNdVFM?= =?utf-8?B?ekpsNU1ydzdTanU4TEZ4dFg5NmtBaTRHOHpHSVF0TWFxQnpmOUxnb1JlRHVY?= =?utf-8?B?SWNPWmRUQVA4ZXFEV1pZUzFKejhpU0ZycXZmNEtUNWZhaFJQNjRBU1VjQWNI?= =?utf-8?B?bzZEblVjV1RZMkFaeXNTUHFGRVNoMjBBZkF4cVhJNjdQYWxyZGt2SVI5Szdo?= =?utf-8?B?aEk2RnJWV3ptL0ltUGNkS2FvWmplb0x3cGdja0lLczdJdXoybGJYSUtvSmx1?= =?utf-8?B?NnZUbndES21XVkJIRE9tZzV2UnRnVjYwRldhc1g1eFpBQjhSRmRiUE1PMW5N?= =?utf-8?B?TVM3VFFoUEJWYkN4UmJSeGc4alNTWUhVdVU5QW5sTklPZTI1RnlTeVVUUUdn?= =?utf-8?B?bXhIdjd3eU4zWkE3VXB2Sm1BczFDSWR1UFFQMmxtVmZlTEJFdjlMcjdzaXdI?= =?utf-8?B?eW1zMllPR2JiOTFFOFY4R2lBVWQzV2FST0hMS1ZieGhiUll3ZFBKNzFFa3k5?= =?utf-8?B?TmplandKb2FBMzBxOC9VVmtweDdjSFdtNU5FRk0zeWJWV042VU4rVnlWejJq?= =?utf-8?B?WFY1TzBVQUZlR2J0cDM2T3oyTktrNU4wcFJLd295RTdGTFRzVThpeHhnazJ2?= =?utf-8?B?R1NZQ1luaDhudDZBM3BFNnNWa05nV1NaUkFTa0lRa1EzQnllZG9ybDRBd2R0?= =?utf-8?B?Y25tdE1KNkVnK1hWTThTS0lNYUhPZ2lmbllKZlgyZFAxL3VoNjZRQzV5Z2JJ?= =?utf-8?B?NGQrZGxtWE9XNDhtQlRwakE2YWo1WG9MZHU3c3RPYjhjZGY3WjZEaE9URVl4?= =?utf-8?B?am1ha1JhOUhUakJTOW9EZkwrajZpNksxK0ordkdlUEl0dUZVK3J5cE1HalpF?= =?utf-8?B?aVZYY0NKRUh5ZEJLWmNmK1RGcTRUK3NOZ0J0dFRwTUFLSWhFcEdQUmppRTNN?= =?utf-8?B?UHZGdlNPNEpZcWEwOW0yZmo3M3NiQnBJREZod0l0eGpWZlBPbW43VmRQbzRz?= =?utf-8?B?aXBjVEYyTFg1M2xhMzRDR053dnhsZVpuWTZJdzY3bitLcUFQR0JsRUJIOHM5?= =?utf-8?B?TlpKb1BhOGxWdGtJSnVRTGt4aFRldE0rVlhoSWxwTXh5OFgvM1ZwY09iSE9O?= =?utf-8?B?SXJ4RDFzSWNtOHRKUzVWNlU5TE95d2tvY2lTeDNRcmR3QThDWWdRb3hlOFAx?= =?utf-8?B?L29hS3hjWjlrTkhsb2lVUURVNUcrc25pWXhab0pkWllBT0JtUUVXOGsvNG1i?= =?utf-8?B?bXhlWGVaeDBNZDVPSURZVFpxaGMrQ1NadjZkcHU2RnhMVXFicXhrTmluNXY5?= =?utf-8?B?czlOaU5NeU1mK3NMcTlaUkxyQ1dzUFovMlVNODNHdGxTVlBNakNDaXVEb09Z?= =?utf-8?B?UC9NallOcUpDdG0zQ0JaWCtMTGI0a3psODY0dDhTM00zSkZXQXN5dStUVTQw?= =?utf-8?B?TEdRVXAvZ2gvSXlwV3ZmUlZWczk1MWdodWdkbStmQmgyZXNveHMxY09aeEh2?= =?utf-8?B?NXprajh5c01YODB2dE16Uk04YXQ1MEIrbjhobm1JRDBCV014Z2ErTkFYUWhj?= =?utf-8?B?Zkgza0ZZRjNDNEJ6c3N0L3oyM1lUeDVTL09kSXhrUlJCT3BzOHBJUGhvNTh6?= =?utf-8?B?RWF1MVVPa2tCTXl6Y041YVIyQXBkN04va0VPUE16YlFyNWt4RTgrRWpwMEx6?= =?utf-8?B?MHEzczRiSGRGZDd2VkpwRHJyZzZTamhzUjV0OGZBSzZiS2lzcDQzVWxWMEk0?= =?utf-8?B?NHFOMDVXMHhSRU1wT09FMlpOTk1Wd3NkclNlVEZ4dVdMUTR1QlAxWGpkdU9q?= =?utf-8?B?Ny96dEl6czBSbDZQL1RlYnZHbVZIU1ZxSmp3czF2SEZRR21xbE04QU9jZkhD?= =?utf-8?B?eXBMMXpoZXZ6VGlyNHYrUjh3UmN5SUhRaWdzNWhsa05kWXpnUlZON292d2cy?= =?utf-8?Q?gjLo=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7582a270-986a-4952-7a66-08dde0efd04d X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:17:55.4419 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jxj1/JQ5Syc1bLLqoIDVonG4+pzmVxYgCgFQ8ikZEUdwHjwnlHxKgZCgoa6bde8lmCB16YKB0X/S4xglvL+b9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Move dw MIPI CSI2 common part drivers/staging/media/imx/imx6-mipi-csi2.c under synopsys to let more SoC can reuse it. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/Kconfig | 12 ++++++++= ++++ drivers/media/platform/synopsys/Makefile | 2 ++ .../imx6-mipi-csi2.c =3D> media/platform/synopsys/mipi-csi2.c} | 0 drivers/staging/media/imx/Kconfig | 1 + drivers/staging/media/imx/Makefile | 2 +- 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/synopsys/Kconfig b/drivers/media/platfo= rm/synopsys/Kconfig index 4fd521f78425a96985fa3b6b017deef36631d1a9..e54dad835349d420dead6d5313c= 0623567c28c0b 100644 --- a/drivers/media/platform/synopsys/Kconfig +++ b/drivers/media/platform/synopsys/Kconfig @@ -1,3 +1,15 @@ # SPDX-License-Identifier: GPL-2.0-only =20 +config VIDEO_SYNOPSYS_MIPI_CSI2 + tristate "Synopsys DesignWare MIPI CSI2 Receiver common library" + depends on VIDEO_DEV + select MEDIA_CONTROLLER + select VIDEO_V4L2_SUBDEV_API + select VIDEOBUF2_DMA_CONTIG + help + Common library for MIPI CSI2 Controller. + + To compile this driver as a module, choose M here. The module + will be called synopsys_hdmirx + source "drivers/media/platform/synopsys/hdmirx/Kconfig" diff --git a/drivers/media/platform/synopsys/Makefile b/drivers/media/platf= orm/synopsys/Makefile index 3b12c574dd67c072901108d88cad64ca3a723938..045ed3177738e6d28aa223804b7= 9e6774e141dc8 100644 --- a/drivers/media/platform/synopsys/Makefile +++ b/drivers/media/platform/synopsys/Makefile @@ -1,2 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only obj-y +=3D hdmirx/ + +obj-$(CONFIG_VIDEO_SYNOPSYS_MIPI_CSI2) +=3D mipi-csi2.o diff --git a/drivers/staging/media/imx/imx6-mipi-csi2.c b/drivers/media/pla= tform/synopsys/mipi-csi2.c similarity index 100% rename from drivers/staging/media/imx/imx6-mipi-csi2.c rename to drivers/media/platform/synopsys/mipi-csi2.c diff --git a/drivers/staging/media/imx/Kconfig b/drivers/staging/media/imx/= Kconfig index 1cd48028b6416ae16ed69c68186281b6c6bcbec8..53e5c1546ac53e4942974a9acdc= f078de1cb6073 100644 --- a/drivers/staging/media/imx/Kconfig +++ b/drivers/staging/media/imx/Kconfig @@ -10,6 +10,7 @@ config VIDEO_IMX_MEDIA select V4L2_MEM2MEM_DEV select VIDEOBUF2_DMA_CONTIG select VIDEO_V4L2_SUBDEV_API + select VIDEO_SYNOPSYS_MIPI_CSI2 help Say yes here to enable support for video4linux media controller drivers for the i.MX5/6 SOC. diff --git a/drivers/staging/media/imx/Makefile b/drivers/staging/media/imx= /Makefile index 064a6c6c069aa440c72a483080cbedf89d370193..1978b82fd1876566acbb952a4d1= 4cf9aca35e996 100644 --- a/drivers/staging/media/imx/Makefile +++ b/drivers/staging/media/imx/Makefile @@ -11,4 +11,4 @@ imx6-media-csi-objs :=3D imx-media-csi.o imx-media-fim.o obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx-media-common.o obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-media.o obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-media-csi.o -obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-mipi-csi2.o imx6-csi2.o +obj-$(CONFIG_VIDEO_IMX_MEDIA) +=3D imx6-csi2.o --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013069.outbound.protection.outlook.com [52.101.83.69]) (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 F3F98262FCD; Thu, 21 Aug 2025 20:18:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807487; cv=fail; b=AWzG00YLAVTSmGpApRdNLGerRHsad42m8eotdA1fRK7K6Gg9o0LIsZA6CrU2hh5Ob+OWg7tj020NOoOlmd05NAkfTZuP25VpHQUhBggiBIwXNhwSVtf8gaNSX0lAqp9wMA/eCXy+/A77ylgqQMxE69J83rdNRifPi/k8HdYU9Fk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807487; c=relaxed/simple; bh=2vIy5GI9hRffZcYVtcT+Hxhcu2BEcjfjbHQJMMuqq+c=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DCVTFEgBlUkDeNw0cRXFr43DoOoIYNNWxQXuTq5p7V+wgP67Q3kGcKjgrpwomG3Gy9wL+h4IEFHB7soGqM2+PhXtaz5FNsc88L7dF2uRzZ/E46BHw1gDktevrx1mZo81W6haGEcC+Pp4palSxgObIDDwS0p/1OMcajUS50UVBFY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=D3m+NyfW; arc=fail smtp.client-ip=52.101.83.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="D3m+NyfW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vdajUEO/b7moGcqinOkItKI6jR9pI0ycSVzqFfXBVDyC0Yjk91io7q39jYIewjGejzxEnJhUCUVIe32SkyD6Gj6YUPlvhb52n1Upfm9EoDaOBoh1Sj7/VcJxa/mHhvjB9eJlPCIxsyBKRndmYmRyEAUJfXTGVtbQ9Yfug037cHGgTuV/tIwIqwf3f8rmHY6qfSxCv3dl6969wRXfjCtHy/bXxDFWbL0MJyro3kAilvVmVijbmQN66x0uE4Dv/BJBnjL0ugOSkraseonbYCEvO/8eaxCDpI/tgQDoMJDCIYdT9ML/YRJys7PnIb1KwPDUQ6CFrWnmYh3k7IXqlOUc/w== 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=fnc5YTevDrbM95cf7VVkH2mnOjJBdKjMQ86+i9lZioo=; b=ezaQCNGsw3KcFYBfOnsMTE1dDdEA5y/MJ7yqlhxb4YgTylF7yGt0xL0UIVCiiZcxqiUZZLgaamN+Nl//Rk6Xa8sQgKVhCKZQYy27+mVs9Mv6udIhFyWbX174+M+y+nZ0kk0+B2nKbbBPzbjDNddieoygI+mQNwzp080FoxqWbtPUEd1NC1KmnvOKZYGd26a6b8YAU3LXe/fMxAAmJEBeVHuMP9fEB/Ic2bFIIh8M7adV9x43Y5XHt9ea5s08gZ8ygC4cW9wRo1f56LC0e9v/SCICUHHF49j+qgPVl2WCEH+ACLjJ8eXT4Pb7xMslfwx9rE1eGVpdmClByftZBJM03g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fnc5YTevDrbM95cf7VVkH2mnOjJBdKjMQ86+i9lZioo=; b=D3m+NyfWDaV/vNCd9H3Oes/39mG2fIuktuurQPr9GeH4roezWOb6xBMal2nYnO7kocGKzJ3cmH54yfjFPWARmll5R4lZFBo8yulheok/bJi5TDxpk4ctp+KO4pmdH9k6sHy6QvbCtfI6lUxstWegmAMmzIrCGKm+v3XyONx2XXqMaFnr+bSYZhb+7GxkFZtBUjMs8qtren9xdi0TOMZKqmi8IoXXTSJzDbSCjMtcJNvwtpwl8CRu9aPWukOkD7aWIqBtWH37otbliPDAhiNTK0l6jjhzOTxUNBqgedARG6ecy7xBrBZa7Opj5rusGjPHQ0d7dTr6dCt5u5MrrLf/EA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:01 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:01 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:53 -0400 Subject: [PATCH v3 18/31] media: synopsys: csi2: Remove deprecated s_stream and use v4l2_subdev_pad_ops Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-18-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=2902; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=2vIy5GI9hRffZcYVtcT+Hxhcu2BEcjfjbHQJMMuqq+c=; b=xtm2pE2lC9y6rl4SbKmMGupN1bXh2+KfeL46g1hR9oH7AYn7xl3zTzJDy8Ljycgkovrrl9gpm KAg+SChIyyjDWIhZZeN8E25E+QRB15Ncq1hkJLoaEvjLbU0mQIJqZ2c X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 750783da-9108-4bdc-2099-08dde0efd422 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dEpKYjNjKzFoSUhoVW5CV0RwM2h0MldXTEpCdXYvb0wrLzkwOWErQ1pUUllM?= =?utf-8?B?a3g3bGRkWndzdlhJOVRFQlozZHBSY291Q0EvTnRCSjI3dVdKZ1M4TlQ5MUJ4?= =?utf-8?B?TnV4U2dBME1JeHk3eEpmMG0vTXlqbTlNZDdqWjdQdG1QUlUxK1BsYVVlM2d5?= =?utf-8?B?cE5mNWxhUHVvc3h6MVlzcWIyMG8rK1FKRGErT3N4dUdrM3FMUjFlK04rc3Z3?= =?utf-8?B?bFFTSDhJTW9INXdyMWY1Rkd3UVA2bHZHc3Z2Q1V4aFduV0ZLQmh1blNBeGo3?= =?utf-8?B?ekpoWFg3cmU4cWc2NXI2MHIyckt0azJHY3hDMGRqbmd1OFJFaFA0U0JWWnp2?= =?utf-8?B?QWxzcExqbk8wbHlPekdBeGw5SW9ieDZ1ZEI3U1dya2RUYjdnRGR5b0NSZWpY?= =?utf-8?B?MmZqYTEvT1NjVkhaNUhoVTRWNXovVTh6aDE1cnpXR29XL1d2SE5XUjRselpW?= =?utf-8?B?Y2FWMVJZUWFLcS9yZk8zbUNSK0dSZVBqQ1B1Qm1lRm5lN2czalpZSjV4VzNM?= =?utf-8?B?OHdEdUZpbXU1aW04K2Uzd3pYOURrV2lHL0VwNDNPa2JlN1QxUEdOUGpxam0v?= =?utf-8?B?SHhTMjM4VEkzTGU1MlRwZ1A5a1c3MW0wWUtoYU04UFZuZUxQSklnL3JKaDRB?= =?utf-8?B?MDZlNGRVbkh4TG5lN3dWRW9hdjAzdmI5clV6NDk5SnM1V2thVGwrL25GQ3FB?= =?utf-8?B?bDloWm9BNkhlZkx2elZydEtLYzdia2h0eVhESmtCL0U1VW9MM0hQaTRTTjlN?= =?utf-8?B?VSszMjhsZlo5dGpsZUN1b3lHT2lvMXlScmR1UGJRdzl0b0xFUVV2bVZuRkFt?= =?utf-8?B?NWQxdnd4SkFaN2l3bEVydXNVM1JBR25ySVczMkdEUVdrT1BIaXg1dkd5NDlC?= =?utf-8?B?QjFzUUtBRkIrdGN0YVRneU85blNkczAvMng4NmxYQWVuMTU5V3owMGdwTXFU?= =?utf-8?B?ZHQ5SGs5a2F4cnRtY0JmTXVVYnV3c0pCL1FNVGwremZJNWxCbnlLVU44SjVx?= =?utf-8?B?dnJ5TnJkUzVYR2dWTlh5a3NQS3g5Z3R6VWhkM3cwZ24weitFWXJUNFUxcVZY?= =?utf-8?B?bUJDbXFrMytNcmErblVvdWgwaEJLU1ZvUm80c09ZM0xMVzU0djc5V3NISXhW?= =?utf-8?B?S3M5UEFxTjR1U0xTTnFYdVl0eWZuWEEvVTJWMkp1cDF3RmFyRHhSUVRuZWQv?= =?utf-8?B?OGgxYVpQK2dJMi8vVkh5WTRxZ1dvdWJBVWYvOEZKelE5RGVkbnhjK1NHS0xj?= =?utf-8?B?Vi9oNHNvWGpJaFdMeEh2dlkzVjB6QzlnTzlqemFqVEhnWlNDcmxJL1QrNVRn?= =?utf-8?B?bVo1TGJMSEFZZFh5UUdsUWpacE45cC91N0krdnhqYmNkMElqeXVlYU9iZThj?= =?utf-8?B?ampaVEg0NmJFRC8yd1h2enorR0tHQjdNSW5pdGozeDd1MGZiMVFyemJadEp0?= =?utf-8?B?UTBIOHZrNlcxSWFrZFNjU3dFTS9EWU9tMzRMYUJrdEoyNUtUeGI0ZGRnRUgr?= =?utf-8?B?ZnBwZWtYNTVwdldPMnpZVTB1czFramFhVW4xNHVWMHRuaHZSeTFQeUI0enFv?= =?utf-8?B?TzNkZ0tkQmNpbkpZWVpDQWx2UnlKRDVOL2o0MDdiajJuRXVtOGEzRnlad1Rj?= =?utf-8?B?d2NWS2wrRWh6ckN0TVVkVG5oMy9obmJFcnVhRm1FSWsxTHkyWFc3eCtkcnc1?= =?utf-8?B?dE5rSTNzT1pMQ2ZiMGxNUzlPZ1g0OGlYZWR2RjlUUjJGT3daWVZTVGNpSHlP?= =?utf-8?B?MzhHN1JXVE9xS1Z4ODBCblhyeFBRaFpEalRjZEF1clJhRzVOUVJXTHR1SUpr?= =?utf-8?B?WEdPRG1SVGd5RjQ2cFJuRlZ0d1hBSTllZnZvVkUzYkhBdEZPNCswaUZDOTdY?= =?utf-8?B?NEZHa2RqTmlrKzFpZEhXUW1tdVlaMElTZ1A5ZktZTWpWR3VZSmg3cDV2NWVL?= =?utf-8?B?WG1teFhTa25oekc3TzJtWjhUYWFpSUNvUWJGTU05UHJ2VXFraEFzbnJ4aGd2?= =?utf-8?Q?HXpiCCogpAM5Pj+HHyQUf+3gvUGEkY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEN2VS9uQW4ybU9PYkV4T0ZaZXJuaGhkUVV1UnpoM0hzR3hvaC9oQjhteEFn?= =?utf-8?B?RTFFTlJPc0g5MWMzWWYrbGFCSjJ5ZmxnU25xdzgycEViVzA4ZkR3MlVvd2RQ?= =?utf-8?B?VGhWL3FTTkN5Q2NtcHl6WW1QaG1ubktIcGpsT2pHb1BWWlE4N1lWcXlXL0F5?= =?utf-8?B?MitMak5nUUFwb2tQdjliMFl0SEt0SE84ZDRXMU9wRjcwKy9XeDdtajBNcVhT?= =?utf-8?B?SVJEMmRyeEVvNnJLdllLWkFwT1VVNW0wamI1RzdwTEs3dzJnMlZWdVhTKzl1?= =?utf-8?B?SVk5MGNSenNQcWZHOTBBYUJnT2lOb0d5b0dmQk9BdlRCOFFDdHQ3VTFJZWZw?= =?utf-8?B?YmVKMGRzSDROQzJ3Zzk0RFZKRlNsQXBBMExyVWl2eUVTY1FwUmpNemEvVkgy?= =?utf-8?B?TVlFNjRFeDZjekRValNSRUZMY2ZjWVpsaVB1c2RycTNPYlhacG1ZaStyaCtF?= =?utf-8?B?Y1dnZXozV2tEOWNxaU1aaUU0Z211TEdOWExPNzgzZnR0cFZKdzNtUGJvdG5C?= =?utf-8?B?dTFDSWNvWVNHMzZVUVZMdjQ3VXZyWWI4T3BEOUlUTzlQMTF6ZERQakJ1MHZS?= =?utf-8?B?d2J1ZU1WbVVadUVsVUxmakh2NzBXckFTdzNZZ3BOd0RQb3JQalBFNXBmREJU?= =?utf-8?B?SzFvbGRMYVAyQU94UTlwYlhxaGJsVXdKenRFTmEzWXBQWEw1bUpmRFcvOE1s?= =?utf-8?B?TkszaEFOVm93eDhOK1VwYWdSZzRYZi9WaitDRUQxMmdLbk5SV0hCMGQ4T1BK?= =?utf-8?B?dm1KSEdIbmx5NEV4ZTdqSjcwTDNDQTYxTUk1NDRqNFM0TExRZFgrOGFmbkY5?= =?utf-8?B?bGpMMGt2UFpJaEsrUFBpZHhmdTM1Nkxwc01FcFhqMHRrYjdtcFVkb3VaWlRT?= =?utf-8?B?cUl6ODh0REY4YS9qeTdhYXUzNW9lQit0UnBzY3grVkdWZ2JySVZ3L0oweUVK?= =?utf-8?B?NytPLzBndmxna0JGSkdqUkRSeU9NTStaRGUzVUVmQmowV0tTNENxMytkTVQ0?= =?utf-8?B?VFRRZHBUTWlLMmtoRWVqR0VhV2ltcFk5cHpKNHJKeTNVUGpac0I3ZDl1cWFQ?= =?utf-8?B?RVI2cXRyT0xKTjRDWEF2eGNZeTBkeFF4bGJXa29JbWN5VjYyYjVKbDZMSkZx?= =?utf-8?B?TGE0TDcyYnM3Uk1MaUN5SDNxQmoxeGoyN3JFQWRMQTdjY0s2ME5oSGFBMDZq?= =?utf-8?B?aFNVSXFVcDJMTVQreVJ5djhTVExFc2FtZjVhd0NjTVd2Und3bEdLcllHODJ3?= =?utf-8?B?T2puMDZPYkFFb01jRlVrMTFxaDFobUpUREoxYmgvcFJwR2l4TS93N1Z0NnRN?= =?utf-8?B?RWtPSTZlM3c5anp4WGVicW03aThPS2NGeklLZXZCbjFOSE0wYUwvaVpGMVVU?= =?utf-8?B?NTlxRElvUUNvSHlzczVIYXU0c1BaZzcwZzRzZnFZT0pGMy8wd29ER1RtdUJr?= =?utf-8?B?WSsyRXdTN0wrb2QzUFNaQUl6TkM3UmNRNlpDSHBlRWowcVUyYkZWbGJHTVlM?= =?utf-8?B?SE9pNjRMRnRpMEFMaDVSdEFwL1g3WjMwWVZTSFFEUWpUNi9OSnlxRFpLWSt3?= =?utf-8?B?M3BFeGg5ZVJ5VW9rVGRVbVhYdWIxU2k0RFlUSWg3c1FUNlRCWkNqbU5tYlRC?= =?utf-8?B?SUs1U2Q0MGdkbEo3M1NyWGlGemJ6WXprSm9KRDY0ZEIwWFFYbmN2UW0xa1lD?= =?utf-8?B?V2JrRmZOOXcvV3E1c2lwRTk2dm56Q0Q0MFkwcUZSNGdPbzVVSHJadktIc1E4?= =?utf-8?B?L1dSVzlWZ2hva0dqd1dEUDR3enRZbVoxblBLU21KYWdKbnZsQ05XVjJEekZ2?= =?utf-8?B?cGVTZERSSXc1OEtwdGd2YjdUbXFZTTZXNVgzaFQzT2lWRGpHbmp1bWVlRERC?= =?utf-8?B?MVBWZGMzWGhzMXA3R1pYVDJHbmo1OTN2NTRhLzk2Nk1qTFZ5bUVjcmE2MkFJ?= =?utf-8?B?U2RNY3lSd29UeFJJM3BZNVp4TDZiWUhtZnBudktOUFhUMkVtaHo4VzNCc2dR?= =?utf-8?B?NTI1RlRuYmk4S2VGeWN1RzgxSWcyRld0NzNXTUhqOFFsTUpMVm41M1F5L1Ar?= =?utf-8?B?TmVEbjNhbkNJNGFXSEh2MkFtOVBPaE14cWdjL1I1bFdJMllTcy8rM05rMCtr?= =?utf-8?Q?TIcA=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 750783da-9108-4bdc-2099-08dde0efd422 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:01.8738 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7mWXyqdUyc2x/oSWmvM215UdggrxrLwr5+ipi/8r7lNNl0O1Pjy88+pq3gL3n8DL/gfGIpuUNZvIyeEI5ezMVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Use new v4l2_subdev_pad_ops.enable_streams(disalbe_stream) replace deprecated s_stream interface. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 52 +++++++++++++++++--------= ---- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 22e0021fab17f3c8e9a6c41c2f2109f5112dd6e5..922b59670383db7c920625f8a14= 9009fa4dc5f22 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -342,7 +342,9 @@ static void csi2_stop(struct dw_mipi_csi2_dev *csi2) * V4L2 subdev operations. */ =20 -static int csi2_s_stream(struct v4l2_subdev *sd, int enable) +static int dw_csi2_enable_streams(struct v4l2_subdev *sd, + struct v4l2_subdev_state *state, u32 pad, + u64 streams_mask) { struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); int i, ret =3D 0; @@ -359,28 +361,39 @@ static int csi2_s_stream(struct v4l2_subdev *sd, int = enable) if (i >=3D csi2->num_sink_pads) return -EPIPE; =20 - /* - * enable/disable streaming only if stream_count is - * going from 0 to 1 / 1 to 0. - */ - if (csi2->stream_count !=3D !enable) - goto update_count; + if (csi2->stream_count) + return 0; =20 - dev_dbg(csi2->dev, "stream %s\n", enable ? "ON" : "OFF"); - if (enable) - ret =3D csi2_start(csi2); - else - csi2_stop(csi2); + ret =3D csi2_start(csi2); if (ret) return ret; =20 -update_count: - csi2->stream_count +=3D enable ? 1 : -1; - if (csi2->stream_count < 0) - csi2->stream_count =3D 0; + csi2->stream_count++; + return ret; } =20 +static int dw_csi2_disable_streams(struct v4l2_subdev *sd, + struct v4l2_subdev_state *state, u32 pad, + u64 streams_mask) +{ + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); + + guard(mutex)(&csi2->lock); + + if (!csi2->stream_count) { + dev_err(csi2->dev, "Error: csi2 enable count already be 0\n"); + return 0; + } + + csi2->stream_count--; + + if (!csi2->stream_count) + csi2_stop(csi2); + + return 0; +} + static int csi2_link_setup(struct media_entity *entity, const struct media_pad *local, const struct media_pad *remote, u32 flags) @@ -507,18 +520,15 @@ static const struct media_entity_operations csi2_enti= ty_ops =3D { .get_fwnode_pad =3D v4l2_subdev_get_fwnode_pad_1_to_1, }; =20 -static const struct v4l2_subdev_video_ops csi2_video_ops =3D { - .s_stream =3D csi2_s_stream, -}; - static const struct v4l2_subdev_pad_ops csi2_pad_ops =3D { .get_fmt =3D csi2_get_fmt, .set_fmt =3D csi2_set_fmt, + .enable_streams =3D dw_csi2_enable_streams, + .disable_streams =3D dw_csi2_disable_streams, }; =20 static const struct v4l2_subdev_ops csi2_subdev_ops =3D { .core =3D &csi2_core_ops, - .video =3D &csi2_video_ops, .pad =3D &csi2_pad_ops, }; =20 --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013038.outbound.protection.outlook.com [40.107.159.38]) (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 BDF0036299E; Thu, 21 Aug 2025 20:18:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807493; cv=fail; b=XSE7KjVU50++An3DlDPXjPPAc2lKHEs+znIKQkN+VaSROfTnmWXMIObn6y2IlDxtyLJSXcWBUDA2FwfO4voeW/66oBlIfqBU2Q1zT72mIInCXXfQnrjiikRJ+weFV9qXCl5Glx9yUW07AIAue25QRvovaousnnYsDIruaU+7Su8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807493; c=relaxed/simple; bh=2JAIHEFQrhd+21GtT7n9tRcQtHZ9YpnHDYFZxXwVZAc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Bt1FltIXSt+zDqQ0HM5mfrCi0Wb14n0dW+f40yVP5bEfrhYrppGeaLwu3UgamBScSBtuozT4V4o6CGFj4GUtdFyHj68F58+IvjT0eF3pc/1VBvfr322fzX4Eep+dh4F1dX0A2KToN96fStGpcqiy6ifNOs2ZXneku40Ec7J3ubk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=LPw9cJwc; arc=fail smtp.client-ip=40.107.159.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="LPw9cJwc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QnkGb581cNuvcYnnc+CIUQzc4pG842Fn/XIJjdtLbKfEV4n0YTAbEcCZ5qeNiQj078b0beO2CamaixZ7fzvc33WZ3x6q5TYZDvDTpIO3+nz/sX3+nPZ7F9TSesZa8rbNE0ByPhfBztkYT/Je63Jw0CJHzTx+NomsHzIBAkWzLyomJlv8XxgZ/PlHB69oxGJF+YNgqbdHwT4yQ9+vGmrSC35aQ21gQMeKOpPyPUHRblDizbyFIce+gHGW6SMO674/ZFn/hLZn/3xJIpJSQ35ujJo6SGBzkPNKinhT6RkpPZbWQjump4ykRDWH7c+/oFg3ptKkIeO2ZLTih+tpe1HaFA== 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=l0PYI+idMCHYg37nxV/zzR03ZfHCPNM+JrWWe6uPtTc=; b=VfXUvLnPLIZJUn5tLn50GZsQha8xwSsDrTKBBCXyAdxldAITeBQG7dvaPgiYStuKgBskmaYjrvNk2BnsWra/VRU+oIqadmHAtQn946T1Z3OG3CyDkkNUbQ7KDzsgTuX3My6kxgZ8VEours9pPIym1nXUQKcWyJmF8VBidKmE0L5bpO6bjq7sfT+GoJL5ge9s0GQLAH3jZh6WGjqRkMHq7Z5/nw1e9zADxEW57ULZ6lCAlFzG0VPPK1hVJ+DlwNirMCm4nPYUaiG20adRPWRAzwY4ULM0xM0sM52NPvaGoXfrAh9P1x7n+6+nVkvTpa/VPicXjeGoWMCzNVmhdWIE3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l0PYI+idMCHYg37nxV/zzR03ZfHCPNM+JrWWe6uPtTc=; b=LPw9cJwcJ+f7tnrI9yzSKJFji/Y+GAyl086f6LyxIEHFc9oxxV0wJPJs9VOwjWrBqtk0jJGZX8sPBVfcWWXV2ZGlhFQjHDTRNZl6sFN9ys26H059x3dqlZz5PK2KTpscsckSMsbL1HtCQtG2wxdW4QSSO85TwXY6/N1oJdl/Ex07bk8t3PJUz8mxnuhJMkc1PWkuP8G3gj/1QN9+nUkDDTotarPskPlqPuGd+3bXBFMYaZaoITW5LGqueuH2pJlMAtU6XF9W+7rmxIjt9WMMFc4aNleNPNG3HZmHp5BbC+Ix8UgOAPNds1YKTe2d8f9gaEBuwo4SYpCJnqfOyHQ2vQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:08 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:08 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:54 -0400 Subject: [PATCH v3 19/31] media: synopsys: csi2: Add phy interface support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-19-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=5413; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=2JAIHEFQrhd+21GtT7n9tRcQtHZ9YpnHDYFZxXwVZAc=; b=czBQLnYLkn1pQIq+paXOPm48Ugr77D6bDcdlzjfJpLI/yWzThp8PZPydVayqeNKucJcJ8Vst0 mK16YSWmM+kCPT+uRMRSJ5RV2tDmcKWRSUxrArdsvtkkF2xTcdQAs9b X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ecd1766-8612-4b04-d685-08dde0efd7cf X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Zmt6Q2JaS2JvYjhFRWxXK1IwZm1VZXp6L0JQbFNaSWtKT3hlbmRwM0hhcDc4?= =?utf-8?B?QUkzZmx1RnlPeUJRL1JEa1JDWVgrUWhoVjFqaStzZ1I1THVYeHVzOFFSM29H?= =?utf-8?B?bW1oM0pHR3k4WUVkN0p3SXlSazRTeExTQ1dSalN4eUppV0FGbXNaVUs5VDQx?= =?utf-8?B?dzhrZGlUdVJmZzlmWXZjWEhNQXV6NVFuL0ZKQmM3UVlEVHU4UTF3NEpzSEhD?= =?utf-8?B?SjBTbTdxRzk3aEZ6b0V3NWxreGdpcGhzQTMveTRlYitBTkZsWktxSkhjenU1?= =?utf-8?B?RUUwdFphUU9reHgxQVRkQTB3VmxERkE4OUY3U2VXZ2pxbDZ1MlFkdi9YMUpn?= =?utf-8?B?OTEzWE9pMGR6SHRNSG1SSEFsWWF6QTZrQ2NhSXdDZFpNQmsxczhFN2p5V3Nu?= =?utf-8?B?UUFhZ3ZUcDVpbVErMnl2V1NYSjRjSkN0L285aUdVbCtHdXEvRXlmN0tuc2pV?= =?utf-8?B?OGhRWWV2bGNlVTNYOFhkRjJrZDNWWXh6Si8rNmN1enU2c1cyRXo0QjdZK1Zy?= =?utf-8?B?TE5rVHJCYjhlbml1L1lCSGJmVGlEc3psTkxuM3N4RkpWQTlWNlBwQ2tnTDU5?= =?utf-8?B?NUlXb1hzTzNhdUFTc0VIMXFkSWovQjVhaWNOK2VYRVRUYjZ4MGU3T1lGbWV6?= =?utf-8?B?ZXI2SjFwc3dPem9CVkVHUmpNODBuYlh2VWtzM3QyOWRyUldMNXYvcnFnWE8r?= =?utf-8?B?djI5cHU3MzdIeVJJdmNWdWFOV0lKU3I1bWlvRDZacEV1ZVplb1Y1cWVSclJj?= =?utf-8?B?ZUlwV0JpdVE1Uks4RDVFaWg2YUZEdWVGYlB2Rk1uejQwRE5FdlV4eVhOV080?= =?utf-8?B?R2gxa3g4OE43N0MvL1M3Qlh6VFRhRWJUYy90Q0JKYktrU2V1ZW1TUDE1YTk0?= =?utf-8?B?M21CdTBnMys0aWgvV2ZxZWxiYWdlUjBvM2pRNTI5MlNCVkhtUDBCWUl0YlNY?= =?utf-8?B?cHhBOCs1Yk53UHM0K05yc0F3bUliZHZ4VnVBa3dwRUtmY21VNUNRWW9vS1FF?= =?utf-8?B?VWY1Q0lZeE5zb21OZVdSSjR5SDFJSlpVK3RsWVo2L0R6SjdIcVZRQUVFNTR2?= =?utf-8?B?TE9IaVBCSVpraGZiaU45eitsRU9FVldMSTJocGFjWjlPQlZ6VVVQZ3VoN1da?= =?utf-8?B?cGJCd2cyQXJpTVVJa0d2bndxWDJzUTU4aXJvTlprSEtOa2o4Q3FxdzVTMGIy?= =?utf-8?B?UmowZ09jTW5jaHdCSTM2bVIzVVJDZ2MyWXFpS2pOa1pmck9HaVkwY3ZFSzNx?= =?utf-8?B?UGhiV3ZzYy9QbmVKdS9sMlUxbnlDM3hwaUhSWHFRdkJsanBoY3llczdrWS8w?= =?utf-8?B?TWVUUXdQNktINzFmWGtod3owM2F4OC8xbnc1Z2tBS0Z3b093R0FrM1FjSEN1?= =?utf-8?B?N1VPdElIZm5GSHluTDNiUHhna3FEMVFjU2VVRFIvTEpJVzA0Z3pWemN1R1RG?= =?utf-8?B?ZjBLTUJuZk1iVWlRcjd4R0lJdU1YVUFEVVpIRm5INXRzc1FWQ2ZlWDc4VENP?= =?utf-8?B?MW8vTCsyWGZWTmNPQ1B3V2xEbmV1M2k2UTV2QWY4UjNoMGhWOTZNbVJ5WUk1?= =?utf-8?B?aWI0SVhhcHhVTmxKem5iNFRWa0ZJWUlhSFRqaVF4cVQxcXhIK3REMmlQYXp4?= =?utf-8?B?SHMxL0gzSHNJWDhXTW1mYUhidVFwTWlYU3BhK0hqcVFUQ2w1aW1xYzJrR0JD?= =?utf-8?B?Vm10WHZMakZGUzNacW13SE95SzAxRklJRHdZUElHb1puVHZHWFZDY1lyVjhT?= =?utf-8?B?WkhUbWdFS0pQZ3liankrQ2xMUFhOSUJBSXh0by9ld2ljZ1RBVDNoNTlFZzJp?= =?utf-8?B?ZG55WE5vb0RLSVhndkdYb2lsVFJaYm41MTdBOUExa1NLTFEzUk5NY016RURv?= =?utf-8?B?TFpIVFNpUllGZlljc2FHTUpCL2lEZmhnNGgvbVdNTzd6cnIzb2lHZFpkUUtv?= =?utf-8?B?aml2MjA5dlRhMDloTDEvaGcxTUFocDIxZjRrd3plc3NVSVlBK1JGTG93Kzdq?= =?utf-8?Q?T1KGKr7p0UHqN3DEBEYBcsi8g3JKRg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eFZMOTFVMHVYeXRwSTNxVzBzdDVGdDhKQ1Zxd3o4Slk5VE5YbFdmV3dGKzNj?= =?utf-8?B?WkVRekJmSXFhZFJvbzJBaU1WZ1ZLbTN1VGZyamhOTE1iTEJna0I4ajlYVUtE?= =?utf-8?B?M3Z5WlI0dUlyelhFUy9sZkNXdm1Xek9qcUlvd24rVy9yTnRpazJqSWNKb0NK?= =?utf-8?B?WTBrUFoxM1JvTXpKYUI4NktQb25xQkRZTjFJNVRla0NtTXo0Sk9UaVdjNjll?= =?utf-8?B?Zm9ka1F1MTViUVlqcW9YYVhJUVduby9JdHI1OEtQRHB3Mkx6VDJpM2p2TkUy?= =?utf-8?B?YUFMaENwOXNFTW5vVm13azVrOGU2d05tMlRlOHJrTk9kSm5id3EvZnExV2FC?= =?utf-8?B?eU5lVEEwNzN1dTY5T1JSTm1CRzVERjBYQmlpYkpwcUh3dlFFOHdnNThMbHYy?= =?utf-8?B?RHZTVG5aMkdQMW9DR1JyWmo5QWJtN3RyU2p5YXp5bVVOVWNlaHM3U1JvNVpT?= =?utf-8?B?YTFCdDdXN2ZmcVBIZnRIQnVaT0lacXRrYmcwSVZiVEV2TFFVOXZnMzZLUyt2?= =?utf-8?B?OG9uRjlEeUdBMTNVZTdOdzJuY0I5ZG94dU9NQ1RldUk0U0tiRWJuVkZqT1o1?= =?utf-8?B?UHFYazN1eWxEdThpWG83dzJBK3RWUU8yWG54SXU3YjFvQ2NZWnA3OG1QY0xl?= =?utf-8?B?SmNvM2ZoUUpzYUgxS08vVlpzQSttcGhtelQ2T3FuaHBOSVAwQlZvdXVQSktx?= =?utf-8?B?dHQxOWJZRmIwWW9EMVB5MFlkWUowVWlnWFZvN2tMU09nL2lKOHJmNkNSSWJG?= =?utf-8?B?OTlrcVVDRm04NEV6NXFkUTZQWWg1cXF0TTZVL004RjdNMXpKa3lzM2xHR0Zo?= =?utf-8?B?U3hoNzI3cGZ1NFExWFV1Qml2THp4bW93cVhjTXgyeVFUaTBaektsTFBFWEpU?= =?utf-8?B?b3drS3VEQzBDdWtRSnNoWVRTbkdHV1gxNmFiQ1dIUEphQmVEQUlyeDAxOTA3?= =?utf-8?B?N2FGY2tTOWVQUlJZai82ZU8xamRuMGQvdW03N1lPWDZwSnBnMzFjVzlwa2g2?= =?utf-8?B?WHEyWnArdXBvMThBdjlrT1NTYVFhS0xoTnZWK0JsYWxORDVjNzNjTGJVa2ZU?= =?utf-8?B?eW5zdmxyV3dtL3BkNzkvek5CSWdWLzZnNXM2Q1l4Tm55cUtZYTBTUVllNmNh?= =?utf-8?B?UUZBZG14UXcyajRJVm0rSnlZc1MrVFdQNWg1dndhZHNPaWpUN2ZnZHBQaUFE?= =?utf-8?B?bWpTclJKbUFDZGZVMUdRWngxQ1FDSWg4S3ZIakNBbGNIUzN4OTViOTFYQVpV?= =?utf-8?B?U2NybC9pTjU1MFJYUWx6bnR2OVdjS01EK2JjdkhMQ0hMQ0dmZ3RWU2YybFdu?= =?utf-8?B?SlNkd0wyZGhEQmQyQ3J6T3ZMYWd2QkxQbDVOSjl2WElCTVlQeHBOMHRvVDdo?= =?utf-8?B?UHhKY1JFOXR1S05VV0NxRWVEYm1FQWl6ZzlHZFhoUkQwaWtCTTF2T0V6ZmRj?= =?utf-8?B?V1pMUEZ2N3JyWVNhOS9ERGRKZXdhSGxYUnFYOERrM0V3Y1dONmlLQkIwcm9N?= =?utf-8?B?TFQxZU51eEM3czdlejNGcDhqZFRMR1VHeGlDRkhZYU5GWVIrd0FHN3J2ZDNL?= =?utf-8?B?clhHNEthQkIydTU4OTYyalZNNWpxbkdPY3diY2ZzMTNOaUJ6d0U2dm5kR0dt?= =?utf-8?B?bjVYTFFpQUFEaUNZWktEYnBvYnU1aVlDWFF2MUlTYnpJUXlnUnFVUHZidjA1?= =?utf-8?B?cURXVFJvMTNnL3JnZVJMTjhvT040TTdKdlRwZjZTZTlaTkdRbFdlYmpnTmRj?= =?utf-8?B?SjFNaVlSTlFWSHdIWkVEb09QN1M4NXBsMFpkaFhWT3lUckxwSFJnREYwU2Mx?= =?utf-8?B?L3VKaGtBTkwyRWFMVExvdGJRK3l2ZnJ6dHpGeEs3N3EwWjZERkc4ODVUaEZN?= =?utf-8?B?RUhTNTBXbjRBSURwU2d2Q0ZTc2dBQ1djM0pOclJvb2cwbkFuNk84UWVtY0VO?= =?utf-8?B?Z0ZmcTBFWTJrSCtiQXlWeDZPYW1FZDN3NTFiSWowbXpTL2JWUmpESkg3VEta?= =?utf-8?B?TlZSd01rVmEwN0g0bGw2MU5pcWZrR2VTTFR2MFJNeXlyRlZ2Mm52SUE1VUNV?= =?utf-8?B?TFlINXJlY1NodlJrcmFKQVlGYUovMVJFZElrOUNiekxLV3ZTNXVFUnZEM0Zn?= =?utf-8?Q?cKDo=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ecd1766-8612-4b04-d685-08dde0efd7cf X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:08.1197 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KVjgNg/DfojFzAivPCP7zPT/pXxOpD9WEXDv8XOYHD+YXNsuOrLf747GjN0ri8Rum9Tx5cUemHCUFOa0rUq+Cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add standard phy interface support. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 91 +++++++++++++++++++++++++= ++-- include/media/dw-mipi-csi2.h | 4 ++ 2 files changed, 90 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 922b59670383db7c920625f8a149009fa4dc5f22..27d802b3c3937473c8e08defa66= 1b55b0655f758 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -268,7 +269,63 @@ static int csi2_get_active_lanes(struct dw_mipi_csi2_d= ev *csi2, unsigned int *la return 0; } =20 -static int csi2_start(struct dw_mipi_csi2_dev *csi2) +static int dw_csi2_get_dphy_configuration(struct dw_mipi_csi2_dev *csi2, + union phy_configure_opts *opts, + int bpp) +{ + struct phy_configure_opts_mipi_dphy *cfg =3D &opts->mipi_dphy; + struct v4l2_subdev *source =3D csi2->src_sd; + s64 link_freq; + + link_freq =3D v4l2_get_link_freq(source->ctrl_handler, + bpp, + csi2->data_lanes * 2); + if (link_freq < 0) { + dev_err(csi2->dev, "Unable to obtain link frequency: %d\n", + (int)link_freq); + return link_freq; + } + + memset(cfg, 0x0, sizeof(*cfg)); + cfg->hs_clk_rate =3D link_freq * 2; + cfg->lanes =3D csi2->data_lanes; + + return 0; +} + +static int dw_mipi_csi2_phy_prep(struct dw_mipi_csi2_dev *csi2, int bpp) +{ + union phy_configure_opts opts; + int ret; + + ret =3D dw_csi2_get_dphy_configuration(csi2, &opts, bpp); + if (ret) + return ret; + + ret =3D phy_init(csi2->phy); + if (ret) + return ret; + + ret =3D phy_reset(csi2->phy); + if (ret) + goto exit; + + ret =3D phy_set_mode(csi2->phy, PHY_MODE_MIPI_DPHY); + if (ret) + goto exit; + + ret =3D phy_configure(csi2->phy, &opts); + if (ret) + goto exit; + + return 0; + +exit: + phy_exit(csi2->phy); + return ret; +} + +static int csi2_start(struct dw_mipi_csi2_dev *csi2, int bpp) { unsigned int lanes; int ret; @@ -277,6 +334,10 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) if (ret) return ret; =20 + ret =3D dw_mipi_csi2_phy_prep(csi2, bpp); + if (ret) + goto err_phy_prep; + /* setup the gasket */ if (csi2->config && csi2->config->gasket_init) csi2->config->gasket_init(csi2); @@ -285,15 +346,20 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) if (csi2->config && csi2->config->dphy_init) { ret =3D csi2->config->dphy_init(csi2); if (ret) - goto err_disable_clk; + goto err_dphy_init; } =20 ret =3D csi2_get_active_lanes(csi2, &lanes); if (ret) - goto err_disable_clk; + goto err_active_lanes; =20 /* Step 4 */ csi2_set_lanes(csi2, lanes); + + ret =3D phy_power_on(csi2->phy); + if (ret) + goto err_phy_power_on; + csi2_enable(csi2, true); =20 /* Step 5 */ @@ -322,13 +388,21 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2) v4l2_subdev_call(csi2->src_sd, video, post_streamoff); err_assert_reset: csi2_enable(csi2, false); -err_disable_clk: +err_phy_power_on: + phy_power_off(csi2->phy); +err_active_lanes: +err_dphy_init: + phy_exit(csi2->phy); +err_phy_prep: pm_runtime_put(csi2->dev); return ret; } =20 static void csi2_stop(struct dw_mipi_csi2_dev *csi2) { + phy_power_off(csi2->phy); + phy_exit(csi2->phy); + /* stop upstream */ v4l2_subdev_call(csi2->src_sd, video, s_stream, 0); v4l2_subdev_call(csi2->src_sd, video, post_streamoff); @@ -364,7 +438,7 @@ static int dw_csi2_enable_streams(struct v4l2_subdev *s= d, if (csi2->stream_count) return 0; =20 - ret =3D csi2_start(csi2); + ret =3D csi2_start(csi2, media_bus_fmt_to_csi2_bpp(csi2->format_mbus.code= )); if (ret) return ret; =20 @@ -682,6 +756,13 @@ int dw_mipi_csi2_init(struct platform_device *pdev, st= ruct dw_mipi_csi2_dev *csi if (csi2->num_clks < 0) return dev_err_probe(&pdev->dev, csi2->num_clks, "Failed to get clocks\n= "); =20 + if (config->has_phy) { + csi2->phy =3D devm_phy_get(&pdev->dev, "rx"); + if (IS_ERR(csi2->phy)) + return dev_err_probe(&pdev->dev, PTR_ERR(csi2->phy), + "Failed to get DPHY Rx\n"); + } + devm_pm_runtime_enable(&pdev->dev); =20 return csi2_async_register(csi2); diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index 3d70c1f4f38e7d663f9b043d8903ce57d630d1b1..14a80c09fd273c334f91ea70d95= 5dcf92b6646ce 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -3,6 +3,7 @@ #ifndef __DW_MIPI_CSI2_COMMON_ #define __DW_MIPI_CSI2_COMMON_ =20 +#include #include =20 #include @@ -25,6 +26,7 @@ struct dw_mipi_csi2_config { int (*dphy_init)(struct dw_mipi_csi2_dev *dev); u32 num_pads; /* Max 64 pad now */ u32 sink_pad_mask; + bool has_phy: 1; }; =20 struct dw_mipi_tstif { @@ -56,6 +58,8 @@ struct dw_mipi_csi2_dev { struct clk_bulk_data *clks; int num_clks; =20 + struct phy *phy; + struct v4l2_subdev *remote; unsigned int remote_pad; unsigned short data_lanes; --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011038.outbound.protection.outlook.com [40.107.130.38]) (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 972633680A4; Thu, 21 Aug 2025 20:18:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807498; cv=fail; b=Fhnac8gfF0MDyGTvlXcStCkOHpET4Eoveq9vSCXK84/jgopbxTuxmBoaIT8KGDuq+dtsKIx1FLxeYrRx+CBC22PwdKf4hMthYkszW94yzFw67Uyd8dsm1UdBQG/QNJl8AOxcUZ47/42gQtHRFwCTXhrNeLpCZHcCQleJYGswAYY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807498; c=relaxed/simple; bh=ruG2lhUDHzbRrGvdPAhuLRac1hQVOVwE3mtNG5WGA0g=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=P4c2oko4Br7CxqRlYgc/p5geYkDC7gSo0kjbVNdjf2PiSAgiJNuGqYuf5VOOdyniZikq4S8jEtgbOlTBGIvMESwF4wkdCCo5ih/RFE5JTxq5vGxI8kC3xFaUSKfggZDQk8zIggc+l08bQueR2g5vT6fOKBELmqH9ou+KY1GVX6A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Xm21HXkA; arc=fail smtp.client-ip=40.107.130.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Xm21HXkA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OnZQukLfL5K1WgJ6Fu3Ee4M8vjJg2k58Q4VbFYTnr1J8l9XAN1ZUMO7pre63lSbCenfyKmTbtI1yzRvTDiSLcwLDq8Mn9WGE1r2Qq+OjIwfI7rQfi55mvpkkXg0F7385lHReurpk/dU7A4IXk9wLqDbiaS5hKue1sf/FGMHsT9IrcuIifefVSWI44sy2wVpvF7RJcvDFmeXyr/R04iGVFQ3y/dO6dGZZNp7++RWYeXe0Gb3ZJBHBDa0VdR7IFK0aWd3TlgsxTwIKmz6++d1PjSv5qS5vaXBvVjB2Fr1XSnOlh9arNmTkGmocE5dPmatCp0C/Cekf7IhJ1Leb1hfpqw== 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=Psb3D+gt3jkvMGppWY0gPihInyK2SN3GQVGYGAOi9tc=; b=YqIpqB7gYFM069bSL7r96wUKt+2V97ljEHzI5Abpz0YqoGL5fhpEbvn1l3wcu4GVEi5UMoU1epAwauZrQMHH+38uDdQ5u2ltSSDmwIHngXKDbvHjb3jvDa+ueitmbXBL+eonuh6zWH297CGASNOwwTEBM945xj1zmNlu3orarYSSK89DJNR2TJtyvInu9rEms+IyPHbBNA3SsZffBLfTgz3DrwgoQM39ilQqAIde6bWej/BvVZll19+4vg+x5rTJdHJg0sbIFGPbY8jryDOvbilYiyEpPuV4woFvnpnnREYnAyRSNB3zJari3ZNFV1InHS7uTtp6Tx787jf7YEpm6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Psb3D+gt3jkvMGppWY0gPihInyK2SN3GQVGYGAOi9tc=; b=Xm21HXkAn0YXdcnsLrDcgAGoDvzUNkD31CRnq+Uq6uzX+w05IKVAuXJyjLLZqhqZyly4sPVOpjG+TkEK6x4w0WuRB2Q29VwD9Gnmlz7Azb6h0MwAO1BRXa8tbNeMO6Hp0QI/0Nxg7s5ndl996v0ujxOfVGJI8ncECPJYP5zcW7nHfXOy1bO79LLHdQzC4Db4dd4H1Z42n6xE5VoQjAqYcY7LFWZcaadnM5725BJuHOb2LVOc41gSa78DBNqN3vD8tqU3jLwhHAcsiptX/SoiAfjBPhXQM59d8wrm7JQ4nhqm0fnIte2jw+eoiYUZKfHeJrVpSH3csU4f+gXQ4eHkug== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:14 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:14 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:55 -0400 Subject: [PATCH v3 20/31] media: synopsys: csi2: Add basic v150* version register Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-20-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=2430; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ruG2lhUDHzbRrGvdPAhuLRac1hQVOVwE3mtNG5WGA0g=; b=2skz0IbXFPpdGvkyPOioQ+DXRfBTaVCxwVTswwuWSHCglsWSe2/GhwupIGQRYhNmdir2XVcCZ 7d5wVIbc335DSHR1nMepW+4l12bN7HWewGdRVyzucudddGfna8djO1U X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 1dd9c6e9-78fb-49bc-1d2a-08dde0efdb80 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VEFDWjBkQUF1YUxLWnJrVlhjSG13M2pLejFmQlcwbUk5aE0rSXRVOXNHb3ZS?= =?utf-8?B?bzdtZm95QWM2V0lIeENRU0xiOFdJR0xrT3BsZjRMZzU0V2ZnaDdXR0N1L2FK?= =?utf-8?B?RGxvN056bVZtSXptTC9nbzY3bWR5RXNoMlUxdXVIOUJhWmZTaEwxM1pCMWdt?= =?utf-8?B?T3Jzbmx6SEYwSjJWcyttaUdhVDlzeUpZSm5CUThlMG10MEx5d29kbys5VGJH?= =?utf-8?B?WWtKRVlJOFcxdGR3Tnc2SHVLYUhZeTIwb0Y5ZitGaE1rZEZJWWw1aDkrWnhD?= =?utf-8?B?RHZQdCsrRnhWSGNnTUxVNmJJaCswc28zVUJVeWdyN2RqUVJPalZxeXo1N3RO?= =?utf-8?B?OStsQXFUbGJDdUtCanQ4V21PSTA0STdnUWp6TmFuNXBSS1g4YmxiZFFWU04v?= =?utf-8?B?MEpiVUFiVGFoSkVrTm00aUIyNVZwWkxwMW8wWmRSQVBKVktVeE5iT3lpUW1D?= =?utf-8?B?azV6SldSOWhPYzUxb2Q1MTh1VzM4dXBVeG1nVUZNR3hOUTlTMkdFMWQvQXIv?= =?utf-8?B?M3NiVmlmSWZ5dHhiM3oxRmd3N040SVYybEhnQ3k0WHZXYUxHZXhjMlZ5UGpj?= =?utf-8?B?ekdUWHZXSGhMdDdYMVlpV3ZWVXdQTVdiVDVBWG5jOHM0SU41ZjIvZzR3cU0z?= =?utf-8?B?eklaYUI2RzB0bnJmbTZ3ZVVrbnJ6V1d3SWFIR0hmS1FUNXpMY0dENEdwSnBk?= =?utf-8?B?RWNEYjUvckpwK05OczBwT1BzRVozbG1xYVJKS0czZ1Q5eUxxQWo0MzJwT2Iz?= =?utf-8?B?Zm1lYjlzRjF6a3ZUQVdyenRSNTlwa2taWC9YNk5IdHVqTDRhU0dVNFFhODRo?= =?utf-8?B?Tm0vd2pCbHNpZXhmN0V6OFhzZlhrVFpzbnpmWWR4ckVobWVhZ1R3MjA1VGpZ?= =?utf-8?B?R2tsYXdDZXprOC9rWG10dHkxUkRiaHB5ZW1RQUZPWWp3RmFkRWdJa3pZYnpq?= =?utf-8?B?NlcwZ2ZCWi8zTWYzaEluWWREVkZ6Z0VGZ2c3RkVvL0ZXeW55TndKY1VxUzk5?= =?utf-8?B?WUt1MFYzTVFjT01wODZjZVBYd1RWbEszc1l4RlVEZGJndVhDV1VRbFRyVFk2?= =?utf-8?B?b0grU2pwTnMxZ2pmY0VGK0ZJUng5WlFQaHgwM2VtTjBxcnVzeWE4TVV6NFIz?= =?utf-8?B?dkduVG13cGlLaEtMRVlyODN2QnRnZjJKc1BpZm83YnpQdnFQMFk1KytYVk5H?= =?utf-8?B?VXFkbHhEWEhxeS9RQU91V1I1bXlwWXMzT1hRa0RYZXk3L1ZwclN5c0VTQ3Q1?= =?utf-8?B?RktkSUZnbnNKZ2d5cEFxVXpFWGNaTnl0SFlsNE1aQUIvRTB1SXdmcVFXdTlF?= =?utf-8?B?YlZYYW1Sc3RBcnl0MFA1ZU5jdkF3a3pjTGtnMFp1Y1Q4NE5PSkFTdnJSRHVU?= =?utf-8?B?UzdRVmxEVWl1OHlOMXg2UmlobWtDbm8xMHk0cUJIZnJ5RzkzMXhWN1VhL0FN?= =?utf-8?B?SUwvUCtQQ3cydXB2WXlLOVltTDFSUlhSNC9KRjVwcW9XZHQ1K0tMQWV3Ymc1?= =?utf-8?B?Z3FUd1duN0t6L01VYWdhNnFFZG9XQkt1cklGOU4wQzZOVVYwRmttNnBYYjA3?= =?utf-8?B?amI0M0lBQjAxVWJXWjUwTkFyWXhtQ3h5ZTFGaGFpMU5QaG9EcnhNVWkyRVBv?= =?utf-8?B?MXBBZVBKRFpCVngxVjBTSUZKK3RTV3RyQ2NYbHlpYVlvWEI2bGVHdHVGWEFK?= =?utf-8?B?RVZ4QjZ0bDlHSGZFQUxDVnRqQ212U3JPSXQvYmcvajhVYlVYcmtNVkp6K1RG?= =?utf-8?B?Z1VYSjROOXE3TzM5NXRoUUZoeXJBbE1rQS9UOEwvYnk2OExoZlgvSEJCWkh6?= =?utf-8?B?anRXRGJpL3VzLzV4MzcwbGhGUlVoOUxVZnY0VC9XMUNHWWRIWUt4cWg1VGl0?= =?utf-8?B?K1hvT3JreWdETjZYTVRnbjlFZVlOeXBRZ215bVRmb2VnZTE1aXBUTjliNDBF?= =?utf-8?B?ZjdWY0NEckQ5ckVQR3hJR21CcmwzRlBtY0Z4ZVorVGUzSFN4bkN2anZlb2VW?= =?utf-8?Q?BTdXmCF8J50y9fslOoXNv1eMdtVROg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SFFYZytLNWRpTi9mYzRseWkxSU9VOTYzdVZTcUVyVW4rN2I2dlA5cWhsRDEx?= =?utf-8?B?bHljaDM4TENWeUNJL1NsM3JVMGQyMUFjV1NnR0txaGpRSnZYMHM0UUpsbGpJ?= =?utf-8?B?c2trYWlGTXd5R0sydE1yNXlZekZaTExKMVN0cWd6QlYxSmlsZXlrWTZqbDQ2?= =?utf-8?B?R0Y0aC9HbkN0RHFBNDU5VGpIVVVJMWF4MmdiOEw0MlcxcXFta1F5bVQwMzNn?= =?utf-8?B?blM3UG45RU9JZmlIZjFZcC9NM3oraW5qSks4bUpvMWxnYys4U3IvSFhHSnNJ?= =?utf-8?B?cEJyQlovSml4MXJ5RUp4S0hlamZ3ZkxKY1RQOWJUSlBvRjJJeG5BNmlCVnpo?= =?utf-8?B?dkFjK01TVjJ4eXpOcHg1WG16SHRwSUJyTjcrcFhFUVlhVlBkYUpPRHpvSzZF?= =?utf-8?B?R2hRR29rM2F1MytVOTRnQ2VvdFlEYVdHMVhpZFM1a2JzY01WWEU2MFcreDA3?= =?utf-8?B?K3plM25heVhXK2NMOVVxYXZTQWZxZEdQcXZhc0JDNVVZMWppV1Q3SUVkRzBx?= =?utf-8?B?ZnZYK2hwZ1NqQVBPdVdpTEpXZ1p6bVdaLzZOTFFuektMcWpFWUxHUEllMHdm?= =?utf-8?B?a3RsbkFXbjZpOWRVZlMzbEFIVTlqOHpSM3JyU0R6dXhVK3ZvYTFBeE9DWmUw?= =?utf-8?B?WW00d0JtdXh4cUxWaVFOcDQzOGFrVkZERTA2RlU5YUtFbmxmcnlhODZrYWVX?= =?utf-8?B?ZFhNb3d5WjZLS2RvdDZtMFZzc0FHVGdiVGNBSG9JdzIwUHN5ZS9rUk5JZzQ2?= =?utf-8?B?K0JzS3hWUGI2WHEzd1hHTHdsOWV0RmFmS3Z6ZFFma3BzQk5zeEVCVmoyVXI4?= =?utf-8?B?ZlNwVnB1ZEd4MGQrWDNod0FTa0JmVUlxVzJWd1htelBVS0drSDNpQlMvUzd2?= =?utf-8?B?aEdoR25oaHZ5eXhMaml3K1g5UVNoWnBIT0c4Z0tmczFPckZrRWhpMWNIS0Nt?= =?utf-8?B?akdnTm9BVHloUjFpQ3hFTnQ1aTIrd1JGV0VqUzRZWFlzTk80Qy9vQ21BTGZr?= =?utf-8?B?eG5PNWVUMHlydlpPZkpKM0x6TDBFVzY2R0kvQVBVakptWGR2ZVA2SVpiZkRN?= =?utf-8?B?d0dQQ29TZjZTSUJGVGpQVkhBTDREQ25ZallZTUE2ZHNpc1BIZlg1TnJ4MEhz?= =?utf-8?B?V3RQYWNBdDJiUE9zSC9EQ2pUazZGS3FzVHNibUxOSVUzTHhXQXUwRGJxcTlJ?= =?utf-8?B?a1IxajFnTFhxNzZVdFYrcHlQUWZ0dmh6QjhTQmwrQTV6dWhsWFpCVEw1dS9k?= =?utf-8?B?SHEvOUtQMlpkVjJUcTR6REdqeUs1QUsvaGhlSmFKT25CUld2TjVTTmFkN09i?= =?utf-8?B?a3JGTEhocUVwZTdCc212UmErcldDY2MwS3VUWGUrT1FOcnJUUFNLb0NZT25U?= =?utf-8?B?OWN1c0pYNTFtRWNVS3dLeTdjUFRXSHp3OTBwSXcraTY2eEpBOE9oblYvODVX?= =?utf-8?B?cjI2ZGIycm13Yml2T1h5OG9iNFBVQzR5VDRPQk5QdWNGR29Cc3lxUUlCdXNy?= =?utf-8?B?V1h4K2llTFFpRFNDS013ZjNWT045dzcyZ0t5ekk0eU44UTNBSC92ODRWZUxG?= =?utf-8?B?ZVkzcFQzSnR3LzdMaFBWbjBpWVVnMDRPNHFCYmVNMFJiU01KWHBPeXhudVNa?= =?utf-8?B?M0lpbUxRdnd6c1E5NzZManF6TzBQTkVaVlNCWkZHd3N4Y2gvM2hWbTR4MjFD?= =?utf-8?B?T1BncWZ1ZU1oTjVYbzdoNitSREUxYmNUU3B5a1lKc2YxTFFZa3VYYzh4Y1Nt?= =?utf-8?B?SVNFKzV2N2RuMFViM1FMT1o2RW9BekxwWHE0NEZFaGt1czBPdFZFQ3ZUVXFy?= =?utf-8?B?NkZSeSttNkJwV0xlZG1nRHFWWU1wT0pMM2k3cUhvemR4Sk9hVVZ2NC9oMlVo?= =?utf-8?B?NzBMcGxwOTV0QkdYYUMvTG1QTnlXbGQvMnBDUmVFS3ZaU2ZTNXA0UXMzeHJn?= =?utf-8?B?eFV3SjVDWjdObExSL1BrbHlMcnZnMXM3SGE5Y1ltdU9zbVoyK1FYcTRTbXNv?= =?utf-8?B?dVZ3azVLeFFmUEduaHI5SmU2ZTY3Z3N3azdodWxWVWF3VDQ1dW5uQTBadllC?= =?utf-8?B?TCswSVpCRytvSmhLbHFtL1ovYjRJVzlOeEVua1NvcDFZNWpkd1F5RkUrL2or?= =?utf-8?Q?KSuY=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dd9c6e9-78fb-49bc-1d2a-08dde0efdb80 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:14.2393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rHpO4/H+WT369p7qJWQHjhG6LPONqrYpTDikuxZ4thy1WIEw6ratrksMVkskVKbni5n5bH/0TAsqhcyS96U9Vg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add basic v150* version register and auto detect IP version by read version register, which located position 0 for both version. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 37 +++++++++++++++++++++++++= +++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 27d802b3c3937473c8e08defa661b55b0655f758..4d67ab978db56d8075824ba5158= 76193499c0c97 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -61,6 +61,19 @@ static const struct dw_csi2_regs dw_csi2_v0 =3D { .phy_tst_ctrl1 =3D DW_REG(0x34), }; =20 +static const struct dw_csi2_regs dw_csi2_v150 =3D { + .version =3D DW_REG(0x0), + .n_lanes =3D DW_REG(0x4), + .resetn =3D DW_REG(0x8), + .data_ids_1 =3D DW_REG(0x10), + .data_ids_2 =3D DW_REG(0x14), + .phy_shutdownz =3D DW_REG(0x40), + .dphy_rstz =3D DW_REG(0x44), + .phy_state =3D DW_REG(0x48), + .phy_tst_ctrl0 =3D DW_REG(0x50), + .phy_tst_ctrl1 =3D DW_REG(0x54), +}; + static int dw_csi2_reg_err(struct dw_mipi_csi2_dev *csi2, const char *name) { dev_err_once(csi2->dev, "access to unexisted register: %s", name); @@ -697,13 +710,31 @@ static void csi2_nf_cleanup(void *data) v4l2_async_nf_cleanup(&csi2->notifier); } =20 +static int dw_detect_version(struct dw_mipi_csi2_dev *csi2) +{ + int ret; + int ver; + + ret =3D pm_runtime_resume_and_get(csi2->dev); + if (ret) + return ret; + + /* version is first register for known chips */ + ver =3D readl(csi2->base); + if (ver >=3D 0x3135302a) /* ASCII "150*" */ + csi2->regs =3D &dw_csi2_v150; + else + csi2->regs =3D &dw_csi2_v0; + + return 0; +} + int dw_mipi_csi2_init(struct platform_device *pdev, struct dw_mipi_csi2_de= v *csi2, const struct dw_mipi_csi2_config *config) { int i, ret; =20 csi2->dev =3D &pdev->dev; - csi2->regs =3D &dw_csi2_v0; v4l2_subdev_init(&csi2->sd, &csi2_subdev_ops); v4l2_set_subdevdata(&csi2->sd, &pdev->dev); csi2->sd.entity.ops =3D &csi2_entity_ops; @@ -765,6 +796,10 @@ int dw_mipi_csi2_init(struct platform_device *pdev, st= ruct dw_mipi_csi2_dev *csi =20 devm_pm_runtime_enable(&pdev->dev); =20 + ret =3D dw_detect_version(csi2); + if (ret) + return dev_err_probe(&pdev->dev, ret, "Failed to detect IP version"); + return csi2_async_register(csi2); =20 } --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013033.outbound.protection.outlook.com [52.101.72.33]) (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 0870736933C; Thu, 21 Aug 2025 20:18:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807505; cv=fail; b=G/be1Peymk6aZabB6cQ3UaYl7c2O7HzPVtL5Bc8UmXfUe/gKEy3NXLpNpO2w8kJMDQEuJ/IbGwqFfqewo/bEZdOE0RmI167iHIDUqieJNZJe80PNtCvD1onUoyRKbz2mE8zRQBbtKgTStmT6hISz45iyaWJEVX2IEQOhN9iPlxE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807505; c=relaxed/simple; bh=HLAn1cN3lGxhuOXuZ3UMiPWYUVuydCvL8mJn98alLvs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=eZki8E0z4bNBJ3moaRCfAKQhu0ZxyUIZ2ggNO/FPyV3C4yJD5tATjovygTQncqMQ8xjgV6sjK48NzSEwf6WMItJM7vHJ8T4TOLKau0fDzU+MKS4s7jEmrAm0quCQMKE9yZyBwzlP9WP/HkwEfXDhEIQwMu3VBsEqxJyjODcNBT0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Df1F+zL0; arc=fail smtp.client-ip=52.101.72.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Df1F+zL0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WImoKPY9+YG2sqWNXJQeE2fnFXgyyjoMiL9/Y2rffQus9mmPFiqca3D1XtEiU5v1D2R/sUtWd47xcDrzIhyqMZQ58qCQNsoD9hdMjpeO6SMe6/8HpRgcE9K27FOGy/5wXefxYQQakStv2bzZNeeJ3q3nmJRaqgscQsZX9/IlAWyDufxQjD4AODY0Rv1Cup0G8qa3//r1DYm7nKnVAczdbfcrMbMogp6mh2Yq4DQiYsOXNz2VVlNncxV0tsukgZQuV2yHlhiCi4/4ZC1d3BoBLzU0oGPp3LCjuvLBThG84p2UuhNqjqemmYlg66ZM+EMgwd5pn1KG6AXbo9Ipt3wTBA== 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=JfK+zKwlPFIcFapxydetcd+TTVp85LfvyTFSSvP0tnU=; b=AStrh3e4uq5yGPQWRjp97CQEpV1ytrPRsvUfLhqHt0WP5JyZnZUp04BuO6D2CcDduxyF4EpN57ja5B93MRt4VH7y+JytaotMMFw8ZG8qJG0JOepFK/gSQSsLt2vzFnIy93IfT+QUKxJ47RC4OBBMu34o/zMfNMjYTLevoA0eXO/aYNQyodaQ2zh8STAjl5Rn00t3mi/NE6DK07QVvPso7Lh6ZcDN8bOA7ktqmyegKQUYTsmAynvrs+kr6jTpy3wZv2eoWIspbNTB+s5bYWZ4weFJC2krb86NkS344SBXuG+dZacHtZZB2Y9ODgp6lD209AOh0vmBUjbIV0b/szbaYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JfK+zKwlPFIcFapxydetcd+TTVp85LfvyTFSSvP0tnU=; b=Df1F+zL0WcAJw1ygXyABoyhiedHo0TfQpWcsfAP9ASEgaQQK511LY2T2/OQjWMtUOvYf+9DlvHAAsR2ogK+kiWXxP3SMf/hLmdYf8KoGIqIpkNpvkloopu6MP/Mg6ZEffTGOycxTVJH4XLouk6MZShCjzxhj6q/sh0EG26S48eX2PGFFi50UA53+Qjg0B4pz/LGcJ02Q4GGC3QSe3fsIpj+WGzrKYoJIlgohE8yuk04/7DLksc6F8ZJB/sfJUNgGUJqETnQeFpZaDk3h2WMqyl2Fm3BuIaccnGKlqT6Hy1V/eunB8QGw7dAm7LTU+eWOtYtmdJkTCAyKTDXkc59nTA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:20 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:20 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:56 -0400 Subject: [PATCH v3 21/31] media: synopsys: csi2: Add irq support to record error count Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-21-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=9303; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=HLAn1cN3lGxhuOXuZ3UMiPWYUVuydCvL8mJn98alLvs=; b=kxfnvRkiCFvjDPtOn0COD3kDrKvaAgBxJ+fUhXInBbUxY2GGS+qhV6rKSWwb4B6s2jCAt9vIl PMNVYaqm3XaCsWspyES7PMskdp/hYBXqYHcS+/ex578peI4y5VY2Nd3 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: ead30f3b-321d-43a5-6ed4-08dde0efdf2d X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?K0k3WWlDamFRZ0lXQzI3RlQwMTI5ZUpDZUpKL3gyR2pmODlYQmxldmtNSC9X?= =?utf-8?B?Z1BKRXFKNTQwTTRwbmRrTE0vSStBb1pvdlV2NTVSK2Z1N0UxOXhWdGNzaDhv?= =?utf-8?B?N2FUY1h2R29CbWNPWnhrZS9SLzNwUDNUbWF6MWZpM3huMEh2NTI2UFkzYjN0?= =?utf-8?B?cG5CbmVvVUlVWEtvK3Vhc1VOcUxDL1Y5R1cvQ0pCMEFVdWZ2Ry9Kd3BqekJh?= =?utf-8?B?b3E0cUEzWFg3aVJPTjR6dldyVm02c3A3bGw3T1FVeXJBZFBHUEF3M1QxKzlN?= =?utf-8?B?KzJCZ0h1VjNZcjNtaWtFa3JhSUttQzZkQ25naU44TGZBbnNmRHdwN1lGaUt2?= =?utf-8?B?Z25TejlIQVhlVytRUjh1eEt4ZWpBczl3OUE1NXlsSGhtYlc5NGNiZXpmeGJy?= =?utf-8?B?UzEzTmJiRU1sMmxRZTh1T3hveWR3WCsyS0ZUNTIvcVRQQ3JsL0dvVGNKNGll?= =?utf-8?B?ZXJUeTBtWmUzUDMzb2dVZHB1QUFDTHBTMUtzbWxoeXRSbmZTeXRzVWdxSTM0?= =?utf-8?B?ZEJzVkNweHZja3ZjaXRIdzkyb2RwQThwQ250YjU3WGYwejZwL1dJL2lCSVBa?= =?utf-8?B?YnFxenFJamwxbnlwcW8za1JtaUh2OGVLcS9vOXJKejVQak1HK0VDSVBnRWU2?= =?utf-8?B?dGUvc244UGo4eE1zUGZYSkxhVkorZWp0WkVGbi9KRGcyeVZFNkFTbGpidmVF?= =?utf-8?B?Tm1ZZFBZYkJJcU55Q2tiNHpxRWU5WXRKcDA2UFh2Zkpab1MyWGUxT0ZIam9C?= =?utf-8?B?N3QxY3poQkFmS2R3WG9zc3FsNU42V3pydGVWdUxmNGZvcWJrSVRpUDhYK2Vz?= =?utf-8?B?SEpuT0h1d05ZT3lXbUFnTjVkUk11TTF3K1NJLy81UmYwMGQzd3JUcnNpREhv?= =?utf-8?B?R3YwdC9TdmMyQjQvMnJpcTZQcjlxbUlIR0ltTXdsbXFUNDVSdWw0aGN2Y0xE?= =?utf-8?B?SnovTDlGOFhybWljT0lUUDljSDFyeGM0bkoyQkZ1enZjWmtSV0FjbTBkMEpw?= =?utf-8?B?cGdvVGdVcENJL0dvN1AzaVVvYkdZQkxBQ2J6Y0d2REIzY29YOUs1VWo3SUZN?= =?utf-8?B?TzMrM3NGYXdYZEFBT3QyOVI4aFpxc1JXUlIyaHR0djkvTHdkaUtISmhROGl2?= =?utf-8?B?UnhjcGFDODBZcmFKSFlQNDBpUHh5VnhDbzJHMnBoNVhQVFVnV1BXa3VidzF1?= =?utf-8?B?M0NoSmhGZnljTmdIQXduSHlNWkp2RHNydy9PWHVIRzcrbTkxcmFUV0xwSUNp?= =?utf-8?B?N05qKzhkVHRjTzdrUWhPeGVlRW8vRmhBanRIRmp1UWxBK3dncXNPMll6M0ZL?= =?utf-8?B?emdzclcrd0t3Nm83Y21OZDdjYmRTS3ZERERzeUZpWnpwS0ZMV3M3SFBudmxO?= =?utf-8?B?TEk4K25WV3ZKNzVSN1k4cjE0TjNpL0diUUdRd3ZXd3Q0QW5nNmRQVkEzdy8x?= =?utf-8?B?QWkzZ3B4YW0xZmhhZkxlNVJHTjZ2SnZtVlB5dzNSclBWOUdSS3krL1pxTnlC?= =?utf-8?B?bUc3c2JTbDQ5MFAvNVowdlJNZm9rVWZaVXlnWGlHLy9ic2w5YThldkcxeXdL?= =?utf-8?B?bG9oL2x6OHhTVEV6MzYxZWxiMTJmaHFYQWZ4TnA0ek5DU0haQzZaUElvQ08x?= =?utf-8?B?SnIvZlVoRmZMMjJUVmpZVjY1eWErZGtsTVNyV25jZGEzYXVxL1lxVnNYMWJ3?= =?utf-8?B?M1hoeTdTZFA2S295Yk9ueVhBOTNkOFVnWW5RTVoxajEzcnJpekY2Y3RCdGpU?= =?utf-8?B?anE1R3N1ay9CejdXMHFtYkg3M2liTWhzQmkwQlBhUCtCZVFWZTlDa1dIeE5a?= =?utf-8?B?Q1prSzg2amhnam01d3FjLzZYUkdkeG9HSGMxenN2eWFYcEtiSUppMzVZT0xs?= =?utf-8?B?TVJ5cXFBNVBGR1BLUWVSazBxZ1Fyd2IyQ0dzQkxXQm9IaFFEMUdNV1lNNGhm?= =?utf-8?B?ak14RzErL3VGWVFNMmk4OFhIL2Nuam81bDVVN0xzYlNKd0FXajU4Q1hFSVpx?= =?utf-8?Q?Z9YsNN5oHJ06twEAIweU30stS0nWAk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?azJzaTBoMU5xbVdHWlVySENIQW9lYjJpN0xIV1hycTI4bGgzUko3NVREYWtm?= =?utf-8?B?Mzk3aFErd1hsM1FmVHVyTWFyMTVnc0EzWHBSZUZJQzNyTlFnY3drRnZaejdO?= =?utf-8?B?bVZYTUxuWFpQZEhuWFBHRStmd1MrZ1QyRXlkQlhCUDFBWGY2MjlPWk1CUXl6?= =?utf-8?B?Szl0TGlBb1RFUGZ0YU5uQWhPRHZzUjJoalRRYXhaZzVFVVdMYURmUHJzWGFj?= =?utf-8?B?b21ZVkpEVVM0b0t0enMxVTBRSGtyOWlseGxRTUhzNWs3dEZ6bXd1SktlcmVv?= =?utf-8?B?N0hZYWVPU3lnSUJ6bTlOcnVMOFFLa2hpTGwzNDZTUGV3ZjkxZ3Y2LzV3VUJS?= =?utf-8?B?SXlhY3BtY1BteG1CZitaT2I0NXFkKzE2V0VwTVM4VVB4WWZhQnBjeVZ6RWc3?= =?utf-8?B?YTI0c0NmVXhVOURJT3h5TXZLNmdVOE9WMDlhblJvRWltQUZWdUNWeDFULzZu?= =?utf-8?B?aFdhaVZYbHVQODFwWW1sOGt5dktxMllnUFVqVXIveElwc3dYV1RxcDd4d05W?= =?utf-8?B?bUl0K1JvZEx4dm1rNFhualRMUEpqY1ovUXZ4a0lncmt5KzJuWDNwemdGMnZE?= =?utf-8?B?czNVMHlIa2tzR0UxemdhckFweHpuS0RnVmxBSUkxRkdaazNSRkoyR05vczk5?= =?utf-8?B?RzlkRlVoUXdPaHVvbC9UeTBCNTl5OFR0aEY3V1YxZ2k4b0kxZ1hOdFdoZkdC?= =?utf-8?B?TEJJK05FNFY2djd6bjRrOWxhcHN4T3F0TVNYN0hTR2NoRFNEMTNZbFIxM1hM?= =?utf-8?B?emlHUkdRR1FKVnhKZ2ErNHdiMmVrN3BQMWFBT3BleTRsMFg2aEdmTjNhVmVN?= =?utf-8?B?SnRueThyMVZZQkNYVk1waWVaRlVRL1NoUzVQTjFjUE5IT3FkdXBwM3ZNVVNE?= =?utf-8?B?L3hwd0RzeFRUdTBFVm5yejBxRnIxY3ovQ1pUUXU3MlNiZkpUdVJiV0s4UXZM?= =?utf-8?B?U3h5WS83ODdGd1hScm1vU3pkd2c3ODNlZFdSY2t0aDJyU2t5SVJJZ3BjNzFk?= =?utf-8?B?T1IxUm1HUHd2a1BkVnAwbmdXWTF4bzdvRnAreHI4OGUzeElXVW9tNDY0RTZ6?= =?utf-8?B?QkdydlBjVGJCaHdrWkloejc0T3d3aG9lbGJTTkFuMjJsc3NnZGhieVNIc21U?= =?utf-8?B?am9xVEZXZW5UV1ZTN05rSkNMQVdYTms3Skk5M2U2ZXNaQWVxWWJUQmpuNTlk?= =?utf-8?B?UnkwRS9aVEtUWjVEZGtaSS9iV0hsQ01zQXB3YWYvSWFnL2FMaFpvSzN0NHc5?= =?utf-8?B?U0ExRG9LYXg1cnBLR2I0aTZXYmx6eE1xSmMrQzhXb1NET3NGUDB6VHhEcG5V?= =?utf-8?B?MlhLRmZmd0QxNTdWZTRZWXFwUFdLM3BRdGRQMm52L1J2Z1o5TkZubnlJNk56?= =?utf-8?B?cUJneTREVC9mZnJ2UW9EM2JDMXlBeExMY056SU52N2p1TGVGM3JSY2tmQlNi?= =?utf-8?B?YnJLbnVUYnFJY3RHb1JtSmI3UWZZczJML0x4QWtNMGw2WGxNeEllVEpITzJh?= =?utf-8?B?RDNaZjhkKzVaMUhYbEJuOCtJaEhhS2tUdE14aWhTV3MzVGdVNDg5NmlSUFM3?= =?utf-8?B?ak1kVWdhWVhCRTZWbFpBRW9XZVJzSXJuU2RKcU1yd2d6RFA4MHgrS0NNVW5j?= =?utf-8?B?MmJhTXY3QVpwZEdpT25BWjJxREJWN3UyQ3F1RHRyc0Yyb0ZreUhZWnIrS2Rp?= =?utf-8?B?OFFDN2R4T0JKM0ZNVVQrY2pJNXNpUmJqS3N1cnArUWF3aExOWEVONi9SYndr?= =?utf-8?B?eEZxRHlpZ0FYUzdpOHJqbFVrK2grQkxnYVVHYnNPVDFsZHplMFdMN0NjZHE3?= =?utf-8?B?aUVYaVQwYlVKUWVLYTJxRkVXMFNSSzZJOWZUcE04WEJxTE5iR0UzdWpuTG8r?= =?utf-8?B?ZUR2RFNEWVRJME1xM29TVG9NTWNucnVLdFdTTUhES1RjSkFxTWNKWHhxbnc4?= =?utf-8?B?RXZVUVk4eGFSZCtOME1BNGhTMnBkUXJ1bkZQUmc4aFpYSkJWOW05SFVNaUV2?= =?utf-8?B?WXAxa2F3NWhkcFpPQVNYZ0lyR21BaEpUcVFhYkFIZHdpUENXMlNpSDRQTkY4?= =?utf-8?B?OE8xcmxCTmZyby9YM1JRS1RWc3VqWE9jM2U3ak8zY2MwWlhaMExhZ0lEUHFs?= =?utf-8?Q?BCao=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ead30f3b-321d-43a5-6ed4-08dde0efdf2d X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:20.3934 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0bNygCBbBBcielSfmoOesQmiMalsbqLChBzOWh+dz9BmrsNb+DBSgpmdiQe2ocj/SgcDKR/nWiQWiOpn9RbAkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add irq support to record error count. Use debugfs to show such error count. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 171 ++++++++++++++++++++++++= ++++ include/media/dw-mipi-csi2.h | 8 ++ 2 files changed, 179 insertions(+) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 4d67ab978db56d8075824ba515876193499c0c97..e628cc67046b05bf0178c002a8b= df4bbcd64b30e 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -4,6 +4,7 @@ * * Copyright (c) 2012-2017 Mentor Graphics Inc. */ +#include #include #include #include @@ -37,6 +38,19 @@ struct dw_csi2_regs { u32 msk2; u32 phy_tst_ctrl0; u32 phy_tst_ctrl1; + u32 int_st_main; + u32 int_st_dphy_fatal; + u32 int_msk_dphy_fatal; + u32 int_force_dphy_fatal; + u32 int_st_pkt_fatal; + u32 int_msk_pkt_fatal; + u32 int_force_pkt_fatal; + u32 int_st_dphy; + u32 int_msk_dphy; + u32 int_force_dphy; + u32 int_st_ipi_fatal; + u32 int_msk_ipi_fatal; + u32 int_force_ipi_fatal; }; =20 /* Help check wrong access unexisted register at difference IP version */ @@ -65,6 +79,7 @@ static const struct dw_csi2_regs dw_csi2_v150 =3D { .version =3D DW_REG(0x0), .n_lanes =3D DW_REG(0x4), .resetn =3D DW_REG(0x8), + .int_st_main =3D DW_REG(0xc), .data_ids_1 =3D DW_REG(0x10), .data_ids_2 =3D DW_REG(0x14), .phy_shutdownz =3D DW_REG(0x40), @@ -72,8 +87,48 @@ static const struct dw_csi2_regs dw_csi2_v150 =3D { .phy_state =3D DW_REG(0x48), .phy_tst_ctrl0 =3D DW_REG(0x50), .phy_tst_ctrl1 =3D DW_REG(0x54), + .int_st_dphy_fatal =3D DW_REG(0xe0), + .int_msk_dphy_fatal =3D DW_REG(0xe4), + .int_force_dphy_fatal =3D DW_REG(0xe8), + .int_st_pkt_fatal =3D DW_REG(0xf0), + .int_msk_pkt_fatal =3D DW_REG(0xf4), + .int_force_pkt_fatal =3D DW_REG(0xf8), + .int_st_dphy =3D DW_REG(0x110), + .int_msk_dphy =3D DW_REG(0x114), + .int_force_dphy =3D DW_REG(0x118), + .int_st_ipi_fatal =3D DW_REG(0x140), + .int_msk_ipi_fatal =3D DW_REG(0x144), + .int_force_ipi_fatal =3D DW_REG(0x148), }; =20 +#define INT_ST_MAIN_FATAL_ERR_PHY BIT(0) +#define INT_ST_MAIN_FATAL_ERR_PKT BIT(1) +#define INT_ST_MAIN_FATAL_ERR_BNDRY_FRAMEL BIT(2) +#define INT_ST_MAIN_FATAL_ERR_SEQ_FRAME BIT(3) +#define INT_ST_MAIN_FATAL_ERR_CRC_FRAME BIT(4) +#define INT_ST_MAIN_FATAL_ERR_PLD_CRC BIT(5) +#define INT_ST_MAIN_ERR_DID BIT(6) +#define INT_ST_MAIN_ERR_ECC BIT(7) +#define INT_ST_MAIN_ERR_PHY BIT(16) +#define INT_ST_MAIN_FATAL_ERR_IPI BIT(18) + +#define INT_MSK_DPHY_FATAL_ERR_SOT_LANE0 BIT(0) +#define INT_MSK_DPHY_FATAL_ERR_SOT_LANE1 BIT(1) + +#define INT_ST_PKT_FATAL_ERR_ECC BIT(0) +#define INT_ST_PKT_FATAL_ERR_PAYLOAD BIT(1) + +#define INT_MSK_PKT_FATAL_ERR_ECC BIT(0) +#define INT_MSK_PKT_FATAL_ERR_PAYLOAD BIT(1) + +#define INT_ST_IPI_FATAL_ERR_IFFIFO_UNDERFLOW BIT(0) +#define INT_ST_IPI_FATAL_ERR_IFFIFO_OVERFLOW BIT(1) +#define INT_ST_IPI_FATAL_ERR_FRAME_SYNC BIT(2) +#define INT_ST_IPI_FATAL_ERR_FIFO_NOT_EMPTY BIT(3) +#define INT_ST_IPI_FATAL_ERR_HLINE_TIME BIT(4) +#define INT_ST_IPI_FATAL_ERR_FIFO_OVERFLOW BIT(5) +#define INT_ST_IPI_FATAL_ERR_PD_FIFO_OVERFLOW BIT(6) + static int dw_csi2_reg_err(struct dw_mipi_csi2_dev *csi2, const char *name) { dev_err_once(csi2->dev, "access to unexisted register: %s", name); @@ -108,6 +163,25 @@ static inline struct dw_mipi_csi2_dev *notifier_to_dev= (struct v4l2_async_notifie return container_of(n, struct dw_mipi_csi2_dev, notifier); } =20 +struct dw_csi2_event { + u32 mask; + const char * const name; + u32 counter; +}; + +static const struct dw_csi2_event dw_events[] =3D { + { INT_ST_MAIN_FATAL_ERR_IPI, "IPI Interface Fatal Error" }, + { INT_ST_MAIN_ERR_PHY, "PHY Error" }, + { INT_ST_MAIN_ERR_ECC, "Header Single Bit Error" }, + { INT_ST_MAIN_ERR_DID, "Data ID Error" }, + { INT_ST_MAIN_FATAL_ERR_PLD_CRC, "Payload CRC Fatal Error" }, + { INT_ST_MAIN_FATAL_ERR_CRC_FRAME, "Frame CRC Fatal Error" }, + { INT_ST_MAIN_FATAL_ERR_SEQ_FRAME, "Frame Sequence Fatal Error" }, + { INT_ST_MAIN_FATAL_ERR_BNDRY_FRAMEL, "Frame Boundaries Fatal Error" }, + { INT_ST_MAIN_FATAL_ERR_PKT, "Packet Construction Fatal Error" }, + { INT_ST_MAIN_FATAL_ERR_PHY, "PHY Fatal Error" }, +}; + /* * The required sequence of MIPI CSI-2 startup as specified in the i.MX6 * reference manual is as follows: @@ -338,6 +412,40 @@ static int dw_mipi_csi2_phy_prep(struct dw_mipi_csi2_d= ev *csi2, int bpp) return ret; } =20 +static void dw_csi2_enable_irq(struct dw_mipi_csi2_dev *csi2) +{ + u32 val; + + /* Define errors to be enabled */ + val =3D INT_MSK_DPHY_FATAL_ERR_SOT_LANE0 | + INT_MSK_DPHY_FATAL_ERR_SOT_LANE0; + dw_writel(csi2, val, int_msk_dphy_fatal); + + val =3D INT_ST_PKT_FATAL_ERR_ECC | INT_ST_PKT_FATAL_ERR_PAYLOAD; + dw_writel(csi2, val, int_msk_pkt_fatal); + + val =3D INT_MSK_PKT_FATAL_ERR_ECC | INT_MSK_PKT_FATAL_ERR_PAYLOAD; + dw_writel(csi2, val, int_msk_dphy); + + val =3D INT_ST_IPI_FATAL_ERR_IFFIFO_UNDERFLOW | + INT_ST_IPI_FATAL_ERR_IFFIFO_OVERFLOW | + INT_ST_IPI_FATAL_ERR_FRAME_SYNC | + INT_ST_IPI_FATAL_ERR_FIFO_NOT_EMPTY | + INT_ST_IPI_FATAL_ERR_HLINE_TIME | + INT_ST_IPI_FATAL_ERR_FIFO_OVERFLOW | + INT_ST_IPI_FATAL_ERR_PD_FIFO_OVERFLOW; + + dw_writel(csi2, val, int_msk_ipi_fatal); +} + +static void dw_csi2_disable_irq(struct dw_mipi_csi2_dev *csi2) +{ + dw_writel(csi2, 0, int_msk_dphy_fatal); + dw_writel(csi2, 0, int_msk_pkt_fatal); + dw_writel(csi2, 0, int_msk_dphy); + dw_writel(csi2, 0, int_msk_ipi_fatal); +} + static int csi2_start(struct dw_mipi_csi2_dev *csi2, int bpp) { unsigned int lanes; @@ -393,6 +501,8 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2, in= t bpp) if (ret) goto err_stop_upstream; =20 + dw_csi2_enable_irq(csi2); + return 0; =20 err_stop_upstream: @@ -422,6 +532,8 @@ static void csi2_stop(struct dw_mipi_csi2_dev *csi2) =20 csi2_enable(csi2, false); =20 + dw_csi2_disable_irq(csi2); + pm_runtime_put(csi2->dev); } =20 @@ -729,6 +841,42 @@ static int dw_detect_version(struct dw_mipi_csi2_dev *= csi2) return 0; } =20 +static irqreturn_t dw_csi2_irq_handler(int irq, void *priv) +{ + struct dw_mipi_csi2_dev *csi2 =3D priv; + u32 status; + int i; + + /* Hardware auto clean after read */ + status =3D dw_readl(csi2, int_st_main); + + for (i =3D 0; i < csi2->num_event; i++) { + struct dw_csi2_event *event =3D &csi2->event[i]; + + if (status & event->mask) + event->counter++; + } + + return IRQ_HANDLED; +} + +static void dw_mipi_csi_create_debugfs(struct dw_mipi_csi2_dev *csi2) +{ + int i; + + csi2->debugfs_root =3D debugfs_create_dir(dev_name(csi2->dev), NULL); + + if (!csi2->debugfs_root) + return; + + for (i =3D 0; i < csi2->num_event; i++) { + struct dw_csi2_event *event =3D &csi2->event[i]; + + debugfs_create_u32(event->name, 0600, csi2->debugfs_root, + &event->counter); + } +} + int dw_mipi_csi2_init(struct platform_device *pdev, struct dw_mipi_csi2_de= v *csi2, const struct dw_mipi_csi2_config *config) { @@ -800,6 +948,27 @@ int dw_mipi_csi2_init(struct platform_device *pdev, st= ruct dw_mipi_csi2_dev *csi if (ret) return dev_err_probe(&pdev->dev, ret, "Failed to detect IP version"); =20 + if (config->has_irq) { + int irq; + + csi2->event =3D devm_kmemdup(&pdev->dev, dw_events, sizeof(dw_events), G= FP_KERNEL); + csi2->num_event =3D ARRAY_SIZE(dw_events); + + if (!csi2->event) + return -ENOMEM; + + irq =3D platform_get_irq(pdev, 0); + if (irq < 0) + return dev_err_probe(&pdev->dev, irq, "Failed to get IRQ\n"); + + ret =3D devm_request_irq(&pdev->dev, irq, dw_csi2_irq_handler, 0, + dev_name(&pdev->dev), csi2); + if (ret < 0) + return dev_err_probe(&pdev->dev, ret, "Failed to request IRQ\n"); + } + + dw_mipi_csi_create_debugfs(csi2); + return csi2_async_register(csi2); =20 } @@ -809,5 +978,7 @@ void dw_mipi_csi2_deinit(struct dw_mipi_csi2_dev *csi2) { v4l2_async_unregister_subdev(&csi2->sd); media_entity_cleanup(&csi2->sd.entity); + + debugfs_remove(csi2->debugfs_root); } EXPORT_SYMBOL_GPL(dw_mipi_csi2_deinit); diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index 14a80c09fd273c334f91ea70d955dcf92b6646ce..20ce6a21f0674cad54f01edb508= dce14cd07a8dd 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -27,6 +27,7 @@ struct dw_mipi_csi2_config { u32 num_pads; /* Max 64 pad now */ u32 sink_pad_mask; bool has_phy: 1; + bool has_irq: 1; }; =20 struct dw_mipi_tstif { @@ -44,6 +45,8 @@ static inline int dw_mipi_tstif_write(struct dw_mipi_tsti= f *tstif, u32 indice, u return tstif->write(tstif, indice, data); } =20 +struct dw_csi2_event; + struct dw_mipi_csi2_dev { struct device *dev; struct v4l2_subdev sd; @@ -74,6 +77,11 @@ struct dw_mipi_csi2_dev { bool sink_linked[DW_MAX_PAD_NUM]; const struct dw_mipi_csi2_config *config; =20 + struct dw_csi2_event *event; + int num_event; + + struct dentry *debugfs_root; + struct dw_mipi_tstif tstif; }; =20 --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011052.outbound.protection.outlook.com [40.107.130.52]) (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 085A3369349; Thu, 21 Aug 2025 20:18:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807510; cv=fail; b=kaZ7leWfknuYUKEVf+GdQMcxh1XRZwbMUtRSdxVE9tJ9MBWzUlQN2LKpJMW2ZwPneXFAdVIElcr7uovlTTJZhKLb734rmaXRc5jPiw1rbMhshW+IdoV6tGzrquVhv6+B6LsW4BC7AWdI8DLfjYIpxE3JIYmkOotzOfgpmZY7k10= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807510; c=relaxed/simple; bh=XKmU15gdj4tOY+sTYSb8OVLIZy1uUFbDeTevdWEZRzw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=lqwHlAiGSArMiL7mzz0LZ/14TRzQMQjXByIiojzzervdJkxupY6L5tNgce5dTzm5r+HqGU5UmZ5uB3yYA6uutUr9K/Enqbwp8jZe/opXfFAjdTLlJP/qhiHA3HCy2f9QLi5+uoBBsguy9PeoIFhe7AshQ/fXZPq+zK1yeGody+U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=aYLBDDe8; arc=fail smtp.client-ip=40.107.130.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="aYLBDDe8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tmiDmY/eytg9sq0zORHMhRAPmrJ8PyAKej8BU5Plcpt1Gfi3oG9gSXbrqiGz7InL91DjrM8+xSypaDIe6mX8QPpUVQaWX4iVbK+25pNlh647omxmg3WBy2E/drdSdX6AnNmXbRIJf7cs85r6uW8hHoyWI1yFrpztAdXJWyohQtvaHDzEaPkaKvkLOZ03fZvI/VJQ8OYeNAfEFP5S+MEtzfu1wYPAOztL9P8m1DFpw37InN96L3nyAp6w1ObUvy3fHxXvhZMdZVFx9mOdX8Cz8fE8sTn/AZPmnwfCZzHJx/mOHjNUqRARRDkegCEB+iCi9PhF/d1knOez05g7ccJrJQ== 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=NvtDhUE9VY1QpJ2FXaolnlkHDC9EY4x7WcuuXaXnIYc=; b=Gyz47BDtNt0jYr1zAbXJivI4OqCez08zvAHBtGAYGzMmJ3/G+CoHZXUkeB2tY1V1GImQibYcHZETY1/k3jgsiqmr/H/k0JK+P0Hdifzz8hlZqXHBPZFPrH4NIeiHJ+BPPXSIF/9OqNypFZ+Fz+5NRJ3V/9f8elJ/nvKrIt294XsashJ9r9npH2cgBrJ39tgJQ+U3iwh1H6jv0PZKrf/tu+kEqhZQSwNSKgoofTTJ9lVXJgykE06wvThd2f7DbgVd+MK9mFnBF7fdcLTMpUnrYtuGURPbRLjhB7Q5n4XzU9i005OkTl4c7lej2oupfAK+8qhqJsKjzbNtCk0ShXRiUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NvtDhUE9VY1QpJ2FXaolnlkHDC9EY4x7WcuuXaXnIYc=; b=aYLBDDe8IidxXtsqLlYHpa+b4rNHQafJHit+8GpAZgrQTYcowag+gPDrCjNvSNBqhRr4FL42fycLwXGP8NqFmaF9CmBmwn/eEIM85WfTAjzNkT2Cd9tCLFct7Q8427xAmABdRaBQsh7wrSzZLsnr/qMjvQ/uaNTDr3JlM540G6HWAqgp0Cr1H8MLs7pkKYbK7FCr1Vq+ceWzZtjvxhnLhH71bBcDwgqW071iftzJzCDoXUkj4xUtpLRFO3wJbRjluMDIy+8tDY7SaKiMq1zO9FPuIh9RVewSF5uaWsKdOdq5gfpws2nIs1R4wE+V0hX+atL8IZLlwRrDITmvikZddA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:26 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:26 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:57 -0400 Subject: [PATCH v3 22/31] media: synopsys: csi2: Handle alignment requirement for width Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-22-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=1837; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=XKmU15gdj4tOY+sTYSb8OVLIZy1uUFbDeTevdWEZRzw=; b=4taJd53iydAd1S2bMcuOqv28nXZm5lBU6k6W90nttRDdIySgKBFTNHJLaFm6fomr5YEbZDQJ+ 4o0ZXKH3LSSA+q86ByAEDSI6E31GylHDdTeHbwafBrIM+qWlq6GYJVV X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: e00db669-0b40-4124-dbd7-08dde0efe2d7 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SVhkZWw5MlRneGRweEVBVGt5YW1xRzVwSzJtNEcrejFNeldSOVpEeTdBL1dw?= =?utf-8?B?NU1kZkdPdlExNkF1Wnc4Mm5CMkx1TWJ4N1IxSEhEeUFlc3gzT1lRd084Si9x?= =?utf-8?B?bGc3dXNLNkNOL3lyQjJUaGprTTZJMXhpdXd0L1JoeTUvMndkcnd3UjB0bk40?= =?utf-8?B?YmV2Q0ovby9pYXlHM1NER3gzbWd4K0pidnNhK0d4UzNSVmFoZ3dJeXljTjBp?= =?utf-8?B?VDExU1FjUGFPQVMvK0ZzSW5ZNEVjSEVlOTU0N0lHQWdhT3gyS2Zpa0k3K2Nk?= =?utf-8?B?endRQVR3WGFPTElxR2Y3LzBuQnkzaS9Ua0tsZzB1MTNjVWhnclJhM042S1B3?= =?utf-8?B?TmIwTGphNVh0dVB5c2VXaGJmNVlqYStPS2xPb3RPVWFjby8vMHlQb2lOcnRH?= =?utf-8?B?Q21KcGIxZU9QOEwxZUZoS01DQzRtYmNLL1NJdERxOHBjOS9ia0RnWlZhOUFX?= =?utf-8?B?UmI3TkNmdmpBREo5T2xHeGFMZkpXd3RHOHkrdy9GT1BrdmJLZVVTVFphVFJ5?= =?utf-8?B?c08rdlpZcm5iRkVMUGV1MlRUNjZIVHZkM0J3NWlUSDVrQ2VLVzF0RFhBQkZR?= =?utf-8?B?b1hDNE5FVkdqcjQ4b0NGUng4M25KenBwdG41UHJYZCsrL1RFMHpUc2xEUndp?= =?utf-8?B?eDQzMHJwSUFEQ09SczE1VXVJcjBDdDR1MGVXanlpSEg0emQ1eWI3ai9PcXZX?= =?utf-8?B?Mkk2QVNVWTJNVU8wRGMxV2JJNGtCbkZEcythTlB4VDM3dGV5VFJyaVloQlhs?= =?utf-8?B?dHlvVW54ZllsUXN5ZEhHRVZ5Z3o5cXNITUhnenlTM2VMVHpCdm5JQmRySGY2?= =?utf-8?B?bTR0U3Nqb2xNdWZOWDl5eVMvNXNiaXNQMlFZOVl0REo1SWdTNkJrZGF2dGM5?= =?utf-8?B?YVpwRW9kMU1hVWhqN01xRnB1S2g4SktxenRmZ1VqTFhrYVpFM240NE9LRHFr?= =?utf-8?B?Mkc1SDNVT2JINGFhZnduK1djWGhOTHJNMldoQWk3bk9mYi95aWRCQVFSSnpi?= =?utf-8?B?eitQTEQwT3Q0NFRFMm50SWgxUUVISkczSmwzekdCQXQyTlB3QjYvZ3pGempz?= =?utf-8?B?a1duZDRyNmN3cWI2Q1VFRG11cVp0TzN6MURvK1NRVHlmNHRUL3NJV0NFY1Ry?= =?utf-8?B?RlBRU1k0UjBQVWY4RnpiaXBjUTYyZnI0NTduZlZPRFgvbmROR1BucEtyR2I1?= =?utf-8?B?SjduRGcwd0hRZ3dVWG9lY3FYVTZYWVUrb05kZmluYUUvbCtOREF1RVhMVTJ1?= =?utf-8?B?dEJwbzdCMjNtcXB1TWpSVng4SXV2cTkzRVp0NURtVWxMVktxNHRSYlo3RDlV?= =?utf-8?B?R2t4YW8rRW5FakUrUkszUDY4N0U1aHJNZmtmMW9vY3MyM1gwWmtSQlhlNEFh?= =?utf-8?B?TGVCNlRNSEFNUVA1REN3bVZSdldmTXFaTWlpSkZVdkN0R1FRa250VFkzUTBQ?= =?utf-8?B?dVQ0RCtyamRsaE13dHVhSWV2dmg1TUs2ejVIOTZ0ZWw1QlRVVmptQmkvYU1O?= =?utf-8?B?UzNsU2JSZWhWVTJHOU8yUlQ5QXVudG04U0hJcFdlbkRvcldpVUUxVWtxOVp2?= =?utf-8?B?ejVzZW0vWjFjd1VPNkI3bTVFc1pFSlQ0dDNTNUM3THJvcWdEblpLNXdaT3Fu?= =?utf-8?B?UFBLcTNlellRZlRKNlNvTkpWWXRYc0RYRzA1QnpoeThvL2l1empUVFNxK2xO?= =?utf-8?B?L1pLL1oyR0JyNit3eTZXQ2RQUktJNHluMm5FaXU3UktkZW5rWG9DaVhFWGNn?= =?utf-8?B?c2prYW9uRFlDM3ZtM2JINnMwS1pHV1JWRnBZb2ZNZDlXdWFTbzZiQ1dLeUFE?= =?utf-8?B?c25RUTdKSnpVWlRqVDdXQ05FRTBrWGFKOFBVZE1iZG1HL3dxQ0VycXp0QTZ5?= =?utf-8?B?SDEzOXlNTk01YjQ4M0RIU2tYZEd1VWMyb1V6cVdtVTJwclI0VkZzcUVZdkhP?= =?utf-8?B?NDFhTkxiT2EyVEVVbmk4WkZyWUdCVzY3UHN5c08vdkxGQXVmMTYwaU9tdTJq?= =?utf-8?Q?RDg+4XlzKhXSv+TYRM8RrpPQqCy1fE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MzZEVzhHUUZmRWpWSWlZdXBmUWRaNlRuTmRndE9wcXlyemtOc1ovSVNDTWwz?= =?utf-8?B?VXVxaWNWcThDU1lXZkJtY0piQ2VITjBNRkNORzF2ZUUySDJKUTV5L3NiL3Fi?= =?utf-8?B?bU5VSjdDa2xyd2RHKzlVMzRKdWh1eW5SWHlNU2pLQnRGYVBPRVQ3SEdJR1o2?= =?utf-8?B?WUw4Zk0rdHRSVW45YUx2Mm9XbmY1SnhHbGkwL25NR1J2bmlYSERFaTE3Q0Rk?= =?utf-8?B?dmFxVXYxL0ZMNlNDRWdCN3FrYjBxME9BUHY0WUhjSG1sZUV4VStnMXhBMld1?= =?utf-8?B?UTlWTjExYjJlbkwrZ2E1elNBT1ZSdngxTWRWYmxaTnRrT1RsZk1VZWV1dEI4?= =?utf-8?B?Q1V0Uk1tRVFhNW1aVVh2Nkp3Zy9Jc2NHSlNWUXlySFVOU3M5cmNNY0d2bk84?= =?utf-8?B?OGpTMGliVEsrUEk1R3E0WXBxNmJNQW1LNDl5NjhTMTYvWlZEdTUyQy9iaWtE?= =?utf-8?B?dzNxZTNNb3U1WVhORXhLSmlBTzJLNEJtUEcxdkI1N3BwRFZwUzB0RnFZTi90?= =?utf-8?B?VkdWK2JDSlJiekYrMlRJK0EvRGlDNGFGZUIwOXN4VEpoZC96dUpRenNYeVV2?= =?utf-8?B?ejBTOGM1RVp1aHJYY2FRemR5T3RUVlZqUUYvYWZYT1NOMkkxVjNqakxqdGEv?= =?utf-8?B?d2VkVkFPS0dpYy9Uek1zQm9sb1ZDUlE5c3IyVU9CZXc1WERoY001VThrUUYr?= =?utf-8?B?THNyRTdQL2VPWUMzWVpDQ1hZSEdQdDhrTiszU0JiYkhSOWpYL1FGWmVzQjhx?= =?utf-8?B?Vm1mbG41VkRxSHZ2LzFwcjZxd3hRc0Q0VkFSU2hMTW56SnVZUUp0Zi9OWTFo?= =?utf-8?B?NnkwbDNhTHFoRG5pTk0yb29KWXdRNnVaUTY0eXNMNEYzS3BjNnhDcHZSUU53?= =?utf-8?B?bWs1VzBtZ1hiaUcwbnJMdEh0VDJxVjVrYVV1dkFEbEE0Yll6RVYzYjN1OENB?= =?utf-8?B?TVV1T1RiS05UeHJoTVdEbEh2cEllTVl6MEp6TEVYQTdROTlNLzlOOTlrbW1J?= =?utf-8?B?Zm5MdmFjVEtDbkdkL0JBYXpWVVJBTHJXWjA1YXRKV09JbUJsUjFyUmpYamEx?= =?utf-8?B?Snp4VFk2RG52S09zZWV5R2pIZFpSY0RzYXVYZ2dWTzZUUkRTVE9aL3RWUmtT?= =?utf-8?B?Y2FCN2xseGk5aGNyNGVCOFpOQjdRTm9YUnJ4OGlWc0l6MXF5VTBlSXNPZFh2?= =?utf-8?B?YVJJdEMyRjBNVy9pTEZxRUVYR2VsWVQ0QjErNUwwcU8ydzVXL2pUSVpPa0tU?= =?utf-8?B?M0x1R054SjgwWXlJMS93Y1NtaU8wanZ1NllxVGdnODlObzJGa1lJNFA1eVU3?= =?utf-8?B?eUNkcy9xUjBXWGwvWDRSY3NNM0t2RFNRczdXK0x0Ym5jSXJJQUF6dnEzMkQz?= =?utf-8?B?eVFvMGcvYUMvbE5TZG1aOVM5N0x2a2hFeGw1WHN2YWVYYlRhQVZCZ2ZkT1Mx?= =?utf-8?B?MVhicmF3cDFHcHQxbDlQeXFCL3RXL1h3VERrdVRxanhBRjBlekpiVDNqUWZu?= =?utf-8?B?ZGhQWm0vWXRFOGkvUWYydkxseUZYaDQ4ZEVGQWhQV1Z2bG5MdTI0Nll1MXNG?= =?utf-8?B?YW0yMlJYTDYzMmRRKzc4NDdxMUw3Qzl5ZlN1ZFFFWHMrTTN5MFBNN2hzejZS?= =?utf-8?B?S0cydThUTHAvQmwwcnVHRjk5QWpqOTJQK0VMcmlqMG9PQ1RYQVNuM3FEUDlT?= =?utf-8?B?RU40RjBxUjB3b2ZpSnlBYldsZmlxakc5OHV3dzNsL0M5bGRzcUs5dUs3WEdw?= =?utf-8?B?UmlqdGIzM005MGEyM0U5NFVhN0tuUlRDZG1paTdyNllHZit3SnkyUEZmeklH?= =?utf-8?B?VlRFUGpSa2F2QUtUaEFpOHpnSXVCTkFETVVpdUdqM1BWZEJ1RzgxUjJXSkt1?= =?utf-8?B?bm1LS09xU1dUYW10ekEyTmVKL2Njd2w4ZStzYWZrc1Vybk5qQndYZEllMnIw?= =?utf-8?B?azMvdWxNZ202TkMwRkxacGRPZyttUVNkV3lFalRGQnMvYTRCKzVLeDRnNEVm?= =?utf-8?B?cmgyem5pbkJhbFg4WCsyZnRxcHVrMFZyaEg4M0dhcmJzSExVaStoTmRaY0pQ?= =?utf-8?B?aEtMdkxmN3BRMEhBb0o5K0w5cXlQVFdOdlFBM3hJM20zaTd5eUFPVDVqRkJN?= =?utf-8?Q?ePWc=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e00db669-0b40-4124-dbd7-08dde0efe2d7 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:26.5506 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: M5yKM+0R7gECjtMqJWL6ecxf7pHtqPlu4nSTxy3GSiSCKh0Wz4SRDF1iVIyVeRClJ20XS4vyJEfwggV4szrroQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 bpp * width must align to 8. Use media_bus_fmt_to_csi2_bpp() and v4l_get_required_align_by_bpp() to get width's alignment requirement. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index e628cc67046b05bf0178c002a8bdf4bbcd64b30e..5435b58de55d21aa957fc635c95= 0ba2ae25a8dcc 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -664,15 +665,31 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, { struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; + u32 align; + u32 bpp; =20 if (sdformat->pad >=3D (csi2->num_src_pads + csi2->num_sink_pads)) return -EINVAL; =20 + /* + * The CSIS can't transcode in any way, the source format can't be + * modified. + */ + if (sdformat->pad < csi2->num_src_pads) + return v4l2_subdev_get_fmt(sd, sd_state, sdformat); + guard(mutex)(&csi2->lock); =20 if (csi2->stream_count > 0) return -EBUSY; =20 + bpp =3D media_bus_fmt_to_csi2_bpp(sdformat->format.code); + + align =3D v4l_get_required_align_by_bpp(bpp, 3); /* need align to 2^3 */ + + v4l_bound_align_image(&sdformat->format.width, 1, U16_MAX, align, + &sdformat->format.height, 1, U16_MAX, 0, 0); + /* Output pads mirror active input pad, no limits on input pads */ if (!(csi2->config->sink_pad_mask & BIT(sdformat->pad))) sdformat->format =3D csi2->format_mbus; --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013023.outbound.protection.outlook.com [40.107.162.23]) (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 7DEFF369988; Thu, 21 Aug 2025 20:18:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807517; cv=fail; b=crSY5cE0BgK8BiY0+8Sf8LBZ4ZomNPzlr7YxEXvJRWeg9DUvHXrqTcDdWDls2xUvIiXi0f0HMRmZ14C11rNm5TM56FrIk3Jp5h3vONPEpVDaCqf+pgBGTNka2t/PrmuwCN8sVQ3QJOa3n2mP8/yfNS3B3jY+6WyWq+3FUH9Afkc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807517; c=relaxed/simple; bh=5kqSnelcPgKhX2J6a/IjoI1ZCKvGsanz+HaLu0mjmpo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Sl8qANI6ZYSbaLen67jWT5RApxXaLNm5jr559OEowSDkvmW89Stlo3wUIfwOBi4RBJ2Cmba6GOmXrpZoAxir1vF/nWrvdChMzlQaquFveM8J5wX3LC7/EQ2bKGTdsOTx3KJuImOVE3vpxvOw+C4PYuloTtOVN84rBETZaS8loco= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=afOq7aHV; arc=fail smtp.client-ip=40.107.162.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="afOq7aHV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R6la58ZwpTad9D2T88ogWaOjaFtx9m+Ox/bVVywxCTQoK3P7L01WNZufTFJFPCkHmrBwYrkl37rbAEn2THZLNr9xYyQ5VH1juWfPEo0hj0yGmpjwepQB0HXr09ikHk8tTC5VOS2OcWP009l4BdWJRRt7B67ga75eq74T0uXNO2+kBWiu4LKRm0m6lqYjdDTQUqiZfB+9RoLAgA3DH9lxw3oTVKQNxT7vLPdcQezPC12hRBPkBORpapf0q20TrBMte+hE75n7S6KlnBaI7jBSV4sVncPcS5NFBRnjsyqwccze1xck2CTJQ6LTAD5hUSMsWyM2uVcXvZE2Oxm59OwMaw== 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=GnyOTOJYBWH1O1vTqnrZOqOuXkDiPrTzXn1me+EHktg=; b=KjWW5Ah0aGbogm+wOJsTOdalTuMPpArJfiFA4pjZQmtTXleR6t4/yVUm8j+5kkqz3LemA95Q8sS68pBHc1gfJJSemvor6R/4WhPELvpgAmGrRdjG/aXikFMkBslQF4SYD/RxbDyJzgO652db03z9kZlnEUUWXqfbFSzELBcnUvTftBbIWXay5MlVnX7CPJXqpMwxua07oOnDTFY1YMWh61subaHbj3KfuLIatZAI4gPZ9Ci5zF8+6JCrW9Tt1EPdOyWV3cmMDYmWiZwtn9UxfZgdP/shJik0zbaFBPeh6KmzBs/XA6yvg8unxzcGUWOaazAET9b42xtB4Ci7/+PwQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GnyOTOJYBWH1O1vTqnrZOqOuXkDiPrTzXn1me+EHktg=; b=afOq7aHVAzTQ+f37RXh5+QrO31M9zvcoCFZPtGSp+dE+XHPzwiEbtyGjKdGS6qWGoe6/tsyjcsxsqyqNeqEERvS0mGoeyduJKiRpu7zw4gmrz2DBiaWz5F1eahWAgAEmbzTRZUeLYdEfNQQRe+5HGwNvL2YxnlA8Gq9j0qA5qafFj5ICKCfqUsRrOCHcBEy+r1ZTkfB2gPo1f6CSndq5dTtz+sPPAWgXXlcPBU9sUaXmC0s3nnXy1l+npkM26aOauik/p2hS5+pllj1sDljO7TXltojtC9oZE8l7fyRq3xzTx4Rag9bTlsHfTxJ5+qVnWoMygsDXXG5FymBsMq1NJw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:33 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:33 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:58 -0400 Subject: [PATCH v3 23/31] media: synopsys: csi2: Add register prefix to register field definitions Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-23-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=3789; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=5kqSnelcPgKhX2J6a/IjoI1ZCKvGsanz+HaLu0mjmpo=; b=ZrtRDewZHHUuuIfK1hMw1JB1F/YRmFoo8jLLHzr/lo6YDA3xUlJ5aTxSNU2EcMb/c5SNXwUdH NDSjGxr7J7LDtofeITGfZSvV2v7KrVUPMSauYYMk5etXw8RhdDFLW75 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d8ca6eb-9122-4478-847e-08dde0efe6be X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dDdpcXdGMUVQUmZCV0RwcTJ2cVNqd0hmUm8vdXdSVzFXdWtGcjIrVlF3YkNV?= =?utf-8?B?NTdhTVdmQWV4bWlqZmgyZ3JWSXlqRktDRmhZWHVKOUNpcktnalFOR05rVFdK?= =?utf-8?B?NDdNZmNZakkxRkhDWHZEODliY1Y4d01VMEdaZitLUzdNd0hiSGx0Q3NHODZx?= =?utf-8?B?Z0dKU2gzeXlDTFZqQW5RdDdBNVRhSzhWN3RlaVhEeUlKR0xleEZzOHFtRXhE?= =?utf-8?B?OU9CM0J4ZjZ5ZjhUcVVSc1d4dGo0N0UxZlNXK2NDNXZNYVZRS0JEOGV0Sitx?= =?utf-8?B?aGkydDBQUGl0L3F0cy9aQVloWFJGUmwvK29KWWZMejhWNEhscmNibVVyQVRV?= =?utf-8?B?emppcmpMRkdtOUtRc291MDYrZ1JqczRVemtibEtTb3N0U0ZrWXR2Y01mNGdO?= =?utf-8?B?djQxenZmTTRmN3lDeFVKUzRMc3FTV2ZlWnlzaUNiVFRFaUwyR1hGUW1lcUZT?= =?utf-8?B?cXBabU5Sby96L0p1cGRZaTh5VTBnSVA5VGZUaHdvY0pyamZNODViYjBFcHE5?= =?utf-8?B?TkhBRkcwR3VSK0l3dmROWTF0enBuVlM2SmFVUEtlb2ZwcjFxZUFlNDJiSVpl?= =?utf-8?B?M1pxbkhKbXRRK0RRYnZOZ3F3YmJRNktPWCtaRnJZdjhEU3dheFBVUXM0N3dn?= =?utf-8?B?VWllQzIwdlA2S2U3NGhjWUo5aytYbUp6V3puNFk4NVdSUDRrVnptV3IyMTdj?= =?utf-8?B?aXZQQVVZU3ArUlVVaWpKK1lvc1h0SGZzZytSMFlWREhhOHZjR05FSnp4UlRJ?= =?utf-8?B?TlBxeG5nVHY4M1dnTENMSFZubHVKelZrY2hCWGhxbXhvei9qVXVtYnBRcHJ6?= =?utf-8?B?UXhvZnIraHFtRi9PUUVHZG1jelJ5UmkyZkpkUExiYVQ2NE5CQzM2Zzl6YkJR?= =?utf-8?B?MnViM0VBYjczakVDazFMSVpiV2FoTm1Dajh1V2tXdWNwSVU2ckdXT0RiQVdH?= =?utf-8?B?S25NQTVvSUsvM1Fsa3NMaEpnVXdIR0VoYnNuTmRMY3duM09ta20zRUpkS0hk?= =?utf-8?B?UlZmbjBiTHJQVUdvaTBPRC92K090UGF5KzhGM1BmZG05REpPeWF4MXRDU2dU?= =?utf-8?B?TGZGR1pLdEF3ZXBRdHVSY1Q1T1YxbTZyREl3MmRSVUZRMTg0NnIzVklDSW9n?= =?utf-8?B?Nmk0SzNpL0VvWWpxRk5SbW5kS1dCeXhFRXJWOXpLeDhBNGVtTFZwdXlkbUJQ?= =?utf-8?B?T3l2TzYwbTAreXo3QXlHbm8vSURXT1pKZWVzOHpJWm1LcUE4alpnVm1lQjNP?= =?utf-8?B?QVRFbThpQnlnZWRvK1FTSFROV2NLdGc3OHFqQTdIaXRDN2t5Nlh6YkxZTFBr?= =?utf-8?B?bEViaE5rWjEzODdvUlBlOUM1bkZGWkVITmMzSWNpWEVmOXZ4elJlNmpIRXla?= =?utf-8?B?d3hoUFFmR2pObk5oNVJheVNkMStHSG9pVzRBVHZ3WSttTkRUaFNjUDFMREEz?= =?utf-8?B?TGJ4Wk5aT1VSaXRWWG5Mc09uSTFnUVlHMUxtQTZpOFJudXVYV2RGdThDY0w1?= =?utf-8?B?T3NYcDNrYkk1SEpSL25sMW5xdHFyT1hJVzFGU3ZpYUZFbDUwTG5qcXJrQU91?= =?utf-8?B?alUrWnlGbTkvU3o3RGV4RTZoSGdhOVdwc3hicVJwU2NabVhhOXc3WWhYMncv?= =?utf-8?B?M0VWS29JSjJqVDErUEVIMVNOZGFtMDBZcFNUbmVwRm9OU1RuOEc4dlJQc2Ry?= =?utf-8?B?b1VlNWZxbVVJZlJJQnpJVm5TR0JYalhtRm1kZEdJUFR6RGx1UDlKS3pDNXFK?= =?utf-8?B?b09OaGlNditDb2VxTWVIa2tJSXVsbWNqblNURGJkbUVGRXdvSElsVlBVN3hS?= =?utf-8?B?R3FZeURvQ3k3akorZmhhdS9aeGQrazZaQXBCTCtpUFhDQVNucDMvUEV4ek1y?= =?utf-8?B?LzZGMVY5clQwTTNVWHFHQlc4MG5uU0JNN0RjOVE1dkdTMHBPT0VwT2lPdmx6?= =?utf-8?B?aGI5VDVLSy9QU0FBWUlwQ2FDOExaZ2NhcCtSY0RZSU4xTkNGNjNuSU1RVlA2?= =?utf-8?Q?GQaYz3Oy5I0yDZhKTYRMvQ5RSZ8CCY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NlNpWENMSjBsZTh0dWt4WG1oSjZGVzdZZTZzNS9iaFh3NVliMlRRTmlWVGx6?= =?utf-8?B?ZTd3R1dYeTNyS3I5MG5FK1dVLzFOK3lEOTE1NkFWWStCTmxUZmlLVkVJR2hv?= =?utf-8?B?a1pLUURxN0FuV2FHb0x0dFI0M2pLUHl5dHYxWGd5Z0JyNHRrVUNwUG1yWHhl?= =?utf-8?B?cTljUUhUdUx5NGJBK2tEWTd5aUpsRDFHbXR6aGhBRFZrWk5VelVpN3I5aGgr?= =?utf-8?B?ZFZkUUxDZkJOQVVJa3lkK1RwN0RRVlNaSEVEa1dPZEc0c0wyajdmdVFSNG4x?= =?utf-8?B?SURva3pHN0Y2TlRTTmY2K1hwZUtXY1F6cEszTDR3S3prNXZOU3g5SFBWOGRT?= =?utf-8?B?aENSR2l3NFlzeS9tWndVQ1NyL0ZnS282WjRoZmppSmRLSHdVS2xDbVQ5SmJm?= =?utf-8?B?RnNKbkZZcVl2eWhRekpJZkJlQUFzZzFHNHE0YStZWHB0OWR4VmtGelhDS3JE?= =?utf-8?B?NSs0WFkxbEdPUWFUSGg0S2I0Z1Z2ODVFV3JEVmU3MmpJdDlhWkdmS3dOVHM0?= =?utf-8?B?OFVlbVhvaGduVEJJejZSMWpLemJBTHVIS0Vsc04vckJKNDJ3d2N4QlAxZUJT?= =?utf-8?B?NDlPOTgxeVdOMWJyaExTQnJzd1NYb0pPL0tHbW1QNjVGbWRRRTIxOTlSSjdu?= =?utf-8?B?dm1WWDVKNk5RL1dBYnE3Qmw3RHRpWGEyRUZVb2pqRTJXRmNsUGtSSnZha2Ri?= =?utf-8?B?eDdmcGtTQlNyK3FwOU5jbEEvWm9iRjVMRTdjek9JaCtmdE5nVXRvaFFaaHZa?= =?utf-8?B?V2k1VHVGMEtYdjBmeUxqU1ZCYkptZjBMVHRyRi9OVllCQVZ3NGNNWlphY2lW?= =?utf-8?B?REgxVzBidXk5K1Z5MWpaVTVBbTEzSjIzb3dZaEwzU3BUNWJUSHdsK0c0eHNm?= =?utf-8?B?emlwWEljaUNhNXJET1huSFVBOGRlOWRqaUVqOGwzS3M4TjlSL08xU0l6b0Fv?= =?utf-8?B?QWJvK3BZM3ZLT1Vqb2RWTXllS2xab1hRYnpwR0VpTVVQSnhPQ05kNXVZWTlp?= =?utf-8?B?VUJnWU9pUFNZd2xVQ3lRM0dFNXlIdG41VENGU1BtaThOcnNsTzlaSG9WMTBC?= =?utf-8?B?eVVoMm1Fb2JVNStzM2Jud1FidVZuV2I1eVlxcE9oRjN4YitaWWc3WXBIT2d0?= =?utf-8?B?STJnM08rQWlxSjdxV09Od0RWN2k4bzdMMDNJWW9xank2NzlnNHNNK01Gb1V1?= =?utf-8?B?L3BXdTJPVnF3MmdzeEtRSitRb3hMMGoxeWU4cmNqRWxkMWJjNXdlOU9UZ2dG?= =?utf-8?B?RUprbUZnVGR4T1B4dzdRbEhPUUVadFhwYXBUK3BtMGREZzZHUHZ6NGc4Rm9t?= =?utf-8?B?cmVsdWk2VlJqSWhVTW5INlJaNDhlbEovYTh0RmNpb1lCaGRnNlVWWnNyMVFt?= =?utf-8?B?TzlFczU1WFhJbmRKcDJ0VFAxekdHUW96TUExYXo4TFMyckljVWQwUi84R09K?= =?utf-8?B?WEFxbnhiOTVPUGdZSzJuRGFjYVRLdCtZVFFxNlRxRWdTQmRHTUNXWk1WZGll?= =?utf-8?B?R3pPcVppcVZhQyszVWpNSm02b1FkNCswQkNGTGtxS0psK0sxZXhwd0Urc2FC?= =?utf-8?B?cE52SXF0MEw4aFdYaTFPb1hZUUovRjVCWWQxL1gvU2xQN2VaWUM1ajVpbS9x?= =?utf-8?B?WkhIbVZheGFjdlhCN0VUL1IzUTZtTnZaSmRuYVZ0a0xYS1JoWmcvZGEvSS9S?= =?utf-8?B?L0ZLa2pyaDUyVFJwNHhBdlEzS0xwRGU4aEFhSUQvLzFneTJLdEU4TlRLUnFL?= =?utf-8?B?S0o5VjZSVUxYT0hQVlFsRGJYOEkzZWlZK2FIQmU4Z2RFWmV0aVFzQVNudzJZ?= =?utf-8?B?a21BbkF3bHVzSE5SblFaY1lnRVd1MVdrbldCeGczdkkvaXpxVlgvaU5LVEZt?= =?utf-8?B?S3hSMjBYWVlwWlhRcVM0OU03U2JwWGdsajlCOUtQWUVPaVQrVERlWStzSUFB?= =?utf-8?B?SU9qTmswejJwdlBkNXFvSytTblo1M2pRU0lXTW1BcGJ3dnZZVS91aEdjNFRr?= =?utf-8?B?MlZvZzBjR01TMnlvdGhrMEtzVnFhNXBOMm9yUytud0pOZXdMWm9NR3dLNVNB?= =?utf-8?B?Y0VIVFpHUEh6NEVsbzJuaitjOERYeHZxcEhNdFJ6NFFmaTk5WVg4MlBvdXF2?= =?utf-8?Q?RPIU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d8ca6eb-9122-4478-847e-08dde0efe6be X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:33.0988 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LhOzDGj4knROWOaqocUlEB0MsCTm+WUCXtYQnIykjj6thuh9Ki6NeeKaT8frpyIoPICcCDJEm37wKpKFOwAPIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add register prefix to register field definitions to improve readability. No functional change. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 30 ++++++++++++++-----------= ---- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 5435b58de55d21aa957fc635c950ba2ae25a8dcc..d6eb666646b916c2609a279f8ba= dc1e8af557121 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -146,16 +146,16 @@ dw_csi2_reg_err((csi2), #__name)) readl((csi2)->base + ((csi2)->regs->__name & ~DW_REG_EXIST)) : \ dw_csi2_reg_err(csi2, #__name)) =20 -#define PHY_STOPSTATEDATA_BIT 4 -#define PHY_STOPSTATEDATA(n) BIT(PHY_STOPSTATEDATA_BIT + (n)) -#define PHY_RXCLKACTIVEHS BIT(8) -#define PHY_RXULPSCLKNOT BIT(9) -#define PHY_STOPSTATECLK BIT(10) +#define PHY_STATE_STOPSTATEDATA_BIT 4 +#define PHY_STATE_STOPSTATEDATA(n) BIT(PHY_STATE_STOPSTATEDATA_BIT + (n)) +#define PHY_STATE_RXCLKACTIVEHS BIT(8) +#define PHY_STATE_RXULPSCLKNOT BIT(9) +#define PHY_STATE_STOPSTATECLK BIT(10) =20 -#define PHY_TESTCLR BIT(0) -#define PHY_TESTCLK BIT(1) +#define DPHY_TEST_CTRL0_TEST_CLR BIT(0) +#define DPHY_TEST_CTRL0_TEST_CLKEN BIT(1) =20 -#define PHY_TESTEN BIT(16) +#define DPHY_TEST_CTRL1_TEST_EN BIT(16) =20 #define sd_to_dev sd_to_dw_mipi_csi2_dev =20 @@ -235,20 +235,20 @@ static int dw_mipi_csi2_phy_write(struct dw_mipi_tsti= f *tstif, struct dw_mipi_csi2_dev *csi2 =3D container_of(tstif, struct dw_mipi_csi2= _dev, tstif); =20 /* Clear PHY test interface */ - dw_writel(csi2, PHY_TESTCLR, phy_tst_ctrl0); + dw_writel(csi2, DPHY_TEST_CTRL0_TEST_CLR, phy_tst_ctrl0); dw_writel(csi2, 0x0, phy_tst_ctrl1); dw_writel(csi2, 0x0, phy_tst_ctrl0); =20 /* Raise test interface strobe signal */ - dw_writel(csi2, PHY_TESTCLK, phy_tst_ctrl0); + dw_writel(csi2, DPHY_TEST_CTRL0_TEST_CLKEN, phy_tst_ctrl0); =20 /* Configure address write on falling edge and lower strobe signal */ - dw_writel(csi2, PHY_TESTEN | test_code, phy_tst_ctrl1); + dw_writel(csi2, DPHY_TEST_CTRL1_TEST_EN | test_code, phy_tst_ctrl1); dw_writel(csi2, 0x0, phy_tst_ctrl0); =20 /* Configure data write on rising edge and raise strobe signal */ dw_writel(csi2, test_data, phy_tst_ctrl1); - dw_writel(csi2, PHY_TESTCLK, phy_tst_ctrl0); + dw_writel(csi2, DPHY_TEST_CTRL0_TEST_CLKEN, phy_tst_ctrl0); =20 /* Clear strobe signal */ dw_writel(csi2, 0x0, phy_tst_ctrl0); @@ -271,7 +271,7 @@ static int __maybe_unused csi2_dphy_wait_ulp(struct dw_= mipi_csi2_dev *csi2) int ret; =20 /* wait for ULP on clock lane */ - ret =3D read_poll_timeout(dw_readl, reg, !(reg & PHY_RXULPSCLKNOT), + ret =3D read_poll_timeout(dw_readl, reg, !(reg & PHY_STATE_RXULPSCLKNOT), 0, 500000, 0, csi2, phy_state); if (ret) { v4l2_err(&csi2->sd, "ULP timeout, phy_state =3D 0x%08x\n", reg); @@ -294,7 +294,7 @@ static void csi2_dphy_wait_stopstate(struct dw_mipi_csi= 2_dev *csi2, unsigned int u32 mask, reg; int ret; =20 - mask =3D PHY_STOPSTATECLK | (((1 << lanes) - 1) << PHY_STOPSTATEDATA_BIT); + mask =3D PHY_STATE_STOPSTATECLK | (((1 << lanes) - 1) << PHY_STATE_STOPST= ATEDATA_BIT); =20 ret =3D read_poll_timeout(dw_readl, reg, (reg & mask) =3D=3D mask, 0, 500= 000, 0, csi2, phy_state); if (ret) { @@ -309,7 +309,7 @@ static int csi2_dphy_wait_clock_lane(struct dw_mipi_csi= 2_dev *csi2) u32 reg; int ret; =20 - ret =3D read_poll_timeout(dw_readl, reg, (reg & PHY_RXCLKACTIVEHS), + ret =3D read_poll_timeout(dw_readl, reg, (reg & PHY_STATE_RXCLKACTIVEHS), 0, 500000, 0, csi2, phy_state); if (ret) { v4l2_err(&csi2->sd, "clock lane timeout, phy_state =3D 0x%08x\n", --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013017.outbound.protection.outlook.com [40.107.162.17]) (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 C583436C073; Thu, 21 Aug 2025 20:18:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807523; cv=fail; b=JtdNVqlHiJnyNjLn6V0JjEo13xP9iknefXt2YuEVzBfwHR2P9nQGBGNzxQWw8gxFqUROkP5hILFjOPZWaRrUrlbuh9U3x5n/CzPNaFM9ZqwOFv7QGScPjmyA7GZaP6F/lKeZwBZW2lovJsdJVdWwt4/OTse8/j88hD5vzh2sc64= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807523; c=relaxed/simple; bh=rM+abEFBwjHuL8n588QsuAlDICnODm3irxTZqQqvLM4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=TC+Nd/bnYZGxN61V9xHDMgHDahsQlRHYC8PG+gj1Tsea1tTk4d7oqRmn+T/4aDeuK6VnCHxj95CRlOjlKWcVvHErPJ7nSBVH+E2VIiVl9oZjXzH2n+8CkdSOTaQEFaVJZ4tOGKVnDgaMdfn/S42FFEi130fbxWJkAX76ZujI6Ac= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Xjd+xJS5; arc=fail smtp.client-ip=40.107.162.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Xjd+xJS5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m+TRCXWp1oU3pks37ssqSEgZCagLgFZ/k9m/tqk6sz9U1J9Gv024cWhccHA9Gpyriq/Nsufs3ESCJESuw+msc9ckWm9PjDiJHuNXKmdGqbRGLC2ycIQxEu0BFReOIzOu1FowqzYtcqYdpm4Lwcjb3vXoKDWtbm0UylB/3fMFzMx9GlrPtlv0fa9JnAFDIb4XUvd2CxQXK0cEp+IW8/5y1Yje7Ted6cJaZV7Vu/AjFujPDOfpC/JRCgNEaiY9qp8qoayGc70W9lK1PHSx/ZhGABfLYO3Gnk/qgxkaoIbS0lk+e6i69A60wrr7nBLQjAVFm04zxLk2NqayYcYqgijGJg== 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=e9hkxBE888qd6hCn2JAshONcSE0vUEH9OxsYXaBipF4=; b=l9GfO+XB5XkWlPrLHLp6aI9oBDk1JRDRdSv5POpHvkK0tp30h0j6tdsd7eJtLY8RZ8QwhCcgeys19LvZxq5tZeissKO/ScHk3lV0+FmWFurWlvyjQFPqTMzzZrrc5wtCYmdYhKSNPJuCHSMWqVh7hdyQC5sEXzVcKC90Zj2G21zSM+dMPkHiLBSd9vn6PLCszbmzSLjawm2SpqZ5Iqyn12+G9rZCtdbnpTN1FevzBEn6WKMsUjrnGmnIrv3f9zCwhINaxiU1fg/phjH1SzEu49xFMHpTEe8Vm7VEIVfrrGpUnjkuR/S6Od3igW2h8fOIlXb7AdVNfcbHXziEXY4c3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e9hkxBE888qd6hCn2JAshONcSE0vUEH9OxsYXaBipF4=; b=Xjd+xJS5uHBxPJeHMnRJXtV6zTAUSstHkA+JFfpp0mdu6JcB63aD/v3WCZ/3TXDa9kwIGtf9ifKX6prvl2V1uv5/9EvVu1b/T7VQ3xXJy6dNXPlcddlECmqFirocaPgR2n4ARuya2pC657UIE6RitVcZQ12SMhv91LaopIH68xPW3/p6A6IHToAjp6YYfl9fIG+Gm59fiLU2DQqFJJn9pcKKczbNA0+VpTZUUo5q0DdWQUF2zR0TQuXDeRmH0Y+uaArXzD0i3n76lq2bTibSccSUrKTvjn/o4uWR72BrCBqPDXs/8dg86+/LCAPkIHfnMlLghbyKDe7miQwz8YcqGw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:39 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:39 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:15:59 -0400 Subject: [PATCH v3 24/31] media: synopsys: csi2: Add need_dphy_reset in config Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-24-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=2901; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=rM+abEFBwjHuL8n588QsuAlDICnODm3irxTZqQqvLM4=; b=ppIxflXjcUHbqkjCVwmVjo45ucjykrTMJObUWzCIHf9soM2QqvYO4jg4v+nruqhUVUNPxe0gb 8iEkRBHyca6AqBQJvQlYcJeYR+QWIJPNSYoCdSAK6ETQ0Qp1Qsomex8 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 7cb133b7-9093-441b-6150-08dde0efea64 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?WFI1MGVSMmQyaHVYQkhJeHJvaWE0RnJCYnNGbTFVeU9BYmg3UWpScDhtdWdz?= =?utf-8?B?QXF5RStCSlVGVTNMMW53aVhXS1lEUDBzWERPWFlxVWJHdlFUTUs4TlFHdFND?= =?utf-8?B?T0wxc2dKUUVTVHZ4ZUJkZzl2UTRnSEtrQml6dCtiUVByaWNnb3hhcDY1NklV?= =?utf-8?B?RW5SQnpEMisxbjJUUjhtQ2ZwVzQwY3ZWcUVlbGZwU3BxcjZEMmNVYkNVdWNs?= =?utf-8?B?UnNOc1ltOGN2SVhHSGd1UDQvekxvdnZ5UDBpcFhrb05palBrSkN1SVkxQlJv?= =?utf-8?B?ZC80Z0x2L21FWUJPMEI4WmU1aTYxZlgrUExPZGhsTXByNm1oTzVEdzYwOXpn?= =?utf-8?B?Wi90SWh6Nkc3SFhianFKUDBIR0gzMTNEb0lJUzI1VlppcmpldmxROHdoTUFB?= =?utf-8?B?MFlMbmJGdFpVdDRqcmwvUmR2bGdTT1hiVTh6MHloUVoyQ1BmSDdldSttcHJM?= =?utf-8?B?bytWSUp5bmFLaURVTUM2eXB1SUNGNWNaeHlTd1V5RzFNSkxtTmF1N2hIajln?= =?utf-8?B?OVh2RE5XYnUwTko2alBiQVlMOW4rY2UvV3dkOXpSNWhIcEc2NWxHbDhIdUNY?= =?utf-8?B?cituUFJEd0U3aTBXYnVoandJWmVLTFNmNkRqSjRpM0daQk53N0UyRFhNWVpY?= =?utf-8?B?YklXUUJ4eEhkd2tYZE9aRnFLbnowSVJJZzNpSWl4cEhIZWc1dnVibEYwcThl?= =?utf-8?B?cHpSSzRIU1lob0MrNG42NmlGSkdQTG8zdmhKQktPZ3UyUWdGY01Bc3FOamYz?= =?utf-8?B?ZjRyTTdGbXQySGNjbzhrNnBiUUNReU0vYU5Ob0FWN0h6V0xiSDVzNUVkNVFy?= =?utf-8?B?WnN5aGJoVEVkQnVCY1Q3WWI3R0NVOThMQnBwUVdoTU1qWWNwUzlTLzNXOFhN?= =?utf-8?B?eGhEbG1PdDBZQkRqM3p2RWdqSDI4T1pnYko5ZEJhZTAwMVhkOURZaU1jeWFq?= =?utf-8?B?cC9jWHZ4Y0ZwcUV5SEZZdU9IeGo0UjVPSXNDdm05MmZuVHNFT0VOeUV6cFg2?= =?utf-8?B?Wm9PNE4wbE94dk00MzZpNDEyQWs5NEJQZHozbVV5cU9XWWlTODFNaGY2dkF3?= =?utf-8?B?T3VFOEVmbnEvdEl4dGJuNDBTUVlOUlFVbVBwUlJJWTU4TVBJU0xQVzhMbmF0?= =?utf-8?B?TDJIc0M3N1pUZ1ZJM2o1ODB6ajJMRVRpaFpKcnZpa09nWUZOejlXdmxEVHNM?= =?utf-8?B?eVVYMEd1bnd6SlpibUZHUjg5UEFSV3lPeGN2RzR2ZkRXeGUrekRyYzJvMFhj?= =?utf-8?B?WW1XbDJnNm92alBxU1VETXR5OTdocERpdGw5Y01kTGVUYVREZXpJeVZ4N0M1?= =?utf-8?B?eEtER1Nld3Y1MXlMeHAybkxSMXVINkNianFISXBPUkZPNUhQZWNmN21LaGlj?= =?utf-8?B?L1lZYjhnVzBuYzY4N1M5ekxKeWxUeWluaDlkakh0SWlHZEUrYkxRdFFhK1dW?= =?utf-8?B?VXJ5Nm0rSHZWblQ0OHN6YVZTNVR6L3dOQ1FmR3FkcEZuclp6NlJ6aUxTcjdK?= =?utf-8?B?czNuY0lxM3h3M3JmaVVuREdNV2djWmV3Q1ZyNExUaGpWOUNFOFkwVmRIcDlR?= =?utf-8?B?YWZNTmI2b0ErWngzN3J2YVpielNxbFVDN1EvUUMxR2piNjZNck82dXBNN21h?= =?utf-8?B?R2I0SkQvaWxYNXEzUk11d25VeGFYSXdrQWxTM1lTb0phbG10VVlyUU1BeG1F?= =?utf-8?B?L2tYaGJUM3FNMC92cTg5UXg0VnI4dEJMMjVDUGxPNHdOREhoeDlveEdieG15?= =?utf-8?B?dmlQWURRckpxdDhQRlZrQ0ZrbUVHNlh4SUpwUlczamF6VzhocDlocmxVQlQy?= =?utf-8?B?a2JmeU5MaThkdzZDcVc5UlJrckVVMzF5VVducFVKNXgzVFZCaUNmRlU1amdz?= =?utf-8?B?UTJ3UVNERzAvV1BCOUpKcnVUZXF5RzlzUWYzclc5NkxQcXo3TWU0dHI0dE15?= =?utf-8?B?cFZqNE9TS0VUNVUzZGtXMGYxQVIzdTZSTktmR2pRM2paWmJmbFltMmhzL0hY?= =?utf-8?Q?ozi+Tyj12l+M6080EnmunRicjxKJY0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UENMTjE4WDhYVGhIc09MWS9PRzhDS05TMmhOWFdaMXJNYzEvR2w4eTlKTlhi?= =?utf-8?B?NU9wNytPTFMzM3ZjR2JmbThYaHgxc29NcGRFVmJoYTVRa0Y2NjZDWSt2TTZI?= =?utf-8?B?bTJhMmx3dlliM1dKclNGU3BjajB4YjdnSGZoYnVFckdGamtybHJKTytRVDNQ?= =?utf-8?B?MkZGT3lPdHpHbnZBRVhQZ3BrZDlBblYzRERsQk5RNXp3SVhQVW1lR3laNndH?= =?utf-8?B?VSt6VlpHSEdCMWprcU80dE1DcmxBSS8rOXpTaE8vTzJKTm1BQ2VSZTNDQis5?= =?utf-8?B?VUNFN3NMTmk5YWNVSmFHeTNlK0RuWEhrdy9henVmemh4VVpoaFo2bGpwL2hx?= =?utf-8?B?blZHVCtFSCtyek1BMDJkbC83cm8xeXN5K3FqOFdYd3ZCSjk2bDBOOCtiVnA0?= =?utf-8?B?a1k0akluOVBnUWVDN2NnTFN3RDY2ajhlZ0QvM0tUOHBqSlA4UGVVbmw1dXI0?= =?utf-8?B?WUhRNm9CNTFJWWZ4aWNkNHVWdVZkenBhRmNmK0Z1bnFIdlVkMnVIQUNrRXBr?= =?utf-8?B?cUFXOE5ubUx3OUJqMzhabDQ1ck90VGdXcHJTMDdaaGdTa2FRVEJTZ3VLRXQv?= =?utf-8?B?bFZLSzZ1Sk5hME51R1dsanN1UDRPcFFoMk5Cdmk5ek03UlJrc0NoOFFaTHp1?= =?utf-8?B?WTVpbWhsVE1DeTEwRFZTZHdkckVMTXY5YTBKR1lpYlFvVXVIL2R4MDZDK2Qv?= =?utf-8?B?UFR6aFdkU0g2dDNsRDJWWnVvdXllNGtrSytQUzhiUk8rbElmMXhiODc5Mm5t?= =?utf-8?B?MmRicEM2Z1djcW5QWHprd2Y2TlRtQm8vandyaHBuWWJzaTI0cVBoQTBUZVIw?= =?utf-8?B?RmcycUlUc2xHekd1eDlURFNPL01uWlRrd2o0dklyUWxtTTFkbHRxVWlheTI3?= =?utf-8?B?THBDZmQxdWtWdjErNVNIdjNvRzlXdkRaQXVlMjlhYng5R3F2R0xjSGFXUnZI?= =?utf-8?B?dkxsUUNyZi9lV3NpWnpkbjVUQzFVZ2RvSUoxb0U2MUNEVFZNNk1mWGhPSkhk?= =?utf-8?B?TExzcXUxdTltN3h2cllqdXEveTRZdEVGSHdaVW9JQ3NtTFFjUzVOS2VGZlF5?= =?utf-8?B?ZlFpdXovWk1PQ29UbHZ4N3c4dXRkTzR3ZDdFYndjN3MyTVpGaGJnakgwS1Bh?= =?utf-8?B?MEpzY2M3MU83SW9NR1lFOUFlbEpqaU5IUm1YVlMzOXpINTRxMXRreG5EZHNI?= =?utf-8?B?d2RDRnJaTmE5Nit0NHhjSUgxS09JbWtGRzVYbERQSmVLdkgwMHgxdmN5RDk4?= =?utf-8?B?aTNhQjJxU3BnU3RRVS9MM0ZqOFNWWHprdEtlTmsvZGcyWDBCYWJ0MytCT3Vr?= =?utf-8?B?NnZFekJxeTFjdEEvcWc1YXdiMUk2dGJjZjZUeW1OblhoVmFIOTVzWTFmd29k?= =?utf-8?B?WVgrSEtKWHVjczR5dEwwUDRibk9vNzZ5SzQwQ0xaTVYvY25Jbm9yRFRRbWh4?= =?utf-8?B?ZVZ3WStsdHVJd2dycEpmc3NOTmVNSVdwVjRaUkE2bXVQL1B0bnFHeDJPTkd3?= =?utf-8?B?ZUxxREo4Z2NIaE5qWGZlaE90bjVMRkdydnZKMG80bmlNZWZVeHZBOWQzQ21K?= =?utf-8?B?V2hQOVM0ZEVhS1pGVmRPL29TMmp5SHhKSVV0RHNoSFNyVHJWWjRENENNSjN0?= =?utf-8?B?T0RsTVBxUDNLWmNnWC9PRklwaTN1VUZxbFNCaEhSdWlJS0JsWitvRXRPT2d4?= =?utf-8?B?aXd1eWw4M0pVTHpLNGVhaUZESjFlWHRYVmNFYjM5Mnc0cDZxTmZ1QU1JZTlU?= =?utf-8?B?a2ljZGxNNDRiTThscmVtR1ZwT2ZOZ2dDRnV6ZmJxZFh4TGQ1R0ZrNmwrbHNs?= =?utf-8?B?alRVV3BTWURnT1BTWlV0SVIxaFdPYVdmS0poVGFBRXlJT3RZQ3RSRkU2SHdJ?= =?utf-8?B?Y0cySlg2ajAxUnBDNWs4SU50dGExb2puaFZrcU93Y2VaNGlOQW5wUlRvdnUz?= =?utf-8?B?SmNjNjUrZU5pOFpNbkREMDhCOTNnbWpTTjBxeHVMaHhvK2pWMDAvbmcyT0Na?= =?utf-8?B?ZEdrTzRRd3NVR29qdzFZUW1OMDg3VFcvcFhmZTRneVpNbUFKeU1sWWdsVzJE?= =?utf-8?B?N0ZSdTZtN09aek1PL3MyU1lCbkd2VHlWVkRJS0FValRIeWlTbkN3Qy91eTdJ?= =?utf-8?Q?aaEw=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7cb133b7-9093-441b-6150-08dde0efea64 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:39.2182 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lBoJcFy9Gj0VKF1MmYEXPxP9WQ1GQQOfUbOA3cY+2vAcai/xZh1HKSo4NTUrvNZ733A1m1LqWHMhN/H7nPTQtQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add need_dphy_reset in config to indicate need keep dphy reset state during config dphy because some SoC like i.MX93 need it. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 45 +++++++++++++++++++++++++= ++++ include/media/dw-mipi-csi2.h | 1 + 2 files changed, 46 insertions(+) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index d6eb666646b916c2609a279f8badc1e8af557121..632ae5fd7da7850374c79dcff63= b6ee4aee7b611 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -447,6 +447,45 @@ static void dw_csi2_disable_irq(struct dw_mipi_csi2_de= v *csi2) dw_writel(csi2, 0, int_msk_ipi_fatal); } =20 +static void dw_csi2_dphy_reset(struct dw_mipi_csi2_dev *csi2) +{ + u32 val; + + /* Release synopsis DPHY test codes from reset */ + dw_writel(csi2, 0, dphy_rstz); + dw_writel(csi2, 0, phy_shutdownz); + + val =3D dw_readl(csi2, phy_tst_ctrl0); + val &=3D ~DPHY_TEST_CTRL0_TEST_CLR; + dw_writel(csi2, val, phy_tst_ctrl0); + + /* + * ndelay is not necessary have MMIO operation, need dummy read to make + * sure above write reach target. + */ + val =3D dw_readl(csi2, phy_tst_ctrl0); + /* Wait for at least 15ns */ + ndelay(15); + val |=3D DPHY_TEST_CTRL0_TEST_CLR; + dw_writel(csi2, val, phy_tst_ctrl0); +} + +static void dw_csi2_dphy_release_reset(struct dw_mipi_csi2_dev *csi2) +{ + /* Release PHY from reset */ + dw_writel(csi2, 0x1, phy_shutdownz); + /* + * ndelay is not necessary have MMIO operation, need dummy read to make + * sure above write reach target. + */ + dw_readl(csi2, phy_shutdownz); + ndelay(5); + dw_writel(csi2, 0x1, dphy_rstz); + + dw_readl(csi2, dphy_rstz); + ndelay(5); +} + static int csi2_start(struct dw_mipi_csi2_dev *csi2, int bpp) { unsigned int lanes; @@ -460,6 +499,9 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2, in= t bpp) if (ret) goto err_phy_prep; =20 + if (csi2->config->need_dphy_reset) + dw_csi2_dphy_reset(csi2); + /* setup the gasket */ if (csi2->config && csi2->config->gasket_init) csi2->config->gasket_init(csi2); @@ -482,6 +524,9 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2, in= t bpp) if (ret) goto err_phy_power_on; =20 + if (csi2->config->need_dphy_reset) + dw_csi2_dphy_release_reset(csi2); + csi2_enable(csi2, true); =20 /* Step 5 */ diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index 20ce6a21f0674cad54f01edb508dce14cd07a8dd..d1afd8c6d95457c28d7e1de6935= 908437372572d 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -28,6 +28,7 @@ struct dw_mipi_csi2_config { u32 sink_pad_mask; bool has_phy: 1; bool has_irq: 1; + bool need_dphy_reset: 1; }; =20 struct dw_mipi_tstif { --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013064.outbound.protection.outlook.com [40.107.159.64]) (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 D951B37D5B4; Thu, 21 Aug 2025 20:18:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807529; cv=fail; b=obcjZTddlejyLqlyn3X65WU/IloVwuji7EuWb2ZlrWEq7a2aIw9hok9hbvjHZ4Q3vJoPNolopUe2zkXxyolZYpBb8VmLG8LWVeWMH0RV1/vZvBJ8OrQE8tTPADkLrKomE9sEEdfQKBbnZsyFiXJrkn+KGphczSRLLi5XOp54Uh8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807529; c=relaxed/simple; bh=qWVsquHGhDd64SFLAyClZ64a2Eo3tPOBOv/foAqdFEQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jZE9FWSg1h7fBBptO2t2mC21BxLhmDqrg//XHZqaXA9aqGGocw9H7jWRy5AI6HYaG9FDS+cWC/IrRIqlHfVm1mG03h1H392aQkbyHh+m52a+S+D5z4nhhjYSEZiZSfW0ZThtBAO4tPcntgnbP0yjSRMaiJk+EW2TPX4XVrOV6ag= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=geRJD+yd; arc=fail smtp.client-ip=40.107.159.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="geRJD+yd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XKTWnLaDID1uGQUQM8Q9UyDp0smlbyRAapgDSt6XtcKqeRpPpIlLDmVxP/EFG7kUsLpx1qSmSD5ulEF0Lm0jedMsxrhj6x5W++F3GAHKgaS6D9nbQWvSKH0BfPFV1zwL8ajGQs/MQzpU3QWtD4ZNnAQaFsRPQUDUwt+l0bnCmzakE1VB1LCeyreywBdcBX80cD5Ej3TkZi4B2cpOTkRxd1aBOQh2kfhI7t8Y95oFcZQqPWRI9MCpxwgjAy/neH56J/I0Mmd26Q6MTycZdyMGqs0DLn3U8QkizR8tpF+HC4R8m6naPUFrHiPQoVFBwNVbA5RDK6SBjjHkaEWMkz3+9w== 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=x8/86aNc7rhhTpxV3iBf8fVoMhWF2oSw9UYKMHUp8xg=; b=AptrFzih/IVz+4V5O0vM8cRhzkWjJYGnvMtCTquMkymuw84EMzDn9+PuBozxYzFDMx1AeImq9/1vCZAfMx8aEctOgWHp6JdBlg7w7gYr3zW9WTInpdQOhtT0UEO1tzYz9oM1Ly8znqSuPnSh1j8GrllIc/Sfh/XbT5la76UW4ib1YWLLCyxD3pgOU3zqKwkhrFKyWRMPu22CTRC6B+BX1kT8tDRQw8YmyWy192rROeQBQwiOBPbl9EA1VrQkIo3G2QNy76aROHu0BwaHbDKSqFqrLLbTw72WTp8G6hHq/HHLUKIDxeWFftFqa0qXuvPZmV3LRWP7pCDB3JDpvGT2iA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x8/86aNc7rhhTpxV3iBf8fVoMhWF2oSw9UYKMHUp8xg=; b=geRJD+ydBsdJBFRWW2tFbAxJyecCT6i+xk/FtLcn7x4kQE3I7WJOIm/7v0hm8d3D74U2DUDnCQiOgUrjK5GJDILrOy/SZ5ZX6jf5n0LiHlcDk231kyQDnlTWLDsliyTCxq6l3ZVY1gnqDlz/t4DH2LIDhE/WCtfTcnEHHhrOi0/FlVO5Rs1jHZ+oFZOvXwFtp1qXebcH8QOezFHSE1VipaFaCwdvMN6s4bb54t5cl6XCj8PrWRRLuy2WMgUuITu/6NDfeZWUxpTDK/s7U/Y8aMmHdji1fXT9Owicn7SJNWB/2u7p++HMvUEW6z8TbdiSv6n6BIbOb/zDeCpP2LmYtg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:45 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:45 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:00 -0400 Subject: [PATCH v3 25/31] media: synopsys: csi2: Add default simple dw_csi2_subdev_init_state Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-25-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=2835; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=qWVsquHGhDd64SFLAyClZ64a2Eo3tPOBOv/foAqdFEQ=; b=wWE7QivrZAdSsXT1MjJSRC/2wqWX2uEZ1EODukp0A3Trk7ig6Z/oWN+NKv5TNg/y8EBvR4OV3 WL5UArlyzdnDV+srE0kMoKecJn4ougfqXvbIYP4KvsJGnmbOQEJFWpe X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 34730e0b-3d08-4d52-c544-08dde0efee09 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?YkdlRHhtN0ZENmxIQ0J3YTNtbDVPb1BTb29RR2hCTzFoRXFrandmYnZEcXpu?= =?utf-8?B?NkVXb045QkdzQnhabkZ5ckdBWVJOd1VtZ29uU3VtNnRObENPOHhwcFA0N1NV?= =?utf-8?B?cjRCRFp1RXpiS0pPOVdQeGc2bU5TV1ZnWlBGMkxPRzJTN0lnZnZaa0pBWHE1?= =?utf-8?B?OVRzNGZENXFqT2t6QUhDMnVoQlZ2ZDdLSThoUjNGTUwxOVU2b3RXNnl2QWs5?= =?utf-8?B?cytwZTNRVE11NVVtMCs4c0VibkQ4TlBmN0pIQ2NyWnI0OFNObU9ZcWwwZGVy?= =?utf-8?B?Qm1LNFhOVnRBVmhLU0ovSldqTFRPTk1JN09hZC95YzYyT2JCTlNvU1g5VkdB?= =?utf-8?B?eXYxTmNSSEMvd0laYTRybHBxZmF5Q0k2RXZrMjl2MDJuVDYwZkZZcmNrTGZM?= =?utf-8?B?NCtaWWhDY2Y3NERsYXVKRU9wcUpTK2tzaU1Md0JwdlFmNG1USFh4VEIveVRq?= =?utf-8?B?cFBod2k4eTkyQ2JsZUpoS2YwR0xnZXkxajUrdHVmcmIzaXRDb3IwRlBGck8v?= =?utf-8?B?TXpXcHU3eHl6S3B2NE9RUktyZ0NpaDZNS3pncGZmcEhyUnZObDFlQnFLdERM?= =?utf-8?B?RFNyOGdNazYvZkhKQ2V4bUQ2OTBWUnVkZE85Z1NpYjc2U1RxeHFUdVpIcVh3?= =?utf-8?B?SnBHQTJjKzdqRjZJcnltY1RKcXFiZlFiWHNaV0YvVWpmNURUdUVlakhPejhD?= =?utf-8?B?RmdEeHcvNkNQVmFDbXNzSkpPanU4VjVtdDhhcGdOUlFxeWszNkpiL0ZFTHAy?= =?utf-8?B?WFpid0l6RTJtNUxoT0ZJaXFZd2FEcFhPYk1nMmlmZXJoU0xUQnBxL0JpRDQv?= =?utf-8?B?RHBxemJnUDVtSzU3WVprR01tOFdVNlFMeW9RQnlSUTJpY2Z0SUNoR1hpcFI1?= =?utf-8?B?UloxTE1CeGlNcGpMYXJMaEZnR0hYUkxQVE40ZmI4SkJFUGJ2R29lMXBYd21N?= =?utf-8?B?VlB2TCtKYitSRllPbHJ3WWpIbXUvNURKNlhSS3BHaDVuWlpJc0tITDFaRllq?= =?utf-8?B?STNKbEQ1VlJXcmpnQmlLVG15d1hUakNBazVZdExMM05icVFlSTYyMk5teUhE?= =?utf-8?B?NkdNcmRJSHcyaStwSUVxQkVxbkcxTHQ0OGNTL1dkRlhheFhWN2Y2eXVKSFNP?= =?utf-8?B?OXdERU5La3lyVG1RSkNodGpLUlA0Mk9TYUtVVS82YlBuK2dVOThUM2tqM2JH?= =?utf-8?B?S052Y1NLWnZmU1BoYVo0K1M0TjV3dCsyczZBbkVRbnpXdnhrTkRVL0V2SmVw?= =?utf-8?B?U3hwV3pKS0g2Y1lSTEJ3eHJSRFdVMHRpYkdsK3dOR1VlNlJLWG8wdU56UkVt?= =?utf-8?B?WVlpendmeTQwdDJNYWlRb2plbDFRYmIvWW9NQjdhOTFVT3Q3WGNSUnNibW5R?= =?utf-8?B?WURKMlRielp6b2tOM1FzY2FaMVNUYWRmNjNtYU9YN1JVdUFQQXNsWFNGTi9z?= =?utf-8?B?ZlVoenVUeGxHbXNhMnRnb1FZUW5FNStBYWpmaW91eDFLTTNTN1dqNkhDNktQ?= =?utf-8?B?VkpyaXFkWStqV3VMTlNxcTB5ZUhVNkszRC9ZS0ZLSVdsYjIvektJVmNaVXVq?= =?utf-8?B?ekEveDl1NFlyb0hLajczakZDZHFzVTcvcmdicjEzZ0l6cnd5OCtsQnFCWkZP?= =?utf-8?B?MEV0Tk5IVmxuVW9IV2xNUithc2VFc0s0YWo0UlRhcEs1OHpLdXlaZXlORUlx?= =?utf-8?B?bm9MYW12MHBTWTE4Mk5oaFRwZ3ZxdDhyZWgwSVhxbW5SN1NNL0cycHVnWmwr?= =?utf-8?B?WjhQNklkUFVqcWpjQysyZmUyNG1zVnV6L0g5d2RRWjU2dUFPNGtSbmszaTY2?= =?utf-8?B?WmlpT01sTE5HcWlZM25hVEcrOE9VZElUUlNXZW1WWjVFdENudll4UjZJeDhi?= =?utf-8?B?RFhHMjdYUEFtZDdoV01KbWFlejVqaE1ncGdOV08wdlQ3YXdwWk1EWWQzRk1O?= =?utf-8?B?MmpBY1p0azE0QXR5WkNXQUltWHZWc2ovcXRZUkRSZk9wN2N1TUVLVTFERER0?= =?utf-8?Q?8rcsdKSYuHF5Tb/OqWwSGP7+rtB5E8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bkJOUmpETzM2NEp6TmIyWS9oc3RJUDZmaXN6Z2k1NU9sRzR4Q3NiclVoay9k?= =?utf-8?B?ajZGTFFFdXpuL3VBUnlNNjNoS0RUb2p2dElvaGN1RDI3b2NnOTdZUTVubXN6?= =?utf-8?B?elVNdzhVVEVodUxPeXJSUHVHaEFQMFJXcEJhUWoxcXpHS0JSRzJ3WWNBWkZS?= =?utf-8?B?UzFMb1NzRkRSYk80N211d28xSzFiU3NhRGNMaUE3NXNBbUptR3RqaFhuTmsx?= =?utf-8?B?dnh1Vm5SK1VRYUMyRFkvMVVSRVBYUzFEUWlwaFAxMFNDVW1OMjM2TlVqTjlw?= =?utf-8?B?VnEvSmJrc2FkQTA0SVlWOE9EZ3hrQlRKSGFTZ3pxSU0xU3JYd2MreVhDellw?= =?utf-8?B?a1RtbmN5Qlp2WCtMbTYxRFZJbVZ3ajR1YTB6SzltS0NHQVhoRkxFRjJSTXVt?= =?utf-8?B?b1M5bkRkMjlKSzR3MDZ1RVFtczEySWR5eHBRM2xOYVQ3aW9TbFVmeGtDall0?= =?utf-8?B?QTUzcGQ2aWlCOURqRFpicTJUcEVSTDNEK25VVXB4NUxQeXJEODA1RGlFVGZk?= =?utf-8?B?SWVYNHFOVUlNMVgyVGtXc2pMWWh5UjlDSnh4TnhnZWJxN0JPNFhXcTlRU2JS?= =?utf-8?B?SGFGeDZJWDZtM01TVFdONjA4RlNXck5aYnRxSEFvK1N0aDJOQUVRakVzWHFY?= =?utf-8?B?UjFiWkFoT1NGbVI0ZHFEMno3UEFibmgyajFyMUYwQnArTFN0NSt4eldoYUpN?= =?utf-8?B?MHVaYm9IeFZIZDBXODN1cUZTVmppV3RPd2gvWkFMNG5VTWJsaElNVEF3NDE1?= =?utf-8?B?Y1JiZG1RTzVldUxiQ3N6TXpSUFVIN3NrckhyS0ZldFNvSDFyd1NiNzBZdnZO?= =?utf-8?B?L1dINkFYNHRqUlRRL0RuVVZWWFQ2L3RyaDJDck0wVWU3SjU2K2RUeFBSN28w?= =?utf-8?B?WXNTLzJIU1I5NU8rbnhqbjRKdGMyTTZSbWswZVc0YjRMVnNNbjNENkRDaHRp?= =?utf-8?B?T1p5Qmp0QVp6c1pMalVMMEx3dzVmOTBVWjErL1dRS1dWL2ZnK0Nlb24vMHk4?= =?utf-8?B?SjNlMUtqaHA3elQ0WThyUmJvQjczblFEazZGVy9tTkVsZXZzMDcyR0N0OE8x?= =?utf-8?B?M3l6WUxzTHczb214eUU2UndjN2JNQlBId0tjSVdJZTFPK0FWVlc4OWV4R2Vo?= =?utf-8?B?eFdnMVJWV3JZcHBVWUFIaU1RTmVaMDZhWkNDUzNuUzVScytmeE5tSXREYzJR?= =?utf-8?B?Uk1xa3RwLytyenN1TVN6TVFJSjArUVd4TmpqRk9uWG1vWWxRaVQxZGhISUg5?= =?utf-8?B?ZFFuaks5b1JuNUVTaXp2bEdqNThNb0NONlQ0SE16cTRFbkZveHZkUnB0aE1B?= =?utf-8?B?em5CVnE3cDFLWExtQkJrNE1oR1dGcEYrNTU3ZnRTeW1taUN0QmViT2dqZit6?= =?utf-8?B?c2FpNlFSYUpCQVJMVG1CN2Ewa1duOEpZbTlxT0ZiMUFUc1k0TTM2NUkvcGlD?= =?utf-8?B?M0QxWjU0Tm1pOWNJMk55TXRyajY5R1VyYy9jNHVJSEJrS29PZHNSSGV3OGE1?= =?utf-8?B?WWlqQ013WkFDQTkzS09MSzk1QTA3VHJ5d3JEcC9CV0NiYlduTS83RGZqRzF1?= =?utf-8?B?ZTNJRGhxYWZuRUVNUXNST3ZObHMwTnBLb0JmdDlJSU1BZlBHWVRXc3JNWDBq?= =?utf-8?B?TFRGclZRL25JZDNySFRrYy9ETW1ZVDFCZHVRZUgyVkVVNTdJVlVJN2Qvbjlt?= =?utf-8?B?cUluS0lZQWxmMXYrQTYvUmIraDNITHJSLzZpR3ZBR2FuWWl0di95TVFYTnRC?= =?utf-8?B?RnBIeTA4ZzgwR3I5TDBsa1ZobWU3Yit0RmpEL1J5NzlUZ2MzczhFV2s1b0VR?= =?utf-8?B?T0RGRkppVzIrM0crRmkvK0F0M0haaGxxQWNabjZlQ3djeHNESXl2Qm56Y3R3?= =?utf-8?B?eCtWNGZYSU5vRVRHZTVwbnlpTmJpT283Z2R1TkZCN3NyUEhyYmFGTzI2cHox?= =?utf-8?B?bVRlQWYrZDBtVmt3L0hTYTkwWFNpZ05Gb0tlY1VVM0t1NmhaVldSTGkrZ0pU?= =?utf-8?B?Q2JwaVJyckoxb2tFQzBqak5zQzBmVHZ5OVg2OEtlWE9NTXdMYzdWUVYyTkxy?= =?utf-8?B?TUtaVnppL3p6N0dVMENEUE1rSFBtRVczQU5zUUowSkJ0MXJiYWUrOHMvYThL?= =?utf-8?Q?jym4=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34730e0b-3d08-4d52-c544-08dde0efee09 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:45.3072 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zAbS6yF/QhCA2wh1O1CS4tqHmx+zNBQDIug8QO81ba715IHqjb/EOLYFGt8/xoPIOdMWzQeRE6eT5/3oRoMy6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add default simple dw_csi2_subdev_init_state, which have 1 sink and 1 source pad, 1920x1080p and MEDIA_BUS_FMT_UYVY8_1X16 format. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 57 +++++++++++++++++++++++++= +++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 632ae5fd7da7850374c79dcff63b6ee4aee7b611..0b3bb099329017e81d2fb41387a= 3671e429dfe1c 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -831,6 +831,59 @@ static const struct v4l2_async_notifier_operations csi= 2_notify_ops =3D { .unbind =3D csi2_notify_unbind, }; =20 +static const struct v4l2_mbus_framefmt dwc_csi_default_fmt =3D { + .code =3D MEDIA_BUS_FMT_UYVY8_1X16, + .width =3D 1920, + .height =3D 1080, + .field =3D V4L2_FIELD_NONE, + .colorspace =3D V4L2_COLORSPACE_SMPTE170M, + .xfer_func =3D V4L2_MAP_XFER_FUNC_DEFAULT(V4L2_COLORSPACE_SMPTE170M), + .ycbcr_enc =3D V4L2_MAP_YCBCR_ENC_DEFAULT(V4L2_COLORSPACE_SMPTE170M), + .quantization =3D V4L2_QUANTIZATION_LIM_RANGE, +}; + +static int dw_csi2_subdev_set_routing(struct v4l2_subdev *sd, + struct v4l2_subdev_state *state, + struct v4l2_subdev_krouting *routing) +{ + int ret; + + if (routing->num_routes > V4L2_FRAME_DESC_ENTRY_MAX) + return -EINVAL; + + ret =3D v4l2_subdev_routing_validate(sd, routing, + V4L2_SUBDEV_ROUTING_ONLY_1_TO_1); + if (ret) + return ret; + + return v4l2_subdev_set_routing_with_fmt(sd, state, routing, &dwc_csi_defa= ult_fmt); +} + +static int dw_csi2_subdev_init_state_simple(struct v4l2_subdev *sd, + struct v4l2_subdev_state *sd_state) +{ + struct v4l2_subdev_route routes[] =3D { + { + .sink_pad =3D 0, + .sink_stream =3D 0, + .source_pad =3D 1, + .source_stream =3D 0, + .flags =3D V4L2_SUBDEV_ROUTE_FL_ACTIVE, + }, + }; + + struct v4l2_subdev_krouting routing =3D { + .num_routes =3D ARRAY_SIZE(routes), + .routes =3D routes, + }; + + return dw_csi2_subdev_set_routing(sd, sd_state, &routing); +} + +static const struct v4l2_subdev_internal_ops dw_csi2_simple_internal_ops = =3D { + .init_state =3D dw_csi2_subdev_init_state_simple, +}; + static int csi2_async_register(struct dw_mipi_csi2_dev *csi2) { struct v4l2_fwnode_endpoint vep =3D { @@ -954,7 +1007,9 @@ int dw_mipi_csi2_init(struct platform_device *pdev, st= ruct dw_mipi_csi2_dev *csi =20 csi2->sd.owner =3D config->module; strscpy(csi2->sd.name, config->name, sizeof(csi2->sd.name)); - csi2->sd.internal_ops =3D config->internal_ops; + csi2->sd.internal_ops =3D config->internal_ops ? + config->internal_ops : + &dw_csi2_simple_internal_ops; csi2->sd.grp_id =3D config->grp_id; csi2->config =3D config; =20 --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012017.outbound.protection.outlook.com [52.101.66.17]) (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 57543388919; Thu, 21 Aug 2025 20:18:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807536; cv=fail; b=Q7Qioy7c5PNQKJEqdxAkBuddcQN2Bc0c80ss6qILAMtLD9l/EjzO/Iri3G0oQpgLx6+kNTNG+EDgNe7QHEyVkctqGm5Fs+PYzUew4rRTz9vM0y1blem60e656rNXWN2tys2C0IO+lWIQUAAH6IH6w8BSo1YL+TPZkRR4SFZH3xU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807536; c=relaxed/simple; bh=ypyi9dWWD6DRA92i+iXhKzNLY/EfU98N3gcGWAudk/4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UVTw4l6Lv1o9ywfS0fORwdkvsbuCl4bcgc/0DFB9qRq9Rm1eeGAWFTcLEDDFSouz/UoyVXbCQ4Yx8SpK81i3V/MeZHtj6PGpWEa4Z+zCHpI2iehPFK8qux199ZPR9LGGiA9C6cGjLsAAxVYSOSlAV3kz1HUIJy01KSx7/JXErbY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=nErQRUMS; arc=fail smtp.client-ip=52.101.66.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="nErQRUMS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gEovuoelbmtE/UwsxjAXIR9Wo4P2puZxF89I1fJsGsjIj5EDCjyBXHzcfiJZl6vLCZk2G2NQvW7HD+1e8+SXUwdPgkWfA+/RPjgZojqeUYRP/Yx6EvgV7WLLf2XN83/TwOVNLCDiPk541SoIm62w+srNn8k2+HMcndbQAfi5UDL4WokSSkCSHANntE1w1X6BIE+BBSprzOInSbzEl+H330n2wEUZc2nyNkzVaN3Ig/tfeLn5Dbo7z0Q4OtD6cLNO1fjbNYZ2KwirfJVNybi8l+N5RxMnwdXYvWYDGejZ9oJ79Y3J0dY0NNkNvJ8HvEQh+1W1BhmA0ZBs6I3mJVpTSw== 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=N4BQ/23/FwegifJrWHjyYmdRJKa8FoIuJVHKAaPOdEo=; b=doAkMO/uWHB/rtzJ1Y4pCNoxp2sVsiXJsFYyxtTPat87+6plPu9GJpfq5+wgF8iXD5L2G5OqOkAVgwYChlgWw5y2BdrxpPqVkVJycJftW4GgExtQwRUxphysF0r3xznWI+p8cm4MVbWgMzELFU2gUUZqnskGnAmydbMv6LlKO1G3XH+ZM8jZQWI+VDiVQD6n7qh2s0uNGyKFYDC623cM6IuF12TMbXqvumO2h9tZteRFNv/kfzVB0B/tCVRZNSix2V6XnQuNWPhryh31Dkg98JLitlJpajwAsPOCzaXLaz8KLAyrnjeapEeyLgyBsr/AQhx9PNyLHwQoexhQ2JD/0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N4BQ/23/FwegifJrWHjyYmdRJKa8FoIuJVHKAaPOdEo=; b=nErQRUMSbXhT2sgmZBi+78exK8l5fKOAusM3OsQ/O3sSARKzLz6k0jKHKvLHhkPUQ/zNl29ssEb0gnVRQ54D45G+LlZvmPvyF0JOZ/ERI6abEL6PHk1L2wu6R6bqz4LJkNurDEskHjbFQFI1L3QUpPpm/g2ApLE/ddCbIXkLuCc8X8MAKOpmlO8pUEJ6kHvKVid852kkOBj1aoGa+KC/Nak9hNxWCYNJ3GFLkF5xZ/htXvnBQkUzaNPNKwxfGCJEChrQy8JCHfYLqbIgOOjZR/TdqnwT3V+vlKNc6GM1UaI0R+DJqMm0DI+u4dgTUoyOijdpFz0OCT2YtZy5JeaERQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:51 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:51 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:01 -0400 Subject: [PATCH v3 26/31] media: synopsys: csi2: Add v150 lane stop state register bit define Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-26-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=3480; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ypyi9dWWD6DRA92i+iXhKzNLY/EfU98N3gcGWAudk/4=; b=b30j8PtvOU6R66ws6xR1hhypMFASxpYqbhPBKQ/2fHPkODrUUF07WBdeE3oaAd73MFNflAHJq z3IoSoIw0AABwVyCBvbT2wBEJ+69XRliQVS2xPIdZf76Vzsaer0f4aC X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 91c560c7-b3a1-4853-630f-08dde0eff1e4 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZFlDTnNXMW91aFVmUjA1a29BWGdXOERZV2tYN1Z4TzBPbnNmQ28xazdtclBU?= =?utf-8?B?dDlzZXA3SWxuMGloTGdJQlZpa3p3MVI0eTVpR2hWNmxmOUZTTHdLTndJNC9p?= =?utf-8?B?MFJLTVZuL2xYa2tsTmxjSFlwZVZxOEM5bURmeDVoSFdTSlJreUxOa1EyaHQr?= =?utf-8?B?d2FGRjdNQ0NCRC9kZFVlbk51dEk2anF0SE12VmtqZktrSDRBaVBDOUpJSTBG?= =?utf-8?B?SFlFREwvR1pZbVl4REVYY09jVWZBVFdrVnQ3WEVlckl3RHBjUnB5Z1dmbGJT?= =?utf-8?B?VmRHNnJTSkhjSmtNenpVK3FKSVcrcGQwVGJjTTdyOVJ2WEY2WHhMdEFEWUVJ?= =?utf-8?B?cCtRb3J3dm1Ya0lCUGhuS0ZFU0UzQWZ2clAzdlprb0dLTXg5S3QyQ0Q2cXRR?= =?utf-8?B?WGQvb1pTN3NhNElPRnhvdXZ1ZlpjUktmMlg1SjJtMzBCdnFFVzdKM25oQjJG?= =?utf-8?B?UDlPcENHK0l0OTZXWnpZcjhMVE14eTBHV2Y5eUNOek02VEM1aTVKOWxEdzZG?= =?utf-8?B?bWhERENQU21DK0g4bTd2RXVVUnpBVURPRW5uRWJEcm5OMTR3d1hlWHRnWC8y?= =?utf-8?B?ejh1UURGS2xQaUZXTU9qektVTEplQjRoSjQvMmpqam5pTHZJcitabnNxZGJM?= =?utf-8?B?ajhFMFg3NXVHR3VmRlV4bGJZVE1td0YwajZuWWdLT256a2h5ZDlGY1UwdFVS?= =?utf-8?B?Y3JwMFEyeDNGdUZVR3MrMU55QjVlcHAzd2lVRkZ3aTBaUW9wZkw2dFptMU9C?= =?utf-8?B?aUJJOGRvZ081em9hYzZMZ1E0VURtY0NnTUl4akVWVVBhWGg2OGJHUkkyQ1Ri?= =?utf-8?B?MEZCZEdEb1VIc0JXNkJIcnl5bENMZVlkRW9Nd3NXV3hZck80RW56NmlUKzR2?= =?utf-8?B?enRWVTc1LzZ0MEdmUEk3dVFJc1haZDUwTm9NMVYwNHJ3aS9nVjQ0S2UxUkhF?= =?utf-8?B?a1VqOUZzZGc4SWZhYjBBRjJIcUJDUTdDbmd1ZGpyT0JGQ0NHZTBwN3RxSTRz?= =?utf-8?B?Q1BXYnNneUR1UEJ2VkdYZ1o1bm5pelpiK1hlZTA1VkphcHVEZVdSdmdjUFl3?= =?utf-8?B?OXhXd2NDR3RweVArUlZhd0NCY3JXdXE0dVd6RHVCWXNGeVA0TUxXVG1NaGs3?= =?utf-8?B?bS8wZC9Da2xzZjUvbU1sT1VZSk5BclppZ0RzcGxSb29kWXlZb25lckw4SSty?= =?utf-8?B?YytKS3pwOXgxcW4rYXVNaTZqbVNEL1VEVFhIVE5XV2JHZ1owVVcxWVVKUG5p?= =?utf-8?B?WTJtbFdzNHZqTHhPY3R3c01yZWYwK1VsRDQwVFJvUnE4RjU3eklvRnJWSzc2?= =?utf-8?B?KzE1eVVVSVBCZ1ovZFJvSUkra0RnTzA1cnAxdnJWT3M0bW1xNXNXWjF6VENr?= =?utf-8?B?d1M3M2d2eCtWU29kTS9mTktOdXhiV1ZuSXFnQmRhd2FKcktPbnNFcG45NndQ?= =?utf-8?B?WDFxaFEwUHhvS3Nudm9sWjNKRkNuN3FpMGxKdmlQWUFwUTZ2NXlUUXBWZkp0?= =?utf-8?B?OVNoMU01anBKazBVOFp2TURSZm54bjYwNjk2bHVjU1lZbUlZQ1k4OXpuUHV3?= =?utf-8?B?cW9jd1drL3FOZjkvemMvTURDSnlPcFlHVis5bEx4Z0dVV0dVVjFkK2Fxak1y?= =?utf-8?B?cEYwOUxlZnNmQmNqeE1PSURVcEgrOUZZRFduY1c3S1FYdlY1T0hSTVM4dFFT?= =?utf-8?B?WldENFE4NEpQWDNjYTZUVkdXS05qZWUwY1JldlI2dUJyZEdNTHN0ZHBHQm03?= =?utf-8?B?WElLUEMxcndtZEk5MmhWN0cydHg4emluV1hEM2RhMFliNjd4bVd5ak1VNDFU?= =?utf-8?B?OVlhRU84cEZqUlhQM0p6a1RKRUV5ZWpxcnVyV01Od09KZzllMmNXRU83QS9H?= =?utf-8?B?Z3NNYmozTWcwUTNjdE1wNXhIVmFGbFNrOXVsa0VkbHI2M0N3Unl3bDNpSDEw?= =?utf-8?B?QWs0Q3FVSDZ4WjI1eUNSMFRPUkxKQkhVN2lRZ3JQaE5SdnpSM1YwN2Myeits?= =?utf-8?Q?ZIbWaMpvHtUHq9/BXz9RtxnJJ3kLDs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NmJKWEJvN3k5NHRxUGE5dEZEdjUvWVVQMUFwWE84amhadCthV2NDR0FpcDFs?= =?utf-8?B?V05Oa1NUR1JmdW5aL2lDdmdGSGcyMUFqd3dlWUgzK2JBRnhTMGFrNFVFWERs?= =?utf-8?B?T3lrblhqdTc5TFhuT1lLdEN4VnNWWnpyUFpYMWxFTkdEb21hRTRkYVVXZFIz?= =?utf-8?B?enlOeUpoeUgvTHZXcWV1Z0FiN296aFdnMS9zV1dTOWFvK0lpYml0UWVYRXVh?= =?utf-8?B?c0laYkZqQkt0Qm9ZV21VKzlyL05IU201SWw2blFYM3ZhajRSVnBrYk5RRFRB?= =?utf-8?B?OW9XZmNNcFVTU0FOQzhzd2VFYlFReU1QanNBK3Z4RTdrZjJ5NUNJRUg4TmE4?= =?utf-8?B?bGs3aXRZWTY0b2FMOU1rdWo4MWwyWjg4bFV0bkJnUW5uYjNDUEthOFZYaGpt?= =?utf-8?B?RU1ScG9JbTViVGxqdGhXZ2ZRRE5Ha1J1WEgrM1JjY2J4emVVaUVZdW11Y1Nu?= =?utf-8?B?eEI4dGhRaEZQdUdHU3dnWVhNYmtQbDlmOHV4Ym9Kd2t3UG1aejc3Q2k1ZDhD?= =?utf-8?B?WHRrZWNtamhkN1BBMkN1QWVEYXAvMDZ3S1BSUW5RdjM0V2Nhbkc2b0tsSG4w?= =?utf-8?B?Mlo4RnFnSVJxLytlUEJtRDZOQm83dFVmSVN2ZjBKUGh4dWVFeEZEZkE5V0tk?= =?utf-8?B?dTBKTDlQOHU2cXlCOVFJSUNjYVEzcUlWc3R2TDAvc0s5cmUvK0dEMGx4T2JC?= =?utf-8?B?ME8zMEovcjgybHBrejRRV1hFMjV1T0ZiWlNOQVh2UEhnVmZKbU41MkpaYkRz?= =?utf-8?B?cVp2RE8zWFNaUkFiaDY2cGZSM2RwTGpZN0JVNGhXT3ZWclpBWXRvQ3dnU3Q5?= =?utf-8?B?a3dHeS8wd2lyV0tQUjIySTF2NFJQVXYwS0RSQzhuS0tmM3FiZldQY21nY0NF?= =?utf-8?B?S0tGY2ViKzBBWVhRNWd5NUlSRk5RUmg2MG5ZK0NvaDBvZFV0V2c2U0tHUlcz?= =?utf-8?B?T0JtclRJWEVQV3VDb21WQXkvS2hJcGZQK2pPekZaUGhnODZ1dk1PT2tsRXRk?= =?utf-8?B?Y1UycXFkcWJCQTk0UTA2TzE2L3hKRjFGOVN1RHdpZ1RsZHErZU03ajFxTTlJ?= =?utf-8?B?aE1MVEtIWS9nTThQbEgrSkc3QnoxanNJYzB6bXAza0pjUkdYaWhaTXhwRmx0?= =?utf-8?B?c3lIUUErWjV5NnpsN0F5d1plYmNHVTB5ZFUrN3NXcGU2UW42MlZwcEx0NGty?= =?utf-8?B?Qmg2VDd0Tktrc1RhVWxWNlJzZVc3NDJvSFlLWUtuWmM1VkFQUy8rbWg2bHVh?= =?utf-8?B?U2JTNlpWU05ZYjUvLzRpTEZlMXFPMEw2U296NE9CMFk2dTM2UkZDQWc4Y1I3?= =?utf-8?B?MUZJOVhZaVNGT2hMS2xCVWwybUxhVnZiN0s1cmJSdnBKckgrcTFvbkZWeXBV?= =?utf-8?B?SXpwcXFjR0MvS1lteXJKWVNGQk44S25HOFJKMXFQS1d2U3laaWhrc2U3VGNz?= =?utf-8?B?Z2VYTkdqZGR1RGpFcTltb3Q4UHBaTHhSdFdtTkR2ZG1Sb1hpRlczdzRDdzAw?= =?utf-8?B?TUErRXlxZnJoSnoxaTZWcEhuaER1QUJoeXNwWHNZR2NKdlozOFpHZUJQaWVO?= =?utf-8?B?SDE0Mm02YzR4dzFBYnBPaTBKdjNESk1aNzF4aVJrbzIvNGhDOTFtWFE3czdL?= =?utf-8?B?WUFKUS9KNWtiN2dNTEpodEZwU0xBNHJCYlZuQkZaT2NpVEZmcjhHKzNLMDRT?= =?utf-8?B?bVpQOHBQdnRIUHpEMFFaczFTUTc0clM5OVhNeTV0cE1KWjdLSk85ZC9VeWtI?= =?utf-8?B?SVRtaEZ5enZQL2h6OEpndjFhZjB0R2Z4aGhGa2QvQ1hrbDJvV3BIWGFQVHBt?= =?utf-8?B?dUNBUlRXUmJtU016cHlSQ3psanNGczYzcldOb3V2S2R4dlhYbnhVMUpaUDFJ?= =?utf-8?B?S0VSK3dQRWlGZys2bnVQM3lEdXJ3anBoUmxMdWNweTNuY2NFZ3Zacmdoeko4?= =?utf-8?B?bHpCSW1LVWozTUpZVktxYWpqWXA1VHo3eTV3TC9ZTThIUWQ5ZTh3UzlWZWh3?= =?utf-8?B?b0djQ1Q4MkQ2N000REVNWnA0cFN3Z3FYNC9QUS9mRWdVQ3krUnFZdEZiU0hK?= =?utf-8?B?bVo0ZHB0MitJS3NpVjNTUmxtLy9nU1dBdnhyUTVPTi9LbUNHcm5jNmFUT0c1?= =?utf-8?Q?lwhU=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91c560c7-b3a1-4853-630f-08dde0eff1e4 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:51.7985 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IQAGvGfWDLXZnGSM4SPLJklHtZBKTauF02jan+vimQ8ymg1eRKnR4tPTZ4OJyRXyUBzr9KIx6IK1hTscglcjpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 v150 move lane stop state into new register phy_stopstate and field position also changed. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 40 +++++++++++++++++++++++++= ++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 0b3bb099329017e81d2fb41387a3671e429dfe1c..7225285c772edf6ca3372408dd3= cb0637b47e0c0 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -31,6 +31,7 @@ struct dw_csi2_regs { u32 dphy_rstz; u32 resetn; u32 phy_state; + u32 phy_stopstate; u32 data_ids_1; u32 data_ids_2; u32 err1; @@ -86,6 +87,7 @@ static const struct dw_csi2_regs dw_csi2_v150 =3D { .phy_shutdownz =3D DW_REG(0x40), .dphy_rstz =3D DW_REG(0x44), .phy_state =3D DW_REG(0x48), + .phy_stopstate =3D DW_REG(0x4c), .phy_tst_ctrl0 =3D DW_REG(0x50), .phy_tst_ctrl1 =3D DW_REG(0x54), .int_st_dphy_fatal =3D DW_REG(0xe0), @@ -147,10 +149,13 @@ readl((csi2)->base + ((csi2)->regs->__name & ~DW_REG_= EXIST)) : \ dw_csi2_reg_err(csi2, #__name)) =20 #define PHY_STATE_STOPSTATEDATA_BIT 4 +#define PHY_STATE_STOPSTATEDATA_BIT_V150 0 #define PHY_STATE_STOPSTATEDATA(n) BIT(PHY_STATE_STOPSTATEDATA_BIT + (n)) #define PHY_STATE_RXCLKACTIVEHS BIT(8) +#define PHY_STATE_RXCLKACTIVEHS_V150 BIT(17) #define PHY_STATE_RXULPSCLKNOT BIT(9) #define PHY_STATE_STOPSTATECLK BIT(10) +#define PHY_STATE_STOPSTATECLK_V150 BIT(16) =20 #define DPHY_TEST_CTRL0_TEST_CLR BIT(0) #define DPHY_TEST_CTRL0_TEST_CLKEN BIT(1) @@ -289,7 +294,8 @@ static int __maybe_unused csi2_dphy_wait_ulp(struct dw_= mipi_csi2_dev *csi2) } =20 /* Waits for low-power LP-11 state on data and clock lanes. */ -static void csi2_dphy_wait_stopstate(struct dw_mipi_csi2_dev *csi2, unsign= ed int lanes) +static void csi2_dphy_wait_stopstate_v0(struct dw_mipi_csi2_dev *csi2, + unsigned int lanes) { u32 mask, reg; int ret; @@ -303,13 +309,43 @@ static void csi2_dphy_wait_stopstate(struct dw_mipi_c= si2_dev *csi2, unsigned int } } =20 +static void csi2_dphy_wait_stopstate_v150(struct dw_mipi_csi2_dev *csi2, + unsigned int lanes) +{ + u32 mask, reg; + int ret; + + mask =3D PHY_STATE_STOPSTATECLK_V150 | (((1 << lanes) - 1) << + PHY_STATE_STOPSTATEDATA_BIT_V150); + + ret =3D read_poll_timeout(dw_readl, reg, (reg & mask) =3D=3D mask, 0, 500= 000, + 0, csi2, phy_stopstate); + if (ret) { + v4l2_warn(&csi2->sd, "LP-11 wait timeout, likely a sensor driver bug, ex= pect capture failures.\n"); + v4l2_warn(&csi2->sd, "phy_state =3D 0x%08x\n", reg); + } +} + +static void csi2_dphy_wait_stopstate(struct dw_mipi_csi2_dev *csi2, + unsigned int lanes) +{ + if (csi2->regs =3D=3D &dw_csi2_v0) + return csi2_dphy_wait_stopstate_v0(csi2, lanes); + + csi2_dphy_wait_stopstate_v150(csi2, lanes); +} + /* Wait for active clock on the clock lane. */ static int csi2_dphy_wait_clock_lane(struct dw_mipi_csi2_dev *csi2) { + u32 mask; u32 reg; int ret; =20 - ret =3D read_poll_timeout(dw_readl, reg, (reg & PHY_STATE_RXCLKACTIVEHS), + mask =3D csi2->regs =3D=3D &dw_csi2_v0 ? PHY_STATE_RXCLKACTIVEHS : + PHY_STATE_RXCLKACTIVEHS_V150; + + ret =3D read_poll_timeout(dw_readl, reg, (reg & mask), 0, 500000, 0, csi2, phy_state); if (ret) { v4l2_err(&csi2->sd, "clock lane timeout, phy_state =3D 0x%08x\n", --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013025.outbound.protection.outlook.com [40.107.159.25]) (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 6B9DB388936; Thu, 21 Aug 2025 20:19:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807542; cv=fail; b=B/zpGm94TGzn/MfDxUol1MlUiGunP7mKKmDYphXUnl63J337GbsC2XDnahnzxc4JIC4OW/CjS6XT3d+YhslmBPvlVZtCnJ5NuwVl0py1D6fJ+m2c1XlKO/AqfKK9ncZqULWe0OsKZMshshtW39jlfuKJ6udBKe3a6gZFQDBtM8A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807542; c=relaxed/simple; bh=Kd1UpC7Tv5MDWcs/GaCozBdSV3FaLik6M978eu3nI9E=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=E2KwJOmeaM762M/cQZEFT+4r6Kcy+ZvgRyhGwcmtYd8oRe3padkRLilVFBnHanOSEnPGZz7cspZoFeqg0nco5MDrHYGBVz+FOpQxZCISEm9wXK3X3s9j92FYXOm7kqySoPu5tlW6YwTGz6/TUdkNOqFRBiKa3ZuUe+c+PaKDozs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=dFeuTsLy; arc=fail smtp.client-ip=40.107.159.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="dFeuTsLy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Cg+k0iEf4Lg7xQAmDeVpimqBhfcKzjbHKf24uzMi4as0UxIy26F2b6YDJtQvLMej6oElI7KLVa7Z9FyJlmS7Ea+O449nvgsKuM4YCFKJIHUusSQBn2QOQgR+MfucaV5kI4VgZP6dwkbW6Z432d3GT96s55rulO64Fc5Tnv8hNQjkNLzVuMzCvg/BdzWZwrkwO4LK8A6qaYmVNqeSZqZOlATjMecmb6shhOqLvaUlft519mILOxW6o5a3+AjXgqPZz3V5nI4s+57EvGfY91R526Kk60n1q0H+fLYWoqO3axeF/VKqEDhkm09WbOUFuuf82FxCXtrzPPtGXJUXdMTeGg== 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=pdk3zVLDwGP1bDqNTVNjYBKU7xjXNoaGNA1NoWZSAjs=; b=vsIw1YvHEMhTbsjHsd6TIgf2Ogy11HKt6rmszfmB7Fz8Q3WjLnc+pdHcFANRPbzzAE18dEI9yicvRlmGd9nedKo0LXEnEp8w9p0RRKle7T6iqTESryqYpyu0O+TNaylWjfgmAslAWp+9S5zU8rJTWcW311/lLoCIke5Fz7+gRLokftYL/mKhrGzRaK8ee8xUx+Yj1c18coZviqvwSCUgGFs19zxMhVs+edZbjdwJhsxT4bVSC90wTMVZ6IGLUCQJC0EFWPtfaMg/sHFtyfGyg3QW7V2neP6ogZBR7iQmL1ltIMW6TqXi3b67fXGBGFGNbpv36X4J+/tb78Dc+jq7Aw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pdk3zVLDwGP1bDqNTVNjYBKU7xjXNoaGNA1NoWZSAjs=; b=dFeuTsLy98adE42e8cKZI1n4ZhefD18Y9Jpy6Cy7p3+K9MhSV9TZni94RG1OCvRXdV1UaGoBZRIysKos+ilgn9fZtjKloNcVbS8TOYSZoL2dLPznjShelvxYKOV7FlRKRBVELFgPHJO5DqsezMR+jwpNC7ds0bFIavj4TyUMIvIIcc+WJaTswU+e0PNm8VGwh/NPzR1Azy8RWEMer1Yg9kuGO66KahrPWNmpG5ln22MEe/J+nAofk6zSQP4SvUhq2CQruFiJ5ZDy54/7U2wvYfvN2NQtRaiGD2s9CkplKTbXZXHrw88TgirlokcEkM6Tmj9KTwzvSZr3ChpD+Rh+PQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:18:58 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:18:57 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:02 -0400 Subject: [PATCH v3 27/31] media: synopsys: csi2: use standard v4l2_subdev_get_fmt() function Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-27-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=3568; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Kd1UpC7Tv5MDWcs/GaCozBdSV3FaLik6M978eu3nI9E=; b=5CpOIklV4ZVau6R/3IDUVWD2v+5753bop7VK1QNyVyahVpjdgiHkpDQlnlkMKp/Ezatj+Kxb0 bEkEQkNUZP7CLbIli3vvrcy0m6n/cZuvWpxaCMPYLdp9cpWy6im2Bov X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: d842a33d-fa62-4aa4-9056-08dde0eff58a X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VDJVQ080dHg3cUVRd0N6bnMzNXVzbUxZZFFHM1VSN0plVWQ3Sk5zQ2kyclZq?= =?utf-8?B?SGl6Z281cVBLWjhjTFBkSll6RnUrWXdORzFabEtBRUVsWS9CVWVZeU1GNnFu?= =?utf-8?B?Nk5RbzNTWFFzUE1pZkNVbnpzdXV5NURSVFpNQjFqVG8rZFNmdWhGS3RiWjdz?= =?utf-8?B?R0hlNDk3eE83emZhOFRDbElIMDJYRVQwZCt2dUIxSVYva1c0Y0dlOGJtN29s?= =?utf-8?B?VVJCdTZIbDcwRzZHWk9TWjN3SGZ0eVBUNUhTS294eUZnaGF0L2VpeFFUSFhi?= =?utf-8?B?SEJMS3JPRHVDUVJZcVJ6dG56UzAyM2ZLN0dMbWs1NjhHWEVGZTRneWVadm9y?= =?utf-8?B?QTRnL21rYUpsLzlneG9JZ3Qwd1oyZzhQWFRSMEw1UXdwVHlFNWJiYmN6SldH?= =?utf-8?B?ODVyZkc2L3hTdDBSTXBjdnl4QWEyQU45M2NuZTFEWmUzN1dpOFBvcGxpT0hh?= =?utf-8?B?b2ExUGhqeGtXZFAzaElzZWlYbXVtQkREcmZ6T0tDcDZDbFNYSjJ6TmE0Y3hL?= =?utf-8?B?RTBjclhLYm5nSVNtRFlaaWNDOXJxSFloK3pOYXhqQlhWTHRYNXB0Nkt1U1pz?= =?utf-8?B?UDIwSzAzOWZtQy8wMnFacDBVa29NOWdDcS9JT1hzTGtvejVteHFOQTU4WlFJ?= =?utf-8?B?Vm5pUzRSc3AwTGI4SXlqWExhRC9vcGw4eXhRWSs5ejQ2UXI0THB0b0xUUUN2?= =?utf-8?B?RlpoYlg5N1hNM2lQS25xeGVoK0VMelBZTGZPRGtUQnVqWmZXNXdCU3F1b1ND?= =?utf-8?B?RGYwSXVzRW9qTk1CMkFNdytWNlBVb3cwN1BvVTA4MDVTSllieTJ5ZURYbVNu?= =?utf-8?B?QTZlbUpyK05SbnRIeHc1OE1ZRmJpUTJJa2VwSS96cS9nTWExQVZXOTFCRS9t?= =?utf-8?B?aUJsbmFPNXlnNmhkN0ZEMEFRd040amxUTWFQUFAwaEgrREc1bTlIc3cwMTUv?= =?utf-8?B?SGg2WjNiSlAvbkR5SG9uZlIrbFI1dW5lb1RiMDBmbzhmN2Q3M0l2VnlSQUFm?= =?utf-8?B?UG5qNU1EbGJwK2FIVm5FNGxUTWlWajAwdjVwRGdkREhwd0NjSldxcVZtNzhG?= =?utf-8?B?UktBU3NqYW9lZmd3dnVoY2YvS3pOOGp0SGgweFFzdnRXUGMrcTQxUUdlNEZ4?= =?utf-8?B?eGpUdkFjNElNQW9oK2FLL0JMZlZuWkU5aCszV3Z4QnJSRnBiNWVobjVrVys3?= =?utf-8?B?RjFDVmJUU3RhTHFpUG9YclpvK0I0YTdydmh4NW1RRmxzcTJrN203S0UxZisw?= =?utf-8?B?V2JkYjhENVdKcjY4dERzb2t2V24wT0YyUlF5eFRiclJDYUZTYXRYeXpLbzZM?= =?utf-8?B?ejZzdmkrK2orSHJCS3ZOVUQ3dlVxSVVUcXBNVVNLeWhWTENVanl2Q2xyYmNx?= =?utf-8?B?b0h2bmhLWVd5VC9VdkIyQ3RpSkVhZjRrdHNUbmVxeHY4WlQ4Nm9MRVpYUW9i?= =?utf-8?B?TFF4eEtrQ1hmcEl6SXo5Y0dGM1dWQ0J4UHJDVFlhUldmSXdsR2V3VGxLZk43?= =?utf-8?B?a1JrejBCYjgzMmhYVSt6L0xwQng1cS8zSEdJRnRNbXdLUXRVME1hWkJjN0Q3?= =?utf-8?B?Uy8va29HQ0pKZXNpRHJqaTZnQ1M3M3dkMlpKYTZYRW9HRmlReE5QYkUyYWRI?= =?utf-8?B?ZXhNbm1nZGJieUNUYUJuUU5pSit2VkZYOCt4dHlsVUhldU1hUnR5WmEwTVo0?= =?utf-8?B?b3l5NFBFN0lpWm1ORDNYZmZwQlFyMWZtaTVBR3pxTnhadEIraStlcDZxRXlv?= =?utf-8?B?bWN2MTNQeXE4V0pNVk1kQ0wwc2xFMUNhTjEzQzFtZ0FCMUNZMWxRQnp3TVIx?= =?utf-8?B?UW9td2tabDREYUhPUTRkWjRiTHhCU1Nzc0JWa2dMVHlJWEJsb3lyQnk3SWJh?= =?utf-8?B?eXBOMEJmejR2S0xXa1ZLSS9RTjhiVXltL2JGNmlubzVlcjN2dDZDc29qTXJT?= =?utf-8?B?UnFZUVBuRjlaalllNkVVRTgvSGNaRDAzUUpBYkN6TG5mNGZqOWVwK3JicXRG?= =?utf-8?Q?am9n9MHQVhD/euncMO3p/i65Z+gFko=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MmVqMVNGRENRN2EzNkxOMFB4S20wSUpJVEhpS2ZjU2liRGl1UEF0cHU3MWRl?= =?utf-8?B?SWg5ZVVadVNCaVhWY0wwV3RtVjNTRGZubXJRZXdsTDBsM2J2dmZqbUk1K3NR?= =?utf-8?B?Y3R0RkppdE5CVUkxQUIwZk1RQUw0d085ckpoTzZ6YVQ3NDFBQmVlbDhXU0Zs?= =?utf-8?B?QWMybkIwWjBGWEhlQU15dHJKMDJVeGRtSlB4Y3dqTFFNUEZlM2FGWFk4OHh2?= =?utf-8?B?eURvRTV3QWNOYWRQeXU5TW5RSC8rd2xyVUN5M2ZvdEJ0ejhTak5Xb25KMUE1?= =?utf-8?B?VFJBOHM2RVJPby9GQWZ5VVBBRjArS0lTMTNSUGx4OTJhemFyMTRNOE1BVFpn?= =?utf-8?B?STZsMStyRUFkS1JMNnd2dDVRd0ZjVjl0czNMWWhzd21WTnlEVHh0NDBQaE9M?= =?utf-8?B?MVc5NElGUUxYVTlpcXprb1luVjFCbWtJNTBRcFV0a0ZDL2tIUUhTZk9OMTlu?= =?utf-8?B?Z0EydHR3VTZ1bjI4NWQ2aWFyaENMRk1OU3IrQWgyRkZIbmhsYnZ4akFSZUZE?= =?utf-8?B?TldValAxZ3AwRjd5ZjM1Sk0vOXUyRzdscFRTZmxGYU9DM2VJdkFlYUlsb2RO?= =?utf-8?B?ZXBvYUNhYU1uMlhzb2NHU3FiWmZLNWM0QUZmWGR5SXhzQ0FQYTdWRXJTZGlV?= =?utf-8?B?MzdjUkQxUlZLc1ppOHdIQVlWL1FjTWl0NnMwNkwrdmxTRVdlYXg4bFdkbDh2?= =?utf-8?B?RTZPZXNrRUZxZ2RNMXEzVVAwM29ReWVTb0JoaWMrTDFheTJwODJXdXFtZzZW?= =?utf-8?B?SVFXRExYZzNDRTR5Q2NVQ011ZlBtNnlGV0s5ekRCSEZFTlRsUk53RjhxeVZp?= =?utf-8?B?L01QY1hsdFBwRmpZK2lBMXdWWGNYcWNpSWZEdnVhRWg3UjVtN24wQzUwRzVt?= =?utf-8?B?SHhXTmFoTzg3dzBsLy9kdmhRbkdZMG9DcWsrY0QreWxjTzlNRElqUmsvVGZx?= =?utf-8?B?U0ZaTDIxN0hhL1RkRkd6NVQyNytKekJZTTVOc3FyTjluRGUxWVVaTVVDakVr?= =?utf-8?B?bGdyUDFWOHlHazJTK1FnQ210cm5nd25jcEx1NkdoTnArNkRMS0RTc0NYNTZN?= =?utf-8?B?MEhyblhmUGIyUTU2RVZzdnB6VTFMbWFjcFRDT3Z6aUdOYTVlbmVjQnlpMzNs?= =?utf-8?B?TnI4ZVJScUVuUnZUcCtXNFJpNVdRWWoxQkFFR0JRNUhFMk1CdXdVZmh3Z3hj?= =?utf-8?B?M3dibXBsWURGWVB1VnlFRDF4NkpLQ2krTzd5UjkvRDlCakorc1ZCaUxqZHhr?= =?utf-8?B?cWEvcW1nL1RibnlSRHZhdG84ck4zMlNrcnIxczQxa1ZLUlkvMmR6M01nU2Jp?= =?utf-8?B?TzBjZ3FCWW44QnFBMk1IV2crdU9URVJNRDJvTTFmWm8vTXRRaGFBSWoxMVhn?= =?utf-8?B?ZVNaOGRWZVF4L1RpM1M3anlzc3E0UFJBeno5bTUxY3BNWjR1SjVSVnhFYkp5?= =?utf-8?B?RHpzQVc1VFh6Ull6KzJqQWMvOThMVWZjN2NOdC9XenhCWVVhUFN0MmlBWFQr?= =?utf-8?B?WTFWdUk3MGdFdzlzL280YWxyNnYraVpxZWExZ3dKRWxCazlDaXNHdER0UHhO?= =?utf-8?B?eXVGMkRlOWt4T24zOHZSc2hlTHFEOGcxZ3I5STA2UW5RSUlwc25LVVVJalZ0?= =?utf-8?B?NHM1ZmhiWGZKRUwxWEZnQ1plc2d6WkFhd1BLL3Vwa0F0dDQxbHpRNTk5ZG1L?= =?utf-8?B?QmVTcEFzTndPYmUrdnlNM1VrdmVTaC9DN0U2YU55dGcyQ2VlaU1nTGFTdnpH?= =?utf-8?B?MVJLZmNqeFZ1N0NtNy9CVWNYTCtjbEZPczN3SHZlekFrS09nMExJRUJSMmNi?= =?utf-8?B?dThTTkszdlNtTEpHRUlJSHl6cjU1K1h1Q2NubFNNY1pwb1Y4ZzRiQXpwZTFP?= =?utf-8?B?TGl4K3QybFVhYktFNjFoNWN1Q3lIWk9aV29hVVZITTh0V0NEYmtzR2RyTklM?= =?utf-8?B?UEsybHZ3aGNra3hhY1pCN0Q4ZEJnUUdndlJXZzIwaTRlNWNlaVVTTlc4cDJE?= =?utf-8?B?NnA2dnRyUnd4RTFCckg2bUNGcDg5T2hiWElsMjR0SUoyVTY2SnhBQW42eXds?= =?utf-8?B?SEJ5WGV6M1hIVUg4cHBGbVJaeHA5TFd2NW5vekQ2Tzh0UjdWM0tzK2xoUU9N?= =?utf-8?Q?yPWI=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d842a33d-fa62-4aa4-9056-08dde0eff58a X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:18:57.9102 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AIGYYpxFKOwwgkPQOeuAXBQeHJH2y6u1d9blEE6cyTHxDA2E57A+yrDD9W5trUTE0XzXsbPIhZm+iun01CadWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Use standard v4l2_subdev_get_fmt() to simple code and add missed call v4l2_subdev_init_finalize(). Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 49 ++++++++++---------------= ---- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 7225285c772edf6ca3372408dd3cb0637b47e0c0..5ed65e89d4d9a75b245ebc6f28d= f989dcbd00b7b 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -714,38 +714,13 @@ static int csi2_link_setup(struct media_entity *entit= y, return ret; } =20 -static struct v4l2_mbus_framefmt * -__csi2_get_fmt(struct dw_mipi_csi2_dev *csi2, struct v4l2_subdev_state *sd= _state, - unsigned int pad, enum v4l2_subdev_format_whence which) -{ - if (which =3D=3D V4L2_SUBDEV_FORMAT_TRY) - return v4l2_subdev_state_get_format(sd_state, pad); - else - return &csi2->format_mbus; -} - -static int csi2_get_fmt(struct v4l2_subdev *sd, - struct v4l2_subdev_state *sd_state, - struct v4l2_subdev_format *sdformat) -{ - struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); - struct v4l2_mbus_framefmt *fmt; - - guard(mutex)(&csi2->lock); - - fmt =3D __csi2_get_fmt(csi2, sd_state, sdformat->pad, sdformat->which); - - sdformat->format =3D *fmt; - - return 0; -} - static int csi2_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *sd_state, struct v4l2_subdev_format *sdformat) { struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); struct v4l2_mbus_framefmt *fmt; + int i; u32 align; u32 bpp; =20 @@ -756,7 +731,7 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, * The CSIS can't transcode in any way, the source format can't be * modified. */ - if (sdformat->pad < csi2->num_src_pads) + if (csi2->pad[sdformat->pad].flags =3D=3D MEDIA_PAD_FL_SOURCE) return v4l2_subdev_get_fmt(sd, sd_state, sdformat); =20 guard(mutex)(&csi2->lock); @@ -771,13 +746,17 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, v4l_bound_align_image(&sdformat->format.width, 1, U16_MAX, align, &sdformat->format.height, 1, U16_MAX, 0, 0); =20 - /* Output pads mirror active input pad, no limits on input pads */ - if (!(csi2->config->sink_pad_mask & BIT(sdformat->pad))) - sdformat->format =3D csi2->format_mbus; + fmt =3D v4l2_subdev_state_get_format(sd_state, sdformat->pad); + *fmt =3D sdformat->format; =20 - fmt =3D __csi2_get_fmt(csi2, sd_state, sdformat->pad, sdformat->which); + /* Output pads mirror active input pad, no limits on input pads */ + for (i =3D 0; i < csi2->config->num_pads; i++) + if (csi2->pad[i].flags =3D=3D MEDIA_PAD_FL_SOURCE) { + fmt =3D v4l2_subdev_state_get_format(sd_state, i); + *fmt =3D sdformat->format; + } =20 - *fmt =3D sdformat->format; + csi2->format_mbus =3D *fmt; =20 return 0; } @@ -818,7 +797,7 @@ static const struct media_entity_operations csi2_entity= _ops =3D { }; =20 static const struct v4l2_subdev_pad_ops csi2_pad_ops =3D { - .get_fmt =3D csi2_get_fmt, + .get_fmt =3D v4l2_subdev_get_fmt, .set_fmt =3D csi2_set_fmt, .enable_streams =3D dw_csi2_enable_streams, .disable_streams =3D dw_csi2_disable_streams, @@ -1071,6 +1050,10 @@ int dw_mipi_csi2_init(struct platform_device *pdev, = struct dw_mipi_csi2_dev *csi if (ret) return ret; =20 + ret =3D v4l2_subdev_init_finalize(&csi2->sd); + if (ret) + return ret; + ret =3D devm_add_action_or_reset(&pdev->dev, csi2_nf_cleanup, csi2); if (ret) return ret; --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013037.outbound.protection.outlook.com [40.107.159.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5ADE136CC7C; Thu, 21 Aug 2025 20:19:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807549; cv=fail; b=Y6vWsxWB6SvA946eYUl/ppNIiJ657+5HnROaHUtpBNrj6cWoSDp0vOsMGbuXgUjbsIoNe0H4v1afSc/w/q1+C2n7Nvzm/GgmeGdyIvmlJ7KOp7niMG6BdL/713BxPUa4tr8l2t3e6/YGDA+nQnAkzJMaMpFNQgDPseUHmPc+mKA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807549; c=relaxed/simple; bh=1WQVbR0QIjZlxpVNSYS7/UdcSVZpWqMWWVWgJ5hlf4I=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mJ7RD2w8duuNHugHVz2uj5L7w1AEfDL5JKPyb6jxEiO3OswfKxg15Rl1xUQS2+2V0W+ZEnKs3IbWcrFOmDS6u/8anj9aAtS8rs93/xZDuzwErbZuGeoQP29IVQdHcxCAQd90lsa7RgaTv4ziAaADdoZBeu0nwJG9hWFf3ZqPzPA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=lFW8I+Pe; arc=fail smtp.client-ip=40.107.159.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="lFW8I+Pe" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ghSn9yQ5D/CLcUQe5Qy8Td3hcuo3T/CGV0bMmmj6mogWCul6K9xPmUMHHO44O/CT4/dlMjoH0BhtdgLTL7V9dFcoX9AgpcTf3inFioLYMf+9makwqGbCHoOa8Zwu902dJZdpdMxISGHmFq5fqhi9Ca3fgRvG87E4UTh6nScpTppIFFGGj4dGlI4c1ynpnpM+r+EtNTS8/JpHxbQ0gdoukzcYT1LUv3Ks56ySfTJUuxCv62eEvryph9ZLNHtgrf9QMKcsBNnG4lcaYC/a/qdjOE5rQk7buhRjeNlpaNPjqqqW4s0AzX2apuZv330d2fqt1OpiGRKIQeTK3lP21bfOWQ== 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=6bBvwMEBSuMgy6gHlgkcAQPLv/aQOcebBwUOsnNmAgM=; b=ehz/OybcyeQzeW/EUuXuQthjLsb1zlPM8OOBAkv5c3n3yGXlE3mLNTyjp71cFrmxV+yqDQBk5VVR4dTqGhgg8/G6puRRuj5HqGm8ofR9KKyaOfojvBDgl7axsmNu3F1uFPs+UwuWEfGmn3tvJhjB8Jk6DN5fJ/81qlSKdrAQwAW3aMo5/sG7rnK6j0ALbAYTapSkj1xJWn0/HgqVRoX2GqdpGiBNuGLppg3MNG/sRJip8CsoNy2a7H4cerUK5khWnR0uaNkOcKyg5MXn8t5lOnXThl6c8hMjhGUEaDub4ZhzvkIFtjT/aLpxMtE1sxTE7LvJRBEfNcfz5S6FoGy91Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6bBvwMEBSuMgy6gHlgkcAQPLv/aQOcebBwUOsnNmAgM=; b=lFW8I+PeGV2gQoMCjypu0XwclK6S7KDEFMWt7FVwECCAPC6psjsRxpkDV+QsA0/sA+3UOm77l+TASMDQiEBl1qavRArmqnvj12MJeT9kzWOJ5/gFvX67dX0HzgVg0Tx6Zohl+YIhdgFXk97SG4+JnauUzrTQlBU0SAuJI4gIsfcd+yLr+8wOOwUyASHtgQ//au7AFajVW0tOxC+i/b4Sk+pGgjlOHScv2ZzQBIUZLUEAaj3fzwdFRVplX7YGgQ3af1O1xMLbvWGORrF+ZaYS4i1DVWRTIoV+OB7iaBs5ztlYO5nnGyVoLNRrFfsrbx9wXgb/bkcke0CbzDUBRx8+iQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by AM9PR04MB8438.eurprd04.prod.outlook.com (2603:10a6:20b:411::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.12; Thu, 21 Aug 2025 20:19:04 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:19:04 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:03 -0400 Subject: [PATCH v3 28/31] media: synopsys: csi2: Add customize get_frame_desc() callback Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-28-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=3176; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=1WQVbR0QIjZlxpVNSYS7/UdcSVZpWqMWWVWgJ5hlf4I=; b=31475ugAfWpyk2RZqIcHvq4YTwvNBiqwEplWufjE6Mmz84eGDketNnRHF3f6ZITkiX3Bo1548 GG++bTkVLgLDlCoeLbPP7C+VT+nriNK7ngk3s3zHxV0Q6B05W/MSTXg X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|AM9PR04MB8438:EE_ X-MS-Office365-Filtering-Correlation-Id: 57365169-a6f9-40fc-5743-08dde0eff92e X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|19092799006|52116014|7416014|1800799024|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?b1AvQ0FUb2hRSm9FbEtjMFRxZmw5OWFLZTlrd25wQTl5NHhHTHU3TkFTZXZQ?= =?utf-8?B?NDBEcW16T0dUWTJMZHZHOWwzdUI1WEc3SzZtV3AxOUZ4dm9RRzB6ai8yQlpi?= =?utf-8?B?aHprWVZlMnE0UTVhZFlXYzhzR2JLRE5Ud1J4aU85dXNVVnZxYWFIb2N4SzE5?= =?utf-8?B?TEZNMDQ5L3EwZUFSa0tvWWxXS09LZ1JtVFBrU1ZoMFhoNlZNT0VscTJNMExy?= =?utf-8?B?QUhGeHkvSmVEdXNvWjJhRndBVi9PMUV5OEtadDQrQVJCY3luTkZvUjV5WlZo?= =?utf-8?B?cCt5cGpubVp6bWRPL3lDaGhlR3NCTEhOdENVTDdJUDZ5a1B2ZFJyUVRuTjFV?= =?utf-8?B?S0l5ems0QTNZbFdNZGZxNlRteDZGQ3hDTkI0eWJBYTZUQW5SajVpMUY2TXR0?= =?utf-8?B?ZlZMdVB2ZGk2OExaVmQzV2M1S1k1V1c2VDV6cjFRZVlJeEdHbGp0K2NGaE1L?= =?utf-8?B?dWEyTXdKTENVS2JqcFEySEM0OEh6TTZaU3lKZFhDSnlFdEVYWG5zdzhnejFN?= =?utf-8?B?MFhYcTZmUEN5dHZBTGJvTVNMUUlFc25uTURBUFdUWXFqYlp4emdlMzdLOWZr?= =?utf-8?B?dHRlc2xJR1AzcTRHM0RaUk5ZWGVDZGpmdUlta0NlZFNjcEdhcUFVWG5Ednlx?= =?utf-8?B?ZkF0QnA1L2ltcXZZRUVBYU1IMExEZ0RFRXJoRTNkd0ozeEdFaW0rWGdFR002?= =?utf-8?B?NGpBODU5M25BZ05tZ2pGKzhtOWRtWEtZTFB6Vk5zUEtvMVZpUnVBZnVER08z?= =?utf-8?B?dWJ5eS9qRHBRVlNxd1k5N0U2U09JT1ZVaHppSnlFMzZyTVFrV2l1bC9yL3hi?= =?utf-8?B?dzVEbGVpUlc2dUVKM1IwOFlPNkVuUVpOdnQvVHA0d1MzZ1BMeG1RR0lRTmsy?= =?utf-8?B?ZVJ6ekFPUjJ6dXRNT1RlVWVCT0pYczRJTGpMWWRaZDdQVjFFQjJ1bmZleURo?= =?utf-8?B?THdnU3dVRXBpdHNMSWtmVit3dkZSRVN3T2RSeEE5OGlJalJoOC9tTFB1ZzJs?= =?utf-8?B?cnJ3SW5DVHIwck90bVlTczZFRkY2YVFBbTRzUk52OWFNNnQwWkp1RlBqcHRq?= =?utf-8?B?ZFpMUVkvaWxpMlpUZnRrNk03VHZ4RGt3Qkg4ZXJJUk9CcTdqUW1lU1hBVGhw?= =?utf-8?B?Tjd3U2RCRW5UQ2R6MXlzc0NlOGZicDQxemJhdVcyRGNUeVUvUnIzMGhXS2Qv?= =?utf-8?B?SzN4YXJZdUJ4cWhRaTdwQ3JFUlNkbmttSzFnQXhHTkpFcVVVSktsODFUdy9t?= =?utf-8?B?MVkvZnM1alFCa01oeEhsOHNvdUNZWDVHbkh0aE40WFdtcWNaY0s4aHBoTm5T?= =?utf-8?B?Yzg4dXo1OE4vYXFQbUhDVjJaNy9HVzNCTjJUMFV6cGk1aExhbEZCZWJYMkJu?= =?utf-8?B?SHpyeXU2UnFEb3NObXlNTWlEbDVmSG5VdkZYY0UrdjFDeWplcWtNV3JVeFdS?= =?utf-8?B?R3hZTTVoZlFQV0xheXpsTnhEaUhvbFR1UkVzZlhQR21vTWxqSHpqUFNLVDkz?= =?utf-8?B?M0NnbWRoOWozSDlvc1dNaWRDZ2tiaFoycHBaU1dLL1ZwMHFSSTdCMVJPeHBu?= =?utf-8?B?TDF4eEJlWVp1a0VpNUZjcUZBdGFRTGtMcHBaOEpNUi9zUU1CZkd1Nkp5TkdU?= =?utf-8?B?TTlyekZvK0Npdlo0cFJ2aCsxT3hxWWhsV2s1eml4NjJiRlZ2Q3BUSklPcXRW?= =?utf-8?B?bzNGczdoeDhydW1scXdCc2lOeWlzSk5jcVNKQUFTbUtDTjdPQldlZlhQWGJi?= =?utf-8?B?c2tsR1BYVFk1WTZtMmkxMDBmZ2VESEVyS2FqWGU0UGQvTWFkV0dkdmk3QUQ0?= =?utf-8?B?MDIyS240VWhJUkh6ZFlqZWgzaEdxZ0pBYVFWd3VOOGFmQUo5cUNsdElyMmp1?= =?utf-8?B?WUZ6Tkxpak5RWXM2RVFTY01OdzNSaUtGTEQyNkpxd21zd3k0YTRJbkNVeVpR?= =?utf-8?B?WWxUZm5jdnlqUTdma1JZRHhKUE1CTXJOdEJCejdtWGVqSFkwMFh2bi9PdGRX?= =?utf-8?Q?D1L8ISu5x2cyOScNljkHZRLBi6Lux8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(19092799006)(52116014)(7416014)(1800799024)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dTkxdC82QTFnMXFyL0ZicHpyb2Zod05mcG14MG1ETlJnV2Q5YUt1UG9WUXBx?= =?utf-8?B?cGdaSGloSE12bWNVM3lhVURzalNYdDhkbGxITHBCc0lCMEJBdGxwbndvT3g1?= =?utf-8?B?c09GUTdxbjVzUmVXWmFVZmhPRWxjQlZ6Wjg3djFzVWMwU0hqTU5qUDZtN2RY?= =?utf-8?B?T0VEZlJ1Vm90MGFsVnNiait4Q0NaQnJVZWZXMFZHT05vMXhiM2NkcXpUZm5D?= =?utf-8?B?SmpEbUVHWTA3a280UWljSy92aGt6VUVDbEVwUkVVc3RMSmUwV3ppTk13Y1pH?= =?utf-8?B?dnppTDZRQWxSS29JK2NNellvaU9UMStvSkRoVmI4RVFQeisyL1JTeEpydkg5?= =?utf-8?B?eUFHbExTL2xYS1JUREpIRURQRHNaVWlFeXdLd0QwQU9jM2E1cnQrL0hvZnpq?= =?utf-8?B?bXRuNSt0M0VicGxmall0d3N4ODJHQmVYY2VIRXJuTzJTcHczWlpGUlJGeitF?= =?utf-8?B?U3NTb05OZUhOQitwYU1SdU12VWdINE5SWU9SM1JMTVNRc2pJREtxc3QwazZ1?= =?utf-8?B?bndCbytTYURBNWZYQnl1OVhEOEVTYjZPVUpzSFFzZlJtemRDWTdnRGNkdTI4?= =?utf-8?B?MGxCQjk2UEd0djJDVy94T0RldEFVZXk3bG5vdk1HNW94ZDgxRjJjOUx6L21k?= =?utf-8?B?SmtNUlQ0R0duVmIzbHk4a2V2T25HZXBkM1lnRnk0dGNFRHI4RWdKYTBoN2N6?= =?utf-8?B?ODdSTm84b1VhWjVId214ZXFjcUE3aVlHczVHMnBVM3NNUWsyRzY1cFVzVnVX?= =?utf-8?B?cEFBZmpBRkNDekcwMjNnZEhtczlndXhzdWNZUDExZzVsMEFsQ2JreG5EZXpX?= =?utf-8?B?REJXZTg1djZNZGRmSlZMcDNsdlkwV1NueHA5MHdYRGdmL0YyVEZ6WEhDODhX?= =?utf-8?B?dk4vcGNTcG5SajRzN0tLVFhteWJIMVlnV0ppUkoxMWhqRGJDTHZYQmpNK0pG?= =?utf-8?B?eWt0RWpsZ0VwaFp6Y0pibHoxMjdUSS9TMDFWN2h4RUtyeUQwT1hNNTMxSFd2?= =?utf-8?B?Uko1N3Y5RE5HUWhLMmhnUkNwR3ZZdlF2bjNueHRoc1BJZm1HS21XSklGSTFM?= =?utf-8?B?ZDQ2MHVScjhhb2lZUUl1UWRVSmFPUHNFOElzVi9zYk5oYXFHSVZXaExjdjFO?= =?utf-8?B?d3BWaEIreEw1NWptWXBxVmJpRFJEWVlDNG5VdHJOUU1xWndOelhkTGxlcktx?= =?utf-8?B?aHg3Z0M5SVZ6NWQxKzhsdUM1dFdLdDdGeStCakNMZ1dDVEdFZmhra2tGSS9P?= =?utf-8?B?U09DUTNaMTM3OTg0RVFSeEQ0ck1KdjBad1lMRmdDM1JOVktxaURUTCtSYldk?= =?utf-8?B?TjVRc3AwSUYveHZ5a1BVckxDa1oxTnJOTHhKSUNyK2VmVDNSaCs5RjBPSnFN?= =?utf-8?B?djFURm15N3doN2wvU2xXZGsrNTJoMFp5RnFTYnE4alN3WnhKRTRJTU9JQlhS?= =?utf-8?B?ekYyaCtxZ1FxcDl1UHpFOWhuNjFjVURxdTV6dEo2VmVqT1g1MlRFK2lhWE5N?= =?utf-8?B?RUVUUjV6dHAzWk9aaGE0Z0RwUThySE16YU5BZm9udFJkNW5PY0VFZU8yMTc0?= =?utf-8?B?d05PTVFrUXhOMENOUGUrUzdISzVzWjBLOVJzRmM1SytzSlErSldPYWFPY2Ro?= =?utf-8?B?Y092VmJzV1BxOHEyUFJJZjVnRGJ1bmxEbDZZeThmUUxYais0RGJ2aThxSVJQ?= =?utf-8?B?K1FPZldCTGR1dCtyWjc0eTZncms0TGVYeXp6U1N1ODFMS2JMaklBNHdPM0Iw?= =?utf-8?B?MENGTm9UakFOeUF1ZVYwb0NFL0ZTcloxTDJDRUVxOWhGelBlSVlNOTBxSDFU?= =?utf-8?B?Nll3YlJCT0d1amFUN3drSGxGVGV6cGJJRTZWbjlPdSs2WUpUTTYrR3hUSGVZ?= =?utf-8?B?aHNtRyszQnZrNFFEaFNXcDhmMjJXbEVCNTJaZ3pkZXBpNXZFcEgzN1FyWHNT?= =?utf-8?B?Yy9IZlVTL1p6RXczcFRzOEEybjNFSUVUQnozWVUxUURRcE5PNitPWEQ4R2Jl?= =?utf-8?B?ZTd1cEtxditjUW5jSW93SUhQSVZpRURVdWNKWUxWWVlEMHRxS0UvbG1HZGZQ?= =?utf-8?B?Ykt2dDNoQnR2aE56eHkvWnBtOVZJanRRaTVIbjRGWlNoRFIzUUJsaktNUUoz?= =?utf-8?Q?5lCM=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57365169-a6f9-40fc-5743-08dde0eff92e X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:19:04.0442 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4ph4QM4H5MYvc3ED/27nRHm/Y93h09a5tzromjDVvT/CVZfhDLSKewoCg3lPafSEbVGWE1PnuS283/uqzkerpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8438 Add customize get_frame_desc() callback to work with existed isi drivers. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 73 +++++++++++++++++++++++++= ++++ 1 file changed, 73 insertions(+) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 5ed65e89d4d9a75b245ebc6f28df989dcbd00b7b..695159f463f872ee0775c271b8e= 1c4e1d289de20 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -761,6 +761,78 @@ static int csi2_set_fmt(struct v4l2_subdev *sd, return 0; } =20 +static int dw_csi2_get_frame_desc(struct v4l2_subdev *sd, unsigned int pad, + struct v4l2_mbus_frame_desc *fd) +{ + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); + struct v4l2_mbus_frame_desc source_fd; + struct v4l2_subdev_route *route; + struct v4l2_subdev_state *state; + int data_type; + int ret; + + if (!(csi2->pad[pad].flags & MEDIA_PAD_FL_SOURCE)) + return -EINVAL; + + memset(fd, 0, sizeof(*fd)); + + data_type =3D media_bus_fmt_to_csi2_dt(csi2->format_mbus.code); + + ret =3D v4l2_subdev_call(csi2->src_sd, pad, get_frame_desc, + csi2->remote_pad, &source_fd); + if (ret < 0) { + dev_info(csi2->dev, + "Remote sub-device on pad %d should implement .get_frame_desc! Forcing= VC =3D 0 and DT =3D %x\n", + pad, data_type); + fd->type =3D V4L2_MBUS_FRAME_DESC_TYPE_CSI2; + fd->num_entries =3D 1; + fd->entry[0].pixelcode =3D csi2->format_mbus.code; + fd->entry[0].bus.csi2.vc =3D 0; + fd->entry[0].bus.csi2.dt =3D data_type; + + return 0; + } + + fd->type =3D V4L2_MBUS_FRAME_DESC_TYPE_CSI2; + + state =3D v4l2_subdev_lock_and_get_active_state(sd); + + for_each_active_route(&state->routing, route) { + struct v4l2_mbus_frame_desc_entry *entry =3D NULL; + unsigned int i; + + if (route->source_pad !=3D pad) + continue; + + for (i =3D 0; i < source_fd.num_entries; ++i) { + if (source_fd.entry[i].stream =3D=3D route->sink_stream) { + entry =3D &source_fd.entry[i]; + break; + } + } + + if (!entry) { + dev_err(csi2->dev, + "Failed to find stream from source frames desc\n"); + ret =3D -EPIPE; + goto out_unlock; + } + + fd->entry[fd->num_entries].stream =3D route->source_stream; + fd->entry[fd->num_entries].flags =3D entry->flags; + fd->entry[fd->num_entries].length =3D entry->length; + fd->entry[fd->num_entries].pixelcode =3D entry->pixelcode; + fd->entry[fd->num_entries].bus.csi2.vc =3D entry->bus.csi2.vc; + fd->entry[fd->num_entries].bus.csi2.dt =3D entry->bus.csi2.dt; + + fd->num_entries++; + } + +out_unlock: + v4l2_subdev_unlock_state(state); + return ret; +} + /* --------------- CORE OPS --------------- */ =20 static int csi2_log_status(struct v4l2_subdev *sd) @@ -799,6 +871,7 @@ static const struct media_entity_operations csi2_entity= _ops =3D { static const struct v4l2_subdev_pad_ops csi2_pad_ops =3D { .get_fmt =3D v4l2_subdev_get_fmt, .set_fmt =3D csi2_set_fmt, + .get_frame_desc =3D dw_csi2_get_frame_desc, .enable_streams =3D dw_csi2_enable_streams, .disable_streams =3D dw_csi2_disable_streams, }; --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011027.outbound.protection.outlook.com [52.101.70.27]) (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 90CFE3126C9; Thu, 21 Aug 2025 20:19:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807555; cv=fail; b=bJBImHq73oqMoMXt2SBkBBjnJwG3wt2RAjvjFthYpNl1xBw5vMbqvmX774+4cf+6cGwjSm37Jb8G8OutYCD3AnMVhRsgBNndC/S2SVn/5WNyPrUwcPRdELsWdLbW/JlWcq73oU3pJfpOLpLSMJzseeib5daWOMsaLXqA5m3J+YM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807555; c=relaxed/simple; bh=EnlPFtAMwndOMxRTOWn8TbIqdQ46Y45Jr3TbziDk7A0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=AP1Aczc4uZQbkHNjOuXJ4ODxmIpIE8XXydFu9s1QeMFD0lY5tqS2YqrXMZwTlVR8xH6RiMPYY00jYYldcL421MSJ1jLGhq918jrd4wmOJJo+tZaiNjvcMVFQ14qhcZrLU16J8kmsVU0pSVW9tWoVUoT0QcdCGo/PZMCkpMMrvDw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=lyiG+DVH; arc=fail smtp.client-ip=52.101.70.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="lyiG+DVH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Mw/1qXGlrEjpYcz7yaTu3YbkUjjQvBpgysm4G3CKWtS5M3DwliD0h8brVq5SrVba9jRUEyVklNK6c9DpJ+J698kAkGoT/WOp5VjE2OOnwAdsKMW080b/LMZlbLwoboMWvtzWkdHaGBrP5i+SPBbsivK1JhMsxqShKlzzMXqjVNKj7cDsxN4ynfNyB78pFfuZ/CsnabtOY5c4Yt/F4YFbGKaBEt11h+TciA3Qucc7ncakBewSIN0g144rwvvwgWlno5gwwJ4fPMtMBLU+louMXU9ovbmCBHKiwTmriE+RRlTiUdGO8A+sfHJ3JMtZTcytXfta3Qw5jqRvg1FKyZMHZg== 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=QTbqwj8MI2s1pwYuSNfQDbQDe42z2ipoHz/a4XwGonw=; b=b4dxxDGWWz8NQEfTRW62cO2qkoNq4q4gHEj1JBjK8sf4nTsXRR9KxVUAavJUhr7yv8vmmFL4KicYmGtJ0pmlg2YoeAqHkIv2wj4QGhXGYU8t0opESLxQhWMf9xfGIccLRR9VtK94AaohxKzJzZwQANTkW0HZxK7232OFjgDHtxgNwxUzPg3HsWkXURZomlMo+vYf+UFXFMlLewdrLx5o69Ne9pQpb9UanFJkl7k+lzy9k/Hoq6wOpdNPcJEoMBqubbwoJ3ziZzAFt8eY7HUpIjen0bIg3K9vs4obsC12Oe6tYGN3ZL24KrJTFA2pkIIW8VysBfpIpUANN4eM0lhrDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QTbqwj8MI2s1pwYuSNfQDbQDe42z2ipoHz/a4XwGonw=; b=lyiG+DVHn/3cWAGxNqtxTLGv2c9Dd2qUpoO9Jay+7v2AXqB+QMWmC6LBDxQlCjsTTpUgafLord6JyQyFMo4dGUXQ/KoC3t4tSrRqzkYV7G+lCYAHOtg9K7/2HFKkC88oaaJquU/X+V5EtkSdRYAG8J6Stux3GBm+QmtoJrl0JPzsfaWC67Rq3xz6ByMXdXHsowSXUeTK7yNsh36irw4w3s73Qa9sPxApa5qLxFrxWMT3puJxOIVpS0xnniIi6IlMJUg7UQFeu1iAPakMcs6oQrBrSbjjQ815ABYq+y+D/N7vdv1d9Wecw0pfHh0TRG3ntlU/UFzr1dRImZWE5BXQ8w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by DU0PR04MB9228.eurprd04.prod.outlook.com (2603:10a6:10:353::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:19:10 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:19:10 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:04 -0400 Subject: [PATCH v3 29/31] media: synopsys: csi2: Add Image Pixel Interface (IPI) support for v150 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-29-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=4156; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=EnlPFtAMwndOMxRTOWn8TbIqdQ46Y45Jr3TbziDk7A0=; b=5ErZCnNiV45Q+Jkv6tIKUUMyHEfmqSjY2u9YJe9pdkHYC/TqyvkDC/zsibDUs/QFJ6zjz9UcD dX4zm3o8ltKDlnxzmTsduWZF7F0ACkaGJiEZ8TaPN/EVLK9n47PFM0W X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|DU0PR04MB9228:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b457cff-a708-459f-b694-08dde0effce4 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|19092799006|376014|7416014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?b0tlTjRMTnVHV0NMejExZlBwSUR4eVNEQ2NXbStYeVlKeHBwZWFkeFRXOFhQ?= =?utf-8?B?aFU4WE85SXpxbEhmWnpSYmRxdkVuOE15cmFZbGtPU3J4M3grTUk0Z01jQmJH?= =?utf-8?B?VjF6SFNmZUE5ZmZ6YzluU0hDZGNPTUsvZkhKelBBSWJhQ0xBTENVV09FTFZl?= =?utf-8?B?R0ZkcUJMZGdtQ0NkVmwrM3FHc29PLzltQ2V3ZnIxWktUT3Z5aDVjQ0d0cTN6?= =?utf-8?B?NFBqRmZXZ0xJQ0pUaFZubXNSNEE5eWFUVG9TdGZodTk4UFNHakorZ2NQSVVk?= =?utf-8?B?RWRlYUxHZ1l0NXdreWpSelliS2ZubnpGVGJQRysvdDN6aE9Vdnp2SW1Odjli?= =?utf-8?B?TFowOGVNek9mSkxSOENDTEpZZWpYRjYwOStNR0t1UURkSkQwRkhSL0FaN3dO?= =?utf-8?B?d3h6cVRyaGJqekZ1dlE5aUV1aTZaT1J6VEN6SVVubER1WFVZb1pxRDdpOHFw?= =?utf-8?B?MjNWNGtzaTBKanFIY2Z5eXNQRzQ1OXdYZmFQd2Zpa2htRDYvV0FwVldNOHFK?= =?utf-8?B?aXlNRFMzR0NkVHlVU0FQVnRNZVNCZzlYUEoyS0NEWnhIaFVBN0tvUTBUb0FD?= =?utf-8?B?Rk9WdFE5SkJqOVc1bUZIaEZ2UXQwZlRvL1FPSVNYOXdMOCtLM2JtcWxtTXVy?= =?utf-8?B?aXJxa3pVRHJaNDZ1a1dNYjhPbEtYSkdxMlg5MitQLzY3cXR2V3ErNkZ0ck1U?= =?utf-8?B?VUY0ZXlNVkpuRzdhbzgrOHZZcmhWMm1ZZnczbDd6dHhSQ204R3JjdG8wV0ts?= =?utf-8?B?ZUZiWU83MDVtVWt0enFCRlAyVGpMUEdHMjlqOGNYVU1SMWgrdlRxSkM2UXZG?= =?utf-8?B?anBTMi80N1gwYVR2Vld2WTdvT1cxMk5yaWp0VE12Q2FlQldxSmlhd2JBcGNh?= =?utf-8?B?VjgyK01jOTVMbWg0V2NhZ0NjVzRmYVRtcEVMS0Zjb2ZnT3lhVk8zcjAzd0Nv?= =?utf-8?B?OEF1Q2FrKzRodmtldVZJMkhLRzBUc0x6bkJ2a0pzTG9nQkFOL2ViWHEvSG9Q?= =?utf-8?B?ZXJtemk5eWFxNDZ3Z1huakwwcnQ5SzJnWG8vRWYxRUZjenBtVkNkOGp0ZUZZ?= =?utf-8?B?STJXSEVyZ0hEWmtTcmVhY3lFNnpFSGQyTThUV09aTVM3WEpuTitOelNsTGdI?= =?utf-8?B?cFRUTVpwME54VW5uc2ZtejFjUWg0WmtmZzlqVmhjZGlHYjE3ZkJVblRwbGta?= =?utf-8?B?MlBZMk1DbEtyUy9PeUhTYjFGVUQwZmlmOHhIZWhFejd1cjJuanpUTUtVdlBM?= =?utf-8?B?UVhKWE40MUZrOVFyUDMrckNYbmNyWWhQQlBPdjFPMjRmcjdYb0NFK2FXS0wy?= =?utf-8?B?bnJTOWZReEpVa3ZMb3JIdFdiTHV4V1JJWHBlMUZkbW12Lzh6cGhCWG9MR3dn?= =?utf-8?B?d09hdm4zb0pDdHV2c2lqS0FkOGxqWmlXcFFMRDFOVmw4VUFabTcya1Nwbjhq?= =?utf-8?B?TDNBNTFUcjNxNFJLN0x3ZXE3dFBlRnJ3djZWS2EvRThwdlZ3dUxzSGIvRjFs?= =?utf-8?B?ODdjUlBjeG5FVnA4ZGQyNFNiNTV0MjY4aHBpRXVwZGY2bGg4VjRmSWV6REhn?= =?utf-8?B?akJZWVJndXdZeUt3eTNtdHEvdmlvMlBaWXdvWnp0RmxQa1NNdDdQaFVKSnpN?= =?utf-8?B?aUFvRzBxbnpGUXhtWS9ybXpQWjRic25IaGVrYnBGTXNMcTBXVHdiZkRFak9Y?= =?utf-8?B?aVk0bFQ5WVBmMVdqMEYwYmFDMVM1MUcxdUNNNjFSMGNQbW5TWDVFbmJraWdP?= =?utf-8?B?NFRGY3hzTDNadmtFMlZZSGtURTRsVU5SZDdZMFBUV1gzK1hOY0hmVzhDZDVx?= =?utf-8?B?Q2dnNE9Tejk5ZmJIK1RzbXhEdS8zaEU2WlRTcG9kM2J1VS9VUC9SbWZpVzl3?= =?utf-8?B?LzU4RjIxd1dkQ0hFQkJQTUVZaUZqbWUvbFYrQ3lZclcvTTdwSWJSaVpzNXdl?= =?utf-8?B?N0phVkoxRTFQZU9aYU52L2F2NzBiTlREM3ZoK3g0djV6VTVKYjhTNkxjamcv?= =?utf-8?Q?SLdFSfNh6fweA9Z7JyvvcGvxy1ZaNA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(19092799006)(376014)(7416014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NGNHcGpjOG9qUUJoZnpQaUtEbk9IVEUyWHBVWTFoSE83b2V0TTE5VjVZZW1p?= =?utf-8?B?R05mS2U0ZkQwaWZpWEFlYnV0cGtKRk5OOE5FRnJLK3o5VjZZSkJVMHhoaW04?= =?utf-8?B?eGJiZmZyMUNDZDhHVmJ4ZlRyZnA2VUV0cmw5OEhtWkpvOUdnTTdDem51SXFG?= =?utf-8?B?aXJ4YWZrZVJ4a2dOTzFVRFNhTnNWVmo5U0lDNnphYTVnS3FyN2FTbUFqZEJS?= =?utf-8?B?UllqaTRFTllteXJQZmtOa3pabERXeU9JSUZQWW85bVpTNDZieko3bW5jbXVW?= =?utf-8?B?V29VeEEveFV6RHVLQjZEaUVLcW1hb3NQUFdhbmpqcnJQNnA2aWdEdWJXQ1Uw?= =?utf-8?B?Vlk0YWxtMExZSGtjcFc0aUxlUXp1UzJvTFlhMk5wVFFhMXBSR09DZzFIU1hI?= =?utf-8?B?QitmRGRqd0VWei9VK2VsUVBWWUx2VTl1VDQ5bGtDMFV2QkdhZFluUElyRXNl?= =?utf-8?B?L1dWb1gxQ0QvUXR2WkJiY3RsTmxicFRjYmE0cEQ0MVVWQVV0dmNrc2YxN0Rn?= =?utf-8?B?RERrNVR5ZElWMjkyS3BhdHB0WkRjTmVheFd5dEsvQXRmNzZPQ1FTZTRBekho?= =?utf-8?B?WHhxdUhnUjU3STJzRk1uK2QvaHJuVU5nUDZsVVVYcnczVm1LbVoxWFhsdnA5?= =?utf-8?B?WHJrMldDMzN4QXpSVTg3ZmtVdGZnSThGR3VmbFZYMXBTSG9rTGRCejM4YW9h?= =?utf-8?B?WU1rWDE3U2d0VE55V0hMSmZYTGVEUVZvSEw4Zm1KbkZ0ckUwV3pycks0bE5F?= =?utf-8?B?WXgzSEpYbGk5TmtNbWIrNGkxeU53TmFJcTlCTFJyQWVIZWdxZ0llVUtEZGZF?= =?utf-8?B?dStNU1RHQi8rS2hsendldzNoS3QyeDREeG90Vnp4blIxb0ErenJweUVqdFh2?= =?utf-8?B?SHB4blZUVElWMEw3V2tEMk1nRldVQ0lIWTA1enRBSlBaWC9INGIwdVdpQnVx?= =?utf-8?B?NzhzbHZINVllOVRmTzhQM2tQQUxqTXQrOXJGSk9rUHZZQ1oxVUlSMjl4ZzR6?= =?utf-8?B?T1ZqVEN0cUd0ZGJYcytka3p6cmZMRFkxL0hyWFBzbWcrRnpHZ0I0bTFVUGU3?= =?utf-8?B?UnpkSnl5aVU0c01GWE9MOWNocE1JNXJmTVVDakxzYTEzcXNJay9kODJpQWM1?= =?utf-8?B?WTI5Yk95M0tyeis0NnJTV0Y0K3g0LzNoaktndGwxcmhUSDZ4UXNJSXM0M1Fw?= =?utf-8?B?YXhpcktITVgycUZqNmxkOVJNb3lhY1NpWjZ4cEhnNEdTK1l5dTBmOUZHYWJw?= =?utf-8?B?YXBhUmZpUzRVTTVNVDVsZ3pMaTJYYi9abzVQN1dINkxVMWVZS1VQU2ROLzRM?= =?utf-8?B?YlpIc3hJR1BZU1ZwTzlUMUMwMHc1ekg1WkZwbnd5dC9maXJySzFkai9UVDZS?= =?utf-8?B?RFNYaitTSE9WMFRMMXZBQlV6akxuK3pBVTVzYWtQaTNFbFF6NS8zT3dVOGd0?= =?utf-8?B?M1J1VkR6MDRhdHc1em9nWkczMTQwaU83SEJqOGhFeTYwSHUxZUU5YXp1MzVY?= =?utf-8?B?eTc5cVdBSXd2OXNNeXlZVnZ0amtudWtNZ0ljM0R3Z0VnY2ZYT2sxTzJqNHdk?= =?utf-8?B?cEwrcVdhVVNaOWpEeExxeCtJUmVZaWhKTC9GWjYzQTV3dEd4YW90WFQ5UTVX?= =?utf-8?B?WVhvdzdZMDEveVEydUpKa1FhOW15Y244V3FzSm1wNm1tUS93MFpuaUp6RVhY?= =?utf-8?B?TmpsNnN2TXlXK3JCdkUvWmNPZWlVdEVuSXpvSlppMkdBQVZyZmJzWEptaUps?= =?utf-8?B?eUhmZUJMZWQrMHRSTXppU3RhdW5CQnhNY2NOVUE3YllEeGVLUC9ZWkxPSXRR?= =?utf-8?B?WUR1Vy8rckhUZG5jR1ZPdkd1eUNXNmszdWdCSEJxOE04cFpJRW1iTGQ4eFJ3?= =?utf-8?B?aGQ5STBiZ0l0R2QwcXpheDc3T0FnbVVJeEx5V2ZrcGlpYjZoM2NzK1p6c003?= =?utf-8?B?SXZLaXk1UFVWNW9hc0ZJSjJOeXhTRGZtV2ZRT2JzL0V6Q0twNDBGQzBBRjVI?= =?utf-8?B?Y0xrSDNDY0ZteS9UanAxZ2xBUlFTMU9vRTZIWjdpRnR5Nm5OY1VoaGp0dzEv?= =?utf-8?B?U2F4bm54Sk16eFdlR2YrQ3o4YTY4UXA3THNOOE1OZWc0NmtPeXo2Y0RxQk1K?= =?utf-8?Q?Berg=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b457cff-a708-459f-b694-08dde0effce4 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:19:10.2326 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bDjd11s3eib9f+9FKxRCId1fPY24iEB3rJFf9mtz0ohhiHtnzILEDhilhLRRHqmpj97vEbtFHXbeX3aWBIRaPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9228 Add Image Pixel Interface (IPI) support for v150. Check the ipi_mode register to determine whether the hardware supports IPI. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 82 +++++++++++++++++++++++++= ++++ 1 file changed, 82 insertions(+) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 695159f463f872ee0775c271b8e1c4e1d289de20..8ccd3d4960801cccd8d24647f72= 6e4653955f90c 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -40,6 +40,11 @@ struct dw_csi2_regs { u32 msk2; u32 phy_tst_ctrl0; u32 phy_tst_ctrl1; + u32 ipi_softrstn; + u32 ipi_datatype; + u32 ipi_vcid; + u32 ipi_mode; + u32 ipi_mem_flush; u32 int_st_main; u32 int_st_dphy_fatal; u32 int_msk_dphy_fatal; @@ -90,6 +95,11 @@ static const struct dw_csi2_regs dw_csi2_v150 =3D { .phy_stopstate =3D DW_REG(0x4c), .phy_tst_ctrl0 =3D DW_REG(0x50), .phy_tst_ctrl1 =3D DW_REG(0x54), + .ipi_mode =3D DW_REG(0x80), + .ipi_vcid =3D DW_REG(0x84), + .ipi_datatype =3D DW_REG(0x88), + .ipi_mem_flush =3D DW_REG(0x8c), + .ipi_softrstn =3D DW_REG(0xa0), .int_st_dphy_fatal =3D DW_REG(0xe0), .int_msk_dphy_fatal =3D DW_REG(0xe4), .int_force_dphy_fatal =3D DW_REG(0xe8), @@ -115,6 +125,31 @@ static const struct dw_csi2_regs dw_csi2_v150 =3D { #define INT_ST_MAIN_ERR_PHY BIT(16) #define INT_ST_MAIN_FATAL_ERR_IPI BIT(18) =20 +#define IPI_VCID_VC(x) FIELD_PREP(GENMASK(1, 0), (x)) +#define IPI_VCID_VC_0_1(x) FIELD_PREP(GENMASK(3, 2), (x)) +#define IPI_VCID_VC_2 BIT(4) + +#define IPI_DATA_TYPE_DT(x) FIELD_PREP(GENMASK(5, 0), (x)) +#define IPI_DATA_TYPE_EMB_DATA_EN BIT(8) + +#define IPI_MODE_CONTROLLER BIT(1) +#define IPI_MODE_COLOR_MODE16 BIT(8) +#define IPI_MODE_CUT_THROUGH BIT(16) +#define IPI_MODE_ENABLE BIT(24) + +#define IPI_MEM_FLUSH_AUTO BIT(8) + +#define INT_ST_MAIN_FATAL_ERR_PHY BIT(0) +#define INT_ST_MAIN_FATAL_ERR_PKT BIT(1) +#define INT_ST_MAIN_FATAL_ERR_BNDRY_FRAMEL BIT(2) +#define INT_ST_MAIN_FATAL_ERR_SEQ_FRAME BIT(3) +#define INT_ST_MAIN_FATAL_ERR_CRC_FRAME BIT(4) +#define INT_ST_MAIN_FATAL_ERR_PLD_CRC BIT(5) +#define INT_ST_MAIN_ERR_DID BIT(6) +#define INT_ST_MAIN_ERR_ECC BIT(7) +#define INT_ST_MAIN_ERR_PHY BIT(16) +#define INT_ST_MAIN_FATAL_ERR_IPI BIT(18) + #define INT_MSK_DPHY_FATAL_ERR_SOT_LANE0 BIT(0) #define INT_MSK_DPHY_FATAL_ERR_SOT_LANE1 BIT(1) =20 @@ -449,6 +484,48 @@ static int dw_mipi_csi2_phy_prep(struct dw_mipi_csi2_d= ev *csi2, int bpp) return ret; } =20 +static void dw_csi2_device_ipi_config(struct dw_mipi_csi2_dev *csi2) +{ + int dt =3D media_bus_fmt_to_csi2_dt(csi2->format_mbus.code); + u32 val; + + /* Do IPI soft reset */ + dw_writel(csi2, 0x0, ipi_softrstn); + dw_writel(csi2, 0x1, ipi_softrstn); + + /* Select virtual channel and data type to be processed by IPI */ + val =3D IPI_DATA_TYPE_DT(dt); + dw_writel(csi2, val, ipi_datatype); + + /* Set virtual channel 0 as default */ + val =3D IPI_VCID_VC(0); + dw_writel(csi2, val, ipi_vcid); + + /* + * Select IPI camera timing mode and allow the pixel stream + * to be non-continuous when pixel interface FIFO is empty + */ + val =3D dw_readl(csi2, ipi_mode); + val &=3D ~IPI_MODE_CONTROLLER; + val &=3D ~IPI_MODE_COLOR_MODE16; + val |=3D IPI_MODE_CUT_THROUGH; + dw_writel(csi2, val, ipi_mode); +} + +static void dw_csi2_ipi_enable(struct dw_mipi_csi2_dev *csi2) +{ + u32 val; + + /* Memory is automatically flushed at each Frame Start */ + val =3D IPI_MEM_FLUSH_AUTO; + dw_writel(csi2, val, ipi_mem_flush); + + /* Enable IPI */ + val =3D dw_readl(csi2, ipi_mode); + val |=3D IPI_MODE_ENABLE; + dw_writel(csi2, val, ipi_mode); +} + static void dw_csi2_enable_irq(struct dw_mipi_csi2_dev *csi2) { u32 val; @@ -583,6 +660,11 @@ static int csi2_start(struct dw_mipi_csi2_dev *csi2, i= nt bpp) if (ret) goto err_stop_upstream; =20 + if (csi2->regs->ipi_mode) { + dw_csi2_device_ipi_config(csi2); + dw_csi2_ipi_enable(csi2); + } + dw_csi2_enable_irq(csi2); =20 return 0; --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011051.outbound.protection.outlook.com [40.107.130.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 093DE35FC21; Thu, 21 Aug 2025 20:19:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807561; cv=fail; b=g7da6CHwnHa7nMLr+zubCDH9gEF8GMxkRwDF6aKjluXoikNqqCzBbBMm1Dr8fDpW9S8Ptpm5KoLSyVbAnbpkT/QDIFdo4HhNsaNgVIlX3LSf1ZePMq+c8bAuApuWhyLf33yrM1+rl1+sV9qEj3zCgeKrQvo9xQ6rnjvIWY7+Xgg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807561; c=relaxed/simple; bh=Ag9nOnfiNl255Z/8uV4MDE77idoaoGDH/nePpztgNkE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UVjhDiAn+20aOwq3Vw8iAZxc6O0onCqTbNkLdWAD5v2XrRbfXSTBtSgUPU9krQFV1AFpOMxy7Ub06WN+H8exeIWwpS3fV/+tjgCksXw7TfsoN9POnwtu7z/7Khlt8nm+31NL5bwRUIs4Q9abFyMN37rxLoNIy0Wd6tI4fH5IuXE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Beg6JjIL; arc=fail smtp.client-ip=40.107.130.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Beg6JjIL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CQh/j5Skhw3LoEpkxpkkVQWVEy99pG+56Kfd0oz5cUrjtXzPkvBifkLRAV7Vbohu113mpgLeXQR3wKf8qXJ2FxS7agKseCYs7OEhzvMDUcWYLcjV0dW3QvGp2q+ffXUtbZC4uFS1VY/0Gv+T6CSR1uWDAimbb8NklAzHjOFnHAd/uQOV0cI4cJVpDsrW7onyc6+8RQD54mefhqfKx+Ib3qSAWt3PudiS4I3AtDqrG6rrY40hKMo0bXurG0chyCsv0tHK2VWI00Mv+dXPqA8Y+7tHnqDpK5cAVEHf1J0kurmEcyZQaDZ7+FVUeJMHCQPEy8sy5Ppu8bHe7BnM251Rrw== 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=FOjStedagn0a7Crc8liM4rlJBF43/uvGuUCflfIyP9g=; b=MgvxMsrK7vCB9ztDUCR5g6ZW2bpzyHuaVjttQFJZyfelBXJrDbBQr4WglEPWzdwTN0nd+kQznMO8XYyqt5jCWuuDToDYnwwAUDc9gerx/To5j6chjObbdD+TFmnOrW8Y387/L1G/ZF+oW267SmhQag3BmyXpXVA4JdWt0bIbNAw7qES7J09qAxTichJ4nvhVICbTZteglGur6/L3mhTnqSoGYfhKnLTlwE1nGsPkjUYRbl0R2w4cEeCz5dsE5VOUZLwoL1y62WITofn73uHnpJWWmO3Bsyz0r2VrskHb/cidL083wkeqyApDGs5dbxFG5uQej0M2u+MsA0g9sdC6LA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FOjStedagn0a7Crc8liM4rlJBF43/uvGuUCflfIyP9g=; b=Beg6JjILyV//H6BlMEVvRgGXp6UP6+mhWa4hATuxGLoUzne8rl0MxdyJY2lJYIqx1Ie1PLMKAcTnPm10aGCal53JJkjd0pADYX4TaUMUrxW3nbNgCxRiLpQMeTXUPCiMeu56tSvLpXFs9pfiQAoU2W8UDdlBkleNagcxsJto2vbpxNBCTpDL7cZ+j+WDy8ukHgoDKUvhAAyM5LY7uNTNbtp2xvovCfEuL62pdIIssZUnOaVdT10qj1Bwb76lUxVj82y780xC4/IpspgC+3C7K/SZ2P+Ygivgw4AdUMUpod51bthSgTKIGdZBkmWe/92c1WrlIfs35kjHfmN6J2RP9g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by DU0PR04MB9228.eurprd04.prod.outlook.com (2603:10a6:10:353::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:19:16 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:19:16 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:05 -0400 Subject: [PATCH v3 30/31] media: synopsys: csi2: Remove source pad connected check at dw_csi2_enable_streams() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-30-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=2239; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Ag9nOnfiNl255Z/8uV4MDE77idoaoGDH/nePpztgNkE=; b=EirUTGedqBJZMhNaFdpKBq+InMA95M3SU0+kZ0QUfiRJndqFMbdkcsR78qtmYBeHUioW4pY4R v689PwdFocXCCnidMEjF1gM+Cts4s9MlaoRxE+CTbWnw4MHQQqmcywg X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|DU0PR04MB9228:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fbae4b3-472f-4b96-c5fb-08dde0f00089 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|19092799006|376014|7416014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?REkzbFpIdWNwemFTNDNuTVgrdDRyZWFCc25MaFdsamJEMXd0TDhCeVM5V0Qr?= =?utf-8?B?SCtmU3FnUjBTNU8wZ1Y4UWNyMjNGb2U0Qk9NQmN4dW5KUFlJRmJkcjZhMkNh?= =?utf-8?B?OFB3M2Y2bXB2aFlBb0lRYkI5YVZSZFFQMlZBQXA0L2tsM1cxbUhwTkFZWElW?= =?utf-8?B?cm9sanhKOGczQis5bXlZT282MllzS3hBY2xFMHRYNmx1VkFGckhrMGhmRU90?= =?utf-8?B?OXJ2Y1kyOFBIQkJQZ0VzT3JVZnN0WmZNT1pnUWZ4Um5wbURaTW1mSDJTT2ow?= =?utf-8?B?aVh4cXYwZFZRdmk2N2lIdDNRaGlGRDB5cmRvbjE4RWtDOU9tK0J3SXNQMzhJ?= =?utf-8?B?dERwR2ZNMExjTjdCR1V6c2JTYzNpbUpBUFVzLzFhQmNFMGRKU1JzS1B0N09F?= =?utf-8?B?ZlVYSThhSmFwRk1kM29VaW9wcGRwL1J0TDduckZ0dmJsbm1XNllMeGNvem9L?= =?utf-8?B?T29uZ3d4MFUwTzFQRk8ralJucDdWU1hnTFVzS1JkT0JqSDkvalpEb2l2a0ha?= =?utf-8?B?ckZkRXNHUERJMWgyQ0VsU1ZmT3F2SkZENmtOT0RZQjUwOHYzakljTHB4OTFo?= =?utf-8?B?S0k3ZzhmMXdkcWxUQ1hoUUd4SjBicmZTYUs4MnpKdTVnMXdCaDQ2KzlCcVY5?= =?utf-8?B?aGhXOFRZYjZDZFBJbGJYMzNwd1M2L3pTNVduaFNyblFGVnVWaEhWamxKTzNw?= =?utf-8?B?b0dIZVVLUWlIRGdWVWpaZ05MdDU1a2U4aTFqWU9nWHkwZ2ZFd0VaMXo1WitV?= =?utf-8?B?OEtDWkdIdE9qQkNuZWlTeVpKbEVOS3Q5UUtkYjZucDMwdU0wc3FhK3FkNC9C?= =?utf-8?B?dWp0cndOWWxielZYaXJNanRNZk9GS05LUUxrSHRhaWdHY1pRZmtHazNrS2ZU?= =?utf-8?B?U2pyWjNTeWMxODMwNWFiZ3p5QzRiSVBGUmI5NVA5RzdTdEwrRmhaN2l2eXh3?= =?utf-8?B?aUwzbld4RklsU3pBZnlscm9NM1k5VTlobXdjcEQ4VVVlSGJVY0lVRXR6ZWll?= =?utf-8?B?bDUrV2xlK2IvcHhuVHRLUlE3YU5KUERFbFJCMndveGh6NXpOaVJFY1FaaElw?= =?utf-8?B?a2tkQ3dBUGFhMkZZZlNJZ0ptUFkvcmRxdzFFWE5GNlFpdjdnbUdLUk9IdzRr?= =?utf-8?B?UkZFR3gzQnpzamlhYnpVbWQ0TXAxN0lzYnpMM29ReS9LV1RlSXZyZE83S2p6?= =?utf-8?B?UTVmUStjWXZ2TTZTa1k0QlRWMWV6MzR2bFVEdk5rMlR6bElCWEpHV1h3ZmVi?= =?utf-8?B?WDRhSWZnNUR4WGRJR0N5b21zYTEzUTdkQzZJNFpSYnR1NXNGRHpIYUV6T0ZP?= =?utf-8?B?dzZINGFMc2JVT0xyM29PbjlmbVdxUnY1K01xZmlPRTRvT0RnL2lVY0Y2VkxF?= =?utf-8?B?aFp0N2FydFc3WUQyak1XMVp1eVdLa0hwSkdJTVR1K053b0JRNm9ucTN0WkRy?= =?utf-8?B?enBWTHRIdlVia0p4VWc4MUk5bHBYMEkvZ1E2RUs4alpQVXdIWGF1YitvMVR4?= =?utf-8?B?MkI0akZLVWlPT3RqaXhJcmdTbFlDR3FicjNmeUJRcG8wV1RXbXZia1RQRnRy?= =?utf-8?B?THhnTG5YbVVRQy9obkx2LzJ2TWpWTHZWWmtEaUZlU3JnNld3R24rM2Z5ZTA0?= =?utf-8?B?T3FPUHZ4cW11UWt5N1VlTHYzQ0xqOWIwYjQ1T3cvRk1GMmJxRzhPU3VxYmhN?= =?utf-8?B?U3QwVFB3bUxTSnJFZWdxbGFRQzFYWHg1czQyTWtYTHNTdlp3WFZxbmEySm1F?= =?utf-8?B?dzFNeEZzZGhPQ1QwQVVkSG1NaVluRmdGb3R3QzhGUloxWUlNdmtreDZwUmFP?= =?utf-8?B?YUpaTUVKcFNFajFkY3dpVUVZb3JsMmtmZEsyRHI0ZkxWdFdZZVFQSXZJb1JV?= =?utf-8?B?aUNUcnh1UnMvVFFUczJEbzllZmdDYTdiSzRCWFpoVVZ6bUFnZ00wWFFiZ3Ft?= =?utf-8?B?R0dYUnpaYzM1N1RGd2ZrZ2NwbzVHT09GNmlCN2ZjTXBxUGVZZnFvenNwc20r?= =?utf-8?Q?XcUtDx0o3lVQv3grWcROO4SiyG+MIQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(19092799006)(376014)(7416014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?blFscWkxaUNuSjg5SGZ2ZVBrNkZ0eGx5bUJBNVp1N1F5K3R3L2tXZnlPNGZQ?= =?utf-8?B?djJjWXcxZXEycVdSaFY0WFRpallraG8yZUJ2TXovREVxM01OZm5PRTdxc3V1?= =?utf-8?B?UzhNUjVSZitIVWFxdlZlUDdxb0FqSU1OUWpiVmlDNUsrVy9zM2tlb0Q3b1Ir?= =?utf-8?B?NDhtN1F2U3MzVGlzRm9pKytsNXo2aEZoSFMyY04wNmMyejY4NlhJWGxPOTJz?= =?utf-8?B?cFdzMlI5eHVqUnFtSUpJaUZwY2ltU01sTjROY2hRcjd5WG9lYkJzWVAxa1ZR?= =?utf-8?B?OWg4Q1YxbXVDaTJ5cERVdW5nRVhOU1dPRi9qYU5pREw1M05oeCtaR2hNT09I?= =?utf-8?B?ZkFPWHhuYVFjeXc0S3FyaXVZWnlmeEp4SVh1cjdqYXdyeHFETFhjdlVjTGRm?= =?utf-8?B?MkFzbVJib1pWR01GMk5HSGtYWWs2S0FDTFNlUlhyVFdsbzE3bjNxREVhTDAz?= =?utf-8?B?OW8zS2hJdVhXYTJUdGFXd3lxdnJvOEVCVkNLTWxzUklrTUY3S1dlMnJNYnUr?= =?utf-8?B?S2Q4c3dtcTY1cG5TZW8wci9HQVpLT1Q4OGFFVHpPbUJwNUJxQ283YVlzV2Ew?= =?utf-8?B?dTNJbmZ2RVRNZENnZGJQbmsyUlM2b08xU3BJVjVrTitQUXROYUkwdFExTXRV?= =?utf-8?B?L3diSTh0dUhoaG5Dd0NWZzhGV3ZjT0JvY0RjYWhnY3JWa1NHT1FULzdndTlz?= =?utf-8?B?UUllOWFhMGhOS0hodUFydDljNHFQNFhkY0t4TU9XbjcvWlRPOGpNVjc0RW1p?= =?utf-8?B?SVZ5c1lySC92Uml5UXVWN2ppTFFoN2dBN2k0aUpQdmxlZUZBRWhxb2xsRlk2?= =?utf-8?B?dVZmMGRVUkgzTDBvQmVzWXpmQ0JRRXZaMDZJNHk5OHE1NVBTMHNBclAyQVQ1?= =?utf-8?B?Ymd3S1BnSFFsSnpjaFZxaDBUb1AyUFRaWHJQcVNIRVBQRHpTZEFkWVZPWFhV?= =?utf-8?B?Ykl6N3lucCtZbFdMcXBFeFdadEtlQkpqQUJBYWwrbmIzSTB6QVZxVlk1VnF5?= =?utf-8?B?R0NrdDZrMklzdm9GR3NhMVVVdjRZYkRyb3BXano3NjNuNGFNRm5ERENVYWZv?= =?utf-8?B?bUc5TlB5VDc2V0R3b0NCTjI5UmxxTFdTZ3JEMHBuWDV4enNEWElnb2pEQnVx?= =?utf-8?B?dkNaVS9UOFl6Tm1sK01mOVdBak1UNXBRNFE5OXkrVlRiZjg4dzhGNnVYVHo1?= =?utf-8?B?U1lNdnFkQU5NbHBnZVAvNFhFUDBYOUFpRm0xazhsZWloeWZWbEtJTHNoRTJa?= =?utf-8?B?SVpiVWM1aHRqVXhPY2hLNFlvRnIxeWFhbmdDM0J5RVpVOWVlUDAyUHZkdXhW?= =?utf-8?B?QnZQZVpMTktsRnlZUmMyWjIrai9zWExMZVViNjJMNHUxdVpTMFV6YVJCNlZz?= =?utf-8?B?ellYSC9waE12YlUzTjArOHJTN3FLZUJObUdpZ1IvOExLZXFBWDZ0L3FmOWJr?= =?utf-8?B?dk1DUDl2NXRqVWlJZ0IycnNobDVkeExDcG9HWXdYYmJmOEhLMDNpNlZiTDhL?= =?utf-8?B?cGQwZENoVmR1NDFicmY4WHFRM1hEY3d1OGlPbHFMa3hIYW5lc1pxc015WG5w?= =?utf-8?B?UEZ0akZDUFZoTWIyU055QUhCNi8xOGtqbEJQQkNMY3hHMnJNa0M1V2NrQXRX?= =?utf-8?B?NjVITEl1SGRHUU1UdjJBTEtyUEhlbno4TTNVa29NSjZYc3dZZEFHTkhDemdD?= =?utf-8?B?WTRsbVl4eEZQMFFQTTdxTEkyQkEyZnZ3K2NIOERkVU9iSVdrSnkvZGdNMjV2?= =?utf-8?B?WU03OW55Q3d2eG9qN2ZiZlM4OU16WXVPMGNYM1lCaHZTcXBaTVltV3d0eE1t?= =?utf-8?B?TzZibXB0MS9GeTJmRmpta1Z6STMvZDFETUlrTFltTEtCbUNzYytHd2swTktu?= =?utf-8?B?TEdkWm1PVEtldFIrUEZuMUlrSjBFMUg4Z3Q4dGFSWDZEOXUvejVtOEphQzdC?= =?utf-8?B?eGI4YlNWOVNtMytyMEl3MC9icnJnUTVVaTdNbkJ0bVVaaC9mTW12UDRrSmpt?= =?utf-8?B?cXVXK0JuUTF4ckNKUm5vR1NITmpPb2d6Y0hrRkxpRUJ5Q2Y0eFFPV1pQWWNp?= =?utf-8?B?d09zRlNuUS9VVUhJZm1hRmp5cXFITnBQWFVWWFFnQlNBZGcxMWNXNFNxazhM?= =?utf-8?Q?QmVs=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fbae4b3-472f-4b96-c5fb-08dde0f00089 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:19:16.3604 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +cROeGMfix2clTjZD9c9UpTNQqImMZbC7awNvQdFFjfim7ky5pQt5SIf9gYS1WDkJ8p+/moe4W2VxWMTs449/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9228 link_setup() callback is not called if remote linked subdev use flag MEDIA_LNK_FL_ENABLED. Driver needn't track if source pad is connected since framework already do that. So remove these check and related variable. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/mipi-csi2.c | 21 +++------------------ include/media/dw-mipi-csi2.h | 1 - 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/drivers/media/platform/synopsys/mipi-csi2.c b/drivers/media/pl= atform/synopsys/mipi-csi2.c index 8ccd3d4960801cccd8d24647f726e4653955f90c..66207a601c228bfd3d79b7a2053= 458870622b039 100644 --- a/drivers/media/platform/synopsys/mipi-csi2.c +++ b/drivers/media/platform/synopsys/mipi-csi2.c @@ -710,18 +710,12 @@ static int dw_csi2_enable_streams(struct v4l2_subdev = *sd, u64 streams_mask) { struct dw_mipi_csi2_dev *csi2 =3D sd_to_dev(sd); - int i, ret =3D 0; + int ret =3D 0; =20 guard(mutex)(&csi2->lock); =20 - if (!csi2->src_sd) - return -EPIPE; =20 - for (i =3D 0; i < csi2->num_sink_pads; i++) { - if (csi2->sink_linked[i]) - break; - } - if (i >=3D csi2->num_sink_pads) + if (!csi2->src_sd) return -EPIPE; =20 if (csi2->stream_count) @@ -773,16 +767,7 @@ static int csi2_link_setup(struct media_entity *entity, =20 guard(mutex)(&csi2->lock); =20 - if (local->flags & MEDIA_PAD_FL_SOURCE) { - if (flags & MEDIA_LNK_FL_ENABLED) { - if (csi2->sink_linked[local->index - 1]) - return -EBUSY; - - csi2->sink_linked[local->index - 1] =3D true; - } else { - csi2->sink_linked[local->index - 1] =3D false; - } - } else { + if (local->flags & MEDIA_PAD_FL_SINK) { if (flags & MEDIA_LNK_FL_ENABLED) { if (csi2->src_sd) return -EBUSY; diff --git a/include/media/dw-mipi-csi2.h b/include/media/dw-mipi-csi2.h index d1afd8c6d95457c28d7e1de6935908437372572d..977a9e27cc50ad6ecfb47ebf8d4= 2f115bc51c1ae 100644 --- a/include/media/dw-mipi-csi2.h +++ b/include/media/dw-mipi-csi2.h @@ -75,7 +75,6 @@ struct dw_mipi_csi2_dev { =20 int stream_count; struct v4l2_subdev *src_sd; - bool sink_linked[DW_MAX_PAD_NUM]; const struct dw_mipi_csi2_config *config; =20 struct dw_csi2_event *event; --=20 2.34.1 From nobody Sat Oct 4 00:31:19 2025 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013005.outbound.protection.outlook.com [52.101.83.5]) (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 4C50B350D42; Thu, 21 Aug 2025 20:19:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807567; cv=fail; b=AamGeB5PI5tClBMspOnMzN2D+QyA32GwuGEBRsDUjGL6FAxLZ71xov9m99zT+40yGSWegQfPvnGG+dotuGizB2EnGL5Y+hC0uVCsQ1koaqBA55hxQ0VgKGnVy19W0ZkrrqfnnM1JtmEDhCwtzqTPIK8j+0gryO++Ts0OmyvWRX8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755807567; c=relaxed/simple; bh=fD21Z3IgVL0OGV5YERhYs5cobWtYWhxXIA6MKxY+wn8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=GPKV7jlzIuuTOdR1Rf+uKbH2Qo/OMehv6dUpc4RTjfXNOK7f+uA3xoJW+hf2DC8MXwtekqBUBSS6LRAyLuIy22/1vwW00W/hMomr0u9ZMfpSU2k9fy471vvoRxCf+CJJTKmxwyLKSWGf2UcBPeB0G1PdLJ1QahvFsnsGgJ3qn/I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=eEVemEvi; arc=fail smtp.client-ip=52.101.83.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="eEVemEvi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=olAPh9/chGVXQMTrYGJDizPWdljvHDBq0+O8E+eMv/huwv7MKSZeN96YDhe3XwXdln/RPufLQtsDvOYBo2S6ENXlcxR/y917jInLBc79wZJrtpwo9gUs55Ustse8C6cgQGgKALmvUWZuMiHEhFT03A63rMbOg22WJOEDM5CEuKsF9GEDEUFPSmdmpGtakszkkqIShv9hDuE4aQ4VSiR1Sutjy+1/UariTGWiP7/C3tHtxPM3GRRmk/P8sHz5K8cPVgmfmV6DGXWisIGc4FfxLU2EAnzz8f8CMOjDedAprxk/xurpo4x0dD7BDSY83ONfFTW5rjdJ1gbxENuJzbsuFQ== 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=KtHV5L8M8LFyWPc3pCifM4QbaguhIEhwQRHvvJE1tsw=; b=yKZzzWLOwDSDWGJ9ax13Hz7+kxoQ2AjjIuT9fBUnWqUR0jM6ofm4eZulLLg44UbWNyFkRqd7f4Ynoal2TcbeieabJTUyK0aPc6EUIxoclgoWMVjENub1xcOpGyafWYUNVnabZDI0f9fpJ9FetSUImuWuxSIkMv8pMTcsFlorWJhtC30ApVyykZifRAMApZ49zp/L8VbJOlFDnDdF3TtiI78vByjLxRPh4Wcnye7QsIzIPS74rYV5Dbp5c6dsnEj0G56q29ssmTFbyIXN7QYRTaRWj5ZlzhNoAZcNKEBopPSuFXC7yS/zCG6XfpHEQpR984RPyMAvbvE2EPI/4YOxzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KtHV5L8M8LFyWPc3pCifM4QbaguhIEhwQRHvvJE1tsw=; b=eEVemEvitp3S/o6gHluAtsQpNl0L5Ld6L00Ascbsy7dLNqf40rcX2ZICdERX9vCCdVrpZVQNgikj5SNnLD+mfWeXZGhuCSHe6EYmGgLpcW9DYslvY28DvTZ11//6R4mrqBAMxEVJtDiV4hGTdyKZ4K/iaVPn4/Gbb+aqApTPHQ2BllySWv0yXDu2ZJB/+RhkEAy6V+j1otrzZGghIJIIhQ5pxFowBimIZKlw6+s8QUORNyPHzP4qIcS36br7WVzIYskpUrkh/4fofJSAKMMhqbe4eaTxIHVo/Eq3mKlL7D7VNyzjfbH9WC8kmpWmgnkVOYhYx5o+09rKw1C6Tb9qdg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) by DU0PR04MB9228.eurprd04.prod.outlook.com (2603:10a6:10:353::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.14; Thu, 21 Aug 2025 20:19:22 +0000 Received: from DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d]) by DB9PR04MB9626.eurprd04.prod.outlook.com ([fe80::e81:b393:ebc5:bc3d%5]) with mapi id 15.20.9052.012; Thu, 21 Aug 2025 20:19:22 +0000 From: Frank Li Date: Thu, 21 Aug 2025 16:16:06 -0400 Subject: [PATCH v3 31/31] media: synopsys: csi2: Add simple synopsys platform driver Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250821-95_cam-v3-31-c9286fbb34b9@nxp.com> References: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> In-Reply-To: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> To: Rui Miguel Silva , Laurent Pinchart , Martin Kepplinger , Purism Kernel Team , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Eugen Hristev , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Peng Fan , Alice Yuan , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Steve Longerbeam , Greg Kroah-Hartman Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, linux-staging@lists.linux.dev, Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755807362; l=4025; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=fD21Z3IgVL0OGV5YERhYs5cobWtYWhxXIA6MKxY+wn8=; b=qXsK0j0q9fU3CKGDmWBzMuffd8e3wzrmpa/4E0/e1L10VXDLuJI1rim8ligKvwD7I3VgdWl7/ 657za9GragqAXITimr4RmXjYv85E7FtHek9vX1amq6tUQc38pe6rSs7 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR03CA0338.namprd03.prod.outlook.com (2603:10b6:a03:39c::13) To DB9PR04MB9626.eurprd04.prod.outlook.com (2603:10a6:10:309::18) 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: DB9PR04MB9626:EE_|DU0PR04MB9228:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ebca454-6df0-4b25-4796-08dde0f00431 X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|19092799006|376014|7416014|366016|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VzVMTE8wQ3RERC9UTC8wbnpPbzFWeWYrZFlBZDBmM1B2MWJjQnVIQnl3MHB4?= =?utf-8?B?SGdSUVdKZU5zYW1Fck9PbkZXWXBPTkJGdlQ5TVd6WG4zN3pPa0xqNWRaRmM4?= =?utf-8?B?K0ljRE45dGNKWW1aQlVaNW84Q1hoVExTMmhVZS90Q21YT2J5YzFyTEZqQVY1?= =?utf-8?B?SlB0TXFoTkR5dzI3dHdkVG04S3hnbGJlcldPditEbllNaCtlR0FQN3k5OFBU?= =?utf-8?B?NWVpL25ieit4bjY1cG9rYjNEL0paUlkzcHNxbnk2TFpXYWJMVlNXN3ZwbHdO?= =?utf-8?B?L1BZbTJRSzY0eUlNc0E5dmllOXNCMWxnZXNORU5Qa0Y4R1VSVFNWdjFBbmoy?= =?utf-8?B?QnlBTUNiSk5EdXlUODlTMDU0ck1PMmFLcWF6VDVrVGZKUlJNM1JMa0x0NlNL?= =?utf-8?B?OVFnL3ExN0c1eW5ZbG8wNzJHVWxtL01la1hISUdJaVJ3SjQ1Zm9UaFJaeGpu?= =?utf-8?B?UHFvNU9ROUtjeUdCLzdpWEZVMWE2QkxsQlVvM0loNmZ2VEdFRERZTERTSjly?= =?utf-8?B?bnZEQlpOZTN5YW15L0VmZXRTbW9HMGxBdHBWQkdSMXJvdWpOMTltNkJxWW1w?= =?utf-8?B?NCt3UnBDRlFmNzdjVUJ3RUVCeFNuZlZ6N0VoTnlrbDk1VXpyWVJQUTQweXNN?= =?utf-8?B?NGtiT0h4Y2NZM0g4SE5HZ2I5R21TUEhwb1RtWDZPdGRGL3hTMjhkYVd5bUl0?= =?utf-8?B?Ynpxbyt6NVdsR25XYThoTkx6Z0NtVUhuL1NjdjN3YjZESXdhcS8zY0ZyQldL?= =?utf-8?B?eTV1VUhJdzBJTDdwSGg2Y2s1SG1zR1Bua01ZeDJQVFViNlVSRTkxcmZRbFI0?= =?utf-8?B?UElZSGlYVjVtRHpwRnRqelJXNWJLNGFlN25PNG9hR2ZoL0Y0MjA5MHhHTXY1?= =?utf-8?B?VDdZaUpKR3hNU2JVc29ab21GZXBWbWhRR0VUZFM4QzlWVkdaR25PSG5tQ2Nq?= =?utf-8?B?eWV5WnprOThwY2g0T0RqUEhvT1hWUFRXZG9BVU01bEhzV29tQmNBdXZZTU42?= =?utf-8?B?emZoNVJHZWI2UW1vVm05a29tWVFZRTJYbE9kbHVGdUIwQVhwNGpFUlY3TTZy?= =?utf-8?B?SzFXazZkakxTSzAvUjFVbWZFcWhlQnlIdjdvVlZOVzduT1dzQjZWVEE1VmMw?= =?utf-8?B?RnQ1ZU1uTXVZWDFOQ0dDYmRxNDVGM3oyYTJLRW5jN0tGbUw4QWtkNUR6VVVP?= =?utf-8?B?Qjh2UUdkUFhZeDBBSmdxb3dTNnpwUmZlM3FBMVlYOGkwM0dvRDgxSUpld245?= =?utf-8?B?V2tuQUNSWjJvTDV1cDBoQkZPRlYyQUZkdzZuZDdUVU5jT1ZSRkNFL0xaUGIz?= =?utf-8?B?SHhuaTBNaVhreHF0T2JQVEU1YVBhSERCNmIyeXM1R1ZiQW9wYzdCL1F4VTFZ?= =?utf-8?B?ZkhNaXpqQkdpU2ExS3J1a2lORTdSQ1ZlK1FJSkwrbjJvcE40Z1ZRVXBtSW9R?= =?utf-8?B?bURPaWpBcUVkN2xoT3oyb0hvbm5CdVJrS3lHbGM2Nk8wVkFxY0hLOXliL3FJ?= =?utf-8?B?WnVDMzBrVlJRSHZuZGxtTWdsOG12U28vSW9iakVXSTgzSlpGeTZJNFlvSi81?= =?utf-8?B?OVI5bEZuUUN3cFBQUlcvTHhCMU91UUxLNFhuK0FuM2lVWWlXWTQ2SkdwR2Mw?= =?utf-8?B?dFB4NUVmMTdiMnRnTHFBcnB5a1ppNHNVcGdCRlZMZjN0bmsyQi9yK0ZjTVg4?= =?utf-8?B?eDFYbXR2QjEwdFdzR3grQ2ZZMk9LWmkyYldaT21LZVppbWlZa2RDYWlOUEFs?= =?utf-8?B?YTkyWCt6UnBhNFUzRWhOeThIMHZJYTdxY01oUFdMZG9iN25PTmRuOHM5SnJa?= =?utf-8?B?dFpyTm8xaFhZbjhLR05QdHNSejBuV1Y4T285aGtwOTM3SlRUSnVOc1E2Q2xp?= =?utf-8?B?U3ZMZWlpNVFGTWpNMXdtZ1BJSTlHMWozWExPSTN4S2xBdGw4UE9PdjRkRUFs?= =?utf-8?B?Yk5hRVJ4czZiQThRMEJ5ZlBoK2xaYzFIbFhCOHlhMVdKT21uOW9SZzcvbzM4?= =?utf-8?Q?MyQ9dR1b480ApnUU09XvEaolUVSYDg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR04MB9626.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(19092799006)(376014)(7416014)(366016)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NkFLeVFPMzV2bEJsNEp1Vm9CNkV5clRqWHFldEVVdndGRVVUVGh0aStLY1JB?= =?utf-8?B?UnlBU1RXMlpvSldhendKZ3ErRll4M1dPZGtyelRydFhVV0hWRFpGRVFmV3gw?= =?utf-8?B?L3VTa0Q4SjlCYUhnaDNEY1g0QVFaWGkrV1JlMmttN0gvYTRrZXI0dDNPK1lL?= =?utf-8?B?bHVPZWRCZkhEQ2JxTlZWemVMYzd5b2hYcEQ2M0NEajBLaURTR2ZLZVRsczhi?= =?utf-8?B?eHNYTUxqTVpCbkVtZWE4elRIakNpV0x2K3l5L0pGb2c3M0dvTEhXbUsvb053?= =?utf-8?B?azVRU0hSSjRNN0RBaFF1Kzk1dUV0MWNsMjJPdXArdFlLcEcwaGZxVTZwZXox?= =?utf-8?B?R0IxNGxua25ydllONVBMUTBNeEI3VkR4ZFhLZkJoWjhaSzJsKzkvSWd6Q1Rj?= =?utf-8?B?Z2xuN204T0FLS0JhTThGczMwZUxBQVErOWdndDY5a2F0SHYzeFdYR09vLzFL?= =?utf-8?B?YXZMKzUrbmxLL1YzZkNSZHI1WmdFdWNKMmQxdWRqNEM0TW1wdlZvdFJGaUlH?= =?utf-8?B?T2gvRFNpUjlWWWdqSHNDSXlzdTlsNSt6dTJQS3lNSkp4dUR4UjNRREVCVTdi?= =?utf-8?B?UVZoWGo3b0ZMTE03REM4RVYwSndxNEtkNzhCTGNwT1FvSWJZdW4xYVZOcUxK?= =?utf-8?B?VmJjaVJZMUdaRVU3Nzl4T2J2UjNOWkh6dVJZalRwQmx4c2s1Y3l1ZkJhYWZl?= =?utf-8?B?S0JvSnlkbUxNNk9jUmFna1BrYVRpZ0w3dUdjRzFjaFQ4WTRjRUcvTGtzZ2pO?= =?utf-8?B?ZnhrWCtXUXZCS011cVVUWGRKTHhHUjRpcEtQZVQ2RnVQV2RFSUtidXNZeG93?= =?utf-8?B?TWxLaWxLZlpvRk1nQkZSUDhhV29jY0dydDhNMDJuaE1nWGpEUGU2bnZRRXhU?= =?utf-8?B?RmJFNnRKY1pPUFg3VTVUdE5oN2NORW9Kb0wxOVhxeXY0SVNOUDJHRkN5UExF?= =?utf-8?B?eG1OMEUxUy94N1RkcmxSUW1obmpmb2dFSU9LOVladFRYQVZTNUFsVjdRdHo0?= =?utf-8?B?WFRRaURjYTQ1SkNXUXVsRWtDTWpWcXFPdDRLY1pxVUk5TmdhKzBNUm00VDli?= =?utf-8?B?RW1jdzFNVldONkhPTDVGcjRVWGlWMDEyVzZLTHNsRkMrbVZHdmhiYlkvNCt4?= =?utf-8?B?NzNPcEpnVkpkNnFodlc4Wnl0U2o2RWdFY0tURzVCS08vSDJmMkl0OUorTVZq?= =?utf-8?B?V21MbWR3QXJJdG9Oa0xSc1dZWkUwK0RhNzlCaDVkWWdmYURxMjFWN29hMmh0?= =?utf-8?B?QWJISjE0OSs4L2NaUW5hcXhnNEZIYzUxaWZWbjJ6SUNCNERxQWZucTBXWjNQ?= =?utf-8?B?MVpmVWdpRkRzbnlweEtYdCt4N2JNUGM5SmxSTUIyT1haa3pDSXVVeVVRWGdG?= =?utf-8?B?RklwdkN0ZlNVZS9QOWVKbXBIUXhaM0ZyRUx3MXppUW8xeFB3N1BWNVJ2SFpI?= =?utf-8?B?QXViSm15b1FmeFg2cWVQVU9NNlgvWTA1SXc4SVlDR2tubzk2LzZTL3ZQYnhq?= =?utf-8?B?dlNGN2tKbW1CTm0xSitibDJ4M1VNOEhXYnBwTjJXazNMb2J3R1NsN2x4Ty91?= =?utf-8?B?dkVpSTlBYVRid3prazhRdVlkTUdPU0xGVVFvdncwTDlTL1c3WUx4NEo3TjZU?= =?utf-8?B?TDV3YnRLb1dlMGlvSVg5YUZNM2NYMUZyUUs5WnRsdWc3aEtzb2xMMHlJblRr?= =?utf-8?B?MFAvUTFYMDVxQ1YwdFBIMmhaNmNZZlJTaFZKcGd3bERjQVdpZVAvS1ZBaDdX?= =?utf-8?B?Nlcrd2RaZXd0QWZuejNBei9Lcnl2MUFZYUgrcWIyMlR1bVJhMEhtVzV3dkdj?= =?utf-8?B?emJ4MmtPby9GTHhVSjdPRWsxZkd0NjV1SGdQcWZmVVAzdmN6Y3pzVExyUktF?= =?utf-8?B?TmhyY0QvN3dOZXZlc1prM1RLcmcwRTNod2s2dkV5UHJsSjhaaWNkWWkxa1d5?= =?utf-8?B?T2xzajRJS2tIVUM0Yzd5U3NZUk92V1R5bnVMOXAyVHJSWlpLdzBrNGptWWNY?= =?utf-8?B?TGZOTEw1Y05tcjl5TTcrSldZYjN5dThXQlVOYUdGTEVCWllMblFqd29DRXlv?= =?utf-8?B?L2ZzSGY3eFNpNXNLUktON0hRWi9hL1FkaWx0ajB1RC9jRGdxZ09NNXN2UW45?= =?utf-8?Q?X5LY=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ebca454-6df0-4b25-4796-08dde0f00431 X-MS-Exchange-CrossTenant-AuthSource: DB9PR04MB9626.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2025 20:19:22.4788 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: R0d3twhPxpALc207VMFmaIdTwRgTCB0PfiaUUeSOC+HllIOrt3UFsWxlWnHMleoJWfb3ShR15PTjyrxjVBc4gw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9228 Add simple synosys platform driver, which use standard PHY interface and only 1 sink and 1 source pad. No format convert between source and sink pad. Signed-off-by: Frank Li --- drivers/media/platform/synopsys/Kconfig | 8 +++ drivers/media/platform/synopsys/Makefile | 1 + drivers/media/platform/synopsys/mipi-csi2-simple.c | 75 ++++++++++++++++++= ++++ 3 files changed, 84 insertions(+) diff --git a/drivers/media/platform/synopsys/Kconfig b/drivers/media/platfo= rm/synopsys/Kconfig index e54dad835349d420dead6d5313c0623567c28c0b..642b7dcd8dfb1bafa3b6dbdba1a= 1d99559d3c01a 100644 --- a/drivers/media/platform/synopsys/Kconfig +++ b/drivers/media/platform/synopsys/Kconfig @@ -12,4 +12,12 @@ config VIDEO_SYNOPSYS_MIPI_CSI2 To compile this driver as a module, choose M here. The module will be called synopsys_hdmirx =20 +config VIDEO_SYNOPSYS_MIPI_CSI2_SIMPLE + tristate "Simple Synopsys DesignWare HDMI Receiver platform driver" + depends on VIDEO_SYNOPSYS_MIPI_CSI2 + help + Simple platform Synopsys MIPI CSI2 platform driver, which not format + convert between sink and source pad. Only 1 source pad and 1 sink + pad, use standard PHY interface to initialize DPHY. + source "drivers/media/platform/synopsys/hdmirx/Kconfig" diff --git a/drivers/media/platform/synopsys/Makefile b/drivers/media/platf= orm/synopsys/Makefile index 045ed3177738e6d28aa223804b79e6774e141dc8..cac610c8e08abeebdbf14157d8e= dcdc5a635dd00 100644 --- a/drivers/media/platform/synopsys/Makefile +++ b/drivers/media/platform/synopsys/Makefile @@ -2,3 +2,4 @@ obj-y +=3D hdmirx/ =20 obj-$(CONFIG_VIDEO_SYNOPSYS_MIPI_CSI2) +=3D mipi-csi2.o +obj-$(CONFIG_VIDEO_SYNOPSYS_MIPI_CSI2_SIMPLE) +=3D mipi-csi2-simple.o diff --git a/drivers/media/platform/synopsys/mipi-csi2-simple.c b/drivers/m= edia/platform/synopsys/mipi-csi2-simple.c new file mode 100644 index 0000000000000000000000000000000000000000..bf34a515b41290339db06d74d71= 35c575a8bf031 --- /dev/null +++ b/drivers/media/platform/synopsys/mipi-csi2-simple.c @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Synosis MIPI CSI-2 Simple platform driver + * + * Copyright (c) 2025 NXP. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +struct simple_csi2 { + struct dw_mipi_csi2_dev dw; +}; + +static const struct dw_mipi_csi2_config simple_config =3D { + .module =3D THIS_MODULE, + .name =3D "dw-mipi-csi2", + .num_pads =3D 2, + .sink_pad_mask =3D BIT(0), + .has_irq =3D true, + .has_phy =3D true, + .need_dphy_reset =3D true, +}; + +static DEFINE_RUNTIME_DEV_PM_OPS(csi2_pm_ops, dw_mipi_csi2_runtime_suspend, + dw_mipi_csi2_runtime_resume, NULL); + +static int csi2_probe(struct platform_device *pdev) +{ + struct simple_csi2 *csi2; + + csi2 =3D devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); + if (!csi2) + return -ENOMEM; + + return dw_mipi_csi2_init(pdev, &csi2->dw, &simple_config); +} + +static void csi2_remove(struct platform_device *pdev) +{ + struct v4l2_subdev *sd =3D platform_get_drvdata(pdev); + struct dw_mipi_csi2_dev *csi2 =3D sd_to_dw_mipi_csi2_dev(sd); + + dw_mipi_csi2_deinit(csi2); +} + +static const struct of_device_id csi2_dt_ids[] =3D { + { .compatible =3D "snps,dw-mipi-csi2-v150" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, csi2_dt_ids); + +static struct platform_driver csi2_driver =3D { + .driver =3D { + .name =3D "dw-mipi-csi2", + .of_match_table =3D csi2_dt_ids, + .pm =3D pm_ptr(&csi2_pm_ops), + }, + .probe =3D csi2_probe, + .remove =3D csi2_remove, +}; + +module_platform_driver(csi2_driver); + +MODULE_DESCRIPTION("Simple Synosis MIPI CSI-2 Receiver platform driver"); +MODULE_AUTHOR("Frank Li "); +MODULE_LICENSE("GPL"); --=20 2.34.1