Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > 9a6d783d97b0b9277535bc9097680dab > files > 5

mkinitrd-6.0.93-23.1.mga1.src.rpm

From dd8fa4aff361dc8e68dbe097a56e6b95e9eb72e2 Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi@mandriva.org>
Date: Sat, 26 Dec 2009 23:03:13 +0200
Subject: [PATCH] Add drm drivers for hardware with no currently loaded drm driver

Add drivers for all PCI display class devices, even if they do not have
a drm driver loaded at the time of mkinitrd being run.

The DRM_WHITELIST patch should be used with this one, in order to avoid
putting non-KMS drivers into initrd.
---
 mkinitrd |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/mkinitrd b/mkinitrd
index 909c804..5c02816 100755
--- a/mkinitrd
+++ b/mkinitrd
@@ -438,8 +438,8 @@ findgraphicsdriver() {
                 continue ;;
             *) handleddevices="$handleddevices $device" ;;
         esac
-        if [ -f /sys/class/drm/$device/device/modalias ]; then
-            modalias=$(cat /sys/class/drm/$device/device/modalias)
+        if [ -f $device/modalias ]; then
+            modalias=$(cat $device/modalias)
             moduledep --ignore-install $modalias
             for driver in $DRM_WHITELIST ; do
                 case " $deps " in *" $driver "*)
@@ -770,11 +770,17 @@ addgraphicsdev() {
 }
 
 handlegraphics() {
+    for device in $(grep -l 0x03 /sys/bus/pci/devices/0000\:0*/class); do
+        [ -e "$device" ] || continue
+        device=$(dirname $device)
+        vecho "probing for drm modules for pci device $device"
+        addgraphicsdev $device
+    done
     qpushd /sys/class/drm || return
     for device in card? ; do
-        [ -d "$device" ] || continue
+        [ -d "$device/device" ] || continue
         vecho "probing for modules for drm device $device"
-        addgraphicsdev $device
+        addgraphicsdev $(readlink $device/device)
     done
     qpopd
 }
@@ -1599,7 +1605,7 @@ emit "echo Setting up hotplug."
 emit "hotplug"
 
 # If we have drm loaded, include modesetting drivers
-if [ "x$PROBE" == "xyes" -a -d /sys/class/drm ]; then
+if [ "x$PROBE" == "xyes" ]; then
     handlegraphics
     emitmodules --modlist=GRAPHICSMODS
     resdeps GRAPHICSMODS
-- 
1.7.1