From patchwork Thu Apr 10 08:12:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046062 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011056.outbound.protection.outlook.com [52.101.125.56]) (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 CD4611E5B9D; Thu, 10 Apr 2025 08:13:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272825; cv=fail; b=I735Lt/Uguc/IOghyLvRpmHPz0RUbP2VnR38Pr4kJ5pHvLCKafKzMN8YTF9mMkSMLuqlUIUUNIS5DPMJK2MidzMocc33l1f4maL7pp/IFAtQAQdV03/R26Kj1Aauc6oCRiyE5nYEryhCVRGRb8BlB9GJsCrcE6KvpSGxDkeKHLg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272825; c=relaxed/simple; bh=GwC/pnvXfePMeOSqvF7zTcSuX9PSb4MHw0m9fpN4+AQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dZu+CCFiMzoXpmpspS4Ab7eLqkFsPAxu4qUO9CytuXz4+VhOWkwFyqZO/W4Bp18AUEsfpDWuyajkV684vO05CqAfCkXWhzpCrs8XpUq/7t7IPg1qM/zMAlFngw+a9eWoRmHos659LNlL3LBqA+39I4hBC3GaElbtl208NXBThq8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=n47tIC77; arc=fail smtp.client-ip=52.101.125.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="n47tIC77" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YKQ3YIbsrkH+V+YfY32f2b1oYwITUgaeN5bnCQ8NRJdlv9gVvQYnEzoak+LPOw2P0cXMrjbmFMzQLbwrXDp0AkyIJANuq3aFT6EjHo6EyN1J6YvWH03de2bEXW3HvyJyV+tcutQT9faD3BbfeAjdd/RirkaBPmki9t+BU6Acy/kYeggp1qBoCQBXCuFofNNMrKqFvON8Tlljp0CjYGOKq1qrHocI3ySlOUuRJngwl8cOCGm05yXkutSdCcvPPU5wYvxii26YIx2ycbm/aQEbBiwFMInsw8EamE9LBd75c+K5Y3SHydKIsxCz+XtGKCwdSUum0vF20Ozw67L8yi+bog== 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=a+sJ/VKw9i+wYzK6ThZ2MwoL2lHU0JgBemf00RHc+9E=; b=mA+cSakRlzWA37IVSVLwLtwcZ+WCZyzEt7oYfsr0GLOlInToZ3QTBiOmmXjX/LW0KR926DKfzB18eS0k/ByR57+B/OXsgMsuynCGtR02Iln5lZfizc3EgG7AkT7aJKHfviiPbxPPlXOnOawWwtD1Hx27KVIYPP+oRWvl3bvKQCiMtqJTVylXcvUdSYGURkxa9zcn5QSlvjTTwVYzur6LhT3yI1IVexNivCMycCaS7XY5f3y18kecavNS6Ewj1pcKgRByfJMvUJFp+Q3eCMfdan4gQa7aT6AO++zZMHLB3R6eTsT/EFtGPlhvGjzMpzwgvmB3feAl6WsKqDa+HkWoXg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a+sJ/VKw9i+wYzK6ThZ2MwoL2lHU0JgBemf00RHc+9E=; b=n47tIC77k/jmBiBnBuUbKr+yhcA7w+4SMpOKQhtBq2sbuDAhDT7O71FbOxv2Aokwk9dB5+GcQ7XURFmh0xvgVLHWgrrRXlB2PFoX4MyaIbGxcv68SxlXDCH6M2pPvHHmz+bO8XmBWolEtPbEZyfd9QhOjDs7m0lXN3DJMLyLEHk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYCPR01MB10119.jpnprd01.prod.outlook.com (2603:1096:400:1ef::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Thu, 10 Apr 2025 08:13:37 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:13:37 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Rob Herring , Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 01/17] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/V2H(P) SoC Date: Thu, 10 Apr 2025 10:12:05 +0200 Message-ID: <20250410081300.3133959-2-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYCPR01MB10119:EE_ X-MS-Office365-Filtering-Correlation-Id: deff0415-f2a8-4716-4184-08dd7807982b X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: LvfUxMFXOu+kNuci9EQta9/velWbgY9HFVCe3tqNBFfVYwns5CAsccJoVPBYpAxZgmH57WfNPIWy+vEdI3QnK/FxfGn6RxYqVMTbt3QjhL7gxePvKOsp9RwhP1rTQKq54A+w/OxljvSMZKCJOFjnwTs7D6vozcbSBvSjAFJ9gkJmlQMZ2C2r4ZaDFTQAtWiMivAAP71XMQpr8kUIZAi5LTxt8zaRAPYGmAg+VlnS0CMU3NvqokfUonA6hmZRPYiXrVDlypUBbKDbPpL4tMCIr2NTERHpqYXVleHm+pFMqCMNidbLeQPh6A1EdNzUUalAN0ELdaBxakB9SCCoU4qzwlKYZD3EXZSGNTFRXRJlA3b4rzyN/+wRA7PkvJszzmw52P+e5qMy6rLNuCch8nW8vSv4HRCk2m+gDyb2PLu/Kc9gnxMrqEM4BevZ2K2PK3ZeN7IlIXwRMnAnK0AlIU6wNbWQAYhh2qYNjHraZTNBISGH+KqlzUPT3lH7TN3B2LK4gAprSl6wNHCNdQPi+33rZrhWFQgF3joP5K1ViefvjSSqASA4VotHttB5J+u7SqMp4Ui0Cae5ggNyBXGXsLA3ysHvvNAmVe++sZwPlCT2Bcv+B7h0MqStJRQ/TUNqq20qjSu7IPakERSPFKgtBOSntSBGhl2WojOrF1nB18RY0IJdu7MbM46U7FWGvaxczxguIRzr4rY0eXlj4koFiGsqMs9XsNUmk47N5AnCWTBEIGgy4dOFJgSGeTgrAG3+J6Z7WhJJhkUbtR8/z89s3fQnSU6UTusfMG3PzkqWU/wnPGeT5rQcj4CnCu1txc1fSJpDYCDIXuDAihi9qrcrxK1o6b/boWG4fvXd3W1ygqJg8JmxhjlT5zdtSbz7OcKFUAicKVfAKWr0FcllSbcaS4y1e375TiYH8Zyk5Xgec2tJSQrctbDEzLMr7qnL8f4d7QXme/4uaEMnk/mJ7eXY3rx4xv3GgdbvF84KwGW8giTmDL+tyn4WYhBz/hyUWuCPI5dbLI2Z2nxtMafd7ytM3y/fLGYAvSSURJRIvwuiebY7fDjfusE54HrUvI86GnGBApXF+mPZXMcsR/l9+smc0jxZugqicqZksffdC761db4Rjn+bcvpbHJI2Rs7jLHMMCEj6pLl5RjX0xRyzTBDWE3bHhTda1gFydQDcPTy/bUlFQfH0mO83HnZveiTO56XUG4dUks+WC1g+DRi8cmbJ2GM7Be9SKcDD7qWNmBk8alYtlBEr8JgfzTYLIC9ozCY946EtTyeWlCy3Q0ElGw3EqfBAk5F2626AsZrETkhMieZ3626DBhbEUH4rToRhynUy6vvzf7Iir/7n850Sc4Dy/qFqV56OZ8BgOIB++lRDlaTHtiB9XPQpFm6yvkhOPCdzFitso6LI21z6QBobFuyjMINzjOpGZU9j2W1c8Eu3EGQZYO0OIYTwBH1T501lW9+iNZmgSiSAmHUnEzoIdbaBppTWhQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MUEJnq54ziyf/3L3o7uKHsEe8abCa7AtzsIY32/8G3ZXkNqThuKo0x+yjUsTEhoB/BT2lHohTFBPp2YyfFyb1LJlBRVmcoI3M0SITpUAPM86IzCwtS6WpWIqIhCndcaQkahJabuuRB/ISP93zW4Sk9E4nlSo4hsWme04e9oMdDZBu7JSuTpgzSt5sAlXj+UfnSPNvsmTj04eq2mI8bNLgRqVmzq+CcqQLobt2GCM3MISK/bH3nUWK1kD8gXD84gz0qCOCFiPylvOd//2/oqyxBxuLo+YPZxy+FgVNCTvUdltYkdpivw0HN5eLzUDewIe2GqChIRxhp7j27Nmqdb7pYIn8H7SdmYLXD3mEhlG1q9S/x2pT7L0yU3s8cQXZp+U6ETmMaoPY809BTekIZ3asIZOcmGA5eS1E9WeC9soPnZT39b4NCXbJJKpyi3kEnCnFt+WWv+YgZmuaQgLlf96TJwcGgAkrO7YYlpwxaK9BXruHzmEF2meiKH4BeN3+JGmyvlve9eMHh6l9Y/JhRkMXNME6Fo7p0GvfpdgH2bYVHlhozDy07pUHXmuENlgciRTMYC/rPOpoqtUWsCtvXrZkLMt6yMts3x216wn4xRFVc3i5Uj+2U9nQ2FyHCDLTc/7kmEgZB8CDivOMMqG1mcEl1KDTFpRrWuB/zeHD5c5w2wBd4aWwPn8TOQ1JzDBcDINTft6mmSZB9O4PB47m3XXTZgX0YF95+RYnSB1dMfGemEDpwEXrhoWwi4dPbQ1/WAVtsDRzI6jZGndmE5785E4GW5484pZaynVYG0U04JrekWLMsHegwxOdvvCRMjagEG6FHZrK7ppun75kZfuvNmGmxPBUrHj5POVIpb0QLNRXqrP6KqJidS6zRS3LQpB7rd4M8aNDRQGNSDeeezaajKIOp3AJt76ESUwgvTsApjduvSnsCUGeDBSyAmuYs/rEWfIL8fNT99gabCb4OfOHL93asjAaT5y4MAT1GXmAIsrorakAxomToP8nkvRmJitbmR5agThaPBdagJ3annLL03Md1DA1cl2bdiUsglUuwMR1J35IoKPiB0AtWYNYSnWaNEDJYHAookLKYX5EYrKVrEmHEFQtlKCEhbLCIt1EVUPPMAxr7qy9nBbZ4YoZL3FCfq0q8AYfoCFxV3qWKrS2Fx31hKQL6VNvbPySe4obVDeJJIc0Rv23sMF9AqGPmQea8mFCcJnlTSIOOui6hABsODraHsE7j2rca+FukIO2FEmTM3u0Tat6PyqLykEMx8gD2xqLH4cpBhf+Cu2VCq5H7tmdMo8KkvXepYfVLr1I5cRJBlWhtfiH06HHDi/8DP3dJR7ovJO4x7n4xjQ2Bi8jHeOsSSznBSdtAc1yHm1qxC3XcAidP2V7RxhaXnCnfG1prdplsASbFK4BsQhwQkwX43Kr543Jfz5S0zZT1Nx3BvTwaMF6tdkC8YKOiHPq7Nb1xOudJ/heXwER5wPGbYr+SJXExpfc+/4K/23KFQewCsc6HFgO45RhzX1In5VvhhAvwhz6kXOl9g8ez2g762RYtpFGFWSxVhuMycMm+JkaEKAyrTQHrPKMwUpOwuZpL3ri9vMizkn7kN/TnETEEINCiGD6Qo6LUMdN6zJcgJBwYWO6Gk= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: deff0415-f2a8-4716-4184-08dd7807982b X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:13:37.3147 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nxfngj2xHhQviWI+knYUTlGDgeN6fITS15vMPtqlKo8SPt2erljWkp1VZtg/09wLpa1p5OkLT2uM7OTp5NIdEKd33ZndmRTMOtbSShZmoywA7dnRVmlLCwrDQJxeXByX X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10119 From: Lad Prabhakar The MIPI CSI-2 block on the Renesas RZ/V2H(P) SoC is similar to the one found on the Renesas RZ/G2L SoC, with the following differences: - A different D-PHY - Additional registers for the MIPI CSI-2 link - Only two clocks Add a new compatible string, `renesas,r9a09g057-csi2`, for the RZ/V2H(P) SoC. Reviewed-by: Rob Herring (Arm) Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Dropped empty line as suggested by LPinchart - Fixed minItems into else conditional block as suggested by RHerring Changes since v2: - Collected tags - Fixed CRU_CMN_RSTB description as suggested by LPinchart Changes since v3: - Fixed CRU_CMN_RSTB description as suggested by GUytterhoeven .../bindings/media/renesas,rzg2l-csi2.yaml | 59 ++++++++++++++----- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml index 7faa12fecd5bb..1f9ee37584b34 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml @@ -17,12 +17,14 @@ description: properties: compatible: - items: - - enum: - - renesas,r9a07g043-csi2 # RZ/G2UL - - renesas,r9a07g044-csi2 # RZ/G2{L,LC} - - renesas,r9a07g054-csi2 # RZ/V2L - - const: renesas,rzg2l-csi2 + oneOf: + - items: + - enum: + - renesas,r9a07g043-csi2 # RZ/G2UL + - renesas,r9a07g044-csi2 # RZ/G2{L,LC} + - renesas,r9a07g054-csi2 # RZ/V2L + - const: renesas,rzg2l-csi2 + - const: renesas,r9a09g057-csi2 # RZ/V2H(P) reg: maxItems: 1 @@ -31,16 +33,24 @@ properties: maxItems: 1 clocks: - items: - - description: Internal clock for connecting CRU and MIPI - - description: CRU Main clock - - description: CRU Register access clock + oneOf: + - items: + - description: Internal clock for connecting CRU and MIPI + - description: CRU Main clock + - description: CRU Register access clock + - items: + - description: CRU Main clock + - description: CRU Register access clock clock-names: - items: - - const: system - - const: video - - const: apb + oneOf: + - items: + - const: system + - const: video + - const: apb + - items: + - const: video + - const: apb power-domains: maxItems: 1 @@ -48,7 +58,7 @@ properties: resets: items: - description: CRU_PRESETN reset terminal - - description: CRU_CMN_RSTB reset terminal + - description: D-PHY reset (CRU_CMN_RSTB or CRU_n_S_RESETN) reset-names: items: @@ -101,6 +111,25 @@ required: - reset-names - ports +allOf: + - if: + properties: + compatible: + contains: + const: renesas,r9a09g057-csi2 + then: + properties: + clocks: + maxItems: 2 + clock-names: + maxItems: 2 + else: + properties: + clocks: + minItems: 3 + clock-names: + minItems: 3 + additionalProperties: false examples: From patchwork Thu Apr 10 08:12:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046063 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010024.outbound.protection.outlook.com [52.101.228.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 6955E13C695; Thu, 10 Apr 2025 08:13:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272834; cv=fail; b=i5NLGpePWyjZKd1fOBNjBizEDJ6YbXZ2r03cnZKhi5wp7ksefF77FQXZCbPbvo8K/eEO0SOotNDY2iZXC7HfKUZ8ZoJROsL2yV4s6r1igGBa69tv1n6fbp2424rOlaFa7YooCv1CkSeqPrFNFNe3oGp9jA9AHQYdJklwRInJ0nA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272834; c=relaxed/simple; bh=WB0gky+PvyKTq9GLo3NZzCeLeTxen0u7m3GVboV+bxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Iy5AElii/gUenCiZ2yasLfiBO+XCcd8yJ5ykno2w3X8nHy40Fr/mKlSpXG51i17c8WS5nPhzxdSZI/u4zhCXRskPtR3Q6vU5sm7F4eRPEvm5xvT5/RTrTOAQJZ15fKHCdAQbkcON4xpHUs7bAdRIAWqtTXRi/JWpZyKEXSKEXqk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=v8Eo56T0; arc=fail smtp.client-ip=52.101.228.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="v8Eo56T0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IBb0jKKc/wnu6Jq8McRi98HmmS819n1CrRjV1Kph9YKqVZxWiwFW64vcamGnVyyg7I5fkeoaT+Vv0RqoCRXwwnw1y6AylHP9cN2dbJsl4sx6qbRKp7CmuhBHcuQ4cWb4ITSdGGh/BxeUbSSntsQ0AJ9/K2iY0tFW/KpQPhDc97O50Vs1TmMrYR3qPLUuGzP2/e6jUayzF/EWwen7c7rMj/MK1Z4G/IYsR+6JeMg0UTj5BlQCkS47R34VkvlIRjPOaN0/1G35c6Xpa5jH38wCr6ltvzE77coWNyfn7e4T2Ovq98yZwjsv8AwxBkVw2ZFo0/+9IZNao306oVUkJ861Zg== 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=9aYkYpLNwH4DvxRbvPmdoz+LCX596HB0t9+usGAwlmI=; b=XREf6oX3dto61eZHbLYX41tOCIEuLFGYRy6ePf0hyreeNgwctXPrlCLP1ZxSbBwT9l2StOUI5GpUa7KUdogSq5EHFe63k7QNPTU00h6mbD/+dlRc6TYAQOKEBNf/5gyAaOnHJIGTc4zinhgdmnOZh86Syy7LnX/ueRdil4wWJTfTClSaHIWVuPEN27PZhy8eM1EkPKPJYALZgcbY1uRLXh7SRbrV04SfyheKsAAnDH2KJ+WJ7I+Gq/ZGtKvX7N38m+I5JlNoqZX5HPwKbshHPafkciRNK/Zo+Y5UEBui84tage8lebhzheGrJgpydtqkLFIGB8he0XsTXjOtndQz8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9aYkYpLNwH4DvxRbvPmdoz+LCX596HB0t9+usGAwlmI=; b=v8Eo56T07swLQYq+puYr21a0s8Y8vgc1z/7CqIGnBUkkDEipfcoX9W85lrdA/CLxxXfLRAtl0xrcZE4gStQPL6f8nG4m34riGcGRkswGsRt2fg3DKdVd630W+S6lBE6JSnjIWfyrplPW5wczW0PiD+QRMwUiU0bRC/Yca5TRFr8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYCPR01MB10119.jpnprd01.prod.outlook.com (2603:1096:400:1ef::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Thu, 10 Apr 2025 08:13:43 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:13:43 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Rob Herring , Laurent Pinchart , Mauro Carvalho Chehab , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 02/17] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G3E CSI-2 block Date: Thu, 10 Apr 2025 10:12:06 +0200 Message-ID: <20250410081300.3133959-3-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYCPR01MB10119:EE_ X-MS-Office365-Filtering-Correlation-Id: b59f2aff-9d3f-4f6e-5787-08dd78079be3 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: JmeDwOWTyNq1fg0pXPetlIG8p/S9sC+CSlq92vyJwwJRL8dSzPQlYzvcTGQmKuYJOg+2QYypPThSNEjRfR79JxnbkU4FYtwT0/NMCXw+OdpoO5njUCfatFM0R0Ou+I8XN3guMaIXUlUKDDXteTmsVDmrqGzm1vwlDmMEKO5Sd/k6+XN1c9C9KddE5OnOEIUVdK0aJ+fuvyciQXcckMOMSM2dzvi443SdJIRH3Se7dIbx3b8suRL4zFjfqErCnYuQQAog1ldkV+C+5/FYhX6qZQbxum16Hyhp66H+hQ/2+GfPyXiReG5sES2sUdygeMao3tiEbwVokM/jmYvNfKnqtL1RX0UorGfoD/h/fKaJO8OOtHqsbY+0Ix0EdxOqHVK6d1cZ74l/5Fd7HlqGfw0M7QHYF4//rB9vSzCiSpNYvalU2E5k3ATklyzwqzeco3GY+2zjqpZ/6sownWZKIry/KApwUSaBDTyHaQA05V4lB7fNae6onw3BIXfZRrmLH+2aQJceBH07rOUJAri6/1yr1RZS1QtkAbeZroOfchIrg0iOLpjnCcbr+H4rDqhnoVzf0iWMwW6ainaRakueTAYWCNo2L1yX9aE70HeOXTnqBztSnCioLKcm8OZTOItnsLYjfsOK0PWz2HIhpvlTnETACtwtJTuIHGeS+9kH5R2UhBTp0vXJwCLl6v6qStzdgq/CdNBO3BRNlqDAtXUdpbGsGD620AOvTgutBV8MNoYuw38PYM3togBgj4MwUaeQvY6w6VQCwsb1FNyEq45jWoamzTo5yTzBTbpOgEvIwbP9kur8UcRDW+NgkrMKPtrCktGCRH6rjqfRSMGyu2lN9RZsofBDwip8PS1qjgiotJw5sTPiPq8ub+Mg2FfdNA+7A7Dq8BRGrkec+HMYw2BVPLIxDPoRvglj2tVnbK7t+zBm9j4N4v9YIe7XmjH0/F0oyr8HWOWgqudMCNhZnwcpf3l7BfXuI1m9GR/yx/K9gEjJ1tKv+RXcXzgbtniah/LPNhnw/elVJpC4gc42A3agfVFyYrCThO7wqJtNEdkx0RrIWhb64Ua3hbZQpUGEmN5OQ4DjOXmmz/43P1bXGA8aLz11RUtS6olaj4p5dVE8oRI8h2JHm/z2VJkCA0OoYCA4hekbjtgacaDp7Zt0gD96W34SeOrkRbE3HE+A4uHuH12p3Fd77+LTRM9gc0WEouFfhMrbC6Es7YEZsOWiL1+7VPuEwqcB4IJrEjPKq5M/jZ/vM1vkNGk/ueGbCS0S9qgfNLyINF5kOl4OGNw3GGY/ok08OnTF3MdrCyKWxEHCaeg8vn2iXDhpqwFnqj0ZdN6nWpXEznmW+Sv+JMq3OCSWJQu+sW/2+odQ/Q7Ce0Id1KoOgLtWuTSeMmF8kQ7Y0qZgvKW/srUBxK1wxcGqCZn6aosHAIGxFeUX/0WU4EBxMKcNjR00fcUnIHlLoz62ncgNT7KYUcODEphRTywb1AQC4TZj2A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vSn15UpapO6antYt28SkvuiGvfU7+86VWNMw49h78zrWDoHlNYIQORHLligXQi09pLgBTXSzJE38BLQdTUmyFi31ef2bayxKlSrbnnyIbY51EROZgU3AdGhYllN7W3XO6OtzJOvj5l2SM0xwasDWLJzOLnzmo+z3Qrcr3Ad7gEl7JVy984Rb0r+5WU8RPIS55QO5DBOBGrsOJh3UA0DPGSzx8zimJ14+RjYNXd9g6PTmf+ZHcSUZYK1okqPeF8UX4RQCPZcbWsLX4N8e3ASFdRhgAB9X2p4oY63AEyq4mDTgs75AGgL2+ov0aJ/BaNCl/E3V3tjdYwolG2LrBW2c8DoAFoUs744M8JmFHg2UPzbhuY1avtjko569KQDi0F4dWn7cG7/vxsnSkD5gHuWkI9znuBx+QH4hTrWE7IwCIt+Mp+enV5FF0PspV7AbmHQYP53iD9ezECpxd8sfhGC/TIHgCscpc/fVYY9uMiZylQ1+ETVwCMB+ye4YZCwJv9lCNN/4T4DdyVL5CgBylzWW1+Y4LdygAuxjLC2URIpSCqYlHXwxnPlp+D/dFftR7vP/VohyujWw8uw8Hw+zjs0G1oR6DU4alpXG9E7sj3OKfGjK40OKVyBAZx7sJ452W/hgJV3o1hOgOBiCQvVwtaaz1MaEWayZ7My5NO4Eg1AnJMNq0jOsj/KaUDnz1P1CVbJIG1iK9yxA4PRi9acAxbVOUz5oSWvCbbTd8qDXXSbo2wiNkPqzq+X4wf963JB2Qc4ArEH3szKlyswcPRljJDGlVgq199wecjHf+GCvDBxl0ZaqT1ErSh2Uf1GvB2FPDvBh2MDacmlJ1Mzzf2Mo53J1kYxbD+F98vpmOLgBNP6DYYK6prQSFqMnH6E4Yb2NuBvNP18BXN0uqhZFqJnh1dC7fD4gEINxc1QlvDgqCIPHbBDeD553l74X7hxMNYoZV1AzmoASmN0MZzkVu8DA3fSGowYh2TfcgxxNgnZMGNJeIVFJaYe41GsrFzDUAXmQ2CQp0CV2fC6xMLbzWEb1rxXtAFfXqwft3n3FW1UPzGKTPx6QYZcvdlKXeN3a3urdgcdy3mK06NFs+jS68AJjWiSXI8q6Zoh0LzOHkqXkL5n/ZIDCthRFEgcrX2KDKTpeX5zVnH8yhgEeLsMSawYJEZ+C13bohtWoWBS9fCT6qcc/PQ5w4/KgU96A8Mp7ahiDSGbhXM7fFOEdRBtVUoQJ6GXz8uvGkmK/f7eCKn9wGSET6XgAw8i/Jsmbw4tboagnZkHEquocekdgY42oflCKzFpa3AqWC4AVAAaox57W5QQC5d43pgkt/Zb/ilrEsHOePDhURF0SjLjr30g7cFz2wpgb3GP00U7oiCoql5UaSozdm/fUtIXhi8cuEe7eF5GPBjUw41mCmPo5uai/IiKUxZ+7kBTs3m+B1TBST32HJqCfEZViePTf9vWZwDl0Euj0ogjv4EYlsXtTwzGJYPaFmO8H+mDPBO37RbCeQY1S89t41qcI2/OWiz4JH3GATrHk0E2rzMrRN4oDWeC1dIMWcBerRp9AqgydWjh2XWY6rkipXWCC1+oc49+PQG23veXMAeajeLVbtX55S7uu+yPt+YftoBwNue0FVt3nCXyWfEAgVWk= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: b59f2aff-9d3f-4f6e-5787-08dd78079be3 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:13:43.6026 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rbp01YM+1gr2NdcSsoVlU+FVHDpa2DTqe48UZVe1q4UcC1nJXJxlFUBaAnJqogQB/a1RZlM8uqnoNxJbP74ukG1GLSHjQL7CdPA/54mZkRZ0f2OeJrfOfSbQ24Ds+yKU X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10119 Document the CSI-2 block which is part of CRU found in Renesas RZ/G3E SoC. The CSI-2 block on the RZ/G3E SoC is identical to one found on the RZ/V2H(P) SoC. Acked-by: Rob Herring (Arm) Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Signed-off-by: Tommaso Merciai --- Changes since v2: - Fixed CRU_CMN_RSTB as suggested by LPinchart - Collected tags. Changes since v3: - Collected tag. .../devicetree/bindings/media/renesas,rzg2l-csi2.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml index 1f9ee37584b34..c5c511c9f0db2 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml @@ -24,6 +24,9 @@ properties: - renesas,r9a07g044-csi2 # RZ/G2{L,LC} - renesas,r9a07g054-csi2 # RZ/V2L - const: renesas,rzg2l-csi2 + - items: + - const: renesas,r9a09g047-csi2 # RZ/G3E + - const: renesas,r9a09g057-csi2 - const: renesas,r9a09g057-csi2 # RZ/V2H(P) reg: From patchwork Thu Apr 10 08:12:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046064 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010024.outbound.protection.outlook.com [52.101.228.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 E857F1F03FB; Thu, 10 Apr 2025 08:13:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272840; cv=fail; b=Fm2oDwiqmvJaCHoPBj354h0A4wpVfrXP5kyOr1Uglc03Zp+4vY1j2vIbXLRpGi0lykg0+7Y/JcZwm7cmJBNVmFfUGqyeloIh1Ctr8JwJYBGr4XfyLtUKSbCz6kvCZ5hGo1mOlAXluDfgj42UIPqQOEUnql+XmNJmoencz5UkQ6I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272840; c=relaxed/simple; bh=5lZh7HN+FhdMMBUEgU0P/qwv/7pYJNB9JrQ4K7QqGKc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CHHWaCYzkQJHGSkz/R/bgVIW6p6ieXFmjXWXC/EL40/C5FazpGYATVvhnon+STumbRKxha+HlyeL+gDg1qVh54Mamxuc3xW484bMPa02/mSeAWOvfsQcVG7e7OVKseM7a8gjGTbvDYvFv8+y5RukT2I5NQ1mXx1nKpht2wMAr60= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=BtueWe0l; arc=fail smtp.client-ip=52.101.228.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="BtueWe0l" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UGTmboG7bJVDAxBN/g3crdthPnWtAbHbgPjBO/ZLsvulpf3R+dI4hTzgtwzhpMgSmz+Em+FNaHIsdO/ScXFD4urEULkTJDsBGqFQyzv1JV7lyO0dpvq6dgHkALMC7COlDhzM+lAsSQ3nxPzOX/6vc1z4SpiqQySyvTdGjG3unULaf5aduvHVRKLaZJki4Z5YX3RuFtgfaC3OVvRrd6EW/9xwpC2MctGglWitwXuwflORPfQ1AKvafoj6UuZSQbm4/AUmL1Od2XyJfn0cT6v+E0cBa1LQHArS5aJZeEybnZtSYB5zPE6U8a9oyP848pQeqVOHAxfszOAUHoBlrmI6bQ== 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=eKusPT3wHBmXFoee0MVMf1m+kJjTUL3CN92mSEDV6z4=; b=TyoeSpVzzy6xy+yh9YozGVl8TfOiHlDjPcjfqTWg0UZ7DFXZ2ern3h5tpf2/oyFJyOhvj7RyTm9zKhYQ8wSr4eVFhEpAAzh1YZzk+VzY0GqzjJlmq5EycwK2YitGuabAqCzJbLRfIMTMEQHlo05c4gOfbCp3DsqszEq9LhPFpuDdiJCXIV6MbF+CT4ViMNWOiYFF6bITYzq/rh3Bs3LiowF4M0i2s5tL7euXx5kKMqz4GlJBt3ZrXvpRrJ+p/eGVc+jFIXtXJ/AyLsFvIhey+MpXcDs7/6csvQgPq6NaZeTPrk+0WjTt9cgRYV70gWSVfpwDvwX9TCYYDCviRzLPVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eKusPT3wHBmXFoee0MVMf1m+kJjTUL3CN92mSEDV6z4=; b=BtueWe0lc76QM5em+heNukVONLafV/qgnblXxezp/PSKG7eBryniwPGZX8tfCfChSPsJihM3zFoPeChSltMm+QNVJo+y/bCAkLASAuGlsULopu0oZvvU6B3tgzbESqbDvEE8ZoA8XU3oPHib0auR19N0oGA72H0VR8g06Z3X5yg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYCPR01MB10119.jpnprd01.prod.outlook.com (2603:1096:400:1ef::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Thu, 10 Apr 2025 08:13:49 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:13:49 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Rob Herring , Mauro Carvalho Chehab , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 03/17] media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G3E SoC Date: Thu, 10 Apr 2025 10:12:07 +0200 Message-ID: <20250410081300.3133959-4-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYCPR01MB10119:EE_ X-MS-Office365-Filtering-Correlation-Id: 56839725-3e7d-4eab-b28a-08dd78079f7f X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: 7b180/INp+sc2FkRsAXtKcsHXY7pF6OApAfdiIw90g+z0LZuCFz+Boq6KWq6zjA6XBULXnYCoHkre2kZRswYeX2bKWMZ8Sko0jjKds5GzbXLB+cRdSJqOfTo5+EvCxY+U59f2yWoFSAytbPPslrcluYRjhd2fL8ZcHCwHchhAx7LY7TAfxwXGLfKGZE/kU/+vKcGTjE53LBu8HOR6Us6oMW6ezmddwsQP5uAHmsPbnBqT1v4vkwtQ+lwH3SMCoA4eGKf6L71mtBKzEUBxnI9khLu3fpNJd2PmiH6nsq8kYOKqdIFxPElqUIET+umvMCNkGlj3VzhV+/ZEl64B2TJG8K687ZrOg2a5oBOC9xBmfKoSr37VlxAfGlnoen6S/ugp76e0oEbjEEQseEIxcoQIqIEgKyx+uOd6Bm1kfJhZv6NGugKy6bhvkPr4sW4DQc8K+qF+xRkD/Bnl3ns4loiQBH1OjAOkOMvkat4udKoZrXK/iNTAEeXD6vKJtnWXZ123NfkAn5kp0VDN7AUhbjYRMgN5AoJLkyy2eVYP7oGY7PmrgJAM3h5NTFQPPtcHT7jZ7S4EHLf2Uo57fd4+ZcldrSwb6785u8K9zYKnf7M83MXzPIx4WpyCOisCA8PrSAsDpNig6++OT3VDLy1r2h/Rdb7M+sMp3ovNkBR8EWKLqFexAocCw/u7kZqqAF5+aCCMrBRBlQWnHD8CRAzcBWt7BwI/mhqzlHk8rMI6pM0+9Yw0duUqroz6eXIzWIgyC6v37Y5vf4cnj3DC/i2YfcWlqr+bNcEEyAr6CPwD/QUUAxzOWmYjCXejhnFFwUyw4rMwYI7E/txuR4ULFSdHXBXwlFlRQ1Tj+cotZTGD53Poouc8kYuMEO2/aZDtxUH3kLLY2zioiEQHYkeIvjh5B1YsRzEewcCXINS7mWoYrUUXMxNap6DOph9X8mgo08HdvgU3V/qINXDMj6o2z4KS1tRX53tGnyQGvPSYTy6jeU2GoqFQC/nwo80bhiG+TF9QX4VsMtjhEO5ItpyxViJi+4/RyMPM+NCgAmf+ZMwPmwpU+/tzj6LR06zdv8aKeIbZ8qxa6n3D0al7n9w6NWZEv5U9/lkSZtHAr3bJ/+dVfUOoDh8ssohIO+91n2XOioYF6zkORMJWiJvefey16qAZ64IHbNLb3XTTKeeyuZdhyq2hHNlt3/mMIOo96pAN43GFJCHGsQGqisFyNJrFJUlVoWqIp1lgeeJFX9GbJDWVjn5LM4lIqqLk9p3gQdWGAxD25PqVhPmDT5+2ftbyzao3FZvtcO0guv8A/IWe+Zj0T1LOTRNDRdbqHArL6L15/7mw2AZk8Yel3FLYX6jl9oafiQIFHuFLo1Vl2Bwk/FcP6IwKOustkCm9IqGx9WEOSUYbkRaPyA8ee164w6iUEIBhGzhC26K3LQQHzwFRuu9Y4LwEah4b7TbXuyYevsC4n8GT+9rdj9TVUnKaJGRAqX9zZImXQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CTy/W9LZQ5spB5ZNUXPeQ0+fEGXCtMFmL9IYXMvGCda3Mw7nCoOE2lMIv/jT72J0V9E3A/mmkt5+o4sXaVpM+VmRVdpK950z0Lz3Psh3YCoD6SxSanEfeqImK703nieNbpbOobEAuAv1aAUgzFGf4ejEU8W+1wB6Kw90PAudFhOOxhiWEpkL8s+5nyhDzNV3mAPC9N4sUtqSbGqRrIe1TJUfRkBCw3YDYCN1gohg7El4I92zn//Hxz6mARBfZUF27wM7oS/k+sZR8ijJbsWPzdILLimEVliOA+QWUAi7znohM12JtYrGVCdHNVhTL/acFHZ4iWqRmlESEL9Y2bN7ZKlUUcpFPAZEYFjJ7jrB5lpVd5LYAxdjnGYxblfY6uHVUxMsVp2BY3uH93h0FRj1WDvnffXpDxT1s5ARstL+6HR+SfLblM9N1tzfOVEbWCRHOUHG161mdHR//PXXi1KpakpYK9Xx953Y431o3P/fjGfFyWDQsPgA3L/sx+bdOO0e/zGbx+Xzk+sv4v28mih7KrYwe+BKUUA5OhFkh4rjzPwESG3qV3qBXKjdgJcAPMbgL79eV5i1uZKYuKvrQ8J+ANYCLfIzsIRU7x43zQ/TD5aXO/89/L8bvtIK9cp1W+T5UEp25gRKpJvfQVsA5XykOPXEZU1KhO1HW2F3pCssYf5u93e6Y+Wmt4FUT8H+xKi7+MJLw/jz+TMRTJn20GwPDaAsTiRK+25fdUNP+VEiqv33H2jmyACjPxz6Niy8cX3QOYtx8uwnWCGyFGbmay0XtNmdcVt5A3vEfgSygxqT8Ovr+rtMJWFQX/XOJVsAgmBNOmjeqk7vWKGS2TjYnMYI2IztUVt6m7LPSoaI9wuCfdUKhphNyUi32xJYY/4jX7d64E6IXjuKsfAx+pbS7q4dQ8GVWKq0MqzYDR8O3/ZrS84mZN2GL6huEwxD7QmgsllVwPvo/Dg09bucjJ69s+9V2k/BRmC6Su6x++DjnFwg0keupMJ2WUZxDHBfg4IC/mCdNmY0gOkcc9j8T4MvL4eIe+Ppazc98+1ECOSauBl5sDJ7nlxaHtfoJWZDoqQnQc6ACVaoLQLDPp39/lYOwjm0825Y1rLQqRCQz79YhCGSfyv6OvS6jM4X6zoXUCz/t2gtMebGgk+SufNT90429wuXClRWbreRUhGEV/20MVFoBv/dlp5ziqZTvwc5saDWFdZY/FLRujPOI85GmSitSCaLG0062EM+kIk1zKfK2oSLYffpm9PHBt0oRDbribEKxxgaYz4T/BtxaNdG8lI+c4CecJRkW+4f6YVE+9BJHh0Ucqomef0q2DfTOAdJkaVbgDt0UixfJ4gVVyL2JJ5ejCzZxzPBUhjNSTuxj2vQ6iJUfftBbAxO0wwXb1FY70K+EXyn48ezBFSAPZgC1b/N44oO/wKtTpLUtONhOeAPTep1nVru004YexKov+ghHq7Ft8dtBCChwKr2SGoScb0izXIG2KeSz/IRb+WDdOrViVot32xC/CqVT6DejYU4rrkyz82mwd4He2fRtpsP9K88SGleyH9Fg7n5S7KZp31nTi86jyW2fplRL7w8T6ksvnWEFpXEe7evyYrNbMYLoWO5QwArxUeFjFLtC55XgUSqe2rNL98= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56839725-3e7d-4eab-b28a-08dd78079f7f X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:13:49.5854 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4l9zrrhc8b6HaiITYzT/3GSvOBqR3J7QHJVYyEn3QuM+LTHquFkwFVQPQpKB0ajfpQyeqRI6zCUkt3McwGs2VgwuyvrMUdIIRBUcYMy/QeiGcR7YZjRd/LWlXC5Z+rCO X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10119 The CRU block found on the Renesas RZ/G3E ("R9A09G047") SoC has five interrupts: - image_conv: image_conv irq - axi_mst_err: AXI master error level irq - vd_addr_wend: Video data AXI master addr 0 write end irq - sd_addr_wend: Statistics data AXI master addr 0 write end irq - vsd_addr_wend: Video statistics data AXI master addr 0 write end irq This IP has only one input port 'port@1' similar to the RZ/G2UL CRU. Document the CRU block found on the Renesas RZ/G3E ("R9A09G047") SoC. Reviewed-by: Rob Herring (Arm) Signed-off-by: Tommaso Merciai --- Changes since v1: - Use oneOf for interrupts and interrupt-names - Handle interrupts and interrupt names base on soc variants Changes since v2: - Collected tag. .../bindings/media/renesas,rzg2l-cru.yaml | 65 +++++++++++++++---- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml index bc1245127025e..47e18690fa570 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml @@ -17,24 +17,43 @@ description: properties: compatible: - items: - - enum: - - renesas,r9a07g043-cru # RZ/G2UL - - renesas,r9a07g044-cru # RZ/G2{L,LC} - - renesas,r9a07g054-cru # RZ/V2L - - const: renesas,rzg2l-cru + oneOf: + - items: + - enum: + - renesas,r9a07g043-cru # RZ/G2UL + - renesas,r9a07g044-cru # RZ/G2{L,LC} + - renesas,r9a07g054-cru # RZ/V2L + - const: renesas,rzg2l-cru + - const: renesas,r9a09g047-cru # RZ/G3E reg: maxItems: 1 interrupts: - maxItems: 3 + oneOf: + - items: + - description: CRU Interrupt for image_conv + - description: CRU Interrupt for image_conv_err + - description: CRU AXI master error interrupt + - items: + - description: CRU Interrupt for image_conv + - description: CRU AXI master error interrupt + - description: CRU Video Data AXI Master Address 0 Write End interrupt + - description: CRU Statistics data AXI master addr 0 write end interrupt + - description: CRU Video statistics data AXI master addr 0 write end interrupt interrupt-names: - items: - - const: image_conv - - const: image_conv_err - - const: axi_mst_err + oneOf: + - items: + - const: image_conv + - const: image_conv_err + - const: axi_mst_err + - items: + - const: image_conv + - const: axi_mst_err + - const: vd_addr_wend + - const: sd_addr_wend + - const: vsd_addr_wend clocks: items: @@ -109,6 +128,10 @@ allOf: - renesas,r9a07g054-cru then: properties: + interrupts: + maxItems: 3 + interrupt-names: + maxItems: 3 ports: required: - port@0 @@ -122,10 +145,30 @@ allOf: - renesas,r9a07g043-cru then: properties: + interrupts: + maxItems: 3 + interrupt-names: + maxItems: 3 ports: properties: port@0: false + required: + - port@1 + - if: + properties: + compatible: + contains: + const: renesas,r9a09g047-cru + then: + properties: + interrupts: + minItems: 5 + interrupt-names: + minItems: 5 + ports: + properties: + port@0: false required: - port@1 From patchwork Thu Apr 10 08:12:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046065 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010037.outbound.protection.outlook.com [52.101.228.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 2B36D20B810; Thu, 10 Apr 2025 08:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272846; cv=fail; b=kdslujGuUpPHf5Nft8SlE7SUyk7gkreAQmrIAoGFDva68q1oOWZoh1AK6rhen/r4LIq2tA81Y8k8pjE3ePO288uxWdVkKnRWxtUkcAFSLyfIqfGyOqNdsy05ymar6ntvulW4cibwX2HJHngGvTY5OUcHp4yQoo9+f3ZKaG3v/qU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272846; c=relaxed/simple; bh=66xXUnrKZNA3NU6Ssqm6z65XlrTcnHLH1W3SnVeC/48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lnrFAnz8UEFApdFqmSTr2YPX47/2OdPVv64SDyR3Ow7/1/zD0UJsCdtNJDzPHlc1Gs05tVS6/8A3VjmpR+S6H+gw1UzbtODfhVwkNMDBB7mXX5SnUnTxhI8BTyzRGPiokoOJrWJQ+pV7fcyCKFW/Axr+D3rBQozR5eoBcTyVezg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=N86/2Ijj; arc=fail smtp.client-ip=52.101.228.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="N86/2Ijj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ex1Bym8l3le3Zw36v7G0OpmWZBfg82xGm7GYJXOGzD2/2K9UQ9vBCDYsMKYzJsruXf/Ha1wwO5n7baPhLi4Wt/tMdgiNhoq+MaTsukcewp4T5oTU/RO8zh+oLADNsrFoSyuQm1HKgHcR+94WWgWNq68nwTtCdEsPjhqxoJ9rLClqfD17wDJeTiGzWYXQF6Wm5FB4ilPpWOy6HrnaT79JBpxMkjU8mxjSLdIDbuX3F8/Hw3Ja8uJZBI7lt89+UFBIKy3ircbJ96z2B7B9GMwFnPRgl2CHh1yl+2ilG+zDKSEjCWU3T/1SkkeTwpq8gH0ArDms5LOFR1hr6hZvFetfPw== 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=Omc5F4uisa8utpUKhjmd6yIlHr37k/GjyLMcJmSW1zI=; b=tqSKkEelk9raqxaVmGJKTZawNPXkL/AWB8c5nsYShjK/GuSF9cxvjZEAH+4btLQ1Mq/MjCv82zAnC3V+WJLtVWRkH1cFi2GF26F8scP7og5nnHyKz0XeU66Ju++AeBfPN+4aEaizJ+ur8abRvSwd6c5pNpDiF7zMYOBIndjNJ1HZSRqiyYc79TvHkwEdcAgu1AlpdiXgh1Ing5izsYRbOyQZb/NjAdNcO6K+pPQMAoOaKOBTv8cZupkdP+A2G5fG2PJk2gBIV9gVDfA59YUozMphyzc+6iDKyh+DfIM7pwq85jFlIkSXHCCeWadz+ZIzs0XOPpzSQ8j3bBT3ECEVzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Omc5F4uisa8utpUKhjmd6yIlHr37k/GjyLMcJmSW1zI=; b=N86/2IjjetMRjl44fbo6F0I03z5Cf6l8afgPOxj4041Yc0Bxzyju4fx02eOxyfxzvJF8d9NhujiyjR2tsC8J+AEqbbFOYGXlMQgcMN6YxpWfmuo/JCJ+VPq4GQjccjG97ZH9xpQZrcarpBldmf8pJGxJV7klRb5fuFexWaPQHV8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYCPR01MB10119.jpnprd01.prod.outlook.com (2603:1096:400:1ef::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Thu, 10 Apr 2025 08:13:57 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:13:57 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 04/17] media: rzg2l-cru: csi2: Use local variable for struct device in rzg2l_csi2_probe() Date: Thu, 10 Apr 2025 10:12:08 +0200 Message-ID: <20250410081300.3133959-5-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYCPR01MB10119:EE_ X-MS-Office365-Filtering-Correlation-Id: f912fde5-c7d9-44ca-b6bb-08dd7807a451 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: MDusV7li/WXYBwnF7dJmUm/WWSrGxL0f39J1FDSfW4giaQyB/xT+AsgPTace7WnWERIOPs2bWg3UJH9bZind6CO4K7BjEJWRRT8MFVMu+rdRlj4oZsYqgxfb3xwu3sC/hm20gZCiAw1QwVY1QuxVDFdtRrsJB4Mtc0yNZJlIsLsgDqYW5c0BKeiv140gJcGkVOwQtN3JZIKMKhA2IpNJY6KN2Ymya9WUgDYb/YCg0ID+A1V/g/yFnHP0OqCEY8dAaiE1JPi3MotZChbehryCIvRMX/vWMhr5TqlBRxWRNyQSEnpE9YRFRjPl8BgcPt6gJfeb8xJ4SkCBaWTbUAFgkQLTK9pHPGJT+fbDQR753Q8YsbXrGoLVtpKrPkKpfDObGutgpkAVKv9+lz9JUysHm8aqyiuanTi7CrUK52AAMSJSPmSI1M0ZQY+1q1D1GhPDskPYBya1uaPfcZSALNM3NqFwLSUnQKIfs6o0ctiRgIsIP0M8672t8P5s+U7kUIeYuxnNYdysdB0NRNDoaTzi44BgysxXaBa/Iq/lX/hw8Z+MGXZSA7A2TmTwKH5d74MdB/I0hXtsdOfEEuqE5XuHSfX2av/XwIrIS0Tg/OVQj5Vxwc8qEITNUubepLoQZzVQh6wz7xEv5hl4xSY8i1c67X5D3vHy2xkuXEu9b6w2mY7P0Ya6u5KZ1FKWJlxfrKexcyeSzXjopE3xdRqh7oP/2waf6uAdCG8+ocQN3ul01ptJyqfQYcI+uKULUKWfL/59k4sBiBAddokXb/hWprbnX21AxNFXqreFjhBHyihVgWjRS9IVi+i2aYjJb0HB1sIdYbG3fljTTnIl/za92NTdhDAs3tkri5PsFv5qdMXtAx8sT3HIxekh4uFPYPmmkwfS9Lul2OvNGuWnUd7Ayq/wVszFlgnQSzEwtmSV9lntIfU6wEJFa2X7A4bpMMkFJRrM639oVa2H3MB03mz9XltZ3twtimxNcO4jPb50Z9cF3/fURdHkfWLfQLfmumEWXjkHFW7uAm3XBX1QhXrV3x563WTOT1+GiVoOyCsyv/ykTIhSbFo8xBda/v4BPKqvaRRwkSOfYsWcvsiHqiBwt983ExAk7lbYR/7ZaTuCzaEypirFtuC/64tUSsUY9TRH0HUFdBhAMF0dC/lg2Nz57PE3i/QmlkFTMxqVbFqk+gFlx+2PCtrqCqUslrzf3XTc+QWoWi/Kx+Gkd7oj1+/q4+zJamX1+oKZr7jgc6ThcYBj9H2Rw4/46G6pEjdkqZbRB1lIkg/wWBGN3gcwRYeWHP8Me+Q+l5B0LmICKxAjikioLMzxD33vO5lfHcO+YJ8VQhu26vyz5P5Yn6KtnBdwZfhXG7hBzfpAGDJqEdl5FtNWoUc4Aubkg1SHjTxmTJ9Tfzp4l1gNn+kxUdwyMeFL5tjxA3SJvD+PgRaIti5so+8yOuHvOVhH/wjhfRYcnQ0K91H54NbmOSnu1VVV7F8y49sYpg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: M6QzlgWjxmVJ3tlb+dVdMPXRK7IIM24AZlUfI6pN4k2LU4trCUVIKfhXhJvgOKnF/Ga6Duv8slDeG/0VNGI0aLZZ5jDGqHs0z0DRqBtBx7WAZ55YxlI6cw5U8fvvBIXojXKZ8P2RDOFIoWtcGLdpC30CHTX8UoDwYgu1n2pQzGHUKqlG82JrbJkLZoAsnqIVuvMfZjQDoaXfupIsiqXfuZC/nh7cavJ6UGl515KO0K10NZWFPz5Of4K0fkPWBJPCieLMIQuChPcSrC90G/YnLCrcci/nOMNV5ikwCUU1GSFgAkFdGPAZF8maw9SzWo84afxv7HWoQ2cIsAC7QNF0A1hhi7jPCsF2H9MTZYUAL+eWutEsImwn53SW1kHqN9fJiLHntamoFY6Ey7lmCfmLJK+aALvaFLnE1CLglogwwSSIUdE9L9MoV8UsW5jwqHpkVEf/QccAqAplnuD5r03iFkKriL7XVkAA8+uN37BTmzPRtICB1GtBDgqi6C5X9eh30f96ecrOaKpW7TzvBLYHpnVv/NzonDbmxhX14qoGzMS/LJIyVhWOetO4cyRIAnx4s/J+oeu97odcM33kCf5HpXWK4M/E7OTbHkNpDT6ndk/2Q2qowvwst5/ko0wP6Pmkb/WUKgUk9/AyKR24jUVoLmlnVNdKTiv2LClwAb50wmfOSBw8MGbOPBhOBQ+mtbcMtIkFQ/KSOF51dX23gTKtUosfXXVYOPZYdN/Wh3Hn5GPzZMOKK/U9P9N0CQpOThwvTFL8gVUyAlGSufTEfLqswpZV6tnxPDVs5dFejtShDS12iJn54yoiDkDzGR4RKx419jBAQmvnZ5GLmUGuYv5PUgk9rmWQoxQssfFf7uO82KEWFo4wnUkQ5eM7IuU1im4dqlujJl0d1H2TkZef/GGTnDRKOsVoiAUtSxCYFz4xHjRy0ukziasxjFqsIb1NX/Ji/LriYKRjkRQJIMNmKTNtlktgPJl/hNvCi0VuRC4Ns944xpqQBts0kBwIscWa/sNiRailR41EnKTR1mtKPkDc3uWMmw3Nj8ltY1xU/M4KbEFaiKFMfnyCZKdiMlut7hQsFLL598vJxZ31+yCMcAbp019eFdM8LTsPhYvE5boYoQllDBcKFlXqJoR3d+uyAHpneLH5fI6fXa6+ZY4Oy2TzMIlHNZDBZzF9FCOjsgexQA5+1PFHT0pU/YPSt2vR1lbjYytBn4U0vQg5sJe9wLSxl4aeX+iI8GKnGarsTHCcASS3dCsGcgpsxHX5ZnoSr3HVd7TyegDKcn7bnJB8PJEGqs/3lgZRd0LXD/jBPll3n4RBHWyKTdL9FQyktH7NBWc5OGhRJT3dZ7OvKAWvuXkZIGDIS8AuqpmfTmmoYdqUYVD0WCSdrI3/JPY+8EUAod19pyXzMLOBSQLVepPmauYyXkJK5+vuJbQ+r7mns91p9BO/0r8rxcK4XXoNyWVQLCtbcTUeWkKJ7EaLF1jqVkn/HTrF2lQRuy2LV8BqkYd0i918KJdEkH5DWbec/C+XBnwk5BajwJZzaiRHB9V/gy9r1uELsDvss3s8WnQXR/J1c/B4W9w2aFRX6urrSsijQEB9/3Gk8gGJg8bw5oXS8Wor8T/Kl1CU4ujZXxjVZ6bYjtg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: f912fde5-c7d9-44ca-b6bb-08dd7807a451 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:13:57.6709 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dmPFfczXUuGC5CGkL74stmB98vrTn+tF6sM3o1IZVAPlnlphDXKhS7g1xIHvGwY7z2kR7RcyCBCm+2/xauvqt4t12pwagPewISlw3QsynTwEMQid+Vg9VQKduF6I7XmB X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10119 From: Lad Prabhakar Use a local variable for the struct device pointers. This increases code readability with shortened lines. Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed commit msg and commit body as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 881e910dce023..948f1917b830d 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -764,10 +764,11 @@ static const struct media_entity_operations rzg2l_csi2_entity_ops = { static int rzg2l_csi2_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct rzg2l_csi2 *csi2; int ret; - csi2 = devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); + csi2 = devm_kzalloc(dev, sizeof(*csi2), GFP_KERNEL); if (!csi2) return -ENOMEM; @@ -775,28 +776,28 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (IS_ERR(csi2->base)) return PTR_ERR(csi2->base); - csi2->cmn_rstb = devm_reset_control_get_exclusive(&pdev->dev, "cmn-rstb"); + csi2->cmn_rstb = devm_reset_control_get_exclusive(dev, "cmn-rstb"); if (IS_ERR(csi2->cmn_rstb)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->cmn_rstb), + return dev_err_probe(dev, PTR_ERR(csi2->cmn_rstb), "Failed to get cpg cmn-rstb\n"); - csi2->presetn = devm_reset_control_get_shared(&pdev->dev, "presetn"); + csi2->presetn = devm_reset_control_get_shared(dev, "presetn"); if (IS_ERR(csi2->presetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->presetn), + return dev_err_probe(dev, PTR_ERR(csi2->presetn), "Failed to get cpg presetn\n"); - csi2->sysclk = devm_clk_get(&pdev->dev, "system"); + csi2->sysclk = devm_clk_get(dev, "system"); if (IS_ERR(csi2->sysclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->sysclk), + return dev_err_probe(dev, PTR_ERR(csi2->sysclk), "Failed to get system clk\n"); - csi2->vclk = devm_clk_get(&pdev->dev, "video"); + csi2->vclk = devm_clk_get(dev, "video"); if (IS_ERR(csi2->vclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->vclk), + return dev_err_probe(dev, PTR_ERR(csi2->vclk), "Failed to get video clock\n"); csi2->vclk_rate = clk_get_rate(csi2->vclk); - csi2->dev = &pdev->dev; + csi2->dev = dev; platform_set_drvdata(pdev, csi2); @@ -804,18 +805,18 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (ret) return ret; - pm_runtime_enable(&pdev->dev); + pm_runtime_enable(dev); ret = rzg2l_validate_csi2_lanes(csi2); if (ret) goto error_pm; - csi2->subdev.dev = &pdev->dev; + csi2->subdev.dev = dev; v4l2_subdev_init(&csi2->subdev, &rzg2l_csi2_subdev_ops); csi2->subdev.internal_ops = &rzg2l_csi2_internal_ops; - v4l2_set_subdevdata(&csi2->subdev, &pdev->dev); + v4l2_set_subdevdata(&csi2->subdev, dev); snprintf(csi2->subdev.name, sizeof(csi2->subdev.name), - "csi-%s", dev_name(&pdev->dev)); + "csi-%s", dev_name(dev)); csi2->subdev.flags = V4L2_SUBDEV_FL_HAS_DEVNODE; csi2->subdev.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE; @@ -852,7 +853,7 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) v4l2_async_nf_cleanup(&csi2->notifier); media_entity_cleanup(&csi2->subdev.entity); error_pm: - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } From patchwork Thu Apr 10 08:12:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046066 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010069.outbound.protection.outlook.com [52.101.228.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 A6E0920B810; Thu, 10 Apr 2025 08:14:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272853; cv=fail; b=hXvjyt5/29IrHymA5Cty44gYLlz93eUg6bRKisUyTaVMLWtgJbgpDfxXXQ9EGlpGRZNKayBmIGXIlCKtXrA1u1Kc7RgES3ZhMPBQNJCtPjA4JSX3j7pnIPs58qU8KuumNWDshLFfV8I1p4XUnPLFxS3cSlAVpFGkKHXUs46oWlo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272853; c=relaxed/simple; bh=5lU1IvTR+ixEA6Izj8BDp2/LBTXT2y5oWx7TE4PSwZc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=htWFpk2vZwWCUXnaVMq8vYxnxfJCpOW/cT9XBhgNLg/E57NutaUo9weeW/DfNQuIvU96MncCKjl0vS+Zrc5l+ojOzwwhB7fPsenHo2+Bf6DwbIElklHPl4JH2cf9pw7ln+nVuFkB1YCT4svQ2bohPY8GzJNxuLaeNupovjUtYxk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=CfKS8+lo; arc=fail smtp.client-ip=52.101.228.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="CfKS8+lo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BvndJCr35+SPszFRi8X2ooJAJFsmhcreXP2V8YBgrnLTEi71f2H66qC6Mbnk40Iz9yZVgY0WZ0ItAlqjUxeI+GU5uT4yReu258AwsiEgE2QLo8bmp7CaQ9rZJd7wYzjFbe6cHhFpyhUgk3HarKaZpyl8Lo8QmpO4g/NlFXMMMIhNu2DKw8gld/V57af+lyPS9NNqt/DHASaPIOI71Ro8tOMEw1AzQCKXUFhFgsqG/O9QxE6Uu1TsgjuhcVfYYHrPPVDqmGq0UkE/ZfTUP+Iu9Y/DOVOoqI/gtxsv8XEq4YPJRnk6nMRAi/dHk1UTQFlOz0Vovubekh2OASs+VOjN9Q== 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=BQ7qeoVJqzp6w/iMh3vKTUOEltiFLLKEaA7xGug46xw=; b=js60xwU2Ns6JJ/VJJzzpT8khzamW9oZEiR6GRrx4XF2Qr3wBppVIwrUg3NQzaOGrYKPnQmYZN+e0rzxtt5yn/kxzbvi541ZdjhhEeaKwvz8IX1F+NHA9uzjOXiYfs1/4OOsoLQbB5n4rq70PtDwPrN7X6W7gE3pmvpuYufJvnX+AfzJSKaC81fWsTaiIOZgAalgmUnabRIAwWcDEXWQOuUxQ320j8JRShxMAYn7m0VNaQpB2+v438EdB6fnyKvE3ix3kwy4kPZQdZYE4dUg5M2P8S1AaLKxx8lVMAKxM5kpW7kjrohC5SezRMmGc1EUbyzxeTIueP/7u0d5gqDPd1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BQ7qeoVJqzp6w/iMh3vKTUOEltiFLLKEaA7xGug46xw=; b=CfKS8+lovq5GojnOgDmGNeP6LwXP+1/ePR3PfMXJ5aw9ggGg3AVJVIZ+JRN9L9hdUh7LRowZtfqd3VwWTOb+kA+zaxcv26h6jTOSabQ6/NMYPOGIoGS/sd4hIi4aKTWJpm9fWSY7XK5uUcAR5Pv7JbwdEStX52Uc47jA61HfFss= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYCPR01MB10119.jpnprd01.prod.outlook.com (2603:1096:400:1ef::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.32; Thu, 10 Apr 2025 08:14:05 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:05 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 05/17] media: rzg2l-cru: csi2: Use devm_pm_runtime_enable() Date: Thu, 10 Apr 2025 10:12:09 +0200 Message-ID: <20250410081300.3133959-6-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYCPR01MB10119:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cbe64d0-ce7f-4f00-4c29-08dd7807a8d7 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: Mar1dHaBs6+80C2Sn4syglSJIoWBLgHxRlKW4XJGN9r6Xw/j3/ADmOruoYStsL4J/lIYWXlGMqfqG4MPdGj3NMWFPiuSCt7tj9eu0bFB38ZbiiZ7/1+jS1S+OHjSdfr9QSOvYE3bbLQnEpLm9x92oUzMbaFxyuHXO3pU+mzhJCJPnzMWAjrtySF3UMbiIBYfpo3fUC1y6PhrTcbsgXI/InYqQNhCJQi9qBK8xKugx4W+h4UVtpVWYT81EkRKcpvVoQSeJxFljBeihT7NABiytI3sRnN77yWee46iL65Oeejfm5Cb5E4Bd6n7Hs29/oDacdf92B0T0sMa5ZGrSEGmhPqglpldmitweBe4nhzcwOR9szDK8Di1FEMoJh9FZQLfYztWdBKkWFRSd/gcAYikHe0Q9aYiu9DLr+4ZgUu+tSqeR5HukpgNIN1xUxdl9bJ3rwVtTrxZm241OVQUUGNfoBP+kYfsSizyk3aK5s/mJUpFQxSqVoy2LkLV+/iNuvwLEsLH422L3bmsjrcQxqgg1cIGCAUT0XSZkpnwS+BnMvWd4shL5iO8PWyL9CF05Q/0llS6ULTKAxCZZNJ+MBfVFM2fBUeJyWa6W/yahcqB9fDQk6Z8s4EC6KMdICtpbZZUEjHc8aq6a+AxT6uZeNPzXEMYYUcOlbami1mr2H7UfA1B0xPHj6TAoq7OMTjfBQrj+gw3hB9nlidccK4SNkapo5ldCUOOzpL1klvyn17s/c1diQL3XUvix9kL+snAF9Nt9jhH7GdfJikECpYDX2FGAEK7AyNAJATPnzv0GCcUJ8NtNBjnk/PifZTGs5SmZ5nCugT6stSVIq5vwQfx8Tq2ndreg+VGfrrxVbl+WrDMg7/9qgX/L68mN21KK+KHrrEeSz3lZ56g9LPyL8oSD7jfh3X/0ENk5m2y39YTm8QcPjCFKbxjiipJI5aTAiNLTpFZSiMDxOjqcLe9We3ixkikk+i2Xo8W/ZfCIXdhF5YLTVrfixSaWw3Mkid//0zm4Nj3XANa06CrtxVPQCF1DDjt2D06zBqprhgDm4ONjz1piCicpqyrD+Nau2JpzQHHhg0O/vG+kWLRZkW+Tmw91Rhzx98mXVj6IeiGCuiKluFXjVeZt1YkIW9WvK8jlyt3Tj6KHI+yY/oXp+/zkZ5lyu5ms8mEfvghcOP7PlI6TrSeqKIfxK9NxtrLYKZ/KsUgE5Oz+VdC5l7Bmj1VuS7dfgfxnIw+Mk76WK/TYlRmQfC8ScCN22EVkyMv7vx8UAB6oXz/DgIoUGWoCdYbVOD4mMKx5qik7H9H9m8RGmPdEHdtECW/InImA05vvxob0KclNyi96RDsiJ4cYzRcsdCMgoRdZscP4TDxdHYXw+A2EpsvJbJKr3y12QR2zT9ujwA5LIz5gQJWbCTCJxaEYWrlcTxYVAGWGproEFQaB/A/uZ8EsJXqIBcZAZB7dHIYr52naO29+qDVpPm6A+EX9LjFWPO4mg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(52116014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xWDH2zMvTk48LxHBcOnFxmwP3waH384OSqRCJvixQjN/FLKWDC6y4Mz/BOUsBjaM86lWwvphfacVfmV4X14SYJiGOZngbJWaD6Bc5oP+RWDOE/4MYLjwZWc0XQ0Qh5EeoOrhM/PPoGOUFN7dzUu/nf1BnT2gj6UcigJnrxfEFcjolzbDOvn5oV83I7X4X55VPYpklX1RGAVHQTniPMCXxe3egFtQa5kaezt68CTaBTQvOif6ChBOfjD54FBgzUwFv+fiP3PDHBeChln4bV/UqcWk+9lJhrT5mI7mxpjDLOC0rGqA6mC0OxMS9UVE5Y5rUreipBGP5XMezdYkm3pXmAkOt9DiTXgOUoKzJr8PDJYZmJt0S9G1b/viUwWVeOFsX6HRRF+icx15oGnJIYyksL2WUVo4CaXZ2Q8vyE6jK2abkP2jUVLqfvtKTT/bgXkfYK4Bdasmg4kL8cvS8y43f1f6atvwc3S4M0WNuzXBGRq4Ba4s7yJTA6bhkFE15vpE7s09xx2vj1ZP9WYcSakSRAafnk358y9FTBQ7ajdZn/GwNjBWFLspuh6vjj9/02N5MehjJRJHUZHiLdt3o4I7DoLMLhUUr1FX6LTcqFKhM73rRokxayHS37pFR5TPrcbYEW3J1GJZ9gDCOWbWexfK6Dj8XNKdGPCk1SOmnsbeGSZktiIs/YAvmH1Aklb0sD9DIUaF9yq/+2A+kbI7RPwFst1psjt77A+rZ5t1f6mAmQXe9r3uIrURgWpSjlR8aShlY6oVsZvVfeqbxRCS3nV3Y8bNVXuNi+0rsTPKinTUhbiyjiRdXiI2TDxGjkeyRG4J4ERmIsTtKttvVHwjDcpOp/QDNHQEapVUXkHA/DOdPFdO5kuBOmou4pjgu63WvDVd6JNLBx2wmnPfSKRt3VgBspEDgOJzfOrSuTUe/rywGBp0qJHlYfFub12smcZVt3L32wn8OMkEj3Oo0+4pPSnkFLcld0r8c8y631lCQyR6NCLpZRIow5fReRlHpeUSFJQMQIPZKlGi09EYPtCf6KNunD1tfzQhYhYKGGNBv88UxUl20RXu0Z7PEOXsK2jcToxzpDW/li3QROADTU+9WVKYkJtRF/Z9fSCwyEN8Z/cO4FiBGSDCIJ+CbpZDLDRgK4pc9DVNWKqILvJku+GsJouwVaT/4AnEzbMA/xBSZY+RrHPC8phADlrjT6xuxYZl+Qeuk4yVBbx0MefW9tLfajBAnWvIF14WHpjPOcvpY4vHKXSnGGo3rHPuRjXZERQj9MQrJ4aCf2zPn7a2L+b80LdTQAS5u1g+0PnbPuBNi5KsHdMeScRBH7oZhzz3srXVUmUBUbRoPPXHx/ZxjRcs4CNXdE09vdz26qEJuNPZsnddogtK1WOnudXDAL33dBWm1ZMO1sxQMyu+5nHfh9Nt8smkh/MTdiuwVH0Tu9gW2Rqo9SdoJeEtCzQU+My13lbQrIygCuW1NgfGNutArwzsvQEY87SjyJANocwK2UaWwDuDk6RpZgsU01l3zWNYasJlNIhZgbIN2lsm4sF1k8dvreiWPAqe/jUEABRp+RclfleOWEqADkL3F9uE2/i0kioFgALL0nlqbvVQQ0NbY/vBfToqB8Xj99bLFlDzyK4WWCoCyGM= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cbe64d0-ce7f-4f00-4c29-08dd7807a8d7 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:05.2728 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ysi91PGAcIf8iTLVv1h2stp08EUHAkibrBsZj7jgbQBkJn3XLC+lc0qmcmmKB3L+V9+d2tbsae58greLbaBmb7oX7TjQAZJh3jF8X5eB5rednPT+baYTY0P0gRNLuDeX X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10119 Use newly added devm_pm_runtime_enable() into rzg2l_csi2_probe() and drop error path accordingly. Drop also unnecessary pm_runtime_disable() from rzg2l_csi2_remove(). Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Tommaso Merciai --- Changes since v1: - Collected tags Changes since v2: - Collected tags drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 948f1917b830d..4ccf7c5ea58b0 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -805,11 +805,13 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (ret) return ret; - pm_runtime_enable(dev); + ret = devm_pm_runtime_enable(dev); + if (ret) + return ret; ret = rzg2l_validate_csi2_lanes(csi2); if (ret) - goto error_pm; + return ret; csi2->subdev.dev = dev; v4l2_subdev_init(&csi2->subdev, &rzg2l_csi2_subdev_ops); @@ -834,7 +836,7 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) ret = media_entity_pads_init(&csi2->subdev.entity, ARRAY_SIZE(csi2->pads), csi2->pads); if (ret) - goto error_pm; + return ret; ret = v4l2_subdev_init_finalize(&csi2->subdev); if (ret < 0) @@ -852,8 +854,6 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) v4l2_async_nf_unregister(&csi2->notifier); v4l2_async_nf_cleanup(&csi2->notifier); media_entity_cleanup(&csi2->subdev.entity); -error_pm: - pm_runtime_disable(dev); return ret; } @@ -867,7 +867,6 @@ static void rzg2l_csi2_remove(struct platform_device *pdev) v4l2_async_unregister_subdev(&csi2->subdev); v4l2_subdev_cleanup(&csi2->subdev); media_entity_cleanup(&csi2->subdev.entity); - pm_runtime_disable(&pdev->dev); } static int rzg2l_csi2_pm_runtime_suspend(struct device *dev) From patchwork Thu Apr 10 08:12:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046067 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010018.outbound.protection.outlook.com [52.101.228.18]) (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 2903E20D4E7; Thu, 10 Apr 2025 08:14:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272864; cv=fail; b=T8/ro0Mgtbx1ERRb03DZuQDYtN3PX1j3JqoAzU3Y9jkClCLTZJCC8MmN/rcHAr4OeMXT1AjAAiaN5v58vpCJHhodRAgXS8m6IIHY0ufA9mjbyxAnyOCiDqk4KwaHwzDPF8qB6QPiuBRX8cRFuje4HpfxoT1TefdimoGF1f9ufBs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272864; c=relaxed/simple; bh=+itG+lsmYTQWPhloQpRkN/MtqYNEE1GiS4/fCACV2Vo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qY5/YbXOKCuDLarjMijdxNA9R1nMcH3V1dAwrvXzIF40WHQsxSohJb97QxZkZ9uLaXuFIW+zPnZtOfREAzHu5CPtzgEw0+nLfKOB91hOK/sQggakSEIBeCh5TThvVK2o7BYAjjYJ4vDwxdIlaFqWKrkgpJzABq8X5/EBRivldMg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=vFDUIO2q; arc=fail smtp.client-ip=52.101.228.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="vFDUIO2q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BiBFyNzMlsGtAv5yrWTK1Zg6Czhvx2TJ7bXD7CucVyDEd9NHSGYWqgenrrJ/7aT28p1Gse4T5KDub18sH6f7LVIWySoeoFWETP59sD9rNGahOv5xwKGWQzdHbi7SZLPKVB7VKpqumeGzkqZ0M91VaYR5tJp6WA0Va0QqFJS7VFhO8Z64bgxqrRPgVP+Hl/6ynBeceQYATO0Rqwoqddf6ew4XVvbmBh04sOJMCQb5txx20gjuACMS4uns031C8986YgoZnrVIKRtN85/ctnoLqPCTjzfMeJEL6MQNHsCVp0/udTbf5brrexveSqGOgHegB8xeY0kOwcXp9tQLlWWpWg== 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=s9n1Jn/LuzaoqA08KS5D9g3uz8mHrNSl6RXD3nCLm00=; b=CwUFkxm9RFU/m64U9ftcN2uuYWJlm7gI68iUBgSo+p7y7wOLTGU5lm0I5Oz/3oHf3YlmWh6HlkgxJ2sw+fYKbuNH92XyXFd8eJbob6LkdHjVx/uJTzB1cnxF75I2dSsjaF6mAxTMe5znxNPazf2hMTTWjiRtaFsrkxE27/2U/kOF9qbzo+RP4SP9SWaYRi6ok9BO/bKSq4tFLqajzU6RTFYcRRLbg72vsbZkn+tae/MyVlhcPNiZrDECokb7iVoKFBfTGiAVo6hPlHqplJyVL/hRHXXbwQ2H0bz4yrAMuDwNskPZtzKQnDJ6ckowpZnoZm+y25aN+UwclHxWkLbEyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s9n1Jn/LuzaoqA08KS5D9g3uz8mHrNSl6RXD3nCLm00=; b=vFDUIO2q376OsINRIowkeufZql4yFp/ogdbJ5AceFrBcdrO2NDQJv0Dxx3iKXZKOoDAHmEdHtjP2N4Ug1sAeMLd8w7c1K2lv6igvBbu8LWaeAdURTI2WIWV3t0slSP/tQNtvupwnCbCzT4BBpabZeyO5XajsKyK6stVThNHS+QU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:14:13 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:13 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 06/17] media: rzg2l-cru: rzg2l-core: Use local variable for struct device in rzg2l_cru_probe() Date: Thu, 10 Apr 2025 10:12:10 +0200 Message-ID: <20250410081300.3133959-7-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: cd800b48-4738-42e5-2c6f-08dd7807adbb X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: FuS+GGdkhSeVrwUGaaQY4SttvivAkeOCFwFlH0+SX49MBC5lLrAzQDrv3qqzLpgVvXZSMnn7M3Q5W9vciJPH3Ked+cLT77qt//ECmrZ+yh4gzkuMmV6m9e0MuQ0TypBhQNq7Hkat5rSmFag5lBA5kfW9GI+0J6o6JgtQsEE9fYb5snlSJwwc7f9/AsuRuLpOnGPdO7WSfBB3Lv5Dp7brfwd+F7Rgg2pkSShy7NQ6OsFxHpy3aW2b6hoep+Tf9F12DPfXbtiu5A6CToVWiOA1fGvGxe/LpuqhMBJBktDlfecSTz77qQdhAumNA8aKxGys2lAQJbyJdNZYirNNIXSq4X57Xf0EMgNwPywvp/J3VVS0nyJVi55NXPfYYXDpb6MbEv7ERUVAk+yPHtZGmNs6Z1amWm06CFNM+nNe5l1IlydrYiiSv3xkgiHajmrafKPvkZ9BZkGwiKk2AutAONkW9eQ98wUpfY2zY/kJ+mCR3HID6h7eVrIWuQB5eLnV8ak1O+Pyv4JhlSB6Tsqwn0+sHyvaTN3bj70wN3YJWHK1FdAhbKvgWVdguNvDwQ6QJT8rrQYQwGDxm++K81uy+EeSRs6ktP90yxXwn0F9BXAAXKEBiWxBMUIw0Z7oeXoNcsRJ2OPJuRRkfMRm2NiyIz1RWk4NBCNMDB7pIDGjNDKtEE+42CRKWRozYJSPyrlSeP9DwQtHuk9T+E81FBYEa544iQCrUh0Qg3fYpbuKzvSxYibBbRPcIkt0KEDbYZ0Wr1BrT7FtKomtDFU3GCL50JJqtWx1tR7eEugTDGqHiPk0PylYJVXfLedij67NDKPov4rIrwEmeJt/YPZQz/3YttLUWZNDdx3ze0bYaxlLVJtzoOdnVUNMgZguFdHfnIbuZoFCW1p1eof/pzlWRTCWU321FfA9x2UJQPNfyfqKnV75FDVm8Sj1Rm4D1RXshxhRoZpCpKiaK+PIa50jCTMPj47dIWJm3vkNLkcKrVRgHdm+LoOsIg9pq6G+VEByqaDtf1tfkTIXNBUh1CWX4Wlwdlxcb/2HB7WDZaZLCouTaZCsO5CtJC51+dKYREuqZunK8TbOk7lJBi6kdxCS+6a0MEz6CyMwJ8+Sa0JVj/0E3vtY3Ta5IDar2mh1mmDnUvtdckOFOtj+R2tI2o+k8SXQRqIUSQCyLEjLGJRGRgYKsWaCijZH4Mlw4/41SuUqM5Pvd7CbFg4WCdUbkDa1iu3dl1o2zFajDzbp9SNOLj06fC7HE+f9/id1sy9Hm673hm6p/SsnxcalDofHXFXCShlaB5aruLUnOM0FiuKMkudHqo/XrS9W9NvaNRDVWtg1nOQ3CLFDIauDbOAIgm+ulWxOTWCAmBK/TFv9bS1Dwqh6EnNaqplbXBtuGjZFO9QEFZxGDz8QN+N2B1Ou2OTyUu1Da2xvJ6HzwWSlq3PgDkVPAk+2pvElpeYqjth3OvQeMKRsSsvH2Y+qnnLk5VeBxPnR9VOi7w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gcb2Ne8lqK5P7/6/t24qTCe3MAspypcBY/WEfPHcZZCR9mYTl7XW0l/Qvr0ecTF83YBF7jnSxwZQ9M//4iPyAt38bGwbRaW0yZ2wjOB5QeIgir6JWq+jsJ1HnSyj2WFvB00+B1FP0cJVJbZVk7tmeuSri5eAm12nRHoZqmmrUWQ3ttavv1JVz5IGZXkUqMmYaWtmQQe04xZJ7G1fkKCwGm838/2o5lonaUoEgzcolhQw8SVzbnY8WRS085mccsKQU6yTyH7hpG3esEQNA4+afp4bFCTHwSMWlX6dHynbis/eSzkOVGijzOspIAlRnyX4q8UOP554lItyTMPX/IUsbC/TqVlnwyjyGKEjzEpgQvN2t/mhayHjWiL3wRk8W1QHoiIDhuUYJVVg5enZ+iYCm56zyGQx9ltpKvUK6DtMgxMbHlYJlDWJ3vUv6pkW8MgnT84hdLBMmmjbtsYVoBamw3Pqrpwp4sQt0SdSn9GjQU1VCKXh7aHK4LkaXiHwoW0XuRFSd6X4iVZqD7DysQkNXcey04ip/fkNiMzKShvUhDXVm/es0VsnxZcUYkac+8Ro4oNJSSIbXvFPzBDGfY341Je+N6aeOp8fduUqskZbUjMd1JFAhD1T3hALon68qxzVV2TdIIBQYkc+9sLScWnNCDZ6cO2roQlIUi9Cshv++Hp2ieWoxWOU/YkG+EDnTAj0aUHqgadHJW1dxcjT3zP2nB/yWPoVZZQNeuMfUQTkJK3pp69GWLj8c9yM+TH6QhdlOWMC3cHhvJbubQ8mkXBIlxy1/0K3kFBy4+yMiyP2tOZ+Xf4Ho8ZJhqKxuNxd+rQi1whnANvJMmmYvvyGnpINH4Br/g4gWP8Td1dFYN3V81n0rIUAYXX7x2TcKKJExBd3MlES2sNWYxdGf1Wz6w9ZyvSKjYZvqOmuL5M7exzRjmA5ivF3UpJHXb9RfxfIE0xqjumyydqZirAV/gQs5Qkut/yCM45clTj2CfqNf0gXBSCIQ1flg1bdLv7ol09apx4eQaBnOnGDEaYAGMXJrGWC4Tpe210js+qQtwc/trPyFpvyhRRrkoC12YSNxz9Y4vSO1NRPckW0kiQpi9zW9pllxptvutUloJTrmXKQ5XlWRyoZp2LzKwNJ97+FW0WiNYUQ5SxppUU8lt1gjblyT22UXjKrQI59yrUhBrEVwiJhJQrJ0nWqb9yWQBt2/R9fqECJuiFu4+j0O8zTORL3fwyhnxC3mB9S0rA/Qzy2XmMCUGj2KOc9XMgikgiej/fDNZqJAIMJ22e9INRGtvWt8N2LvvCOsd33PL61EA5uUcCYVD7T7k9YOPsTR5LYUe1DmeoBkVDIxgEeUbeAo960rNxvrbqG4kTLsKgqWZ/eERS4L+wk44wp3AeMHB2+u6jl0NpEiC2uf2WjWWYRsNYlGJnR4ibM2/8WiURTOMbL7eAQdJeXLnj0/Ap9z4ccdtb1UO3SHlsISbFqITgumCkz1c/RoQHX/GDQ6/eVQXStx7lzRyQUhZEmQGgILEuOMNmEKVqUrcTR7b2QAI0LAu0rTcyhxNOx5sbVm0j/jAtXe91V5o3G5ardIxwpeXA1YKc3HX9lvdn9QT9XEFAoMeVhes1xOQNjocvxyzgYyTW6MDT4LjQ= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd800b48-4738-42e5-2c6f-08dd7807adbb X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:13.4594 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Fgj8q4jwredkU62vYqS5GhkAqQwMSgj9+5kQ5nMJCBc+rWYbgAe/80jBYMIeya3KllyOdQ7Uo3VGR7Ga+yRi67QWdWkc5M1Ep0dZBPuqPHkFzqChArQMg+njVVePc6J/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Use a local variable for the struct device pointers. This increases code readability with shortened lines. Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed commit msg and commit body as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-core.c | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 89be584a49885..70fed0ce45ea0 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -240,10 +240,11 @@ static int rzg2l_cru_media_init(struct rzg2l_cru_dev *cru) static int rzg2l_cru_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct rzg2l_cru_dev *cru; int irq, ret; - cru = devm_kzalloc(&pdev->dev, sizeof(*cru), GFP_KERNEL); + cru = devm_kzalloc(dev, sizeof(*cru), GFP_KERNEL); if (!cru) return -ENOMEM; @@ -251,32 +252,32 @@ static int rzg2l_cru_probe(struct platform_device *pdev) if (IS_ERR(cru->base)) return PTR_ERR(cru->base); - cru->presetn = devm_reset_control_get_shared(&pdev->dev, "presetn"); + cru->presetn = devm_reset_control_get_shared(dev, "presetn"); if (IS_ERR(cru->presetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->presetn), + return dev_err_probe(dev, PTR_ERR(cru->presetn), "Failed to get cpg presetn\n"); - cru->aresetn = devm_reset_control_get_exclusive(&pdev->dev, "aresetn"); + cru->aresetn = devm_reset_control_get_exclusive(dev, "aresetn"); if (IS_ERR(cru->aresetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->aresetn), + return dev_err_probe(dev, PTR_ERR(cru->aresetn), "Failed to get cpg aresetn\n"); - cru->vclk = devm_clk_get(&pdev->dev, "video"); + cru->vclk = devm_clk_get(dev, "video"); if (IS_ERR(cru->vclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->vclk), + return dev_err_probe(dev, PTR_ERR(cru->vclk), "Failed to get video clock\n"); - cru->dev = &pdev->dev; - cru->info = of_device_get_match_data(&pdev->dev); + cru->dev = dev; + cru->info = of_device_get_match_data(dev); irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; - ret = devm_request_irq(&pdev->dev, irq, rzg2l_cru_irq, 0, + ret = devm_request_irq(dev, irq, rzg2l_cru_irq, 0, KBUILD_MODNAME, cru); if (ret) - return dev_err_probe(&pdev->dev, ret, "failed to request irq\n"); + return dev_err_probe(dev, ret, "failed to request irq\n"); platform_set_drvdata(pdev, cru); @@ -285,8 +286,8 @@ static int rzg2l_cru_probe(struct platform_device *pdev) return ret; cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; - pm_suspend_ignore_children(&pdev->dev, true); - pm_runtime_enable(&pdev->dev); + pm_suspend_ignore_children(dev, true); + pm_runtime_enable(dev); ret = rzg2l_cru_media_init(cru); if (ret) @@ -296,7 +297,7 @@ static int rzg2l_cru_probe(struct platform_device *pdev) error_dma_unregister: rzg2l_cru_dma_unregister(cru); - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } From patchwork Thu Apr 10 08:12:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046068 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010040.outbound.protection.outlook.com [52.101.228.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 9549720E032; Thu, 10 Apr 2025 08:14:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272869; cv=fail; b=DWfJ1YFK07WJSvu7xiwqYNSn5dMX+kjLP0j3kusZuQ+JvaJhFY8ZyZQNF0i7xL1Forn748r6W48TuRw0YQMEbpWGAPdLfn0h5H9GBygQG9/md5kmUSGVpGTVZf+beS7fuKyE+v7ZMIHqYlzOHcN1p8bbBcKjrf00tlcLJJQqYow= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272869; c=relaxed/simple; bh=gk2f5O3tX4SENV+cB0k7xa34lZ1ZnngCnzzMe/PyGo8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Djjcb/CozJCqGB6T0ITg3IFZh0n1z3HG7gIcRFTnlXj7hRnNCPnvVCT8u6x9jiWc1Be7ka5s6KwP/efJFgrslwW99FWCCgd2Vujr6l+mjhH3v8/NtmDnxTUkwnbXTWmElqPJACDMCVuK4BlJf6+kLoluywtjxI2IgC4qdpClvQE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=IpW09UIx; arc=fail smtp.client-ip=52.101.228.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="IpW09UIx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lnR0qgCsy/l8IsEwxiOC8Bz01Md+4gpKN2MTFuhKL7WpVO79IklwDCfOJ+3RefGS8Atg7W9h8+0JVsHomt7irHPzis7uM38BYuwb+C8TwSA3JYw+XpuE9PnLoCnTMyz7lg+XdnMCvKjy7bwlUOlhqKrpCaTfyuziyLhjKTnxuVc/mwXsKo2QRRBZsrxeMY4dWw/rcIRWZpXANA6rzLoFQVxgZjIVJJIKQIvko/bbvvgdAL0yq25cHnk1czdHPDIIK0Oz5eL7q+6LXwDDARKWJH7Ts2eN9caPvxYwxxXdJlm1VVpVk/2JDfXlzT2mG/XBtNog413UbxiHxNVXbb/N1Q== 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=O80LhtIrIy/abMehTBvd3FaXj5QPLwAUb4l2HqwPAFM=; b=KZ6m7BgZULiTDe2G3cKJwigW6bUp9875E7RfN9CImVtxbrGl7GRPY+aQQLqoqOhv/TBM+aHALJR2cpWLKXfop4z6YFUbyETjyIeQxuzAIcb+QrDNNasbZTLJaV9SRyIRPGVL66oT/tX8rXsqP64GddCfxcQEN+JW9avAyv6qewbc9RHdDVLBukgUilFPeYpS1OfqYz5lznJDlwc7ZrFGYEWmlVMQjbwYfK2e4qbzBMv/W0Xa8l8MF088USRubOYkGhfZn/L6b2yjC9MKPU3YRHRCmfbSOzW65v83ohhpBLQbSrstXCYmnD9nOeBW+oWTYs5YLzBwQXS+lXT4ae33pA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O80LhtIrIy/abMehTBvd3FaXj5QPLwAUb4l2HqwPAFM=; b=IpW09UIxLQtBCVezroTHpMBrBf2qMUAt0GFeiKaW0V7KX8Jp639P5e7URjG6SE83DbT46qjAFKQyK8phtQtJ/SaNh7Y2rAJmT9WXX2mr/1hg5yYKNQcg9zEROWVKzPx8lBeG3e1NJVkrsMXb0VCWfvmL/MZY9F5xGAFjP6Sni7U= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:14:21 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:21 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 07/17] media: rzg2l-cru: rzg2l-core: Use devm_pm_runtime_enable() Date: Thu, 10 Apr 2025 10:12:11 +0200 Message-ID: <20250410081300.3133959-8-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: 610146dd-6f63-4af6-95a5-08dd7807b252 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: HJqprEwv68gHmB+3AXFkoL6wPEMgWsB6BJBXdeT2WMuprFrFKOeYbGCsmv+95HgAZ4bY5xbxiVimZWhat76jFjPgqvMIO0zxzcBWhR1Srxzazj6kXPDwWKyA9frUm3T21YnMH3nCSdqjTkHsjMRuYXbUU+wSOYLk+N3QBC6zjYXriptm0zG2QCqIbeo0KNMVlshAi3eTw+FjYJpmPU30Y7Hf1oDxJhmfeK5dKq1h5kv8pRw4JJoLAveZfZ5b8cr1mQ2I+4TLxocYFGfGz/AR4h8PEcdxjFwmUTVao/GBKYUUXdxRw112CMFOI3lwJCcsKLFvTokMEaEbpFpiJd69KXLxyKNtk3RDDy2MrDSjQLpgCkiuVMq0TiGX7LHQhFcMf3sjkOpehlPKJCwJ+2rdq4ohQKfw7CCfLn3fTXaR589c3CwZk2btbRrdGU0l17uMsOQ0PfUjiKGi8eYce8j3Q3XIzmrFNB0AWDATqMiHAjBvFpamJRbNSZBZ5IThvqzErCEykFjW9PjA/FkTTeo23SatGhzoP6MOeHwa2vvI8WHE4BjPZ76rx0tmNHU4zd04Laz+cBTdNgIAmdW0fJdbEZ1j8/BsAV9Q9TYRnmWfWcJVbKNuDhujTD7czErikbANqzyiycIcaEwGRgo7VmBLwk7fwGF6Cf0geSJau+74uXKaVcuM68t0bdmIDJpoWqY51Y7UoOyFAhogjfISSCSFRPEsmJot6QFCdQZDaLPhT/KXfmypXUEYk6eYZXE34h737FirUppcjwen4++643M4cfNVkDNLj5hAZZ5hkM3Cobp72DfwyZlMkA+v2Wq32ljJNQbclOmhf6K5NpT7r3qXcwheJwBIKst7OQLu30yK9XGWvq5Dqo+9hdnBfyJ3SUZEimVke01yLC4s/bk9bqKD2ViuD6OSmsnsljaiTvroPXLJ3RIivKcPjkLTkwRiCiTPjQBa9jeMsZUmHUAP9HeSP8i0SInoTQ+f0TeNdS2HhYt2ezyTsgX1eRVuEYDeqfhufjByaI08bdZGWgRrza7wzHwsFL3HHTzR8No7uUzW2LQWpBrKGqHKFzHuc7WHzdlTRc57yHxSuhJHGfMcPjopYlkoR6Jtnox+6MbUwBbAyvk5HB7jZTD4Jbhz+eS0scEt+FAMJ8dVpzJSKIzixq3AnsRfvB2nXY+kEA88JLVrq0zzevGIuMNFgLsnPcguIoyNp9kEfqYJIfEVxsZyvZP5TCbsukO0X4lg6A9k+ErQpNyNARKF1uAI0+rVuoEJ71NU0NvbaFRVnNREPqIPtozGwvP1IKG3af4yYQnuE0UytAuOiygxZxz3l1uhWA7Qlr6Q6WJGqnB0QOKiksYFt2m6fiDH+XdrHZGP3mW6mFJAHcTNtaasc9tiLOtq5JlCY7tbtw1fA00UxLiQcBsx9bUXyGP2EVCazJgTNE31CALzWZlMuqLLoF5yt4xnulI1PfdMEMJX7KmsUY9ZKmjxEB3jeA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: p1AhaDWbkP61f2wPYFWmt9sPe7fib2pcgjSQ0EnxIQhB/solPES3KV/JYOdmNGnoBTlrfCpFIqbLl307LYCFQmvvLLh7wO1BUxTrmYY6AzodP2J9/dp+CWLWy+Nw7QHAxJQ5nTy5OcpXEJh8Ub5tysqvLBJWvLNh6si9lTfGDDD9DVdtBAT/e+qWVNH4ou9ETk/d8bnPiBkryeuwSDq6MV/r8XHBllL3nJIeIqm2fs9jKj5mkbmY+UFwla7LVdW9tNPkx/nW4eW8qvb5slfvFtFjpR0S6yPXjgIdKzvDuYzgRscSIKV1Ox9SgRwtGncTQ7j6b8TOHUaLXd7BhAnbga65YdVrDu0+8pOQHOWoU8aZGDIz5tIa9D4Le0c2mOO/LeVarZ2vbAjnYBYIkIxgGM7kS8gbKkI2+GTtCaSSl7ezoKqsHUp3xrqIvG5Vv67Zkji6YSviCVKaDh/W2Epacb28wBOxeCJSnLxzbFKAOwk5ieY5NNlwGPumYXmGLhkcjchydUPDl1IN8K8cdjObCSKUyEh7QuPvGjFKGz8pMzA5+dLBU8Frn2wy61uw+psl9wxFoXWK0ffed/aRji6MTPiS5k75Qy6cwx+jZqY9EzhF8eafjWi9m+8LoPMv2TeX1YNgHq84BzVfMCMSWUxIp+SaZBQN3juIbWl92DVUrs7ycPLrMbcwfCLixE3DXKsbIjyzgoknKCuW+8x5UhWFBxZDp5YOYm5tvLQwQstZg+lvgouGZcNjewba+7bcyPYiMUhFehecnJhMrr+qiRuVwQXnMieO2Acu0LILu0o/ZemJPkEuQAgb4TSCD+Svt/gFeGzqViSDY77oRX7Gn05IqUBe5qc7WBtuDVPwpeJy4YMxI99kOo9MAT3OIk4buLteW4E5rrCqWjM7hgvx8+OVuIjeX1NaA3SEqAQDDuOJ24vikGaWzTiLXOawau+zcPuM8gP+B0yds8om0tJ2aTDT7YOcMdtf6J5x9/bBx85XRH6JD5xA8YyDqAmre98oBw5XvfjE9Ae6KybfObqS5eWzlIIVY5Cu8gMD8nQ6NsZaqDhTQJcX3PWYY94Y3Iay1kdneYKQVqDFNozENRDEbE6p6/RQ/ytIWVMw9ButxzvqdnQ+fEu/eunv6YDo5A7mN5NXS61dQk4hZMxkroeud1NzRov8PIuANh4g4jkbNvJAe1UcffSRqez2xEXb+gZJu1EdDLVqMxb+twdvgnT0Ze6YkFZuYacYhokX/LYoMJ7YaP321w2xdC7gy7VxJOmKV285GLRAhy6RPB5HJcC7eKluGNBcZiJFnyB44QHtzNbaXdlFYEQtP0J7GlMuSC98BhkWtPYhClTYqEitWbY1RhbNkKjxuARvtVL+cgHo+BbSckqY9b0RtIgzyb85J7pPxLBjjEXJZADJTmsSD/P0tWWkm9zyQl8iNdzI+QenhOCMkeCiK0j4F3OLGuPVxcz2GZ637JkyuRspj39AJ9efcjPT5pFYZ59aMhLySqww4bSp38omw6qx8f+a6BpL6nFsA08dxxQT7z/j10yXMMadmSV8/WlAt8eO0CSzLf255YmmwxtSW57AEeUvCCw8Vectl5cRLoxM3sDMeggS8IzJcg2VjeLzGanG8RA0ja4xBQ32Ndg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 610146dd-6f63-4af6-95a5-08dd7807b252 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:21.1847 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: AdY+1MrYE2pq1njY8JnJPLmMB3LVh6fxk0tNR0bRkBvdgQI9cA3plW54o7A4leH8cr2Y8nRz52roxEAT1C2CjyYc8M0X4Ou3sNaNpIbYppwvXjjZq1nACIbTf71qQeE6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 Use newly added devm_pm_runtime_enable() into rzg2l_cru_probe() and drop unnecessary pm_runtime_disable() from rzg2l_cru_probe() and rzg2l_csi2_remove(). Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed DMA leak as suggested by LPinchart - Collected tags Changes since v2: - Collected tags drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 70fed0ce45ea0..eed9d2bd08414 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -287,7 +287,9 @@ static int rzg2l_cru_probe(struct platform_device *pdev) cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; pm_suspend_ignore_children(dev, true); - pm_runtime_enable(dev); + ret = devm_pm_runtime_enable(dev); + if (ret) + goto error_dma_unregister; ret = rzg2l_cru_media_init(cru); if (ret) @@ -297,7 +299,6 @@ static int rzg2l_cru_probe(struct platform_device *pdev) error_dma_unregister: rzg2l_cru_dma_unregister(cru); - pm_runtime_disable(dev); return ret; } @@ -306,8 +307,6 @@ static void rzg2l_cru_remove(struct platform_device *pdev) { struct rzg2l_cru_dev *cru = platform_get_drvdata(pdev); - pm_runtime_disable(&pdev->dev); - v4l2_async_nf_unregister(&cru->notifier); v4l2_async_nf_cleanup(&cru->notifier); From patchwork Thu Apr 10 08:12:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046069 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010052.outbound.protection.outlook.com [52.101.228.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 2A91F2045B3; Thu, 10 Apr 2025 08:14:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272877; cv=fail; b=Lq5XcTd1f8HkZKuFiP1NfKCW8o7mG+3TvpzXTCmuW8n+fwdj3zk+3qaUWSEFlvVX0WU65txZPQFFbFAp00T01/nsQig4pURiU68bEOzSMkKDLC86ODLLgiDTj7AC0FpJFdlxcs8PLfjrr5dkZj8LNm4nelAINfxKPxo+1Sc87s4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272877; c=relaxed/simple; bh=8rPwWyKGU42djKH6MYxaE82TLxzNheQbC/s6A7rWfWI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tMzxB8ZbLp2Hb6GRwFXEQbUuBjz4Ilffecu+XujyQ8iOCLcozJl1uFLO54SoEKWSehxGRhWOGi6cjBg6YEKrtu7xsBWaYVKS/dwO7gTNRk5ez7L4Kw6NPpaGzFSUULbOLfsPMPO5SVWu8bdhbmUCBYqm0R3v8C95/I4XHsBQRvE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=F6OWkE8F; arc=fail smtp.client-ip=52.101.228.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="F6OWkE8F" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g+lV9zOnzEIczwaYvSgyvhuJ98pdgxbxwwe+M+IsJTQ2db30bKE+R8Zgn5IgQF5MeyJnNbCQ94oId1XShBEUGazUJX8BqS0jSYomA17AQU2cnQ0w3T5Z0yfeuT73qj+kr+d7q8huFz6mktii0zjjQMhCBC+iorhI7y9Gc4CuswBGDaewF5hPKJ5HqKv+yW5B0OB6rLDD1VMSLzTNHabPHR6pLe1lvP4yNLo0XGF2e0ooRHcudVM9UmlLTokKSvxy/k8wPXdc/4ogb16rSDmccR/+4siLrkN/XivXY2c5y9GYtGC2qzk82CmB2YHdXQrt9fpSZEOAfuJRV2O5mAB08g== 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=bM/KzKiGFXhJddIsb0wAEvP17kYlm0x8ySJwv+CLakc=; b=jjgVdS493l6VH7nIjEMfJfJgxulp+z2arX7GOHOiNG9Yv2C4F9UkRuWDN4EE3SMKRGC+72qNdf06aZDopQnqWerQg5Mr/OcGYnCJXP51uIO4gYziPLiVNn+7T0C9U5mCFi9WBa/JyAxjTo12UvLny11Gv9ykf2lOaxSyY8vGjz1W/hdXIYqCygmXlyx8pwh/uhEYri9y49OgvkLMM7rU38eE3GeeEcKxvpE/zYkUnMKwS+m/0XcqoWnKKTzmN2eGv4jvnReQWfqPU15E8hFl/RvWjE7Y2JEUhqwDN6y0afBkBoyf/cWYw+MG4UO+w1fIVpzCUtnD5LN3dfAv4sjv4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bM/KzKiGFXhJddIsb0wAEvP17kYlm0x8ySJwv+CLakc=; b=F6OWkE8Fym7lESDOl7tTYwMVjuO5Cvp39Pf9bMKTu38a5qy7qrbxllOJ2vd+gh1Up3zxk7Yn0hFmZTWc56enydcWncXHujBGaKgOvpuFfGl8skIoeM12vqNitP8sBwd3zfzPboQg7SO6c6IAKWYFk0HlqzSLR1cjWMoi5JayTD4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:14:29 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:29 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 08/17] media: rzg2l-cru: csi2: Introduce SoC-specific D-PHY handling Date: Thu, 10 Apr 2025 10:12:12 +0200 Message-ID: <20250410081300.3133959-9-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: d1fa969d-66b9-4d3d-d137-08dd7807b6f4 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: PxpT+azhqI1udYycjQDs/5COtZ1vJbLdqNlmQWl8X7TLA+AdsgGSdP5B3kDuQtTTUPavG6qtdtRkg06X/k1W9dlH43j5eR3evwkm4kZl8nlfIKDT1ZXN2YsQgA6fB6pOseTHFX6cOXndbEdjxxQP3Kop7HGuNVZ4DZIZk94rQN93MdlJ5PFIe6N4lWXzQ9Jut6FtgQB5k9+6vXcqVILdTROmkAdgYgw424LFkUUPkw3P/404sdojarQn2lK0lbbBzbu7yVSj/TtF7C9M0LnBr008paB40LiPzYJ13NgjBm6bwbz/Sn99pOpQbsp8EReJzt31jNq+N4sJ1SHRlN6qkmYJOMauwcthSWE4qSTt07IAVoADpBeFRYxzsbvpC33aNZpLeeeK5IZ3t8JYupS56Sk3L0F6bM9cOJZ3ZUKP+ydTO9GdEyZpx4qu2snZCYNAiPYFPNDHblxbuIGQt7AnDKRtGQvCzUGZbRnq+y5lCjX7UlWeS1o6X5misq5qycJqfb1zgAgvrtqpYYMRJwYRIBX37r8GXqCJHL2KhSI9dhsJCnJdJhI95sxG4BBXVL0vxWeQh5ksaw34eQ4VoaZCpBrkx9q1xv9RbTsRLeotRnx8G4xtyB+PwEn30jVZetNr/AN1nlYHEAtpzyJByjXGBDxQfW9YsJ+HJ0DxqyeRsoT4L1ya86EHZv1r7Ik43u6zGmHAM1qiJAMGMz0oUe3+IiD+uuE4VwQzAkWsBjm8WQO3SZxQJ9J7rA98nx9CqPN0d/mAv+/HNkFPKpIrNg3BjoWEoiSXXAb96YWr8vKPrDMxjTCh1VcJBSliVWTPVtd4zd/1msCXZyp+1LekZabb5/4wv8Z1NbNzy2M8XcWky2L9Ih+rcWwueJS4sTTh8uiUd0+2KpiTZMRPyYDO3cHJkdjRG61IJsMIc3DWVm3ul7Od4+ZJPww5DA8IOG24cwJcVjC0NZEXXMei3E2/h3lcyi0TQEBsglUVPytjGO8JDxVc7FTtkyWbK4xQHYzBJOZTqJ4P8iT3mPCJPYivMJMDKiNONrDGLPcbbDEj+R595VtLgNjUJuHqWlkXH/IWLYHo8iHjJCPL/1lcRb1Xx+zxtEFZKc1hJn3Z/wqHqm2XY0cjZRYQ/MVmz5gj76NNg7rl3uT4rrthuKyA7o5e3pX7POmfmbGv/5VRVZH1iFaCZ98iPWQoZFr+OKna0T2A6m8GPiZ4giJlrt2AksrpdFwCCzlqKAR9/dK0+GNKt+adLGsGq5FqeO5sEtVVyW9qO2Mgjak5ADDMq7LWLBzpn9RoqodiU7XtwmNAYXlwJslvIwTjVhxZ7djMK/pt/6c+EBYn3jSB3c8AefSm1cYXAi5muIhBITORCHhyGW1TrgWpZD6QxhOuu/o1z1N9Y9itaNUQDxiGObnHQ/rTgINT6NK87YBwg6HfcpXkZb2ePWTa95lDzsfvQ3ANiIz4r4MChykafico2zfeP9VMQ6/FtW5zbw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ftIYU8s280ldFnH3vKWLLqcCjxzptoA5RuUvE0wGjPvgn8VcofBks4fHMxtNFZEJzV0QccHEWkLItOki8i8BcwZgejATtDG8CGVKDRZb4XgWfMcHeqNn3D75snpUy0EvKRayWQCK517w3Ahgjutf7BG9UPHlf5A8kOPyF8utGcVAoNtj4Z29x/Ox6nJ23Gc8p8awqs1GnyRDd21yhE9fzWny2w/C13S7bifxTBo7EjNaa/NTy4TErm+E1754tT8Ep6nH0jNODPp6dnxQe3NYrHSyujfWZWDE47Od2sYVLCydo2y1IgpJuHrhy8cqvg/fxr3hBIYuTVscOh+cyyBl1X9poKNWjeXSDFjgNqvjAlRxVpLltqhReW/0+g5Sd1SG3VTeIVbZgQmZppP1AoEXkeWBKShewvmuelzZzhj/hrrRN49EZVyaEWh7AN3RywyNg5e5Cuf7RPaIVxCV/54zUethv1AaJoDMUtSEfEnBw1+BJjOC7okp6/z9uvD8YrODvODfKGihteWMTol9vXpo0i83ZFiJVgh+Nt15qX+gL2QukqaMDmKuPF81I6EDtKfW+ChX8p9KmDm4ArmjPqfGbHADJD1WiyRvHTH+h73AVAEtfY2mkfhqIcf6neXhHXZ8jE4adHz+PMSwtC4Xl+gnXsDeyvrlU7OGqhL0BJW+hcQZ9Qb77XFlEllZHPiz6rNTCFQZ+L8YmReWQ7PG14GGm1xERGI9O8MdGUBkd4apvENSJAqtgwpw63EIpAaIFv6HBfchleAzsLhj6eA0Rpf36I6qOe2crRpk+Oo4Yd0XpO0uUF7j4OGiA+OlcJ+1X9SU6WjBRkXmmQn0DNIPKUMI0c1wnrN/Z2p6lPjUy/VNAKcdBzYZo16YU1dJ/Ezcg3BvtGtCwgOCSersvrZIofoq97+vUkbWW8oznZX+zTZO5i5hUONdUHlhuNTp16pp83zJ2k/z2hpr2unxppxURJar47tes2UKFAiJcDI5Eb/yzvRFrOC/5c3dlBGJWwDrmFmz8WUzPYFX8aR/+XQSc8ECo1CFiWjzBZJ43rqHuU8jTNvIBVYb6BkCOoPcPIrjdMdsGdFXC/WtW2RikLd6AXVaYxYcqb1C0P0B//jsY/KgQqJVGpsfwJf14MQTx2+YjsAm45YPZyVS6CdiumwBCug3abD+Ix8QT/UPY9eyGX3ri8mat/XTv4iaRFosGU/eXdOGrD3C+4wdJ2ebMJ6LBD6LkZZl5XsD7mtvbK60w0T4mssGBIfqpmhnBVUxsBLsGSKSu/qxrfRr/655Gk3hWG5311/bLZJYOF7EeXlS8I5gUacnXOedfnOO1Q22NOer5O6Nn+06FnzHxIDYLc2Xfd4714KBI+3qSSb5ETo9e4+3WolNioYPpSENwonPPciutY3vmqS8GtCntDIAnMXXDKVLUgH7x24kFIid1ltq0DAterbyILvKcds6iUZrrPxZqoxN9BnTNiWFnUOBbg6LkAd59s6HAEYDWEoB3rwUEmUTWI2QpVkF5RyyfSqmXQDLO+spRNdCajJP/meiWEDByK8HbgvEz6ndWR5imJMxKGNnOLbpZ0QtFJQw1cNls3IncHStORPtXXYvXe4AbV3maCnauuU2nzovs0rpm6vqGdxyWSw= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1fa969d-66b9-4d3d-d137-08dd7807b6f4 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:28.9544 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ava7NNQ0PCksMbVDQWFvGoUY0sy70M2ZvVgIN04AiJQ7rT58c2f0yqQNYKL1GbZXTZmXOhUNCkXqpOrgH3bKygcFoGyiRSkIyMmfv7x2j5HBvWFvr0dUe0nDO0q1uUJC X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar In preparation for adding support for the RZ/V2H(P) SoC, where the D-PHY differs from the existing RZ/G2L implementation, introduce a new rzg2l_csi2_info structure. This structure provides function pointers for SoC-specific D-PHY enable and disable operations. Modify rzg2l_csi2_dphy_setting() to use these function pointers instead of calling rzg2l_csi2_dphy_enable() and rzg2l_csi2_dphy_disable() directly. Update the device match table to store the appropriate function pointers for each compatible SoC. This change prepares the driver for future extensions without affecting the current functionality for RZ/G2L. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Moved rzg2l_csi2_info below the definition of the rzg2l_csi2_dphy_enable() function as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 4ccf7c5ea58b0..4aa5d58dde5bd 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -107,6 +107,7 @@ struct rzg2l_csi2 { void __iomem *base; struct reset_control *presetn; struct reset_control *cmn_rstb; + const struct rzg2l_csi2_info *info; struct clk *sysclk; struct clk *vclk; unsigned long vclk_rate; @@ -123,6 +124,11 @@ struct rzg2l_csi2 { bool dphy_enabled; }; +struct rzg2l_csi2_info { + int (*dphy_enable)(struct rzg2l_csi2 *csi2); + int (*dphy_disable)(struct rzg2l_csi2 *csi2); +}; + struct rzg2l_csi2_timings { u32 t_init; u32 tclk_miss; @@ -355,14 +361,19 @@ static int rzg2l_csi2_dphy_enable(struct rzg2l_csi2 *csi2) return ret; } +static const struct rzg2l_csi2_info rzg2l_csi2_info = { + .dphy_enable = rzg2l_csi2_dphy_enable, + .dphy_disable = rzg2l_csi2_dphy_disable, +}; + static int rzg2l_csi2_dphy_setting(struct v4l2_subdev *sd, bool on) { struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); if (on) - return rzg2l_csi2_dphy_enable(csi2); + return csi2->info->dphy_enable(csi2); - return rzg2l_csi2_dphy_disable(csi2); + return csi2->info->dphy_disable(csi2); } static int rzg2l_csi2_mipi_link_enable(struct rzg2l_csi2 *csi2) @@ -772,6 +783,10 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (!csi2) return -ENOMEM; + csi2->info = of_device_get_match_data(dev); + if (!csi2->info) + return dev_err_probe(dev, -EINVAL, "Failed to get OF match data\n"); + csi2->base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(csi2->base)) return PTR_ERR(csi2->base); @@ -891,7 +906,10 @@ static const struct dev_pm_ops rzg2l_csi2_pm_ops = { }; static const struct of_device_id rzg2l_csi2_of_table[] = { - { .compatible = "renesas,rzg2l-csi2", }, + { + .compatible = "renesas,rzg2l-csi2", + .data = &rzg2l_csi2_info, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, rzg2l_csi2_of_table); From patchwork Thu Apr 10 08:12:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046070 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010038.outbound.protection.outlook.com [52.101.228.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 C2C791E833F; Thu, 10 Apr 2025 08:14:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272886; cv=fail; b=LscXkFX1hXKU7jeqmIHiEXJ9WWgLq65CfuZA7uKXiILwBxncQP1OxoKIGQDgW7CyxABtrXPU7yXD5ata0XkAAavr/sOuvB5c2ikZFtfhs0sIlif+W9JrZ5svgriKNarmki02z9pFsLAeOi68yihPFM/Z9QVoE09Grc4Yzczvd+8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272886; c=relaxed/simple; bh=WsTe5yqKNpbZhONBV9fetn5jZK327veD/arzfRgY/bU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=grvLe1vDIwKRq+D3SYHd+c+bveCvkrzmfBsRH/WWGLR/lHFq9v/xPJaZr/mfGJrVCrl68kSalXc8ttNx39k/9BSNysNI2zvkmM61iJgr4OCT+n8ABLQ1Wq0TLCzCujFFXE5NL8a0wiSDu2MoHgfuFTpgM61d8j9AkRI31WjwzXM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=qi2Tkq9w; arc=fail smtp.client-ip=52.101.228.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="qi2Tkq9w" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ktm0fDx89fL8rmj4Gy0Oj3nu/vJBEjn1TLIvMmAGyhgcDaq1MueORHNqR+U4NIHQa9wiJolYfnFPFVsjU0j/A+6kQX22IObcH+NNYQgEMTF00EFYgFkmIOQgYjgPfLUOoI53Lq04Q+ExtY8H/FdU2kfx2nlDR7pZ9NBOCKSuWEjxifwr8eIA5Rm+bNb5J7JR/mXjxQSGqPCV4j8FKPqR/nZ97/U3xMTudLtW5r5VX1WEfmy87wvwxvTFdsOAHg0nxngy+bi+Tc/7TNLNHlY+GATOR9ueauGjXxxxKRgUG3AJjnIB2ghDKhZadwV0njqecuYJv4qwcdbs5tcrRdn4nQ== 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=JU2z6a883QLXEjVLggf/IXa/tCrpPjFJYi5Tqfv177o=; b=cr7cIUMLq+rmqWkS8KPIUROrZZDbmyVTW3PydyViHFULpH7m3bEAos2MiH4VxSuyBJpo6HFmPddlbQQ+zZ+7p0hHANRPD4oxgzQO4J+THqkAK901FtWHV0KcmFHm4bUlScB5XbmgOXMvtba2H/7c6bNLzFHzudB9Sj1pAAguYnFkVYSc+yg/o7Nn3id6on8MpjLhefnBydDJ3PSXuq1lClWDiI+xpcIhWF7k1Im0cRuSmtvfeVEgek1Xulp2NRK4i1MZpXrtpIlzgazJHKMlgxwrkr3GIXE4b2Kx2s2SHYDbrW4mscrkKH49oB81VtoYcOhPofKkUThbugUa2+QkJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JU2z6a883QLXEjVLggf/IXa/tCrpPjFJYi5Tqfv177o=; b=qi2Tkq9wfVn8QGmmvWhb0bL/wIJE+M8evJL/4oVR6FFU6/UJgyoXFVSIGlZp3ZgpCIpiAUvMhIKK00+xNn9g/C9J8EpfvqQb6Aan1qV20KAm6G4CMl802DXjw6525lW53wHpJpXix2iSV6jFviCITND3qHow+SoCs48/JRj2fpY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:14:38 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:38 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Laurent Pinchart , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 09/17] media: rzg2l-cru: csi2: Skip system clock for RZ/V2H(P) SoC Date: Thu, 10 Apr 2025 10:12:13 +0200 Message-ID: <20250410081300.3133959-10-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: c4baccb7-0466-4b1d-90a6-08dd7807bc55 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: EC3RKBpQazAR3pNKSryI38Qe26FAsIsNqMjBs0Zij9TGV2ny1ZeeTH/hjCn3EeDCyg5IntZ5u6w6xFUZFI0640C1HRbdOw8CI2Ryum4ttRx0LHMk0Vv6h+/4zSy02pvSqfq63noxGQIP8m7GDySFgCXZAVMwvN2qdRwhZDHJf2jk8Gw6KYgk6DhFawpC6ntFas9AVxJaCo753PmKFSeA0uifv5M/ZyF5wdTEQ6fOFeE1eXBfM/PzKhDhSqKncsjh5Xrn58BQNHz1kui/LlZdITc30r+YVE2gogQQbnE080pgZ7yeSfdJ1bXRPU0DlNC8sFnPtGU0VFw2g+NTG/B4VF3YrPgNhtbFg2XGTPrOJ2swVy8Qk1Q5nlsivNHPxC6tBrBLcafIe0eTbHFob9MFGleJ+6n5w1PKANVvS1wqXQR2Zz9Np8SFfYxdxq8trm1Z38d/ftr/VTTB6f3rp6xClPJY8lR52z7Qk9vR1KFRAe/E9mqh2i99+ZYzExojYmOivreZg4uddXxpXQ9dpCfQoCOI06TfA2ZtorlZ+dPlhJOjlcWLrRfG2wMrEOuYDNM8i2nTH41YxB3bln9WLpZT657glyECZXDSU3mRyxhb/TaUx46ajzRBq/N+h3V+iCbqIrWm1c5Btm8xuc82iE0Fmo3FI5mGOK09fFiJpEUbSZGSpwtRw/u/m9Ww7UGImUGTKB2YJJSGAqcP61SiXVTr0GVUJ5UElL0SRte5kbbh2IFzI9DKGzlb5/IG+kpubVcBr2NCEtjyso33w2HnpjU4qTOQSn7wQEHCd1a+C+C17prX4Y0z68hrLKpd9TGy68YUWq1b9pN5w3NVJoWi8N6kQ+5HKoT369rd/3tm5sICgqA/5TKBuHE7VDDnD6qGCSXhmcdTaUsEUhz6FKnp5p0Hk0IZo7QqmKcCaP7jLXDulWRkgiIBl80lEjBgQlr53rg3vmJduQLgHUs3U5QRhdDD2+6DMqBYGYb1t2945qkY74Y6lxEIbcuviADVfTxcNEzWz7PxY7Pd9HSxkbANe07TQ/z1M0mfgUAGhM3ZZVlbARktKE4xiVHotPgaR5rJQpGCxs7a+uxWb836PxVAyrdcAQ1xvfSAclXbmeB6kiUj8faWU+zD+Bo9QNjCcLeloIO/3Vijvvh4y3oixh6JGppMy724hMEvxXIuBERQ45I70GA7vi72x2aqw8hp4tn9vpOtVoM7ZTaeygTcdLtViE3TzMUAWTETWmvwfzkV+Cq5Le1oICryOvOW8XXGqtXIaes/F2nc6BMCHuBPJsgaFSKbO2lOR2QpcdyCTZDmpQQlkqoOt8GjBjQm1Ir97fKYB7b8urEHlIOMAmETXwbcD53gJIFili6ifjAEc0FWB2kkJ4KKEFcGUtnACcrPtTtPhamHQot+4mGorKhzo494S42FR43g2EZWqIZvhKzl5dnFLizYj2TaIixmRre5jx7kH/MAhe1lea/52HxcomAzJUacPQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zI4ZAAKjB8vknH6abaq1fDHXzSP4p+Kj7D8WhwuNuqxn2Cvq3wLX5NDljHOcWRiooMS91Y36V/wdFZnU3aZa05bOFL4Tj50+X44MMFK/iFj1V43Lxs6gxdpkvVkIxX8vNaHkYzkU/OsMPFkdIBQVTniLTYtUdrRTWQJJ+HnqiCatr+SV2YZHpY9DVtt/qG8c7ft6EYViTE827MY021Kv+O4aS/pTYGT9yjwEbrVSoDebGD4EKzGjOXH/0PiYLaKeniiyjkjnKpUB4C2iHpTKG1kzlQj81gePP0I3+y27heFHg+OaoVofExs33WGhzQUXrymsXZwWVISsFKn1eSqZw8bgxufADo6oEee1eGf3x1ZVNx1nbuSDxu6JBOlwQRBVnAtm49Jbi4j/G7W9ci7A0hWfrXwCAh7jb5ssk7FmPH+2SpDwuiJxpt3SC/aP1msjHyuaWj/uQHKK3r/h4+nk83Gch6i/eJcAgz4a0rR8b3UD1ZKLErSkJHt2XRFbgfM1XNBoXFNsFiuh8lbk/QbbsgCxOdF9fjSVujuKHglc9pGlgFQh+tNsczslWgWI5p8pR+2aDLC+e2w7UuqXwNOak00k8TP3nVjmZCSnOKhwMP2LQE4Fn8fV7rbFARIm6SZ4LlxrJIHFTEC888HcxNLsVWv4qllWNNieWBR4Q0geevbIWnyJSnfbku9I7T/7qkTaInYHGocyd6n1gd3Km8/iyBg4M3z1vI/ibW6bQOk0cwQn3UL/B/hoqXCm+3TSkJJw0WbIz4ieQaBthjoIl+QoNH2KVg4VR+kzOw+QyBRGf/0ord33bvBlsjM7Mnh1weU8TCWsgU7rtggOaEAoYLYninDn2zTVUI8vA/G+7yNLvQOpe/zTpZC4aF0ENdsa10FN3MpoFX/3yWOS58cg60DDHsywOTyxQtqRGvSS86pAgQNIwMvy42azeVA+kfMPohxaGTf8HFWKGKd8bH/j9/yxnEieRpr2OtVCjwSaOs3QnQesuSDL9d0ZEv192N9mHfoFp95VkMfPBDrI4ejoMrWvc65eggPD7fJCSvpMQW5Tfcn8MhdBpcS3jD0stoKqProsJVkRqky5fUdtSDmSfTfOwAWNm0gLVcC2ao2y+sUAauI6/N4BAH8UH+zg1RJ0XQtFV6BJbUOBFVIPlocAoZiyjazIANWe1TuMXt65hPZ/Nr4qASvwbHXA77iF8P0L4oTUhtVOr2yzgRd5qqks9+JjLSVMHt1Ys93Z/RJNIuMZsCl+pV6nYMiDXkrwzRdZjLEVVqP90norRJun1CblOAJvllKhabo1POOMQigXvCzWm0alcde5lglWqqJ4k5i1X0bpr8VAHk88WDIeoyU1pO1O9ZflTRRDfgCf4oN9fcn1sIuRGWCVwJ+9oISKgldRCjKTIiMqKXNeQB4ryHe0hwh2z8c4mfzoZg7LyKK6jBCs4+S78VTAL9Qr+h+XGaYlDOfx5E4onmiqje1+A5l7u/VWVmG/DmaYzATwHyGDc6KHMM2TsQ2Vve6++/5lz5xKVMePDPBBCn24UNy4YvG+s74BViL0kMgSkA+0tlROkAy2Rim/pDbtk6SBFHPq4spomKoZ3rqk/Vr1kOpmwCpkY6SCuLxrtGyklyX/N5jdoyZKFPw= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4baccb7-0466-4b1d-90a6-08dd7807bc55 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:37.9865 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OUXF4BNdsbrLNBcmWoMZdubfz2ukMJKF9+gGgt+vdgqfuWMT4Ztd3wl/clQyQWPJqT6FGzHjpVIXvqbvKowGcPdmO2haIFklMPW9Xt9xk+0rwLzBHMQfbzsYuziRSQ0V X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 The RZ/V2H(P) SoC does not require a `system` clock for the CSI-2 interface. To accommodate this, introduce a `has_system_clk` bool flag in the `rzg2l_csi2_info` structure and update the rzg2l_csi2_probe() to conditionally request the clock only when needed. This patch is in preparation for adding support for RZ/V2H(P) SoC. Reviewed-by: Laurent Pinchart Signed-off-by: Tommaso Merciai --- Changes since v2: - Added has_system_clk bool flag to the rzg2l_csi2_info structure to handle case where system clock is not required as suggested by LPinchart. - Fixed commit body and msg Changes since v5: - Collected tag .../media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 4aa5d58dde5bd..e4781105eadc0 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -127,6 +127,7 @@ struct rzg2l_csi2 { struct rzg2l_csi2_info { int (*dphy_enable)(struct rzg2l_csi2 *csi2); int (*dphy_disable)(struct rzg2l_csi2 *csi2); + bool has_system_clk; }; struct rzg2l_csi2_timings { @@ -364,6 +365,7 @@ static int rzg2l_csi2_dphy_enable(struct rzg2l_csi2 *csi2) static const struct rzg2l_csi2_info rzg2l_csi2_info = { .dphy_enable = rzg2l_csi2_dphy_enable, .dphy_disable = rzg2l_csi2_dphy_disable, + .has_system_clk = true, }; static int rzg2l_csi2_dphy_setting(struct v4l2_subdev *sd, bool on) @@ -801,10 +803,12 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(csi2->presetn), "Failed to get cpg presetn\n"); - csi2->sysclk = devm_clk_get(dev, "system"); - if (IS_ERR(csi2->sysclk)) - return dev_err_probe(dev, PTR_ERR(csi2->sysclk), - "Failed to get system clk\n"); + if (csi2->info->has_system_clk) { + csi2->sysclk = devm_clk_get(dev, "system"); + if (IS_ERR(csi2->sysclk)) + return dev_err_probe(dev, PTR_ERR(csi2->sysclk), + "Failed to get system clk\n"); + } csi2->vclk = devm_clk_get(dev, "video"); if (IS_ERR(csi2->vclk)) From patchwork Thu Apr 10 08:12:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046071 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010058.outbound.protection.outlook.com [52.101.228.58]) (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 6AD47205515; Thu, 10 Apr 2025 08:14:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272895; cv=fail; b=CWzCYx9qSSBAKEy8pmAP12eZtKPze+hy/hGCXtRmbE0LqW3g0qplkR1obVJ2g2z3/gZsdLeltwYNAPD//BbIY6xuAXSzm4XkKDT4/pyHIVJ/XfM8r6zosvyeR36QSTmXk+gthM5rt7nRoASgayDWYvcoJBnwE8rQLG7qyKYSCzE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272895; c=relaxed/simple; bh=FEW971mqYDckTlqliO9ZrZLh4MZpDT0SU4fDmE1lJlg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fFcb/mbElN6zXYpifLS5//kswHntYJ1JSriPn9GshNfGslpkE4FG4Eb4MvzVE6aqjSkdDA7MxKGa5G9t+aARSs89DVMNd30DwadIL1qtNnZwuCLzGMfFgFOQaIsbpRC2BDtpvLjLeCJ11pnXbebDxxXf81NkfDW2cYoZXnpInNc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=UR5ks1WC; arc=fail smtp.client-ip=52.101.228.58 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="UR5ks1WC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f0TC39uxlfv3qasdKRDMerxQIeBBOmns11B6i8IgdWYBOxN1z29rhm+WRIH73n6RRYMCqrpwRoYXs6sLewv5zHKUPsj/UuF9DddrhAuJ60gg0O03NY79VNoOEhgHBxdb6k83slblkue5UD0jAkr6lfqliIn+g2D5roq8b4LHejOBsDoe8v45V6PD8tT7JQWPM5Q1W5zDNpZ4IdnERWWQ/w9qyCMBCWKzBbtvnMGhiHgc7gDdp/PCe3Q9cEBxIKrUHxv5vOY7E4YeF2cSuBaeQ6tRqcGNNlSo4Bxn2KBX9XltwP8N1VO0zefcfNknIHvSJ8MN0dlmjTICc01qP0CKxg== 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=jPCAyGIaCpVn+CBKxCEdizeov7zcOBsaTTXln0USCBA=; b=bvFikW5S55/7OyXuNKR6pVVuocV8kkvh2Ad5VAII9DCcFXR+K1l4nyBq91HJpU5MC0ZQXLMqGtPJxM9ZKnvp482GaTr4LoiEYaGSuKwIzRCcCltusCUh7prmVcuDnFaRAhk2qwySrGl5Iui3K6zrQpNvUINGw1y0jNYhN52PDUI0EdLhKWhcJhLxOyqzELGJ6zCe0zVrF/wG/RH1ifcbK8pxwvqaQKYRn7SosHuGdk8Y54Hjq+xf7LYeJwcs4EhMkX6wRLRrILHBDilkanFOJv6do0TCdtVV5/WKNkkjaL1wtteZatdS9ubC+yzmewrcNI08cyyJzaofxUFEZhiykQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jPCAyGIaCpVn+CBKxCEdizeov7zcOBsaTTXln0USCBA=; b=UR5ks1WCxFKz5pNVohGa+7KPclpfe2qmgWDX+u5eD6vd3OGvuV3CrNOsOKC+bR1DILuNE6rnwAWwxlFLu05DQrQv2av96Y5lDEu8jLc5Aq7zlFEdE1Q1woFrmVBvksvl8FwNRtQtNrn7i/RJeiQtg8RenA9sMcUPl/LPTEclg3Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:14:46 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:46 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 10/17] media: rzg2l-cru: csi2: Add support for RZ/V2H(P) SoC Date: Thu, 10 Apr 2025 10:12:14 +0200 Message-ID: <20250410081300.3133959-11-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: aa9a8878-9f43-417c-c52a-08dd7807c160 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: waEGesA79vF3GboWnbO31fIVCcDFH8lI93MagvTZ6udtUwOzWZC93UwhJLWCvfAM8L3IluwCqWJqM26v46wh/mqSXMhSESq7ZbKpjMdCy9nb/EsO7KvUBuDyk4kJfbz+tmFF1g7TBgPXuePgXPYHDCy9f7hxoZs44eSvs4MftcjFDaXxCkznsGY7IjWqqRDwtQ0OaLWOpdkoouMA+nQuPqCeaIHGav1g+MXJ9sHtGEjVty//QdB004o3NZoVijXbXzUXMedQFDHtu9l4oQe9WZEtL2ZNwFZ2llLQYRolk2t+gx/jiRDfDd38Tab8TVu2EnSXjK2uPnW3C4J2NdeetaR/JJlRLnw1pQIBfkfwWXgtdThPlXcJ/8Lq9S7ec10Za3gql/QbKBSGnJZRqTLWbM0RmjXq6Sxum/NP2j4MyWpHeH7ZzgkfALRsDPdHrK2TRQDYaoZlrONcRZ7P8ki9smHrQ2u0qiVlcoZfxXRSrv4jKQGjGOazzE00E0N9bZQaOe7UiS6IfwWEMQK9lLdGQoQ6CMSEXF0S8AwSbasaHwIJGY6dNlnfMQ6US1vxf1p8Sbb44NJZGioVAvFvZDD5cv6I6AQ+ZVsNvWyOWv1FGyfCyofGHa660Mg2K85mAzQyxLlPFGJzo7D3M0ttgh1t1EXT708eUDaZuZmNb6ZKSMmLBTIzzvOu9OxxuceQt+302f4d50ZaMgSBgpxI3nOR1y0fNicYfSYO5c06pnwbKOknuTIZWBAH/aXm6YNalqicSIndfimDLv/KPUzriPdoYo/p98q87itkY/6+FoiGcL1q58Pt/id7EfwUNBMuz7yiTz+ixe3IbjzZfknoHnD++HHE9PSG7Nki+9y5i9+JkIDqgNInk/RI+6rPD/6UbocsvUKayISYcEJ5/gKZCzwktfBOIlvSzNWIMiadTl5ArqjIqzA65FS6yxoNurRfpRP8sCHQgyF7C87v4xz2bIiQEMHkdGuU7rzAMwhIuwSu+M4Jcog4Mzg/gw2d8DvX9wgPVtydgcySlQrC4YlladO4S4xjsqLfvGnIxK5Oa/K6G9FinN+eIUrhd1EFB6Mfa2fKc1OO33XjSpalTzHhWJBOWaRkG3OBM+KcxzjWtO7ZxehzP0KG65t5+aN0xIKucBtyrIEsQLvESxdYinh/dfeLCoxq4WPvNkjFAv81aS1THWPEUL08eBEuMLTWoxy3yxvDWncvWHoqpog+XWyIdg/nIMkDW+Z2L/o6zkIc26IVKh/ysMxUSTY+kalc9lvM3Vd5jGCdTcYIYM3PuxUPrZYebo7EQV5dBnECu15BEQMw3w3Gu8O+p9a83csYijO/Uki1nuzHnMBgf1vmbw0G+UP+Vtjan8wkOL9pfb7uASzOlfjCdxkL5sLaLhSsT+1vOqw5EGoxLwiDjIHIDXQ2RxqlNWRC7sAOjsT7RawveBVzJiyFWCren2Lw4d6U28UJhOymAijG7/iFVYRkQVlDfpbBIg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZbxeUigMYc0ouj2szTBaxP+Y+CEnN5w/ozH6JMfmLzh2QV7nXKVEXKJ6G29lYqXw8V5/Q6Ul37tWhzlOQftZ7x3h1hUoK0GbP1YLHnNc/La2aY6i8HDLA0wBrnbMdCfKNp1ySFS1LSi8mRC0+Xvn4HQ+35DwvgrlNQ9JW3IMSAjaABxsXgAq6jBNVvmBrVrpP3KMkwpS28Nt0EewEFep8qp6Is4RflpoErvMkT/6y7aNGbUS1M2pgByXmUxAJLPlw0a2PolSisZO2Uod3NTDriAIg1D+yIjkF/9BzqPpemSEu6+OXekvonbeECc9wBSbDNgi9TrrwkVzAy0KhKS9pMnRCsiUyjKNx0unxvMXCMzjJHwrh7n7q7+d6j0id/TQDcG5xurqXs4YSpPzQyK3Fluw8aBxQtlcIntOeROFqfwWT5HSoDycjbGOr2VDY4Xhn2UPASIFTVfQm35MD7wd7q0MtvucO9xrPWmWbWitNBgZdqAW3OeqXva0zBvWN8HNI9NDrqXO0ehHjqQIGJkPnBWpDSELayg5n1i56iRfrjUqpkKwOTN6CudE048C2YzaUuO/VLWaOwYV86ST0ezrhpUu4vissineKPbcPJtwCLUPVT8HG8EqUpHbT+dJtplrW40wS1z7OgONgE4B8a489zmp94o3TqvL+9hhmBtxxl1/Rsz1M21CO+HY32cS/2v5VQNgiEKOGKD/Ta45dF/iheXRRmGLJT1RyjVtwbhzufaRf0Phc166ea18iGhFWfgkkvmhMWeUuYx6R1OS2ZyH3OHi5xQNlUBeWDvuyCDQuPW3rEoLB5zlrK9dq9h90sXIQt4ghI/CL0npKAMdVefa04415y4LR7AUke8CwXDHHM/ecYYMcVbD9gNChOWYofzTZhMfmzrPUf//+PCYPUfa99n3zu3UlDB/NnuVwHR+f5zw+koYVu9tBfb2/8+40Fr3qJ8TvM/kReR7K5Z53Yuo+GBOhTkTFG68AfWCPt3qFOteqQlfem1RbdLeRB9zqHuB5f1PTSAET2Rv9bpIUJfNjVWbXNKIAyh/o7A2QIKQZyCVlSJe1siXgrDAYnpxDgAXAfOppNFWdUZQZu+naaJLnLgtT0ZuLFj2eMRDlhz9Rr6UmO2MBM2QKcSGRryOTsMHO1acBU/M0D4gsXoto7zgxRD5VkNAm6mLZL/i3pHgQg0aU5ODLD3yCMKMyh36EM+xsBSpHQLXxLhrSu2JhorLhDBnPkV0Yrn1LIkaglxT+jeVLGaPiJ+uZh7Obq8hQUT6Y5QtkLFuLHyA58Eau/lHy4yvn5Jvpqm9uDTN7tZ8wcmIVzVFA4TaCrLd5G6272Ut/I4MLdyiAeimT1LDsmE6A7POSIQo5g1jegU/Zo/q0oTUU37pfmrbTFzrex9AZw0zSIHc7Wvad6O4yOjHCuH5u/s8xdPf6CXQj31zCC8ziStE7J62Eb7A5XF6LA5NUysOgtUur8H3nD7GxDzc1GuIi8Cpf7rW8OvlJuSeDSsGb5/MURd3umE8+sjqIb+XMt+WHNREtRKs9crfwI3IiklQ5ucc0wiM6QiWY709MYkwa/oHfQnasHybxw2uKz9vFg99eBUYpLaP8LugKL6Cr5wSAQNaG/miCXjEWQFd2XK9WCg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa9a8878-9f43-417c-c52a-08dd7807c160 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:46.2786 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sMGfh04YlYTLOZ/QWCREqPFAFwQTDSBGoKzQlktSCzFPxm4QgeUa/bmsTK/WaXo6D+Rq3Usx9iJG7IMTvNkZuUYWH2C41l/1sn2iDpf4NQcCBDs7fOH9yeGys0hamIIS X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar The D-PHY on the RZ/V2H(P) SoC is different from the D-PHY on the RZ/G2L SoC. To handle this difference, function pointers for D-PHY enable/disable have been added, and the `struct rzg2l_csi2_info` pointer is passed as OF data. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Moved CRUm_SWAPCTL write of rzv2h_csi2_dphy_enable function under the error check as suggested by LPinchart. - Moved rzv2h_csi2_info after rzv2h_csi2_dphy_enable() as suggested by LPinchart - Collected tag. .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index e4781105eadc0..9243306e2aa98 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -85,6 +85,15 @@ CSIDPHYSKW0_UTIL_DL2_SKW_ADJ(1) | \ CSIDPHYSKW0_UTIL_DL3_SKW_ADJ(1)) +/* DPHY registers on RZ/V2H(P) SoC */ +#define CRUm_S_TIMCTL 0x41c +#define CRUm_S_TIMCTL_S_HSSETTLECTL(x) ((x) << 8) + +#define CRUm_S_DPHYCTL_MSB 0x434 +#define CRUm_S_DPHYCTL_MSB_DESKEW BIT(1) + +#define CRUm_SWAPCTL 0x438 + #define VSRSTS_RETRIES 20 #define RZG2L_CSI2_MIN_WIDTH 320 @@ -140,6 +149,30 @@ struct rzg2l_csi2_timings { u32 max_hsfreq; }; +struct rzv2h_csi2_s_hssettlectl { + unsigned int hsfreq; + u16 s_hssettlectl; +}; + +static const struct rzv2h_csi2_s_hssettlectl rzv2h_s_hssettlectl[] = { + { 90, 1 }, { 130, 2 }, { 180, 3 }, + { 220, 4 }, { 270, 5 }, { 310, 6 }, + { 360, 7 }, { 400, 8 }, { 450, 9 }, + { 490, 10 }, { 540, 11 }, { 580, 12 }, + { 630, 13 }, { 670, 14 }, { 720, 15 }, + { 760, 16 }, { 810, 17 }, { 850, 18 }, + { 900, 19 }, { 940, 20 }, { 990, 21 }, + { 1030, 22 }, { 1080, 23 }, { 1120, 24 }, + { 1170, 25 }, { 1220, 26 }, { 1260, 27 }, + { 1310, 28 }, { 1350, 29 }, { 1400, 30 }, + { 1440, 31 }, { 1490, 32 }, { 1530, 33 }, + { 1580, 34 }, { 1620, 35 }, { 1670, 36 }, + { 1710, 37 }, { 1760, 38 }, { 1800, 39 }, + { 1850, 40 }, { 1890, 41 }, { 1940, 42 }, + { 1980, 43 }, { 2030, 44 }, { 2070, 45 }, + { 2100, 46 }, +}; + static const struct rzg2l_csi2_timings rzg2l_csi2_global_timings[] = { { .max_hsfreq = 80, @@ -434,6 +467,64 @@ static int rzg2l_csi2_mipi_link_disable(struct rzg2l_csi2 *csi2) return 0; } +static int rzv2h_csi2_dphy_disable(struct rzg2l_csi2 *csi2) +{ + int ret; + + /* Reset the CRU (D-PHY) */ + ret = reset_control_assert(csi2->cmn_rstb); + if (ret) + return ret; + + csi2->dphy_enabled = false; + + return 0; +} + +static int rzv2h_csi2_dphy_enable(struct rzg2l_csi2 *csi2) +{ + unsigned int i; + u16 hssettle; + int mbps; + + mbps = rzg2l_csi2_calc_mbps(csi2); + if (mbps < 0) + return mbps; + + csi2->hsfreq = mbps; + + for (i = 0; i < ARRAY_SIZE(rzv2h_s_hssettlectl); i++) { + if (csi2->hsfreq <= rzv2h_s_hssettlectl[i].hsfreq) + break; + } + + if (i == ARRAY_SIZE(rzv2h_s_hssettlectl)) + return -EINVAL; + + rzg2l_csi2_write(csi2, CRUm_SWAPCTL, 0); + + hssettle = rzv2h_s_hssettlectl[i].s_hssettlectl; + rzg2l_csi2_write(csi2, CRUm_S_TIMCTL, + CRUm_S_TIMCTL_S_HSSETTLECTL(hssettle)); + + if (csi2->hsfreq > 1500) + rzg2l_csi2_set(csi2, CRUm_S_DPHYCTL_MSB, + CRUm_S_DPHYCTL_MSB_DESKEW); + else + rzg2l_csi2_clr(csi2, CRUm_S_DPHYCTL_MSB, + CRUm_S_DPHYCTL_MSB_DESKEW); + + csi2->dphy_enabled = true; + + return 0; +} + +static const struct rzg2l_csi2_info rzv2h_csi2_info = { + .dphy_enable = rzv2h_csi2_dphy_enable, + .dphy_disable = rzv2h_csi2_dphy_disable, + .has_system_clk = false, +}; + static int rzg2l_csi2_mipi_link_setting(struct v4l2_subdev *sd, bool on) { struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); @@ -910,6 +1001,10 @@ static const struct dev_pm_ops rzg2l_csi2_pm_ops = { }; static const struct of_device_id rzg2l_csi2_of_table[] = { + { + .compatible = "renesas,r9a09g057-csi2", + .data = &rzv2h_csi2_info, + }, { .compatible = "renesas,rzg2l-csi2", .data = &rzg2l_csi2_info, From patchwork Thu Apr 10 08:12:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046081 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010019.outbound.protection.outlook.com [52.101.228.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 66FE020C013; Thu, 10 Apr 2025 08:15:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272907; cv=fail; b=Rpuo6x8/1SjA284+PtwS+ImucHV9QBxEfdRevISFnyUDVhzrVHQ1oAMMwYDb6/U5CM/4/rLEm4DZecGk/ZvA+JAnuajAWzaSshDzNy4p5iMZo7J2r6ld8bGrc0gmYveBxU+ltQA+IyMhI5CciL/CwY3dxp9cCRWW975Ur9LeAlY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272907; c=relaxed/simple; bh=yeRnwR2PhWlTlpmmTXH8PxcG0cTuV08ohn8P/eT1P4E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=A/m9TllhbZy6qOvw630qnl5xFKHwJU93Q2OKWAGUtddkiQkrkFUm278oJlCqE0j/l9eKKiGg3b8YINiqFpAtCUQezI8qTtAbVldC9JZtkVa6DJNH/GFdTDxZOnKgx6mLQDjEPD0ft21+rIJYy14F3+40D0nVHWrG5uBbVfWk5Qs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=goGXqJL2; arc=fail smtp.client-ip=52.101.228.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="goGXqJL2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R8gr56WvkwnLIU0r8yyYRDeZFTgU01teO4262cbJVXKp38kahOEKRRxomB9/w9zIsrR2Jt7Ea4Iq49dqeo/1LAjs1kSXRCbW33qYI9PN3TYleyliAJJK2s8UhlmPKapb009BzTA2ZucwbvkmV1mHkqgLnvdxw+p4watPv2fLCW0mZRJAvvJNcE04aW94Gm+8pfCRYyAeM+ygt3rLd8tEew8iuwjVPDJaAME4+Rd170Wr6d25jM8A9NtFfC+Q/dTZuog9LQrHb6bV1T9TAPQNOweDbwO9x4o83XQZYS/y9YTpinUGJKJgDHRZuL+06VxEgHxmdb5OxgauVRnLZaCdtA== 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=aoUVfWxmhXxIGV1LC4G+mxd+fJYCjAGhtOH5YWwk14Q=; b=HNc7LRbDgcX6fbDy2/6B9Kt5377aK2OTHNP7ZvMvXKMSeBo9XRzQIo1SeMz8mrX8HSpurgSGDmsP5Ju+brdaWONmZ9W5cfGfn661OuJESI4YF5MOJBcn9ifXH6xtmbTfv1qScWDpGKi834LGIf/rN7JIc6A6njugDkaKqOBDP0aEBodK4U4cMf5MyXZl3l1HrMvxhhY480MC/o3F0W1TRFZkaiTd9efy68GnU5mfeFeV6tjBSyYcjRqP8FPdeMhWz2adaNGc/hq+xCWrbMAl5zQnqndTTzs1YnfAdfdfemIhzySWsltlDT1d4QAgFiSF4ABT+Es2YTPliPr9etfb9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aoUVfWxmhXxIGV1LC4G+mxd+fJYCjAGhtOH5YWwk14Q=; b=goGXqJL2oJuLN/wAH993bHO5vuqWHbjhm1NsxconmDpnMJya7vxMNLYdlTuBevmRXEiJiFboGrC32bUYtbgfZVJsnPe+Ubl8kgnRz0eSrl2zCqLzYSgLWfYIgBU3vCc5or/mG5c79SpzcztfhnmQQfEDf1Rg8dPG7llkIr2pGQg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:14:59 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:14:59 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Laurent Pinchart , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Sakari Ailus , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 11/17] media: rzg2l-cru: Add register mapping support Date: Thu, 10 Apr 2025 10:12:15 +0200 Message-ID: <20250410081300.3133959-12-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: ee5e9cdf-ace3-4915-bd11-08dd7807c8f7 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: XQH1k8z0oB4Lvxuzf2bdGuaY08qzMGuBFc5WNTx6vV1FuI8Y9DEtLvWc5rs/LRh+LA1kdqaaEZXvWcVQCaC59o3Q42ObjFGcdsg7srllh9MM1duCKCyYEEYE2KO4MbvZbnMj+D+26yOnB8az6Hk3G1T0jhw436B6wH2FVT0JFSyT61snno9iPjh2A+VDCl1nM+rr/fhP45dM9+U1KNtfIvyRIKCaFDlYN6TvVLo61gxZopfFkd0vgsl15XSNZQtprJnyBLFgXcDln6YVzv79asN3oodSCuqYT54EJ20YEWfZVIqv2FI0vLg2Vc6fnud1DIscQSoF2qWdoZIwyM4/EHb//Bg/qUgeztSJE1h8pLPWbPnIx6Ajcozy6ACGmhJDhEcq1GMDJz+Lwb9HgorY/q6JFXXAw3Lc7IaweoTEeAjjAgWYhsALhLaMzRnCJSn9iEONUZK673oIkYA7CC7Dk6QX/5QX80fKBnQvidXBLCRzndM7FVil8oFXFbprxdMGhX+yt/Azp5IwnRyI2EuTw2xGj0OorsAJGISrYbALm2yDUZniU/ub6nEUvZ0h6O18eB3pVM9qoe7sWvbxbwwRaKL0EDb5qA6WGPpI/z9jbZ9+qzgLut6uf0XqqXBvcbtZGRuPRpg7KuwszsfyU3Idr/azht8lrkT4Tf2a9l2rHPPZYhXgIn5KG2mdPLAJgqtqwPnTtlVu34g2KfzUHZRYqfpj+emKw7q1kYwB69WvNmG1E4RhwZT1y+f66Ahk8EZ5pg+Z8i0zYFQqeIbRefLG3qvLJ9+X85UlesISxcJ1ZW3KfU7y2ON8nIGXIdL/rBm3G9OOq5g+7VGsOf1Ssr7e/KEgD39Cb2YTuqzaRk7nzIK5XNMtp0E8B8R1pUZ3NVN3gnFLLCiVURYMpZ3Q9Uqx8H6q4FdhaOe4zx5aoW6T0aOGoET9iJu8hPgyVklmR29VzWZkRy5J3/26znhbLWt/e6DKVYUDtPDSfWI+hGiEiEn45m9aLBPCXn3FPZe72xjka1xcZ+br5F+sVPzmRvJemrKW+AX2VJrZJoQTx5/IL9MTwsZ7JJctUYuKPNOTP6rc/pfNLdlEmr09s933Lz2aaEaB7v/9QPUZIUdYksIoJavakVsBd66E1v2KLniA41OOSsUpdI89+R414KQXKYUO5vBKO7HRZon94f5iK+SwPUV8AWSwqkPlXwQwxjb+z52GrNimzl48jIA/bW6/jcvMRgPZOCqdS8s5ATYVxgwG8kZYEgE3nxQiGbRHkwvJeY2XZ8l6pZ1tjoKFNJJwSBklZ1XTJk3vuhOlRXDVRuVQTZjRBpTDGbLWp3y0tg+JSgnJK7ou5BXcno8EhkgLRhaLo0H+EdxvHHCht6Muh1DVkJi1izYt8ruhT0EObYyuMLaZe/GtK4TTeRRkbCrbAS9DSC4qpwhYDKh3CYWomEOj1lSpW05eleJNKt6hynd+BrF0vvtEhTfUiQBBaaUk7iaBXA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qzPttmbjM+PAZObRcjJhkK+/PwULDx3qTFoz2PFO68ufR8vK+G05Qg6x9fWm2BfSj7twsQUOwFqLITsiY9miiEUVf/eO6ZWGonYOfQjX0XxxlQd4BEPkH+gjWsC0Qdb7JE5FExCIl5v5/6E+QnydiI4vTh/ykPOxooEfU7TSvJJY0QuRcCXv8IGy94aN80hqQYQmv6PFx5DcNF/pLnCIU1DWAPg+ryHWsRTTrmGCQ0x3Kd39zXn9jluZscSkrUq2bRNYmuOuCr1wQHWYUJ5j5Tuqoj/ot52WtHC4G5b8xpQHKHqaETKWR6x8ltMZaNPMTmzB5zmIqp+nIi9JQaznbB9cCIYZql4ictciNjLTdCoo+wTbrUAdBiPPxZMkl9bOBZYE3QrDTr9Tkn3aqzYlWWy+QD63IRDXZ18I8KCHz1aSEfpaVthQodVd0ng9x9TqFWcJlRMgBDQOmojxTXT0IQymXWL+fzodVhFSeZFxOAuhlcIBNpsd2NoFY6OTYCWS2yL9FeP1oYOsPK2xq90qZBibaTGLxvfeitwhMVeQ8xZEuBW0Meh/SyKQoaTnuHwRk8GwDM3+g0fbOFuvtlcKF312Z/Flr3nKtEbGMtYHBQoSAq/XNFTcBg4pICcq9yAMjHprr3K8C5yK2BJbGqUwGaMxKd1/QjH7K9SvmxJeWTHk9c7cDfu0Lxx/J6KMFZJRlZY1F0/IpdJWhy8hzvOQMeZf5801w7Dt5rBg2EWtxeBKp/yT86hVyw26xAk09etDOfVmOw6eXa1Z/96MaWKn/+rmMb6lPrOrO3TMYe0PWnGXCoQw10r5GieOjm9ODEIQ375f+qgAhMceCTkqNgGWXrUh4gbVme7cDDs/5F4n8ou539hUiaW8Z4HQ+erw3Kfi5YeUHwu/8NG7M883x4zFTMNmN9OrsJyQEpC+hNc64DU4J8/B8dv0kzmkjv6b7IXKweg6CNDZZtD9rWVtaJ99PxJVp66ltbgnUJxWYhXQXL1qFx7po5C2R8/LXyy1GpXOK8N8oj+o5kOgReZiq4RU5fSzYuYr/iDKi3k9MH2DAEHCA/7+Ejme4VLeoeItbFlHaK8zqSEvkKam8y65hWqKb7+UsZ7bHHtogKjoAsB5OwVEWFx6dtMoLD6EtBAxJkalkoYF2QJMH0zYz5e1fSYA2Z8034QRIQjw7ViQi6uVenXxbqDc0J0X/Y3lKl1OWPu5th/AumLsaZxApwAjrvKgpVcJ4Eh2HtRbymp0TO+4j/zfCL48q9oKNESlHB+oQpqTT+it77qEBJpWQcX0Qt9dbvfpHFtjILnxU1Jjzn9mEJGTJ1Gku4zlRo/XH+kcGAN+aIgHWHX09LNkC+fDxnUJ4s6ewtTFCrDh3lusHtLOifnnJ+uGNd53pB+TJJ8rWjWrdiW6gIPlAUb/XjkjuHrSrXTvfYm0ct4Ggw1SBAfQJE6Joxc8i7pjcpKPUHKhIM1tiOHm8DPkXS/4guH+1gZI4P+4EoXA8+DOXNh7I7sOwv58Wi4WFKkoZQAkV+GB3lnU1shdAkKfJ/neNlx8Od7qwFTpyn7sTgttFESBkVBI838ofcpB/bIr06ytzdwJDnbN4vqOhUlrDne8F0zkPtp44bVTWhWd5SM2iZqvQBgzcJM= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee5e9cdf-ace3-4915-bd11-08dd7807c8f7 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:14:59.1639 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: l1VeB+8af9/2HZ+RHj0gjyOUEE1PRYfL0TU6tywysciYiJJEGZU/+/KHWHNGXEjWgsS76JsOuo4M16TQhj1Neet0xPPnT/RguTWYMUvR1R+mC1x8w5gGPI3zRUYvT60S X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Prepare for adding support for RZ/G3E and RZ/V2HP SoCs, which have a CRU-IP that is mostly identical to RZ/G2L but with different register offsets and additional registers. Introduce a flexible register mapping mechanism to handle these variations. Define the `rzg2l_cru_info` structure to store register mappings and pass it as part of the OF match data. Update the read/write functions to check out-of-bound accesses and use indexed register offsets from `rzg2l_cru_info`, ensuring compatibility across different SoC variants. Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai Reviewed-by: Laurent Pinchart --- Changes since v2: - Implemented new rzg2l_cru_write/read() that now are checking out-of-bound accesses as suggested by LPinchart. - Fixed AMnMBxADDRL() and AMnMBxADDRH() as suggested by LPinchart. - Update commit body Changes since v4: - Mark __rzg2l_cru_write_constant/__rzg2l_cru_read_constant as __always_inline .../platform/renesas/rzg2l-cru/rzg2l-core.c | 46 ++++++++++++- .../renesas/rzg2l-cru/rzg2l-cru-regs.h | 66 ++++++++++--------- .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 4 ++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 58 ++++++++++++++-- 4 files changed, 139 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index eed9d2bd08414..abc2a979833aa 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -22,6 +22,7 @@ #include #include "rzg2l-cru.h" +#include "rzg2l-cru-regs.h" static inline struct rzg2l_cru_dev *notifier_to_cru(struct v4l2_async_notifier *n) { @@ -269,6 +270,9 @@ static int rzg2l_cru_probe(struct platform_device *pdev) cru->dev = dev; cru->info = of_device_get_match_data(dev); + if (!cru->info) + return dev_err_probe(dev, -EINVAL, + "Failed to get OF match data\n"); irq = platform_get_irq(pdev, 0); if (irq < 0) @@ -317,8 +321,48 @@ static void rzg2l_cru_remove(struct platform_device *pdev) rzg2l_cru_dma_unregister(cru); } +static const u16 rzg2l_cru_regs[] = { + [CRUnCTRL] = 0x0, + [CRUnIE] = 0x4, + [CRUnINTS] = 0x8, + [CRUnRST] = 0xc, + [AMnMB1ADDRL] = 0x100, + [AMnMB1ADDRH] = 0x104, + [AMnMB2ADDRL] = 0x108, + [AMnMB2ADDRH] = 0x10c, + [AMnMB3ADDRL] = 0x110, + [AMnMB3ADDRH] = 0x114, + [AMnMB4ADDRL] = 0x118, + [AMnMB4ADDRH] = 0x11c, + [AMnMB5ADDRL] = 0x120, + [AMnMB5ADDRH] = 0x124, + [AMnMB6ADDRL] = 0x128, + [AMnMB6ADDRH] = 0x12c, + [AMnMB7ADDRL] = 0x130, + [AMnMB7ADDRH] = 0x134, + [AMnMB8ADDRL] = 0x138, + [AMnMB8ADDRH] = 0x13c, + [AMnMBVALID] = 0x148, + [AMnMBS] = 0x14c, + [AMnAXIATTR] = 0x158, + [AMnFIFOPNTR] = 0x168, + [AMnAXISTP] = 0x174, + [AMnAXISTPACK] = 0x178, + [ICnEN] = 0x200, + [ICnMC] = 0x208, + [ICnMS] = 0x254, + [ICnDMR] = 0x26c, +}; + +static const struct rzg2l_cru_info rzgl2_cru_info = { + .regs = rzg2l_cru_regs, +}; + static const struct of_device_id rzg2l_cru_of_id_table[] = { - { .compatible = "renesas,rzg2l-cru", }, + { + .compatible = "renesas,rzg2l-cru", + .data = &rzgl2_cru_info, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, rzg2l_cru_of_id_table); diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h index 1c9f22118a5d9..86c3202862465 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h @@ -10,71 +10,77 @@ /* HW CRU Registers Definition */ -/* CRU Control Register */ -#define CRUnCTRL 0x0 #define CRUnCTRL_VINSEL(x) ((x) << 0) -/* CRU Interrupt Enable Register */ -#define CRUnIE 0x4 #define CRUnIE_EFE BIT(17) -/* CRU Interrupt Status Register */ -#define CRUnINTS 0x8 #define CRUnINTS_SFS BIT(16) -/* CRU Reset Register */ -#define CRUnRST 0xc #define CRUnRST_VRESETN BIT(0) /* Memory Bank Base Address (Lower) Register for CRU Image Data */ -#define AMnMBxADDRL(x) (0x100 + ((x) * 8)) +#define AMnMBxADDRL(x) (AMnMB1ADDRL + (x) * 2) /* Memory Bank Base Address (Higher) Register for CRU Image Data */ -#define AMnMBxADDRH(x) (0x104 + ((x) * 8)) +#define AMnMBxADDRH(x) (AMnMB1ADDRH + (x) * 2) -/* Memory Bank Enable Register for CRU Image Data */ -#define AMnMBVALID 0x148 #define AMnMBVALID_MBVALID(x) GENMASK(x, 0) -/* Memory Bank Status Register for CRU Image Data */ -#define AMnMBS 0x14c #define AMnMBS_MBSTS 0x7 -/* AXI Master Transfer Setting Register for CRU Image Data */ -#define AMnAXIATTR 0x158 #define AMnAXIATTR_AXILEN_MASK GENMASK(3, 0) #define AMnAXIATTR_AXILEN (0xf) -/* AXI Master FIFO Pointer Register for CRU Image Data */ -#define AMnFIFOPNTR 0x168 #define AMnFIFOPNTR_FIFOWPNTR GENMASK(7, 0) #define AMnFIFOPNTR_FIFORPNTR_Y GENMASK(23, 16) -/* AXI Master Transfer Stop Register for CRU Image Data */ -#define AMnAXISTP 0x174 #define AMnAXISTP_AXI_STOP BIT(0) -/* AXI Master Transfer Stop Status Register for CRU Image Data */ -#define AMnAXISTPACK 0x178 #define AMnAXISTPACK_AXI_STOP_ACK BIT(0) -/* CRU Image Processing Enable Register */ -#define ICnEN 0x200 #define ICnEN_ICEN BIT(0) -/* CRU Image Processing Main Control Register */ -#define ICnMC 0x208 #define ICnMC_CSCTHR BIT(5) #define ICnMC_INF(x) ((x) << 16) #define ICnMC_VCSEL(x) ((x) << 22) #define ICnMC_INF_MASK GENMASK(21, 16) -/* CRU Module Status Register */ -#define ICnMS 0x254 #define ICnMS_IA BIT(2) -/* CRU Data Output Mode Register */ -#define ICnDMR 0x26c #define ICnDMR_YCMODE_UYVY (1 << 4) +enum rzg2l_cru_common_regs { + CRUnCTRL, /* CRU Control */ + CRUnIE, /* CRU Interrupt Enable */ + CRUnINTS, /* CRU Interrupt Status */ + CRUnRST, /* CRU Reset */ + AMnMB1ADDRL, /* Bank 1 Address (Lower) for CRU Image Data */ + AMnMB1ADDRH, /* Bank 1 Address (Higher) for CRU Image Data */ + AMnMB2ADDRL, /* Bank 2 Address (Lower) for CRU Image Data */ + AMnMB2ADDRH, /* Bank 2 Address (Higher) for CRU Image Data */ + AMnMB3ADDRL, /* Bank 3 Address (Lower) for CRU Image Data */ + AMnMB3ADDRH, /* Bank 3 Address (Higher) for CRU Image Data */ + AMnMB4ADDRL, /* Bank 4 Address (Lower) for CRU Image Data */ + AMnMB4ADDRH, /* Bank 4 Address (Higher) for CRU Image Data */ + AMnMB5ADDRL, /* Bank 5 Address (Lower) for CRU Image Data */ + AMnMB5ADDRH, /* Bank 5 Address (Higher) for CRU Image Data */ + AMnMB6ADDRL, /* Bank 6 Address (Lower) for CRU Image Data */ + AMnMB6ADDRH, /* Bank 6 Address (Higher) for CRU Image Data */ + AMnMB7ADDRL, /* Bank 7 Address (Lower) for CRU Image Data */ + AMnMB7ADDRH, /* Bank 7 Address (Higher) for CRU Image Data */ + AMnMB8ADDRL, /* Bank 8 Address (Lower) for CRU Image Data */ + AMnMB8ADDRH, /* Bank 8 Address (Higher) for CRU Image Data */ + AMnMBVALID, /* Memory Bank Enable for CRU Image Data */ + AMnMBS, /* Memory Bank Status for CRU Image Data */ + AMnAXIATTR, /* AXI Master Transfer Setting Register for CRU Image Data */ + AMnFIFOPNTR, /* AXI Master FIFO Pointer for CRU Image Data */ + AMnAXISTP, /* AXI Master Transfer Stop for CRU Image Data */ + AMnAXISTPACK, /* AXI Master Transfer Stop Status for CRU Image Data */ + ICnEN, /* CRU Image Processing Enable */ + ICnMC, /* CRU Image Processing Main Control */ + ICnMS, /* CRU Module Status */ + ICnDMR, /* CRU Data Output Mode */ + RZG2L_CRU_MAX_REG, +}; + #endif /* __RZG2L_CRU_REGS_H__ */ diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 8b898ce05b847..00c3f7458e20a 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -80,6 +80,10 @@ struct rzg2l_cru_ip_format { bool yuv; }; +struct rzg2l_cru_info { + const u16 *regs; +}; + /** * struct rzg2l_cru_dev - Renesas CRU device structure * @dev: (OF) device diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index cd69c8a686d35..c82db80c33552 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -42,16 +42,66 @@ struct rzg2l_cru_buffer { /* ----------------------------------------------------------------------------- * DMA operations */ -static void rzg2l_cru_write(struct rzg2l_cru_dev *cru, u32 offset, u32 value) +static void __rzg2l_cru_write(struct rzg2l_cru_dev *cru, u32 offset, u32 value) { - iowrite32(value, cru->base + offset); + const u16 *regs = cru->info->regs; + + /* + * CRUnCTRL is a first register on all CRU supported SoCs so validate + * rest of the registers have valid offset being set in cru->info->regs. + */ + if (WARN_ON(offset >= RZG2L_CRU_MAX_REG) || + WARN_ON(offset != CRUnCTRL && regs[offset] == 0)) + return; + + iowrite32(value, cru->base + regs[offset]); +} + +static u32 __rzg2l_cru_read(struct rzg2l_cru_dev *cru, u32 offset) +{ + const u16 *regs = cru->info->regs; + + /* + * CRUnCTRL is a first register on all CRU supported SoCs so validate + * rest of the registers have valid offset being set in cru->info->regs. + */ + if (WARN_ON(offset >= RZG2L_CRU_MAX_REG) || + WARN_ON(offset != CRUnCTRL && regs[offset] == 0)) + return 0; + + return ioread32(cru->base + regs[offset]); } -static u32 rzg2l_cru_read(struct rzg2l_cru_dev *cru, u32 offset) +static __always_inline void +__rzg2l_cru_write_constant(struct rzg2l_cru_dev *cru, u32 offset, u32 value) { - return ioread32(cru->base + offset); + const u16 *regs = cru->info->regs; + + BUILD_BUG_ON(offset >= RZG2L_CRU_MAX_REG); + + iowrite32(value, cru->base + regs[offset]); } +static __always_inline u32 +__rzg2l_cru_read_constant(struct rzg2l_cru_dev *cru, u32 offset) +{ + const u16 *regs = cru->info->regs; + + BUILD_BUG_ON(offset >= RZG2L_CRU_MAX_REG); + + return ioread32(cru->base + regs[offset]); +} + +#define rzg2l_cru_write(cru, offset, value) \ + (__builtin_constant_p(offset) ? \ + __rzg2l_cru_write_constant(cru, offset, value) : \ + __rzg2l_cru_write(cru, offset, value)) + +#define rzg2l_cru_read(cru, offset) \ + (__builtin_constant_p(offset) ? \ + __rzg2l_cru_read_constant(cru, offset) : \ + __rzg2l_cru_read(cru, offset)) + /* Need to hold qlock before calling */ static void return_unused_buffers(struct rzg2l_cru_dev *cru, enum vb2_buffer_state state) From patchwork Thu Apr 10 08:12:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046082 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010005.outbound.protection.outlook.com [52.101.228.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 2752A20A5E7; Thu, 10 Apr 2025 08:15:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272918; cv=fail; b=gNq4CPy+wmQ929+K18Dk4fgg4shlL9XX4GiPYQfLlkTk/E8gjPF25hSrDGQxRLee8UGDth6SF64fHxfrHaPdRgFPtO8qE35I4JO9kMP8m3mO6Rpz8jSKKCtFK1ZEvmDgabIaAkZ3ANrBYumF6Plmim9kH5CUePaMECW7h9KxWiE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272918; c=relaxed/simple; bh=b/qqiWfU2TOmFQJOhjJavmi9pjSIBAMTfFqVvQlDQWs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=B96kHrbPrmrIzq4j/JqIiw9JvnfhzbatXHb7wlPNgb7nGKujz5DJMMYI9kKiPA+4ZbLm3CCi7wCkWfsGCuMRlYLzif5kg5g1rGXPj9c7QlaNnpLktgBpP7Yh7Ly9sqwvYUTHoMyA2bgGzvqI9kitoft46z7ylZrdrJV5coDBOBA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=dPEHWaTl; arc=fail smtp.client-ip=52.101.228.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="dPEHWaTl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lGEXJ99IIv+M8BdKVs2dvdR4ytE73Bs6U57xy3trHrQMAkBPTuYgPbWwf83x5T6uXIDo/t9GumnZ5I5YqPf9b4ycWPoE3wElXxWceInSW2XlBLVyxx4CGp1m9hkTEC4QaQvChdmiTEDlQD+Fq0ZKR0BV7VkCcz3Ry64BJUjFzFHORzIuQ0JOxqL1lGijFd/IehHsSpsHlXYqrj7JMBXdPrKRYT9Kbsey0ybneuV1NkILDtu87VVFcN9jRgDs1ubnZvuCUWyrqVtjNW2OQupKCOrzqEao6MpChbrSQcbiOq32i33V2L1Fe3vNMWbGDEl05NrEQEaFQfi3YtrDTU7DzA== 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=V5YA7ou01kxcGIPUJB0uSwCOp90hJ1Zsik2vF+w9z5w=; b=Aiz41oUipIvlrMdX+IfdpO/UjZmgbtQ4Ay30t7DpHx81rrTGpIwmCvcCCo72zR3+TQRnoC5nPnvlibedqD48ITB0fhNheTo8zCH12LJbp7NxbfmVUcGw8LItLNlz3mmDOfNu7Zv3kDokbklzo0HFwXmB5UWfOSWm1k/of1yYuj/ZHuNfrVkEQ7ewj+ylXDt0ULYCirrRgK/Bkgn9EApm5U5eEQjv90GeHKyCgXd0KeGh1Unx+vVxnznBQjFB0PQb28J7Y9zRZq8VHRiYVL7ROx/A0A8hUK5XKZUgqtdJxdlIKuFh7D0r4u1+fJp6G8HbCOlYa91b6ZckZuzJ5ZOKhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V5YA7ou01kxcGIPUJB0uSwCOp90hJ1Zsik2vF+w9z5w=; b=dPEHWaTlan4DGbggpFKk+F+F4T6nYvWe0p57zgZwQQ7/AG3U4GnRVgjU0ZzPrRIVpZ2eX7jpuqPjzgLPzXE4Zek0LLRuQ+js0YZrbv49Kn+lDz1aZudLXb56TtGHXSA/CxhPDeiPtW/+Z7m6Vvvd+lBhaHfaNL/uymPDntYzvHo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:15:10 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:15:10 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 12/17] media: rzg2l-cru: Pass resolution limits via OF data Date: Thu, 10 Apr 2025 10:12:16 +0200 Message-ID: <20250410081300.3133959-13-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: af39c264-fa2f-420e-180d-08dd7807cf67 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: SkDNgo1E/2y4h3K4togQiVp/y0kNGB2gDA/bxLBnXEYbyiQyhzGADXBTmYqQscW1Q4RzklATzT0yx+OZ3qTd/gafn7np+TvOk785yHyI++uy+MzgPiPxoZ1UoykRtCw/TCDnb0eWx9KjFDQx7nTUKJ+hQq9Mqfk0zl2p6161gVWVkrb57Fe0Xu3WZfsUILJvWxiMrsXQoyaCDzXZUldfdkCBQtMtU9enmGbB817Vax/fXwbM9j8hWaDipvwsI3hioHOOjPG6HcMJxK5BE7+UybS6AwS/qEEA6405wQRCtJLPmKb9NTtoeYTvIwaCmO5iekvciUGhtXMVm3CpaUxh/equaLebg70jcWcA+wrlwMnotGkxx2dgMiIB2zl3F8PaEmt9Qj67e0AEEbH+6QgxHfEovQec/8RgDKh4y5Lk0pHF47w+T7OKmq6d2FYjEbAzBTQJqcfQujMllPe/0vUSjqCXt+0n62Do//7R3+JuUBs9pql3Tdr0iHUCPnLGuHGpOC3B9AUJ9ryiYocQklEeBJ5H8r54YS5mmFgY7CbbEWR9RbMFnFOfFQI76QCcAzoTEIGX/7tcdAz9deKkQkuMNIqiv4I47VnBAN/iFrfjLEV1XrSQ9wJtT2ua6kpACRMLlLhoLnNljt/eSo/ECWcor6OkVkLoT+MpVuZGql3CS/S0GXqNHFZK6eRHpx4cbfY6h1t6D7nWsyb5AWA+vD1leiShURSIPVre1Qeg09615x/GPnsyxHLAMBdRy9kLz968lb0Y3Ds09iXqG9NjkBp579LcH7T/DkHEN6FRFW+GuXIIQU5pFn7Bp17Z/EhrSUmkZFzNlFdctP7c77Ym7Hg4F9iiWP8hAtXK2BHDVG5HLZp5JW/nmQeZfdi6hDIvKnv48tsnYXrDEoYvVh8MeqMIxB9Wfkm84KeTVybrQUccEtpSUHof3k1FFj6VMuYPlq7TTPGfHyULxCObjgNOhrivs9EDRzcqQndMPsWh2RyCBPZaR9BcXHL4CLlJe2p76crtIrSXb2Eu2n5J3n33Qlc8jPLjUOC27vllJTFc9TaPNevBjUVzBCvITNQbPUHpHWmpNL6l/+0zPR11OI4Mjt0YW/Kc/YDDIi2q8PWv4Pv6LIOczFemMunzx+/fMqwRE4KBoKTDzN8ZoIydAmr40M2AGKeivMFzSRDo6enzWO65Jnok/p99s0b1clMwYLVO0OZkQwg/yWCz4gPQ7aDoA8FJHlGEQyrFLtpL/8FA+IpzDWTfFxtqVCvppBPiyeAWzE45eMZeuSq+OcBKnnj/RQZN8GuU23/X0H4TnQ2GoijMnvUU6D1d/mX1oFW3BBscMcjmsA1anwoCMN2XTBr3ZJFEZFvdPb8KFmB7Q+QzlFFX9a9+/tHlxgrE87TcnBGTl3pn3RLjYmeheVtWtF0uvKjzEh74H1T4L03sZN984rp/K3SUhfNarJGzI0EGhFsNpF0mgVyC3lCbE5sMS3XFyMl8/Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0HjKXf2itZoxIZYK6q96h+xCkzN4mYJoqr/STTzo2+pn1Wp30eZq3cj/CIXx4BxfuA1TErFz3N966vLvUci4h0BJYcQ0sblKuonxJNj3Gs9WFYWC2L5bc28dBMaLjpsp3AexVa7ufDOHYzAigPtD3xnLA/b90MDZB4VN4tTcRf9r7+ZXPSfh8Bkwl6btdvVCiYOXvznlYTndWH/ktafLVhbeTCEmF9q9Y5lzCs3J1RouUm3+CPAMCEBQWG2pv5tQ/3crsINV9/W+SHiNQiQ1MRRmtVPsdW2S3Ar73saH3z/E7/BjXQDZQNEuVUKcA28Gv08j2N4lwVfs/XUNROawGssxfnlbLT14yXetASy1YkN30GZEq7BRMwIsM3armZZOkqgN8hfWgU/2d7g+ybY3WKwLpPghK3nNrSlQXPH1E+hafi3FOgYHEYZOchSHfu7MdVr6M76cSrT6fytR7y+heHEGpmNm+8OoBJSPBohhIvcWO48kdty3E1UcHFafObK2Q7YdgepTo1U0NBup2FmDMQFWojuVOFojlQmu6EvA94tJdX5unDzGiqxemjGLBxF2/wKc+zoj94lqehd8UgT1LZ5L4orefmb01njYEpO+XD+Yw0HqWl8a10VJzWL2t7aCfvC6nkN4+w12Bt/78l0wNlswEt9Yt+fYXlqjqVfLCsDXPe4qi6NV9j29H6z4q7EKdXcyZPjhGajRthPEcjicwSic06dSjkcJ6WXq5H1xtEvjL2gjMQnmPxhWJlFb6klvQ72APPmlVStyBOXuu99nswfZmqmXasMk30EkliGY6LX106mUf1/MH6w+6ywJOl/qcvOIysHnBm3+vEPIpoAO/M8gKDIfJfevwt2wwY0V17lZnSj3bclgePUX6tq7gv8EV3rbsLMkyWFFGM5tB/h4Hpv33+ULiNQSEvV9yC1+PZHwH+CYhkC8W+A6DdDCiaWkLBvPM0vYCEaTTNnBujVMqTOa9qJXiRmz+CMtuZ3KlBbfzebtJF3rSRclArumCC2DkU1eKlGYm2JkOBxtKrwmfuQt4KFdhJaX0oIZsVklVTDvhda4/dhjy0T+DxscHeqjLbBNPI1PKXaWIyOl7PsHz1jG+AXQiJ9BlB1ZMlw9AMX9cYdUDCFIPYh7blNGEsBPNCaUD78SUIqVaQ/VShPz9B/M424EFl6rwDUTIAlW75J4eGe36O7Pa8x7uA9xriAcly8N8EqhQgRS5B/jEwRV9lR3mUAHgrLlVQCC8bowY+UpX5YpS7jZG+Nf35LGRdWfOvHrdZwZS0Yej3cN6vX/X/PUhAhxO2nB7vGhOC60dT4Wg7pVjc+MwlLxNybcdvl1cuZhj4edNei7vVrYKOyHWVCaYRkm4zdtMkdE33aA8ZKAhlKEgrXLUYeVzKeV45ifOaFLN4C6kLy0Xhx/7GT3RKF5kTxKSrNcXdN0KZoSdKMtWUrGuPFLDVYtN3lQ5DJS+B8hDDjLAT8YvTtMjOSlXpsp9OET0yp963oSIY1VQczvaUxAm0ZIhzGWxZPcHF99ypDCnuO3tBQKb1Hrh1ZguJwqZZczxVSxRs4O8Gfe4YxvJYFnH4a9Ksgpz6PuF4DZvRBJCDHPUNsju0Yp2NyIX896qYmc2rbu+dW0r9gckf0= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: af39c264-fa2f-420e-180d-08dd7807cf67 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:15:09.9612 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lqWXV/ps0yUaC1+XA2oWYXoh+B32hxpjEKbOS0s1sGpfDg8A5uw+6T1BNAlCBRsdwclv1ULUL624Z3Juu8ivME7fW7MNdOGnSSnH471Kx7BRVKTaSGzLzaMQTm4CADiC X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Pass `max_width` and `max_height` as part of the OF data to facilitate the addition of support for RZ/G3E and RZ/V2H(P) SoCs. These SoCs have a maximum resolution of 4096x4096 as compared to 2800x4095 on RZ/G2L SoC. This change prepares the driver for easier integration of these SoCs by defining the resolution limits in the `rzg2l_cru_info` structure. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Collected tag. .../media/platform/renesas/rzg2l-cru/rzg2l-core.c | 2 ++ .../media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 4 ++-- drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c | 13 +++++++++---- .../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 5 +++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index abc2a979833aa..19f93b7fe6fb9 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -355,6 +355,8 @@ static const u16 rzg2l_cru_regs[] = { }; static const struct rzg2l_cru_info rzgl2_cru_info = { + .max_width = 2800, + .max_height = 4095, .regs = rzg2l_cru_regs, }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 00c3f7458e20a..6a621073948aa 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -27,9 +27,7 @@ #define RZG2L_CRU_CSI2_VCHANNEL 4 #define RZG2L_CRU_MIN_INPUT_WIDTH 320 -#define RZG2L_CRU_MAX_INPUT_WIDTH 2800 #define RZG2L_CRU_MIN_INPUT_HEIGHT 240 -#define RZG2L_CRU_MAX_INPUT_HEIGHT 4095 enum rzg2l_csi2_pads { RZG2L_CRU_IP_SINK = 0, @@ -81,6 +79,8 @@ struct rzg2l_cru_ip_format { }; struct rzg2l_cru_info { + unsigned int max_width; + unsigned int max_height; const u16 *regs; }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c index 76a2b451f1daf..7836c7cd53dc3 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c @@ -148,6 +148,8 @@ static int rzg2l_cru_ip_set_format(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_format *fmt) { + struct rzg2l_cru_dev *cru = v4l2_get_subdevdata(sd); + const struct rzg2l_cru_info *info = cru->info; struct v4l2_mbus_framefmt *src_format; struct v4l2_mbus_framefmt *sink_format; @@ -170,9 +172,9 @@ static int rzg2l_cru_ip_set_format(struct v4l2_subdev *sd, sink_format->ycbcr_enc = fmt->format.ycbcr_enc; sink_format->quantization = fmt->format.quantization; sink_format->width = clamp_t(u32, fmt->format.width, - RZG2L_CRU_MIN_INPUT_WIDTH, RZG2L_CRU_MAX_INPUT_WIDTH); + RZG2L_CRU_MIN_INPUT_WIDTH, info->max_width); sink_format->height = clamp_t(u32, fmt->format.height, - RZG2L_CRU_MIN_INPUT_HEIGHT, RZG2L_CRU_MAX_INPUT_HEIGHT); + RZG2L_CRU_MIN_INPUT_HEIGHT, info->max_height); fmt->format = *sink_format; @@ -197,6 +199,9 @@ static int rzg2l_cru_ip_enum_frame_size(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_frame_size_enum *fse) { + struct rzg2l_cru_dev *cru = v4l2_get_subdevdata(sd); + const struct rzg2l_cru_info *info = cru->info; + if (fse->index != 0) return -EINVAL; @@ -205,8 +210,8 @@ static int rzg2l_cru_ip_enum_frame_size(struct v4l2_subdev *sd, fse->min_width = RZG2L_CRU_MIN_INPUT_WIDTH; fse->min_height = RZG2L_CRU_MIN_INPUT_HEIGHT; - fse->max_width = RZG2L_CRU_MAX_INPUT_WIDTH; - fse->max_height = RZG2L_CRU_MAX_INPUT_HEIGHT; + fse->max_width = info->max_width; + fse->max_height = info->max_height; return 0; } diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index c82db80c33552..395c4d3d0f0fa 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -736,6 +736,7 @@ int rzg2l_cru_dma_register(struct rzg2l_cru_dev *cru) static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, struct v4l2_pix_format *pix) { + const struct rzg2l_cru_info *info = cru->info; const struct rzg2l_cru_ip_format *fmt; fmt = rzg2l_cru_ip_format_to_fmt(pix->pixelformat); @@ -758,8 +759,8 @@ static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, } /* Limit to CRU capabilities */ - v4l_bound_align_image(&pix->width, 320, RZG2L_CRU_MAX_INPUT_WIDTH, 1, - &pix->height, 240, RZG2L_CRU_MAX_INPUT_HEIGHT, 2, 0); + v4l_bound_align_image(&pix->width, 320, info->max_width, 1, + &pix->height, 240, info->max_height, 2, 0); pix->bytesperline = pix->width * fmt->bpp; pix->sizeimage = pix->bytesperline * pix->height; From patchwork Thu Apr 10 08:12:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046083 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010004.outbound.protection.outlook.com [52.101.228.4]) (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 0C493208989; Thu, 10 Apr 2025 08:15:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272932; cv=fail; b=W1W5O32zWAxUGZ1ioRUYEEXeMc9tzMrVFlo+C1WuX36MCt+hTpxwKc7P6mVLHfbXBHq/8IIKPxRfUnMUfSjcqrxiNlGLNi6479P5U/SQ6/D3ix6nsNvZEL3Q3QO3eV6BeLNdjC1wJDvQWQQhUk93W8Zm3kJyYzi4RLLxvcyncBM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272932; c=relaxed/simple; bh=48Z19cMBlt2ZunZzBapP3JwtbM/ojLDa/OXPMmTAJDs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kFxnYdoRRbcz2hWZA9jIZYhhTHYS3flr7dpp9nrk1uRZwkpS+JW2xbB/ZlcPYJakhCoY/UHD8aFskugU0WFCaL7z5FJCKv2DVFi1MGy0k7j2pTqgOQpiysKxnIlrB/blcENohqAS8zmD69M6efRP0+E+9XiZdw+OKVBr3TWU4mM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=P7VgQnI7; arc=fail smtp.client-ip=52.101.228.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="P7VgQnI7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qP+eU0HIuSRE4j4rHAO8dXuv4ldwAM22yBXxFWDL1T8PYc+EH/gYfa2EGJTiPWMtUsdOsqXxd1BwzUMM9gC2pwYVrLA83w02zdiGegrHs/Wd23T1WdeLVQDnryPJyN/RpiM1+n+J6mna0CM/dzjHnyLujNjYZhFvEYPgHyalsBcJ+3FsObGo5Rb506UVeY6qCrYRb8ENlX5JKMur9hnbWQraz/K/Szym1Y0qf9xRJ5znc5x4DB0yD3TzOAenv+yWV50fDolT0SCKqpl/iSDfxxxSzx5UzZSlwykhO/r0S4iF898pRyHcylvWPRbGw+D4OnLXD6iS1228rHRDq2WnQg== 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=vSgqbtpFyLO2SEZSJSEwlhJ5PAQkeB//cQVMzFpBeWA=; b=SWl+l2/YQ9Zj+Smo/uLXJ+PNsXnkue4GUsh4B0YPXvke9R6VtPIv7c7G0wHfm0OIBLAp/eM4BtL7LuIxgQKEEExtLuo5Z5Ucu/HalqFQYLPfwWWHKDHLcse+h940DtNVS+w4x44mYlAfvf9fnxCs/0jCAqVggPRjww9qDvjA6vPuJ/YAju1TNkC3dqDw4qXyE8u3aZUuFLp2+eWAku3pGDbgpgKLhswbpZKcnKTbnD5UH8I9GFj1gU6EAYUxgbh4U1o4m7irq79sFjLyIdUBZCoSODFlbatgs23k2lB6ASdOZiDgzqSHaZ1KyYiTSCPmDhe+us+xc9loaJb9pNfpEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vSgqbtpFyLO2SEZSJSEwlhJ5PAQkeB//cQVMzFpBeWA=; b=P7VgQnI7c4eo91F8TqWfTXz4jbhbJZHErrb5p+fJDnji6Q2dud5Fa6e1qYXgRzJ9l8vpUu4VON6P7ztXHAZ4ZR9DfTAj0YFkRuo5AlgrezaxGwg9vWrR+LGg6uPQcXPan3hbj0565RP8bZyX9t1/5xKJXaVBClesJqAjCg7HwPI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:15:22 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:15:22 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 13/17] media: rzg2l-cru: Add image_conv offset to OF data Date: Thu, 10 Apr 2025 10:12:17 +0200 Message-ID: <20250410081300.3133959-14-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: bb3d8428-3277-4540-b009-08dd7807d6c6 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: sJCkQjf/OXgpzLFYBHrXzF2Ihu5BERrFmBD9y85s2RD6qR5LnqictWBokgeiAqbIDxjDEx4DIPwXfeWr6HvwSHuXaOXz3JKaKQaFptjdJ3VzM96gC8S71sDkh/nHR6GBtcvs4tQmWekQGCLK/H4hSTb1D8kdePFFR5ULiPLvhPJDzRRoFxuY0RsHaAmW8yJy+OL42+z0+eaDHCj+GS8GqCUaOZaHT+SJEV5mxmjDoqOCfrwjiCUiVDk8QraRPoHhKDAWtVKV5H5EZw92HQ2ZV0imnBz7U2etEQZ4izHGV3nDLCnrxFEeJtzMRw3M2yhgRai7akvLb+tb59ftxdqPc17jaZusmdtfAoZYjMeyNvk/he2BHm5+FzTbGIK/k88I/ieIy6J5WU3fsj1KSW+iu1OMRklOK9kB8XbMNbAerNiVrgZV97r9op73rRzpko8LltTAgGI41EFgR5DTGQAFoLvakHyoq3/DxDisRula3WXjBXpGP9cfjv/NTBt4FB6+AQmovaiAqfayRAXvDmYMZqx2IrGDbAEY8+WY2ociASl4Z7E0rdR8nDN4sll7CBXsYNDIFqiSj4bldztOZd6TYqbyljqfmIxXDe7rDL0jBThk+P4HFBGPoaKejA4h5KcNrVN36VqpEUzJAkiHPA3nLHasnCK5ftPDAxCXDWG/sp5QzA3c9Jzr68Rj23VZ3ZfaIfnJnROpR0Lz/DRQZrCVr4eQQBHwKMGuZQmiRYadLXZrt9kAd3y/UstvbAi0Akas63p9OEiH5coDF1X75TbMAGs+WIdfGjeZ6qpQM9oKGaaJzCLWhBE7//+iOGSw2RxFgbGLeiBVdhe92w3sBtYmfGb+yNMJhgL5cfHt5g+m7trWMQrddtPnieaSeuSR9VQt/dLvFLnNHiD4OV/zDPs7zFtBwXnsRJoMd1lxgNtIAI7t31tscuPHiU3C56GEDNtSbbxzyMZZP4Pzl8WI8qD77vmhGZvWa0sQ9YSwVIwUBru+oJYz0V8/nfiQ0XmwNfSZdkzq+ylmdL1yK1NL+dfJkfxDlDmonNizcIgjfB6c3/uJDtiFpTiXDzfeh24bcXLBO31aQA/0muzSc4bhaPr4t/hYrEuP6FS3f1mtrujI4vM7T/z4O3YXjk9qe1EkYvcy5J5L+/ZQbciO7xRDWtmEIt7LPUgWfTJfEJl+jyc1GVw1cVkO862OA099KGRMQAxE26vMk8xsQ1eWWrXeCj7ytN14vd3woUUt09Q3Lv3PV+P3KbhtCglomCTuAH9fAIA8F4gpdncJZCJXSRV+8gOy9iXIz1DWq3UBH1ura0X0d7+vPyMGNxZtjv3RsNRPhNYg9IQnjNQQHrYJVEoaJch4PZ1NXYqrjRAO9Zqp06HdPVM2KBcfAymFw7l3ZoIzkVzI/G3gbBmQyFO1Gtig7VBU0bOqOmTgts1vAZki0BpooRove0kD04Itctu1gpp/nx8q2+t02Ft6GyAWWTth50pk1A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: c8NwakD+TrvbMoxn9YpzD3wwaF1mMUr/ULL6aQo/Bj36qEcLbTuK8W3g7jEDEaLrBMG1NeorM4TYuBGacAhM9z7Mk9n1wb1sTe6WF6dZdjEqBJiZmPX0cYcBPit8Pxnia90iXz/TPzCF45vsNPP4V2YSmPgEPQ739qyZhA4OkMP87zggf2m1mQdDo9e8H6cwursbEgViIaLacRnxMxpNuhkFtf90hJAYSD6TFcKLe0yzoYx6sBZZw2lcPZw++qdCzB485de4ihoPAtb/2TvKDPAel8/1Ib5H04BWIXx+c6AOtCnZhxPTd0mGkrUblHAGhMTHk4IVxtsMDZaTuimHJ2QaqW5EzyxhWL/Gyv3xof/JX5n/vtmmdAX0bsUCINVj3KO8nXTw6w7avLQ3X8FNgDZr7cZ/WTLollPITrkQAAJg6bt4esmg8q57SxcFqVhuRnu6otdE/CQW9Xh9C1WMV9D0pAS+jLEKXX282Kqf9JJ5hYZnx/f7KTM1/OQ/YJgyNoxM5jYK91ecrFuWD7uMIFCLR9jYQ2hZ18UCu8qYJMZZDiIWoaH5NnSZcopAnzh1Bdw33B69k/pTKGXeeRSxALGtTJsBr5O/udX065SHF+MeQtrGWgyPmT43CMHpgCeoYFCtnyBUXeEjQdu5dfkXPStq+7TrSDLmrWKHQFnIaiQm3YQintv1Fp22pULHHPa4vxGO2IrEUjdLuIuEIyLIuW2TUf/k1tqWGsTiAY8Y/2gWTRO0RV4i3PWpN5u8zS8cTaQMPZwTPRn2VtZRHMwepZRavpZGnyB/pdJt4x8R5evRE4anoSwobiieUrj7o2D8zhbgpmAcIWFVNl0+9q976OzM37/Xw7xuGn3f9A9Rz6xBrYh7r6p94LMY7EkQoWNMj1bb37zKZHhL11vFsklPiib8GR1mzb+9L7ibG3oPhvrxfuAQrLaBWm4Gw7DETO9L7fzQi/9HYz0u5BrgXly2aAuP7xx7XGTUPdzbXpi200wy/S6c5mT3itHd4MHIIlYwi2nszpkrKGInvZZgP2qXpmkk9s/uww4EDjCdFrUjV22YHCxuM7gjmFG1WZJiyrAFCj0fFo9aiGWMeFUubhUVHheEZCFf0ETunG1WiJyWz5iDG5rmRnS8tq5ueRo6nehf2bAXt7Zd5nPFs3Bix4uwW2t7xppHcvmW42HADtwmJRieECjZu8lwVIMHqk5WQSkSmHA0EBVMamFBQUYMNIOxfoleOuTL9jpLlBsVPG8Sbox5OCIHqJKuSsqW0d0DmX87eHM2uRl2krXDIUgdd4cN9gLS9okAyGbs1cowYSYqeA9LZ1LydLB3fbRiBzTOR7NgJFMa/PqW3lAPzw2M8WvWEaqB/SJDtzNKE/1Me5uRslOsPg9ZkS88Z+/Kt5dNkMBpIPU2+QI+ySuvooZBT9yztW1Kq7q7C66/IsiyZem9qOIuGmtOfznbJ8ovqTWZB2zvPRB64y50chKzA4p9sxejTGmESNSoQLdf67tZp+8mDmCmjzw0JTk6uq96LQ9MXMd93aHan8bdREr+caeYHocwc2WTTRxG/kgCDa64fHdb3qjBMWmS4XbnooldAiiqGFlhpkLGz6yDJwp16sGDEeSMH5RiuW5gzofNXMTANAnxQZI= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb3d8428-3277-4540-b009-08dd7807d6c6 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:15:22.3407 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: J0ZBARHgWnuvNMoLPnDUAZ95nT23UAFZwfOykRrwlJN7jDGyQFCIKkMCsc6x/wxqPO1WL1QuuT38ZQW6cNYvy9dPLhmCCcjPRoMfHNiOzoGMjZrB9xBQHy4Fnp3nZw8h X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Add `image_conv` field to the `rzg2l_cru_info` structure to store the register offset for image conversion control. RZ/G2L uses `ICnMC`, while RZ/G3E and RZ/V2H(P) use `ICnIPMC_C0`. Update `rzg2l_cru_initialize_image_conv()` and `rzg2l_cru_csi2_setup()` to use this `image_conv` offset from the OF data, facilitating future support for RZ/G3E and RZ/V2H(P) SoCs. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v5: - Collected tag. - Dropped unnecessary outer parentheses in rzg2l_cru_csi2_setup() and rzg2l_cru_initialize_image_conv() as suggested by LPinchart .../media/platform/renesas/rzg2l-cru/rzg2l-core.c | 1 + .../media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 1 + .../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 14 ++++++++------ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 19f93b7fe6fb9..7e94ae8039677 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -357,6 +357,7 @@ static const u16 rzg2l_cru_regs[] = { static const struct rzg2l_cru_info rzgl2_cru_info = { .max_width = 2800, .max_height = 4095, + .image_conv = ICnMC, .regs = rzg2l_cru_regs, }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 6a621073948aa..ca156772b949b 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -81,6 +81,7 @@ struct rzg2l_cru_ip_format { struct rzg2l_cru_info { unsigned int max_width; unsigned int max_height; + u16 image_conv; const u16 *regs; }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 395c4d3d0f0fa..95cce250b3272 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -246,20 +246,22 @@ static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *ip_fmt, u8 csi_vc) { + const struct rzg2l_cru_info *info = cru->info; u32 icnmc = ICnMC_INF(ip_fmt->datatype); - icnmc |= (rzg2l_cru_read(cru, ICnMC) & ~ICnMC_INF_MASK); + icnmc |= rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_INF_MASK; /* Set virtual channel CSI2 */ icnmc |= ICnMC_VCSEL(csi_vc); - rzg2l_cru_write(cru, ICnMC, icnmc); + rzg2l_cru_write(cru, info->image_conv, icnmc); } static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, struct v4l2_mbus_framefmt *ip_sd_fmt, u8 csi_vc) { + const struct rzg2l_cru_info *info = cru->info; const struct rzg2l_cru_ip_format *cru_video_fmt; const struct rzg2l_cru_ip_format *cru_ip_fmt; @@ -276,11 +278,11 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, /* If input and output use same colorspace, do bypass mode */ if (cru_ip_fmt->yuv == cru_video_fmt->yuv) - rzg2l_cru_write(cru, ICnMC, - rzg2l_cru_read(cru, ICnMC) | ICnMC_CSCTHR); + rzg2l_cru_write(cru, info->image_conv, + rzg2l_cru_read(cru, info->image_conv) | ICnMC_CSCTHR); else - rzg2l_cru_write(cru, ICnMC, - rzg2l_cru_read(cru, ICnMC) & (~ICnMC_CSCTHR)); + rzg2l_cru_write(cru, info->image_conv, + rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_CSCTHR); /* Set output data format */ rzg2l_cru_write(cru, ICnDMR, cru_video_fmt->icndmr); From patchwork Thu Apr 10 08:12:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046084 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010053.outbound.protection.outlook.com [52.101.228.53]) (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 BEC6D20AF7C; Thu, 10 Apr 2025 08:15:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272939; cv=fail; b=mvxIDMJaxCYeLrV+w2fpjreYOaORh45YU3w/4WrLW7ehZUhDWEqbD1bDUU0BEODm2MV/dKRSNQIZY0EoxrYEr5wSdGYuMc9sfqclgkdbKaodURDlNdCrFgl+gnphgktUWBtWY7dR7oyrThUczELnKYy21ot0SE891VIjqqnaWL8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272939; c=relaxed/simple; bh=sy4aSaj2nR6DfO4Ow/eNkTJ8JNuuj4PCgddE4cchyCc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=X39vLHRv72CmpkY7ZhOnrWD8U18Kmb0wM2Cf26Te0uvd9dDDUCnRG53+YWbp3ihB/zmh/XAGtBtraAF5BGnqAlieILSz7RLWxzaNAgv4CCHCwl1+tpQssIIpwB1iuK0I0fGzpdyny9uO2UngG5CKqKqQTQqSmM1suw+T6BLSBWA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=ThDDBv8o; arc=fail smtp.client-ip=52.101.228.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="ThDDBv8o" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vetAVW5bGKeRmYeZItWpZQ/Z8TbZ8FWYtpNarhijw6Eumw3aycsWrfPVZ56VNoRD4lAdAdozYJZy0Lus0CUTnjkofEfjqTKc7sOzn4khgjI1WqeP/1F4gyRus6rW5nomVvxlVPFa+tDjTQHqHx5DYvLhMp51BvzgF18nBHxuS94qt7NdPXZy/Egbst5DwN/t69eRsekcI7MNIVC2gjfRp42QLuu1FR94Ka4flE380Yb0DBNriEZhTkrSyatmmeNlUc5pbbOV/mmIULZiEgnIxsqdUhAQ1xHPW2dumMHncmkTnNnoxGf5ZwaF4elqDWZb661Fu5CJenUoEF4fHAEiSA== 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=RzqrfzmgpsoH2l1Nnmb2qYzTvBefNPDBN95lIwsUpxM=; b=Owmlc9a/spD/mTmW182DMA44oGN4juaDCeKlc4YnBKnJpvyPWt/VkCdVeoQ7F+CHWUK+0infdSojObqS42Beoc+hBvv9y2fxJ4edAjGk0gMdAoSdMmtGePLDo7mTi+P8kLNuCp+lEtFtgDfrGVVKmx2hhhrNncpo/2cU4za95CygvkgRM+8hnGf3HvqBKmTE3m3D2JQgSl6lEiIXFYNF1qZjafu5/jDROmANg3H5D1ibKOnt0Bpc3iILfhvFP+W6y7SKEoLyWs+NaD2SLpCVzJE2J4ugN4eEC3nEGXuV8IeYbrcS78NVr/qx8EPVQEuWZWA7Q7DOBuOQPsijMTAfXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RzqrfzmgpsoH2l1Nnmb2qYzTvBefNPDBN95lIwsUpxM=; b=ThDDBv8oGXnyAnzZ97oBsPmxgx6px8rzcmbX1Rg0N0Brsp/vw3FePA3ABasw+KBKMdcYhgi1XI1eiMp4m9Piv1kvWk/KKtPoUx/CutR9ffiAITeFiWZZfNNKch0FbTscM243nckHNqkT6kPpyPeRGd4I+TwFY3xi8BzQ0mR2lSY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:15:31 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:15:31 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 14/17] media: rzg2l-cru: Add IRQ handler to OF data Date: Thu, 10 Apr 2025 10:12:18 +0200 Message-ID: <20250410081300.3133959-15-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: 513cbb70-d1fc-4628-0b32-08dd7807dc44 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: 0Mo0dikWI5pj1uu565mtA8idNJjNB7+ARENXI8IhH7ruqjWxRESBEJiE2o018hh3wPg4fXySyBqNAtqVz728YgG/ccyaq5z2W0kwAaZHn0vPfpOzJpVE/dbqhvJVcx99i2OM283CxhpJpfefHzxI96sgVC9v2cdtxZzBgRouu7du9P9xwLL0aykHTJlreqZdDpXPRLMlZNu25rCV9HcM7SItfFO617PMScbBT8V4sRpT0NyfxCUB7VVNI4ztqf3iHi65OG9Wew0gDumeMJELrAFPF5A3xd+77Nrgh0FEUXHKEqHTEOxIrYtnBdHQvZ213SHU/VxnCFhLOzz1ztQwiwrzT4+aDmZxFk0PIFcsdJ53VsRE12KZNl+UxLcoabuq2lPSiEP1U5SgJrxzS3q2jXoIey9iXVOwN8HPMBB7bXNmbUkCsE6fdwQpOzVWUs4I8gofvxKXcUqN4641fI2kVtKeCeyIvfUQtksj9aokIQb1KAdRAYSEE2BSJ1+EYYRdTXgX8yfvxQuX9PavEq7/FsZGN/Y0yv2DEcU8m5rkp/Yq1Ucxq6ABonZu2BOmmaDvpyojCeHMhKe4Lh9JgGu7witjzSI+wrDCirdJEzE7ZjH1Ct3H3tbVGUsqIgt0ExPYjDX1RBEPb1BMunQjHPBrXPH/376FguSNz0VwnLGFzhnokRoxRAkM7AV0/+pATcORzGAri8DjvGSmmsC8g+sEB5inEsEXORq2yrJAK+mGmrPUUoOPmG7RAR5W+qZelnE0gTsJ8XTrj5YP/bYkeOpR1jwKBHEw5hBiE3QvkKHttbsOCWIggXsxOuJ+R0R6SAhkIkbDw0Eho37ikZPm0QFQFNNeGjNke5ScisOqYFRJEtqfoZSLMHzIGOyLxSeLgWATR11W9f2aXqzZPL1OfrCRpKS3HnPOnhpDwM0SHVDGdTDaDESyMGMidv1fXKSWKSE0Gmf0veaKcDVQ25Z81jyuO/rCdEb1dgmsoCe5VyxCsfXqtz8fWq24GzqCiDoMREb4IkW6KBKYxQnK+5OQgMxHqYtOAlQ4I8cJXtVemrX2PkwquJjirwJ0Ph1ZXQ+xhmlXVfdPh+VYQ60iMfS+I3qGA+O+BYHHmY85iDhki7KBYLueBBm/vvRr7fPi8X3/Otsfqpjh4iwmEGg+lS2JdZWx7WFf9jd6jc6lF6q8Aj8HNI7e2WSiDAVyrHLo5LCu/IH5JEQt/e5r7pVUK2fUacw4W+/3w3MuS64UMMY6Wjq27vB9Kq8aYlTOH4v+zvT+jVmGym0TiO8NpxAVssjMi2ziDhQMvdi8xyyx24nGUqHD85lDiKVvdepHolxZy0c1RrLWihaO3/tAGv40luP/bYOTi2/AExyhGZ/13UWsbFpXru2k3X+okV399CXFGp9QkpHq53szMCleg5Ud6R/1OgoSruZyI5u/IeK9aJu/bolb3lNrWuVgAxLpoK4KUQa88JN884zNW3vXIpTfSt2teGVcgQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vjwllE5Qu6wF6D0JD3inh9S44qpttf6shR23SQW/i/de5nUAVHHh2Ei1FsRGVUrufdTst6JQEv7v+85rShsJD+YBoMRIg3YaAOnkNXq2vv7FIfrxFfOBtWBNCq28Go5ldHVjSOFanZ+8f0Ub5bZxl1/z7eZ3mDkSf5Ptp58ms/jMSi2B2ytrkoNs5uRWfAPWlhgibGXaVYkKTSPy3NdQlZr3MZe0yA5qOQc/sykGRG1hKHQkfJpvRtYmU3eOdmXF4l4srT6b27/Fq3YDsfwHHvHHDnYJWNo+SawfxLfVf6gqoGiXDaaSjMaSGZ/VmPbnnRnKrybpx41bWj036LVHxmC+0fHWKLlIrlmgS3M+TeR2rFHF3dO7TEVOm0k9/p7HZSwgEhXFtaIVlnQQsy/n1bFMuUt3gQC3iSx9Q6L+/iQJ19aMGeDLOglh+bOS1dsc3OPuDHL5fZ4hjKSriUoWjtBr06JZjCHaikeXbpVe2EuwiUIZwUwn8lT3blfophZs91ZlpgWJEqjB9DbXLasv0CgyD5ViAfxzLgJaD6ZnljZsg6940Ibo7YNyxC7JJC2s773ZbmKQUeAoYUYJUSR90zGbmt6RhGt+fv7x4v8yj3X2Yu2t1NWCQz5Cep72CGj5QZu5zQevgl3Sz1AAxt9u09wOJzgeKsO7r5rrnNPXnDcwzXSzb7cdZIG/axP0jJV9NEMrAwYHV2GgX6igPVDlh4bvD4jLKjWfLiLGjxMwl5/46AAKUVykDTwirrrZ6vWWJidU/qksYUfq37apZYGj8gWQUyAo9NbD+L+5cauHryG43+5UExpl/MspTuMSw/3/e3nMXxobANs5YxVTzpa6AxIrE0+hyAahTooVnvsp9/KWRP7/YxILnkv7TEcAnQgAGy+jkt95y9mkkKSPKI+BMVNLFI5y2xneGE5IZ7oMwbKUtu4NLIT+RFNl/H6w44By4C8N/Gkm9WB7zE0d/n+MCKBTFIRDZ1GF3sizlUYVqUxWEivO6/Dgx4m7t0q+/Y8tSiuPj1xagD5VRHCiPgETbqMGf1KEXcM5f0p+WD2DrtiPkG/Q3gCuRgArzTobojgAVSVxEvMi7P5pM2WVWP5DnP76K9so5ToCtVROn66DcgaDB39IcQYV91i0FQzopzTEGvrC2WxfphVoxeOREAEyB7m+FloLqVGJpSQRUYrXS4Z78ptcgI6Lf1l+G20Y8sRMdqK1HAj0EpytXCGXlHY2onh4YPz2Jj9cXS43fjUr0sRBBFsB9mfs23DNjsO4pd1RyGejZU2bBSfQGixsQztS4/5uA9oRuCoA94Dal101k88eMMjiYcvKQfe4IMXfogzLggSyyOuSnYroFGQjG7mVRmO0Ym5gU7WAZ99Dcgnjjx/I8XNYPS+GkdCYt+9MkU6nrq1Gz95SfonwrQf1iMpSXqxqvfKrnyBA4FH2AUwPHYX86f9Fd1eBkdK7fOm7qrbv5ESQOZEtLhWdVSXEV6DaSmppoUqE7WCtkbTttrmtjXVzD+BMgnB53Z1JiMuvAVblVFlsFaurrit62wm4qh0wc1KzpKhVc9lZbCbnpPERsDs5d+74lxb2yuOZWl5iHnYvkGhtM749S7s+ZN6rHyhXCqokOUScZh+59Usu4r4ZoTg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 513cbb70-d1fc-4628-0b32-08dd7807dc44 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:15:31.5790 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: x3QE+lUDvBMvTgJ6DpmlB0Ldi7bh4VeeVj2zNQUX2ti0TOBgCi0qR3kw4EI0XDwWAi1r326rY4CUmHPzfdhdOQjlPXTEOS5gafljbVp/U4aMqEmwoQRXZ1TEEmhuQR2R X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Add `irq_handler` to the `rzg2l_cru_info` structure and pass it as part of the OF data. This prepares for supporting RZ/G3E and RZ/V2H(P) SoCs, which require a different IRQ handler. Update the IRQ request code to use the handler from the OF data. Add `enable_interrupts` and `disable_interrupts` function pointers to the `rzg2l_cru_info` structure and pass them as part of the OF data. This prepares for supporting RZ/G3E and RZ/V2H(P) SoCs, which require different interrupt configurations. Implement `rzg2l_cru_enable_interrupts()` and `rzg2l_cru_disable_interrupts()` functions and update the code to use them instead of directly writing to interrupt registers. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Squashed patch 15 and 14 - Collected tag .../platform/renesas/rzg2l-cru/rzg2l-core.c | 5 ++++- .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 8 ++++++++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 19 ++++++++++++++----- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 7e94ae8039677..302f792cb4159 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -278,7 +278,7 @@ static int rzg2l_cru_probe(struct platform_device *pdev) if (irq < 0) return irq; - ret = devm_request_irq(dev, irq, rzg2l_cru_irq, 0, + ret = devm_request_irq(dev, irq, cru->info->irq_handler, 0, KBUILD_MODNAME, cru); if (ret) return dev_err_probe(dev, ret, "failed to request irq\n"); @@ -359,6 +359,9 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .max_height = 4095, .image_conv = ICnMC, .regs = rzg2l_cru_regs, + .irq_handler = rzg2l_cru_irq, + .enable_interrupts = rzg2l_cru_enable_interrupts, + .disable_interrupts = rzg2l_cru_disable_interrupts, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index ca156772b949b..3f694044d8cd1 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -34,6 +34,8 @@ enum rzg2l_csi2_pads { RZG2L_CRU_IP_SOURCE, }; +struct rzg2l_cru_dev; + /** * enum rzg2l_cru_dma_state - DMA states * @RZG2L_CRU_DMA_STOPPED: No operation in progress @@ -83,6 +85,9 @@ struct rzg2l_cru_info { unsigned int max_height; u16 image_conv; const u16 *regs; + irqreturn_t (*irq_handler)(int irq, void *data); + void (*enable_interrupts)(struct rzg2l_cru_dev *cru); + void (*disable_interrupts)(struct rzg2l_cru_dev *cru); }; /** @@ -177,4 +182,7 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_code_to_fmt(unsigned int code); const struct rzg2l_cru_ip_format *rzg2l_cru_ip_format_to_fmt(u32 format); const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); +void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); +void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); + #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 95cce250b3272..a104821d823f9 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -300,8 +300,7 @@ void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) spin_lock_irqsave(&cru->qlock, flags); /* Disable and clear the interrupt */ - rzg2l_cru_write(cru, CRUnIE, 0); - rzg2l_cru_write(cru, CRUnINTS, 0x001F0F0F); + cru->info->disable_interrupts(cru); /* Stop the operation of image conversion */ rzg2l_cru_write(cru, ICnEN, 0); @@ -393,6 +392,17 @@ static int rzg2l_cru_get_virtual_channel(struct rzg2l_cru_dev *cru) return fd.entry[0].bus.csi2.vc; } +void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); +} + +void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, 0); + rzg2l_cru_write(cru, CRUnINTS, 0x001f000f); +} + int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) { struct v4l2_mbus_framefmt *fmt = rzg2l_cru_ip_get_src_fmt(cru); @@ -414,8 +424,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) rzg2l_cru_write(cru, CRUnRST, CRUnRST_VRESETN); /* Disable and clear the interrupt before using */ - rzg2l_cru_write(cru, CRUnIE, 0); - rzg2l_cru_write(cru, CRUnINTS, 0x001f000f); + cru->info->disable_interrupts(cru); /* Initialize the AXI master */ rzg2l_cru_initialize_axi(cru); @@ -428,7 +437,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) } /* Enable interrupt */ - rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); + cru->info->enable_interrupts(cru); /* Enable image processing reception */ rzg2l_cru_write(cru, ICnEN, ICnEN_ICEN); From patchwork Thu Apr 10 08:12:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046085 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010010.outbound.protection.outlook.com [52.101.228.10]) (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 E3FF121CA12; Thu, 10 Apr 2025 08:15:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272949; cv=fail; b=TMTltt3QQ+dJNhJLjt2OkOdhGlmA2N4X0Lcul1s/W2gzhVPSZiVVxG+x6CaJoO2We/XBG5pQLAXREuwMohDKE9KuWAKfYcpAN3eh/N8TNvXT90InSB2uJ0cK4CFaaf6gN3mpOxjlF3phYshlHRhgN78a6MxTUkvGszTO+DI5ac0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272949; c=relaxed/simple; bh=CKIfA+CaYrGgB1nNgH/oKRqJxiDl0tjKYvkqrZcxC9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Yfki5yheTwLs9xzTqXMF/eGd2Xr78TTUfeD6UShlxt9Js+IzMohJqqfjbK+y/S3eBMRyVQNk+2SSytEnX3L15g+igztoVpHPH2Z1I8qxDZUx9UxeN0jfhsHXkaJ7bUNpo4x5XjWDPS7SLQeTFsn/7g+7vxNgB33M1HJsiE44CEg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=gSi4wSSk; arc=fail smtp.client-ip=52.101.228.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="gSi4wSSk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NA+uHl1UmxnXB30YjanzrPsjx3gWDkT6w61uHTdbWT5cjPTUtj5yPFgQ94HnGKyeLzgxasILI96rW5v7AR58j1n9RmDqaxap/LFE9LC8Hby1liM5MS43CdQjqmfiMlCR/2Hr51E/bwoeQ5nH4P5mFzOOCSDSlT9GLWyU0JmSHFC1X4UecBwo1phRObNf8zUlKPHh5VNcnb7LnrYrkGahG1EnbPNSLaa+HVQAtTrpM7G4AGWVc1nfJC0oRmZVeL4iPQiq6ifseBWjujl9pFDb0tevm4LgckB9Hles2NLsO8qLCd0v9lBtEfiwSAL6vXgE1QAR8DZ/mrDSJHc/9t2skw== 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=PvxxmwfF9H8yke9tg3WJkX0S7wdEGfPIx23gqr2kgXA=; b=odwFsmjdVp6gU5rbQ8deOvXxHmvD6YNtwzWmgOEq01geCsJ/I6y3yAn8rIWm7CztrYIarRQKi9PG5GWuGPg0o4yAOXFnLoJFMqq/WHRpN/j3Xnl185Emvzd+g7akmxV3DNHkBgc59ejaTlKkO1NpkEP3HucoLQY4Tg9DZSf531aUARvsVv7QFlpGaQVJSB3UuDqfuvRshqyNmoX8omOaczboCvrJYKQAt4YtYn+6k6lwLTk3IaFLgBEQ6az0MZNlvJBbTWQ/Z1bc5HCJKSzPc7S0dIhl2VoK62J0EyhDPyDi4mdaAGJSMobJMdYhowKvJLqYl/K1H5hnFqiY8UMjeA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PvxxmwfF9H8yke9tg3WJkX0S7wdEGfPIx23gqr2kgXA=; b=gSi4wSSkAd4cgX6V5Gj3v9Uvp1s+XPgbpYFLU6moX3dR3/TcG8R98kpEk5tY/rg7nIh0EIVhDvCT7NOrujgP45sFWGhnmuM8jNhpBQq8AD0sORBM/muivCypVdLydz/Lkn/wB3/qYDURv2aZkBYi41DL8NWOEABwDZ7PGZGpZGo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:15:40 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:15:40 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 15/17] media: rzg2l-cru: Add function pointer to check if FIFO is empty Date: Thu, 10 Apr 2025 10:12:19 +0200 Message-ID: <20250410081300.3133959-16-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: 1dd76a42-576d-40c6-f70e-08dd7807e1d0 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: DsN1Hu0a8ijjcGDU8eSjCibQTSQV7rvuOd5K8bkWZd7nERDpSBACUiIH1PVM0L1uPZ3uBNSf2Wk8JCqIxFI/t8x05SGkBm7bDcF5Dd9c7214axTS4ef54tVQsNxQqkWPN02L4TTQovWORC+Ul2vz+B2DulVxsFbn/VBr+EJnFErCvduGi1jM8p9b24QJT5tSXjcldK/usQf+z5w0AgHQzDpOppJIitNm4ZrJ9IE/DD4hTo2S3eGHsQkMqq3dRxm8q9s4TocOo16nZCTl1xcQFXuf1hiQH8K6AV9jDTLVHq6wmJpvkH3pprhPUFI3mk0+82nZmdu8mBmF/8cSGQKkTeQw3Wi1q9VdDiWiwO4jKe8fOps9Qdv1vJ4OAgRYjcpd8wGPu2GFiNEAqcoLsRlYk+GF6/rFqpaCZvwnAVyvWqultXxNCOZbYQ+Ht4JmWYmjAyaqQV5VMnE3vuOaO0sPa/mYLDfgv4ESKHG6/cKJmmfzFbCNTof0HAfN8Q0huNe0hFialDzjeyeYgHLMF99U9wlxBDFfbWS+GjelQFz9sv1HUFZZ1wlLgTlcTnG8MpVaPvbMXWAT9EUqz8OfgSXZ3HZjmGawlSP+SVRnyOf0AiJMY7qTsxISMZH32kdwoNYmtR+OvKjG/Vaz3I/em2KHsUDdhCmppVBMzlzhI64t26ElbAl3P0b7YA3NLPJ2jgjkB/4ZHutnf/0J+sNipNLknHCe5QB6rdD0NPGevpYpgO1MFb+lEMf4f9nZjecmVkYBx5tWAwAR1O/brJ+zraqbZpynSLkElIPkms6wUyyUErELnQkK72zWvRmRL0OFQPKe3FQjiF1NecGUR3zqUqf6Yz/Vp7lpxKoKR5VzdrAejHNLZocqhRbDl+Io0ZJNzyfonOa9QfnyYQvY3E/uFNfjg4exxnSofXPEk7K1GvMFX90AyXOqJ5L8wwt7WQC901Xoi7bipoyyr+LE6c9YNA8lQgNGkH1I1N2m6aNCpO3hRs56JWHrMXZ4VysEFG330mYktm2QKMOjOh3CyDMblwxCKh4XES9wCc2bFPc+5Wos8J7iSBjy7D5qPoGcEvaytACESXH6V93P0Il+wjjliND3xnToxliuR7ue5bnZX5TjUrdlsrjEP28iAZCtz7H2bt5mricOIh4IsMHskBabtF8VO/9Rm0JLocZEoJ95fiw+LkqZaVHN/uz/3vrEjSgUGwEdTuiXvOiLtZknyLsHaxgor0rHs855NzVe1kAlTFBc4bLtfAOxXZ7CWBGYqkOAp3Hb1AIsL/5ZaxgdeBRqxVtcPKZu5haD/WjzNiaOOrDscVpqv2b89Rtp0Nr9hzuwXcwWNPytuAdEi5AnvNC47n2HZ8LE2hXXP8u5/YDaDXYnQEsyQfKjHxy8NZPp/X0HLiztKQzdQqacLeGO5h/sOrqF7VE1OGz1jWNhh9519r08ELQ2nQHDS1QiJzyH7OAmRDOYjymTXe2G5l+Ns2yrJP1XPg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cUeJn8tcawt5mW9jwecSTfIexdvLTxy90SkZrhTY03Jw0YgbWQNcptLIjdUtOC08EspVid7a2muzc2LOVWNqdWisOs12IcyArblUTe459F0aGGCjMDCigaQtIPCLDKW6GArJ0Vx7ojmjakBjW5Gswn+M25sjVCPiL6hkavVTWwf1TB1gdxct3aXyXNxXeUUORdmgCbBBDPuxcPSgIIVNRgr67iWvRngCxnxZW+idS9mz30tOUOtgH50eStWyQTjOxXNX3XQpR+sCJAnH3wBQpY2Mm4jVlBXcL2xgX42jxmKtwAJeMNtZzxHF1A4DpKtWdr4ofiX/YXiPX1sf2d8BNEm+KnvNEKgv6/kDLeN2CMBXYNZuubRPnOUwuiVlx6pxde+9qHlmPeKHmjs5LJOMmx5jlXZvONEHaVhYmsYq3l4DDIRhQFyrifNrqE5WcCm0DHfB1DybJH+kV988GwxriygQu8tGwHRD77Ps1lFU8s9B9YAj9umrmf1lBTY0EOshSNPmZ0lbJ1feYYEdFkuojFC701M2YCHQVzY2Si7T6gTdHdBz1j6OlcVe5AqiNpBsPS6wAu8pL+Dx2nRyVPloecnkjWRhu8orA1+4y8RBVei4xbqjkqGeNoXy74T2io1GIgiycnwFuk8jBSjJ6bRnhN9dA2wN342mLrO19gveeky+ukSlVYqgLTVuDlF0IYImt7Es0SoCpe+Rqbz176V2HtdRR1pCwxwAQ5kgi7GUr7ZE3iRFwciR96qPAq45httz8nAWAH4s9Y3MImr3cwyezbq8umS5dLnyMhfsgKssgLbXT+i73EzjGRqIWavJvriIZGGBmCrA8UQb1Uby1CVPaKUKYSx0EnX1NHjdC4Eveq6y6xLjMtg6rE80cZzHxD9rnZdkms8EBMerMxWDzUGueUWnhqFHyNRCD9wHMFPr6JxUvg3hlOIE3BgHFg0yQ9lSqsstTObH+4TlbRDYHqxTAcHnv1RcAncwKimvK5oVuMmD+eQng3C1XqlaZb+1JO+Wx9k8BMP4Y8TzvlS+BYaamDJIDYkOBcvkxy7XrUHkEqRmkZ3beJAqi58oSVoUKRZoUcf6DE0UbWKx8avOJRBrLP/NooM7J3oamt2mDmY2MoDRFOgh9yZejUNjvNySYEjHf5MLtAq4mG9tjBQOy/PRu1km7+gmYPk+eTomTu3SeePJUZ98qRdvdKku855xHIYPrX/FaW9QQF8RIY9lJfRpH8MPqAdz4Wv6Cqc1nmEmpI5qv9bBt9XVsH2DdHDx8JpUXZd0QXsbMHsaLpdMjVHJeKX4MXMekN7kCPN8kQbWJe2QAziatyieTHPDWbzQ9TvwA2PDXnSpRks62biBLQx8nTfj1/UY311/W4/jUhOd7uMp6thOOTbLJ/QnKjVGZg2LnxKlPfc6U9OU7mfuSithukf30eTdEu3Z50KmuYdCLH7SZnsdSKhBZMfwXO6PidkZ8h5FBBlK/zFmV6KMOhzdAjEPZmSSKbqa6pgo0Yt9qwA1ruOfEynNs7az8iTglQn/NO6ACP+zt+1cQd3XcYKyGtCxQN3Ar2R3YuHTzxkeqG/f7JUFk8k/TiuYx+WnWKEhdQseMbOpg63wxMnomDgHoUYOfnELExSj53XVcJreOPU= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dd76a42-576d-40c6-f70e-08dd7807e1d0 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:15:40.8337 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Kja4tN2VfwnNayDc0+GIeVDJ6Qrx8ZXdhbd0A96fzYHxVEFJUcUtRKPrtvfnE6rDa2nMWCQbSdTRgucKyjJ+Xj7TxYsYoNkLxiZPptKuhNzd3xmvP392Yf5hnJt/v51q X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Add a `fifo_empty` function pointer to the `rzg2l_cru_info` structure and pass it as part of the OF data. On RZ/G3E and RZ/V2H(P) SoCs, checking if the FIFO is empty requires a different register configuration. Implement `rzg2l_fifo_empty()` and update the code to use it from the function pointer. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Fixed return of rzg2l_fifo_empty() as suggested by LPinchart - Collected tag .../platform/renesas/rzg2l-cru/rzg2l-core.c | 1 + .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 3 +++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 23 +++++++++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 302f792cb4159..e4fb3e12d6bfc 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -362,6 +362,7 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .irq_handler = rzg2l_cru_irq, .enable_interrupts = rzg2l_cru_enable_interrupts, .disable_interrupts = rzg2l_cru_disable_interrupts, + .fifo_empty = rzg2l_fifo_empty, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 3f694044d8cd1..2e17bfef43ce6 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -88,6 +88,7 @@ struct rzg2l_cru_info { irqreturn_t (*irq_handler)(int irq, void *data); void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); + bool (*fifo_empty)(struct rzg2l_cru_dev *cru); }; /** @@ -185,4 +186,6 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); +bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); + #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index a104821d823f9..d35e9b2074937 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -290,9 +290,23 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, return 0; } -void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) +bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru) { u32 amnfifopntr, amnfifopntr_w, amnfifopntr_r_y; + + amnfifopntr = rzg2l_cru_read(cru, AMnFIFOPNTR); + + amnfifopntr_w = amnfifopntr & AMnFIFOPNTR_FIFOWPNTR; + amnfifopntr_r_y = + (amnfifopntr & AMnFIFOPNTR_FIFORPNTR_Y) >> 16; + if (amnfifopntr_w == amnfifopntr_r_y) + return true; + + return amnfifopntr_w == amnfifopntr_r_y; +} + +void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) +{ unsigned int retries = 0; unsigned long flags; u32 icnms; @@ -320,12 +334,7 @@ void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) /* Wait until the FIFO becomes empty */ for (retries = 5; retries > 0; retries--) { - amnfifopntr = rzg2l_cru_read(cru, AMnFIFOPNTR); - - amnfifopntr_w = amnfifopntr & AMnFIFOPNTR_FIFOWPNTR; - amnfifopntr_r_y = - (amnfifopntr & AMnFIFOPNTR_FIFORPNTR_Y) >> 16; - if (amnfifopntr_w == amnfifopntr_r_y) + if (cru->info->fifo_empty(cru)) break; usleep_range(10, 20); From patchwork Thu Apr 10 08:12:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046086 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010069.outbound.protection.outlook.com [52.101.228.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 8BFB420D4F8; Thu, 10 Apr 2025 08:15:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272958; cv=fail; b=sbu7tBGJ3TIMp6ooVBqgx0T0Of4wzThsn0W6VwuTqt0wB75U11lxdm3Ftz49xkoNuWNJVdvMoh63H2bMnYmZQ1GDj7MB6D4dRVzY+szZPQmW4lVmY4NHHS2vkQ87tcRFMLfVmOCA66u74t/A48HabfI0cLnB0XC4dtRylkQMZlA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272958; c=relaxed/simple; bh=Av9BRWigFHtRTltIu/hVRl2BH3mFBLzj3koMaw+3R98=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BcqmDJgIRoc0ij/GhNSs9yJiW1Wclf1kPa8Yhe5Ya9vtK5WepxS894yc9y+6m6UruXwd/xU70ySoeu/ewjRJm2tiHhsT9fEgCjQDlO8yd/pLjucvp4HPd/fpbdZUge3+svi+plvw/cghZe7bvIzRg9iImrZmdumxYvXEkF1hOg4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=USrtVbK2; arc=fail smtp.client-ip=52.101.228.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="USrtVbK2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u/uWW0NshFJP0fGLmDawOATA57npCIpjKsk11sU440mtTWEuwdm/sH0sWHcGqohNukmZcr4UPTwCliukEkCKFW+NaRkIjnpe6WOAf12VkiP7G/xoi04PuYtcSr+68zdIx/lkcN/9DWZofZAVV2ND4NfLQMyFg0PfKSol5Fv+bmHJ5WZyUr+DaNK86tCu1iLNS+9hPgcMRPDBF1MDYrsWiq/3DqPUsRNyziNiwMowbo5NgbzjtpPrat2+UNuPhDA6PfBQ21kQpNxLcxh8Bn+a7oJG32YWJBI2nxALiqRUD9NutWEACQda4N9onZk6n9gjSQDfFzx5OWoPC9Qo8X5zHA== 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=30UvmCAQSni2NJOhkwjL0dQS1z4mP5FLAE2+NBwZKFM=; b=D6GjqguPvnShAj0HSSjSlxsHvOnxAckSiInQ0SJFwpKJMMs/MwQYAYkA4fbn9SDQtdFKw8H2Dt6GYJCNBJsVj3tbifmDe5xaDRq4MDMTwiTmeLKnojUQtR7XU2JZieCj0tFq+Zc108RYaSc1G8xRnqi0y0GXMNPfVsZKSNU3mCs936JneS+nHN3tXraRKyWVjMbTiv+dKFyrV048k6E3t97UYM72yy2o3gx4Hm95VCv8kifQ3Hp4hvaMoEeiWSWfJ9tJ0o7u/QJtBRkMLUTVQNF+K8uz8n2b1H5GGjs3QpJkGYB3gHbpmgMvs2/Za8WIL0YwJeDOo/HV7J76ugjbrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=30UvmCAQSni2NJOhkwjL0dQS1z4mP5FLAE2+NBwZKFM=; b=USrtVbK2rqvOyZb67Em8Ah9oy3PoCqRuBSsAvfc1G4ZqZv8tirtoDEmWunV3vfvPWeSKVvZ4LWS8DO7u7m8dV4Ig0XcmNxDVoO56lEZ2HaXTb8tPrVRf+u9H5QbKTcaPg+T16M1Q9eaZ8wlWqR9MnNEsw3eBvwBcVQJicBiStJ8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:15:50 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:15:50 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Sakari Ailus , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 16/17] media: rzg2l-cru: Add function pointer to configure CSI Date: Thu, 10 Apr 2025 10:12:20 +0200 Message-ID: <20250410081300.3133959-17-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d3fc1a5-0134-4d00-4343-08dd7807e777 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: a36TsxBhQ7k4dkfLodaiJ9E/0DsrhhcWxjMXnSsAxJZFvEpZDzJ4MDnOJaPbSnAb71Q9gPOvvku2b2ulUSm5TaE+FCOKbnsBxuoNLzDhqZnduINqPNuKuHVzoML2ymy7EshcnJmxEfkdKkSdS0UfTjdCo1sBRl23tAFIdQPqQc0m3hOwAHxlRWu46rVf4TQGoweXWLYJ1Od9Ugo2tppBJdQDhK30vN7dlfNG7DAWNj+fY6gR8oE3BR5whvJ884aMKrGyTb0pyxJRI2eupNKAK7yYoZ28Wc6J8TrfW/s1VSGHVB+cPxTy1Vmr0iW+LT4ok862tqDK7Y39FcTRNWxj6C5Bjycyugb0+Jfv1HcclJQJq4E73TF1EvTihsv7vCrcJW5CGF7vutxrGr1O8/++4AqQJO8sb6mcK5ERdKz96clV7yCG13qCiBKjcnt2CLwtrpl76rO3Dc1a0GiVuyK3iY/yFXBhelmcQkE9EfhcHudTnu89WkDNu2raX6dU2fwufv1mG14Gs4LxGo9e2VshUbq2zklMCAfwuT1ZZKATnvCBwtPbR9244E0TG9/wgT411hhH5UqCmdfSKZB3XxwIFRE786xx364idUsbIHFHcvoU51qrWc50eNcpUcuCegYHmV4hep5HaRcHbjHAFPlboouK9/8GmVLqkiRM9YRncfCBzso5KKLvZrraJ7F5JiPwCXZwUIUJZCUUNxJN94BrWV+19vvQcWCKJ3cZHd51s6bh/hlrFCUmyI6WPsioie7Wy+DWZ14Mmofjd3uDgloKDrh7hXFgQRh/4myfCN7Y6R/B2QlVCcTVuHs060lXvF4DTFFpzooZ3ekVCk+bJG0sNDOAn5Tu04MfoaJWd0Ls1qX5jg4zgCltYlwUVxlMWpUalxokm5vEvczx6627VHdOkszUInWk1f3Y3yROxucyY7cLW/H7aWXGscaF1W3oQj3FowBQYbxJtNEakx664/BASnkCpEaHVrfK2P7lew4DhxVqYyYEZPLYjUqzKkcO80KeKwSgRXkpYDUAf8e+BRTWYw/+IUA1TgjkgEx32fRPivNxxGiRQBB17UYqy22nW7kuzskV83DhRWKY8KsJbqvDXwdsfBRX1xZopqfJZwdCh2K/Qxk+1jo6yODWjw0wRgqLPAngcQtRXFldvQYq1rxrwmDpqz5Z5626mY8docjWef2POBzNkNSlWaAvVFlQUGuqtVPOHIemSJatAJBlwdz3WtKZoYlwOKwA90l7pnAitwuLmKnYqC4vsLsVQ6Nr+epZsPQJmQl34r1dnchRdee78icTpLOa2GAkHd8ugXfARxaItiSZ84Tgu8uQxZXcG1G92aA4A5Pr1+J+PGIG0H4XrBhASOD+2U6CDYwgxYgU/erSvKHNy4tshlUfaGnbSKPGdH3xea0kDGq31aSOHhuX5i9gTAenbleJ1TFXN+OGy8uZLiruBbPJbeJZaWWmdzLV/9ZeiixRsNG62NkFXddnyg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b0m+jBnrE0dkZ3zk4GnxRQNL65wRktvyQjk6PRI1Z/eJLLQj42PhaZYhdsiowKUx/j8xXf+bwTpm91m2P6sdvAtSixYjhG2dfZYoAQCIzhM+G3ytXZy8+gFLNGQczwYO+Fl59vJJVgCD3VnuA2k3hKAOPWAyXGHhrCsWzOHm9NlK+CosVsfZTFPyOFFNU+Q8mOCDvTm2OwEv3VeP7pBy9AYAqMAPaTNGqFYqBaxyTdrASFPLLTUIuxiSBIlZN4+kXmSKRLinyPmLEakhdfHNLeRhh33RDU61Jxf1wyABCrO7prxMVh/slNi7chPyQE1PPMLstSprbEnOgf3mbnJ1YI1o1yphsOWSzN+XEmhOh65K9vZyX3sirGXsVXm4Y+wfafsQFvfZEhCdYmfR7sWmMyTTO2zM8E2tRY9mXHzx/roZ8ppzBthqpcygvJFI3HqN4q2JXDBjzFP3wb5/mT0MnVoPUTZ6iIjKiZ+YftFmfCmSpX9UQKwhNwVLbWdUt7whsS8ANbpKBHzwpBZlpc+i0tkFv580/rwmKAl5tGZv6dmaY1fmGV3l7TKqlfvAnEyy3YwGlZvrLZuKsg7e49CD/lYfrN/Uyxpt/F9c2gUl8fYNJDP24QsnjSDap6ps15yBTPYaSAP4uIzeHIltfaRKdNb54WPc3/qNqWPoI2Een3yXZI8seQrnfsgsyj8171gyfprFyKEMxHdIEB9pgQU6iqx6JeNToZqzCUcYkD/l9xAV+ZyII1XiPrIykOABdkDMqez1KP3ziIri2cBuI2krP4h9ZDqRVbnRm5KII0aduKCWjfmpAVgCLRW2OPPChrMweoPlJaB8gCPz/86wMdfqFRfeyIxcKC5wtqcsMeUyaQHGdxJ95ansjBH2yJsNpgLj1ZTCy/g/WI4HD2+yFVzyofGp1xJAKUxOa3RXD+JKXpgbwQpd02H8jCR+F2tD7CJT6tHoUknDmL0URsCUqwFHu0VvtRes0hmdQ8mES6Xkkboq2U+Gidqise/g8Cbuuaa1/40HuwkVPPEXlTQkjPjbRzUd244d6QIee43liYU3n0PLdLxpoHN96z3AWPwQaO9BJVBgkgpeoA6NGY0nu8DDsih9NYIf92+jn25cRyCbMFKtxoAxKLe8eKCk6SSZK1SEGAneyTLZo8vlRuHAy1oBQQWsAR8u1weCqKEuDjdL6OtGxUGhxwhNKjqGar4Ue3319rahePgbsmYMCuuPWXkIryWVUyVjahymCSb8fY+IBfUkjl7KzLitiIiRR71OFcdsjm3CF8EzXfk46FcVzMIap5fF8ZFhHzOeHkU9tBKimLF3d2wsbawlMl0+UQ/tw6miujNwnVfarSJAqWWEAudGbWl1/oXaMCVtV5n9i8FmHdXoHUkWCvvYlaM6w+Stlu7aHXDp6WmlzSI9Ie+ZlBiurSax/62vA+14AcQrytD3O5hd2XoZ7MyIovg1lx2HoKQK0sSC+QbBWtQKtJ+LLrChuYERZp3WLT+hWdXhIcnsKloOtqG8NsSMWPo5kXLsF33p4zDkRz57f8j0VbiYRTr1+jLYZKqvakVzHOi7XU/UEzJtBPIo7YN8mAl0W2W2PxT+0IUUNo4+QSM8nwCpmdy2WzkAorkfdwShX1TDKbdbuOI= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d3fc1a5-0134-4d00-4343-08dd7807e777 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:15:50.0962 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dG7ZDLzdSnCMS66eOWEtXhEfFfL+t0uEcWzCy48zcjZ11CGWfDZ2tPg8gSjKpaSbwnZOonHeXYD5oCkAaK/owljxLevdqEbOMGdl+ezvF53c72c4zlLkhHf3NLnl+39q X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar Add a `csi_setup` function pointer to the `rzg2l_cru_info` structure and pass it as part of the OF data. On RZ/G3E and RZ/V2H(P) SoCs, additional register configurations are required compared to the RZ/G2L SoC. Modify `rzg2l_cru_csi2_setup()` to be referenced through this function pointer and update the code to use it accordingly. This change is in preparation for adding support for RZ/G3E and RZ/V2H(P) SoCs. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Collected tag drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 1 + drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 6 ++++++ drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c | 8 ++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index e4fb3e12d6bfc..3ae0cd83af164 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -363,6 +363,7 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .enable_interrupts = rzg2l_cru_enable_interrupts, .disable_interrupts = rzg2l_cru_disable_interrupts, .fifo_empty = rzg2l_fifo_empty, + .csi_setup = rzg2l_cru_csi2_setup, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 2e17bfef43ce6..ccaba5220f1c8 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -89,6 +89,9 @@ struct rzg2l_cru_info { void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); bool (*fifo_empty)(struct rzg2l_cru_dev *cru); + void (*csi_setup)(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); }; /** @@ -187,5 +190,8 @@ void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); +void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index d35e9b2074937..809c43d686e26 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -242,9 +242,9 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) rzg2l_cru_write(cru, AMnAXIATTR, amnaxiattr); } -static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, - const struct rzg2l_cru_ip_format *ip_fmt, - u8 csi_vc) +void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc) { const struct rzg2l_cru_info *info = cru->info; u32 icnmc = ICnMC_INF(ip_fmt->datatype); @@ -266,7 +266,7 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *cru_ip_fmt; cru_ip_fmt = rzg2l_cru_ip_code_to_fmt(ip_sd_fmt->code); - rzg2l_cru_csi2_setup(cru, cru_ip_fmt, csi_vc); + info->csi_setup(cru, cru_ip_fmt, csi_vc); /* Output format */ cru_video_fmt = rzg2l_cru_ip_format_to_fmt(cru->format.pixelformat); From patchwork Thu Apr 10 08:12:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 14046087 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010003.outbound.protection.outlook.com [52.101.228.3]) (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 6638320AF9B; Thu, 10 Apr 2025 08:16:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272970; cv=fail; b=RDt9BE9Y6wZgUraEQhMnxlWeptE2uIrtKWXAOQh8pIYFFafW6pihA69eDFdavCqzHUV+AKrFYtUtGvHFcPy7jrgtNLQMIwM4n6Iwi544YfmCXfyxM9kkOCPS2LIZ9wKLHTPBj8X45F506yCGKx6Jx9ZZGL162Fsj+eBXs/TRBic= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744272970; c=relaxed/simple; bh=ds3H0rqk7+kL+0QpSEHLUxHCpdf+WSrqm3xIhDa9HVg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fnQ6Bj/8opEYC3otjWzB7LWZ6oqTw1WQOsau0aY28pOy230VM6rxgcUkkaX9zHCaoN2IfXpwNd5XSfasfCWAO9xu+bqFh2oZksOFZ76c8sVEab0/dxSTcwScMVcI2mr/dm9qRXcABcVQlqhwBBcMqq+wifxwGQH2r/pf/tqTLzg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com; spf=pass smtp.mailfrom=bp.renesas.com; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b=OMuVFjbM; arc=fail smtp.client-ip=52.101.228.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="OMuVFjbM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uWLIo9j91ZJ/cHQjWWkCQrfkcUT1RWYmmDwQieDaa4VfqnAxx7AsSQAvQJd/TpUav83EtHf48IWYIAen0dr7FcGB3SW2aIPHlLlVUHmObcWaaiXaw+mmYa2K5k+hg5AiFBneTH43VrGcX3cS5tNkqAccNDzwKn8TdPdzniF/ijBYQJxSJYihiQf/6HEGgvY3DbK3weSb0PMN9ik3EYJam4BR+4s1rWgBO5Gu2FP/v499o1BSgQVK6MIIAtQdOzfROQDxGy0MuwYR+mKki3eUc93RrLXbM++xUqNI0ibt6GM9HyyYAQnPb+AEL99N7Q0Hb6AmJzVMLbawJ0wkB6zY2A== 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=uBPowDVvYbfUQB7YY1tujpEmW4pzSioSJ7FVkQFc7I8=; b=FiLFlEsmLhhrV/+6q2bgUoJGZ/23b5rSN8y3psrNGwmd1hsb2kPauhePUxbDUG/PF7wG96clxKuDv+dnTmj9Ma5KfIymJ4MyzzUh2ueWQ5pmadfHVFMKxc7pegk8c2QFCdMM78Oen3N+aFO9RiZiE0BFuVy1bggN2vOtsTBmHoZItHX5bOFatD9PGtA1kRKvELkHt0qJZMxVkXsc1T2FaBEgj2/HL3IdcObSM6zX1yIg8CuYpuvj1MK8NxGigvDbJf9SpesEnWdrnuTRmKAZTPjMfyt9tYeic35bE32JoVldWvUETVMeep/qicnlRkJTGeo3px14TeQX5T+cIO4Kdg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uBPowDVvYbfUQB7YY1tujpEmW4pzSioSJ7FVkQFc7I8=; b=OMuVFjbM290affKgSZruqDJmEP3RfdkBukrPV43MZmoNFXlUHFMS/RkXHx+aybqGjT4y9TFnh9qlj5BokcEdOxCy6Wlj4Q8sv3jez5tpv6cOIW35T6pKykHWncg9bMd7LGUzkg51dAcmqG3EMVTRkhEv5N800+tZCJdllfXC+YA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=bp.renesas.com; Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) by TYAPR01MB5660.jpnprd01.prod.outlook.com (2603:1096:404:8059::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Thu, 10 Apr 2025 08:16:02 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Thu, 10 Apr 2025 08:16:02 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Sakari Ailus , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 17/17] media: rzg2l-cru: Add support for RZ/G3E SoC Date: Thu, 10 Apr 2025 10:12:21 +0200 Message-ID: <20250410081300.3133959-18-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> References: <20250410081300.3133959-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR4P281CA0285.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::19) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TYAPR01MB5660:EE_ X-MS-Office365-Filtering-Correlation-Id: 4875e9fd-10ea-4682-d869-08dd7807ee8c X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: RchMNQlGLteItfz/UozV3oSarclxS81PhkDIDTQuRvh1IXZIADjInDIKbduXGxbAnqYTyUYB7yxyRR9WSU89ABKrpdQa8gaQYaps0Y2spa1oulrvfMhI36PUPWato1RG+WHSxuKWxVbTt+j7WMhLcF5EIvaUM/EcSBw8iWmlTkfg4HiOOmXItxyu1ojthISISEyguyChqbavmr/bg5FTdrSfVznpc4JS6ud5xZ31JkDoJphC9Z/nbd3k5mHN4Z+3G3xxjhw6HuQNgSXmHhkeQnEnA0dc8Y9NL6EmVkhI/kTIv33PgHMAbCO3uzf7ANF7pO73vp8/P5mxFX/aJ1r9Pxim7P/MB2TD0R9aGM32hQCC7ICeUu8EOGNuzEAMO+jauvtd/wv9uzV3l1FpEZLHhnWv+u/QSFckFYZDw42ykjGksua1TZGti46HTdLGK6Akk8tACJodfPm37hZNJQm///197LuX5a6vRY/UOzur2zXXOHjBPx5acmIUa2JUjjwBwCOldDXTM0mRMDuROteYmTutFDgd444lom+bNwuZ8r3BWWjoZFMlab1uMQ8C1A4jNzceJPPQecR/paHbA1aqZF1viKo1blZZ4IVNbHwhFN6PGs5LxskPPss8NmTo7NPW4SU2zfD/a3eLRs6bl1LJpYZHY3Usw8gMs2VJv3bT368kzX7KWxuTwJx3y1y/TW0RVftIVT/0mEsaquK4XFL6ey1uTWzSSxX120gx702M7AQUHoS+aAsncu+C8UFh3/r45uEb/ysaKU7IZx9uSzqaYCG5X48E7rQAB9fantll9X0MVKZ130bORtv7R577HuSfUthOcFRE3gKvwaJEqN1PggYTJzS0f2PUwR4g6KsStsIu8I5BPUkXNP/4+zE9bxukKA6ylhEN9IY2MAeD+GOd3zErbF8S7KqLkw8qF9+Hj+TbGEkEUsLel3NU/osdgL5RnFFYZgLzu/AekZ0ziOC6hXFgKlJViHg1+GngCHc42DGhjKr5/HelRk7UzX8gX8yq65T/6o6jTfQ9FZYSGdwed33+IQpQwKcbbW1AxYOZkqRtJT0yOqMSp3YzGwy9tXF6FywSH0dBLkEpZbx8ycuw2QNZMC7r94fi5rkmwTQ9iGEiZIgqS9Hmhsnv5TZPOqRXqwNZSYhwJ5BKtHIJzbud2mWfWkLTYD6ExjvhO0UCD5OZ+QZQr1QqkpUW6wa4LiOdJ/YnVNffXS+d5SIroXwiqHD1sPjYkCBh9YZOXeFLlZD8cMJl8f0Q1fNL23NWFpX4zJRAvO75waM/tfmjFGkjnwIVL2rEXb/PR/T1SpWHjupXWxh1SVanR+BJvGeV16HuDMTEGAmm9sVI7SDOns59w57s4kdXTsFMp3XTjMtk9vlSyBdNsba60zUSJXpWGkP/dk4ZUoGkZFJod9o5Ql9bbQmojf5cwmbyEjlt433hg2L8CXjWt795tziZa6aPkec36s3qT0Nc67Z8ju62ptwLYQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB13950.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(7416014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iKxy3QPGnz+4RJIhzRivCicnmWfyi2rryIJkAhf5NDCQfTI6btP9hkMO9VGlLMGeSxzaRZxu+mOGVyFzNJuJv6AMaaNm1jqZuo9X7nN26bCq8xaodkuWOmwAKgbmKxoNA66UpgPQ/XT1MdOoBXD1HxzVLvY0QoIX9niWUhBrk7byURqpp6oNc3SP17Di2ajA5+aOcRbAv6heKWQVJ3TSmlzF2LFzLMb0MXp5QKXYKae4Y6f/2/cogKvJCYC36HpYwG2OsSnPtu3ySIEyt9A3rOMqQ5hy7JIpoRAlZCTkHqRjrS0Qt6PIKpXS+xDUZysCxitYdo03B7w71tbnOFY2ifnfdk1XTYM1XvEuVFEytLQVmixV2t50Td1DeQHLJAq+OltoiGoAa53qeVKfQWncX7YiMhs3gXZMrXlYriGlmm4jYtPBZD90mhTEbbmFOOKXYhLLO7Ea3boSkyplfV2T255XxWxd/4cVnYPox+VhBHo5ijkIIWHPIjjqc6etZJqWMU0tLxH6N8HW5nkzkPkd8h2oeMJmeljmqatpAxjaQt2yuSrQZmo4Vi5pC+qHBx91E8GFHTyEEubfg+mlVKEe8Pwpb+SYMOmraintfKm2s7xdKp/UK2nw2F1Ru6K+h6uT5HYqIpSbWiG7BgvQSi/FIy1QvK8D3sgGyXBsQZu0WLMKVQCPE0+Z09/qcX9ojMOcUZ9NKzNmX9kknP3Sqjx97vzTaq8LczWbT3kafGskSbs5NJ5EfDxNim7/j12BZFO0FjhBbxFy52vrjmetZIin6bsIKwRFklkX35tSVdtW++hp6+xLdKqe0KsP3py3JNZMLd7699aVc3+sYtKVmXipb9xnB98/4oaRxptEyuYgBw9eIyrtVD7neJ14AR5jYK8BH3eTtX+Hlg+vPIMQVZu1bW94XS9XEUYDyRmZDqfPR3+2vnxFHVto2OKjhSbUOiz3t44rUQA39uQf+Y4TDRt5EqF+axkq5cMcSNn3hbpEnsbdb7Ou7XogmSj/I1GVJNGYEYV5sSPUe2EDxYcJbLwvp/lL9ddee7ctMpnIki8fx+qqIOZaG2FHk+jOjQMtiBnEaWbJQ0eSzd94TkMyc3Jix51OtmmiN9pYfzjXHBmwL3DlLC/RDzztTtKz3FbAR3PoJ3Ets9w1IV99nIRwOqmjRN2BunrNq4zHUspFCFWxmc1Y0mP4ercr9PvMfUrxx24emlxkbFkZdcWrE8q4MfaaK858X3ESDYKedzSImzGvtzbFrhIC3G0zj7NiwGDFlxCv8P+A6tLGHOBOKYar2oOA0UgwSjYLJEsDllAkeXtpDL9kfs1oXgkK6lz5ZTm/ExPqt0EiHgHsPTJ2M1HpVH34t54g3aG1u/IybSkt0PUM0ElaZyul3miRTL9D2ZmRd3ah99ik3xJMG7UwJ8GQRkJgAnYoOWAJR+zqUceah776XzXmQxS7RMGNg+Wj5MTthOf7bNtT5WBB4NOWa1fiOoeRFjPt0ZSksVzoNgJG75PoX6beUFZY9If/HLzESZ3DlnfjYbQdItzMB4EiDw67migtc247dCOCsTjwqu8pQN6lfUn1DVbATlyTMPMeLzgBL5twxdS35NENf13UrXNMkt+TCVJ9l1JIVH7gvLm35ylY434= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4875e9fd-10ea-4682-d869-08dd7807ee8c X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2025 08:16:02.2153 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SBgjCHKi48BgrJd7oy+SJSzqAzoKeFpKzVRJHC3+Zu+pM8zAPGF6HeOI+/ly/AqCkzqSpNepMSswFc09Be8THMQt39IjmIJvbcHQgxU8QPx2F5NyLR+htMu/bpkZOTDW X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5660 From: Lad Prabhakar The CRU block on the Renesas RZ/G3E SoC is similar to the one found on the Renesas RZ/G2L SoC, with the following differences: - Additional registers rzg3e_cru_regs. - A different irq handler rzg3e_cru_irq. - A different rzg3e_cru_csi2_setup. - A different max input width. - Additional stride register. Introduce rzg3e_cru_info struct to handle differences between RZ/G2L and RZ/G3E and related RZ/G3E functions: - rzg3e_cru_enable_interrupts() - rzg3e_cru_enable_interrupts() - rz3e_fifo_empty() - rzg3e_cru_csi2_setup() - rzg3e_cru_get_current_slot() Add then support for the RZ/G3E SoC CRU block with the new compatible string "renesas,r9a09g047-cru". Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Use dma_addr_t with buf_addr directly instead of splitting that into cru->mem_banks (high and low address) as suggested by LPinchart. - Moved and improved stride adjustment into rzg2l_cru_format_align() as suggested by LPinchart. - Use csi_vc into rzg3e_cru_csi2_setup() instead of cru->svc_channel as suggested by LPinchart - Added has_stride field to handle soc differences as suggested by LPinchart. Changes since v3: - Fixed kernel test robot warnings from rzg3e_cru_get_current_slot() and rzg3e_cru_irq() Changes since v5: - Collected tag. - Dropped outer parentheses in rzg3e_cru_csi2_setup() - Use fixed array for buf_addr as suggested by LPinchart. - Drop the outer parentheses + used curly braces for the for statement in rzg3e_cru_get_current_slot() as suggested by LPinchart. - Added scoped_guard() in rzg3e_cru_irq() as suggested by LPinchart - Used a local variable for the queue entry in rzg3e_cru_irq() as suggested by LPinchart .../platform/renesas/rzg2l-cru/rzg2l-core.c | 56 ++++++ .../renesas/rzg2l-cru/rzg2l-cru-regs.h | 25 +++ .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 13 ++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 168 +++++++++++++++++- 4 files changed, 261 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 3ae0cd83af164..97d70d978b5fc 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -321,6 +321,58 @@ static void rzg2l_cru_remove(struct platform_device *pdev) rzg2l_cru_dma_unregister(cru); } +static const u16 rzg3e_cru_regs[] = { + [CRUnCTRL] = 0x0, + [CRUnIE] = 0x4, + [CRUnIE2] = 0x8, + [CRUnINTS] = 0xc, + [CRUnINTS2] = 0x10, + [CRUnRST] = 0x18, + [AMnMB1ADDRL] = 0x40, + [AMnMB1ADDRH] = 0x44, + [AMnMB2ADDRL] = 0x48, + [AMnMB2ADDRH] = 0x4c, + [AMnMB3ADDRL] = 0x50, + [AMnMB3ADDRH] = 0x54, + [AMnMB4ADDRL] = 0x58, + [AMnMB4ADDRH] = 0x5c, + [AMnMB5ADDRL] = 0x60, + [AMnMB5ADDRH] = 0x64, + [AMnMB6ADDRL] = 0x68, + [AMnMB6ADDRH] = 0x6c, + [AMnMB7ADDRL] = 0x70, + [AMnMB7ADDRH] = 0x74, + [AMnMB8ADDRL] = 0x78, + [AMnMB8ADDRH] = 0x7c, + [AMnMBVALID] = 0x88, + [AMnMADRSL] = 0x8c, + [AMnMADRSH] = 0x90, + [AMnAXIATTR] = 0xec, + [AMnFIFOPNTR] = 0xf8, + [AMnAXISTP] = 0x110, + [AMnAXISTPACK] = 0x114, + [AMnIS] = 0x128, + [ICnEN] = 0x1f0, + [ICnSVCNUM] = 0x1f8, + [ICnSVC] = 0x1fc, + [ICnIPMC_C0] = 0x200, + [ICnMS] = 0x2d8, + [ICnDMR] = 0x304, +}; + +static const struct rzg2l_cru_info rzg3e_cru_info = { + .max_width = 4095, + .max_height = 4095, + .image_conv = ICnIPMC_C0, + .has_stride = true, + .regs = rzg3e_cru_regs, + .irq_handler = rzg3e_cru_irq, + .enable_interrupts = rzg3e_cru_enable_interrupts, + .disable_interrupts = rzg3e_cru_disable_interrupts, + .fifo_empty = rz3e_fifo_empty, + .csi_setup = rzg3e_cru_csi2_setup, +}; + static const u16 rzg2l_cru_regs[] = { [CRUnCTRL] = 0x0, [CRUnIE] = 0x4, @@ -367,6 +419,10 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { }; static const struct of_device_id rzg2l_cru_of_id_table[] = { + { + .compatible = "renesas,r9a09g047-cru", + .data = &rzg3e_cru_info, + }, { .compatible = "renesas,rzg2l-cru", .data = &rzgl2_cru_info, diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h index 86c3202862465..52324b076674b 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h @@ -14,8 +14,13 @@ #define CRUnIE_EFE BIT(17) +#define CRUnIE2_FSxE(x) BIT(((x) * 3)) +#define CRUnIE2_FExE(x) BIT(((x) * 3) + 1) + #define CRUnINTS_SFS BIT(16) +#define CRUnINTS2_FSxS(x) BIT(((x) * 3)) + #define CRUnRST_VRESETN BIT(0) /* Memory Bank Base Address (Lower) Register for CRU Image Data */ @@ -32,7 +37,14 @@ #define AMnAXIATTR_AXILEN (0xf) #define AMnFIFOPNTR_FIFOWPNTR GENMASK(7, 0) +#define AMnFIFOPNTR_FIFOWPNTR_B0 AMnFIFOPNTR_FIFOWPNTR +#define AMnFIFOPNTR_FIFOWPNTR_B1 GENMASK(15, 8) #define AMnFIFOPNTR_FIFORPNTR_Y GENMASK(23, 16) +#define AMnFIFOPNTR_FIFORPNTR_B0 AMnFIFOPNTR_FIFORPNTR_Y +#define AMnFIFOPNTR_FIFORPNTR_B1 GENMASK(31, 24) + +#define AMnIS_IS_MASK GENMASK(14, 7) +#define AMnIS_IS(x) ((x) << 7) #define AMnAXISTP_AXI_STOP BIT(0) @@ -40,6 +52,11 @@ #define ICnEN_ICEN BIT(0) +#define ICnSVC_SVC0(x) (x) +#define ICnSVC_SVC1(x) ((x) << 4) +#define ICnSVC_SVC2(x) ((x) << 8) +#define ICnSVC_SVC3(x) ((x) << 12) + #define ICnMC_CSCTHR BIT(5) #define ICnMC_INF(x) ((x) << 16) #define ICnMC_VCSEL(x) ((x) << 22) @@ -52,7 +69,9 @@ enum rzg2l_cru_common_regs { CRUnCTRL, /* CRU Control */ CRUnIE, /* CRU Interrupt Enable */ + CRUnIE2, /* CRU Interrupt Enable(2) */ CRUnINTS, /* CRU Interrupt Status */ + CRUnINTS2, /* CRU Interrupt Status(2) */ CRUnRST, /* CRU Reset */ AMnMB1ADDRL, /* Bank 1 Address (Lower) for CRU Image Data */ AMnMB1ADDRH, /* Bank 1 Address (Higher) for CRU Image Data */ @@ -72,12 +91,18 @@ enum rzg2l_cru_common_regs { AMnMB8ADDRH, /* Bank 8 Address (Higher) for CRU Image Data */ AMnMBVALID, /* Memory Bank Enable for CRU Image Data */ AMnMBS, /* Memory Bank Status for CRU Image Data */ + AMnMADRSL, /* VD Memory Address Lower Status Register */ + AMnMADRSH, /* VD Memory Address Higher Status Register */ AMnAXIATTR, /* AXI Master Transfer Setting Register for CRU Image Data */ AMnFIFOPNTR, /* AXI Master FIFO Pointer for CRU Image Data */ AMnAXISTP, /* AXI Master Transfer Stop for CRU Image Data */ AMnAXISTPACK, /* AXI Master Transfer Stop Status for CRU Image Data */ + AMnIS, /* Image Stride Setting Register */ ICnEN, /* CRU Image Processing Enable */ + ICnSVCNUM, /* CRU SVC Number Register */ + ICnSVC, /* CRU VC Select Register */ ICnMC, /* CRU Image Processing Main Control */ + ICnIPMC_C0, /* CRU Image Converter Main Control 0 */ ICnMS, /* CRU Module Status */ ICnDMR, /* CRU Data Output Mode */ RZG2L_CRU_MAX_REG, diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index ccaba5220f1c8..c30f3b2812846 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -85,6 +85,7 @@ struct rzg2l_cru_info { unsigned int max_height; u16 image_conv; const u16 *regs; + bool has_stride; irqreturn_t (*irq_handler)(int irq, void *data); void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); @@ -108,6 +109,8 @@ struct rzg2l_cru_info { * @vdev: V4L2 video device associated with CRU * @v4l2_dev: V4L2 device * @num_buf: Holds the current number of buffers enabled + * @svc_channel: SVC0/1/2/3 to use for RZ/G3E + * @buf_addr: Memory addresses where current video data is written. * @notifier: V4L2 asynchronous subdevs notifier * * @ip: Image processing subdev info @@ -144,6 +147,9 @@ struct rzg2l_cru_dev { struct v4l2_device v4l2_dev; u8 num_buf; + u8 svc_channel; + dma_addr_t buf_addr[RZG2L_CRU_HW_BUFFER_DEFAULT]; + struct v4l2_async_notifier notifier; struct rzg2l_cru_ip ip; @@ -175,6 +181,7 @@ void rzg2l_cru_dma_unregister(struct rzg2l_cru_dev *cru); int rzg2l_cru_video_register(struct rzg2l_cru_dev *cru); void rzg2l_cru_video_unregister(struct rzg2l_cru_dev *cru); irqreturn_t rzg2l_cru_irq(int irq, void *data); +irqreturn_t rzg3e_cru_irq(int irq, void *data); const struct v4l2_format_info *rzg2l_cru_format_from_pixel(u32 format); @@ -188,10 +195,16 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); +void rzg3e_cru_enable_interrupts(struct rzg2l_cru_dev *cru); +void rzg3e_cru_disable_interrupts(struct rzg2l_cru_dev *cru); bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); +bool rz3e_fifo_empty(struct rzg2l_cru_dev *cru); void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *ip_fmt, u8 csi_vc); +void rzg3e_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 809c43d686e26..735c48ef6241b 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -31,6 +31,9 @@ #define RZG2L_CRU_DEFAULT_FIELD V4L2_FIELD_NONE #define RZG2L_CRU_DEFAULT_COLORSPACE V4L2_COLORSPACE_SRGB +#define RZG2L_CRU_STRIDE_MAX 32640 +#define RZG2L_CRU_STRIDE_ALIGN 128 + struct rzg2l_cru_buffer { struct vb2_v4l2_buffer vb; struct list_head list; @@ -184,6 +187,8 @@ static void rzg2l_cru_set_slot_addr(struct rzg2l_cru_dev *cru, /* Currently, we just use the buffer in 32 bits address */ rzg2l_cru_write(cru, AMnMBxADDRL(slot), addr); rzg2l_cru_write(cru, AMnMBxADDRH(slot), 0); + + cru->buf_addr[slot] = addr; } /* @@ -224,6 +229,7 @@ static void rzg2l_cru_fill_hw_slot(struct rzg2l_cru_dev *cru, int slot) static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) { + const struct rzg2l_cru_info *info = cru->info; unsigned int slot; u32 amnaxiattr; @@ -236,12 +242,39 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) for (slot = 0; slot < cru->num_buf; slot++) rzg2l_cru_fill_hw_slot(cru, slot); + if (info->has_stride) { + u32 stride = cru->format.bytesperline; + u32 amnis; + + stride /= RZG2L_CRU_STRIDE_ALIGN; + amnis = rzg2l_cru_read(cru, AMnIS) & ~AMnIS_IS_MASK; + rzg2l_cru_write(cru, AMnIS, amnis | AMnIS_IS(stride)); + } + /* Set AXI burst max length to recommended setting */ amnaxiattr = rzg2l_cru_read(cru, AMnAXIATTR) & ~AMnAXIATTR_AXILEN_MASK; amnaxiattr |= AMnAXIATTR_AXILEN; rzg2l_cru_write(cru, AMnAXIATTR, amnaxiattr); } +void rzg3e_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc) +{ + const struct rzg2l_cru_info *info = cru->info; + u32 icnmc = ICnMC_INF(ip_fmt->datatype); + + icnmc |= rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_INF_MASK; + + /* Set virtual channel CSI2 */ + icnmc |= ICnMC_VCSEL(csi_vc); + + rzg2l_cru_write(cru, ICnSVCNUM, csi_vc); + rzg2l_cru_write(cru, ICnSVC, ICnSVC_SVC0(0) | ICnSVC_SVC1(1) | + ICnSVC_SVC2(2) | ICnSVC_SVC3(3)); + rzg2l_cru_write(cru, info->image_conv, icnmc); +} + void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *ip_fmt, u8 csi_vc) @@ -290,6 +323,19 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, return 0; } +bool rz3e_fifo_empty(struct rzg2l_cru_dev *cru) +{ + u32 amnfifopntr = rzg2l_cru_read(cru, AMnFIFOPNTR); + + if ((((amnfifopntr & AMnFIFOPNTR_FIFORPNTR_B1) >> 24) == + ((amnfifopntr & AMnFIFOPNTR_FIFOWPNTR_B1) >> 8)) && + (((amnfifopntr & AMnFIFOPNTR_FIFORPNTR_B0) >> 16) == + (amnfifopntr & AMnFIFOPNTR_FIFOWPNTR_B0))) + return true; + + return false; +} + bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru) { u32 amnfifopntr, amnfifopntr_w, amnfifopntr_r_y; @@ -401,6 +447,20 @@ static int rzg2l_cru_get_virtual_channel(struct rzg2l_cru_dev *cru) return fd.entry[0].bus.csi2.vc; } +void rzg3e_cru_enable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE2, CRUnIE2_FSxE(cru->svc_channel)); + rzg2l_cru_write(cru, CRUnIE2, CRUnIE2_FExE(cru->svc_channel)); +} + +void rzg3e_cru_disable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, 0); + rzg2l_cru_write(cru, CRUnIE2, 0); + rzg2l_cru_write(cru, CRUnINTS, rzg2l_cru_read(cru, CRUnINTS)); + rzg2l_cru_write(cru, CRUnINTS2, rzg2l_cru_read(cru, CRUnINTS2)); +} + void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru) { rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); @@ -423,6 +483,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) if (ret < 0) return ret; csi_vc = ret; + cru->svc_channel = csi_vc; spin_lock_irqsave(&cru->qlock, flags); @@ -601,6 +662,104 @@ irqreturn_t rzg2l_cru_irq(int irq, void *data) return IRQ_RETVAL(handled); } +static int rzg3e_cru_get_current_slot(struct rzg2l_cru_dev *cru) +{ + u64 amnmadrs; + int slot; + + /* + * When AMnMADRSL is read, AMnMADRSH of the higher-order + * address also latches the address. + * + * AMnMADRSH must be read after AMnMADRSL has been read. + */ + amnmadrs = rzg2l_cru_read(cru, AMnMADRSL); + amnmadrs |= (u64)rzg2l_cru_read(cru, AMnMADRSH) << 32; + + /* Ensure amnmadrs is within this buffer range */ + for (slot = 0; slot < cru->num_buf; slot++) { + if (amnmadrs >= cru->buf_addr[slot] && + amnmadrs < cru->buf_addr[slot] + cru->format.sizeimage) + return slot; + } + + dev_err(cru->dev, "Invalid MB address 0x%llx (out of range)\n", amnmadrs); + return -EINVAL; +} + +irqreturn_t rzg3e_cru_irq(int irq, void *data) +{ + struct rzg2l_cru_dev *cru = data; + u32 irq_status; + int slot; + + scoped_guard(spinlock, &cru->qlock) { + irq_status = rzg2l_cru_read(cru, CRUnINTS2); + if (!irq_status) + return IRQ_NONE; + + dev_dbg(cru->dev, "CRUnINTS2 0x%x\n", irq_status); + + rzg2l_cru_write(cru, CRUnINTS2, rzg2l_cru_read(cru, CRUnINTS2)); + + /* Nothing to do if capture status is 'RZG2L_CRU_DMA_STOPPED' */ + if (cru->state == RZG2L_CRU_DMA_STOPPED) { + dev_dbg(cru->dev, "IRQ while state stopped\n"); + return IRQ_HANDLED; + } + + if (cru->state == RZG2L_CRU_DMA_STOPPING) { + if (irq_status & CRUnINTS2_FSxS(0) || + irq_status & CRUnINTS2_FSxS(1) || + irq_status & CRUnINTS2_FSxS(2) || + irq_status & CRUnINTS2_FSxS(3)) + dev_dbg(cru->dev, "IRQ while state stopping\n"); + return IRQ_HANDLED; + } + + slot = rzg3e_cru_get_current_slot(cru); + if (slot < 0) + return IRQ_HANDLED; + + dev_dbg(cru->dev, "Current written slot: %d\n", slot); + cru->buf_addr[slot] = 0; + + /* + * To hand buffers back in a known order to userspace start + * to capture first from slot 0. + */ + if (cru->state == RZG2L_CRU_DMA_STARTING) { + if (slot != 0) { + dev_dbg(cru->dev, "Starting sync slot: %d\n", slot); + return IRQ_HANDLED; + } + dev_dbg(cru->dev, "Capture start synced!\n"); + cru->state = RZG2L_CRU_DMA_RUNNING; + } + + /* Capture frame */ + if (cru->queue_buf[slot]) { + struct vb2_v4l2_buffer *buf = cru->queue_buf[slot]; + + buf->field = cru->format.field; + buf->sequence = cru->sequence; + buf->vb2_buf.timestamp = ktime_get_ns(); + vb2_buffer_done(&buf->vb2_buf,VB2_BUF_STATE_DONE); + cru->queue_buf[slot] = NULL; + } else { + /* Scratch buffer was used, dropping frame. */ + dev_dbg(cru->dev, "Dropping frame %u\n", cru->sequence); + } + + cru->sequence++; + + /* Prepare for next frame */ + rzg2l_cru_fill_hw_slot(cru, slot); + } + + return IRQ_HANDLED; +} + static int rzg2l_cru_start_streaming_vq(struct vb2_queue *vq, unsigned int count) { struct rzg2l_cru_dev *cru = vb2_get_drv_priv(vq); @@ -782,7 +941,14 @@ static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, v4l_bound_align_image(&pix->width, 320, info->max_width, 1, &pix->height, 240, info->max_height, 2, 0); - pix->bytesperline = pix->width * fmt->bpp; + if (info->has_stride) { + u32 stride = clamp(pix->bytesperline, pix->width * fmt->bpp, + RZG2L_CRU_STRIDE_MAX); + pix->bytesperline = round_up(stride, RZG2L_CRU_STRIDE_ALIGN); + } else { + pix->bytesperline = pix->width * fmt->bpp; + } + pix->sizeimage = pix->bytesperline * pix->height; dev_dbg(cru->dev, "Format %ux%u bpl: %u size: %u\n",