summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac10
-rw-r--r--src/i810_driver.c24
2 files changed, 32 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index d5c12a8d..54560bc3 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 03669016..a08a500f 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)
{