module_reload: remove snd_hda_intel
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 21 Oct 2013 13:45:41 +0000 (11:45 -0200)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 1 Nov 2013 14:55:46 +0000 (12:55 -0200)
The audio driver uses the power well provided by our driver, so on
Haswell we can't "rmmod i915" if we don't "rmmod snd_hda_intel" first.

The problem with removing snd_hda_intel is that we also need to kill
its users. On the specific machine I tested, the only user seem to be
alsactl, but on other machines this may change. IMHO we should leave
the "kill user space" step to whoever is running the script, but
Daniel asked me to put it here so we have a better chance of Just
Working on QA's machines.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70336
Requested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
tests/module_reload

index 3d8cb85..c1fd395 100755 (executable)
@@ -18,6 +18,10 @@ if ! echo 0 > /sys/class/vtconsole/vtcon1/bind ; then
        exit 77
 fi
 
+# The sound driver uses our power well
+pkill alsactl
+rmmod snd_hda_intel &> /dev/null
+
 #ignore errors in ips - gen5 only
 rmmod intel_ips &> /dev/null
 rmmod i915
@@ -38,6 +42,8 @@ fi
 modprobe i915
 echo 1 > /sys/class/vtconsole/vtcon1/bind
 
+modprobe snd_hda_intel
+
 # try to run something
 $SOURCE_DIR/gem_exec_nop > /dev/null && echo "module successfully loaded again"