From bf60517305ae1ad5470ffd5b44730f858a45128c Mon Sep 17 00:00:00 2001 From: Johnny Liu Date: Tue, 7 Oct 2025 17:09:25 +0000 Subject: [PATCH] drivers: pva: enable profiling when it is active Bug 5467846 Change-Id: Iad35078b05e0dbfa5ac638a718b1a900fd054d9e Signed-off-by: Johnny Liu Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3465128 Reviewed-by: svcacv Reviewed-by: Nan Wang GVS: buildbot_gerritrpt Reviewed-by: Omar Nemri --- .../tegra/host/pva/src/kmd/common/pva_kmd_debugfs.c | 3 ++- .../host/pva/src/kmd/common/pva_kmd_tegra_stats.c | 13 +------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_debugfs.c b/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_debugfs.c index 659bbae6..9bdb766d 100644 --- a/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_debugfs.c +++ b/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_debugfs.c @@ -143,7 +143,8 @@ static int64_t get_vpu_stats(struct pva_kmd_device *dev, void *file_data, kmd_tegra_stats.average_vpu_utilization[0] = 0; kmd_tegra_stats.average_vpu_utilization[1] = 0; - pva_kmd_notify_fw_get_tegra_stats(dev, &kmd_tegra_stats); + if (pva_kmd_device_maybe_on(dev)) + pva_kmd_notify_fw_get_tegra_stats(dev, &kmd_tegra_stats); return print_vpu_stats(&kmd_tegra_stats, out_buffer, offset, size); } diff --git a/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_tegra_stats.c b/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_tegra_stats.c index 1952f828..95db4b4e 100644 --- a/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_tegra_stats.c +++ b/drivers/video/tegra/host/pva/src/kmd/common/pva_kmd_tegra_stats.c @@ -63,18 +63,8 @@ pva_kmd_notify_fw_get_tegra_stats(struct pva_kmd_device *pva, uint64_t buffer_offset = 0U; enum pva_error err = PVA_SUCCESS; struct pva_kmd_fw_tegrastats fw_tegra_stats = { 0 }; - bool stats_enabled = pva->debugfs_context.stats_enable; uint64_t duration = 0U; - if (stats_enabled == false) { - pva_kmd_log_err("Tegra stats are disabled"); - goto err_out; - } - - if (!pva_kmd_device_maybe_on(pva)) { - goto out; - } - /* Power on PVA if not already */ err = pva_kmd_device_busy(pva); if (err != PVA_SUCCESS) { @@ -85,7 +75,7 @@ pva_kmd_notify_fw_get_tegra_stats(struct pva_kmd_device *pva, pva_kmd_set_cmd_get_tegra_stats(&cmd, pva->tegra_stats_resource_id, pva->tegra_stats_buf_size, - buffer_offset, stats_enabled); + buffer_offset, true); err = pva_kmd_submit_cmd_sync(&pva->submitter, &cmd, sizeof(cmd), PVA_KMD_WAIT_FW_POLL_INTERVAL_US, @@ -100,7 +90,6 @@ pva_kmd_notify_fw_get_tegra_stats(struct pva_kmd_device *pva, pva_kmd_device_idle(pva); -out: duration = sat_sub64(fw_tegra_stats.window_end_time, fw_tegra_stats.window_start_time);