From nobody Wed Apr 1 09:43:44 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011062.outbound.protection.outlook.com [40.107.208.62]) (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 9D8033EDAD4; Tue, 31 Mar 2026 10:23:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952630; cv=fail; b=AaM3GVSdtlL7n+wv4YvBy/FC2SlRW7r1mylXPpfVgR32QJ5C1c6wBQz434X4JkwwO6JKEKt6mYMSiNw4Rt7NQ1ZC5pZRRekPwpg6Ml0dmcrmIhjhdQWcU1VncHPB16McB9jbLd61Nh+JL0dC5nMnbFMUBOXaYhydo03ZVXlkyOM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952630; c=relaxed/simple; bh=5dfbZN3cfbE09itP6RIr+gzBtx6aMa1BqQvP61Lm6wY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sUSw8jMq1WE5U230GF50OJAu8WQpCBRWCFOVrEU35ursNhbiROM2IscNK3535NRYdVyPUslAg9XsiGDWonPa4ibNVZ/WoHHINsA9Od0dQeT4uZLyDwBn2LAUG090KVK3oPDI6dmKLe8xbD1G2Vuycw/DbkZDZipwcgLsZJE5iYE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=chpj+LSX; arc=fail smtp.client-ip=40.107.208.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="chpj+LSX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pjfuNMpm1p9/kkZDBE0vdrXMKC34WdSK1qfaWJSP9LUWxs1n47/jTkM160RfSUQHlaRXIQ9+mikBsSfBl1VWYON+apdq5rJI7Msm3JlfVNFlEn3xMZJjzz7Ex1BzjgGwSfLmIILbh4FhOqxVunTa2E8YcVIfWsIq5AABksizpUXEBG43oY7xQjtVRENd+SkQDf4o92wwE5B/mgQwJUG8FRDY+tOOxLp5ySiEG6oJWhvbCHdONuKSKBxe+g4zGNukwj1xa568gOuvl2v4Bneg9YWTbCwmL8vjdhfaamT6QRaKG2MaoPEaZoG9OLa3zaTosqBdvcqrxs5lUEZGZ6fq8A== 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=tXmNbv853fCOfQoWNUbUS09+MBhzNx+faVitjwwOBrc=; b=QcW7d8F+EaSbKEUVdqXA4X6t67zCSE+J4ClM3xHc/siCLWHgzu3v3XQsz99Q9RLiIl1sgtygb1zAInuW89E4qqRO09rF5aNWkp0vFywlq1XYhfIx2nj20RAgcSV4hZbBOMclpx8emh2mNhCX4WQLDpR80cXOi36kqkneJH2J47KJvgiCLqHCVTNQzVtoOCdXBlN10maxc+I7QkmPLTAsbPxynD0WPFekXnEn0b9hPyhGHS3V8cf8tirBGtALHxGhWLe/QuaVYwbFJ5lyb1xDgZupUoQwWAMgDPaw/+dWUKLGYaV8SsEB4/9i/tC3lOZrEHuaV9QoRq5rlNjzKmxB7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tXmNbv853fCOfQoWNUbUS09+MBhzNx+faVitjwwOBrc=; b=chpj+LSXrDz9KzRKsGVmXIRQyh1Xui5VVy0++L6kjB864W4R+MUtxptfcNBoX7F7B/t4BFEquBPNUYxDBjzBtRAKhrYbWDo5Cx+0zFRyCkUfAWHltNlcnphCrpijR1seWwAdzpKMQJBpfJeAZWvlJnDUYrH1Yjm2A5TfrQbFb2q8hcgLZKcfVa8I8jrVmDP/QwjXhx9Exi1I0vZTfPIZcK3HRE5dZcEf6glmLLNN3RMkm5c0HhulF8q/tgHrj6o7Tt9MK8jLeNxli7o5IUy6kU6Hpsuv5kPWVA8tHFhXvccY/74vz2dPzbup7Esamgi6jMSs4+stLOAd8nfm007vJQ== Received: from DS7P222CA0022.NAMP222.PROD.OUTLOOK.COM (2603:10b6:8:2e::25) by LV5PR12MB9804.namprd12.prod.outlook.com (2603:10b6:408:303::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:23:46 +0000 Received: from DS3PEPF0000C37B.namprd04.prod.outlook.com (2603:10b6:8:2e:cafe::28) by DS7P222CA0022.outlook.office365.com (2603:10b6:8:2e::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Tue, 31 Mar 2026 10:23:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C37B.mail.protection.outlook.com (10.167.23.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:23:45 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:23:34 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:23:33 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:23:30 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R Subject: [PATCH v6 01/10] dt-bindings: dma: nvidia,tegra186-gpc-dma: Make reset optional Date: Tue, 31 Mar 2026 15:52:54 +0530 Message-ID: <20260331102303.33181-2-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37B:EE_|LV5PR12MB9804:EE_ X-MS-Office365-Filtering-Correlation-Id: 8953036f-8439-4a0e-c043-08de8f0f974e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|7416014|376014|1800799024|82310400026|921020|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: ONK3y9zBDTv7rHTUazdQCI6rrKTAicroWqmfCnoOVM4wu/m2jtBNhULomWPrCpvS1J0kTf0rOEMINGVgtj+i3V9/20e0IyH/M5UbcoIa3UkCdSvEhtarRoUG70TuAow+URKf7Pd3/8WVYdEFU7oFRGaBUDjv5bv/7pKnYWoDZqCV2j4E0bZeFoUvQvsN46LpTGMA/ledo5P4740lkUL8rVavWFniBMNBnRbMiM8XcAOcHaC1w0ZCRGeoRY6Im9xfU8Zhu92z8eHz7uBiL/rvyzeXwq1KERPzle+MLNEmmz7Xer1Yu6bCmF50OsWGZcdhlodkx7Wz826gFoD+fjSbCVHuUvYlhieikLVJeFucWFD63ie5sgzT2ivl8xiC/9GH06JUQBoUGdtFcOrQmcqwK7yTgFtPSbox0POCDp6tjgWlxma+81EwYSMvNFEo4cmNehZCSfkEq2rY+zOUJa5zGonnAjq8sNT0BQzIXAjtqG/oJKRpVrQoLcU3X7sCUj2B3SUak19iQhOnTo9kAeUXNAbqdJuAp0EdzQa3eIVcPQNnj0oojsK5J3aRMPMFkz/k2EBSd2xfVBPZP2XfkjIhiTTsSle9I/KpH5AoAsI/ir4c6Med5FGO8x4vagsaIZlpZlK0LmwCKdKXZrdOoRhGFGVOlvSery4BWUKhUvFNwzLVY5WkdDQsM1UF19NGSuo1INd1yW5EM1ZAMIHnjQPJM2l1LziodFsk3tAPLqMamLzqXP/jJun8wdm5J007Sm/+aIKYpHhAoA8usvQ8H1WlXiAMPkcO91/K99bY4Y19kLveJn+tdCTBtz+Aa/uV8OE3 X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(376014)(1800799024)(82310400026)(921020)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: LA8J4jo4m/rtG5CGd5dGYTo3xvAdYdh+MY7yPjG8u00tkCDIDOCMN0WMvlfOYiBfyHL40I9wwEeLTMdXd09fPdpKEE+BtnLNkWvNR84s1mCq2Y9DXVocIWuaO1AkcrH+G20vdfcGOrJuy7Q2p43dAxeIXFpyRu+UvELoqPdvKBnzW5AOTamBZ5dm3ZE4Xo3oYsaYef2leGrodpwOdTgCm/i4QBzpYSZv3RPogOObZrAbqjHwkg+6hLSZwMm4c64wkxOKKMyixg2TQvsqOUyIHjMg5TiyQrTckOxSFm5iexNN/sdJR8g2ntShd+LlGP0BRbzykUjRB3VGYZ04hHRD3JmKKcZS4SAdTlTbMb3SA6c9mdo7rPutH9KNBWz0qvdjVrzzFl3poLwZ07J/7fJMs1ZmCL5U5PDl4sBZfcSu56YqPXSfFsQG+xfZwqZPG8FY X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:23:45.7429 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8953036f-8439-4a0e-c043-08de8f0f974e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C37B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV5PR12MB9804 Content-Type: text/plain; charset="utf-8" On Tegra264, GPCDMA reset control is not exposed to Linux and is handled by the boot firmware. Although reset was not exposed in Tegra234 as well, the firmware supported a dummy reset which just returns success on reset without doing an actual reset. This is also not supported in Tegra264 BPMP. Therefore mark 'reset' and 'reset-names' properties as required only for devices prior to Tegra264. This also necessitates that the Tegra264 compatible be standalone and cannot have the fallback compatible of Tegra186. Since there is no functional impact, we keep reset as required for Tegra234 to avoid breaking the ABI. Fixes: bb8c97571db5 ("dt-bindings: dma: Add Tegra264 compatible string") Signed-off-by: Akhil R Acked-by: Rob Herring (Arm) Reviewed-by: Jon Hunter --- .../bindings/dma/nvidia,tegra186-gpc-dma.yaml | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.= yaml b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml index 0dabe9bbb219..64f1e9d9896d 100644 --- a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml +++ b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml @@ -15,16 +15,14 @@ maintainers: - Jon Hunter - Rajesh Gumasta =20 -allOf: - - $ref: dma-controller.yaml# - properties: compatible: oneOf: - - const: nvidia,tegra186-gpcdma + - enum: + - nvidia,tegra264-gpcdma + - nvidia,tegra186-gpcdma - items: - enum: - - nvidia,tegra264-gpcdma - nvidia,tegra234-gpcdma - nvidia,tegra194-gpcdma - const: nvidia,tegra186-gpcdma @@ -60,12 +58,23 @@ required: - compatible - reg - interrupts - - resets - - reset-names - "#dma-cells" - iommus - dma-channel-mask =20 +allOf: + - $ref: dma-controller.yaml# + - if: + properties: + compatible: + contains: + enum: + - nvidia,tegra186-gpcdma + then: + required: + - resets + - reset-names + additionalProperties: false =20 examples: --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012071.outbound.protection.outlook.com [52.101.53.71]) (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 42DB83A962D; Tue, 31 Mar 2026 10:24:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952647; cv=fail; b=Rg3bC6jG4YKdXoZoToGbA1O15mevcn/AnomaS40gcXvMueQ7ZVKj11gaTI8KLmh4aUW1Q/FWTXXeGA5xsxW2VeCuq97ohpZKCHkzSThVLOnP5zumS5jMl4Bx/mzB/OSEFWTchOCf8+YfZgmNf20XvCuF8RAUZBTVbENYm+hPTZg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952647; c=relaxed/simple; bh=I9Jf6991WxDcrrVxLgNrTEuMMpB2mQJt80ACs+rMu2s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=o/6fyWRn5S89ac+bFTIZGBCkY8hb5h15kKWoI7/c28tpnsK7zhZzzbUvDmw9Lr6jk20fpO8+zWQHw8YwxGFHVWIM+lgrihpExlyLO6puwPyC8lO9cWud0lB/ezXjk/X110luQlV87DIsonlmEa31E+PTB55IksAOZvNHAPQ+Zmw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=CudUg/gu; arc=fail smtp.client-ip=52.101.53.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="CudUg/gu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LOwLe6+RkcwkEF+P4xU7dBYB12Zu9rYG3+DzXhATOHUzBJPYzLqlq5laVQwDexQCzCr6Dxg3GrCW/uqh5pCzX5WZ1Q00gYqX4yJScyQgjNquhsN7p3PfIGCOEoq4mlKoJSGrFqSbv8QKWVzkYG7TxQA7z8PIT63cgoGjEdwZ9zgTefwjSK4z9rhv40KmrwIjhG+xuKI+JFuM5fBCg9rgVOtDUtUQDoyX7w19gWVcmGMHuvxAKsyXRNc9UYiUKtq0NkvvaT0OOm3vcYNDrR9rlO2rGmzt3nMMQVz/NP35mra28Rn+8E0xgV+0BAhBtbEc6P63be7MSki8CLN4RnyS3Q== 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=mG3HNC59MBDQbzEnowzIv1XlbuWYfwd6rnH3TJgW0Qc=; b=llBS1IPeOUiVJYnTAalXpK2Tvw63NGv/Cpw3E5VkVup8clbcak4DhXjzKeTHpvJqiNh561eQZWwjbzkp7GdcNxg1NIYUp+v0gJsUj9e1OA6pgga4L8+chdMoRLg7atRm4fNujwRAr0dsBfWsuw9K9NE8kjfRSm+E6qKFSEWhaL3BpKP9rC/EIZUHNR5hojMGxzogEG7atMl1mZB8FNmUqsPzEmdb2M/WPSJVBLz3mN2SBNW5cz3Osp9OsJ5nspd6D7XmtWNdOhfhRO9iK20xZd//LPgelOJnpXSzH6CmC8OR/Ng8JGFBEZN4JDhdClwj653JjNp4xyABzoRQF9CspQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mG3HNC59MBDQbzEnowzIv1XlbuWYfwd6rnH3TJgW0Qc=; b=CudUg/guBsMfsEb4OyT8OV83rWH0ZzcTI+sNxzcyqgD19zjvOPfGWQ4szvobvXhyHOpdJdBqF1o235PlC245XNNt+0FbZJ07I2It+98ATJA39n8sb1Kox/MCzC/E6GhkZMT/KUbuOrVz3obgjYoSSx9RPLftBSD9G+UlTimkrHu5J0BhMh1Vz+S1jqMz9Ct5XZQzWA/Hklk0CPD5gS5TIzJqxCpAHdldkhZkM/RoR4yJGSJXdDii2BTj/cmkGgPqLCG6W2ft6WZo6C98EP47DOJp0LPC9gC5LsS6EC58ClrOpqAR5L1jJO0roxM0huxF/Ne3nsF/bqChmdekTeXfEw== Received: from DS7PR03CA0210.namprd03.prod.outlook.com (2603:10b6:5:3b6::35) by CY1PR12MB9559.namprd12.prod.outlook.com (2603:10b6:930:fd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:24:02 +0000 Received: from DS3PEPF0000C380.namprd04.prod.outlook.com (2603:10b6:5:3b6:cafe::84) by DS7PR03CA0210.outlook.office365.com (2603:10b6:5:3b6::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Tue, 31 Mar 2026 10:24:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C380.mail.protection.outlook.com (10.167.23.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:02 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:23:48 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:23:47 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:23:44 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R Subject: [PATCH v6 02/10] arm64: tegra: Remove fallback compatible for GPCDMA Date: Tue, 31 Mar 2026 15:52:55 +0530 Message-ID: <20260331102303.33181-3-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C380:EE_|CY1PR12MB9559:EE_ X-MS-Office365-Filtering-Correlation-Id: 38355393-e796-4ad4-4852-08de8f0fa12c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700016|56012099003|22082099003|18002099003|921020; X-Microsoft-Antispam-Message-Info: WAnSd/ctD/b208O29c4sXZ0u5B53+P/iCT+k5K8kkYrVVfCzMXwFiEk2xkB9WyklLoxJ+zkwNEOGJTY/xSo9cA/r3FA9js/eFbMhdxiXLjHc2AGCkzdSiKrGnDoGr//6GSiBgRuWfZRSscW5x+6YI1n4G+isBCA/Knn86ROB/d3KdyJXn5rEXGsKGBRgMvkLryqsjRP2t2yr2cmrWz4RR8OTi1mDWkIVGaavgfn0IJ4XPlblSTP1YjuulV6hQI6bnzrqer0x46LB7Tx2PKuiH6uqVwFyBibPpj+c6DwqLrGrvHKhVuLBYTn1g4kjvF04y5eCPsSQ0m3mw7arJtl5udp53O5phruBOU0Tfqy6BZ199Eu/m+jEb1UCuBu/y0ESLIdBEyyzgya8nR6ZEXwIZqn8mxoq+JB6MJ582KeQrKsJDTRRb0OwBXqx+4LgO25XsYY5SaYOl/KBE9tPhsW7D0gcjhAfby6MfSwA+MNrpmD42E2uPcO4FXNGF2gcd8R0u3PWbUjnymdiIUoW+c5cDoerkWpldKOuVtE28AxeVTT4cAdT4/Y9BtoJe02YvN9++qYbPOCSencnKlM1Aui+YnAPf4DWCpZWcTlz9UAKC4417KhfSB5zcBbtMhmkZjY38DhIje4M10epvrUrsFt6JveDN9Uzy4aGAjS6Cnxb3niS7V6Z9D+U8TzqgG7oJPjfy+vPgeG6SheVVj9V2l6CIO2QyBTNLBX9SzvaaA9C6i0/IWyG8jsm7TfLMg+XVVK/bGU1OwcUHFswlXS7UcqYT4kRsq331CmsXYxnPb4h/XQ/q+13CijFXITrCd/GWiVq X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700016)(56012099003)(22082099003)(18002099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7k1Dp4MqF9yGaEmDfpEAI6cjo4qgj+Ti3KG/MLpUgZYFug73PjjpFgKqeon/NSg8b+HBhBeGVfinQWNaBncX6s6MiVM54ObfxbfbYhhntyT2ZolN2htUrzdzm5+PRufwtEXVnD7hJiuXhokPWCcc3AzM9uaOpjXISjwh/LxQmyNzMJ02vUkyH0O7arjUYcYaBFxxhRBpeTcUEmFKksa4lZQw9bdaFsoxxdD8N5XAR8hd3utX+TI+basu+v2GLedYfTCFNqe8PFK/8/hi+BbhoREuW7w6N4OSQXE5ZGU++S/BiwQKoye+gAyZ8EAx6WRN86SzWgd/DvUPwdJtn2nBuLfOewhlRfBkBeZov4PZrbkKa70h0jpH6bxCF4wMEQU8o8Lc4mq7ajFuFKsdNAvZg+yiXepX+DIvW9AEAkbhTEqfme3z6MQ1y4hrO2jfjN2m X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:02.2992 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 38355393-e796-4ad4-4852-08de8f0fa12c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C380.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9559 Content-Type: text/plain; charset="utf-8" Remove the fallback compatible string "nvidia,tegra186-gpcdma" for GPCDMA in Tegra264. Tegra186 compatible cannot work on Tegra264 because of the register offset changes and absence of the reset property. Fixes: 65ef237e4810 ("arm64: tegra: Add Tegra264 support") Signed-off-by: Akhil R Reviewed-by: Jon Hunter --- arch/arm64/boot/dts/nvidia/tegra264.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts= /nvidia/tegra264.dtsi index 24cc2c51a272..af077420d7d9 100644 --- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi @@ -3208,7 +3208,7 @@ agic_page5: interrupt-controller@99b0000 { }; =20 gpcdma: dma-controller@8400000 { - compatible =3D "nvidia,tegra264-gpcdma", "nvidia,tegra186-gpcdma"; + compatible =3D "nvidia,tegra264-gpcdma"; reg =3D <0x0 0x08400000 0x0 0x210000>; interrupts =3D , , --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012005.outbound.protection.outlook.com [40.93.195.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE6E33A6B77; Tue, 31 Mar 2026 10:24:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952661; cv=fail; b=k2uFRoG+x1D8paLTT0VdmlZdH5eYN0z1HBrA4JHVELXQvQEXhgAnk7dH9hsjpEzmp69sj13ox8lmRo8VhZgg6jX/kXaHuiBc8zURMrIWsBNEl1lWT5uUAiplg3awIhNqcM2Lp25ttTB+au6DxNdr6BIEGZFTeFYRk2n6jOcN7o4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952661; c=relaxed/simple; bh=Ngs8EPNMcbZmCb7C00t2bDxa3rlI6qLzn7lzhHMz14M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=krDl6QVoj2KKQIx5CwclWzozCsgRVolVlyRiYfkPrc1JIchAC3HWfshwg0uyqVTu40Xp5r73+Tlru2ZyFfnawQ0nqvGC79pFCrgZDPGXYJV3G+rg4cSQNhX+jT1lBzvB7MF2WsV+ldzx9ZoJelCC+d5UiqQqeSWnFoz2A2GVYoY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=I0TVemAU; arc=fail smtp.client-ip=40.93.195.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="I0TVemAU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O5sclkp3pR661Hm7ThiJc7eGEyeCsE/4NFHi+PFusV877hR8PoB2d3+c488xJdtJnx5FM/z5yS5J8GbpGgEo6ajeKG+iGb8iqCHZkloZuquTawwR67bSsXrLVHN2IezTwxzmd084LhYP9zFfmaCD6bsOCAROrTRey5j937Bc5J9syG33V+aJWEa9hAvzm6QJzcC8QLhI6xZ4DiMqIHzvhxWpWqj3hbE6Pyu8Ixx7Gt/TSmvX+j7nf8RJo+0FlIfUddrhhq1WMfj5KNiq9KYp7EnvIPmuhw+rIsBuNNUccHRpS3jGkXZhICGQrD6qiIglW4ZvoSl8zHzEogX/1Oxozg== 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=KhxS1xYdxOO4vXubyanW9eEpLqgh+V2kvpwL19Nm5Hs=; b=JX9pbWT/m+5mTncfQRxqblue5aKghYRF4QG5iNbZlOc/vwGxZ+P7fbU4sUOCrmSYolbv+zodMpZmFzm5RqNFdtngBvDQD1f08awo0TqQ7/KMxAZs+TLomEN1FCUoDyEKOPDyjlzONVexBESRxb4pKNUM+FKwHxOtiWwLUH/x3zlnn2t+kBM+2MFBANP8QpszPARRIt59rIwuYUDZCrsL/xpDEVXKJmD0KPICXN3/0XX1kfxgAzxGskIFzwzqC1LEiWiI8froaaT93Vqzs3Sjc2rY6St4YbLUX8BsZaU/U9Ar5hsn39D7n/r6vld0jYCvrxsziuML8x4Xj2g3/5KneA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KhxS1xYdxOO4vXubyanW9eEpLqgh+V2kvpwL19Nm5Hs=; b=I0TVemAUyD9W2NV3WH4tt+valxAnzc1QvnqTQ4c9NUxGgCluKOGdVVAyHBbz6i7FUHfNSdu119ch60FIsCKJnvse7aDrJUIlKf0pdHkpqaN5RbGSIi5DhDTGPK2nIgBx1SxjBF9Z1PLSsN0Ugto+0pSfn6avYNXmFSucqXwHoH4umEjC+rUKLikFIL8TcaNhJ1uay6t+fh0UwmCOOF2ibd+mqFsfE7z8BjE0swyJrG7irZwwkUKcZ2fW8b01Fq+s+7dUWnzrNQTa29v1DYqGqypGTBotAKpnec5HE+8au0SLTjcYNY58SXLalw03msJ5DzzwRGPlTcjuw0LMGM4A/g== Received: from SA0PR12CA0029.namprd12.prod.outlook.com (2603:10b6:806:6f::34) by DS5PPFEC0C6BDA1.namprd12.prod.outlook.com (2603:10b6:f:fc00::668) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Tue, 31 Mar 2026 10:24:12 +0000 Received: from SN1PEPF000252A2.namprd05.prod.outlook.com (2603:10b6:806:6f:cafe::ce) by SA0PR12CA0029.outlook.office365.com (2603:10b6:806:6f::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue, 31 Mar 2026 10:23:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SN1PEPF000252A2.mail.protection.outlook.com (10.167.242.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:11 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:23:56 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:23:56 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:23:52 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R Subject: [PATCH v6 03/10] dt-bindings: dma: nvidia,tegra186-gpc-dma: Add iommu-map property Date: Tue, 31 Mar 2026 15:52:56 +0530 Message-ID: <20260331102303.33181-4-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000252A2:EE_|DS5PPFEC0C6BDA1:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d8b724c-cb9c-4b81-c823-08de8f0fa6db X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|1800799024|376014|7416014|82310400026|921020|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: y1F4b6hqaTHx0dtzV7C5+gPA5uRF64nlpRr/fxOS0VSAXjBe2bJjW+1nyyp7GgfJ57HTjvl0/agM/krJ0Nwtonqz8o0UkvH++F/pOEXN45ICT7qJAuOPqOudE8HHUh3NbCpXN2Tl/iRnSRzlSiqdfl1ID4rb+9y44fGSXacVMjVnP5YxHX8iidcP7b0Dh0/uHCFk0RDEM6Sg/+Cz5yEtani5fKV8BNiW9mGK4ZpQeU/hucPC/+gOBHBN1TPqk+GQDtL5KQ1Pi453CQ6/25sCDsZyEK2opLwhfMV3NVtqkOC8eXoiabJeQRqe952lLkdf0J8VqkO2tCSGJzsekCMrGau7m6+fjzkSScMgH4r0b5nAf+pZshrxDmFM7Dd0MYvL6/0A8Kv5+km95HxaAbUu+8kMSwsUj9ROyLRFFrdYCMxNNAWC3Uo0RHNOVbM+f+rIQ2BfXja9mjzTNibCc6x7qEizDRraux+u7LrM38hS4Ojsn1u4Sox1k8h036zXhBjlDLPId+HjLe3sQH5KXh1navrThkWk9dZOGoP+o6qNt2z4kzoezx8UXFrbRgpYUrYfEo5cdVBMSFQmZ6y3gQKnKJlhTP9ZDyDLIi2MnKHk0TRaCsvZ5LldOpkwvoaX+TBDVVxofh1PQ72ojwdsGpxKIDBPfwmZK5G4hMVtG7Y40cTYd4N7Yhu38BxoTVpQ4T8X0BjW75Lmb6cK6nUuAE26ZJGjm8BE1cVrN1bHJjggshyy72ahhcOdRMeq8v5yncSpgXI/gDqYVpZa0xcsU19zp9etAFZH4kLnzlbb3QD92xGTY7MiZay9Wp+ky25O7fcN X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(1800799024)(376014)(7416014)(82310400026)(921020)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HHfa4OphvnKmhnofNwCnr63tu+qQ7bHubXf/DNNBLP098rKm+EzgWSg+MJPnvA02R6YM/q1hc3qIPaYti9SS2ZHQdXXt4uS9AO7DDUnqVhTAsFViFVKl52IlfcE0BWWWsisqh8pu9zSmIqwvhysL4lxRhxu/1QYDuXdHFnsp26VxLSi58kOyYCc0vJit1dpuJx9U5NDmTLPpG7xBtkwUcjJJ4t0sXJphqRsIqUKWukAw5cf/qtwOb9yvoXeaw1cQpRihcW6yn4RFXtk/JXmHrlvTvaYQcz1Ewx3idchmzPYNFeycpEcMoWwMHBqqDqK34r0tgfCQwuEurZOsN90Of28OX0P+B62Uyni+hxslDqJVo89uJGFXza4qlWjP+qBOTrlQfJZY4hCmprtsYCq1bl62PCXZX5CMQzqDodEK/QS6ddIV7zJjDLJknzSVjPY3 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:11.8526 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0d8b724c-cb9c-4b81-c823-08de8f0fa6db X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF000252A2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS5PPFEC0C6BDA1 Content-Type: text/plain; charset="utf-8" Add iommu-map property to specify separate stream IDs for each DMA channel. This enables each channel to be in its own IOMMU domain, keeping memory isolated from other devices sharing the same DMA controller. Define the constraints such that if the channel and stream IDs are contiguous, a single entry can map all the channels, but if the channels or stream IDs are non-contiguous support multiple entries. Signed-off-by: Akhil R Acked-by: Rob Herring (Arm) Reviewed-by: Jon Hunter --- .../devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.= yaml b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml index 64f1e9d9896d..bc093c783d98 100644 --- a/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml +++ b/Documentation/devicetree/bindings/dma/nvidia,tegra186-gpc-dma.yaml @@ -14,6 +14,7 @@ description: | maintainers: - Jon Hunter - Rajesh Gumasta + - Akhil R =20 properties: compatible: @@ -49,6 +50,14 @@ properties: iommus: maxItems: 1 =20 + iommu-map: + description: + Maps DMA channel numbers to IOMMU stream IDs. A single entry can map= all + channels when stream IDs are contiguous. In systems where the channe= ls or + stream IDs are not contiguous, multiple entries may be needed. + minItems: 1 + maxItems: 32 + dma-coherent: true =20 dma-channel-mask: --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010065.outbound.protection.outlook.com [52.101.85.65]) (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 5327C3A962D; Tue, 31 Mar 2026 10:24:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952659; cv=fail; b=mjaVM9QoE1Dhw4OOFgeynyaJUqVkPkDL+WWdXlhLJ8QxWPIYHpJecwITCMgtRcqVVYH2b1O+RqOMPyvGd6eRestx1H+wSEZF+1lq97CCV7YQmMiuJ9SYfYU0eRh9w9pTO82zvMznjjfX4hzojlQC1tpSTrzf5WQjyr1OOQB1gcM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952659; c=relaxed/simple; bh=DQkNHhFDyC19k9csVDwhNnWWmByd32w8BQDSDsEd71E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YrKc95gDhM3FVORjmJW78QgW6EYHhngp0uT/P61aMNtUX3EA1b8gO/5EgdYnBHi6McpwQSDYdZ65jBC5EzNi9j0tkF/GhE0E/EHFINKeDNsG95EkV4bkJncgr3aKsx76qNYWpz+7QLWP0+O7cquepJwgqq6o2IjLZdZvDEvA0mM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Ylvma1zm; arc=fail smtp.client-ip=52.101.85.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Ylvma1zm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xf+/5aWeyDjV3GjAP9Ygco2qaJrmCj3fCgvVl8ABP65V1KhsESGPZ3uIBi67kAAO2RqEuIu2V2bYnBEheCV6tjz/bk0SCOOQOjS6st9MPGbdylH9MGG7jGbHA9SSLS6sX695n8OYaCZwnH/OJMyFJ592qkVMl8k5LTZB1UFHr7X62QL2xZ82ruKNgtVMvJhYfu1+JUP6K6i1xLB2OWAC2npfgYKVX6nYW/FvdMeLijnvdwECDHEHvBretcMf/CpdQSXvUEXBsEZ4BOloU6hiepZ2IPcAV4adsXHhUqINxMBweropcjORzdC4sZ3h810AkaBmlRUhh9hRQIUXvKrxjg== 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=0E/TSJ4/CVWvqg/sIkoN1Bc+TDBYdsoBTkTcWD4FXls=; b=mEEWkQVg4BwEV29/9BlE8xSdwiBk+OIJ7I7x5P2rmJ9PidTAfiNO1MYXaep3832azAT4gjM443ASKtuShAN4Iwa7D56c3VFpx4G8zp6RVKDe2jRHJOw6/QuySlW5V4VjIk3LfT/ozfr6UsnTcPLYe1PynJxXmk0CbdYrHOeADDDTuFOMYyzlgg2g+/sHt7zMIlbeLynos0gMeRx4f3I0ilS222d3PWWn9cxHaYLar0ZI+PKAyPQAgGoDpyqzITpA5j4oTSDY3A6VsK5zZ8Af2U3/DjFzyfXFOBFYxN6nce0cpVGf4XuZrEg51YxHWhLCSOt28TXkeJa/XM51RXe+Vg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0E/TSJ4/CVWvqg/sIkoN1Bc+TDBYdsoBTkTcWD4FXls=; b=Ylvma1zm2D/7QaQqqAUB2Xpi1iLEpc/M/i4PdznJ3Da0k8+RKRn7ObgpBkMV9VnHTPgUCKnhjPung6bdOKgskd27Zhy6EGp8BNL8FbLiPq+tXb8+yuZR/ymimWVy3/HZfdLJEx6SO0RoGvCi6GiXCBRfRFTj2lf/i5GLjPWAO+CeiVK8LB6KI04VLYdAjh5PF+hbqUl8cmKS2PdJuQMo8SNzqQ8VuUy3i9IhozcgG1n0y0d5IOu5P/pa6A5Pw6xzP5i/8iVTT7pAJjetPWb4gBoACDHP8XAcaQLRts+Dv89Kz5wJimqTQl6q00Xq5O4bj2Yvd2v2PVidEc0i0q79oQ== Received: from DS7PR03CA0181.namprd03.prod.outlook.com (2603:10b6:5:3b6::6) by MN0PR12MB5834.namprd12.prod.outlook.com (2603:10b6:208:379::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Tue, 31 Mar 2026 10:24:13 +0000 Received: from DS3PEPF0000C380.namprd04.prod.outlook.com (2603:10b6:5:3b6:cafe::66) by DS7PR03CA0181.outlook.office365.com (2603:10b6:5:3b6::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue, 31 Mar 2026 10:24:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C380.mail.protection.outlook.com (10.167.23.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:13 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:03 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:03 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:23:59 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R , Frank Li Subject: [PATCH v6 04/10] dmaengine: tegra: Make reset control optional Date: Tue, 31 Mar 2026 15:52:57 +0530 Message-ID: <20260331102303.33181-5-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C380:EE_|MN0PR12MB5834:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d7ccb5b-f0e0-490e-03af-08de8f0fa7d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|7416014|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: WPa3lXIKNcUrVCIJuB9waxCww+6y5UvLsKwxtMCsT0qiVr2y4ue5FFG5ACshjimq6uQrsUAJmYKyuCOx/FBIdN8VJfO9efn26uBV85YEKFqg7JPhG6hi8Cpv2zUCnyORrNjDkWcBT7S9/q/VwONvNa4THcfSjmOt4Y90v/C6IHsb08A+6dGR8Z1p6I3urpsPGEIVSVk8JoL7kv5YRFDPG5aYZg/mCb/zKoIrBxZz1Ynn0GAw71kAW7HL2/vJXO2UsTKf0etcYIzjfB59GYUYBbFxaDWSrC2MidA6+BgrHxtYZOagyif7jJWwmrDo3lA0MzEzXbZm2eZMKmYerwF3UOwsYS1cl93zwr6UpZ3kUigRljNxF4nC+nLPCif0bSfmHk8foAEHOlMJwqwLI7+dy72wRk/f2f9Dr9b2hZsBMBNtycsmQ8FoiKEUYylGEt7gtsQOnvZgbfK9FyBGvDQWj5df6BJsr7b4vF8PjayTDKIYFUvYM74Lyp3VimBomWvf7mPulbljCHUBYnM3+XkQYM/4V2IKEKXOrw8wyx33xA79tLe7LCU/fpyx0fijjpwWQJ/J8bzPKSLc4JTgcHGHt3tfvz2OOc/k1coWIQaBjay+u4vqu2dLGdw5s18IVLL947fJ6R45R3IKC+z/C9dx8pkQW22EK15LofxHqKjn4aPZDPcUjC8EmiEUIuS2WSD4AMWh5A8yoR4D0HejxFJYek2QzedQP8zKY1ufZL62jUmI7MoNHqDK9klySLXB6yyCAhxRbLIQFDz9OKaPPr65F+MIh1k4dRqhFGJ9+CeqU/Q2Q83NBB8TUcjlX8m+Sa0S X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(7416014)(921020)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: frqWwC1OBWLGFWtwmGRUINlEPNqUJfwxXF4EUCLLD8DZQ5tfX/oRenCc4bX+s5Z9FGroJ10BaSzqB4sjzCKIXYuq0bRbtMsyHgrvDoC+cxLZr5cqa+WVqd0bz59P0F0+df2PvexYtxIbD4veElZ3wGvzu688lKfKXz/2D86vz2EwwfxNb+zwRAw0GL0yGK3rzAHbFBiilBR2haXHwIUK4Ti3N16GpDZM1JHFkfqJQOViASSLBj4YBxyeO4JMMDiyB5y3MkHTq+PyEgcMl1D+YetvVGovilbZobxU//vMEwj5fx63/JYRfmXNyv8gFReVCZfyZYVL7HSL6z4od2HqBXs42nBI8uWsGi+ILkeThiCP+P8St8HeMDLM5DpHtXiJVRg3JACZFDk442CTV72zITjHkfMpzOpwbk1DStt9/2wJFkUmlCOGtjavsW7yoxH4 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:13.4797 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0d7ccb5b-f0e0-490e-03af-08de8f0fa7d2 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C380.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5834 Content-Type: text/plain; charset="utf-8" On Tegra264, reset is not available for the driver to control as this is handled by the boot firmware. Hence make the reset control optional and update the error message to reflect the correct error. Signed-off-by: Akhil R Reviewed-by: Frank Li Reviewed-by: Jon Hunter --- drivers/dma/tegra186-gpc-dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index 5948fbf32c21..a0522a992ebc 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -1381,10 +1381,10 @@ static int tegra_dma_probe(struct platform_device *= pdev) if (IS_ERR(tdma->base_addr)) return PTR_ERR(tdma->base_addr); =20 - tdma->rst =3D devm_reset_control_get_exclusive(&pdev->dev, "gpcdma"); + tdma->rst =3D devm_reset_control_get_optional_exclusive(&pdev->dev, "gpcd= ma"); if (IS_ERR(tdma->rst)) { return dev_err_probe(&pdev->dev, PTR_ERR(tdma->rst), - "Missing controller reset\n"); + "Failed to get controller reset\n"); } reset_control_reset(tdma->rst); =20 --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011025.outbound.protection.outlook.com [40.107.208.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A46653ED5A2; Tue, 31 Mar 2026 10:24:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952674; cv=fail; b=WNmTt/37bHZdEcDMWex7miLeCaaP2Z1oVaWZt83vm8mm/GSmsGK15M5PxvyI+2dVMSu2aaazjMOGMDZGozBUia9rRDyfvEuMR63eGTf8f/0I4RItUkAA7ej8EWKD6WfBNEE/KtsiKLlFI5eHsXk0Wi0HCgFoTG8uv6Xl5jJMDEA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952674; c=relaxed/simple; bh=B7XblN7s9HPvksPjnk+M4nT3M3Kif8DJwQoywMQ3JBE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tmsGbmbSbss/E9jJcBm65c+A3SwD3yAxuA5PZH+DlG5pYpAZJheJeivzYSUh+m4ykBmxgjPvVWj4phNabWLXzbjzAoL9F1lTBBR4UxOYpmyWTBJuq+u+yPcT5wZ982qQjKEGadpZ/jo/iC7IrRz8lI4nd8OF12pTwo7sN/0GW1I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=rGGBYbRm; arc=fail smtp.client-ip=40.107.208.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="rGGBYbRm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cc0W+pvop6uz1h4TQjOhgEiuO60DJetMlGpSO6HOgWoauGD2JAUFRzhPExpBwvrAQsN7V9I69M1LKJNlhwEu3I0ft2xUTxsGK8Y7NPovmInr8NvA1aOPTRrrwxaPYPsOzbAlBJ5jZIZcS0A5y26cfrN4yGUdZRrKLY2sRkyBT03RowEr5pG1r9XKd3yind8vRY3pTsbFVifIeNCHfoPyn9zErF9sPHQgTBOCuCZumE+ae1CSbFDVJFP462B8u33mSlwp9s9tXt1fB1vxhBEi69blnRWrVp1pDYutgcJKiX7utsJJu4BQuvtiuOCFd4CEte6M+JxF17ov+/7jTlJzkw== 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=bcgqoLz13KFmKN3mR2UjKBEjCv+/Rw+s2cWv2ER+IHo=; b=PgSHxTpCsn082C2dmGD+WAAxHRY/N8eGOTQeGJjQhzOvvg8JACyEkIAV2P6PhCpRGFWoVhiw5Y3raySh6vQWL0RDLzCIlm5ZI0Xg0p6SCTIVV0fjrHgYhTINMTh33HLAbZK4EzPvvtHKoqlAbWZVrfae7IdkplVKFNw1j2EPCh5qdD0wR3zzTSHDTH2E1YaDldgXjrrbBIHU+o6NLg5Omafd9Tp7hnYKd1rTVX4f3nYA2AkSf4l2qf4QM75cbzkVdJB8DoC+5FYCyA2bhGk1+duArnxUC6ZHStIuzxGB3wb+h9bPT0XbFhs0SmOHFcjZ2njOfil/657RyZA/W7+v3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bcgqoLz13KFmKN3mR2UjKBEjCv+/Rw+s2cWv2ER+IHo=; b=rGGBYbRm8TIgF+NHc1IMcFt2bWy9nqpOGcRjymIlNy/93xuJZjd92HHwqZoSzvP6v0BtakFfRta8RVYT4wsa3HZc72ytETvfpvAuo2GLJWLY+7Nf+qzarswC1c3d/QmMesFKidtje3S9xA13CsuIWzL0lNLUnDO2sQEtTIPCb7YQIldyQPCFioPr8lPGjcFaA3Q9WkGcyIPgzrdeeeI1K5UEtHPrOS/wlTlB3gAi+K0T7RpiNVteg7Y6DBTp+VKusA4WWjLjjWXJr/zYetgfs82B+v40KOhtqR3Ux6CEZfInbsZtuX5bSvW5KHI2BZsn/ytTSyZnYg9xJYXAUIhEvg== Received: from DM6PR05CA0044.namprd05.prod.outlook.com (2603:10b6:5:335::13) by DM6PR12MB4154.namprd12.prod.outlook.com (2603:10b6:5:21d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:24:23 +0000 Received: from DS3PEPF0000C37C.namprd04.prod.outlook.com (2603:10b6:5:335:cafe::14) by DM6PR05CA0044.outlook.office365.com (2603:10b6:5:335::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue, 31 Mar 2026 10:24:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C37C.mail.protection.outlook.com (10.167.23.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:23 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:14 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:13 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:24:10 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R , Frank Li Subject: [PATCH v6 05/10] dmaengine: tegra: Use struct for register offsets Date: Tue, 31 Mar 2026 15:52:58 +0530 Message-ID: <20260331102303.33181-6-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37C:EE_|DM6PR12MB4154:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c5217f4-7a7b-4bf3-db7f-08de8f0fadb9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|7416014|376014|1800799024|82310400026|921020|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: azFx7m4Wff2074RH6i+xHS+z2RqITyenk9y316eflXx63MFbeFVOwn+z+dlA3sbBStZfTPRYhI54M3i37ET2y0rCM7Aee5Ma+tQ+NOV8vRCo7hDO/qS6UQDul5XoM6XmY+k6D2DUhDMrZhgBnoELZlWXpMDaPm70A5C+ku5Y6Z6LrYpUMCfEGdH5hkg8n3/r2ulrejH54D+SvpuACn9zIraRzUw959QLl2ptXQU6oVe9iTX6/Ti6M7GWz+fLrcNdAq0R9tPDNIyEnGRgMZtmrRR8jU9AqGyqDbokaT7t7n4LcVQwq7ld2CZouavdvdhClcqIy+5LQT5REGbqDjoCBL2Ct/ZDKvWx1ZpO85SsE4K4SfonBiXPTt3nqzNwIwQj9rcZ63L6VOYkKVKwJIz9ZustcQW4f7V5fTjRFaLi0EwIsXZR/y8ODb79M/aSl9OV1lM/UZ8Va9YLlMXTm9OXh36jLle0uL8D5or8L3INrdWe3c6cOeTY2DJVAqYAH1JYLtBs6J+7FQow6joHNL2AL5ixhrpWKkSvaFPCvrKQ/uVY5d7baYZcwHf9FWUmo6A4VhGT1hgLQWstErzGnDuWXj85kc9mGkYJSS2/eS55QYhkm1O8mmfvhjGGNW1QoAKozBwjbqbsrgw9uRHCjIcihTU/PxugCxLMW+qhWz3n7oro8WvAC6+U3yl5wBRaWjupPmunorYoLDCWHCX4DxL6FEnJW76hXUZLAL/VHk2N6qECZj6OmQLhkCQaHb41Q/h+8v4m8cjKHRIWJ74HgW/amVoHz0XlZaBi8Mout6QNjTJAo39qh8aJvliSkea23fYA X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(376014)(1800799024)(82310400026)(921020)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: f7mMzWI8nD2jIo0CizCX5m4x7skiajfd3lHX5UnOpb3FyU7CL/ZcM/PZ3zbe1c5N/abiVbM5YF1sb5TgLa5rqN0rKH9mLwrwukLSPfrl75j0O/8rQn7Po5Nw+gtVoSYlZTtqIVQPw92qCQGrNSDVFaYaju8E0bZYSb7LpsYvK8ZkvY3FfHqLqtLBPqQXynN7VVWKv6PZMMJXtLDCgX9YRjWcHh0sQNtMF5H7r15G8zEvzpBn7mtdWXpx3EIoLqFAmR1n0J6Jp8JR+jEC1UZZCxcs7on82u9SaVKK/izuxGaV53bnUY+HPJAGM3xcs6sCODBhW+o3NDNSWF3Dq1UYswiv64wAxR01bWcOB5Tfp1SqD6Eh9j8/U/nreBtzFynp1c9a9mCtnwY5xIy6yXWxfraLcKvwKoisJEucOnZXuXt/cIuVr1cAAaNR1a9KscuC X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:23.3541 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c5217f4-7a7b-4bf3-db7f-08de8f0fadb9 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C37C.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4154 Content-Type: text/plain; charset="utf-8" Repurpose the struct tegra_dma_channel_regs to define offsets for all the channel registers. Previously, the struct only held the register values for each transfer and was wrapped within tegra_dma_sg_req. Move the values directly into tegra_dma_sg_req and use channel_regs for storing the register offsets. Update all register reads/writes to use the struct channel_regs. This prepares for the register offset change in Tegra264. Signed-off-by: Akhil R Reviewed-by: Frank Li Reviewed-by: Jon Hunter --- drivers/dma/tegra186-gpc-dma.c | 282 +++++++++++++++++---------------- 1 file changed, 142 insertions(+), 140 deletions(-) diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index a0522a992ebc..b213c4ae07d2 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -22,7 +22,6 @@ #include "virt-dma.h" =20 /* CSR register */ -#define TEGRA_GPCDMA_CHAN_CSR 0x00 #define TEGRA_GPCDMA_CSR_ENB BIT(31) #define TEGRA_GPCDMA_CSR_IE_EOC BIT(30) #define TEGRA_GPCDMA_CSR_ONCE BIT(27) @@ -58,7 +57,6 @@ #define TEGRA_GPCDMA_CSR_WEIGHT GENMASK(13, 10) =20 /* STATUS register */ -#define TEGRA_GPCDMA_CHAN_STATUS 0x004 #define TEGRA_GPCDMA_STATUS_BUSY BIT(31) #define TEGRA_GPCDMA_STATUS_ISE_EOC BIT(30) #define TEGRA_GPCDMA_STATUS_PING_PONG BIT(28) @@ -70,22 +68,13 @@ #define TEGRA_GPCDMA_STATUS_IRQ_STA BIT(21) #define TEGRA_GPCDMA_STATUS_IRQ_TRIG_STA BIT(20) =20 -#define TEGRA_GPCDMA_CHAN_CSRE 0x008 #define TEGRA_GPCDMA_CHAN_CSRE_PAUSE BIT(31) =20 -/* Source address */ -#define TEGRA_GPCDMA_CHAN_SRC_PTR 0x00C - -/* Destination address */ -#define TEGRA_GPCDMA_CHAN_DST_PTR 0x010 - /* High address pointer */ -#define TEGRA_GPCDMA_CHAN_HIGH_ADDR_PTR 0x014 #define TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR GENMASK(7, 0) #define TEGRA_GPCDMA_HIGH_ADDR_DST_PTR GENMASK(23, 16) =20 /* MC sequence register */ -#define TEGRA_GPCDMA_CHAN_MCSEQ 0x18 #define TEGRA_GPCDMA_MCSEQ_DATA_SWAP BIT(31) #define TEGRA_GPCDMA_MCSEQ_REQ_COUNT GENMASK(30, 25) #define TEGRA_GPCDMA_MCSEQ_BURST GENMASK(24, 23) @@ -101,7 +90,6 @@ #define TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK GENMASK(6, 0) =20 /* MMIO sequence register */ -#define TEGRA_GPCDMA_CHAN_MMIOSEQ 0x01c #define TEGRA_GPCDMA_MMIOSEQ_DBL_BUF BIT(31) #define TEGRA_GPCDMA_MMIOSEQ_BUS_WIDTH GENMASK(30, 28) #define TEGRA_GPCDMA_MMIOSEQ_BUS_WIDTH_8 \ @@ -120,17 +108,7 @@ #define TEGRA_GPCDMA_MMIOSEQ_WRAP_WORD GENMASK(18, 16) #define TEGRA_GPCDMA_MMIOSEQ_MMIO_PROT GENMASK(8, 7) =20 -/* Channel WCOUNT */ -#define TEGRA_GPCDMA_CHAN_WCOUNT 0x20 - -/* Transfer count */ -#define TEGRA_GPCDMA_CHAN_XFER_COUNT 0x24 - -/* DMA byte count status */ -#define TEGRA_GPCDMA_CHAN_DMA_BYTE_STATUS 0x28 - /* Error Status Register */ -#define TEGRA_GPCDMA_CHAN_ERR_STATUS 0x30 #define TEGRA_GPCDMA_CHAN_ERR_TYPE_SHIFT 8 #define TEGRA_GPCDMA_CHAN_ERR_TYPE_MASK 0xF #define TEGRA_GPCDMA_CHAN_ERR_TYPE(err) ( \ @@ -143,16 +121,6 @@ #define TEGRA_DMA_MC_SLAVE_ERR 0xB #define TEGRA_DMA_MMIO_SLAVE_ERR 0xA =20 -/* Fixed Pattern */ -#define TEGRA_GPCDMA_CHAN_FIXED_PATTERN 0x34 - -#define TEGRA_GPCDMA_CHAN_TZ 0x38 -#define TEGRA_GPCDMA_CHAN_TZ_MMIO_PROT_1 BIT(0) -#define TEGRA_GPCDMA_CHAN_TZ_MC_PROT_1 BIT(1) - -#define TEGRA_GPCDMA_CHAN_SPARE 0x3c -#define TEGRA_GPCDMA_CHAN_SPARE_EN_LEGACY_FC BIT(16) - /* * If any burst is in flight and DMA paused then this is the time to compl= ete * on-flight burst and update DMA status register. @@ -181,18 +149,24 @@ struct tegra_dma_chip_data { unsigned int nr_channels; unsigned int channel_reg_size; unsigned int max_dma_count; + const struct tegra_dma_channel_regs *channel_regs; int (*terminate)(struct tegra_dma_channel *tdc); }; =20 /* DMA channel registers */ struct tegra_dma_channel_regs { u32 csr; - u32 src_ptr; - u32 dst_ptr; - u32 high_addr_ptr; + u32 status; + u32 csre; + u32 src; + u32 dst; + u32 high_addr; u32 mc_seq; u32 mmio_seq; u32 wcount; + u32 wxfer; + u32 wstatus; + u32 err_status; u32 fixed_pattern; }; =20 @@ -205,7 +179,14 @@ struct tegra_dma_channel_regs { */ struct tegra_dma_sg_req { unsigned int len; - struct tegra_dma_channel_regs ch_regs; + u32 csr; + u32 src; + u32 dst; + u32 high_addr; + u32 mc_seq; + u32 mmio_seq; + u32 wcount; + u32 fixed_pattern; }; =20 /* @@ -228,19 +209,20 @@ struct tegra_dma_desc { * tegra_dma_channel: Channel specific information */ struct tegra_dma_channel { - bool config_init; - char name[30]; - enum dma_transfer_direction sid_dir; - enum dma_status status; - int id; - int irq; - int slave_id; + const struct tegra_dma_channel_regs *regs; struct tegra_dma *tdma; struct virt_dma_chan vc; struct tegra_dma_desc *dma_desc; struct dma_slave_config dma_sconfig; + enum dma_transfer_direction sid_dir; + enum dma_status status; unsigned int stream_id; unsigned long chan_base_offset; + bool config_init; + char name[30]; + int id; + int irq; + int slave_id; }; =20 /* @@ -288,22 +270,22 @@ static void tegra_dma_dump_chan_regs(struct tegra_dma= _channel *tdc) { dev_dbg(tdc2dev(tdc), "DMA Channel %d name %s register dump:\n", tdc->id, tdc->name); - dev_dbg(tdc2dev(tdc), "CSR %x STA %x CSRE %x SRC %x DST %x\n", - tdc_read(tdc, TEGRA_GPCDMA_CHAN_CSR), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_STATUS), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_CSRE), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_SRC_PTR), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_DST_PTR) - ); - dev_dbg(tdc2dev(tdc), "MCSEQ %x IOSEQ %x WCNT %x XFER %x BSTA %x\n", - tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_MMIOSEQ), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_WCOUNT), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_XFER_COUNT), - tdc_read(tdc, TEGRA_GPCDMA_CHAN_DMA_BYTE_STATUS) - ); + dev_dbg(tdc2dev(tdc), "CSR %x STA %x CSRE %x\n", + tdc_read(tdc, tdc->regs->csr), + tdc_read(tdc, tdc->regs->status), + tdc_read(tdc, tdc->regs->csre)); + dev_dbg(tdc2dev(tdc), "SRC %x DST %x HI ADDR %x\n", + tdc_read(tdc, tdc->regs->src), + tdc_read(tdc, tdc->regs->dst), + tdc_read(tdc, tdc->regs->high_addr)); + dev_dbg(tdc2dev(tdc), "MCSEQ %x IOSEQ %x WCNT %x XFER %x WSTA %x\n", + tdc_read(tdc, tdc->regs->mc_seq), + tdc_read(tdc, tdc->regs->mmio_seq), + tdc_read(tdc, tdc->regs->wcount), + tdc_read(tdc, tdc->regs->wxfer), + tdc_read(tdc, tdc->regs->wstatus)); dev_dbg(tdc2dev(tdc), "DMA ERR_STA %x\n", - tdc_read(tdc, TEGRA_GPCDMA_CHAN_ERR_STATUS)); + tdc_read(tdc, tdc->regs->err_status)); } =20 static int tegra_dma_sid_reserve(struct tegra_dma_channel *tdc, @@ -377,13 +359,13 @@ static int tegra_dma_pause(struct tegra_dma_channel *= tdc) int ret; u32 val; =20 - val =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_CSRE); + val =3D tdc_read(tdc, tdc->regs->csre); val |=3D TEGRA_GPCDMA_CHAN_CSRE_PAUSE; - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSRE, val); + tdc_write(tdc, tdc->regs->csre, val); =20 /* Wait until busy bit is de-asserted */ ret =3D readl_relaxed_poll_timeout_atomic(tdc->tdma->base_addr + - tdc->chan_base_offset + TEGRA_GPCDMA_CHAN_STATUS, + tdc->chan_base_offset + tdc->regs->status, val, !(val & TEGRA_GPCDMA_STATUS_BUSY), TEGRA_GPCDMA_BURST_COMPLETE_TIME, @@ -419,9 +401,9 @@ static void tegra_dma_resume(struct tegra_dma_channel *= tdc) { u32 val; =20 - val =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_CSRE); + val =3D tdc_read(tdc, tdc->regs->csre); val &=3D ~TEGRA_GPCDMA_CHAN_CSRE_PAUSE; - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSRE, val); + tdc_write(tdc, tdc->regs->csre, val); =20 tdc->status =3D DMA_IN_PROGRESS; } @@ -456,27 +438,27 @@ static void tegra_dma_disable(struct tegra_dma_channe= l *tdc) { u32 csr, status; =20 - csr =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_CSR); + csr =3D tdc_read(tdc, tdc->regs->csr); =20 /* Disable interrupts */ csr &=3D ~TEGRA_GPCDMA_CSR_IE_EOC; =20 /* Disable DMA */ csr &=3D ~TEGRA_GPCDMA_CSR_ENB; - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSR, csr); + tdc_write(tdc, tdc->regs->csr, csr); =20 /* Clear interrupt status if it is there */ - status =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_STATUS); + status =3D tdc_read(tdc, tdc->regs->status); if (status & TEGRA_GPCDMA_STATUS_ISE_EOC) { dev_dbg(tdc2dev(tdc), "%s():clearing interrupt\n", __func__); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_STATUS, status); + tdc_write(tdc, tdc->regs->status, status); } } =20 static void tegra_dma_configure_next_sg(struct tegra_dma_channel *tdc) { struct tegra_dma_desc *dma_desc =3D tdc->dma_desc; - struct tegra_dma_channel_regs *ch_regs; + struct tegra_dma_sg_req *sg_req; int ret; u32 val; =20 @@ -488,29 +470,29 @@ static void tegra_dma_configure_next_sg(struct tegra_= dma_channel *tdc) =20 /* Configure next transfer immediately after DMA is busy */ ret =3D readl_relaxed_poll_timeout_atomic(tdc->tdma->base_addr + - tdc->chan_base_offset + TEGRA_GPCDMA_CHAN_STATUS, + tdc->chan_base_offset + tdc->regs->status, val, (val & TEGRA_GPCDMA_STATUS_BUSY), 0, TEGRA_GPCDMA_BURST_COMPLETION_TIMEOUT); if (ret) return; =20 - ch_regs =3D &dma_desc->sg_req[dma_desc->sg_idx].ch_regs; + sg_req =3D &dma_desc->sg_req[dma_desc->sg_idx]; =20 - tdc_write(tdc, TEGRA_GPCDMA_CHAN_WCOUNT, ch_regs->wcount); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_SRC_PTR, ch_regs->src_ptr); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_DST_PTR, ch_regs->dst_ptr); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_HIGH_ADDR_PTR, ch_regs->high_addr_ptr); + tdc_write(tdc, tdc->regs->wcount, sg_req->wcount); + tdc_write(tdc, tdc->regs->src, sg_req->src); + tdc_write(tdc, tdc->regs->dst, sg_req->dst); + tdc_write(tdc, tdc->regs->high_addr, sg_req->high_addr); =20 /* Start DMA */ - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSR, - ch_regs->csr | TEGRA_GPCDMA_CSR_ENB); + tdc_write(tdc, tdc->regs->csr, + sg_req->csr | TEGRA_GPCDMA_CSR_ENB); } =20 static void tegra_dma_start(struct tegra_dma_channel *tdc) { struct tegra_dma_desc *dma_desc =3D tdc->dma_desc; - struct tegra_dma_channel_regs *ch_regs; + struct tegra_dma_sg_req *sg_req; struct virt_dma_desc *vdesc; =20 if (!dma_desc) { @@ -526,21 +508,21 @@ static void tegra_dma_start(struct tegra_dma_channel = *tdc) tegra_dma_resume(tdc); } =20 - ch_regs =3D &dma_desc->sg_req[dma_desc->sg_idx].ch_regs; + sg_req =3D &dma_desc->sg_req[dma_desc->sg_idx]; =20 - tdc_write(tdc, TEGRA_GPCDMA_CHAN_WCOUNT, ch_regs->wcount); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSR, 0); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_SRC_PTR, ch_regs->src_ptr); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_DST_PTR, ch_regs->dst_ptr); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_HIGH_ADDR_PTR, ch_regs->high_addr_ptr); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_FIXED_PATTERN, ch_regs->fixed_pattern); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_MMIOSEQ, ch_regs->mmio_seq); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_MCSEQ, ch_regs->mc_seq); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSR, ch_regs->csr); + tdc_write(tdc, tdc->regs->wcount, sg_req->wcount); + tdc_write(tdc, tdc->regs->csr, 0); + tdc_write(tdc, tdc->regs->src, sg_req->src); + tdc_write(tdc, tdc->regs->dst, sg_req->dst); + tdc_write(tdc, tdc->regs->high_addr, sg_req->high_addr); + tdc_write(tdc, tdc->regs->fixed_pattern, sg_req->fixed_pattern); + tdc_write(tdc, tdc->regs->mmio_seq, sg_req->mmio_seq); + tdc_write(tdc, tdc->regs->mc_seq, sg_req->mc_seq); + tdc_write(tdc, tdc->regs->csr, sg_req->csr); =20 /* Start DMA */ - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSR, - ch_regs->csr | TEGRA_GPCDMA_CSR_ENB); + tdc_write(tdc, tdc->regs->csr, + sg_req->csr | TEGRA_GPCDMA_CSR_ENB); } =20 static void tegra_dma_xfer_complete(struct tegra_dma_channel *tdc) @@ -601,19 +583,19 @@ static irqreturn_t tegra_dma_isr(int irq, void *dev_i= d) u32 status; =20 /* Check channel error status register */ - status =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_ERR_STATUS); + status =3D tdc_read(tdc, tdc->regs->err_status); if (status) { tegra_dma_chan_decode_error(tdc, status); tegra_dma_dump_chan_regs(tdc); - tdc_write(tdc, TEGRA_GPCDMA_CHAN_ERR_STATUS, 0xFFFFFFFF); + tdc_write(tdc, tdc->regs->err_status, 0xFFFFFFFF); } =20 spin_lock(&tdc->vc.lock); - status =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_STATUS); + status =3D tdc_read(tdc, tdc->regs->status); if (!(status & TEGRA_GPCDMA_STATUS_ISE_EOC)) goto irq_done; =20 - tdc_write(tdc, TEGRA_GPCDMA_CHAN_STATUS, + tdc_write(tdc, tdc->regs->status, TEGRA_GPCDMA_STATUS_ISE_EOC); =20 if (!dma_desc) @@ -673,10 +655,10 @@ static int tegra_dma_stop_client(struct tegra_dma_cha= nnel *tdc) * to stop DMA engine from starting any more bursts for * the given client and wait for in flight bursts to complete */ - csr =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_CSR); + csr =3D tdc_read(tdc, tdc->regs->csr); csr &=3D ~(TEGRA_GPCDMA_CSR_REQ_SEL_MASK); csr |=3D TEGRA_GPCDMA_CSR_REQ_SEL_UNUSED; - tdc_write(tdc, TEGRA_GPCDMA_CHAN_CSR, csr); + tdc_write(tdc, tdc->regs->csr, csr); =20 /* Wait for in flight data transfer to finish */ udelay(TEGRA_GPCDMA_BURST_COMPLETE_TIME); @@ -687,7 +669,7 @@ static int tegra_dma_stop_client(struct tegra_dma_chann= el *tdc) =20 ret =3D readl_relaxed_poll_timeout_atomic(tdc->tdma->base_addr + tdc->chan_base_offset + - TEGRA_GPCDMA_CHAN_STATUS, + tdc->regs->status, status, !(status & (TEGRA_GPCDMA_STATUS_CHANNEL_TX | TEGRA_GPCDMA_STATUS_CHANNEL_RX)), @@ -739,14 +721,14 @@ static int tegra_dma_get_residual(struct tegra_dma_ch= annel *tdc) unsigned int bytes_xfer, residual; u32 wcount =3D 0, status; =20 - wcount =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_XFER_COUNT); + wcount =3D tdc_read(tdc, tdc->regs->wxfer); =20 /* * Set wcount =3D 0 if EOC bit is set. The transfer would have * already completed and the CHAN_XFER_COUNT could have updated * for the next transfer, specifically in case of cyclic transfers. */ - status =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_STATUS); + status =3D tdc_read(tdc, tdc->regs->status); if (status & TEGRA_GPCDMA_STATUS_ISE_EOC) wcount =3D 0; =20 @@ -893,7 +875,7 @@ tegra_dma_prep_dma_memset(struct dma_chan *dc, dma_addr= _t dest, int value, /* Configure default priority weight for the channel */ csr |=3D FIELD_PREP(TEGRA_GPCDMA_CSR_WEIGHT, 1); =20 - mc_seq =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ); + mc_seq =3D tdc_read(tdc, tdc->regs->mc_seq); /* retain stream-id and clean rest */ mc_seq &=3D TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK; =20 @@ -916,16 +898,16 @@ tegra_dma_prep_dma_memset(struct dma_chan *dc, dma_ad= dr_t dest, int value, dma_desc->sg_count =3D 1; sg_req =3D dma_desc->sg_req; =20 - sg_req[0].ch_regs.src_ptr =3D 0; - sg_req[0].ch_regs.dst_ptr =3D dest; - sg_req[0].ch_regs.high_addr_ptr =3D + sg_req[0].src =3D 0; + sg_req[0].dst =3D dest; + sg_req[0].high_addr =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest >> 32)); - sg_req[0].ch_regs.fixed_pattern =3D value; + sg_req[0].fixed_pattern =3D value; /* Word count reg takes value as (N +1) words */ - sg_req[0].ch_regs.wcount =3D ((len - 4) >> 2); - sg_req[0].ch_regs.csr =3D csr; - sg_req[0].ch_regs.mmio_seq =3D 0; - sg_req[0].ch_regs.mc_seq =3D mc_seq; + sg_req[0].wcount =3D ((len - 4) >> 2); + sg_req[0].csr =3D csr; + sg_req[0].mmio_seq =3D 0; + sg_req[0].mc_seq =3D mc_seq; sg_req[0].len =3D len; =20 dma_desc->cyclic =3D false; @@ -961,7 +943,7 @@ tegra_dma_prep_dma_memcpy(struct dma_chan *dc, dma_addr= _t dest, /* Configure default priority weight for the channel */ csr |=3D FIELD_PREP(TEGRA_GPCDMA_CSR_WEIGHT, 1); =20 - mc_seq =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ); + mc_seq =3D tdc_read(tdc, tdc->regs->mc_seq); /* retain stream-id and clean rest */ mc_seq &=3D (TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK) | (TEGRA_GPCDMA_MCSEQ_STREAM_ID1_MASK); @@ -985,17 +967,17 @@ tegra_dma_prep_dma_memcpy(struct dma_chan *dc, dma_ad= dr_t dest, dma_desc->sg_count =3D 1; sg_req =3D dma_desc->sg_req; =20 - sg_req[0].ch_regs.src_ptr =3D src; - sg_req[0].ch_regs.dst_ptr =3D dest; - sg_req[0].ch_regs.high_addr_ptr =3D + sg_req[0].src =3D src; + sg_req[0].dst =3D dest; + sg_req[0].high_addr =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src >> 32)); - sg_req[0].ch_regs.high_addr_ptr |=3D + sg_req[0].high_addr |=3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest >> 32)); /* Word count reg takes value as (N +1) words */ - sg_req[0].ch_regs.wcount =3D ((len - 4) >> 2); - sg_req[0].ch_regs.csr =3D csr; - sg_req[0].ch_regs.mmio_seq =3D 0; - sg_req[0].ch_regs.mc_seq =3D mc_seq; + sg_req[0].wcount =3D ((len - 4) >> 2); + sg_req[0].csr =3D csr; + sg_req[0].mmio_seq =3D 0; + sg_req[0].mc_seq =3D mc_seq; sg_req[0].len =3D len; =20 dma_desc->cyclic =3D false; @@ -1049,7 +1031,7 @@ tegra_dma_prep_slave_sg(struct dma_chan *dc, struct s= catterlist *sgl, if (flags & DMA_PREP_INTERRUPT) csr |=3D TEGRA_GPCDMA_CSR_IE_EOC; =20 - mc_seq =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ); + mc_seq =3D tdc_read(tdc, tdc->regs->mc_seq); /* retain stream-id and clean rest */ mc_seq &=3D TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK; =20 @@ -1096,14 +1078,14 @@ tegra_dma_prep_slave_sg(struct dma_chan *dc, struct= scatterlist *sgl, dma_desc->bytes_req +=3D len; =20 if (direction =3D=3D DMA_MEM_TO_DEV) { - sg_req[i].ch_regs.src_ptr =3D mem; - sg_req[i].ch_regs.dst_ptr =3D apb_ptr; - sg_req[i].ch_regs.high_addr_ptr =3D + sg_req[i].src =3D mem; + sg_req[i].dst =3D apb_ptr; + sg_req[i].high_addr =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (mem >> 32)); } else if (direction =3D=3D DMA_DEV_TO_MEM) { - sg_req[i].ch_regs.src_ptr =3D apb_ptr; - sg_req[i].ch_regs.dst_ptr =3D mem; - sg_req[i].ch_regs.high_addr_ptr =3D + sg_req[i].src =3D apb_ptr; + sg_req[i].dst =3D mem; + sg_req[i].high_addr =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (mem >> 32)); } =20 @@ -1111,10 +1093,10 @@ tegra_dma_prep_slave_sg(struct dma_chan *dc, struct= scatterlist *sgl, * Word count register takes input in words. Writing a value * of N into word count register means a req of (N+1) words. */ - sg_req[i].ch_regs.wcount =3D ((len - 4) >> 2); - sg_req[i].ch_regs.csr =3D csr; - sg_req[i].ch_regs.mmio_seq =3D mmio_seq; - sg_req[i].ch_regs.mc_seq =3D mc_seq; + sg_req[i].wcount =3D ((len - 4) >> 2); + sg_req[i].csr =3D csr; + sg_req[i].mmio_seq =3D mmio_seq; + sg_req[i].mc_seq =3D mc_seq; sg_req[i].len =3D len; } =20 @@ -1186,7 +1168,7 @@ tegra_dma_prep_dma_cyclic(struct dma_chan *dc, dma_ad= dr_t buf_addr, size_t buf_l =20 mmio_seq |=3D FIELD_PREP(TEGRA_GPCDMA_MMIOSEQ_WRAP_WORD, 1); =20 - mc_seq =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ); + mc_seq =3D tdc_read(tdc, tdc->regs->mc_seq); /* retain stream-id and clean rest */ mc_seq &=3D TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK; =20 @@ -1217,24 +1199,24 @@ tegra_dma_prep_dma_cyclic(struct dma_chan *dc, dma_= addr_t buf_addr, size_t buf_l for (i =3D 0; i < period_count; i++) { mmio_seq |=3D get_burst_size(tdc, burst_size, slave_bw, len); if (direction =3D=3D DMA_MEM_TO_DEV) { - sg_req[i].ch_regs.src_ptr =3D mem; - sg_req[i].ch_regs.dst_ptr =3D apb_ptr; - sg_req[i].ch_regs.high_addr_ptr =3D + sg_req[i].src =3D mem; + sg_req[i].dst =3D apb_ptr; + sg_req[i].high_addr =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (mem >> 32)); } else if (direction =3D=3D DMA_DEV_TO_MEM) { - sg_req[i].ch_regs.src_ptr =3D apb_ptr; - sg_req[i].ch_regs.dst_ptr =3D mem; - sg_req[i].ch_regs.high_addr_ptr =3D + sg_req[i].src =3D apb_ptr; + sg_req[i].dst =3D mem; + sg_req[i].high_addr =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (mem >> 32)); } /* * Word count register takes input in words. Writing a value * of N into word count register means a req of (N+1) words. */ - sg_req[i].ch_regs.wcount =3D ((len - 4) >> 2); - sg_req[i].ch_regs.csr =3D csr; - sg_req[i].ch_regs.mmio_seq =3D mmio_seq; - sg_req[i].ch_regs.mc_seq =3D mc_seq; + sg_req[i].wcount =3D ((len - 4) >> 2); + sg_req[i].csr =3D csr; + sg_req[i].mmio_seq =3D mmio_seq; + sg_req[i].mc_seq =3D mc_seq; sg_req[i].len =3D len; =20 mem +=3D len; @@ -1304,11 +1286,28 @@ static struct dma_chan *tegra_dma_of_xlate(struct o= f_phandle_args *dma_spec, return chan; } =20 +static const struct tegra_dma_channel_regs tegra186_reg_offsets =3D { + .csr =3D 0x0, + .status =3D 0x4, + .csre =3D 0x8, + .src =3D 0xc, + .dst =3D 0x10, + .high_addr =3D 0x14, + .mc_seq =3D 0x18, + .mmio_seq =3D 0x1c, + .wcount =3D 0x20, + .wxfer =3D 0x24, + .wstatus =3D 0x28, + .err_status =3D 0x30, + .fixed_pattern =3D 0x34, +}; + static const struct tegra_dma_chip_data tegra186_dma_chip_data =3D { .nr_channels =3D 32, .channel_reg_size =3D SZ_64K, .max_dma_count =3D SZ_1G, .hw_support_pause =3D false, + .channel_regs =3D &tegra186_reg_offsets, .terminate =3D tegra_dma_stop_client, }; =20 @@ -1317,6 +1316,7 @@ static const struct tegra_dma_chip_data tegra194_dma_= chip_data =3D { .channel_reg_size =3D SZ_64K, .max_dma_count =3D SZ_1G, .hw_support_pause =3D true, + .channel_regs =3D &tegra186_reg_offsets, .terminate =3D tegra_dma_pause, }; =20 @@ -1325,6 +1325,7 @@ static const struct tegra_dma_chip_data tegra234_dma_= chip_data =3D { .channel_reg_size =3D SZ_64K, .max_dma_count =3D SZ_1G, .hw_support_pause =3D true, + .channel_regs =3D &tegra186_reg_offsets, .terminate =3D tegra_dma_pause_noerr, }; =20 @@ -1345,7 +1346,7 @@ MODULE_DEVICE_TABLE(of, tegra_dma_of_match); =20 static int tegra_dma_program_sid(struct tegra_dma_channel *tdc, int stream= _id) { - unsigned int reg_val =3D tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ); + unsigned int reg_val =3D tdc_read(tdc, tdc->regs->mc_seq); =20 reg_val &=3D ~(TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK); reg_val &=3D ~(TEGRA_GPCDMA_MCSEQ_STREAM_ID1_MASK); @@ -1353,7 +1354,7 @@ static int tegra_dma_program_sid(struct tegra_dma_cha= nnel *tdc, int stream_id) reg_val |=3D FIELD_PREP(TEGRA_GPCDMA_MCSEQ_STREAM_ID0_MASK, stream_id); reg_val |=3D FIELD_PREP(TEGRA_GPCDMA_MCSEQ_STREAM_ID1_MASK, stream_id); =20 - tdc_write(tdc, TEGRA_GPCDMA_CHAN_MCSEQ, reg_val); + tdc_write(tdc, tdc->regs->mc_seq, reg_val); return 0; } =20 @@ -1419,6 +1420,7 @@ static int tegra_dma_probe(struct platform_device *pd= ev) tdc->chan_base_offset =3D TEGRA_GPCDMA_CHANNEL_BASE_ADDR_OFFSET + i * cdata->channel_reg_size; snprintf(tdc->name, sizeof(tdc->name), "gpcdma.%d", i); + tdc->regs =3D cdata->channel_regs; tdc->tdma =3D tdma; tdc->id =3D i; tdc->slave_id =3D -1; --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010024.outbound.protection.outlook.com [40.93.198.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F12383ED5A2; Tue, 31 Mar 2026 10:24:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952689; cv=fail; b=b5zDslMpvrKsIK6lmC5WgLrbBxhmE2xnRvgwmVe00zD+oRiF7MmPMmLSjTjaCeDld2DPHKbbCVQhYmvfdg2gj6g3TvJOHVC8EfIQheC2aCE/0Pm+MmwYrqv77xlQWI9YjJOdhJmvvZMSt0t4RZAEvSLxhkHbNhJr1IDafAnzTF8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952689; c=relaxed/simple; bh=SQJ7VMOdztBN8VEoQ/woCNTKLz4Zb3vzMDtFm/Pnv/Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EI3pW745LEI12fEyHSo2N8AJgBKamKHUhHA4TeO6L5nbOBvoIQo0Vn1SzieqdQpEE05PVGBxgWWhoPuxevEx2YFYaHMT5onK/CQBIuEquXdnWcE/49wrwEuXu9+Z4MZaiM3CA2VPOdgynfvwiKpB4c2u25iV2Qo+Eqc2EuIuiFk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=WC2ozWKg; arc=fail smtp.client-ip=40.93.198.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="WC2ozWKg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bCezfv9woTfZuImU12QcOH6fz2W7Gml1VkgWk+AW9ajfDRwE+ArqFeAlnFimX5mIppkhlfoSFg1QdXBqm0mGDi47shFPdRrQL3HXfmBS4GrmTv9LEc32LnGZtK7YNyB8JROL8BtmWBb4wc4+OLOR1+7tEuU91/hniZW1ip8sTM4M8/L9Qe7cVTZkRnu245+Bg4Xwz+JNFsvxxpn7NmuSgvx/NhLgEf9j84MeegLUnbof8vdppIc4hF6InIeHFpddz/N0KrwNjmUC8EdPlqm42WtruX56F9Nh1YzNzzq58Hur2DGe62S3ZViWM2fPzPX81C6oo4Z/b+uQ+cChqLA+Ww== 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=vVnz7TKYYKTyGo33p2hmPXlgiheHRvP1btHDWx1JjFc=; b=M2E+kcMWGgcmfj+wo6sA6VFjKkf5CovPH5IN8qM2ii4hdJnVcR6MeTVwZA1atJ6qG0DKZqWAzHLwfYvxszKS+2BM3uRgKDz4egPSajcJNQbkVhzKLRPWAqRFfE6ibM00o5btxMp4WNaXmaOYKIYSgdeXA5OMAemiNOksUHWrevklQoV9+2R9OBia9Fl8xZxk/Ogqfm6iTQUNBZID1BWQ76erolj2fviY8PMwcj+khZNZlsLNYeyYT1Cstp9s2EKBSXRQ+TkgRlYR4Hh9Y2cQvVauMnH+9afvdTQAen0zafBu+/Y6nfqQNCM449+vw3LDJQhutj6uzmj5bgaLrmYDpQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vVnz7TKYYKTyGo33p2hmPXlgiheHRvP1btHDWx1JjFc=; b=WC2ozWKguxhYGFD1/X/hT+COE50+NX+/4aKBoLHtvpLIj94YGZLzR/j/rD8MogwCZewg54OGr5ycnwphhh/JD9Go+8UiSGnhk4C/Rc1AUbxYPmcnDLNX2yEKBrrnU/apKjMfmmhLTpn9RdkmgNyCOPI3IZoFvGUo/5rlDtatUaaxD8vHy17QRPn2cuvX9tMQqIK2ZDkt+inu8/99hHLKO4oG4wusMqUOvRQR5z85sioCwetItIOQAys5rSM50KThVFBkbpAVhQo00LnP3ToJ56sIRrfaYoAdJwi+jAiAuufSWgMXN5HDW4j87LbfBkBPJuU0md0tKnjbceXC0k3m4w== Received: from CH5PR03CA0007.namprd03.prod.outlook.com (2603:10b6:610:1f1::25) by CH2PR12MB9494.namprd12.prod.outlook.com (2603:10b6:610:27f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:24:39 +0000 Received: from DS3PEPF0000C37A.namprd04.prod.outlook.com (2603:10b6:610:1f1:cafe::a6) by CH5PR03CA0007.outlook.office365.com (2603:10b6:610:1f1::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Tue, 31 Mar 2026 10:24:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C37A.mail.protection.outlook.com (10.167.23.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:38 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:28 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:27 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:24:23 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R , Frank Li Subject: [PATCH v6 06/10] dmaengine: tegra: Support address width > 39 bits Date: Tue, 31 Mar 2026 15:52:59 +0530 Message-ID: <20260331102303.33181-7-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37A:EE_|CH2PR12MB9494:EE_ X-MS-Office365-Filtering-Correlation-Id: f9039f29-7eb0-4ffd-7add-08de8f0fb6e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|7416014|376014|921020|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: Xtpe2vAz92Q6AkoCpwi96FEWGoCgoFUqrJzU62vNDnzOc7Y61oOOulnlw8T7unaY0d9wnR+zupuaa2qUrns1q2GJ6NHYPUIXcTNtWdd1+cCJplOIReivr2sIT21zVVdQvKsgtXauLwbnuuVcSuOViHuy02HGcReW9FdwO2przbRdydpptyPPXTUsBtzf3b/+GeRL8b2U0zxJlcLEudijA+W0soMrExQmMe2FobG81Rae8MBM9zZS5O0ARHpha8OSauIIaZ8sbYlw72MB44m5qzPx3dK8iJpKyQwwxeFGban0iE5Hx/3CGFTdFxzAE25b6a1YJK+WXfZj526LDmEnX33xbYmFk418CsuomFTl4JlaweAkTuVf8YLGeBlrcE3hIwFIVHp0Lbx2maQCG5EIrTGY76zRCJr9GhiVHCspcG0z1x7tQXUqfxDJdOFiOlAsn9EXr24MvmBsn4PhIF9iJkUZFeFqWwRWOfupD5nH8yvZW49UWMyUOcXpOljsG8M1umVZuEfMQ5/LxzDshZ6X41Oe486zFPdfsnJ7JLT7XOe+SfawTIM6LmvPiPmUt9O0vvdvY3IIkXoiByl9Ypz8RIaLo3xzZNlUIe7tyzHDsUV3iUi5H1vHJbI515uCNR6Ly0GMx/RkhoKW9rdapROUEUrXMop//hnVYOClJu3yIf7LoTCORX/so7xK+JH4rqO+QszcXR8AOXm89Q4wZBeCqkyB285A5fnUjJJ57Yeaw+eqU87y9eGnLJ59UrBHQDglOuQzee4InAL6K9il3VpIlEj6muaer1k/cRzArkB2QDZMlNLUHaRw6A7H1GJvZxAQ X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(7416014)(376014)(921020)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: kVITx9l/SJcg6RlEuB8VD8nyNMP3X699/0RZulhQcAv11FLiapTJ8r/sraLpVXsF9cB/ACxwHTM8as1Qv5yDHZfLHZKM8qZBKVgATbKAzAhxR7lrSngaQgeTjAWlLTJFEz9cGcUB4vM0JnCwmuQ2BzKiRrdT3zNr3Tx/Cuy2bTDPz8Sp534vANh8nql7CTsz5/ce65BcSM45VizdtL51xnTs+HWA2or0aiQvnvB7ykFtlQAfj/Qo31G17/l0Nm04iyVXUOPHogGQmQnZPLrf2DYDzWyQW99Wb3m5c/dqOWt3Hyir7mD5xsJ4VOCmaf9ArhZmCcLkNJuyQh/2+BVuzOQ3NP6iPh4hodkJgqVuRxCTWUK6E2PZ7TwXpXnZCJXfcT774pVH/kJrBFsYEKtAdsc+Gl0whUqJbJj3fiyDhxgAsObkQuu9Q52p2Jgr/PUK X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:38.7379 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f9039f29-7eb0-4ffd-7add-08de8f0fb6e4 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C37A.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB9494 Content-Type: text/plain; charset="utf-8" Tegra264 supports address width of 41 bits. Unlike older SoCs which use a common high_addr register for upper address bits, Tegra264 has separate src_high and dst_high registers to accommodate this wider address space. Add an addr_bits property to the device data structure to specify the number of address bits supported on each device and use that to program the appropriate registers. Update the sg_req struct to remove the high_addr field and use dma_addr_t for src and dst to store the complete addresses. Extract the high address bits only when programming the registers. Signed-off-by: Akhil R Reviewed-by: Frank Li Reviewed-by: Jon Hunter --- drivers/dma/tegra186-gpc-dma.c | 83 +++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 31 deletions(-) diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index b213c4ae07d2..3ac43ad19ed6 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -146,6 +146,7 @@ struct tegra_dma_channel; */ struct tegra_dma_chip_data { bool hw_support_pause; + unsigned int addr_bits; unsigned int nr_channels; unsigned int channel_reg_size; unsigned int max_dma_count; @@ -161,6 +162,8 @@ struct tegra_dma_channel_regs { u32 src; u32 dst; u32 high_addr; + u32 src_high; + u32 dst_high; u32 mc_seq; u32 mmio_seq; u32 wcount; @@ -179,10 +182,9 @@ struct tegra_dma_channel_regs { */ struct tegra_dma_sg_req { unsigned int len; + dma_addr_t src; + dma_addr_t dst; u32 csr; - u32 src; - u32 dst; - u32 high_addr; u32 mc_seq; u32 mmio_seq; u32 wcount; @@ -266,6 +268,25 @@ static inline struct device *tdc2dev(struct tegra_dma_= channel *tdc) return tdc->vc.chan.device->dev; } =20 +static void tegra_dma_program_addr(struct tegra_dma_channel *tdc, + struct tegra_dma_sg_req *sg_req) +{ + tdc_write(tdc, tdc->regs->src, lower_32_bits(sg_req->src)); + tdc_write(tdc, tdc->regs->dst, lower_32_bits(sg_req->dst)); + + if (tdc->tdma->chip_data->addr_bits > 39) { + tdc_write(tdc, tdc->regs->src_high, upper_32_bits(sg_req->src)); + tdc_write(tdc, tdc->regs->dst_high, upper_32_bits(sg_req->dst)); + } else { + u32 src_high =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, + upper_32_bits(sg_req->src)); + u32 dst_high =3D FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, + upper_32_bits(sg_req->dst)); + + tdc_write(tdc, tdc->regs->high_addr, src_high | dst_high); + } +} + static void tegra_dma_dump_chan_regs(struct tegra_dma_channel *tdc) { dev_dbg(tdc2dev(tdc), "DMA Channel %d name %s register dump:\n", @@ -274,10 +295,20 @@ static void tegra_dma_dump_chan_regs(struct tegra_dma= _channel *tdc) tdc_read(tdc, tdc->regs->csr), tdc_read(tdc, tdc->regs->status), tdc_read(tdc, tdc->regs->csre)); - dev_dbg(tdc2dev(tdc), "SRC %x DST %x HI ADDR %x\n", - tdc_read(tdc, tdc->regs->src), - tdc_read(tdc, tdc->regs->dst), - tdc_read(tdc, tdc->regs->high_addr)); + + if (tdc->tdma->chip_data->addr_bits > 39) { + dev_dbg(tdc2dev(tdc), "SRC %x SRC HI %x DST %x DST HI %x\n", + tdc_read(tdc, tdc->regs->src), + tdc_read(tdc, tdc->regs->src_high), + tdc_read(tdc, tdc->regs->dst), + tdc_read(tdc, tdc->regs->dst_high)); + } else { + dev_dbg(tdc2dev(tdc), "SRC %x DST %x HI ADDR %x\n", + tdc_read(tdc, tdc->regs->src), + tdc_read(tdc, tdc->regs->dst), + tdc_read(tdc, tdc->regs->high_addr)); + } + dev_dbg(tdc2dev(tdc), "MCSEQ %x IOSEQ %x WCNT %x XFER %x WSTA %x\n", tdc_read(tdc, tdc->regs->mc_seq), tdc_read(tdc, tdc->regs->mmio_seq), @@ -480,9 +511,7 @@ static void tegra_dma_configure_next_sg(struct tegra_dm= a_channel *tdc) sg_req =3D &dma_desc->sg_req[dma_desc->sg_idx]; =20 tdc_write(tdc, tdc->regs->wcount, sg_req->wcount); - tdc_write(tdc, tdc->regs->src, sg_req->src); - tdc_write(tdc, tdc->regs->dst, sg_req->dst); - tdc_write(tdc, tdc->regs->high_addr, sg_req->high_addr); + tegra_dma_program_addr(tdc, sg_req); =20 /* Start DMA */ tdc_write(tdc, tdc->regs->csr, @@ -510,11 +539,9 @@ static void tegra_dma_start(struct tegra_dma_channel *= tdc) =20 sg_req =3D &dma_desc->sg_req[dma_desc->sg_idx]; =20 + tegra_dma_program_addr(tdc, sg_req); tdc_write(tdc, tdc->regs->wcount, sg_req->wcount); tdc_write(tdc, tdc->regs->csr, 0); - tdc_write(tdc, tdc->regs->src, sg_req->src); - tdc_write(tdc, tdc->regs->dst, sg_req->dst); - tdc_write(tdc, tdc->regs->high_addr, sg_req->high_addr); tdc_write(tdc, tdc->regs->fixed_pattern, sg_req->fixed_pattern); tdc_write(tdc, tdc->regs->mmio_seq, sg_req->mmio_seq); tdc_write(tdc, tdc->regs->mc_seq, sg_req->mc_seq); @@ -819,7 +846,7 @@ static unsigned int get_burst_size(struct tegra_dma_cha= nnel *tdc, =20 static int get_transfer_param(struct tegra_dma_channel *tdc, enum dma_transfer_direction direction, - u32 *apb_addr, + dma_addr_t *apb_addr, u32 *mmio_seq, u32 *csr, unsigned int *burst_size, @@ -897,11 +924,9 @@ tegra_dma_prep_dma_memset(struct dma_chan *dc, dma_add= r_t dest, int value, dma_desc->bytes_req =3D len; dma_desc->sg_count =3D 1; sg_req =3D dma_desc->sg_req; - sg_req[0].src =3D 0; sg_req[0].dst =3D dest; - sg_req[0].high_addr =3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest >> 32)); + sg_req[0].fixed_pattern =3D value; /* Word count reg takes value as (N +1) words */ sg_req[0].wcount =3D ((len - 4) >> 2); @@ -969,10 +994,7 @@ tegra_dma_prep_dma_memcpy(struct dma_chan *dc, dma_add= r_t dest, =20 sg_req[0].src =3D src; sg_req[0].dst =3D dest; - sg_req[0].high_addr =3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (src >> 32)); - sg_req[0].high_addr |=3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (dest >> 32)); + /* Word count reg takes value as (N +1) words */ sg_req[0].wcount =3D ((len - 4) >> 2); sg_req[0].csr =3D csr; @@ -992,7 +1014,8 @@ tegra_dma_prep_slave_sg(struct dma_chan *dc, struct sc= atterlist *sgl, struct tegra_dma_channel *tdc =3D to_tegra_dma_chan(dc); unsigned int max_dma_count =3D tdc->tdma->chip_data->max_dma_count; enum dma_slave_buswidth slave_bw =3D DMA_SLAVE_BUSWIDTH_UNDEFINED; - u32 csr, mc_seq, apb_ptr =3D 0, mmio_seq =3D 0; + u32 csr, mc_seq, mmio_seq =3D 0; + dma_addr_t apb_ptr =3D 0; struct tegra_dma_sg_req *sg_req; struct tegra_dma_desc *dma_desc; struct scatterlist *sg; @@ -1080,13 +1103,9 @@ tegra_dma_prep_slave_sg(struct dma_chan *dc, struct = scatterlist *sgl, if (direction =3D=3D DMA_MEM_TO_DEV) { sg_req[i].src =3D mem; sg_req[i].dst =3D apb_ptr; - sg_req[i].high_addr =3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (mem >> 32)); } else if (direction =3D=3D DMA_DEV_TO_MEM) { sg_req[i].src =3D apb_ptr; sg_req[i].dst =3D mem; - sg_req[i].high_addr =3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (mem >> 32)); } =20 /* @@ -1110,7 +1129,8 @@ tegra_dma_prep_dma_cyclic(struct dma_chan *dc, dma_ad= dr_t buf_addr, size_t buf_l unsigned long flags) { enum dma_slave_buswidth slave_bw =3D DMA_SLAVE_BUSWIDTH_UNDEFINED; - u32 csr, mc_seq, apb_ptr =3D 0, mmio_seq =3D 0, burst_size; + u32 csr, mc_seq, mmio_seq =3D 0, burst_size; + dma_addr_t apb_ptr =3D 0; unsigned int max_dma_count, len, period_count, i; struct tegra_dma_channel *tdc =3D to_tegra_dma_chan(dc); struct tegra_dma_desc *dma_desc; @@ -1201,13 +1221,9 @@ tegra_dma_prep_dma_cyclic(struct dma_chan *dc, dma_a= ddr_t buf_addr, size_t buf_l if (direction =3D=3D DMA_MEM_TO_DEV) { sg_req[i].src =3D mem; sg_req[i].dst =3D apb_ptr; - sg_req[i].high_addr =3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_SRC_PTR, (mem >> 32)); } else if (direction =3D=3D DMA_DEV_TO_MEM) { sg_req[i].src =3D apb_ptr; sg_req[i].dst =3D mem; - sg_req[i].high_addr =3D - FIELD_PREP(TEGRA_GPCDMA_HIGH_ADDR_DST_PTR, (mem >> 32)); } /* * Word count register takes input in words. Writing a value @@ -1304,6 +1320,7 @@ static const struct tegra_dma_channel_regs tegra186_r= eg_offsets =3D { =20 static const struct tegra_dma_chip_data tegra186_dma_chip_data =3D { .nr_channels =3D 32, + .addr_bits =3D 39, .channel_reg_size =3D SZ_64K, .max_dma_count =3D SZ_1G, .hw_support_pause =3D false, @@ -1313,6 +1330,7 @@ static const struct tegra_dma_chip_data tegra186_dma_= chip_data =3D { =20 static const struct tegra_dma_chip_data tegra194_dma_chip_data =3D { .nr_channels =3D 32, + .addr_bits =3D 39, .channel_reg_size =3D SZ_64K, .max_dma_count =3D SZ_1G, .hw_support_pause =3D true, @@ -1322,6 +1340,7 @@ static const struct tegra_dma_chip_data tegra194_dma_= chip_data =3D { =20 static const struct tegra_dma_chip_data tegra234_dma_chip_data =3D { .nr_channels =3D 32, + .addr_bits =3D 39, .channel_reg_size =3D SZ_64K, .max_dma_count =3D SZ_1G, .hw_support_pause =3D true, @@ -1433,6 +1452,8 @@ static int tegra_dma_probe(struct platform_device *pd= ev) tdc->stream_id =3D stream_id; } =20 + dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(cdata->addr_bits)); + dma_cap_set(DMA_SLAVE, tdma->dma_dev.cap_mask); dma_cap_set(DMA_PRIVATE, tdma->dma_dev.cap_mask); dma_cap_set(DMA_MEMCPY, tdma->dma_dev.cap_mask); --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011006.outbound.protection.outlook.com [52.101.57.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 93D433ECBC3; Tue, 31 Mar 2026 10:24:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952698; cv=fail; b=dVennS90rWBZqnt3QSQcCP4/tzN+CIGLDdhtvjxbkHcTVlb685opb5SNN01UnXAAT/3JD6rfBywWyHPbWjFg0o4mw1Jtbk0Jgd9b7nMqzqt0WzN+36/4oh7yB4VrhtD96NJYytpESu34i0+zlEa7UeRmOXLutbg51JvWiGPD+MU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952698; c=relaxed/simple; bh=Er2RRwu1u3oKOS3YC2aaM4wUjBHuUHQTytGBNX25oZA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=RVhqFyWj4TE8OlcMIYdmHYjacF5msm7QbTcQS//LsgOK3WUsWrTMhAjLPCZ7A7tpfmTxzhh1cZ/j3fjvjOHtbfDxlVURuD1fyDzbae5AATNSAf6br4kuJTVMVlHhIYEgMFpX8kt94+Cd9k+HScdsknKnF3mMNuDKjFUeQJvx3jM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=KjXhkZJO; arc=fail smtp.client-ip=52.101.57.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="KjXhkZJO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A8dwwieOzUV+V4XkKRwzdX3iBF6bSlRs3Odv1wUOZqm6gZEaFXhoId8vjyoqHVErYff+U5lAj2i5VD0xFRmBQw9QbdlVwadI81C0FsxJQznnKGdrFOO80srItbJ+UuSYnbOqWWjJdU1y2cfUbS7oo8dHmvNVuIenJtVp8s3qfi/jxw2NwvkBzFxzMxNLPKRhv1B/ozHy4UDeZe81xHsxKhZXkmDOn4tIEATAFLYbyZk1iIjFI5F1V55K9W8UyQh5VyiQMjTr5BtH6XA6g2DXoyhL2WRtsCLwBydUoWl268F3qU9RB3pQ2r4qUx27lfyccAukWp3aU97jOnmY1C+wRA== 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=NnQOQpqDrVK75f38aGwZwUolWtEicpOiR9xr7UsTKpI=; b=Qee7nNYblHwAUtG9I80b99CVcBBJe5NoDkJfwLKzk3Hp0/CkqfL/XFL85ykSGYxlWs8YOLlhOtQy7iJZSNjm9Bh31klUo0udBKSgt+AzxzlZGbNXPQYWsXSsCbUaF8DsgplsMSVpSNv3FvJ47B0SVC9S1zWb4D0GX0DunMUp4vYaICk9O8B/00o9Dh0qBEzrJw51OpzQpkveYV9dFeI7yS2fOWJb9Hh18VM3dyfOzOrrsHTsI37cYikl58X5M2+GHUfTBiDN19D+aZlOgZyXOw8j1Dz1KaJWoYJUkcKlIkTRWecC3j+y4MhpbCcPG7K0uEkpHkgpT6yeDNTZ8e2P7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NnQOQpqDrVK75f38aGwZwUolWtEicpOiR9xr7UsTKpI=; b=KjXhkZJOzhszhMBOcIvIk1gI9DmiA6ES44yFsrxFkpj5Ah0r6h5a7sR82l0YHGN/gvqACGyY+nH5v7HJb7mGET2aFVhDWrS4tb4N8zimIDDoWTzz0clqdunDo7toIxMINHEy7tGmA0nBI0mkYLwOUs6KYPoj1ATllaJEKXn4ipOQrSh9PNL3+fZYXGP6rGaC+C4MiHuqxbIyJkw1dCtbG/G+yIsKNpv8AUjy9j1f8/WCJ9UdDHEmuf0GTq+/+My4q1y6UWccG0AhUz37jNGNaYZkzb2OHVbwKNVTntesfsGO7amJr/rISq125VK6tEVL6nFKHSzkvJZnQkJStatIEA== Received: from BL1PR13CA0349.namprd13.prod.outlook.com (2603:10b6:208:2c6::24) by CH3PR12MB9220.namprd12.prod.outlook.com (2603:10b6:610:198::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:24:52 +0000 Received: from BL6PEPF0001AB75.namprd02.prod.outlook.com (2603:10b6:208:2c6:cafe::9) by BL1PR13CA0349.outlook.office365.com (2603:10b6:208:2c6::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.15 via Frontend Transport; Tue, 31 Mar 2026 10:24:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by BL6PEPF0001AB75.mail.protection.outlook.com (10.167.242.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:51 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:36 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:35 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:24:32 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R , Frank Li Subject: [PATCH v6 07/10] dmaengine: tegra: Use managed DMA controller registration Date: Tue, 31 Mar 2026 15:53:00 +0530 Message-ID: <20260331102303.33181-8-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB75:EE_|CH3PR12MB9220:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ab5a669-c60f-4c30-0bde-08de8f0fbec8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|56012099003|18002099003|22082099003|921020; X-Microsoft-Antispam-Message-Info: PIJJYZpzUD75YynEwB+E51LTAevFtQ9kFPy4ypeYAzvXNMj2aNmeTaZDoweP3/CeDCjyGtqBTecRBkdX+kAtn3xWfNICc3cfJJwA5DUPcVdHG4fnwo9Z+YmVaDwCiLme7lzwq2eCXcnsPU27xUG6wCeq5nFbkBJqsB4SkLiEKYEk2eI/Z5eyXx4LkqT4lMHz4fVSQdNh2lABC4aZoxEzV/+iYPt69foTOXhWX23tPp4iqSZuZEkFERodT1i5gWvNqO6dvVM560xyK3RB+G4a8vF503O5VoBBvaf7tbzMHpfoG+NTgwZWtghxMpfIRW33Bhmzs9WxO0JqzA4yz7BNRAa2v+F4BoQ7tq4kCFQoc7Hxa4bGIaRp7aauYMwV0KxuWrEGoXuuR1C4WxtN/toujHvOLi5j7W5DkaYyXesyLbCauoWxie/v0vBPrfOJxC8oR+yofz8ZPVCW3JfxrobBj9OeHTgRM+YcPu0hxoTY76WnOuA605ZIGIKLVGX3wxDqE7jaJOSbRoWFFWwSYWm/VW3n9x2LgZdzCmjTEufCoBQHmhgNXJvUfxfPN9wRGGeG+1h/5RV2r2slvnTboKm0rp19r0ZZRjCYmqOQB8egC8xhPX1TTt6vSGfuMugN1AKQ6rlGHOM5cKSilPdsW72U2dku+x+8pJtN+o9oqWwpD7GQFxnL1fZUHjuO6Yvb53AzqDXaEw4m3EUBEzbcHNyRiSNDP5GkI7hu8v2e8j6I5ywOGaWzHnulKon2+3w/l1FnnnUt14GO9P9gjmIWBBxGGPnHo5cv/aPwc/dEMDA+WPWKI9v9UKXYB5SzAIn3XDDo X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(1800799024)(82310400026)(56012099003)(18002099003)(22082099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JtjNktPlyvUtD0RapRQQ3Ah3+7LxTJdk4jeuGgmelt3cbc4Dbv2MmiypIgGdLAloDlidFMcwAWbs+Pxt37TJIP6fl5s9hEMurj8DNaF3ATDxBLbdSzcdY+x2saocU2r1vF82H0fHK+eWsYCgusR6qopq2vOdupqrqbC4lWXQ9WaQvGEVuV0linqWtyC8mNlalbK5dc9X0ENXGqlfCt2UX+s43eXNMj6i9EkEo421vkjoXeehkfjxAGmkDWORFEXulA8oL2NRPokTw/r4k67aBXopDLfA+YrtphRNmET/spQaH9G22DEJMOcy8mP44sjZiwMspH3TP9yBFiaX5Qmv9Ety5unPrCh7JCSopyR41wvaq2L87P5RixKRSUpJIhTnd5+YIgGdK50sMqbitLb2QQY0YDWMuRrFwAQIItxCnL60zeZ6HUcJc+JSeWZAdQCC X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:51.9218 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ab5a669-c60f-4c30-0bde-08de8f0fbec8 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB75.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9220 Content-Type: text/plain; charset="utf-8" Switch to managed registration in probe. This simplifies the error paths in the probe and also removes the requirement of the driver remove function. Signed-off-by: Akhil R Suggested-by: Frank Li Reviewed-by: Jon Hunter --- drivers/dma/tegra186-gpc-dma.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index 3ac43ad19ed6..9bea2ffb3b9e 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -1483,37 +1483,27 @@ static int tegra_dma_probe(struct platform_device *= pdev) tdma->dma_dev.device_synchronize =3D tegra_dma_chan_synchronize; tdma->dma_dev.residue_granularity =3D DMA_RESIDUE_GRANULARITY_BURST; =20 - ret =3D dma_async_device_register(&tdma->dma_dev); + ret =3D dmaenginem_async_device_register(&tdma->dma_dev); if (ret < 0) { dev_err_probe(&pdev->dev, ret, "GPC DMA driver registration failed\n"); return ret; } =20 - ret =3D of_dma_controller_register(pdev->dev.of_node, - tegra_dma_of_xlate, tdma); + ret =3D devm_of_dma_controller_register(&pdev->dev, pdev->dev.of_node, + tegra_dma_of_xlate, tdma); if (ret < 0) { dev_err_probe(&pdev->dev, ret, "GPC DMA OF registration failed\n"); - - dma_async_device_unregister(&tdma->dma_dev); return ret; } =20 - dev_info(&pdev->dev, "GPC DMA driver register %lu channels\n", + dev_info(&pdev->dev, "GPC DMA driver registered %lu channels\n", hweight_long(tdma->chan_mask)); =20 return 0; } =20 -static void tegra_dma_remove(struct platform_device *pdev) -{ - struct tegra_dma *tdma =3D platform_get_drvdata(pdev); - - of_dma_controller_free(pdev->dev.of_node); - dma_async_device_unregister(&tdma->dma_dev); -} - static int __maybe_unused tegra_dma_pm_suspend(struct device *dev) { struct tegra_dma *tdma =3D dev_get_drvdata(dev); @@ -1564,7 +1554,6 @@ static struct platform_driver tegra_dma_driver =3D { .of_match_table =3D tegra_dma_of_match, }, .probe =3D tegra_dma_probe, - .remove =3D tegra_dma_remove, }; =20 module_platform_driver(tegra_dma_driver); --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011007.outbound.protection.outlook.com [40.107.208.7]) (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 14E673EDAAF; Tue, 31 Mar 2026 10:25:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952709; cv=fail; b=cRlSyTzxobK69NC/ojRtAe9sbPXhQwymDB/kQTkez5N811zwMRgyF0h3mFs3ny75ZQYJRTf6pmskckSx8tFK+SsUNWgvPmeu/h1vPsg2rMnZabOKTMG3y/hbbbrX4tpGY/7SlKGdOux0Kda4r5qLRwRvExsTAmuZ7Vgs+s66IPE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952709; c=relaxed/simple; bh=OM5BEsJMn9MdTnYaXLqqGwpVfkzAWgapdjHwKGili9s=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eYFxEITBSz6yyBh1KbGTFshn3ZhI8lOFuaoohUuhkVB1yDrylOJWJgU1v2p5pf132nP9HmvxE4ZzNejAnpXl9Gia+fLOyXeR9Ai7lNh2mgdFBbWrCPRtTAGCUbcH7LpzuEojqeQ6I72bXmazVLuREf277YSTjhTI7AM3HpA6b1A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ZEygUXLV; arc=fail smtp.client-ip=40.107.208.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ZEygUXLV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hErH4fXQwE/OENb9D0KCiz/8Fg827pHf63e7hNDNEffrCf8aMiV0IulhjnOvSQUu7YBK62qNYiPagjBoMj1MSFoVlEVB+uQtwvk0CBww29aJfn7903ItfebaiYFvBAyMchpSWOswF34VYgq9BFKFBBdQVA7UJMCle/blea00MWZhL+KrcMraSW7w1//paACZArIz5wJasnPLWIiM5NXqiStIyYtbZWF4Geov5P7vESWO5eWaq6f4sW3R6+4rFQXJvOFueH6DcxmkRM3+LUSClWK7FMx0njYTbvHnvhs/+fIMBPYw1kiudLCJxs3MMaBGvWpgZPOZo2PZ5V1j1lZJEg== 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=/Nca36bDpJgZPPkBqyrYycJ5tYt0634axG2dvgcFpGw=; b=RR3nS6T8sG2S2IShoooEGv33il66TF3KFGuD4E/3CYtyvWWLYkctBRrJeFxiDTMwOYx5YZNx3Uc7IDi/Ebn1jegbqj+7rh2lQ3pDjKePv4m4lVCmYcJyUPVkcWvSRIJRv0/Z8CO2TpUEIeQvW4onPelnFU8u2tumTzWNIYB1JqwwA6VhMy1Y2VDHnjH7Pn5chxD9eVltdzwsmsCW0gzU8ZrkxxJscwUQbQsqfnZeBLMYEqcX1ruz2+0t6hy1etPu90PR+lqlcbbBqIq19MgjkdN19dkIdzA5HSP1HvTBMrtB24H2MMfMEjUA4Q2yGuNcS7L7FM+ukN7azM/uC96fLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/Nca36bDpJgZPPkBqyrYycJ5tYt0634axG2dvgcFpGw=; b=ZEygUXLVX+OOvgpjOCq4Gj8aKMODyUhFSCAk5korwh4NlFqROfdoYQJPjnjkeun9Fw224cdboSihNK5TImZMgg6J1hyIl25wBo0R9yNNWvMWQeNsdkXHzjR2Jo2iql680CWthwzOC0sOMBF0IoQfqib0f0pjJdN+i6oO4woc3aAH4HpFx390aALNhOmM9OFjKYD+emysDukvg50MELZi06Q9PI92i1ksEUW6TvoEkZJjj+MY+YvAJTcu6QAKuiwOvvUTX84vREMQduh91QUqKmrLTP3Iwf5xgBegSqZvAzrG91fC/TcsNHYRHQq+D6jPWT0uiDxUIwV/1lIg17bVeQ== Received: from CH0PR03CA0181.namprd03.prod.outlook.com (2603:10b6:610:e4::6) by SA5PPFDC35F96D4.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8e5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:24:56 +0000 Received: from DS3PEPF0000C37F.namprd04.prod.outlook.com (2603:10b6:610:e4:cafe::f7) by CH0PR03CA0181.outlook.office365.com (2603:10b6:610:e4::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue, 31 Mar 2026 10:24:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C37F.mail.protection.outlook.com (10.167.23.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:24:56 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:47 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:46 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:24:42 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R Subject: [PATCH v6 08/10] dmaengine: tegra: Use iommu-map for stream ID Date: Tue, 31 Mar 2026 15:53:01 +0530 Message-ID: <20260331102303.33181-9-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37F:EE_|SA5PPFDC35F96D4:EE_ X-MS-Office365-Filtering-Correlation-Id: c2317ab6-f6f5-41b9-5109-08de8f0fc149 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|18002099003|56012099003|22082099003|921020; X-Microsoft-Antispam-Message-Info: d85k5mWC5R/DYkz6M+sgSbwXScYWDKL5lcop5LgEi/YP0MAoggaWquCo3SuTmZULoEUjyk0H4tmz+3rn9qAMudIKVyHcotOig8zEThRwq+8GIXbOVvKKDryL8vne2WzCzrKPqx6Akk383SUMvj80ri63jmRQDdk1sKzT/nn1BcOFgMRQCoaSMjhdnV+Yitx+ed9lJbNMkAkYvQbhQgNmMoNmTmpf91wvYKsymkkdP0qGjOTFErkWYT49p2Bh+otPOQPuZ8VtXvWtH2VviJfe9Bx1HoPNdKkXU2jHkuYMA/yFCLVk7RXyyL1Q8aEyURv1/L+nEVwiem+u1y5n4akzY6NFMmLslvZ/WypG+07+kVAQ7sblAuiD/Zc85UfLPxTBJkKQnBa0EPo8qc383w63G1t/SsUEAIbtb+Mu256Y4pUOxLGK8QVyaM35j8mu2rJ5qiLSTBC8huWNOpjgNOzWKft/nTEnw2nNbSj0J8LYVy/o8Y2Pd+8u1xSvbdECdjwdJlDbemIev0eF5Pm0XjGOTYB5dngAEotowQXpgUIKBSZxoJ5k84MAtqPCgZXftxgGSS/3Pio0Lmd1QXIupa3dh6H9rVxAiTc8NMahnlS7Yh4wtk9Ncs5vSbtxdowjKIEcgbmRsIM6wNX/zfiktBU8VK6tE/nQk2lWEDHk0dJfUIPeXQIO7x91jeaigiYbVG4MEaa1r3QvS6FuP8hhgHhOh8r4f53UCHQMsVrxJ3dMi9B3r3JCUfX0kETzDteJE20Kcz9ve34zr1vkvvCYoa5Yo/YnZMai6xKtxpP8QZmG0/wPg02WTSNTEjhAkO4ZG230 X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(1800799024)(82310400026)(18002099003)(56012099003)(22082099003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EAdmcBxV43ZybosSxjytJ+GjWHEGNMeua/82fh3H6VE56IulTD3mnz6+HGEPo9vjBCCyhrV4UWRRPYcTnyhXUqNIx7NRhsNJfWKUf+CX905tBgsd5BPs5i5eE+0y3gzoPEYzYDFQyaQIRM6BETvDmQN9n8tcHQkIAtEmdqkFvkCFB/f+hT1+++Lo0S4zusONL/LPzk1ZjlTFc51jKuS1PJk1scUOddzzfJ1ii6bRxoL/WUXcR2ncDjCKmlPBa0SVdn5b2P4qN3RDlCS1zW+e9uWyCbZVqGruIadIe3CnqVxyDvcWwWqSE4D672KbaEtXjw12ubyssnxiZHM2SywpBpsIyf5fXR5+NUi9VGScG87FoSmgRnCGtxJzwxp9dLxyULYx/1lAlDH+8KPSW16I1tAcrlRrqEGknlEKNTD+GRGKOKYdnq+8BZxGqv2oMln3 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:24:56.1781 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c2317ab6-f6f5-41b9-5109-08de8f0fc149 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C37F.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFDC35F96D4 Content-Type: text/plain; charset="utf-8" Use 'iommu-map', when provided, to get the stream ID to be programmed for each channel. Iterate over the channels registered and configure each channel device separately using of_dma_configure_id() to allow it to use a separate IOMMU domain for the transfer. However, do this in a second loop since the first loop populates the DMA device channels list and async_device_register() registers the channels. Both are prerequisites for using the channel device in the next loop. Channels will continue to use the same global stream ID if the 'iommu-map' property is not present in the device tree. Signed-off-by: Akhil R Reviewed-by: Jon Hunter --- drivers/dma/tegra186-gpc-dma.c | 53 ++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index 9bea2ffb3b9e..cd480d047204 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -1380,9 +1381,13 @@ static int tegra_dma_program_sid(struct tegra_dma_ch= annel *tdc, int stream_id) static int tegra_dma_probe(struct platform_device *pdev) { const struct tegra_dma_chip_data *cdata =3D NULL; + struct tegra_dma_channel *tdc; + struct tegra_dma *tdma; + struct dma_chan *chan; + struct device *chdev; + bool use_iommu_map =3D false; unsigned int i; u32 stream_id; - struct tegra_dma *tdma; int ret; =20 cdata =3D of_device_get_match_data(&pdev->dev); @@ -1410,9 +1415,10 @@ static int tegra_dma_probe(struct platform_device *p= dev) =20 tdma->dma_dev.dev =3D &pdev->dev; =20 - if (!tegra_dev_iommu_get_stream_id(&pdev->dev, &stream_id)) { - dev_err(&pdev->dev, "Missing iommu stream-id\n"); - return -EINVAL; + use_iommu_map =3D of_property_present(pdev->dev.of_node, "iommu-map"); + if (!use_iommu_map) { + if (!tegra_dev_iommu_get_stream_id(&pdev->dev, &stream_id)) + return dev_err_probe(&pdev->dev, -EINVAL, "Missing iommu stream-id\n"); } =20 ret =3D device_property_read_u32(&pdev->dev, "dma-channel-mask", @@ -1424,9 +1430,10 @@ static int tegra_dma_probe(struct platform_device *p= dev) tdma->chan_mask =3D TEGRA_GPCDMA_DEFAULT_CHANNEL_MASK; } =20 + /* Initialize vchan for each channel and populate the channels list */ INIT_LIST_HEAD(&tdma->dma_dev.channels); for (i =3D 0; i < cdata->nr_channels; i++) { - struct tegra_dma_channel *tdc =3D &tdma->channels[i]; + tdc =3D &tdma->channels[i]; =20 /* Check for channel mask */ if (!(tdma->chan_mask & BIT(i))) @@ -1446,10 +1453,6 @@ static int tegra_dma_probe(struct platform_device *p= dev) =20 vchan_init(&tdc->vc, &tdma->dma_dev); tdc->vc.desc_free =3D tegra_dma_desc_free; - - /* program stream-id for this channel */ - tegra_dma_program_sid(tdc, stream_id); - tdc->stream_id =3D stream_id; } =20 dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(cdata->addr_bits)); @@ -1483,6 +1486,7 @@ static int tegra_dma_probe(struct platform_device *pd= ev) tdma->dma_dev.device_synchronize =3D tegra_dma_chan_synchronize; tdma->dma_dev.residue_granularity =3D DMA_RESIDUE_GRANULARITY_BURST; =20 + /* Register the DMA device and the channels */ ret =3D dmaenginem_async_device_register(&tdma->dma_dev); if (ret < 0) { dev_err_probe(&pdev->dev, ret, @@ -1490,6 +1494,37 @@ static int tegra_dma_probe(struct platform_device *p= dev) return ret; } =20 + /* + * Configure stream ID for each channel from the channels registered + * above. This is done in a separate iteration to ensure that only + * the channels available and registered for the DMA device are used. + */ + list_for_each_entry(chan, &tdma->dma_dev.channels, device_node) { + chdev =3D &chan->dev->device; + tdc =3D to_tegra_dma_chan(chan); + + if (use_iommu_map) { + chdev->bus =3D pdev->dev.bus; + dma_coerce_mask_and_coherent(chdev, DMA_BIT_MASK(cdata->addr_bits)); + + ret =3D of_dma_configure_id(chdev, pdev->dev.of_node, + true, &tdc->id); + if (ret) + return dev_err_probe(chdev, ret, + "Failed to configure IOMMU for channel %d\n", tdc->id); + + if (!tegra_dev_iommu_get_stream_id(chdev, &stream_id)) + return dev_err_probe(chdev, -EINVAL, + "Failed to get stream ID for channel %d\n", tdc->id); + + chan->dev->chan_dma_dev =3D true; + } + + /* program stream-id for this channel */ + tegra_dma_program_sid(tdc, stream_id); + tdc->stream_id =3D stream_id; + } + ret =3D devm_of_dma_controller_register(&pdev->dev, pdev->dev.of_node, tegra_dma_of_xlate, tdma); if (ret < 0) { --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011058.outbound.protection.outlook.com [52.101.57.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 569E03EDADB; Tue, 31 Mar 2026 10:25:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.57.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952717; cv=fail; b=pFkVednzmepz8BrjIr7VV1+HxrcjqDqQ/0cZRJGbiscGHgJWW7vOTbObEGWqn1HrpfdgN03J/aNceVPquREGAZHkV4VFw+yCQPJPYy5Pq/jULt04ixXsXOHZx99iPZN+XTKiwCFZoEZbkD2S08eSJr5Vdiy3a7eUHrinW0M0dnQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952717; c=relaxed/simple; bh=7NN+fCy3ciAgXr87buPM0i0enxwIfLoR6U+BS0kMvmE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eO26SZO/WfmHH8aZtaLk8ExZS2knuNP0zeOUw27ZlazmLIjhhHDHUHSCk/j25QbMtv7T6QTiF5O5PHaVWOpQv/Ks+eRbmejBuDcK8WNPqiXqxPLsoEstmsDAI3+T1C1a6GLp/jUZzI5pFG1HdwNc9vkfKFps62Yc/w2wOQBPM9s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=AyPJHN4f; arc=fail smtp.client-ip=52.101.57.58 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="AyPJHN4f" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U8DcV3gWyVNGfy/VBEciQvPyRsP5+WfgneyQc08xE99/vNu29jjb++HZc3NSMJ4f8ReM9Zv2WelmoBDjfysFR7QmybhsKskRXE6dMltmxGELmHESSwNRj+Q8jiuRxuxT0VGpu86Kf19zbTe4gy3vhoykim40oNZ6U4oz2cG+N567ScXzPU3W95PZuOFuw5tW0KM+OpkVt5trrEXoZFWFFq8PAvkIXwSZhLI3WlkpeKhvO47ukjTJy7XNrA+q1Ad12vM11/P5wewtB8QkynALwZ2ncXdCSeXExS0Kd4tb6m4gVyXcLTPE5DVU5oV4XHfECqXMfMiwoDWWzd8C4uqnGQ== 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=NNb43pydXc7/NV/3gCGMgrCtYLx0sBD0PiqmxKkP4g0=; b=xZjE25em63WnizS/M324FkHN2BvESPuQ6+NnDBra141yRKtWR/8aH0I72iGgfyL4sQao9Fq/5B8iuVrSpcPzdjWoGayGQyoP0sKRL9dhbXCwbKRYtueWsb/mVJq6QfyDGhJ7RAo6whAyVmRMvUK3Z1ONmtygD0DnbMuVzxPNfOZJ6j2DjhTKSgRTp3kgskpoU/AP37imeuvNQdahVWnlLntbCtBWu3b+SqcMhWHiujxk3u9LUn5IDHSkVl8LAa/RWYmgP8UAlOp9AqhF2OH2zRL4BwTAs25g/94N74ib/oaV6Yf025HX8scrShTMRZvMLACzAvPLdJKgFwcpqHm4hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NNb43pydXc7/NV/3gCGMgrCtYLx0sBD0PiqmxKkP4g0=; b=AyPJHN4fmyzN4Cb/3fo/GRSig8N48iZjNbkoazvHOB6bQMWcQaIxstbbfL0w8ns7XRGw9SXhESvY4L1l5CbRkGcEoWKaJBrZpkynq4FdhcjQAM8Ze4x9MfZ/75QEyfFw5gWD2q/g+tv6ZSjRF2byDAl+CP+rtgPtDsHWFpnV+3SH8by4ekBsJCWjKh6AdFAhL35eUKgT3cFBKfqgOfsoDC6UxxVeNuE57gnnflwagn5ofm04CEgqQPsy+VqMxZI9hcBQogUao7ZYyMfc6yKnCGVCmC/+eVuK6Q8mzbyUVB35fVovtClzwLKkL7QxHZ9tuWo+vzPBoKIHIbD9WqEl1Q== Received: from CH2PR16CA0015.namprd16.prod.outlook.com (2603:10b6:610:50::25) by CH3PR12MB9080.namprd12.prod.outlook.com (2603:10b6:610:1a7::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar 2026 10:25:10 +0000 Received: from CH1PEPF0000A347.namprd04.prod.outlook.com (2603:10b6:610:50:cafe::a2) by CH2PR16CA0015.outlook.office365.com (2603:10b6:610:50::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue, 31 Mar 2026 10:24:57 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CH1PEPF0000A347.mail.protection.outlook.com (10.167.244.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:25:08 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:56 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:24:55 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:24:52 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R , Frank Li Subject: [PATCH v6 09/10] dmaengine: tegra: Add Tegra264 support Date: Tue, 31 Mar 2026 15:53:02 +0530 Message-ID: <20260331102303.33181-10-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000A347:EE_|CH3PR12MB9080:EE_ X-MS-Office365-Filtering-Correlation-Id: f265344b-71c4-450c-7882-08de8f0fc8c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|7416014|82310400026|376014|1800799024|921020|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: xkAttQnssvyO09t4TMN9slLFogpLzffSuM3OJyBIN/pUt2nsoq6RyZWc22Vg7WT+Aja+uRZsICRxAG0TU4cS61bUa2UrKwm5cLpUhUchCODVHi/a/ACAr28bCIQTPfMLrej/camG8VK67E8+n3+V5A6XKeWG8lIxkuvQREM6/12gbbkl/WmWwtHNxH2TziYAQiGsRHhnIC4mhH14EffrBoJ4xsajUwaJrSaQSDZavaLzDPRyIIdBYDGmqepH4Gd4DK5phi/Vj17yfyNwp5AJdpembhxFHVF8btK3eDFd12bWH0lDtwj+GqM3c0Pr7s6OyqRRrM7GraXqZmVvVrFYMzq4AP9MUpSK6RuZgdWJ8Q/UT5TxuYj34ydgXpGV2CFWkYvtDpiVYFcUGJkEHPeP00ZV++BGL7i7ZBb7WqaNrHN1WJ64Sgh+4XZ/OyceiPmLO73nv3BlI/LFl+Cw3jJSPTG2gBLEOY7lUlvrH/YjKvslNkp0tuSoHusCtyg4CyDogM5fnswARfS8iWQm4IMFcn0dlapS8v+ymxHjlkadEGvnqHxAVbVHNGCl6vrceZDSqRbaMSU3dSaxj4hRYtHapFrAqyX5yKVmWUOUIlvip9wbb2sEqa815X42ttEKt/xU3qFPrDnCGNhmjuhBrVs0H7bygmtJ3XR2JGg9AcCnLLR6KvecVWD+dInmZSwWCzwAUsEzDYRSMHZBidJcvVK/VOQn7NqLSOBeEL011u9aY0JFvUeROD/xmNW8Q8M/oqTkgcuEKKMwRW/4tslbCR8+Ok6xFNAVT0EDWSBMi3ojop5XnDyMDFUkAn+tOtF572pB X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(82310400026)(376014)(1800799024)(921020)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +GRJNWlk8QwR8Ldh5K5oKC0dVg/ag+bXD5d2ZDVhLiC8fa2Zzr025AUSvzl2MNqLkqOBfVj6TBeAml6hzPf+9DNWMPHPs/TLowGG1fiFcKDD0K/3hfAiwFmkrBDcqL+wrNFAwmsuY+uWQM3CKPF8t0ANMdGiQoR+JJJgmga6SagYi/sSy2iQHDsdVU4FeL25nvZm5dgrk+W69nCchIvxxTszQLw2+2HcY35SSRsNyLvCyWEs9Yzc4hymLj77mRsz+ZUrOfA/SO62CYZZM1QzqIXhhJ55NxoakHiOWG11BNIKNpkegWLNulplaSp4fWJRkRVXs+o/sa2roqpb1O8dleB7yWr7CHQzNZS8YluEFrFlfCPOpnW49/0cHn5OTPKmZRsu/PzUCKVdOTqrkRvthgf9zW3MU6syeVTWW0r8m8vjPbOvAtGGgYneUQLeaOIi X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:25:08.7375 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f265344b-71c4-450c-7882-08de8f0fc8c6 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000A347.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9080 Content-Type: text/plain; charset="utf-8" Add compatible and chip data to support GPCDMA in Tegra264, which has differences in register layout and address bits compared to previous versions. Signed-off-by: Akhil R Reviewed-by: Frank Li Reviewed-by: Jon Hunter --- drivers/dma/tegra186-gpc-dma.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index cd480d047204..2383a2fe73f1 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -1319,6 +1319,23 @@ static const struct tegra_dma_channel_regs tegra186_= reg_offsets =3D { .fixed_pattern =3D 0x34, }; =20 +static const struct tegra_dma_channel_regs tegra264_reg_offsets =3D { + .csr =3D 0x0, + .status =3D 0x4, + .csre =3D 0x8, + .src =3D 0xc, + .dst =3D 0x10, + .src_high =3D 0x14, + .dst_high =3D 0x18, + .mc_seq =3D 0x1c, + .mmio_seq =3D 0x20, + .wcount =3D 0x24, + .wxfer =3D 0x28, + .wstatus =3D 0x2c, + .err_status =3D 0x34, + .fixed_pattern =3D 0x38, +}; + static const struct tegra_dma_chip_data tegra186_dma_chip_data =3D { .nr_channels =3D 32, .addr_bits =3D 39, @@ -1349,6 +1366,16 @@ static const struct tegra_dma_chip_data tegra234_dma= _chip_data =3D { .terminate =3D tegra_dma_pause_noerr, }; =20 +static const struct tegra_dma_chip_data tegra264_dma_chip_data =3D { + .nr_channels =3D 32, + .addr_bits =3D 41, + .channel_reg_size =3D SZ_64K, + .max_dma_count =3D SZ_1G, + .hw_support_pause =3D true, + .channel_regs =3D &tegra264_reg_offsets, + .terminate =3D tegra_dma_pause_noerr, +}; + static const struct of_device_id tegra_dma_of_match[] =3D { { .compatible =3D "nvidia,tegra186-gpcdma", @@ -1359,6 +1386,9 @@ static const struct of_device_id tegra_dma_of_match[]= =3D { }, { .compatible =3D "nvidia,tegra234-gpcdma", .data =3D &tegra234_dma_chip_data, + }, { + .compatible =3D "nvidia,tegra264-gpcdma", + .data =3D &tegra264_dma_chip_data, }, { }, }; --=20 2.50.1 From nobody Wed Apr 1 09:43:44 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010061.outbound.protection.outlook.com [52.101.46.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86D713F0768; Tue, 31 Mar 2026 10:25:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952720; cv=fail; b=HLXYlQ6a+2141Kydvko5+UpmnMKM5IwsKpakHIed9f2qNg8dEmReTY/uCtLmfVpUDMrO2afNFy31AdYn/wJb312RMhEvchqP8iAPxVDwxqssRzsAzNK/FMLzHov4p8FGfUniqPv7/4vT0egUIzOuBSOmCvSHT8lkkh731DU939s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774952720; c=relaxed/simple; bh=S1s9eEL+e6ZhFAmNEYpv65ZovJCBkkZwzR7yhlLIEow=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aXVSMMVTbxXza0sUsssaIsxWt5oSol6O1o45hUW2IxMsbO9Jmm3gNAaiC/KqP3G9WlwU6GgRxjBG8UNFhLOC9PFVNRHZi6EaTXrN/zbOSAOu4rbVpzwEK5LI0z6z1Wt03sUjg+BABzKqVxdfwnN3HxkSLxBFBoPVomex8Qj/Xsc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=hJ3ofZMU; arc=fail smtp.client-ip=52.101.46.61 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="hJ3ofZMU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ElDN2b5G2L/smNmD32I1bLCkN9w7LrKGyeZ/4SLA4Az3Lih9X/1RYZy7spzaxLIoLdmq6Dvitw3Jn+Sd6bagDsANyiujDCyh0Yiq5pH/2vhwA00tksXpXOETOwOsg9LmB1WLpvYNM8am7knra72mphIg4IeX3BhPa98s2St/+QTiw7HCJhreh6+zMSfALNpafpXzSnsGlJLoDvQnacj1uhwHP5pCIK8p7l7juQXcFfYPIrnXJ3ml7m+xWfRqZ/0Otf38gOZWcm7C8CQn0mrF4jx4embmqMBDwDhVv8F4N6kTi6LDkrsVYdRg8K8zKkdtdLcmZJkJnBEgJHnh5H5ILg== 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=GrBIbZMyVZaLHD0RxJdtH7oKyBdkos2HKFAeioE4AKs=; b=HU37BzbvvZn+XBdEFzOoY8Yz2npes5wi52JTSxmB6wQNstVweRyLHW2CiBywYS3c/2851dF4jLBcJoUHUBm2pk1jQ2Xs/MFI4HSYQsvbGfFpm9oH4KRyYRzjK/g75QXEi7ZmySxPc/uf47sxfuk/QES6gVBt2akTgUFwmCGxtoz/gW0wfLi+IG0gGagl1P48XDp4oKYyf3kMJQBcEEVvZ7GwyPLlOwopaQG8dfbO+1xyqVbYFgj9ZcOeOY/D7wMm6ULVK+J+jWJWoiZrlhc/KjcvgjXCxyZU1J1Lh982Te2LAoCu63NF1QNe3WrtJguszC6FBaIDPr3kEs4AuTaVmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GrBIbZMyVZaLHD0RxJdtH7oKyBdkos2HKFAeioE4AKs=; b=hJ3ofZMUsdp5yogVsNgAVv1Okzl/qWhTdghyiN38sDJpiMxXqNJCQd1x6zfSM8f639nY6LfG8FAHQCWzkTzE5eehzVIvGevruU34oclLHagTaAR7SyXnBL/2AIhOvCaCKzj8fz4Q36TINnSHzOfhe5tbz5kD66nH4yVdzYDQIiqGFroBJsoLV0PJ0FANGYvRJVN8tbWzUqROxYAQzfsCLe4AV8aymopWP46mbJDWj6Y4JxCVM1zefymEO+GMQIsQ+yx4JrBffPRqoeAV29n3N1vcAm8dhXhgkeeRNqkY3/Fjjm4QHEtdib0iC19cT747AIyQBoW16iunIZRRR+OO1A== Received: from BL1P221CA0025.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:2c5::13) by BL4PR12MB9478.namprd12.prod.outlook.com (2603:10b6:208:58e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.14; Tue, 31 Mar 2026 10:25:16 +0000 Received: from BL6PEPF0001AB73.namprd02.prod.outlook.com (2603:10b6:208:2c5:cafe::bd) by BL1P221CA0025.outlook.office365.com (2603:10b6:208:2c5::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Tue, 31 Mar 2026 10:24:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by BL6PEPF0001AB73.mail.protection.outlook.com (10.167.242.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 10:25:16 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:25:05 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar 2026 03:25:04 -0700 Received: from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 31 Mar 2026 03:25:00 -0700 From: Akhil R To: Vinod Koul , Frank Li , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , "Jonathan Hunter" , Laxman Dewangan , Philipp Zabel , , , , CC: Akhil R Subject: [PATCH v6 10/10] arm64: tegra: Enable GPCDMA in Tegra264 and add iommu-map Date: Tue, 31 Mar 2026 15:53:03 +0530 Message-ID: <20260331102303.33181-11-akhilrajeev@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260331102303.33181-1-akhilrajeev@nvidia.com> References: <20260331102303.33181-1-akhilrajeev@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB73:EE_|BL4PR12MB9478:EE_ X-MS-Office365-Filtering-Correlation-Id: 7974bc2f-6849-4744-701b-08de8f0fcd3b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700016|921020|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: VJZ/ioB7jhKBLE0uyykjDMQttDtsH3UGwQHV0mnaXENbEslpuDtFRlBPaRr5p0dmnqpq8BdEh720NwCW3Iz4IUujS5Cau/DvOYNpS0Tpq1z+iPee1tAnSXtSXfem3dSfaKCuHRpmuH6V8QrDVeiJ/8gTJlJZjn+GvswiHyxLup10dSnJL80NyhItihx4TRnzImdh0YXEmbtUF0UENZsE4xXhvMyyQXtn/F9hjOxhcqaGPPuS1aGZlf7IVqrKxF1GVdsGAGXpQ2QD1si6Jl/wRPQAfdfBIzkmyAo4JC/x5buE9W5kdyj+bTrEw+W0H03lkmGR/42X1tClstklBwyLrp5/GMa2InmV1lZ4yqfDzvd+//8ndalpe6vtEpDxdIrg/PBsIpaHARii7s+LcfXpw4zkKQmgkUDbUqNvEp7AnAmRgdcSjMo44b4ZlMM4GIVFlrc0s6rffoZXmhaZvLnFiCQW2sHVnwV9ycBVe+kl9uJybElGm6mYlcyq8il0mi7CSARUj3XsbSMXkCEntCRXhluR303AbUNk8MEPuMSt/U6TqKV1mvuh8OHu93GB6qJCLGTKvnQzHIhs02BggvuTBVbr4PIFuK4h0NOrDX3FBfmF9VWpRUokiLZlOS1T4LoxArKhrrQkP+Ps4NERk4t1UECfejdpiQalQYDC1+FSPFUvkKqi7266TK8xZM8r3ouReZdQQkiacDhXMsy0mUMJSXHl9b5cwvWYN6fyfd3xMQk9Q1H4StBwBDZSf3JzE85ShCEb05pbpy58suWIMlmeCOqQv26zBl20Qlhbw0Gl49UgJIokkxKL4eO/WPHXlL47 X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(7416014)(376014)(36860700016)(921020)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gbZLLwqe6Hjattl3GorSYZYDflFoohkzyADEu2EFQaz+O3dUXkC8biOQ8RoporYtT4Y7oWWA6svW54A8wlkEms38nsk3ADrp6Oab9PCaSVR+iqkIinq7tJzxlOzLw+CcSvOdapTzYEXu0lVBTGtb/TLrTPD1J05jHLPLIf5Lf7JXjH4+FWHn8x1ISWBRZvLnmY3LdQ/EmxWMttAxBc6jZBPNYVEIXGiBL6+NEeL2QQhNrcej8JxFuJUVu5ZjJ/5Ln+7yriWHmUvsD4DlTu4uD1Brr+wJwpCrBE5oOJP8MX6F4HMnay8J0F0Qyp2BtJsFVjFYsbXcmWy81cdLdXPQsYfVsIhcLtMpPgtosJyvPHWEuxCZVp8bwtqUDK0FD/SmRzpLkaRYQWiTdvVU/KxBFtFhasknei2EIPlNMrXxZnE1xiqQRnbatoxdHnaGKtdJ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2026 10:25:16.1674 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7974bc2f-6849-4744-701b-08de8f0fcd3b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB73.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9478 Content-Type: text/plain; charset="utf-8" Enable GPCDMA in Tegra264 and add the iommu-map property so that each channel uses a separate stream ID and gets its own IOMMU domain for memory. Signed-off-by: Akhil R Reviewed-by: Jon Hunter --- arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi | 4 ++++ arch/arm64/boot/dts/nvidia/tegra264.dtsi | 1 + 2 files changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi b/arch/arm64/bo= ot/dts/nvidia/tegra264-p3834.dtsi index 7e2c3e66c2ab..58cd81bc33d7 100644 --- a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi @@ -9,6 +9,10 @@ aliases { }; =20 bus@0 { + dma-controller@8400000 { + status =3D "okay"; + }; + serial@c4e0000 { status =3D "okay"; }; diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts= /nvidia/tegra264.dtsi index af077420d7d9..b2f20d4b567a 100644 --- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi @@ -3244,6 +3244,7 @@ gpcdma: dma-controller@8400000 { ; #dma-cells =3D <1>; iommus =3D <&smmu1 0x00000800>; + iommu-map =3D <1 &smmu1 0x801 31>; dma-coherent; dma-channel-mask =3D <0xfffffffe>; status =3D "disabled"; --=20 2.50.1