#if CONFIG_PC80_SYSTEM == 1
#include <pc80/i8259.h>
#endif
+#if CONFIG_HAVE_ACPI_RESUME && !CONFIG_S3_VGA_ROM_RUN
+#include <arch/acpi.h>
+#endif
+#if CONFIG_CHROMEOS
+#include <vendorcode/google/chromeos/chromeos.h>
+#endif
u8 pci_moving_config8(struct device *dev, unsigned int reg)
{
pci_write_config8(dev, PCI_CACHE_LINE_SIZE, 64 >> 2);
}
-unsigned __attribute__((weak)) mainboard_pci_subsystem_vendor_id(__attribute__((unused)) struct device *dev)
-{
- return CONFIG_MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID;
-}
-
-unsigned __attribute__((weak)) mainboard_pci_subsystem_device_id(__attribute__((unused)) struct device *dev)
-{
- return CONFIG_MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID;
-}
-
void pci_dev_enable_resources(struct device *dev)
{
const struct pci_operations *ops;
/* Set the subsystem vendor and device ID for mainboard devices. */
ops = ops_pci(dev);
if (dev->on_mainboard && ops && ops->set_subsystem) {
- printk(BIOS_DEBUG, "%s subsystem <- %02x/%02x\n", dev_path(dev),
- mainboard_pci_subsystem_vendor_id(dev),
- mainboard_pci_subsystem_device_id(dev));
- ops->set_subsystem(dev,
- mainboard_pci_subsystem_vendor_id(dev),
- mainboard_pci_subsystem_device_id(dev));
+ printk(BIOS_DEBUG, "%s subsystem <- %04x/%04x\n",
+ dev_path(dev), dev->subsystem_vendor,
+ dev->subsystem_device);
+ ops->set_subsystem(dev, dev->subsystem_vendor,
+ dev->subsystem_device);
}
command = pci_read_config16(dev, PCI_COMMAND);
command |= dev->command;
((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA))
return;
+#if CONFIG_CHROMEOS
+ /* In ChromeOS we want to boot blazingly fast. Therefore
+ * we don't run (VGA) option ROMs, unless we have to print
+ * something on the screen before the kernel is loaded.
+ */
+ if (!developer_mode_enabled() && !recovery_mode_enabled())
+ return;
+#endif
+
rom = pci_rom_probe(dev);
if (rom == NULL)
return;
if (ram == NULL)
return;
+#if CONFIG_HAVE_ACPI_RESUME && !CONFIG_S3_VGA_ROM_RUN
+ /* If S3_VGA_ROM_RUN is disabled, skip running VGA option
+ * ROMs when coming out of an S3 resume.
+ */
+ if ((acpi_slp_type == 3) &&
+ ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA))
+ return;
+#endif
run_bios(dev, (unsigned long)ram);
#endif /* CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN */
}
"devfn %x\n", min_devfn, max_devfn);
printk(BIOS_ERR, "PCI: pci_scan_bus upper limit too big. "
"Using 0xff.\n");
- max_devfn=0xff;
+ max_devfn=0x08;
}
old_devices = bus->children;
struct device *dev;
/* First thing setup the device structure. */
+ printk(BIOS_INFO, "%s: before pci_scan_get_dev! devfn: %d\n", __func__, devfn);
dev = pci_scan_get_dev(&old_devices, devfn);
+ printk(BIOS_INFO, "%s: after pci_scan_get_dev!\n", __func__);
/* See if a device is present and setup the device structure. */
+ printk(BIOS_INFO, "%s: before pci_probe_dev!\n", __func__);
dev = pci_probe_dev(dev, bus, devfn);
+ printk(BIOS_INFO, "%s: after pci_probe_dev!\n", __func__);
/*
* If this is not a multi function device, or the device is