drm_lib.sh: Be more precise in detecting the i915 /sys path

We need to be careful in case other devices grow an error file in the
future. The first step here is just to check the minor that corresponds
with the debugfs path found for the device
This commit is contained in:
Chris Wilson 2013-07-03 08:10:28 +01:00
parent e50ae9596c
commit bc388b54d4

View File

@ -13,9 +13,9 @@ if [ -d /sys/kernel/debug/dri ] ; then
fi
i915_dfs_path=x
for dir in `ls $debugfs_path` ; do
if [ -f $debugfs_path/$dir/i915_error_state ] ; then
i915_dfs_path=$debugfs_path/$dir
for minor in `seq 0 16`; do
if [ -f $debugfs_path/$minor/i915_error_state ] ; then
i915_dfs_path=$debugfs_path/$minor
break
fi
done
@ -29,15 +29,11 @@ if [ `cat $i915_dfs_path/clients | wc -l` -gt "2" ] ; then
die "ERROR: other drm clients running"
fi
i915_sfs_path=
if [ -d /sys/class/drm ] ; then
sysfs_path=/sys/class/drm
fi
i915_sfs_path=
for dir in `ls $sysfs_path` ; do
if [ -f $sysfs_path/$dir/error ] ; then
i915_sfs_path=$sysfs_path/$dir
break
if [ -f $sysfs_path/card$minor/error ] ; then
i915_sfs_path="$sysfs_path/card$minor"
fi
done
fi
# sysfs may not exist as the 'error' is a new interface in 3.11