Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2218082/?format=api
{ "id": 2218082, "url": "http://patchwork.ozlabs.org/api/patches/2218082/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/patch/20260331112347.3897841-2-amhetre@nvidia.com/", "project": { "id": 21, "url": "http://patchwork.ozlabs.org/api/projects/21/?format=api", "name": "Linux Tegra Development", "link_name": "linux-tegra", "list_id": "linux-tegra.vger.kernel.org", "list_email": "linux-tegra@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260331112347.3897841-2-amhetre@nvidia.com>", "list_archive_url": null, "date": "2026-03-31T11:23:39", "name": "[1/2] memory: tegra: Add T238 MC support", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "49b9e2ccdfbfb1787a395c51beab4d24c6386f93", "submitter": { "id": 75198, "url": "http://patchwork.ozlabs.org/api/people/75198/?format=api", "name": "Ashish Mhetre", "email": "amhetre@nvidia.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-tegra/patch/20260331112347.3897841-2-amhetre@nvidia.com/mbox/", "series": [ { "id": 498180, "url": "http://patchwork.ozlabs.org/api/series/498180/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/list/?series=498180", "date": "2026-03-31T11:23:38", "name": "memory: tegra: Add Tegra238 memory controller support", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498180/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2218082/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2218082/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-tegra+bounces-13486-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-tegra@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=XycSZCAi;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13486-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"XycSZCAi\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.209.54", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com", "smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4flQpx5rTRz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 22:28:25 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 3EF0830602C7\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 11:24:24 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 15EE03CBE6D;\n\tTue, 31 Mar 2026 11:24:24 +0000 (UTC)", "from PH8PR06CU001.outbound.protection.outlook.com\n (mail-westus3azon11012054.outbound.protection.outlook.com [40.107.209.54])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 46FED3BE153;\n\tTue, 31 Mar 2026 11:24:22 +0000 (UTC)", "from BYAPR08CA0037.namprd08.prod.outlook.com (2603:10b6:a03:117::14)\n by SJ2PR12MB9137.namprd12.prod.outlook.com (2603:10b6:a03:562::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar\n 2026 11:24:12 +0000", "from CO1PEPF00012E66.namprd05.prod.outlook.com\n (2603:10b6:a03:117:cafe::5a) by BYAPR08CA0037.outlook.office365.com\n (2603:10b6:a03:117::14) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9700.24 via Frontend Transport; Tue,\n 31 Mar 2026 11:24:12 +0000", "from mail.nvidia.com (216.228.118.233) by\n CO1PEPF00012E66.mail.protection.outlook.com (10.167.249.75) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9745.21 via Frontend Transport; Tue, 31 Mar 2026 11:24:12 +0000", "from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com\n (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 31 Mar\n 2026 04:23:56 -0700", "from drhqmail201.nvidia.com (10.126.190.180) by\n drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.20; Tue, 31 Mar 2026 04:23:55 -0700", "from build-amhetre-focal-20250829.internal (10.127.8.12) by\n mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20\n via Frontend Transport; Tue, 31 Mar 2026 04:23:55 -0700" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774956263; cv=fail;\n b=CC6AloxwGeOp5fP0URvEKYXzDxu7vskCyCXXtG5BQdDb6PO5mykQ4sLdrwFltHHfYcpp54oWMwgXoDj2NJF93MHqXdfQCBcgExVLI3hcuQKJ/KwliccMIC9lsz89MNAIsKl2nh+m3JwOZ96E1zyavGX4aYCfRYPLeeQWUuwMzO8=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=OWa+t/4EUMULhpyUMoYW40cHN28CvA0l19Lucq5TXrj1iHrnjeG6fL+FTxVQQVeNyrz7ZZR6is1ujAM52DsNi4uUU5gkcoXEht1n9wRx7eqFIGtEOQCEuBi6FDXM3MBLY4SVZFqKtt4EgUjvBEldafB0uDCw50S7Dz4nWwsrjOF04HGej3bP8Ny3zEa2k2dZlyevCrXcyUK9kyYRhd45aztmG1PAoAucOiBPahNmPIWwwUPF2VXMstJuR+G+SshngH8PeKE/GPsJvS7dnyWt01pcwD6qr9wTU2b8INPM9IU5WNJ3Q5RbZdCGUCv7HJYs9RieXSspdqOeBaKlNChiLg==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774956263; c=relaxed/simple;\n\tbh=zYParcjyVPsQKwnBbL7c9pZqZDfR+KMhhaHV89SUqUE=;\n\th=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=bQOZZ8y7sx/aw3AY7Q9xDrmvOZG2ft0/uhJ0j9XJ+ES8qpt019a0fRBrqNnnQ65uxYP+Zq36ZNNoVpT7yhYhd35VFG2FPWwPk9NNn1/ari2XuLKWP/ZaERzl1wMlcE8FEAHUanZAlk5wTfw1UP0TCGdKQkbuijq0NwMFaTUX6KU=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=x04YelWNpc+2ecDBgT37J/Vz0ZQ8pPBvwnuVxA/Jk+4=;\n b=ROMfhQsm1n/28oyPCuQytw1WwYThxxrIJaIaxP0ZxSyVW3nqYkMqIfr6gJn8zPKwhwts6NmmQY4FJNLUeTU/1QBK0iw3wVQVt7OwZRO2XM2yjZ0+FPoDNAVyCYmKLA32c5cn8d3OrpZBI8BoGSCJzgR6eQ0oWHAst4vlrft0edSI2rSHm2oZJ9EJphmaf38hgSfRBm9t9aSd0oKEFmeshUfECAcQQxFoMA8X90KuQN9koG8O1wXJkxW/MKCtiixWOJ9fp1zofGxN3lwr5ZmTCz8jlHhI/7V5DdUaY5wKCvgKnDDj3KnqwDtm4MjmBXtC0IbEKAQK9tOssa2bM0xAIw==" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=XycSZCAi; arc=fail smtp.client-ip=40.107.209.54", "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.118.233) smtp.rcpttodomain=kernel.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=x04YelWNpc+2ecDBgT37J/Vz0ZQ8pPBvwnuVxA/Jk+4=;\n b=XycSZCAikhmL6JZOJJmIBTnkHNh7rqv7UiqpxvHE2+ML4uv5Wjo+PkuqO2eNKStFvcasRziOBzYnwgghsIWFicyvgzxZrQv8pkci3cE/kWGCrVmHGU50IP0qBakRd2c59EQMle9wqVaBkOl0eiv5AK3JkvlmeUz+Z0IPEoNE5ulvrP9RwSxFOkD7jyuKw8dZXxINhzM6H0+QvSCk13jkWvHajolvJTM5KUm5xoSfvs3XtdIcWs5+TUzTkDaseTR5WQVdUq37KhVb06mlgnWeEfLfwhLAtvF9XNHe7iap6j+QkzxhtRMnnf03hxOXn4DIpvfbrvwhIZ2j0E4gW5FIWg==", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.118.233)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;", "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.118.233 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C", "From": "Ashish Mhetre <amhetre@nvidia.com>", "To": "<krzk@kernel.org>, <robh@kernel.org>, <conor+dt@kernel.org>,\n\t<=thierry.reding@kernel.org>, <jonathanh@nvidia.com>, <sumitg@nvidia.com>", "CC": "<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,\n\t<linux-tegra@vger.kernel.org>, Ashish Mhetre <amhetre@nvidia.com>", "Subject": "[PATCH 1/2] memory: tegra: Add T238 MC support", "Date": "Tue, 31 Mar 2026 11:23:39 +0000", "Message-ID": "<20260331112347.3897841-2-amhetre@nvidia.com>", "X-Mailer": "git-send-email 2.50.1", "In-Reply-To": "<20260331112347.3897841-1-amhetre@nvidia.com>", "References": "<20260331112347.3897841-1-amhetre@nvidia.com>", "Precedence": "bulk", "X-Mailing-List": "linux-tegra@vger.kernel.org", "List-Id": "<linux-tegra.vger.kernel.org>", "List-Subscribe": "<mailto:linux-tegra+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-tegra+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "X-NVConfidentiality": "public", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-NV-OnPremToCloud": "ExternallySecured", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "CO1PEPF00012E66:EE_|SJ2PR12MB9137:EE_", "X-MS-Office365-Filtering-Correlation-Id": "7ab63a8e-c7b4-4d99-1bf7-08de8f180903", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|82310400026|1800799024|376014|36860700016|18002099003|56012099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n\tr1jXfL/s8jrZpPtk9lwT1JzjgqUALJVqwDKVsrkAqZX3OoEh065RpOxgrBB0EZSecg5gp21T80O5fag+RQaaDsbQybJIatW9IDFe2GlXmzgnbpeDww/i4EVw/EOt7pSyWesHy5/cUQj6XiXB6CMlBH3gFlJgXQr9wsuziWfUsjiYb+sWkIqGX2N0YulZ0ao9BuIVLUhV2QhIRFYIw+8Nm6ksW/cJRen1la954KarJWwtkNEh2x0nhpf/xshGWvi7nudPA/GLyuebigh8vnzcNLlTSFhmzhCf+hEiH3GJp+Xhwy3DERdMNINfJ0RDsRDVZVP8GpitFy91acrijVr6i/j1dfJR825jkQ+5Gcf+gV2h+qZNobapPkL9FNakg/BvWWELZZgFr0v65RPZZN/0EoTWRwfac+Hu/u1bNVGMOdHRzlsMmz1DMnh3kz09WhdGXD06tvU68xZux8sOW/BqNWJLozYQpIRzSsTYnIv01YabwEgTqmuNtjYGZ18PJ5SBc0n7Gxaihl59drG4FoVrEbma1Jnmuaygt9nmY+mE+85f8h1haAHYViIo3HRXti1YblLzmDlxqJhz8Iz8P8Y4ViISQGoEwLuh0KY0DZ3ltsHhQTZ9I1EbaKcBsvIJJQU/yi6RAItwUxsGY6faLG4CE3o7YL+TBq8YYWlYhQKo37WpgRGA3lvbDxE/eJ5PBQalVJxUn2utDArUyjnuIBeyXjSBA+XuCBgMWOGVn9O92PcBBMbxHWxVXMFV3Q+DpE4azyQpECcVfUgD7r/dYcfY6g==", "X-Forefront-Antispam-Report": "\n\tCIP: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)(376014)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n\txzElUbxpl2tZkw6WvQwyf2i0MyHWAzsJqtGiCpU/g/+6A/YFNVHoU+a/NhiwUEi8VKauUserxERJ5M83QbCy4tuiKFGp2alNuZHi02gVEeIl9m4YuWXRyIHCFJzKoTpPbmKqISS4kMI9gSeHXkw+AJkUyjLvCLaDgrLHWzGGrNisZ3y3cq0jS+6n7Y7fv7qCeUrtQE8oFRGHDsmHoeOh+J7B2wPNiJ0iY6WuLTFGBCR6+ukV2FSSSfPbH2b5XwZpGuZSlF7IvYIhdoo+L8d+GIeiz8I2B8VkD8xj12bDdpV3po3KK+HyVXg0wuHdc7WNtmFWkyEoX2Wkd+dz/366hP/pAQTkEs/7fAU3mD4fs30Lzfw4lOPkYcjAim5Yjg7Rw2Qup+JtboC53pR/1G8ksfW7+WR4AKioc0AU13k1ZgmJ1JA8gx2bBzY8gQKBZFjr", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "31 Mar 2026 11:24:12.5357\n (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 7ab63a8e-c7b4-4d99-1bf7-08de8f180903", "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n\tCO1PEPF00012E66.namprd05.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SJ2PR12MB9137" }, "content": "Add Memory Controller driver support for Tegra238 SOC, including:\n- MC client definitions with Tegra238-specific stream IDs\n- Reuse of Tegra234 ICC operations for bandwidth management via BPMP-FW\n- Device tree compatible string \"nvidia,tegra238-mc\"\n\nExport tegra234_mc_icc_ops so it can be shared with the Tegra238 MC\ndriver, as both SoCs use the same ICC aggregation and bandwidth\nmanagement logic.\n\nSigned-off-by: Ashish Mhetre <amhetre@nvidia.com>\n---\n drivers/memory/tegra/Makefile | 1 +\n drivers/memory/tegra/mc.c | 3 +\n drivers/memory/tegra/mc.h | 6 +\n drivers/memory/tegra/tegra234.c | 2 +-\n drivers/memory/tegra/tegra238.c | 395 ++++++++++++++++++++++++++++++++\n 5 files changed, 406 insertions(+), 1 deletion(-)\n create mode 100644 drivers/memory/tegra/tegra238.c", "diff": "diff --git a/drivers/memory/tegra/Makefile b/drivers/memory/tegra/Makefile\nindex 6334601e6120..0d50e37d43af 100644\n--- a/drivers/memory/tegra/Makefile\n+++ b/drivers/memory/tegra/Makefile\n@@ -10,6 +10,7 @@ tegra-mc-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210.o\n tegra-mc-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186.o\n tegra-mc-$(CONFIG_ARCH_TEGRA_194_SOC) += tegra186.o tegra194.o\n tegra-mc-$(CONFIG_ARCH_TEGRA_234_SOC) += tegra186.o tegra234.o\n+tegra-mc-$(CONFIG_ARCH_TEGRA_238_SOC) += tegra186.o tegra238.o\n tegra-mc-$(CONFIG_ARCH_TEGRA_264_SOC) += tegra186.o tegra264.o\n \n obj-$(CONFIG_TEGRA_MC) += tegra-mc.o\ndiff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c\nindex d620660da331..10ef3c323e22 100644\n--- a/drivers/memory/tegra/mc.c\n+++ b/drivers/memory/tegra/mc.c\n@@ -49,6 +49,9 @@ static const struct of_device_id tegra_mc_of_match[] = {\n #ifdef CONFIG_ARCH_TEGRA_234_SOC\n \t{ .compatible = \"nvidia,tegra234-mc\", .data = &tegra234_mc_soc },\n #endif\n+#ifdef CONFIG_ARCH_TEGRA_238_SOC\n+\t{ .compatible = \"nvidia,tegra238-mc\", .data = &tegra238_mc_soc },\n+#endif\n #ifdef CONFIG_ARCH_TEGRA_264_SOC\n \t{ .compatible = \"nvidia,tegra264-mc\", .data = &tegra264_mc_soc },\n #endif\ndiff --git a/drivers/memory/tegra/mc.h b/drivers/memory/tegra/mc.h\nindex 649b54369263..d0da4a5f192d 100644\n--- a/drivers/memory/tegra/mc.h\n+++ b/drivers/memory/tegra/mc.h\n@@ -238,6 +238,11 @@ extern const struct tegra_mc_soc tegra194_mc_soc;\n \n #ifdef CONFIG_ARCH_TEGRA_234_SOC\n extern const struct tegra_mc_soc tegra234_mc_soc;\n+extern const struct tegra_mc_icc_ops tegra234_mc_icc_ops;\n+#endif\n+\n+#ifdef CONFIG_ARCH_TEGRA_238_SOC\n+extern const struct tegra_mc_soc tegra238_mc_soc;\n #endif\n \n #ifdef CONFIG_ARCH_TEGRA_264_SOC\n@@ -256,6 +261,7 @@ extern const struct tegra_mc_ops tegra30_mc_ops;\n #if defined(CONFIG_ARCH_TEGRA_186_SOC) || \\\n defined(CONFIG_ARCH_TEGRA_194_SOC) || \\\n defined(CONFIG_ARCH_TEGRA_234_SOC) || \\\n+ defined(CONFIG_ARCH_TEGRA_238_SOC) || \\\n defined(CONFIG_ARCH_TEGRA_264_SOC)\n extern const struct tegra_mc_ops tegra186_mc_ops;\n #endif\ndiff --git a/drivers/memory/tegra/tegra234.c b/drivers/memory/tegra/tegra234.c\nindex 87b22038a5fb..9fbd34d4abe0 100644\n--- a/drivers/memory/tegra/tegra234.c\n+++ b/drivers/memory/tegra/tegra234.c\n@@ -1125,7 +1125,7 @@ static int tegra234_mc_icc_get_init_bw(struct icc_node *node, u32 *avg, u32 *pea\n \treturn 0;\n }\n \n-static const struct tegra_mc_icc_ops tegra234_mc_icc_ops = {\n+const struct tegra_mc_icc_ops tegra234_mc_icc_ops = {\n \t.xlate = tegra_mc_icc_xlate,\n \t.aggregate = tegra234_mc_icc_aggregate,\n \t.get_bw = tegra234_mc_icc_get_init_bw,\ndiff --git a/drivers/memory/tegra/tegra238.c b/drivers/memory/tegra/tegra238.c\nnew file mode 100644\nindex 000000000000..5abdca16a275\n--- /dev/null\n+++ b/drivers/memory/tegra/tegra238.c\n@@ -0,0 +1,395 @@\n+// SPDX-License-Identifier: GPL-2.0-only\n+/*\n+ * Copyright (C) 2026, NVIDIA CORPORATION. All rights reserved.\n+ */\n+\n+#include <soc/tegra/mc.h>\n+\n+#include <dt-bindings/memory/tegra234-mc.h>\n+#include <dt-bindings/memory/nvidia,tegra238-mc.h>\n+#include <linux/interconnect.h>\n+#include <linux/tegra-icc.h>\n+\n+#include <soc/tegra/bpmp.h>\n+#include \"mc.h\"\n+\n+static const struct tegra_mc_client tegra238_mc_clients[] = {\n+\t{\n+\t\t.id = TEGRA234_MEMORY_CLIENT_HDAR,\n+\t\t.name = \"hdar\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_HDA,\n+\t\t.type = TEGRA_ICC_ISO_AUDIO,\n+\t\t.sid = TEGRA238_SID_HDA,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0xa8,\n+\t\t\t\t.security = 0xac,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_HDAW,\n+\t\t.name = \"hdaw\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_HDA,\n+\t\t.type = TEGRA_ICC_ISO_AUDIO,\n+\t\t.sid = TEGRA238_SID_HDA,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x1a8,\n+\t\t\t\t.security = 0x1ac,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_SDMMCRAB,\n+\t\t.name = \"sdmmcrab\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_SDMMC_4,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_SDMMC4A,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x318,\n+\t\t\t\t.security = 0x31c,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_SDMMCWAB,\n+\t\t.name = \"sdmmcwab\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_SDMMC_4,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_SDMMC4A,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x338,\n+\t\t\t\t.security = 0x33c,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_APER,\n+\t\t.name = \"aper\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_APE,\n+\t\t.type = TEGRA_ICC_ISO_AUDIO,\n+\t\t.sid = TEGRA238_SID_ISO_APE0,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x3d0,\n+\t\t\t\t.security = 0x3d4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_APEW,\n+\t\t.name = \"apew\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_APE,\n+\t\t.type = TEGRA_ICC_ISO_AUDIO,\n+\t\t.sid = TEGRA238_SID_ISO_APE0,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x3d8,\n+\t\t\t\t.security = 0x3dc,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR,\n+\t\t.name = \"nvdisplayr\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_DISPLAY,\n+\t\t.type = TEGRA_ICC_ISO_DISPLAY,\n+\t\t.sid = TEGRA238_SID_ISO_NVDISPLAY,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x490,\n+\t\t\t\t.security = 0x494,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVDISPLAYR1,\n+\t\t.name = \"nvdisplayr1\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_DISPLAY,\n+\t\t.type = TEGRA_ICC_ISO_DISPLAY,\n+\t\t.sid = TEGRA238_SID_ISO_NVDISPLAY,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x508,\n+\t\t\t\t.security = 0x50c,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPR,\n+\t\t.name = \"bpmpr\",\n+\t\t.sid = TEGRA238_SID_BPMP,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x498,\n+\t\t\t\t.security = 0x49c,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPW,\n+\t\t.name = \"bpmpw\",\n+\t\t.sid = TEGRA238_SID_BPMP,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x4a0,\n+\t\t\t\t.security = 0x4a4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPDMAR,\n+\t\t.name = \"bpmpdmar\",\n+\t\t.sid = TEGRA238_SID_BPMP,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x4a8,\n+\t\t\t\t.security = 0x4ac,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_BPMPDMAW,\n+\t\t.name = \"bpmpdmaw\",\n+\t\t.sid = TEGRA238_SID_BPMP,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x4b0,\n+\t\t\t\t.security = 0x4b4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_APEDMAR,\n+\t\t.name = \"apedmar\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_APEDMA,\n+\t\t.type = TEGRA_ICC_ISO_AUDIO,\n+\t\t.sid = TEGRA238_SID_ISO_APE1,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x4f8,\n+\t\t\t\t.security = 0x4fc,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_APEDMAW,\n+\t\t.name = \"apedmaw\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_APEDMA,\n+\t\t.type = TEGRA_ICC_ISO_AUDIO,\n+\t\t.sid = TEGRA238_SID_ISO_APE1,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x500,\n+\t\t\t\t.security = 0x504,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_VICSRD,\n+\t\t.name = \"vicsrd\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_VIC,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_VIC,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x360,\n+\t\t\t\t.security = 0x364,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_VICSWR,\n+\t\t.name = \"vicswr\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_VIC,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_VIC,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x368,\n+\t\t\t\t.security = 0x36c,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVDECSRD,\n+\t\t.name = \"nvdecsrd\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_NVDEC,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_NVDEC,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x3c0,\n+\t\t\t\t.security = 0x3c4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVDECSWR,\n+\t\t.name = \"nvdecswr\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_NVDEC,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_NVDEC,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x3c8,\n+\t\t\t\t.security = 0x3cc,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVENCSRD,\n+\t\t.name = \"nvencsrd\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_NVENC,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_NVENC,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0xe0,\n+\t\t\t\t.security = 0xe4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVENCSWR,\n+\t\t.name = \"nvencswr\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_NVENC,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_NVENC,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x158,\n+\t\t\t\t.security = 0x15c,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE0R,\n+\t\t.name = \"pcie0r\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_0,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE0,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6c0,\n+\t\t\t\t.security = 0x6c4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE0W,\n+\t\t.name = \"pcie0w\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_0,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE0,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6c8,\n+\t\t\t\t.security = 0x6cc,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE1R,\n+\t\t.name = \"pcie1r\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_1,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE1,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6d0,\n+\t\t\t\t.security = 0x6d4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE1W,\n+\t\t.name = \"pcie1w\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_1,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE1,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6d8,\n+\t\t\t\t.security = 0x6dc,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE2AR,\n+\t\t.name = \"pcie2ar\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_2,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE2,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6e0,\n+\t\t\t\t.security = 0x6e4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE2AW,\n+\t\t.name = \"pcie2aw\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_2,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE2,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6e8,\n+\t\t\t\t.security = 0x6ec,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE3R,\n+\t\t.name = \"pcie3r\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_3,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE3,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6f0,\n+\t\t\t\t.security = 0x6f4,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_PCIE3W,\n+\t\t.name = \"pcie3w\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_PCIE_3,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t\t.sid = TEGRA238_SID_PCIE3,\n+\t\t.regs = {\n+\t\t\t.sid = {\n+\t\t\t\t.override = 0x6f8,\n+\t\t\t\t.security = 0x6fc,\n+\t\t\t},\n+\t\t},\n+\t}, {\n+\t\t.id = TEGRA_ICC_MC_CPU_CLUSTER0,\n+\t\t.name = \"sw_cluster0\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_CPU_CLUSTER0,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVL1R,\n+\t\t.name = \"nvl1r\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_GPU,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t}, {\n+\t\t.id = TEGRA234_MEMORY_CLIENT_NVL1W,\n+\t\t.name = \"nvl1w\",\n+\t\t.bpmp_id = TEGRA_ICC_BPMP_GPU,\n+\t\t.type = TEGRA_ICC_NISO,\n+\t}\n+};\n+\n+static const struct tegra_mc_intmask tegra238_mc_intmasks[] = {\n+\t{\n+\t\t.reg = MC_INTMASK,\n+\t\t.mask = MC_INT_DECERR_ROUTE_SANITY | MC_INT_DECERR_GENERALIZED_CARVEOUT |\n+\t\t\tMC_INT_DECERR_MTS | MC_INT_SECERR_SEC | MC_INT_DECERR_VPR |\n+\t\t\tMC_INT_SECURITY_VIOLATION | MC_INT_DECERR_EMEM,\n+\t},\n+};\n+\n+const struct tegra_mc_soc tegra238_mc_soc = {\n+\t.num_clients = ARRAY_SIZE(tegra238_mc_clients),\n+\t.clients = tegra238_mc_clients,\n+\t.num_address_bits = 40,\n+\t.num_channels = 8,\n+\t.client_id_mask = 0x1ff,\n+\t.intmasks = tegra238_mc_intmasks,\n+\t.num_intmasks = ARRAY_SIZE(tegra238_mc_intmasks),\n+\t.has_addr_hi_reg = true,\n+\t.ops = &tegra186_mc_ops,\n+\t.icc_ops = &tegra234_mc_icc_ops,\n+\t.ch_intmask = 0x0000ff00,\n+\t.global_intstatus_channel_shift = 8,\n+\t/*\n+\t * Additionally, there are lite carveouts but those are not currently\n+\t * supported.\n+\t */\n+\t.num_carveouts = 32,\n+\t.regs = &tegra20_mc_regs,\n+\t.handle_irq = tegra30_mc_irq_handlers,\n+\t.num_interrupts = ARRAY_SIZE(tegra30_mc_irq_handlers),\n+\t.mc_addr_hi_mask = 0x3,\n+\t.mc_err_status_type_mask = (0x7 << 28),\n+};\n", "prefixes": [ "1/2" ] }