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)
|
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 nvdla_device *nvdla_dev;
|
||||||
struct platform_device *pdev;
|
struct platform_device *pdev;
|
||||||
|
|
||||||
@@ -325,6 +325,13 @@ static int debug_dla_fw_resource_util_show(struct seq_file *s, void *data)
|
|||||||
goto fail_no_dev;
|
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 */
|
/* make sure that device is powered on */
|
||||||
err = nvhost_module_busy(pdev);
|
err = nvhost_module_busy(pdev);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
@@ -336,17 +343,17 @@ static int debug_dla_fw_resource_util_show(struct seq_file *s, void *data)
|
|||||||
err = nvdla_get_stats(nvdla_dev);
|
err = nvdla_get_stats(nvdla_dev);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
nvdla_dbg_err(pdev, "Failed to send get stats command");
|
nvdla_dbg_err(pdev, "Failed to send get stats command");
|
||||||
goto fail_to_send_cmd;
|
nvhost_module_idle(pdev);
|
||||||
|
goto fail_no_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
utilization = *(unsigned int *)nvdla_dev->utilization_mem_va;
|
utilization = *(unsigned int *)nvdla_dev->utilization_mem_va;
|
||||||
util_rate_characteristic = (utilization / 10000);
|
util_rate_characteristic = (utilization / 10000);
|
||||||
util_rate_mantissa = (utilization % 10000);
|
util_rate_mantissa = (utilization % 10000);
|
||||||
|
nvhost_module_idle(pdev);
|
||||||
|
}
|
||||||
|
|
||||||
seq_printf(s, "%u.%04u\n", util_rate_characteristic, util_rate_mantissa);
|
seq_printf(s, "%u.%04u\n", util_rate_characteristic, util_rate_mantissa);
|
||||||
|
|
||||||
fail_to_send_cmd:
|
|
||||||
nvhost_module_idle(pdev);
|
|
||||||
fail_no_dev:
|
fail_no_dev:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user