[igt-dev] [PATCH i-g-t] lib/igt_pm: make igt_pm_dmc_loaded() more robust

Jani Nikula jani.nikula at intel.com
Tue Feb 28 14:29:51 UTC 2023


Make igt_pm_dmc_loaded() more robust against changes in the debugfs
file. Read the entire contents of the file, at least with the current
output. Preserve logged output even if something gets added in front of
the file, and don't depend on exact length of the first line.

Cc: Imre Deak <imre.deak at intel.com>
Signed-off-by: Jani Nikula <jani.nikula at intel.com>
---
 lib/igt_pm.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 26e8c9f05fdf..6c84e94f6307 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -785,6 +785,11 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
 	return ret;
 }
 
+static const char *yesno(bool x)
+{
+	return x ? "yes" : "no";
+}
+
 /**
  * dmc_loaded:
  * @debugfs: fd to the debugfs dir.
@@ -798,7 +803,8 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
  */
 bool igt_pm_dmc_loaded(int debugfs)
 {
-	char buf[15];
+	char buf[512];
+	bool loaded;
 	int len;
 
 	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
@@ -807,8 +813,10 @@ bool igt_pm_dmc_loaded(int debugfs)
 
 	buf[len] = '\0';
 
-	igt_info("DMC: %s\n", buf);
-	return strstr(buf, "fw loaded: yes");
+	loaded = strstr(buf, "fw loaded: yes");
+	igt_info("DMC: fw loaded: %s\n", yesno(loaded));
+
+	return loaded;
 }
 
 /**
-- 
2.39.1



More information about the igt-dev mailing list