Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d73b3884 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* '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)
parents 5957e33d 0f953bf6
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1934,13 +1934,19 @@ config PCI_MMCONFIG
	depends on X86_64 && PCI && ACPI

config PCI_CNB20LE_QUIRK
	bool "Read CNB20LE Host Bridge Windows"
	depends on PCI
	bool "Read CNB20LE Host Bridge Windows" if EMBEDDED
	default n
	depends on PCI && EXPERIMENTAL
	help
	  Read the PCI windows out of the CNB20LE host bridge. This allows
	  PCI hotplug to work on systems with the CNB20LE chipset which do
	  not have ACPI.

	  There's no public spec for this chipset, and this functionality
	  is known to be incomplete.

	  You should say N unless you know you need this.

config DMAR
	bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
	depends on PCI_MSI && ACPI && EXPERIMENTAL
+7 −4
Original line number Diff line number Diff line
@@ -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++;
+41 −0
Original line number Diff line number Diff line
@@ -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",
+2 −1
Original line number Diff line number Diff line
@@ -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;
+9 −13
Original line number Diff line number Diff line
@@ -195,24 +195,24 @@ static int __init setup_hest_disable(char *str)

__setup("hest_disable", setup_hest_disable);

static int __init hest_init(void)
void __init acpi_hest_init(void)
{
	acpi_status status;
	int rc = -ENODEV;
	unsigned int ghes_count = 0;

	if (acpi_disabled)
		goto err;
		return;

	if (hest_disable) {
		pr_info(HEST_PFX "HEST tabling parsing is disabled.\n");
		goto err;
		pr_info(HEST_PFX "Table parsing disabled.\n");
		return;
	}

	status = acpi_get_table(ACPI_SIG_HEST, 0,
				(struct acpi_table_header **)&hest_tab);
	if (status == AE_NOT_FOUND) {
		pr_info(HEST_PFX "Table is not found!\n");
		pr_info(HEST_PFX "Table not found.\n");
		goto err;
	} else if (ACPI_FAILURE(status)) {
		const char *msg = acpi_format_exception(status);
@@ -226,15 +226,11 @@ static int __init hest_init(void)
		goto err;

	rc = hest_ghes_dev_register(ghes_count);
	if (rc)
		goto err;

	pr_info(HEST_PFX "HEST table parsing is initialized.\n");
	if (!rc) {
		pr_info(HEST_PFX "Table parsing has been initialized.\n");
		return;
	}

	return 0;
err:
	hest_disable = 1;
	return rc;
}

subsys_initcall(hest_init);
Loading