[Intel-gfx] [PATCH i-g-t] lib/sysfs: Fix fbcon rebind

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Wed Sep 6 13:04:01 UTC 2017


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

"echo 1 > vtconN/bind" doesn't actually do anything. Looks like the only
way to rebind fbcon is to unbind the current console.

I suppose the failure to rebind might be a kernel bug, but I can't be
bothered to decode the vt.c spaghetti so let's just try to handle this
in igt. For simplicity let's assume the currently bound console is the
dummy console and unbind that when we want to rebind fbcon. That works
for me.

With rebinding not working we can't really tell wich console is going
to get bound anyway, so there's no way to make this code really robust,
assuming we ever had more than these two console drivers involved.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 lib/igt_sysfs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c
index 9227e374bf44..12be8a165c34 100644
--- a/lib/igt_sysfs.c
+++ b/lib/igt_sysfs.c
@@ -516,13 +516,14 @@ void kick_fbcon(bool enable)
 		if (len >= 0)
 			buf[len] = '\0';
 
-		if (!strstr(buf, "frame buffer device"))
+		if (!strstr(buf, enable ? "dummy device" :
+			    "frame buffer device"))
 			continue;
 
 		sprintf(buf, "%s/%s/bind", path, de->d_name);
 		fd = open(buf, O_WRONLY);
 		if (fd != -1) {
-			igt_ignore_warn(write(fd, enable ? "1\n" : "0\n", 2));
+			igt_ignore_warn(write(fd, "0\n", 2));
 			close(fd);
 		}
 	}
-- 
2.13.5



More information about the Intel-gfx mailing list