diff options
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | src/i810_driver.c | 24 |
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) { |