Commit dee70a32 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
  PCI/PM: Do not use native PCIe PME by default
parents 29ccb201 b27759f8
...@@ -2048,7 +2048,9 @@ and is between 256 and 4096 characters. It is defined in the file ...@@ -2048,7 +2048,9 @@ and is between 256 and 4096 characters. It is defined in the file
WARNING: Forcing ASPM on may cause system lockups. WARNING: Forcing ASPM on may cause system lockups.
pcie_pme= [PCIE,PM] Native PCIe PME signaling options: pcie_pme= [PCIE,PM] Native PCIe PME signaling options:
off Do not use native PCIe PME signaling. Format: {auto|force}[,nomsi]
auto Use native PCIe PME signaling if the BIOS allows the
kernel to control PCIe config registers of root ports.
force Use native PCIe PME signaling even if the BIOS refuses force Use native PCIe PME signaling even if the BIOS refuses
to allow the kernel to control the relevant PCIe config to allow the kernel to control the relevant PCIe config
registers. registers.
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
* being registered. Consequently, the interrupt-based PCIe PME signaling will * being registered. Consequently, the interrupt-based PCIe PME signaling will
* not be used by any PCIe root ports in that case. * not be used by any PCIe root ports in that case.
*/ */
static bool pcie_pme_disabled; static bool pcie_pme_disabled = true;
/* /*
* The PCI Express Base Specification 2.0, Section 6.1.8, states the following: * The PCI Express Base Specification 2.0, Section 6.1.8, states the following:
...@@ -64,12 +64,19 @@ bool pcie_pme_msi_disabled; ...@@ -64,12 +64,19 @@ bool pcie_pme_msi_disabled;
static int __init pcie_pme_setup(char *str) static int __init pcie_pme_setup(char *str)
{ {
if (!strcmp(str, "off")) if (!strncmp(str, "auto", 4))
pcie_pme_disabled = true; pcie_pme_disabled = false;
else if (!strcmp(str, "force")) else if (!strncmp(str, "force", 5))
pcie_pme_force_enable = true; pcie_pme_force_enable = true;
else if (!strcmp(str, "nomsi"))
str = strchr(str, ',');
if (str) {
str++;
str += strspn(str, " \t");
if (*str && !strcmp(str, "nomsi"))
pcie_pme_msi_disabled = true; pcie_pme_msi_disabled = true;
}
return 1; return 1;
} }
__setup("pcie_pme=", pcie_pme_setup); __setup("pcie_pme=", pcie_pme_setup);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment