xf86-video-intel: configure.ac src/i810_driver.c

Jesse Barnes jbarnes at kemper.freedesktop.org
Tue Aug 25 09:48:20 PDT 2009


 configure.ac      |   10 ++++++++++
 src/i810_driver.c |   24 ++++++++++++++++++++++--
 2 files changed, 32 insertions(+), 2 deletions(-)

New commits:
commit 1fc3f467ab3edd405adc569ac7f629077e6ffb9d
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Aug 25 09:46:10 2009 -0700

    Add KMS only build flag
    
    Rather than refactoring all our init code only to have it go away when
    we remove UMS, this patch adds a build time flag to allow the driver to
    assume KMS support.
    
    With this flag active, the driver will not request that I/O or MEM be
    enabled at probe time, which can allow the server (if other drivers also
    cooperate) to run as a non-root user.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/configure.ac b/configure.ac
index d5c12a8..54560bc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -83,6 +83,11 @@ AC_ARG_ENABLE(xvmc, AC_HELP_STRING([--disable-xvmc],
               [XVMC="$enableval"],
               [XVMC=yes])
 
+AC_ARG_ENABLE(kms-only, AC_HELP_STRING([--enable-kms-only],
+                                  [Assume KMS support [[default=no]]]),
+              [KMS_ONLY="$enableval"],
+              [KMS_ONLY=no])
+
 # Checks for extensions
 XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
 XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
@@ -166,6 +171,11 @@ if test "$XVMC" = yes; then
     	AC_SUBST([XVMCLIB_CFLAGS])
 fi
 
+AM_CONDITIONAL(KMS_ONLY, test x$KMS_ONLY = xyes)
+if test "$KMS_ONLY" = yes; then
+	AC_DEFINE(KMS_ONLY,1,[Assume KMS support])
+fi
+
 AC_SUBST([DRI_CFLAGS])
 AC_SUBST([XORG_CFLAGS])
 AC_SUBST([WARN_CFLAGS])
diff --git a/src/i810_driver.c b/src/i810_driver.c
index 0366901..a08a500 100644
--- a/src/i810_driver.c
+++ b/src/i810_driver.c
@@ -79,7 +79,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 /* Required Functions: */
 
 static void I810Identify(int flags);
-
+static Bool I810DriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr);
 static Bool intel_pci_probe (DriverPtr		drv,
 			     int		entity_num,
 			     struct pci_device	*dev,
@@ -150,7 +150,7 @@ _X_EXPORT DriverRec I810 = {
    I810AvailableOptions,
    NULL,
    0,
-   NULL,
+   I810DriverFunc,
    intel_device_match,
    intel_pci_probe
 };
@@ -394,6 +394,26 @@ I810AvailableOptions(int chipid, int busid)
 #endif
 }
 
+static Bool
+I810DriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, pointer ptr)
+{
+    xorgHWFlags *flag;
+
+    switch (op) {
+        case GET_REQUIRED_HW_INTERFACES:
+            flag = (CARD32*)ptr;
+#ifdef KMS_ONLY
+            (*flag) = 0;
+#else
+	    (*flag) = HW_IO | HW_MMIO;
+#endif
+            return TRUE;
+        default:
+	    /* Unknown or deprecated function */
+            return FALSE;
+    }
+}
+
 struct pci_device *
 intel_host_bridge (void)
 {


More information about the xorg-commit mailing list