summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-07-28 14:19:24 +1000
committerDave Airlie <airlied@redhat.com>2009-07-28 14:19:24 +1000
commit0a168401c401727e49a12cae43a6a387b1f2928d (patch)
tree14009cae14ca6fe298933516c98e5d57344ddf8d
parentb3751454cbe02ee952bab213e8c3684d429c41b3 (diff)
pci: add support for pci is boot vga call.
This allows us to ask the kernel for the boot VGA device instead of nasty guessing.
-rw-r--r--configure.ac1
-rw-r--r--hw/xfree86/common/xf86pciBus.c6
-rw-r--r--include/xorg-config.h.in3
3 files changed, 10 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 7c0ed602d..b245cdcc4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1387,6 +1387,7 @@ if test "x$XORG" = xyes; then
LIBS=$PCIACCESS_LIBS
AC_CHECK_FUNCS([pci_system_init_dev_mem])
AC_CHECK_FUNCS([pci_device_enable])
+ AC_CHECK_FUNCS([pci_device_is_boot_vga])
LIBS=$SAVE_LIBS
CFLAGS=$SAVE_CFLAGS
XORG_SYS_LIBS="$XORG_SYS_LIBS $PCIACCESS_LIBS $DLOPEN_LIBS $GLX_SYS_LIBS"
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 9a9ae4091..27e238a4d 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -371,6 +371,12 @@ xf86PciProbe(void)
xf86PciVideoInfo[num - 1] = info;
pci_device_probe(info);
+#ifdef HAVE_PCI_DEVICE_IS_BOOT_VGA
+ if (pci_device_is_boot_vga(info)) {
+ primaryBus.type = BUS_PCI;
+ primaryBus.id.pci = info;
+ }
+#endif
info->user_data = 0;
}
}
diff --git a/include/xorg-config.h.in b/include/xorg-config.h.in
index ebeb44a37..ffb35f862 100644
--- a/include/xorg-config.h.in
+++ b/include/xorg-config.h.in
@@ -118,6 +118,9 @@
/* Have pci_system_init_dev_mem() */
#undef HAVE_PCI_SYSTEM_INIT_DEV_MEM
+/* Define to 1 if you have the `pci_device_is_boot_vga' function. */
+#undef HAVE_PCI_DEVICE_IS_BOOT_VGA
+
/* Have pci_enable_device */
#undef HAVE_PCI_DEVICE_ENABLE