ntel-gpu-tools/tests/module_reload
Paulo Zanoni bd0aa100ca module_reload: remove snd_hda_intel
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>
2013-11-01 12:55:46 -02:00

51 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
#
# Testcase: Reload the drm module
#
# ... we've broken this way too often :(
#
SOURCE_DIR="$( dirname "${BASH_SOURCE[0]}" )"
. $SOURCE_DIR/drm_lib.sh
# 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
# 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
#ignore errors in intel-gtt, often built-in
rmmod intel-gtt &> /dev/null
# drm may be used by other devices (nouveau, radeon, udl, etc)
rmmod drm_kms_helper &> /dev/null
rmmod drm &> /dev/null
if lsmod | grep i915 &> /dev/null ; then
echo WARNING: i915.ko still loaded!
exitcode=1
else
echo module successfully unloaded
exitcode=0
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"
exit $exitcode