From patchwork Mon Mar 3 16:07:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999118 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010022.outbound.protection.outlook.com [52.101.229.22]) (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 454F5230BD0; Mon, 3 Mar 2025 16:09:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018162; cv=fail; b=OfYUMAaYP0B2eOLdNX2m1uy+CwttB3C+uYXLBAVPZitjpapQi9NUnWVFNGHX9ZmrOZnzBdVlnPrstl6U++Ia6qk9E/2nzCsXCEYWTP6QPGkMBVjkhytnp/Ou4ptpEDyLP3Ii5O4GccVLZlL+71pEnLgzTda3oQX9x89xGspzvYc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018162; c=relaxed/simple; bh=TaCvgP5xQ8sp2vFACfu/gZiyIRAm3Fw5HwkIDXpsGOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CUapL8/WMv+ORqX++KhsIG9+1t3UXrSfOgKXYNUj1nTaB3DA42som78ontvoCNqMJtiiV5uLXshIi0rL+6vGlztLB0u5BD531w4DCvT6cNrmE8/cgqj7GAewFTI+BO+P7L4HYS6NW8cnQHCrX9svBb/06cD6K8zpu5oIaSjk8uc= 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=ZpHNcaNC; arc=fail smtp.client-ip=52.101.229.22 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="ZpHNcaNC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x/fM/BMkdxnk286RIH9q7TroqhoPWjNR/VC906BzulFNofdvKAUeXDqGplnQpUDDT5FTVyaD1L4o47DCVYGTnMsG7bScII73sGhkyKEOazDiZBhw2BGJpzwFltJLGjOYW55bTAI2ZMFeFZu/kY9cekelnBLJCuI5aJScdLk/dSaxfuALG8dVmZshxtwun8GjHZHTvez/fNHN1m6npSsQk9u7J6ixk4CIXKYezksN7F76xPOkGoedIX3qiwytVtzCvz67DWDamxmSmFMuCOED/o29l/y+JrScYJFI2kgY7t05VNC0+oO39aM2yjb6q+Y9HZ9/I8FlS8+7q56p4PO0iQ== 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=5/68r7nlrAN2KRykrPOV+mQNExeJc7+w7krTb2qcMkg=; b=xabr1hgsBp8kyCu5QMd+vOyRYJxTrBsY1fJLEL1bM++5aq4pz1hRKl+nsJXwS729If2F1X2wDyz5R3rDFlegRy9A2yKRJIMfebQeKWdUYKKFHxoiv/K6D5d4SNIgC3sZbQsSeCE3xRjzIyaNER1ytsKhxtGfZA//cJCYoDDINMa1CXxyd+RXMnzftc0kvJT45usMQrzz79cDUeCLTERCte9ujYo4SpcSMFt4CMNT0tPUyVVMHgtqAGacfg6RjfUOfsXwXg3hJiUBwfYr3j9LYpxLlpjk+zEe+You23DvXZpmXOXbSLanvgXsx/rk8JqK8jZjdFz0Zo3/rEhPnD+0pg== 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=5/68r7nlrAN2KRykrPOV+mQNExeJc7+w7krTb2qcMkg=; b=ZpHNcaNCJcM135RExM39uhL8en8/Dr+onOMm4Vc0+Q9Xc5H6v+/m+Kju80BvtYhVrsaVvVyTLYwVMw3S0IOgTZHAi7iUDsSayh8adkHcu956bZ5xi89ZucKTFIRZRAkwHlfyTPh902NeG7H2Ymx6N0+UD/LU0bmprmMQFMintD0= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:09:18 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:09:18 +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 v4 01/17] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/V2H(P) SoC Date: Mon, 3 Mar 2025 17:07:41 +0100 Message-ID: <20250303160834.3493507-2-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 78502ec9-d2ab-4dd5-2a79-08dd5a6dc03e 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: N/hE/8oBmAIEl2CWfTLJxEAZ+2Vzd7gqqqoUZeGbRJxIdXLMY9aMFJGxsT0BLuGhCg68S3KBLFDv6bFwq3DG1AEEilS38P0WgQdoeI/7ZrA/ySrqz8S7o0cT01HiMvsTVOw7/0sn8qi/qXmnDCAzfb7ZlL1ptlkYTsERFLnVlYEHJsnF3giJjAA5E8QAGRd4ner8ziPB1o2YRe9Olx/sQK2jcpnSbD6xkygC+cVco2TzX4x1cZJxDHTYduehlYa9F2BcJ2Jh51r9Nx6xk4TTN8x/Baazh1veKDMLnZPFo7xec2fuz0tPGth085mbXb40bynkpYQjCf1GZeB0wBYeNMUDIgAy+lYfNDr3PdF/Fc2Ox6DIsBvZMpoOf0QNiIsgWgHdzylCJpIlrH/Px/aMOwxd+GGwqvi6dANZuBQExmmUf8iF9LZODIbDeti0FBJl62kBTKSyA41HNITuj8aQZfj8l+X4BE1jkL175v4U1Wlk13LtMk7JHk1dH59oVBZufj2gzdALKhQJuE/IMoFV3jnwL5peFr9/h0390iorBgTDL5ruc5DTcR8Y2Qql1aaq+vJA+AGR3+spzzH+LUWDHPB6NnUPptGd8Tx9y1OtGjMccLc8SozJm8Zs1w1XT4dm2ApLR4ps9g2PYZKuKIajEjeIArk7Hw6kItnQJuTaTcoqf8wULJnM3eM8HIgR09pffhaYjrcTDV/jdShZA+UdOjENnybKpo9+21pV7SWQatr7/h6e2py6bpN6lV+9VixZCCM0QqoOWVXlVbXWpDlmrU7Jp1FdRRaYPXXRxwCeYIEdYDDtkTmtFz4ZDETeiS2+q4Ynod7iTszHV+dQLMuDvFY2vrXviHK3EVh30c4wXf2NGFbHGiOMmKYds90pgbAxDB22eShU7kx/MT4HhqP1FxAAAFdz3wDAoyYanIwnb6aEl8oi+Qv3uqwu2ppvYNKTxRVA9rov16URbnfV33Y7dZbUCbsTrGaj9+JN5Iw6UqtRz9jvj9hjxLuX57SX8Yg67W8HfsgVmuvh8+zFSHZONo+OHZkTGh7g9XBJDpsbGuUXRHrEkeLahN4oh+cJDipX71VzlTYix4ZdkxOvrqX+5ai6N/Rj2T9i34Y9a4lLZD9uQFg34jraWFJGtzCo5LwkjuIHqW+LjAou5GAdHRyCkodQAziKzWbnFKL2o9j1ymeL9BCgRylg3+wQUAbDu2tnKkcTz05oM3gqjHtieE5BCi4etHoZWUn4CflI3KmhbuHfvLRr3FwnytWg7d+YZSHAQP0uaVFovzETf2MMwGyBTpmiPC8sEM4gT9JhofioGQ4chuaQlFSCuvV9BAQ4YLNpYPsUDP3Wo29P6ruqvWLsyHNZmUa7qniQXmsUEXDn8MHlAmoNET+K+Cw2az/i1jx7mvdIITR3Vk2+Y9Vn1DGi2eWljYLdTBz9E+leU4B+K8jgasS7yO2/mti3orLOJh8n 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pYbQ2N3i7Upv+oY5xPrhvMJhZkxK9DabF7s0kSIKYbk1mlfUCjX8MoJA1Ihw8kPTUvonImd0v6BkAWOpQVcEGSV87+kMOLwHlqYCUEpCbZbgHSAYz+H9DrZ5IS+FMo6RCnQjN9ddUD7BRajbWRNsLzVkYmbYg5yHaNnW9Jir5lzbKPxltBE5AtAEiRIggs495NGJ5MS9Ibrm1Y0BZj5YoKBPE2Y+H77EwOjKPxPkCkx8lop6S4y5BnPelCiRybKlKJ5hZzXnROF7+HCO1U0qPmE0wvMYOM7yEZCcTDHLtT2hJ31ddI87gCBKBtmzJ9hqL8TaI1o97PGGsobSrM9Pk3m9i4ehIrQOA3SUGx4ZIqk7vyhPMWj9dMIVeJvsyJ1GiKAVQ+QU2C6KlUyUnIu44V1S5gh0901rkKe6E81za9L3ZKFdXZlRccrqRLh9eoG1BeAnAl6qx0AW37A11ZTK6bydrrcsfJlYRxOOJixm9FavYD0i5aiXqd3cu+phu8MTrzuUGUHGrNbglVhkKpxhpnxJb7LschoLBB/A1U4w8jqYy1JDJkaUdoQKeDcjj+ttiP3OeXhHQTQCwTOGT1XUUoJgmMXqLiVp2HLcaPalKoOvxFsMUcMf4ZmMYJPkgVqhySjkbyKWWuzIXZ2pQ6fesK5/BbJ5P1Nl5W4HihEUqD6tJwVwqGUPWuVdWEjixyhieYSkTjsGG7pzpjtxzaZ4ihAv3u4xYis8/Wv548agwVq3X8JMtZ5WofGGYM+Cv9l/tptFwVqXneqD6RAHgIh6yWNwS/KgMkJ5WnpR7/EZ76AYpJ4unHnneoLSLVorF1h9csNA8IgNv2QnB+3ZJdVVyF9a1VU451mITCjVI4ShppDRQNTkMOjn03bn+XO7/ioEDoLMmV4MxI41Hu9c16AY7rLeBvPKsTi/p7+44rjWAmD8TvqiWYZmZ/5TUVApDltGG11r8Tr+d4whPWt6uAlKi9fNc1gLsKiKlk2/0GlSEyu8fFSeKIAeMLedRcfRj4yJLEDqvEcEPbhl8E60olmhDloZo9FI+s+lfWAI4NkqcKHTkVHmieE4HDYMr80+zFX45XGyrscKCH6pkX30Qls1DtJ4tkEZouHA9gDxUIzpzlbbyXchbl61iYS+cb1N1CzFkFsqO4oY/D980kpN/J1RtpAgm+0utoxxcogm1c3uyEA66m4ig6oE/izYt9zfBngLhBmeQQWKmFDi6U8BX8Fafy8nXOJmEIejZXviDlAYUtSGJITOU8qcJZOXPBwmD91dx5/ypvwjONrJOgIz3Bhh5qzTNBc3o7w9MSO5VsSLR7Jl9GPBC7olRf90wg00KTJM3L27AckIWZ1a+MLWY7GxdUAvAVpIWi83gvHT/VRVzZEHiuqU9KEGOAt83l1ngRKbjE/Azxep5f3bYYm5DDaa3QOST47w5mf62WZR/kYErO+wPNrS5N4MKl7RKZqcEM3pAck5faYQp7q7Lp6u0q3Fl7cK7o7sEZQxAeF57xQ5adGuQZPirpeygVYmEXE6dOcH9AhNyEXh64xYEwU3eqTJso5U8goR8akyJk0CxlYpc6+MKXqoRm3h8WxirUtbi3TxUyCQGHapd6g+YORznBTbHHhMhGiedN8pAIWE5bPDrfU= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78502ec9-d2ab-4dd5-2a79-08dd5a6dc03e X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:09:18.3886 (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: VvzFZR+BuJQgYdGzvBLbcmjzsBWnUoZC8+k56Ik0qmNMgGVDOE2fIvV+yKkTXTIiB+ry3r4665qTRqRwhbybNVP1JK7kfPfO1cY5sAOhdcqXFFYvF3hzxr+r4oTzqjhY X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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 7faa12fecd5b..1f9ee37584b3 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 Mon Mar 3 16:07:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999119 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011037.outbound.protection.outlook.com [40.107.74.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F839234973; Mon, 3 Mar 2025 16:09:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018169; cv=fail; b=o9DgK3yCP9L33oKbdptYiGpijU4Gq1eGDnuuKVXxb6OCFLDFvzHij6xpsgqfrTMXEBrXNAWNgMoOyIyY73OZ8cSysnhO66jdcuto2PGlKOSXkWM3CFTybTTe9lIPaKuVR25K6bpk/GgqKAm/uI8JGPnseKogLBpFzVsq7YjtqNM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018169; c=relaxed/simple; bh=SnGoffV7KoKPcrNJgbjqkgpI7d/Sj9Xn70t5R/6HS/A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZTXU0knObHcU2SNB7EPIlsM8RdrbwgN8jvfSVt9LLXdlyReV0qh5wu3EQy7UmD+YmcWEnXUe4eJxo8m2s8/FMvjh+74ZJriFpQR5vhTZ7TLxDLsP6wpu1o+r+zEB7n72O5e5zptVc9zOZnEOl/LnVBDhJro/PsAOr1icXXDzZ0g= 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=CHaYktUj; arc=fail smtp.client-ip=40.107.74.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="CHaYktUj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OXHUhzamtx3d+kivcNS2SSc6urJze0iQl/AlcJdrzNwu+q4RM6K5sJaSmO6L5Z1Jdfec1o0rlW9IzgDs6ck4tiomXHmiMKYzaL2lDDGNlDEG87CSEh1iSwacKT5ZWyJqE8Ikaljh6lbrrWvKnpVxKi6XdOd2fH70r22I3x7jlM+stZFC83mvHR9SHomVGTF4C3UPSL8kZ7HEKQI1XFHPftiMfilRpNeYxIKo/uZkKV2yAnMR2gMfgRoXjjHr0ETdqBOvpHZpadbkUmS49UlwPieGey8mjmX6C/bTioj8ujGD/lrz3Pq1asIG5yxE1katRHh1TPBOgiMEtquTTo+++A== 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=SeTVvrxRPDF2295q33BvUfAszfh/9fBZfnq2iST2iJA=; b=YfJu3P34dfHx4PEZ9tigJODufl0tHN9lT6OCepJk31bz0QY08HWIRl7ZgtX4FDfngcb7ARS4de5LSfeZNuOcyj3fVdsIKjsqITWwRdWkQ47rkKXLiD630uTgr+Svad4tHXbE07vCPCCQrA6wwlyeM1tdKHkPTor9nH9pe+z/stl82mW8+qwwvRiePbyV/+ZxwMFhFbB3/EVxYOqem+YMmtPJ1M1tY9BALfuFd8UqrvGmYq1sac8DC7YvlH7wVfVS2Kab8/gHkwFxx5Mxa68i/ZQQwjbPqFbYqRp9klWmWyoIprz9nNtBCKG6xHSQaFDnTyYIxENYaRqR6VGXcrM0/g== 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=SeTVvrxRPDF2295q33BvUfAszfh/9fBZfnq2iST2iJA=; b=CHaYktUjM4f1SNWyvSsXpBhG2mNv4YFXOeSJxM6BrDYXBTOhXYo5EHaDP9wPtQiMzWQtVKac7910uaGN7zH1LYc4MQ6Ioy1/BCpmlwKzENnsQ8cTe4JtbPYwPIzgP58MO8czlR+kFxF/qkIbjvhf99FSctrEEaHlu3wuFAv817A= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:09:24 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:09:24 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Rob Herring , Laurent Pinchart , Mauro Carvalho Chehab , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 02/17] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G3E CSI-2 block Date: Mon, 3 Mar 2025 17:07:42 +0100 Message-ID: <20250303160834.3493507-3-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: f5dcd4fa-8543-486e-1012-08dd5a6dc426 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: 7FHNAlnpcPv9pcIqBnRPsvDsgvetyqFniHsqa86rQ7/OkBqCbPnRvQt4Di8LUwmLgWovQ9rf/wmHMd6bXllA9vfoVbuGJs4TlDfjgOKLaXdvlNHd0toPQeX1NfkT/tdhbwJ02mUcBt0GVPxuS5UxPYPhQLNg+fBkjgDZRg+RI61d5xAx8eixakTKkArhECwfzNp1UgtmsC3u/z8OfSd1uvscAwD9d2CcRkLR7wGYJgdIRJXJOLNFpjfjyz5aoXppQI7B7iCL7d8EkrlGmjPukUencHhcUjUaBS97xTtisFCoIPb3NCf0JknfC9yqnCdtZ92OluUMvXIDO86MWc/IM2nN7xvh0HuLwtGNLjscN2iTz/WDVE3BnfrdbzpIZXggC822/VUY5d83mMekz51ryocS0VhW70W9AYtIhsZq47rojrQoV5323A43PWeDLAc/vy9v5c5U81FWnfDToocy+MJABDpS2HLBn9L/NcptCEywtcn35CuQ5z/kwSVmrhpSj2/lMAOpuqFqdHTtsTdcEQh4G5kr9wxIgP1WTRUnJ7qT2dMkvdpB1knVWDVFZ6itOotKFiwofMPNm7s58APqcm/19T91H1G+1WM7cImayJZCTypB+PorPmJYFN53C+pzdsZyfHWZCG4HWRVBv7vGIFeNm2gjnEiGYb5JU2JMV4eDIRGmHnkaZ+u2PS15ODnRpA3O6pr3ry3PZ7PV/GcYNq20gvicb6RU+kIANTMLixrFF4ogv6SHLQnScW41Z4dawaVPbXmtWCeCUw7qwg1Njt97IJOPAp8nkhNXJqd7e8BWD/y3nFa50ol4Tyb1M91Iy+BYXQhEtM9UaI0mk/SmOXZ+mars0tSvhlUUKYX8yQPWeDTJbnWVeu1v7aQvPuXLP4fhZa2BW8zyaHBsbSWoETXMCXBBDo+kjxgxHcsFHjzlm3VxomcZ/r98Sk25NDqzDHQQGoFU8sNZcIs99+G6oeOy8wJYLY4Fj3dWtK1Ke0rr1xht5Cz64ueGYoeEVyPKs1LPKlj04VF9rzveD0qpCdB6vEyWkWidLHUh5dIJABaEHUz3HWGcik2UZGbU0t3MKTkstzHr+wjrFWzc9ynTIUoL/GOlxYkloNDMVpkp2dUjiK9bvxlEPXJMUg6ezBN48x8dOxcLaDoDQVNl9dhjuYu9uaeZkQCBxRfacTo60UtAt1lHPjOpqmwqP1iyOAEIMknkug05lNNy0+wIFtOuVOA/PMawl0FX8QkoZ2ASWWAZLOjj3TVLqfJr13Jp8L3HiLhswBcQVB9e3yGpNk/cOictCmty6Nle3EXSBalowfCln6Kf+sj7edPJJcuMNVN8H3vF+J8JUHJEP4Wth0jUZQYWqB9SgJaGm4BHOepVK19DKDQN5EO2KMDG2Yn+flrvYIiCi/RA9RHgvlltJ7CWMcoEWqmlbgLIPc2MO8ZqmygaF0qUA3iwWgFqkbdHpKZ/ 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8ODs62xfZ/O3VhqSk5Oo9gdUg8adRO6VmNjbTUEr6pZs2g72n5oKMwFTy5zARSLhZ3kCXZZEh2W/0hCGNa4sbassdFwzfLEbHvLPzKMUEyBBUssAHi3Xn00Xhzrtle0hoL0QG6lUM/vh1RjqphwVBf6N5yIQeUFOjE+xHn0EQwbieL73o228CJhaFsKjSrsK8tpPDa883OVoUzfCsaBrfVsexqnVIHny2Wl2LnfXkrr4hJz5nBYHJSP4/efjpkqfwvGV4lXXRsTrqC4TYKjLwpb0Q85WnGTBphwu5wSh8T+QCl54oqAdeR0x9/sHTkebnGOSjU7sKjViIfVdHjLBF2Vt8jVdU9AzSFYQJ5LLpIpU9FKwv42+liGNK7h2wMPPnSVBl8XFy7osIrgPgkF/71wZYznXtkAfkp7tWWYU5eUQ6e4eRLGJtyny436au+r20hOKFDEiYDIEFzZSGLtCNwnuAm2q4+AJEvW0UPRLxFv+NCZemr1E22CUC25xTLAucvHnx+geUdmxpiZr5Ykx4kTkGrqqpkcQKEgYPmIy/DJTfSLBpy8pB75ndwU2sFkOsAmnoxxrs5jCxJ4kiCpjk8OSuJVGBMQq5j5bg054O3XlAfaOzSYTAw1MKICLAI/ZYpleHmeBkjSKcLYTSVlB9qLJGSy8d/BwHjw6iLJilW1tFdtV/8CaEjr95/FxvmSkUQHponida6z49J/HOQzO4ows/eJV1LkpnO7wQaaTAqAQGGWCu3XK4cWNsTMJBOfGuZcrWaroEMSp0K54U9v4qN0O3QW2i36xqQbjvLkwQ2y0jnXZa2jjgopVcP5hLl2p9NdbVtfIYQ1MvFLIr+s9qyhMGLx0NGq7qQQEai4NkttSQY8HdQRaWlyIyFqI/7ADMZk2K7ES7iW2BYMZMZkJVZ3eY9tWqBS+BkP2TDztmUXiInLqdcyOWrAvoalfKNY8sBe6e0drDTkgyYvK2DNhAd/SwWfJGf9q1ZKimikfOAABwb2yd2XzHKs3MeNbtrNdgWR0N3pyCyt3MMPNsayDwLl3OejjwG9H9ltyh2T8ET+jTI/k67EMGQ/URp54ctN6Ilw+Dbf1okySZC5VoB1wz7Bqmc1HO9k9oJ/yJ6iD2h+ZpTQCxOLdVIarrrNCa0MC4F0dsWr7jT0rK/5tS0j1oMdUUvXgWDmUUoLbcqhVBdFp9jMIuI8VJNECdEWuQVABNDmK9mHqCgJFZpCUtYjhD8j3owgxY5ALjH/2eEoFml1YZb+8peU/jZEU80HN4RFBCtUE7fDmV3/6IG9oiwwPRG6HZnPbXOhqPN2onBykk06xGxH3Up9wK2MrKZN5/P/Hs59qsDcLVLPtoRbB4yUXRF+nmxYOFqBrpcWIGq76iGMDDrvhtPsidnHqjPFf86eWg9HlqM5M5brqi0CD8FPWMkGxfyq+BYad6giqSrwFzJvU4NPqQuu6jh9BRl8WNjQtuXJt+I9dioGPSFYgaifKSICdwLo0bvE+FAW5aFCyN21vBZb8W+EchL3nmgh/grxcOHsjGyKT47AxSjNcDuNWIqn71wiheTd+c+fnSLibt7BxH/2bJsayg0QSKeLhIKsXbyfLGuA0PqTJj/K+ZxAPV7bGGLeBDHnmMm4+vrnp4Qs= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: f5dcd4fa-8543-486e-1012-08dd5a6dc426 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:09:24.8951 (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: ke+MHQ7lOcnrByTlw/H7+qwNlpZ01PuopAB2Y/B4ImPf9ytIW6JBuanHAo4eWdYuEsRLXEUt/SMgAvCkyZ0KjedUPgrv2H9mtww72c2c16e+G7RRuEvVCVf5EQEExpY0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 Document the CSI-2 block which is part of CRU found in Renesas RZ/G3E SoC. The CSI-2 block on the RZ/G3E SoC is identical to one found on the RZ/V2H(P) SoC. Acked-by: Rob Herring (Arm) Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Signed-off-by: Tommaso Merciai --- Changes since v2: - Fixed CRU_CMN_RSTB as suggested by LPinchart - Collected tags. Changes since v3: - Collected tag. .../devicetree/bindings/media/renesas,rzg2l-csi2.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml index 1f9ee37584b3..c5c511c9f0db 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml @@ -24,6 +24,9 @@ properties: - renesas,r9a07g044-csi2 # RZ/G2{L,LC} - renesas,r9a07g054-csi2 # RZ/V2L - const: renesas,rzg2l-csi2 + - items: + - const: renesas,r9a09g047-csi2 # RZ/G3E + - const: renesas,r9a09g057-csi2 - const: renesas,r9a09g057-csi2 # RZ/V2H(P) reg: From patchwork Mon Mar 3 16:07:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999120 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010026.outbound.protection.outlook.com [52.101.229.26]) (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 0845A2356AE; Mon, 3 Mar 2025 16:09:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018175; cv=fail; b=aBhDNzXzNA8HxaqK2jBA8Yzbf7aNhcEQpdg29eFMKiMqw+VJeQIj+d5hAjop4P8lHQHssB2G5SMqcEsHq619ax9/5ThMbbkYV0SwPtloXx5XNJcLVdjYFBvvQ0d1JXWV/YpSCnnsCcb9rv42eQyqKZHsQvPRF8GWfpRoVRRydHc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018175; c=relaxed/simple; bh=cF9wpA8XAhmDShSXhU2RlgzRnvv3u+SXE4OSiXkNLPc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qpeMRohbimTBNXojr/tT44Wz45XpVh11miih6QDiV2JvL7KIEb9DTLKp5RxmXI6wm6dT+d3e62fRcng1x3JEbPO9fJ9XCraNxltfgqwiTp59UXmg7DXjurnbm14tGLH4dwhWZUn2Co2ROJOnpv1Ba8PumkhmDrza8VMmMpvh2ho= 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=qZ4rCcwY; arc=fail smtp.client-ip=52.101.229.26 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="qZ4rCcwY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eu2Ml8cvSG5IhIW8ahox7zqfVvMklBSEsCqmjo4KpjeAq9rxyJrsz4MNiabxOGcXIhfZgb/l82Lgo4DDRdIxAazWDMgFgVsNVRQe1QTMOcyMevjIbPtr/W0Y1Yh7kc9e4O+SNSKErMDowpGFEcpDFnavEPZOoMZ+KqxGfULChL0SojacNRFoW9n24KBfqgxWsuARseTkn6lgnf6VRny4Q/+XXSj7++awOOO2KxrBR7M02+p09kKgO+RMX9E+pa/C73VCpPlQAbQb/k/m0w7f+2ji9O52YbmhtWI3OwF8IxVWiWs/WSz+cE5xdPLSx1yubF9I4idKJLAnpttKnUaYyw== 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=nUdNFuf+p+rt8Ez7EJQNxigIcs88ficfH2BK/x1Kdm8=; b=WHp3e/cwH/FB46Bq+jqYu+QIihkF7QSaZY0iY1xMwosBK9CSozsNjXikl1xGR3VVSLpIaNXfnLIu4b0HxgJSa749ZcSJgUT4A7n38X91EOVBy2dDoSFAxOv9qyUjrfHlHTMdIp1cfbZEgCT955XgPcJLe7zptDi7anqvDAc2XKYqeVmsVR2z5eR+/7imvT5ty0wOfCePg4FLPFLK/hYJrH3/bRVS+7xEqh5F8ew5arYFTTYwZB8zF8p9vKd0Gs33XPOa14+hTrKPRvrx4n6s2CzzSt1VN0mzQ2fikivoDExac7cegjsdUxJmINEw6djOh47zN2naLhkmgAjxaVz0ng== 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=nUdNFuf+p+rt8Ez7EJQNxigIcs88ficfH2BK/x1Kdm8=; b=qZ4rCcwYfSJVZSGyjyCQqxJuvAYVSVdXqexo0/u76niJT9U0sErwSgsgEJcXKm/2yrzgH32+5o6o6DwdJekr6BBgnH7QPSbcpfWtaX7EglDq+ggweL8HTHxtEZCLNmBYSO565YdmdBMfgbS8cElv6f2fnQ8cQbWqvPta/6i36ik= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:09:31 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:09:31 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, 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 v4 03/17] media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G3E SoC Date: Mon, 3 Mar 2025 17:07:43 +0100 Message-ID: <20250303160834.3493507-4-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 340fb3ef-88f1-45b6-9db6-08dd5a6dc7c3 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: mM3Ewk265BN6IgfG1a9ogVNGpnBZAGQEr+neVFSZDBuJL5Hk6NUHZzgY4B+U3q8yCqQG981Qmzfek+0U1f+fiElr8ZzOuv14jSzDvVBPguqj/ZMJmo68dQfJblxNxz9FbSO/8daDVpNK9EED+fMjYbBpWxVJbQduO4mgU1+YTVZfGoqhSimuSrLBPZekYq7YAL28Vp3vZ6dRtnIXsXksHX3swWcVMrz1gjRdZRDMZQs261leuEL+hFAbPhbr4H4zGp029RMshJsI8It+VudSEz9XVHtw1rZ1zQOACj/aHMdMP6eUBJSz5p596Ssj+cXPBxVWhcov2yUZkvUA6L3fnxE8DG3qg/Uu6lyl4/HUWZZe+g1yJageQUzdyC9iIOAStNSGjyFgGs9IT/ieH7LX3v89ux/rX2AydZ6gaMtAoho9kn0RD6UY5ofYBVw5q0UB+nvTmD+68kXVQex7neRd9DC356m92QXakPv6R0Lgl91c1NCO39q/zhX/ynDq8is9UtuBZs8b4gzx4/fbjqPN8RHZNb2NNsLz/ZzFQeF/cYnaFpDMk9bcVvujTHR4PJZA72ACz+C8dTLhOjz9reWlXxougvCJFi3VzSgfm5gBRio/SRY2DAc/08oburanMm7LBXOaaiJe2VOD2qMrwaKuGM4Q2i5uLWWmjwYccfmUwT8QXrDd5CctEV07tt+iEz0k5mz1nzIa8cw+6ZdrFF+jmnW3AjceDEbLKALcECuAdPVs2EL3Ef5FGaKmnAFaMYscsRssOK59ClJ3GjqsPkO6CWhM9JFVEDfWU3LJkuoixeh5tk9R9exkr4vpy2kPix6VUiVxBreIBuGR9BMq5AOZktY06X1Tv7UAC/8yWPHQOW9tqctbNmnVw4zl6VuBFBSGA16hmOXmjfek6cISnHNsa1Cgth58QD6YsRLqMFbxr1Qm7Y3H46nOApR9ZTY30FN0jAErMqYGKnFdRq01iwApqXyu/fLW8F9aLt4qZ34KlA90CkIs8BhP1QiQgJiWZfQRGZY0W1mIhWzg3006R9KlRta/hwe282o8xmpXD9s1qKv2UA8DxC9XRFhrjKTQijdZP5XFKD+0qR7wQxSKErjdLFq+XmC6hZEcRLC8r4If3rhWQR9B4oTvpf4pVadIaeJSD47sG1i+n336vHG145lNAz31jUBdEJIiJbt947i3rVzfdl0wDtvbOOquv1QPqP2YAMD2sGFvCjx1V2FRv5Y2X7LhHLm/pENAV4Cgm5XwfBkikX4rzxF8NcTLSHxHbfp0niRURruuFRzo6anMEwSgF4Hl0Yfeu+XyfSelXo7nL1p+rNYCox+OK2oDKL7oN0KsrV1A9dz7WeA87oWdKN6c1/hUOsONixKC8bu9iAlkSa5GrSCOd1JFDeFOsmDlqse5Dg9RN4B1rxr/ACY0Q9o/N8Pxr4lCjPeYe+nvEkwFl8XjcQEba19HBzjG+n3l2sYK 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BKtDmSAycziH+imGHsSdp1bt4tWQf8sJ+bUNwh+75OovZryeoRmanyRPiToTseaa+CsI5RTAKzVk7r5rqCApucuaBwP//hwNNFa6XJG+7uduwMemfQHiITUI6X8xvRcdnRSwcvFQE2R41D4Ed+tDcnmyIQk/XPCHYQI4MidAZJ+OW7kpx+24eZ6ktSDymhuADYBMolEIOlaoAnoOMCtoNC9pjqaY2+2kQfRD4QuxzqjretFhfMgz9yeGpM+AIgL6OJLUVvB+orAIMLMABwHmVPAvILGD+l76IRlmxePhn52/sruXXY+nvPN5QJ/qKMeVwp8spQYztNI3TUjBGfDVaWdpQE6Qh/DNlpkk4+KsmcjJXFmnIZcPMqO2+HzS+XHf5H4Ruhm3kb+d6yu2UzYeH3CB0IFUuEyXj2ptnYCqI6KBpY6SpPNetsn82de8k25VzXaRq3byzqg5EPt0ktERFwnRJribMgr31DGNjX3op0hTyMDzNmNfFiUTU0055xV67WbZUSVJmMlkPFUAj4G+HGDCAXlqUpQ2B2qKXLIu6pk8jzc8EqOdlHR11WHzOnxx+Vg8g1f+x/hfbUGfspLZwMXhsQE13rriGD36n0oSK3S2csAsganYtyQz6K9VNy8c2vvcMIFRgg8IJbi2PGU6DX1yRQHx1qLr1XHGmGghfltjjMrflDE/Epgro/cZNcu+U+uEIFIhD43f97Pqr0+bq7QqCWFyCCCx+5vrOZzxlxm495GVyR+HxsgD4gmtMwAp08dnYQUNLEnxBUY4nH2BxDRjVPNs0jeBYfIWWZwTeLjgCWLkfjh3NOZZUhuXR1zp0GNwdJmHm8wGc8459pXKbZTbesWi6oqxvNdqeXUAT0m9Qo623/kAV5maqHp32+RWfAxJEFTNjQThBHpa+wYOMn0SS0BnH6na25I2koTNPus9yCeNDoa5XCIi+f7rwrgvvcWU5KLMdYNLd1Jj8JjNqwZ6FGW7CtUQja1sqNgNe9qo+xJ8lHKuST/tph5vx3kmSrWsIRXCbLTrdjx5URVBhNgZPrSs84FSpES4eD3UnwD1qiC6rVno95gooBx0HUKXxzy5JxUJahTrnM1utDjk1zYmBqIArrVC5jPccGxlIsZn9In6UyvJdCiNSRIk7O6qJ+cCy7a6Jn5i6i4IzxnnJE2IwxDn7AJdp6gKDvGewdl9RPEXZ6w1A9I9S5WB0Hr2mwXPBvPXvFAhqV2Qtexb4KKKRsBU5C+67lsjg2DFL48WDawnJ+DltfzIzZAkj8JLdhdouXyIvxxhx2oz0V50ciFGJ9nNdclF6wK4YJJ5IxaU+8XQcds0yefdTJmeFXCLGMmEOys0kE31J0Eiqwh97a2akCX38+wDjLZ3C/DfFY0oPNy//EW33M6ZmY1Q43O9tlip3VI5szwpbjSbSSW0rVYFpdx4LOMN3sFH6aAsaXNC1/WxiRqnCupcekuvRskt1FdGlnAkou3eGYZBz9C/Cj5h/9ElkwKG0XkuEB0q3mmDjsDq+rBG3p0fM5YrEXfujs7pWMLB0JdH0P75L0W+M8fNKyXsQ4/Jir0hAa2jbEBgmnbxbGr63Q6mFOweo6lASwvK/tGdTC8EuSNOOQo6cly0NvYjsU7iZPd55NY2O/U= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 340fb3ef-88f1-45b6-9db6-08dd5a6dc7c3 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:09:30.9157 (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: bTNU8nSlc+KaEwEuNamfFYD3uQJmhxt0sUZhU81ZjuiDM41cqiO4S65PMSO1JUJnu/0wPftjywxf1VeoMq4tuBcZtmSlZiaWCEyvmB5J0hErYU9UH2NVwxARfcqVBka7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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 bc1245127025..47e18690fa57 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 Mon Mar 3 16:07:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999121 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010032.outbound.protection.outlook.com [52.101.228.32]) (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 B72BD2376F5; Mon, 3 Mar 2025 16:09:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018184; cv=fail; b=l5DT+j8ETC9glMD6dzJJn7stFp/fVlvS8p9v/OBuSbVd0YrR6qRByJEyohgBWkh0ry/1Y+fzw2MALDXYUEogVIbJJY/pkqCTpoUJUVArTvjflJJtyWbug7xjaQgRYZqWRQ6gac/rI3ki7j0L2sPLRDLoebh5ugrJoaScSj/zfsM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018184; c=relaxed/simple; bh=OImP8N868sA9svr2gZKEzGmfQNaho8sk6AxuzXYzlMY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EzkcxY9CnTOYqi08MhuoAMSYC17olqnsYQp0dZ5ospYcdnsB+yI9TvkwO8rX5r/c+JpLPlgZD6VxC4WC+Aw/nIwGNKJQI+3uPhxzlixi0uHDkOoYV7iMSCo30Dz1JZysH2ikhFT6QebV7YHuthrGjrbLRUW9stZcfZojDRyhKOA= 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=FWnkLMdZ; arc=fail smtp.client-ip=52.101.228.32 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="FWnkLMdZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N5Qa51hJnUvRa8RWlAR/TIptCqSitEC3YzkSSaeutfqbEEyfesMt/3AKmnx75lUQVXQiCY+OsJx6SUMdX6NwWRTEbeKI+TtKKEY275EQK6wLnuqGoTkcTAO1nDKTce3X/FOv5c2gSe0NV96NgzTl47xY4qXLvXsin7acwfriE6my3TkXZhacRy9o4gYdprp885PKKmXVZnHGyu1CP4XExELOrVoLnBlXgEncKCF7uYkIrVESkp0P20PIEtChJKV/bypr+KvQEe4HvpqFnKLuzmaBZF51rsQojcd1nKyPA2z05Ko+JaIsUpDcBUME/yKICVGqxv4G4TIXw19g9YQl5g== 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=PePgfD4GrURJ0pUGRT4e7YSpUFXsAzxMurwfw5TYoNE=; b=jpZPtFvLKAmAJiy3erODceub8pH8vaHGBIlxvjokJEXHQpfIUl+i5TtzkelP/xgZGN3IfGjmBa3RMi4iy2wHNkN/vK4LUsCAcZ57C5FUgkqOmOFpDpPyoJ9L41X+otU/z+djeOOQIKJD9L3WR20pADyHXqvTvn3sTo8AKWupqn67lQyt6OBDthSORew2QD8w8KnMs1Wa404hW3nUnvvPDT39ryY17i1dKWnwXzdCOW/ur1uYyM0a39o+qlv7Tqlbkm0mMb0vYF9K822gxH5Y5LyQAyx54Zf7KM7ecsXcOQkd3hJoqdrDMy6ots1ETaIRDC4xm1RUfheV1n/lY7JXyA== 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=PePgfD4GrURJ0pUGRT4e7YSpUFXsAzxMurwfw5TYoNE=; b=FWnkLMdZFq7IJCwLvWrM34VbGKckLQdq1ZLgwwhBTDv2rq78D2iw1YRVJTx0TaDn/fhmPtM2J2bdGsUC6j9MX2a1zwo2HExzMK4rFoyLGhHOu1HeJOy/I9gdnGIe26EKVT0irBRHmKlAjZ/i6NccpCObt+wQOcud1211BmRj7KE= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:09: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%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:09: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 , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 04/17] media: rzg2l-cru: csi2: Use local variable for struct device in rzg2l_csi2_probe() Date: Mon, 3 Mar 2025 17:07:44 +0100 Message-ID: <20250303160834.3493507-5-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 72398079-1646-4313-4f7f-08dd5a6dcd49 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: 8Dva97SE5Np+YLUVodrlvzABuQLyGmLsR3ibpwb+xr9YDimwlzAR3mlTtxhkVYeg7ToY34aX8gbFD7ayohfj4Aa4cP7eFflxQPzzrl30swJSD3rCPW/nfzluV55Iwu2HdQEVXUIG3oBKE02IwSd4zTaqfrkfeh80251LJ6oEUIlsvNx2C+ml09FCKr4eBCKZf2G/66xdkgzeRPlFc15Aewm4r25vCo+CefiQYWSOG5fsHHSqAtFFxt1vzJLHcFn4ReAOIwlKdBmQ8rgM1qExi+07EbLBa573LKPRCQ6TP8QpITJ3LTBQIThbOxoI91JHa/ZAyMOUprPKwCi1ljdkccfFwsQo8upmTo+SBy1UhLDQpz2Z4Rk17Yad3rW1HDAE5we41L2se5+pdIEJ7j1hl4LcIMyTo4hBiZSkP5Z7VbENVwlmZJaDxTntOYff91dv1/4KNMt6mV684zRMikKvzzZkk9IvCF0sLGeBCyC8Kc8XhwKLNqzLP05sERAvWwKh9Sbwjkq136fLipcP/o/pEKD4wFizHg0DQU6ye2GcSJm2QWpStJzUuvNg52Qdj1tVLNcf3Y8BNUbHthQYNU4f4/Ha79NeWjV3XhEUmI3P+g3+NbC29A9J+cfD4bIXhFTeL8C9md7otRDfZsoFXz1DrjpJ/Aoli27SpHY0hFuNmh1yAtQdYdsc0dh4/FCo28Rykp8temOPq0ycItuIReoZhsM4mn/zTobXOCCM3M6ylRg3znorq0q4P/M/jZqksXdJD2ZnwxHQzpuKLI5pu33O8NMuyfoAnb2k0WJge58lnamw2Tdhfb+XrqNmrqVqLeBVaDpxte+RKz6/nLGdOQU4Yk8fKF3tS+uKM6nRMAaYaUO2gvUFGCTOnxvTT9r+VfILPF7MVkGi84imSNews8In3Zsxrk4Axy4fMY+s0w/guMrmSucBGBxLEGrd2EEfFyytVgIIP15xgOmRJL+WPDL7Z9RYosJgTMDHNx0V46OQ2qzBEQk5guvCpNT1b3RkWZQ/DhVeMe7AEJecsULZRAOMac22R3FyISUz1o7NSW4UBy1qKDRl8cAUuOWgEveyskAi258pX3sVAUuC/oBEHEOz5AzsADmHYLaxeZkvHSZ8XvusmgvsKEG6XT3OmRcaJceGMyD//0WQo+VcYZuNf8H/rm+O7gU2iLxMgejUzILpFtdUXu1YhLjsoTT3ZtMOBB7dIjYYr9qh8hxw+zdaMNKyThjM67B+LoORxiK7PXcT93azWPU7VQiWv/vylDxEdgsJWjFY3Tp53C71RsRZfDTq0+JjmDjkVvvIjQshrEFb0/YZ4Zu+kMcr5q+x9D7ESRRqLHSN7w8n/klpARlFCGx6kP7D5i8DJ+xYnd0jYX5WoLwbn+Zos7UWT4n3XmVnz4aLKhyrHxRanqc+/bvo7FeO/NbUNH75kDwARxF1ZZCcU8uRLq6hnBqFXrW4wUwwIXHD 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sSjVaV3L5zSSwifezb+CemgLWE5VFbBpHHMBJXfdci0kT0rGtRKlICiF/Erm5Hnsqud8bURq1mx040Qp1vrum0wUAEc4gVVluxvwBNlS+qwJ2ltX07TxY1mkBpuekIJ46LnSyvQ+Hy0yRgycTvI4/7hCzVz92PsUQObe2lXTDYvO0vrUVSILube+bRpXRgmOeQDGnoE/3C79gFvxDd4EQ8awZjNZnuFye0/lcnDhHaZhs4a1hBBytZ2tQv259jCkPhH6aEoTKR6pD5Ce8yrT30HITLykYa8uRX14jVz779qaNF2MdVBI7u+vU08cZpZ5us3sp9qHi7THgQpzOlyTcCmxBl8Z2MkzumVDZUgY8cG2ec4nOUZtzqttz8+0M+ZgsQNCmrrjJF0Kcmz5oFQKG9ruA8hCwlhDSXVmVFTy5nAfBa3nu8W62q5LXPAgNPhSdq2t+cVPuctbxNpfgI0tSYblNDFBE+8PRCNx2ZBe/3QnUBpK0pHCcJKaboAzpFrg+FOezvpiQmDXWjld2sv32nOvf3E28KlQ4BMKHQH2SbM6GTE5SSFiv2qe6xZokS8mBZh4zj4PhLjIbfx8f0EWTB8407T8qOrYcjEmaqHcquox5Ri2qrOKTgzjRYCdoY710TtzPgSJ9DinqZ3ElaVG/i/7e3LStE4e3i78ZCpq0KLKRh8Tc2PxPZErpiPtNJDadRYS2O8Mxm04L340QVlxzVDCTg4Ak4D3UqnpXA9V5DGtlsiNKLg1pscWijVSDPOjvV1gpcKL94kKDveta4Kt2NXABRvvQ1bTXbN71jY7qZk80OvY3+/3M/7NmdQRhk3v4G8uwkeD8OeGQRNzk/9pW6wKPzxdL3lE82xnKLz4odQkKcszS25no8ws0luOjVbmrQOVE385WhK6KTG7gKtpDbVASLQQDvXYo9DlmfBm4PjMrSUxbq1F5EgG89Ul37VLDIBCKOBBxj1DZW0O2lHKRAaFJPtAn/vUSR1P5MrMshFY1W6uymsY/y/oxh0tJOgkdglOu3Ztpdh9NxpGCHKYcTY+9tOPqj0V2mMD9lBXCQ9OETl/f1/HjBCC6X3OfDz+uMhQIExyXkQuIxmJhvEaFAxxttawFM/TWbMQHVtNJD8bh9mM6L8q8UqeJx2PS7p0Yq5Yw6bhIE2REwvoVTpFdM0E7eyfJwpNZ91fbS/Zd+1AKkS0KujIu96MX0K+IIblbiWD+pg5WbuGCKKt50SvyninCO6lodwpjekUEJmET3dq2xRoxoxFk81r0efuiKyhXIvtXkpJOyQ/K2aWn+zyv+s9mEuRomYUbkb7GnpcJQVBPVtHQAAKuqT8YxhxKz6PNo1mS40bgkTogQpUx1nyqDW2Q81AgDXeyIUKnCft1dUAdJDPdYN3nhhPrKX+kVGEwUrMVhRJRaHayPsB3GK2xK5/hLnCOYbIJQ0OrwmOiv2627dfbAZRPL9QCuJ4SWq2r3itpbWF3BvdPRafMUxWbTyQr3XPh9CAPNBPGj14jtNt8ZFeqLNp29h/6J7KeM36K+6QKkoDmL1dp1yjrL6VGNW4mIw4dv4UNleG6xVUnY9+7ixwzjgDnUGwzf3UiZZ8CgZ8IMxQw4fFRThdcYz5H3Ryl1Z+1x+HsyNSuM5Yy/I= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72398079-1646-4313-4f7f-08dd5a6dcd49 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:09:40.1956 (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: xMPu912k1sPslSwnWVQ+WXdqXJH5AhgoUsIFH1CZPR7T4qPYgSNbMyDMwT9ZvA6QzDkzsWy6O5sptJkEerNHgUIR6t7QnWewFDUkajZ6DG4oDNB2MmENeId8yHptoOni X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 From: Lad Prabhakar Use a local variable for the struct device pointers. This increases code readability with shortened lines. Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed commit msg and commit body as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 881e910dce02..948f1917b830 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -764,10 +764,11 @@ static const struct media_entity_operations rzg2l_csi2_entity_ops = { static int rzg2l_csi2_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct rzg2l_csi2 *csi2; int ret; - csi2 = devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); + csi2 = devm_kzalloc(dev, sizeof(*csi2), GFP_KERNEL); if (!csi2) return -ENOMEM; @@ -775,28 +776,28 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (IS_ERR(csi2->base)) return PTR_ERR(csi2->base); - csi2->cmn_rstb = devm_reset_control_get_exclusive(&pdev->dev, "cmn-rstb"); + csi2->cmn_rstb = devm_reset_control_get_exclusive(dev, "cmn-rstb"); if (IS_ERR(csi2->cmn_rstb)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->cmn_rstb), + return dev_err_probe(dev, PTR_ERR(csi2->cmn_rstb), "Failed to get cpg cmn-rstb\n"); - csi2->presetn = devm_reset_control_get_shared(&pdev->dev, "presetn"); + csi2->presetn = devm_reset_control_get_shared(dev, "presetn"); if (IS_ERR(csi2->presetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->presetn), + return dev_err_probe(dev, PTR_ERR(csi2->presetn), "Failed to get cpg presetn\n"); - csi2->sysclk = devm_clk_get(&pdev->dev, "system"); + csi2->sysclk = devm_clk_get(dev, "system"); if (IS_ERR(csi2->sysclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->sysclk), + return dev_err_probe(dev, PTR_ERR(csi2->sysclk), "Failed to get system clk\n"); - csi2->vclk = devm_clk_get(&pdev->dev, "video"); + csi2->vclk = devm_clk_get(dev, "video"); if (IS_ERR(csi2->vclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->vclk), + return dev_err_probe(dev, PTR_ERR(csi2->vclk), "Failed to get video clock\n"); csi2->vclk_rate = clk_get_rate(csi2->vclk); - csi2->dev = &pdev->dev; + csi2->dev = dev; platform_set_drvdata(pdev, csi2); @@ -804,18 +805,18 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (ret) return ret; - pm_runtime_enable(&pdev->dev); + pm_runtime_enable(dev); ret = rzg2l_validate_csi2_lanes(csi2); if (ret) goto error_pm; - csi2->subdev.dev = &pdev->dev; + csi2->subdev.dev = dev; v4l2_subdev_init(&csi2->subdev, &rzg2l_csi2_subdev_ops); csi2->subdev.internal_ops = &rzg2l_csi2_internal_ops; - v4l2_set_subdevdata(&csi2->subdev, &pdev->dev); + v4l2_set_subdevdata(&csi2->subdev, dev); snprintf(csi2->subdev.name, sizeof(csi2->subdev.name), - "csi-%s", dev_name(&pdev->dev)); + "csi-%s", dev_name(dev)); csi2->subdev.flags = V4L2_SUBDEV_FL_HAS_DEVNODE; csi2->subdev.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE; @@ -852,7 +853,7 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) v4l2_async_nf_cleanup(&csi2->notifier); media_entity_cleanup(&csi2->subdev.entity); error_pm: - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } From patchwork Mon Mar 3 16:07:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999122 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010008.outbound.protection.outlook.com [52.101.228.8]) (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 E01CA2376F5; Mon, 3 Mar 2025 16:09:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018192; cv=fail; b=bmz1bO1kmbtltHKuG5W6tDcWeAkQJsUsH+jqrw7lsiBk3v4P21wSnAmt5yHeDK52CPQLSTaP9yq/EW/ueFEqw0bYp/nnvCEmLtpvxpiMpFwvdDPMTRgALMDv1AqUvtw04AGfkH0yJlBVvnTu45ctDegXNNsrJN606bYpkwH8/es= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018192; c=relaxed/simple; bh=9j4nPijH4a1+cIb9R/wA4gjImTTmMrJZfHI4NuQOBVM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ki3uKUUgQeUxgpSp9UXZ4oy11trJL51cvvrpAUpqrmflN5HCPFIQ8s8eJRWBDaPKnmn/Tt4XFQKkcjAtNNszlCdx+H1230Z+XV035uWKLaQ9vOg1SS1ghdQjNdwuFS7/gEozTkQfjRFVYlfvpbIVi/DLzyrNUnxDnfEXI8SdfJM= 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=jwxgmQ/1; arc=fail smtp.client-ip=52.101.228.8 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="jwxgmQ/1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LSB3e1O0HXKdk4gJC/Vf8WcjNE8r/gpP4bwdrjucT6yI8qOJAnjAFOheq1hLN68Qczd7g6bhV3bsT55ZSeEFviPDzy6g4vFh1RLnxAvB8CELxryTgY1GQUZn5h/Dgk5/FQelkRmdKXvTCdQZ8VnZKziTumERfpQgLIC9/cAlHjosfy9hoJLjM7wMxUQwUwOKUKbKo7XO52O11aqud/+844O6vdxjQwowLGvamey64as7OAWZqrZOF0QU5RLXvAPnsBpG7uUGm3sRPcP22UN3izybIGw5Z7K9rsH1AbeAD+OqX/jpZJk2adr6v0zkFXU6BhBm2IKjyDWRK1/abOyufA== 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=4QqV2NgZjXgYjDJN6Evb6jvF0zTwv9S7UT5OmB6zxDc=; b=uGQaSfnBEoO8aFr+0vuGnTMK/J1G3ipVFBQzfMrax1pFWO0YvhoYuNzWg4ZqhssS/3gId/VmRsjy/dqTgIAeTiiBEpkal6OXsueQENGuapOl620WgBwcYMA9YxBfwaNaIWmyR7ycN3/VZb0uKFQw02aK+rZp+ZyshR5Rs/9K5d+//J60sXdRz+Y4ycIRa9tBvr2aGG9iABvKe1VQOp4JktlK3UskoWum29M+44d+rXmzBiEaO6Y2RiW2kPfd6WTPlib4sgzCNFSSH/myHuNPHAsTobTUBxDOxSrrT4KdUYrLG1TpAg8eRHhjA1XKd5ej4PcHNu948e9qUio6MtpTGg== 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=4QqV2NgZjXgYjDJN6Evb6jvF0zTwv9S7UT5OmB6zxDc=; b=jwxgmQ/1qjOr7O0KsqT8WrlA093RR89GFmzGQZ7w4kplHESkx1Dw9MvHrbDMc4Btag5xN3MXlDfB6LAxYjL4BKcR0nWWP2/7/VnZuq90ZbLFPzLw67Zlnnlv2aeVXpBq9FoU+Fk+sYh+Mxy4aox+dVxvdHPk9T0QJRiC4p0Ghlc= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:09:48 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:09:48 +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 v4 05/17] media: rzg2l-cru: csi2: Use devm_pm_runtime_enable() Date: Mon, 3 Mar 2025 17:07:45 +0100 Message-ID: <20250303160834.3493507-6-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 45db0559-a9f7-48a6-1899-08dd5a6dd227 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: VRl3L9q7E09q7WjqZWLhjNwUL/iTdAKZ9Svb53sHAehC83OpKU2NxWoRD0qlolUXCEQokqYvBtwHzL0sJqv03KstOtqQTbv4LS9OzYls1BBoljg7aIkIrPhfdJI2NzJ4Z8mCIexCSaG6mZFk8CTrq788POzUf1G3iIA+DN3g92JfUJZzKW8pSPG4uymzYB23O/330iZ593TNOt2Pl6mbUm76UU9JjiE52XTtfD9j0utJtfIBg2jEzJ7RutSmuOVqHz0YPQjEo4Ykn+vylkv1m99XO5y24vGpM7TjMNv0hH2oXhEeYgQGqvweiuaBvhjfsuOApx+mxWXE3Da65TyxHCbInEqAucKmakfsQOzWSLqmG54A9zIOahdCPjAIILNTit2ZP7uXBBvwSzabHzcsXhj5FnD1nvNAdC5zGYjjsBrEeRvcJuZ+UlI8M6nM5Gi7sFbzRX8PoKpiE0Tj06mLpU+F/LTmdnFkQJpIecrxIZRwjtnlr3HQSJnIaNepZwjyNDGuzDazz+2L+j/dj4UFJKL5dQc2iePEBUki7PrTMXouHvFqpsXAVfVrykw+cSWw5HOxsycc80V1m2LYsOuPpmulM3Xgx3ulHBbq3Le5fj4nfBpV3OwyHwyO2TzwJBLz36twDi/EF+r538UpVKLhp5xqrOmyr7Fm3Qtvp18/qjM1xEkgkeWeTvgeM8sNmP8KgY4GuIX7B+eQy9XKoO1wXGJVyOQ07lho6eBGxyrT5vVWwR9q0IDmay6z0TDcXKzVFnpq/IAK8bxqEpSI6gP9JOZ13kt111cU6L1DYBTY9c0walEPD8klMRY7ZPKb8dpskx8/aOilPvDU1zLefXKiZ4zD+3PqfNL6ehzhnIcdvAHFrJQix2t9irF18umru+QAuFCcBdBnQN+aya6m4AIeIc7HAWP+urd9bzrrs+FeDOruqws+TNZM3fzkMQtbs0AgdXIYgvS5L3MX11CxYK82E6iL+OkEpjjL2tR5+3Id16yVsoZxA8S+Obmq2056EQBr5G+zCCDyrQNzdXtZ03NsI3Iy54U0pfrQyuX4rvAQRokkqSlNLaq8oiOwyQqEhY1JTbLwjQ3PZzK7Z4TllxNPbUrp+MrQyXkH5B+alfmBjTdU3zEKvVhu6FCWJ3pvt/iDWU9JwQ7glNbXhV57A8kgBBZK8msvO9vFbFAteeEBEx0o6vt0TVj0mT+DQ4xh+QsC3AvvW7GUnuKcuq+rj/NzONRNHxHFlhaa5n9gxQ9+1vaOrHRc5xQsg6XAEIuD//3sXZC8zX+E/q5B4GsX+VgCn6IP0JFGWXyCDXN7bXPCfobjEx1Qlicffvo7biE4vVaQ79KJ8TEeXu8dQTymxkkBY7jymIWfALfRQFPAq8ydkO2NumP5cRaYRol6eKk2A1VK4RnNEol3G6bdelhGJG1YUi7+JJcPmVnFfNNaIrprCdwRfBZHoOzJKJkUnMgJ/DA3 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WhtHkSMRHNFMonk1hvoz4Y5pq0bN4vih58QniJDmHv08gSQQyHUuZ+papdlHc+x4jmq7ebo9cQnxctHAYiOUOSLWJD2TwoQEXZuq+0WPcsFtXlJhY/ORYcPbMZsuVt3JRXmzXo5AJwgLKXLXlHqyaPoHlm2IKOkEMnCUMGbQ+UFr/lJijQLx/unZL4lhLt0wfvXt3GXGmbjYp1+ulTdYxZMqnchkcM1MOjKG6/8Oe6BdajgO+ZXqO1a8J5i5jxRaKLu8pPt0Hd41sqXqwydVh9HGrzxzIgOBLpmd1qg6T+SJwf6aZn3NvDnlDwL5Du8WtROCogWmapq/Nf2kzmyXTH4xRBG4YJb05WPhOm5QPlu41YXqEH2zDJULXA2OySXCq2IRRq0aH4/+xvxE8bjmE29s3lVlxPKInwufYt4XKKbUr/aFtvFmB5JWqwB/i16ZVfnAMcMCuw802YWYfLlMx2NeflIxFyPU5jbFG4ANthMMOmdmQ68zXiJUfQyzLIolfhNws6E8qYrSZjhW+mvdGSz0KO6/oBWaK1qQ/PT2T1BNL0Z6Sh6lk1il6UEz8BX+NIPW+hW9qaIgfhJDwypdqQZWyjrESq+fJGwK3nt19DWE4tZGqIS9SEKRa7CNgHLQ65/JlSL9EQOQ2YVgJhpYF2euOgZBbgyV2GSWYjeyCaLJmcVyRa4wQpjcxI0FxICgHQ4QLI+dma91zeiaPWOxX0bFwlTtSV8+3mKqoQ+1JypLHajnvxeLaaxl7iWDdBP22VthLNdX/bE5fgvTwbPmcyzDRD3sO1x/cJxu8IL+aZb53+8BugA1APcV9rEpdT/0g13zve4H1gxlpt4LQnkjeKzuuxL22NrnRZ290Fr2YgdS9r6zCCw8Nh+zmtZn3RlrCOe+xZ0QvnNFstSIIWKzw/VN4N92hYcxgHYG0nauGsH+13A9g982YOOOuNvNGcFeK1fxSHObdOdthXh1ULLSQQf/cIOobl+ydlZgnziCgIVeFHMqDmMbvDzjQfjYBgGxNLk/ZwuJqo5us7q4CW94p+uBSDDyEofVHCdRw/iyGdPbzj8XQeqqxB/AipdkmoJCiRRvpkPg/t15TCKqLH0/2yxsmJLwVjYn4R39AOw/KLG0/t4ogHRrRmRCZ7B3QEVPgFox1y8S4tyJGANlKD03oa6YJwuJVPQflyDnSzsDsfwkEePP2tCr2GfP+4zj2scMSTJTTYJKeI2dZo3o/eda+ST9BhUOLWMgCw9oQmJXnMK3ep3P60R6d7CYsbMKyd1T2x0H0Pv5aI1e9QO2cX7ynFIMCFQ+0ODSkyrGGz8NMno0Auy9UylRRaq16CBQmGvG/FjMOsAshM10+16H6QcqjOaQTtZwOgKZGnBq+xCbBvBtGBj8RLP+lvxGdY2A3ZDpPeSZG5UQR8i9xT0vO2s+J5Ev7qd/j/UffGj4dv25lT0DXk8vWNF2fI78v/7sQM9HI2d2QbPh/leq3KJeIxytU5D4c1rQMzt4LxhL2jk7HAo58NlHaNZIHRx1Qu3l1IGcwbJf7QzlO4R/FNlgz0fxgkV0rRzSyFvz79mQqIVirut42/P9YuIssz+ymG7+k9NKuIbceg0X0UqSpQcrzJzJf+1/Q4AzEScmo9ttZA2YXI0= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45db0559-a9f7-48a6-1899-08dd5a6dd227 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:09:48.3416 (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: H+O+ZxhpkkqRXPSnp+2A6PHIDsyfy3uDnuewDeRBqU6uHhR6mddCh4nOzXMHStU0S5Gq1I5iFzumazOIXZu8VwRMOtZ+0niU5KskyvZFIRK4FN6Zdpip4d7F9QmM9j9B X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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 948f1917b830..4ccf7c5ea58b 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 Mon Mar 3 16:07:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999123 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011003.outbound.protection.outlook.com [52.101.125.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 019CE215185; Mon, 3 Mar 2025 16:09:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018201; cv=fail; b=CbVnGwXzU7w0pJLaJJ5OtYhWoO9+OQ8smIPwnmglhK+GNra9aMu5RYqoUjcB2xu0wMdhQYbAGUKzjylsPRnNaE9WjeMeWaJYF+ur58AQhzl+368wSyZSWtTlVe6EBDgsLff50uoMyLAWNSizdd1CYTcd+H/VjWufM2hTPrAQpr4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018201; c=relaxed/simple; bh=LqfLMzDRg+QEn35zV+3oPZfAc+VImK8JMpyKyCgmZ6Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LE7EQoJuyYAAhVpjWfc18GOxHMy0L2llnKi4gSly/RWe6Z5mSRNlNde+bvAH3HwSCpXDcq6Byh4p4D9w9Kp2aQZXLgl2YbC7QkNX0EP/sxxdpOl86vymdb1WfcNtuiFp8bsmjhxps/gaamg959Tl0oTzAHNN+EkrrcG5dPz831o= 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=csJww6dj; arc=fail smtp.client-ip=52.101.125.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="csJww6dj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=chJaS1qBHeicrGUbueL3kYIl/JyLrEzxncCEHWYLVjOdnNVXxvB35tL8oO5kZUqq61jmlzECfMU3wwl2qHKBfgOtAAb9ORElfdFbXeajVRHb/3qxgNutwapleTlT/XHm3o+OLnE+x+bA+ZgTCWd0NLZFdV6Kp/z/RLS/WhnoqPP754hwVPF2acqlnHgQvstzedondFKpiSMtPq2IFPftcupIyxWlUEWGaSiUEmcCRH1TlwzVL0MyHGHadIHPnHYWYXA8uPG3L1yzfwzt2btiSuFNjrJQmErwgXwirHQ58pHTScXu6FjL03BQIXkkQCwVFnDl0eZJSM/RcdPWHh0Fpg== 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=bjun3rYJFbgHoj2Fxbo7XX+LDOGEbWMW0HgfswOEADg=; b=n4nP0B4a1v4lSfOoAJxzM/6zwmlAyfNxqdsY/aUORCC/h9MiFdSYKhm6Nusf9uM1Va7xAwovOIg/99WfR7GCa+Pz6xdyhhpXl+PMVIdxv41WYL8X0PjOotQfiR/aZ8dKXzmn3Y7MuWeIsOKa8tM3OVHqsM0ylYlYCu8Twwy5UNSstAmWwDG9U/mBDdTQWwtc+U5nxsVUY2V6dMCn8Ncn593aVVRbDTyoe0vK5DcvAZhjeMikXjIrTyLD6/5ew8DH8n1j7Tscgafh6Z6n1wvlsFdW3s1pRNZd9ElL9CSjIIZh0wsPysQrnGwVCNwXN+dkb71nvF0p7SsOPrbTJx2vYw== 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=bjun3rYJFbgHoj2Fxbo7XX+LDOGEbWMW0HgfswOEADg=; b=csJww6djm8xgc7+CmAITIK1DdRshJK21wBjp0ijMwzkYdZuTwWjGii7QXihlHUfaC8NJT8OycauP+HrBwIlOoN81CkDuMDQrvK4Q/057HFdTNKCd0KRGd6lqO6nie3TYT2FSGArD0b6oyDi7B7yxxFqMVAAse4ab+tRmhcBD+jA= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:09:56 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:09:56 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 06/17] media: rzg2l-cru: rzg2l-core: Use local variable for struct device in rzg2l_cru_probe() Date: Mon, 3 Mar 2025 17:07:46 +0100 Message-ID: <20250303160834.3493507-7-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 21334519-1c9c-49d6-4815-08dd5a6dd751 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: /KbBsQKonBxhM74nHk+aCobjRZM0RC3gnAOxYiafB7SNeCrY10uygoooDZliN2WbajLWVkp4Nz5iovGK8ZHfnrsGVZto/SpROhg0L6hU+QTGcExffiA/EAp2E8GlC3yvoFr4/1OkNLcfE/jT84Bm2F9aB1hvsUZJ3giZuPmPar2auCpTLhkw6nssoBGda4Bao21FtcELPwHTan/5RYmUucL3iXXrcdfRL+XXYZMW10aYnWUT0dG7fJbcT0Hp0ZlNxzlMe3lmmT+fYoJTmDX+KLoADA+VMaXvdWSW+VfHm1u33PmtrPUwwEE6w0m1ZzzrLXWEcWEh3oJa8G+1iDdURCHmW9gQdrLUSU8Q+G6fUKa3+R4fBqcufDp3YimLve39KRSM5YZV/nO4LZqf8VD1tdVX5sEmyRP0eNSrw/5JswezvfehoRKwOevfyyde3H3qpecxHypZ+4jvfN1tnFRQZ0Z9BsrhcVlWn7uaR8zzgaUOMv8bwC47UhoikrFjdWXsUeiU9WnJNgB4i06Pnr+wMwhKaovEGbKYyn+Pl0p65LhV+shTe4KeTh56bZGxg1WwenjeSA0B3q2bhUyxjaOFlAWAN+2t8yJwt7ctTb6ifjVBp/O00F03ngd19YeoMDW69d9DOIeOf68qYMDGkcGr8AX+Ii+VFom/rKVeaI+sJvcD7O7V0D11bKGUQReirkaRG3IB6IFT4mBzjG/Bq2XBCZ/M7y3sJjZUWVatQwyhWNxHCo9qcD9jxXlfk/0kEtjwxVMQBgiuv67fKXEpV7A8KpOGNUn9sNT/MKDFL0p9Vw+8PzRNh6+NGxYxLUYqkeX5XdXWML6M/focu39RG3aVMkkoQXyYMF8J2znZFvhk1MOh+I8w6qGZflqQjLAL1OSX25twz6mnVYs6J+Z+ZjALW8CFcOEBVp0nmJCiQ4Sc0OkkA+9FjrLAVvukaE2e9Go+2FlPseB40G3CydfxU89EL3/eLYqjmgD5T541P8bxEUTN15J67QhWApDzh5ldE9fBmbdOGvmV304Lv2+hu94KhY8L4oDRuxanLAN9tzuQX8Y5s8I2ngZTEfjiH5Kf6FKyyMu3Ie2jacxrNNBsispYkynjyMGe8zbSRfnSOqUVqY9+3cBPuZq34mphMo0SC5XEDBzbGydnnb5qkytI42CsoxPWnTFHF2JV6k6WAtN+XJMk6xfrtR+nms0ssCvWzf9n3Fpg0hgLIDrqZEy6uMJBEqSKkgeNYTcu6pYQQrCVEPPt05OSWkMOUADuCKrzMPNVoU5lNxIoYJy+tzTZk0lLYjO9iz21HkkMYfBNdRdQCjiP7JGAlLgUIgccUB9OYPjaUGkdDBbELzAcfCZWSpzw1uye+LbKk1gb+QyAF/Ekgc/w0zLetyPBevwj7608hVRejKgj+VbnQtqfPcQMybycEtwrq0IahbGriReUCJXSy/fK8HDNCM00FaNaK6Zd2PlP 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LMIMZ7JdAuCrj9YFAcX4hftHlhOTrnvv53C3H5yFhKz8v8vN04H700eQkGyEq32+y5tv3NVwf3m2F9mQPPjhgYqF6pzjrZB2WbVeTr6P6PhfBmyiPyUeyfw5d/VNFIpjk9TFu+WMVWpbdY+uvdBlF1s4XmLMPy9Nl5l2s8J2m/1SewIP+9nB3mH0U0G41xAS++UxccTqwSzw+3Gesg7iJahZCboRkbcOInww5io+qcILAiFjHMDPp0FVvvDXOuxAk0pWizuSt8j7okbwacAWL9iJw3Wi/nf1TVRpFClZMIEAGB/1ePAxNPLGgzr0udxRQ9zyfcOhbVNvkoSelekYbKFVSpF0H9trV/NqD60YtgtIh2TQvcZkAQKI1cU8zkOICQyQaH32YqiH/kH4H30CwQ3U6QvuSLnPf15IbvIAvdn3nz6T/+nzU7dRon5+PwoJNWnPoLKJkl54OhCTDUDskAa7+rSznPd5r1/1OcWapqcqgHTk9VF1pvha1zjNkIMM5ynqSHKweONIskvTLKWcCo+FBANF1qCUoNHUg9BqHYfvv6l3WijMQvAKIhniu4JH3ZIxC4R9LnD5eq/5Wj8gJVHh7pTK2WRopjMLSjLv2NnqDYDFpZx7bo8xDynM2NxVCSPgxeOd3phDC9hef1WTgxMmcyUYevitVL/9I5opCLKgvnbGxhUN+fSKhEJmC5M2O9sUMMdLyoB7Zc+sSq7io6Tr8TckqiCaMrvnl6sQjZgo/NnhO65q3TRqoeDfKQoA0lNxPhdawhUWb4SSUlJPH+yVSQWKadKfqjC1s3pFl0WoLVy3Mdoz1LhOxkO0sIMWIGifQOcZ0lC8dxw7Y4YFXDicKrN2ZjN1VOxT4zwwig+TOt2p/5i8zH191q+VjtVFxmpuOBbVfA5xLioxh84RR2Qd7h1TDemySncsO76pA46CLyNu1Gxq0EQPAS/K6mqD9ZKySRGYqvAv0YnhoONIYE4OpxcDUzSt5ln4TqadyBT/F+2aPazY0iwY0mat07QG901uxbC3VjPQjzRhdOQFrCsTy43zaBHdRTTt0Vp7/GiV2lWlVh3J/pVWrg9g1hd5Fumm4mawlIN/6/mrSdQ8aNg9dJ1TAWJp5g/rcV9cEfKvbBrpfpyU9HxwE8IxA8kOtk2imo4Z5CA6oa3yNrUBWkaH16eivc72At0Yp5z+wYWT+1uk/4erJ7GMv0K35diMqvQORWYUR74VyezUBCXTNqeouLkRzGlnJTVtiCp8Bu7YG+V4HK8KSyGPQiy4+LUhcV8xzppWUfboC2/lMaJ4rmJJOX1ZNo5fv++vq64fmZk8s8MeTmsrGuNH6E6ZJ1AKyGiEqvPRfQuwXILFH3TWJ2FcaRzRp6HSV2KycgXlk/dkUW3Bol1Bn/uqo7w3H4NVjKHJGps9lAAyZiLgtW8OjEjj1NMVhwaw1GTl4spl3tqsYg+pvrh9afRu/C9Fq2xIAl7N5ENOG8elPSF+VuVaNg8jf3GlvLd1/WAIs+zuAnqe5jjBJhC0NKKeH2z1VJip19AN9ZBkOrc4+c4nUz24DJR8+aOtBOtQA1qwjpY1yPAfhZHKe6Ybgpa5j+zw/VA22APdXtlFEX1bspj2CEgTZ6Q8morQ3wE1atvtxtTlAdA= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21334519-1c9c-49d6-4815-08dd5a6dd751 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:09:56.8037 (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: vJvffJ1shGsp0BLpG+p/pSSTCs5sI9IwEvOmUodxeCf0fqNqAYTN5sW9ZJk4OO4JPpIjdJbfvrt28e5xznauxW5IdQvTVgkP9sJbYzxhQgJ1wSJatLf5zbptLbqhmdTx X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 From: Lad Prabhakar Use a local variable for the struct device pointers. This increases code readability with shortened lines. Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed commit msg and commit body as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-core.c | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 89be584a4988..70fed0ce45ea 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -240,10 +240,11 @@ static int rzg2l_cru_media_init(struct rzg2l_cru_dev *cru) static int rzg2l_cru_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct rzg2l_cru_dev *cru; int irq, ret; - cru = devm_kzalloc(&pdev->dev, sizeof(*cru), GFP_KERNEL); + cru = devm_kzalloc(dev, sizeof(*cru), GFP_KERNEL); if (!cru) return -ENOMEM; @@ -251,32 +252,32 @@ static int rzg2l_cru_probe(struct platform_device *pdev) if (IS_ERR(cru->base)) return PTR_ERR(cru->base); - cru->presetn = devm_reset_control_get_shared(&pdev->dev, "presetn"); + cru->presetn = devm_reset_control_get_shared(dev, "presetn"); if (IS_ERR(cru->presetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->presetn), + return dev_err_probe(dev, PTR_ERR(cru->presetn), "Failed to get cpg presetn\n"); - cru->aresetn = devm_reset_control_get_exclusive(&pdev->dev, "aresetn"); + cru->aresetn = devm_reset_control_get_exclusive(dev, "aresetn"); if (IS_ERR(cru->aresetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->aresetn), + return dev_err_probe(dev, PTR_ERR(cru->aresetn), "Failed to get cpg aresetn\n"); - cru->vclk = devm_clk_get(&pdev->dev, "video"); + cru->vclk = devm_clk_get(dev, "video"); if (IS_ERR(cru->vclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->vclk), + return dev_err_probe(dev, PTR_ERR(cru->vclk), "Failed to get video clock\n"); - cru->dev = &pdev->dev; - cru->info = of_device_get_match_data(&pdev->dev); + cru->dev = dev; + cru->info = of_device_get_match_data(dev); irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; - ret = devm_request_irq(&pdev->dev, irq, rzg2l_cru_irq, 0, + ret = devm_request_irq(dev, irq, rzg2l_cru_irq, 0, KBUILD_MODNAME, cru); if (ret) - return dev_err_probe(&pdev->dev, ret, "failed to request irq\n"); + return dev_err_probe(dev, ret, "failed to request irq\n"); platform_set_drvdata(pdev, cru); @@ -285,8 +286,8 @@ static int rzg2l_cru_probe(struct platform_device *pdev) return ret; cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; - pm_suspend_ignore_children(&pdev->dev, true); - pm_runtime_enable(&pdev->dev); + pm_suspend_ignore_children(dev, true); + pm_runtime_enable(dev); ret = rzg2l_cru_media_init(cru); if (ret) @@ -296,7 +297,7 @@ static int rzg2l_cru_probe(struct platform_device *pdev) error_dma_unregister: rzg2l_cru_dma_unregister(cru); - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } From patchwork Mon Mar 3 16:07:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999124 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010050.outbound.protection.outlook.com [52.101.229.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 85968211261; Mon, 3 Mar 2025 16:10:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018208; cv=fail; b=dFiyPx1uCYmIInx9Rejri+vTu6eXi9/8h4gGIn4pffNu/Y9cNTRDSeTiJ9swc/1f2uZQGiX5mwb0+KBCIzbLVNGcwVD+un9ZVWSl8GgAMJd8HqolMZtjPNumVo00GxWEQ97DVtVKFg19ZhjRTOYXbL/HKR94pXrZUWuBhogCdE0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018208; c=relaxed/simple; bh=HsfbftITW5fd4UAh+3xyB67wD6ITcjCaKdzsXSBD5XY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=vFNTCMmXwlV0Aq64jeGeLpDMoSyEpv63mAj1eRL4tYKEHnG7rMM2IBA4FefNlleDuQfoRLl8OvzBFw5AE7Vr+znRLsQWgPRnh7CBj1okDlKnz2tixvlETTbUmq+D+ZrOX+A0Sf2C5N+hzQIzdA7EMcF+12POTgh9rUb3zSgZzVA= 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=o+oSIfHs; arc=fail smtp.client-ip=52.101.229.50 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="o+oSIfHs" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y6kO/1cKjNKOXv7zyf+1mYaHZ38xJno5P0jSz0HZAM55S8QB+6kQY7TDB8XqTlzD3Rz6xFfhyAbnm9EsKr0jSlD6AHYlmS8VBKLgOCZL0XoahMT0QxFCGPEzxVNOmy4dMaYH1vliGslg8FvQmCXLneipEzVVD1eELaY7LgXwijRBacxXOUgvHG4UFQqZxLgXHzjGzfmdSpCeRJKjmMtgWYPDgJZv/E7GapePWY1bJbK3pM0y7x1p5cwoq3XClzyK4Tye7j5KCNCkg5XsY5DarNMoTsY7UbHh08bzahoaW+CjpsfekexxBEzM2Gmp3dguKLw1SbIvg9xunWIi8YebuA== 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=pxD99Mokwvg6veNRRvfJy1z0QYpISgAvXyQloHsmRL4=; b=OyuYSxeqsUa38rGAi6ZRpE4hM1dq9JUPlrnnBQOmFoK3Syk3eKkuqfuQq91187dS7BL2+bv9Ie7Wkvm5AqTOz0n1mbyyZAPiKagz/fSxPkNx6hZjLFP2la+akCQ/wN2NdqlDSQ84jSzGGjmAS3HSuC/4cox95y6kmAA7pYq1vcyPgmbYZP2o5EMGqbCMaK/7B5ltPHbKx042f0GdWSvAh2tebDK7PgYUFtVgFSbMb6gaIpE3zb8JaJjN7/BHHJukDRQf1SLyT2w9dbXIbkVEPcMdUFiEUucrkf4qeOzORjv11KRKFcxrD28WJeWGZiMqccyU18tXyvEI0V0UWXqFcw== 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=pxD99Mokwvg6veNRRvfJy1z0QYpISgAvXyQloHsmRL4=; b=o+oSIfHstPrUKccTEt5hbNgfZUtPKKYTICTgYjWawMXcR4eTyvGo+5hWGvBhQceiE6QdFH783v6UNWSVLLvVkpOKnS5N0aVoqqqcGCAirCZAanHFvmevZ7VMmd6zxGy4EWAES1r1ZQxABUOlS6VvdAQsFwajIe+fhVcTJl7YARc= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:10:04 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:10:04 +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 v4 07/17] media: rzg2l-cru: rzg2l-core: Use devm_pm_runtime_enable() Date: Mon, 3 Mar 2025 17:07:47 +0100 Message-ID: <20250303160834.3493507-8-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 70f5a4eb-90aa-4d1d-f8ec-08dd5a6ddbd3 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: Qhqs9D9/77hSKq81Bs/FPn7HE6D6VbMRMiN9Vf4QICB87ZTyvYJGgfi28n/0kr/d2vHYBDmxVVTrxwN56+4Kb5lLvOlNnWqZzQMDKstuk6O7sIOo00hf049BF01Nml8hxP9vhBStFHldHevYFiLKu5Uj8nduzMJB8L0Ns50r7MTnksQOEyvwoJHE0Cf25bgAswgjJwer2dtTuYCdjHuCoBLqOFclPqJaLHNy+rV6xhAQWNloWssLrPJTUMHO+AlB3L6HWstFcgqOpTx9JKoOeKMcMWb2QfpUgx1yw1KsGt1tRw3ynXPvoXpmT57BKhS7qkCnrBKPWN2VhZ+j9veKbUjFXommKxNz1n29zCvSwTas8dfsgWHHBSoMgV7ROgE9cWfs7aD8zW+iqUe5YP4wIqUdraL1LlCRotAiZjXVIcm5K9WD5V/jzxMVvs4N3yNUp7BFAaWPdTFn1oaVwapxN9oiPVKfK1Cy2wH0oXPSE1BATwiFv/TXaJiN5c/BT8296Nm/Vvh+0FGN3HJ4blfZwLQ6cwpBaEVhyRsW/KLG3Mzz+Sz6x2kiMyBVyrGjEWn73bL6JXbP/+9pqjalw+NUAIpMlwWLJqhGTFaNsUaTkDYsFrVBr6rUqSf9X0/yyYv1lok9E44rbJu4WoNcpkhzR269PjmyJ28CviBOT6wfXvpvcZCROytDboFFgj6DPgoaBouYxCOaP66+OQ88V4fGLpce8PZqvM1Nh6Vlb1AHP9zpnHoFKIFV67G3W9/Iu8EELld6WAYGujIH1pKz8hCBA/yi1iP3kQKohOhsvm/o5rlTlTuvpQfMf5UmVZMxv57KpSkQzZsuh3yjG+0KfnBq/BOT5vbX0eETAygSWuYbLjX/ZIwJRcwDELgC8eyvtir1d/zHfV79xphlLguheZISWucz9RZp4VZZbiAnA6Xz2Y5b9DD7Lcvu7f01PG8KxoTCRuLzF6vBnAKaOy51U1Y8pG3K+NBjwqpjFVnOwKuwszoLp9+KPPHpC1qbgDmrNeehyTcatuv9IBEMdrTeK5g5DgidIrLiCgaWbEYKVby7m/77ASPEzVqtn6io9oR2TFWF/ayuVSfuRQtSeELErUxU6i0Kh7+wglQ+lMiTGUGB2kIvA3iBp1gcqKxLLj1f+wT+Pr0FczckmZQxpNkcSpS21tFzxUjjTuRjsKA5pKvaeQMiCBk7KkhroJWQgd3GMv9mTUj35EvKdW9dQAQTYpiZuUGFeuAofhpF1kYfAt3GOWHPZUKa+n8ptTHfjnEpqRWJQUm9TT8UVd6V2wywABsl2RzwzRPkFtArIMf6AN7KVEAKr9x+EDkS++PbfB88X8kWr2JJrxjZZ1PAe0eLnGz0g0pD2BujTen9YPtYm2bQ++8CUWvMuhS0TmqvgbD/CjuiaEPigamJm+nxDrdI4oR/NFwDABwiYEWIlH72p3HbR56riz5NejkiDdUqh7CpjMHb 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KRBRBxU3O9RSJDJC9tVMW+5OjX9cPO1UvUZIb7oyYs2A6iB75sHFhCzu+W+L26HCdZ50P7Hho77jivSAuB8DKlYKpb+ZAV/Oa03h7CbBrukoCUyUwe/VSxxJ2Vhgcjl6oFm5aXzq98IITFBudcK4u2RfZv/dC8o0y+iVSe0z56rmLZ9lipDu3XTnUIUnivGEb9hJelxdQsJXWBwgtaSS+mGTRNXMHR2o52aE11f/qcfM+sNSETS2aGO8sQUgBov1bpiCyDD7c1YZrz+vxWs5JxMSvNIoE4HYS9TBfVr6LiXFkWP5g+7mv/n5v6vqXufvWb9NDhVldW/HfvalXVkB/SLpwCAK/pjSzGa+GD1N87P4CcR0SGVP1/oFNjft4Q2Yw2M4E/DaqkrjCpDOZ79wXOqk23rMvZOXcVJHQkqe1QuJCNVIv5dQWV/XnRjUYzauY/S/ADwm8os/IP5ZZCJcnt/MuSxNpApNaO60WOw0z5WscZ7aq1T1EEgPdhB0przotzBnCgyaI0VAn4qf6cFYYv0MIIVulzRBOoRZYLXvC6HseSy2c9NH/YZufQS1UfpIHTX3YDyDIRonn8JYI6M/Ct3AYfOx3G9A46Qx/fsQqrYB+PYUOKNccjRQb3Gsawy4fJhsz/M4DDRcebU5TzCSrzfOuRhrS4T1Qz+zf1AUmbxcyH7LYfUq6RV8DhxJaOFVlVWGskuMwnZo28Dc+/27nKeo64IZoPDRnSB+0/gC35CQeQbchf6koNy1k39YhXEM4zUIqspP9KVCnuPQ7dL+7hopKYELyvZc1+iDdCvmvr3j3wUgzcBzz+S0TBJij6yIWcs8Ttha5MpkD3UUvYxZ52BRmeHAB7Vf1UEwVVXYjoajgn9/+jkdVzcWpAKE/dhIp+bhWE6UuRWQQatZ1P5goY1XjGvY6DBC63NmV77S5D4JxOes0x22A8v43Efo+XUYog6vfiJ84fv9cNKfQjYPQWd+4YTbi2A8Tyeev6y/YL6PqdDQu3rA8rLvmk1yxdz2BaLhXWBWLi6y1Q70yLAdAsBZwUog1dMtT3KJ+FOqoftEFMCDZDM7oT9grApzyNfUXRJIFj+bEmNL+1KNvFIKe1gEe+UVkSqTHoDb5q9SH7MjiqZtx+IvF5opkSqbDP0QIf7OaGdbudVg7drqmUqyWGG3fOfCX0ewUQetwiH5vL8Bbm2p7e8n3StelBD5U7wqwIJcgQtvPl37vCg96FAryqn26BfC2lpHAYnZFy7k58mMdkQ9CahZN+sh5D916wUnPg6NEGWwA3yLNFKfaEh3U9l5ac33AOKM/ibGp5UFMjdjjxrHRrbkpi2N+rl1oaFjH/hCesf+dDGt788M31cB3fy6WuIW4uqBCNAQmq0zPoKZgQ5NhnlGJcTxUCUYC7iCHM1p40n8sX6nYDLG5cXV3L6jn/bqZq3s3c4V0pKJ9BpVM7eiCD4oF7/A4/a/8zsn9ICXfyYzV/h8j1rA9CXnK2aVt9Svh1yFsgjXWGvo+BSp5gbTfKzzqPunpKZ+gX4ecEvhrqAYQQf6S/HKfIACV/cAXki2kpxafBmn/rL21VZy4tGTXN4IqiTczvnHRNd3CVo+dEVsBm35Cktuwq85DryLehltQzuhn/T8MRFLFbo= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70f5a4eb-90aa-4d1d-f8ec-08dd5a6ddbd3 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:10:04.5955 (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: YKZQ81JCw3rM0l5F7SqfCtxFv89LNXwlISeB1GwGvHIMe2HQydj000/5GqzVom/Cp1oHA/uGSZKgGH8nmkDkO/u+ItNXHFb2lfAgaThRZs+uw7pte5733SIMxpQDHJWm X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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 70fed0ce45ea..eed9d2bd0841 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 Mon Mar 3 16:07:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999125 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011013.outbound.protection.outlook.com [40.107.74.13]) (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 CD8F721B9DC; Mon, 3 Mar 2025 16:10:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018217; cv=fail; b=a4L+Q19fVBBDoWZKFJhBA7mT04hGNm/o7maGXEEQT9bq/sjCCHkXS2q+dS4Mdm6iSUjhN2l4PmQN3deTQ4TttJDDTzWCJZDVvz8CCtP952kV+yphm1Un7SBg5rz3Tf5B2KKzfHNC8Mob0J8pHOlX4pE5+9qK87jKu3bKJJqZX4o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018217; c=relaxed/simple; bh=Wxv2NR4SPtkJtjm2fNJJtWbbSLqgBpIGMVvzd44aQhg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hBsam0JMmf73EtwwxLVC1nKQ82yMhmuikv642VSosKDEgTcwtuzgk+W9duJk5Nb87FnohnUuRpUy4sYHDemDonVUb330R4vf1WnCeAt/GAkWJenvhd7sbwXtlGrotBZlEZr10lk+RQUzu71KP1/81GzptseqoY5zp9yZMFiAS+k= 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=XVcj9nqm; arc=fail smtp.client-ip=40.107.74.13 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="XVcj9nqm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fIzw5alJu82woKhAd7X8zSTFXeuM5AjTU5FwN1oixlORcaY1yzb+nncFovjwbbEtUIgD1XUK4YmPRgoi5UdmPO96seYOXPv2TezAeMzQmysFnhm9ycpOXvV6Zu5U4KM26pdytXAWRKeaEK5Ae5No5m9C2zMbVZqCJm7urbrGxvKTIB53IcR0MDmmDXoZlCaFTOcTRpvLrVLKE8499Ml5eUmE/HCtzkuccOp/xjhyPEHBX7oMkzIZQbr6PTl8a0F9XtzQYkevdDoqWpQuIwiXaPNYSWfzYuiAW2lY/JinM9tqWq2l2oj3LfikR0QPzZudZANVZ8pn/E/3QL09Ao3SEg== 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=wAL8gQrgsvYymQ2b+dNwJ33LYhY2L+OhBRxp3zEx8Qo=; b=LYzHr2pt/63QR3COww7tjpIJWpbIzjX7eqXqB1/nGEl4p2iW5QldwXIfeG18cn/4IUjxNEZfJKlkUVZq0m7tx+TDXK0GrtCHZVALIAjlOGdvZkhQsfdY+wd9INF8f13nRKDTaUKLVJOpx9yE8tyBgx6CJjbL3XSOERxs5MZ3xtvIQx8NE5cJIOfuAxAPnYpr5dLQMYm6dZsjGhU5Ed0smFRR63eOo9qo/mcPP02w48KBm5X3l3R8bpv7QKm9mfX5HHxWMSOspWK/X7d54HpCUEZoKCWPG4CGQYr1FXAAUsc7xsFoCF0qm84lOrugTXCFGCDR1ZtsIgomnqh9dfQ06g== 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=wAL8gQrgsvYymQ2b+dNwJ33LYhY2L+OhBRxp3zEx8Qo=; b=XVcj9nqm2+wHM/Y6sghVXHLTqxhz7BA3fsSgSrsvGPwBognA/fHy4JfnbPsCfVsyjwQSuCxl0Deg2pjyt8EgkxN3LbUFSxUOb/hB8WtKC7mY/SIy9+yVGb1waIAZ5Ntn7hHQLYgC8q0wF8bMqGcyEerx2GU3upFYHiT43Z95N2U= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:10:12 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:10:12 +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 v4 08/17] media: rzg2l-cru: csi2: Introduce SoC-specific D-PHY handling Date: Mon, 3 Mar 2025 17:07:48 +0100 Message-ID: <20250303160834.3493507-9-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 10f0bc7d-e6ed-47a4-4bfb-08dd5a6de0ca 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: q6WY98ALChxR5m4tOCog0zLHICA2WwgtyF7uQj2d7E+v5UV/3FOPngMojEJhHaZCCRaCEDDuQCNW5w7nh8CnYOJTrdAWfU8CcG7v+n90UmNV5HHEW/GWyIVvqP2lW6OqZ7qT5LT0wbe8CK4QFO85qsW/v71sgEuiZpHLLzNvLr+N3g6BTVK2VGofXg88OWHoFmPfidmn0lIy97uW+8fhKh7+EV/lDbG2JqYya1ZwRGGWNYIB3LUx4diSATu0oqbpN2pr1hVPQSNp7JFlkclgFAz1arcAAU1PpVQ0GszSYGB8+nwtiKrQtg5sP5jehZN4oFxKvxuBoZxtECTlhF2k+gigHtxeQR6kkZrJTnLdWxkDjoRMuburR43+nQXimeHoAr0dr278dS+nsu8bgK7LJbR4DPfgnv91GqZHB7dVYkN0xSb/PJqWzOB7HuYwxDjpDoF9/geoZAxvnk6U+qEadaFJ31ZrmaAj4TqTspcBK2jPIaIrD+di9z7NPsX0LHYtXX/n3JGdJMHUQm7H6x5WskBIYvyCgh5Qzom5LdE2B4tIVearR44Jr2XomvLjItazl/0M1Aua7f4KNjbO8Sq+iKi3T64MamzNb1WGg5hHnf5MHRqBr8YLON+nKUVnQjG5XopDa7Wgo7PkdFpD/+oYnJPiMlRBSrrhU0eUpZhSv3haEZeHA8jTr2en5HFC7KCvuNyCBWgNyVo+0VEn+2PM8Sa+cmlvCihlcSUVQmyln4lOioqJJNZqh6BQuvYO+/Wizlun6n/mJSR+UXmslJ8F/s9gQJ1eCPZtsRD5wLOXwQfHwRmvdrcguuyLjNH2uGUO+XZvfApyX8iz/p8OyXPKdczyArb/95nTW7TCIrz9dqgeswpRsYyX7LTL6FhmJp8ivw32WpWMeP2y1CpKGdLzkgjHsm2TmK3932ij8EOzM/kyxXBesxZPSEqvOSRR5Wvtqv2kIhClv4+3MTsEeZjowMlXiISYWM7U7h4ak1rxoCTymNR11yHWMZ/U0vU+CAnijWCAYomxc2ki200E90ouaX1NshNBbYe6QzbjrgiK6l2BsI1jPJQ3qqWaD7BP2NzVMr0IVtUW+qQ+kWXjoSAys1k7bedqGBDMC89gGZGviCBoF9E56Xk9uj0kE32KH5vE12+uM9yfNnRSvekVWslBFAWv8yPGSC/U8tCyD9o+x22ADjyTi8j4EJUIKFsyA3CY2TeERsjHSh0QgrtoYW+XMYE4AyD5fsOljhy+xbV/WhVewbmkKSsuCDSpnVFC/7Hjq//iSXSF/vIui5WM0w/9d7R/FNI7q5OwzasF+6NJYR7D36MOcZVAbNUdQ1iyUS1EcJ+d+z/EQuSrAqzFifTmCz0m0nF4v/wuEpx9Kb1trMjYFNUJUoYBgFST1ifa1+Bu0djKVg0q6k3dtc9xTpk2OIcezNW4tnATuWrZE70rCCtTlGhfyErFEuSnKx5oMmYE 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7M5+z6EOkuEoEC8oz0JJYbheDfYMaI9tSXHI7EGVJlrYNP4EFMB6WuDw07m5205yv2Flzvj6laQNBlKIQ00CXWTk0H/xM/d7+lAZRKQJcwSaEBONp+ZOS6yIvqIOqTTBYNqc0faP2RvNv4yHr8ZdF2fBC40a9GuF4WkiPuKKVmwURWtnf4lKAIOmvbyyk2NLdBLQnNPQ3jW+zpNvjqHWqdpuR+UPTJyiSTGPyuOyvgipBoQvgs7gq5V+9/qL/jFJ5PidDhMJTv939a4Bt9Qw66b5kjiFpzaYvkefwVjhlAgN5JiftvW3Z8UDrEoWBKk35xUvFaotimxJW5USuy3BTclnIkkRxDAk/P+fIm756ytLQ1nR+EnVkiEpjzOORWZKGtQ0yTGSyMrBipmHT5JL+6niWxe937H5MbTuhlh9R5Tn8X/6AlpJ9AV0BydV5K4ND15t+EHGTHvKNOU9S3/fGw5UEiypMosOEIkfWdsUK7SO0qVhtLl34GXqHFEOrB5mAvXwwvFBCHHSnbgex6drMk7DRWQIVPrfIbXC4cWILrrPDhamwqTyXixoTM+Zc1SgHz+twvZeetwbF3V1Ic4JN6MTedj761Y79jsAv71XS9Qv5qtK447OaZnVe3f/2IVKvbXH9Rwf0KEpaueadQQ0D/ZWS8yVcQyGfSmyjJn/5yH6E9rpUOBWO7MM96VU6mZxagYpDIJD7JMmuk15VaidltTqfNis5iVnwqEBvEcS7ICAGzf49JxKJJf6JIvQF6bdItqTwEIO0cO6uD7qlK0GBV/hsnLjQutZL9TkC2LQwcWDZQc9BumOz2ker9dT1oabR44PjeFCa00OVYoiK2PCQqT7MKUeG2ntGrgQ+IrPrrpocTASSr1PnTv8dfIzQhDhiuqNN0DfOugoISY1IK93UuZfQEISR/qEV4+saAwBEkZ59FYDEYPvBNitgfIyptLKYHQBMa87G0pcCRVccLcxB98p/9JBByNgqN7FfooJF4HLMdVf8yURadMiGFe/UGpGmavusRClg84+yHBpss56vgmeSGUkgFxhluD6GtvzenBmYCQmfOBBiaM5ZbhonLXQ9HAUGA0cfyQtMP/7NHDAaNc61JLy3Q2udQGdL4qU05wHUqnC+aq/086VzoR2FfUg9JiQ/zB2Zsykkv0R7FB5nHYlEmYNMHj3cKUpJRcTEOx8IrrgeetRfxTXqb8p7siy3UKcpiwPG2gtoqNRgrqHQz+iEePbkcrXFPTAfFRJgZiVn9uaJGAUt0nCnU8IipCzt3EW/3y99ILiUCC9R98oJftjGBizmmUBCbzPpdPSVVIZPr7/3Iw2mP6QDniBEX4PN47sjVdGHWabPtdLVB5A+Sfu/6VLKy9v3e7hKiJjPZOfwzt4KbjcKoUUsHZ+DQV2vsS5cTO/bEkcwA1xJ4x+io13+fXV+6+FBEHU+SveOJHAWoaYCDk2MdBxxGdhGvv/riqlDAauadVshNlUEmf+bUlWl/8jhs755AzULEXYWNfl8rlNgz9I+4cOkhgb0+M2q1KA0BiSMekskbpb749w6YoQwXTMOVDLONcOdAFENZZ6HxuULRN1xmSXaoS69XkPVZCiWpned7ct77k1ZGGHkNQeAJSdXaSscxzLVeXVKZg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10f0bc7d-e6ed-47a4-4bfb-08dd5a6de0ca X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:10:12.7497 (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: o1TgCtQkqB3IPV+CFScyW81DMgfTKUMf2M0iTIzUOR4JxdQCVLA37NICM4UvcniODRMhOsa4QdvV6ivDSNv6yxDpiftGSqnFUvr4HM6Ohi2YJ132zPhquF7aEoQXP0k0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 From: Lad Prabhakar In preparation for adding support for the RZ/V2H(P) SoC, where the D-PHY differs from the existing RZ/G2L implementation, introduce a new rzg2l_csi2_info structure. This structure provides function pointers for SoC-specific D-PHY enable and disable operations. Modify rzg2l_csi2_dphy_setting() to use these function pointers instead of calling rzg2l_csi2_dphy_enable() and rzg2l_csi2_dphy_disable() directly. Update the device match table to store the appropriate function pointers for each compatible SoC. This change prepares the driver for future extensions without affecting the current functionality for RZ/G2L. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Moved rzg2l_csi2_info below the definition of the rzg2l_csi2_dphy_enable() function as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 4ccf7c5ea58b..4aa5d58dde5b 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -107,6 +107,7 @@ struct rzg2l_csi2 { void __iomem *base; struct reset_control *presetn; struct reset_control *cmn_rstb; + const struct rzg2l_csi2_info *info; struct clk *sysclk; struct clk *vclk; unsigned long vclk_rate; @@ -123,6 +124,11 @@ struct rzg2l_csi2 { bool dphy_enabled; }; +struct rzg2l_csi2_info { + int (*dphy_enable)(struct rzg2l_csi2 *csi2); + int (*dphy_disable)(struct rzg2l_csi2 *csi2); +}; + struct rzg2l_csi2_timings { u32 t_init; u32 tclk_miss; @@ -355,14 +361,19 @@ static int rzg2l_csi2_dphy_enable(struct rzg2l_csi2 *csi2) return ret; } +static const struct rzg2l_csi2_info rzg2l_csi2_info = { + .dphy_enable = rzg2l_csi2_dphy_enable, + .dphy_disable = rzg2l_csi2_dphy_disable, +}; + static int rzg2l_csi2_dphy_setting(struct v4l2_subdev *sd, bool on) { struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); if (on) - return rzg2l_csi2_dphy_enable(csi2); + return csi2->info->dphy_enable(csi2); - return rzg2l_csi2_dphy_disable(csi2); + return csi2->info->dphy_disable(csi2); } static int rzg2l_csi2_mipi_link_enable(struct rzg2l_csi2 *csi2) @@ -772,6 +783,10 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (!csi2) return -ENOMEM; + csi2->info = of_device_get_match_data(dev); + if (!csi2->info) + return dev_err_probe(dev, -EINVAL, "Failed to get OF match data\n"); + csi2->base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(csi2->base)) return PTR_ERR(csi2->base); @@ -891,7 +906,10 @@ static const struct dev_pm_ops rzg2l_csi2_pm_ops = { }; static const struct of_device_id rzg2l_csi2_of_table[] = { - { .compatible = "renesas,rzg2l-csi2", }, + { + .compatible = "renesas,rzg2l-csi2", + .data = &rzg2l_csi2_info, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, rzg2l_csi2_of_table); From patchwork Mon Mar 3 16:07:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999126 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010044.outbound.protection.outlook.com [52.101.228.44]) (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 D4DFB21B9DC; Mon, 3 Mar 2025 16:10:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018224; cv=fail; b=EKiTHuDR6MFaA/OKzPNw3yw64yyCwbAGc+YZbGXAh7rcAu0GVa/uwsOX5AHSI7DXEDDcrM7ulId7OKkiBwoLgx7gVzl7pbmrYltI2TfKGQaVvWSLJn2dKAcz7KOOIg0ot1KoZKCNPgCB9j2vWLK++nI2fM+B3PnQobkBZyKpGi8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018224; c=relaxed/simple; bh=64UM6fkOuHAU7eNNKixZni2Q8U8k9E1uHxCnW7dmHTU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YixtE/QNQTxyi/e8mFlvKD1K8QyT1SesiuI+cXH4r1YceHziAN7Mk6Gp2VmrsHpB05UZ8Vq/ucY4rw6lJxJ/Z32VvmIu5cTK6V+OR5aC9TDgTlFXqVXvbWQVIJNS8zZF/LgC7e22i5L3G/k57QdaUczP1mwVzo/F2Ou14kUKH7g= 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=jSu9+whv; arc=fail smtp.client-ip=52.101.228.44 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="jSu9+whv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PwngJ6NnUM6bQZ61ztbB4jrBE/FRAJa1uO/JkZN9uTFnvwkmoHrjrKc+grDwE2gmjgVMCFUdK6P36lfo95VyM81MW0/6FgU8CILBQcuJYtpg8Lj1XTv3rCsjHyUGH195L2LBLsEp4BANgRlWp3fbjQioHUV0uZc05qD/tH5G69I/a68WgwreCd8KQm4QzS0W32aGYpTIZyOI/b6WVBdcxn774d8asYusy/i5d4McOtvrFjjHo1hPF0N41xynLPwSjYEpZXtU47p962Lkr3kR4QmvpXxcDKC0fvBuYI+cQFhG3e0xGdh6iWiv6HkHGcXf42nJcYDxuQAkOpn0KuprAQ== 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=fy7n4PKBO6cWSpSVqQV7RaACCwuH//pMEbcPtRekwd4=; b=ZCDC2SABhizwXqqJMdONoEdw4S2IMTQ+fWWHe7WUaMgLDXWyH/FHUi3I6UEJIzl52UqW1NOHd4Y/RGVfzvqKQgBx9MgoIqS9/nFxVhjpIkUFYjyxvPQrmFpyBWaVH+bPDfUnzDUQhkZt0ipIisYq3wtWua1VcvdtK8pN/SXoUxHkHtSWkp6Jii8UhIeXp82957HNqEFdkm23JJeGxeyZYy+m6j5bkhLD8p/bTnWv8Jj2ttzUXTJqoxkZ25b783PvQnJB7pH7fFooMIX810Bhr9hSO7BYlWhzZWwmK/AgCvur3rqxlqtz3O/U4caeYRyWg6fUH5AWu63RJYeyCOym5w== 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=fy7n4PKBO6cWSpSVqQV7RaACCwuH//pMEbcPtRekwd4=; b=jSu9+whvRi5kWBSQCQQ2si9nowRhTwhaMbUpNOlBlSE8whhU32CqLoWnAX36vZ6kr4LDqIDBFKD25rPNsnGWiub4VM76TSkdghFrcZMU8bPUnC59q+M5TxTj54mfUICIU6GAdqFpl79XhHtDH04FWyuoL8RtYEW5EL83hQEOjHg= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:10:20 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:10:20 +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?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 09/17] media: rzg2l-cru: csi2: Skip system clock for RZ/V2H(P) SoC Date: Mon, 3 Mar 2025 17:07:49 +0100 Message-ID: <20250303160834.3493507-10-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: a6dcf5cf-cfea-41dd-756d-08dd5a6de570 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: gEnygJOBaoKeiMYPL/QYo94aIBtptTWmk3jPsYEtT+oxmuCgYWTsDyyaf9cJgzk2zhhmUEu5HHx7jWHjg4TA5kDD7VIkIPThuPMb4BAC3iusnY38EiLpIITAxDmS25RAuMYRC9gt7fRFfr4Jo52tCzg58pT6KQyzgUrLcrtdskEUdXl55r29SSNUxOlcjryDHrZyCE6q5/OH9mR48dKTRiVxbigoInOPxo/aUVJbmnj3D/O9Ck/Il50S/ShYcDeFxDdvjZ5ouI1jXB11MRpB3H8a/FjDxaAAJqav8TCLHx5hmjkiMb4AAe3kPUzxPtnUPtXcx1LJoT8mz9cQtsiwfA9oqNfR4QZyOA2gNBibbNHZk8t4jl2dsM+QzlASZ4OqSo1R45uT+VOKX+F9VbZ90dDTl9MfhvopKIsl3mXjnaMozaNd3zNycp/Nx5Pi4xur7nZNp2DHhy4axdWffVch1xOaGLpZ6Y68IByQXZ0NaMdUe+SCxN+UzbThmSQpfDfG9IsLi7mYwWFSgEgTCj5Lnh9sHs49m09WlfS1FYpZ9S+9iYB/SXuLi9UDLijg9Q0y5Me8YlS4TrJptLScIjDdIHuwF/7ljl/pVIrKuhweHRuWg55CNOJlqbABd+XmH1Oq9OVgDf3QdzUkHRLh20KMXC7LLCYsUaUkVoMWlVVUhveH0J4oqD0+KGDU1mMCD1v5jRKcKeQRofiFdrgzDfm9DVLJSSLKIrmKu/EfFcc1iSQTMmjmKem6GSMN9bccEFDQgKJoXWt+jax+5FqgwQv+eygFVcsehWGhDRdKEfbqD9dAkgUyyebikOFtKACNwgK24to54K3371pUnOw0k8pYnLLyKozbX3sxTUzLNUgroHCUlEm90cmZ14yZLN5xupv3F84+KQpatNAc7dTUGOj4B/29wKBHYvjB6tXLvVs5nxEGeTTSIrW2dyA2UrdKJTlwERybW3Yld9oSf6KSqo+Nj919R4Z2ychMNHtj+xKXrCQhtkhkyIMGsfOFvCF5E6FZPKISuJcZj+FvvklhX27Imna6TVHUeie9p4ktuTOGbHTFL0xZx+w8ZCLu93i7A9iZnMclvJUZzs6Aoz+ws66UfWxqVvRmaHEzGTe7pu5ouVQpjuKhLoBHDnHRUj8LSDraxjmxpveYCNdOaRCg7qkmNhik+PGad7HButXyWlAYPnfZe4pdF29v+4EFt2SI7LSQbO8uXiVLA85V4mJk2uCy+t6yP2CWo99OmcacRp+8mdyzStKIwyt4qDjK+LHRxa1CC5liKif9jzLF6WnZsJqOtvn6eAU+8vpsmwjVLg+97i2gK/BLYemtRGvL18LSFnrQFJubLVkTs3eNcCe1Aa2cxFU643MBd8XLHyUt90v7phIi0NJOLQcFTsfabnA2vCFG0E+X/MNXtGlmWq+zB8AeK2a4+Duqb6FmkpT8RzuyK8k2MWIrV4OZPG42TZkXk9JY 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SyPTP534tuc6e/58aLbD27XhkAV4NT6B2FIKpa/vz0ggfUetIKZ/CBnHrbh16TDcnm1eqi2lVHzsQZQRf130x5gjirXUTHe/c6ouI7nsvC1HWQd+4vaJoZfS4cNKtGr6bg0VvPp1YriJ3FGFiN4+UDGLAeRTBYAyHUnvNR7ePSdHI6E26G9FaEBBksFVZGxFxRiJvD8KmUxJHUBL92E3oU671n80aQjhrFYiP9ptUgO9aWx5AA27LjIoWtUPXzon0zkFUd9T8idsOUpD1+TX/xSzbCV7c7RouLjjyPVUGmBKTSt/Udg4kIxcQLWewk5EJMLDDfDzHd3EuiglkY9wYxjv9faLvXNJVQVjyGWbmZtEpEhfEAZM/CkA67UqZyrE5S2IbqEMS8hCqTD1X588dk9HMxugDKCOHaiRBqo+g3gBQdakYaM6VrWv+yf/wMLm+MBli5drT9FPIhSTpMyNflf8GUIdaYEezfGvyELbROsx/18772PZJtpaNAqPvO8zAgQv7wO1iU0oLnnjedHKdM6TL28l6uohXl9SQJ0crLYGHnZQexdjA9SFXIueFgLZS3CcbkNckF4dQNXrSaLaOzcy/fJZSd1MeUyqgwbEZPI4cOe1jSWTvyhWxzo3QrqA6duOGKYPI14elrgtM7coSgrjAaRreBXuAI2s22DQwEuS6KEuAc60BseKp1Cc9FGxPBihdskr0pSL0SR9ajSCLYvr9NLoC3L1DU2FzN7PlHjPJs1RR2cpZm5Qw/Ok+YoLhAUVzPKvXav1PFIUEblgvTM7RjSHO6LnT9rWGslGO51KDF9aZySGMJ5vzJrFRgpzbg3JpXEcCCklqgv8WXTE+PC6xxbAIjGfIG+FHsKv8kRNgxGbeUL4siv0nGH0KMG3RnHiK5k0AEcujsHLOpN1iE4TbgMy9PjtVSrSrNm94hrzaSfRmRyXNFm8NkPCVFLWXOESoEBHWtqkmln3sRmPYm9sV//W5pTpzxp/a2HiV1vVBxbbvMUZhjv547WjOQQQRYLpbuRHcxBtE9de5mtQlixii2A7veyvwqWSHIsBPNz6jRJFytcX9sQCKKhlNJj/ldwbFcwpOo2PcL5bElCJscYbcU6+0kWxTAKvmbHZcv94n4hh3g/7GNZ+R0ewv+XabD8XSnPukaAMJhO2cLYt3Lgo3EMAIxTcQJ3er6EGVsgmA8YgvIcS7Kzs+OObKTXFTMAB+Dr4b9WaMS0tqe8GZZ0dvODBc03Sk0tDO/+oxjfwzAHrueGCzsGss3uAwHAqkVGx06C4HYOU9b5zLcOPWni2X2MVb1itMaLZdipeggaBbQFUUKO5ouNZJkAEVTOmq+Hs0odlpwONxJPCqIwipCMBL/6MvHYODRqj4pI/FvMryj0YvldISeArhwa7wtPVfSf52t8ISyJP3mZjxkbbJeOgSEp3EN1CwbZrg1os+mKKRRPvDjiDu70lWnwM227MDF19SLrXFBdUJdNDBC4YOO03K8vxA0B2N10d1f1DPCH/IenCxVojjIMaPwin2HAdJS6KLASLrL2tMtnB5FP4R2oRtBJfFewyaGQA9AZDRkM1d90/XIydChEekVTpjRbkPX1qpT3xSegN75XpxDj1XYIJgbyr9/TIbSXr5CfGdvE= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6dcf5cf-cfea-41dd-756d-08dd5a6de570 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:10:20.6955 (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: c3ybdttiMPZjuRMUSypjd0u+wwpj5XhsFKol9T2qj+8TilGAaE5OdhYcRlYjFsgehgN+raYOwOvXKzr7bGvj5lJS06NFpsXEI+p7oopW6C8DW3QoQIOV1S19Ylrt6TwA X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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. 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 .../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 4aa5d58dde5b..e4781105eadc 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 Mon Mar 3 16:07:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999127 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011022.outbound.protection.outlook.com [52.101.125.22]) (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 E43B021B9DC; Mon, 3 Mar 2025 16:10:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018233; cv=fail; b=iPUltu6va5/i+vjjqgO/oWK7ek+BBZLpzoWWBFSiBBrjXS8kaonziVqs6ZpwZ5bTLv+IRL2TtN0V21gNy+cqcc1XEI77HB9CKHBedvn4XJTPmigBU+DANuYM1N530t+pYi9skKNaLkgrQLly7xMmXzryopDqc5ACEkrcupLRLZo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018233; c=relaxed/simple; bh=s0LbwMd+yNOrDuaI69BkfWNoj6IZMmF36hfugARTaZw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=UmvN3md6eVbthR1IQpDEm+DgHbNA3LJ8iEvHblDqIGo1P0/XA/1HWAr6YJKa0UdtplBDTCHxGurePdRKJQuVZP44U7fn6HzEAtWZ1+PC3Z4yj40kIUjSTZtWi3dHdIEWDY94nubQ+rwRdlfFq1rBkdWnTzTekUQp/+agwIIC3gA= 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=P+Cp42GZ; arc=fail smtp.client-ip=52.101.125.22 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="P+Cp42GZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NzZg3Dp4yHVC+hEeK8ImtANeVvU49Q6q0vXUZDjcAi6Lc10cMhJxzMVgqwRNujffjm4gdilG2rxQrwa1UdasK10OcYellbICO2lIS7FM32DLLwQyw/hZGZK6ZD+FzqbCm7+O0vOjYyK7d0cdW5RRmP8i8a8KssxzRSaB7csVyvQgL5jcn/vR9ccthotHt0rzONpzzuQ2mlPxoBxM26E9GGD67zVw8DyWeZI7ywfYyTeAKn9gfEQ/MNjUYbndsmVR4CNQB3nGUTFVpWItaHzXRUMCKl5w0ANBtWjheeB5ldEj/8XlgrGPMasdCLqsk8qkOsg6JXND8D3761g+59LH2A== 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=hlfJa5bXaEV/JpIyOlesXVZosJEKUGMLaFI88fiQ4fw=; b=C8ShLEOyMMGtnFJnfymCHdrb1vsutjzP8ud+uRxzKC1JWkzRq0n2nDTsSrKqFCZKVt2/lvv7oOa7PqCa3tNrk48AMc+aP2LbMVzdcdwRvdmi/4NQIqM0OZlThhbKYmogsxB0Q8ahhXYnnoLlOHrMqSGMFItV/N0LT6+TCWcHUnf44V8jF/V4PskOaMg5UUeIFHKx9cavS7U+S4oJLzXxdFmOfjRnbieniIQMkKbxuOP03NvqbngBPlx4fsfvT9K2jXMo5m2GDVm3vIxhgg5gNZeDBHZqG5hCtjg6XTnNhp3n5wAkLcLDxTrgXj22bGMRowlHo65o/4HRl/5hefklCg== 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=hlfJa5bXaEV/JpIyOlesXVZosJEKUGMLaFI88fiQ4fw=; b=P+Cp42GZycdDMkNhSK2EIx1RiYxXvWnBiSB3wWz/IcZDTbUC+uKnh8+anB3xVyPQXCGh1P7UOsOixtE74pU2mgKDThV1N9LO4yEAT0ZUAiqehpif7y78sT1lW7ae6egjayQnoHjy1yVVhbBIVQPhkMo21mhMz0LM9BP1S0pyk0o= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:10:28 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:10:28 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 10/17] media: rzg2l-cru: csi2: Add support for RZ/V2H(P) SoC Date: Mon, 3 Mar 2025 17:07:50 +0100 Message-ID: <20250303160834.3493507-11-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f720633-ac83-4a8b-2650-08dd5a6dea42 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: fypGHEKH01EXsgGnpKmcd1FIscuOw5szyWYOl3o81VZGFf7GC9/EVDDnLDm9+zGNRGPi3vnOTUSdwm3oywr4SZdXC+kc1Vfh72y1dNntv7DQOeaSBoeBnxJsVzGaHUHFi2580/Kw+6WqZGlFTHAyC7XYeWCe3s56lzzyHhMtf4tqaHzpJUAnYnMd9ByW4ZNpZ1NVGDg1aQehhQ7FVjmljviNb5rRDAwwKfCfJDl9OrBfoM/tc+FerDzhphCLzbsW5yighQrYBqp4AsV7ioO1uN62KRq0ZYf4y5M6B7Fgm7nzIEAdCxWx4z8pmjhSZU2ym/pj1c1cSFlPnBV71M5SSMecYOUU0Uc0EdoO0ekGz3bARywUPQD7S86ERp3s166fd+gcagX/uTpFsVHNVTkOZkXkXR8Fni9Vq7wNtFGz3XUA2YCKJgcc5hH0KdKTSvXFRKLRFBxhg52/IrJCzHT1Jr5uEowGcQx1IB6XnP1llQpW+cIMytjaA1mVTr+jQOCJge9SRIUf1pyfjfzJYiRVeujUUMuA07JoaCM+o/ddiDtN9MqmQsOwHYAT+5lLLCbCF+6I2HnF6NqTonhvXsqueYyhsEW2O/dOQrjOttzmVDGdClXZH9dIeq+qFSbALoQKYqzHWs7GomArGLpsSgAzXSnk28NI8bTXQ/lQQR/GYlMdDVmgyfV12qb6gD3RRjw4A/JlDSQoLnavT6Klpkgxm/sETxFFQ8cFRgK6LPAecGtk+IkKJJcqWBgJqMqKx4o+iI8H6tYpJmZZAjvpQSYqXbyDiwvmQ2r9ajLr08tRwzx8dhX2T9tKLyuu7uhI6Krj1xe7ecH+68b6Iv8KeEjQVO826t6tNNXoBpViqYSGml2vQtITYuglVRpr7KBgmsegrewl4DJY+UnLI8+wd03uhz+TXNzUsl21R4oBwqU0995FI3enHYuSgIl90k4QZUW/oFD45MPlwTf0VhrG46cjn5i1KG87f/8mteQsBTktudDDnxvyOMd+5ogvcqIwjXmFVrL6ruXUEu3GU1q+ahDk5n+U5DY2HD9/MR1uWYt6fDX7BeNHT2WmmaSM/RmPqErdQeAhS8gkQk9+a/O/RAl2Cs5h03slF8Fx7/XKJLu7b/KDq5Imue7FnWazmuQdVIbydYaNzQQiNJcqUXe5p2atazdSQndKLyUR0HkPu5c1AP/e3lHcrXShsPIIdSwkaflcoBMRq/pttJMBr77VjQhHaqbFYX5aWgESK4KtTn0DhlOr1y8k5ds2n4PF2Y5mwA7QhUihfrvf1BuoNvrRCvn6eActnqqqpq4zTepUyvlDOUSshc8/LO8qi4mw0IjWKaeb4DYqD22Xl+JGYzGWBtSyMxIwnW9NgAEG9Ihfqf94GTw6un2uK6Ed09QyOZoCHiSpReQw6b61UdYEPK9DOtyQhbb4GCRIBD9O1MFTKmzHkKOQxDY1kZc/1ILehU73XSGF 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /Sh9ngVPtmmrO2ISJGyajHDcMMQXGRj0dl6uiQCTBwVL3X7JDupEouQaEq9sZfuuSClYCNnd0VLQ/MxqECHkiW7iV3M9xhTSGRMSQTBtIV1fBshW0K9U2ZVLNRFb33+WzMbrlW73fadFE8n2oH9lBOOdjQzQoC8paPIeG41aYkfopFFXBgdK96pJmS+5/PCyQwAJN8Tm7WRLkxKniNsd1y6XlhB3Qb9dqF+pUbrehLoQ2jqw9IQqghqBiTqpol6tgiV2fft5B6q6a8HGQ7HVKrUUi4gUwn7TOmg9Ki6EaEjYnBlhk2YEWVTtjJgxEZjGiNtn7dvI/nAFr7Df7i36LEoAnn+4u+vPilUhV+l8Mxaslnnvx6m028ow+kRPiMXF1jH1JKl7AtGZwA33cltd4uNbq3ZLtj2ijaMTAvBdt2JQVZDZdJXv6jVZXtSJlownv9k75xGdMzFdc3gKahPMMLFgxmEHWvE9uDlk4F+v22GNnWmAN8iwnJS/rt2JeVprRbeSureACisVlH6YgfUjWvwwlF4iM6ZQB5cf5RoNO9PmOD4suK27icSBDTDqkp5qAyuuS+bOgDmDlnoCVbYbxqCLpjSAzMTFEhrdRYPr3V24wCuysXZPJYPRBwun+CxHsTWHf5GI6yiHAsR6rYfXUmB21i/FhROEkFtcZvQ0bVO+ZdEPSKXJagG4r4M83/G+2KLxlXOC60U4fc6zl0QNfJOWwVBJv4llZ1CYE2WSU6C4pKMXulg1vEGGxPrExykZZVw5JJK4B1Nyhkv8b6IsS0OHrHiWnds76PoiMrO2Bh2F8mJQsqRbPW3eARrlJcazk+i0o9ThcBOR64SYkK8XIyQ2Sc17grO1yFUBXOhICeUcbJ0BJ5DnCqAVpcrUbfD2QSbNrocZLcMmYJ7rJ2ju5OCS4ZfyZntN6V2OWZjkJXy5Z88JFsQDV07YCDfv17CNh+UJbuOJ/I9WUMBQJDHoMl0ppT1sfwwKTsIGTOtHGIAL2/6p6aS04yW5TiLdfKjh3MoJVUCsLOSLOCnG/e1dFwRfQNZhg+sFKdexKkqFiy3fkwjje0FMBRicoiPAp4xah4Bz1HEwMEL5WsKnlCpMvE95riz6OcCFfbzsiTYbDtL5Funp5ck63oIrYprU9ZZDhyD+hRGNzpV43Eesl9t4MEvGRKZ8ks4Hbsm9EDViYqXV9yGbllkhIst3r8FqgXDP5g7IA3Vkeh+vtPVL7Zt3nl6t2F1wMyghfwyo3NwY45vBuHLc3LYNFmKBeW4syC9wFf9xvzOgaD7E4NUMq5R6Fpp+M558UBTXWr+OK+iqen/WlygBYZb2nDvqEp/LbYOAPe88Ab6eDad9Epft8SyCuY+RSvL1Mhtam56RslQGw+jBaxrYbRWrNS11w/huCZ1qvt1L11CBMiS31D+pU503ByeEhnVZ2V/QYwv4PncGvFtlfS3U61cq/piXi7ekjIoizzLuYZyoNzHPorlru1DiHY9Rz9+91VJUg7Sp9wJXozLT6Lte12toBN1OYfbQNmw0+vrKcT2En6rbO3em/qbJANYobkkzklgLKoCJPyeq63vjEQT/Wjv/sA3frFhhDhkkSlOVpsgofCNsttU/ptkgjcIcOx7xBh8bFQMwubrjGCw= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f720633-ac83-4a8b-2650-08dd5a6dea42 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:10:28.8079 (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: p0cv1LXaaVY+IM3cg37/m9EMbtRLw8GAyPoPTSzUULb2k7qCOXRQI2BodApuhf31D8n3Eof87enFxIyk4X9hJyzODdqCkoMHExQRYhWmgXr3cj1QUUwFT7ug/yuESn1b X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 From: Lad Prabhakar The D-PHY on the RZ/V2H(P) SoC is different from the D-PHY on the RZ/G2L SoC. To handle this difference, function pointers for D-PHY enable/disable have been added, and the `struct rzg2l_csi2_info` pointer is passed as OF data. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Moved CRUm_SWAPCTL write of rzv2h_csi2_dphy_enable function under the error check as suggested by LPinchart. - Moved rzv2h_csi2_info after rzv2h_csi2_dphy_enable() as suggested by LPinchart - Collected tag. .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index e4781105eadc..9243306e2aa9 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -85,6 +85,15 @@ CSIDPHYSKW0_UTIL_DL2_SKW_ADJ(1) | \ CSIDPHYSKW0_UTIL_DL3_SKW_ADJ(1)) +/* DPHY registers on RZ/V2H(P) SoC */ +#define CRUm_S_TIMCTL 0x41c +#define CRUm_S_TIMCTL_S_HSSETTLECTL(x) ((x) << 8) + +#define CRUm_S_DPHYCTL_MSB 0x434 +#define CRUm_S_DPHYCTL_MSB_DESKEW BIT(1) + +#define CRUm_SWAPCTL 0x438 + #define VSRSTS_RETRIES 20 #define RZG2L_CSI2_MIN_WIDTH 320 @@ -140,6 +149,30 @@ struct rzg2l_csi2_timings { u32 max_hsfreq; }; +struct rzv2h_csi2_s_hssettlectl { + unsigned int hsfreq; + u16 s_hssettlectl; +}; + +static const struct rzv2h_csi2_s_hssettlectl rzv2h_s_hssettlectl[] = { + { 90, 1 }, { 130, 2 }, { 180, 3 }, + { 220, 4 }, { 270, 5 }, { 310, 6 }, + { 360, 7 }, { 400, 8 }, { 450, 9 }, + { 490, 10 }, { 540, 11 }, { 580, 12 }, + { 630, 13 }, { 670, 14 }, { 720, 15 }, + { 760, 16 }, { 810, 17 }, { 850, 18 }, + { 900, 19 }, { 940, 20 }, { 990, 21 }, + { 1030, 22 }, { 1080, 23 }, { 1120, 24 }, + { 1170, 25 }, { 1220, 26 }, { 1260, 27 }, + { 1310, 28 }, { 1350, 29 }, { 1400, 30 }, + { 1440, 31 }, { 1490, 32 }, { 1530, 33 }, + { 1580, 34 }, { 1620, 35 }, { 1670, 36 }, + { 1710, 37 }, { 1760, 38 }, { 1800, 39 }, + { 1850, 40 }, { 1890, 41 }, { 1940, 42 }, + { 1980, 43 }, { 2030, 44 }, { 2070, 45 }, + { 2100, 46 }, +}; + static const struct rzg2l_csi2_timings rzg2l_csi2_global_timings[] = { { .max_hsfreq = 80, @@ -434,6 +467,64 @@ static int rzg2l_csi2_mipi_link_disable(struct rzg2l_csi2 *csi2) return 0; } +static int rzv2h_csi2_dphy_disable(struct rzg2l_csi2 *csi2) +{ + int ret; + + /* Reset the CRU (D-PHY) */ + ret = reset_control_assert(csi2->cmn_rstb); + if (ret) + return ret; + + csi2->dphy_enabled = false; + + return 0; +} + +static int rzv2h_csi2_dphy_enable(struct rzg2l_csi2 *csi2) +{ + unsigned int i; + u16 hssettle; + int mbps; + + mbps = rzg2l_csi2_calc_mbps(csi2); + if (mbps < 0) + return mbps; + + csi2->hsfreq = mbps; + + for (i = 0; i < ARRAY_SIZE(rzv2h_s_hssettlectl); i++) { + if (csi2->hsfreq <= rzv2h_s_hssettlectl[i].hsfreq) + break; + } + + if (i == ARRAY_SIZE(rzv2h_s_hssettlectl)) + return -EINVAL; + + rzg2l_csi2_write(csi2, CRUm_SWAPCTL, 0); + + hssettle = rzv2h_s_hssettlectl[i].s_hssettlectl; + rzg2l_csi2_write(csi2, CRUm_S_TIMCTL, + CRUm_S_TIMCTL_S_HSSETTLECTL(hssettle)); + + if (csi2->hsfreq > 1500) + rzg2l_csi2_set(csi2, CRUm_S_DPHYCTL_MSB, + CRUm_S_DPHYCTL_MSB_DESKEW); + else + rzg2l_csi2_clr(csi2, CRUm_S_DPHYCTL_MSB, + CRUm_S_DPHYCTL_MSB_DESKEW); + + csi2->dphy_enabled = true; + + return 0; +} + +static const struct rzg2l_csi2_info rzv2h_csi2_info = { + .dphy_enable = rzv2h_csi2_dphy_enable, + .dphy_disable = rzv2h_csi2_dphy_disable, + .has_system_clk = false, +}; + static int rzg2l_csi2_mipi_link_setting(struct v4l2_subdev *sd, bool on) { struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); @@ -910,6 +1001,10 @@ static const struct dev_pm_ops rzg2l_csi2_pm_ops = { }; static const struct of_device_id rzg2l_csi2_of_table[] = { + { + .compatible = "renesas,r9a09g057-csi2", + .data = &rzv2h_csi2_info, + }, { .compatible = "renesas,rzg2l-csi2", .data = &rzg2l_csi2_info, From patchwork Mon Mar 3 16:07:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999144 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010044.outbound.protection.outlook.com [52.101.228.44]) (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 632BB21B9DC; Mon, 3 Mar 2025 16:10:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018245; cv=fail; b=c7lcFi0+gnNf5Rf080ZnSuUbUbc6YoKRqBbLVHYbq+EVo1Ntk36F01N2qqz8DkRXoW5MBsYT5iK0/br3ly+t0slZJs1vgN0XG1fNupdQs7MmRV6r+vYd2DG4enGc8IbG05Sp1hvrW1+ZbTw+jXZmrqvIIPFpKrW4sG+DfIOwCyA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018245; c=relaxed/simple; bh=RF13DkM6Q9CQ/7QlEkmWIR4ZREIFuwHvU3wNJOpyi+Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=DayTES741eNMqDN7D+fouRkYWg8eMmhB2+c1kh1xI+bc3diUJMAaPejCb+RRHlgRqvzK1MTV3nLAUbph12kuuMptozcuIZZD14bGTsDd7SoAYzdf7tf7DqS8/EFzwDuiB+fXpOPgD9j82vHVoorI+ZqGK/HvLWGXpN+IqtBA2iE= 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=Kx8MhguT; arc=fail smtp.client-ip=52.101.228.44 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="Kx8MhguT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UHQuKoiNUuSTkJsRIYSDnBkNGJLCafWrDHMsiRpHNMl7agwns2Fgqa6x66NPQMF1dE56mEbgLJj92VTe+XnEJ7N/jZO6DWB5BMetjmrU7XUPs+iDLXA63zNfJRlBXFdS/lz8QoKUzid7F1AjwqXzWwzkCkxM7gZG8/AOI3YT/FyZAljErdfB+88+4YWF5SCwvF9LGHrqehKUHtUS5LjriA69Nc8S2/a6BpUvxvxSJLuxPXWJV7tgwl46nwaZCaWJ4ocaJ/tjqypalqmSiSePS8x/lQ+6Cn8wbvCCMEA4oCMS1g9G4Rjd/Wo08+LyPGV05a0xMMXFCRIDD/HE5rZfzQ== 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=XLKpxNsBF5xTXAIuDGy5THwATi5YWhLTwHjytEbsHYE=; b=T/BPuv6wVpkJSSzb1VqJXd3Qp4XNJCmtF+p2QaeDs5PtE6DvkQpuALNq+wvOQl2V9BLbQ4x1iyoolG475w5jOgRmBfTIPa+qR9DPAEXVfGWq17yXo6Lddh2is7h/rEroqTKOkanf8SacvzgHnC5FlwNKX+ZqxaWE7/eh2Qu/AZVU7vhtU6bWq3r2ECXVWWtVRaQX0WrXiX8DzgulI+3y0roAIjfCW0NWz3lB8N2D5ZLCIUOBpqmm7Er0mbG+IV0fr7MNq8YUrQkoUOUxK0ga/THEM9+sNC/292pRMpJOOqbS+sLCC+sqknsHv9XqSA+RLSULnU4MXw4rpu4jbUt4hA== 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=XLKpxNsBF5xTXAIuDGy5THwATi5YWhLTwHjytEbsHYE=; b=Kx8MhguTfkbvakokSRu8LcBTjSaSNzlz4oCAq+5yC3g0fr96LmETuiTNh9pZOQcSROPL+g3OOtWyVjkapE5hbEKD+34BoB3yWkzZDBxXDbWNBqsYpKnL5hZR/tfWr3Bgc4UHxvFNswWSWDJyldDZqg9wCRl+zAMDVQzLY1vpAHw= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:10:41 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:10:41 +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?= , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 11/17] media: rzg2l-cru: Add register mapping support Date: Mon, 3 Mar 2025 17:07:51 +0100 Message-ID: <20250303160834.3493507-12-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f1caa50-72a5-4652-134d-08dd5a6df1cb 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: TC2guJC4eXdbYL+VE5x6RYv3WAP+9kQhNelDDjgjRp50PQKXIZRtSNuzJrryqO9Yji5OSfVkscKi+XASgehDkHVmy8yR+DBCGYdDcH/q1H6HhCl9OgFtxABfVHCLmvkbgYHMVy0iY0xPo7G9JQ23zcU8VYQGdLs8M5lldka/J4SCx29rBlAHLutF6Mn8XXsyusseyZeIhrosZQIisDyDriBo2w4nujmtg0LAAyc0PnaJAbJ3rJh0QqJkam54TyyhvUoyOB/9eqbzXHnGFePCJEJsqhi85e3ykXpU+VSyaGokYURe2NvBrd6zTo5UiEg5vthof2jVAvl9UgfsbcyjtN21pdgGgDLYWQO/Hajz6aAscpPeKVh1jr1c382q3g5YJCiaFYl+RUJH8yJcZQVQqUu9Xig7B6/qIMVbl+oPYMOaRSS0QtYixH7IupeTfmD+p1cMXWaQLDnQlIGONrFQHiPaYQ4T3EUAp2ZQ1qe9c/DgwHvF6ote9Zv+rbgne6VslRCSIlGkB7JhZk0qNp8E4Ost0KtPXmdx6tFaX5y69VWb02LZxvEzT+nTpCVZ+UhTGPHV9NoJQBdgMAaJYn7iIwBsjdjB+3YVaQxji1SNbZ855Pifw/KQfOcRSYHlO9g3r/EAxE7xd2pI9W8B6q4qpBvKXrHJHtsvVg6/TGmmHTj/sjewpPGTF79vDSg+ijonrrEhLdnXgg9icHMx+6eeB9TY6GAERcW/BAzns9A6V7CXvssrA/8zy21ty10qkpHeuT7jtIse60yze8dgo1+KWNEdrGsrxIuuZeL3RhG4+UD1vCokx3Eb2iVoo9unF4SbmFi/48zxMY1qoFk/25qmWXZRN9735O+hphXDqHjKBYRSKvuAlOHTWqbq7//3xFUPqZX+6P+yOhxYO+WVdKSXlqmJ4PSBROnTqdOqFVk7JOKsjNNajCg4L0+1tjgE97cZ0QaSpNTN/lsmJoVwrImhzHomjcBNtlgVd/wb+NK1jKfYn5WoBa05C/CYfkjN+C5fQhkSWo4e9RgDEYP9V4EAoemKZZPNHo6G/w0JjyiJtrh8OTBkV4VZ3Kg8m9RRaI2XX8XyFAXgKkam3D3f+CNvgFBy810ZZqj676FW8CfL15DYXJve72DZWmnFjHWAf6SCxzIymvR+JgQTHnxVJWhMIuvXt/+8gg1V0TvbxRQQ1VSbOwEbq6FmMNH7jPzaA2bo8to23a7Vnb/BFvHhNPqMXm9QTcjx5jCX3hZknHwftru2TEuvLI0dRXFpT9wjyQH/zCe2/CIfz3/UXHDAt0csSzrY/+ldQiFrUjL3sKPyioghwAWWP2ArLkv9PZ0/P/ogxi/qkjMSed5Vmgbuw5fIeC5iOFMRlBTJCfYi4/91Uwd2hAJ+FkXE+/PaSrvRtHlsSkIOrwf/8ssVzAQxlosTtdKAYyWxW0reWb7teVsxW8RYqwIaFrLEf7bNUW6/n7rF 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2HSjXqxzBjkXBxUcPGXyqMgMgWplkf2fNt754uyX0pfvGgbhcueTQfHU8Dt0vS6IZpsPvcHLaMjxi6Rg1fyi2xufGfl3g1w8xADcFATqjYlr9mxzfrdKyhDXswStb6DuEKKYlgMr2SGxbBgYTRCBe/JCHfULFpj9jYaGsaDIZJHZbPw3FwJT92NTMUgiLgHN3hIUT0AK/GPW+JWipnPF1y2Kw8qaLTEP/EHiUZRNEkGaGopEAymBQvJHlo8YtiLOCb/bDCELtoZWNJh51w6gZChEpfz9cuMVUNfgEUmCfIjuMhKfVb0JXKIidOTzWz1bliaf+aQiUlvr3AtzCUQmkJQVD0GsClnp+vltHKNGYnetehxZqeZKBRrgXCWxXF681Tl0YWUqglodviYb1Aaeai8ALY9ujZuXOQUSrU8lDnZaQKqWQnl64TA9QtwdVqbYA3DR8xtrEvXoOGK0KBgph4/tH2D0dMo9JdKK85QOv45EEhi6jLY6aQdXhs6AM6pLq72obLjMnJa0UaI/SFPGbVB4RV2+UZii4qzIkZ64J3fMapl40MFOBGo9DxlLBkHGSU9heA9xfCrCJ4xspkmXcjjUEQlO0Oni9kwGoORhkU25Vsx3Nfdz9UiIU/IihSPslpQFTJTl6SNsBmR9g35A2o/4HCEvL30u79DUVYvc5cxsHs5QT/mO9scgkIqCO5ZMW5Kuo5DNjLc9l0UPClWCRhQXz+zodxHnVVmkqwMJqXjDozIrG2dkXR/r2VYbO908cY5n3dgraoSGuaxf5E6NYWK9cPrMNN3Je/STghOGll8bMRu4WcjAJtyNjwROdwK0pYdONzmGBvS64TWTDFwlCh1+MHuAvv+I3SxT4DFQSy+TpHgrbM58vB+mNdfZDTteQZiU4XZXI465qL7INQF3sZ6jZKQ0Pa/gBfFiPx8RP5xVGFesX4bbLcrlBDAvUYQfVShNygG8h9Z+HYTQ53gZxXh+3XG1QgZnk6Q7Z4Hjfez8rDtiBIJ9u09D5exXR6S9O5jqIJN6ISsGTroczXx38FqZzIxQ8TgCa5C1hqlSUFqmNyx23dREQiSOGoxIzeJAyc2zM72zzi1F8XFi9f1HhuwapPNfXDV5bWq9KOdjHGmY2Vw7i8JUjs1jIUrgXCFw25sVEkul/e+DZQKN3IMfVkFbzpt2ET6WVaTcNsdXkCfhUvvpQY3opFFPsdHtfiNfPaTfieTtCtNkcYsL/F5ZqKWahdEKLsolkObzDJ9YKNzIC8bEOXAahMdDbeO+JcgefZe6N+xkkTqUqN6Sm2LX7ODksoH3RQAWnK+k7oWIGe2p3nitWxKGHiMPFFXqNgBu7BaO/dXukPqY/Z+d5z0Wy6MVbN/Ds1aJaP7fq+Qtt4Mz9De0IUC4g0hFdo/pfqNw6xAtnwc+8u+1RPjYqREMljRanb56Yc9bcaAGuhmFsFkqWOyarlqGZa/aNCK2oUMMQpYP8L5PsrEDKuLsyP0PuhI7Y/NWGaUnsog+eOPNTKOCEs1+kUMTST9Ifa/ORnb9fu3E2QmxEIknLMUGA1/I41bgAgVEQGb0gQoKNYZhBdDj04LnmD6mI+W27G4ns0nnb39ld9hEAcgedCigFRlJzoj5DxXMkYolYcvugn8yQA0= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f1caa50-72a5-4652-134d-08dd5a6df1cb X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:10:41.2103 (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: RJ71aruaz9tRpyANQwrda/GSE7QM0QW9N8z2VYS15lN4kN3CIUd+yxRZVG+er9Z6u/EdnnYKEhYpY3oKSYJi+FEDdgTHKnPLNTpUThPpfchraah2wJHNGjsrgmaIItiC X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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 .../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 eed9d2bd0841..abc2a979833a 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 1c9f22118a5d..86c320286246 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 8b898ce05b84..00c3f7458e20 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 cd69c8a686d3..792f0df51a4b 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 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 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 Mon Mar 3 16:07:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999145 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011016.outbound.protection.outlook.com [52.101.125.16]) (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 2F47B215789; Mon, 3 Mar 2025 16:10:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018256; cv=fail; b=mGucnyqFrqGCpKoPBcrjSNmXMypgbNwb2KlwnTuRYQ4NHHuIXchfD0o020liIfFoDIYRBE8pMDHRwJovw8f1dtt67nWQaePf/6rvbTn6UBAUOWh/r02UIkew5sbjgUvsDE+IjSvPS8pLnV5YltNJ4lt/u+YFrrRxXPxp50xiLzc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018256; c=relaxed/simple; bh=R7e8sBeHKiF4O4mbOmtYo6FhJ/lbF58edsaRTia8At4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZPt/rYL83l2EQreNUN0+EtfH8KvpEle2Pmcgt4GEO52H8ZLD6wcrUqPV3JEWmKbAOvpo82sCn/Be/dfyVw58I88p+w1BTagdN+Wr8kVCKXLYp/B8oL4jY/mH/JpRZ6bvm7DXG4R+UbZ/e6f0oZr5SqNyqN/Lr2rjksLpB0yz4oQ= 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=SDjYmIRF; arc=fail smtp.client-ip=52.101.125.16 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="SDjYmIRF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q2kSS3iEBuTv9UEVxsW9TIsW0PAMW/X3Z0NZDv4BkYbAWWsdhcj44ERxIWZkePDE9UeLl5gIVnzKH8EtAXtip6CCAJFZbi2rFl0UqrqKEUfVDR1kcY8sJ/QjuCLQ/6NA2ODFcTFQQPajwEwzoEp8eOziNfipHvjK2e+bbtcsZQfLnCWKgTUFIwDSS0cJcyvI+W7jY3fM/5VuH6Nk35pScGzQcAOe5eH4KmCRfLAOdRiASJKDbg1MQYR+ddA6qiJxahqfrQG3nBj6L52eKXXb6hwsv50Loz1eYq24VyMJuq+9GGwiG7T5et9hfzL3tY43664bmskx1H+EvSKWCPgRNg== 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=15/v3wlFz+7cQaYOHIKZDPeGhO6EtfNUagjuSLzJYj4=; b=paVL3P8uAtFppAKw9UJHt1DWiGfCpnFmJK4qmVMsOgXiLY0oaqnZgO5t+TsgX2FKe3wE9hxD05qDHl19Vg6ymE36ROW5Sl8x/SvajcyuTpaNnipJXasm4930qV6UTyyL1Ak+xZuDcBvnPE5DtChjKXwK2fRlsBxfsokNtq21RaGLqInPfeI/NWoQb2z+boC3VakUhhaminIBZ5il1A+2w3ldg3zTD+wpoK87siZ0rOpkSxQpPnRnbWmFYxBdqTSiuw2lmHw4kaIlZmBFRHs+LPvoOpVkDCFP3jTRb7mvhRRp8oegCr7hts5WisiE7n5PeVi2kHnOlgBwmBne8GT8Jw== 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=15/v3wlFz+7cQaYOHIKZDPeGhO6EtfNUagjuSLzJYj4=; b=SDjYmIRF62u2JHBQFFKxPpS0RTOkMzSBo9n4zwADkReURcFQj/BTml8nGfz39Q7ec0FaCIzsIVyt0CvGftypUlCK/6kbAxxASodYYkKjJxGdJvTOC2FcqR3z1c+6oUSqEsci51GoAHddap1OeUq+wFofDRek7WWycsHb4gEipbA= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:10:51 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:10:51 +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 v4 12/17] media: rzg2l-cru: Pass resolution limits via OF data Date: Mon, 3 Mar 2025 17:07:52 +0100 Message-ID: <20250303160834.3493507-13-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 044886d8-51b0-4ec1-91ed-08dd5a6df810 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: Ytz5i+hnZh/0lkUvmoL4nnc7/n21cQPdcynHvZ3ThYVs8uJL1x+QZdy4YioJCX1U1iomLgphSoeW8l+/kOzvi6iV0BS3HWsK5X46edZjCVqONi+dj8YZWuklMjtCtghuoVKL/KiE+6zm3eppK4qKoo+Gc3uldpX4drOEalGmxZFmdXeg0QAeKpEwLMjEcj47HGwKZnXJ3vV2RxM5IqDdv4yHeOJFjpTRPrEYEKyLruew/RoLuBwdhisYMLGtvBM9DIzcRC2IxGWKowXg7f01ocmMr3n8xV706rnuxgIkXTtFEgF/1hkgW9gshRbusd8yTmzE6xOaa3KCUWaG5sEMK2a/9ZX4xsxShIiCGu6myp20JNq8KUTKkt11lYMm+zJVpmK0nuqF0QJGSX4/Ye8M37sHZWevIXbBsR3TBo0teoYAole9lVrlgIoUeaHRDjHoiPTeuUvZVQGVF8cMs7UmmV5uga1A/IxJkGexD4gbsCEmkFvjpWB+ETcqpGTPmE7RAimbTURG+Kthsw7FettXQ61sgXTjwWUwt3qGcaWdN8OsEaHQhJyAYGJ5xKsNnHVGMooV47LO1jSzm2P3ummgIt+ljJai91x6H5NqB/xkOJdcEzjsbN0lXNuh1xBfE8QYEmm8N93yKOx7DIJDi3xWo81ujx2h2L5dFddBub0Np/wEsISSM4BuQlEWrmbp1GR05bKHm8ONIPPvF54ELJ4slSqZaN+1aVameTb66alnFuMdg2zYy7A3QyBcYZDT2yUCT7yb/de9Mb74bijGaqWTpQkbyz5gjOvjwFAyP0j+UWciT+YNyFtw+p39W3QeyO85dF5905nuFqBjFnLw/V9uNSF+f/TmiasdIlJkKEWibvZaaa1ARFCg/ei845+nT2Q2v1WD+H9816zXqRuB0l688bIzx18yXIg1+9mxJo1ghMjUn1SC3ODlnS2MiM+uizx+woa0l+HEoMwmnGKchmISbaJiF7W8FJbih+z+z+OSP/cAeuQ2uu1wSA2Y649YKXxXLIngVadEZSFXgudpzssOPHhrKlRi7p8SmMw8Ru+bqBZSc93lwDJ3nvPftke8tvm5joJoEZnyAmxd1seRoyW0g0lN0BZSXCfjBT5c1blFT1UVLzXwrFDvbAqBkkw8L+yaTV4hIVB42yMdz5CohgyD3l/5XMWVxUXUZje4Endb6A11I87D/h+g0qycaWa/jj2jhjjZZK+WIRMdES2F8mbZugn7LWU6oRb9LNbixQXruABTgM/oKXf1U/BMxXbBZUJfDwt0nnm5fJrtGr1q97y7t2LRgo2UVFlmsKMKQ17lI4H26yy6Y4iCrbNsa/cb7dQlsBSPcyD6JK7e/dr5vRrpImjDOV20TMEwgK/ykPo4vAb2bOJH7tf7y4AjU8+PSz4klfPzjFs61TCpvDXY0nQUkVzY+re6H+MkWm5DnByuUtvR4uARZ0dUMv6Q00GNOote 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BNGMFkXwU3WONTr3KQh2t6Zo3kHTkKJtzbRAd6snOyMKzcgM0+6wQDqcxQo3MVue7F7QgwtBIJ+R25l75rWrbZZpaaj/nbUX9K8GERyVG3LERnuHqOMHD9HK7yZ7D6V06nUTJfQaCOK6UmdrR6HFzzRVdezXheonPjkrulAhUcK8su1B8GCL+hQVCJjSkwtHK2W5JYlLHJM3Te3wprRs7U+2NIEnvCooxCxHB9fLD9O3jOD5svRurXsdQJ/o2N2Qp75xV5aHzHIrBfPd2jYEbpkCpPfvWPptbFQZgiSCxq3XeJ6wAmLZuCmICFkJx0QAKZuAfvNnvt+BVwjkZioVT580g0xru1UNLmJkJnmKwhlxHdMhmE8noCU1bEXCkpZpKG3eYtQlW3FXtf1sGWkTmrRKGk3O7EVCQEpgQ/cVFFA16CsJIuvz4W6L/IPHQOR0tg025ErzhrqJi3Vyo+MdQmPamnZETnbc5juSNGC4t4VjuYHqHEV1W6NjidQhNBKAPxOXx817AknBLFESx9NKmGsDsAseaGY0fvK+lD5F5+Rc7bNs3psBM2S+Na9ndDYCSaBwjqqOPt7qysNuV57CZ/iPphHMX897rHgt5Ux8noqKM82XLHgQc+VKlsdBJBgQCvcTG1AQt3QkBrnsNm0wH3jSMa6HHLs7nnIWs4I58qj5xOFH7Zo6q4qb1LWDmME+F40DFYYVZhZO4PmvlxTv7MRBLVcrzDQ5Eo6KcHf73teOa5shwVr5Mr8l3Hrc0LgMdBB0ASMonfrOVukX00iSH/yQLlVVuRd+DL2VjnbdBicqnHie8WkB/UdvAuqY2XSkGAY9510EnfHh5ffKU6tmN4T1WLslDmmXsza+031vDJhxrJNzqABnm3aI20+qI7Ezo79aXZXo4AWOtrkbOgPYiK44IuOR19qKPPlkHonG/08uHL0xMZ5eSCH4s+QRAsZQS0bw+4566jy68AY2kw8BRrEFtZtX7Z+us0J66GWsFK1CHe4XHhu75R1U7wdz5EK3uuDhS/ZT3SvvMN/l9mXuV7A6kN6DYSJpPecY4u9MsrKUNR9Z0u8JK5Uspb8XskVPVUbTM6vzFNSzK2zIqhY0Oo02uQ3SebdS0uLVgnq9ksUMhjR/fc/97lKvJFgWUyf5PtGHQDKU2wTTDcphs4mGpyjafARuomL/TlAytQ3avKgDPslZBJlzDYtQp8fHFbQaAlqc8MyIVceDydRrAdzRt3EvZEnMO9IfN8BIhhgKnwlpI/Ew2ahDvPMD5zRtYldr7yit2O/n/1q6EYQxSmZM0hDLfuyLYcNO4wOMM/8GIFuSezkD1rHl+8YMMEsjVBintN/FyZefCRXn/lw1AEw8ZenW0JGODjAQ4dON26ztig6QwFIAe1OdsO6vxh+bv857Udex1WZKmlpA4Iu2lRmAYxeGL5kpNApSjCjF2QHauzVILPJDZooxxbYzxFFnkPCi+ighqyiGkD+HGbVGB2AJnZRtuzGvEYw5nA5nBPoKOy3WZcL/396jBlyYfUt9ojLG5nlVAtDLfVAVrQ/zsPl0ixp7cZa8lLuysobQB2qKYA/A7LfTXucj5M5YQBqfleo7QB0FiuD7+6eehE2d8pl4Xy3yMJmPt8mlGThN+x/NDNg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 044886d8-51b0-4ec1-91ed-08dd5a6df810 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:10:51.7262 (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: 1JCb/mu19AJeXgPZ4m8g9EfnRISb6Dc/er66FWbSl3+G5WF1k0Dvy+/d20nQfbkbHDrp0U/P8/0qm6jC5GLsvBuCk1dw9xDKVAeFQtbi+1IoEzbBNM3FrnzcBtmYooZP X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 From: Lad Prabhakar Pass `max_width` and `max_height` as part of the OF data to facilitate the addition of support for RZ/G3E and RZ/V2H(P) SoCs. These SoCs have a maximum resolution of 4096x4096 as compared to 2800x4095 on RZ/G2L SoC. This change prepares the driver for easier integration of these SoCs by defining the resolution limits in the `rzg2l_cru_info` structure. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Collected tag. .../media/platform/renesas/rzg2l-cru/rzg2l-core.c | 2 ++ .../media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 4 ++-- drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c | 13 +++++++++---- .../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 5 +++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index abc2a979833a..19f93b7fe6fb 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -355,6 +355,8 @@ static const u16 rzg2l_cru_regs[] = { }; static const struct rzg2l_cru_info rzgl2_cru_info = { + .max_width = 2800, + .max_height = 4095, .regs = rzg2l_cru_regs, }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 00c3f7458e20..6a621073948a 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -27,9 +27,7 @@ #define RZG2L_CRU_CSI2_VCHANNEL 4 #define RZG2L_CRU_MIN_INPUT_WIDTH 320 -#define RZG2L_CRU_MAX_INPUT_WIDTH 2800 #define RZG2L_CRU_MIN_INPUT_HEIGHT 240 -#define RZG2L_CRU_MAX_INPUT_HEIGHT 4095 enum rzg2l_csi2_pads { RZG2L_CRU_IP_SINK = 0, @@ -81,6 +79,8 @@ struct rzg2l_cru_ip_format { }; struct rzg2l_cru_info { + unsigned int max_width; + unsigned int max_height; const u16 *regs; }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c index 76a2b451f1da..7836c7cd53dc 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c @@ -148,6 +148,8 @@ static int rzg2l_cru_ip_set_format(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_format *fmt) { + struct rzg2l_cru_dev *cru = v4l2_get_subdevdata(sd); + const struct rzg2l_cru_info *info = cru->info; struct v4l2_mbus_framefmt *src_format; struct v4l2_mbus_framefmt *sink_format; @@ -170,9 +172,9 @@ static int rzg2l_cru_ip_set_format(struct v4l2_subdev *sd, sink_format->ycbcr_enc = fmt->format.ycbcr_enc; sink_format->quantization = fmt->format.quantization; sink_format->width = clamp_t(u32, fmt->format.width, - RZG2L_CRU_MIN_INPUT_WIDTH, RZG2L_CRU_MAX_INPUT_WIDTH); + RZG2L_CRU_MIN_INPUT_WIDTH, info->max_width); sink_format->height = clamp_t(u32, fmt->format.height, - RZG2L_CRU_MIN_INPUT_HEIGHT, RZG2L_CRU_MAX_INPUT_HEIGHT); + RZG2L_CRU_MIN_INPUT_HEIGHT, info->max_height); fmt->format = *sink_format; @@ -197,6 +199,9 @@ static int rzg2l_cru_ip_enum_frame_size(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_frame_size_enum *fse) { + struct rzg2l_cru_dev *cru = v4l2_get_subdevdata(sd); + const struct rzg2l_cru_info *info = cru->info; + if (fse->index != 0) return -EINVAL; @@ -205,8 +210,8 @@ static int rzg2l_cru_ip_enum_frame_size(struct v4l2_subdev *sd, fse->min_width = RZG2L_CRU_MIN_INPUT_WIDTH; fse->min_height = RZG2L_CRU_MIN_INPUT_HEIGHT; - fse->max_width = RZG2L_CRU_MAX_INPUT_WIDTH; - fse->max_height = RZG2L_CRU_MAX_INPUT_HEIGHT; + fse->max_width = info->max_width; + fse->max_height = info->max_height; return 0; } diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 792f0df51a4b..93a105dec8f1 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -736,6 +736,7 @@ int rzg2l_cru_dma_register(struct rzg2l_cru_dev *cru) static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, struct v4l2_pix_format *pix) { + const struct rzg2l_cru_info *info = cru->info; const struct rzg2l_cru_ip_format *fmt; fmt = rzg2l_cru_ip_format_to_fmt(pix->pixelformat); @@ -758,8 +759,8 @@ static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, } /* Limit to CRU capabilities */ - v4l_bound_align_image(&pix->width, 320, RZG2L_CRU_MAX_INPUT_WIDTH, 1, - &pix->height, 240, RZG2L_CRU_MAX_INPUT_HEIGHT, 2, 0); + v4l_bound_align_image(&pix->width, 320, info->max_width, 1, + &pix->height, 240, info->max_height, 2, 0); pix->bytesperline = pix->width * fmt->bpp; pix->sizeimage = pix->bytesperline * pix->height; From patchwork Mon Mar 3 16:07:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999146 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011046.outbound.protection.outlook.com [52.101.125.46]) (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 7C0D81DA31D; Mon, 3 Mar 2025 16:11:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018265; cv=fail; b=dZ0xZJNLqEcGqE58qriCutBh/MqxjgUQQQU2gAG3oR6fJbZ7AQZQaI7eWlT+6tssh3w6ZZJSRwo7Px+VuYSqBZ5Scoj2PZT71KZ8Zj3s0wdC1/0lLzjQLaZ86rgqWRALsFBpKmlStYMlIYgsZwKuc+TfDlD6mwYROdkGdj835/c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018265; c=relaxed/simple; bh=5uvchA5nH03kiGbMXqq3m8CbWhBlFahJRNj26wjaNJo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=d75NP1AWZojzCuPfRDBBSutXfcBIphUh4Mor3/1SfOoFwiXPsfA9LK9fYGEFjI8XfdXjrZm+kYKotv/ipptT1Gx4W+CnLRzQxRFJmBWhE9CgY42vq6i7N0XDFw4TECIqSQ96+xFfOK+IRqmT4rdo1kfA3zkOqUB+y1ulEujr6hY= 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=NKXKaIgc; arc=fail smtp.client-ip=52.101.125.46 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="NKXKaIgc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ypcSES3qqZnc23VslonRtTMrxj5R9WiyyhnAAzK8onZcl5o5BnRRULx8fhMfMOv0wUo2io7ERt0LDdLqwUuJRt5UFhPoIW/gDjT4sDWyzqpYlL7iMqnn/QIGBgU1ioTs5JEWVsCBFrZ9KwMqvd/Bu5ds6/p2DqSWM2aNo1dgzngD9P8aaThJDb5zEfLAk+X5Ab13fnwUynYHlUtb57N022cJ/ziLJ8RSmXebzor6qfuhlwwOQCNtGv7C69AuQ1Wz+LBR+3JeGxGldU8AEk3DwgxoHALPxgdIfB1TejWfo3V7DAdkVuuL/OW/vXkd+ix98JPWD0H2e4PZucVnUfR/MA== 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=2MiP5/sRjKZ1lKqYtzwX6HFn7IU/Os8AGNJYk9K2eF0=; b=WeA1jVfkaEs9b6JNONl8uva7m6CtfVx0Zg0PNc/WGHe1l4cHMlFBGjA+FGLu+kHskgRmvAlzCCcUGm+rrq00gZZmqV9AF6I8Nk3NhnJNxUiaOivqQaZBK6Ha2sd8ihvsftbpZ4F1Vj5rzTIHaToRc6YEsic7wC3nSQS/pYbrpuS2A/S7kYmk5uQfcCTC9GnSRV91t+FTvi3fc5hcUI7LkpT3U+a4vsrzRA98M3AL5SVDWGg1jHXBfFzLLuORWF/tzhGaTYAaQE0aK7uIBAgBrPz8HU6gMKOKNW43a0A+Zdq7oJ/nkNXSit87P2mXxosdvMTwFI+KaDyPXd8zOEL2zg== 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=2MiP5/sRjKZ1lKqYtzwX6HFn7IU/Os8AGNJYk9K2eF0=; b=NKXKaIgc0kYPyZJVx1a6qZOvLg39QO099dguRwIhrLLGmbLN1zgnYB8Ma2EnsFtGR0BMPgqq8ym+gWalzmVkU6zn0rBTYrRvGxsorW+fRpawZls7nRP+Xq5+Nu4Q35jjQn7N7aotoUiqT+zEXCuUDT+NOwDsBZak1kbRwZim3ig= 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 OS3PR01MB8683.jpnprd01.prod.outlook.com (2603:1096:604:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Mon, 3 Mar 2025 16:11:01 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:11:01 +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 v4 13/17] media: rzg2l-cru: Add image_conv offset to OF data Date: Mon, 3 Mar 2025 17:07:53 +0100 Message-ID: <20250303160834.3493507-14-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OS3PR01MB8683:EE_ X-MS-Office365-Filtering-Correlation-Id: 98e1bef8-a4cc-46eb-c999-08dd5a6dfde6 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|7416014|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: Y4IN3E2Z+NaNL3CiXN9LCxr67pwoT41CEf5afJMav7I3FSxbyvwLV5rxjmNvqYuulivrcbDSwfNd5Nh65nNalQwedv3hDTsSr+pcXwS47aC8qin8E+T8vO36A+xL1DBvDeUDQdqOyWWovdEungp33i5JfVRT42xBKL4ioRccAlvSV4e2gGYIE69F5C7xfFZ4UEneMmWBa+61wJkgMc6ibfu0SJROdV0KAMTKh8gW0vmGsYHG1AzEuf5PuFvkCJS2LV5KK+PFmtvmyzD9v1NLi7Xa2vZ8xOEmW12HefCfume6/PlTEX4qxiOQGTG4nmGpg5A8Iw50b0p0SuH+MyqfFKEMxM4CmQbO3KK/bifjdJcnIl7rys2lKyOisie3mFSEDHiw4JUmNPegVQFnJL32GRISdnSpULy6fqmk7+UZ7czYyNaN2spCFtv3oI5QiVRAHIZE/cZPnfi2sTWSDE2JiqLGbqfN+x2vKyhCNBtKkkPkUy7P4QFjolpp2dNNJbHn8SpMKKv6xqQQ6KYCgVX3dDzOGeWh8eFmC1oB9rTIiY61AwdozYifjjKIwrJ5oBdIweQ1UEzQaqEFoB7semfVnlskMcArFXvbRJnUZdcXn28dl8Acuw/aNEL2EGtmRcg27jiyHlm11ZUHj8V8wrVCx88cbLo8360HziVidJPkpvI2QH0Ia12ykiwfrz7m2zNAMcaF4vrxYF7ruqfmROzx4lsSuFr6VQ+VvUHIr+7zF6Zy9Xsx/QsLbuy5w7MPMB2jZKmJFXQdm/Mrvw46VBfGXPOZS+HRU8UiBcR+4a5p1LKgj8BsSoyeRquczpnNtRpujgWj6LccRbBqXhcOS7Q/FTH7Ez7VMB+EV39p13lR9U02qUaWUcPQuWwokDz+RAAoCIl096znw16wnMzWk82ZxEzC5900Syb37xD4/Hxw+gtsIeQ96yb6mByAAvb8Is23zIlsF5yJhFwh+qJkdgRWNxffsTN+NxGh4Li/aIAIoQhOabcEkN9kCUE4WHecpgeUSBm5C7Ct4bPyHwBnnGSV7GnuwR2GniysFlQ+1U8VkDcS5thVJiU/2Mo2Fxwkzn+vh4Xo3o6drqRtFUA29DMqPxh4gANAnv621R3tGbvqpIz2kwRU9pShBuZsq5ytuhGc6EzTIavabr+mrp8aUdUO+kwRZaGNznTANe4XFSzE0eSyfw2JDfG/qTQYycTDZ4YAOr8cCQuVOxLdnrpmzs3TbYdEt/fsbBRvl7roch6VbZ+kqmixdSWYXeppeNBSwonSE6wixclK1oxusCT9lD340ThcUWRaNZib/h+XXkTJI1j37qSW8r26STRMa+6NsbXA12C8Qt6i7uAuvSu0XNBq2Rd3QNikGz9AhRIVdRDlutbf9Xt5XGQtiGh6qbiw1gj08w9vfSBd7bZVdRqwrGF0CZXoiXv8ruJNhWrFwIQNwTL7zau8vVfgUnmtquxKnhQU 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)(7416014)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PL9s8EaDLU+nQscxfKymwfez8U8RmE15bak1GFwb0yIzs6wM+A9SJL08Z0nTXQYEnMcPs9EjtD3mGsn48LQdlUY+eN68fx/8bOSI/uu99k6H6j6LybcdGF5dkIE2kcR8IJ4UPBoH6qdrPboJ0Zys7YXs+tu8GpBQs1Gdq7fzdwslvCLuuTpuC3jFsry2aZUuX/P+n0g4/LzFvADnLNvJNEkV/jqHwujIIxfnaGJ8hc5WGVd23rUxkpTqfm+xAbf36/vkNSu+MUaee1GN1Gz+DnPZIJvkCwiiDk96In2pZRr3PYeW6luLC9z6GQIf3oo/Lp/fvjitVnyRaix7TCcoqP4qaCTPMChSiJGMHADEz9RZzCcIVPtDwkZ+k+r2N0rrLVkTzyfcT4GlzJwoS08IbM/KKRn7HyD2lWfn8Wn9REJvBUGQM2a2u2eLL8xhZtlbCfrLkGZq+QznIFhSfjZrrrxRBhcKlKF/SXpB6v/YrX8tMIX/BIzdX1UhjabIxHWQe+JnmS7oQJAlEd6YjbKHBfUtpyc4bW6r0yY85o3eg/UkXvK2upYOvP6k0IlCV1xr+g8fxFsxfV1xWkkk3xkg5e18bJW5N1JJYpDHOjr9nHFGpbmLGxYZKMpDzyXyFIcMuFr8JCDaNBYVHzq3Q7skfpvNQrmJByMj3F8tiWre/xLocpIAMOYyee+O5s1O0pPAubRvtAi79/uSWUnVrXi7r0njJGo1ojUledMxvODYN0QfU28ziXrfNMX2elYKHyguBmnnyYyp48LNn71NMRlkuAcNMy48QD101CkewAOAMl9KoOPbi9oFwCp45i/mKHjzXWbrec6JXMkZLwS+ica526MhAKUAvI3FD5HuIZwJecleRg01HdP2Wv6fl9MC2PnsqHJGaONZTu6QU0CLhzMMHworq90MtTx8Dw25FAYZL2d5VkVJiF2Bk5nnhk5dsFEjG70XrE3YuCW4SciGBGTujTMVQGrIQ20zCw5fw4yFrWVwDCrYdtf6MbEHPE72vyrEI96JynmYB6ZNqoShPwyrqK7PNBv9ETsajog5h3T2zh2boz7FsusXz3A3ZgX+VzifX5/vHe+N5+riFTsZRwrbHeypKduJsmhNS6A5Ug9HRbkvKpli2m5uJsiGm3Gm9VtzxcOAv+kRBBt8J3sniC+XUqIhzDeKqtiDXolO5sMD8uwlscX6yG2kKNvq8yQwd1FQWkMAmt9Gvw1ODiGt9v/AW5h5RCDKa5Qqxqr1I0eu4vx+TYt05x/zW92Dq3+2obg/+08WHWrUotV2oHYPQTGQmE0fwRtqQqfTxjgXSzKog4ISZdhHIGN4O816oOWOfyD7aq7hdqxEI1t8ViLZslmoNUSObmiuTNayBjDMZK0vozSQTScK1vhxfCA6OkEwaav7o8AMJEwcGCb5qQrjczkseh81FZhxWEFc/2ioTm3DSELE36gwhJB6anSx2B4/+hx0gWW93aN2lF/sftg6+djLyTJPqh2qfXk+KPBAaTJagK3SMhv5q8pSN031IGEf7vcB03yRxxbf/nKINyiUKrD0A7sf7n1ibotzfPzMHSsSo3yJhH+0qjFBO7rgXbU64NvP+rvfqMTC51pyYB/c+ddHMC4p/Kmp9MZSlvx8JFNYWKk= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98e1bef8-a4cc-46eb-c999-08dd5a6dfde6 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:11:01.4984 (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: DQy/My87tHifR73CToR3cbCfUAcFRU1Nx4kRA81RTIcfM7Avd6KJwsWq2LvW4GK4H/M+99lkCJdQ9lklEcCeMwHRp+NVjBAUU2d7orNsJyLz1t8ClISy6fEzDKGjs2rg X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8683 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. Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- .../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 19f93b7fe6fb..7e94ae803967 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 6a621073948a..ca156772b949 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 93a105dec8f1..5033c8d98639 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 Mon Mar 3 16:07:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999147 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011010.outbound.protection.outlook.com [52.101.125.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 3AB441DA31D; Mon, 3 Mar 2025 16:11:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018276; cv=fail; b=qedfikaAZcz6gPIykQWTD4//winKvw/YHhTgotWPjN4kDwQbDf+5ziqc4dbuKL/wmrxiwdUDazczbLp8qA+6c3GNRBHqBHreeQO8LcJ3wJ/rynHAb/iboXlmZIBX2lTnVP552+3CwkdHcBuxOUhUXPGYYmXkJOqj9dI4NyhNf3g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018276; c=relaxed/simple; bh=UKg1zHxKodbLnM5Z092xPJYbiyi9RVS9v5F4Nm3UE9s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=H2IM5sKpu7kAwrVvEnrG7NljmFSGnBtat+l2ZhSkmnAktTovyVR+hzwVZNbrkwuziCNZHwwZPacgtwOQ7LYv4ry0yowxEMNU3sE+M5IVd/2ZiUjrKAOUkkGq6Y0AEIxeXz7BI1zdRqqss6AGo2YTW2F7SW5ySPQk4TTi10Ikbj4= 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=E5F4Pbg5; arc=fail smtp.client-ip=52.101.125.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="E5F4Pbg5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bnvmrNzFXwhacQRCaG94Tf9WzZ/9LDeGu/P4zt52HOJWFNX+LtUwSqk3MvzYJ8WCShd4DiKbkqOCOwwiG+oN3HPNCIKYZB8NEAM9eGAoqJG9kH14XRL6I1aHDstf/gXtjlJRZgyOzvxkSdB8op+7bzavCUzLLpj1uJaFQTv4/rYqaulhrQS0exLk4cx1Yti+r/4wogJnNy8ie9hpzAIxvg9yAynhR2VojtHQZp5ZHI6hqksfazbO5ex0C/85Sww+8JLyt4WiJkyF0uj73ApcjmgUGkltu70QY1wEs+yqSThQ6wo9WNiS/LWmm1dWHxjcnmvvGI0u/1hWs6NQqjkMQg== 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=Q1pltHDZfhSIrend9oly11YbV+aY6f95m/p4zfVuq1c=; b=JygZsew6N8PnCdt8bG1mEWqUFeuwoQvHFc/k+WU9slZ9CcKdSunXOQ3qbZ2BiqMVy63QI2rbPi0FJgxOcHzDuOWT49ZPlKYYz0BOLqG0keZbMesAICVu8oh9kgAmzcwk7g6D658k0VCnwk2JNlIU2g/wPkS36B3bhc4MaQDQHJBPcSXz8Aef7lsYoAFxg/wBzlMRVQarHqROjthK0NWZdjphyACo19SjEL7glVeNNqy6n1A6HzfHEMisD6ch7B1yTqVKwkP/F3wi9Y2n/avBf3Bt1s1pG+gBxcQV5F9Pl91Xrw10cEeQkeazWrgB+M8/tnprMfiH+VFkdbkS052n1Q== 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=Q1pltHDZfhSIrend9oly11YbV+aY6f95m/p4zfVuq1c=; b=E5F4Pbg5urNEES/ClpuIzKvktd/0muHcekN5glNrciNaqrHbsChJUCrwdDgUpWFtqXnOpCYKBMvW8fB261Zahkxd5IN8lSCGGu6xxXEJ1X4w4OkcDYmQvIWrmZTgATUijGe3fbgQeEvYhj/pjHBYZwIK9WMJbiHFrKbIqUp+cM4= 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 TY1PR01MB10752.jpnprd01.prod.outlook.com (2603:1096:400:321::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.28; Mon, 3 Mar 2025 16:11:11 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:11:11 +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 v4 14/17] media: rzg2l-cru: Add IRQ handler to OF data Date: Mon, 3 Mar 2025 17:07:54 +0100 Message-ID: <20250303160834.3493507-15-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TY1PR01MB10752:EE_ X-MS-Office365-Filtering-Correlation-Id: 78642434-beea-41d9-7d27-08dd5a6e03a9 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|366016|7416014|376014|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: YGqiBjc1WX3RJHsbM9jTqdDQQWgJEL7qhXDR2qae0bi1gMZwyEUoiSRnWWpN2lz7illIaT7eQonTszyVnXu5l26rBhZpslyYqvP2WeqADkVFngJGuNKQr1zwjNUuN4xH/9HX9Yz6gm8nM4seDQqog9IplI92joeOOWufK8VDDVu7nD48D6Yh3UVjy3IAL9/WgHuTSLpd8biwV0C0lJA4jCMYR+jhvZoohJ9HSdPe6E4Hlny7npBleiELs+YywFTglf1r/h3I73Oln2nuaoREMhGbpH+h4ST7bAMuGQi0wURQUEcnFTM/EUi8oVCQ3TL6SnDrCL7WPXh/gpNS4vj5sWeE5mdmKsA0lPd036WLwf/xeSIDHiA2b6IM0+sGapbhCuntL4N+0Tj+bqqT2ep2MaCaSkyQPJ+GEKDxxH61xYpbtGOjMVuh6ZxNd/ZqOxeq15XNInmuM1Ou++WhkGY3yCX7NY0fpvKJ9u/6IHc4i3FVrDDF/bRmpKX18cqxXWD1Y4miq8LRgbPLekUUy7r/yrS3C1wtpX/7jM1e1Y3YnDOW8MKG+ZGW7bezjOfwZbCizCfbqdI8urHR5Vq5pBA7SDH11Y/j463mFZdI5o/pJ5ZMWFPIFmGLnvn1CAU+eEujOOgRxdA0hwHqeZu14wN5NLOFJNHCbyCQRwN5m1tolcp/yrjrc8d3wLe+neBepGfAGOae9TMYIU/d6fduMjAAIid9SP3YjzbACf5NinK/mCwO/eAt9AdKiD4i3rPJF8V5vBLiJxCzYOcSbmDvdS0kraVHvVYkhLRW4T6TCLntsPSmorJ74qmPHt96ZI1G9tBkUSEGw7wTxVS5gHShkoIm5eyx4IQOq88PjQIRqjeeinMqtzfYTaLZMIWZ7Gl5CuTPwtk0BxK3zQmh7TLpx08hYRYmWBvgfywzY7ZlYpcmQk6GMULSo6jdU1DjFkG4vc+aUV2qDqv6MDNKba14+7jYKzhPOz43MsdgOWf6XL11q9/1giKgmgQiYo4xzhLnIDUXSF/wxdQHoEZRWgpfu2rslwgRmkISSSDDGO1BMa7veUHAMoVHV4YC/FQn65LY/HfHcbt5kDuD8tSa6wt3bzro+oyOujp3cNkwMaMLM78V72rTtBsdppPU4rFful1c5NM06XJn9Zrz1nzC4ZsvLLEuXkImOTYk0wrGTXkchtN9Yt0I2IxQIrkdq2lqZ/M2G2SU3H7mrzXZ4HAfqGVm23WhbnjeQYVz5luM9I5u+vAXZi46WXYbafVcJbrEalIyFKr7GrAUmWXq/UjcRqmQ2NoNu0DWzgqajzG7mf5OpuO9NHs2yHb+DWk87eAW8bftM446LEHHgfcdfr3gENGv9/PY3caIEnJMJ6xKXRK0R6vA7sKwf83MvwqEugzh3i2GrCautxbsWokfUVxIMPD8qEaCGqCgzgphP4+Npxs6Cef8TkuePkX2OCqZDGaOmDFevNq1 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)(366016)(7416014)(376014)(52116014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qAX3BqI3OqcX1gY/SPZwpVtHw3UqhSzROcSQHR5cr6K4dYZm8hB0giSQyOh3JMD6w0iXmIOurZ0BIytbkJAgI3qpcnaZ517+S76adELDZRZdHqZZjJxmykDtU3U4Co7p8q8aYoIN5H/pglKaEhJ9ePZETSkOqC/AlNs+XXW/b906oeC7BuHMH8f3N37KDNGHF2fb4pqAidF8Eq/0nCsVYwYhSROv+pz7zFPZPhEVJ79VUv0D70MN7RMhgw88Br3WiDLUCqpfp4ZhTxL11Pv0FzZrWmyi0e2CINOuPKYGtcHWbI9URaS4mV+sw1KM4AsBJSURA0HkNdi54d0eMinznhOybh6UllCKf+yu7DLy8jgouzCOjjQD3pSF/hU3Ay7zeTbH2+d7/1EhzxUt8Qo2fXDJQvSKzY2aavDC01e9RCM/dmwhiub5Yyye/YbLvS+WuVh4TCX7z6GV6Nw7mb+3Dmt/b/suytPMFNj3eInFwnuQPkyFLKR0QXDJC9TxuZQEW7gCk/08hboaMFhm3DwiUB9Y6912jnc3WW2R4KKvptx3Ye8i+MpoMkdE7KMPlLzsZZ6E/NbtW+BXUlXqOrvKzNki5gqW+h2Hl4NGoFrfpekKuGdqoJCeJ8iSqRCHVOUQbeCC8ottvGNSqCY2sf6S/z8UB5vZ18CRU1+4bYKd4+ZHMca/92hH4wKvMcBFanv17OvtVpzLDNAWO92yz4TEG7J3Q2HNO4JyYY5HFjnmVdYZU/j9wd8y9A61Qf9jqW+oi1ngn9bBkO74QvPkh+BwuGMBFolFqXhdZLo33yDSkZQNTWWYXZaPrufNGGbEYQtqmdGyqwDJPvhK0/8vButa950BvQtnMROrEGbs/2GAkzxZZRh39rqmf3454zlhBpJewOcszNAv2/BPUYxrrWcW21xPo66YAfyHT6noo8/+bNNf+aM4q+nOQSja2j104G8+yklSQLnniPjPwG1L1Mi5aIYbb03Reqx8OJjz7PlvwKSKQbdh7u0U/jXPgDS/5OdxsfN2W2Fc2dJ/Dhgi5Oh9e6BGS0hTbgOnD2bFqbbnfvXGKdtkLR5evUgJTssjf+t6rHmpmFwVhmKwmaeXd+18vBKKMOBoPHa8ZDcCqs23zivPd69FuGf7c6eaX+88TP0CDW0D+a8oJwZUTayQfyaNaKfKGS9Y4TE5HENxBVuTOKsHwo7j3deM9cfm7IczRPQUIokbcelRNG3EJligLCVGgYWJs8ycRcoO/Wj4IzjVwxHifRM9EGu1SAfQSLCwL2oOD5LvD36mQvZvYptd0EU5mvoByxneE8TSqZerE9wXO1ZLu8q5xUKUE/wwcK5QF1ajtfAbKO3Szlalr1WmHa34/06PLiInxGdTrLVBodFKLv8WTsJZ3tlZ+L46ecD9LVsbwvLkOuTWdAnsBqeVknSrNEJvMfmJhG/+RAISJhmbQpvz1V7qTayHwAD38ulDmHzLJeBVBkXa9mqMyjDaYFUcBfyTP5e4tR4aGfdjM6I9JmjfsqPbiI41nPWzb9K7J4PfXoOZgFvAVkH/UwnHJbFgIYfQIDXoHtMcRmxI+5YJx6DgOrWhg8lHsmNLgnUwieEo978LMaEelUF+grT7kHgGk4oaueeg+1PlpHMRUlKF2uQ= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78642434-beea-41d9-7d27-08dd5a6e03a9 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:11:11.1803 (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: xDIiZASgxaE6il4YH3FfAIFLMuuVeG5Gvo6af/EuCxqEEMDJOLoBkASOmWgwm+CQWyzwrg2aV0vySK2qlzfSPHG7G5qqjkW7NnUlymg3XA+dCEZfgjsJgzNeXWIcjejz X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB10752 From: Lad Prabhakar Add `irq_handler` to the `rzg2l_cru_info` structure and pass it as part of the OF data. This prepares for supporting RZ/G3E and RZ/V2H(P) SoCs, which require a different IRQ handler. Update the IRQ request code to use the handler from the OF data. Add `enable_interrupts` and `disable_interrupts` function pointers to the `rzg2l_cru_info` structure and pass them as part of the OF data. This prepares for supporting RZ/G3E and RZ/V2H(P) SoCs, which require different interrupt configurations. Implement `rzg2l_cru_enable_interrupts()` and `rzg2l_cru_disable_interrupts()` functions and update the code to use them instead of directly writing to interrupt registers. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Squashed patch 15 and 14 - Collected tag .../platform/renesas/rzg2l-cru/rzg2l-core.c | 5 ++++- .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 8 ++++++++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 19 ++++++++++++++----- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 7e94ae803967..302f792cb415 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -278,7 +278,7 @@ static int rzg2l_cru_probe(struct platform_device *pdev) if (irq < 0) return irq; - ret = devm_request_irq(dev, irq, rzg2l_cru_irq, 0, + ret = devm_request_irq(dev, irq, cru->info->irq_handler, 0, KBUILD_MODNAME, cru); if (ret) return dev_err_probe(dev, ret, "failed to request irq\n"); @@ -359,6 +359,9 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .max_height = 4095, .image_conv = ICnMC, .regs = rzg2l_cru_regs, + .irq_handler = rzg2l_cru_irq, + .enable_interrupts = rzg2l_cru_enable_interrupts, + .disable_interrupts = rzg2l_cru_disable_interrupts, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index ca156772b949..3f694044d8cd 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -34,6 +34,8 @@ enum rzg2l_csi2_pads { RZG2L_CRU_IP_SOURCE, }; +struct rzg2l_cru_dev; + /** * enum rzg2l_cru_dma_state - DMA states * @RZG2L_CRU_DMA_STOPPED: No operation in progress @@ -83,6 +85,9 @@ struct rzg2l_cru_info { unsigned int max_height; u16 image_conv; const u16 *regs; + irqreturn_t (*irq_handler)(int irq, void *data); + void (*enable_interrupts)(struct rzg2l_cru_dev *cru); + void (*disable_interrupts)(struct rzg2l_cru_dev *cru); }; /** @@ -177,4 +182,7 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_code_to_fmt(unsigned int code); const struct rzg2l_cru_ip_format *rzg2l_cru_ip_format_to_fmt(u32 format); const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); +void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); +void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); + #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 5033c8d98639..8995aa254c17 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -300,8 +300,7 @@ void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) spin_lock_irqsave(&cru->qlock, flags); /* Disable and clear the interrupt */ - rzg2l_cru_write(cru, CRUnIE, 0); - rzg2l_cru_write(cru, CRUnINTS, 0x001F0F0F); + cru->info->disable_interrupts(cru); /* Stop the operation of image conversion */ rzg2l_cru_write(cru, ICnEN, 0); @@ -393,6 +392,17 @@ static int rzg2l_cru_get_virtual_channel(struct rzg2l_cru_dev *cru) return fd.entry[0].bus.csi2.vc; } +void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); +} + +void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, 0); + rzg2l_cru_write(cru, CRUnINTS, 0x001f000f); +} + int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) { struct v4l2_mbus_framefmt *fmt = rzg2l_cru_ip_get_src_fmt(cru); @@ -414,8 +424,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) rzg2l_cru_write(cru, CRUnRST, CRUnRST_VRESETN); /* Disable and clear the interrupt before using */ - rzg2l_cru_write(cru, CRUnIE, 0); - rzg2l_cru_write(cru, CRUnINTS, 0x001f000f); + cru->info->disable_interrupts(cru); /* Initialize the AXI master */ rzg2l_cru_initialize_axi(cru); @@ -428,7 +437,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) } /* Enable interrupt */ - rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); + cru->info->enable_interrupts(cru); /* Enable image processing reception */ rzg2l_cru_write(cru, ICnEN, ICnEN_ICEN); From patchwork Mon Mar 3 16:07:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999148 X-Patchwork-Delegate: kieran@bingham.xyz 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 74BB22147E8; Mon, 3 Mar 2025 16:11:23 +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=1741018285; cv=fail; b=suS+rCypmuBEM6aMINUBuklv1SlrjfQTWQsVJfS6jnGzyn3671YsxmFcpG7P5ITdrGdYo+5HQLvhhfxnPQAAnBxu9XlbTNjr+4mr4yRX3eFPN4fSWKh3iGsHlLVpcdrhVvCG88BtFN+T1Etgiz7C+3Lv8qp+doc9f7QkMdbb//k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018285; c=relaxed/simple; bh=0N5J5t9Nsn6MQ8N0NQbhR17Kw+prrNc/0i0sdkpJAHc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bb57qSlv8j5rnqz/jNIzcfPVESJfcNKDwgW8MoTZYFw2iT/LIajGd9uBhAN67GgoBpFVgAi4nDheNBRPj9IghXLjI1/sfsgRzRmpEMk+Qceb/IEmpuWxIh9tOegCExVbcrFxfUcpWYMowEZo1w4OIf3pRjZj82wqjy+85SJxLVs= 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=VObUUite; 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="VObUUite" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y5R0XZ+2A5fUCInTsfFLPy/NnJUc2TI0zzsY6cTCG7fN5LKHevpoNUkyqzeRSMj/OMSgxB57HTiiNMXUbQ8SZe7lymCWicsV6/nZpqO+1Bd1wazb9UygNVF0h7CtFCEcniphq9kaLWhvhF6L3vluAawc+ridvB0jwj0jgm3rhQoYW/17XGOEywmi4NY3RKAi7RdRaSl2jmXK07pSI+fHI9FJuMyjHDclgcKXLgPSrr2BncPZXqBgYiz3ML1opbTQTESSZnSD8NnKVqW9blNldczvTJ6E1ZyQ/cI0rHJOTN4yJaHGSTRUtsch/76Sm1BfJmfq/JJOlUejKOgM7zMKUA== 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=yraSZXqLZ3J13y3fLlZaaIF1WdGX/lHryhfcSMUfv+k=; b=JA4qS4ITZ/jUYLkHR+A1z9TiZURgXXjA6yuzgs1mUD+qkRgKSf/jX+0XFwCEh+IW8g/8+mFpj//8X9mcbj1lTVQdr+6jiAH+gRf7V2Seb5EP3Fry7v5VzZXPAyyvONwBYrhhwCLfUDuNCp9vBSaqcOlX+Msthxi3MnJ+DVyK1W9XwoJN/KyUyqvHvzG2sSOOoxdGooX5CfQyActAXqicW4ZjWp8n6F2mK0iBo2PKoi9WsRfT95Qh4YieitHctFO9LWbCndTcl/HDEMrp3rxN+Z7RjXTg7mYTwpgxuZgX41xLJRKRYMmBOYdy/MahsbnyLnIvlGeHaPdAlKyP8iDaow== 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=yraSZXqLZ3J13y3fLlZaaIF1WdGX/lHryhfcSMUfv+k=; b=VObUUiteMDGIOHGHlD4NoXTyrVIXA8rg4FhSOH5ask/rwqg0TmaA8NXbjjncobRv4Dn4kUcZyhPw+lCNBjkNe1I/+9M2MTPN/NgHB9Hy/OWCot6P2wL+bfwxuRFUZXZcpA1ds7tqtogMy5qpMueV5XqcSdAkJ3zobybxbioM4c0= 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 TY1PR01MB10752.jpnprd01.prod.outlook.com (2603:1096:400:321::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.28; Mon, 3 Mar 2025 16:11: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%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:11: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, 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 v4 15/17] media: rzg2l-cru: Add function pointer to check if FIFO is empty Date: Mon, 3 Mar 2025 17:07:55 +0100 Message-ID: <20250303160834.3493507-16-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TY1PR01MB10752:EE_ X-MS-Office365-Filtering-Correlation-Id: 7dae8dd6-88fe-4314-884d-08dd5a6e098a 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|366016|7416014|376014|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: mnAzOWGiRHgd16gj2Qdm1lRsnYi8Dma7iLk/fBMtZTNCWjyV37WchKLwKym8TB+P+LbsehnvcO/lN4IMuXn5xk43CuDyWvmFwa0IzfcqmOM0VoLAYEMoTRrB06i56HqiroFFVZc/4xow+l7Up0cLiDNNFcguO2fUSj3iw8setcm6APmYg/YPkZ1HopDstsCfzxW56ijFBgMUFspJOlSotibn7c9QePz/Kc9S6XZ37q6I9fa0hsK7tY6HO/BTbWuLUazU4+Ce/0LiriAdVO+vfdTOCH5pACB8dKA7ULLwYl5capf6E/2j3yetVWX2pQMi0SAE2ii2GPgE5CVJi5SlFUPnXh0ED4EljixaTMwgPV4aQc10ZUTDro840qwOgQ0UJVJgWTIKQ1J75GGSWvlvrHVYmZiLpVKACZwj85wBiNUDLB8C4f09ooYHINbgs3Ao+rhBFiCJ9N5K9X5SNRMQu2U3BlmT5uxK/fTwhkiE4OBX5Jx/B/ORJGrSpKG02bQCu1P4Erhk656GY9a9Oc261DXkgro4+RjmGvVlD3Vmf9+ofwr+qoHmjeZH2mplm9wvWzuNVIq9uQjA0mDAHNT4B/pgi1K9VBxBaQ3NAjVP1TwPP7B2jIu/X9RB/S9bpyZvcZIgybG/eMMcG0vsm913cavibmF8howo6WZzwdn7kbvS++XFXUEVgVp6b75qZ+dWv+Rx+G3T46b3F9Y0a3sdF8/gyEfooMjW37YwZuzEHoALU3MfdNCKeKBjui+URRaiAM1JuIdpvi5ytddctniVLIKAMhoOMj+/iagGXbuNg7X1KzneHJjA+n2GgioFnYw4RPCHg8kLN/EYUtCWexSAjnWqh6UyFCcb4l1uCMWbl+aaS6QjKAQWV/vIhZdjnAyC9EIPpABI+maITcgwYyM52m58Yz947V/viG0suCigJ873BAkAeQl2pqzt3Nls2F+PieBldNov+K4NSzwr6MPXseZXczC4QZkTcqJUZk5kwoOYpFPCswG/9mwLhl+0P5VHsHrbD3T10NXl5PXvjFXOjYVRsu5ert2QFQ5h/PyENh+04eR1iqNqhO5CIkY6tMgU6jRGS81RLffwVZ7/VnluWFvOQXxoYGfKKunPQN5I0sqbI2bBF0L4TtzgcmFWS1hZa4bEsQKNzJ3xKkz1l7njONWXspn7M7ktt1bRhXfcsfgXco6BDP+iEpYvsT5bnyLakbzWKf/NGWQBn9dtKTddW0RbN8OsbbfG8aoARQiffKphGnRFhTOvBK3bQaPNrUvLiRQxF2ZaqS9E8bp9uUwWRcUcJ+fdKqrwjL+TbhFBF8fAnVNvOP24OTlWdArjot0yGgUz5qN44IGlnU0EjWN3WGLVtFyR1PnMBSC0xjLSQgLqhnlW5zb1lJb+XKnpbixwQ6MLYvtr0LRdzPKbAamoiBjDTkOfR83GFz1g1odvu8vyd5Amztbn7LyqOta18hvW 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)(366016)(7416014)(376014)(52116014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: aoCeJPCNlnjK8UfYBrQA99eGWjvzxALzVEgHm8wwbJNRRGFh5Pz3HJAEAiO56wR5hiZnhKGk9inyENPgWC5sXD6jPsHItujuu68WsuSvKhtWzRBA6hkknbjEJwlOnsP8GahPi7wJZ7Udqnk/u0b9SdCcMtoTnBLRwTySeVXx2seR1yU50QXOKvgqL5thDzTi6QKXFH8XrDcwVgytmBH0tGDzOCRYK/M6cnOeFDP4oQAQJfkxQM1YmQ36DvhnWdnhuWq19+ehAW+p9R4ih4/iPA92s9yNuhrxmxls4yVFZpfspAhIlIweKgJB0x2n1XdBpx/KRTr7KWkcqb8xIFHpujADfih8REPVHg5BiS35JpLXnD44hbK5rAzoFl5tFx7ts0Llr03U9VY6PcpbM5MtEp0cUXY7f1yjLP1B6IC1oSSqz6zExWOnPPWpzPVQe5iLVJ34CpY4nGoFYWc4E3wlDQ2ApISYCOJVclyizOziLPVVCWd2AkQPhkWwhDpFVoyN9ETlhbi5meAp/ssLolV3IWue5EL2r3DmyZFDec9+OJR2Ug75rXttcioickWVMWjFZU4KQCty8PM0XV/PKfp5/Ggjfz6hvIlRKVPChTJZiYluvoOvtEtP2A8+Im3Q7dsdo02WqD/Yclm+mxdz58oKiWkKKmo12Wped1pPrVNDh1mfKofiXoS5DHoUnqbdErUe/jMCNMr4S2IB2IIXfnZl6JesyFz6V/s14s8DAGRtVTMLg4wb29n45XTRGMrAUmCQRzFyOjUuIZTeUVcN6kS1sn0oblxJYRX+8wFO8QckQ5KbciNY9jBnRsw8vHsCXAq6GIT42fLptQX7DEbV2Y15LdkG5j8SRJe+7O4444+4xfPuqG3AtJ1QaI9B1DicAmL7RxBTCazhHqMhevYjW9kOMZr0LwtKlnq/ozfrzgLNrRZhTEvHRhTAh4zITBsVTLBKHV5tI4/uW8my5pu479lXhktgwIk50AqzgfDLUx9Sjcv18yWREl77Yo2A5HogC9RCVn/LsY3C/e9tJ7GDuwQQFzn4+1eDgN7zfWkJf6cpUvYOpBvpDKrdmnKn6Bnz6jTivuFGzS+tVBOAUCpZZ7Zvb4mpQP2Z6NP1sUzVKGByvJRKZP4sfAMiC4gghYfy1xTD9DUCKNCgnKCbnkOjgj/chvt4VvNFS6OBKfepz2vX7CvCMscpd8/mNwl3RPZC6bqWgPVd6xZd8yNPD1UWm/DAiqOuJur/SZwuKlI/9qD+zdcK8ysZnZ5ME3yI+UXvoz+eWolvh99XhDtCL4oOMWfEYcTJaeEVp8jaMoe1yMG/c8i2oyKXfW/z+GzJPwRkQN4ouySD++vUtGKe8Kk3drOMG1SfVdHOfZ7vw5PaC3dNHkei81AtAYWCaFi8TEKMZqlpQTuAqP+E7t0j0gpMRFHVIwlN+O4+XBLELNCgb9xNQvn7GqW2k8eJx/PCC2P61Rikh2rF7DDuZ6mXhZR1eEEaY0O76gD+/mB698yIq4LnsGxmSdBisdzTUREP7jkYHHAG6nLNEPEKk181gnuwlGFAMbTX67Vhv/xYZkZHjJFN656A2SQKRZZ65wNXzOj+UTxDNslHZ+EuDhrINeeI/eIX4td3MHQUNqcd3LRHxMu7E44= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7dae8dd6-88fe-4314-884d-08dd5a6e098a X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:11:21.2780 (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: 8ADNvz4RsuFSZdjWcnPdZEshcyMOSqMyg+3DOYJ9ftRwWdXUFzbCohQjc5mmBQrtxcCPshu/b0iCiwpOrw1qrlWgDeFmd6a5FXYLnuDlHQDXkWbJc4/b8pxe/UpWN01N X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB10752 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 302f792cb415..e4fb3e12d6bf 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 3f694044d8cd..2e17bfef43ce 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 8995aa254c17..83d7baa07dc7 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 Mon Mar 3 16:07:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999149 X-Patchwork-Delegate: kieran@bingham.xyz Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010006.outbound.protection.outlook.com [52.101.228.6]) (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 4809422ACF2; Mon, 3 Mar 2025 16:11:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018295; cv=fail; b=evfkM6/YbMj5e94s/zGrJF39qZXcaa6d8GU3GBtMcF0oIaObhuyxScZ+G773OggBp2Ryc0Mnlp5o0xc7NG+rkdVqIQaW9btzOMHnzE0Q3X7558TdqYXM+ZXWMb3ESX9wREtjdlba2okGyrWTGsveYfHAswDBltJigTuzqyN2V9I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018295; c=relaxed/simple; bh=9DWDlHAmyd0VJNycd3ZXUthqysKNwhsejI1DQdf3ELM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ClWHTrF6WebEIhKKTQ3GAUIl7vdb7ZI9aXvwr9il6IKYjR4NLPjlF6DmE2z5XCzuov22lKFudp23kpIOOn9bltZfcK7o8KxqcGIHOOQUKOteN3od6N9r0kwwPYPCPGckKmdM0xoDp/4Xv1inS4OxVUXQfnSvz+P+Hcd7vEEsu8o= 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=W54dXZCg; arc=fail smtp.client-ip=52.101.228.6 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="W54dXZCg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EjDBsTt8B6I6P7iP5uxLfn/t6scXvZzljI7MJFb5xjFiCAEVtHwwFMPYKnicpIdBRx1xW/4WD3DbKVY5DkZ4ptD1xUONFVVWQ628gdfxjk/XbFBVF9iL6KOEm2lEL8jmjY/gKwMZ5BP3B+yGlHDEbbGUmVxHhAvRyLkozZhb1U+nepU8OgEVC3hiSXJ/GyPV3YHKa0KnRuDU5pDd1WZEcpHfqzXMGCwKK3lOrbHVTFujhtV/Wub9ZDbEbgkn3ZEh7IMOo5UTPTmvsx3Q2M0LCETzUxW+d9zFN89KrqmkLjpIBwntvcLfGC1xRq+x4YluQ5QTrYxfa5TMJu5bQjBWmA== 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=9shOnHi2lLf0mwVZQ0UKci5a3+D8SHoLbf0tvXU/1es=; b=nJW5sL2rMCBMvqbQeAr/fRKlfg/zSu8YERTXT0Yj/RzJXBMzNe6r2WlKMbTePKo/7Zc3ANRH2wAtVmYloXHdN+ZXAPXwhoV3K4f/cDA9d+utnBjokTzVpb+/pK0LFuY119nqk54M00cQT3DUquUSKWCRk5pV26GPi4lgb+CeFio6NGQu1D2A7pj2cjhcTsohXu2/whD08d5pR24JLsAMJ1oWNfD2KzfdNw7eKJKLmFyqhhJmoX3AS2ZSwS4Bu1SoBpHqX52Q/ME8AMafbtBceWU6X3oZdG/diB155rEVKJiwCvBViA0WTLYfonF1HxhzCXV+DR2CX95veeRsHh2qSA== 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=9shOnHi2lLf0mwVZQ0UKci5a3+D8SHoLbf0tvXU/1es=; b=W54dXZCgtDNYP0kVk4Clqwa3NFcXVQMC165ZvWWczGPW06Ukro39qcXulMekw2B+Ubo6xmf9ied09XaChktiYcXncHgrihgXR7HHNWAlZ2vXf2odMvCCMm14ywxqbS5UOYvtzax0lKc7vm8Cw0ld+6JqqfxnLa7dbYjCQyuM1Gk= 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 TY1PR01MB10752.jpnprd01.prod.outlook.com (2603:1096:400:321::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.28; Mon, 3 Mar 2025 16:11:31 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:11:31 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Laurent Pinchart , Tommaso Merciai , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Hans Verkuil , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Sakari Ailus , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 16/17] media: rzg2l-cru: Add function pointer to configure CSI Date: Mon, 3 Mar 2025 17:07:56 +0100 Message-ID: <20250303160834.3493507-17-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TY1PR01MB10752:EE_ X-MS-Office365-Filtering-Correlation-Id: d75fad9d-f3b3-4a55-31cb-08dd5a6e0f95 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|366016|7416014|376014|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: /IzTtqluz/2O9W2W1yiEX1tpaFdfFYdawnx2N5jtPT3qLQ+pa2sqvY2lQARN83X7QXdzUD2pXZvFW5WPFVv138qJF+XYstFFChreCO8oYVvy9rgprhqEYQNmJpSmDLhHithxS0G57cvhMa4dLLjTlT0GMaF1E92Ppx87nayRcxvQa1g7QrMGvQM0mjiRV7ZIpKguRVG130gRBOLsYCVGFssqirVCgIfyWU17MzJRXWe0iGw8YyOYfV5wcG9eV0bK7k4EIRTsd2i8KoR+E828cUS/57QCbCX5fbgoYM4uWf4lmmI6fJ36NNkrbdqrd3iNzC+9ARPb0vpAv57U+YyPqnCC3rlUttamiVHZjFJ/+XZzHlIAGfjcCIMYTDl+FXf3jSyQdCgFhni/kXCfpPVh94pMB8tUNTjKmZkz4DHm/za83pr2IEqRrHc46EfaSPnfEegLxYP0D/pVLGMIcglQfYDNcX2g2mw/DM7s6QZDHODqZtIlC1z15MjmeCUUh2QqWg/LnfSQJG/bXKdPHB4OSsjs+lxVjG0//Y5ml/nnn8nVwycVq+g4Br5ar9sz6Y4nBYHxPqwZGv/dMrn01Yy43DzEm8P4lgrGduuubfcv8d/RJsx+tN9kjs7srO8QFZFuifzdMO/GkzxxGz7RNPRp7H2mgf5TvKP5KX7dySZjUZO/pCufQngf6dIFaQ/GKUdJVmfKjIY4LzEE0cCENJn/IopmShFsSC0vD+8I2iDCX+iPwkWV8aum1YDKalwjWag6BFOgEwj4PwLuQHjmJs9IGkUpgVu54tRm0HGOaaYfEuud64OVn4GLNJtp5nNfY27btfKhlqWXOjsLyyMsIRS8lWqx3DeKnssP5UFDntrTiiuMKFT+yJoH7azd4M2jvXu4jIOKcUQxXHlzSbajLIQZlcI+G2uPorJvaQ6NTjzkiqCg5a7yCgU0ryPzv5S+OmtgQJDNp/puSvDzwRuNUF6N6s5SK18LOpHXUi7t5RIvJqhXDYpEEo4tmG2rzaOFTrKkDswQ/AUr33CaAkDXyfqhe/r/+FoVQ4xe0xu+WgCAqSbjCkxjci8wgotXCAx3G6sVDt2Q+5XnaYDBMFIgQTOX7aq6rgJwFiy5//yVPHKtN9r2lh/1Oa3s/RtGQ3wyMcMC22nUB1OwSK3lngBDJkJUoSj6HuiAr1Q9knlvI0X/O0DV065WTSqlkzN7+2M9CqagnLzbMEDNs0SHEXv52ypAptfGfPaq3I1QLNwHgTnHofpciJffXDPFSsArQBTcSD2vsrEM34OJmghztzmYwkH2w4bZt44IgDAFSMImWA5wpd5Ki77f6b0c4tawWbikm/zdm5zK3wnFckVdc3YYs19A63eeAwCPz8zAtkAoAeSu4tWrr6giGxDYIsiO9AHXWIOl/cOgvV2kePNzxXJRCmrBc3zLMTzXt8kplRBuCSqp6nkDefoeb6XBNdN30sOx+IVG 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)(366016)(7416014)(376014)(52116014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HMOjYb7oflQVW5eNZXUhmaAYHteKOtBLcQJq9wdSebSTsiJkYIjWvqrfHqBe7PVpzetWqw4W8Pif3SGdqVicvf68DaXyWzmM0/eFHStHoLx6k6+AD70nnSW4YiwwEEdE8YQFGW9elwQISe53Ua1UKfS1npYf/mok2xt4AY9w8zSQd1mCzij7OgbIUUqKVgav/mmKWc7DrDKktmbl8wakbupEjIPTF2rszimwhPiDHa+J2YGU58PC+HQ1TPnbm/8PDTdhdsELlF/N4iQodnHUAJtbSiXVJi26nxxVEGbQc0cSQpyg98bWyxrLTj+s1SO+GWKz3LrWe+qAYx7v1qYDuVUijeFGViBR4aPQJd907le38BIHX4gQuqN7ogTu48Jd91AU8Zuuj7ZHF4/yPmSdw6n7UWB41k0sqlSqmubDXi50B7v6GqQGXASMrfXa96e5uP6Peu/0Rc30O+2ZwFTKVTGMUsJF1QuVLUEo1vLgZU4B3RTywFcbgyo7+p/a7Q0hSFgVT3qTLMp/yFj08YojodXc5F+szU0GemuqW+55x8b9PKHasKwity05hH/YTKGYu8vjMsfzgBYgDU6zSdp5k/8TxYE0AWclGZlbMQ5ofEVY9j4SfOZx6VHcZiJX5QuSyvIY2xPSo7kd0E+AnP7z0pvCIXpWa56cF3fMKtTh6ZSjh3hnfuRHm2H4Drf83feD6Es9hjakIuVsfrBeQw3rn+WvAKrAZMh+b14rNGrOFw/Q0LM5K0tq6tmXeipNKrU8L6937A38uTzbm1hEfj5IF7QMJIi4M+WB6TYP48RVAp2CeJOf7KLqW9xw7Wu3ouQc7gRMVhuxvNYJiubuO64eVv0pGusCisM9dop5v4J40x/QSJsdF2UM012Z5UkB50KY+oQj0p1eEUaWxb8uUfdIUbYVUVV9PhCrvlgvjHJe2pUPrt7LsQQBMlUk5dj1EkHYoM83xkHpQ8FMJpyaEyADi+OoYeb69lUBAweRKEBAHvZNG4118AHnDu1fDONPhar0rOhv7mFWWfKhkjZo9iGPOWLl4yaEOo8gvEnHxDIipL5k0JNN2eb3OkU6k43vVyvWw6U69WsxSb+xNPDdPaLAj0UhAQqiqYDlbKdxTyNKPdmFPWHbgIxhJ05fCwRnPXf2x/8ziOuoT6xrvf5ebSrKg0+LNdro5SmRc1BD2t+zVSuCkhN5FvyDIwv4jMVywSRIhWQfOuuPrfQsHAa+kvOr6oId0kWXfVEIEsVGOCHJhID+w/ibx4YYY1M0pjkbPNFzWByJNNeaAdN8XKP2zfsug5R799SgltFRtPMiXBuekvLCPR8b3oF0MopSpHsyIzPngkrrD+XX4oWTGYp7+vxtbgog5nPv1d6DKljj2fVdM9pzbRYUz1q9CfWmhCtUASHTYjURduxN9X5jXFZVG/MgxpqTOLB/T309tZbkEaa3AcXKzGoEkSLEAHvOma0M4G8gmW0NRO0qdTUERdpF0J72gq8qCo5BH4yMCpEHJtHi/7MIRgD6TEU4g5teM6ZYAgl1ntjuhsBl3iu+oAC2U9j2+oTpb/01wxUWXtEl6rEWmKz3WPWTUOvGh8GY/qFf+dPkUo+Lia79J4azs/BbmnpYdAcjrTwmUU02swijgIrGGS0= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: d75fad9d-f3b3-4a55-31cb-08dd5a6e0f95 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:11:31.1733 (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: d/lZdROAtCeOv71v1/5tKPN7xt0igKskOL8Nb7AfuH+kjEKAKjnYYqzoFLO7bvZl0KeJGFH1Q8EAWzA1yqr8DG6ulPif1SxmQkEMHCzNdpxJG3n8OfsBuTSkJUAlI/4/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB10752 From: Lad Prabhakar Add a `csi_setup` function pointer to the `rzg2l_cru_info` structure and pass it as part of the OF data. On RZ/G3E and RZ/V2H(P) SoCs, additional register configurations are required compared to the RZ/G2L SoC. Modify `rzg2l_cru_csi2_setup()` to be referenced through this function pointer and update the code to use it accordingly. This change is in preparation for adding support for RZ/G3E and RZ/V2H(P) SoCs. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Collected tag drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 1 + drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 6 ++++++ drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c | 8 ++++---- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index e4fb3e12d6bf..3ae0cd83af16 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -363,6 +363,7 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .enable_interrupts = rzg2l_cru_enable_interrupts, .disable_interrupts = rzg2l_cru_disable_interrupts, .fifo_empty = rzg2l_fifo_empty, + .csi_setup = rzg2l_cru_csi2_setup, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 2e17bfef43ce..ccaba5220f1c 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -89,6 +89,9 @@ struct rzg2l_cru_info { void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); bool (*fifo_empty)(struct rzg2l_cru_dev *cru); + void (*csi_setup)(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); }; /** @@ -187,5 +190,8 @@ void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); +void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 83d7baa07dc7..a3c4e2a0bef6 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -242,9 +242,9 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) rzg2l_cru_write(cru, AMnAXIATTR, amnaxiattr); } -static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, - const struct rzg2l_cru_ip_format *ip_fmt, - u8 csi_vc) +void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc) { const struct rzg2l_cru_info *info = cru->info; u32 icnmc = ICnMC_INF(ip_fmt->datatype); @@ -266,7 +266,7 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *cru_ip_fmt; cru_ip_fmt = rzg2l_cru_ip_code_to_fmt(ip_sd_fmt->code); - rzg2l_cru_csi2_setup(cru, cru_ip_fmt, csi_vc); + info->csi_setup(cru, cru_ip_fmt, csi_vc); /* Output format */ cru_video_fmt = rzg2l_cru_ip_format_to_fmt(cru->format.pixelformat); From patchwork Mon Mar 3 16:07:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 13999150 X-Patchwork-Delegate: kieran@bingham.xyz Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010052.outbound.protection.outlook.com [52.101.229.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D2102459FF; Mon, 3 Mar 2025 16:11:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018309; cv=fail; b=JTuaVKD/kDOewIqB1Kqe27glokLfNt4ZJRNFkahdG60Xor+q07umMegvdjay0tempGE6rrNWJuLUjHcj0NAi8n2Lov5EKrF7Za7cbAUm+zb2V+GZNYH+WYpVH2vGFvOWDHHLg9lC6CTSprzhq1Twt4DBx/mVbizYuLStLWgu95I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741018309; c=relaxed/simple; bh=CaS/CDnLD7o86AmxmwND7alaNpZdq5pdgCZzUQcGeeo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZMmjQX6QbJLrJg+9qEmp9OAh5VgOOyudJjJ5nGAPyre5Gc3pwWwhG5FCQI/6n2cffTxYSQroVyg2dD84g6JyHBltmaDSe7nzOJFE7SDl60H1TA4y1QG/URximTThtAiKjdWFI3S4HmLSpPEd30ut1jyR3mwhJP9qyu3GJL7h+Pk= 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=p6zBsV9B; arc=fail smtp.client-ip=52.101.229.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="p6zBsV9B" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kGBwFsifmA8MfNCQ2u9sgrCb6ahkUO0I4itlCukquWh1CJ0OLsDdD4XiCNuDm6MrFRfmk+Hp+wwGg1x/1T/S1TfRCh4yZDiqX1ceewlqQ20hFWJ1hoEjcW2OQ0j+nqJdxzz3pv/FUKXL9pFu9Z8CEjjRcSQ/ChbexMzm/OWx55knjuy60mNwEYjAWAS8O4SYDUvMd0XSD1VegGyRkltkbpNgyJGnXMTbIGcORI/SnbceXS/MFdO3SE23ZRKaTWNG1LSjvyCHtnGta0bvYHWsxZVJx34rdS/6I/jQNlWvUIL5YNsmWpCBhIKXzwkANppIbrJSM+0xiL/c05HiF+F8Bw== 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=sw16YKN4G2mEsAChfKpY5vdhRPoJgzowPfjttkP/4Dw=; b=j4Zi1ctphOUAClDJ21xSu8x5ZdYEpPIZwWzomWMifhIrEnfaTNOdzr9QeksU+dT5vHDeDywcXi8RpqZUbyB7scwh5n4IzPwokIvpeP25RaWTvK638QBpKNBTqzuqoCFirD0uVt8hMqQOrj4zkuOyrAvn/0ik20nxRsYFOM7ZR05aaGSufqsvMz4Oy2b4xfttpLlQCwKQhDHpKk0jx8w1270ttLfLnAK+gzc9FG8nv29FR3cc2nhNk596iyJAW2PQnI5u3b40Duj9fpsSThe+/avvzyXTXV9vegP0n1Tzyoxmi2267xXJWerp2lSbXZAe3RWUj5qCjKZCb09pwQiVTg== 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=sw16YKN4G2mEsAChfKpY5vdhRPoJgzowPfjttkP/4Dw=; b=p6zBsV9B748eNub7tqoIqA3KnqbWdDbIfgGOE6g5mM7Usz1fv1NiV0YmH8jXG4JmLe4jnjBp7fMsAXmUtqR34gxI5I8R2tDFEWk0VW+fPS1nfHFQV2/V1FHOiEViJGVJAwRbdsiiAt0e/R+0X/65TwfmVIvzGS4xHyPq+LkGi4c= 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 TY1PR01MB10752.jpnprd01.prod.outlook.com (2603:1096:400:321::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.28; Mon, 3 Mar 2025 16:11:44 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%5]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 16:11:44 +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 v4 17/17] media: rzg2l-cru: Add support for RZ/G3E SoC Date: Mon, 3 Mar 2025 17:07:57 +0100 Message-ID: <20250303160834.3493507-18-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> References: <20250303160834.3493507-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR5P281CA0032.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f3::6) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-renesas-soc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|TY1PR01MB10752:EE_ X-MS-Office365-Filtering-Correlation-Id: 29d5da76-25e4-48ac-0354-08dd5a6e17b0 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|366016|7416014|376014|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: x9VpFV5mkmTzrlDEmJY8ZsIq6F6MuxXjdR16AVLpHaHfBY8J0Luy5qrP7ylsp2un2qxbjLDEJAmft5c95cfkrJG6fDPcfMMwYKSV0Dhx4m3M9brDDexNud6xYH7XzcGmCGlw8OzFnGz/IF7P+bBhMOe+yng3IHTuvBlkAqlYsq97lxzVhw7REW2ZH9eM+fkQuSvs7KSjogC84SJS4/++TWAmKTUeN1+dcx3LYzZqyRo7qF01ASOQW9XB99GvBKmfvekyRZqUqOqCjbqU0oplRCRTBOGhyU4DiU9zem6//A7TlTu2RibyWl31kSS22PKNm617BNyprkkNi3xEXDNI9iWNu065KL9RvRB0vB5pjBp2NUp/HJ6YbtT1ynNgRUnIVuqjW2msBaEXi/N/kzk7LNL24q7hhZZYMQcNJkvYzaHLfhnhvld8DTWty918enw+tKMey+tbAtpAuupUCcpCufpYl+O0/W2Ou0ZnQoyFre4JcAv66e2yHLlYM+O1zFz9A1LXmBt/uU1c5QYaUSnjlnZwFXdDGvfubOpyGqopY42JEt0jfH4/kNpIwyQuYDoeOIA2KL7+iYvDxe/iIbbtozlyKc1NVekT6crpIVk1ZTE1xY5XsAx8qhlBepo+UvD0nTgAWiOzGrMAee7EWLKyHJCNk7/rckbCTEqVMZOkrR1eut37vDMUcH/ny5CFm9jHbd7nmTj/cenLb2ZdmLdb1Dc/ZaGzlqw1B5/METvRNmeMZipETYufuPTkWDpwKqj/1p/z4yDgbdavAJZMRCI7I0VHaG/AtJDKWtrA7LaJTmVRWLI3N/BOhoAgcWr+miqO502+iHEtj0yMdJC8n1Zzj7kn/jUqO5tHscCQwUYD2KD7XESsSpjsZhrwOIuYh1pmyJ3wS8estBgbCUloTOP4xsRqEjiLii/Ah8Db8uo2uj7zHcZyZObdWz/YcOk8roKIovbslJrki6MO4ZU2ZE+HpcioxbsFle8xVdAVleLu0/Vuy+2afbo+Qxvoful05fIz0Q/bQ1x8tvDNGBUU66nWRBl1K6zqyFeeeSkK3ezCBIDOJPZiOKYcldFat9B36IuiThah4XZiFVTytDFW7jk0g+6o/fbKJOHuL1+UsppHSOtuLoz793G5iu3jNfysM77jFILd/NEndSICsTK0KhVxBB3lUJsalU9Tob0KyJY9Uq/TKxo/2iK5FPMr3A+2dIP5ehrSPECIGlXECMK51x1yMzWA71f4miKk98wgTUG1HvsoQMOcBuJxJ9lkggsquWM+Fg5x5qxg75+0St3DNdCmFozP8+fgLLn7XrJwhEr8yUCRwREyVPnMYSM3zNDAV9AQLEt5UJdnUucN86SVWLIWYrE4Svlzn0wcFa2VQcWEyJmKi1FYLPEWSEieOjDQWCh9fY+mgfxX7i0sWNaf8an3vfXeHvu8P4bIa/zqM+/LvpdMDZCkjOnEw4pL4C/yeYnC 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)(366016)(7416014)(376014)(52116014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FY4RVsCzJYAUmEZjoywbNLwA3gX3VD69zEFCDoRq2dODzTqywOHNkBEqKupZoSUWWuYHlzSPMMnL58GX+HS1z6rSt8GCnMWVeqmsrkaSCyieYP5/c1V/TeRwUEL3fnJP8iDjxD88mhUtOETfbLD3pkwQNYofR/1tCc1Z6tCAUWH7jxloIoI1MakepF+sEfeEmjsoml9x/w68NxnODGvdc5xbtRyovmkRbENwKIUYeaoFcZGboMG3kKwlK7eFBRUurMBXl9pZzq4Ql/83++vsR0tl/JOzJZdCqKqJCMSJro1bkgxLXMvOEXlBujYqVQefgLXOcq5Ckj8fZ7fEQCEOosLJcyUX63bDu1HZrFIWE9Xub2vIOmU60rhzUD4Bxm5eEF2WHH9sZzqCBZ1fDsEFf/8r58jWvlH14lmlad1l2txfDyHUO7XK9q+V+5V7DNjq78lHS8sIBSGNaTy77Kuh5E45Uy06PNP/dqPerRwrpsVq5qAugDLVPJWXuUQKJBP90yXgk01Za6cViUgvnL9bpyoaXYCJQusbv7s1DHaPwhzMXnY3qXAT/qM/8exz+V1A02k+jXEFyhHVimgjT+HZCsXfsowjHoPGgY3XxIhbg9woEYIl///N2ZRsGED9dWu78r/nH78xtZYyW8cygIFsAO1NxmK2Yw5WJ41plq2jKcZNFr6Hac5p7+LWkCGkJEQJAftt+EYsrtO9YRsM6mGZoV9/40wIGaqryXI13ra6C/QmeCVM/0FwqOmLQll7Rj43xSLZ1HoSjIYQbc4Jgx5O/Qjj0Z1BPc6i1I1OAwjPnEJgx7c9q2dEipz/s+SdvIfImGYvg6u/BeQILWVK8Vd/RA6DgmuVBpKG5GGU0hRGGEvTPfCF8tDeGeWOPR2hCGA30GNFM+Qe2uIV/iWrzvbyi7iifMv+p/4u5t1A3X6t3iBbMieZucxgQbxI1f7d7jbtJSqC26/UpXSZiTkIeNComQOV7b1T+h1JfHjXxy7zJvOaBkjxE2nPu/RRFotDahXPyU7uL1cB9fykwF3sDasv+JiYAuSlAR9z1zc4FBZ/9x+xtHeYG4TFE1djZeV8/b0nARXGMccXQw5sUw49QRAVEnYE+3VOl56vvM6AO0W3A1c9jEnqK7Di8ztjd+z87Imwnygazyo++xE+3md/4LCqewircrhQNZPhPEdpArn+7tpJN0QoChN2jGXNfbX5olSwPZJ6hB+rmg4PqddWSW+L3te7Nn0oIdpcAITP30VIHadoV20JYOJUto35NTdxREAAh+/Udfw99aJ9SBvaute8KeWml+DQaM28upuu0rZGpctzYc1HJ7UU4O2Pv6VjAgNlfSOjJcrhBjn8fh/yaGJ5xdASFM2rkm2cWknI/AecIFDklZt3ayMLRavvBhxqxduuvUQHjpCdZgprDROxewyFBqONZYowliG6soxAaOU+MMdCmUO6QI2mN5lqb0f6WUhEruDVhxGHCCzLiu5r2W9eEz9vrrqo6tfFWGeRuDkiu5zZbnqkINypqklLZDNMmLbVnCspVNyV0w8enE3FTWIfug2mR8WtuvIaz7aNYWGTqioMLrhDbkD48q7yRlc8t2i0yPuu3mJMutTeJkgsTo7pyeEHZjtbEg74seMNnL06FSg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29d5da76-25e4-48ac-0354-08dd5a6e17b0 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 16:11:44.8160 (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: z1GFlAMKjZ43oCf5CUxxBBvWn7O7rvXX5dYWX5WqeMIxlSOyEVssVpUr58JRsuDkSu7sYLu62TRsnPpAuCAsfyaq9C/n80nN2lEfscwqA1w03XhkPg3iuHUGVDkQ6gi+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB10752 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". 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() .../platform/renesas/rzg2l-cru/rzg2l-core.c | 62 +++++++ .../renesas/rzg2l-cru/rzg2l-cru-regs.h | 25 +++ .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 13 ++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 171 +++++++++++++++++- 4 files changed, 270 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 3ae0cd83af16..1356be14eda8 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -290,6 +290,12 @@ static int rzg2l_cru_probe(struct platform_device *pdev) return ret; cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; + cru->buf_addr = devm_kmalloc_array(dev, cru->num_buf, + sizeof(dma_addr_t), GFP_KERNEL); + if (!cru->buf_addr) + return dev_err_probe(dev, -ENOMEM, + "Failed to init buf addr\n"); + pm_suspend_ignore_children(dev, true); ret = devm_pm_runtime_enable(dev); if (ret) @@ -321,6 +327,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 +425,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 86c320286246..52324b076674 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 ccaba5220f1c..d68d83340686 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; + 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 a3c4e2a0bef6..518420ad5586 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,107 @@ 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; + unsigned 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; + unsigned int handled = 0; + unsigned long flags; + u32 irq_status; + int slot; + + spin_lock_irqsave(&cru->qlock, flags); + irq_status = rzg2l_cru_read(cru, CRUnINTS2); + if (!irq_status) + goto done; + + dev_dbg(cru->dev, "CRUnINTS2 0x%x\n", irq_status); + + handled = 1; + + 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"); + goto done; + } + + 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"); + goto done; + } + + slot = rzg3e_cru_get_current_slot(cru); + if (slot < 0) + goto done; + + 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); + goto done; + } + dev_dbg(cru->dev, "Capture start synced!\n"); + cru->state = RZG2L_CRU_DMA_RUNNING; + } + + /* Capture frame */ + if (cru->queue_buf[slot]) { + cru->queue_buf[slot]->field = cru->format.field; + cru->queue_buf[slot]->sequence = cru->sequence; + cru->queue_buf[slot]->vb2_buf.timestamp = ktime_get_ns(); + vb2_buffer_done(&cru->queue_buf[slot]->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); + +done: + spin_unlock_irqrestore(&cru->qlock, flags); + return IRQ_RETVAL(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 +944,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",