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: PCI/PM: Report wakeup events before resuming devices PCI/PM: Use pm_wakeup_event() directly for reporting wakeup events PCI: sysfs: Update ROM to include default owner write access x86/PCI: make Broadcom CNB20LE driver EMBEDDED and EXPERIMENTAL x86/PCI: don't use native Broadcom CNB20LE driver when ACPI is available PCI/ACPI: Request _OSC control once for each root bridge (v3) PCI: enable pci=bfsort by default on future Dell systems PCI/PCIe: Clear Root PME Status bits early during system resume PCI: pci-stub: ignore zero-length id parameters x86/PCI: irq and pci_ids patch for Intel Patsburg PCI: Skip id checking if no id is passed PCI: fix __pci_device_probe kernel-doc warning PCI: make pci_restore_state return void PCI: Disable ASPM if BIOS asks us to PCI: Add mask bit definition for MSI-X table PCI: MSI: Move MSI-X entry definition to pci_regs.h Fix up trivial conflicts in drivers/net/{skge.c,sky2.c} that had in the meantime been converted to not use legacy PCI power management, and thus no longer use pci_restore_state() at all (and that caused trivial conflicts with the "make pci_restore_state return void" patch)
此提交包含在:
@@ -9,6 +9,7 @@
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/pci.h>
|
||||
@@ -25,12 +26,14 @@ static void __devinit cnb20le_res(struct pci_dev *dev)
|
||||
u8 fbus, lbus;
|
||||
int i;
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
/*
|
||||
* The x86_pci_root_bus_res_quirks() function already refuses to use
|
||||
* this information if ACPI _CRS was used. Therefore, we don't bother
|
||||
* checking if ACPI is enabled, and just generate the information
|
||||
* for both the ACPI _CRS and no ACPI cases.
|
||||
* We should get host bridge information from ACPI unless the BIOS
|
||||
* doesn't support it.
|
||||
*/
|
||||
if (acpi_os_get_root_pointer())
|
||||
return;
|
||||
#endif
|
||||
|
||||
info = &pci_root_info[pci_root_num];
|
||||
pci_root_num++;
|
||||
|
@@ -22,6 +22,7 @@ unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
|
||||
|
||||
unsigned int pci_early_dump_regs;
|
||||
static int pci_bf_sort;
|
||||
static int smbios_type_b1_flag;
|
||||
int pci_routeirq;
|
||||
int noioapicquirk;
|
||||
#ifdef CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
|
||||
@@ -185,6 +186,39 @@ static int __devinit set_bf_sort(const struct dmi_system_id *d)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __devinit read_dmi_type_b1(const struct dmi_header *dm,
|
||||
void *private_data)
|
||||
{
|
||||
u8 *d = (u8 *)dm + 4;
|
||||
|
||||
if (dm->type != 0xB1)
|
||||
return;
|
||||
switch (((*(u32 *)d) >> 9) & 0x03) {
|
||||
case 0x00:
|
||||
printk(KERN_INFO "dmi type 0xB1 record - unknown flag\n");
|
||||
break;
|
||||
case 0x01: /* set pci=bfsort */
|
||||
smbios_type_b1_flag = 1;
|
||||
break;
|
||||
case 0x02: /* do not set pci=bfsort */
|
||||
smbios_type_b1_flag = 2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int __devinit find_sort_method(const struct dmi_system_id *d)
|
||||
{
|
||||
dmi_walk(read_dmi_type_b1, NULL);
|
||||
|
||||
if (smbios_type_b1_flag == 1) {
|
||||
set_bf_sort(d);
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable renumbering of PCI bus# ranges to reach all PCI busses (Cardbus)
|
||||
*/
|
||||
@@ -212,6 +246,13 @@ static const struct dmi_system_id __devinitconst pciprobe_dmi_table[] = {
|
||||
},
|
||||
},
|
||||
#endif /* __i386__ */
|
||||
{
|
||||
.callback = find_sort_method,
|
||||
.ident = "Dell System",
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
|
||||
},
|
||||
},
|
||||
{
|
||||
.callback = set_bf_sort,
|
||||
.ident = "Dell PowerEdge 1950",
|
||||
|
@@ -589,7 +589,8 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
|
||||
case PCI_DEVICE_ID_INTEL_ICH10_1:
|
||||
case PCI_DEVICE_ID_INTEL_ICH10_2:
|
||||
case PCI_DEVICE_ID_INTEL_ICH10_3:
|
||||
case PCI_DEVICE_ID_INTEL_PATSBURG_LPC:
|
||||
case PCI_DEVICE_ID_INTEL_PATSBURG_LPC_0:
|
||||
case PCI_DEVICE_ID_INTEL_PATSBURG_LPC_1:
|
||||
r->name = "PIIX/ICH";
|
||||
r->get = pirq_piix_get;
|
||||
r->set = pirq_piix_set;
|
||||
|
新增問題並參考
封鎖使用者