Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux-2.6-microblaze.git] / drivers / pci / pcie / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 #
3 # PCI Express Port Bus Configuration
4 #
5 config PCIEPORTBUS
6         bool "PCI Express Port Bus support"
7         depends on PCI
8         help
9           This automatically enables PCI Express Port Bus support. Users can
10           choose Native Hot-Plug support, Advanced Error Reporting support,
11           Power Management Event support and Virtual Channel support to run
12           on PCI Express Ports (Root or Switch).
13
14 #
15 # Include service Kconfig here
16 #
17 config HOTPLUG_PCI_PCIE
18         bool "PCI Express Hotplug driver"
19         depends on HOTPLUG_PCI && PCIEPORTBUS
20         help
21           Say Y here if you have a motherboard that supports PCI Express Native
22           Hotplug
23
24           When in doubt, say N.
25
26 source "drivers/pci/pcie/aer/Kconfig"
27
28 #
29 # PCI Express ASPM
30 #
31 config PCIEASPM
32         bool "PCI Express ASPM control" if EXPERT
33         depends on PCI && PCIEPORTBUS
34         default y
35         help
36           This enables OS control over PCI Express ASPM (Active State
37           Power Management) and Clock Power Management. ASPM supports
38           state L0/L0s/L1.
39
40           ASPM is initially set up by the firmware. With this option enabled,
41           Linux can modify this state in order to disable ASPM on known-bad
42           hardware or configurations and enable it when known-safe.
43
44           ASPM can be disabled or enabled at runtime via
45           /sys/module/pcie_aspm/parameters/policy
46
47           When in doubt, say Y.
48
49 config PCIEASPM_DEBUG
50         bool "Debug PCI Express ASPM"
51         depends on PCIEASPM
52         default n
53         help
54           This enables PCI Express ASPM debug support. It will add per-device
55           interface to control ASPM.
56
57 choice
58         prompt "Default ASPM policy"
59         default PCIEASPM_DEFAULT
60         depends on PCIEASPM
61
62 config PCIEASPM_DEFAULT
63         bool "BIOS default"
64         depends on PCIEASPM
65         help
66           Use the BIOS defaults for PCI Express ASPM.
67
68 config PCIEASPM_POWERSAVE
69         bool "Powersave"
70         depends on PCIEASPM
71         help
72           Enable PCI Express ASPM L0s and L1 where possible, even if the
73           BIOS did not.
74
75 config PCIEASPM_POWER_SUPERSAVE
76         bool "Power Supersave"
77         depends on PCIEASPM
78         help
79           Same as PCIEASPM_POWERSAVE, except it also enables L1 substates where
80           possible. This would result in higher power savings while staying in L1
81           where the components support it.
82
83 config PCIEASPM_PERFORMANCE
84         bool "Performance"
85         depends on PCIEASPM
86         help
87           Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them.
88 endchoice
89
90 config PCIE_PME
91         def_bool y
92         depends on PCIEPORTBUS && PM
93
94 config PCIE_DPC
95         bool "PCIe Downstream Port Containment support"
96         depends on PCIEPORTBUS && PCIEAER
97         default n
98         help
99           This enables PCI Express Downstream Port Containment (DPC)
100           driver support.  DPC events from Root and Downstream ports
101           will be handled by the DPC driver.  If your system doesn't
102           have this capability or you do not want to use this feature,
103           it is safe to answer N.
104
105 config PCIE_PTM
106         bool "PCIe Precision Time Measurement support"
107         default n
108         depends on PCIEPORTBUS
109         help
110           This enables PCI Express Precision Time Measurement (PTM)
111           support.
112
113           This is only useful if you have devices that support PTM, but it
114           is safe to enable even if you don't.