Author: uwe
Date: 2007-09-25 02:16:31 +0200 (Tue, 25 Sep 2007)
New Revision: 499

Modified:
   LinuxBIOSv3/device/pci_device.c
   LinuxBIOSv3/include/device/device.h
Log:
Add more information to the device structure, so an Open Firmware
device tree can be created from data in struct device.

Signed-off-by: Jens Freimann <[EMAIL PROTECTED]>
Acked-by: Uwe Hermann <[EMAIL PROTECTED]>



Modified: LinuxBIOSv3/device/pci_device.c
===================================================================
--- LinuxBIOSv3/device/pci_device.c     2007-09-16 14:37:59 UTC (rev 498)
+++ LinuxBIOSv3/device/pci_device.c     2007-09-25 00:16:31 UTC (rev 499)
@@ -964,6 +964,15 @@
        /* Read the rest of the PCI configuration information. */
        hdr_type = pci_read_config8(dev, PCI_HEADER_TYPE);
        class = pci_read_config32(dev, PCI_CLASS_REVISION);
+       dev->status = pci_read_config16(dev, PCI_STATUS);
+       dev->revision = pci_read_config8(dev, PCI_REVISION_ID);
+       dev->cache_line = pci_read_config8(dev, PCI_CACHE_LINE_SIZE);
+       dev->irq_line = pci_read_config8(dev, PCI_INTERRUPT_LINE);
+       dev->irq_pin = pci_read_config8(dev, PCI_INTERRUPT_PIN);
+       dev->min_gnt = pci_read_config8(dev, PCI_MIN_GNT);
+       dev->max_lat = pci_read_config8(dev, PCI_MAX_LAT);
+       dev->subsystem_vendor = pci_read_config16(dev, PCI_SUBSYSTEM_VENDOR_ID);
+       dev->subsystem_device = pci_read_config16(dev, PCI_SUBSYSTEM_ID);
 
        /* Store the interesting information in the device structure. */
        dev->vendor = id & 0xffff;

Modified: LinuxBIOSv3/include/device/device.h
===================================================================
--- LinuxBIOSv3/include/device/device.h 2007-09-16 14:37:59 UTC (rev 498)
+++ LinuxBIOSv3/include/device/device.h 2007-09-25 00:16:31 UTC (rev 499)
@@ -188,6 +188,16 @@
        char            dtsname[MAX_DTSNAME_SIZE];      /* the name from the 
dts */
        unsigned        vendor;
        unsigned        device;
+       u16 status;
+       u8 revision;
+       u8 cache_line;
+       u8 irq_line;
+       u8 irq_pin;
+       u8 min_gnt;
+       u8 max_lat;
+       u16 subsystem_vendor;
+       u16 subsystem_device;
+
        unsigned int    class;          /* 3 bytes: (base,sub,prog-if) */
        unsigned int    hdr_type;       /* PCI header type */
        unsigned int    enabled : 1;    /* set if we should enable the device */


-- 
linuxbios mailing list
[email protected]
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to