[flashrom] [PATCH] Support old libpci <2.2.4

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Fri May 14 04:00:42 CEST 2010


libpci < 2.2.4 can not store class info in struct pci_dev.
Read class info manually and store it in a separate variable.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Index: flashrom-libpci_old_workaround/board_enable.c
===================================================================
--- flashrom-libpci_old_workaround/board_enable.c	(Revision 997)
+++ flashrom-libpci_old_workaround/board_enable.c	(Arbeitskopie)
@@ -789,9 +789,11 @@
 
 	/* First, look for a known LPC bridge */
 	for (dev = pacc->devices; dev; dev = dev->next) {
-		pci_fill_info(dev, PCI_FILL_CLASS);
+		uint16_t device_class;
+		/* libpci before version 2.2.4 does not store class info. */
+		device_class = pci_read_word(dev, PCI_CLASS_DEVICE);
 		if ((dev->vendor_id == 0x8086) &&
-		    (dev->device_class == 0x0601)) { /* ISA Bridge */
+		    (device_class == 0x0601)) { /* ISA Bridge */
 			/* Is this device in our list? */
 			for (i = 0; intel_ich_gpio_table[i].id; i++)
 				if (dev->device_id == intel_ich_gpio_table[i].id)


-- 
http://www.hailfinger.org/





More information about the flashrom mailing list