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: 880745 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: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: 880744 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: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: 880743 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: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: 880742 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: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: 880741 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: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: 880740 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 --- 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: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: 880739 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: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: 880738 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: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: 880737 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",