diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:30:05 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:30:05 -0500 |
commit | 6e7c402590b75b6b45138792445ee0f0315a8473 (patch) | |
tree | 94db814d496502932ab55acc560a728925f87540 /arch/x86/Kconfig.debug | |
parent | b02aae9cf52956dfe1bec73f77f81a3d05d3902b (diff) |
x86: various changes and cleanups to in_p/out_p delay details
various changes to the in_p/out_p delay details:
- add the io_delay=none method
- make each method selectable from the kernel config
- simplify the delay code a bit by getting rid of an indirect function call
- add the /proc/sys/kernel/io_delay_type sysctl
- change 'io_delay=standard|alternate' to io_delay=0x80 and io_delay=0xed
- make the io delay config not depend on CONFIG_DEBUG_KERNEL
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: "David P. Reed" <dpreed@reed.com>
Diffstat (limited to 'arch/x86/Kconfig.debug')
-rw-r--r-- | arch/x86/Kconfig.debug | 79 |
1 files changed, 72 insertions, 7 deletions
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index 40aba670fb37..77eda46f97b8 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug | |||
@@ -112,13 +112,78 @@ config IOMMU_LEAK | |||
112 | Add a simple leak tracer to the IOMMU code. This is useful when you | 112 | Add a simple leak tracer to the IOMMU code. This is useful when you |
113 | are debugging a buggy device driver that leaks IOMMU mappings. | 113 | are debugging a buggy device driver that leaks IOMMU mappings. |
114 | 114 | ||
115 | config UDELAY_IO_DELAY | 115 | # |
116 | bool "Delay I/O through udelay instead of outb" | 116 | # IO delay types: |
117 | depends on DEBUG_KERNEL | 117 | # |
118 | |||
119 | config IO_DELAY_TYPE_0X80 | ||
120 | int | ||
121 | default "0" | ||
122 | |||
123 | config IO_DELAY_TYPE_0XED | ||
124 | int | ||
125 | default "1" | ||
126 | |||
127 | config IO_DELAY_TYPE_UDELAY | ||
128 | int | ||
129 | default "2" | ||
130 | |||
131 | config IO_DELAY_TYPE_NONE | ||
132 | int | ||
133 | default "3" | ||
134 | |||
135 | choice | ||
136 | prompt "IO delay type" | ||
137 | default IO_DELAY_0X80 | ||
138 | |||
139 | config IO_DELAY_0X80 | ||
140 | bool "port 0x80 based port-IO delay [recommended]" | ||
141 | help | ||
142 | This is the traditional Linux IO delay used for in/out_p. | ||
143 | It is the most tested hence safest selection here. | ||
144 | |||
145 | config IO_DELAY_0XED | ||
146 | bool "port 0xed based port-IO delay" | ||
147 | help | ||
148 | Use port 0xed as the IO delay. This frees up port 0x80 which is | ||
149 | often used as a hardware-debug port. | ||
150 | |||
151 | config IO_DELAY_UDELAY | ||
152 | bool "udelay based port-IO delay" | ||
153 | help | ||
154 | Use udelay(2) as the IO delay method. This provides the delay | ||
155 | while not having any side-effect on the IO port space. | ||
156 | |||
157 | config IO_DELAY_NONE | ||
158 | bool "no port-IO delay" | ||
118 | help | 159 | help |
119 | Make inb_p/outb_p use udelay() based delays by default. Please note | 160 | No port-IO delay. Will break on old boxes that require port-IO |
120 | that udelay() does not have the same bus-level side-effects that | 161 | delay for certain operations. Should work on most new machines. |
121 | the normal outb based delay does meaning this could cause drivers | 162 | |
122 | to change behaviour and/or bugs to surface. | 163 | endchoice |
164 | |||
165 | if IO_DELAY_0X80 | ||
166 | config DEFAULT_IO_DELAY_TYPE | ||
167 | int | ||
168 | default IO_DELAY_TYPE_0X80 | ||
169 | endif | ||
170 | |||
171 | if IO_DELAY_0XED | ||
172 | config DEFAULT_IO_DELAY_TYPE | ||
173 | int | ||
174 | default IO_DELAY_TYPE_0XED | ||
175 | endif | ||
176 | |||
177 | if IO_DELAY_UDELAY | ||
178 | config DEFAULT_IO_DELAY_TYPE | ||
179 | int | ||
180 | default IO_DELAY_TYPE_UDELAY | ||
181 | endif | ||
182 | |||
183 | if IO_DELAY_NONE | ||
184 | config DEFAULT_IO_DELAY_TYPE | ||
185 | int | ||
186 | default IO_DELAY_TYPE_NONE | ||
187 | endif | ||
123 | 188 | ||
124 | endmenu | 189 | endmenu |