debian/changelog                         |   11 +++++++
 debian/patches/fail-probe-if-no-kms.diff |   40 --------------------------
 debian/patches/series                    |    1 
 src/intel_driver.c                       |   35 -----------------------
 src/intel_module.c                       |   46 ++++++++++++++++++++++++++++---
 5 files changed, 53 insertions(+), 80 deletions(-)

New commits:
commit a50928e5d6a8e239ae5649c527d7a2df07a557c5
Author: Julien Cristau <jcris...@debian.org>
Date:   Sat Dec 18 20:22:33 2010 +0100

    changelog entry

diff --git a/debian/changelog b/debian/changelog
index 47a7170..265e396 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+xserver-xorg-video-intel (2:2.13.0-5) UNRELEASED; urgency=low
+
+  * Drop the intel_pci_probe patch from -4 (closes: #606288).  This relied on
+    i915.ko getting loaded automatically, which doesn't happen if:
+    - the kernel is built without CONFIG_DRM_I915_KMS and lacks modaliases, or
+    - the user kept obsolete /etc/modprobe.d blacklists around.
+  * Use the patch from upstream instead, which tries to load the kernel driver
+    before testing for kms.
+
+ -- Julien Cristau <jcris...@debian.org>  Sat, 18 Dec 2010 20:17:18 +0100
+
 xserver-xorg-video-intel (2:2.13.0-4) unstable; urgency=low
 
   [ Julien Cristau ]

commit 20af913400bd0d847f36da4b5253b737335db1d8
Author: Chris Wilson <ch...@chris-wilson.co.uk>
Date:   Sat Oct 2 13:32:58 2010 +0100

    Do not claim the PCI device if !KMS
    
    By returning FALSE whilst probing if we can't find a KMS driver, we
    allow X to fallback to trying the VESA driver -- rather than failing.
    
    The initial idea for this was by Julien Cristau.
    
    Reported-by: Julien Cristau <jcris...@debian.org>
    Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
    (cherry picked from commit 455f2939a661764ebb8d1747d44e16a0a8937808)

diff --git a/src/intel_driver.c b/src/intel_driver.c
index d086d94..26bdc6a 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -262,33 +262,6 @@ static void PreInitCleanup(ScrnInfoPtr scrn)
        scrn->driverPrivate = NULL;
 }
 
-/*
- * DRM mode setting Linux only at this point... later on we could
- * add a wrapper here.
- */
-static Bool intel_kernel_mode_enabled(ScrnInfoPtr scrn)
-{
-       struct pci_device *dev;
-       char id[20];
-       int ret;
-
-       dev = 
xf86GetPciInfoForEntity(xf86GetEntityInfo(scrn->entityList[0])->index);
-       snprintf(id, sizeof(id),
-                "pci:%04x:%02x:%02x.%d",
-                dev->domain, dev->bus, dev->dev, dev->func);
-
-       ret = drmCheckModesettingSupported(id);
-       if (ret) {
-               if (xf86LoadKernelModule("i915"))
-                       ret = drmCheckModesettingSupported(id);
-       }
-       /* Be nice to the user and load fbcon too */
-       if (!ret)
-               (void)xf86LoadKernelModule("fbcon");
-
-       return ret == 0;
-}
-
 static void intel_check_chipset_option(ScrnInfoPtr scrn)
 {
        intel_screen_private *intel = intel_get_screen_private(scrn);
@@ -513,18 +486,10 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
        EntityInfoPtr pEnt;
        int flags24;
        Gamma zeros = { 0.0, 0.0, 0.0 };
-       int drm_mode_setting;
 
        if (scrn->numEntities != 1)
                return FALSE;
 
-       drm_mode_setting = intel_kernel_mode_enabled(scrn);
-       if (!drm_mode_setting) {
-               xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-                          "No kernel modesetting driver detected.\n");
-               return FALSE;
-       }
-
        pEnt = xf86GetEntityInfo(scrn->entityList[0]);
 
        if (flags & PROBE_DETECT)
diff --git a/src/intel_module.c b/src/intel_module.c
index 53e1cb6..8fd55ed 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -37,6 +37,8 @@
 #include "intel_driver.h"
 #include "legacy/legacy.h"
 
+#include <xf86drmMode.h>
+
 static const SymTabRec _intel_chipsets[] = {
     {PCI_CHIP_I810,            "i810"},
     {PCI_CHIP_I810_DC100,      "i810-dc100"},
@@ -361,6 +363,27 @@ static Bool intel_driver_func(ScrnInfoPtr pScrn,
     }
 }
 
+static Bool has_kernel_mode_setting(struct pci_device *dev)
+{
+       char id[20];
+       int ret;
+
+       snprintf(id, sizeof(id),
+                "pci:%04x:%02x:%02x.%d",
+                dev->domain, dev->bus, dev->dev, dev->func);
+
+       ret = drmCheckModesettingSupported(id);
+       if (ret) {
+               if (xf86LoadKernelModule("i915"))
+                       ret = drmCheckModesettingSupported(id);
+       }
+       /* Be nice to the user and load fbcon too */
+       if (!ret)
+               (void)xf86LoadKernelModule("fbcon");
+
+       return ret == 0;
+}
+
 /*
  * intel_pci_probe --
  *
@@ -373,11 +396,26 @@ static Bool intel_pci_probe (DriverPtr            driver,
                             struct pci_device  *device,
                             intptr_t           match_data)
 {
-    ScrnInfoPtr scrn = NULL;
+    ScrnInfoPtr scrn;
+
+    if (!has_kernel_mode_setting(device)) {
+#if KMS_ONLY
+           return FALSE;
+#else
+           switch (DEVICE_ID(device)) {
+           case PCI_CHIP_I810:
+           case PCI_CHIP_I810_DC100:
+           case PCI_CHIP_I810_E:
+           case PCI_CHIP_I815:
+                   break;
+           default:
+                   return FALSE;
+           }
+#endif
+    }
 
-    scrn = xf86ConfigPciEntity(scrn, 0, entity_num, intel_pci_chipsets,
-                              NULL,
-                              NULL, NULL, NULL, NULL);
+    scrn = xf86ConfigPciEntity(NULL, 0, entity_num, intel_pci_chipsets,
+                              NULL, NULL, NULL, NULL, NULL);
     if (scrn != NULL) {
        scrn->driverVersion = INTEL_VERSION;
        scrn->driverName = INTEL_DRIVER_NAME;

commit e4f65e77438e40b85f6c5d4a2f0657ed10a1a322
Author: Julien Cristau <jcris...@debian.org>
Date:   Sat Dec 18 20:16:46 2010 +0100

    Drop the 'fail probe if no kms' patch

diff --git a/debian/patches/fail-probe-if-no-kms.diff 
b/debian/patches/fail-probe-if-no-kms.diff
deleted file mode 100644
index c88f9cb..0000000
--- a/debian/patches/fail-probe-if-no-kms.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-From a2b44cc8d4a9182becaaa00eda1ad3adcea92ee3 Mon Sep 17 00:00:00 2001
-From: Julien Cristau <jcris...@debian.org>
-Date: Thu, 23 Sep 2010 17:17:05 +0200
-Subject: [PATCH] intel_pci_probe: bail if there's no KMS
-
-This allows fallback to vesa when there's no kernel driver bound to the
-intel pci device.
----
- src/intel_module.c |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/src/intel_module.c b/src/intel_module.c
-index 53e1cb6..7356ab8 100644
---- a/src/intel_module.c
-+++ b/src/intel_module.c
-@@ -374,6 +374,21 @@ static Bool intel_pci_probe (DriverPtr            driver,
-                            intptr_t           match_data)
- {
-     ScrnInfoPtr scrn = NULL;
-+    if (!pci_device_has_kernel_driver(device))
-+#if KMS_ONLY
-+        return FALSE;
-+#else
-+        switch (DEVICE_ID(device)) {
-+        case PCI_CHIP_I810:
-+        case PCI_CHIP_I810_DC100:
-+        case PCI_CHIP_I810_E:
-+        case PCI_CHIP_I815:
-+            break;
-+
-+        default:
-+            return FALSE;
-+      }
-+#endif
- 
-     scrn = xf86ConfigPciEntity(scrn, 0, entity_num, intel_pci_chipsets,
-                              NULL,
--- 
-1.7.1
-
diff --git a/debian/patches/series b/debian/patches/series
index ed16c3f..7732e96 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
 i8xx-shadow.diff
 libdrm-from-sid-is-ok.diff
 revert-display-outputs-are-enabled-automatically.diff
-fail-probe-if-no-kms.diff


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1pu2ox-0008bb...@alioth.debian.org

Reply via email to