Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (72 commits) Revert "x86/PCI: ACPI based PCI gap calculation" PCI: remove unnecessary volatile in PCIe hotplug struct controller x86/PCI: ACPI based PCI gap calculation PCI: include linux/pm_wakeup.h for device_set_wakeup_capable PCI PM: Fix pci_prepare_to_sleep x86/PCI: Fix PCI config space for domains > 0 Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP=n PCI: Simplify PCI device PM code PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep PCI ACPI: Rework PCI handling of wake-up ACPI: Introduce new device wakeup flag 'prepared' ACPI: Introduce acpi_device_sleep_wake function PCI: rework pci_set_power_state function to call platform first PCI: Introduce platform_pci_power_manageable function ACPI: Introduce acpi_bus_power_manageable function PCI: make pci_name use dev_name PCI: handle pci_name() being const PCI: add stub for pci_set_consistent_dma_mask() PCI: remove unused arch pcibios_update_resource() functions PCI: fix pci_setup_device()'s sprinting into a const buffer ... Fixed up conflicts in various files (arch/x86/kernel/setup_64.c, arch/x86/pci/irq.c, arch/x86/pci/pci.h, drivers/acpi/sleep/main.c, drivers/pci/pci.c, drivers/pci/pci.h, include/acpi/acpi_bus.h) from x86 and ACPI updates manually.
This commit is contained in:
@ -20,6 +20,7 @@
|
||||
unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
|
||||
PCI_PROBE_MMCONF;
|
||||
|
||||
unsigned int pci_early_dump_regs;
|
||||
static int pci_bf_sort;
|
||||
int pci_routeirq;
|
||||
int pcibios_last_bus = -1;
|
||||
@ -31,7 +32,7 @@ struct pci_raw_ops *raw_pci_ext_ops;
|
||||
int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
|
||||
int reg, int len, u32 *val)
|
||||
{
|
||||
if (reg < 256 && raw_pci_ops)
|
||||
if (domain == 0 && reg < 256 && raw_pci_ops)
|
||||
return raw_pci_ops->read(domain, bus, devfn, reg, len, val);
|
||||
if (raw_pci_ext_ops)
|
||||
return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val);
|
||||
@ -41,7 +42,7 @@ int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
|
||||
int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
|
||||
int reg, int len, u32 val)
|
||||
{
|
||||
if (reg < 256 && raw_pci_ops)
|
||||
if (domain == 0 && reg < 256 && raw_pci_ops)
|
||||
return raw_pci_ops->write(domain, bus, devfn, reg, len, val);
|
||||
if (raw_pci_ext_ops)
|
||||
return raw_pci_ext_ops->write(domain, bus, devfn, reg, len, val);
|
||||
@ -121,6 +122,21 @@ void __init dmi_check_skip_isa_align(void)
|
||||
dmi_check_system(can_skip_pciprobe_dmi_table);
|
||||
}
|
||||
|
||||
static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev)
|
||||
{
|
||||
struct resource *rom_r = &dev->resource[PCI_ROM_RESOURCE];
|
||||
|
||||
if (pci_probe & PCI_NOASSIGN_ROMS) {
|
||||
if (rom_r->parent)
|
||||
return;
|
||||
if (rom_r->start) {
|
||||
/* we deal with BIOS assigned ROM later */
|
||||
return;
|
||||
}
|
||||
rom_r->start = rom_r->end = rom_r->flags = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called after each bus is probed, but before its children
|
||||
* are examined.
|
||||
@ -128,7 +144,11 @@ void __init dmi_check_skip_isa_align(void)
|
||||
|
||||
void __devinit pcibios_fixup_bus(struct pci_bus *b)
|
||||
{
|
||||
struct pci_dev *dev;
|
||||
|
||||
pci_read_bridge_bases(b);
|
||||
list_for_each_entry(dev, &b->devices, bus_list)
|
||||
pcibios_fixup_device_resources(dev);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -481,12 +501,18 @@ char * __devinit pcibios_setup(char *str)
|
||||
else if (!strcmp(str, "rom")) {
|
||||
pci_probe |= PCI_ASSIGN_ROMS;
|
||||
return NULL;
|
||||
} else if (!strcmp(str, "norom")) {
|
||||
pci_probe |= PCI_NOASSIGN_ROMS;
|
||||
return NULL;
|
||||
} else if (!strcmp(str, "assign-busses")) {
|
||||
pci_probe |= PCI_ASSIGN_ALL_BUSSES;
|
||||
return NULL;
|
||||
} else if (!strcmp(str, "use_crs")) {
|
||||
pci_probe |= PCI_USE__CRS;
|
||||
return NULL;
|
||||
} else if (!strcmp(str, "earlydump")) {
|
||||
pci_early_dump_regs = 1;
|
||||
return NULL;
|
||||
} else if (!strcmp(str, "routeirq")) {
|
||||
pci_routeirq = 1;
|
||||
return NULL;
|
||||
|
Reference in New Issue
Block a user