debian/changelog                        |    5 ++
 debian/patches/03_auto_load_driver.diff |   69 ++++++++++++++++++--------------
 2 files changed, 44 insertions(+), 30 deletions(-)

New commits:
commit 2e1f6a803f45572ffcdbb51f316f994a3429883a
Author: David Nusinow <[EMAIL PROTECTED]>
Date:   Thu Sep 20 23:16:58 2007 -0400

    Add support for a partially configured device section
    
    Implemented in 03_autoload_driver.diff. Now if you have a device section
    but lack a driver, it'll use the settings. This will allow you to just
    have a device section and enable EXA but not have to specify the driver or
    anything else.

diff --git a/debian/changelog b/debian/changelog
index 4a3fa8f..0963b83 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,11 @@ xorg-server (2:1.4-3) UNRELEASED; urgency=low
     + Change by hacked "ids" file name suffix check to use strncmp and check
       for ".ids"
     + Use strncpy instead of strncat unnecessarily
+  * Add support for a partially configured device section 
+    Implemented in 03_autoload_driver.diff. Now if you have a device section
+    but lack a driver, it'll use the settings. This will allow you to just
+    have a device section and enable EXA but not have to specify the driver or
+    anything else.
 
   [ Brice Goglin ]
   * Build the Xfbdev server in new package xserver-xfbdev, closes: #439764.
diff --git a/debian/patches/03_auto_load_driver.diff 
b/debian/patches/03_auto_load_driver.diff
index 3c89522..971b4ac 100644
--- a/debian/patches/03_auto_load_driver.diff
+++ b/debian/patches/03_auto_load_driver.diff
@@ -1,7 +1,7 @@
 Index: xorg-server/hw/xfree86/common/xf86AutoConfig.c
 ===================================================================
---- xorg-server.orig/hw/xfree86/common/xf86AutoConfig.c        2007-09-16 
20:14:26.000000000 -0400
-+++ xorg-server/hw/xfree86/common/xf86AutoConfig.c     2007-09-16 
20:18:17.000000000 -0400
+--- xorg-server.orig/hw/xfree86/common/xf86AutoConfig.c        2007-09-20 
21:41:34.000000000 -0400
++++ xorg-server/hw/xfree86/common/xf86AutoConfig.c     2007-09-20 
23:00:23.000000000 -0400
 @@ -39,6 +39,7 @@
  #include "xf86Config.h"
  #include "xf86Priv.h"
@@ -10,7 +10,7 @@ Index: xorg-server/hw/xfree86/common/xf86AutoConfig.c
  
  /* Sections for the default built-in configuration. */
  
-@@ -287,3 +288,199 @@
+@@ -287,3 +288,207 @@
  
      return (ret == CONFIG_OK);
  }
@@ -32,7 +32,7 @@ Index: xorg-server/hw/xfree86/common/xf86AutoConfig.c
 +}
 +
 +GDevPtr
-+autoConfigDevice(void)
++autoConfigDevice(GDevPtr preconf_device)
 +{
 +    GDevPtr ptr = NULL;
 +    confScreenPtr scrn = NULL;
@@ -41,19 +41,27 @@ Index: xorg-server/hw/xfree86/common/xf86AutoConfig.c
 +        return NULL;
 +    }
 +
-+    ptr = (GDevPtr)xalloc(sizeof(GDevRec));
-+    if (!ptr) {
-+        return NULL;
-+    }
-+    memset((GDevPtr)ptr, 0, sizeof(GDevRec));
-+    ptr->chipID = -1;
-+    ptr->chipRev = -1;
-+    ptr->irq = -1;
++    /* If there's a configured section with no driver chosen, use it */
++    if (preconf_device) {
++        ptr = preconf_device;
++    } else {
++        ptr = (GDevPtr)xalloc(sizeof(GDevRec));
++        if (!ptr) {
++            return NULL;
++        }
++        memset((GDevPtr)ptr, 0, sizeof(GDevRec));
++        ptr->chipID = -1;
++        ptr->chipRev = -1;
++        ptr->irq = -1;
 +
-+    ptr->active = TRUE;
-+    ptr->claimed = FALSE;
-+    ptr->identifier = "Autoconfigured Video Device";
-+    ptr->driver = chooseVideoDriver();
++        ptr->active = TRUE;
++        ptr->claimed = FALSE;
++        ptr->identifier = "Autoconfigured Video Device";
++        ptr->driver = NULL;
++    }
++    if (!ptr->driver) {
++        ptr->driver = chooseVideoDriver();
++    }
 +
 +    /* TODO Handle multiple screen sections */
 +    if (xf86ConfigLayout.screens && 
!xf86ConfigLayout.screens->screen->device) {   
@@ -212,8 +220,8 @@ Index: xorg-server/hw/xfree86/common/xf86AutoConfig.c
 +}
 Index: xorg-server/hw/xfree86/common/xf86Config.c
 ===================================================================
---- xorg-server.orig/hw/xfree86/common/xf86Config.c    2007-09-16 
20:14:26.000000000 -0400
-+++ xorg-server/hw/xfree86/common/xf86Config.c 2007-09-16 20:15:29.000000000 
-0400
+--- xorg-server.orig/hw/xfree86/common/xf86Config.c    2007-09-20 
21:41:34.000000000 -0400
++++ xorg-server/hw/xfree86/common/xf86Config.c 2007-09-20 23:00:23.000000000 
-0400
 @@ -1928,8 +1928,10 @@
            return FALSE;
      }
@@ -248,8 +256,8 @@ Index: xorg-server/hw/xfree86/common/xf86Config.c
      devicep->board = conf_device->dev_board;
 Index: xorg-server/hw/xfree86/common/xf86Config.h
 ===================================================================
---- xorg-server.orig/hw/xfree86/common/xf86Config.h    2007-09-16 
20:14:26.000000000 -0400
-+++ xorg-server/hw/xfree86/common/xf86Config.h 2007-09-16 20:15:29.000000000 
-0400
+--- xorg-server.orig/hw/xfree86/common/xf86Config.h    2007-09-20 
21:41:34.000000000 -0400
++++ xorg-server/hw/xfree86/common/xf86Config.h 2007-09-20 21:41:57.000000000 
-0400
 @@ -34,6 +34,8 @@
  #define _xf86_config_h
  
@@ -263,24 +271,25 @@ Index: xorg-server/hw/xfree86/common/xf86Config.h
  ConfigStatus xf86HandleConfigFile(Bool);
  
  Bool xf86AutoConfig(void);
-+GDevPtr autoConfigDevice(void);
++GDevPtr autoConfigDevice(GDevPtr preconf_device);
 +char* chooseVideoDriver(void);
 +int xchomp(char *line);
  
  #endif /* _xf86_config_h */
 Index: xorg-server/hw/xfree86/common/xf86Init.c
 ===================================================================
---- xorg-server.orig/hw/xfree86/common/xf86Init.c      2007-09-16 
20:14:26.000000000 -0400
-+++ xorg-server/hw/xfree86/common/xf86Init.c   2007-09-16 20:15:29.000000000 
-0400
-@@ -347,6 +347,15 @@
+--- xorg-server.orig/hw/xfree86/common/xf86Init.c      2007-09-20 
21:41:34.000000000 -0400
++++ xorg-server/hw/xfree86/common/xf86Init.c   2007-09-20 23:00:15.000000000 
-0400
+@@ -347,6 +347,16 @@
      }
  
      /* Load all driver modules specified in the config file */
 +    /* If there aren't any specified in the config file, autoconfig them */
 +    /* FIXME: Does not handle multiple active screen sections, but I'm not
 +     * sure if we really want to handle that case*/
-+    if (!xf86ConfigLayout.screens->screen->device) {
-+        if (!autoConfigDevice()) {
++    GDevPtr configured_device = xf86ConfigLayout.screens->screen->device;
++    if ((!configured_device) || (!configured_device->driver)) {
++        if (!autoConfigDevice(configured_device)) {
 +            xf86Msg(X_ERROR, "Automatic driver configuration failed\n");
 +            return ;
 +        }
@@ -290,8 +299,8 @@ Index: xorg-server/hw/xfree86/common/xf86Init.c
        xfree(modulelist);
 Index: xorg-server/hw/xfree86/parser/Screen.c
 ===================================================================
---- xorg-server.orig/hw/xfree86/parser/Screen.c        2007-09-16 
20:14:26.000000000 -0400
-+++ xorg-server/hw/xfree86/parser/Screen.c     2007-09-16 20:15:29.000000000 
-0400
+--- xorg-server.orig/hw/xfree86/parser/Screen.c        2007-09-20 
21:41:34.000000000 -0400
++++ xorg-server/hw/xfree86/parser/Screen.c     2007-09-20 21:41:57.000000000 
-0400
 @@ -526,15 +526,7 @@
                        }
                }
@@ -311,8 +320,8 @@ Index: xorg-server/hw/xfree86/parser/Screen.c
                while (adaptor)
 Index: xorg-server/hw/xfree86/parser/read.c
 ===================================================================
---- xorg-server.orig/hw/xfree86/parser/read.c  2007-09-16 20:14:26.000000000 
-0400
-+++ xorg-server/hw/xfree86/parser/read.c       2007-09-16 20:15:29.000000000 
-0400
+--- xorg-server.orig/hw/xfree86/parser/read.c  2007-09-20 21:41:34.000000000 
-0400
++++ xorg-server/hw/xfree86/parser/read.c       2007-09-20 21:41:57.000000000 
-0400
 @@ -80,8 +80,8 @@
  static int
  xf86validateConfig (XF86ConfigPtr p)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to