From nobody Sun Dec 14 05:53:25 2025 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012011.outbound.protection.outlook.com [40.107.209.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04817212548; Fri, 12 Dec 2025 06:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519708; cv=fail; b=CSZSefOpWRroNBfWV8SgfjOAVY0TSi7rx0QsU7UWaY+4UOb2Jo9gL5ZoP9+VN7Ak3PkBeI1W9/kjAc3xxKrQLLVSf2drC/1u6TrWasF6r17+uf/9qUVZO5OyoarwVayXNiN/wTTBCL6JPh2O3NqpHNPLocc70vkfdotZ2H2HLJQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519708; c=relaxed/simple; bh=vNub+cLQgszPXBpBvwUniL+1eOqFe1O1U+jJOBd/f0Q=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WA0jOCOF7sxU5+8t5I1Cknixv3SOU9j0jIeKLCSjD79VGcNvsmVc2BRfJPYLt676hcmxeKfDK/Ue2cN8MXLkxRib+b19NV0rPuVWRmO1n3CHGTexMcEv5gsYDk5U79j0LWLbt1Xg6b3GjazVEonu9DUt23jVEiYS+LfGKijWIWE= 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=Oa4D3nEn; arc=fail smtp.client-ip=40.107.209.11 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="Oa4D3nEn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L4cbk3BaC0x31lIDQmSYav4+ZD8nMdvHqJRegoO5GnxMIQz5hDldgJqaQMy/DiL51b2/2gjlpobzMWRTksttq91XPONluI7en4wLm2zSieSLkqJbt6yQq44MwIqvaktRBh5hZ1XuAFDkOnAWfgBpjbJfMLcguoczJsWbrM+UB0XeTYkSQz4LHUyKNGfL//ezL3G/FUwqgjjDOEvr840F8jzVXV6rsF+ARY0hHqWn4hh9rXKBSe3MApdUM4UVwK28Zcx/AzcRDwBk+y7/vt8GrgTXLNz2Tw3IlZUwXkSJ7VabJM/9Db+9WtioS+DzlYFp68nrYqYcoFKQN+YOkWsZ7w== 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=ChIp35UI6PLWm4JmoIAQlms9MMPRL54P6yVQ8j//RE0=; b=v/Yt+WZgtb9MuuDIelsKJlTbGCE+TO/sZI8Qi+7B4OI6LLaCueMkJohCqX74ODVgHdJ5wlaS5Z5QtAf/Hf5dhCpSmY8+7wSvyQQCS5E1NWvf4AIacqRmiQBeogPr4NYusBy7oG/aeIZP9Pq4L686Pnd5QLBK8sSOxIBJdmlmBL6QoqzIwqfAScWe/3CVeXyzdH+W8wd+qQEHTFz7g70/RrJ5yZ2MoGef82tpsOqZJ1bMnoNKBPMCh4X26pJmVjwsAmiqU49ej7yXx3rtX62Nmz3RXIN0j8WUHTNyzkGyGzksvuVMFePpiu9t/ENGoVPSlM/kVK3C+HsawBbKW9ypNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) 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=ChIp35UI6PLWm4JmoIAQlms9MMPRL54P6yVQ8j//RE0=; b=Oa4D3nEnOQbpkiOXZqKhRskVur+Q/3aEHNfev4+t3/GdrxJW0Df3Q2Wo4v+sOsNCAmr0qNaEuTr48qDAWOVsHVTFr+kxi/y5UI3IX+ctwfcLp9cMPjn2U4CBI45owmQkK47LG1VC92Eaz6fkNnH/5gfojXjHqnQ3LHPEJIlk0GCsHt7jUeSQM0FXi9Y3IrMQBSgtEdsA7Ky8WQeX3/fVOy9jzr6+wZzHaZXw/QlsCCBGWr1DBapDNOGqMI1z+6VNaJsz8zgKLd7HJfFCA/tR2lEwvUmxido5LqM1+GshaX90Pe18fczg9KdReW4ep2g6AtJh0RubLdaee/sEz5l8vQ== Received: from BYAPR02CA0002.namprd02.prod.outlook.com (2603:10b6:a02:ee::15) by DS0PR12MB7825.namprd12.prod.outlook.com (2603:10b6:8:14d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.6; Fri, 12 Dec 2025 06:08:18 +0000 Received: from SJ1PEPF00001CEA.namprd03.prod.outlook.com (2603:10b6:a02:ee:cafe::95) by BYAPR02CA0002.outlook.office365.com (2603:10b6:a02:ee::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri, 12 Dec 2025 06:08:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CEA.mail.protection.outlook.com (10.167.242.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.4 via Frontend Transport; Fri, 12 Dec 2025 06:08:18 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:06 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:06 -0800 Received: from build-amhetre-focal-20250825.internal (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 11 Dec 2025 22:08:06 -0800 From: Ashish Mhetre To: , , , , , , CC: , , , , , , , , Subject: [PATCH V6 1/4] iommu/tegra241-cmdqv: Decouple driver from ACPI Date: Fri, 12 Dec 2025 06:08:00 +0000 Message-ID: <20251212060803.1712637-2-amhetre@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20251212060803.1712637-1-amhetre@nvidia.com> References: <20251212060803.1712637-1-amhetre@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: SJ1PEPF00001CEA:EE_|DS0PR12MB7825:EE_ X-MS-Office365-Filtering-Correlation-Id: 332df756-89fd-4a29-8566-08de3944d869 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?WNo0pNHPE3JAKVdNQ3dcTe94ELGuRJ4kQg/8df5KIoQd6a45Far+wmbxEkOZ?= =?us-ascii?Q?WipZJZ//+hl51PcvXfDOqFp1QX1xrUCMd+GOR8IbAJgvYpMQD/9XDWxRS/hz?= =?us-ascii?Q?KOOqIYYwmJCoDfUxI2mTEdxALT3CA+Kb3NafTC4SR2iNqZYycNSjl+u5HVPQ?= =?us-ascii?Q?F58JT1Z40SRdcqqWP5bltQVoHiNlBJ1Wiv9TvCT6BcF5av4cibV3I5Dm6aR/?= =?us-ascii?Q?aOFmttfq7y0j0h+8UZs5aeJLpIppGo8ETuGkXD6USQVgJG9TpRFUTHBmyV0v?= =?us-ascii?Q?DiFxwL4EMgPMA2Jwh0DszG8xME1OkwyhChxgquRO3zMWSkRSIew/1LbgEs1a?= =?us-ascii?Q?SHK1So1ICAs8+OZClfjzgoXig9RVAQODvbbOuKet7xz54vImy/WbHKwBm+hM?= =?us-ascii?Q?059J5/jTAjQxBUWn28b6ce8vBPU2matbRyhrtqeFk7s8/cRGRktBtoiXt5he?= =?us-ascii?Q?Y/IwybtV4kGbcX2kyUf4JJD1Fhoi4hrOiFme4957+jpL8P3o34tBt33Mx4p6?= =?us-ascii?Q?zistaaN2mG0SxzzhuOMzZ4GBoVTi9t1XX6Loq2arQbbzPFBUnT7pIliSK2n2?= =?us-ascii?Q?vp+7u7n0QpzsBSv1VE9eRdbrGUxzU9vqTvn76slKNe4PNa2DukHSNXKNWUUb?= =?us-ascii?Q?ZU1NqGXDn6jKyJS0fL9grkQ5uRJJ8whdcLWbWQaUCiyRkBJKaDfawmvERlrY?= =?us-ascii?Q?XShUv4p2Vcmcz9xEhmrUNtx9QcgZFelSCBXA38rlwcAiKIk+XxJPdyhXr+pZ?= =?us-ascii?Q?VJi6uMfiHDkwRB9FwYmGPH0CfYsg1iVQORRVdxIxSACc0GQ2KNAPkw2IbC3Y?= =?us-ascii?Q?j3RK3+TAMhsp9ZO/8OMrtEUvqvBSK7vNaFPRqJO4yH9JQYczL+3LQ+IN6iug?= =?us-ascii?Q?GhAKrhg0NhGCbnAu+hdHiPw4ufNeq+kT84gNKsX3Z7WY4qkjbLnAQOoedW53?= =?us-ascii?Q?HF21XeGdZv+yFLPoucYt9TDY2AvkFlUJDzgCYRGqZVinSNqIMun5l37ngdLQ?= =?us-ascii?Q?36bj6PLu+BgCmSBvAIFxEQ8h+3qZz2adOqwdD9uKFiILEh8iqAYbdyJo5Y7b?= =?us-ascii?Q?W2HUWjJYOtNbqCtnpdJSaTC4gmamCYejTRSBBNE3MY0kPLUWSektUluUVGao?= =?us-ascii?Q?ou/Bq8YIbItdrM11ep3yPhm/+nHorOwiT1hz/E+p1HBqtRfxg/ZYmwPGHiKG?= =?us-ascii?Q?vYzxtQuQBM7SvykrZVu0s9VRMoerg/gdpPg2ilQY5+T+qPQPSg2lmxuKV3gk?= =?us-ascii?Q?ivHB9F+ZRW4F7ZvikqfQ/6U38kx5gowVeYFCsbZrNGkvrWitB3B3X4muT+9k?= =?us-ascii?Q?iHYI/Y8Js0+hhXQz7yvD4H7z876M3rZaZebN0lxL/XXrJpRc8JEwQ8XaM3pD?= =?us-ascii?Q?H0Z++kZ9M1req3+XPg42W/7yXyju6nfvIxjYmrMWh/6miIghLQyaG7iCns2W?= =?us-ascii?Q?L1ERTd4X2kfOBMPY+ERFQNsTGtr9gUbkLr17Kod0DaEsIqih9g4d0Ls1m1H0?= =?us-ascii?Q?xVHoWiEjFe4yXfm64IMG1SMSaxCIbsdh0zT4jYHzJ3ZQ8eHdUBOayimwQ0N5?= =?us-ascii?Q?Nuk8xr5ibDiGhkQqlk0=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 06:08:18.4162 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 332df756-89fd-4a29-8566-08de3944d869 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CEA.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7825 Content-Type: text/plain; charset="utf-8" From: Nicolin Chen A platform device is created by acpi_create_platform_device() per CMDQV's adev. That means there is no point in going through _CRS of ACPI. Replace all the ACPI functions with standard platform functions. And drop all ACPI dependencies. This will make the driver compatible with DT also. Suggested-by: Robin Murphy Signed-off-by: Nicolin Chen --- drivers/iommu/arm/Kconfig | 1 - drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 2 +- .../iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 84 +++---------------- 3 files changed, 13 insertions(+), 74 deletions(-) diff --git a/drivers/iommu/arm/Kconfig b/drivers/iommu/arm/Kconfig index ef42bbe07dbe..5fac08b89dee 100644 --- a/drivers/iommu/arm/Kconfig +++ b/drivers/iommu/arm/Kconfig @@ -121,7 +121,6 @@ config ARM_SMMU_V3_KUNIT_TEST =20 config TEGRA241_CMDQV bool "NVIDIA Tegra241 CMDQ-V extension support for ARM SMMUv3" - depends on ACPI help Support for NVIDIA CMDQ-Virtualization extension for ARM SMMUv3. The CMDQ-V extension is similar to v3.3 ECMDQ for multi command queues diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index d16d35c78c06..42de3da54858 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -4542,7 +4542,7 @@ static void acpi_smmu_dsdt_probe_tegra241_cmdqv(struc= t acpi_iort_node *node, adev =3D acpi_dev_get_first_match_dev("NVDA200C", uid, -1); if (adev) { /* Tegra241 CMDQV driver is responsible for put_device() */ - smmu->impl_dev =3D &adev->dev; + smmu->impl_dev =3D acpi_get_first_physical_node(adev); smmu->options |=3D ARM_SMMU_OPT_TEGRA241_CMDQV; dev_info(smmu->dev, "found companion CMDQV device: %s\n", dev_name(smmu->impl_dev)); diff --git a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c b/drivers/iommu= /arm/arm-smmu-v3/tegra241-cmdqv.c index 378104cd395e..1fc03b72beb8 100644 --- a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c +++ b/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c @@ -3,17 +3,15 @@ =20 #define dev_fmt(fmt) "tegra241_cmdqv: " fmt =20 -#include #include #include #include #include #include #include +#include #include =20 -#include - #include "arm-smmu-v3.h" =20 /* CMDQV register page base and size defines */ @@ -854,69 +852,6 @@ static struct arm_smmu_impl_ops tegra241_cmdqv_impl_op= s =3D { =20 /* Probe Functions */ =20 -static int tegra241_cmdqv_acpi_is_memory(struct acpi_resource *res, void *= data) -{ - struct resource_win win; - - return !acpi_dev_resource_address_space(res, &win); -} - -static int tegra241_cmdqv_acpi_get_irqs(struct acpi_resource *ares, void *= data) -{ - struct resource r; - int *irq =3D data; - - if (*irq <=3D 0 && acpi_dev_resource_interrupt(ares, 0, &r)) - *irq =3D r.start; - return 1; /* No need to add resource to the list */ -} - -static struct resource * -tegra241_cmdqv_find_acpi_resource(struct device *dev, int *irq) -{ - struct acpi_device *adev =3D to_acpi_device(dev); - struct list_head resource_list; - struct resource_entry *rentry; - struct resource *res =3D NULL; - int ret; - - INIT_LIST_HEAD(&resource_list); - ret =3D acpi_dev_get_resources(adev, &resource_list, - tegra241_cmdqv_acpi_is_memory, NULL); - if (ret < 0) { - dev_err(dev, "failed to get memory resource: %d\n", ret); - return NULL; - } - - rentry =3D list_first_entry_or_null(&resource_list, - struct resource_entry, node); - if (!rentry) { - dev_err(dev, "failed to get memory resource entry\n"); - goto free_list; - } - - /* Caller must free the res */ - res =3D kzalloc(sizeof(*res), GFP_KERNEL); - if (!res) - goto free_list; - - *res =3D *rentry->res; - - acpi_dev_free_resource_list(&resource_list); - - INIT_LIST_HEAD(&resource_list); - - if (irq) - ret =3D acpi_dev_get_resources(adev, &resource_list, - tegra241_cmdqv_acpi_get_irqs, irq); - if (ret < 0 || !irq || *irq <=3D 0) - dev_warn(dev, "no interrupt. errors will not be reported\n"); - -free_list: - acpi_dev_free_resource_list(&resource_list); - return res; -} - static int tegra241_cmdqv_init_structures(struct arm_smmu_device *smmu) { struct tegra241_cmdqv *cmdqv =3D @@ -1042,18 +977,23 @@ __tegra241_cmdqv_probe(struct arm_smmu_device *smmu,= struct resource *res, =20 struct arm_smmu_device *tegra241_cmdqv_probe(struct arm_smmu_device *smmu) { + struct platform_device *pdev =3D to_platform_device(smmu->impl_dev); struct arm_smmu_device *new_smmu; - struct resource *res =3D NULL; + struct resource *res; int irq; =20 - if (!smmu->dev->of_node) - res =3D tegra241_cmdqv_find_acpi_resource(smmu->impl_dev, &irq); - if (!res) + res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + dev_err(&pdev->dev, "no memory resource found for CMDQV\n"); goto out_fallback; + } =20 - new_smmu =3D __tegra241_cmdqv_probe(smmu, res, irq); - kfree(res); + irq =3D platform_get_irq_optional(pdev, 0); + if (irq <=3D 0) + dev_warn(&pdev->dev, + "no interrupt. errors will not be reported\n"); =20 + new_smmu =3D __tegra241_cmdqv_probe(smmu, res, irq); if (new_smmu) return new_smmu; =20 --=20 2.25.1 From nobody Sun Dec 14 05:53:25 2025 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011014.outbound.protection.outlook.com [40.93.194.14]) (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 2779B2741A0; Fri, 12 Dec 2025 06:08:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.14 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519707; cv=fail; b=UrIsj/EBcq+FCu6LHqPYOjLskEvw0HIonKrJCWfoeq7IE54HOiX1XUw7kMrSrY1WW+9GUoahLPeReoul60m0vyUEjo1Y/+q/i2IbI1inTcW4JQCHMBziOyie1N3rh75j6ht7zMpbu77upx71aTGwsOU7mzNzCB+Vf8Y1pNVurJM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519707; c=relaxed/simple; bh=tddNIS83qPRh0NaI8Eh7toB8SrCG5KzlgMivBAmIr2k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GTsUiYqPDLpduABdbSLA4xQowdAz/tG0IA9kZ/7slYFX+Xg/q72ybsuK5QB5KrlhEfWVx6UUJ6sU+ddZV/MaNTJCulOreh3a4vKSFNNu3ya4bLKtXSz0SLpwMgMI1odLKXO/KrIP3sxJR+DQDtCy0Zyny5b7A14j+UquNBdXyY0= 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=UZ5r1v/g; arc=fail smtp.client-ip=40.93.194.14 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="UZ5r1v/g" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=d5B/qW5UcCi4EL3u8gq5UZs7twJnepn8gRutnTSc7HI7HSMfvjFtQki7ELKEgKWDevocT3Zf0ivxNELRR4K/g+QoVv4K+8sa1Z/cwvQPu1hbRnAK3yiGh+smNX9J8V2GRpqvIMNdx3iBt9LChhhPiLa0ChVMIX/DMU71aF1WmvzBM+Z33XlvG+5k281FLYUHDQjv5LXDAvndvjUxq+0/ktenziAPpbEUJXXdwPhDpJPp98YyXwUEegsY9HqoVasGIkrmIjBZMCPbE13cZRqPkbEXI2qeiQe0QM/tL8Q8mjW1/HyJ6stQHxCjT/JxWfk63cjWaaG/6xONYyZCkswk0g== 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=uPgV8oQEt4Gvn9jLIueQlyMC3edLr4tqRhG5l9gSFtw=; b=bnDxHWkaLjCEp/7+gz38XbmGVzY33nAeqnJC3uJwakNvnJfyGkibLI3xrc6XZdXUR9ES1qMB9/3bEHsggu616rjKWaNf3Jre0jbqFugx/SxstlzzmoYs6cbcCDUdhN/FlH4rBj2SCspn/81KIBiRjEQOJQJSJ+21aDHXYTqLnpBIRLCzO5A+1RM0bYgT4WY3QOWypNuPpJTY2c+MAumHg8kIFyEUfRyKjvPar4y/FdmuZgtKCPynS7v7FydgFlNJAh8nPPVVMUlaDzfEzIgBzZclt5KQkVSNNyXn3USTY3ylg/5KGnlC65ic9F8FGGMjIzOn3X/7V6ZfeamEHPImsA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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=uPgV8oQEt4Gvn9jLIueQlyMC3edLr4tqRhG5l9gSFtw=; b=UZ5r1v/gIyXA/ZmL7MZwKDZxWtQKATFaF0I9NrAc177Dro6kkOBmOr8m0IpZzZD7QRvJmvcrV5C7jcrOWMX3lCHWdeOrpYtD8kDgt32i7iQSuKAVY/FhD8e4ewPhWSXRtNuuCqcTm+s0drNlgTuqgRw9rVnw7qwxZ4hRVwBdjDGmqgy4lh+XdCwGkHvwgIdughzM1BMK/pcwcLzGHVROxiQetbeGHABAhFetkpOORPi8/clDarMPXGjjX8m0NdFrl+3UFouUQ76dMb4HWHWIN0JjDJ/OCHof0sHyWvjJZJ/W5um3+9qgPXrt4A1rYNH0Fb3gAPFoioksRc2xKbcDiA== Received: from BYAPR06CA0022.namprd06.prod.outlook.com (2603:10b6:a03:d4::35) by DS0PR12MB7679.namprd12.prod.outlook.com (2603:10b6:8:134::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 06:08:21 +0000 Received: from SJ1PEPF00002314.namprd03.prod.outlook.com (2603:10b6:a03:d4:cafe::5b) by BYAPR06CA0022.outlook.office365.com (2603:10b6:a03:d4::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri, 12 Dec 2025 06:08:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SJ1PEPF00002314.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.9388.8 via Frontend Transport; Fri, 12 Dec 2025 06:08:20 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:07 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:06 -0800 Received: from build-amhetre-focal-20250825.internal (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 11 Dec 2025 22:08:06 -0800 From: Ashish Mhetre To: , , , , , , CC: , , , , , , , , , Ashish Mhetre Subject: [PATCH V6 2/4] iommu/arm-smmu-v3: Add device-tree support for CMDQV driver Date: Fri, 12 Dec 2025 06:08:01 +0000 Message-ID: <20251212060803.1712637-3-amhetre@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20251212060803.1712637-1-amhetre@nvidia.com> References: <20251212060803.1712637-1-amhetre@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: SJ1PEPF00002314:EE_|DS0PR12MB7679:EE_ X-MS-Office365-Filtering-Correlation-Id: a16591bd-ac0e-445b-16ac-08de3944d996 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|7416014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yJLc9PDF5SFCM1LKqpIH++bXQ2yOvUwGn848QoW05ZgZKd77SlvRJNxaVzY1?= =?us-ascii?Q?rDtJcF/3W2GdQv8zC/3yj88Bp0QlXImpss8t6uMEpY0NCh4y2HgUS+IiyXtI?= =?us-ascii?Q?UC5DelQO2G2gvwXrvGKv7uGWUjEJBcWvmd/ePFfk3v/OV7AX7OO7XYvG2vgx?= =?us-ascii?Q?wSwYg04sFGG5YSyX7AjflbQy7vuJ4WGXZZDA4GLck6p0AGLbzIS5qsGIesge?= =?us-ascii?Q?pFppKZaRgK6YXwdLboHRIeB9Uh6mDDL/YS7nfToazQsqxsv8gWg25yU6AjlV?= =?us-ascii?Q?FK9XfwKQSQTvw+j3jopvQSAaku/mS1AesPUZu6nYl+1e32l3L+3WAgf2Nq0h?= =?us-ascii?Q?Fk+4mZ3z9NkxDYCY+1NJICqhrjnFDskJryW3L1HOggVC/NHEr2QDdGOeGh/X?= =?us-ascii?Q?9TOv+oRJdNXcU/sOEsCb/5gCVnsj2SUQjALQJU7lx0Ogb69qKjPDve5hWIsP?= =?us-ascii?Q?mXGdGG5yXi2eqwqq9E2GQoefMh7Nhf6KwE66ERlN+rBnqEz5DziamRh96jkD?= =?us-ascii?Q?JIWeSWCEKMy6iuGsoRPc8lrHtLqO4CVMCPsCw1JxtdgXTYxslT/eMMj44O+j?= =?us-ascii?Q?DQsAp/kGg2OojT0l/bZVpamZIV3k1wdQGI9Q4kvxaUo8Zlxnp/jTBpHjP3Fi?= =?us-ascii?Q?3oc+iZv2O9JBEKWouMKwhpva+fkCjhA0sr3n9BiGEIZyoHpV/vC6R7IKwMGG?= =?us-ascii?Q?aeAsUA13TKqbHsZz+Ptm2sIBl9ugaupJhnSAHPJWKo4KVwi8nZkbEmyqZMaO?= =?us-ascii?Q?3AQN+zzdhWIxPJmoyPyZmBSIwr/wTsl9xe4oSkeOFlesOthVl6h0bL35H5cS?= =?us-ascii?Q?fDcftsN/Bq9OPkJUbEc+cnCEgaprOlNN01D1UBQYUhTbcSf3N2GfUZR6XYl/?= =?us-ascii?Q?qHpr6eFQGAHgVCtNGFSfgjam08bJ9cYgU/GdJwvS2qMDepWtQlp4hdgnyElQ?= =?us-ascii?Q?GQlQe4fO4jAf0U9RVTaJgxJQPkDIJj0crOyYQf9+6drnMeLWxvPOgQvDrm66?= =?us-ascii?Q?WtFCZrXNlgJia8ls9pnym4uUY6jYN54mHx4ow8CZRGwkvR+Vlp3dTVTaizGt?= =?us-ascii?Q?Zd8Kt5EoZnfYnWc7NbhqKXCdUOXcNF3cchcPGzkFMXEyKcp0UrRPo3tWbz65?= =?us-ascii?Q?q4MVBIcUt9WFubZBAmQXtDcHmI3W7QhE2XgWiyx/JSXsjlzgy8sewzWoHDYO?= =?us-ascii?Q?8ZIODRLCaKnyf2VWJdSy7FLopP6OM832HInC7iE5xXPGQqUskqIYxZag6yOk?= =?us-ascii?Q?hRSRvUUHptmYZ9wioUSf2mBRB/7UpegqmEkMfGa9pT3VuI7K5Kga+0/+1KCT?= =?us-ascii?Q?SklmdGSTUm/XfuXoWNxQIqWQrYKqyjBATvbk5J5G6xZ0sMkAnWCnPjbtvtIL?= =?us-ascii?Q?LhJ5rUM/Dm/Fvn0uILfUGRc0G85Uqyj9/UanIt9NQxThvSsyrItMf/YCLg0P?= =?us-ascii?Q?Ak5fsuzsljwJogXY+mFp0lpnUkmXIKego+kZRwjSo+XSPJl4maz59unESWLP?= =?us-ascii?Q?6K1odZ0cVjI4MA3Rvc7OdHGljiJ4TRn7d6rZdqRstBTIUiPG2tYoCC+l/CzZ?= =?us-ascii?Q?8jJD8kXS1TWnZkgb5pk=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(7416014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 06:08:20.2950 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a16591bd-ac0e-445b-16ac-08de3944d996 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00002314.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7679 Content-Type: text/plain; charset="utf-8" Add device tree support to the CMDQV driver to enable usage on Tegra264 SoCs. The implementation parses the nvidia,cmdqv phandle from the SMMU device tree node to associate each SMMU with its corresponding CMDQV instance based on compatible string. Reviewed-by: Nicolin Chen Signed-off-by: Ashish Mhetre --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/ar= m/arm-smmu-v3/arm-smmu-v3.c index 42de3da54858..fbd16b210e88 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -4530,6 +4530,35 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_= device *smmu) return 0; } =20 +#ifdef CONFIG_TEGRA241_CMDQV +static void tegra_cmdqv_dt_probe(struct device_node *smmu_node, + struct arm_smmu_device *smmu) +{ + struct platform_device *pdev; + struct device_node *np; + + np =3D of_parse_phandle(smmu_node, "nvidia,cmdqv", 0); + if (!np) + return; + + /* Tegra241 CMDQV driver is responsible for put_device() */ + pdev =3D of_find_device_by_node(np); + of_node_put(np); + if (!pdev) + return; + + smmu->impl_dev =3D &pdev->dev; + smmu->options |=3D ARM_SMMU_OPT_TEGRA241_CMDQV; + dev_info(smmu->dev, "found companion CMDQV device: %s\n", + dev_name(smmu->impl_dev)); +} +#else +static void tegra_cmdqv_dt_probe(struct device_node *smmu_node, + struct arm_smmu_device *smmu) +{ +} +#endif + #ifdef CONFIG_ACPI #ifdef CONFIG_TEGRA241_CMDQV static void acpi_smmu_dsdt_probe_tegra241_cmdqv(struct acpi_iort_node *nod= e, @@ -4634,6 +4663,9 @@ static int arm_smmu_device_dt_probe(struct platform_d= evice *pdev, if (of_dma_is_coherent(dev->of_node)) smmu->features |=3D ARM_SMMU_FEAT_COHERENCY; =20 + if (of_device_is_compatible(dev->of_node, "nvidia,tegra264-smmu")) + tegra_cmdqv_dt_probe(dev->of_node, smmu); + return ret; } =20 --=20 2.25.1 From nobody Sun Dec 14 05:53:25 2025 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013017.outbound.protection.outlook.com [40.93.201.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D68222D0C84; Fri, 12 Dec 2025 06:08:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519709; cv=fail; b=UGCtEBA3Kb2kNU9+LZKhETGlYESjZRJJ7BjawJwSEw7pZu/Pg6yqh15Z+izYyR9TWaDFwQZZoeRfI2iOSPy1ws805yQxssKuJSXpx/Tg+J7ajV2ALg5E/Vyy5KzgT9DIwwDBaJPiMUA9ES/ttBZ5w6lCILusYk8vzCgxIBSc1sk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519709; c=relaxed/simple; bh=l+B8Hlnikxp52P2wk3/eqv0Biw1KlliOMzKDfTQ/+UM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=NE02xhTJLp5zw1MfbzvR1enA7i4xphS98uhxMv4337pFVeK86rI69yndiiwYVY10eq7X59v+ff1KkGjZUfRkEyWT/nt8qs2nrPJr6HbOHPaC6nDdrf6LyBFHcHJYil8O9f00Zp7ct4jttfpABABlXNjCcRqBZQ7l3IDlZqDI+WY= 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=E08UN8x3; arc=fail smtp.client-ip=40.93.201.17 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="E08UN8x3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=REx5/G1suxtmvOu/0wkqAgsYW+N1DrNIToOhC0A45CDSwGvTwB2urRz7XCU+EXP74W8gQwPJflplh/8FW+lOQo2Hj1wz7kV2LUEczIX05YPDgVzAjbmLXhSWMgdqrIEiMKO0r63EGT3uXHkP4+WITrY2Sq4+sICUuru5jGmpcALNXXlTN+aP0WDMiHdYq4QSS61ul53wdmThiu9znjKnBhV0+FFpJuxcmG+jPV7fQ7DU6IBgvUB30b/i15Qe1IhPo0RrwZjLtbucoRhknWYa+ejjVC3GqR9srvqaQrYQ5u3hiycVvuBY05dCMWFBl2GGq7L16AEtxu1zTkwIz0BRWQ== 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=tiy3wPTUxyVsZfG0Q3ol68oZmfM61ZDburHz9Hhdze0=; b=GTXX7ThN0TtxqgCHme+uBlVdDaOKKw7yEoriExRtI002xJoKvcTtS9mFJgjqCSQX4h4SE+AA8eJ0w0idIcXZGgL8F0N/tRDLMe3CshOYSAu8DQ++3Xf6nA4wpgVkiCXw66ReYEYGXt0dOzp7zpvWSe78aloo0UjyYP72yRe04sCxSMjgMqrEOi4wVTbyB5d7wBsUiazIGVFxHPS1KWsXucU5wZ6+nawyWwdFYQoe92VP92qxK4cNbPpfw244Dk+A5s2ms6azL9rZczvtPan0CXNsEDHUhkwSkDTYuk7DW5H8N1qmfYlqTcr/qcDABEqXBiShsZbsGaBpqJyk0W9kGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) 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=tiy3wPTUxyVsZfG0Q3ol68oZmfM61ZDburHz9Hhdze0=; b=E08UN8x3AuUepF+sCgboMsEQcIlJLBLRdTwKENwvhTeKplaHq2L0yeFTdNs4yoeOMGWiFmOUXJnzu2SDjq/9Vvwe+zqciFBk2ZaqAMKfUu1stBcAHATyhK3kiidr8TUGpB2wxWS3ZC6rRy/PsSKBiKRyiDFbgsylaTEXicJgOVrjAlpLkeZLWpR8krCfLqztwrJ9KSxGlUSJTOBWuymAoFnsQP9Sy1YnfSi7yUco4rdFfqkbFjaDrEnZMoKfWPM0QlD6tmWrafvVGsqfM1lBFbQq/6T5zxG+OOEqshsDja8dFnOH3q43B0Joa/tC/py4kIr0M46kTlW+QcwtN39UCw== Received: from SJ0PR03CA0235.namprd03.prod.outlook.com (2603:10b6:a03:39f::30) by SA3PR12MB7806.namprd12.prod.outlook.com (2603:10b6:806:31d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 06:08:19 +0000 Received: from SJ1PEPF00001CE9.namprd03.prod.outlook.com (2603:10b6:a03:39f:cafe::5f) by SJ0PR03CA0235.outlook.office365.com (2603:10b6:a03:39f::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.16 via Frontend Transport; Fri, 12 Dec 2025 06:08:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CE9.mail.protection.outlook.com (10.167.242.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Fri, 12 Dec 2025 06:08:19 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:07 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:07 -0800 Received: from build-amhetre-focal-20250825.internal (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 11 Dec 2025 22:08:07 -0800 From: Ashish Mhetre To: , , , , , , CC: , , , , , , , , , Ashish Mhetre Subject: [PATCH V6 3/4] dt-bindings: iommu: Add NVIDIA Tegra CMDQV support Date: Fri, 12 Dec 2025 06:08:02 +0000 Message-ID: <20251212060803.1712637-4-amhetre@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20251212060803.1712637-1-amhetre@nvidia.com> References: <20251212060803.1712637-1-amhetre@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: SJ1PEPF00001CE9:EE_|SA3PR12MB7806:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a856c81-4c94-42a4-cb13-08de3944d921 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|36860700013|1800799024|82310400026|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Z0PMqrvcMPaQFTV3Wyj2aQK7vhs/WH3Re6V+/H1nnFCthFKpITeQncfMN4nM?= =?us-ascii?Q?YBO8UNYYgjIQpr3/Op/FEtTwlZbKbLuVKGV4JXoQrHnEbM1FvyGFcIKhHMKF?= =?us-ascii?Q?n0GsKBRxCnCftqg8apsEx7HER9DcRsIGZNAz1LQxt00rETisiMCWNHuBqomN?= =?us-ascii?Q?d+7er5x0/8nnpJ6p2QDt8ed5Ts64FqQqto5ZpTTMNdusqvLYuV7eJC+JSNne?= =?us-ascii?Q?YNc2ec5jJSbZmISVhfecUGYmPw3SOL7GCLX7+P7G9c1xVuYeNq9EHS4ZyPtj?= =?us-ascii?Q?RSggfCpQUEY6zWPgZ1W0W8YFZpWDvkqXJWiCdjK7GK8tLwXCAfWQ1J2eTDaM?= =?us-ascii?Q?a4Kkp1bZqr/Igg9LxggA6DB7LtD588etHjhR+ALYhxfMP3L/cyrJ6viYJWfX?= =?us-ascii?Q?JymGIxHY9usmLHh3kjGi51BzwBVzcF0oCKDgkx9PRnIhSCl6t7WxPQ1hU0RJ?= =?us-ascii?Q?m+d9MplCPAApxENQs/BdafQLk/lwoL1GHd71OyfF77ojtUATHDzV+H/0Iwl7?= =?us-ascii?Q?P8pPWF6FJaXXHLb/6hIajke62co9FjEHfaT3MBqn9trvYFd0luXc4PwKZ0WW?= =?us-ascii?Q?PEWQWLv1UnemAhp35aVuCdbUl0WjXEwrxGUO455iPmzSLvhNs9vpHwDBt9xT?= =?us-ascii?Q?FMAhgxLbEMNsB3fVKnvvQ0vgdaqc1WtxKowE6aXKAxwxo6FNj0RgmkdSaPtX?= =?us-ascii?Q?ivXl1t2DMjzAcJVVjVTV0x32nSJ1x+1NbnZ+XohL2TbNNnCGa4CP48nHLUiX?= =?us-ascii?Q?wiUvEZFeWEG4IlRSgIILy/XX/kvbvH2xD/FF0JWN+hfEX88QyUQUBDezj/5d?= =?us-ascii?Q?YHkVauKC7z8s5VYRlMDAXhwBucKtcWKF1dVlSsMph1QfYZp1yNveTGUYvtxz?= =?us-ascii?Q?VpMXzVMWEWzaRFG+g4F2IlqpJZzIOeWfr4Gh6hGvM8cfU6XjinbxQeaXmYvH?= =?us-ascii?Q?Mp3U0L2OF3OTx5fgYNnSLPRK52kTEJfy0lR67eKDJXxfvRFiGY/2eeVrPx+0?= =?us-ascii?Q?IVEVq2rrnAMUaQKU806IVITdPspqoNcIGTkpN9qO47OgwTRTN0VqEZCjwdPG?= =?us-ascii?Q?LGUV1p+YKyQ9KIG5hsF9MMIllgvtSr/dz1fPK5UDAFUIueQ8UGgGwB2cLIhI?= =?us-ascii?Q?Ck+JxTOIwHVYfeO8wokDU4cF2hf0xtxc+CHp5bNAzwISnAR/hBx7zVEJiSra?= =?us-ascii?Q?w3QbAiVRtGeiv1lySccalm/8abzFIP6xhF6Q6GNfN4E8hhFUwztS/BNfV4wj?= =?us-ascii?Q?72aNnwOJdGEBZloUHX3hpYsJr+lCCaG5gQmZC3/Q+b4a6kMX6MfedAcj9h2g?= =?us-ascii?Q?24HmW/9XmQx651ryBafzmq/y7yZC9xK0E6AeY5Pktwtp1MmGSnNXpy1tn7jb?= =?us-ascii?Q?P4jPhsk2IxNmnLZgwF2NyaJHP1aL580iggypN18//fsrVqebH2UOE5CFluBC?= =?us-ascii?Q?hsTEa6MrFBv0FjR3K0s5KcCwGQKYyzyu2fLqPXfBVvLjhLJ5GBE8F8nqmlIC?= =?us-ascii?Q?6cOuaMUPebgcDQ4nMjie8U9pqk/QMqHJ/oEDfS/1ZYsFxXJLItuzVfq0gSMY?= =?us-ascii?Q?75As/bwaPIPnXeCO4T8=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(7416014)(376014)(36860700013)(1800799024)(82310400026)(13003099007);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 06:08:19.6171 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a856c81-4c94-42a4-cb13-08de3944d921 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE9.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7806 Content-Type: text/plain; charset="utf-8" The Command Queue Virtualization (CMDQV) hardware is part of the SMMUv3 implementation on NVIDIA Tegra SoCs. It assists in virtualizing the command queue for the SMMU. Add a new device tree binding document for nvidia,tegra264-cmdqv. Also update the arm,smmu-v3 binding to include an optional nvidia,cmdqv property. This property is a phandle to the CMDQV device node, allowing the SMMU driver to associate with its corresponding CMDQV instance. Restrict this property usage to Nvidia Tegra264 only. Reviewed-by: Rob Herring (Arm) Signed-off-by: Ashish Mhetre --- .../bindings/iommu/arm,smmu-v3.yaml | 30 ++++++++++++- .../bindings/iommu/nvidia,tegra264-cmdqv.yaml | 42 +++++++++++++++++++ 2 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/iommu/nvidia,tegra264= -cmdqv.yaml diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml b/Doc= umentation/devicetree/bindings/iommu/arm,smmu-v3.yaml index 75fcf4cb52d9..1c03482e4c61 100644 --- a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml +++ b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml @@ -20,7 +20,12 @@ properties: $nodename: pattern: "^iommu@[0-9a-f]*" compatible: - const: arm,smmu-v3 + oneOf: + - const: arm,smmu-v3 + - items: + - enum: + - nvidia,tegra264-smmu + - const: arm,smmu-v3 =20 reg: maxItems: 1 @@ -58,6 +63,15 @@ properties: =20 msi-parent: true =20 + nvidia,cmdqv: + description: | + A phandle to its pairing CMDQV extension for an implementation on NV= IDIA + Tegra SoC. + + If this property is absent, CMDQ-Virtualization won't be used and SM= MU + will only use its own CMDQ. + $ref: /schemas/types.yaml#/definitions/phandle + hisilicon,broken-prefetch-cmd: type: boolean description: Avoid sending CMD_PREFETCH_* commands to the SMMU. @@ -69,6 +83,17 @@ properties: register access with page 0 offsets. Set for Cavium ThunderX2 silico= n that doesn't support SMMU page1 register space. =20 +allOf: + - if: + not: + properties: + compatible: + contains: + const: nvidia,tegra264-smmu + then: + properties: + nvidia,cmdqv: false + required: - compatible - reg @@ -82,7 +107,7 @@ examples: #include =20 iommu@2b400000 { - compatible =3D "arm,smmu-v3"; + compatible =3D "nvidia,tegra264-smmu", "arm,smmu-v3"; reg =3D <0x2b400000 0x20000>; interrupts =3D , , @@ -92,4 +117,5 @@ examples: dma-coherent; #iommu-cells =3D <1>; msi-parent =3D <&its 0xff0000>; + nvidia,cmdqv =3D <&cmdqv>; }; diff --git a/Documentation/devicetree/bindings/iommu/nvidia,tegra264-cmdqv.= yaml b/Documentation/devicetree/bindings/iommu/nvidia,tegra264-cmdqv.yaml new file mode 100644 index 000000000000..3f5006a59805 --- /dev/null +++ b/Documentation/devicetree/bindings/iommu/nvidia,tegra264-cmdqv.yaml @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iommu/nvidia,tegra264-cmdqv.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NVIDIA Tegra264 CMDQV + +description: + The CMDQ-Virtualization hardware block is part of the SMMUv3 implementat= ion + on Tegra264 SoCs. It assists in virtualizing the command queue for the S= MMU. + +maintainers: + - Nicolin Chen + +properties: + compatible: + const: nvidia,tegra264-cmdqv + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + #include + #include + + cmdqv@5200000 { + compatible =3D "nvidia,tegra264-cmdqv"; + reg =3D <0x5200000 0x830000>; + interrupts =3D ; + }; --=20 2.25.1 From nobody Sun Dec 14 05:53:25 2025 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013038.outbound.protection.outlook.com [40.107.201.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DEE12F5A3B; Fri, 12 Dec 2025 06:08:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519710; cv=fail; b=Nz6aqvcRGTgMuCNk4e9KG63WEZ7m5tB+1EiwB/3pMcsAc1t4YtxHiZU5EYL/Ihii3dgPNJAXXuQWIlrmLvLxGw6rJaSWwuEhDnMaps38pIyTMZdzOdt+f+xt1UrGGxcNhUtTZmV+ZoV61Q8jSttUQgDXT7ehXDzU0744aY3UIc8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765519710; c=relaxed/simple; bh=mySVPBxEVT9zPWTS/gxmd+V75XGfQq2Pe2MufrRpQMA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZvXkV3H62+P3xfjFlVzOZ+tRUCIPXxuxMU5whvL4B4hf7i4Hfjg6ULTCqY7YW91JNw/s2jJUHvNqfdg6+7BE1w5cjSzhL37nGgSl+T1EA3KqQT9es8q3MBbhFa5ltCmNpO0iBgOHuLi5P3OS5+PrH03sG2L9VtLlM36KaNo/67Q= 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=hnqvnOrg; arc=fail smtp.client-ip=40.107.201.38 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="hnqvnOrg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SuhPXyFmtFbmnjRfqXS0bOIrsNqylBqvUEGziOWxq+1jAV/5q18zm3PLuwPRT1lWueF9Dsi6vSjWj7TYdrfMH95slxPcGjiamBFaR7xujW9OTsL3vTua3ZKSDpBNOwy4/Dkmw4aK9vmbYqxwKquVuCfqy/5c8cjvQcXutNOoVOP8+7eCQF2yXxBpcwwtB5pSvPdO4RYKK/FiZijVUU8p4bIIvekpau+Vv7LKzLK0WtMAZj4ATXd3WeXe8BhbOyXAz6+z+HNxCKE+XzN1q0uIgeW+ebc8YBD0ItTKCnBE2JBeqVJjGZE8tiqaG+eLC+XhuGQUKaCoXs1EBRbowRIacg== 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=C5C7BbNbxkCycrp6WS3b6f8CAENtqWpmuc1Dj+Qmq5A=; b=HPDCNJ5619SOs8trSPlkIpAVGcc0GCl3fy0I4XtswL6j5ykcefXT2d4Z9bIfKpBZdaBbCrw81c0v1vMUcaPjFnk8QgKExu04SOZPwUTD+moVy+VKLESFYW8/8kkupjHhGkyHwvKed1TPg5Dnp1NEeYdf2tNaGnRjlsSKsVxVzl1dGq6Zro/4p9/V7Mk8YPdp6lIR1SilBwnN17Mr+XcYonE+lSRu7NzW4xGhtnv4VWndDvcouIvU4mVImdYwHbxnrhsGcuflQS2ZVDOxwk5Qb+BnRykY/0GrCenNKRXgjr7MwIk2iggFZu1XaXI3wSl7LOiEJYznD+MBuHPxtOmcWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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=C5C7BbNbxkCycrp6WS3b6f8CAENtqWpmuc1Dj+Qmq5A=; b=hnqvnOrgUNCCfIxLEAUvLBap0X2gY6ZM4Sl/I9BAIIMd8E9kk0KfNE+wH+SgdjfnfmdPWUctgq6X6PayjlxBGWchXmCh97Pnj1epqaoPM8JLOricbhJ4OT+zfTixFEAkT7LRykYtjITE0JAsgS8dCCTVdcBRPFJ3DAEwN4pk5j+Vzu1PtEenXwSjdJsdlo18/9vG8vSMNjF2PRl6P+1XJmdvCiVr6fZ1OAVgKhnloIxP//S9T2qJgdXZR+cJZrJU3mHeqB2JScAAbbfDX1cVKPmZ2W3DfKzBBmNIiVIgqF7zhykEIOtpC9BsXLXHRiY5VbzyQUXq0qnEXwTaLurihQ== Received: from BYAPR06CA0014.namprd06.prod.outlook.com (2603:10b6:a03:d4::27) by IA1PR12MB6577.namprd12.prod.outlook.com (2603:10b6:208:3a3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.11; Fri, 12 Dec 2025 06:08:23 +0000 Received: from SJ1PEPF00002314.namprd03.prod.outlook.com (2603:10b6:a03:d4:cafe::ad) by BYAPR06CA0014.outlook.office365.com (2603:10b6:a03:d4::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.9 via Frontend Transport; Fri, 12 Dec 2025 06:08:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SJ1PEPF00002314.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.9388.8 via Frontend Transport; Fri, 12 Dec 2025 06:08:22 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:08 -0800 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 11 Dec 2025 22:08:07 -0800 Received: from build-amhetre-focal-20250825.internal (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 11 Dec 2025 22:08:07 -0800 From: Ashish Mhetre To: , , , , , , CC: , , , , , , , , , Ashish Mhetre Subject: [PATCH V6 4/4] arm64: dts: nvidia: Add nodes for CMDQV Date: Fri, 12 Dec 2025 06:08:03 +0000 Message-ID: <20251212060803.1712637-5-amhetre@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20251212060803.1712637-1-amhetre@nvidia.com> References: <20251212060803.1712637-1-amhetre@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: SJ1PEPF00002314:EE_|IA1PR12MB6577:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c66b27b-f7d0-4671-b851-08de3944db05 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zv0cOz4xopBRB8zGLCIiANBqx2ZvcAaXaZVJmZo9wo4HxId9Tf2neaxv5+nZ?= =?us-ascii?Q?l9pp0zuEStA5IO7TVxcb+RB8FfAaGPVGMXy9CYVZAxdsVTXLYBjKTfpwsTQF?= =?us-ascii?Q?doDDbss01Y0eI7yQdMAw1Y/wOMKaXzrfF82DV2HpSIdersffB46OaVuUZA78?= =?us-ascii?Q?wZflEyF2W4oguH2IaENJl/lHXPpMvemQCm1f9eJtIksjjfh45CZCE71OsPkD?= =?us-ascii?Q?Rdum6G0jsiJvm+iCOElPgxvxYRGYE9Uii2keLDBDXzBb15pcjVtSW400KLyL?= =?us-ascii?Q?afDsFANYeyurN82Wh1RX7yS5l2tZFzOyCbmOaHJ29PLlIchj4eJWwGmCCgKP?= =?us-ascii?Q?lxmD2t2dHCFExd6cixITx7wtLjAd2wOAZFs4r1RSVXRbdxGJvxCTPafFtn9W?= =?us-ascii?Q?l3LiXbqmDh4AX/N/HutVCIPGOAWnsREzzb0B18kkDSyr5J0AaztWZlrmeAkK?= =?us-ascii?Q?aLVuBi8jmrf+Zm5GmPL1XcHYuDlYzyJIVlnSKJTuolj8mw6ES5LYdwaiInQA?= =?us-ascii?Q?P6eIekxrOOUuY3Z60uo+Z62WkUn+qbE4yv3EO9oQO+ea9lFSe80kJz0njP18?= =?us-ascii?Q?jnmXyAtKoUi1Fozy1tKz874cjZj1JoNOKaTDc/RwGumF7ZJKP6orbY18YAyM?= =?us-ascii?Q?g2TEHT9PwnEZ0rIYHEGJqkxtli8bIOd/K17q3MRsPqUiA+D3GnV5f+eJ+agu?= =?us-ascii?Q?lqyDqK44Bj4QXyOpX3GF4Rp+8jaMgt8acU3yCluC7JoshYHGYdjzaaqak8bI?= =?us-ascii?Q?h0Q0yi0aYMUWxvrNn28t98zwSJkEstuHCiA9Lu8M658Zsys374Ubuy2v0aXp?= =?us-ascii?Q?DO7EseU5q7bDei+3NXB+csK5PrjZT+df3eTpzrSQyc4bLU0zlk5x9+4nmtPK?= =?us-ascii?Q?Lfirv+GgJzvrcPkLtSLapfsqlqU7ZATIAiFRl00UVTvdITvmcpFcDZLOTcQz?= =?us-ascii?Q?qXyZCYDFeEKRhL2ylj6ebAF0OurzsF2m9LKgmL8crImPc3arRXf097d9ME2X?= =?us-ascii?Q?vT6hdtryMwiu7JrgNH//FBXJllSEIPN90fIRMGpZ4U5wmBLsNbi2F0NthWRR?= =?us-ascii?Q?SQ2PtwWzy66nJUX/gOqkHzztfrxE1iYMN4hxTcXWVeoopFmAzHdF6sOfzNoT?= =?us-ascii?Q?13EPedAgqSHqTsJio8LYSIVID+QkHx61p1mS6joXe3kDAEtOMlYisHcmdYPy?= =?us-ascii?Q?FuP578AcbkphsGW9nCYjvZ4zoJpkXewAVmgUpYHL+wGA6UlOHR7rDjgK2ywq?= =?us-ascii?Q?ItxwSWcEVK+VcIDo2vUv8KoObqzqOkc7ctYIxiGXyUecRYV2uPrXKbevbN17?= =?us-ascii?Q?VI3R6MnnDrSbEi67vlfSzS5Ff9XoB7mTBeJPMO2cGSvGQb07IY79iEyesTOd?= =?us-ascii?Q?RMtY2BbfeSdjjo9CfAsoFd/ZFu4K0UKAxhHTMCg6jF/bi1lrWaKfi9Hk9boE?= =?us-ascii?Q?WvH9fwaipT+mkxu9V6MkVrmAgBBw8ph5AbI7IsBMrBHcytIYPzqtVmKx9taU?= =?us-ascii?Q?BkOO7yzvEpZBnHalfW59G44qvYV9KLSL2GitLL//PLGupmeYeJDWwpNcDBp7?= =?us-ascii?Q?lcUggDua+mUz2i0wC80=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 06:08:22.7013 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8c66b27b-f7d0-4671-b851-08de3944db05 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00002314.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6577 Content-Type: text/plain; charset="utf-8" The Command Queue Virtualization (CMDQV) hardware is part of the SMMUv3 implementation on NVIDIA Tegra SoCs. It assists in virtualizing the command queue for the SMMU. Update SMMU compatible strings to use nvidia,tegra264-smmu to enable CMDQV support. Add device tree nodes for the CMDQV hardware and enable them on the tegra264-p3834 platform where SMMUs are enabled. Each SMMU instance is paired with its corresponding CMDQV instance via the nvidia,cmdqv property. Signed-off-by: Ashish Mhetre --- .../arm64/boot/dts/nvidia/tegra264-p3834.dtsi | 8 +++ arch/arm64/boot/dts/nvidia/tegra264.dtsi | 50 +++++++++++++++++-- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi b/arch/arm64/bo= ot/dts/nvidia/tegra264-p3834.dtsi index 06795c82427a..7e2c3e66c2ab 100644 --- a/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra264-p3834.dtsi @@ -23,8 +23,16 @@ iommu@5000000 { status =3D "okay"; }; =20 + cmdqv@5200000 { + status =3D "okay"; + }; + iommu@6000000 { status =3D "okay"; }; + + cmdqv@6200000 { + status =3D "okay"; + }; }; }; diff --git a/arch/arm64/boot/dts/nvidia/tegra264.dtsi b/arch/arm64/boot/dts= /nvidia/tegra264.dtsi index f137565da804..9eb7058e3149 100644 --- a/arch/arm64/boot/dts/nvidia/tegra264.dtsi +++ b/arch/arm64/boot/dts/nvidia/tegra264.dtsi @@ -3361,7 +3361,7 @@ bus@8100000000 { <0x02 0x00000000 0xd0 0x00000000 0x08 0x80000000>; /* ECAM, prefetchab= le memory, I/O */ =20 smmu1: iommu@5000000 { - compatible =3D "arm,smmu-v3"; + compatible =3D "nvidia,tegra264-smmu", "arm,smmu-v3"; reg =3D <0x00 0x5000000 0x0 0x200000>; interrupts =3D , ; @@ -3370,10 +3370,18 @@ smmu1: iommu@5000000 { =20 #iommu-cells =3D <1>; dma-coherent; + nvidia,cmdqv =3D <&cmdqv1>; + }; + + cmdqv1: cmdqv@5200000 { + compatible =3D "nvidia,tegra264-cmdqv"; + reg =3D <0x00 0x5200000 0x0 0x830000>; + interrupts =3D ; + status =3D "disabled"; }; =20 smmu2: iommu@6000000 { - compatible =3D "arm,smmu-v3"; + compatible =3D "nvidia,tegra264-smmu", "arm,smmu-v3"; reg =3D <0x00 0x6000000 0x0 0x200000>; interrupts =3D , ; @@ -3382,6 +3390,14 @@ smmu2: iommu@6000000 { =20 #iommu-cells =3D <1>; dma-coherent; + nvidia,cmdqv =3D <&cmdqv2>; + }; + + cmdqv2: cmdqv@6200000 { + compatible =3D "nvidia,tegra264-cmdqv"; + reg =3D <0x00 0x6200000 0x0 0x830000>; + interrupts =3D ; + status =3D "disabled"; }; =20 mc: memory-controller@8020000 { @@ -3437,7 +3453,7 @@ emc: external-memory-controller@8800000 { }; =20 smmu0: iommu@a000000 { - compatible =3D "arm,smmu-v3"; + compatible =3D "nvidia,tegra264-smmu", "arm,smmu-v3"; reg =3D <0x00 0xa000000 0x0 0x200000>; interrupts =3D , ; @@ -3446,10 +3462,18 @@ smmu0: iommu@a000000 { =20 #iommu-cells =3D <1>; dma-coherent; + nvidia,cmdqv =3D <&cmdqv0>; + }; + + cmdqv0: cmdqv@a200000 { + compatible =3D "nvidia,tegra264-cmdqv"; + reg =3D <0x00 0xa200000 0x0 0x830000>; + interrupts =3D ; + status =3D "disabled"; }; =20 smmu4: iommu@b000000 { - compatible =3D "arm,smmu-v3"; + compatible =3D "nvidia,tegra264-smmu", "arm,smmu-v3"; reg =3D <0x00 0xb000000 0x0 0x200000>; interrupts =3D , ; @@ -3458,6 +3482,14 @@ smmu4: iommu@b000000 { =20 #iommu-cells =3D <1>; dma-coherent; + nvidia,cmdqv =3D <&cmdqv4>; + }; + + cmdqv4: cmdqv@b200000 { + compatible =3D "nvidia,tegra264-cmdqv"; + reg =3D <0x00 0xb200000 0x0 0x830000>; + interrupts =3D ; + status =3D "disabled"; }; =20 i2c14: i2c@c410000 { @@ -3690,7 +3722,7 @@ bus@8800000000 { ranges =3D <0x00 0x00000000 0x88 0x00000000 0x01 0x00000000>; =20 smmu3: iommu@6000000 { - compatible =3D "arm,smmu-v3"; + compatible =3D "nvidia,tegra264-smmu", "arm,smmu-v3"; reg =3D <0x00 0x6000000 0x0 0x200000>; interrupts =3D , ; @@ -3699,6 +3731,14 @@ smmu3: iommu@6000000 { =20 #iommu-cells =3D <1>; dma-coherent; + nvidia,cmdqv =3D <&cmdqv3>; + }; + + cmdqv3: cmdqv@6200000 { + compatible =3D "nvidia,tegra264-cmdqv"; + reg =3D <0x00 0x6200000 0x0 0x830000>; + interrupts =3D ; + status =3D "disabled"; }; =20 hda@90b0000 { --=20 2.25.1