mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
dla: kmd: Update resource utilization logic
+ Return 0% resource utilization when DLA is turned off Bug 4170503 Change-Id: Iaeb6131dc482a750cae1d54b6931e3dd8c9192d0 Signed-off-by: Akshata Bhat <akshatab@nvidia.com> (cherry picked from commit 4da14f6b3b80f49ca00c92322ad71d75c8bfd4cd) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2929821 Tested-by: Ninad Malwade <nmalwade@nvidia.com> Reviewed-by: Ninad Malwade <nmalwade@nvidia.com> Reviewed-by: Arvind M <am@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
0df8edb69b
commit
e1ea98691b
@@ -302,7 +302,7 @@ static int nvdla_get_stats(struct nvdla_device *nvdla_dev)
|
||||
|
||||
static int debug_dla_fw_resource_util_show(struct seq_file *s, void *data)
|
||||
{
|
||||
int err;
|
||||
int err = 0;
|
||||
struct nvdla_device *nvdla_dev;
|
||||
struct platform_device *pdev;
|
||||
|
||||
@@ -325,28 +325,35 @@ static int debug_dla_fw_resource_util_show(struct seq_file *s, void *data)
|
||||
goto fail_no_dev;
|
||||
}
|
||||
|
||||
/* make sure that device is powered on */
|
||||
err = nvhost_module_busy(pdev);
|
||||
if (err != 0) {
|
||||
nvdla_dbg_err(pdev, "failed to power on\n");
|
||||
err = -ENODEV;
|
||||
goto fail_no_dev;
|
||||
}
|
||||
if (atomic_read(&pdev->dev.power.usage_count) == 0) {
|
||||
/* Print 0% utilization rate if power refcount for DLA
|
||||
* is zero i.e., DLA is not turned on
|
||||
*/
|
||||
util_rate_characteristic = 0;
|
||||
util_rate_mantissa = 0;
|
||||
} else {
|
||||
/* make sure that device is powered on */
|
||||
err = nvhost_module_busy(pdev);
|
||||
if (err != 0) {
|
||||
nvdla_dbg_err(pdev, "failed to power on\n");
|
||||
err = -ENODEV;
|
||||
goto fail_no_dev;
|
||||
}
|
||||
|
||||
err = nvdla_get_stats(nvdla_dev);
|
||||
if (err != 0) {
|
||||
nvdla_dbg_err(pdev, "Failed to send get stats command");
|
||||
goto fail_to_send_cmd;
|
||||
err = nvdla_get_stats(nvdla_dev);
|
||||
if (err != 0) {
|
||||
nvdla_dbg_err(pdev, "Failed to send get stats command");
|
||||
nvhost_module_idle(pdev);
|
||||
goto fail_no_dev;
|
||||
}
|
||||
utilization = *(unsigned int *)nvdla_dev->utilization_mem_va;
|
||||
util_rate_characteristic = (utilization / 10000);
|
||||
util_rate_mantissa = (utilization % 10000);
|
||||
nvhost_module_idle(pdev);
|
||||
}
|
||||
|
||||
utilization = *(unsigned int *)nvdla_dev->utilization_mem_va;
|
||||
util_rate_characteristic = (utilization / 10000);
|
||||
util_rate_mantissa = (utilization % 10000);
|
||||
|
||||
seq_printf(s, "%u.%04u\n", util_rate_characteristic, util_rate_mantissa);
|
||||
|
||||
fail_to_send_cmd:
|
||||
nvhost_module_idle(pdev);
|
||||
fail_no_dev:
|
||||
return err;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user