From d684657795bcb9babb75bfc0f360c0e8c6378f40 Mon Sep 17 00:00:00 2001 From: Rahul Bedarkar Date: Mon, 10 Feb 2025 10:33:49 +0000 Subject: [PATCH] NVIDIA: SAUCE: tegra-epl: Map mission status reg if only required Mission status register is only required if either of the MISC EC registers is mapped. Bug 5100266 Bug 5415787 Bug 5405209 Change-Id: Idf9c64050d3d106ac1b78b7c1e0d64257f9195d3 Signed-off-by: Rahul Bedarkar Reviewed-on: https://git-master.nvidia.com/r/c/3rdparty/canonical/linux-noble/+/3430973 (cherry picked from commit c28c7e50c460912f60a1b4e265d37a88fc522136) Reviewed-on: https://git-master.nvidia.com/r/c/3rdparty/canonical/linux-noble/+/3459570 Tested-by: Hiteshkumar Patel GVS: buildbot_gerritrpt Reviewed-by: Brad Griffis Reviewed-by: Dipen Patel --- drivers/platform/tegra/tegra-epl.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/platform/tegra/tegra-epl.c b/drivers/platform/tegra/tegra-epl.c index 06b8a6a03ee8..33de148546b9 100644 --- a/drivers/platform/tegra/tegra-epl.c +++ b/drivers/platform/tegra/tegra-epl.c @@ -1,5 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 -// Copyright (c) 2021-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// Copyright (c) 2021-2025, NVIDIA CORPORATION & AFFILIATES. All rights reserved. #include #include @@ -333,6 +333,7 @@ static int epl_client_probe(struct platform_device *pdev) const struct device_node *np = dev->of_node; int iterator = 0; char name[32] = "client-misc-sw-generic-err"; + bool is_misc_ec_mapped = false; hs_state = HANDSHAKE_PENDING; @@ -359,6 +360,8 @@ static int epl_client_probe(struct platform_device *pdev) ret = -1; dev_err(&pdev->dev, "error in mapping misc err register for err #%d\n", iterator); + } else { + is_misc_ec_mapped = true; } } else { pr_info("Misc Sw Generic Err %d not configured for any client\n", iterator); @@ -374,11 +377,13 @@ static int epl_client_probe(struct platform_device *pdev) dev_info(dev, "handshake-retry-count %u\n", handshake_retry_count); - mission_err_status_va = devm_platform_ioremap_resource(pdev, NUM_SW_GENERIC_ERR * 2); - if (IS_ERR(mission_err_status_va)) { - isAddrMappOk = false; - dev_err(&pdev->dev, "error in mapping mission error status register\n"); - return PTR_ERR(mission_err_status_va); + if (is_misc_ec_mapped == true) { + mission_err_status_va = devm_platform_ioremap_resource(pdev, NUM_SW_GENERIC_ERR * 2); + if (IS_ERR(mission_err_status_va)) { + isAddrMappOk = false; + dev_err(&pdev->dev, "error in mapping mission error status register\n"); + return PTR_ERR(mission_err_status_va); + } } if (ret == 0) {