Boolean module parameters are exposed as "Y"/"N" strings, not 0/1.
Make igt_sysfs_get_boolean() helper useful for getting their values.

v2: Use case insensitive string compare and more compact style (Chris)

Signed-off-by: Janusz Krzysztofik <janusz.krzyszto...@linux.intel.com>
Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
I've made it still more compact by eliminating a goto, Chris, I hope
your Reviewed-by: still applies.

Thanks,
Janusz

 lib/igt_sysfs.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index c439944d..17d0ab80 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -474,11 +474,19 @@ bool igt_sysfs_set_u32(int dir, const char *attr, 
uint32_t value)
  */
 bool igt_sysfs_get_boolean(int dir, const char *attr)
 {
+       char *buf;
        int result;
 
-       if (igt_sysfs_scanf(dir, attr, "%d", &result) != 1)
+       buf = igt_sysfs_get(dir, attr);
+       if (!buf)
                return false;
 
+       if (sscanf(buf, "%d", &result) != 1) {
+               /* kernel's param_get_bool() returns "Y"/"N" */
+               result = !strcasecmp(buf, "Y");
+       }
+
+       free(buf);
        return result;
 }
 
-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to