drv_module_reload: Unbind the right console driver
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Jul 2014 17:46:46 +0000 (19:46 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Jul 2014 17:55:07 +0000 (19:55 +0200)
We want to unbind fbcon, but only fbcon and only if it's there.

This was broken by the recent patch in 3.16-rc to kick out the vgacon
driver. I've forgotten to push out the relevant fix from the machine
used to create the kick vgacon patches.

v2: Dropped duplicated /, spotted by Damien.

Reported-by: Damien Lespiau <damien.lespiau@intel.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
tests/drv_module_reload

index 66cd6bb..5cbff89 100755 (executable)
@@ -10,13 +10,13 @@ SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
 
 # no other drm service should be running, so we can just unbind
 
-# vtcon0 is vga, vtcon1 fbcon and let's pray that won't change due to boot load
-# time changes
-if ! echo 0 > /sys/class/vtconsole/vtcon1/bind ; then
-       echo -e "no kms unload support"
-       echo "please enable CONFIG_VT_HW_CONSOLE_BINDING in the kernel"
-       exit 77
-fi
+# we must kick away fbcon (but only fbcon)
+for vtcon in /sys/class/vtconsole/vtcon*/ ; do
+       if grep "frame buffer device" $vtcon/name > /dev/null ; then
+               echo unbinding $vtcon: `cat $vtcon/name`
+               echo 0 > $vtcon/bind
+       fi
+done
 
 # The sound driver uses our power well
 pkill alsactl