diff options
Diffstat (limited to 'drivers/pci/pcie/pme/pcie_pme.c')
-rw-r--r-- | drivers/pci/pcie/pme/pcie_pme.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/pci/pcie/pme/pcie_pme.c b/drivers/pci/pcie/pme/pcie_pme.c index aac285a16b62..d672a0a63816 100644 --- a/drivers/pci/pcie/pme/pcie_pme.c +++ b/drivers/pci/pcie/pme/pcie_pme.c | |||
@@ -34,7 +34,7 @@ | |||
34 | * being registered. Consequently, the interrupt-based PCIe PME signaling will | 34 | * being registered. Consequently, the interrupt-based PCIe PME signaling will |
35 | * not be used by any PCIe root ports in that case. | 35 | * not be used by any PCIe root ports in that case. |
36 | */ | 36 | */ |
37 | static bool pcie_pme_disabled; | 37 | static bool pcie_pme_disabled = true; |
38 | 38 | ||
39 | /* | 39 | /* |
40 | * The PCI Express Base Specification 2.0, Section 6.1.8, states the following: | 40 | * The PCI Express Base Specification 2.0, Section 6.1.8, states the following: |
@@ -64,12 +64,19 @@ bool pcie_pme_msi_disabled; | |||
64 | 64 | ||
65 | static int __init pcie_pme_setup(char *str) | 65 | static int __init pcie_pme_setup(char *str) |
66 | { | 66 | { |
67 | if (!strcmp(str, "off")) | 67 | if (!strncmp(str, "auto", 4)) |
68 | pcie_pme_disabled = true; | 68 | pcie_pme_disabled = false; |
69 | else if (!strcmp(str, "force")) | 69 | else if (!strncmp(str, "force", 5)) |
70 | pcie_pme_force_enable = true; | 70 | pcie_pme_force_enable = true; |
71 | else if (!strcmp(str, "nomsi")) | 71 | |
72 | pcie_pme_msi_disabled = true; | 72 | str = strchr(str, ','); |
73 | if (str) { | ||
74 | str++; | ||
75 | str += strspn(str, " \t"); | ||
76 | if (*str && !strcmp(str, "nomsi")) | ||
77 | pcie_pme_msi_disabled = true; | ||
78 | } | ||
79 | |||
73 | return 1; | 80 | return 1; |
74 | } | 81 | } |
75 | __setup("pcie_pme=", pcie_pme_setup); | 82 | __setup("pcie_pme=", pcie_pme_setup); |