Star64_linux/drivers/pci
Bjorn Helgaas 0c0e0736ac PCI: Set ROM shadow location in arch code, not in PCI core
IORESOURCE_ROM_SHADOW means there is a copy of a device's option ROM in
RAM.  The existence of such a copy and its location are arch-specific.
Previously the IORESOURCE_ROM_SHADOW flag was set in arch code, but the
0xC0000-0xDFFFF location was hard-coded into the PCI core.

If we're using a shadow copy in RAM, disable the ROM BAR and release the
address space it was consuming.  Move the location information from the PCI
core to the arch code that sets IORESOURCE_ROM_SHADOW.  Save the location
of the RAM copy in the struct resource for PCI_ROM_RESOURCE.

After this change, pci_map_rom() will call pci_assign_resource() and
pci_enable_rom() for these IORESOURCE_ROM_SHADOW resources, which we did
not do before.  This is safe because:

  - pci_assign_resource() will do nothing because the resource is marked
    IORESOURCE_PCI_FIXED, which means we can't move it, and

  - pci_enable_rom() will not turn on the ROM BAR's enable bit because the
    resource is marked IORESOURCE_ROM_SHADOW, which means it is in RAM
    rather than in PCI memory space.

Storing the location in the struct resource means "lspci" will show the
shadow location, not the value from the ROM BAR.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-03-08 12:14:31 -06:00
..
host PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
hotplug Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
pcie Merge branch 'pci/host-vmd' into next 2016-01-15 16:14:39 -06:00
access.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
ats.c PCI: Remove pci_ats_enabled() 2015-08-13 15:59:59 -05:00
bus.c PCI: Fix minimum allocation address overwrite 2016-01-06 15:37:55 -06:00
host-bridge.c
hotplug-pci.c
htirq.c x86/htirq: Use hierarchical irqdomain to manage Hypertransport interrupts 2015-04-24 15:36:50 +02:00
iov.c Merge branches 'pci/aer', 'pci/hotplug', 'pci/misc', 'pci/msi', 'pci/resource' and 'pci/virtualization' into next 2015-11-02 15:57:03 -06:00
irq.c
Kconfig PCI,parisc: Enable 64-bit bus addresses on PA-RISC 2015-09-08 15:30:47 +02:00
Makefile PCI: Build setup-irq.o for arm64 2015-08-20 12:02:49 -05:00
msi.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
of.c PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" parsing 2015-10-16 13:07:14 +01:00
pci-acpi.c Power management and ACPI updates for v4.5-rc1 2016-01-12 20:25:09 -08:00
pci-driver.c PCI / PM: Tune down retryable runtime suspend error messages 2015-12-02 15:24:21 +01:00
pci-label.c PCI: Use kobj_to_dev() instead of open-coding it 2016-01-08 12:07:57 -06:00
pci-stub.c
pci-sysfs.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pci.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pci.h PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
probe.c PCI: Disable IO/MEM decoding for devices with non-compliant BARs 2016-02-25 14:35:57 -06:00
proc.c
quirks.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
remove.c PCI: Embed ATS info directly into struct pci_dev 2015-08-13 15:57:21 -05:00
rom.c PCI: Set ROM shadow location in arch code, not in PCI core 2016-03-08 12:14:31 -06:00
search.c
setup-bus.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
setup-irq.c
setup-res.c PCI: Don't assign or reassign immutable resources 2016-03-08 12:14:31 -06:00
slot.c PCI: Hold pci_slot_mutex while searching bus->slots list 2015-07-30 16:19:53 -05:00
syscall.c
vc.c PCI: Use dev->has_secondary_link to find downstream PCIe links 2015-05-29 15:35:26 -05:00
vpd.c
xen-pcifront.c PCI: Use for_each_pci_msi_entry() to access MSI device list 2015-07-22 18:37:43 +02:00