From patchwork Fri Apr 11 17:05:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880709 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010037.outbound.protection.outlook.com [52.101.228.37]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1712521D3FB; Fri, 11 Apr 2025 17:06:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391221; cv=fail; b=Ze26IEVtYljam+aF20DbrQSmaEy99uBIpd7Pb5zWlfm616+eWuEfMwkhxqK4SB4j/WdVOsGvfFK1GNcBSe6CjYIVkEAfDJ943jcrB/Ptrr/sdmV5XN600o6g1b2GS76uhvaBes1qrrPm9hNdxkn97v49+DI31wx90IyaQb5oSFY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391221; c=relaxed/simple; bh=GwC/pnvXfePMeOSqvF7zTcSuX9PSb4MHw0m9fpN4+AQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MbYBfhLODpBYll91s0Y00xs5Eu9FXHrUwZcxp3ThRcyv2/awHzTTbOCBOCydcsqwItjZ5Ushl7egCYcDvgXBx3eSaVaPCu4n+K/5ZIpKAfT1MnXwcQ1zD9V2t97j6lHy6Skk1BHv9Dh3oLq8WOHez/2u6CyiSCL1jB65PNwU7nw= 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=YZRYUtnp; arc=fail smtp.client-ip=52.101.228.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="YZRYUtnp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uWLLcf6LsCpAHxqc6hvGoqZo1p/4NgFR+29cW4cfgY6d3TCbu0Nha5qjOUScgClMaeyQeY4ahnaKC8nvuDF8+DHGeReU3dKQ6TIMiqpgkHmEV6GLmBM/3319275t3SxwoIrA5WW/r0ZO+FfycdJmEeSnvTMQP1LcW9YLxcqJk31MkabZFy8X/IHyaCI+Sya42PsyEG7DQQWSziSmVm+JwuoLsXG4MEOKnr640E6Bi4evEE/9XqsQUCh+jg46YD1WZgQMBDThMPng56vOK76kt7Xn8eUh/xA55GE2k0pGcLPgaKlLpTBuyLhqpM4cE6uc43fXH+b3Z4xUNyoijnoxIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a+sJ/VKw9i+wYzK6ThZ2MwoL2lHU0JgBemf00RHc+9E=; b=ZmZOqKpQeFzY5RgjXi9CUUL80MenLWVLwlddkRZkXSRV5EopZTY/xc427RFzT/WffW9ZikrmnMU+foIlZPfhbjIc2HqBs2dauGRfoZatu6oofrfYha9lHruTvRaK716rS7iuaelIzNOp35RThXIy3lDd0bj4DsMROhjQbmhQvi685yUyKIPhR8EmCAxr2BlP4rhc7gOeKt/Wy4gfhTwBhWqQ24h1lJDzxKm4fUOryZTGIJOABujHloKZKgLhHb2TC5l4Flkd199SE1cVeaBmg6yM86OSyqn3P7mK98oMmCIUtSTapSirZHrF7yfzW2AOo+xrdVnXeqSjAzSXQxc/BQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a+sJ/VKw9i+wYzK6ThZ2MwoL2lHU0JgBemf00RHc+9E=; b=YZRYUtnpSJDdQvFcfFjWfQrvcUwbJQb1Hy2DaOZg1SYzurEU7krHmJ20f8vaflUsTqVQby5EHWztFavkYRQCvO0QQ+j9YgH6efcznSg4XJnZ5X1YYA9MUpi5/F17deuJX5vI+9vWCsA39i0KflKBxuj2kKZ4pDr34n4XXzYa+4U= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:06:53 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:06:53 +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 v7 01/17] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/V2H(P) SoC Date: Fri, 11 Apr 2025 19:05:29 +0200 Message-ID: <20250411170624.472257-2-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: b432e65b-ac08-44f9-e522-08dd791b4209 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: h6+co/JC29r883mJHrzxbXOR3r0rWzQOdwe2+1TI9bi8hhu9LqbtJOw/SZ6f2UmMZSrcyXS4M/8WTp2xb+ZzGuqz+lobLiP/JcmrG9miW8aNHJZU0WY3JflHhQqCXyKD7B1SxJDW1ZS3VGhqfz8nhNojqS0WD/8YnnEr6ubdP8Qg9FO3QHsS0CNFK+rXcg6Xj1kEwNyTBbIENKUgHaM1RaMaINPuX/sVAxH9EBonC4tCnxLoHedTRLgL58bFao7rFbJ3MhZPZ5wX8VYI+tzZCdrvQB1UDGXHTc/G6Edfrgko3DaFBPl7Q/K0yeU4qPu4l0/SnNTRBc0rAeNTfUwOQRLWgjBsuHe0YbUPO4NrbThxqhjzIoby5N4d2+Fd+QjDI63ssgizLLPb2XUEVBDBtCOQnrHxSb14DNF6N6bgjkO/ZcEeis2SqK3kFv2R1yAMm1g2LpDUyShUaqI+/L1+IlUzY8MUhcoEZIKyZwxspB1TR8gDBb9lkXxZ0/947Ww8YlIqSdMC1hpjZ2dCp4Xq+zVdsimBcEdCjgu3Rs3gcx8FJ0L9XtqAmhPiDk+sM+S9b7I+QjoRYoi2e1DicDFK4JPSM1VOKp7D9MYj+Ckds06nAiAZdnpvirE9Y6Ghl0xSHyDBr/BynYtR5Xcc1FJGgDn6PdEAbQG0k6LtAxvav7o0//vtDI08UL/jL7effWQ3F1SxNB/bDtvnkXglTu82/VClhrVSfjS2CvZwAiimJ1Arf8CvZpnOXJBD3SUdGXbVB0ZRJ//60eb+F/Xlm0UJMqkAsUgVUKMqSTWnBNBLrGUaNwmGNDB4pMJ0qUwi0BYEnam3dWmiiQf5nnfBdcDAK9a/4fbn8LIiIZmAlw95PI3d89hEcGLHIpaQTxo+lklmXb/8ytTkbxmkXqBqJMs0dgEHgloTE3Qiyc1zDp/3pHc6gutxXcD6F40JTMs3F7WbNRFlE31DupdZi0hfIWEseyk1I71AbFWjuyTnrUbQ3nLvcBOTXWNN5UFMU/OvYNCL9VHHZRwe/sbQD/aL2OINAxzOt1xyHa6jRRaOG9Ad3VjATqvv1P622YPxdQML40etsAgtx6ziOc+3s2zBk3vSRpRWmf7Q/2VN+NTDsLjxlvKJsjp0AWWk79cVkkCp2fSrXypbCncv5OBkPG83zGiwX7E/S5IFmZhE+JgmjMb6SaU2yi+IESXpZu+37UAC2B/zfqzrMqzbtOyTBEQMVQ3npMZ+KMo23qSI6MSxN5L0n9iSKXYNkwaq0D8V0yDA87Zdc4NB3ZqJqTHkLNvN2ZmBf0DFdRFMkxLDdILYvnEppm+BjunHQDxwcMy2DZqSfyZRYTOQzWkn8pgVlgDHeZBQfklJkO5QjrVttvntU2N4PRvtlSo7p7w7ka+m9eZJoQQfzWYhRV5AE7fhdHcWfMdMxcAPwqnp1PbPdxRM+NMQF28CWT1Lvg9gO4n2W2ilQ3DcpB32T0y4IuW6z8BFQ83XaQ== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: s8y5YVe+CUU6sGGbb6PaGteuOqQvxw+lcMZ4UyjFBaRlW0JlmUsGQOrsLyNWqYbn8C9Ky6/1TgGJrXBVfJmHVPowArkjEPhJeEzmFOs4OGn93T/lLU/mtT+DBH5QpIWrJ1a2+q5LIbDl5ovmP9XHlCCcfQ5/j3214DwtqlpB03jyuXCp4v7sIUMiRV57zQFBzv1YJgE92HUnacUEbtMRwHgcq6Jk9MMw5nZ5H10EwSAjXy2TqLIoU211wMw2g7L4Xm1nnBzPR+LVnZ4w/N82ECtdkRoYB58CEhRtvpgvTHzV+LvhZYA03rD0CRaNEURe5iX6XNcC70Pr6bxzF9ZdUAj/386OgBvCDyB+cmlBxnQLJ1CMXt6tR1S+9+FDVHIoySiR0uFbIkXOAUyLhxMiBSACepEO0Cua4PF+zxzRG5od8rMZi7UEnogYQITHhXLvQmtCMNLoO/Ecq4VjUe7L10AUy+mQKHrwr9xTXtlLhnVlka4GI/emiIgNBLPKoi1xlUia3RCKQgCW9RAGwRQiQ/wD6sf315t5qQH09JDam/lC06ANXbLLEMc5HAg1LwO1eehwSjbXOzxFyo6iPKyl15D6lYheY/Xdw2ndZVANz5Th7ke5N+pVaaWag5kByoIU/6FIdRcBVBkos+wf+SZhDHDpJQUJ7ILSdKYDieD+4AzeRGCqnRNCelAuCc7Uf+qq3CmXm4QB6TiL8F+zgJU6KdaVBjgEgIFDN+3Xy5qpoW8YcgHv+96q3p6Ag8HuVyNwsaQOe0aoZd37tPZVDDvXeo4RTIndtnS8WeBnLX7VJ3ZYZTudUh1n2fzYp50uZohvtMu4oqSjoecKsbg/5zuWOFXknzO5C8mQEaZd1kVRT3XAjJDOe2gRw6nFpUDwkt8vhmZa2Eb+AdrdX7BNP9El5L04r0K7J9TcRuFMGQuHFnQfivY76ktFUZQQA01wX0B/JmV28Nwy/UpYrIoTp20U3eoWoRDVb2vZM5C3bk6OMuixebfaCEm9HhVOvqWhzjZtitR9cECgM01+a9mX+ulvnj1ekwZpZmcyH7C64LqK8KofN2kv98y1xSFxiinpQkjOv+s9ZhrqTcydvcveew3HPPJOuFEIXfwkAV2WnGnvP9xUYNaBUr08LyA0u1vA5jnGhvFDPJXtPztDaSzl0RSqH6b1GH046FJKtuMzeILVVwvSZFeE2bvZScMiYmuhI8yGo5f5skg84RIvXyIJaI8MNBUx0Tikbcbagbr3Uy65xpVSPhE2SlzeRafESfOrN2XD9b8b43RFVRW6VVhqUkZYdfRbMR1jkQCZQ1zeK0fPTX52/wsIGgpd3ndN5mBQfvL1Kfdh54N6uGH1th3HfOhVn+v1hPhfqY9ENJ9hJcpLW1OeZ/fxiFiUPPyPYtGFL/HcP/gGIIHorqoj0zAu0kJlN57qPdJY6713fJzqbEgoXQCz1LpLGuG+vpUEl4eJzhIqG3QchK8eTliA5xL3ZwGPqGI2NexIL8qKOoLsitG145itAIxGBalimRSBM6kMaVLQsQKny/YnqGnR9n8wwqPEpMODplUgZ8ODMpNfYfV2jnut/7AReYzAEaXfSY1j4VDVwJQTfCr755ln1lu9QJ9QBVcJ6IRyCXjgLVQpSHpmFHQ= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: b432e65b-ac08-44f9-e522-08dd791b4209 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:06:53.8687 (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: KmqIyLGbeP3uo5mWG6G5E273MJADDOUslSgGLnNEWgx3gZyJpoRUm0oDFsMqlE25+DUfdipPrCUUWe5KbHrRveAyuBqb/X+/igOA5iSaH4znSFF0zk+ZEXlBzq5kcoRF X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 From: Lad Prabhakar The MIPI CSI-2 block on the Renesas RZ/V2H(P) SoC is similar to the one found on the Renesas RZ/G2L SoC, with the following differences: - A different D-PHY - Additional registers for the MIPI CSI-2 link - Only two clocks Add a new compatible string, `renesas,r9a09g057-csi2`, for the RZ/V2H(P) SoC. Reviewed-by: Rob Herring (Arm) Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Dropped empty line as suggested by LPinchart - Fixed minItems into else conditional block as suggested by RHerring Changes since v2: - Collected tags - Fixed CRU_CMN_RSTB description as suggested by LPinchart Changes since v3: - Fixed CRU_CMN_RSTB description as suggested by GUytterhoeven .../bindings/media/renesas,rzg2l-csi2.yaml | 59 ++++++++++++++----- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml index 7faa12fecd5bb..1f9ee37584b34 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml @@ -17,12 +17,14 @@ description: properties: compatible: - items: - - enum: - - renesas,r9a07g043-csi2 # RZ/G2UL - - renesas,r9a07g044-csi2 # RZ/G2{L,LC} - - renesas,r9a07g054-csi2 # RZ/V2L - - const: renesas,rzg2l-csi2 + oneOf: + - items: + - enum: + - renesas,r9a07g043-csi2 # RZ/G2UL + - renesas,r9a07g044-csi2 # RZ/G2{L,LC} + - renesas,r9a07g054-csi2 # RZ/V2L + - const: renesas,rzg2l-csi2 + - const: renesas,r9a09g057-csi2 # RZ/V2H(P) reg: maxItems: 1 @@ -31,16 +33,24 @@ properties: maxItems: 1 clocks: - items: - - description: Internal clock for connecting CRU and MIPI - - description: CRU Main clock - - description: CRU Register access clock + oneOf: + - items: + - description: Internal clock for connecting CRU and MIPI + - description: CRU Main clock + - description: CRU Register access clock + - items: + - description: CRU Main clock + - description: CRU Register access clock clock-names: - items: - - const: system - - const: video - - const: apb + oneOf: + - items: + - const: system + - const: video + - const: apb + - items: + - const: video + - const: apb power-domains: maxItems: 1 @@ -48,7 +58,7 @@ properties: resets: items: - description: CRU_PRESETN reset terminal - - description: CRU_CMN_RSTB reset terminal + - description: D-PHY reset (CRU_CMN_RSTB or CRU_n_S_RESETN) reset-names: items: @@ -101,6 +111,25 @@ required: - reset-names - ports +allOf: + - if: + properties: + compatible: + contains: + const: renesas,r9a09g057-csi2 + then: + properties: + clocks: + maxItems: 2 + clock-names: + maxItems: 2 + else: + properties: + clocks: + minItems: 3 + clock-names: + minItems: 3 + additionalProperties: false examples: From patchwork Fri Apr 11 17:05:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880445 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011000.outbound.protection.outlook.com [40.107.74.0]) (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 E2042224B06; Fri, 11 Apr 2025 17:07:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.0 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391228; cv=fail; b=h+Dfx7U4LMttfggcEtD68kp5tXUpIc9DaKsloDOr952AObbS/ggXvub55yUcDDnLbhhMH9PcQ9nWAdSiKamrpl6GvnYb38/DtIhslbzemZrZfnH0Z++eXUZkwyYT2o/P4iWkD08uz2OrjG4mk3dWR8F+LV+YxmhGLpxy9tAHCUU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391228; c=relaxed/simple; bh=WB0gky+PvyKTq9GLo3NZzCeLeTxen0u7m3GVboV+bxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=s77bJ7AfE4YJn/hs6SPGwtu5DBn1pvWjxUiNxam2zfSCy1+FPrbC2au6H8vIx2zncL/OI/6+ynxcVDFaHKIppITAV6ZvuAHknYjro1XNuYRQJ5VAfFNnW0YnTr9oPS6rnt/n4FQcRNNKqiu4TvGr+2nmVtwNl4/uLzJWWeaQ0KI= 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=R0S7HXo1; arc=fail smtp.client-ip=40.107.74.0 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="R0S7HXo1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lq1MOjX8ITbrr9WvnS00XCOCleyh6Gp2NzPy0TB5+LJTZkzhpxZAojHCWQNtTB2lWhvI3rQrP6pqnC/qJY9wMVYJdPL1NgKIqvLVkmf/UPjvfGGQrJVKhcDvo8KSATv8SFox1vL+zOGNwqEn3UG1HCJmhu9/CNkkYCWtinDcdRWjMiUElkrTBB75nbOhtjYqw6dHfTGe0LnJNBf9SRIhULITYxkzIT05y+lBnT5X7wtDSHV0nHKjnGaGwwf2nR1AAXr8ZNdyXTfuRIQHWJ75rxztGY+0HBnhUDVysJTzkt1tHHWaFreSguvLViyqgb513gmnVtnN6fgt2kRHWHZ+jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9aYkYpLNwH4DvxRbvPmdoz+LCX596HB0t9+usGAwlmI=; b=CB56WiFlRToJdRnLQ202hwJXC4N0PQkrqRRptF9LKMxkcqzVtOT2LUUfJMd5i7XPhsaS7mVS2m59IzhvEQ+YrkeRvgPJbxMFxLS/jqMdpVxQM51rX/N51+Bli7VVTAW5OJHWF+7jSbBHkCKEjh7MDuh/YmvDOF+j7pn05miVK5XVKhk/4ibX7xBoL2t09fYjZ+TdPJxp9EV5gxQjBHZnA8Ig7razEOZX/Tdly/DQFHJZyjIwnO21QNUXdQ97pEUfzV747Z8ZhYOrMV7askTr3aCxjywImovTX0q4sESffoiuU7B5Zb9hNnTQ4BiTMCJjXRKvErZpt24mLCsVe0SK8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9aYkYpLNwH4DvxRbvPmdoz+LCX596HB0t9+usGAwlmI=; b=R0S7HXo146BaIeeAfH9bIul6gR2I9XU8oOcHUfZPEP+xaJzUOBU26ECugEn80VWsXXgK+y6NzB7gCqQwz1ijhRR5Z49Ikzb7EJd958fHoo7pQ4T25pwk1H+0avPYOTeutmW+ox+iicuOiHwHuFkJsuqRspNiNqNM3EtQV+/DBoU= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:06:59 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:06:59 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , 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 v7 02/17] media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G3E CSI-2 block Date: Fri, 11 Apr 2025 19:05:30 +0200 Message-ID: <20250411170624.472257-3-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 97ea8b37-6bf5-4cf9-a797-08dd791b456c 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: 5nztiNKTq5jVxwNxBRA/N70ooD6FtIK7tihysY2za6u7dpI3rO7vKcszYD8usRNIqmUlUeDv4OQDugpry3S0dOk9Kkh96Y08Ur3qeXFTktItrIzwO+4mmn8yogqHIMHh6hecRq/FwbCPRCnB7nRAoyXqZUdGlNCPfWNNmVlgc5szaDTiPDc/kD3ZUn+a4TwtjaJD0iX/e2dsi6DLkgMxHhgXwzER7oCgTgQNhBzGFzaK4tGchP2LFZKb9IsD1KzKOANvi34ZoBbDMuqjzVu8SqaBfsVEj3U0xswyg4aOW/ae3bTaxb7iWVjCvAu5+Z1Fow2ZWpt6nvpzsH+BHPil/tflZzqlNvPlQEGSo1Sa1+BizpJ9iHr3liLC79OSNO1/uUoDqBVkURJbIb1d+zP56f6yGM+47bXz3oaqrvM/p1LjnS7MPKcTMkhjGdGyQh/U5wk9bPt0wKbDLidBU6ZaXqEmHQ5TXmPPGxchrk5NiqtUciKMLoFemEZTYzvrlH3LosTlyPHH1uKXatSK/bsl04myNFWYnR8CRtpGFM17LI4Oef4BJUkhGKj4ODpnzvpZqsxSPMqNL+pTSVz1ZN46l5/s1FAbAzBXm/raSR/dgX3jXX/Qu3EQc0L7pWzhHapmHArSJgnXcGEDdr/Q8Wbtfs4ks4/qG6FJm4LSFiHk/mrtYwg+Xdl958CRy+8a0Jjlh91hVTZCaou/4V4HBsWS5HyNCyP+eNpRQwB/1a1ylQSkVw/zyJMyxDmU/ZElVgjq30kMf2uHFZtoVsjoHS3sH0pc0qVnhvbI4/A31ZyTkEbeinTMr4z1QZn6B4RdZBVlZrWglwVz9cW8MM8njiF4mEjPlZJZvpfSJ6k0XrHU4WgIY3Atwzs40OryLeZhUBvI3VFeM6IDmd9H2Pm5q3jee4pYXuG6LXDzqLF7hRb9VNjFAyM0XZOufY8ua99T3XQfQHJChnwU1SOehuiYSXE9MWeo90IUKfbr80lNO/GnsDV6IqG/mwGdqOSc3hzrVluXfhenrjUts1fCzbsJPnwsIaFqSBNaxi5SVRLQb6RAwWrOidrnLD+zNbpZGoR8D+T9vaDNYS+PjJcGvXe7hrbTEQE5MmSquTcsaw9YRrSxT+yVaq2NFUKVUxDqkniJYOACewAuWMbYx+79nt5YxYfB66pts2LNI/tIoVKlXqjs3kcYyMbgbqVEnCuVELkBl6tzRbZWLAzrdt+DuJui6Zis2JU2yAjKV5JvuC+Duzsiy0LgYj1EzQHkECgqt7Diyi11Z1vfn1r261z3oVQYxu0qXClm0SAZI+9VOF+1+lWxeemo3grfoUDZeEJzoN4Hp+Cv9NELR95DZk5pYYi4ijPGKDrjS60Xucns0wvzEij5OqTVPk0pYAvtYRgQlfzlR/cLv+X5pSBXI8qjG4Zasv7wBHJPAuKco/p0JTfh+6NXcld7pQmSu7OHIU/4FbrhV7PnLS18JTFArZNcYeWDOh/8QA== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: l40AqH5JlaWswDdveJ2tQpSOyQgxaHW+2MR/ipTMj+BtE8GZG3csrkjwVM8jHwvZnp0pNhBTaiGYA1YkQbe76yD5/iP5sTMA80DJ12DhdWN0d3ejKJIoRJKw9Alj41QLMn3sF8WRdqnlScPE1SP0bj1JZYIExlz/SncaGbrBLL6cArIuZOoTqSR5guSZb5sHbUV9JIZojcQVofOPKUnzKfZkHYmZW32vJTw+6RmOl004f5hZO1Gd1gLs9zAGROCjdbuB9y3ABT+7XtwOs3R4vyFnDx3Bt2asjs5fyGtDz2rH7I7EwxTsCXQhIbrDWQ8oZZwPp947iHNcfjxJds3qZh7OmVrVmzOlGTerlUcGKAaHH7PRy+9sbLWrlUrql2cM1GK/lztl+QBGomgls8NezXUSN927IgElZ4Jcj0RNtwY6zi1x5IBGNWPtB1mDHiME3eyjIUMF00loDr8OFvQYSSpjBS/YQ+QrSBAay+YS83d2cFONvEwp4P1w2NOO0yPAB1VCEI1e4GKL/27j8lv4zg3orCOlNKpkjgelVpSHNaWzTIviCRj2ZWKr9cHD+ivOTdyiqI0RBFkycgPNM+pc2ADNL9Heu3SqwuKX+C+4FMoNZ1Cy5fuw6s8l+5IKfxI2IBcBWfhGH4Tw1xhRcQQmfRwo4cOF/3Qp7Sdh6jsCZD14A7PcRfFL3Qk3I00dwxXwH9y6HemjEIr53e3aTah1DlmQWpdDscLqbE+EbRK0ToMYaY3fK5sxdt9/S91vER2kKPoZoui1oLYI57zdAHPS3wGAjkk9Kxx0s9zZ6wyK/PK17XkoBvooaFRhxrZ6spRdb/Kag230OsuYQteKkI025OzGTMfIzPEs8kP3RmfAZGxJDCjfSfA4/4JC6IRAirCz5hx7LtAGJxymBnNJHiRGy6UvIMoBOwCMqn+YywV8eEMSwt1HI5zC/arRk0MsNFpYlfXsfQagfc+gms7iVnkRnk7B7PqkB5LDReAKYoF8MnBAXpsiih0rELkd/4qPSKR1XA9Z4Q1vddPRUhBN0+K3TVGHe6twrn3LYNEiQ4cxmBP65KHJ09pMLesuQxLUATb0e5J7SAE9ikq5vUASTdScSgRILAc7s4aoWp8hoehVPUoVHEOvaS2egXZv+1RZSuLfidBmrIsT8zQ1bywYiA2yjeufa/dCEgC8ZoV2jUArWqAqrUmgTz25Y6a/lhWkwnQ56suMunKLZ2C21g9gQeWRfvsikiqzJI4IWVbA8BCVLQ9USuHb+DZRkqE9Hxv1cxQPzrC8YxVIsB0299E2FWRuCXZaw6yPxLHGu0oprN0LgU8Jbrrqg0MeRzg+3CiahA6qtW4AUs38kRNF+GX54rrBXufRcRJ9bJM7rGJC9LZpDhRupuQtrsTjh1rxUfncNPx4rKySTxQzC5jRaEydREwfYo5I+s1Yzz5rgCf9AEIWBZPxFN4f8E4+Y+QHa36DF+e9QTQYitIwmUHKXEbO/yvIu51yfCBB/ysSxm/zDll+r9FSg9tE/c9zxqlVb2qCwpWyBio1e2BgAsQdSJJjgZzw0HJiGz1AHb48Db3p+mpJk8zkqc2FKyvuicTj2Ai71F838Q5GepWS2JAqFvhPgLT6Q4tt5SoBUwDuZCNA5roWjz4= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 97ea8b37-6bf5-4cf9-a797-08dd791b456c X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:06:59.5937 (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: 7+MMXfpACp69iPQF5YLFQAOxUzgNPTBSl6rpXbZm9eaw0VevIko3fUby+EvWfOONQt27t9IXIaK24TxH7QU3j6pH7fNsfgMFwx2bR4vtCA10LKKS10UKSd+aAqnYhFqd X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 Document the CSI-2 block which is part of CRU found in Renesas RZ/G3E SoC. The CSI-2 block on the RZ/G3E SoC is identical to one found on the RZ/V2H(P) SoC. Acked-by: Rob Herring (Arm) Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Signed-off-by: Tommaso Merciai --- Changes since v2: - Fixed CRU_CMN_RSTB as suggested by LPinchart - Collected tags. Changes since v3: - Collected tag. .../devicetree/bindings/media/renesas,rzg2l-csi2.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml index 1f9ee37584b34..c5c511c9f0db2 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-csi2.yaml @@ -24,6 +24,9 @@ properties: - renesas,r9a07g044-csi2 # RZ/G2{L,LC} - renesas,r9a07g054-csi2 # RZ/V2L - const: renesas,rzg2l-csi2 + - items: + - const: renesas,r9a09g047-csi2 # RZ/G3E + - const: renesas,r9a09g057-csi2 - const: renesas,r9a09g057-csi2 # RZ/V2H(P) reg: From patchwork Fri Apr 11 17:05:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880708 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 4A84022A7F1; Fri, 11 Apr 2025 17:07:10 +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=1744391235; cv=fail; b=ldby9SLfog9LHrrt1CPLwoJTOdkCYvw8oXBXmDUt+aMJp/TEhhlRe7YS/+jbS0KSgnrI3g4OQpODukvs0FYLsGuVojn3kc7AISzPPvpeBUqKSdL/enF+4M4e3Lr7OHOS854hkgXtUm0y2w9ZPvfRXYPoLd6XGT8RbzfIPcja8GY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391235; c=relaxed/simple; bh=5lZh7HN+FhdMMBUEgU0P/qwv/7pYJNB9JrQ4K7QqGKc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=SVe8LnPBbuuj6S5a8PRf0L9lbhXaJYiukAvqYe01HQcURmYm0UbNshO/H8XHAYHFrFsJfvreO6FEuchWOUqvrddDN9NUTJbs0GejAY4NJEHRmFwjR830hyAbDrJymkgabfi1XjFdOvyyyCfp080ZHqJM6mwlCDowKLfo2hzeOyE= 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=wbLgc7Os; 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="wbLgc7Os" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JdbzolxvEKHqSTkbH8smYZsSD8DXr+2Ry5zEgHwtFdpd+WdT9xcBH+mS7uJQux+6kedvltP3Av2gCzN7KsyocDGxHSAKfwtZmMX4m4Y3vh2kFqMuyyf0VAsfz0CE1bHtNKyScwFf4J9ggZnTf/3BVEmSgrf2WEElycCFSV3Q1TOGq/pywx7ku9NAm4fjzTx61iI28UiGDlCpFLcKqw4RXhTwT0xHFUQIpDeDLotZ0bpDZD1qKeb0VOKeAwBWqiDnqawKc3L+lrxWP5rUwJCOCz+AoMrrg1bXKvkRSiPHw/QYQE9gKwrnFpmh8nKJSWwlTLvFtO7mFDPBHMVlHgtqNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eKusPT3wHBmXFoee0MVMf1m+kJjTUL3CN92mSEDV6z4=; b=YWs39os3Q7vzSFtGqT3wPqy/OQO//IjXJcJi+3IWe6reECF6rwiEF3ZpaoMwD5CZ4Wf85GqHQ3GHpK7TTLnMyed//DHCkIk739W/EifaQr9GXkV4ZDfzsvp8YIGyGWjfoHtmKdAUhJMwUdGZP97i6p7OsEd5LfrBzvk4qP1lzpRht4kiyOgmVwTPjowiXzyWJ9hDZ7C9LWoPgqgyrPxkgU8PMWgSJmO09Nq6e6txAh72BSVFDGYs3EYYTGsmTzraK/Q1qEILMbt0GlMsD3m35ahnqSW/zHsX4ZRgIZ969cgBym93ONleZ0noDxJweXjI+o5gQgPpiinJLk7MdK7qsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eKusPT3wHBmXFoee0MVMf1m+kJjTUL3CN92mSEDV6z4=; b=wbLgc7OsbFEtmkbPEkyYWobwItBQ8BUNBmeCo59zbdAg92RcF5n9N9SYN3sgi6o+9Rj+3p3IFVPT9ENkNlYntGjyGUnywvx3T3wpwstNmc5R5Gun42jvi4zkIP057vg9MltR/ZuvYPp2mdHP058ehlTqPqptdM4uJOFaDNGC/g8= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07:05 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07:05 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, Tommaso Merciai , Rob Herring , Mauro Carvalho Chehab , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 03/17] media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G3E SoC Date: Fri, 11 Apr 2025 19:05:31 +0200 Message-ID: <20250411170624.472257-4-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 6675f17f-c62b-4340-b96b-08dd791b48ba 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: 5BehwX8NdmtNx+j7zg8a/c1HpuhwMtELKV60tr+cjNYC5HJNXN4J3CAZG194TDdHcFVfgvk95BV2R98qRBQYrdXD6A1IpLvfn2j9HfSHVuMpiA62uTD5dwfpOIv7Dl0q+PB755fyCYm03SdWMbOLt87OTEjd3rtHqfywTzHDBS/yFkgVryvYtgI2YYFtpleCSnvmL0Isc6YVgedkIGvlkkIldedAYaweb8Vm0X918IDFqDvT2pwRKd0k6SukU3yh/CNFCrC2XlSZ5mqKQFszOTJ5R0jkYvOBCTYePK/8gc5kjElyz6upfoqzIQZMevi3h/TTbQzOBYM5TdL334JE+pH+7UlKzisPhkeIW9Ur4mdfzBsxSmORPFKksNkfmrdG2jP27gT2IxRaQeDS9Rn8MXp1vwTuHr0u4BDRkJAQaImqsTmxtK9ClpgA2D4lDe6TlSgHv5Bm89X1jqrzijGqELcg9elSOd8n++6T4bhQd1oBvDsNcvwiB/M8dncuCPSn+8Tb2mRb7is14X+k6q40M8k6AIIao+9JLTT0Lok1A4aEpOAMGEpuMh/RtXWikAvMgSW1yHp16Oda+zKk2Zhsj44mMbJR1okE+niu+nlnFluilnHxSW+ytL6yHAlzPlaT0SKYNNq2gIqN8A/h65NlScCn0e/lQJ/2QSpZQoICStilk9wZe28sc65BprHlw6UJ919YpTGEJ6eEy4J3OSWYldwFMST9iqOmJNe8fDEF0D2vjSE02+JLZNCH8OlFTe/fd+2xhvmykpq4OFb11h0eWYI75j01jxnsOtASk5VCGr7eSn6cKWZP6Fk9i+1+dTyTjh5d5CE37LiWBe4zOc2cU8ncELGWyxKmYEv1NVpSBOo8dpZKLuYtvYd3ZbfiTi4Si62s83IXzbY972ZOkHAyRAd2UiJIh/yC0153foKHT6l2jMZhCigJ6GXGOfJSJBdU6kIg4p8YMTPZwfxrSocpuKdR3fG8hrfnQsyPNFB3FPAnyWVZgFLAbS9A5zloHbxNBEAuUj1gVbCaC5KZ/XhkUubyjCj9tyKQsA3vV7fUCwYGmWk4TNp/1RV2TKi9i8bIoQN+7GbsWD7dzhu352wDxPPBO/zKQY0sI4u61GwOmCR2qW/xSOILcHDAcOLUA9wcbjMrSepFD/1+OJiIDgMDwDlpiolBhaOGcwkY+TdXcG6O+l+FAGYGICQuXHRDvcO52W776kLDy8exlv3A2/r53VWrMFw0y6zLDCwJxgJbmJnlog+/YrvQDbND9GZBSWDiAiFTZsJZVSeYgiu2Lu1xoObsz6sxgniSfMVT35LAmHeoZNUFzgaaB8eHmadDSG6gLE92nv0TRoxbPtLQG9ns1kkpS+0LIY+wPfC345xQ159Nt2/XdMqUMxU8TZjwePXVvB46yPriVjdG+7cT63fkY1yI29iECUc1ZgmdilsX9cz+Km0IogkGbdfJnBM4inqDfF5h/4eVaVL77wlkax89fw== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DBn+G4o8xIFtrdhkgA0sXvWoul9Nb2/VKFwKqUgS5VY6BGyCMvOGpNKiP1BqaII4+lh3pvgHge87AS0jZKeBv9ACzNiRJD3d1r0pI3wvu4dxYgBkwEYJP1ucrdTD/9dnW61YcbIwwzyZmUmNKAI3KK/EAVav7MbztCjIPplj7O1qqiU6fCf4EYvwtRfoSBJxBXG+12J/Oacl68uWF1qNFMGWl4kqEPycAiTcP1vP/QAhneKrxNKmAG+X3CB47ZAFoctlHnKPIB9eWrLQZjlOImlo1bsgHVXSfD4TwH9pGhEj/f1/XjI6GfaN2m3XjQ/nRnoGG8BtsGSgiNqd9JUkSxkAx8AGXDKIZ+mhaYT91mthXxuPGsDFfj+bXnzV3DZiIt8AVqRQXqdfpGz4icFIz0qEnmzT2S3Kf2g5cYxed04QLtDn8NRpFJmlXIeGuAiY6q7US7722EJrY4QM0xUethcBl3FjqmcPwouoGi47o1QbSvuIfmtQyohZg94fsPac1Nzfafx4iNvQrxLCB6eDRb+KlTKAsMYsVvdhLs9XjNYudu4HJN6asmTihtNSAaxVjvpyR+61phtNG5Y2yUB/B5mshpzUYYi5kY9yNJgGJby9vWiEGy1Sf4/tlYER6/Roexd6EMWWhDHQwLmTY87P0pIicWeKAm/3ePqMMgt9DhiJC8qLpuGLPHsGXrGoKe39MFnX1UlQf1vgAVD0qzlRTVZn3Sva798O4jATpfIAt85qeLEj7G+outUzHOTmIWRS5SLe0HuW2vtoFP8FKmimF2KpxFX07jaW6vfDlFLaEE0a77ZoHOFHtP0BYm3om6GrNj6i6WzMtEVpYF1M8HB6KhtY7fH57vEBqJ9XHE8EumP6Ab1Ckn9xpJs7QdqQHaqXImPWBWUcuxGwTPpH3f6NL0rpsO5RBuIsaW1yg2whyXq3gDtYHVmCMQMPjarOTPBDQiXjiDL6ACgfNEahQZl/leqTXFrCNQhW8AQc/vhG9RRqDi+BI/wy0tq8E2K6vHDWmxs15FebgyIhqEvRukyKK4ouO2/f8kMcdM3ZOPXRI1n/cAfMMd4sM137o9faWlg5Votb3mEfdXIYRUNKPTm6u3BCXKc5DfBahByqDSE2WOY3hGu57NYcU/UNGti3Gaqjbjn75AH4wf+WmSUTEcUU1ne9ghBbY0SLcCNZduNBhrU1qAM6xdB5fuPvhjEZcAACcYsjNwx2VXXgmtUEN3qdMj4KPe2X8hM4qU4byuXdkCOUNupckTXrFcJks/6XPl+brTeHjxyuEmTUl+rpTJuZ4YFWoN0/wZSNmERTiuomYfUXOef5zvT4uI9bhk/+XKzcc48cEid+biPwKhqs68tPl4r6ZRgmsUeIptzbhPRWt7vjGwe3dx1v03L1eu7w8bj0tcmCyJzN0o4lGvtMH+Z4wWGByXcOTQKihH5GrSHoaMnqMptkG+tgOuiKjoEDNFt47wwIdGKMVEB5QviBReqeib5ul0VXxLSR3xGU8u6ZkreuVk9vFDTc/540wT39U21Y59roA3Qt7tNL/iU+bH/ZgWVl8dpuATQZ51WCtvuTh7X44sorguGA3xpQz7PnleTZmRgCl/wdo/EShmCfb8XdqP2TQjBbRgNUlfeQuHT/Iuc= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6675f17f-c62b-4340-b96b-08dd791b48ba X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:05.0828 (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: K7eFJcjC2iHy6F5i2zHskMPpNo7fDG0yJUuiLlJ521cG2OCrZRlibjRnPPNY62jwchoHewh9rCNwNH/ZvXuGes3FJjuG8F2yP/rkj92LFEn9PWzIxvrFOcBippoMhQ6o X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 The CRU block found on the Renesas RZ/G3E ("R9A09G047") SoC has five interrupts: - image_conv: image_conv irq - axi_mst_err: AXI master error level irq - vd_addr_wend: Video data AXI master addr 0 write end irq - sd_addr_wend: Statistics data AXI master addr 0 write end irq - vsd_addr_wend: Video statistics data AXI master addr 0 write end irq This IP has only one input port 'port@1' similar to the RZ/G2UL CRU. Document the CRU block found on the Renesas RZ/G3E ("R9A09G047") SoC. Reviewed-by: Rob Herring (Arm) Signed-off-by: Tommaso Merciai --- Changes since v1: - Use oneOf for interrupts and interrupt-names - Handle interrupts and interrupt names base on soc variants Changes since v2: - Collected tag. .../bindings/media/renesas,rzg2l-cru.yaml | 65 +++++++++++++++---- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml b/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml index bc1245127025e..47e18690fa570 100644 --- a/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml +++ b/Documentation/devicetree/bindings/media/renesas,rzg2l-cru.yaml @@ -17,24 +17,43 @@ description: properties: compatible: - items: - - enum: - - renesas,r9a07g043-cru # RZ/G2UL - - renesas,r9a07g044-cru # RZ/G2{L,LC} - - renesas,r9a07g054-cru # RZ/V2L - - const: renesas,rzg2l-cru + oneOf: + - items: + - enum: + - renesas,r9a07g043-cru # RZ/G2UL + - renesas,r9a07g044-cru # RZ/G2{L,LC} + - renesas,r9a07g054-cru # RZ/V2L + - const: renesas,rzg2l-cru + - const: renesas,r9a09g047-cru # RZ/G3E reg: maxItems: 1 interrupts: - maxItems: 3 + oneOf: + - items: + - description: CRU Interrupt for image_conv + - description: CRU Interrupt for image_conv_err + - description: CRU AXI master error interrupt + - items: + - description: CRU Interrupt for image_conv + - description: CRU AXI master error interrupt + - description: CRU Video Data AXI Master Address 0 Write End interrupt + - description: CRU Statistics data AXI master addr 0 write end interrupt + - description: CRU Video statistics data AXI master addr 0 write end interrupt interrupt-names: - items: - - const: image_conv - - const: image_conv_err - - const: axi_mst_err + oneOf: + - items: + - const: image_conv + - const: image_conv_err + - const: axi_mst_err + - items: + - const: image_conv + - const: axi_mst_err + - const: vd_addr_wend + - const: sd_addr_wend + - const: vsd_addr_wend clocks: items: @@ -109,6 +128,10 @@ allOf: - renesas,r9a07g054-cru then: properties: + interrupts: + maxItems: 3 + interrupt-names: + maxItems: 3 ports: required: - port@0 @@ -122,10 +145,30 @@ allOf: - renesas,r9a07g043-cru then: properties: + interrupts: + maxItems: 3 + interrupt-names: + maxItems: 3 ports: properties: port@0: false + required: + - port@1 + - if: + properties: + compatible: + contains: + const: renesas,r9a09g047-cru + then: + properties: + interrupts: + minItems: 5 + interrupt-names: + minItems: 5 + ports: + properties: + port@0: false required: - port@1 From patchwork Fri Apr 11 17:05:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880444 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 87A5C22C35E; Fri, 11 Apr 2025 17:07:18 +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=1744391240; cv=fail; b=Gzle3hzQgCG3DmbuBGbphNNTxxLFW8/PtHMTVQO69UHl9Cx1LCYh138esoiQg9K466i+Z+SVj18av/AD+t9cQRsIcAYk1821CYgc4oS7LFmItYEpLa7TohsgZL/27znj4SMZO6eWrOifPhZtsUHrZ6yplirzTC+8IFdZzSvAHHY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391240; c=relaxed/simple; bh=66xXUnrKZNA3NU6Ssqm6z65XlrTcnHLH1W3SnVeC/48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=q1RogW6LFymn/W/fJHSSaX+OwNjWb3BzI9U/dQEb8DYukyWKcNEGUMwQZz1ZU/OZ4quH6ZMHi1UgsSibKfxxzrMgXqRFNaBItmttyVmml7B6cx7od6LDRt/SN+2u3MSwYHvHPj9KLXYM1ct5KjOTYoGbcjYhfxFHuQodLEamWtU= 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=KEymjIYJ; 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="KEymjIYJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XtLdv6GG3OszQ4cQslmAszZt34y1Vmmst+cTXLMncilLNQmOqt+NiWiiztYS+2LTZfFQlJJioVy22IGfqWtfU6Eu59LpoWPcEjl5yvaBxRUW5xUdEb71NsfU8SeVFgeDCt/ACWQk0rq0IlYbyTq7obeIRjvmte9ycKyVDbqlW/uHCsSH4gXS3Uiqxs/5zzxnXRf759g2tRGk7XESPfp6TTtpwMCIzRxHs5hicwptwJwHyG9Z6SNxj5qkn8/xxfsYOxQOVutu81R1x5xAmn6jj/uKh7UFg1W/F/pKq4qu4FfrGKvK5qG/k/SVmPTHL5cVmdZYZp6+PX33vS4WdZR0oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Omc5F4uisa8utpUKhjmd6yIlHr37k/GjyLMcJmSW1zI=; b=o5I6EIC0ZkCjq0d75kabxP50SOThNnm70gB9yXJrkdzinij3IFU7cVLlnjn8KFSpiWoUS02B5J4sdyrGQ6vEvmSIgqRygca3QJFqTsJW6WAyFn1BFjtqQ4DtdleDEz4PIW22fEEPgNKekstVmyfBxTd8rvQ1gTtpKQt63siWWPCB2vAqjhUUlsiCsrfYBb1pUMh+YkzyfxKKO2AdqdG58ewbS0fdN7bzhriCsCvMZogbnFppLSY9ezCOb232VPWFo5cxnqHN1DnZztp4TNwr36fEqN4xGhQn+A+q0WjS4cJ08U6PZFQzoZim35XEfxnY3GF7urXP96c2vux2ChsGpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Omc5F4uisa8utpUKhjmd6yIlHr37k/GjyLMcJmSW1zI=; b=KEymjIYJroOCGFbno0yZowJj0hERB96FYkMv3VZwF7/qQGNys67/a+occm95GOTQ2NBpM0gJSwJLwqLhAV14cUW5MMGZsdvMRFJx98ffDvDV1stDIOh4TYTOkXUY6dPtq/sd82woJb2QU6wamRegdU9j9xawoWCg/8wiyItVMlo= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07: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%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07: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 , 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 v7 04/17] media: rzg2l-cru: csi2: Use local variable for struct device in rzg2l_csi2_probe() Date: Fri, 11 Apr 2025 19:05:32 +0200 Message-ID: <20250411170624.472257-5-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 782bbc77-8386-42f7-7573-08dd791b4d27 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: SP/sLWG8QN8LzGhAHZaTNBcTFyT25GAZk5QrVeABMYgGqH7CCSB7O1udbtVLcwb9bN9zhoLZcakSU7nJDCJyAar2mQz2WwgaHiuQR6LvLSkObPUPTv/3dxBBC4gi6dEKsDiRX0h3ta2kQTDBYRidxLDSorFNpM5K//m+ApuvTZgeUtaAXim3GQPPbvr1GdNd56tjLATWyqDzsoJl0PsM5VD/Vi/eRhtqObzi+D6S61ubZOdIVPsIt6kFdyVdcLYXte4//zJYbK9fTEkKw4ZV9P+A8S9oYBuuxOlP5iQA2b3BxaVcfdKmv+4ErKX52/cBn2fvDDrWKpUKPKVCLWD+qQR6cEZYeapdZA/mpWXYPp4sprR9zgABFMC1ZQR9ftEztC6fhJWjoI5eTzrjkUuxQ7Yhv5tf38xLHvl7r7GrPKaCDz9oweQ0wN84u1A/IjwarRbOkxOt4EmGkwtNRc2n0Rexf6Zwp3lt4f+bo14xyPRfYhckAhdzhroBC0HbsZWKKa7oJCKQhwwMf+j8dRf5v/j23IG9+7mzZeNX0l8+nu45nghx4jjeej3aZHEPC+Rga7G98m5I0DG7UwwgMemJVmlQV9UtPxoshYz8q4URP/QXzfq4MdH90ZrR2il0IsJdD18Ar2kBKiX8+e4zJPvJm9SZG2v2WMB+ZBGNcEhIx9nV2Qyd4VZKGo1IErKcvryJvyrdyKjZNq99igiDDR1SQWk24WAqmKcTZVbF9anQ5O1u5Ca0HwDovBLCS/FgvuxTGUry/rMw8J17T5Ke2dMBitYsxPsT3wcV4RJJ4IAbLnF3MGsTkkHbI7BtSgrlF4E8efIwUzwi6IeMETVzInpC7CbobWTJfw3aD7S7EWtrWQHDfG+wYmcB9iqrXmIURFi2WRTDzjULHjoRQbJE3IFCGW64xLyXyBttP6GclTDkQbyS2n0X/42JWaFg7G1a4Dkl4tvpQviWU7emClkrSB2Z8VolILeCbNUv1seuzfL/od03akfjGWCAcVn3un6krs6dDf2HV+2QOjy6DJEqy4HfVgHEU96VATcJ7N0ESTSXmYDPhGr++2HcO8jdaUGLdwvatknow1PvmRA8DQ1b6aZX9+T9e9X4pbwKUUqXXW1oNDAzSOgta3N0u0EeMHdmWJyOfYo+U/hNAiOtABDf6yrAMZ2bcjKWvVSD7DscLZfjgMnuyP36nxwmKe61DuAK+3Iq17nvLBoHrssJFZe6zl7xxU1cBkfBRnwITmdFk7NZ2t1lRMauooI53leAEJZFHdHJw5HzAbwatahja6cs/bXjtfuSaaf7YJ8aUQTvRKGu0l3HbHFfefVQEZed0RS5mIXXuz7Vhvyw/1VFNhkwoq4fG1cXoRKZEr8oeMYpe0lMuBcKZQhcLFz5zHd764tgA+H4ow/zbE6hwCp4SffoNbECW9qec/Nyiyj/VDHqpWXdBxM2q8eVzh+QGRZM+PAfZg4i8e0xNsoEqUE3c5G2GQh60Q== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iTFeq2/pcLgGTQCnzPbiuCkxb5IQPyDyao3gshjIVLjJ11uyftpr1nL0ELLPmh6zsyvfLR+UAPA9q39QZjBLnlxedZUkf+l36PZ+nod75HolEQXahg7JAeLlfcPwlf7j3MGO5+emad5fl2DZp1u1Gw+snd+OLiDjbsgJxCE23zoUdrsOn2JJkfWsaNuzeZDnaM3JJOQopvOo6sN6HeJpQARFI3f8NyvoCKI1n768M4skSPjjN7bUtB2UuBVBvrazjgWhIbw8TF5JnLsRfvDld72ay0thKgBA2fMUbl5iTGppIbZZThSBhQFws4fKXwuK2+OoufkkDJ/iC1i105rHCLT8rhMPfUHTN+44pIFFRNPVD0k+FyEvnF374mxG4rEKwkGpzayFyKEadrh9L1uo/OwLL7wW7fEhDYu8U3nDTNlw3P37scVPr2r3J7LJW9DIbG9PKG7XHBwqNgi5/rMY87dREnDhePo0La+W1eNTzafh0mdKlWXwi0I4fHJ4AKagI40eb8qqEJClahshkPwqapOnaa6Ij4CQWJ6Vb8M8geomLkTMqZQiQKQBphULVcCYq0WBwT0Mb3G7oO4VWTYPuLvlL3NGAAg8jn7m1imAfF2EB/j3jRWgSrNGiA8ngI50AaA8u1k6psHymY7noPWAYf2lxDPQyqIoT5MpTjzUc699/HElhpX07h0k+lxV/FpvlN+lUg5n0kK0eGaw2JqY7/AD70f3ir/7IRiePmo8kNHXNFsaUrmLX85s8aKtDFN87ra1JTj1jwr8E357DZA0NEXzxUdh6n9frYRxWqJHWsZwIAOHjafjfBcl+tVVr8bdN654qdXNILsdQ0LCc+8MYP4i5xyVodWgzAxiCH35K+4+/NPYHMhadfPV2mtn+MbD61WFxlXzlWW9dHWansOFnkzoQPkOVKC5ey6b/ayOBXkZZzdhn2TRVCnz4UZd3YISzPHXoVCf/9cy8rG5o8+itKOyI9Ctts9Ero10US3tG0dYtfMP1xaq2gQfWjB/fWgWlzMTfIC+bkrBMXX5pG167V3n5uVN17JFIRGV72vK2nee00y0L0/Sv0Ixws1bWbVaGsRG/OIFTyN16S4H+knF9Z5/Bkk2Zx3Xz7/C1VfUAXdOYLM6l2BMPgkN6JhDxhoVAizX6F2vwmHnDPeNMYX/QvbOLMgu/k2XRRgvruwxcn73RQP4Uoo7sIsI2LhSfBALZLLyu5nZ6vqS/+P+p1ATaHd9A7oBxj8ICpAyAI92L9aaoyZvvRi6YiHzQX6frnc+QlRMIVgoFq8n8QH1b23H1bzOlRQKOM1LGL+kMc262my5k6wqjTNBVeWTT2p+t19MY8VclL0hOfDa0zx6BYUTvmzbX3jynbYkRARjJdfxRhD9anPfIHyCNmf2Tq8ucGXF0rUPz3TZrhH4pQmS6+q43bc0uYD/fmIetOj7Ry8mo9FFdpAD5Vo656lhj9atlWoDnJNiR+kBPkWmtnfOr0cwgqTtVonQzJyWI6Re4dG+yZVDfVg/YkWAjYt9Zh5yCONxMu0HZZsMgkVPEcUDJQvPCKNcUttgHYzsh/lkdDXuUxS/UAf3R4Irl5D+4o4JluouNHbXhvpqb8eOEMXWJFvbIGYInyPrSfs+2MF0VusRCwk= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 782bbc77-8386-42f7-7573-08dd791b4d27 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:12.2838 (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: sMdCejU//byL/krH3u7xEDFy3tYy5oxKrZr0OfsXCDyJUmbrYE/KZ5PJPmKM2LzJo+G2EsGvVoGO6gT8A5JnlTG0L9Riq1JUDrwNVnw55IfP2VpwdkKEk1xlby/iXfte X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 From: Lad Prabhakar Use a local variable for the struct device pointers. This increases code readability with shortened lines. Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed commit msg and commit body as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 881e910dce023..948f1917b830d 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -764,10 +764,11 @@ static const struct media_entity_operations rzg2l_csi2_entity_ops = { static int rzg2l_csi2_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct rzg2l_csi2 *csi2; int ret; - csi2 = devm_kzalloc(&pdev->dev, sizeof(*csi2), GFP_KERNEL); + csi2 = devm_kzalloc(dev, sizeof(*csi2), GFP_KERNEL); if (!csi2) return -ENOMEM; @@ -775,28 +776,28 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (IS_ERR(csi2->base)) return PTR_ERR(csi2->base); - csi2->cmn_rstb = devm_reset_control_get_exclusive(&pdev->dev, "cmn-rstb"); + csi2->cmn_rstb = devm_reset_control_get_exclusive(dev, "cmn-rstb"); if (IS_ERR(csi2->cmn_rstb)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->cmn_rstb), + return dev_err_probe(dev, PTR_ERR(csi2->cmn_rstb), "Failed to get cpg cmn-rstb\n"); - csi2->presetn = devm_reset_control_get_shared(&pdev->dev, "presetn"); + csi2->presetn = devm_reset_control_get_shared(dev, "presetn"); if (IS_ERR(csi2->presetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->presetn), + return dev_err_probe(dev, PTR_ERR(csi2->presetn), "Failed to get cpg presetn\n"); - csi2->sysclk = devm_clk_get(&pdev->dev, "system"); + csi2->sysclk = devm_clk_get(dev, "system"); if (IS_ERR(csi2->sysclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->sysclk), + return dev_err_probe(dev, PTR_ERR(csi2->sysclk), "Failed to get system clk\n"); - csi2->vclk = devm_clk_get(&pdev->dev, "video"); + csi2->vclk = devm_clk_get(dev, "video"); if (IS_ERR(csi2->vclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(csi2->vclk), + return dev_err_probe(dev, PTR_ERR(csi2->vclk), "Failed to get video clock\n"); csi2->vclk_rate = clk_get_rate(csi2->vclk); - csi2->dev = &pdev->dev; + csi2->dev = dev; platform_set_drvdata(pdev, csi2); @@ -804,18 +805,18 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (ret) return ret; - pm_runtime_enable(&pdev->dev); + pm_runtime_enable(dev); ret = rzg2l_validate_csi2_lanes(csi2); if (ret) goto error_pm; - csi2->subdev.dev = &pdev->dev; + csi2->subdev.dev = dev; v4l2_subdev_init(&csi2->subdev, &rzg2l_csi2_subdev_ops); csi2->subdev.internal_ops = &rzg2l_csi2_internal_ops; - v4l2_set_subdevdata(&csi2->subdev, &pdev->dev); + v4l2_set_subdevdata(&csi2->subdev, dev); snprintf(csi2->subdev.name, sizeof(csi2->subdev.name), - "csi-%s", dev_name(&pdev->dev)); + "csi-%s", dev_name(dev)); csi2->subdev.flags = V4L2_SUBDEV_FL_HAS_DEVNODE; csi2->subdev.entity.function = MEDIA_ENT_F_VID_IF_BRIDGE; @@ -852,7 +853,7 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) v4l2_async_nf_cleanup(&csi2->notifier); media_entity_cleanup(&csi2->subdev.entity); error_pm: - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } From patchwork Fri Apr 11 17:05:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880707 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010002.outbound.protection.outlook.com [52.101.228.2]) (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 7FE8522DFA2; Fri, 11 Apr 2025 17:07:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391247; cv=fail; b=eT6rfdbwCOI9XZfrtaYAILVJ1YFYdY2Ml5YKRE5gN4gbGcq/C3DapLRjLgOCOu/cS6shxH73/8NDoYxr+A5xsTh6lFXiX5muAOUyr/w/xTHPqXdMY0D1mkAEOCGznZgsXF2Hnt1qieOG25YfOwbnMVAhh7DIYvO4HwXsQGLMXtA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391247; c=relaxed/simple; bh=5lU1IvTR+ixEA6Izj8BDp2/LBTXT2y5oWx7TE4PSwZc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ogp7TRG9dIkoS/aeKl6hekswUwVmK4imFydKtzOarBf8DXVADAiAXIzvh+7MGfDTQxuqQAHFjjGXLQX9HjVkoRAtTxED/f8pnm8VhOq5KiP6VHX2BbR3QTd33xCK7eK/FV3wEn1iVBM1TB5/alkCpIMEky+sLXUHTSCCzYzISh4= 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=hjzbQl95; arc=fail smtp.client-ip=52.101.228.2 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="hjzbQl95" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=muFKF4h91WzcnWfVRA9O7ahbslWRoytIxsDsPPuEMX6Z6Mqj1wa0A8gZagHf6u2ejGJiQ/KYN9VYlHQOE543UlYy6OY+JsYZZQEWvRZAcRGsoTwitcIq13gV7fiKuBZ98gtfSTZ9WoHfH8CXakn7oWAKS/WWtxiRJF8DCUG8zfaD6T1vABBQY1OqvrXjTtXH1Xit2PXfdMDelmycurnA0moVXWG4UXI3jevZ5h1tMsAc+IFG4Ifg/QYzb/ypQjf90ds2QhLHrSYeDoeyNLHVrW8KDpAHhkwqR57ynIhLBrUdUZhvhKoO2X3wF87QBAdnxxDfV4PPPeysNp3hYSz8cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BQ7qeoVJqzp6w/iMh3vKTUOEltiFLLKEaA7xGug46xw=; b=gV/Sea6/NKh2m+kjLWUEfT2q9Fe0WFbBG00jKiMT7B4UvtKLnmW//6japntmEDcsusujoYd6ZK2A4UxhyxZjWStUL+FxScbpDl7AtWnV2LVRpH3+P6a+tHj/LeI0x4j7ai54gELip3z5NTqrDdHLy0hlrWK6TUV0rd7pPC3I8KiYP6J+xPJtbEKEJDdTP7C7ptn0b5VJJfCOWsf7EzRd/3R3yLoppdmvM1TWe4hQyb/Vn9SqseTSnXgpLenl2EwzJGpPTdsWfx0d30MZURVRgKnUdg6ln+iZOA+gPfhCxENnu+W670SteUguLk9QH6Njn73kYSqOECSbtEy/FYPB8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BQ7qeoVJqzp6w/iMh3vKTUOEltiFLLKEaA7xGug46xw=; b=hjzbQl95qp6t9Pq/hJonAE7P2pw5K1Q4aSzsD81c0SQjVirU1aBSsMZ4OncbOD+dD24euN9tn/QBMTmd3Mx3tzBgNCY2s7gfvm1jJ2zlA3XloPDHNmdR60P1BeaXwuqfNaAE8sY3Y5rdUMSXPaq3NDqe2FtoPcZ5nH0FCWJfEpw= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07:19 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07:19 +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 v7 05/17] media: rzg2l-cru: csi2: Use devm_pm_runtime_enable() Date: Fri, 11 Apr 2025 19:05:33 +0200 Message-ID: <20250411170624.472257-6-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f20acbf-d425-4911-a6e5-08dd791b5146 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: RndZH7xDiH1KxRJAxelj3BTiTDwvKask5m8WEoILyBPvZNUAQpjbXQIcfE43xzodWwOlMsMU8KD7QJIFacHBvoG77fF6h2EiTWVhX9NWUoA/n7cIZQeXdL5VouYHeshicGKFpkd+aoyRres/j+u6rhL3nGLbOKhsuRmMTmqgyn6ejSX+qRNkjWrW/I+5mwAMYgmsLbA7+1ijVpRtYe1oKOXaeK+x8JSt7YJaX+deRbXK8G6foqw9iCBzpZQKi19iloNXZMBT5AIDAKrKmagygZxlNNVtcdPCpmnZCsaF+AfxJQ51NuOKZZSE9N7HI3elYcIrTjGkkwZdEhn2I+l3u8CM30D+iZg4pgcPSvA61zKExC6T41P5cNqUV6cbBSOQIHGYkwC4eJkdASEuzZiHynSYU4bj+KXGjWqkb3LI4CLep8v/dkW00TO/thL5QrH24fzfEjkbQlD9NXQ0R+0L8Q7XiECpk+gQr8OHL9kj9pIBvUWM3O6EO24pn/YhjAMWP4BGJAmx1gEACJMuhF3BVLz55iLjMJeJL9pHcEiPnGagRZuPYIsH/N2Gn2mS8MVsa8nYsMBNrYu1kAbL3xpKCmD9GgUhUfkNoruQqSS8IvTErWGBeM75E98KGZEMIMJ/XbvsMDRFNnihBp8YeC4+w0k6Fy/SX0i3dH15EO79zjOjJiD/o4WcZJjPQ+DrS7HW8woFV+lkS56t4Cs+p4i2YcZ9SjlRnAL91u1qoMQ03ffd62uI2UZNTQzbMIxNTyDQzMkYGbRjPtJBbWgDV6XgI6sXhRF2ssvx0NLyWOJg2sExGB2VOO3y+Uo3CH13JaVscAWxT9Bi563HkYA3qCETzKEg0x82FYUOePb/mrAMSBVDInpvTjHs20dyIZ1kmSRvGtjJKwoKQkVhYs3znaodgsM4XS/N0IAOP88ax2vnDu1RCYTcnf7Kl/llSehNETdusIXSE/vgMPAukH4eBfgpclxnHaW/UGJut4FVP005+7e/XgSWr1kF43SA9DqFRejwq5MM5ju6VSFG6MoSr5k/wcbS3C1Tb/nVG8NX2KCywn1De2WNXQ0vljOhy845GKS4+CJ48Wx/4tQrMe/LFpa5A6sKiH6J0XNIeNVvb8Jgk/OvZXCe6ufxCXfYGhB/GPplYU1qVzEIl7HdstadRgOdqk6m54p9tq30bHxewWShzlICrNPV1qnfLZvQiJAMaKRiSuwghDktHLI8iS3zvn1AyRoa5sIGMJRX7+2BQBO6vY+KS5udsZLVtjV+z2RriQ8wCIj7oVlwi4ZOddXxBwre14eW2pw64OiFBLjHN/0EaxNhMwDgrbctoFTGUssCIe4AmjuGdY0ZKWN1xdS6X+ndGOen6O8l3SZc5ssQgQxCO/kw+VH5+jP74azIIqtrVxfR1i8hEg+/q1F+umRAayxk3LCvuIfu3TbgrDlK9syeuUh0zGctVPkK8LHxEpQ8910mF/EToShtmV5OJQ6uFkjpYA== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uVRiaoSiXRErZaqwOyybMAVfGcrt17xYlFsoz+lyjiQqrUgC+2CrlfHEXMU8Mx4o4KkFhr9PciYh4TdfuIMzZ5WKPYYaQrhA21LuZfP+UguuFq5ki2jOLpPEGzI57tGQaWivuDAmTemDexjAiX6c1hsUJqJO3wny3ObTmmasIw8OKS0zBpv5WJSXnOZJ2hO6wgesYwBCpcv+JuUx6X8k1DJ1j5gKPvMFm4VxfBqA0yRdsqYKKLzED6eejx/wIsSClg5bN8CNQe3nRfqK5938A3dcDO6Ug4ZwAHurPM46GnYVP/7J3CzyrPwDAlWaiHcv0wLGQEWn1Hg8OaUWBRlKJNrwoD7Zqwbi4o4f7AMIZXHVXcP1/ywYWUmgP+OtPepYRhKTA3GLmJ8pHccy7lvsHe1nyJApz6eKnyCq9zpCb+6128rFbL1flcD2ZjGwiwlU4LsPD2wCM390gM2yUMMiJVu84ttvLXqnlhmHTz946SVfOtClaDPk+/6mLQGxRGMopu4bsgXFrVjoQir/JUVdAVG/jUTCY8D1UQMGQs1eQb+tJ3Dev2fiImk8PetreaFNOthc2QYmoIKPNvUcVZzx/I2roDWtPKJciJ+TelPDOwLTpS6FSTt3iDOAScsxJGRj5ATwVInjeaNhDfXrb3Bh7RKA9/JSmKXQw2F9pQSgIUjxDpcxiyBW71QllfWili0L0//8s5MY6ntDdCR722QREp+XucrbQ7PPngCnNYVumF6DAXLkHXq31Z0Tw4FFXhI1dq1WRYcvBta419FEI8X8QtcF0XoxLHHS74PzrRTHCjLDQvlq/jUx9ZNSP2oxXv9LKKOZVG5ZrDkBqwffRXxGZqp5jY/BUYaUWaZN1ul07g6PYs9UyNFYpDjqkdKD5Ri2wbIdhLtdlxDL0LNU7IAH+7/a+Th2oMP82v3++tW3/bW/yxp+eEdk52LdRaqiWNouNPvZadFX2tR/eYUI4nWj7Mccpnl3lKSxGriNMdHbR/JCvj7DzAVFLIAtJZL2a18ZHQScsWEO8oRjf13dIcqNvEdXPS2HMUhh1DVnIuXr1UlkI/NztGc+VgXbGhLpW9V726P5P4Pj7RUNOHfY0Mkjh5Mv+7BygzEwLF/SJ7qjHahp+5BI02nsvkCMoOZMtikABjh1Zc1UmURTIxNJlLgrtgpO8sKDzEeL8d03HFqclNTOMryOxJis2+DI1XryONJIern2wymgQEMo7RRKGFTKkjqxdJgN6RBHzIRbcDHOPtAUccIufP7bXL2QVBuzzpUKQXVJqku69PhxKAb9NXlkclUKMlSwvFy6kzE3MSim+3/X+irNGPqt9Jafy5V1Kw9ZbZ4VmpK3OPJ5xoed0cMTdfPqyrDCYYzS/DEWHJDF9JiVMGdGBuLUfuQ+mEVvCsyO6LBWJ4++97d7iZhdpTBHbRzyMDse7UIJFRexgtHWw2Ne2uyc48V1NlHGgldrwvqxX4Wql/Vts0gIc1nGm1whqPbh+ZAElShfi8idjDsHvLJuw6u2s0b4IZLeB4cuFIx6D0f4zCxLzCfiw2BRbZ6BibQ4ZvwAHPlbY4AJh9C6qkiOBursXzhO0/o2STKQ2M3Sd1OTXnFd+HJTptP6NV2afhYlusrDfJ5NMRcx2bN1hzs= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f20acbf-d425-4911-a6e5-08dd791b5146 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:19.5011 (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: inWRoVM1md+/e4L2IdAsPVC5BD/12f+FI46O7sKwCm9I3CzWrfrzBym7haHxahyoFJ9HBaOjJls8RD6EnFLabuFWYtqNtnC9MGAw07fOiwkjGlhqKFRpvbdN9vQtbRCU X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 Use newly added devm_pm_runtime_enable() into rzg2l_csi2_probe() and drop error path accordingly. Drop also unnecessary pm_runtime_disable() from rzg2l_csi2_remove(). Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Tommaso Merciai --- Changes since v1: - Collected tags Changes since v2: - Collected tags drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 948f1917b830d..4ccf7c5ea58b0 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -805,11 +805,13 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (ret) return ret; - pm_runtime_enable(dev); + ret = devm_pm_runtime_enable(dev); + if (ret) + return ret; ret = rzg2l_validate_csi2_lanes(csi2); if (ret) - goto error_pm; + return ret; csi2->subdev.dev = dev; v4l2_subdev_init(&csi2->subdev, &rzg2l_csi2_subdev_ops); @@ -834,7 +836,7 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) ret = media_entity_pads_init(&csi2->subdev.entity, ARRAY_SIZE(csi2->pads), csi2->pads); if (ret) - goto error_pm; + return ret; ret = v4l2_subdev_init_finalize(&csi2->subdev); if (ret < 0) @@ -852,8 +854,6 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) v4l2_async_nf_unregister(&csi2->notifier); v4l2_async_nf_cleanup(&csi2->notifier); media_entity_cleanup(&csi2->subdev.entity); -error_pm: - pm_runtime_disable(dev); return ret; } @@ -867,7 +867,6 @@ static void rzg2l_csi2_remove(struct platform_device *pdev) v4l2_async_unregister_subdev(&csi2->subdev); v4l2_subdev_cleanup(&csi2->subdev); media_entity_cleanup(&csi2->subdev.entity); - pm_runtime_disable(&pdev->dev); } static int rzg2l_csi2_pm_runtime_suspend(struct device *dev) From patchwork Fri Apr 11 17:05:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880443 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11011004.outbound.protection.outlook.com [52.101.125.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 33E492248BF; Fri, 11 Apr 2025 17:07:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391255; cv=fail; b=oRPpZ7bCoUZrb+A3yFYQ3McZNLFZkI5GaZ+UFYPDEljH/q3RLKaAp6SLQwjlqbx+TUvsM9ax9oLAmzT72jqQhWfvI4pulhSJtplJvsbNyMmNzHcZ0hhV3KXjbfMMOH/8tcgLtau8KIWfG2hfCFnogR6g6A8f1YL0UjBebM/BJUU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391255; c=relaxed/simple; bh=+itG+lsmYTQWPhloQpRkN/MtqYNEE1GiS4/fCACV2Vo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=gfDbepRM5bgkAfSi4GnuZehBdhWqgMuhnSgOHOjcsYyMHMIWp6noFUuDDCFTUL20QlssLOVpoUgP7ggBR77205MVF6ihK4g/G0T1SnGaiebh9ap6x1tFs7anAKHVbTJSh1EawV4UaktZTDKNMnqScGEkmeDSTbu3z8yE1PKR8tE= 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=ws/8OLIq; arc=fail smtp.client-ip=52.101.125.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="ws/8OLIq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TF+Zzn9OCtlPzpL6rmD6fc7lgyidAfvnA4vOhoHtmrBe+fBzhqykWewCIbpju28a1RmC7MMV6H6kw3F5/DzrLV6JLAXN5labS44WlfkNYs6eIIHxDXt+02RI3k8IENG2ETUtQuO6CgDA2pP4Q1N56CfK1CDRzUT4SV6S2lnphLAj3k2/yEr0gjzrZM+FYpIrEtO7kY7qxQab6Zn8gBINT+hLsyC0N1KrfR7F+fGzt7HrB0OE6WtKqNzQ93uJY6YqlzkyyT+jWYhSEOuuFBMo7gCBnRNe3/XKWI6cILaqArxagwGDlja7fFKLOPolL/+pPIouyWV/mT8jFThuEAOq7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=s9n1Jn/LuzaoqA08KS5D9g3uz8mHrNSl6RXD3nCLm00=; b=EmmY421hgAirAsEFHtxxwZXmTJJ8ftpqu0gg8TqVTipKyo1AAPTwV2hFtWdklEkopTvvDW4a1g5v03FZ1rig1sDA2i7H2s7QTAxBrQ7hvRZJFE18LRZ7pPxcjCY7mYAZQMmqCoikV+pd9znCYxOv7ENc/wZiRG8Hr+HnGTAbdEUvOoHAWgiaIWnBNYQY7gDk80yoeRLi2Mc8MefrlYTCSWLF0h+LcANNeZrqsbvp9MCUcwu4VG07X/iWS5Ux/7V6kloUHrl+PBXWSIw25C7Pzqn9XwZyH3bXSjbyG1jhtbRKbobbNKREYu0eB+2duzcL3J6wcpnEbOKbBFR77/1RyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s9n1Jn/LuzaoqA08KS5D9g3uz8mHrNSl6RXD3nCLm00=; b=ws/8OLIqZM9kumUE6LY6krmE7hzyiZX9l+EMhNWA/4QPWJaEmwGDuQP9ogYYDWtkSL38HsP6ayYnFZ9Rzt5mtANrA1ot9hLOpW3nf+LLcXbZiOv2NtCcIR2OvVyJD/wDd08O6NHz9dClfgQjchT+/p9ZU5mtlNBAIZ7U1Kwaxng= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07:27 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07:27 +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 v7 06/17] media: rzg2l-cru: rzg2l-core: Use local variable for struct device in rzg2l_cru_probe() Date: Fri, 11 Apr 2025 19:05:34 +0200 Message-ID: <20250411170624.472257-7-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 79b597f2-1db4-42a5-f98f-08dd791b55c8 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: 5naHgFokpFkVJtIfvcRoLzZnFclAOfPVDHsfT6ztO1t5usVycvZybxyAwA+zXVljWFB5wSaOMVMUi3lZUiqLQZkRl1Wp2hAtHfC6YLx1WQvkPfSW8o98b/nqZ5CZ/o5N+orhK/Mi3zopw6Hb8/YWGDahEpsn2z/2gBe4m2aENYu3l5kEAN0q/PPgvU0xIjur4STZgiYNCVX1Db6Xnrl5x2yr7fnjs9aW197uQLfx1YaDfC2f529/xOzS7H/OKewoX94/yhl3yr85CM8uwS4EKv+G+RqK0oInrcBq+Liom4Mw8GxIoI8DNz1fPFILIREOqi+bbHyhLk0UeLM1r17n+CJsrscj7NOBlStUoud4fqXTjkmiVqvDHNgCcsnw3jzJlxp6FD71JNVaRZ66/2fvqmQDixyR2poJ4MQShJvuWf6uTEkfKg4uvVy607frS40DUq3tp7oXYpJ8N94tCvMOVdshc2xGpPrrcM9YS85MpEc/Zm3gO9wUNwu/WIbAz3vgKFMv4j9gKktFzU6zsp3y5GXoj5Luxj+RxZ3GgPKBMIyT/vtcza+EpOBCdUvvDGFm93pzzjQGu/E4GQIXGiTfBq8BUJh5cwPAy4J3DIK/9rhxyFJeuC1l6dc6VUkl/wwNoruzWIGPu7SeYIvDxb7JHQ/BIScbovBIABRAC+aqKJp4VUDx1cFJFRZyGYi1ANNjB32YGQCfK9DzqBrOSiEEiSerIam1fH2xtHsaw4Ul/sSnpiKO4R09gmWWU709B4xmL199GYqckcDV59ApWmSqim69VOvODoOiWS32Ut2Pzaw9gU9MN3b/vZdVWQ1N1NwGNTLZsvbdHITafScCq3q3sl4HPLGVDTG63BSQFu3ttxSDaV1xTA0ZZbd3KvvSp8t294zSjAwpvokYSWFaWkEpacNAUniyXlhhQB5Rr5/WAlBh18csCu4g8yYYBykpF3RlAsxrp4PRUB2IPwa/tycB+668qpFIwpoJiFGK9MyVP4tfZ1wbGeUT5pz4XJYVMJwCqh6wCJnnu9jaCWHf9N0ZG7k1DZ4pgJq8mTzdnbwtX0akn5XwStaFnYKInWxZiqk5Id+EDuViYz9WdyESbAS1vTYAyHYMN4Z02lFYFQkJSw1Kf7gqaZy03gFbojdGnUZ+OThSFFuZ5AZ1TTYaqgJvFFdFyVnneU+9dgNgGBCvtriqUknyvAxiKh5aXRRDo2YQDMckwIR2VNeqbZ9w44/LTi6zm/iks3kQ8waDhIpL/R8+khtnnMoBi9bZWHJLBs/3VNltx97rOB8Qim4cFuk34P7Dwu/hSaqXDgu8v+GJZVlBUAK5IfiR/9CLy89d8Il1SlS6wd8hwFbsjeUWDHLdeyPcF7VhFihAghe75bvTac3mM2n4kT2IiFMTl79h5aUDKZIymzqgS3lisTzt8JaNk4cUo4MufGwZqE/SCx7xWcZECs+u30Sx1jMdvtY7hXIVQg0otXxL7WLGrsj4Rr2uEA== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: C53ccyBt9GhSGDLnNfJjmFKpNXoBQ92TXCnh0RA9kBDnYpsD2Hp4rQ7sQmWmJHX3aM4XPf/XBQSOqneqnVynnVJbiO1Ck4JILC0aDO3uGomuabnEi0hlN5VyBNtQwAKRdmq2kwBZiAmHKekSNN1rn9A5EpJWFb3iwyCUOxjhqYOCrjGPPmOtSLI0ECUmnNodi58YS3yQb5JnaQfuQJd1/HIpF4lL7GjCRqSqSeGC8WIhPq7KnTwk59nbPnQFgM/GUrbNzpbksbtkFaXU7dsV5AzKeDdVdAaMstCEhDCeUvb+jXh94c9UFRHaqDis/CkavN3cyfuhhdjKqLzn8vbr4uz1Qfi9PlQtMLMLQL/nOLKj/aspFLvceobD88WBsiU7REi9kil4tbAdDX2aDhyNa/+BanyWycQikltVTnvwgBSycfTsnJOAXUdZA78RocQsPee1r06LF+0FR8b4f0XNIVTCpU+/K5l2y/xb7ZfyYGS56K3EN7VlhjkxMcYwWzkXG/WIc6aL43APeFYNxAqeI8U7z1xJb5PeWTfrUscegmYFFW9Fn37RTTRn12CxbxvLTWD5Z3UwXHPwiabDA16C+ngO/1pAxxJdAQmk7zdt2aVGOMdEChTMK0KDW107hjdGipEy718MoUZytnoKgDdWZoJdMg5ny/qru3UHvwJfaDj6vgO58W/7/v5gEKnzOsxWj6/8K75w5GrRNxbchmmNUJVngmvwRdBwul1GBea3fPHECfGi+6gsUlMBDOxqrbaLdwGum977XWBDLqpd89frYioKcgW5/1A/9b5Ki6l+mOwU0bcNtGWt81C3ghIqgiRMEzF7L+ACeWjKkbAZRi/oeqQKLBVRWUtu8PQtQjNOnkkizVqfQTd/WdHzYExmRKfgZe+I5B6mySfWPSbcvVsPpWBSNRl6CsnRp4U29nC29IoABq9AHYy6aQGwGAXOXQhaqryx6U1GXrBkhM9h9FNuLlLySY7trpMCejHYu0lLQ7X/gdzGM2I4I2v1HwAOP317HLO8DjSmAHQT8JlXKbUeLVXLGn4v17Qp7CkO29Q6s0HnnWIBcrXbUZcuqdB+Dy1hemrR31Mdp9OMt9RHLmvQoFmLAUSbLLme2p7ZA1W6KDaLYBcBfUr4H5o3WiF7QPJtwtG7VLLoi7O/hrUDTcgGfzHV/SsSHJin7HGtcsqMlMazXRZWKYCiudsWESXMUQjxqkNop8jg9lRJSnxjLHhJRezp1fapRJcKn4pZ1YBh0RCl2/TOCkbh1q58LuUGKX2W/B5K5m4jNi+eZEFqTFeKve1R+DYGWe4qZ32VH6j37gvAk746OHKrkhQLouWtLbw7Vp3QIM1MKOqx7E6+Ze2587n6Xn6OrBBEJCFoONlT6uHvP/MF4kLSVm5Tq6uIvgPTZch1NZdYQzNHXll80rLOtLbp9Otota0COaVQxbKbt5W7qqxwDqJh7Eu2nainPoz8OPdrynmCol5BC84W0F0rCYX6j+Kf+6675B44zAumLC6YXbDss2sNqhBr78lMVmdpc8CLSgZqIcqgTOqg5KrY5RO29O4GH2pcFefGnpNq4LLp/n4PGJyTItV4KBfoOf2FMcW9lJbzisUJarswWpcBFPw5FG3RiqUjxkv1KseG8GE= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79b597f2-1db4-42a5-f98f-08dd791b55c8 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:26.9936 (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: TNibTWg3HgTRmwC/iVQzVmYIe1NqquFFGTDzAE+tSkez0F5Jw+/KmobWhpTdnZ2EPxickLU7s343F7o+cWNhzGJGQDUxw4A1oBeq5RR0dOTVpeeME0JFR7mfv7bPGoPU X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 From: Lad Prabhakar Use a local variable for the struct device pointers. This increases code readability with shortened lines. Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed commit msg and commit body as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-core.c | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 89be584a49885..70fed0ce45ea0 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -240,10 +240,11 @@ static int rzg2l_cru_media_init(struct rzg2l_cru_dev *cru) static int rzg2l_cru_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct rzg2l_cru_dev *cru; int irq, ret; - cru = devm_kzalloc(&pdev->dev, sizeof(*cru), GFP_KERNEL); + cru = devm_kzalloc(dev, sizeof(*cru), GFP_KERNEL); if (!cru) return -ENOMEM; @@ -251,32 +252,32 @@ static int rzg2l_cru_probe(struct platform_device *pdev) if (IS_ERR(cru->base)) return PTR_ERR(cru->base); - cru->presetn = devm_reset_control_get_shared(&pdev->dev, "presetn"); + cru->presetn = devm_reset_control_get_shared(dev, "presetn"); if (IS_ERR(cru->presetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->presetn), + return dev_err_probe(dev, PTR_ERR(cru->presetn), "Failed to get cpg presetn\n"); - cru->aresetn = devm_reset_control_get_exclusive(&pdev->dev, "aresetn"); + cru->aresetn = devm_reset_control_get_exclusive(dev, "aresetn"); if (IS_ERR(cru->aresetn)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->aresetn), + return dev_err_probe(dev, PTR_ERR(cru->aresetn), "Failed to get cpg aresetn\n"); - cru->vclk = devm_clk_get(&pdev->dev, "video"); + cru->vclk = devm_clk_get(dev, "video"); if (IS_ERR(cru->vclk)) - return dev_err_probe(&pdev->dev, PTR_ERR(cru->vclk), + return dev_err_probe(dev, PTR_ERR(cru->vclk), "Failed to get video clock\n"); - cru->dev = &pdev->dev; - cru->info = of_device_get_match_data(&pdev->dev); + cru->dev = dev; + cru->info = of_device_get_match_data(dev); irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; - ret = devm_request_irq(&pdev->dev, irq, rzg2l_cru_irq, 0, + ret = devm_request_irq(dev, irq, rzg2l_cru_irq, 0, KBUILD_MODNAME, cru); if (ret) - return dev_err_probe(&pdev->dev, ret, "failed to request irq\n"); + return dev_err_probe(dev, ret, "failed to request irq\n"); platform_set_drvdata(pdev, cru); @@ -285,8 +286,8 @@ static int rzg2l_cru_probe(struct platform_device *pdev) return ret; cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; - pm_suspend_ignore_children(&pdev->dev, true); - pm_runtime_enable(&pdev->dev); + pm_suspend_ignore_children(dev, true); + pm_runtime_enable(dev); ret = rzg2l_cru_media_init(cru); if (ret) @@ -296,7 +297,7 @@ static int rzg2l_cru_probe(struct platform_device *pdev) error_dma_unregister: rzg2l_cru_dma_unregister(cru); - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } From patchwork Fri Apr 11 17:05:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880706 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011056.outbound.protection.outlook.com [40.107.74.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38C2E230BF7; Fri, 11 Apr 2025 17:07:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391262; cv=fail; b=lPqVXAF8ybYTFTR2pz2Rd7Wkvklw0G8vmxeECzWKtpx+KG34F8BOaUA2uaDdITyPI8LBpI0Hi4pi6kiDSIZk35XPdXZTQVlROd4XfY6Rs+/HEHJkAzO/BBJ5ij3dMH2TTPhMCn2jvRVZcEEA2cmIIY9Jc6obU5OZ2GDm2uj89Mw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391262; c=relaxed/simple; bh=gk2f5O3tX4SENV+cB0k7xa34lZ1ZnngCnzzMe/PyGo8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qvo1gMevhYOzghG7PsfavY+E0uOYLXvb6gnq7Fr9LdXJzKjLsZZVaCF9vzSFo9KYecYvhR2GUCOj6mpORx5PRjTqWHYyym33bkKDLh+4lzh/ae0rG65RnjL3isEgRmAJO6yTjuvfK4i0VpT695cWLJMfhILWRaDZrzoVgRRbhNQ= 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=gVlG+2aW; arc=fail smtp.client-ip=40.107.74.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="gVlG+2aW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IShTu5cNv4efscagVE5jkJEhovlhG1d881VNjLNLat6gHn/aBBPglLgqY6Cyrc+6Mmqm9JmdSk25dF8nDu34HBaaWMHir8ojlyRvi4aOqXcY9YyXWJnJjUQAWhkhafUU2e8p2r2ImX29YuSzCi9oPe8rO6aAT7dpmDt944JNsBu6FN1l+pt/dZWHhv2f1ybzUDgVgdcjV4CzhUK2JBzQaFKUzIWSqepqIh1a1veJ2BKC5sWa2W2GN7b+kQmAMUeF32b2fxBxt771twC6PaLbgBglZ6CnGxgwn77Z8+TX8AQQJVEmNNt/0e6/yL6kxDyXBCJoUWgcVSrr4nmbnbl2vA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=O80LhtIrIy/abMehTBvd3FaXj5QPLwAUb4l2HqwPAFM=; b=VDOOMRJ9WZjT7iEo8TOABKD7vbcYjAJMdtFOIa0MLJKcah3zqBjdss2d8HcjupA3/oM/ObYeqEp4mMIo2hvvgvKbchtR5EoOd6qGUx4Us75n77mdc/fvb0n5IfbPye2vl+R9nb0iIFVF7i3sJgGgzUA3mh6liNyWIZGkyChcGmHWru4P3CGzS+B6CvmnG8htAiTrg2siHz5M3ZO43+x4Lw0OgN4SXHTHFyHg0xdaFWG/2Djh2FVW1NphKg/qsPmBfep8buqF11bh79sWJixdD8FKzRiqEOrARQIxAcJGDzwicRT6nWygymbazcLQ1xnab01fyF7bq6PoZVdyHfZeTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=O80LhtIrIy/abMehTBvd3FaXj5QPLwAUb4l2HqwPAFM=; b=gVlG+2aW9ThORy8hrjOsH748fCeovzCo3l+EJsOm0zK+nUW8lGZTfCsEyzcZMfEpuQIC/ZBeZpVtjCPg6tDystPXPKPkDfi1kfP9PpAhOMR68DJRH3egGS4Llx5Fud55G4e+TvOHn7Ae6u2jnLkHQGh70gtI4kw7/LIGk3+/PN8= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07:34 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07:34 +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 v7 07/17] media: rzg2l-cru: rzg2l-core: Use devm_pm_runtime_enable() Date: Fri, 11 Apr 2025 19:05:35 +0200 Message-ID: <20250411170624.472257-8-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 41a168ab-27ee-40ff-d9b1-08dd791b5a0a 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: Yj0OxnZkQjqwrYI3GuWyIk6rCvAzIutK+yt7FOr1bkS2VbbpB33bvROx1DHihrVGMQSTaT/X2JS/m52zMF8FKje8snKo5rT6Ts1R7j5VzOJunGQbT5ZtwGcp8QTzub4q9jUnvUSm1H4p4ll3aIjEuypVjw2vRCGPo5Bj+XSAB+QjCaTD87+3KvMqn764cS6qZTxbijdBo29XG89M6vJkXbqchC7iM5f4i7GSwqlHa0HfhhHDR5OKqMY6IUpVdV+gjyOi6aCLvXASSRFcGFU29SFInRqGGn5R68twei/YhQqZjiExSPtHQHBTqg97XtUuXnox2KJImePtjs6ztvA8yEjjW4eQT6UNmm4occ4fJqXEHgajLaBgwOxNrV5cTVamSV53wsEjn8d4zGGrGk7O4jaq3+iF2mRHw5EWY+pz8ed1QT14Wuqedqp985xDnxWJ+ox3pTdfr46Jd9nbsO8NgGFJVrhpH9xHdrbQebaCF5Lrwwr43ZhfE1qMlsvzw5guLJgcSk6/xkg6myB3BaDMB63vSsxLH5Usj3tqmBVConPlAWZJMlc4n+O/fj8DBVMUpg3GHxKm1FeSfHTRtwIWo8KL81KhSIMgFnbuy+FUMzjXQFhldzHETadZhiM7/l0JrJCXmPD39Rs2BVhGEqd55O6ot17fIDjM2Cj4cOV5RahHo2KvC0SEq4+lQHJoSfXN8QGHqUmZwUSErHlzBaowyQrru+Mp8GQok0WKD8AduV576sx0vweS0mpC3qG3UlRCD9cTbxPhf3eaa/GTtYgiFVm5lSa9jppqJe4Pu/3AXoD45mCEfRGzaYhg08fixMjE0t/ptzE5jf+qRem6zNj3bfslFBHbMpX0pclJgXr+DxO8N4qXTGtdg5E+jPI0N5xJKy1iqo6GoX+/ChTzyjfaDkh7JqKehtYNqpwXecPCKQ3oMvYMZyonaXYpR2A7xeNpZzAqV5myJ+724Zoc0N89bfMVvFKNl0JW7sJSBv5BINMI1jeOUlW3vcCBmFKrZj1kcSmtvoppjDsv6j/NKK1g3xyUXWkzt3XTdB/DPH7ZIHU5zHKgGJhfJz6uR7hm2fuhiw2aXaKMkn7rkX2xXAnCSC89gVtSbeG49uEDC2BP+6HZq+xLJ0W+Z1WvJfJLBen5taBLmW+EzGdXwBdaPFBCfl7LVHvBkvta6IybJTs5ZFbNOVLPGGTwsVKsOIfEpObZkF5BM+VENP0jYwlur3/BlUtP5ZOsnJvOGWjz7JsdWJBLq1yoKGksYFyyNFC6VPLjGXWgSXBHKvME3zPz/tcnLKSLgD7HcM7gFV5OPMGVKPvQYyldbq6I4FIFgaBqtDe+28+AYgr9Q3C6G7tT0IY9QHPbKdGoRXhokEplQqwx8VJX2tFCItXXAVUwvUtubHT4zckrxvjeQl1FiObxPfJ1XDo138Dbhq7xzhOpQCnl9WJisYLBFdRnW8yowjLi9KXeBDHin3hpb0p6U76NU6XtcQ== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jDmA5TWZLkC9EIidm0kWMg0z7sNN9Lu2I8wi49D1DcMQiEtsFRW7M2uCgek835YMWH3iC5PQ1bY22Wr7GlWPYw/BeAaDlb2vjCZAbMyfA0FW22CKsyyA1sjyyFIfgrQKrW5TpqqQnCp5XZdUiY2DzUqgC7nZ1WprYeGigDwd/h7N0ha0Dr/ZiKBaMEMIZ7lEI93UogB/cwhbiF+x/MCAvSUmdtXVyUpNvZFHIVj2INHNLpOJoycBCKtEQKJsTRAT1E6/P66AF4gBj9F2BpPvMmqN61AxAp69vkS9sQEhNBqduauLZe9TAue1i+CTlbPBtJMriL1Y4qsZmYcfQUy+GX3nPkZfLG5Y18EUVd+lf2+Vh41z/5SSfZBaIRF9yfD3vZAP8bC9LeQlWA6yukR3qhWvM5dgUJ0+RMqQ9VkPfIvGUPZajIe60L3Z0h9PYxHsmbOQs+IgDup6zk74UwjpTA8eaAyls2PKBXwHBt/f6mga1ypuLOKzQiJ3FSQOR7ZhgYVhdwVEM/UuaB6+ur597+yFP3Q3tYKgxfo/EesFrZGk6Dd31zQvLyLRAOC9QzM+oCyWatHkvfYNI7TWuM4KDF4VzD/JXFT8otK183vt+ZTEB6EktDgpwdF9VP04VFHB9KYILZSSpw0+ns3yQ4tOwz2OohDMVweEf0WJG+dgslS5bBCzKGRSxH8NKrnsQcexo0h3G4jM8fjvOs+3ohFcZPuqiX9VWO+BbQIq+fM9wzFcvXLRm8w/xkFByRz3KhN28fBl3+JMvpURujQ49F2btA5jI1lbTzuaAyAPTCR97fIIVGlMk/13J9nsXSSSOmvwho61e5mPowWCtx1EwGKZtC4I+gUT5ilJfPKmareuFvFiwAOojBYtLU+5FugBWbs1iZyG+FDijuANNKtpepK4nBNhYAJeskJenfisbmL4Trk4KJ0EgDckNI4ot+i+czNaD6GK8jG+SG1UoxTOoQKAcb/eP0lkpvnK5idsWbHrsvapXt4SXAKoFPYpYz6P9nezSkAMjry8vPgKFTJxPvjnK5b9SzRBUdGkYJZCxJKRuTJHnpYacMRSUltGGlmULj2VBN76y4NrBvyXdFVu4gAi9L0mki1/oun3zLOsiHiWtXcexDsol7W/vV82ww5wdRbXIYounugxVm+mG50xMiZkqV+48fNnqOC1woyxV3HbAgaiR2HPhPDQMsRs2EqWrEpyPDM6U/JMzvTJgFhubIDhP+CAamnf/NBmluSjREyyJw3fas+/FhyyTSea9aOLRjkNBnev80KduLARaDHLcolDmewRRTXmhxpqi9HuolBjJLj0tdI0r2PL96JB0+mYFg1koZDL4DKB3t6RKEi5tiqN69UYQ8i+3C1vsr98UPmOHieYPijAloPpo91vc+KqidS4tj+82NFoEKtLT+EBKpg6cwyIQ2uH7939XSAumer1G6c+w6RR/o+OlV+FfgkTJjO//ePu69dtHkcHhAb8kuLCWC+vmJIWFaLhd7fi/ToW7jd2jq0SeWB7tXfK/9W5oNtrRCUCGj1I2OyePJD19B6Nw/LIN+03CnhJxFYHWWuit5Pjp5CWe5t6e6cD9RXoSEFewUbSIigS4ZwG9ISNWNOZEXu2E7Tf0Mxk6ib1CkZAfUE= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41a168ab-27ee-40ff-d9b1-08dd791b5a0a X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:34.1311 (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: Gis+PW+xi+VDoCyLGsfXrX0qzRFtBT2Q6kV3tKNrNpUaGEspNKK8InlTARfI4XHWhX9yc8Nc/8LvQESIU4QP9H1qVlFGI1ASVK3ONsVg+fOIi+HIcmd2qkqR8smhn/vf X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 Use newly added devm_pm_runtime_enable() into rzg2l_cru_probe() and drop unnecessary pm_runtime_disable() from rzg2l_cru_probe() and rzg2l_csi2_remove(). Reviewed-by: Lad Prabhakar Reviewed-by: Laurent Pinchart Reviewed-by: Biju Das Signed-off-by: Tommaso Merciai --- Changes since v1: - Fixed DMA leak as suggested by LPinchart - Collected tags Changes since v2: - Collected tags drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index 70fed0ce45ea0..eed9d2bd08414 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -287,7 +287,9 @@ static int rzg2l_cru_probe(struct platform_device *pdev) cru->num_buf = RZG2L_CRU_HW_BUFFER_DEFAULT; pm_suspend_ignore_children(dev, true); - pm_runtime_enable(dev); + ret = devm_pm_runtime_enable(dev); + if (ret) + goto error_dma_unregister; ret = rzg2l_cru_media_init(cru); if (ret) @@ -297,7 +299,6 @@ static int rzg2l_cru_probe(struct platform_device *pdev) error_dma_unregister: rzg2l_cru_dma_unregister(cru); - pm_runtime_disable(dev); return ret; } @@ -306,8 +307,6 @@ static void rzg2l_cru_remove(struct platform_device *pdev) { struct rzg2l_cru_dev *cru = platform_get_drvdata(pdev); - pm_runtime_disable(&pdev->dev); - v4l2_async_nf_unregister(&cru->notifier); v4l2_async_nf_cleanup(&cru->notifier); From patchwork Fri Apr 11 17:05:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880442 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011043.outbound.protection.outlook.com [40.107.74.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4B204227EAC; Fri, 11 Apr 2025 17:07:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391269; cv=fail; b=sZYibHMAhsKxwqPU+JBUjuHWoSZvZHhEHRFG1ZWCjBWpH4KGK61Xplo3WgNx5Sx6KWZDqt/7U3rg1YR2c6RLT4lPbrEqeFiCBp8k+p/Hd/YeF/y13VfH+im14SCUV2ad1VjGmk8CmO39rQ/Y5oe0cxVD/xAC9jDZIayNO1v5qfI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391269; c=relaxed/simple; bh=8rPwWyKGU42djKH6MYxaE82TLxzNheQbC/s6A7rWfWI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kYv+Qowr0Hvl/XZu/wO76OFSG+mXUCBqlZtcx1qQCHpaTUR7jYiCSiCWzDCx6mFqpNsTj3mnaNKbP4SaUdk7G1bVMuo81u66n03IwFwXauhlLW1rCFgrzo6aBMbsudOZJcl+da4mTr1ef05hkfKTjGOoDMnWnCtcmZgriQw0wE0= 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=hPAfGFmw; arc=fail smtp.client-ip=40.107.74.43 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="hPAfGFmw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xmoMxkjlzADzAMu4TOIJYbV246h/aZVnWK47n6z9vFrofSuZi8dtNdv62Qv+EVgd9/wLzSzQ+yyF9bxAQNQ1gUHYYj4NyLH1OqRg3magMfqwZZLJAWDS0bsNSPJbpIE8mlPqH2sOQXJWvNpdECcjaxEnibKCdbewEQBByWnFeBvCA25xA6/VnTiGGi4OkCMsOB+PFHSf4j7vd2n3x0Ok6Ws+JCzAk+46Dnp4OhG4V8sUFCPvwNzXsOP4cRdhKpMWt9PgxJL3H4fIet2S9EX2HVJUNTQJzao7tCkmCsOZcbUeYf8COfqlQSaqs0TYJYlEAzDVyWsGlKBm8ngaDBnwDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bM/KzKiGFXhJddIsb0wAEvP17kYlm0x8ySJwv+CLakc=; b=NN+Iyj5V2xjRmDU15yO0dAAr5LwX/VenNY+2rJZk3xfD8rekoKcnEJfxao9Bj7NjBIN6FdEj0MpE0+L7GBo3DsjGm8qI6A6zjjxce/n+apmr1vBrvGOmV8npzdu6QJQg2VbYUh9rKpYNTTId1l0oMZAoPQlQMzuwiH/VJdsJp2BJboTN/Tea9xNaZHFnAkk6rJ1pLjg5t3iHsx9MxfrXiyweIJL88k0uv/X1kVRQgLzGp49zFMtk9gpQVYmYU+3XNzdiFFcicyU2O3usNa8SLkG0n7wTAHEckxuwjFki2ha7uLEsl122cbqn+A2+m+BYVJWoc30NnDpu405AggOb0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bM/KzKiGFXhJddIsb0wAEvP17kYlm0x8ySJwv+CLakc=; b=hPAfGFmwocHtvP3E8DMMrejYCYsZsLLsxoxrKrt5UVayM6chlX9ZIQqcHKO08flpT4jpATlsu3Rh810nNxYRroX9+9z8HhIss6xibbFmzHbsUPHRR6XPiCMoG/0GPPJzUjFtCPPkIwwVTCuZNOrO1KuoZwrANULYaieZPKxUCLw= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07: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%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07: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, 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 v7 08/17] media: rzg2l-cru: csi2: Introduce SoC-specific D-PHY handling Date: Fri, 11 Apr 2025 19:05:36 +0200 Message-ID: <20250411170624.472257-9-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 6505a1a0-0924-4d98-5fd4-08dd791b5e51 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: rY0L7OiI2O16sg1M62WdbPM/76RdV5SFaa3Zo+Fuo7CuBbH8vrG90e3j/KCuDwT8Q3vtvPPCmshHf7WDYjcEeSXlcDUszNQDddp2+8jbDST9yhKkMEXwKRLVpLY8sCqIsSTk5LqPuIT5duOdgoy24ggSiCs4qUn4wUY3R4uu6VZiADTO8bwE+k7T4IL3nXdOoguOpw/37Th2rOahHT94RZnZIJLVIw6Wndfn5UJ2GGgHn2FtFzpkZGNPD5GJ7dUVgsBqNfcQRwLKE8VeSDmMWdc6e5NhDeJsTJU1SzRv2QSYCfg0ch6DOIKJs4jfLGLNHY9TdFIBr7WcnSvAGNJcmjR7Z32ofMwWpHsSgf+xOqf2BsKh9xznow1pe3kI6uTyrwXA7Yti30afkGNCWol7YURLvuw2Gq2FgTwsrTHjJ5zDP+/rtWuBNLOOL3EO9PeWsA0nrKihZWjwG8PqKPTsq1anYDx4mPoiRY1szvrJ5sKZ1m/QgUXYh7jHE1ZL64tFBgbx75YTWO/fly8p3dcJ3cD3dW/KibnwYlpRSddwgmjP+42AxX9qn80mYSl2khBNHFfTuaiWQBbi9ftXFefNZEIdrkhMS7w0ORywygi6T5me+idSeEpcmYsTLLorzhJq+WB4aSoua+KWYW8OVqx2grvIJglCUfB16biZVHKPtGVvyafAc7incmVjCQ3t8c2thjVrnpDfUnr5uFFTLanBZ313kt49BG1LX+lSb5uWMxjeeUp4WlxgDzpB+enhyNQCTA7InX5roTT6FnmSRY6/7Hw5X817TBp+PuHO9wiBCtOnbCbDxfE/6BoRKMrypff46EGDeMT5fRqqWtbqgQ2X6ib5R4UM+ylTKFu5fAp15K2/sUG5LxBfM6jcc8GUxb67eXxYKkFtWwosUHZeNtKYs+p8+0meRwhq3Ofxf+NAgfV3cux/Zu7yqOlIYII8Vs57MbGbi2GD3zygGER/QC8t4VH8yKnFJNkrhFLDu22lkbFDZ6ZntitHGigScGAtE9u0BTFJHvkaxD33a1Y0EJV5aKE/vH3Fa7YihIG2MD5J9hlgtwYWNoHCNqC5Q1p1fsr/AY7xTStELJUuFfmc1ko1vmIVz2B0xbq/5PRnqPtvv3+XuZFs7+fKtNiNnBbldn2u8yKe3s3cylg1AZJ3RKEigDS/jA8qyOjZ4lQzbvGY2iYvDzv1URoAfaXcseszvK8KJxUtDnU2cvLbLj86pYr1wUYBMXRm07zD/SSnTKXlhFjDL9Xf0YMoAqAgMHqiJo6GPv1EZsqeAhogu84mntXEo2QBts816+/isosLS3+E1mVA9HQk6xy3lyydtiXAopDw6ZqdahWT8llrmNpo+ll1aQSLF0PeIdKOLOQnu00BGHwUMgGQmPjbmYK0vgIeZXZT92Gr3XTlkRmWOtcBT5wN+jZcnpQqQ7ex6oYJPvTCDY16Thk4x7IYQStWDAi6wN/eXP1wJG9sHFdjD76NQeL4Jg== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vwjsOnfNdZ2aqYLq7vzCeHVe6OI3rc7jy+yDChJ/Vq7qMrKQoDbObwoJgeXG6hd4fYQ90Gnf5EBYmXieDKO2tq/IafmRgJ5Q8+U4tff4cQuj35x+3Vf1F767siPyePpTvMzh3AtC74kLIbBveIk89b24b1f7/06RN4jiqlJJKmDgNAoKR82xUjdELkm6Ia7TIpZ+xw22Afu1yiU+9AP6AKkshqA9d8q7XxpckgwAp6iT6dptKKc5i93GgY6ZYYMfMyl/03dSdifiFJ49Cy8VNepJcD58WkYP0Tn3rYsRzAsTI7ZIAbdgbsvWt9Hff2N3YtsP6ZMAy0EMbdv3phy5UV+T0sFk1TpLQbf7MxsrbSCn4Y47IV7LmvsOo/Zpz7UTpX+QTSFSF7f7NxzybJZwbXRtsBjHxPfecKmf6a8AH17dRdx+Mnq7SQh+8cnfNBwoNfhIsOZ/2GLj2sVDYEoWDQdxlwoa2exPFEHjJ32VFk4Fv/Xo2jgwqPjNSTsO8St3ggbWq40mCTeIp+5D3SslvRGGgwwv3tZRGsBhJTy5EfT8oe+ITW/3VVUdvpI0YTfRtXPVthW5H/XWZbbV0Fe8fox8W4rDsTXZYEANhu9JnJuFYehE10cs9ORjYhFcI+U3+SfRFsfkS2ggqW6od5LoCQNTdNVDftPOCmY5tF6aUxTAU2streIW54Az2ll8G5Dg8cUN842+O6u5jXYuDi8xMZmMWVT/xBLFjZzRUtICjtAIICBF7ZQzu619h5M3BKmVEgIhBuY4qYfOh5h5CGTMP1ffz2yuqRIZwS/QTXj+aUvQmlC1MpAI3edzZBPsndUPCGm+xmSRuBRtfjV7S/efJ5Lnwuvt/XV2ER/Gxffpwj58nsdKC+iPzvZD6gJ7lE2+AxJS/S7Kg4SuShQCihqzFjqcISwhAk9ZFJbfgdpnG0DZrDCUpv5mUf5TVn/NJWHZ6uuHyb10P36UJ1ChmkEyt3L+atSG2LezEENGX7+NYfL1HwSrotYswMnvzTMGuRRnZNkJ5+2YYETyrPUPPReyVoChVNKyA9FjB8zkfMhZ5bakXPFfFyoaSv622KhvCkWLFTqHaeWg/MYh47WN+q3HrCY/o7wf90R+YBe4kB0MQOT4stOiye+4kIsGadDMXaBFC5TKZutsTrQrhzjlvdZnmHdBLoCctfX3U+52AsSZYiyeCaKBzMlTHTSP477z9sSyvg8nwCaqgYsrR6zkXcffC7cC/DPFWof+WYy/4tVlNXG7aK+rM4NifgXSKwdw6nh6kE4H0PyAEKLVTvqo3eDQv4PvElgGZvPf/f+GGhYt/J04JAOuiBdVrsD3hDhYZ4fzOyDnTM194dZUdwMONLH51cyWsqhbEuL128IDeLUrS6d3FuE0PZ7y7l3LzWAr70oPK69izKpxU+PEh9bNjIA+evYp+W0s1LkbO3udnzUCknkhjDAMKH4kU9EhMpg5p7h1oizLOE1RDLHK09qxJO8Uc25z4HInN3ROaqs10w0v/A4kUpEE7AQieV4TgW0JtFShDBQraP0wYneVYYYFXlBlwfRREgR3s55toX/7316O7aBeQGYFVS0SqIEPPBikX7Em0oGHXP5rpRbSdZw3OkVE2QfRpUHPZ49vvX/lN+UMpdw= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6505a1a0-0924-4d98-5fd4-08dd791b5e51 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:41.1133 (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: B4KNjaH6Hwu2FV9WvVocaj6popa68OzuVTOefTlgAIJdvByje65cpIBQP1hmrJBw7jiqEvXLiohrglIdvEpn6lNoWCPZLPUgBnn35NTiqs280+iQ/HDkh+/gGMLGP9Yb X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 From: Lad Prabhakar In preparation for adding support for the RZ/V2H(P) SoC, where the D-PHY differs from the existing RZ/G2L implementation, introduce a new rzg2l_csi2_info structure. This structure provides function pointers for SoC-specific D-PHY enable and disable operations. Modify rzg2l_csi2_dphy_setting() to use these function pointers instead of calling rzg2l_csi2_dphy_enable() and rzg2l_csi2_dphy_disable() directly. Update the device match table to store the appropriate function pointers for each compatible SoC. This change prepares the driver for future extensions without affecting the current functionality for RZ/G2L. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Moved rzg2l_csi2_info below the definition of the rzg2l_csi2_dphy_enable() function as suggested by LPinchart - Collected tags .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 4ccf7c5ea58b0..4aa5d58dde5bd 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -107,6 +107,7 @@ struct rzg2l_csi2 { void __iomem *base; struct reset_control *presetn; struct reset_control *cmn_rstb; + const struct rzg2l_csi2_info *info; struct clk *sysclk; struct clk *vclk; unsigned long vclk_rate; @@ -123,6 +124,11 @@ struct rzg2l_csi2 { bool dphy_enabled; }; +struct rzg2l_csi2_info { + int (*dphy_enable)(struct rzg2l_csi2 *csi2); + int (*dphy_disable)(struct rzg2l_csi2 *csi2); +}; + struct rzg2l_csi2_timings { u32 t_init; u32 tclk_miss; @@ -355,14 +361,19 @@ static int rzg2l_csi2_dphy_enable(struct rzg2l_csi2 *csi2) return ret; } +static const struct rzg2l_csi2_info rzg2l_csi2_info = { + .dphy_enable = rzg2l_csi2_dphy_enable, + .dphy_disable = rzg2l_csi2_dphy_disable, +}; + static int rzg2l_csi2_dphy_setting(struct v4l2_subdev *sd, bool on) { struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); if (on) - return rzg2l_csi2_dphy_enable(csi2); + return csi2->info->dphy_enable(csi2); - return rzg2l_csi2_dphy_disable(csi2); + return csi2->info->dphy_disable(csi2); } static int rzg2l_csi2_mipi_link_enable(struct rzg2l_csi2 *csi2) @@ -772,6 +783,10 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) if (!csi2) return -ENOMEM; + csi2->info = of_device_get_match_data(dev); + if (!csi2->info) + return dev_err_probe(dev, -EINVAL, "Failed to get OF match data\n"); + csi2->base = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(csi2->base)) return PTR_ERR(csi2->base); @@ -891,7 +906,10 @@ static const struct dev_pm_ops rzg2l_csi2_pm_ops = { }; static const struct of_device_id rzg2l_csi2_of_table[] = { - { .compatible = "renesas,rzg2l-csi2", }, + { + .compatible = "renesas,rzg2l-csi2", + .data = &rzg2l_csi2_info, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, rzg2l_csi2_of_table); From patchwork Fri Apr 11 17:05:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880705 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011019.outbound.protection.outlook.com [40.107.74.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4ACB2227EAC; Fri, 11 Apr 2025 17:07:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391276; cv=fail; b=d0yyuUPeL68w87uK73KxPGZsG/43lL051LckbDXXmkjpbXgmNpOEZ+8W6jZhcUdXaht180O4EoHMR3Zbed1r9zydJt4em9+MpMEXaG5x5OSTF0dMeneJMRXd2Jcis5WCn1uCqUftbsZySJa95xCo5/5lc84ekmo+66QnrTJ2v0c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391276; c=relaxed/simple; bh=WsTe5yqKNpbZhONBV9fetn5jZK327veD/arzfRgY/bU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Dj+L3CgNn/OHaVGhNRbEKu5RotrHtiytZ7ZWqO7fKGJDNL2rOt0e6knF5ZOZ2x6BImkUhT0NBTHw7ThZeDByRO6bGdOGrdUGxbyYU4qSbUegNEP7EhQ5Cj59Kh7fg81kqaCAtp+Qt+QGvZPFOA0J6mmB5JqAVBe89miestMijTY= 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=TDa2z5qN; arc=fail smtp.client-ip=40.107.74.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="TDa2z5qN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pbEofWUI1Ubb4O5g5qJ9yl2IndaoWew/n1khy/ebi9VfWYRot/9Rpbk/dlBKYzXmXCvyVuInZSfwbhvBRSNRe3Bkr3iT3oCFoNc9Rqy8LU5NsiMSIPphRccGSoWTQ+W5J88RdP/LwNdSiET49qZag6CZKZEWBSbnU8t8s0UKD6Y/80q1+PCsLAnzKxRVP3/nJsC9I3ZcE/wKnRJe+v2KFcyMViHemyZvSG+MHQsia1qVJVw4fL0/H28SJDlPJL76Hy/i4ODAqq7yyvwaHjbz8jcOTIQOxHkLXwqmWj21sQLBTDSI88JRiJWVHO+D4+skGzuuJJRFq1wIQLHwdI/O0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JU2z6a883QLXEjVLggf/IXa/tCrpPjFJYi5Tqfv177o=; b=HxjX/1qheNHxtKGp5X+HHp0an7zVAbbxiBOiYbQsxqRb5/4IFmTfwEa9HTco8nFwa/LUJjd5YDqUCiILjezZKZFuXu4w64MTiFYZSH5ToQ15W3IOmKq9HIr3z56vVCgi21Z3hUI5zv1acqzibFh3eM860DgQxRl7TnJTXeaTWd1ly3n/dgQ824SlcZ9AX14g1K1RG7WyYSlPpR5kFjWacMXvEf/W4RHbwplEZVcLhHvpuBr0u4dn6ur5HrB9+hdZ9gDTm2ASkLJc3ZoXVcusWBb64MDhL+80YtXR4TBMjvX9kCHIa6dwPwCqYsL2zBFpBqdav/bvwGEkZu/XboDehA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JU2z6a883QLXEjVLggf/IXa/tCrpPjFJYi5Tqfv177o=; b=TDa2z5qNh4lO1stz4gS1cYjvrUi1FijQ+WsLiZ6N5gm0mzjd990JkI11BK/zn6X3dijxKpg8U4a1at+ZpN0/ArXlG3yeTuELUcJf6lpTfnyx3oOpQGUXogodqjicIfCkKjTeT98Yls79Byy/kKlMtxdFS1N73bXqfhXKeUJgwtk= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07: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%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07: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 v7 09/17] media: rzg2l-cru: csi2: Skip system clock for RZ/V2H(P) SoC Date: Fri, 11 Apr 2025 19:05:37 +0200 Message-ID: <20250411170624.472257-10-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: a0827dae-3df7-4076-ae05-08dd791b627a 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: qMx/u2yiYQ4qII3Dt2qsY1w6orI9gI5llG5v49sGuad5bi6cSQR3WiJf1+4hdrbCCbdQyEQoE4qfPcmIOkD+y1AfKJct6P13Hz7P67xvCcPh1DrI6RkIHJnnkJdzLtwkZVSiRkZv3ssCj8r3hNlzPCo4Niqw3B1R652bPYeu+Gms1H+e/DfFb/AWQMUSBjUypNM4IgNGXDWB2pD+Mrys6+zqeTxCpq1qFas8aGTZICtiS7Zz9x8Ufjtslx8e07oPueN4Jth5QuKNxl9rs539FtDYryj2yoByjhCapzaWsX0QfIZNpkJIQ98D0sgtfCCrM8rn2S7VQT2Zyl+0awAVMwCMopjy4ldxY2yQ0B8TerUkC6oMnzRTblz2bpXlG7ZIoJbQzDBy+1XiRgLOLUXw4tj+4qLW/sq6mpeM8GA/fs3uk3Ymj+IOB9U33XmIhw/lf81ZJQByLvSC3SRA7SY+6bJyver24GP/5Wzxj1OO9/eCPwI7Mp/n357JvC7n/7YAbFkopISxzWH2cQR2gsdGGlpjjOXLuHS0kf70ZTtGeVO/eCMiWE0l5i635c/2fIS32S+L6HiUqwy/SBbdoTKHPT7wvIc4pIHl5cWagbBooAYtO4nTgVMULLXGe/t9cwIJT1kKSzl4yjfNyjwRUIS3Pt4fHJp890WL3p9p40kKSyVSqU543vW1TsUc0A7W9pV+MZP4J2CSTS39gr9zCp6Y5naNrO8cLfdEIgREBTnrBQBxArRFn9X0xK6yvDS1A5hwdnHrKawyjldDeQ1o4G4TJQP6Bz/hi0op9tmmhjtleFEqWA9zc+mLjot1k6ajE54n8qEs2RTLLZ6IdRMqmt6OVsAQONzgbpy5vbn3eVbzX4naBX3PWxtLmWEOiPmBCTgab8b/6KPcfd+IEDeRI5SvFInpMX1srLeIcK9wyZVOmIEgVv4txHGXn5L//o1gUHFepC0AHW8YOFwH3bW3PgwmVUP0rXLuTgtQe0ilr170HMBtDVzocsO5EKB/x1Z3GYrnFDPcbGIijuq/HfzYCn0ZrAPkldSxIWavs6GZpUnrAHifHJ3OLIUNthvh3WImC5GC5Tjx959yXjdGotQk138/B4oSn2k7WkT6TBZAaseKpZOsFdak4qD4X3hAiJ51B6W05tqVjSamLCRdP20xT5zrsL6B8MZpxExwHND5JkbVywf/VzvOdTdGW2aAIxJ5Zztku5hM1+YnHYwZB/aO6Pi3fCyTgSF3olUKxUOgLuAA7AQov43m1SdDefi93HwtwQtVGuuckEqXByMHyLuZIhta6XBtuNXyZLKAzkqFT2rEJBFF1j1QiTxFkh1fkP4ejTcdeKWWUadqY708KVwrxrm0gtmEvMmFCmEE88rZsWL+yOc65Wt/Jgw6L1k6qDzvzGDOu36BHitMfxqSWTClJHALDvGXwZKO/pUOjL62R/YFSrrfB24jfb6X+cGKzB+97Un1IqC4Ta+LIQWrNAIzVAbGOg== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Vx1TIWYNZsGhN8WOrSfH0gKApoc6lmhvi2eHnfSFIW73C84wysFZY1pFFccac3g+Fwa+EeGqG+xIiyxRjfY5QNRxBLnEs0tuZKrPzB5wixQc8YRbkAJ7Ros19Si8wwTUHkaGg5XV0hSkdCJpE2ZwRSlC7veFTilKzOhINF/HUgmcsguY/ySBTRriVIzf56TB5A9DwuTqgK22yASnbe7hCmATybZthzNQqjfdk1Qz4hqN1tDscPPByrGy/rsLN4Q1NvJV7GV5sJln/C8bbOnWWhRJgb5X7GpHjUK3THC+G1nlPuf1z2jgLNo2tXMHt20O/UYUbx9Dsoe3HiGtR8qk2qpfHfpElkC+LACQbltmljX7h5jzMGPveaY4bBwM9T8W5kcsAJXhJLnN9hzX6lpdCF2ntP8eI1cKOxewLsOoBSdRhHjVKDM5e+Bxkwh+CeluZGHtarN3FyyVmaCj5L1kJRtt6p06DIOv4gV7uazQWtAcA8/q+/JRsvvnRrV11ans/5HL28Dt3bMurSDH6MjP9uSIqNA/pSnthG4YJxs/tlcCbwX5eOXmD2GJsqJUGcqj2JWqqW5s5mMadHtFtLpL/LEUOxsZe4rj9H+VuicjKDNYpGYIk+/HpZR3SiV5nK8HXxz7ypdfAKjwtY9+xyaIGa79aH+wMt3gK7TVIQCV05/GrGqxquVEwROys0e0RrzV5MPGAZ6IP6YA8ArSLRfb5MV0cOplftlBlGnVZM6D3bYqHrA+iW7my4D8aJsQptMXRymj+WCVe1TAHyn9SN3IA3fcNh+ykIYWg80nvEQV+40nWUsym0+robQGJWW+PGoH8hIMKepyurtdzkggyrIpGsvRyaJA9UqO2QSeNE3YuZpTRMFpz1FVAcjf96P/oT8rhUG1KaKkJ9zelOfpSzGDGBDix1QONx3uGCf3/c8sEDqyUUGwpNR9VZFRpSS3JOcxCcJ5nf9StbsRqrUEesjkAXXrxEnRiPPTijKe1vXm6uFZnvUcfGrCAsTKJcrbpvEq9ORPPPbMVROaK7/NwYvVUubREEb1iKJcK7NOeO0b9uW5i1X2K9NbpzQdqxp3n42q36val3gVpvw6RIFys3CmBA0vjLHfqvZBP3rUz4WR2tyMGb0KwQPYQAQTyhmflNYYmv5riz4tMnpacrnvA8TQxF0YYcs0ZPcizHLmmWy2HeQj3Q4KS7KYafTIQcEazGg0KDng7H6/osG/X7YBI3J5tPdmgDXgoG25Azgkvyyu8LLcZNthDFG2NsO5cQyZrBlw9mFjK100EeIcHUTs4jV+DoK04JDhNRyCOT1v8/yl/giO2nY1TWgxTLHXLEpOVnYwICw3+ZLTHcEg2ov5pwPZhNoMKclyk5EG9NooL01gbribsYkM34g3teuKRAghcEPqER37lzciw1QHt/GGoQjB7top6Iyy8lVFtQnXXwn3rarKZ9uIkjICLdqaybZ5qXPvTT94WFYjKMdyVoWO4pHP27k2Y39No/cO3/ry+lqFEu2UY+pSkzsnMaILQ0sD1qPgBAQBak2QzTnjdFKpw6jTerzxwwPE89endB1VaebmhEzW60TP3HIYPd36mFq/juar5o9oBeozGuAgA25TULMGckMrfGvQksXddktOrrJJ+9Y= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0827dae-3df7-4076-ae05-08dd791b627a X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:48.3082 (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: sZFYVRmyOpYUNRzr79OQ03KoVUyfB4RXt28nfvnv6XluWOqXYA1ETfYDBox3yK52iy6SIhJcrDRuh5ohlfn1R39zoLz7HWM0N72DmiC357dfs7tmR03bg80O1UlVzM7L X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 The RZ/V2H(P) SoC does not require a `system` clock for the CSI-2 interface. To accommodate this, introduce a `has_system_clk` bool flag in the `rzg2l_csi2_info` structure and update the rzg2l_csi2_probe() to conditionally request the clock only when needed. This patch is in preparation for adding support for RZ/V2H(P) SoC. Reviewed-by: Laurent Pinchart Signed-off-by: Tommaso Merciai --- Changes since v2: - Added has_system_clk bool flag to the rzg2l_csi2_info structure to handle case where system clock is not required as suggested by LPinchart. - Fixed commit body and msg Changes since v5: - Collected tag .../media/platform/renesas/rzg2l-cru/rzg2l-csi2.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index 4aa5d58dde5bd..e4781105eadc0 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -127,6 +127,7 @@ struct rzg2l_csi2 { struct rzg2l_csi2_info { int (*dphy_enable)(struct rzg2l_csi2 *csi2); int (*dphy_disable)(struct rzg2l_csi2 *csi2); + bool has_system_clk; }; struct rzg2l_csi2_timings { @@ -364,6 +365,7 @@ static int rzg2l_csi2_dphy_enable(struct rzg2l_csi2 *csi2) static const struct rzg2l_csi2_info rzg2l_csi2_info = { .dphy_enable = rzg2l_csi2_dphy_enable, .dphy_disable = rzg2l_csi2_dphy_disable, + .has_system_clk = true, }; static int rzg2l_csi2_dphy_setting(struct v4l2_subdev *sd, bool on) @@ -801,10 +803,12 @@ static int rzg2l_csi2_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(csi2->presetn), "Failed to get cpg presetn\n"); - csi2->sysclk = devm_clk_get(dev, "system"); - if (IS_ERR(csi2->sysclk)) - return dev_err_probe(dev, PTR_ERR(csi2->sysclk), - "Failed to get system clk\n"); + if (csi2->info->has_system_clk) { + csi2->sysclk = devm_clk_get(dev, "system"); + if (IS_ERR(csi2->sysclk)) + return dev_err_probe(dev, PTR_ERR(csi2->sysclk), + "Failed to get system clk\n"); + } csi2->vclk = devm_clk_get(dev, "video"); if (IS_ERR(csi2->vclk)) From patchwork Fri Apr 11 17:05:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880441 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010011.outbound.protection.outlook.com [52.101.228.11]) (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 6A448221FD0; Fri, 11 Apr 2025 17:08:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391283; cv=fail; b=BJaYSjfzmNByqKZph8ZrWtxa9yzkipHgl98hbXwHuohhKWvsXqxbmSW84Ze5JlMLxXeGtrZHj6CL0OQ/7N65Oa/5bBaBGadChxh7b9/TMSZkbiSKvaGMxhLDAxbcJZjnBclzV3+MzF37KY7Owr3PHfm3WUytFFGdDpNirS5Lm+s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391283; c=relaxed/simple; bh=FEW971mqYDckTlqliO9ZrZLh4MZpDT0SU4fDmE1lJlg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TrojFUXleIMSBtThjr1zPnIcA3d52azY9hB0SbWt4upjy56TsRrF6vqxVOw4gbS3NEXlov+LqHxoW9rTjfECXrSlLwhH2OQctq/s79OaQoq0ZLpkKGhMi5v5nkxtwTYfSUJUTt5wguE2FgYM3ZONKGe0AhbIatmF/BJG8cKmKm0= 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=R1lNLBo9; arc=fail smtp.client-ip=52.101.228.11 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="R1lNLBo9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a/4PEseLsbySqEsSMnmJAkN451tE5LECp9HlBmed9AHQAPziZOr+gRZyFwdWVNHhqM5Iy65NavpdL9x9E3F7onZLye/3qdXEv2v3thefG1S5wCbZ5CLXNHuFnV0LgpbPpOGD05MoaTlWR7uaVZui7Thc89Eab8unUBXEcmLpfUBXP8521x5OqbbvH7SPXRkKgOiyvcGPkiVTxTbL73ZoGt8ET4c7mIrCysAEa/lf+XaOHF8z/NL9MkrS4CPKJ8ZpYuLlgZfffmQj8eHdV9qJ6L/8rN7reRuREAgaOuMV8L4b9w6KHwsYjAdyVQNBiXqpfiRJf1/Gu4bHzJbtML/LcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jPCAyGIaCpVn+CBKxCEdizeov7zcOBsaTTXln0USCBA=; b=nUupq7IsOR6Yt+0PstH2p4m7q/lFi0I2ebvH3nCz+EAzHi6XNoidYj5ApQZKiA5fVgOGV09G3+/TYY54YYA0m1CsKmj+0wfOu5b0g30P5F7GV8CQ9Naxa2bI2cN9eMKAne4BN6IOXboQ3hhbB428YVJN5ysus4NDJQoKX9ey/eMWuBXADQdQjpHgR9X19H0cQFN1qf85au/DKDYnhm5t06irFzKu42DCMHKkgxO9rtZUliBRzMdghS7ifTgy5Zah6HuYY94AQq7E3i6wTkVAx+tfMCmvgHwyN7KZ0eqJDZQ+ZDsfpGfN8py2/Ih2CEGl98nblgc9kxrjYmqWrGLcww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bp.renesas.com; dmarc=pass action=none header.from=bp.renesas.com; dkim=pass header.d=bp.renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bp.renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jPCAyGIaCpVn+CBKxCEdizeov7zcOBsaTTXln0USCBA=; b=R1lNLBo9uggV8L+T9Fk3GTIFhRjPFMd3yJDZrfdhjV2hfRMUg6Ge8NC2MF3BBFMKIliqZLbZSRv42z7mlp+6dzwAZq4A5WabP5JL0o36e8NMCsPRXTwKpqLPwx8PipzoRxXs1eV7AvZgtdpptiO9xsEKropXDDl1pjN7DDHvnK0= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:07:55 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:07:55 +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 v7 10/17] media: rzg2l-cru: csi2: Add support for RZ/V2H(P) SoC Date: Fri, 11 Apr 2025 19:05:38 +0200 Message-ID: <20250411170624.472257-11-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: ba9237dc-9bde-41d0-77a3-08dd791b66f4 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: Ma+uH1+HMp90s8VIT2op7Q5AhT17c5RTIOfPFWKGV8+2z5/CwjxCWimmKeDtxYBS+QBlycNOecGambIV1N6l0hTlH+5b825+Ld8hiZ4LwlS7g4RRS1eqDjN+PRX1sodib3sgwIlq6zVAeHsptfd9arkHcYknBQa/Fxg3Q92I0APACUfos9XURAyVkDvliWCLS7AiQu7z2Fh81eCSqMWFGeKmN0ry568LGRByToBynXPQnYAhwjFaX8vh5ZZigUITn32sDL/ghfPYsUhlSWCAJxfrXN54DgaGt93kCPcbOKPmUd/YIb7gTP63a/o1VWxdjaWP8dVm0GWyWBIXV9Ng6ku6zbPACxZueSMWfjjJViFTnZ2INbn2aKH1brYlCrxJOOrvUgsu45lvPR4QABKBslgx2HaaDZGInWYiMJesBPMtRr/a7C33Izj0oeGZMEtkvky/szcl6fAV+4vBT+XGcjFnWRwhneRrDFH8ZYdhFmCfFDrPYKoAN5KA3IS3BYl+d0RMg+Os2kdn54Y74yT25v9s7/arWHlhyHvh8ry1aDLA1MkLK+U3MYSADaYFErbkRKKYzndsVDFNz1WGRsTsD14KwFAvWylI7MEEY48h3RYoOWBL5RcXDij9PCofas2D6GqblQ6sf4CqCxief9gGbfZ12nt9YfxOtQluxLL2aVc3KHwR6E6gdSn2FYwE8ic1PAKjl7Q1nwg7368brgA8rDjhLnWm/B7EJrbG2wphRLQMC1uUfq/DAWZG4/WnWYpDGfDbutddEwoHKxb1SgJ16+ckC6aPc9I+/KSslNkwosTxBqW5lIWhxKwb1qsC4xCdAqBAg+COMO+/DLiAhiEzIC7G/qIO8Q0WK9XY4Q7SEFbG3fCF/XiTgkul9f9rnTnZ05bAyk15xJUJv8YdaBM6YyWV4UiWPPR5zf8QzKEyZe/bhEjLyUeK2JMwknJUDY+QHcWMkdprKPX+Q8eI5eT8BA9R9eR3EpwTZgjwfbkxLBxlWOzPybVVM0nyeKUERr9fOXcLftO7ue0jfTd7IaGoMkUoINFK+7LtLNdTC/6VP1Fv443fb+DXLd5O5wqhJDeTeLU4QVbPbs//Fdt19Qodmh9sN//K+9kxSxL2qCTMIb7OQ983duvp6x1D+CdyNxMSmuh8ghTqit4FWmWUWUkYvaSTzppwNKSEP+R4z+MEVgguko+7+1qw3LDEsu2ytZiBbMPAqz8kS+cCpWObn3EGuoeS56kgX3fgr+U4bknfRRuxeFiq9bDVJnYIXxmE0GR1UuB1l3/Y1cs0dsNP+/2nmhjMm4zb1sLqkDPRaHYzY6iepK66Vcm/1USvpO3k+IRxtvlHRiT7U0wf6gaSKVjZjeFG0qJOYcxm27oHq8F3xmf0oCfaeas0GPKuHUHR0ODpLWX/A02WtF08oDCqg/9v2F7GePVOMEXV7moUA7yOfFckQlrgA4F6FntqvyrHKSh2jA8aXK+niRr9fk+Z162SdA== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LyWLjPeLh2tcYmmY8RTrjrtQjNoyU+STLzrqqfRGAAIaba0UxYI4n/n2HwfURpSH1OovVXZtCzruNsNm9C0LX0AYkJZvtHCqV4Wz62Cx0Qnf6kiRU6PoH2rtOitU2c4cGG11eax3RskO/SopPhckXifoTV/o39Hrk2Vlyt7tGWrDdPirje6G3XONv1OAUDoSeCGY1dJ5jiY4Luw/lZTHyBOAVX+v/nl5+Xuuu3p2lAnvU7664bbdZZrquXle8P/aHz6EMRUCCIsFRSeS1oI4i5nUYXT4M3sDy9aDOX400jKGpFBe7IbsYz8iMCgIq+d+4Wu6j4l5Qaa+fTgs+y3KpweMvSFZJXzCxTXBEEyLXOroGVkXg+9MNy9HJizVX/5VFkn1OMgMnE0cRmkZY0+0AjubcJuUJPEytp8hywwuVWH2urit6VXt1kROc7P/G42H2GW67rAMJUZY4qtg2MaO1ZjgPIKSvnMTNTagILNKJpISPyDOKvYV6+lC2eXz8bWCQ2cpd5G/1RpFO/LASN1SPhwQL3CCuco6Oekq8Xrdy6t6NaPwTYLi5Hxi8qKKfaGLixFA6GWK4WRJn1qSfZp0E2SaLHt5i98XJzD1lFBXckdhzYNVd6OUNeFxDOOjSm1SXfqKR4fcB7y0g2ZOdnLwpcsqxuO/s6hXijVY0LqQZGdPttfGK03ZDtgLaICNNY9GMC1Qnzso+iQ9go5AFgUl2qOBG6l1BTifuAp5RlLyiGv6UO1vCbAnDn44cFy2a3eGw7h74W9bItCrU0b5YXDm8N/XwFnPqiM0lK/C9neh7lAUHs4NGAkkUB9F2mrPgOb79dFa4n7/kfPJgNmA6vat7CF0XZINfHDtJP6BqGBdjEBodqWfIADcrtB+49D0DVtFXNH2rnNNrXTDGAYMa3mvc7AdLys+f4pj5lVIa6kupxE/RCz5ildk9V/u0LsD/RtZnK+QYx3DQu4svvgKbIIbbRNdOJgV5IGKyoEbquvJ3zl2nRHvztPri/glyrkXP8nGpbZZsJzbwPZe+LEpEheCsZmYF493Zjl+0ozTIz2wtOaDxz4MJ4NrMe0fKW5hhSY+VBjEbTc0BkhBkyavDqR4b2GFIPk5Mnmqa3AeWz4V1t/2k05ewtVGKwOBoMeY5FUJxVBMbiHB8FIYQiLCfs13onzCB6B/3lBQQQzfkM2yImV8LlIJQ+IIcrMuhJp12ydF0rpWTCQadfJkaGF+ej3xT93mObUkVyEWLoo/DyYg4jbVXBPEuZGqIuS+Rh8qlI1Ajh34chu8d92lyz9qr5IdNi4sqYrf4zAK35SCYZ3gz5ElYZWSVj1M7r0gojp2t9gE+t3kXRH/MJR9wZn7w5Uga7MFxDOhcvMIU+oqDkt5XLhrt9SqBJzkRhKVneA2Dj9cXyVcWlLx6fUkUof9xyYeqn38o72aOq9vDo/WxszasbfemSJOdDxO90ealRm5319/rVQWqnzeEp5X1H2hfVn23IRt3s9h9v5R9t84VAUcZf0/h5MYMJsAgXIyAuetRtuSPWlvzjeMh7U8MwwknrYpHAxX5aZiDyeaAm5dcmHMlsDIafoBRHB4wgJIOF5s5Le3pM2lrOmBr3e+1vC4Y+TgCehlrWZgXHJzkevBtkBxciU= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba9237dc-9bde-41d0-77a3-08dd791b66f4 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:07:55.6081 (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: 2BgK7xaKrG+JZ7OVKmUCwLbFWz6Ss+3UTdhZKJWIMOmVvaFcdIDJm8qwXBjxaYuDYQcAkwZEvzTsCZw+HAGlXTDWvADN41Tc48R4NpCIqmYpAJiouYVE+vBteizUouX8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 From: Lad Prabhakar The D-PHY on the RZ/V2H(P) SoC is different from the D-PHY on the RZ/G2L SoC. To handle this difference, function pointers for D-PHY enable/disable have been added, and the `struct rzg2l_csi2_info` pointer is passed as OF data. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Moved CRUm_SWAPCTL write of rzv2h_csi2_dphy_enable function under the error check as suggested by LPinchart. - Moved rzv2h_csi2_info after rzv2h_csi2_dphy_enable() as suggested by LPinchart - Collected tag. .../platform/renesas/rzg2l-cru/rzg2l-csi2.c | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c index e4781105eadc0..9243306e2aa98 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c @@ -85,6 +85,15 @@ CSIDPHYSKW0_UTIL_DL2_SKW_ADJ(1) | \ CSIDPHYSKW0_UTIL_DL3_SKW_ADJ(1)) +/* DPHY registers on RZ/V2H(P) SoC */ +#define CRUm_S_TIMCTL 0x41c +#define CRUm_S_TIMCTL_S_HSSETTLECTL(x) ((x) << 8) + +#define CRUm_S_DPHYCTL_MSB 0x434 +#define CRUm_S_DPHYCTL_MSB_DESKEW BIT(1) + +#define CRUm_SWAPCTL 0x438 + #define VSRSTS_RETRIES 20 #define RZG2L_CSI2_MIN_WIDTH 320 @@ -140,6 +149,30 @@ struct rzg2l_csi2_timings { u32 max_hsfreq; }; +struct rzv2h_csi2_s_hssettlectl { + unsigned int hsfreq; + u16 s_hssettlectl; +}; + +static const struct rzv2h_csi2_s_hssettlectl rzv2h_s_hssettlectl[] = { + { 90, 1 }, { 130, 2 }, { 180, 3 }, + { 220, 4 }, { 270, 5 }, { 310, 6 }, + { 360, 7 }, { 400, 8 }, { 450, 9 }, + { 490, 10 }, { 540, 11 }, { 580, 12 }, + { 630, 13 }, { 670, 14 }, { 720, 15 }, + { 760, 16 }, { 810, 17 }, { 850, 18 }, + { 900, 19 }, { 940, 20 }, { 990, 21 }, + { 1030, 22 }, { 1080, 23 }, { 1120, 24 }, + { 1170, 25 }, { 1220, 26 }, { 1260, 27 }, + { 1310, 28 }, { 1350, 29 }, { 1400, 30 }, + { 1440, 31 }, { 1490, 32 }, { 1530, 33 }, + { 1580, 34 }, { 1620, 35 }, { 1670, 36 }, + { 1710, 37 }, { 1760, 38 }, { 1800, 39 }, + { 1850, 40 }, { 1890, 41 }, { 1940, 42 }, + { 1980, 43 }, { 2030, 44 }, { 2070, 45 }, + { 2100, 46 }, +}; + static const struct rzg2l_csi2_timings rzg2l_csi2_global_timings[] = { { .max_hsfreq = 80, @@ -434,6 +467,64 @@ static int rzg2l_csi2_mipi_link_disable(struct rzg2l_csi2 *csi2) return 0; } +static int rzv2h_csi2_dphy_disable(struct rzg2l_csi2 *csi2) +{ + int ret; + + /* Reset the CRU (D-PHY) */ + ret = reset_control_assert(csi2->cmn_rstb); + if (ret) + return ret; + + csi2->dphy_enabled = false; + + return 0; +} + +static int rzv2h_csi2_dphy_enable(struct rzg2l_csi2 *csi2) +{ + unsigned int i; + u16 hssettle; + int mbps; + + mbps = rzg2l_csi2_calc_mbps(csi2); + if (mbps < 0) + return mbps; + + csi2->hsfreq = mbps; + + for (i = 0; i < ARRAY_SIZE(rzv2h_s_hssettlectl); i++) { + if (csi2->hsfreq <= rzv2h_s_hssettlectl[i].hsfreq) + break; + } + + if (i == ARRAY_SIZE(rzv2h_s_hssettlectl)) + return -EINVAL; + + rzg2l_csi2_write(csi2, CRUm_SWAPCTL, 0); + + hssettle = rzv2h_s_hssettlectl[i].s_hssettlectl; + rzg2l_csi2_write(csi2, CRUm_S_TIMCTL, + CRUm_S_TIMCTL_S_HSSETTLECTL(hssettle)); + + if (csi2->hsfreq > 1500) + rzg2l_csi2_set(csi2, CRUm_S_DPHYCTL_MSB, + CRUm_S_DPHYCTL_MSB_DESKEW); + else + rzg2l_csi2_clr(csi2, CRUm_S_DPHYCTL_MSB, + CRUm_S_DPHYCTL_MSB_DESKEW); + + csi2->dphy_enabled = true; + + return 0; +} + +static const struct rzg2l_csi2_info rzv2h_csi2_info = { + .dphy_enable = rzv2h_csi2_dphy_enable, + .dphy_disable = rzv2h_csi2_dphy_disable, + .has_system_clk = false, +}; + static int rzg2l_csi2_mipi_link_setting(struct v4l2_subdev *sd, bool on) { struct rzg2l_csi2 *csi2 = sd_to_csi2(sd); @@ -910,6 +1001,10 @@ static const struct dev_pm_ops rzg2l_csi2_pm_ops = { }; static const struct of_device_id rzg2l_csi2_of_table[] = { + { + .compatible = "renesas,r9a09g057-csi2", + .data = &rzv2h_csi2_info, + }, { .compatible = "renesas,rzg2l-csi2", .data = &rzg2l_csi2_info, From patchwork Fri Apr 11 17:05:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880704 Received: from OS0P286CU010.outbound.protection.outlook.com (mail-japanwestazon11011067.outbound.protection.outlook.com [40.107.74.67]) (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 0DC252222AF; Fri, 11 Apr 2025 17:08:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.74.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391295; cv=fail; b=bQqR8Gv0qA5M9bhQNDVGXmXp/1IM2Fk/VrckcWIBQXbuRbdljAKeOc3GAwazZ8syTmWDKZTXrJYf9cSanqLwWQUIHmnd8KvJcdCxLrasbH5OTq2l2Z8kbEqrf5e+8PfdtXqBL2vUI00ugkhwYHf0La4wDyv31uXcTAK4SbG7C/4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391295; c=relaxed/simple; bh=+TZW9RoShTsUE6mVMrSr+1n1nSIV5nVD8JqMLXmkS1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=elVzP4uBwsRId0uImYTj5VgKZDGgIFXxxUMDiIWhthuj0Lera3k6dl/OybynlR5x3T789JOUtt+0BaoC3m2G2YBJD/K6lv9hJmaV4sIiPL0JOL7fR6ZViYe8Pod+AIFuY6InDYKQQ0lBG5+9Z56kqL71FfX5fIbbLqGYebJmXRs= 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=KKRt/U8t; arc=fail smtp.client-ip=40.107.74.67 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="KKRt/U8t" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FhraJWTM4xB56OKpit6RdsoXQuLf/7tu8vJcrGCJAX+OQ+V2+D9jf2rke13gZ+K/6ox6FGvdjiJL9Oux+4QhWWYisp2Swqbf5LsIm5k+l8xL/rFHqELIkJpM5tq84BSH/qC00xrxkhxHxSNGw+4C8ylDF7S4nhSH3cmMQzt/WGvmeHSbEDA5s8ds3IB2yj/jsZHsoLkBynKvqpnAvQJbPIziMGzaYUmDkDlmnkPtKeE6hXaXqrl7t0fhfMuhgcZDGUHuik9g+1ELZGzhBioYx55VrzG04xdQ6qU8yScWq4zDcn6/mqFOPYdkDu6pK09MPvZTewQu90fQGkz2cgfZ3A== 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=QN9PdEajosYpUswI/NZBsSdC905xN8Im9lQEf1B5XsE=; b=cLYPonhzsXY6I7IwkDg4ze3E8+xlVYCGgqnbht0or8rqdzowjW8Eyt7PGx8VLM4QQ0pvyGzZKMEe9VYEHC6IartPm0yTZIYAuQ4FshBwhzLtvxqfZcoOPsKGgbRDxm1US42JX9dqujkpkTQJLls332YK2p1CM/5p8aJALrHI4iI1cMCwSne21QLphaktgx+75KTXkBQF6giFoIhl2C5oHkXDNL6WbBTaSktduSQ6jlpSfzRz/bZiX2gWKwU33Kd0ml/XCz9qMvaytwruj4loadw/31Bn2wjM7KRauJf+3qGlzJuPOYxT5e7TA1+htfDcLIGvHDpmDT+CGwinq4DdNQ== 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=QN9PdEajosYpUswI/NZBsSdC905xN8Im9lQEf1B5XsE=; b=KKRt/U8tilNtfx85TXT+hVwezoWszEzisEdUnIBXm0K1PcGfJCAnGk4hKSmb6PXN/KecG/X2KwDUX+HMux78lp2JdoKNAvJSdLYUTQZGIY/MN7w+tEYP8UFihewNCoD0GzGSQ+1CFFI0W4nqVi3lTFqtER3c9EbGSEPFSrr3YKg= 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 OSZPR01MB7963.jpnprd01.prod.outlook.com (2603:1096:604:1bb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.35; Fri, 11 Apr 2025 17:08:07 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:08:07 +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 v7 11/17] media: rzg2l-cru: Add register mapping support Date: Fri, 11 Apr 2025 19:05:39 +0200 Message-ID: <20250411170624.472257-12-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSZPR01MB7963:EE_ X-MS-Office365-Filtering-Correlation-Id: 48d8ca69-e2e6-44e3-2088-08dd791b6dce 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|376014|7416014|366016|52116014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: K8A6lztXRWuoPAtNg5c/ZnXCS3lIekLfiCDNZ7V4EeHc4KLrbDocZkgqytIOv7+EhOkm8NjqrwGiP0DLIYkPRfjuTOj0PAN9F0+MM6lD0XH6DQ4z5ZXnB/bGaVCl8FiGUtv6uQ6VsMAywCUgb6waCH1QjEe+6AV8UkMX4Sqp2QTLNf4XN9mkh9HVlsCRUymjDKPWaIr2PQK/UwCy/aUHPoXyo8+ThODyl2PnjGXesxgitjH1HZ2VwntprGCLfr2250rJHFy8rFhbFKTNkoq1b1wCz0wnTOAhAZljL2l/nn3DpjQ8hteWYNUaPq3N+I3JPATIrPvyagGGFZhW9X6l2MztReXHhZuf/MQF88Gac2hVM8Ekim1uVc4z+SEbFXhllxtAvcUN2zoHN0MdTjJoGngsWBFAarzK4mQOX59gHSgJaZ/TRGLIYP906DkiGu/Xr9lMjIMIfbk8zMEPcVB6U3JWqyiZlcMG6k46qOWJK1YMMAWguvguvRLGRrZXqamkklLKcX6s50oIgDra3rG6ZMI+nnepZUvZosUgMHwGhdZ2X7oSBfcBXuUAdHkCWHYNeG+vrmoKOY2rYLwZAXSvB1yFxMRJFUSRZp0Z6hZSrnH1ksKmrb06UdTvY7144tn6IXo9TJfgtOPWmBTa6TM9vlQoDQxytWJy4+WvfiY3rmw7l/e/pbNrNzoMg1YX0cmmmsx8pDkMM41sHf9rbYR2ZEl/CRQt1Gv+nACnODUI4d7mqyFaWo5k91WonY9tzMCalmuhpKwSZa3/4wFmZT4M+vIhQdd5Ro4PlfoWzstLxEV9ntnvzV5a5aOFAFMHFbP+vsb2zwR3UDriaTN5HSdTQUSamE/SnpwHW1MoGK5eRroSnUmkh2/q2vdNRWMQxGOmj6y9/qPBwKvUUiQsiMu7jeUcRKU7FQbc7gHJnrxX7puAHBezCeW2VM0Tj1Vtu3hJ8D4oCD7ABe4Ai0qeH7DJkE7z9lDP7h28/NB5mSw55fXTNFbOCHcBhlUer2uRU6RCwk5fEHrdYPg6Wcsh4CaWnqG2xGIbnvbPwYFs5x3bINv9tTN+bjXY7w93ng4eEbGAAXH6mG5xDMh0G3ln9xZlVFytRyDfEIsKQcr8i/HulFh3KVhB9e5AwToR3Kq+/IbDiNbPG1A2Ew3MhoJMzCAdEBEJxqQYz7pdqTYMZLbRuFNTgiR8+u9h4ziOkI1UYhH+iBFXxAjRanvPRFtmHIIeAjzyhRBmvCGi3ytaD8DhuMehygwAAu7yyVfx92kl7Wba6fmZOBCguoFeDtk4FXJpSbrSc7kPlY2vR2MUEDtYbHKQ1nRbYksGGI2GrVUIh39nY2MAexDSIdb4sl8hv5MB93ENfZwhedP30UufEl5VA1Ns6n/CDReU2295fRw3shICznL4ykUgThgDAh2OMTUSn6aDRDU1DXc9anN1JyF720J6ygiuSs5JvsZLSkMyi3Yfs8IF/mJdg520XzKcpy1YJQ== 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)(376014)(7416014)(366016)(52116014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RIgRiuABeoI18KFT+M29kuw9JhqucSMnUqRq8TS1YgJsJFgdx4SqjKOlzNPvEnVakCJYqMQ1VoU3rJ4gdAULnw1dVJqR1V2upky5T0KlLjJk/X0ascMmassJOdBf5hhgx9ZjvolNQy6ijTOj91sM+MLiWNlZG9CItF4slMhYIX3/EdguNnfCBSQYqoRdi+6mXs6pBZG0ThLJ2ldqku3PxQVHTuSaKwp1SunxkJDgcxaEL4FIte/9SFzXLJvDqC/ZjHx6MzuuXG8ItBoBmw+syjdZLqeouYNdwdBmZkO8OlzsOo/AhrMO2Q6kx0Qj4SU9rKBpI9eDoLsSLR0VOKYXjFK826/2ZZSbS3TMGP5BeJHcCcZll4xuOp5+n+oMN6JZl065VZmkdGEkxnCITpWhdg9NDHeQsA4LgNtrWfXHeYuvjNzfbdgNIEME6lDHxal2j4a6kWHll2wq+U0MZLfh3gpZKzfFleBwO6L4R21DQZ/3gs4ql0YPFyjoOyUqBaz4/gR4MVo/vxv3iMmjcPfvh0bDhx4VcJVtxr4PdtkLjo/jkPCcS5jgO75peXa32PqwRphnTFpXdKAoFspfO6akFjEql6nFQlkpm0Qbjw7c0TJ98Rv5Xj0EKjXxKCZXAu5oVk60vzi9QMbroVXjwU9XccNw5FpmvwyCVavHs7gTnXCCPqLMgVgV8gfHgQdBs/isfzWiiTADAJnpZJtIhbgNQG1oY9WW1ahh6qI2hLdj6s8qnfec7GzIjnXU04AFfW/B0RtdNaoxO/9RgAE+xHtGyZXSxqAcq1oGS+w6sn9n+2ra4/e/QzZckuyA5lHj4wEWlPsNKvS+txpt6W1aEdqj4PUgBZ7fwypnvgCOd97b0KlQRq0N7WHeQ51uQTRcSsp7yH9adboAzDHyc6RRxrXVrNOHR+13535+EYeOwmIO5pTXrBmzsPUPXj4VuL167sAMeft+/jT1HaXxUSfqFOZmf3L3SyPC3fpkIVkK4/KZKbhknCvpOxTv1wh3GmDte+ayabUc+2G4D1q8WGtgnaQI5fv/5aK9wDR8UMggX5XPV/NWeD2xBXY557cmDJrW14LM72XF58horDMreLg2pgG/UzDY7TAkhUAr8+D3uHV1AIpzjjtIHCV9azj2Y6AWW/JWZ9xanWnhXDFMhP39f5verR66yBplDjS+sPomeuFa4lz3tpMx79hj5qCgGR4QGz6qUH0Gz5dPIr6CUengJLDuEHKuDjnnuYJGg4NlNgtq8B5JmoMGxDdiPmo0LDl3h19gueZAH5MBOnV2qsbiYFkYrFecBUhYZihEj5rOuvdUnIf9k3dqkLF6wxhv2eWEyggpV7ua1hE7dYDOnMEfxxO7/UyqYWWVwpVxGvGZVCcyAAWdcZcRihiX8DUC4X5VZDZA/SHCl/5sssxRXfowaJxOQrJCX6+8UDtDe1+hYBTQbxlisAr+uiCsaxS9A4VbKJpcN9cQKurJikViB6vQ3tnoSzcQJbL6bKLUsI/oLB/bh/1LNvPImtmD7rhsRfKFHDnW8LnXMKFlXwEM1GhVPCEE+N8a5fRyix/1MeIYluYPI51PXW7yWYGbty0JZnwn4VZ6L1PnviQU4+4xNb6vkmVMwkTPUAS2kjf2Mss5wwor6KY= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48d8ca69-e2e6-44e3-2088-08dd791b6dce X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:08:07.0990 (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: EUb1BffwrBHHScSzU8ey24pGLtFUr1A5gh52rAh+KgxFdzANSDoo4rcOzs2ZoyD4oSnLLYYMwmvVOGDEYQ7Z0xhRwWIfz+bnogfA02QZPqurHyIbd2c4J+Re3FEwvunN X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7963 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. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Implemented new rzg2l_cru_write/read() that now are checking out-of-bound accesses as suggested by LPinchart. - Fixed AMnMBxADDRL() and AMnMBxADDRH() as suggested by LPinchart. - Update commit body Changes since v4: - Mark __rzg2l_cru_write_constant/__rzg2l_cru_read_constant as __always_inline Changes since v6: - Collected tag - Drop the cru->info check into rzg2l_cru_probe() .../platform/renesas/rzg2l-cru/rzg2l-core.c | 43 +++++++++++- .../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, 136 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index eed9d2bd08414..2da416f914490 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) { @@ -317,8 +318,48 @@ static void rzg2l_cru_remove(struct platform_device *pdev) rzg2l_cru_dma_unregister(cru); } +static const u16 rzg2l_cru_regs[] = { + [CRUnCTRL] = 0x0, + [CRUnIE] = 0x4, + [CRUnINTS] = 0x8, + [CRUnRST] = 0xc, + [AMnMB1ADDRL] = 0x100, + [AMnMB1ADDRH] = 0x104, + [AMnMB2ADDRL] = 0x108, + [AMnMB2ADDRH] = 0x10c, + [AMnMB3ADDRL] = 0x110, + [AMnMB3ADDRH] = 0x114, + [AMnMB4ADDRL] = 0x118, + [AMnMB4ADDRH] = 0x11c, + [AMnMB5ADDRL] = 0x120, + [AMnMB5ADDRH] = 0x124, + [AMnMB6ADDRL] = 0x128, + [AMnMB6ADDRH] = 0x12c, + [AMnMB7ADDRL] = 0x130, + [AMnMB7ADDRH] = 0x134, + [AMnMB8ADDRL] = 0x138, + [AMnMB8ADDRH] = 0x13c, + [AMnMBVALID] = 0x148, + [AMnMBS] = 0x14c, + [AMnAXIATTR] = 0x158, + [AMnFIFOPNTR] = 0x168, + [AMnAXISTP] = 0x174, + [AMnAXISTPACK] = 0x178, + [ICnEN] = 0x200, + [ICnMC] = 0x208, + [ICnMS] = 0x254, + [ICnDMR] = 0x26c, +}; + +static const struct rzg2l_cru_info rzgl2_cru_info = { + .regs = rzg2l_cru_regs, +}; + static const struct of_device_id rzg2l_cru_of_id_table[] = { - { .compatible = "renesas,rzg2l-cru", }, + { + .compatible = "renesas,rzg2l-cru", + .data = &rzgl2_cru_info, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, rzg2l_cru_of_id_table); diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h index 1c9f22118a5d9..86c3202862465 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h @@ -10,71 +10,77 @@ /* HW CRU Registers Definition */ -/* CRU Control Register */ -#define CRUnCTRL 0x0 #define CRUnCTRL_VINSEL(x) ((x) << 0) -/* CRU Interrupt Enable Register */ -#define CRUnIE 0x4 #define CRUnIE_EFE BIT(17) -/* CRU Interrupt Status Register */ -#define CRUnINTS 0x8 #define CRUnINTS_SFS BIT(16) -/* CRU Reset Register */ -#define CRUnRST 0xc #define CRUnRST_VRESETN BIT(0) /* Memory Bank Base Address (Lower) Register for CRU Image Data */ -#define AMnMBxADDRL(x) (0x100 + ((x) * 8)) +#define AMnMBxADDRL(x) (AMnMB1ADDRL + (x) * 2) /* Memory Bank Base Address (Higher) Register for CRU Image Data */ -#define AMnMBxADDRH(x) (0x104 + ((x) * 8)) +#define AMnMBxADDRH(x) (AMnMB1ADDRH + (x) * 2) -/* Memory Bank Enable Register for CRU Image Data */ -#define AMnMBVALID 0x148 #define AMnMBVALID_MBVALID(x) GENMASK(x, 0) -/* Memory Bank Status Register for CRU Image Data */ -#define AMnMBS 0x14c #define AMnMBS_MBSTS 0x7 -/* AXI Master Transfer Setting Register for CRU Image Data */ -#define AMnAXIATTR 0x158 #define AMnAXIATTR_AXILEN_MASK GENMASK(3, 0) #define AMnAXIATTR_AXILEN (0xf) -/* AXI Master FIFO Pointer Register for CRU Image Data */ -#define AMnFIFOPNTR 0x168 #define AMnFIFOPNTR_FIFOWPNTR GENMASK(7, 0) #define AMnFIFOPNTR_FIFORPNTR_Y GENMASK(23, 16) -/* AXI Master Transfer Stop Register for CRU Image Data */ -#define AMnAXISTP 0x174 #define AMnAXISTP_AXI_STOP BIT(0) -/* AXI Master Transfer Stop Status Register for CRU Image Data */ -#define AMnAXISTPACK 0x178 #define AMnAXISTPACK_AXI_STOP_ACK BIT(0) -/* CRU Image Processing Enable Register */ -#define ICnEN 0x200 #define ICnEN_ICEN BIT(0) -/* CRU Image Processing Main Control Register */ -#define ICnMC 0x208 #define ICnMC_CSCTHR BIT(5) #define ICnMC_INF(x) ((x) << 16) #define ICnMC_VCSEL(x) ((x) << 22) #define ICnMC_INF_MASK GENMASK(21, 16) -/* CRU Module Status Register */ -#define ICnMS 0x254 #define ICnMS_IA BIT(2) -/* CRU Data Output Mode Register */ -#define ICnDMR 0x26c #define ICnDMR_YCMODE_UYVY (1 << 4) +enum rzg2l_cru_common_regs { + CRUnCTRL, /* CRU Control */ + CRUnIE, /* CRU Interrupt Enable */ + CRUnINTS, /* CRU Interrupt Status */ + CRUnRST, /* CRU Reset */ + AMnMB1ADDRL, /* Bank 1 Address (Lower) for CRU Image Data */ + AMnMB1ADDRH, /* Bank 1 Address (Higher) for CRU Image Data */ + AMnMB2ADDRL, /* Bank 2 Address (Lower) for CRU Image Data */ + AMnMB2ADDRH, /* Bank 2 Address (Higher) for CRU Image Data */ + AMnMB3ADDRL, /* Bank 3 Address (Lower) for CRU Image Data */ + AMnMB3ADDRH, /* Bank 3 Address (Higher) for CRU Image Data */ + AMnMB4ADDRL, /* Bank 4 Address (Lower) for CRU Image Data */ + AMnMB4ADDRH, /* Bank 4 Address (Higher) for CRU Image Data */ + AMnMB5ADDRL, /* Bank 5 Address (Lower) for CRU Image Data */ + AMnMB5ADDRH, /* Bank 5 Address (Higher) for CRU Image Data */ + AMnMB6ADDRL, /* Bank 6 Address (Lower) for CRU Image Data */ + AMnMB6ADDRH, /* Bank 6 Address (Higher) for CRU Image Data */ + AMnMB7ADDRL, /* Bank 7 Address (Lower) for CRU Image Data */ + AMnMB7ADDRH, /* Bank 7 Address (Higher) for CRU Image Data */ + AMnMB8ADDRL, /* Bank 8 Address (Lower) for CRU Image Data */ + AMnMB8ADDRH, /* Bank 8 Address (Higher) for CRU Image Data */ + AMnMBVALID, /* Memory Bank Enable for CRU Image Data */ + AMnMBS, /* Memory Bank Status for CRU Image Data */ + AMnAXIATTR, /* AXI Master Transfer Setting Register for CRU Image Data */ + AMnFIFOPNTR, /* AXI Master FIFO Pointer for CRU Image Data */ + AMnAXISTP, /* AXI Master Transfer Stop for CRU Image Data */ + AMnAXISTPACK, /* AXI Master Transfer Stop Status for CRU Image Data */ + ICnEN, /* CRU Image Processing Enable */ + ICnMC, /* CRU Image Processing Main Control */ + ICnMS, /* CRU Module Status */ + ICnDMR, /* CRU Data Output Mode */ + RZG2L_CRU_MAX_REG, +}; + #endif /* __RZG2L_CRU_REGS_H__ */ diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 8b898ce05b847..00c3f7458e20a 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -80,6 +80,10 @@ struct rzg2l_cru_ip_format { bool yuv; }; +struct rzg2l_cru_info { + const u16 *regs; +}; + /** * struct rzg2l_cru_dev - Renesas CRU device structure * @dev: (OF) device diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index cd69c8a686d35..c82db80c33552 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -42,16 +42,66 @@ struct rzg2l_cru_buffer { /* ----------------------------------------------------------------------------- * DMA operations */ -static void rzg2l_cru_write(struct rzg2l_cru_dev *cru, u32 offset, u32 value) +static void __rzg2l_cru_write(struct rzg2l_cru_dev *cru, u32 offset, u32 value) { - iowrite32(value, cru->base + offset); + const u16 *regs = cru->info->regs; + + /* + * CRUnCTRL is a first register on all CRU supported SoCs so validate + * rest of the registers have valid offset being set in cru->info->regs. + */ + if (WARN_ON(offset >= RZG2L_CRU_MAX_REG) || + WARN_ON(offset != CRUnCTRL && regs[offset] == 0)) + return; + + iowrite32(value, cru->base + regs[offset]); +} + +static u32 __rzg2l_cru_read(struct rzg2l_cru_dev *cru, u32 offset) +{ + const u16 *regs = cru->info->regs; + + /* + * CRUnCTRL is a first register on all CRU supported SoCs so validate + * rest of the registers have valid offset being set in cru->info->regs. + */ + if (WARN_ON(offset >= RZG2L_CRU_MAX_REG) || + WARN_ON(offset != CRUnCTRL && regs[offset] == 0)) + return 0; + + return ioread32(cru->base + regs[offset]); } -static u32 rzg2l_cru_read(struct rzg2l_cru_dev *cru, u32 offset) +static __always_inline void +__rzg2l_cru_write_constant(struct rzg2l_cru_dev *cru, u32 offset, u32 value) { - return ioread32(cru->base + offset); + const u16 *regs = cru->info->regs; + + BUILD_BUG_ON(offset >= RZG2L_CRU_MAX_REG); + + iowrite32(value, cru->base + regs[offset]); } +static __always_inline u32 +__rzg2l_cru_read_constant(struct rzg2l_cru_dev *cru, u32 offset) +{ + const u16 *regs = cru->info->regs; + + BUILD_BUG_ON(offset >= RZG2L_CRU_MAX_REG); + + return ioread32(cru->base + regs[offset]); +} + +#define rzg2l_cru_write(cru, offset, value) \ + (__builtin_constant_p(offset) ? \ + __rzg2l_cru_write_constant(cru, offset, value) : \ + __rzg2l_cru_write(cru, offset, value)) + +#define rzg2l_cru_read(cru, offset) \ + (__builtin_constant_p(offset) ? \ + __rzg2l_cru_read_constant(cru, offset) : \ + __rzg2l_cru_read(cru, offset)) + /* Need to hold qlock before calling */ static void return_unused_buffers(struct rzg2l_cru_dev *cru, enum vb2_buffer_state state) From patchwork Fri Apr 11 17:05:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tommaso Merciai X-Patchwork-Id: 880440 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010037.outbound.protection.outlook.com [52.101.229.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 2D13D2236EB; Fri, 11 Apr 2025 17:08:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391306; cv=fail; b=Gt4ZursIT7SJbX1oBN5DS60bFq9KPGA3PlKAY+zpXitRjlUaDxIdRdJEvDDmcGiIHPemvNgJI7vXmzbBBwq4kWFWVJrA1lIGolcpjgznZpTZecr/JQ1CuHoVqnnyf1i1t5md/w8tY5tmx2N6UgW8t3n5GJ1V/fKLTUVdH//KW9s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391306; c=relaxed/simple; bh=9yn3KjmMo7xoB9d6B+pEXqHh7gyJAtUjaghpmhvvRrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sy6QHDU1GMZ2OX9nHziMLwIqIFvD3BD07ijsXtP1PbDaaYaocXFuLJXReJqEtembwTdSZrozVgnZIqjVvTXcHx8DbXX8MNpJiuNQwaKuv/ECyGms7tHjrUdLOw9fzH9HUUEJ3+Ag7wlIi0DtjxHNNJ0TllS5ilYvGrxXha9GVC8= 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=M/K8jpKk; arc=fail smtp.client-ip=52.101.229.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="M/K8jpKk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Hl0pZb1Q6Tg3k0dvpImoGd76C7clcH+P/kOx0ewf5Y2tbk/ajAX5sc4ZC6prET4SPMYAS0wuxeSfk7d7oPvsnvw1iUe+ZAERFJRAjw5TekjhjvgNRB1ZN+f/MEo756TKyF0LT3DcaPuD/2xvkAkQJL/LbAEecqibVG5/dOrp1SX57JiSzo8O09N9+8+UHgawkQ0xot9dqXhnCZH1QonYfvjf8nce4NpGN5igkd6lqtpN2GAu3BBhaihUAF+df9ULQTfOcFApQ7RyWnSui2mmiVYl2AfVV+Hj3d75nvsdNM833zdGIY2I+/CYPUKmUKuEfwF3LoytS+lXaMc0bvWCZw== 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=N+sICBkurKZLMxEntqlHszZ8vnGManGQe2KXc2krSiI=; b=PgvIXHQiPK3bWTY8z2BExNo/1UnpxqKfm2QwFHfy+DM19g/dh7dZ3ouRYQXba2e4MVp0j0devnL51QGiIAl+0MpzZP/i+znq44CuFzJQ0Hyqlvx22/vjKsr6BYi2SOMUNIYsGM2tmNBxjUEcirYTmGvGUDChmO1r1k1piRyCW7ddrk+QhXKb5eopKepqlHfy+0/+RJpGvc/6//5jolooYgdGsPIA4HbGgRMP9tZHNg3KHGjPnYzKyhqQ+TWlN7Y5YboKs5z1CRszb5Y20BdUDgSYqDuQh/5h995SI8QrsxUakzvSrbz6M738pojY2gn4v8KJ/JA/XE1ito/cOlbK+A== 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=N+sICBkurKZLMxEntqlHszZ8vnGManGQe2KXc2krSiI=; b=M/K8jpKkmkP1A+lyOatXFpLJzDVS/9qlGTJuFRtoOEEsKoNgoTL3q91B7CmzE9qfYng4DCZgvIKfD2w2wo0xFM4lvk6mu7E4+kiIoeopPK9hC2e1kDYdKqk8d3yrKwpiYhF3yglV6Nlnuol/8CTlhMzgJeAecUETnzkdCw/v5p8= 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 OSCPR01MB12643.jpnprd01.prod.outlook.com (2603:1096:604:338::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr 2025 17:08:17 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:08:17 +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 v7 12/17] media: rzg2l-cru: Pass resolution limits via OF data Date: Fri, 11 Apr 2025 19:05:40 +0200 Message-ID: <20250411170624.472257-13-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSCPR01MB12643:EE_ X-MS-Office365-Filtering-Correlation-Id: d78913e7-c403-4baa-d995-08dd791b73ad X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|52116014|366016|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: Zd2pph4SXfHgu6KaGv3h97jCaM9UPqfTrLbUB94s2tQLFGWbN7UPQ2Q/EjN7piYsjwH/pTtZV3ACmIsySt9Ldk1Nmz0voj1f7cYxye3Imhzfkr2QW8hN+ufNCmgqoIe8BOPMLWsESjiVAJ+QjEIVuNPMUliD5XFikwpuzCh1zPXTQsRuj/UFmQNTrQZudJKBoU65TifxFsSrNJ3GK6x8+RQE+WU5jBtwEAO3h5vOCQebPd4oWWztRa/hEM2I4J5xZTjmZYPwewbc/g1KprS9n8epp1EAkTjDNAEcUzcAcNaXh1GUnc+3Rlo8T/qoyYu0sE+4JTcwZDCR7KwQHfxbKfscGpY6r2OXMyfGJWKYyZNAPJuNNq+vLIIMfPR2l87arpV0cW8RQU5qN/wKVWPyC81AOGmz1mR9mRWFggIJvx0PVd04w0iPnmGmR0fsEh/d+v8/pa2+NFmkuUCqZSr3yVmgLA8cQVSwoZE2iCl9rl+GlKi9CRcEozkYRl4KE7EtKQljFt5LuO00PJIqc7dXUsFSsj4dnefPy55BRA+SKngan8fL7bgDNi4Thz0kC4qW0i+4C5//ks5So+nNVRKgTfo7GU0jZbSxSczCp/N1LEnNxQZXLqwmP0YHEEigjFSFne2Y3CaiIcU3F2FwXoHdaQypWAd1DAqOryU2ukrfi4d7TsgKkybPcgHBADKq79c5rgZ4aKYrTl3h7w8hN+ELgCYlqHPBtyF5X4KscfXLJsYCIImz0/fKUtJSyZ94TD8Wdhy3TSA1urrHKd3lOaBwBswecdtMmiDQFn8XufTGU5nSZiIaeEbNyYILskRDdqc8LjbEUOOFkzooAYAfokpf9H7IjUX7PvADllAGj3ZJD2UKshiPUopC2y/kKS6Oygv8C3hagXYpz8uBd7trU479j+kx5wEc7P5XEO3wdOK2aH4+QqysI+L6RpYhHVYXV/ZGltxSGYxa1eIxstlfygJtnY7wK1XZQs7XvLQKYRd9HFwSrwkZcYgCONtwtnpy5vnUwhWkEYCgfaE2EhKoeOKAn/vzT+ciYF+tKTYatyw7D4Ls7CXLmMi0fOD2lHkGyEqLekmoU/+aODGibXE1UbbUrE1n5PFN93ruDByOAGq5aSOy6XjqQNN8jBjm2VH0aMuXDzSLjiY0izfNe6Lh1TmcQpL1YGxdaorRSpSQhvLEiXMhOnBLXDrKPu7jZUq5IldMW35pM4dYwDgqlK5KnJTYNk+Fsfm8BILhPc5td6QDoI6IWxKCifGMnhLINqD2s07bPeqATPmVGY6dqj9QgWRUcEw3WcSOczDRlVkzbWV/XAkH8/KbV0JNiwQ0qYLOJRlM1KlEQ0Zm2bCsB/UZV7j0f4gtuH98tUFzsEihNoqCZoyPGqNk9vqmHNpaJwCLRxNaGJGfE1deKFBt9kkz1IV8PQBVV28lMbkIzEF8DNTsOBewBEaX7EuclwW3u4uRGjUwIg0gFgYywaggHJr1urcWlA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:OS9PR01MB13950.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(52116014)(366016)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cNZxYrI2QhnUa+MsiA0y5NR1GWmW5xHukiFrpePPxIp+KI3Y1h2Q0FOsDjuWr5e6mXixM7dMagrYNTFqgWs1TbLemg9RDIks7go0eJZi0Gw27s2AtiB/Fbfngo6PM/KBt7V0wb0tU9MJk7QwmwUGtdIXiPIYXWdT9G8xpX5lCoyPsTg8NToFSA75Llj8qKW8fHsIXk71w82E3TfqOwnEIqtXirJ3tr4szKddwCrUGm7sKU56rWkkyZrmeERQaxDmWvNmD2SAYaIThuwpOKS7yNZ3L+tne+GoHb7eQNMQUCfDLpa/S+vOQhT1yrcvrZkhMZ1CGQ0+gPyV8RFEuRB+IUYUxcgOAhc6Bsqnl8ptSe8fPZRV2b8b/E1Uo7aXuioweFTC3Ql4YF/4EUnbpZmD9H0nRnScHZDyGr5HGpGB9ftMbkCu2SkGDkp1M7NVF8DG9VNqzS1L5Hs8Q/0oDi3lRCAAp90DohWxLvukGrRbj1I8Ye8XZca1LmYHx89CwbJk5rB9W/pu+voWSQ4/dEv1qkGMtHMhbKYT8RVTVQLv9NYPMeOkoOURC9z1OeJVZzY1Uj1E092f5FnKidvpfXmtqm7boR7VIPmiSNJWXK1BK3cMMvlmtsARPGIgV1mV2lztd6R4Gm9rMWWWo6uEbYtOf3SqBL7CDo2clcA/qcVNCgnMf/5N1HLIbMiV7K4yEUZq8/TTAsj0elo9ddnXvYLjhdveO9/bjsmRlyOfLF5UGpeEOKN8uUdjarkpsEskfM5mwoqpnHg4SyIVy3LJOiqiSXe28n203R6ucOnPuDTU/3/LKo/KQ31cjb7d+972IuKS8vARmM0lYmpJ7AGhkEhWt1wNmxrW4/FQYxzvkqyqatsM5iQvMQd6lei8BYa8gNbC47xhe9C/MLvjdYHEbWFojjusYCCVM+4BmiRsoo7N4+se/jls2yhVaHYoNeAMInpUW/sTpaJ0Wx8h/IOwrekgZhzD/en4DtSOKnwRhS81RsrYnYoLCyZfHC381z9YNkU5KvqEFBjs+Aa1y4golyIDohCwqvX0gbO8EvXTMhxa85jmluSpMlM45UByE73J0sKK7Zfu8DQ7SksKPffj2UYzN9XZdAvRhWOQ1kP11zVnnXTqQxYCWip7exMKEFd6SeS0YgQUxi8XucuHzPW8nm87ucMINpLPhM+FuGR7mtFocJKuJSw1r82AZSwu1AObgwoCP2tdeJfMYdZNyTemq/OCNLUn0fQE1u5JUSGEI7h11BoV1b0Zv2ww5IU5+Wu5ncB2aaMHyb+zxJ7mLSiwl8cBT5gzBEYMauetnf8kME2ZJwBg4TLcUKYwgOXfI3i6Xvwf7Y/DeywkJ+dx87M0GfpwTo0zVDT7c0y1QZkgO0KgLhcd3poEGV9oHuy6VxlAgQ4l5MF9dCjMlye5IRVnwRzMfORKRbpHWZksLL7TgrVYvHvHw4XqNNjw4JH8XaIVcCRLiDS19DXf+Z0XI3WPzMdamz8uUDMgQPQqVDLCJ3kbCnJ+TUmEJ0211nykQJ04oF25RaP/1FoG7J4bITZTvi7Q5tCxWX1PvyUoapQSTH6OJVfyu0sujasiXmPvsX3AZWfh1vnSakWSuzNP//Z3+OhWkJ4SPfeaJuCiDIQlU63YWwI= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: d78913e7-c403-4baa-d995-08dd791b73ad X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:08:16.9227 (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: /u5/RI630R/5aWclHx3IbrpBaigUn+4H7Oy5zMZxDu2WY4u6FvX8fjMa03YURbm/oyybLtDg2zSrXzaYo5tmVVoEWC3u73OvDJRIQkCSlFL2bR/CWZX6mBLBhDw0xQ/G X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCPR01MB12643 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 2da416f914490..e179f8d29038f 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -352,6 +352,8 @@ static const u16 rzg2l_cru_regs[] = { }; static const struct rzg2l_cru_info rzgl2_cru_info = { + .max_width = 2800, + .max_height = 4095, .regs = rzg2l_cru_regs, }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 00c3f7458e20a..6a621073948aa 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -27,9 +27,7 @@ #define RZG2L_CRU_CSI2_VCHANNEL 4 #define RZG2L_CRU_MIN_INPUT_WIDTH 320 -#define RZG2L_CRU_MAX_INPUT_WIDTH 2800 #define RZG2L_CRU_MIN_INPUT_HEIGHT 240 -#define RZG2L_CRU_MAX_INPUT_HEIGHT 4095 enum rzg2l_csi2_pads { RZG2L_CRU_IP_SINK = 0, @@ -81,6 +79,8 @@ struct rzg2l_cru_ip_format { }; struct rzg2l_cru_info { + unsigned int max_width; + unsigned int max_height; const u16 *regs; }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c index 76a2b451f1daf..7836c7cd53dc3 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-ip.c @@ -148,6 +148,8 @@ static int rzg2l_cru_ip_set_format(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_format *fmt) { + struct rzg2l_cru_dev *cru = v4l2_get_subdevdata(sd); + const struct rzg2l_cru_info *info = cru->info; struct v4l2_mbus_framefmt *src_format; struct v4l2_mbus_framefmt *sink_format; @@ -170,9 +172,9 @@ static int rzg2l_cru_ip_set_format(struct v4l2_subdev *sd, sink_format->ycbcr_enc = fmt->format.ycbcr_enc; sink_format->quantization = fmt->format.quantization; sink_format->width = clamp_t(u32, fmt->format.width, - RZG2L_CRU_MIN_INPUT_WIDTH, RZG2L_CRU_MAX_INPUT_WIDTH); + RZG2L_CRU_MIN_INPUT_WIDTH, info->max_width); sink_format->height = clamp_t(u32, fmt->format.height, - RZG2L_CRU_MIN_INPUT_HEIGHT, RZG2L_CRU_MAX_INPUT_HEIGHT); + RZG2L_CRU_MIN_INPUT_HEIGHT, info->max_height); fmt->format = *sink_format; @@ -197,6 +199,9 @@ static int rzg2l_cru_ip_enum_frame_size(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_frame_size_enum *fse) { + struct rzg2l_cru_dev *cru = v4l2_get_subdevdata(sd); + const struct rzg2l_cru_info *info = cru->info; + if (fse->index != 0) return -EINVAL; @@ -205,8 +210,8 @@ static int rzg2l_cru_ip_enum_frame_size(struct v4l2_subdev *sd, fse->min_width = RZG2L_CRU_MIN_INPUT_WIDTH; fse->min_height = RZG2L_CRU_MIN_INPUT_HEIGHT; - fse->max_width = RZG2L_CRU_MAX_INPUT_WIDTH; - fse->max_height = RZG2L_CRU_MAX_INPUT_HEIGHT; + fse->max_width = info->max_width; + fse->max_height = info->max_height; return 0; } diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index c82db80c33552..395c4d3d0f0fa 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -736,6 +736,7 @@ int rzg2l_cru_dma_register(struct rzg2l_cru_dev *cru) static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, struct v4l2_pix_format *pix) { + const struct rzg2l_cru_info *info = cru->info; const struct rzg2l_cru_ip_format *fmt; fmt = rzg2l_cru_ip_format_to_fmt(pix->pixelformat); @@ -758,8 +759,8 @@ static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, } /* Limit to CRU capabilities */ - v4l_bound_align_image(&pix->width, 320, RZG2L_CRU_MAX_INPUT_WIDTH, 1, - &pix->height, 240, RZG2L_CRU_MAX_INPUT_HEIGHT, 2, 0); + v4l_bound_align_image(&pix->width, 320, info->max_width, 1, + &pix->height, 240, info->max_height, 2, 0); pix->bytesperline = pix->width * fmt->bpp; pix->sizeimage = pix->bytesperline * pix->height; From patchwork Fri Apr 11 17:05: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: 880703 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11010017.outbound.protection.outlook.com [52.101.228.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA986221FA5; Fri, 11 Apr 2025 17:08:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391313; cv=fail; b=uMj5JlVtD+TJAzkaviY6xw0KePaTJ5utOq8aQCDGR/hPa9MzPFXDiTNqBd8XReBNu3jM/Le2Evo4RKTbmESmGm2blv7KoovAMCGdiygErIfRX80q0/b6TiOeaQC1SQCKq96M7gUqhuYJcNUNVDnlmAqjvG8Tipv5hP/9y3ZAxm8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391313; c=relaxed/simple; bh=ziwQQErsKES3ti1Of7kxiK1G7p0SU15jnr5Xn4Bimf0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LHBn7fgiDS5whgSanij+eEWE2ZVGud6apF1YIqkmztg5wQZoA4OBA4AX7Oe12ktcLrb/x1ZoMP2B1Bb5vpFK8+eDQQUAH1yIW6Zmxz3z4b4rR0ObaCHc1EZhCec5ajTFivKqFc2ONbcV/pLlUYB0017k/xJnBylNwqfPu3e2JYw= 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=LYyNucXX; arc=fail smtp.client-ip=52.101.228.17 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="LYyNucXX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OYrL/cVH/MbQmeKqNmIV51dLBVk6/Uhwg09ZMBapMYO7OwDFqy0BxVIoeW5zjTK3HAKSdNxV8YaDKTQfnLaWWfuHnFUJXrWF8TmywjTr1KTtWdTkSX+WYshg6n45slgI2y9M7Oqd+cfwju6kZfnruiR8HiHHsaIUqnTDj0j6u29hQ3vCj4gpyvU//xEoFiaaBVmmTmcWj+UWYp6XRB5yOqZPCIJ660pfn3kG9F8kbaIlFSG6q7vWIAveU8o0i3cGwxklHrpLIxHidIhKTaiWfe2dBzD4y0Tw1yOT9G9Xvtt6TZYaSoc66L2SS5AkTfyJoHDeImGXk7L//e0n4SXFjA== 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=jMZ8IDB4TW+kO+7ytpbstShCtnuYPmzIIlOw0/ldpk4=; b=hllgfY+xIcA1rpncp0ywg0VeoNMp/IK0+kdsH6fAQTibBRlCi7nAb5whrNvHWpKloGFiSYtw5ZOzSu8KIN4NCy6md/IusTbdCGYa34gts8RfU1ljuKZ/qfrfhYqPmFr2Crw4tUxxFGqqgsgbRMFs8YZeMVU4qtf/qhSavKRBsKvqAM/C7WahwsBbl1fO1cbcir15bzNypiOVTcpSVBWWQC4wOTNNsr45xVV0MDwOdtWCpFXAApV7jsAWRQZmBHc/DAv1OF+CePUFA3f/D7hyrwaSrc+87oEzuXOmjq5SoxyWRldKgeVjtFpy7iC33yadfMG552YNRvrMlAlHuWX4mg== 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=jMZ8IDB4TW+kO+7ytpbstShCtnuYPmzIIlOw0/ldpk4=; b=LYyNucXXaVUAL4RHpphCP2P3dL1gkfAT+hXkilsDXXzXp+NMXKFx6ermEDiWUA+P5K7Z2YsHLi9VbyOOIA8ojMMkLSfabS3MG/TLHJ4fFwxw3pF6ez1UO3HI2devkxc36tFGZYfWag3YS8rktIOrsUxmCcel47OCZ7UXfYU05es= 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 OSCPR01MB12643.jpnprd01.prod.outlook.com (2603:1096:604:338::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr 2025 17:08:26 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:08:26 +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 v7 13/17] media: rzg2l-cru: Add image_conv offset to OF data Date: Fri, 11 Apr 2025 19:05:41 +0200 Message-ID: <20250411170624.472257-14-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSCPR01MB12643:EE_ X-MS-Office365-Filtering-Correlation-Id: 490657d5-eb30-4b9f-e033-08dd791b78f8 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|52116014|366016|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: AdLfdXI8ilGMXZ2PrzL3XqszPo3nnlqNZX9fzmBwX+FcscInA5yiXel9z2X6uxWoRmmPUHI39Hv7ZZHcm/tpYXzeosiaE4ZA8VVouQA6Ohpm1OxIlIIvZ91l6jh71dadau3C/3m9SRWtu0HIj2U4nm7x8VaRD1HbncXqvNzqMurPv11DzLIKZY4R1TTosCqjiXWJuGGciZDZkK4k0FHtX0nmj5+0X/O+GIRHYDWyGyWTwW+OLc7ta2fdP2DJ9Ml4+cxjaSFCoSzbUl1Kv3PS5l3yBpGFxFwpT3YMFSoTFv6AOcLoQ3Tt21VnE7sp4WBEe7vIhXyDdse1zFoRGUsGI7ctT2fbZOMSYgV+yBsY47xTyG2dqB6RFl/P74NJ35FnzfyHLpkOsYah40Ct/rjtq0O2CXYa7WxTMztJe3Ki4EjbcFbs6+dlw7hgPdgaqpoazMsN3q4dWWx+kZJ5qg1mGFLdZZzgro+YMgXVMJK8qm6s56gAzkinRqPq3XAgpMnnEOmOMV3P+szw3nNbTtpvU2JUKsySm7P63Dwavs4xJRThNB95S78gsutZEGS8KDuZ9fS/qsiOOgJAbQDGTfwPwUEjqhjc8HZQ6VLoU+TFnSo+p96N+9lMh67rwUXYJvpm09gW24Di3kv+nxbmPtd/LUGMGxXp9Rny7EbjF0Yr5OgKWJ8OdG3lKBBMkhOJo9OYydBh+CaUVZQ8Lg/rDMyKLRh3aHpUwbuTe+SyxSFyQbWf1SuI3hH6VFM4G+h6eyqtU0DM9Lmz/fndikBv1tqvkaZ/Wot/79ip0eF6l62MVQlWLw08LpcplV/jA3fkHB1atiEajYzgr5Csg00Tpz3dPAnGS2Ko3PfKF1MZBMITc60J+zl+Q/dxpEry8wZ3u2VajMxXWK4ASyQeD9CIVwfvjMeNDYSd4S5pvqEV68aVnmh5dkcb0SE6b9zsVNAzznNrRgq9Vzc6WD+Awj/QXg4WFOlPkp3PSiX+TVO6QFzMjccFyfA7fAynppMJSfh6Nz/YI56tdNsr36AtdmPq6GFAJX0+Sx+It/52dtD1oTTc3EOUtjfhD6/zzmmz98r54VJBBxreS7Cq0eTvqgmgGaXGbM6afhHlMUpmxqji8BW22KSydoptwp0fNa3eLRb9fIX1K9gOwJp3m/EhMTc3H26ZlLOKhPdj6QI2mN2FcBUdArniE0ZwQ3Xb0AzSy08phnnJj3fMp+Jsc2BV3fjhwn2oDMSJ9lpWNoPpKkJK+gWBiHW2xHVSsF76+bMNf5Cv7xKz5o9L46wX1EMcxWincxIDs06wu2PxJ4ba2JRsqODLhv4nF6gQxbEvRgxhJGb7YWim5NUDrOcU8D9ubYfkkSe6xuN0YHB8JRRNvFZ7mauXWXGcF3essNm/623v5YnS7rMUxIMPJycZG0w2vAUZYjMl7mwXo/S/IWJjjFKpryx5LvFpqhiW7BPL0IpxqAnsxY4m3e26al7dPWbtv0BPiE9XJQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:OS9PR01MB13950.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(52116014)(366016)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 00dq3KZyEBbR7qsS89iy1byQo6A4Kj+dHv7+eSM2QMoUTNfK146nbu0Ov0HYDjqsB6gk62dMFLFcBO6bs03EaB7rNqE3Tv6S3Tz+/rf63bcvOutNZTiypNJQyPZOb/RdVmYQum0vi4IIcPbMvalvVgMLs1WvEazHIT29i/g2wk+lKO472IggaQz81/4CEhn2+ouMW0JaOw12/TJGN4sewXk3XguAkIXVVKVxtgZzISsw/RSSyMarnkFCc+g45Va8pdUlpitHBifnRCayHAZI6I+FfAjshaz+Z9XRBDoBpdAGIHcFpFLTQ45P8/WZCFqNgtPMCR1kMe/4GjYVo8sttYCc4gPcAu22gnA/eEMx7QBDpqZ2SsYXLy8H9tnlg1MjLkhyKXkppXuEs3xveD5f9hc4B5x8RL/u6aXDAu+HTCNNjRIv1cdyFQt8hoo8ZbWS5cDh+SilAh02G3I9RyeYpaKP7ySFwKcnjk2vw5jcQwHodQY8Rdx17dlcvrpfd4oxpOfd3cswFWiUFQ3peC0Xt3EcReXnt8aHPL1VVpJ8W3c9RpHT+DmwSFwDt9QXPyLCEHX3At9co6bjoXD9XFCqaG8O70hmRCJkmcuDuirV63LT85th/yTh9vXwLq2uplRBoClOejZqk8gMxooQUAZRRri5dFRPM9WP3bLHqyatRWQbEFccF/T8jzIbF3/Nr1rfiTXPVKy+H0nHuLOwfc2HNhncWzuIh75ijJ/cKW0xyfLQtPo32fZCiJFziVQ3G5XjlfKNYqETSQsYsGqVmpFEfr/SbntTMyjed6t9wwUMCjIEPYxWQTxTgin/i9wdVv4B9MYtYnbGlaTCc1sVSn8WsZuBfGo17t2DaIH4CzRnSdHdiftRWjq3rgIaoBAUQed4PI1/ydWmoC1RHCfbAp0N/CR4dNZLvJn2uvHlMPqs+fBhJsafCPTv7RrByMMNYvcD+rlgLCkOFHdYSlgA37U+P4PajBQuYQW295dL3TtGUSjxdJ4B+ZvqLmolj4NoUzGVzIjijLqTbCX2jeQijjBAx/0oNxyX/v4jat2XM5Y0gPZsLr1bQuX6dzf35/6N3n9Kk/YujhzlcqHUNuR7RMdlS3zAemP5w6uSzb6auzBvl7XE4w8NY7tQxtMzLMqmJIvsN0pbNBs6JWwkdpyZLERN3ip3T8Kz36IQVhDXeEU/cBb1ed6MBbPICKyK+VqSvfF51v+yD4LERqHTma3LVfpfngS3BwGvFzy43vEDpY/Zr3mSKMOcKpb7PTQ8f3+xyDCiLateL2tR/rMtZpCZuki+QAYhcZ1MJJA5xtm8NKjrC3rkkb462U4FAkiVBQIFD5ajphHRE2dxvD2bUSeaz0P6cixpuA0A5IzA230ZTZoOVBt5LmzjpaCM+tLXnVjy+iDOqVcDrr5ofCiDPkUcZ6crkbhX8PVaWHWicCx4cg0i9pkcT6aJrnoLXUuiX+Oh44MrjYCsNtamV90AV/ICLtKL4g65Ug0ZGfYJY6NFkTJ2jGHKx6/N4jYrYq6DajViDK2FD3rm42CNjPXV2wqOme9PttQtVQfUhAEJtT6pYyVrCJkuDrwB094lcC9w/tyX/p5dhl4RpiMUdC+A8g5lG2pVCpDLKpSO4+eavM0xcIUoKqg= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 490657d5-eb30-4b9f-e033-08dd791b78f8 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:08:26.0424 (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: pgjIYpprFOAH+EvgqqYTV1lLIMRlzbYniWJqWHbYxDwuS/Vfek+DKh32FZ9CGj6OMwuYiDLE9sO2CXyL0Rv6HplbEGk8VSVLb5rstsdrmVrDwZb+KxoUocL4tLNpFcRQ X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCPR01MB12643 From: Lad Prabhakar Add `image_conv` field to the `rzg2l_cru_info` structure to store the register offset for image conversion control. RZ/G2L uses `ICnMC`, while RZ/G3E and RZ/V2H(P) use `ICnIPMC_C0`. Update `rzg2l_cru_initialize_image_conv()` and `rzg2l_cru_csi2_setup()` to use this `image_conv` offset from the OF data, facilitating future support for RZ/G3E and RZ/V2H(P) SoCs. Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v5: - Collected tag. - Dropped unnecessary outer parentheses in rzg2l_cru_csi2_setup() and rzg2l_cru_initialize_image_conv() as suggested by LPinchart .../media/platform/renesas/rzg2l-cru/rzg2l-core.c | 1 + .../media/platform/renesas/rzg2l-cru/rzg2l-cru.h | 1 + .../media/platform/renesas/rzg2l-cru/rzg2l-video.c | 14 ++++++++------ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index e179f8d29038f..e7fef7f3f8223 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -354,6 +354,7 @@ static const u16 rzg2l_cru_regs[] = { static const struct rzg2l_cru_info rzgl2_cru_info = { .max_width = 2800, .max_height = 4095, + .image_conv = ICnMC, .regs = rzg2l_cru_regs, }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 6a621073948aa..ca156772b949b 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -81,6 +81,7 @@ struct rzg2l_cru_ip_format { struct rzg2l_cru_info { unsigned int max_width; unsigned int max_height; + u16 image_conv; const u16 *regs; }; diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 395c4d3d0f0fa..95cce250b3272 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -246,20 +246,22 @@ static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *ip_fmt, u8 csi_vc) { + const struct rzg2l_cru_info *info = cru->info; u32 icnmc = ICnMC_INF(ip_fmt->datatype); - icnmc |= (rzg2l_cru_read(cru, ICnMC) & ~ICnMC_INF_MASK); + icnmc |= rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_INF_MASK; /* Set virtual channel CSI2 */ icnmc |= ICnMC_VCSEL(csi_vc); - rzg2l_cru_write(cru, ICnMC, icnmc); + rzg2l_cru_write(cru, info->image_conv, icnmc); } static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, struct v4l2_mbus_framefmt *ip_sd_fmt, u8 csi_vc) { + const struct rzg2l_cru_info *info = cru->info; const struct rzg2l_cru_ip_format *cru_video_fmt; const struct rzg2l_cru_ip_format *cru_ip_fmt; @@ -276,11 +278,11 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, /* If input and output use same colorspace, do bypass mode */ if (cru_ip_fmt->yuv == cru_video_fmt->yuv) - rzg2l_cru_write(cru, ICnMC, - rzg2l_cru_read(cru, ICnMC) | ICnMC_CSCTHR); + rzg2l_cru_write(cru, info->image_conv, + rzg2l_cru_read(cru, info->image_conv) | ICnMC_CSCTHR); else - rzg2l_cru_write(cru, ICnMC, - rzg2l_cru_read(cru, ICnMC) & (~ICnMC_CSCTHR)); + rzg2l_cru_write(cru, info->image_conv, + rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_CSCTHR); /* Set output data format */ rzg2l_cru_write(cru, ICnDMR, cru_video_fmt->icndmr); From patchwork Fri Apr 11 17:05: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: 880439 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010068.outbound.protection.outlook.com [52.101.229.68]) (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 2FA84233D89; Fri, 11 Apr 2025 17:08:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391323; cv=fail; b=RJwiJaolEYXZrwfBUKsmsiCojpAf8W9F/gUvSgJLDB82QAJcLOdhG2hmIFV+J6RfbZ/JfsSsjWxbfhepSDiQEBaHqDie8dEEE6uchfCROuKAIw3odjP4EbC9DeETXeXhZDx3sJ7JXL4zVgEMzQiXirrqtRumwBBcgsNvA09OXYo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391323; c=relaxed/simple; bh=BwMdyd9cXErkqgO7KNE+QnGSmFxEJ9uiT/QszJkTmvk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CidONY/ll73/le/JdTffyXal7XXBmB4/pUzeRj7VbZ/Bgu+MbX7GDdDoK1eAhIawxeZjS9HcLT7I5uzm6NUVT0VUQ+G2rq1xI7O91Wf5AQEk9fMGhxR0f/jGs6wAc07MLf2vDy0S4tMXPWqAvEjimlD/R4ljdjDgt1sPlCkge3g= 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=H8MWCXv9; arc=fail smtp.client-ip=52.101.229.68 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="H8MWCXv9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ChclZL+K+JTN9tvZD61VA3ats2F9U1ydWw6p+3LpyBmjCqBYMoFyRtGQUtPddvgO91LBiw/VfoB1FUIp1Cz8p4yr5u0+oT7dMayE6I6x8fIpmMiSazBmz8zPk7M5xqdBbZluWvYPBh5WcpvIuC0WsB4DL5n/r/t2dI133oqWAulzPLIZzjEmTGMclKegtmpea2iRyL/Mr/Z5EgdhPaOcz9J9eKhpDuuFnxIW3yp1Tp7EBBCYRLZwZnS167/Zp25/9yHvGDRqE2Z9FPsAYdG/PKZp9or48t1SAuFti8oCdGhfA9vfF4L01WApD9sgXgdK98LOxf0DYC2KqVsBT+FrJQ== 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=05qQ8UP3Aw+u40SNKlmVQBkWbhMPE8HadAe4XHbgzQk=; b=LpNPhtVNqn3tX4G/eud+Kjn4+zMjZwEgXtPDu6eighpMM4/JXMdkv45PNKiS/te9yTaTMNFtz4UgqvBesjMhg5PMdUbgOgmmwyD0YnQhbhHQSX1up2suR6jDvdDNnyWv51yam6eJjR0zZXmLikV9oP9NaXb/kmkntIA812KLUQgcR/i84JMSMIe710sqKdMw2n/q0NM7e0tTaFmKg/Pp9j4BSHHZj6zEQ9U+x6kDcXAj6WiDFXsl806JSFW42hjRlsABipeoPC6A+Pxa3XVDrOw/YIPA1TnCLOVZBOjbRSIivfrVhcAzb3plYJYYVUb6F0bAcOGwc+zBY46XYvnW3g== 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=05qQ8UP3Aw+u40SNKlmVQBkWbhMPE8HadAe4XHbgzQk=; b=H8MWCXv9HUYZ2WhcyA+FMTFnO/MgmMdAhBfG5pINLPmherYVbxUttcRadFmeqFbSK+QLChhZh0rJh/lUwNOB222diIf1a0a82XaDTfCqkVpB77/SdjpzGfeJuWFWRB3i4255o5oSzkpsVKjf8QPhHh7+qnoji77A1ue7ZonDyy8= 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 OSCPR01MB12643.jpnprd01.prod.outlook.com (2603:1096:604:338::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr 2025 17:08:35 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:08:35 +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 v7 14/17] media: rzg2l-cru: Add IRQ handler to OF data Date: Fri, 11 Apr 2025 19:05:42 +0200 Message-ID: <20250411170624.472257-15-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSCPR01MB12643:EE_ X-MS-Office365-Filtering-Correlation-Id: c6b01af2-414a-4216-0c23-08dd791b7e6d X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|52116014|366016|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: TBmaKLKPbPJb56bRA9Rq6mfi+xk/6f2XAaqAbyhCjFZM9vLl/hVsq3g11v0stRMsv9X1rupcBPPlx1nkFjuAwxLetj/aLaCAISFhx4dxYBZOzEBHgO1XwJJFVM3G6PCbO3AkMRekvU1ZYjMBOTmaMRNB2KfhhezwPxIJnhUV1rpCzO4skPo3N/5AUDDRulO2cfwQgzCT2wXRFZGPidLgyxzvcTxfmc5TBU+uC7gg5XugnKAjdD11dIfyfvyjyq7T1l+qyL/N4WTDDd3j/BIGKgKZddXc6AMpoKiF77Sif31eNP7K7wOIInmNBDPYCDGLxyo3RbHSGXfs/d8ew9RlqGYfVNHBehGfIbLr/213MQsKSXI92yM5UFZEXRNVt+HSRhTXkvHO/m7+oAijPXPNzdfXGBCfHTKc+urEsE9kxmfCqZ+Nuk81vx2DnBj+Ut0qdG6ChmZVuzh5kvvGvI357yQviJVJf/4cipGmd3iaB7fTKB46bEYSxkegNLuOqrcJqe+8kPH6eEoi8735UnuSMSGewo1PdVcXhbYxDReufHbLETjIVghmybdR9ESvH3x4pZaqQ5Xbu35c4HgraGv5KshGrJtWDQrIlornXdc0Af46vPmv0qzgHRh0l2DpSl2FkdLJfoTvMlbfzTS/U1D95bf+O4F3F1M1ObXIBPL+tDG+TEHG4Upuw7z949R5Cbf0zK2ENUzufDzOs78+AcKj4DVnKYA9SxKR1ZUJw1MlDU+b/kSd0H8TwWJWpW3iv4LETKWwC/lou3noARCB8HVfD8kUnam/k5ZhHnKjwk+yJgmkW0NyyQPEbu4jnTKWr7phl1hKXouJxFEF+mzFUrbbqlod8SXgYXveGFGzj3bLayianG2duncl9Dnxt7Qtb3bN7v42l3EbZuRMn9pVc2cOT8ULzBqrYJ8AynEV8uvCOMZIX/i2eWoBeJcRrjTe2P/NqHiF0/Vj7cEvvWK6Gx+A+YCFXTUShupnml5xO2Ch5m8qj584dlMNH3IisLYlX5QM0fvc10hSvWWJEqij/MXJoCy7eELeWfvKgNDERAd96hWceIYlfCD/NA6VHN0Ibp/Yzmy4airnHCThgc90c0fkjVS0jhyHLP2Wir93ijBvXx++HWQYUU+d2lz+qizTruHajWfi57zHLN/eUf2KMgAMYMUWyWfXfKoBO/k+n/j8AtvDhfbAofYj6k51sCVrEnQesT0rK+Vt+3japEV/x5GTJdoJ2qVQGg7Ijq5gvtq0ZxeJP9oV4pm/PaKlO15JvIlyHWbu20XfL87So8noPy4FCU0VO6rZCcKahFW4Sg+mHgkmYVgXYn20/v9ugIAbs9yqNqTes9g7SrG4hvvRUhvJitn8M8ESP54XyuFEjanRALz4vkD9BpHRzSofY1Ga7OsDCCsFVvyyr43bKyfDIsourDY3dsb83tyrq76jxWgniK1ShYlNoFbDplPjyHpSvuopFl0iluun2ZaDYQSl8lS8Sw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:OS9PR01MB13950.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(52116014)(366016)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3A0sR0wgJjCPpwCKNXiTJKRNYl0uiURUBK/+K4FUZeW7h3zXHGk4dW6Y8sm3OdIDAm/FOMQP8Js9zri5dAaKb1ozCff49UTq9H6U40Z0Q/BBukavHwTQf+vQezegE5FG55ZHm875NvfACFdWvZNV6xAJOMTLwsGNTAYfMaYGnC52Z85MJCGufpXWUZCep6L9xTScQb3IdAhPevDF8xLP9Zwu3BZcLUc2VrwGcse6On/oHEgEn/Xe3b9jgBN38xWLDNdEWJEGN5MecJyCSvPahuXaPXPaz8DDqS4ZocQ/Z0bnguzMbtxZhxJHMY8Bp0z6QQMAT7Y/jxX7qyWejT3dP4egbKdnGMdZhG4zkOgVe4QcYMWAeg/+EQB5+jzKQ+p5oKU6KcV8e3JrdPhj9LvrkqD5VvZ6c5zNd72yheStxBTlcF4dyAnIk6rP3jyXRf8V9AipbCh88jc4gk3unFd5biZKfq0wmG+zhYsSKg0e8UQWl6ixg6wGkKdhDZTTJEM1YsFPnTKh/1Ram9Nu7Yma4o1jsb+/zzc4OFOIGEpRsX3MM9/E2v/XkT+NxSRjgDUtqLXbdVxiUVf26ciRMN5WvypZMW0KgQZ0Oon3BJ0bUJDYH+iHqs7kVf8VuLWDq2vNPEoY9c0XdmiGn98CvlfxQ55/RQXIs9D0waUoNsFadqC7BKFOFg3+qp6quO9akykCQdOVXLXKo05GRSSYD4F7J0nYo0Z9z8uGBSRh8Y3mLYq2EAahCFcTO02yxIpu/1/w2XMWjWyL4ydMCDbSvFksozqwG8+wmrywdA3pU0THWhWerguW+bujbpy1HPt4HOo5lwIQT5xE1estehJNTi53ex1XZy5ip1Q4o1Gzes68jWQHa1QULAkEN7U6ZX43O0/2eTxylb+jZvce4XhdpcOmr8frDQZvWidmMArXqDKU+AX5ZmkkIybIc+10GMuZH+NDty/ltDvqQxXSPwo/W9820CttT8SWYpcECJldq8yF3A+WJKoMHsY89gE727XnNmcr7XiIIIxsp2Fx2/BEJ+n3qpmevTZcUAgs9sBudQPZI49rZ3/3N6eFCZFEmtXK9pU2pFVsSvw+z4+shrMb0aD16adVIjHEoVOIZKaaEJoImjAy6ySUpJB3q9ko0wlgYH8P/GrEYoJGMZE41tA9e+h+ABMQeAK5LeATJccPl4BVIS2+EV6P2HntUmjbNnBUkYL72CTT+k3Avx7800vu8kbWcloVTU1wpZrTKwtV7FxXFQ7e+qqsQURoZGy3WbIX1HM9tP/83qz0lgOzzeiJtYkhPktjlY8UdTZzzqeWkERo9o27clhJg9P/Lu0qJdchyxF9bRjfGaHG31gYNEYu8BIycZFnu9eiw8no5K1AAhbsvsZ2Q+XgiFfBLaKu2W4WD3u6RDT6nvzbTVJG14nc8fTXyUrIYfFA9TRh3TpKAJGc0kj2DFwjG6DUuWQ8I7sK67VS61A0DeCIvtMXc6KMfCJrfsSg7YwG4QprAIGoqcSKflbj9KuYf3XM7fMlTD4uOmeb0FaUJ1J5y39O8LOfFkmdTGxBmbOlWnsGYn7F5YJii66jLO5FNKTMyPwPCzgymXYCJ+fHT+paY1/1/vRWfaVeu4/Sx4l/5h/TLRGjFFi4C74= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6b01af2-414a-4216-0c23-08dd791b7e6d X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:08:35.1738 (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: XAi1wOl5GPBbpS/3ZLT+G4VFUSgljfMxUHn2JrNRe1f1k2G/6U7K4zjV+EcOClvSMI3B+Wf4uvdzixw1turTXTA4ov7o9e5FJq8zNW97okIkPcdhUPWgsNqF5Gy7rvhK X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCPR01MB12643 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 e7fef7f3f8223..ae989fa2768b3 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -275,7 +275,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"); @@ -356,6 +356,9 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .max_height = 4095, .image_conv = ICnMC, .regs = rzg2l_cru_regs, + .irq_handler = rzg2l_cru_irq, + .enable_interrupts = rzg2l_cru_enable_interrupts, + .disable_interrupts = rzg2l_cru_disable_interrupts, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index ca156772b949b..3f694044d8cd1 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -34,6 +34,8 @@ enum rzg2l_csi2_pads { RZG2L_CRU_IP_SOURCE, }; +struct rzg2l_cru_dev; + /** * enum rzg2l_cru_dma_state - DMA states * @RZG2L_CRU_DMA_STOPPED: No operation in progress @@ -83,6 +85,9 @@ struct rzg2l_cru_info { unsigned int max_height; u16 image_conv; const u16 *regs; + irqreturn_t (*irq_handler)(int irq, void *data); + void (*enable_interrupts)(struct rzg2l_cru_dev *cru); + void (*disable_interrupts)(struct rzg2l_cru_dev *cru); }; /** @@ -177,4 +182,7 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_code_to_fmt(unsigned int code); const struct rzg2l_cru_ip_format *rzg2l_cru_ip_format_to_fmt(u32 format); const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); +void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); +void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); + #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 95cce250b3272..a104821d823f9 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -300,8 +300,7 @@ void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) spin_lock_irqsave(&cru->qlock, flags); /* Disable and clear the interrupt */ - rzg2l_cru_write(cru, CRUnIE, 0); - rzg2l_cru_write(cru, CRUnINTS, 0x001F0F0F); + cru->info->disable_interrupts(cru); /* Stop the operation of image conversion */ rzg2l_cru_write(cru, ICnEN, 0); @@ -393,6 +392,17 @@ static int rzg2l_cru_get_virtual_channel(struct rzg2l_cru_dev *cru) return fd.entry[0].bus.csi2.vc; } +void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); +} + +void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, 0); + rzg2l_cru_write(cru, CRUnINTS, 0x001f000f); +} + int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) { struct v4l2_mbus_framefmt *fmt = rzg2l_cru_ip_get_src_fmt(cru); @@ -414,8 +424,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) rzg2l_cru_write(cru, CRUnRST, CRUnRST_VRESETN); /* Disable and clear the interrupt before using */ - rzg2l_cru_write(cru, CRUnIE, 0); - rzg2l_cru_write(cru, CRUnINTS, 0x001f000f); + cru->info->disable_interrupts(cru); /* Initialize the AXI master */ rzg2l_cru_initialize_axi(cru); @@ -428,7 +437,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) } /* Enable interrupt */ - rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); + cru->info->enable_interrupts(cru); /* Enable image processing reception */ rzg2l_cru_write(cru, ICnEN, ICnEN_ICEN); From patchwork Fri Apr 11 17:05: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: 880702 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010068.outbound.protection.outlook.com [52.101.229.68]) (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 7861921D3E1; Fri, 11 Apr 2025 17:08:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391332; cv=fail; b=U92bW7veiq/bxb8UOqy//zTY1U3ve/Oihoc+kO051ytg2qoAF2Ss7Te38QdRB0INpOXOLWu6ShfNU+9t22VKyrlB18cdREbeqbvo6lWNjv5e2oYowj4sD24kPEB3Y+5e1j444UK6uHWgWsgRNtUJdiCpf0zXAa6heSMEOKeVb/g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391332; c=relaxed/simple; bh=qNQVnmx2wPx95xrzf9vTmELaS9tgu6U2cupmDXuZV10=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qBuAkUvd2udgH1j2FC1RHTCJMGzJG7IqxFK0ddRnzM2tmAHL+8gGqL7/LxHjMkGIYoepptWyGD80+mn4ag3ys7bR+nPm91B0h0U1x/XoTrqbfnd3Hbf3bYG+kG/MdPSpiPY47cPsCMjJTRA8SYq3t+zRRqqBPiSJIACFU6tKJiw= 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=UB5vChXY; arc=fail smtp.client-ip=52.101.229.68 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="UB5vChXY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CW5rcUYTvcT0dKdWe9zOM2pRFq7/I/48Yq45eYBUReAyC7U+v63J+6dpN9klrwAl8LhzwY6BiX1/5/4I5nBcqiXzHn3PhYE6r97gk3vcupWwE+nVniCaN8si7HXysZM8zfs8R9bmORCfWZ+HQmOB08mfR11/wa4qBKiOq5LwMEfDuBu6yFp4LACjfuv9ErXDkeFRvoBDM2FDIcxOHmsX/fVc/3xcryTYyVnFZl5mLMK4AAHGXqNcDlywgRQRObcRnqpzvkAmvrJ0de8MRmMMv3XOUNnIFfriqXCJ3pVApVDDFuaGUVP9aAbewkgqiIOdD9ALnx91B4Qm/Mf/Ukth0g== 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=6HjJXPpFmIuG9G4Gv94s3/8Tk5+svAlbbQEDiUkf6zg=; b=j2tdH/Kzx3+0OHVtxNrq8qayETRlz4/zhx+sHJrTh+cXzYcEED1H+UHBBlfUaZZSsMFHm03bvfCAvTNusEeDSCgnR0UpIJJGPqGoh5jG0Mz4b6yiDaVnfGOYPm/L2d51f/kvVT4xud723fc+BmjrdhJ9X1CE+s4f2tZZAZWArn43/XEWdzVIsczWEIl8qtZ7lxP3HCFCggqlfrJbXPjlX9Ru0bShcXQz5uh32aBzVyhgA7nagGoEt9RtGet2k+p07Qf0iXmrjwtcToespCOXUV2vaApreLTpPvOa3rsynnFG7T/GW/8uPPX7lMbF4WuAJF4lsW30MbzA6qrd3xpF6w== 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=6HjJXPpFmIuG9G4Gv94s3/8Tk5+svAlbbQEDiUkf6zg=; b=UB5vChXYiLkVukOGHzGCO5wVqimXLpA2Jl36xDI/pclrI+7jrfVri6YojPbZxq2E3beR40m+Yoj0sbn+k8nVzKUF8MEwVHaHyYtffylBEqTmYgVKeAyTQ9UHgaupMqZ2UYwWLqvX6KkvGod0e19IfZVNdjcZ4ZJcwzR65YT29S4= 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 OSCPR01MB12643.jpnprd01.prod.outlook.com (2603:1096:604:338::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr 2025 17:08: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%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:08: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, 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 v7 15/17] media: rzg2l-cru: Add function pointer to check if FIFO is empty Date: Fri, 11 Apr 2025 19:05:43 +0200 Message-ID: <20250411170624.472257-16-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSCPR01MB12643:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c6392df-6026-4633-46b2-08dd791b83df X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|52116014|366016|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: /xAlUfHvisQAXmkQjVQuqwBud+HTh6WTRr33hUkQV8mfvyz85GKpHQ/ztgBx2WLRnnXNSRxRMxakieISv2Zb+bPvvR/Mzk7GYC/7yeSPO0onoSbu9OTyPLXpIvqwpjqCPtxP/f2juGk7z6+PjUA+rQeuFFOsuKkM77mvjsC8yUvf5fH2TNimFDAcGVGaw/xYADZwL57whgg4twyBFNy266/L4xt7ECxptBKoEe9dJZs7aMutJ++UM9HFzrPcdDQzYpDeNLEaSajh2/6SmZynX8Rst1kEm6vggDP7UX/gFuPKIY5dMiKvuZf8IkEYavy2KEzRj+7odEnHUvSMF360x0/hWx/gb7Zp2gjq7c0B2U7bV1SXhMj427NuJPPNbCCb7SuJE3qiGUsbtAgi3oMhJCrdsC1C1JQoOuSbI/n2p+nUf5fLaTnsW/4mCMTKMbOgD3lDLvnfhGWMr1YivruJtZa5EEkOn39rZTkez7vYnJWs8VkO75JLQNf2E5UnJ4GTihcHuzCRr/Tnnrb9Noj63yoLg3bWO9naz7PKvkb0p8JVjVXTBEVNG/ZNEjZmdunhFyaRCOiBbvNSNxrtQdRpKAzxdR1NOWN9zqM8ukE9X993CJDfzJpZBr8vMVGNob/7FkVgwni3l4WEHKtx5UO6PJrqyCnFl5bOxRwmQj9A712RnJUa//AUmgiYVFjB+9uAIZc0GAuG+CYB//2pfQ4umvqPKhhobrGTzmsn3IoyBBiZY9CJEuUuzHGorGq+XmA9AcAGCYIaSaX0SGPsbu0VQ+czg4Idb6QnyBigq8HNHVKGBWhbZ0Z/1HUx9LmBiaollhejnxy9x+EvlCQYHhQsceV5ZlQMWfjLOFvvzrrMhSjVPwb3IwaQMeHdXcbIi4RI36zUGLagzoh7iOS3xhQUoWvYDVR+h6xufMz7bCFdSC4MIT+VXuW4zYksyyJei8WXiNATNE9IU+OkC1hIHiL9NNuJ+iwidpIhglvOAN8W0tZQC3kP5OWdUdqKxE5/ELDDlrX0X2ejySQv5t2odFaidBwcMYFf1CWJAp1JeqzmqdPKpwxx+bIPFnl3AEZOxAm6jevx+vdNFGeWNoZ7fbPMnlV558C36UQSaNrgPM6hD+2pFb6IB0ZP8urAjJ5Wy8To9YAJcNNqc9Ttzr152SbI2a9HWKwJ7cw2wsm1DpbN509N8UhbidU5VR15v4j+EOrt1Qxu4jUVL5QXg/Gx5058x8geXkrD501aTa9VGe2KEa8WSZbQ2FCMR6aLLzxB283PK9M8K+FuHrf4Nwnf0ze6k3X2K6R30hrIG1GeHt4sq3LlpsdCI65vt85JtY4DKJs2/2IIXGPMyB4+iIuLkXUCqCSXFPJg7tAHHVTGN7Ca5eRToPzPoQacGNgzHy+VbQv/UdLpQ0vdNjlCHpkFJJhSp3RTY9Rewgm3oMCK4YYCXXrmZju9Or1PSm8EQ/3RrFwsTypnF78tAL+xXe4ZjNHAfQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:OS9PR01MB13950.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(52116014)(366016)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: yB6uOE+mTRhK6mCO8901l4aaoWE5zvNU/v1Zd+3ihibzaAl1XAZL8JLTMLmXtTh7tIWFG22yrpKYCGKQ78QoCdulaGFD7zaIK8YDyUonukTKY36l89FLhgVFhgoxJJTDY3lLyrd5pLzqdJZk+w5LrVJsfXCQsx7YoMOlXckZIVjxJ8uBi4t2Z/LvQPsLNwIGGs+Vj3Elql+88Mp7DSRnC/nQMmCNbvdsUXUlPgIjj9VrBWL2SzcyecF8cjOR/S0ezhmlC8GBuc4MDkHP+YCxSMYvq8jGR2B2DZ4SPIvY9hBdYAd8PC41xnB61JBDkZ85ShZ6CGOs1UpCcmf7RZSkBRV0Bkd9MlVndZp0KuHGoOSravLgpV98s9NYZxvFXfj2p1OeMPYSU8CXSm9VdqBKZTIgaxCKaSB/3dFH14d0EhJrQMIlG9nTv5aGBuKnKDIWhcboBLBb9M65+wDHQG0QtshE+6JwFUUS5QSW76Xn7iAfZsuRcU3WQfdfkp9ErurO3rwQd/dpszb+IqpUDdiP7AkS03O+Tl4cFlhVT9IiGzfvdxwYEzJ6+Ibno9QvEILOt+87mts9myVi9S40gvNWkd+Gdn6s1uPOKZLLbLU+TRNBlMDaGxeFX19lKUwal2J12RsoZ6gx1VU23+Th5fBwtTJSUrFMVp4pVPHR7uoBvkLD9MQ0tHpHS5qgR0T0tD95xQNmqjWSuVhk1eFlaZFMxotlfeTUF1z4lvNfC0mIUlenj2PUQoPPGEJqoVxnwSXRD/KAx7Dl7y2wvDAEiDF0fV895DceBCQk8rpAlPZjGI4PPbW+YX4ujSjkgmV0m0b7GhRB6wiFqYw2uRP4GWEyaau2fpEogv2roranWGcj8xgzg8uHzVP6cQg3eoo+g+7lopFVWxlnpIxIuvLB2mYnr/k8/95DMp2wCQgvdat2/RlBeA/AfkXj14nmmwqjDeywVBG8tDAZMfeIYv0G0aVzricajna6S+mbBNN+2M94jQG9M158zu2i6Lp9K/pfPf+0YcUsIXTCnGp9NgZPxBHpMXw817ZH7DON/6wIGzgQDPtlHogNgfigtragdhExwTk9iS9eZSKKPlrpFr2xN+FqS6vS4m+TyqrhC5PR5yaCbdKTjTe2VVvQInJmYG62ZI2vI2CSer3EZfRFwywczOJywYTbGpeoBlJdZCOqZSUOK0oRMkqbMbzdV8Zrc8Q1LWVHiEXfno3haM1TfUVSEzHbv553IW21NJq1V6VpVbc7ElvnNIgHAzK+BHtPHcBgv8MMrSJhHxDCCMv+tG1r93a3YNIeHTo6vM7srOxDEyxaRtC5Q2PmFDhguXHBudZdWnsEN0XkYzPBIzW9BXnDqfxjchpvi9cpu25H/yyBmtFnf2qwQQDl+LoXl2gSDIYZKKJoCH/YynmHjdRROsJv5Le1szOMd6WbWWn1JpCLg9ks/mOJucwyh/Lcsuvu77LWgGQrbsKfhB7hfwsYd4sfdky4Uo24NLQ1j0/5qcOB0YzW3TIc0VjZXNZgDETw4jTDus1CGWOY1cnYnAlho9XSgZ6Sbjc5yJ3SN/5Va1qOcWaZn6/vE3mP32u0/eCfOiLpRa3vqZEkgp/YeST+jgdshuCEY+6a/Y9dt5kXYO3G07sV6l8= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c6392df-6026-4633-46b2-08dd791b83df X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:08:44.3330 (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: XbnZwqTV4fp4v3KsajRdipRibP6HWMYPBaPPptAbMm04vuyPgxTGaQxnbbTG+zp2GXTSYzz7bRnkLrmhwPgY7Gxd4pnGizGYJlge6ezC2TQBgfW/3RPpwKZffzM3y4rI X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCPR01MB12643 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 ae989fa2768b3..3b5de84533192 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -359,6 +359,7 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .irq_handler = rzg2l_cru_irq, .enable_interrupts = rzg2l_cru_enable_interrupts, .disable_interrupts = rzg2l_cru_disable_interrupts, + .fifo_empty = rzg2l_fifo_empty, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 3f694044d8cd1..2e17bfef43ce6 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -88,6 +88,7 @@ struct rzg2l_cru_info { irqreturn_t (*irq_handler)(int irq, void *data); void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); + bool (*fifo_empty)(struct rzg2l_cru_dev *cru); }; /** @@ -185,4 +186,6 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); +bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); + #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index a104821d823f9..d35e9b2074937 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -290,9 +290,23 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, return 0; } -void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) +bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru) { u32 amnfifopntr, amnfifopntr_w, amnfifopntr_r_y; + + amnfifopntr = rzg2l_cru_read(cru, AMnFIFOPNTR); + + amnfifopntr_w = amnfifopntr & AMnFIFOPNTR_FIFOWPNTR; + amnfifopntr_r_y = + (amnfifopntr & AMnFIFOPNTR_FIFORPNTR_Y) >> 16; + if (amnfifopntr_w == amnfifopntr_r_y) + return true; + + return amnfifopntr_w == amnfifopntr_r_y; +} + +void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) +{ unsigned int retries = 0; unsigned long flags; u32 icnms; @@ -320,12 +334,7 @@ void rzg2l_cru_stop_image_processing(struct rzg2l_cru_dev *cru) /* Wait until the FIFO becomes empty */ for (retries = 5; retries > 0; retries--) { - amnfifopntr = rzg2l_cru_read(cru, AMnFIFOPNTR); - - amnfifopntr_w = amnfifopntr & AMnFIFOPNTR_FIFOWPNTR; - amnfifopntr_r_y = - (amnfifopntr & AMnFIFOPNTR_FIFORPNTR_Y) >> 16; - if (amnfifopntr_w == amnfifopntr_r_y) + if (cru->info->fifo_empty(cru)) break; usleep_range(10, 20); From patchwork Fri Apr 11 17:05: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: 880438 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010018.outbound.protection.outlook.com [52.101.229.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9067E225419; Fri, 11 Apr 2025 17:08:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391341; cv=fail; b=qDqcT23ov7xR8XVHVDENCEjI7nkKWgWGpnxpP4MhWD71TKAYyn1XTlX4LvgvWIAIDQuE4Gk5Yb/wZWhSJduDx5bPIE97Kw8hYdb1+XMAmnF6VyUeWs6SvO2Plkskg4FuHfhXsfOi2aSagOfwXiDZd47Pkhnsb+G6GmjjtPRpfF0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391341; c=relaxed/simple; bh=gODViIct3kEdyG/2HKztrWCVgCJaC8hpjTCr1q3M9Jk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=GhS08ShWl3wtPX3PNpVlNekRDc8Yw61Ma8VRA/4cxQ4msMHkYdtC8u3/+3ovUqCmrAUaLJ5uhGBlCNEaeKLcRUg90gpur8LCt7z/o5CsfIW3y5yOqAuwxlqMvyW4xftcYNlgEcDeeuH+9c+Jhn4tDzHHlWzO/OaLjjVbDPK32/Q= 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=Ms59N13p; arc=fail smtp.client-ip=52.101.229.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bp.renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=bp.renesas.com header.i=@bp.renesas.com header.b="Ms59N13p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eTGZ1EzsoZXe3Ydj6GCLk7x87Tn7/jtvOgWKs0Jr98V7BYbonp1JPS3r2L6CsIsrx9klfwj414uvo2CkRfgpqHhq2YinWmWXMjTdJqZUqnj5I+Ge8tyQEAH3xinjlgud6dsFumPBphGG+UbVOnKi2cQvsnfpIOscF2A6DX7/qu3/DGt4CtN1S7jCLdGCN4DtOpK4Rn+dLj/sdbkRiWGoxj+OWbEAj4lAOiBpYLnxfRGuN2sktePZd22Wj/8JYm36+jiTNA4DcJrxspUtsEdxifMfRLzJ4Fqy6+uXw10H7ocOyiHVrctAla3LkdRHGSbLktzWsU6fLkz3bTvJ0XrAJQ== 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=VKLsI93Hw0i/HLyFwFubb4EwJgO/LAVt24geoGbm2xo=; b=jUxjcWbaGNH5b+qnqsy0LaGnPmUAFJcMA6yUKYbP6W9H3P9wOkJPXR5eq3r/ZOyC2Vlcfx7KSR0ozJYL1PwvKKJ605k0HkOONGgx5bGYlrmvxH7ZeJvVWj5slX3n6Ucax/bRvQHEQU9wmgCtNjzcnsxz+c6+9TBX17h6lHkbm/QKbuKOf10fnQfLs0QELVOGq2eyo0LwDfu8NmXDQVD9Z6c4OIYlb10PMEbS9WTiu/lw7FGDoMhf0faEjGKnhQUprOreIoUN5NYoteY+E+Sgd8Plm57aOJPNWMobYd1T6uuKFzDPH7i5lT6YzK6/oIbNqCdTOxm2cw/sChq0Y8xrKw== 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=VKLsI93Hw0i/HLyFwFubb4EwJgO/LAVt24geoGbm2xo=; b=Ms59N13p0bS3ZnbWCojjBZfKE33kHimWCnvhuZRD1LTT8tuc5xsrBdNN1HO2GGnFW7AjXhBVqsojpYIR9Tx8WUB4SmsSI2ikXnkHK9f2CkZRoQ7NywMDpfwzv4CwuNvFgrmq4UFMxsGpTvI5cS0WPugoJqii6lRru6knJeotSWQ= 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 OSCPR01MB12643.jpnprd01.prod.outlook.com (2603:1096:604:338::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr 2025 17:08:53 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:08:53 +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 v7 16/17] media: rzg2l-cru: Add function pointer to configure CSI Date: Fri, 11 Apr 2025 19:05:44 +0200 Message-ID: <20250411170624.472257-17-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSCPR01MB12643:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a0fde10-af79-4669-e6c7-08dd791b8961 X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|52116014|366016|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: 4VW8FaOxuu5mw6yKlI9NtTdlBLLpuwG7nZrQ7V7J2KxjQq5ctD2n2BHaLcXwq1wiqu52BCsgUWl2yUW47Ktwa9aDsEMb+AKcvq6r+Y4HkjvLsgMGydjrLs6SLJwywDMNUfkWmsh72HX4udYATysjzwCetOhFSz0gZ6+4KJ6/nH68cNAFzU43lnC8rKqMVJe8LFUY0EY/Nh2Fxf5nNjNTEjAozbp1GLpZehjq23L3d5RBxgRhUWYrOuhpfdPBeNfgTXlih6pgr6m24BFMJTfk/UVGtih2CMBRuElTos+8KJ5vA4iqSUt31pFrKcV+UGY4ZHd7jx3HPYqJAfLyAXKdxJd8/m52O73Ir9nYL6v7tAgIzYEX8SEU1M+CiXvqNtxSCfR1/sly2qA9lxMKygwIYoBfJYGzq+o5vPxR+OVVXRnqUipYrTH6iTiPdUwOBk4QtcT6+Pebp2tTBtZccUSoaKFFLjGNgnlLiSRTX6+qbtmah6WMl3EX1mXVZeqBzqdfQLT1gdIzGmtr7ynIgrVyldMOt8/kAktM8AC2MCOWqb2naCxsTVBKZ9b8glUjOGzqPxehpO1ZbyMWQKNvOhe/hDlaXv46k2EhOYtBEZDAuSJjZtI5wx/BTlO6vKW2LyZqemnbnFry2vikn4r/6CPgC4aFI+wU86pm1dM10svUEFEshzFuk0uuuBKmIqyOnVLaWePc1IS7f9+ViSXHwVlwMwZHZuSfN92aNG/pfXu1toIPMRH3Kr1xgqq/sI8c8qWqBUbjlYA83pcFDS9LN2w1OMzdPGFVry16pBFHIuzVKWYX+1gJM7zYfgBY1022sKeSmCbAvMFt4LDa3JSHpmM66sIQUlSJuIaX5SC2PnmYiJrP7jNDKFjrZz1VCsI+3E3wJWTNCDvwJ3U0w8FT4N8QdZl/soRQHe/ryic0aF/m4DLFZUX+Ree2Qi0uv6kupvpqTfzzbdduIqkjcXIFDfJr+3+FCw0R9af2hYqnU3rRotLhjpepS2QgIg715k5aLHc47RI+8BFd7B5yJWDB9UIEV9xNCphuzNV6McBtxNp4HIM5Ui+/V4cx3IIlKVA6WWsrp5jljqa9TbBlhXTlrWryWUp0lJKrOYwgoeb3vsSmIERDS2ZEkQGF+z3F86Uh6oIIHsV+zQ2ACrsaYn1eswCrcpNB6QSgOVefGsU6IRSKbVUk+NUzVXzWImJqakNjnRk11IT8cnxn6d5Woyk7+dKK9ikGdeZXtiZryHKlRNMYZ7NAda9z27VjC51Ugq8BPMasRyHmEon9G0E3ky1wAyh6cVdJUmQVvByAsnvi0bRDkNK0SJnqXy0dxs35tp22j9g5EbSh5sqzHi31F+hZPN2jCqrhKstk+Wak0TcgrUR31UwUg7Vipy4nMZQNrPp6NBjRWZVEF09wtk0RyTH2khI9NBx6RzRWGhCIuOPuyHvpy76pgRcwAjniAzIfdwWMRgg6OIdkKpqBCo/qdbKOn6jDyQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:OS9PR01MB13950.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(52116014)(366016)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DIjpV9NrB3LPsLXz+S9hlw/ck5SYWy/Y+MGHbbb3oT+8/UoI24ZMhKohAW+m1gu2e7PZtnuBfJNgHUMVn/TitahmVCvj3eI9Xcwn4nBOY+vitYwMocy/l4ioYr2L8KIPFItG8GvnOulUpd3citErbD45ckmAQzwAebbnzxhHz+HBzTw1KU3AQoq9IjU7JYAJCPF9BzrpRiARiDwh/7I5/WJB1MAjnK7gK7UkL8ns0cims91PE7Yrz5vqbBFsZqkm/vvErr84uXLW1a0i6HOx7zvlZFe5Foj1FGun8kYbcEJOR87G1Q8ZzM4BhrLXRvz8ZSPQqW7mvxfKS5md2W7+QNbArZpBBqltAuN3ChSG4mX0P/DBR8Y6ZCm0ne3pR5AifqJyagwepxWCZUEPBPosioD3ioekumL1UJb0pbiXTJfhcpSI4kl6DiNh9B/7J9m/Ca2z7lSdqcTtu76Ku6RtVljy+Q0Rnitk11PKJS4E5MujTeC4blCKfJ6ZHv49WIsdLwD5ajkVW6XwBvowyH7xLLXBUhSItVT0U4zlQDF/3CTixYwbvZAnm7HqBXsc/Ao9nrd6x3FPGKsttCMQ7t8JUQY9+3+wivvJZ1hAsMIsiotPftodr5ADfrPuA6VEB0WkGEkwNyeYzEcO0ZgTayIXDnX1YAQ/hWkJNYfDDgZOIcN2foXKPWZVlDbMTh0lLd1zDnI0DbBOkUOmWk4pWKWGA/NNTcSET7Mx0Liivln4quROm8eyaoO8rnBrFTKjUHFbjVgVLVLP7teHnuJhP2VsRoWo9ugxvhiE3/25dJ2lQolOyGx5kzUbkd1hdJ6366Jn5HoOsJYr0ABVJwDqRIgATtpV0RP2iFolyzMH7QH6syMkqPu1ntWH+iOb9In6jCNJWl3VLNb4XSW0fWa3Jz3wmNjvmWuykSWrqDK8pMTAqmrigsD17oypApbJzpo3S2F8i/j1DV8uOjs5DI9k46TdFFtbbH4Ayst2iQKGLXXTLlaBWObWj5eS9E5hwp5XRs/FmlgNBOipNiCB86o6/ICHt2bkx6xDnxgA2iwWmRehvgRgvSOXZcWlOD4avfQz6oZzhYR1+kQE9qg4bU/T9Pk0YTusIbirOZ1Q2j2STNccoxqROGNcs3r4bUJDTBGl8r5+oYO31dgfwnMiqth/3eVUEmH861EjrZ6eEstHOei9dVn6Wkb4Ag4R0tejqS6tvPAWc+yDHXEOOovmA7ykI6FfBs1KnduRTZgkjVqs3tWAgyGVWSb/jSidAGd+rTUX6xsZABZLoTOSJU/4n32QI1B+r+tbc1wXA1XmnNlHyezsHwRIj+cCAFMGufIHlUjDKu0KnPMcUFGlmid3i+EEwj5HXLiQWeAul+9Rs0W8RYZENztfIt5SmG4vggFf2Gs/LUfck/xrnCQyDaf1cLgJoTuiq2VDGwDpNRc52CFQd+bFuu8oSCLB3R6vguhOEyiLAIZAVc0GWbWR7gkhQSsKBDKwDVI2NHBGIIBUnLVslMGujg2Ox5gSNmfqWrzLooQz/q9ImEH8EAnRVtOSN2eCB/1rpKBOqi92jKBTsICz9N5mnNhBsXPxWhimMzkGYXz9GQ7e1AhNRYaLC8CA8Fzkn3Qtss6BP0d1zhjuSFyDL308vtc= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a0fde10-af79-4669-e6c7-08dd791b8961 X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:08:53.5773 (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: rLqH2joqVHHzlXUOK/kQscBxs0AUu55B5a6tixsRPQZJ0xaSRB3qEMN3GC/Oz8YoVfBryeQZMfi1PhLeIbXzyU+KYtc11RjI10x5mLgLG+eJYiR6W5qNI9QX1GmUt/55 X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCPR01MB12643 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 3b5de84533192..e0f04f7e19dfb 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -360,6 +360,7 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { .enable_interrupts = rzg2l_cru_enable_interrupts, .disable_interrupts = rzg2l_cru_disable_interrupts, .fifo_empty = rzg2l_fifo_empty, + .csi_setup = rzg2l_cru_csi2_setup, }; static const struct of_device_id rzg2l_cru_of_id_table[] = { diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index 2e17bfef43ce6..ccaba5220f1c8 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -89,6 +89,9 @@ struct rzg2l_cru_info { void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); bool (*fifo_empty)(struct rzg2l_cru_dev *cru); + void (*csi_setup)(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); }; /** @@ -187,5 +190,8 @@ void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); +void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index d35e9b2074937..809c43d686e26 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -242,9 +242,9 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) rzg2l_cru_write(cru, AMnAXIATTR, amnaxiattr); } -static void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, - const struct rzg2l_cru_ip_format *ip_fmt, - u8 csi_vc) +void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc) { const struct rzg2l_cru_info *info = cru->info; u32 icnmc = ICnMC_INF(ip_fmt->datatype); @@ -266,7 +266,7 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *cru_ip_fmt; cru_ip_fmt = rzg2l_cru_ip_code_to_fmt(ip_sd_fmt->code); - rzg2l_cru_csi2_setup(cru, cru_ip_fmt, csi_vc); + info->csi_setup(cru, cru_ip_fmt, csi_vc); /* Output format */ cru_video_fmt = rzg2l_cru_ip_format_to_fmt(cru->format.pixelformat); From patchwork Fri Apr 11 17:05: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: 880701 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010006.outbound.protection.outlook.com [52.101.229.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 7D3EC2367D4; Fri, 11 Apr 2025 17:09:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391354; cv=fail; b=Xm4x0FEHbwKZcZqX2OY0wSfW6ayjI53JBiUPQU7FIcHRW7Ai8Nu+IElE/QrwX3t6peNFIAJXyfdZLr0m0K91Iy3dn++SJCZcsCrzh4pGku9Kc1lLHoHUomV6D9tI4f1t42wQYHdZ+giXa9NxaeP7cJbPrtKnjXxlYgH9DF6+prY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744391354; c=relaxed/simple; bh=vAWCdEk6xrDRsLUILz+qyZrsQwZ16JosdeCJdo21inI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Z5a/MKF7vMkKff+X1B4n5K1BDDOwKqvLhkRmEwG84KXwdtHOdFzu4+3pz2G/j/Rw9A4/F4eWDHA4tB6Vm7seYjDFeFVPDJ2bpy/Qf/abBIAX/Lctkb7GRhl4/Tf6HZTVNK4lPUa7zGSp5l+KyAaiRrOGPyHO1AFY2L58mKE7bC0= 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=sEJpkIB7; arc=fail smtp.client-ip=52.101.229.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="sEJpkIB7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rzcm9nc/eqGnh5TfhCNSwDQiOTOI8wPq6NR0coaiHGGX5bRxZsqO0cvs4StganjpEjgFYYvQ5rvzmDLpJy5AJMAstfWMv+mV9zQ6AyRVWzEfmrljKCs3lLzVzaMhsqfvrAMfa9yXFhlvnDurM5RtfEIeoZM5y3iO+qX88DgzRl6RJYP3QsyzxshqFZOUMvUQu4RUj2npXZGpvwbervywIqlpTSU1Ju0FRs2UU2z9/cXbRxbDdNXEOvu4tTh1trIxa1UXmziDIwxfFoRrvGya6ZXkb0DY99AVtM89XqCJdg9j0nsGvEizp+pMCHq57LRrCo6SdVKEaT0MjkNgFK5ZsQ== 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=1Wx5Hhk+L4Klafvo5dZcoLsZMGQF+IghaQxlXFIN1I0=; b=ErLSxbTgRNmQCVCFF8zjCs04TghAuOk3FpY0Lk8fDX3FMiwZb6hadgTGh33pf0NIH1OuWL/3GQYdCIh3sJ3Oe9Wkl9JwS1Ag2TtGyeCEGWm5XE1P4uz7nE9EL3uHRac/3qe0IPTYCJv3r08KSJLHhpfvc/QzmTzAjuRhBd0Dhwl42BxIcNuNZjjbEbRcuPYn/sSNjaFmKHuSegK789BMQQTkFxXu/R1W3vHwW06qMkWTn+6K/chNnuH03muYu9nN88gS+e20HyBdu5sSLWxbIuwW7XJVrr+2+L+zJxBk/tjCy3QibWoUPx7Fi47b4ujW8lPOSvQa4q4vyFpk/B5ncA== 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=1Wx5Hhk+L4Klafvo5dZcoLsZMGQF+IghaQxlXFIN1I0=; b=sEJpkIB7y9PCnw1jx0AGvb3oUaoSnomwplDW1e1iomTQLPIBDIS/GwMKw7qq5nOBxCaesK/UEneYb+oTabWf6CXm/r8i6oJSdQPDCJRf8gkN3DKuiWkrxU4fdsyVIl/DdvSNunXMag0IfnDKBCD5bog/ETfgm6e15vEU7e5DHHQ= 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 OSCPR01MB12643.jpnprd01.prod.outlook.com (2603:1096:604:338::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Fri, 11 Apr 2025 17:09:05 +0000 Received: from OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3]) by OS9PR01MB13950.jpnprd01.prod.outlook.com ([fe80::244d:8815:7064:a9f3%4]) with mapi id 15.20.8606.029; Fri, 11 Apr 2025 17:09:05 +0000 From: Tommaso Merciai To: tomm.merciai@gmail.com Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, biju.das.jz@bp.renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, 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 v7 17/17] media: rzg2l-cru: Add support for RZ/G3E SoC Date: Fri, 11 Apr 2025 19:05:45 +0200 Message-ID: <20250411170624.472257-18-tommaso.merciai.xr@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> References: <20250411170624.472257-1-tommaso.merciai.xr@bp.renesas.com> X-ClientProxiedBy: FR0P281CA0196.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ad::18) To OS9PR01MB13950.jpnprd01.prod.outlook.com (2603:1096:604:35e::5) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS9PR01MB13950:EE_|OSCPR01MB12643:EE_ X-MS-Office365-Filtering-Correlation-Id: aab1d4d9-3de8-4972-bdb3-08dd791b908b X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|52116014|366016|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: tT3rtboB2Dpl7d5njfzN5vP5zWNqHdenPMXkPknMxFfFefzjMf3V0QV6RH7vjBduTs0LX9uuD5FH+QkQoUM2QOgJef6Q2sjWzV2jcoDBsWH+Kkpk4eHblUAZpQnqaZU6nUPV8B+vgp7eFyio43KTF0lSYZ6PemQd34hVVyjmhuFW4CPDqkRa52B/0peZwFxdwD+xYsOKtrvZlKeGMF7s/f0xg96saEgMUGM/F3MgfFftGyWG6UWWDYGmO/7EXIl8TdDJvM8270RyEZCpxHVXQM9ineS0admAmouWdejRxB47uSTSuhCeX10UQVxJmuR5l9XZySBFNjiudL18xtH3WgCzBqFLKI0hycVRuKUKlXOWH5zMFjC2Ov5emadm4noNhQlRDDrx2QnWnDeeVk/KB49B+6t+PUhQuiEUtp60RY5mT3KVyMEQA8G1NeGZeQZMS0mMgyG3rr+77NpKu61W81/EfsnEVR0b0FTXXup8Pz5Mbhmhf5EKvnivSsACkhAV1obXS1UNgGycae72w6qMg/VL8YEvWfEKacZz7H6xoIKGe7rkP8OxRD+OsOz3ezx131FdgJKBZeJCsE9McGl7JSkKfM/37navoaMKtUTdStBKc15cfdP/FaftPY+SqJv9h42W61160L2LcFgMKLttrctptuSL/7bi4RkJ7RxxUrUioa2TZjHYDf7wMzEVPJKKnDPugjIKpKH+4F/KD+FoCpMIvQYyhl8u+btmWksn1ywbuRY0AV2scpkF1TqdsnxLk/rAg6CUZjEQwG8qCljXEuf2WxERit1iIHdMIFf/oRUv6QbOWTrHVxGPWKhp74cmm2UgA59+UTgg6X/e7gXdSNQ9/il404ldmA2lepLrmdzDzQCn8tAOnTsp9KukyNfPCsbsg7gmontJ4JmEifOHFOF/uhT4rNI34XAiouLG/yCm9Qp9OOAXgwHKRpv423KczwD6alC5NfoGY6uSNZfqrxecq68w2xnOBtvrvFwB/lMM8LnW1WuoZGHjr8q76qpXXxiVo1I2rukL99D5W9KbUkrDiHSd19saxrXZeDhCalROcUlsJZJcNGCvx4JFl2S7Ky664KhBen9mwxQMkFuQcN9VUlQXQ4NFnq97dXVPbvnKVYQMgyECLBiDzsR4Y+LBUADnhrwRPIDqRemSWAPzkH5N5m06qBCb/e9qpaZQ1ttFpp/Ag17yt3fKZWX7xoVbGhXFv8NH4cc7wtLSO5Qh+NsRj3A+KNtNxPdtBMVqkgsUALlBOoQ18IxIObxi2giayTkWnul2MYa29k/6H9/MOhfELgFu7Vo20Qe5cRNYodSS/99HXmSSN6CIn1QgjtevA+R2MRZlPIu1VUyaYInMp8a1GGtjLmLN+9V65VcbsoqpOeNL1lhLFVFFwyGTmxNG4iF3+v5stPpnVj6fttcb5tW6zaJ/vO8zEp7+4eIAsLkPxy3SpSu04UTxKbBa1/iZ4Ri0MNNBgDVA5oY51DS3tQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:OS9PR01MB13950.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(52116014)(366016)(376014)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hjD38GYyzRyPtmigvBW5mx60y0wR3Dp2ldWkaZQP28NUXDpsAg1INImxQs44GW6BorZrZZwleYkPl0IQRLZtAvjkmXfT19DedRJn9+mxccfHcD7SakyKTDIu1O6QQeKRjvHm4xoJbWgn2tj6mAyBYofVo0rLaa+2cj6xioh1VQx+DaSkaTayp1lTIAvkw7tG2/RvBfkigDKr4YPlS8lw4Q4Pt37HmvLtFn6X1x6W6z9oQS04D+m+M626wFJJ7DXx55KakmMhC++BRatuTyDk/sjAodi9RogW+cB3v4JXIybGOcsbpSRVDg3tA3aeH69+cdd+qh3jyVatHx5bc7L8ChJNnItcsKKrfS2z9U0+NMe6RaPhfi+nN+MiEEKm6a1aaayyXktEkgBZKrAYRYYlP3fQt8ntRW9p3aqWxr8C69TT/DKIbaOBjL5gZh+Jyh6op+Vn87ZOqbfaxV6zN1efk5AIBNIf50iGvqthP47OLCaMDstEwfmr0EpF9cN0LH3+92O3LApseiwUuLXm9YltcMHa17Ao6sXjt3oukAjIqTklUZ1AdxCncSXmyxnHQkH4FTXjgwBhEMENNOWXq+OKT7OTexXa0WHJ6rgDiyAOqzWo3VFbQLIXzbtE128gDYT1xb5vTeyjeOFksJj7mi94nDcAHqG/J4lGvP+8CAzTUkXwMBVnOiEqbZ5IbJm22+Vg7X+wRLb9drCuz2/O0hijO0PAzgJsxCsBiYfgVo6TH9eLYHjl+JZ2zvE/EMEWlFdEO9BcbCCXEes33baRBVb3tTi4fr9uLy2deVbA1UhVlLXAFEnkFme+z8yVZO4YW8qat7TXbyEluP22MRDNTHOwKrnfxUmZkfDOiL2cHYrbqHO7MVbODx0kq0WNN2Zv3Qw48wo+H417F91l5Xa6AYfVarlDOr4rXnY2CBbkqBrQDaQzFQ2coEkUAo7ExeksDmAfBmsZUFWDEtjJl8a5Xy8JwctsAMlzgsh8ogpjd+CASSZneJnDgIhKNgGkkyemFj0QvA7EJ3xtvbwGByZRmmJzPaeHN7x9BHiYSA7wFUUVlSPx0o91xMAH82jHGmsnp470aRzskgjC21btNeGev8n4ZovLbv7F8NJ6EavGtOSK/erwpi5eb3u75kplsktZxK4UrsqtXO4nnxOVXlCD/3hpkVPikdIBq/ytopWWakQSYyMsmcEEL2OPEI/TP5A+apDd6i8VkHkJjUfhkZ71IvY8qclzFPUllTmy0nssCWTfkPgfMdz6OWax2dvs8t0G7DX1JBlRkruch4Zx/NfhUcETcHZ57j30qmHtRbm9hg1+YzSVUN8B88bZtzd/L/5IKq0Wu9SNUc0veI6s0v/46n1Iyb+k2zmjTzJ7Rxqc8FbnSAfLQ0lZ2mbfi545vz4/6C8oTyMUjMXOTH/I4ke3KB73V2XGnLuD/B69EjUzcvBK7IWojL/QrZr3cLy9LsuS8T3KPhcKtgv2Lf7U5OdUCdmJ/tmMAwLtc1mSCmTDbPXUFz5dwfwLiNxD82JgXc8Y0wYL3vUoJopaABWjMYdr4ZGVsNAuDupCaDWtZVb8XQkrXNnp4HfQm5X+nI+MmTfd/tNxYmybGRvDDvf6ffBpqtmSBFpqVLBr0u12Yx3xEjdTiME= X-OriginatorOrg: bp.renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: aab1d4d9-3de8-4972-bdb3-08dd791b908b X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB13950.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2025 17:09:05.6242 (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: nW1iWHlSQ0CjkYVKa1GfxLfcvW/bfXue48qhRy0YKbAh+zPcu5LMMJQe9WQTyWDX+9WaANQ7OwbzCqtOb63Y1Xk6E/+vi5a5l9SRHiqT5rKkQvlRTxN9NhXAVPYQUknz X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCPR01MB12643 From: Lad Prabhakar The CRU block on the Renesas RZ/G3E SoC is similar to the one found on the Renesas RZ/G2L SoC, with the following differences: - Additional registers rzg3e_cru_regs. - A different irq handler rzg3e_cru_irq. - A different rzg3e_cru_csi2_setup. - A different max input width. - Additional stride register. Introduce rzg3e_cru_info struct to handle differences between RZ/G2L and RZ/G3E and related RZ/G3E functions: - rzg3e_cru_enable_interrupts() - rzg3e_cru_enable_interrupts() - rz3e_fifo_empty() - rzg3e_cru_csi2_setup() - rzg3e_cru_get_current_slot() Add then support for the RZ/G3E SoC CRU block with the new compatible string "renesas,r9a09g047-cru". Reviewed-by: Laurent Pinchart Signed-off-by: Lad Prabhakar Signed-off-by: Tommaso Merciai --- Changes since v2: - Use dma_addr_t with buf_addr directly instead of splitting that into cru->mem_banks (high and low address) as suggested by LPinchart. - Moved and improved stride adjustment into rzg2l_cru_format_align() as suggested by LPinchart. - Use csi_vc into rzg3e_cru_csi2_setup() instead of cru->svc_channel as suggested by LPinchart - Added has_stride field to handle soc differences as suggested by LPinchart. Changes since v3: - Fixed kernel test robot warnings from rzg3e_cru_get_current_slot() and rzg3e_cru_irq() Changes since v5: - Collected tag. - Dropped outer parentheses in rzg3e_cru_csi2_setup() - Use fixed array for buf_addr as suggested by LPinchart. - Drop the outer parentheses + used curly braces for the for statement in rzg3e_cru_get_current_slot() as suggested by LPinchart. - Added scoped_guard() in rzg3e_cru_irq() as suggested by LPinchart - Used a local variable for the queue entry in rzg3e_cru_irq() as suggested by LPinchart Changes since v6: - Fixed indentation + missing space into rzg3e_cru_get_current_slot() .../platform/renesas/rzg2l-cru/rzg2l-core.c | 56 ++++++ .../renesas/rzg2l-cru/rzg2l-cru-regs.h | 25 +++ .../platform/renesas/rzg2l-cru/rzg2l-cru.h | 13 ++ .../platform/renesas/rzg2l-cru/rzg2l-video.c | 168 +++++++++++++++++- 4 files changed, 261 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c index e0f04f7e19dfb..5fa73ab2db53c 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c @@ -318,6 +318,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, @@ -364,6 +416,10 @@ static const struct rzg2l_cru_info rzgl2_cru_info = { }; static const struct of_device_id rzg2l_cru_of_id_table[] = { + { + .compatible = "renesas,r9a09g047-cru", + .data = &rzg3e_cru_info, + }, { .compatible = "renesas,rzg2l-cru", .data = &rzgl2_cru_info, diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h index 86c3202862465..52324b076674b 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru-regs.h @@ -14,8 +14,13 @@ #define CRUnIE_EFE BIT(17) +#define CRUnIE2_FSxE(x) BIT(((x) * 3)) +#define CRUnIE2_FExE(x) BIT(((x) * 3) + 1) + #define CRUnINTS_SFS BIT(16) +#define CRUnINTS2_FSxS(x) BIT(((x) * 3)) + #define CRUnRST_VRESETN BIT(0) /* Memory Bank Base Address (Lower) Register for CRU Image Data */ @@ -32,7 +37,14 @@ #define AMnAXIATTR_AXILEN (0xf) #define AMnFIFOPNTR_FIFOWPNTR GENMASK(7, 0) +#define AMnFIFOPNTR_FIFOWPNTR_B0 AMnFIFOPNTR_FIFOWPNTR +#define AMnFIFOPNTR_FIFOWPNTR_B1 GENMASK(15, 8) #define AMnFIFOPNTR_FIFORPNTR_Y GENMASK(23, 16) +#define AMnFIFOPNTR_FIFORPNTR_B0 AMnFIFOPNTR_FIFORPNTR_Y +#define AMnFIFOPNTR_FIFORPNTR_B1 GENMASK(31, 24) + +#define AMnIS_IS_MASK GENMASK(14, 7) +#define AMnIS_IS(x) ((x) << 7) #define AMnAXISTP_AXI_STOP BIT(0) @@ -40,6 +52,11 @@ #define ICnEN_ICEN BIT(0) +#define ICnSVC_SVC0(x) (x) +#define ICnSVC_SVC1(x) ((x) << 4) +#define ICnSVC_SVC2(x) ((x) << 8) +#define ICnSVC_SVC3(x) ((x) << 12) + #define ICnMC_CSCTHR BIT(5) #define ICnMC_INF(x) ((x) << 16) #define ICnMC_VCSEL(x) ((x) << 22) @@ -52,7 +69,9 @@ enum rzg2l_cru_common_regs { CRUnCTRL, /* CRU Control */ CRUnIE, /* CRU Interrupt Enable */ + CRUnIE2, /* CRU Interrupt Enable(2) */ CRUnINTS, /* CRU Interrupt Status */ + CRUnINTS2, /* CRU Interrupt Status(2) */ CRUnRST, /* CRU Reset */ AMnMB1ADDRL, /* Bank 1 Address (Lower) for CRU Image Data */ AMnMB1ADDRH, /* Bank 1 Address (Higher) for CRU Image Data */ @@ -72,12 +91,18 @@ enum rzg2l_cru_common_regs { AMnMB8ADDRH, /* Bank 8 Address (Higher) for CRU Image Data */ AMnMBVALID, /* Memory Bank Enable for CRU Image Data */ AMnMBS, /* Memory Bank Status for CRU Image Data */ + AMnMADRSL, /* VD Memory Address Lower Status Register */ + AMnMADRSH, /* VD Memory Address Higher Status Register */ AMnAXIATTR, /* AXI Master Transfer Setting Register for CRU Image Data */ AMnFIFOPNTR, /* AXI Master FIFO Pointer for CRU Image Data */ AMnAXISTP, /* AXI Master Transfer Stop for CRU Image Data */ AMnAXISTPACK, /* AXI Master Transfer Stop Status for CRU Image Data */ + AMnIS, /* Image Stride Setting Register */ ICnEN, /* CRU Image Processing Enable */ + ICnSVCNUM, /* CRU SVC Number Register */ + ICnSVC, /* CRU VC Select Register */ ICnMC, /* CRU Image Processing Main Control */ + ICnIPMC_C0, /* CRU Image Converter Main Control 0 */ ICnMS, /* CRU Module Status */ ICnDMR, /* CRU Data Output Mode */ RZG2L_CRU_MAX_REG, diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h index ccaba5220f1c8..c30f3b2812846 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h @@ -85,6 +85,7 @@ struct rzg2l_cru_info { unsigned int max_height; u16 image_conv; const u16 *regs; + bool has_stride; irqreturn_t (*irq_handler)(int irq, void *data); void (*enable_interrupts)(struct rzg2l_cru_dev *cru); void (*disable_interrupts)(struct rzg2l_cru_dev *cru); @@ -108,6 +109,8 @@ struct rzg2l_cru_info { * @vdev: V4L2 video device associated with CRU * @v4l2_dev: V4L2 device * @num_buf: Holds the current number of buffers enabled + * @svc_channel: SVC0/1/2/3 to use for RZ/G3E + * @buf_addr: Memory addresses where current video data is written. * @notifier: V4L2 asynchronous subdevs notifier * * @ip: Image processing subdev info @@ -144,6 +147,9 @@ struct rzg2l_cru_dev { struct v4l2_device v4l2_dev; u8 num_buf; + u8 svc_channel; + dma_addr_t buf_addr[RZG2L_CRU_HW_BUFFER_DEFAULT]; + struct v4l2_async_notifier notifier; struct rzg2l_cru_ip ip; @@ -175,6 +181,7 @@ void rzg2l_cru_dma_unregister(struct rzg2l_cru_dev *cru); int rzg2l_cru_video_register(struct rzg2l_cru_dev *cru); void rzg2l_cru_video_unregister(struct rzg2l_cru_dev *cru); irqreturn_t rzg2l_cru_irq(int irq, void *data); +irqreturn_t rzg3e_cru_irq(int irq, void *data); const struct v4l2_format_info *rzg2l_cru_format_from_pixel(u32 format); @@ -188,10 +195,16 @@ const struct rzg2l_cru_ip_format *rzg2l_cru_ip_index_to_fmt(u32 index); void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru); void rzg2l_cru_disable_interrupts(struct rzg2l_cru_dev *cru); +void rzg3e_cru_enable_interrupts(struct rzg2l_cru_dev *cru); +void rzg3e_cru_disable_interrupts(struct rzg2l_cru_dev *cru); bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru); +bool rz3e_fifo_empty(struct rzg2l_cru_dev *cru); void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *ip_fmt, u8 csi_vc); +void rzg3e_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc); #endif diff --git a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c index 809c43d686e26..067c6af14e956 100644 --- a/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c +++ b/drivers/media/platform/renesas/rzg2l-cru/rzg2l-video.c @@ -31,6 +31,9 @@ #define RZG2L_CRU_DEFAULT_FIELD V4L2_FIELD_NONE #define RZG2L_CRU_DEFAULT_COLORSPACE V4L2_COLORSPACE_SRGB +#define RZG2L_CRU_STRIDE_MAX 32640 +#define RZG2L_CRU_STRIDE_ALIGN 128 + struct rzg2l_cru_buffer { struct vb2_v4l2_buffer vb; struct list_head list; @@ -184,6 +187,8 @@ static void rzg2l_cru_set_slot_addr(struct rzg2l_cru_dev *cru, /* Currently, we just use the buffer in 32 bits address */ rzg2l_cru_write(cru, AMnMBxADDRL(slot), addr); rzg2l_cru_write(cru, AMnMBxADDRH(slot), 0); + + cru->buf_addr[slot] = addr; } /* @@ -224,6 +229,7 @@ static void rzg2l_cru_fill_hw_slot(struct rzg2l_cru_dev *cru, int slot) static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) { + const struct rzg2l_cru_info *info = cru->info; unsigned int slot; u32 amnaxiattr; @@ -236,12 +242,39 @@ static void rzg2l_cru_initialize_axi(struct rzg2l_cru_dev *cru) for (slot = 0; slot < cru->num_buf; slot++) rzg2l_cru_fill_hw_slot(cru, slot); + if (info->has_stride) { + u32 stride = cru->format.bytesperline; + u32 amnis; + + stride /= RZG2L_CRU_STRIDE_ALIGN; + amnis = rzg2l_cru_read(cru, AMnIS) & ~AMnIS_IS_MASK; + rzg2l_cru_write(cru, AMnIS, amnis | AMnIS_IS(stride)); + } + /* Set AXI burst max length to recommended setting */ amnaxiattr = rzg2l_cru_read(cru, AMnAXIATTR) & ~AMnAXIATTR_AXILEN_MASK; amnaxiattr |= AMnAXIATTR_AXILEN; rzg2l_cru_write(cru, AMnAXIATTR, amnaxiattr); } +void rzg3e_cru_csi2_setup(struct rzg2l_cru_dev *cru, + const struct rzg2l_cru_ip_format *ip_fmt, + u8 csi_vc) +{ + const struct rzg2l_cru_info *info = cru->info; + u32 icnmc = ICnMC_INF(ip_fmt->datatype); + + icnmc |= rzg2l_cru_read(cru, info->image_conv) & ~ICnMC_INF_MASK; + + /* Set virtual channel CSI2 */ + icnmc |= ICnMC_VCSEL(csi_vc); + + rzg2l_cru_write(cru, ICnSVCNUM, csi_vc); + rzg2l_cru_write(cru, ICnSVC, ICnSVC_SVC0(0) | ICnSVC_SVC1(1) | + ICnSVC_SVC2(2) | ICnSVC_SVC3(3)); + rzg2l_cru_write(cru, info->image_conv, icnmc); +} + void rzg2l_cru_csi2_setup(struct rzg2l_cru_dev *cru, const struct rzg2l_cru_ip_format *ip_fmt, u8 csi_vc) @@ -290,6 +323,19 @@ static int rzg2l_cru_initialize_image_conv(struct rzg2l_cru_dev *cru, return 0; } +bool rz3e_fifo_empty(struct rzg2l_cru_dev *cru) +{ + u32 amnfifopntr = rzg2l_cru_read(cru, AMnFIFOPNTR); + + if ((((amnfifopntr & AMnFIFOPNTR_FIFORPNTR_B1) >> 24) == + ((amnfifopntr & AMnFIFOPNTR_FIFOWPNTR_B1) >> 8)) && + (((amnfifopntr & AMnFIFOPNTR_FIFORPNTR_B0) >> 16) == + (amnfifopntr & AMnFIFOPNTR_FIFOWPNTR_B0))) + return true; + + return false; +} + bool rzg2l_fifo_empty(struct rzg2l_cru_dev *cru) { u32 amnfifopntr, amnfifopntr_w, amnfifopntr_r_y; @@ -401,6 +447,20 @@ static int rzg2l_cru_get_virtual_channel(struct rzg2l_cru_dev *cru) return fd.entry[0].bus.csi2.vc; } +void rzg3e_cru_enable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE2, CRUnIE2_FSxE(cru->svc_channel)); + rzg2l_cru_write(cru, CRUnIE2, CRUnIE2_FExE(cru->svc_channel)); +} + +void rzg3e_cru_disable_interrupts(struct rzg2l_cru_dev *cru) +{ + rzg2l_cru_write(cru, CRUnIE, 0); + rzg2l_cru_write(cru, CRUnIE2, 0); + rzg2l_cru_write(cru, CRUnINTS, rzg2l_cru_read(cru, CRUnINTS)); + rzg2l_cru_write(cru, CRUnINTS2, rzg2l_cru_read(cru, CRUnINTS2)); +} + void rzg2l_cru_enable_interrupts(struct rzg2l_cru_dev *cru) { rzg2l_cru_write(cru, CRUnIE, CRUnIE_EFE); @@ -423,6 +483,7 @@ int rzg2l_cru_start_image_processing(struct rzg2l_cru_dev *cru) if (ret < 0) return ret; csi_vc = ret; + cru->svc_channel = csi_vc; spin_lock_irqsave(&cru->qlock, flags); @@ -601,6 +662,104 @@ irqreturn_t rzg2l_cru_irq(int irq, void *data) return IRQ_RETVAL(handled); } +static int rzg3e_cru_get_current_slot(struct rzg2l_cru_dev *cru) +{ + u64 amnmadrs; + int slot; + + /* + * When AMnMADRSL is read, AMnMADRSH of the higher-order + * address also latches the address. + * + * AMnMADRSH must be read after AMnMADRSL has been read. + */ + amnmadrs = rzg2l_cru_read(cru, AMnMADRSL); + amnmadrs |= (u64)rzg2l_cru_read(cru, AMnMADRSH) << 32; + + /* Ensure amnmadrs is within this buffer range */ + for (slot = 0; slot < cru->num_buf; slot++) { + if (amnmadrs >= cru->buf_addr[slot] && + amnmadrs < cru->buf_addr[slot] + cru->format.sizeimage) + return slot; + } + + dev_err(cru->dev, "Invalid MB address 0x%llx (out of range)\n", amnmadrs); + return -EINVAL; +} + +irqreturn_t rzg3e_cru_irq(int irq, void *data) +{ + struct rzg2l_cru_dev *cru = data; + u32 irq_status; + int slot; + + scoped_guard(spinlock, &cru->qlock) { + irq_status = rzg2l_cru_read(cru, CRUnINTS2); + if (!irq_status) + return IRQ_NONE; + + dev_dbg(cru->dev, "CRUnINTS2 0x%x\n", irq_status); + + rzg2l_cru_write(cru, CRUnINTS2, rzg2l_cru_read(cru, CRUnINTS2)); + + /* Nothing to do if capture status is 'RZG2L_CRU_DMA_STOPPED' */ + if (cru->state == RZG2L_CRU_DMA_STOPPED) { + dev_dbg(cru->dev, "IRQ while state stopped\n"); + return IRQ_HANDLED; + } + + if (cru->state == RZG2L_CRU_DMA_STOPPING) { + if (irq_status & CRUnINTS2_FSxS(0) || + irq_status & CRUnINTS2_FSxS(1) || + irq_status & CRUnINTS2_FSxS(2) || + irq_status & CRUnINTS2_FSxS(3)) + dev_dbg(cru->dev, "IRQ while state stopping\n"); + return IRQ_HANDLED; + } + + slot = rzg3e_cru_get_current_slot(cru); + if (slot < 0) + return IRQ_HANDLED; + + dev_dbg(cru->dev, "Current written slot: %d\n", slot); + cru->buf_addr[slot] = 0; + + /* + * To hand buffers back in a known order to userspace start + * to capture first from slot 0. + */ + if (cru->state == RZG2L_CRU_DMA_STARTING) { + if (slot != 0) { + dev_dbg(cru->dev, "Starting sync slot: %d\n", slot); + return IRQ_HANDLED; + } + dev_dbg(cru->dev, "Capture start synced!\n"); + cru->state = RZG2L_CRU_DMA_RUNNING; + } + + /* Capture frame */ + if (cru->queue_buf[slot]) { + struct vb2_v4l2_buffer *buf = cru->queue_buf[slot]; + + buf->field = cru->format.field; + buf->sequence = cru->sequence; + buf->vb2_buf.timestamp = ktime_get_ns(); + vb2_buffer_done(&buf->vb2_buf, VB2_BUF_STATE_DONE); + cru->queue_buf[slot] = NULL; + } else { + /* Scratch buffer was used, dropping frame. */ + dev_dbg(cru->dev, "Dropping frame %u\n", cru->sequence); + } + + cru->sequence++; + + /* Prepare for next frame */ + rzg2l_cru_fill_hw_slot(cru, slot); + } + + return IRQ_HANDLED; +} + static int rzg2l_cru_start_streaming_vq(struct vb2_queue *vq, unsigned int count) { struct rzg2l_cru_dev *cru = vb2_get_drv_priv(vq); @@ -782,7 +941,14 @@ static void rzg2l_cru_format_align(struct rzg2l_cru_dev *cru, v4l_bound_align_image(&pix->width, 320, info->max_width, 1, &pix->height, 240, info->max_height, 2, 0); - pix->bytesperline = pix->width * fmt->bpp; + if (info->has_stride) { + u32 stride = clamp(pix->bytesperline, pix->width * fmt->bpp, + RZG2L_CRU_STRIDE_MAX); + pix->bytesperline = round_up(stride, RZG2L_CRU_STRIDE_ALIGN); + } else { + pix->bytesperline = pix->width * fmt->bpp; + } + pix->sizeimage = pix->bytesperline * pix->height; dev_dbg(cru->dev, "Format %ux%u bpl: %u size: %u\n",