61 lines
1.9 KiB
Diff
61 lines
1.9 KiB
Diff
From 57cf6f1f428ab73fb2a88c39c694e7d14c2c96c6 Mon Sep 17 00:00:00 2001
|
|
From: Dave Airlie <airlied@redhat.com>
|
|
Date: Thu, 6 Aug 2009 09:39:01 +1000
|
|
Subject: [PATCH] pciaccess: make linux rom reading fallback optional
|
|
|
|
On kernels which have ROM files, the boot VGA rom file
|
|
will contain the 0xc0000 file anyways. If another card
|
|
is missing a rom file there is no need for this.
|
|
|
|
This is fallback is disabled by default, on the premise
|
|
that distro shipping this new a pciaccess will be running
|
|
on kernels with working rom support which is been upstream
|
|
for a long time
|
|
---
|
|
configure.ac | 8 ++++++++
|
|
src/linux_sysfs.c | 5 +++++
|
|
2 files changed, 13 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index c55112c..528e32b 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -43,6 +43,14 @@ AC_ARG_WITH(pciids-path, AC_HELP_STRING([--with-pciids-path=PCIIDS_PATH],
|
|
[Path to pci.ids file]), [pciids_path="$withval"])
|
|
AC_DEFINE_DIR(PCIIDS_PATH, pciids_path, [Path to pci.ids])
|
|
|
|
+AC_ARG_ENABLE(linux-rom-fallback, AS_HELP_STRING([--enable-linux-rom-fallback],
|
|
+ [Enable support for falling back to /dev/mem for roms (default: enabled)]),
|
|
+ [LINUX_ROM=$enableval],[LINUX_ROM=no])
|
|
+
|
|
+if test "x$LINUX_ROM" = xyes; then
|
|
+ AC_DEFINE(LINUX_ROM, 1, [Linux ROM read fallback])
|
|
+fi
|
|
+
|
|
use_zlib=no
|
|
AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib],
|
|
[Enable zlib support to read gzip compressed pci.ids]),
|
|
diff --git a/src/linux_sysfs.c b/src/linux_sysfs.c
|
|
index 65e1cf6..02fbd13 100644
|
|
--- a/src/linux_sysfs.c
|
|
+++ b/src/linux_sysfs.c
|
|
@@ -327,10 +327,15 @@ pci_device_linux_sysfs_read_rom( struct pci_device * dev, void * buffer )
|
|
|
|
fd = open( name, O_RDWR );
|
|
if ( fd == -1 ) {
|
|
+#ifdef LINUX_ROM
|
|
/* If reading the ROM using sysfs fails, fall back to the old
|
|
* /dev/mem based interface.
|
|
+ * disable this for newer kernels using configure
|
|
*/
|
|
return pci_device_linux_devmem_read_rom(dev, buffer);
|
|
+#else
|
|
+ return errno;
|
|
+#endif
|
|
}
|
|
|
|
|
|
--
|
|
1.5.4.1
|
|
|