Commit 746942d06acdb4dd78d16baa5f3728a48a033bdd

Authored by Linus Torvalds

Merge branch 'sfi-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6

* 'sfi-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6:
  SFI: remove unneeded includes
  sfi: Remove unused code
  SFI: Hook PCI MMCONFIG
  x86: add arch-specific SFI support
  SFI: add capability to parse ACPI tables
  SFI: add platform-independent core support
  SFI: create linux/sfi.h
  SFI: Simple Firmware Interface - MAINTAINERS, Kconfig

Showing 16 changed files Inline Diff

1 1
2 List of maintainers and how to submit kernel changes 2 List of maintainers and how to submit kernel changes
3 3
4 Please try to follow the guidelines below. This will make things 4 Please try to follow the guidelines below. This will make things
5 easier on the maintainers. Not all of these guidelines matter for every 5 easier on the maintainers. Not all of these guidelines matter for every
6 trivial patch so apply some common sense. 6 trivial patch so apply some common sense.
7 7
8 1. Always _test_ your changes, however small, on at least 4 or 8 1. Always _test_ your changes, however small, on at least 4 or
9 5 people, preferably many more. 9 5 people, preferably many more.
10 10
11 2. Try to release a few ALPHA test versions to the net. Announce 11 2. Try to release a few ALPHA test versions to the net. Announce
12 them onto the kernel channel and await results. This is especially 12 them onto the kernel channel and await results. This is especially
13 important for device drivers, because often that's the only way 13 important for device drivers, because often that's the only way
14 you will find things like the fact version 3 firmware needs 14 you will find things like the fact version 3 firmware needs
15 a magic fix you didn't know about, or some clown changed the 15 a magic fix you didn't know about, or some clown changed the
16 chips on a board and not its name. (Don't laugh! Look at the 16 chips on a board and not its name. (Don't laugh! Look at the
17 SMC etherpower for that.) 17 SMC etherpower for that.)
18 18
19 3. Make sure your changes compile correctly in multiple 19 3. Make sure your changes compile correctly in multiple
20 configurations. In particular check that changes work both as a 20 configurations. In particular check that changes work both as a
21 module and built into the kernel. 21 module and built into the kernel.
22 22
23 4. When you are happy with a change make it generally available for 23 4. When you are happy with a change make it generally available for
24 testing and await feedback. 24 testing and await feedback.
25 25
26 5. Make a patch available to the relevant maintainer in the list. Use 26 5. Make a patch available to the relevant maintainer in the list. Use
27 'diff -u' to make the patch easy to merge. Be prepared to get your 27 'diff -u' to make the patch easy to merge. Be prepared to get your
28 changes sent back with seemingly silly requests about formatting 28 changes sent back with seemingly silly requests about formatting
29 and variable names. These aren't as silly as they seem. One 29 and variable names. These aren't as silly as they seem. One
30 job the maintainers (and especially Linus) do is to keep things 30 job the maintainers (and especially Linus) do is to keep things
31 looking the same. Sometimes this means that the clever hack in 31 looking the same. Sometimes this means that the clever hack in
32 your driver to get around a problem actually needs to become a 32 your driver to get around a problem actually needs to become a
33 generalized kernel feature ready for next time. 33 generalized kernel feature ready for next time.
34 34
35 PLEASE check your patch with the automated style checker 35 PLEASE check your patch with the automated style checker
36 (scripts/checkpatch.pl) to catch trival style violations. 36 (scripts/checkpatch.pl) to catch trival style violations.
37 See Documentation/CodingStyle for guidance here. 37 See Documentation/CodingStyle for guidance here.
38 38
39 PLEASE CC: the maintainers and mailing lists that are generated 39 PLEASE CC: the maintainers and mailing lists that are generated
40 by scripts/get_maintainer.pl. The results returned by the 40 by scripts/get_maintainer.pl. The results returned by the
41 script will be best if you have git installed and are making 41 script will be best if you have git installed and are making
42 your changes in a branch derived from Linus' latest git tree. 42 your changes in a branch derived from Linus' latest git tree.
43 See Documentation/SubmittingPatches for details. 43 See Documentation/SubmittingPatches for details.
44 44
45 PLEASE try to include any credit lines you want added with the 45 PLEASE try to include any credit lines you want added with the
46 patch. It avoids people being missed off by mistake and makes 46 patch. It avoids people being missed off by mistake and makes
47 it easier to know who wants adding and who doesn't. 47 it easier to know who wants adding and who doesn't.
48 48
49 PLEASE document known bugs. If it doesn't work for everything 49 PLEASE document known bugs. If it doesn't work for everything
50 or does something very odd once a month document it. 50 or does something very odd once a month document it.
51 51
52 PLEASE remember that submissions must be made under the terms 52 PLEASE remember that submissions must be made under the terms
53 of the OSDL certificate of contribution and should include a 53 of the OSDL certificate of contribution and should include a
54 Signed-off-by: line. The current version of this "Developer's 54 Signed-off-by: line. The current version of this "Developer's
55 Certificate of Origin" (DCO) is listed in the file 55 Certificate of Origin" (DCO) is listed in the file
56 Documentation/SubmittingPatches. 56 Documentation/SubmittingPatches.
57 57
58 6. Make sure you have the right to send any changes you make. If you 58 6. Make sure you have the right to send any changes you make. If you
59 do changes at work you may find your employer owns the patch 59 do changes at work you may find your employer owns the patch
60 not you. 60 not you.
61 61
62 7. When sending security related changes or reports to a maintainer 62 7. When sending security related changes or reports to a maintainer
63 please Cc: security@kernel.org, especially if the maintainer 63 please Cc: security@kernel.org, especially if the maintainer
64 does not respond. 64 does not respond.
65 65
66 8. Happy hacking. 66 8. Happy hacking.
67 67
68 ----------------------------------- 68 -----------------------------------
69 69
70 Maintainers List (try to look for most precise areas first) 70 Maintainers List (try to look for most precise areas first)
71 71
72 Note: For the hard of thinking, this list is meant to remain in alphabetical 72 Note: For the hard of thinking, this list is meant to remain in alphabetical
73 order. If you could add yourselves to it in alphabetical order that would be 73 order. If you could add yourselves to it in alphabetical order that would be
74 so much easier [Ed] 74 so much easier [Ed]
75 75
76 P: Person (obsolete) 76 P: Person (obsolete)
77 M: Mail patches to: FullName <address@domain> 77 M: Mail patches to: FullName <address@domain>
78 L: Mailing list that is relevant to this area 78 L: Mailing list that is relevant to this area
79 W: Web-page with status/info 79 W: Web-page with status/info
80 T: SCM tree type and location. Type is one of: git, hg, quilt, stgit. 80 T: SCM tree type and location. Type is one of: git, hg, quilt, stgit.
81 S: Status, one of the following: 81 S: Status, one of the following:
82 82
83 Supported: Someone is actually paid to look after this. 83 Supported: Someone is actually paid to look after this.
84 Maintained: Someone actually looks after it. 84 Maintained: Someone actually looks after it.
85 Odd Fixes: It has a maintainer but they don't have time to do 85 Odd Fixes: It has a maintainer but they don't have time to do
86 much other than throw the odd patch in. See below.. 86 much other than throw the odd patch in. See below..
87 Orphan: No current maintainer [but maybe you could take the 87 Orphan: No current maintainer [but maybe you could take the
88 role as you write your new code]. 88 role as you write your new code].
89 Obsolete: Old code. Something tagged obsolete generally means 89 Obsolete: Old code. Something tagged obsolete generally means
90 it has been replaced by a better system and you 90 it has been replaced by a better system and you
91 should be using that. 91 should be using that.
92 92
93 F: Files and directories with wildcard patterns. 93 F: Files and directories with wildcard patterns.
94 A trailing slash includes all files and subdirectory files. 94 A trailing slash includes all files and subdirectory files.
95 F: drivers/net/ all files in and below drivers/net 95 F: drivers/net/ all files in and below drivers/net
96 F: drivers/net/* all files in drivers/net, but not below 96 F: drivers/net/* all files in drivers/net, but not below
97 F: */net/* all files in "any top level directory"/net 97 F: */net/* all files in "any top level directory"/net
98 One pattern per line. Multiple F: lines acceptable. 98 One pattern per line. Multiple F: lines acceptable.
99 X: Files and directories that are NOT maintained, same rules as F: 99 X: Files and directories that are NOT maintained, same rules as F:
100 Files exclusions are tested before file matches. 100 Files exclusions are tested before file matches.
101 Can be useful for excluding a specific subdirectory, for instance: 101 Can be useful for excluding a specific subdirectory, for instance:
102 F: net/ 102 F: net/
103 X: net/ipv6/ 103 X: net/ipv6/
104 matches all files in and below net excluding net/ipv6/ 104 matches all files in and below net excluding net/ipv6/
105 105
106 3C505 NETWORK DRIVER 106 3C505 NETWORK DRIVER
107 M: Philip Blundell <philb@gnu.org> 107 M: Philip Blundell <philb@gnu.org>
108 L: netdev@vger.kernel.org 108 L: netdev@vger.kernel.org
109 S: Maintained 109 S: Maintained
110 F: drivers/net/3c505* 110 F: drivers/net/3c505*
111 111
112 3C59X NETWORK DRIVER 112 3C59X NETWORK DRIVER
113 M: Steffen Klassert <klassert@mathematik.tu-chemnitz.de> 113 M: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
114 L: netdev@vger.kernel.org 114 L: netdev@vger.kernel.org
115 S: Maintained 115 S: Maintained
116 F: Documentation/networking/vortex.txt 116 F: Documentation/networking/vortex.txt
117 F: drivers/net/3c59x.c 117 F: drivers/net/3c59x.c
118 118
119 3CR990 NETWORK DRIVER 119 3CR990 NETWORK DRIVER
120 M: David Dillow <dave@thedillows.org> 120 M: David Dillow <dave@thedillows.org>
121 L: netdev@vger.kernel.org 121 L: netdev@vger.kernel.org
122 S: Maintained 122 S: Maintained
123 F: drivers/net/typhoon* 123 F: drivers/net/typhoon*
124 124
125 3W-9XXX SATA-RAID CONTROLLER DRIVER 125 3W-9XXX SATA-RAID CONTROLLER DRIVER
126 M: Adam Radford <linuxraid@amcc.com> 126 M: Adam Radford <linuxraid@amcc.com>
127 L: linux-scsi@vger.kernel.org 127 L: linux-scsi@vger.kernel.org
128 W: http://www.amcc.com 128 W: http://www.amcc.com
129 S: Supported 129 S: Supported
130 F: drivers/scsi/3w-9xxx* 130 F: drivers/scsi/3w-9xxx*
131 131
132 3W-XXXX ATA-RAID CONTROLLER DRIVER 132 3W-XXXX ATA-RAID CONTROLLER DRIVER
133 M: Adam Radford <linuxraid@amcc.com> 133 M: Adam Radford <linuxraid@amcc.com>
134 L: linux-scsi@vger.kernel.org 134 L: linux-scsi@vger.kernel.org
135 W: http://www.amcc.com 135 W: http://www.amcc.com
136 S: Supported 136 S: Supported
137 F: drivers/scsi/3w-xxxx* 137 F: drivers/scsi/3w-xxxx*
138 138
139 53C700 AND 53C700-66 SCSI DRIVER 139 53C700 AND 53C700-66 SCSI DRIVER
140 M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com> 140 M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
141 L: linux-scsi@vger.kernel.org 141 L: linux-scsi@vger.kernel.org
142 S: Maintained 142 S: Maintained
143 F: drivers/scsi/53c700* 143 F: drivers/scsi/53c700*
144 144
145 6PACK NETWORK DRIVER FOR AX.25 145 6PACK NETWORK DRIVER FOR AX.25
146 M: Andreas Koensgen <ajk@comnets.uni-bremen.de> 146 M: Andreas Koensgen <ajk@comnets.uni-bremen.de>
147 L: linux-hams@vger.kernel.org 147 L: linux-hams@vger.kernel.org
148 S: Maintained 148 S: Maintained
149 F: drivers/net/hamradio/6pack.c 149 F: drivers/net/hamradio/6pack.c
150 150
151 8169 10/100/1000 GIGABIT ETHERNET DRIVER 151 8169 10/100/1000 GIGABIT ETHERNET DRIVER
152 M: Francois Romieu <romieu@fr.zoreil.com> 152 M: Francois Romieu <romieu@fr.zoreil.com>
153 L: netdev@vger.kernel.org 153 L: netdev@vger.kernel.org
154 S: Maintained 154 S: Maintained
155 F: drivers/net/r8169.c 155 F: drivers/net/r8169.c
156 156
157 8250/16?50 (AND CLONE UARTS) SERIAL DRIVER 157 8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
158 L: linux-serial@vger.kernel.org 158 L: linux-serial@vger.kernel.org
159 W: http://serial.sourceforge.net 159 W: http://serial.sourceforge.net
160 S: Orphan 160 S: Orphan
161 F: drivers/serial/8250* 161 F: drivers/serial/8250*
162 F: include/linux/serial_8250.h 162 F: include/linux/serial_8250.h
163 163
164 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.] 164 8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
165 M: Paul Gortmaker <p_gortmaker@yahoo.com> 165 M: Paul Gortmaker <p_gortmaker@yahoo.com>
166 L: netdev@vger.kernel.org 166 L: netdev@vger.kernel.org
167 S: Maintained 167 S: Maintained
168 F: drivers/net/*8390* 168 F: drivers/net/*8390*
169 F: drivers/net/ax88796.c 169 F: drivers/net/ax88796.c
170 170
171 9P FILE SYSTEM 171 9P FILE SYSTEM
172 M: Eric Van Hensbergen <ericvh@gmail.com> 172 M: Eric Van Hensbergen <ericvh@gmail.com>
173 M: Ron Minnich <rminnich@sandia.gov> 173 M: Ron Minnich <rminnich@sandia.gov>
174 M: Latchesar Ionkov <lucho@ionkov.net> 174 M: Latchesar Ionkov <lucho@ionkov.net>
175 L: v9fs-developer@lists.sourceforge.net 175 L: v9fs-developer@lists.sourceforge.net
176 W: http://swik.net/v9fs 176 W: http://swik.net/v9fs
177 T: git git://git.kernel.org/pub/scm/linux/kernel/ericvh/v9fs.git 177 T: git git://git.kernel.org/pub/scm/linux/kernel/ericvh/v9fs.git
178 S: Maintained 178 S: Maintained
179 F: Documentation/filesystems/9p.txt 179 F: Documentation/filesystems/9p.txt
180 F: fs/9p/ 180 F: fs/9p/
181 181
182 A2232 SERIAL BOARD DRIVER 182 A2232 SERIAL BOARD DRIVER
183 M: Enver Haase <A2232@gmx.net> 183 M: Enver Haase <A2232@gmx.net>
184 L: linux-m68k@lists.linux-m68k.org 184 L: linux-m68k@lists.linux-m68k.org
185 S: Maintained 185 S: Maintained
186 F: drivers/char/ser_a2232* 186 F: drivers/char/ser_a2232*
187 187
188 AACRAID SCSI RAID DRIVER 188 AACRAID SCSI RAID DRIVER
189 M: Adaptec OEM Raid Solutions <aacraid@adaptec.com> 189 M: Adaptec OEM Raid Solutions <aacraid@adaptec.com>
190 L: linux-scsi@vger.kernel.org 190 L: linux-scsi@vger.kernel.org
191 W: http://www.adaptec.com/ 191 W: http://www.adaptec.com/
192 S: Supported 192 S: Supported
193 F: Documentation/scsi/aacraid.txt 193 F: Documentation/scsi/aacraid.txt
194 F: drivers/scsi/aacraid/ 194 F: drivers/scsi/aacraid/
195 195
196 ABIT UGURU 1,2 HARDWARE MONITOR DRIVER 196 ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
197 M: Hans de Goede <j.w.r.degoede@hhs.nl> 197 M: Hans de Goede <j.w.r.degoede@hhs.nl>
198 L: lm-sensors@lm-sensors.org 198 L: lm-sensors@lm-sensors.org
199 S: Maintained 199 S: Maintained
200 F: drivers/hwmon/abituguru.c 200 F: drivers/hwmon/abituguru.c
201 201
202 ABIT UGURU 3 HARDWARE MONITOR DRIVER 202 ABIT UGURU 3 HARDWARE MONITOR DRIVER
203 M: Alistair John Strachan <alistair@devzero.co.uk> 203 M: Alistair John Strachan <alistair@devzero.co.uk>
204 L: lm-sensors@lm-sensors.org 204 L: lm-sensors@lm-sensors.org
205 S: Maintained 205 S: Maintained
206 F: drivers/hwmon/abituguru3.c 206 F: drivers/hwmon/abituguru3.c
207 207
208 ACENIC DRIVER 208 ACENIC DRIVER
209 M: Jes Sorensen <jes@trained-monkey.org> 209 M: Jes Sorensen <jes@trained-monkey.org>
210 L: linux-acenic@sunsite.dk 210 L: linux-acenic@sunsite.dk
211 S: Maintained 211 S: Maintained
212 F: drivers/net/acenic* 212 F: drivers/net/acenic*
213 213
214 ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER 214 ACER ASPIRE ONE TEMPERATURE AND FAN DRIVER
215 M: Peter Feuerer <peter@piie.net> 215 M: Peter Feuerer <peter@piie.net>
216 W: http://piie.net/?section=acerhdf 216 W: http://piie.net/?section=acerhdf
217 S: Maintained 217 S: Maintained
218 F: drivers/platform/x86/acerhdf.c 218 F: drivers/platform/x86/acerhdf.c
219 219
220 ACER WMI LAPTOP EXTRAS 220 ACER WMI LAPTOP EXTRAS
221 M: Carlos Corbacho <carlos@strangeworlds.co.uk> 221 M: Carlos Corbacho <carlos@strangeworlds.co.uk>
222 L: aceracpi@googlegroups.com (subscribers-only) 222 L: aceracpi@googlegroups.com (subscribers-only)
223 W: http://code.google.com/p/aceracpi 223 W: http://code.google.com/p/aceracpi
224 S: Maintained 224 S: Maintained
225 F: drivers/platform/x86/acer-wmi.c 225 F: drivers/platform/x86/acer-wmi.c
226 226
227 ACPI 227 ACPI
228 M: Len Brown <lenb@kernel.org> 228 M: Len Brown <lenb@kernel.org>
229 L: linux-acpi@vger.kernel.org 229 L: linux-acpi@vger.kernel.org
230 W: http://www.lesswatts.org/projects/acpi/ 230 W: http://www.lesswatts.org/projects/acpi/
231 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git 231 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
232 S: Supported 232 S: Supported
233 F: drivers/acpi/ 233 F: drivers/acpi/
234 F: drivers/pnp/pnpacpi/ 234 F: drivers/pnp/pnpacpi/
235 F: include/linux/acpi.h 235 F: include/linux/acpi.h
236 F: include/acpi/ 236 F: include/acpi/
237 237
238 ACPI BATTERY DRIVERS 238 ACPI BATTERY DRIVERS
239 M: Alexey Starikovskiy <astarikovskiy@suse.de> 239 M: Alexey Starikovskiy <astarikovskiy@suse.de>
240 L: linux-acpi@vger.kernel.org 240 L: linux-acpi@vger.kernel.org
241 W: http://www.lesswatts.org/projects/acpi/ 241 W: http://www.lesswatts.org/projects/acpi/
242 S: Supported 242 S: Supported
243 F: drivers/acpi/battery.c 243 F: drivers/acpi/battery.c
244 F: drivers/acpi/*sbs* 244 F: drivers/acpi/*sbs*
245 245
246 ACPI EC DRIVER 246 ACPI EC DRIVER
247 M: Alexey Starikovskiy <astarikovskiy@suse.de> 247 M: Alexey Starikovskiy <astarikovskiy@suse.de>
248 L: linux-acpi@vger.kernel.org 248 L: linux-acpi@vger.kernel.org
249 W: http://www.lesswatts.org/projects/acpi/ 249 W: http://www.lesswatts.org/projects/acpi/
250 S: Supported 250 S: Supported
251 F: drivers/acpi/ec.c 251 F: drivers/acpi/ec.c
252 252
253 ACPI FAN DRIVER 253 ACPI FAN DRIVER
254 M: Zhang Rui <rui.zhang@intel.com> 254 M: Zhang Rui <rui.zhang@intel.com>
255 L: linux-acpi@vger.kernel.org 255 L: linux-acpi@vger.kernel.org
256 W: http://www.lesswatts.org/projects/acpi/ 256 W: http://www.lesswatts.org/projects/acpi/
257 S: Supported 257 S: Supported
258 F: drivers/acpi/fan.c 258 F: drivers/acpi/fan.c
259 259
260 ACPI PCI HOTPLUG DRIVER 260 ACPI PCI HOTPLUG DRIVER
261 M: Kristen Carlson Accardi <kristen.c.accardi@intel.com> 261 M: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
262 L: linux-pci@vger.kernel.org 262 L: linux-pci@vger.kernel.org
263 S: Supported 263 S: Supported
264 F: drivers/pci/hotplug/acpi* 264 F: drivers/pci/hotplug/acpi*
265 265
266 ACPI THERMAL DRIVER 266 ACPI THERMAL DRIVER
267 M: Zhang Rui <rui.zhang@intel.com> 267 M: Zhang Rui <rui.zhang@intel.com>
268 L: linux-acpi@vger.kernel.org 268 L: linux-acpi@vger.kernel.org
269 W: http://www.lesswatts.org/projects/acpi/ 269 W: http://www.lesswatts.org/projects/acpi/
270 S: Supported 270 S: Supported
271 F: drivers/acpi/*thermal* 271 F: drivers/acpi/*thermal*
272 272
273 ACPI VIDEO DRIVER 273 ACPI VIDEO DRIVER
274 M: Zhang Rui <rui.zhang@intel.com> 274 M: Zhang Rui <rui.zhang@intel.com>
275 L: linux-acpi@vger.kernel.org 275 L: linux-acpi@vger.kernel.org
276 W: http://www.lesswatts.org/projects/acpi/ 276 W: http://www.lesswatts.org/projects/acpi/
277 S: Supported 277 S: Supported
278 F: drivers/acpi/video.c 278 F: drivers/acpi/video.c
279 279
280 ACPI WMI DRIVER 280 ACPI WMI DRIVER
281 M: Carlos Corbacho <carlos@strangeworlds.co.uk> 281 M: Carlos Corbacho <carlos@strangeworlds.co.uk>
282 L: linux-acpi@vger.kernel.org 282 L: linux-acpi@vger.kernel.org
283 W: http://www.lesswatts.org/projects/acpi/ 283 W: http://www.lesswatts.org/projects/acpi/
284 S: Maintained 284 S: Maintained
285 F: drivers/platform/x86/wmi.c 285 F: drivers/platform/x86/wmi.c
286 286
287 AD1889 ALSA SOUND DRIVER 287 AD1889 ALSA SOUND DRIVER
288 M: Kyle McMartin <kyle@mcmartin.ca> 288 M: Kyle McMartin <kyle@mcmartin.ca>
289 M: Thibaut Varene <T-Bone@parisc-linux.org> 289 M: Thibaut Varene <T-Bone@parisc-linux.org>
290 W: http://wiki.parisc-linux.org/AD1889 290 W: http://wiki.parisc-linux.org/AD1889
291 L: linux-parisc@vger.kernel.org 291 L: linux-parisc@vger.kernel.org
292 S: Maintained 292 S: Maintained
293 F: sound/pci/ad1889.* 293 F: sound/pci/ad1889.*
294 294
295 ADM1025 HARDWARE MONITOR DRIVER 295 ADM1025 HARDWARE MONITOR DRIVER
296 M: Jean Delvare <khali@linux-fr.org> 296 M: Jean Delvare <khali@linux-fr.org>
297 L: lm-sensors@lm-sensors.org 297 L: lm-sensors@lm-sensors.org
298 S: Maintained 298 S: Maintained
299 F: Documentation/hwmon/adm1025 299 F: Documentation/hwmon/adm1025
300 F: drivers/hwmon/adm1025.c 300 F: drivers/hwmon/adm1025.c
301 301
302 ADM1029 HARDWARE MONITOR DRIVER 302 ADM1029 HARDWARE MONITOR DRIVER
303 M: Corentin Labbe <corentin.labbe@geomatys.fr> 303 M: Corentin Labbe <corentin.labbe@geomatys.fr>
304 L: lm-sensors@lm-sensors.org 304 L: lm-sensors@lm-sensors.org
305 S: Maintained 305 S: Maintained
306 F: drivers/hwmon/adm1029.c 306 F: drivers/hwmon/adm1029.c
307 307
308 ADM8211 WIRELESS DRIVER 308 ADM8211 WIRELESS DRIVER
309 M: Michael Wu <flamingice@sourmilk.net> 309 M: Michael Wu <flamingice@sourmilk.net>
310 L: linux-wireless@vger.kernel.org 310 L: linux-wireless@vger.kernel.org
311 W: http://linuxwireless.org/ 311 W: http://linuxwireless.org/
312 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git 312 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
313 S: Maintained 313 S: Maintained
314 F: drivers/net/wireless/adm8211.* 314 F: drivers/net/wireless/adm8211.*
315 315
316 ADT746X FAN DRIVER 316 ADT746X FAN DRIVER
317 M: Colin Leroy <colin@colino.net> 317 M: Colin Leroy <colin@colino.net>
318 S: Maintained 318 S: Maintained
319 F: drivers/macintosh/therm_adt746x.c 319 F: drivers/macintosh/therm_adt746x.c
320 320
321 ADVANSYS SCSI DRIVER 321 ADVANSYS SCSI DRIVER
322 M: Matthew Wilcox <matthew@wil.cx> 322 M: Matthew Wilcox <matthew@wil.cx>
323 L: linux-scsi@vger.kernel.org 323 L: linux-scsi@vger.kernel.org
324 S: Maintained 324 S: Maintained
325 F: Documentation/scsi/advansys.txt 325 F: Documentation/scsi/advansys.txt
326 F: drivers/scsi/advansys.c 326 F: drivers/scsi/advansys.c
327 327
328 AEDSP16 DRIVER 328 AEDSP16 DRIVER
329 M: Riccardo Facchetti <fizban@tin.it> 329 M: Riccardo Facchetti <fizban@tin.it>
330 S: Maintained 330 S: Maintained
331 F: sound/oss/aedsp16.c 331 F: sound/oss/aedsp16.c
332 332
333 AFFS FILE SYSTEM 333 AFFS FILE SYSTEM
334 M: Roman Zippel <zippel@linux-m68k.org> 334 M: Roman Zippel <zippel@linux-m68k.org>
335 S: Maintained 335 S: Maintained
336 F: Documentation/filesystems/affs.txt 336 F: Documentation/filesystems/affs.txt
337 F: fs/affs/ 337 F: fs/affs/
338 338
339 AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN 339 AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN
340 M: David Howells <dhowells@redhat.com> 340 M: David Howells <dhowells@redhat.com>
341 L: linux-afs@lists.infradead.org 341 L: linux-afs@lists.infradead.org
342 S: Supported 342 S: Supported
343 F: fs/afs/ 343 F: fs/afs/
344 F: include/net/af_rxrpc.h 344 F: include/net/af_rxrpc.h
345 F: net/rxrpc/af_rxrpc.c 345 F: net/rxrpc/af_rxrpc.c
346 346
347 AGPGART DRIVER 347 AGPGART DRIVER
348 M: David Airlie <airlied@linux.ie> 348 M: David Airlie <airlied@linux.ie>
349 T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git 349 T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
350 S: Maintained 350 S: Maintained
351 F: drivers/char/agp/ 351 F: drivers/char/agp/
352 F: include/linux/agp* 352 F: include/linux/agp*
353 353
354 AHA152X SCSI DRIVER 354 AHA152X SCSI DRIVER
355 M: "Juergen E. Fischer" <fischer@norbit.de> 355 M: "Juergen E. Fischer" <fischer@norbit.de>
356 L: linux-scsi@vger.kernel.org 356 L: linux-scsi@vger.kernel.org
357 S: Maintained 357 S: Maintained
358 F: drivers/scsi/aha152x* 358 F: drivers/scsi/aha152x*
359 F: drivers/scsi/pcmcia/aha152x* 359 F: drivers/scsi/pcmcia/aha152x*
360 360
361 AIC7XXX / AIC79XX SCSI DRIVER 361 AIC7XXX / AIC79XX SCSI DRIVER
362 M: Hannes Reinecke <hare@suse.de> 362 M: Hannes Reinecke <hare@suse.de>
363 L: linux-scsi@vger.kernel.org 363 L: linux-scsi@vger.kernel.org
364 S: Maintained 364 S: Maintained
365 F: drivers/scsi/aic7xxx/ 365 F: drivers/scsi/aic7xxx/
366 F: drivers/scsi/aic7xxx_old/ 366 F: drivers/scsi/aic7xxx_old/
367 367
368 AIO 368 AIO
369 M: Benjamin LaHaise <bcrl@kvack.org> 369 M: Benjamin LaHaise <bcrl@kvack.org>
370 L: linux-aio@kvack.org 370 L: linux-aio@kvack.org
371 S: Supported 371 S: Supported
372 F: fs/aio.c 372 F: fs/aio.c
373 F: include/linux/*aio*.h 373 F: include/linux/*aio*.h
374 374
375 ALCATEL SPEEDTOUCH USB DRIVER 375 ALCATEL SPEEDTOUCH USB DRIVER
376 M: Duncan Sands <duncan.sands@free.fr> 376 M: Duncan Sands <duncan.sands@free.fr>
377 L: linux-usb@vger.kernel.org 377 L: linux-usb@vger.kernel.org
378 W: http://www.linux-usb.org/SpeedTouch/ 378 W: http://www.linux-usb.org/SpeedTouch/
379 S: Maintained 379 S: Maintained
380 F: drivers/usb/atm/speedtch.c 380 F: drivers/usb/atm/speedtch.c
381 F: drivers/usb/atm/usbatm.c 381 F: drivers/usb/atm/usbatm.c
382 382
383 ALCHEMY AU1XX0 MMC DRIVER 383 ALCHEMY AU1XX0 MMC DRIVER
384 M: Manuel Lauss <manuel.lauss@gmail.com> 384 M: Manuel Lauss <manuel.lauss@gmail.com>
385 S: Maintained 385 S: Maintained
386 F: drivers/mmc/host/au1xmmc.c 386 F: drivers/mmc/host/au1xmmc.c
387 387
388 ALI1563 I2C DRIVER 388 ALI1563 I2C DRIVER
389 M: Rudolf Marek <r.marek@assembler.cz> 389 M: Rudolf Marek <r.marek@assembler.cz>
390 L: linux-i2c@vger.kernel.org 390 L: linux-i2c@vger.kernel.org
391 S: Maintained 391 S: Maintained
392 F: Documentation/i2c/busses/i2c-ali1563 392 F: Documentation/i2c/busses/i2c-ali1563
393 F: drivers/i2c/busses/i2c-ali1563.c 393 F: drivers/i2c/busses/i2c-ali1563.c
394 394
395 ALPHA PORT 395 ALPHA PORT
396 M: Richard Henderson <rth@twiddle.net> 396 M: Richard Henderson <rth@twiddle.net>
397 S: Odd Fixes for 2.4; Maintained for 2.6. 397 S: Odd Fixes for 2.4; Maintained for 2.6.
398 M: Ivan Kokshaysky <ink@jurassic.park.msu.ru> 398 M: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
399 S: Maintained for 2.4; PCI support for 2.6. 399 S: Maintained for 2.4; PCI support for 2.6.
400 L: linux-alpha@vger.kernel.org 400 L: linux-alpha@vger.kernel.org
401 F: arch/alpha/ 401 F: arch/alpha/
402 402
403 AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER 403 AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
404 M: Thomas Dahlmann <dahlmann.thomas@arcor.de> 404 M: Thomas Dahlmann <dahlmann.thomas@arcor.de>
405 L: linux-geode@lists.infradead.org (moderated for non-subscribers) 405 L: linux-geode@lists.infradead.org (moderated for non-subscribers)
406 S: Supported 406 S: Supported
407 F: drivers/usb/gadget/amd5536udc.* 407 F: drivers/usb/gadget/amd5536udc.*
408 408
409 AMD GEODE PROCESSOR/CHIPSET SUPPORT 409 AMD GEODE PROCESSOR/CHIPSET SUPPORT
410 P: Jordan Crouse 410 P: Jordan Crouse
411 L: linux-geode@lists.infradead.org (moderated for non-subscribers) 411 L: linux-geode@lists.infradead.org (moderated for non-subscribers)
412 W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html 412 W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html
413 S: Supported 413 S: Supported
414 F: arch/x86/kernel/geode_32.c 414 F: arch/x86/kernel/geode_32.c
415 F: drivers/char/hw_random/geode-rng.c 415 F: drivers/char/hw_random/geode-rng.c
416 F: drivers/crypto/geode* 416 F: drivers/crypto/geode*
417 F: drivers/video/geode/ 417 F: drivers/video/geode/
418 F: arch/x86/include/asm/geode.h 418 F: arch/x86/include/asm/geode.h
419 419
420 AMD IOMMU (AMD-VI) 420 AMD IOMMU (AMD-VI)
421 M: Joerg Roedel <joerg.roedel@amd.com> 421 M: Joerg Roedel <joerg.roedel@amd.com>
422 L: iommu@lists.linux-foundation.org 422 L: iommu@lists.linux-foundation.org
423 T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git 423 T: git git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git
424 S: Supported 424 S: Supported
425 F: arch/x86/kernel/amd_iommu*.c 425 F: arch/x86/kernel/amd_iommu*.c
426 F: arch/x86/include/asm/amd_iommu*.h 426 F: arch/x86/include/asm/amd_iommu*.h
427 427
428 AMD MICROCODE UPDATE SUPPORT 428 AMD MICROCODE UPDATE SUPPORT
429 M: Andreas Herrmann <andreas.herrmann3@amd.com> 429 M: Andreas Herrmann <andreas.herrmann3@amd.com>
430 L: amd64-microcode@amd64.org 430 L: amd64-microcode@amd64.org
431 S: Supported 431 S: Supported
432 F: arch/x86/kernel/microcode_amd.c 432 F: arch/x86/kernel/microcode_amd.c
433 433
434 AMS (Apple Motion Sensor) DRIVER 434 AMS (Apple Motion Sensor) DRIVER
435 M: Stelian Pop <stelian@popies.net> 435 M: Stelian Pop <stelian@popies.net>
436 M: Michael Hanselmann <linux-kernel@hansmi.ch> 436 M: Michael Hanselmann <linux-kernel@hansmi.ch>
437 S: Supported 437 S: Supported
438 F: drivers/hwmon/ams/ 438 F: drivers/hwmon/ams/
439 439
440 AMSO1100 RNIC DRIVER 440 AMSO1100 RNIC DRIVER
441 M: Tom Tucker <tom@opengridcomputing.com> 441 M: Tom Tucker <tom@opengridcomputing.com>
442 M: Steve Wise <swise@opengridcomputing.com> 442 M: Steve Wise <swise@opengridcomputing.com>
443 L: linux-rdma@vger.kernel.org 443 L: linux-rdma@vger.kernel.org
444 S: Maintained 444 S: Maintained
445 F: drivers/infiniband/hw/amso1100/ 445 F: drivers/infiniband/hw/amso1100/
446 446
447 AOA (Apple Onboard Audio) ALSA DRIVER 447 AOA (Apple Onboard Audio) ALSA DRIVER
448 M: Johannes Berg <johannes@sipsolutions.net> 448 M: Johannes Berg <johannes@sipsolutions.net>
449 L: linuxppc-dev@ozlabs.org 449 L: linuxppc-dev@ozlabs.org
450 L: alsa-devel@alsa-project.org (moderated for non-subscribers) 450 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
451 S: Maintained 451 S: Maintained
452 F: sound/aoa/ 452 F: sound/aoa/
453 453
454 APM DRIVER 454 APM DRIVER
455 M: Stephen Rothwell <sfr@canb.auug.org.au> 455 M: Stephen Rothwell <sfr@canb.auug.org.au>
456 L: linux-laptop@vger.kernel.org 456 L: linux-laptop@vger.kernel.org
457 W: http://www.canb.auug.org.au/~sfr/ 457 W: http://www.canb.auug.org.au/~sfr/
458 S: Supported 458 S: Supported
459 F: arch/x86/kernel/apm_32.c 459 F: arch/x86/kernel/apm_32.c
460 F: include/linux/apm_bios.h 460 F: include/linux/apm_bios.h
461 461
462 APPLE BCM5974 MULTITOUCH DRIVER 462 APPLE BCM5974 MULTITOUCH DRIVER
463 M: Henrik Rydberg <rydberg@euromail.se> 463 M: Henrik Rydberg <rydberg@euromail.se>
464 L: linux-input@vger.kernel.org 464 L: linux-input@vger.kernel.org
465 S: Maintained 465 S: Maintained
466 F: drivers/input/mouse/bcm5974.c 466 F: drivers/input/mouse/bcm5974.c
467 467
468 APPLE SMC DRIVER 468 APPLE SMC DRIVER
469 M: Nicolas Boichat <nicolas@boichat.ch> 469 M: Nicolas Boichat <nicolas@boichat.ch>
470 L: mactel-linux-devel@lists.sourceforge.net 470 L: mactel-linux-devel@lists.sourceforge.net
471 S: Maintained 471 S: Maintained
472 F: drivers/hwmon/applesmc.c 472 F: drivers/hwmon/applesmc.c
473 473
474 APPLETALK NETWORK LAYER 474 APPLETALK NETWORK LAYER
475 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> 475 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
476 S: Maintained 476 S: Maintained
477 F: drivers/net/appletalk/ 477 F: drivers/net/appletalk/
478 F: net/appletalk/ 478 F: net/appletalk/
479 479
480 APPLETOUCH TOUCHPAD DRIVER 480 APPLETOUCH TOUCHPAD DRIVER
481 M: Johannes Berg <johannes@sipsolutions.net> 481 M: Johannes Berg <johannes@sipsolutions.net>
482 L: linux-input@vger.kernel.org 482 L: linux-input@vger.kernel.org
483 S: Maintained 483 S: Maintained
484 F: Documentation/input/appletouch.txt 484 F: Documentation/input/appletouch.txt
485 F: drivers/input/mouse/appletouch.c 485 F: drivers/input/mouse/appletouch.c
486 486
487 ARC FRAMEBUFFER DRIVER 487 ARC FRAMEBUFFER DRIVER
488 M: Jaya Kumar <jayalk@intworks.biz> 488 M: Jaya Kumar <jayalk@intworks.biz>
489 S: Maintained 489 S: Maintained
490 F: drivers/video/arcfb.c 490 F: drivers/video/arcfb.c
491 F: drivers/video/fb_defio.c 491 F: drivers/video/fb_defio.c
492 492
493 ARM MFM AND FLOPPY DRIVERS 493 ARM MFM AND FLOPPY DRIVERS
494 M: Ian Molton <spyro@f2s.com> 494 M: Ian Molton <spyro@f2s.com>
495 S: Maintained 495 S: Maintained
496 F: arch/arm/lib/floppydma.S 496 F: arch/arm/lib/floppydma.S
497 F: arch/arm/include/asm/floppy.h 497 F: arch/arm/include/asm/floppy.h
498 498
499 ARM PORT 499 ARM PORT
500 M: Russell King <linux@arm.linux.org.uk> 500 M: Russell King <linux@arm.linux.org.uk>
501 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 501 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
502 W: http://www.arm.linux.org.uk/ 502 W: http://www.arm.linux.org.uk/
503 S: Maintained 503 S: Maintained
504 F: arch/arm/ 504 F: arch/arm/
505 505
506 ARM PRIMECELL MMCI PL180/1 DRIVER 506 ARM PRIMECELL MMCI PL180/1 DRIVER
507 S: Orphan 507 S: Orphan
508 F: drivers/mmc/host/mmci.* 508 F: drivers/mmc/host/mmci.*
509 509
510 ARM/ADI ROADRUNNER MACHINE SUPPORT 510 ARM/ADI ROADRUNNER MACHINE SUPPORT
511 M: Lennert Buytenhek <kernel@wantstofly.org> 511 M: Lennert Buytenhek <kernel@wantstofly.org>
512 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 512 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
513 S: Maintained 513 S: Maintained
514 F: arch/arm/mach-ixp23xx/ 514 F: arch/arm/mach-ixp23xx/
515 F: arch/arm/mach-ixp23xx/include/mach/ 515 F: arch/arm/mach-ixp23xx/include/mach/
516 516
517 ARM/ADS SPHERE MACHINE SUPPORT 517 ARM/ADS SPHERE MACHINE SUPPORT
518 M: Lennert Buytenhek <kernel@wantstofly.org> 518 M: Lennert Buytenhek <kernel@wantstofly.org>
519 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 519 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
520 S: Maintained 520 S: Maintained
521 521
522 ARM/AFEB9260 MACHINE SUPPORT 522 ARM/AFEB9260 MACHINE SUPPORT
523 M: Sergey Lapin <slapin@ossfans.org> 523 M: Sergey Lapin <slapin@ossfans.org>
524 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 524 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
525 S: Maintained 525 S: Maintained
526 526
527 ARM/AJECO 1ARM MACHINE SUPPORT 527 ARM/AJECO 1ARM MACHINE SUPPORT
528 M: Lennert Buytenhek <kernel@wantstofly.org> 528 M: Lennert Buytenhek <kernel@wantstofly.org>
529 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 529 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
530 S: Maintained 530 S: Maintained
531 531
532 ARM/ATMEL AT91RM9200 ARM ARCHITECTURE 532 ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
533 M: Andrew Victor <linux@maxim.org.za> 533 M: Andrew Victor <linux@maxim.org.za>
534 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 534 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
535 W: http://maxim.org.za/at91_26.html 535 W: http://maxim.org.za/at91_26.html
536 S: Maintained 536 S: Maintained
537 537
538 ARM/BCMRING ARM ARCHITECTURE 538 ARM/BCMRING ARM ARCHITECTURE
539 M: Leo Chen <leochen@broadcom.com> 539 M: Leo Chen <leochen@broadcom.com>
540 M: Scott Branden <sbranden@broadcom.com> 540 M: Scott Branden <sbranden@broadcom.com>
541 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 541 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
542 S: Maintained 542 S: Maintained
543 F: arch/arm/mach-bcmring 543 F: arch/arm/mach-bcmring
544 544
545 ARM/BCMRING MTD NAND DRIVER 545 ARM/BCMRING MTD NAND DRIVER
546 M: Leo Chen <leochen@broadcom.com> 546 M: Leo Chen <leochen@broadcom.com>
547 M: Scott Branden <sbranden@broadcom.com> 547 M: Scott Branden <sbranden@broadcom.com>
548 L: linux-mtd@lists.infradead.org 548 L: linux-mtd@lists.infradead.org
549 S: Maintained 549 S: Maintained
550 F: drivers/mtd/nand/bcm_umi_nand.c 550 F: drivers/mtd/nand/bcm_umi_nand.c
551 F: drivers/mtd/nand/bcm_umi_bch.c 551 F: drivers/mtd/nand/bcm_umi_bch.c
552 F: drivers/mtd/nand/bcm_umi_hamming.c 552 F: drivers/mtd/nand/bcm_umi_hamming.c
553 F: drivers/mtd/nand/nand_bcm_umi.h 553 F: drivers/mtd/nand/nand_bcm_umi.h
554 554
555 ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE 555 ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
556 M: Hartley Sweeten <hsweeten@visionengravers.com> 556 M: Hartley Sweeten <hsweeten@visionengravers.com>
557 M: Ryan Mallon <ryan@bluewatersys.com> 557 M: Ryan Mallon <ryan@bluewatersys.com>
558 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 558 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
559 S: Maintained 559 S: Maintained
560 F: arch/arm/mach-ep93xx/ 560 F: arch/arm/mach-ep93xx/
561 F: arch/arm/mach-ep93xx/include/mach/ 561 F: arch/arm/mach-ep93xx/include/mach/
562 562
563 ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT 563 ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
564 M: Lennert Buytenhek <kernel@wantstofly.org> 564 M: Lennert Buytenhek <kernel@wantstofly.org>
565 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 565 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
566 S: Maintained 566 S: Maintained
567 567
568 ARM/CLKDEV SUPPORT 568 ARM/CLKDEV SUPPORT
569 M: Russell King <linux@arm.linux.org.uk> 569 M: Russell King <linux@arm.linux.org.uk>
570 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 570 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
571 F: arch/arm/common/clkdev.c 571 F: arch/arm/common/clkdev.c
572 F: arch/arm/include/asm/clkdev.h 572 F: arch/arm/include/asm/clkdev.h
573 573
574 ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT 574 ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
575 M: Mike Rapoport <mike@compulab.co.il> 575 M: Mike Rapoport <mike@compulab.co.il>
576 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 576 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
577 S: Maintained 577 S: Maintained
578 578
579 ARM/CORGI MACHINE SUPPORT 579 ARM/CORGI MACHINE SUPPORT
580 M: Richard Purdie <rpurdie@rpsys.net> 580 M: Richard Purdie <rpurdie@rpsys.net>
581 S: Maintained 581 S: Maintained
582 582
583 ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE 583 ARM/CORTINA SYSTEMS GEMINI ARM ARCHITECTURE
584 M: Paulius Zaleckas <paulius.zaleckas@teltonika.lt> 584 M: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
585 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 585 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
586 T: git git://gitorious.org/linux-gemini/mainline.git 586 T: git git://gitorious.org/linux-gemini/mainline.git
587 S: Maintained 587 S: Maintained
588 F: arch/arm/mach-gemini/ 588 F: arch/arm/mach-gemini/
589 589
590 ARM/EBSA110 MACHINE SUPPORT 590 ARM/EBSA110 MACHINE SUPPORT
591 M: Russell King <linux@arm.linux.org.uk> 591 M: Russell King <linux@arm.linux.org.uk>
592 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 592 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
593 W: http://www.arm.linux.org.uk/ 593 W: http://www.arm.linux.org.uk/
594 S: Maintained 594 S: Maintained
595 F: arch/arm/mach-ebsa110/ 595 F: arch/arm/mach-ebsa110/
596 F: drivers/net/arm/am79c961a.* 596 F: drivers/net/arm/am79c961a.*
597 597
598 ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6) 598 ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
599 M: Daniel Ribeiro <drwyrm@gmail.com> 599 M: Daniel Ribeiro <drwyrm@gmail.com>
600 M: Stefan Schmidt <stefan@openezx.org> 600 M: Stefan Schmidt <stefan@openezx.org>
601 M: Harald Welte <laforge@openezx.org> 601 M: Harald Welte <laforge@openezx.org>
602 L: openezx-devel@lists.openezx.org (subscribers-only) 602 L: openezx-devel@lists.openezx.org (subscribers-only)
603 W: http://www.openezx.org/ 603 W: http://www.openezx.org/
604 S: Maintained 604 S: Maintained
605 T: topgit git://git.openezx.org/openezx.git 605 T: topgit git://git.openezx.org/openezx.git
606 F: arch/arm/mach-pxa/ezx.c 606 F: arch/arm/mach-pxa/ezx.c
607 607
608 ARM/FARADAY FA526 PORT 608 ARM/FARADAY FA526 PORT
609 M: Paulius Zaleckas <paulius.zaleckas@teltonika.lt> 609 M: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
610 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 610 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
611 S: Maintained 611 S: Maintained
612 F: arch/arm/mm/*-fa* 612 F: arch/arm/mm/*-fa*
613 613
614 ARM/FOOTBRIDGE ARCHITECTURE 614 ARM/FOOTBRIDGE ARCHITECTURE
615 M: Russell King <linux@arm.linux.org.uk> 615 M: Russell King <linux@arm.linux.org.uk>
616 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 616 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
617 W: http://www.arm.linux.org.uk/ 617 W: http://www.arm.linux.org.uk/
618 S: Maintained 618 S: Maintained
619 F: arch/arm/include/asm/hardware/dec21285.h 619 F: arch/arm/include/asm/hardware/dec21285.h
620 F: arch/arm/mach-footbridge/ 620 F: arch/arm/mach-footbridge/
621 621
622 ARM/FREESCALE IMX / MXC ARM ARCHITECTURE 622 ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
623 M: Sascha Hauer <kernel@pengutronix.de> 623 M: Sascha Hauer <kernel@pengutronix.de>
624 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 624 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
625 S: Maintained 625 S: Maintained
626 626
627 ARM/GLOMATION GESBC9312SX MACHINE SUPPORT 627 ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
628 M: Lennert Buytenhek <kernel@wantstofly.org> 628 M: Lennert Buytenhek <kernel@wantstofly.org>
629 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 629 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
630 S: Maintained 630 S: Maintained
631 631
632 ARM/GUMSTIX MACHINE SUPPORT 632 ARM/GUMSTIX MACHINE SUPPORT
633 M: Steve Sakoman <sakoman@gmail.com> 633 M: Steve Sakoman <sakoman@gmail.com>
634 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 634 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
635 S: Maintained 635 S: Maintained
636 636
637 ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT 637 ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT
638 M: Philipp Zabel <philipp.zabel@gmail.com> 638 M: Philipp Zabel <philipp.zabel@gmail.com>
639 S: Maintained 639 S: Maintained
640 F: arch/arm/mach-pxa/hx4700.c 640 F: arch/arm/mach-pxa/hx4700.c
641 F: arch/arm/mach-pxa/include/mach/hx4700.h 641 F: arch/arm/mach-pxa/include/mach/hx4700.h
642 642
643 ARM/HP JORNADA 7XX MACHINE SUPPORT 643 ARM/HP JORNADA 7XX MACHINE SUPPORT
644 M: Kristoffer Ericson <kristoffer.ericson@gmail.com> 644 M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
645 W: www.jlime.com 645 W: www.jlime.com
646 S: Maintained 646 S: Maintained
647 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git 647 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
648 F: arch/arm/mach-sa1100/jornada720.c 648 F: arch/arm/mach-sa1100/jornada720.c
649 F: arch/arm/mach-sa1100/include/mach/jornada720.h 649 F: arch/arm/mach-sa1100/include/mach/jornada720.h
650 650
651 ARM/INTEL IOP32X ARM ARCHITECTURE 651 ARM/INTEL IOP32X ARM ARCHITECTURE
652 M: Lennert Buytenhek <kernel@wantstofly.org> 652 M: Lennert Buytenhek <kernel@wantstofly.org>
653 M: Dan Williams <dan.j.williams@intel.com> 653 M: Dan Williams <dan.j.williams@intel.com>
654 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 654 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
655 S: Supported 655 S: Supported
656 656
657 ARM/INTEL IOP33X ARM ARCHITECTURE 657 ARM/INTEL IOP33X ARM ARCHITECTURE
658 M: Dan Williams <dan.j.williams@intel.com> 658 M: Dan Williams <dan.j.williams@intel.com>
659 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 659 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
660 S: Supported 660 S: Supported
661 661
662 ARM/INTEL IOP13XX ARM ARCHITECTURE 662 ARM/INTEL IOP13XX ARM ARCHITECTURE
663 M: Lennert Buytenhek <kernel@wantstofly.org> 663 M: Lennert Buytenhek <kernel@wantstofly.org>
664 M: Dan Williams <dan.j.williams@intel.com> 664 M: Dan Williams <dan.j.williams@intel.com>
665 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 665 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
666 S: Supported 666 S: Supported
667 667
668 ARM/INTEL IQ81342EX MACHINE SUPPORT 668 ARM/INTEL IQ81342EX MACHINE SUPPORT
669 M: Lennert Buytenhek <kernel@wantstofly.org> 669 M: Lennert Buytenhek <kernel@wantstofly.org>
670 M: Dan Williams <dan.j.williams@intel.com> 670 M: Dan Williams <dan.j.williams@intel.com>
671 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 671 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
672 S: Supported 672 S: Supported
673 673
674 ARM/INTEL IXP2000 ARM ARCHITECTURE 674 ARM/INTEL IXP2000 ARM ARCHITECTURE
675 M: Lennert Buytenhek <kernel@wantstofly.org> 675 M: Lennert Buytenhek <kernel@wantstofly.org>
676 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 676 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
677 S: Maintained 677 S: Maintained
678 678
679 ARM/INTEL IXDP2850 MACHINE SUPPORT 679 ARM/INTEL IXDP2850 MACHINE SUPPORT
680 M: Lennert Buytenhek <kernel@wantstofly.org> 680 M: Lennert Buytenhek <kernel@wantstofly.org>
681 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 681 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
682 S: Maintained 682 S: Maintained
683 683
684 ARM/INTEL IXP23XX ARM ARCHITECTURE 684 ARM/INTEL IXP23XX ARM ARCHITECTURE
685 M: Lennert Buytenhek <kernel@wantstofly.org> 685 M: Lennert Buytenhek <kernel@wantstofly.org>
686 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 686 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
687 S: Maintained 687 S: Maintained
688 688
689 ARM/INTEL XSC3 (MANZANO) ARM CORE 689 ARM/INTEL XSC3 (MANZANO) ARM CORE
690 M: Lennert Buytenhek <kernel@wantstofly.org> 690 M: Lennert Buytenhek <kernel@wantstofly.org>
691 M: Dan Williams <dan.j.williams@intel.com> 691 M: Dan Williams <dan.j.williams@intel.com>
692 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 692 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
693 S: Supported 693 S: Supported
694 694
695 ARM/IP FABRICS DOUBLE ESPRESSO MACHINE SUPPORT 695 ARM/IP FABRICS DOUBLE ESPRESSO MACHINE SUPPORT
696 M: Lennert Buytenhek <kernel@wantstofly.org> 696 M: Lennert Buytenhek <kernel@wantstofly.org>
697 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 697 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
698 S: Maintained 698 S: Maintained
699 699
700 ARM/LOGICPD PXA270 MACHINE SUPPORT 700 ARM/LOGICPD PXA270 MACHINE SUPPORT
701 M: Lennert Buytenhek <kernel@wantstofly.org> 701 M: Lennert Buytenhek <kernel@wantstofly.org>
702 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 702 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
703 S: Maintained 703 S: Maintained
704 704
705 ARM/MAGICIAN MACHINE SUPPORT 705 ARM/MAGICIAN MACHINE SUPPORT
706 M: Philipp Zabel <philipp.zabel@gmail.com> 706 M: Philipp Zabel <philipp.zabel@gmail.com>
707 S: Maintained 707 S: Maintained
708 708
709 ARM/Marvell Loki/Kirkwood/MV78xx0/Orion SOC support 709 ARM/Marvell Loki/Kirkwood/MV78xx0/Orion SOC support
710 M: Lennert Buytenhek <buytenh@marvell.com> 710 M: Lennert Buytenhek <buytenh@marvell.com>
711 M: Nicolas Pitre <nico@marvell.com> 711 M: Nicolas Pitre <nico@marvell.com>
712 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 712 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
713 T: git git://git.marvell.com/orion 713 T: git git://git.marvell.com/orion
714 S: Maintained 714 S: Maintained
715 F: arch/arm/mach-loki/ 715 F: arch/arm/mach-loki/
716 F: arch/arm/mach-kirkwood/ 716 F: arch/arm/mach-kirkwood/
717 F: arch/arm/mach-mv78xx0/ 717 F: arch/arm/mach-mv78xx0/
718 F: arch/arm/mach-orion5x/ 718 F: arch/arm/mach-orion5x/
719 F: arch/arm/plat-orion/ 719 F: arch/arm/plat-orion/
720 720
721 ARM/MIOA701 MACHINE SUPPORT 721 ARM/MIOA701 MACHINE SUPPORT
722 M: Robert Jarzmik <robert.jarzmik@free.fr> 722 M: Robert Jarzmik <robert.jarzmik@free.fr>
723 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 723 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
724 F: arch/arm/mach-pxa/mioa701.c 724 F: arch/arm/mach-pxa/mioa701.c
725 S: Maintained 725 S: Maintained
726 726
727 ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT 727 ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
728 M: Michael Petchkovsky <mkpetch@internode.on.net> 728 M: Michael Petchkovsky <mkpetch@internode.on.net>
729 S: Maintained 729 S: Maintained
730 730
731 ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT 731 ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
732 M: Nelson Castillo <arhuaco@freaks-unidos.net> 732 M: Nelson Castillo <arhuaco@freaks-unidos.net>
733 L: openmoko-kernel@lists.openmoko.org (subscribers-only) 733 L: openmoko-kernel@lists.openmoko.org (subscribers-only)
734 W: http://wiki.openmoko.org/wiki/Neo_FreeRunner 734 W: http://wiki.openmoko.org/wiki/Neo_FreeRunner
735 S: Supported 735 S: Supported
736 736
737 ARM/TOSA MACHINE SUPPORT 737 ARM/TOSA MACHINE SUPPORT
738 M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 738 M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
739 M: Dirk Opfer <dirk@opfer-online.de> 739 M: Dirk Opfer <dirk@opfer-online.de>
740 S: Maintained 740 S: Maintained
741 741
742 ARM/PALMTX,PALMT5,PALMLD,PALMTE2 SUPPORT 742 ARM/PALMTX,PALMT5,PALMLD,PALMTE2 SUPPORT
743 M: Marek Vasut <marek.vasut@gmail.com> 743 M: Marek Vasut <marek.vasut@gmail.com>
744 W: http://hackndev.com 744 W: http://hackndev.com
745 S: Maintained 745 S: Maintained
746 746
747 ARM/PALM TREO 680 SUPPORT 747 ARM/PALM TREO 680 SUPPORT
748 M: Tomas Cech <sleep_walker@suse.cz> 748 M: Tomas Cech <sleep_walker@suse.cz>
749 W: http://hackndev.com 749 W: http://hackndev.com
750 S: Maintained 750 S: Maintained
751 751
752 ARM/PALMZ72 SUPPORT 752 ARM/PALMZ72 SUPPORT
753 M: Sergey Lapin <slapin@ossfans.org> 753 M: Sergey Lapin <slapin@ossfans.org>
754 W: http://hackndev.com 754 W: http://hackndev.com
755 S: Maintained 755 S: Maintained
756 756
757 ARM/PLEB SUPPORT 757 ARM/PLEB SUPPORT
758 M: Peter Chubb <pleb@gelato.unsw.edu.au> 758 M: Peter Chubb <pleb@gelato.unsw.edu.au>
759 W: http://www.disy.cse.unsw.edu.au/Hardware/PLEB 759 W: http://www.disy.cse.unsw.edu.au/Hardware/PLEB
760 S: Maintained 760 S: Maintained
761 761
762 ARM/PT DIGITAL BOARD PORT 762 ARM/PT DIGITAL BOARD PORT
763 M: Stefan Eletzhofer <stefan.eletzhofer@eletztrick.de> 763 M: Stefan Eletzhofer <stefan.eletzhofer@eletztrick.de>
764 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 764 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
765 W: http://www.arm.linux.org.uk/ 765 W: http://www.arm.linux.org.uk/
766 S: Maintained 766 S: Maintained
767 767
768 ARM/RADISYS ENP2611 MACHINE SUPPORT 768 ARM/RADISYS ENP2611 MACHINE SUPPORT
769 M: Lennert Buytenhek <kernel@wantstofly.org> 769 M: Lennert Buytenhek <kernel@wantstofly.org>
770 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 770 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
771 S: Maintained 771 S: Maintained
772 772
773 ARM/RISCPC ARCHITECTURE 773 ARM/RISCPC ARCHITECTURE
774 M: Russell King <linux@arm.linux.org.uk> 774 M: Russell King <linux@arm.linux.org.uk>
775 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 775 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
776 W: http://www.arm.linux.org.uk/ 776 W: http://www.arm.linux.org.uk/
777 S: Maintained 777 S: Maintained
778 F: arch/arm/common/time-acorn.c 778 F: arch/arm/common/time-acorn.c
779 F: arch/arm/include/asm/hardware/entry-macro-iomd.S 779 F: arch/arm/include/asm/hardware/entry-macro-iomd.S
780 F: arch/arm/include/asm/hardware/ioc.h 780 F: arch/arm/include/asm/hardware/ioc.h
781 F: arch/arm/include/asm/hardware/iomd.h 781 F: arch/arm/include/asm/hardware/iomd.h
782 F: arch/arm/include/asm/hardware/memc.h 782 F: arch/arm/include/asm/hardware/memc.h
783 F: arch/arm/mach-rpc/ 783 F: arch/arm/mach-rpc/
784 F: drivers/net/arm/ether* 784 F: drivers/net/arm/ether*
785 F: drivers/scsi/arm/ 785 F: drivers/scsi/arm/
786 786
787 ARM/SHARK MACHINE SUPPORT 787 ARM/SHARK MACHINE SUPPORT
788 M: Alexander Schulz <alex@shark-linux.de> 788 M: Alexander Schulz <alex@shark-linux.de>
789 W: http://www.shark-linux.de/shark.html 789 W: http://www.shark-linux.de/shark.html
790 S: Maintained 790 S: Maintained
791 791
792 ARM/SAMSUNG ARM ARCHITECTURES 792 ARM/SAMSUNG ARM ARCHITECTURES
793 M: Ben Dooks <ben-linux@fluff.org> 793 M: Ben Dooks <ben-linux@fluff.org>
794 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 794 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
795 W: http://www.fluff.org/ben/linux/ 795 W: http://www.fluff.org/ben/linux/
796 S: Maintained 796 S: Maintained
797 F: arch/arm/plat-s3c/ 797 F: arch/arm/plat-s3c/
798 F: arch/arm/plat-s3c24xx/ 798 F: arch/arm/plat-s3c24xx/
799 799
800 ARM/S3C2410 ARM ARCHITECTURE 800 ARM/S3C2410 ARM ARCHITECTURE
801 M: Ben Dooks <ben-linux@fluff.org> 801 M: Ben Dooks <ben-linux@fluff.org>
802 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 802 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
803 W: http://www.fluff.org/ben/linux/ 803 W: http://www.fluff.org/ben/linux/
804 S: Maintained 804 S: Maintained
805 F: arch/arm/mach-s3c2410/ 805 F: arch/arm/mach-s3c2410/
806 806
807 ARM/S3C2440 ARM ARCHITECTURE 807 ARM/S3C2440 ARM ARCHITECTURE
808 M: Ben Dooks <ben-linux@fluff.org> 808 M: Ben Dooks <ben-linux@fluff.org>
809 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 809 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
810 W: http://www.fluff.org/ben/linux/ 810 W: http://www.fluff.org/ben/linux/
811 S: Maintained 811 S: Maintained
812 F: arch/arm/mach-s3c2440/ 812 F: arch/arm/mach-s3c2440/
813 813
814 ARM/S3C2442 ARM ARCHITECTURE 814 ARM/S3C2442 ARM ARCHITECTURE
815 M: Ben Dooks <ben-linux@fluff.org> 815 M: Ben Dooks <ben-linux@fluff.org>
816 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 816 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
817 W: http://www.fluff.org/ben/linux/ 817 W: http://www.fluff.org/ben/linux/
818 S: Maintained 818 S: Maintained
819 F: arch/arm/mach-s3c2442/ 819 F: arch/arm/mach-s3c2442/
820 820
821 ARM/S3C2443 ARM ARCHITECTURE 821 ARM/S3C2443 ARM ARCHITECTURE
822 M: Ben Dooks <ben-linux@fluff.org> 822 M: Ben Dooks <ben-linux@fluff.org>
823 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 823 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
824 W: http://www.fluff.org/ben/linux/ 824 W: http://www.fluff.org/ben/linux/
825 S: Maintained 825 S: Maintained
826 F: arch/arm/mach-s3c2443/ 826 F: arch/arm/mach-s3c2443/
827 827
828 ARM/S3C6400 ARM ARCHITECTURE 828 ARM/S3C6400 ARM ARCHITECTURE
829 M: Ben Dooks <ben-linux@fluff.org> 829 M: Ben Dooks <ben-linux@fluff.org>
830 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 830 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
831 W: http://www.fluff.org/ben/linux/ 831 W: http://www.fluff.org/ben/linux/
832 S: Maintained 832 S: Maintained
833 F: arch/arm/mach-s3c6400/ 833 F: arch/arm/mach-s3c6400/
834 834
835 ARM/S3C6410 ARM ARCHITECTURE 835 ARM/S3C6410 ARM ARCHITECTURE
836 M: Ben Dooks <ben-linux@fluff.org> 836 M: Ben Dooks <ben-linux@fluff.org>
837 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 837 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
838 W: http://www.fluff.org/ben/linux/ 838 W: http://www.fluff.org/ben/linux/
839 S: Maintained 839 S: Maintained
840 F: arch/arm/mach-s3c6410/ 840 F: arch/arm/mach-s3c6410/
841 841
842 ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT 842 ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
843 M: Lennert Buytenhek <kernel@wantstofly.org> 843 M: Lennert Buytenhek <kernel@wantstofly.org>
844 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 844 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
845 S: Maintained 845 S: Maintained
846 846
847 ARM/THECUS N2100 MACHINE SUPPORT 847 ARM/THECUS N2100 MACHINE SUPPORT
848 M: Lennert Buytenhek <kernel@wantstofly.org> 848 M: Lennert Buytenhek <kernel@wantstofly.org>
849 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 849 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
850 S: Maintained 850 S: Maintained
851 851
852 ARM/NUVOTON W90X900 ARM ARCHITECTURE 852 ARM/NUVOTON W90X900 ARM ARCHITECTURE
853 M: Wan ZongShun <mcuos.com@gmail.com> 853 M: Wan ZongShun <mcuos.com@gmail.com>
854 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 854 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
855 W: http://www.mcuos.com 855 W: http://www.mcuos.com
856 S: Maintained 856 S: Maintained
857 857
858 ARM/VFP SUPPORT 858 ARM/VFP SUPPORT
859 M: Russell King <linux@arm.linux.org.uk> 859 M: Russell King <linux@arm.linux.org.uk>
860 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 860 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
861 W: http://www.arm.linux.org.uk/ 861 W: http://www.arm.linux.org.uk/
862 S: Maintained 862 S: Maintained
863 F: arch/arm/vfp/ 863 F: arch/arm/vfp/
864 864
865 ASUS ACPI EXTRAS DRIVER 865 ASUS ACPI EXTRAS DRIVER
866 M: Corentin Chary <corentincj@iksaif.net> 866 M: Corentin Chary <corentincj@iksaif.net>
867 M: Karol Kozimor <sziwan@users.sourceforge.net> 867 M: Karol Kozimor <sziwan@users.sourceforge.net>
868 L: acpi4asus-user@lists.sourceforge.net 868 L: acpi4asus-user@lists.sourceforge.net
869 W: http://acpi4asus.sf.net 869 W: http://acpi4asus.sf.net
870 S: Maintained 870 S: Maintained
871 F: arch/x86/kernel/acpi/boot.c 871 F: arch/x86/kernel/acpi/boot.c
872 F: drivers/platform/x86/asus_acpi.c 872 F: drivers/platform/x86/asus_acpi.c
873 873
874 ASUS ASB100 HARDWARE MONITOR DRIVER 874 ASUS ASB100 HARDWARE MONITOR DRIVER
875 M: "Mark M. Hoffman" <mhoffman@lightlink.com> 875 M: "Mark M. Hoffman" <mhoffman@lightlink.com>
876 L: lm-sensors@lm-sensors.org 876 L: lm-sensors@lm-sensors.org
877 S: Maintained 877 S: Maintained
878 F: drivers/hwmon/asb100.c 878 F: drivers/hwmon/asb100.c
879 879
880 ASUS LAPTOP EXTRAS DRIVER 880 ASUS LAPTOP EXTRAS DRIVER
881 M: Corentin Chary <corentincj@iksaif.net> 881 M: Corentin Chary <corentincj@iksaif.net>
882 L: acpi4asus-user@lists.sourceforge.net 882 L: acpi4asus-user@lists.sourceforge.net
883 W: http://acpi4asus.sf.net 883 W: http://acpi4asus.sf.net
884 S: Maintained 884 S: Maintained
885 F: drivers/platform/x86/asus-laptop.c 885 F: drivers/platform/x86/asus-laptop.c
886 886
887 ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API 887 ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API
888 M: Dan Williams <dan.j.williams@intel.com> 888 M: Dan Williams <dan.j.williams@intel.com>
889 M: Maciej Sosnowski <maciej.sosnowski@intel.com> 889 M: Maciej Sosnowski <maciej.sosnowski@intel.com>
890 W: http://sourceforge.net/projects/xscaleiop 890 W: http://sourceforge.net/projects/xscaleiop
891 S: Supported 891 S: Supported
892 F: Documentation/crypto/async-tx-api.txt 892 F: Documentation/crypto/async-tx-api.txt
893 F: crypto/async_tx/ 893 F: crypto/async_tx/
894 F: drivers/dma/ 894 F: drivers/dma/
895 F: include/linux/dmaengine.h 895 F: include/linux/dmaengine.h
896 F: include/linux/async_tx.h 896 F: include/linux/async_tx.h
897 897
898 AT24 EEPROM DRIVER 898 AT24 EEPROM DRIVER
899 M: Wolfram Sang <w.sang@pengutronix.de> 899 M: Wolfram Sang <w.sang@pengutronix.de>
900 L: linux-i2c@vger.kernel.org 900 L: linux-i2c@vger.kernel.org
901 S: Maintained 901 S: Maintained
902 F: drivers/misc/eeprom/at24.c 902 F: drivers/misc/eeprom/at24.c
903 F: include/linux/i2c/at24.h 903 F: include/linux/i2c/at24.h
904 904
905 ATA OVER ETHERNET (AOE) DRIVER 905 ATA OVER ETHERNET (AOE) DRIVER
906 M: "Ed L. Cashin" <ecashin@coraid.com> 906 M: "Ed L. Cashin" <ecashin@coraid.com>
907 W: http://www.coraid.com/support/linux 907 W: http://www.coraid.com/support/linux
908 S: Supported 908 S: Supported
909 F: Documentation/aoe/ 909 F: Documentation/aoe/
910 F: drivers/block/aoe/ 910 F: drivers/block/aoe/
911 911
912 ATHEROS ATH5K WIRELESS DRIVER 912 ATHEROS ATH5K WIRELESS DRIVER
913 M: Jiri Slaby <jirislaby@gmail.com> 913 M: Jiri Slaby <jirislaby@gmail.com>
914 M: Nick Kossifidis <mickflemm@gmail.com> 914 M: Nick Kossifidis <mickflemm@gmail.com>
915 M: "Luis R. Rodriguez" <lrodriguez@atheros.com> 915 M: "Luis R. Rodriguez" <lrodriguez@atheros.com>
916 M: Bob Copeland <me@bobcopeland.com> 916 M: Bob Copeland <me@bobcopeland.com>
917 L: linux-wireless@vger.kernel.org 917 L: linux-wireless@vger.kernel.org
918 L: ath5k-devel@lists.ath5k.org 918 L: ath5k-devel@lists.ath5k.org
919 W: http://wireless.kernel.org/en/users/Drivers/ath5k 919 W: http://wireless.kernel.org/en/users/Drivers/ath5k
920 S: Maintained 920 S: Maintained
921 F: drivers/net/wireless/ath/ath5k/ 921 F: drivers/net/wireless/ath/ath5k/
922 922
923 ATHEROS ATH9K WIRELESS DRIVER 923 ATHEROS ATH9K WIRELESS DRIVER
924 M: "Luis R. Rodriguez" <lrodriguez@atheros.com> 924 M: "Luis R. Rodriguez" <lrodriguez@atheros.com>
925 M: Jouni Malinen <jmalinen@atheros.com> 925 M: Jouni Malinen <jmalinen@atheros.com>
926 M: Sujith Manoharan <Sujith.Manoharan@atheros.com> 926 M: Sujith Manoharan <Sujith.Manoharan@atheros.com>
927 M: Vasanthakumar Thiagarajan <vasanth@atheros.com> 927 M: Vasanthakumar Thiagarajan <vasanth@atheros.com>
928 M: Senthil Balasubramanian <senthilkumar@atheros.com> 928 M: Senthil Balasubramanian <senthilkumar@atheros.com>
929 L: linux-wireless@vger.kernel.org 929 L: linux-wireless@vger.kernel.org
930 L: ath9k-devel@lists.ath9k.org 930 L: ath9k-devel@lists.ath9k.org
931 W: http://wireless.kernel.org/en/users/Drivers/ath9k 931 W: http://wireless.kernel.org/en/users/Drivers/ath9k
932 S: Supported 932 S: Supported
933 F: drivers/net/wireless/ath/ath9k/ 933 F: drivers/net/wireless/ath/ath9k/
934 934
935 ATHEROS AR9170 WIRELESS DRIVER 935 ATHEROS AR9170 WIRELESS DRIVER
936 M: Christian Lamparter <chunkeey@web.de> 936 M: Christian Lamparter <chunkeey@web.de>
937 L: linux-wireless@vger.kernel.org 937 L: linux-wireless@vger.kernel.org
938 W: http://wireless.kernel.org/en/users/Drivers/ar9170 938 W: http://wireless.kernel.org/en/users/Drivers/ar9170
939 S: Maintained 939 S: Maintained
940 F: drivers/net/wireless/ath/ar9170/ 940 F: drivers/net/wireless/ath/ar9170/
941 941
942 ATK0110 HWMON DRIVER 942 ATK0110 HWMON DRIVER
943 M: Luca Tettamanti <kronos.it@gmail.com> 943 M: Luca Tettamanti <kronos.it@gmail.com>
944 L: lm-sensors@lm-sensors.org 944 L: lm-sensors@lm-sensors.org
945 S: Maintained 945 S: Maintained
946 F: drivers/hwmon/asus_atk0110.c 946 F: drivers/hwmon/asus_atk0110.c
947 947
948 ATI_REMOTE2 DRIVER 948 ATI_REMOTE2 DRIVER
949 M: Ville Syrjala <syrjala@sci.fi> 949 M: Ville Syrjala <syrjala@sci.fi>
950 S: Maintained 950 S: Maintained
951 F: drivers/input/misc/ati_remote2.c 951 F: drivers/input/misc/ati_remote2.c
952 952
953 ATLX ETHERNET DRIVERS 953 ATLX ETHERNET DRIVERS
954 M: Jay Cliburn <jcliburn@gmail.com> 954 M: Jay Cliburn <jcliburn@gmail.com>
955 M: Chris Snook <chris.snook@gmail.com> 955 M: Chris Snook <chris.snook@gmail.com>
956 M: Jie Yang <jie.yang@atheros.com> 956 M: Jie Yang <jie.yang@atheros.com>
957 L: atl1-devel@lists.sourceforge.net 957 L: atl1-devel@lists.sourceforge.net
958 W: http://sourceforge.net/projects/atl1 958 W: http://sourceforge.net/projects/atl1
959 W: http://atl1.sourceforge.net 959 W: http://atl1.sourceforge.net
960 S: Maintained 960 S: Maintained
961 F: drivers/net/atlx/ 961 F: drivers/net/atlx/
962 962
963 ATM 963 ATM
964 M: Chas Williams <chas@cmf.nrl.navy.mil> 964 M: Chas Williams <chas@cmf.nrl.navy.mil>
965 L: linux-atm-general@lists.sourceforge.net (subscribers-only) 965 L: linux-atm-general@lists.sourceforge.net (subscribers-only)
966 L: netdev@vger.kernel.org 966 L: netdev@vger.kernel.org
967 W: http://linux-atm.sourceforge.net 967 W: http://linux-atm.sourceforge.net
968 S: Maintained 968 S: Maintained
969 F: drivers/atm/ 969 F: drivers/atm/
970 F: include/linux/atm* 970 F: include/linux/atm*
971 971
972 ATMEL AT91 MCI DRIVER 972 ATMEL AT91 MCI DRIVER
973 M: Nicolas Ferre <nicolas.ferre@atmel.com> 973 M: Nicolas Ferre <nicolas.ferre@atmel.com>
974 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 974 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
975 W: http://www.atmel.com/products/AT91/ 975 W: http://www.atmel.com/products/AT91/
976 W: http://www.at91.com/ 976 W: http://www.at91.com/
977 S: Maintained 977 S: Maintained
978 F: drivers/mmc/host/at91_mci.c 978 F: drivers/mmc/host/at91_mci.c
979 979
980 ATMEL AT91 / AT32 MCI DRIVER 980 ATMEL AT91 / AT32 MCI DRIVER
981 M: Nicolas Ferre <nicolas.ferre@atmel.com> 981 M: Nicolas Ferre <nicolas.ferre@atmel.com>
982 S: Maintained 982 S: Maintained
983 F: drivers/mmc/host/atmel-mci.c 983 F: drivers/mmc/host/atmel-mci.c
984 F: drivers/mmc/host/atmel-mci-regs.h 984 F: drivers/mmc/host/atmel-mci-regs.h
985 985
986 ATMEL AT91 / AT32 SERIAL DRIVER 986 ATMEL AT91 / AT32 SERIAL DRIVER
987 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 987 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
988 S: Supported 988 S: Supported
989 F: drivers/serial/atmel_serial.c 989 F: drivers/serial/atmel_serial.c
990 990
991 ATMEL LCDFB DRIVER 991 ATMEL LCDFB DRIVER
992 M: Nicolas Ferre <nicolas.ferre@atmel.com> 992 M: Nicolas Ferre <nicolas.ferre@atmel.com>
993 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 993 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
994 S: Maintained 994 S: Maintained
995 F: drivers/video/atmel_lcdfb.c 995 F: drivers/video/atmel_lcdfb.c
996 F: include/video/atmel_lcdc.h 996 F: include/video/atmel_lcdc.h
997 997
998 ATMEL MACB ETHERNET DRIVER 998 ATMEL MACB ETHERNET DRIVER
999 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 999 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
1000 S: Supported 1000 S: Supported
1001 F: drivers/net/macb.* 1001 F: drivers/net/macb.*
1002 1002
1003 ATMEL SPI DRIVER 1003 ATMEL SPI DRIVER
1004 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 1004 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
1005 S: Supported 1005 S: Supported
1006 F: drivers/spi/atmel_spi.* 1006 F: drivers/spi/atmel_spi.*
1007 1007
1008 ATMEL USBA UDC DRIVER 1008 ATMEL USBA UDC DRIVER
1009 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 1009 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
1010 L: kernel@avr32linux.org 1010 L: kernel@avr32linux.org
1011 W: http://avr32linux.org/twiki/bin/view/Main/AtmelUsbDeviceDriver 1011 W: http://avr32linux.org/twiki/bin/view/Main/AtmelUsbDeviceDriver
1012 S: Supported 1012 S: Supported
1013 F: drivers/usb/gadget/atmel_usba_udc.* 1013 F: drivers/usb/gadget/atmel_usba_udc.*
1014 1014
1015 ATMEL WIRELESS DRIVER 1015 ATMEL WIRELESS DRIVER
1016 M: Simon Kelley <simon@thekelleys.org.uk> 1016 M: Simon Kelley <simon@thekelleys.org.uk>
1017 L: linux-wireless@vger.kernel.org 1017 L: linux-wireless@vger.kernel.org
1018 W: http://www.thekelleys.org.uk/atmel 1018 W: http://www.thekelleys.org.uk/atmel
1019 W: http://atmelwlandriver.sourceforge.net/ 1019 W: http://atmelwlandriver.sourceforge.net/
1020 S: Maintained 1020 S: Maintained
1021 F: drivers/net/wireless/atmel* 1021 F: drivers/net/wireless/atmel*
1022 1022
1023 AUDIT SUBSYSTEM 1023 AUDIT SUBSYSTEM
1024 M: Al Viro <viro@zeniv.linux.org.uk> 1024 M: Al Viro <viro@zeniv.linux.org.uk>
1025 M: Eric Paris <eparis@redhat.com> 1025 M: Eric Paris <eparis@redhat.com>
1026 L: linux-audit@redhat.com (subscribers-only) 1026 L: linux-audit@redhat.com (subscribers-only)
1027 W: http://people.redhat.com/sgrubb/audit/ 1027 W: http://people.redhat.com/sgrubb/audit/
1028 T: git git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current.git 1028 T: git git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current.git
1029 S: Maintained 1029 S: Maintained
1030 F: include/linux/audit.h 1030 F: include/linux/audit.h
1031 F: kernel/audit* 1031 F: kernel/audit*
1032 1032
1033 AUXILIARY DISPLAY DRIVERS 1033 AUXILIARY DISPLAY DRIVERS
1034 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com> 1034 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
1035 W: http://miguelojeda.es/auxdisplay.htm 1035 W: http://miguelojeda.es/auxdisplay.htm
1036 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm 1036 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
1037 S: Maintained 1037 S: Maintained
1038 F: drivers/auxdisplay/ 1038 F: drivers/auxdisplay/
1039 F: include/linux/cfag12864b.h 1039 F: include/linux/cfag12864b.h
1040 1040
1041 AVR32 ARCHITECTURE 1041 AVR32 ARCHITECTURE
1042 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 1042 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
1043 W: http://www.atmel.com/products/AVR32/ 1043 W: http://www.atmel.com/products/AVR32/
1044 W: http://avr32linux.org/ 1044 W: http://avr32linux.org/
1045 W: http://avrfreaks.net/ 1045 W: http://avrfreaks.net/
1046 S: Supported 1046 S: Supported
1047 F: arch/avr32/ 1047 F: arch/avr32/
1048 1048
1049 AVR32/AT32AP MACHINE SUPPORT 1049 AVR32/AT32AP MACHINE SUPPORT
1050 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 1050 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
1051 S: Supported 1051 S: Supported
1052 F: arch/avr32/mach-at32ap/ 1052 F: arch/avr32/mach-at32ap/
1053 1053
1054 AX.25 NETWORK LAYER 1054 AX.25 NETWORK LAYER
1055 M: Ralf Baechle <ralf@linux-mips.org> 1055 M: Ralf Baechle <ralf@linux-mips.org>
1056 L: linux-hams@vger.kernel.org 1056 L: linux-hams@vger.kernel.org
1057 W: http://www.linux-ax25.org/ 1057 W: http://www.linux-ax25.org/
1058 S: Maintained 1058 S: Maintained
1059 F: include/linux/ax25.h 1059 F: include/linux/ax25.h
1060 F: include/net/ax25.h 1060 F: include/net/ax25.h
1061 F: net/ax25/ 1061 F: net/ax25/
1062 1062
1063 B43 WIRELESS DRIVER 1063 B43 WIRELESS DRIVER
1064 M: Michael Buesch <mb@bu3sch.de> 1064 M: Michael Buesch <mb@bu3sch.de>
1065 M: Stefano Brivio <stefano.brivio@polimi.it> 1065 M: Stefano Brivio <stefano.brivio@polimi.it>
1066 L: linux-wireless@vger.kernel.org 1066 L: linux-wireless@vger.kernel.org
1067 W: http://linuxwireless.org/en/users/Drivers/b43 1067 W: http://linuxwireless.org/en/users/Drivers/b43
1068 S: Maintained 1068 S: Maintained
1069 F: drivers/net/wireless/b43/ 1069 F: drivers/net/wireless/b43/
1070 1070
1071 B43LEGACY WIRELESS DRIVER 1071 B43LEGACY WIRELESS DRIVER
1072 M: Larry Finger <Larry.Finger@lwfinger.net> 1072 M: Larry Finger <Larry.Finger@lwfinger.net>
1073 M: Stefano Brivio <stefano.brivio@polimi.it> 1073 M: Stefano Brivio <stefano.brivio@polimi.it>
1074 L: linux-wireless@vger.kernel.org 1074 L: linux-wireless@vger.kernel.org
1075 W: http://linuxwireless.org/en/users/Drivers/b43 1075 W: http://linuxwireless.org/en/users/Drivers/b43
1076 S: Maintained 1076 S: Maintained
1077 F: drivers/net/wireless/b43legacy/ 1077 F: drivers/net/wireless/b43legacy/
1078 1078
1079 BACKLIGHT CLASS/SUBSYSTEM 1079 BACKLIGHT CLASS/SUBSYSTEM
1080 M: Richard Purdie <rpurdie@rpsys.net> 1080 M: Richard Purdie <rpurdie@rpsys.net>
1081 S: Maintained 1081 S: Maintained
1082 F: drivers/video/backlight/ 1082 F: drivers/video/backlight/
1083 F: include/linux/backlight.h 1083 F: include/linux/backlight.h
1084 1084
1085 BAYCOM/HDLCDRV DRIVERS FOR AX.25 1085 BAYCOM/HDLCDRV DRIVERS FOR AX.25
1086 M: Thomas Sailer <t.sailer@alumni.ethz.ch> 1086 M: Thomas Sailer <t.sailer@alumni.ethz.ch>
1087 L: linux-hams@vger.kernel.org 1087 L: linux-hams@vger.kernel.org
1088 W: http://www.baycom.org/~tom/ham/ham.html 1088 W: http://www.baycom.org/~tom/ham/ham.html
1089 S: Maintained 1089 S: Maintained
1090 F: drivers/net/hamradio/baycom* 1090 F: drivers/net/hamradio/baycom*
1091 1091
1092 BEFS FILE SYSTEM 1092 BEFS FILE SYSTEM
1093 M: "Sergey S. Kostyliov" <rathamahata@php4.ru> 1093 M: "Sergey S. Kostyliov" <rathamahata@php4.ru>
1094 S: Maintained 1094 S: Maintained
1095 F: Documentation/filesystems/befs.txt 1095 F: Documentation/filesystems/befs.txt
1096 F: fs/befs/ 1096 F: fs/befs/
1097 1097
1098 BFS FILE SYSTEM 1098 BFS FILE SYSTEM
1099 M: "Tigran A. Aivazian" <tigran@aivazian.fsnet.co.uk> 1099 M: "Tigran A. Aivazian" <tigran@aivazian.fsnet.co.uk>
1100 S: Maintained 1100 S: Maintained
1101 F: Documentation/filesystems/bfs.txt 1101 F: Documentation/filesystems/bfs.txt
1102 F: fs/bfs/ 1102 F: fs/bfs/
1103 F: include/linux/bfs_fs.h 1103 F: include/linux/bfs_fs.h
1104 1104
1105 BLACKFIN ARCHITECTURE 1105 BLACKFIN ARCHITECTURE
1106 M: Mike Frysinger <vapier@gentoo.org> 1106 M: Mike Frysinger <vapier@gentoo.org>
1107 L: uclinux-dist-devel@blackfin.uclinux.org 1107 L: uclinux-dist-devel@blackfin.uclinux.org
1108 W: http://blackfin.uclinux.org 1108 W: http://blackfin.uclinux.org
1109 S: Supported 1109 S: Supported
1110 F: arch/blackfin/ 1110 F: arch/blackfin/
1111 1111
1112 BLACKFIN EMAC DRIVER 1112 BLACKFIN EMAC DRIVER
1113 M: Michael Hennerich <michael.hennerich@analog.com> 1113 M: Michael Hennerich <michael.hennerich@analog.com>
1114 L: uclinux-dist-devel@blackfin.uclinux.org 1114 L: uclinux-dist-devel@blackfin.uclinux.org
1115 W: http://blackfin.uclinux.org 1115 W: http://blackfin.uclinux.org
1116 S: Supported 1116 S: Supported
1117 F: drivers/net/bfin_mac.* 1117 F: drivers/net/bfin_mac.*
1118 1118
1119 BLACKFIN RTC DRIVER 1119 BLACKFIN RTC DRIVER
1120 M: Mike Frysinger <vapier.adi@gmail.com> 1120 M: Mike Frysinger <vapier.adi@gmail.com>
1121 L: uclinux-dist-devel@blackfin.uclinux.org 1121 L: uclinux-dist-devel@blackfin.uclinux.org
1122 W: http://blackfin.uclinux.org 1122 W: http://blackfin.uclinux.org
1123 S: Supported 1123 S: Supported
1124 F: drivers/rtc/rtc-bfin.c 1124 F: drivers/rtc/rtc-bfin.c
1125 1125
1126 BLACKFIN SERIAL DRIVER 1126 BLACKFIN SERIAL DRIVER
1127 M: Sonic Zhang <sonic.zhang@analog.com> 1127 M: Sonic Zhang <sonic.zhang@analog.com>
1128 L: uclinux-dist-devel@blackfin.uclinux.org 1128 L: uclinux-dist-devel@blackfin.uclinux.org
1129 W: http://blackfin.uclinux.org 1129 W: http://blackfin.uclinux.org
1130 S: Supported 1130 S: Supported
1131 F: drivers/serial/bfin_5xx.c 1131 F: drivers/serial/bfin_5xx.c
1132 1132
1133 BLACKFIN WATCHDOG DRIVER 1133 BLACKFIN WATCHDOG DRIVER
1134 M: Mike Frysinger <vapier.adi@gmail.com> 1134 M: Mike Frysinger <vapier.adi@gmail.com>
1135 L: uclinux-dist-devel@blackfin.uclinux.org 1135 L: uclinux-dist-devel@blackfin.uclinux.org
1136 W: http://blackfin.uclinux.org 1136 W: http://blackfin.uclinux.org
1137 S: Supported 1137 S: Supported
1138 F: drivers/watchdog/bfin_wdt.c 1138 F: drivers/watchdog/bfin_wdt.c
1139 1139
1140 BLACKFIN I2C TWI DRIVER 1140 BLACKFIN I2C TWI DRIVER
1141 M: Sonic Zhang <sonic.zhang@analog.com> 1141 M: Sonic Zhang <sonic.zhang@analog.com>
1142 L: uclinux-dist-devel@blackfin.uclinux.org 1142 L: uclinux-dist-devel@blackfin.uclinux.org
1143 W: http://blackfin.uclinux.org/ 1143 W: http://blackfin.uclinux.org/
1144 S: Supported 1144 S: Supported
1145 F: drivers/i2c/busses/i2c-bfin-twi.c 1145 F: drivers/i2c/busses/i2c-bfin-twi.c
1146 1146
1147 BLOCK LAYER 1147 BLOCK LAYER
1148 M: Jens Axboe <axboe@kernel.dk> 1148 M: Jens Axboe <axboe@kernel.dk>
1149 T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git 1149 T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
1150 S: Maintained 1150 S: Maintained
1151 F: block/ 1151 F: block/
1152 1152
1153 BLOCK2MTD DRIVER 1153 BLOCK2MTD DRIVER
1154 M: Joern Engel <joern@lazybastard.org> 1154 M: Joern Engel <joern@lazybastard.org>
1155 L: linux-mtd@lists.infradead.org 1155 L: linux-mtd@lists.infradead.org
1156 S: Maintained 1156 S: Maintained
1157 F: drivers/mtd/devices/block2mtd.c 1157 F: drivers/mtd/devices/block2mtd.c
1158 1158
1159 BLUETOOTH DRIVERS 1159 BLUETOOTH DRIVERS
1160 M: Marcel Holtmann <marcel@holtmann.org> 1160 M: Marcel Holtmann <marcel@holtmann.org>
1161 L: linux-bluetooth@vger.kernel.org 1161 L: linux-bluetooth@vger.kernel.org
1162 W: http://www.bluez.org/ 1162 W: http://www.bluez.org/
1163 S: Maintained 1163 S: Maintained
1164 F: drivers/bluetooth/ 1164 F: drivers/bluetooth/
1165 1165
1166 BLUETOOTH SUBSYSTEM 1166 BLUETOOTH SUBSYSTEM
1167 M: Marcel Holtmann <marcel@holtmann.org> 1167 M: Marcel Holtmann <marcel@holtmann.org>
1168 L: linux-bluetooth@vger.kernel.org 1168 L: linux-bluetooth@vger.kernel.org
1169 W: http://www.bluez.org/ 1169 W: http://www.bluez.org/
1170 T: git git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6.git 1170 T: git git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6.git
1171 S: Maintained 1171 S: Maintained
1172 F: net/bluetooth/ 1172 F: net/bluetooth/
1173 F: include/net/bluetooth/ 1173 F: include/net/bluetooth/
1174 1174
1175 BONDING DRIVER 1175 BONDING DRIVER
1176 M: Jay Vosburgh <fubar@us.ibm.com> 1176 M: Jay Vosburgh <fubar@us.ibm.com>
1177 L: bonding-devel@lists.sourceforge.net 1177 L: bonding-devel@lists.sourceforge.net
1178 W: http://sourceforge.net/projects/bonding/ 1178 W: http://sourceforge.net/projects/bonding/
1179 S: Supported 1179 S: Supported
1180 F: drivers/net/bonding/ 1180 F: drivers/net/bonding/
1181 F: include/linux/if_bonding.h 1181 F: include/linux/if_bonding.h
1182 1182
1183 BROADCOM B44 10/100 ETHERNET DRIVER 1183 BROADCOM B44 10/100 ETHERNET DRIVER
1184 M: Gary Zambrano <zambrano@broadcom.com> 1184 M: Gary Zambrano <zambrano@broadcom.com>
1185 L: netdev@vger.kernel.org 1185 L: netdev@vger.kernel.org
1186 S: Supported 1186 S: Supported
1187 F: drivers/net/b44.* 1187 F: drivers/net/b44.*
1188 1188
1189 BROADCOM BNX2 GIGABIT ETHERNET DRIVER 1189 BROADCOM BNX2 GIGABIT ETHERNET DRIVER
1190 M: Michael Chan <mchan@broadcom.com> 1190 M: Michael Chan <mchan@broadcom.com>
1191 L: netdev@vger.kernel.org 1191 L: netdev@vger.kernel.org
1192 S: Supported 1192 S: Supported
1193 F: drivers/net/bnx2.* 1193 F: drivers/net/bnx2.*
1194 F: drivers/net/bnx2_* 1194 F: drivers/net/bnx2_*
1195 1195
1196 BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER 1196 BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
1197 M: Eilon Greenstein <eilong@broadcom.com> 1197 M: Eilon Greenstein <eilong@broadcom.com>
1198 L: netdev@vger.kernel.org 1198 L: netdev@vger.kernel.org
1199 S: Supported 1199 S: Supported
1200 F: drivers/net/bnx2x* 1200 F: drivers/net/bnx2x*
1201 1201
1202 BROADCOM TG3 GIGABIT ETHERNET DRIVER 1202 BROADCOM TG3 GIGABIT ETHERNET DRIVER
1203 M: Matt Carlson <mcarlson@broadcom.com> 1203 M: Matt Carlson <mcarlson@broadcom.com>
1204 M: Michael Chan <mchan@broadcom.com> 1204 M: Michael Chan <mchan@broadcom.com>
1205 L: netdev@vger.kernel.org 1205 L: netdev@vger.kernel.org
1206 S: Supported 1206 S: Supported
1207 F: drivers/net/tg3.* 1207 F: drivers/net/tg3.*
1208 1208
1209 BSG (block layer generic sg v4 driver) 1209 BSG (block layer generic sg v4 driver)
1210 M: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> 1210 M: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
1211 L: linux-scsi@vger.kernel.org 1211 L: linux-scsi@vger.kernel.org
1212 S: Supported 1212 S: Supported
1213 F: block/bsg.c 1213 F: block/bsg.c
1214 F: include/linux/bsg.h 1214 F: include/linux/bsg.h
1215 1215
1216 BT8XXGPIO DRIVER 1216 BT8XXGPIO DRIVER
1217 M: Michael Buesch <mb@bu3sch.de> 1217 M: Michael Buesch <mb@bu3sch.de>
1218 W: http://bu3sch.de/btgpio.php 1218 W: http://bu3sch.de/btgpio.php
1219 S: Maintained 1219 S: Maintained
1220 F: drivers/gpio/bt8xxgpio.c 1220 F: drivers/gpio/bt8xxgpio.c
1221 1221
1222 BTRFS FILE SYSTEM 1222 BTRFS FILE SYSTEM
1223 M: Chris Mason <chris.mason@oracle.com> 1223 M: Chris Mason <chris.mason@oracle.com>
1224 L: linux-btrfs@vger.kernel.org 1224 L: linux-btrfs@vger.kernel.org
1225 W: http://btrfs.wiki.kernel.org/ 1225 W: http://btrfs.wiki.kernel.org/
1226 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git 1226 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable.git
1227 S: Maintained 1227 S: Maintained
1228 F: Documentation/filesystems/btrfs.txt 1228 F: Documentation/filesystems/btrfs.txt
1229 F: fs/btrfs/ 1229 F: fs/btrfs/
1230 1230
1231 BTTV VIDEO4LINUX DRIVER 1231 BTTV VIDEO4LINUX DRIVER
1232 M: Mauro Carvalho Chehab <mchehab@infradead.org> 1232 M: Mauro Carvalho Chehab <mchehab@infradead.org>
1233 L: linux-media@vger.kernel.org 1233 L: linux-media@vger.kernel.org
1234 W: http://linuxtv.org 1234 W: http://linuxtv.org
1235 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 1235 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
1236 S: Maintained 1236 S: Maintained
1237 F: Documentation/video4linux/bttv/ 1237 F: Documentation/video4linux/bttv/
1238 F: drivers/media/video/bt8xx/bttv* 1238 F: drivers/media/video/bt8xx/bttv*
1239 1239
1240 CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS 1240 CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
1241 M: David Howells <dhowells@redhat.com> 1241 M: David Howells <dhowells@redhat.com>
1242 L: linux-cachefs@redhat.com 1242 L: linux-cachefs@redhat.com
1243 S: Supported 1243 S: Supported
1244 F: Documentation/filesystems/caching/cachefiles.txt 1244 F: Documentation/filesystems/caching/cachefiles.txt
1245 F: fs/cachefiles/ 1245 F: fs/cachefiles/
1246 1246
1247 CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER 1247 CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
1248 M: Jonathan Corbet <corbet@lwn.net> 1248 M: Jonathan Corbet <corbet@lwn.net>
1249 L: linux-media@vger.kernel.org 1249 L: linux-media@vger.kernel.org
1250 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 1250 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
1251 S: Maintained 1251 S: Maintained
1252 F: Documentation/video4linux/cafe_ccic 1252 F: Documentation/video4linux/cafe_ccic
1253 F: drivers/media/video/cafe_ccic* 1253 F: drivers/media/video/cafe_ccic*
1254 1254
1255 CALGARY x86-64 IOMMU 1255 CALGARY x86-64 IOMMU
1256 M: Muli Ben-Yehuda <muli@il.ibm.com> 1256 M: Muli Ben-Yehuda <muli@il.ibm.com>
1257 M: "Jon D. Mason" <jdmason@kudzu.us> 1257 M: "Jon D. Mason" <jdmason@kudzu.us>
1258 L: discuss@x86-64.org 1258 L: discuss@x86-64.org
1259 S: Maintained 1259 S: Maintained
1260 F: arch/x86/kernel/pci-calgary_64.c 1260 F: arch/x86/kernel/pci-calgary_64.c
1261 F: arch/x86/kernel/tce_64.c 1261 F: arch/x86/kernel/tce_64.c
1262 F: arch/x86/include/asm/calgary.h 1262 F: arch/x86/include/asm/calgary.h
1263 F: arch/x86/include/asm/tce.h 1263 F: arch/x86/include/asm/tce.h
1264 1264
1265 CAN NETWORK LAYER 1265 CAN NETWORK LAYER
1266 M: Urs Thuermann <urs.thuermann@volkswagen.de> 1266 M: Urs Thuermann <urs.thuermann@volkswagen.de>
1267 M: Oliver Hartkopp <oliver.hartkopp@volkswagen.de> 1267 M: Oliver Hartkopp <oliver.hartkopp@volkswagen.de>
1268 L: socketcan-core@lists.berlios.de (subscribers-only) 1268 L: socketcan-core@lists.berlios.de (subscribers-only)
1269 W: http://developer.berlios.de/projects/socketcan/ 1269 W: http://developer.berlios.de/projects/socketcan/
1270 S: Maintained 1270 S: Maintained
1271 F: drivers/net/can/ 1271 F: drivers/net/can/
1272 F: include/linux/can/ 1272 F: include/linux/can/
1273 F: include/linux/can.h 1273 F: include/linux/can.h
1274 1274
1275 CAN NETWORK DRIVERS 1275 CAN NETWORK DRIVERS
1276 M: Wolfgang Grandegger <wg@grandegger.com> 1276 M: Wolfgang Grandegger <wg@grandegger.com>
1277 L: socketcan-core@lists.berlios.de (subscribers-only) 1277 L: socketcan-core@lists.berlios.de (subscribers-only)
1278 W: http://developer.berlios.de/projects/socketcan/ 1278 W: http://developer.berlios.de/projects/socketcan/
1279 S: Maintained 1279 S: Maintained
1280 1280
1281 CELL BROADBAND ENGINE ARCHITECTURE 1281 CELL BROADBAND ENGINE ARCHITECTURE
1282 M: Arnd Bergmann <arnd@arndb.de> 1282 M: Arnd Bergmann <arnd@arndb.de>
1283 L: linuxppc-dev@ozlabs.org 1283 L: linuxppc-dev@ozlabs.org
1284 L: cbe-oss-dev@ozlabs.org 1284 L: cbe-oss-dev@ozlabs.org
1285 W: http://www.ibm.com/developerworks/power/cell/ 1285 W: http://www.ibm.com/developerworks/power/cell/
1286 S: Supported 1286 S: Supported
1287 F: arch/powerpc/include/asm/cell*.h 1287 F: arch/powerpc/include/asm/cell*.h
1288 F: arch/powerpc/include/asm/spu*.h 1288 F: arch/powerpc/include/asm/spu*.h
1289 F: arch/powerpc/oprofile/*cell* 1289 F: arch/powerpc/oprofile/*cell*
1290 F: arch/powerpc/platforms/cell/ 1290 F: arch/powerpc/platforms/cell/
1291 1291
1292 CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM: 1292 CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
1293 M: David Vrabel <david.vrabel@csr.com> 1293 M: David Vrabel <david.vrabel@csr.com>
1294 L: linux-usb@vger.kernel.org 1294 L: linux-usb@vger.kernel.org
1295 S: Supported 1295 S: Supported
1296 F: Documentation/usb/WUSB-Design-overview.txt 1296 F: Documentation/usb/WUSB-Design-overview.txt
1297 F: Documentation/usb/wusb-cbaf 1297 F: Documentation/usb/wusb-cbaf
1298 F: drivers/usb/wusbcore/ 1298 F: drivers/usb/wusbcore/
1299 F: include/linux/usb/wusb* 1299 F: include/linux/usb/wusb*
1300 1300
1301 CFAG12864B LCD DRIVER 1301 CFAG12864B LCD DRIVER
1302 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com> 1302 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
1303 W: http://miguelojeda.es/auxdisplay.htm 1303 W: http://miguelojeda.es/auxdisplay.htm
1304 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm 1304 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
1305 S: Maintained 1305 S: Maintained
1306 F: drivers/auxdisplay/cfag12864b.c 1306 F: drivers/auxdisplay/cfag12864b.c
1307 F: include/linux/cfag12864b.h 1307 F: include/linux/cfag12864b.h
1308 1308
1309 CFAG12864BFB LCD FRAMEBUFFER DRIVER 1309 CFAG12864BFB LCD FRAMEBUFFER DRIVER
1310 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com> 1310 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
1311 W: http://miguelojeda.es/auxdisplay.htm 1311 W: http://miguelojeda.es/auxdisplay.htm
1312 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm 1312 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
1313 S: Maintained 1313 S: Maintained
1314 F: drivers/auxdisplay/cfag12864bfb.c 1314 F: drivers/auxdisplay/cfag12864bfb.c
1315 F: include/linux/cfag12864b.h 1315 F: include/linux/cfag12864b.h
1316 1316
1317 CFG80211 and NL80211 1317 CFG80211 and NL80211
1318 M: Johannes Berg <johannes@sipsolutions.net> 1318 M: Johannes Berg <johannes@sipsolutions.net>
1319 L: linux-wireless@vger.kernel.org 1319 L: linux-wireless@vger.kernel.org
1320 S: Maintained 1320 S: Maintained
1321 F: include/linux/nl80211.h 1321 F: include/linux/nl80211.h
1322 F: include/net/cfg80211.h 1322 F: include/net/cfg80211.h
1323 F: net/wireless/* 1323 F: net/wireless/*
1324 X: net/wireless/wext* 1324 X: net/wireless/wext*
1325 1325
1326 CHECKPATCH 1326 CHECKPATCH
1327 M: Andy Whitcroft <apw@canonical.com> 1327 M: Andy Whitcroft <apw@canonical.com>
1328 S: Supported 1328 S: Supported
1329 F: scripts/checkpatch.pl 1329 F: scripts/checkpatch.pl
1330 1330
1331 CISCO 10G ETHERNET DRIVER 1331 CISCO 10G ETHERNET DRIVER
1332 M: Scott Feldman <scofeldm@cisco.com> 1332 M: Scott Feldman <scofeldm@cisco.com>
1333 M: Joe Eykholt <jeykholt@cisco.com> 1333 M: Joe Eykholt <jeykholt@cisco.com>
1334 S: Supported 1334 S: Supported
1335 F: drivers/net/enic/ 1335 F: drivers/net/enic/
1336 1336
1337 CIRRUS LOGIC EP93XX ETHERNET DRIVER 1337 CIRRUS LOGIC EP93XX ETHERNET DRIVER
1338 M: Lennert Buytenhek <kernel@wantstofly.org> 1338 M: Lennert Buytenhek <kernel@wantstofly.org>
1339 L: netdev@vger.kernel.org 1339 L: netdev@vger.kernel.org
1340 S: Maintained 1340 S: Maintained
1341 F: drivers/net/arm/ep93xx_eth.c 1341 F: drivers/net/arm/ep93xx_eth.c
1342 1342
1343 CIRRUS LOGIC EP93XX OHCI USB HOST DRIVER 1343 CIRRUS LOGIC EP93XX OHCI USB HOST DRIVER
1344 M: Lennert Buytenhek <kernel@wantstofly.org> 1344 M: Lennert Buytenhek <kernel@wantstofly.org>
1345 L: linux-usb@vger.kernel.org 1345 L: linux-usb@vger.kernel.org
1346 S: Maintained 1346 S: Maintained
1347 F: drivers/usb/host/ohci-ep93xx.c 1347 F: drivers/usb/host/ohci-ep93xx.c
1348 1348
1349 CIRRUS LOGIC CS4270 SOUND DRIVER 1349 CIRRUS LOGIC CS4270 SOUND DRIVER
1350 M: Timur Tabi <timur@freescale.com> 1350 M: Timur Tabi <timur@freescale.com>
1351 L: alsa-devel@alsa-project.org (moderated for non-subscribers) 1351 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1352 S: Supported 1352 S: Supported
1353 F: sound/soc/codecs/cs4270* 1353 F: sound/soc/codecs/cs4270*
1354 1354
1355 CLK API 1355 CLK API
1356 M: Russell King <linux@arm.linux.org.uk> 1356 M: Russell King <linux@arm.linux.org.uk>
1357 F: include/linux/clk.h 1357 F: include/linux/clk.h
1358 1358
1359 CISCO FCOE HBA DRIVER 1359 CISCO FCOE HBA DRIVER
1360 M: Abhijeet Joglekar <abjoglek@cisco.com> 1360 M: Abhijeet Joglekar <abjoglek@cisco.com>
1361 M: Joe Eykholt <jeykholt@cisco.com> 1361 M: Joe Eykholt <jeykholt@cisco.com>
1362 L: linux-scsi@vger.kernel.org 1362 L: linux-scsi@vger.kernel.org
1363 S: Supported 1363 S: Supported
1364 F: drivers/scsi/fnic/ 1364 F: drivers/scsi/fnic/
1365 1365
1366 CODA FILE SYSTEM 1366 CODA FILE SYSTEM
1367 M: Jan Harkes <jaharkes@cs.cmu.edu> 1367 M: Jan Harkes <jaharkes@cs.cmu.edu>
1368 M: coda@cs.cmu.edu 1368 M: coda@cs.cmu.edu
1369 L: codalist@coda.cs.cmu.edu 1369 L: codalist@coda.cs.cmu.edu
1370 W: http://www.coda.cs.cmu.edu/ 1370 W: http://www.coda.cs.cmu.edu/
1371 S: Maintained 1371 S: Maintained
1372 F: Documentation/filesystems/coda.txt 1372 F: Documentation/filesystems/coda.txt
1373 F: fs/coda/ 1373 F: fs/coda/
1374 F: include/linux/coda*.h 1374 F: include/linux/coda*.h
1375 1375
1376 COMMON INTERNET FILE SYSTEM (CIFS) 1376 COMMON INTERNET FILE SYSTEM (CIFS)
1377 M: Steve French <sfrench@samba.org> 1377 M: Steve French <sfrench@samba.org>
1378 L: linux-cifs-client@lists.samba.org 1378 L: linux-cifs-client@lists.samba.org
1379 L: samba-technical@lists.samba.org 1379 L: samba-technical@lists.samba.org
1380 W: http://linux-cifs.samba.org/ 1380 W: http://linux-cifs.samba.org/
1381 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git 1381 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
1382 S: Supported 1382 S: Supported
1383 F: Documentation/filesystems/cifs.txt 1383 F: Documentation/filesystems/cifs.txt
1384 F: fs/cifs/ 1384 F: fs/cifs/
1385 1385
1386 COMPACTPCI HOTPLUG CORE 1386 COMPACTPCI HOTPLUG CORE
1387 M: Scott Murray <scott@spiteful.org> 1387 M: Scott Murray <scott@spiteful.org>
1388 L: linux-pci@vger.kernel.org 1388 L: linux-pci@vger.kernel.org
1389 S: Maintained 1389 S: Maintained
1390 F: drivers/pci/hotplug/cpci_hotplug* 1390 F: drivers/pci/hotplug/cpci_hotplug*
1391 1391
1392 COMPACTPCI HOTPLUG ZIATECH ZT5550 DRIVER 1392 COMPACTPCI HOTPLUG ZIATECH ZT5550 DRIVER
1393 M: Scott Murray <scott@spiteful.org> 1393 M: Scott Murray <scott@spiteful.org>
1394 L: linux-pci@vger.kernel.org 1394 L: linux-pci@vger.kernel.org
1395 S: Maintained 1395 S: Maintained
1396 F: drivers/pci/hotplug/cpcihp_zt5550.* 1396 F: drivers/pci/hotplug/cpcihp_zt5550.*
1397 1397
1398 COMPACTPCI HOTPLUG GENERIC DRIVER 1398 COMPACTPCI HOTPLUG GENERIC DRIVER
1399 M: Scott Murray <scott@spiteful.org> 1399 M: Scott Murray <scott@spiteful.org>
1400 L: linux-pci@vger.kernel.org 1400 L: linux-pci@vger.kernel.org
1401 S: Maintained 1401 S: Maintained
1402 F: drivers/pci/hotplug/cpcihp_generic.c 1402 F: drivers/pci/hotplug/cpcihp_generic.c
1403 1403
1404 COMPAL LAPTOP SUPPORT 1404 COMPAL LAPTOP SUPPORT
1405 M: Cezary Jackiewicz <cezary.jackiewicz@gmail.com> 1405 M: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>
1406 S: Maintained 1406 S: Maintained
1407 F: drivers/platform/x86/compal-laptop.c 1407 F: drivers/platform/x86/compal-laptop.c
1408 1408
1409 COMPUTONE INTELLIPORT MULTIPORT CARD 1409 COMPUTONE INTELLIPORT MULTIPORT CARD
1410 M: "Michael H. Warfield" <mhw@wittsend.com> 1410 M: "Michael H. Warfield" <mhw@wittsend.com>
1411 W: http://www.wittsend.com/computone.html 1411 W: http://www.wittsend.com/computone.html
1412 S: Maintained 1412 S: Maintained
1413 F: Documentation/serial/computone.txt 1413 F: Documentation/serial/computone.txt
1414 F: drivers/char/ip2/ 1414 F: drivers/char/ip2/
1415 1415
1416 CONEXANT ACCESSRUNNER USB DRIVER 1416 CONEXANT ACCESSRUNNER USB DRIVER
1417 M: Simon Arlott <cxacru@fire.lp0.eu> 1417 M: Simon Arlott <cxacru@fire.lp0.eu>
1418 L: accessrunner-general@lists.sourceforge.net 1418 L: accessrunner-general@lists.sourceforge.net
1419 W: http://accessrunner.sourceforge.net/ 1419 W: http://accessrunner.sourceforge.net/
1420 S: Maintained 1420 S: Maintained
1421 F: drivers/usb/atm/cxacru.c 1421 F: drivers/usb/atm/cxacru.c
1422 1422
1423 CONFIGFS 1423 CONFIGFS
1424 M: Joel Becker <joel.becker@oracle.com> 1424 M: Joel Becker <joel.becker@oracle.com>
1425 S: Supported 1425 S: Supported
1426 F: fs/configfs/ 1426 F: fs/configfs/
1427 F: include/linux/configfs.h 1427 F: include/linux/configfs.h
1428 1428
1429 CONNECTOR 1429 CONNECTOR
1430 M: Evgeniy Polyakov <zbr@ioremap.net> 1430 M: Evgeniy Polyakov <zbr@ioremap.net>
1431 L: netdev@vger.kernel.org 1431 L: netdev@vger.kernel.org
1432 S: Maintained 1432 S: Maintained
1433 F: drivers/connector/ 1433 F: drivers/connector/
1434 1434
1435 CONTROL GROUPS (CGROUPS) 1435 CONTROL GROUPS (CGROUPS)
1436 M: Paul Menage <menage@google.com> 1436 M: Paul Menage <menage@google.com>
1437 M: Li Zefan <lizf@cn.fujitsu.com> 1437 M: Li Zefan <lizf@cn.fujitsu.com>
1438 L: containers@lists.linux-foundation.org 1438 L: containers@lists.linux-foundation.org
1439 S: Maintained 1439 S: Maintained
1440 F: include/linux/cgroup* 1440 F: include/linux/cgroup*
1441 F: kernel/cgroup* 1441 F: kernel/cgroup*
1442 F: mm/*cgroup* 1442 F: mm/*cgroup*
1443 1443
1444 CORETEMP HARDWARE MONITORING DRIVER 1444 CORETEMP HARDWARE MONITORING DRIVER
1445 M: Rudolf Marek <r.marek@assembler.cz> 1445 M: Rudolf Marek <r.marek@assembler.cz>
1446 L: lm-sensors@lm-sensors.org 1446 L: lm-sensors@lm-sensors.org
1447 S: Maintained 1447 S: Maintained
1448 F: Documentation/hwmon/coretemp 1448 F: Documentation/hwmon/coretemp
1449 F: drivers/hwmon/coretemp.c 1449 F: drivers/hwmon/coretemp.c
1450 1450
1451 COSA/SRP SYNC SERIAL DRIVER 1451 COSA/SRP SYNC SERIAL DRIVER
1452 M: Jan "Yenya" Kasprzak <kas@fi.muni.cz> 1452 M: Jan "Yenya" Kasprzak <kas@fi.muni.cz>
1453 W: http://www.fi.muni.cz/~kas/cosa/ 1453 W: http://www.fi.muni.cz/~kas/cosa/
1454 S: Maintained 1454 S: Maintained
1455 F: drivers/net/wan/cosa* 1455 F: drivers/net/wan/cosa*
1456 1456
1457 CPMAC ETHERNET DRIVER 1457 CPMAC ETHERNET DRIVER
1458 M: Florian Fainelli <florian@openwrt.org> 1458 M: Florian Fainelli <florian@openwrt.org>
1459 L: netdev@vger.kernel.org 1459 L: netdev@vger.kernel.org
1460 S: Maintained 1460 S: Maintained
1461 F: drivers/net/cpmac.c 1461 F: drivers/net/cpmac.c
1462 1462
1463 CPU FREQUENCY DRIVERS 1463 CPU FREQUENCY DRIVERS
1464 M: Dave Jones <davej@redhat.com> 1464 M: Dave Jones <davej@redhat.com>
1465 L: cpufreq@vger.kernel.org 1465 L: cpufreq@vger.kernel.org
1466 W: http://www.codemonkey.org.uk/projects/cpufreq/ 1466 W: http://www.codemonkey.org.uk/projects/cpufreq/
1467 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git 1467 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git
1468 S: Maintained 1468 S: Maintained
1469 F: arch/x86/kernel/cpu/cpufreq/ 1469 F: arch/x86/kernel/cpu/cpufreq/
1470 F: drivers/cpufreq/ 1470 F: drivers/cpufreq/
1471 F: include/linux/cpufreq.h 1471 F: include/linux/cpufreq.h
1472 1472
1473 CPUID/MSR DRIVER 1473 CPUID/MSR DRIVER
1474 M: "H. Peter Anvin" <hpa@zytor.com> 1474 M: "H. Peter Anvin" <hpa@zytor.com>
1475 S: Maintained 1475 S: Maintained
1476 F: arch/x86/kernel/cpuid.c 1476 F: arch/x86/kernel/cpuid.c
1477 F: arch/x86/kernel/msr.c 1477 F: arch/x86/kernel/msr.c
1478 1478
1479 CPUSETS 1479 CPUSETS
1480 M: Paul Menage <menage@google.com> 1480 M: Paul Menage <menage@google.com>
1481 W: http://www.bullopensource.org/cpuset/ 1481 W: http://www.bullopensource.org/cpuset/
1482 W: http://oss.sgi.com/projects/cpusets/ 1482 W: http://oss.sgi.com/projects/cpusets/
1483 S: Supported 1483 S: Supported
1484 F: Documentation/cgroups/cpusets.txt 1484 F: Documentation/cgroups/cpusets.txt
1485 F: include/linux/cpuset.h 1485 F: include/linux/cpuset.h
1486 F: kernel/cpuset.c 1486 F: kernel/cpuset.c
1487 1487
1488 CRAMFS FILESYSTEM 1488 CRAMFS FILESYSTEM
1489 W: http://sourceforge.net/projects/cramfs/ 1489 W: http://sourceforge.net/projects/cramfs/
1490 S: Orphan 1490 S: Orphan
1491 F: Documentation/filesystems/cramfs.txt 1491 F: Documentation/filesystems/cramfs.txt
1492 F: fs/cramfs/ 1492 F: fs/cramfs/
1493 1493
1494 CRIS PORT 1494 CRIS PORT
1495 M: Mikael Starvik <starvik@axis.com> 1495 M: Mikael Starvik <starvik@axis.com>
1496 M: Jesper Nilsson <jesper.nilsson@axis.com> 1496 M: Jesper Nilsson <jesper.nilsson@axis.com>
1497 L: linux-cris-kernel@axis.com 1497 L: linux-cris-kernel@axis.com
1498 W: http://developer.axis.com 1498 W: http://developer.axis.com
1499 S: Maintained 1499 S: Maintained
1500 F: arch/cris/ 1500 F: arch/cris/
1501 1501
1502 CRYPTO API 1502 CRYPTO API
1503 M: Herbert Xu <herbert@gondor.apana.org.au> 1503 M: Herbert Xu <herbert@gondor.apana.org.au>
1504 M: "David S. Miller" <davem@davemloft.net> 1504 M: "David S. Miller" <davem@davemloft.net>
1505 L: linux-crypto@vger.kernel.org 1505 L: linux-crypto@vger.kernel.org
1506 T: git git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git 1506 T: git git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git
1507 S: Maintained 1507 S: Maintained
1508 F: Documentation/crypto/ 1508 F: Documentation/crypto/
1509 F: arch/*/crypto/ 1509 F: arch/*/crypto/
1510 F: crypto/ 1510 F: crypto/
1511 F: drivers/crypto/ 1511 F: drivers/crypto/
1512 F: include/crypto/ 1512 F: include/crypto/
1513 1513
1514 CRYPTOGRAPHIC RANDOM NUMBER GENERATOR 1514 CRYPTOGRAPHIC RANDOM NUMBER GENERATOR
1515 M: Neil Horman <nhorman@tuxdriver.com> 1515 M: Neil Horman <nhorman@tuxdriver.com>
1516 L: linux-crypto@vger.kernel.org 1516 L: linux-crypto@vger.kernel.org
1517 S: Maintained 1517 S: Maintained
1518 1518
1519 CS5535 Audio ALSA driver 1519 CS5535 Audio ALSA driver
1520 M: Jaya Kumar <jayakumar.alsa@gmail.com> 1520 M: Jaya Kumar <jayakumar.alsa@gmail.com>
1521 S: Maintained 1521 S: Maintained
1522 F: sound/pci/cs5535audio/ 1522 F: sound/pci/cs5535audio/
1523 1523
1524 CX18 VIDEO4LINUX DRIVER 1524 CX18 VIDEO4LINUX DRIVER
1525 M: Hans Verkuil <hverkuil@xs4all.nl> 1525 M: Hans Verkuil <hverkuil@xs4all.nl>
1526 M: Andy Walls <awalls@radix.net> 1526 M: Andy Walls <awalls@radix.net>
1527 L: ivtv-devel@ivtvdriver.org 1527 L: ivtv-devel@ivtvdriver.org
1528 L: linux-media@vger.kernel.org 1528 L: linux-media@vger.kernel.org
1529 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 1529 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
1530 W: http://linuxtv.org 1530 W: http://linuxtv.org
1531 W: http://www.ivtvdriver.org/index.php/Cx18 1531 W: http://www.ivtvdriver.org/index.php/Cx18
1532 S: Maintained 1532 S: Maintained
1533 F: Documentation/video4linux/cx18.txt 1533 F: Documentation/video4linux/cx18.txt
1534 F: drivers/media/video/cx18/ 1534 F: drivers/media/video/cx18/
1535 1535
1536 CXGB3 ETHERNET DRIVER (CXGB3) 1536 CXGB3 ETHERNET DRIVER (CXGB3)
1537 M: Divy Le Ray <divy@chelsio.com> 1537 M: Divy Le Ray <divy@chelsio.com>
1538 L: netdev@vger.kernel.org 1538 L: netdev@vger.kernel.org
1539 W: http://www.chelsio.com 1539 W: http://www.chelsio.com
1540 S: Supported 1540 S: Supported
1541 F: drivers/net/cxgb3/ 1541 F: drivers/net/cxgb3/
1542 1542
1543 CXGB3 IWARP RNIC DRIVER (IW_CXGB3) 1543 CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
1544 M: Steve Wise <swise@chelsio.com> 1544 M: Steve Wise <swise@chelsio.com>
1545 L: linux-rdma@vger.kernel.org 1545 L: linux-rdma@vger.kernel.org
1546 W: http://www.openfabrics.org 1546 W: http://www.openfabrics.org
1547 S: Supported 1547 S: Supported
1548 F: drivers/infiniband/hw/cxgb3/ 1548 F: drivers/infiniband/hw/cxgb3/
1549 1549
1550 CYBERPRO FB DRIVER 1550 CYBERPRO FB DRIVER
1551 M: Russell King <linux@arm.linux.org.uk> 1551 M: Russell King <linux@arm.linux.org.uk>
1552 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 1552 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1553 W: http://www.arm.linux.org.uk/ 1553 W: http://www.arm.linux.org.uk/
1554 S: Maintained 1554 S: Maintained
1555 F: drivers/video/cyber2000fb.* 1555 F: drivers/video/cyber2000fb.*
1556 1556
1557 CYCLADES 2X SYNC CARD DRIVER 1557 CYCLADES 2X SYNC CARD DRIVER
1558 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> 1558 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
1559 W: http://oops.ghostprotocols.net:81/blog 1559 W: http://oops.ghostprotocols.net:81/blog
1560 S: Maintained 1560 S: Maintained
1561 F: drivers/net/wan/cycx* 1561 F: drivers/net/wan/cycx*
1562 1562
1563 CYCLADES ASYNC MUX DRIVER 1563 CYCLADES ASYNC MUX DRIVER
1564 W: http://www.cyclades.com/ 1564 W: http://www.cyclades.com/
1565 S: Orphan 1565 S: Orphan
1566 F: drivers/char/cyclades.c 1566 F: drivers/char/cyclades.c
1567 F: include/linux/cyclades.h 1567 F: include/linux/cyclades.h
1568 1568
1569 CYCLADES PC300 DRIVER 1569 CYCLADES PC300 DRIVER
1570 W: http://www.cyclades.com/ 1570 W: http://www.cyclades.com/
1571 S: Orphan 1571 S: Orphan
1572 F: drivers/net/wan/pc300* 1572 F: drivers/net/wan/pc300*
1573 1573
1574 DAMA SLAVE for AX.25 1574 DAMA SLAVE for AX.25
1575 M: Joerg Reuter <jreuter@yaina.de> 1575 M: Joerg Reuter <jreuter@yaina.de>
1576 W: http://yaina.de/jreuter/ 1576 W: http://yaina.de/jreuter/
1577 W: http://www.qsl.net/dl1bke/ 1577 W: http://www.qsl.net/dl1bke/
1578 L: linux-hams@vger.kernel.org 1578 L: linux-hams@vger.kernel.org
1579 S: Maintained 1579 S: Maintained
1580 F: net/ax25/af_ax25.c 1580 F: net/ax25/af_ax25.c
1581 F: net/ax25/ax25_dev.c 1581 F: net/ax25/ax25_dev.c
1582 F: net/ax25/ax25_ds_* 1582 F: net/ax25/ax25_ds_*
1583 F: net/ax25/ax25_in.c 1583 F: net/ax25/ax25_in.c
1584 F: net/ax25/ax25_out.c 1584 F: net/ax25/ax25_out.c
1585 F: net/ax25/ax25_timer.c 1585 F: net/ax25/ax25_timer.c
1586 F: net/ax25/sysctl_net_ax25.c 1586 F: net/ax25/sysctl_net_ax25.c
1587 1587
1588 DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER 1588 DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
1589 M: Tobias Ringstrom <tori@unhappy.mine.nu> 1589 M: Tobias Ringstrom <tori@unhappy.mine.nu>
1590 L: netdev@vger.kernel.org 1590 L: netdev@vger.kernel.org
1591 S: Maintained 1591 S: Maintained
1592 F: Documentation/networking/dmfe.txt 1592 F: Documentation/networking/dmfe.txt
1593 F: drivers/net/tulip/dmfe.c 1593 F: drivers/net/tulip/dmfe.c
1594 1594
1595 DC390/AM53C974 SCSI driver 1595 DC390/AM53C974 SCSI driver
1596 M: Kurt Garloff <garloff@suse.de> 1596 M: Kurt Garloff <garloff@suse.de>
1597 W: http://www.garloff.de/kurt/linux/dc390/ 1597 W: http://www.garloff.de/kurt/linux/dc390/
1598 M: Guennadi Liakhovetski <g.liakhovetski@gmx.de> 1598 M: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
1599 S: Maintained 1599 S: Maintained
1600 F: drivers/scsi/tmscsim.* 1600 F: drivers/scsi/tmscsim.*
1601 1601
1602 DC395x SCSI driver 1602 DC395x SCSI driver
1603 M: Oliver Neukum <oliver@neukum.name> 1603 M: Oliver Neukum <oliver@neukum.name>
1604 M: Ali Akcaagac <aliakc@web.de> 1604 M: Ali Akcaagac <aliakc@web.de>
1605 M: Jamie Lenehan <lenehan@twibble.org> 1605 M: Jamie Lenehan <lenehan@twibble.org>
1606 W: http://twibble.org/dist/dc395x/ 1606 W: http://twibble.org/dist/dc395x/
1607 L: dc395x@twibble.org 1607 L: dc395x@twibble.org
1608 L: http://lists.twibble.org/mailman/listinfo/dc395x/ 1608 L: http://lists.twibble.org/mailman/listinfo/dc395x/
1609 S: Maintained 1609 S: Maintained
1610 F: Documentation/scsi/dc395x.txt 1610 F: Documentation/scsi/dc395x.txt
1611 F: drivers/scsi/dc395x.* 1611 F: drivers/scsi/dc395x.*
1612 1612
1613 DCCP PROTOCOL 1613 DCCP PROTOCOL
1614 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> 1614 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
1615 L: dccp@vger.kernel.org 1615 L: dccp@vger.kernel.org
1616 W: http://linux-net.osdl.org/index.php/DCCP 1616 W: http://linux-net.osdl.org/index.php/DCCP
1617 S: Maintained 1617 S: Maintained
1618 F: include/linux/dccp.h 1618 F: include/linux/dccp.h
1619 F: include/linux/tfrc.h 1619 F: include/linux/tfrc.h
1620 F: net/dccp/ 1620 F: net/dccp/
1621 1621
1622 DECnet NETWORK LAYER 1622 DECnet NETWORK LAYER
1623 M: Christine Caulfield <christine.caulfield@googlemail.com> 1623 M: Christine Caulfield <christine.caulfield@googlemail.com>
1624 W: http://linux-decnet.sourceforge.net 1624 W: http://linux-decnet.sourceforge.net
1625 L: linux-decnet-user@lists.sourceforge.net 1625 L: linux-decnet-user@lists.sourceforge.net
1626 S: Maintained 1626 S: Maintained
1627 F: Documentation/networking/decnet.txt 1627 F: Documentation/networking/decnet.txt
1628 F: net/decnet/ 1628 F: net/decnet/
1629 1629
1630 DEFXX FDDI NETWORK DRIVER 1630 DEFXX FDDI NETWORK DRIVER
1631 M: "Maciej W. Rozycki" <macro@linux-mips.org> 1631 M: "Maciej W. Rozycki" <macro@linux-mips.org>
1632 S: Maintained 1632 S: Maintained
1633 F: drivers/net/defxx.* 1633 F: drivers/net/defxx.*
1634 1634
1635 DELL LAPTOP DRIVER 1635 DELL LAPTOP DRIVER
1636 M: Matthew Garrett <mjg59@srcf.ucam.org> 1636 M: Matthew Garrett <mjg59@srcf.ucam.org>
1637 S: Maintained 1637 S: Maintained
1638 F: drivers/platform/x86/dell-laptop.c 1638 F: drivers/platform/x86/dell-laptop.c
1639 1639
1640 DELL LAPTOP SMM DRIVER 1640 DELL LAPTOP SMM DRIVER
1641 M: Massimo Dal Zotto <dz@debian.org> 1641 M: Massimo Dal Zotto <dz@debian.org>
1642 W: http://www.debian.org/~dz/i8k/ 1642 W: http://www.debian.org/~dz/i8k/
1643 S: Maintained 1643 S: Maintained
1644 F: drivers/char/i8k.c 1644 F: drivers/char/i8k.c
1645 F: include/linux/i8k.h 1645 F: include/linux/i8k.h
1646 1646
1647 DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas) 1647 DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
1648 M: Doug Warzecha <Douglas_Warzecha@dell.com> 1648 M: Doug Warzecha <Douglas_Warzecha@dell.com>
1649 S: Maintained 1649 S: Maintained
1650 F: Documentation/dcdbas.txt 1650 F: Documentation/dcdbas.txt
1651 F: drivers/firmware/dcdbas.* 1651 F: drivers/firmware/dcdbas.*
1652 1652
1653 DELL WMI EXTRAS DRIVER 1653 DELL WMI EXTRAS DRIVER
1654 M: Matthew Garrett <mjg59@srcf.ucam.org> 1654 M: Matthew Garrett <mjg59@srcf.ucam.org>
1655 S: Maintained 1655 S: Maintained
1656 1656
1657 DEVICE NUMBER REGISTRY 1657 DEVICE NUMBER REGISTRY
1658 M: Torben Mathiasen <device@lanana.org> 1658 M: Torben Mathiasen <device@lanana.org>
1659 W: http://lanana.org/docs/device-list/index.html 1659 W: http://lanana.org/docs/device-list/index.html
1660 S: Maintained 1660 S: Maintained
1661 1661
1662 DEVICE-MAPPER (LVM) 1662 DEVICE-MAPPER (LVM)
1663 P: Alasdair Kergon 1663 P: Alasdair Kergon
1664 L: dm-devel@redhat.com 1664 L: dm-devel@redhat.com
1665 W: http://sources.redhat.com/dm 1665 W: http://sources.redhat.com/dm
1666 S: Maintained 1666 S: Maintained
1667 F: Documentation/device-mapper/ 1667 F: Documentation/device-mapper/
1668 F: drivers/md/dm* 1668 F: drivers/md/dm*
1669 F: include/linux/device-mapper.h 1669 F: include/linux/device-mapper.h
1670 F: include/linux/dm-*.h 1670 F: include/linux/dm-*.h
1671 1671
1672 DIGI INTL. EPCA DRIVER 1672 DIGI INTL. EPCA DRIVER
1673 M: "Digi International, Inc" <Eng.Linux@digi.com> 1673 M: "Digi International, Inc" <Eng.Linux@digi.com>
1674 L: Eng.Linux@digi.com 1674 L: Eng.Linux@digi.com
1675 W: http://www.digi.com 1675 W: http://www.digi.com
1676 S: Orphan 1676 S: Orphan
1677 F: Documentation/serial/digiepca.txt 1677 F: Documentation/serial/digiepca.txt
1678 F: drivers/char/epca* 1678 F: drivers/char/epca*
1679 F: drivers/char/digi* 1679 F: drivers/char/digi*
1680 1680
1681 DIRECTORY NOTIFICATION (DNOTIFY) 1681 DIRECTORY NOTIFICATION (DNOTIFY)
1682 M: Eric Paris <eparis@parisplace.org> 1682 M: Eric Paris <eparis@parisplace.org>
1683 S: Maintained 1683 S: Maintained
1684 F: Documentation/filesystems/dnotify.txt 1684 F: Documentation/filesystems/dnotify.txt
1685 F: fs/notify/dnotify/ 1685 F: fs/notify/dnotify/
1686 F: include/linux/dnotify.h 1686 F: include/linux/dnotify.h
1687 1687
1688 DISK GEOMETRY AND PARTITION HANDLING 1688 DISK GEOMETRY AND PARTITION HANDLING
1689 M: Andries Brouwer <aeb@cwi.nl> 1689 M: Andries Brouwer <aeb@cwi.nl>
1690 W: http://www.win.tue.nl/~aeb/linux/Large-Disk.html 1690 W: http://www.win.tue.nl/~aeb/linux/Large-Disk.html
1691 W: http://www.win.tue.nl/~aeb/linux/zip/zip-1.html 1691 W: http://www.win.tue.nl/~aeb/linux/zip/zip-1.html
1692 W: http://www.win.tue.nl/~aeb/partitions/partition_types-1.html 1692 W: http://www.win.tue.nl/~aeb/partitions/partition_types-1.html
1693 S: Maintained 1693 S: Maintained
1694 1694
1695 DISKQUOTA 1695 DISKQUOTA
1696 M: Jan Kara <jack@suse.cz> 1696 M: Jan Kara <jack@suse.cz>
1697 S: Maintained 1697 S: Maintained
1698 F: Documentation/filesystems/quota.txt 1698 F: Documentation/filesystems/quota.txt
1699 F: fs/quota/ 1699 F: fs/quota/
1700 F: include/linux/quota*.h 1700 F: include/linux/quota*.h
1701 1701
1702 DISTRIBUTED LOCK MANAGER (DLM) 1702 DISTRIBUTED LOCK MANAGER (DLM)
1703 M: Christine Caulfield <ccaulfie@redhat.com> 1703 M: Christine Caulfield <ccaulfie@redhat.com>
1704 M: David Teigland <teigland@redhat.com> 1704 M: David Teigland <teigland@redhat.com>
1705 L: cluster-devel@redhat.com 1705 L: cluster-devel@redhat.com
1706 W: http://sources.redhat.com/cluster/ 1706 W: http://sources.redhat.com/cluster/
1707 T: git git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm.git 1707 T: git git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm.git
1708 S: Supported 1708 S: Supported
1709 F: fs/dlm/ 1709 F: fs/dlm/
1710 1710
1711 DMA GENERIC OFFLOAD ENGINE SUBSYSTEM 1711 DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
1712 M: Maciej Sosnowski <maciej.sosnowski@intel.com> 1712 M: Maciej Sosnowski <maciej.sosnowski@intel.com>
1713 M: Dan Williams <dan.j.williams@intel.com> 1713 M: Dan Williams <dan.j.williams@intel.com>
1714 S: Supported 1714 S: Supported
1715 F: drivers/dma/ 1715 F: drivers/dma/
1716 F: include/linux/dma* 1716 F: include/linux/dma*
1717 1717
1718 DME1737 HARDWARE MONITOR DRIVER 1718 DME1737 HARDWARE MONITOR DRIVER
1719 M: Juerg Haefliger <juergh@gmail.com> 1719 M: Juerg Haefliger <juergh@gmail.com>
1720 L: lm-sensors@lm-sensors.org 1720 L: lm-sensors@lm-sensors.org
1721 S: Maintained 1721 S: Maintained
1722 F: Documentation/hwmon/dme1737 1722 F: Documentation/hwmon/dme1737
1723 F: drivers/hwmon/dme1737.c 1723 F: drivers/hwmon/dme1737.c
1724 1724
1725 DOCBOOK FOR DOCUMENTATION 1725 DOCBOOK FOR DOCUMENTATION
1726 M: Randy Dunlap <rdunlap@xenotime.net> 1726 M: Randy Dunlap <rdunlap@xenotime.net>
1727 S: Maintained 1727 S: Maintained
1728 1728
1729 DOCKING STATION DRIVER 1729 DOCKING STATION DRIVER
1730 M: Shaohua Li <shaohua.li@intel.com> 1730 M: Shaohua Li <shaohua.li@intel.com>
1731 L: linux-acpi@vger.kernel.org 1731 L: linux-acpi@vger.kernel.org
1732 S: Supported 1732 S: Supported
1733 F: drivers/acpi/dock.c 1733 F: drivers/acpi/dock.c
1734 1734
1735 DOCUMENTATION 1735 DOCUMENTATION
1736 M: Randy Dunlap <rdunlap@xenotime.net> 1736 M: Randy Dunlap <rdunlap@xenotime.net>
1737 L: linux-doc@vger.kernel.org 1737 L: linux-doc@vger.kernel.org
1738 S: Maintained 1738 S: Maintained
1739 F: Documentation/ 1739 F: Documentation/
1740 1740
1741 DOUBLETALK DRIVER 1741 DOUBLETALK DRIVER
1742 M: "James R. Van Zandt" <jrv@vanzandt.mv.com> 1742 M: "James R. Van Zandt" <jrv@vanzandt.mv.com>
1743 L: blinux-list@redhat.com 1743 L: blinux-list@redhat.com
1744 S: Maintained 1744 S: Maintained
1745 F: drivers/char/dtlk.c 1745 F: drivers/char/dtlk.c
1746 F: include/linux/dtlk.h 1746 F: include/linux/dtlk.h
1747 1747
1748 DPT_I2O SCSI RAID DRIVER 1748 DPT_I2O SCSI RAID DRIVER
1749 M: Adaptec OEM Raid Solutions <aacraid@adaptec.com> 1749 M: Adaptec OEM Raid Solutions <aacraid@adaptec.com>
1750 L: linux-scsi@vger.kernel.org 1750 L: linux-scsi@vger.kernel.org
1751 W: http://www.adaptec.com/ 1751 W: http://www.adaptec.com/
1752 S: Maintained 1752 S: Maintained
1753 F: drivers/scsi/dpt* 1753 F: drivers/scsi/dpt*
1754 F: drivers/scsi/dpt/ 1754 F: drivers/scsi/dpt/
1755 1755
1756 DRIVER CORE, KOBJECTS, AND SYSFS 1756 DRIVER CORE, KOBJECTS, AND SYSFS
1757 M: Greg Kroah-Hartman <gregkh@suse.de> 1757 M: Greg Kroah-Hartman <gregkh@suse.de>
1758 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 1758 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
1759 S: Supported 1759 S: Supported
1760 F: Documentation/kobject.txt 1760 F: Documentation/kobject.txt
1761 F: drivers/base/ 1761 F: drivers/base/
1762 F: fs/sysfs/ 1762 F: fs/sysfs/
1763 F: include/linux/kobj* 1763 F: include/linux/kobj*
1764 F: lib/kobj* 1764 F: lib/kobj*
1765 1765
1766 DRM DRIVERS 1766 DRM DRIVERS
1767 M: David Airlie <airlied@linux.ie> 1767 M: David Airlie <airlied@linux.ie>
1768 L: dri-devel@lists.sourceforge.net 1768 L: dri-devel@lists.sourceforge.net
1769 T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git 1769 T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
1770 S: Maintained 1770 S: Maintained
1771 F: drivers/gpu/drm/ 1771 F: drivers/gpu/drm/
1772 1772
1773 DSCC4 DRIVER 1773 DSCC4 DRIVER
1774 M: Francois Romieu <romieu@fr.zoreil.com> 1774 M: Francois Romieu <romieu@fr.zoreil.com>
1775 L: netdev@vger.kernel.org 1775 L: netdev@vger.kernel.org
1776 S: Maintained 1776 S: Maintained
1777 F: drivers/net/wan/dscc4.c 1777 F: drivers/net/wan/dscc4.c
1778 1778
1779 DZ DECSTATION DZ11 SERIAL DRIVER 1779 DZ DECSTATION DZ11 SERIAL DRIVER
1780 M: "Maciej W. Rozycki" <macro@linux-mips.org> 1780 M: "Maciej W. Rozycki" <macro@linux-mips.org>
1781 S: Maintained 1781 S: Maintained
1782 F: drivers/serial/dz.* 1782 F: drivers/serial/dz.*
1783 1783
1784 EATA-DMA SCSI DRIVER 1784 EATA-DMA SCSI DRIVER
1785 M: Michael Neuffer <mike@i-Connect.Net> 1785 M: Michael Neuffer <mike@i-Connect.Net>
1786 L: linux-eata@i-connect.net 1786 L: linux-eata@i-connect.net
1787 L: linux-scsi@vger.kernel.org 1787 L: linux-scsi@vger.kernel.org
1788 S: Maintained 1788 S: Maintained
1789 F: drivers/scsi/eata* 1789 F: drivers/scsi/eata*
1790 1790
1791 EATA ISA/EISA/PCI SCSI DRIVER 1791 EATA ISA/EISA/PCI SCSI DRIVER
1792 M: Dario Ballabio <ballabio_dario@emc.com> 1792 M: Dario Ballabio <ballabio_dario@emc.com>
1793 L: linux-scsi@vger.kernel.org 1793 L: linux-scsi@vger.kernel.org
1794 S: Maintained 1794 S: Maintained
1795 F: drivers/scsi/eata.c 1795 F: drivers/scsi/eata.c
1796 1796
1797 EATA-PIO SCSI DRIVER 1797 EATA-PIO SCSI DRIVER
1798 M: Michael Neuffer <mike@i-Connect.Net> 1798 M: Michael Neuffer <mike@i-Connect.Net>
1799 L: linux-eata@i-connect.net 1799 L: linux-eata@i-connect.net
1800 L: linux-scsi@vger.kernel.org 1800 L: linux-scsi@vger.kernel.org
1801 S: Maintained 1801 S: Maintained
1802 F: drivers/scsi/eata_pio.* 1802 F: drivers/scsi/eata_pio.*
1803 1803
1804 EBTABLES 1804 EBTABLES
1805 M: Bart De Schuymer <bart.de.schuymer@pandora.be> 1805 M: Bart De Schuymer <bart.de.schuymer@pandora.be>
1806 L: ebtables-user@lists.sourceforge.net 1806 L: ebtables-user@lists.sourceforge.net
1807 L: ebtables-devel@lists.sourceforge.net 1807 L: ebtables-devel@lists.sourceforge.net
1808 W: http://ebtables.sourceforge.net/ 1808 W: http://ebtables.sourceforge.net/
1809 S: Maintained 1809 S: Maintained
1810 F: include/linux/netfilter_bridge/ebt_*.h 1810 F: include/linux/netfilter_bridge/ebt_*.h
1811 F: net/bridge/netfilter/ebt*.c 1811 F: net/bridge/netfilter/ebt*.c
1812 1812
1813 ECRYPT FILE SYSTEM 1813 ECRYPT FILE SYSTEM
1814 M: Tyler Hicks <tyhicks@linux.vnet.ibm.com> 1814 M: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
1815 M: Dustin Kirkland <kirkland@canonical.com> 1815 M: Dustin Kirkland <kirkland@canonical.com>
1816 L: ecryptfs-devel@lists.launchpad.net 1816 L: ecryptfs-devel@lists.launchpad.net
1817 W: https://launchpad.net/ecryptfs 1817 W: https://launchpad.net/ecryptfs
1818 S: Supported 1818 S: Supported
1819 F: Documentation/filesystems/ecryptfs.txt 1819 F: Documentation/filesystems/ecryptfs.txt
1820 F: fs/ecryptfs/ 1820 F: fs/ecryptfs/
1821 1821
1822 EDAC-CORE 1822 EDAC-CORE
1823 M: Doug Thompson <dougthompson@xmission.com> 1823 M: Doug Thompson <dougthompson@xmission.com>
1824 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1824 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1825 W: bluesmoke.sourceforge.net 1825 W: bluesmoke.sourceforge.net
1826 S: Supported 1826 S: Supported
1827 F: Documentation/edac.txt 1827 F: Documentation/edac.txt
1828 F: drivers/edac/edac_* 1828 F: drivers/edac/edac_*
1829 F: include/linux/edac.h 1829 F: include/linux/edac.h
1830 1830
1831 EDAC-AMD64 1831 EDAC-AMD64
1832 M: Doug Thompson <dougthompson@xmission.com> 1832 M: Doug Thompson <dougthompson@xmission.com>
1833 M: Borislav Petkov <borislav.petkov@amd.com> 1833 M: Borislav Petkov <borislav.petkov@amd.com>
1834 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1834 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1835 W: bluesmoke.sourceforge.net 1835 W: bluesmoke.sourceforge.net
1836 S: Supported 1836 S: Supported
1837 F: drivers/edac/amd64_edac* 1837 F: drivers/edac/amd64_edac*
1838 1838
1839 EDAC-E752X 1839 EDAC-E752X
1840 M: Mark Gross <mark.gross@intel.com> 1840 M: Mark Gross <mark.gross@intel.com>
1841 M: Doug Thompson <dougthompson@xmission.com> 1841 M: Doug Thompson <dougthompson@xmission.com>
1842 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1842 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1843 W: bluesmoke.sourceforge.net 1843 W: bluesmoke.sourceforge.net
1844 S: Maintained 1844 S: Maintained
1845 F: drivers/edac/e752x_edac.c 1845 F: drivers/edac/e752x_edac.c
1846 1846
1847 EDAC-E7XXX 1847 EDAC-E7XXX
1848 M: Doug Thompson <dougthompson@xmission.com> 1848 M: Doug Thompson <dougthompson@xmission.com>
1849 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1849 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1850 W: bluesmoke.sourceforge.net 1850 W: bluesmoke.sourceforge.net
1851 S: Maintained 1851 S: Maintained
1852 F: drivers/edac/e7xxx_edac.c 1852 F: drivers/edac/e7xxx_edac.c
1853 1853
1854 EDAC-I82443BXGX 1854 EDAC-I82443BXGX
1855 M: Tim Small <tim@buttersideup.com> 1855 M: Tim Small <tim@buttersideup.com>
1856 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1856 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1857 W: bluesmoke.sourceforge.net 1857 W: bluesmoke.sourceforge.net
1858 S: Maintained 1858 S: Maintained
1859 F: drivers/edac/i82443bxgx_edac.c 1859 F: drivers/edac/i82443bxgx_edac.c
1860 1860
1861 EDAC-I3000 1861 EDAC-I3000
1862 M: Jason Uhlenkott <juhlenko@akamai.com> 1862 M: Jason Uhlenkott <juhlenko@akamai.com>
1863 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1863 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1864 W: bluesmoke.sourceforge.net 1864 W: bluesmoke.sourceforge.net
1865 S: Maintained 1865 S: Maintained
1866 F: drivers/edac/i3000_edac.c 1866 F: drivers/edac/i3000_edac.c
1867 1867
1868 EDAC-I5000 1868 EDAC-I5000
1869 M: Doug Thompson <dougthompson@xmission.com> 1869 M: Doug Thompson <dougthompson@xmission.com>
1870 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1870 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1871 W: bluesmoke.sourceforge.net 1871 W: bluesmoke.sourceforge.net
1872 S: Maintained 1872 S: Maintained
1873 F: drivers/edac/i5000_edac.c 1873 F: drivers/edac/i5000_edac.c
1874 1874
1875 EDAC-I5400 1875 EDAC-I5400
1876 M: Mauro Carvalho Chehab <mchehab@redhat.com> 1876 M: Mauro Carvalho Chehab <mchehab@redhat.com>
1877 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1877 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1878 W: bluesmoke.sourceforge.net 1878 W: bluesmoke.sourceforge.net
1879 S: Maintained 1879 S: Maintained
1880 F: drivers/edac/i5400_edac.c 1880 F: drivers/edac/i5400_edac.c
1881 1881
1882 EDAC-I82975X 1882 EDAC-I82975X
1883 M: Ranganathan Desikan <ravi@jetztechnologies.com> 1883 M: Ranganathan Desikan <ravi@jetztechnologies.com>
1884 M: "Arvind R." <arvind@jetztechnologies.com> 1884 M: "Arvind R." <arvind@jetztechnologies.com>
1885 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1885 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1886 W: bluesmoke.sourceforge.net 1886 W: bluesmoke.sourceforge.net
1887 S: Maintained 1887 S: Maintained
1888 F: drivers/edac/i82975x_edac.c 1888 F: drivers/edac/i82975x_edac.c
1889 1889
1890 EDAC-PASEMI 1890 EDAC-PASEMI
1891 M: Egor Martovetsky <egor@pasemi.com> 1891 M: Egor Martovetsky <egor@pasemi.com>
1892 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1892 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1893 W: bluesmoke.sourceforge.net 1893 W: bluesmoke.sourceforge.net
1894 S: Maintained 1894 S: Maintained
1895 F: drivers/edac/pasemi_edac.c 1895 F: drivers/edac/pasemi_edac.c
1896 1896
1897 EDAC-R82600 1897 EDAC-R82600
1898 M: Tim Small <tim@buttersideup.com> 1898 M: Tim Small <tim@buttersideup.com>
1899 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers) 1899 L: bluesmoke-devel@lists.sourceforge.net (moderated for non-subscribers)
1900 W: bluesmoke.sourceforge.net 1900 W: bluesmoke.sourceforge.net
1901 S: Maintained 1901 S: Maintained
1902 F: drivers/edac/r82600_edac.c 1902 F: drivers/edac/r82600_edac.c
1903 1903
1904 EEEPC LAPTOP EXTRAS DRIVER 1904 EEEPC LAPTOP EXTRAS DRIVER
1905 M: Corentin Chary <corentincj@iksaif.net> 1905 M: Corentin Chary <corentincj@iksaif.net>
1906 L: acpi4asus-user@lists.sourceforge.net 1906 L: acpi4asus-user@lists.sourceforge.net
1907 W: http://acpi4asus.sf.net 1907 W: http://acpi4asus.sf.net
1908 S: Maintained 1908 S: Maintained
1909 F: drivers/platform/x86/eeepc-laptop.c 1909 F: drivers/platform/x86/eeepc-laptop.c
1910 1910
1911 EFS FILESYSTEM 1911 EFS FILESYSTEM
1912 W: http://aeschi.ch.eu.org/efs/ 1912 W: http://aeschi.ch.eu.org/efs/
1913 S: Orphan 1913 S: Orphan
1914 F: fs/efs/ 1914 F: fs/efs/
1915 1915
1916 EHCA (IBM GX bus InfiniBand adapter) DRIVER 1916 EHCA (IBM GX bus InfiniBand adapter) DRIVER
1917 M: Hoang-Nam Nguyen <hnguyen@de.ibm.com> 1917 M: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
1918 M: Christoph Raisch <raisch@de.ibm.com> 1918 M: Christoph Raisch <raisch@de.ibm.com>
1919 L: linux-rdma@vger.kernel.org 1919 L: linux-rdma@vger.kernel.org
1920 S: Supported 1920 S: Supported
1921 F: drivers/infiniband/hw/ehca/ 1921 F: drivers/infiniband/hw/ehca/
1922 1922
1923 EMBEDDED LINUX 1923 EMBEDDED LINUX
1924 M: Paul Gortmaker <paul.gortmaker@windriver.com> 1924 M: Paul Gortmaker <paul.gortmaker@windriver.com>
1925 M: Matt Mackall <mpm@selenic.com> 1925 M: Matt Mackall <mpm@selenic.com>
1926 M: David Woodhouse <dwmw2@infradead.org> 1926 M: David Woodhouse <dwmw2@infradead.org>
1927 L: linux-embedded@vger.kernel.org 1927 L: linux-embedded@vger.kernel.org
1928 S: Maintained 1928 S: Maintained
1929 1929
1930 EMULEX LPFC FC SCSI DRIVER 1930 EMULEX LPFC FC SCSI DRIVER
1931 M: James Smart <james.smart@emulex.com> 1931 M: James Smart <james.smart@emulex.com>
1932 L: linux-scsi@vger.kernel.org 1932 L: linux-scsi@vger.kernel.org
1933 W: http://sourceforge.net/projects/lpfcxxxx 1933 W: http://sourceforge.net/projects/lpfcxxxx
1934 S: Supported 1934 S: Supported
1935 F: drivers/scsi/lpfc/ 1935 F: drivers/scsi/lpfc/
1936 1936
1937 ENE CB710 FLASH CARD READER DRIVER 1937 ENE CB710 FLASH CARD READER DRIVER
1938 M: Michaร…ย‚ Mirosร…ย‚aw <mirq-linux@rere.qmqm.pl> 1938 M: Michaร…ย‚ Mirosร…ย‚aw <mirq-linux@rere.qmqm.pl>
1939 S: Maintained 1939 S: Maintained
1940 F: drivers/misc/cb710/ 1940 F: drivers/misc/cb710/
1941 F: drivers/mmc/host/cb710-mmc.* 1941 F: drivers/mmc/host/cb710-mmc.*
1942 F: include/linux/cb710.h 1942 F: include/linux/cb710.h
1943 1943
1944 EPSON 1355 FRAMEBUFFER DRIVER 1944 EPSON 1355 FRAMEBUFFER DRIVER
1945 M: Christopher Hoover <ch@murgatroid.com> 1945 M: Christopher Hoover <ch@murgatroid.com>
1946 M: Christopher Hoover <ch@hpl.hp.com> 1946 M: Christopher Hoover <ch@hpl.hp.com>
1947 S: Maintained 1947 S: Maintained
1948 F: drivers/video/epson1355fb.c 1948 F: drivers/video/epson1355fb.c
1949 1949
1950 EPSON S1D13XXX FRAMEBUFFER DRIVER 1950 EPSON S1D13XXX FRAMEBUFFER DRIVER
1951 M: Kristoffer Ericson <kristoffer.ericson@gmail.com> 1951 M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
1952 S: Maintained 1952 S: Maintained
1953 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git 1953 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
1954 F: drivers/video/s1d13xxxfb.c 1954 F: drivers/video/s1d13xxxfb.c
1955 F: include/video/s1d13xxxfb.h 1955 F: include/video/s1d13xxxfb.h
1956 1956
1957 ETHEREXPRESS-16 NETWORK DRIVER 1957 ETHEREXPRESS-16 NETWORK DRIVER
1958 M: Philip Blundell <philb@gnu.org> 1958 M: Philip Blundell <philb@gnu.org>
1959 L: netdev@vger.kernel.org 1959 L: netdev@vger.kernel.org
1960 S: Maintained 1960 S: Maintained
1961 F: drivers/net/eexpress.* 1961 F: drivers/net/eexpress.*
1962 1962
1963 ETHERNET BRIDGE 1963 ETHERNET BRIDGE
1964 M: Stephen Hemminger <shemminger@linux-foundation.org> 1964 M: Stephen Hemminger <shemminger@linux-foundation.org>
1965 L: bridge@lists.linux-foundation.org 1965 L: bridge@lists.linux-foundation.org
1966 W: http://www.linux-foundation.org/en/Net:Bridge 1966 W: http://www.linux-foundation.org/en/Net:Bridge
1967 S: Maintained 1967 S: Maintained
1968 F: include/linux/netfilter_bridge/ 1968 F: include/linux/netfilter_bridge/
1969 F: net/bridge/ 1969 F: net/bridge/
1970 1970
1971 ETHERTEAM 16I DRIVER 1971 ETHERTEAM 16I DRIVER
1972 M: Mika Kuoppala <miku@iki.fi> 1972 M: Mika Kuoppala <miku@iki.fi>
1973 S: Maintained 1973 S: Maintained
1974 F: drivers/net/eth16i.c 1974 F: drivers/net/eth16i.c
1975 1975
1976 EXT2 FILE SYSTEM 1976 EXT2 FILE SYSTEM
1977 L: linux-ext4@vger.kernel.org 1977 L: linux-ext4@vger.kernel.org
1978 S: Maintained 1978 S: Maintained
1979 F: Documentation/filesystems/ext2.txt 1979 F: Documentation/filesystems/ext2.txt
1980 F: fs/ext2/ 1980 F: fs/ext2/
1981 F: include/linux/ext2* 1981 F: include/linux/ext2*
1982 1982
1983 EXT3 FILE SYSTEM 1983 EXT3 FILE SYSTEM
1984 M: Andrew Morton <akpm@linux-foundation.org> 1984 M: Andrew Morton <akpm@linux-foundation.org>
1985 M: Andreas Dilger <adilger@sun.com> 1985 M: Andreas Dilger <adilger@sun.com>
1986 L: linux-ext4@vger.kernel.org 1986 L: linux-ext4@vger.kernel.org
1987 S: Maintained 1987 S: Maintained
1988 F: Documentation/filesystems/ext3.txt 1988 F: Documentation/filesystems/ext3.txt
1989 F: fs/ext3/ 1989 F: fs/ext3/
1990 F: include/linux/ext3* 1990 F: include/linux/ext3*
1991 1991
1992 EXT4 FILE SYSTEM 1992 EXT4 FILE SYSTEM
1993 M: "Theodore Ts'o" <tytso@mit.edu> 1993 M: "Theodore Ts'o" <tytso@mit.edu>
1994 M: Andreas Dilger <adilger@sun.com> 1994 M: Andreas Dilger <adilger@sun.com>
1995 L: linux-ext4@vger.kernel.org 1995 L: linux-ext4@vger.kernel.org
1996 W: http://ext4.wiki.kernel.org 1996 W: http://ext4.wiki.kernel.org
1997 S: Maintained 1997 S: Maintained
1998 F: Documentation/filesystems/ext4.txt 1998 F: Documentation/filesystems/ext4.txt
1999 F: fs/ext4/ 1999 F: fs/ext4/
2000 2000
2001 F71805F HARDWARE MONITORING DRIVER 2001 F71805F HARDWARE MONITORING DRIVER
2002 M: Jean Delvare <khali@linux-fr.org> 2002 M: Jean Delvare <khali@linux-fr.org>
2003 L: lm-sensors@lm-sensors.org 2003 L: lm-sensors@lm-sensors.org
2004 S: Maintained 2004 S: Maintained
2005 F: Documentation/hwmon/f71805f 2005 F: Documentation/hwmon/f71805f
2006 F: drivers/hwmon/f71805f.c 2006 F: drivers/hwmon/f71805f.c
2007 2007
2008 FARSYNC SYNCHRONOUS DRIVER 2008 FARSYNC SYNCHRONOUS DRIVER
2009 M: Kevin Curtis <kevin.curtis@farsite.co.uk> 2009 M: Kevin Curtis <kevin.curtis@farsite.co.uk>
2010 W: http://www.farsite.co.uk/ 2010 W: http://www.farsite.co.uk/
2011 S: Supported 2011 S: Supported
2012 F: drivers/net/wan/farsync.* 2012 F: drivers/net/wan/farsync.*
2013 2013
2014 FAULT INJECTION SUPPORT 2014 FAULT INJECTION SUPPORT
2015 M: Akinobu Mita <akinobu.mita@gmail.com> 2015 M: Akinobu Mita <akinobu.mita@gmail.com>
2016 S: Supported 2016 S: Supported
2017 F: Documentation/fault-injection/ 2017 F: Documentation/fault-injection/
2018 F: lib/fault-inject.c 2018 F: lib/fault-inject.c
2019 2019
2020 FILE LOCKING (flock() and fcntl()/lockf()) 2020 FILE LOCKING (flock() and fcntl()/lockf())
2021 M: Matthew Wilcox <matthew@wil.cx> 2021 M: Matthew Wilcox <matthew@wil.cx>
2022 L: linux-fsdevel@vger.kernel.org 2022 L: linux-fsdevel@vger.kernel.org
2023 S: Maintained 2023 S: Maintained
2024 F: include/linux/fcntl.h 2024 F: include/linux/fcntl.h
2025 F: include/linux/fs.h 2025 F: include/linux/fs.h
2026 F: fs/fcntl.c 2026 F: fs/fcntl.c
2027 F: fs/locks.c 2027 F: fs/locks.c
2028 2028
2029 FILESYSTEMS (VFS and infrastructure) 2029 FILESYSTEMS (VFS and infrastructure)
2030 M: Alexander Viro <viro@zeniv.linux.org.uk> 2030 M: Alexander Viro <viro@zeniv.linux.org.uk>
2031 L: linux-fsdevel@vger.kernel.org 2031 L: linux-fsdevel@vger.kernel.org
2032 S: Maintained 2032 S: Maintained
2033 F: fs/* 2033 F: fs/*
2034 2034
2035 FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER 2035 FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
2036 M: Riku Voipio <riku.vipio@iki.fi> 2036 M: Riku Voipio <riku.vipio@iki.fi>
2037 L: lm-sensors@lm-sensors.org 2037 L: lm-sensors@lm-sensors.org
2038 S: Maintained 2038 S: Maintained
2039 F: drivers/hwmon/f75375s.c 2039 F: drivers/hwmon/f75375s.c
2040 F: include/linux/f75375s.h 2040 F: include/linux/f75375s.h
2041 2041
2042 FIREWIRE SUBSYSTEM 2042 FIREWIRE SUBSYSTEM
2043 M: Kristian Hoegsberg <krh@redhat.com> 2043 M: Kristian Hoegsberg <krh@redhat.com>
2044 M: Stefan Richter <stefanr@s5r6.in-berlin.de> 2044 M: Stefan Richter <stefanr@s5r6.in-berlin.de>
2045 L: linux1394-devel@lists.sourceforge.net 2045 L: linux1394-devel@lists.sourceforge.net
2046 W: http://www.linux1394.org/ 2046 W: http://www.linux1394.org/
2047 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git 2047 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
2048 S: Maintained 2048 S: Maintained
2049 F: drivers/firewire/ 2049 F: drivers/firewire/
2050 F: include/linux/firewire*.h 2050 F: include/linux/firewire*.h
2051 2051
2052 FIRMWARE LOADER (request_firmware) 2052 FIRMWARE LOADER (request_firmware)
2053 S: Orphan 2053 S: Orphan
2054 F: Documentation/firmware_class/ 2054 F: Documentation/firmware_class/
2055 F: drivers/base/firmware*.c 2055 F: drivers/base/firmware*.c
2056 F: include/linux/firmware.h 2056 F: include/linux/firmware.h
2057 2057
2058 FPU EMULATOR 2058 FPU EMULATOR
2059 M: Bill Metzenthen <billm@melbpc.org.au> 2059 M: Bill Metzenthen <billm@melbpc.org.au>
2060 W: http://floatingpoint.sourceforge.net/emulator/index.html 2060 W: http://floatingpoint.sourceforge.net/emulator/index.html
2061 S: Maintained 2061 S: Maintained
2062 F: arch/x86/math-emu/ 2062 F: arch/x86/math-emu/
2063 2063
2064 FRAME RELAY DLCI/FRAD (Sangoma drivers too) 2064 FRAME RELAY DLCI/FRAD (Sangoma drivers too)
2065 M: Mike McLagan <mike.mclagan@linux.org> 2065 M: Mike McLagan <mike.mclagan@linux.org>
2066 L: netdev@vger.kernel.org 2066 L: netdev@vger.kernel.org
2067 S: Maintained 2067 S: Maintained
2068 F: drivers/net/wan/dlci.c 2068 F: drivers/net/wan/dlci.c
2069 F: drivers/net/wan/sdla.c 2069 F: drivers/net/wan/sdla.c
2070 2070
2071 FRAMEBUFFER LAYER 2071 FRAMEBUFFER LAYER
2072 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 2072 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
2073 W: http://linux-fbdev.sourceforge.net/ 2073 W: http://linux-fbdev.sourceforge.net/
2074 S: Orphan 2074 S: Orphan
2075 F: Documentation/fb/ 2075 F: Documentation/fb/
2076 F: drivers/video/fb* 2076 F: drivers/video/fb*
2077 F: include/linux/fb.h 2077 F: include/linux/fb.h
2078 2078
2079 FREESCALE DMA DRIVER 2079 FREESCALE DMA DRIVER
2080 M: Li Yang <leoli@freescale.com> 2080 M: Li Yang <leoli@freescale.com>
2081 M: Zhang Wei <zw@zh-kernel.org> 2081 M: Zhang Wei <zw@zh-kernel.org>
2082 L: linuxppc-dev@ozlabs.org 2082 L: linuxppc-dev@ozlabs.org
2083 S: Maintained 2083 S: Maintained
2084 F: drivers/dma/fsldma.* 2084 F: drivers/dma/fsldma.*
2085 2085
2086 FREESCALE I2C CPM DRIVER 2086 FREESCALE I2C CPM DRIVER
2087 M: Jochen Friedrich <jochen@scram.de> 2087 M: Jochen Friedrich <jochen@scram.de>
2088 L: linuxppc-dev@ozlabs.org 2088 L: linuxppc-dev@ozlabs.org
2089 L: linux-i2c@vger.kernel.org 2089 L: linux-i2c@vger.kernel.org
2090 S: Maintained 2090 S: Maintained
2091 F: drivers/i2c/busses/i2c-cpm.c 2091 F: drivers/i2c/busses/i2c-cpm.c
2092 2092
2093 FREESCALE IMX / MXC FRAMEBUFFER DRIVER 2093 FREESCALE IMX / MXC FRAMEBUFFER DRIVER
2094 M: Sascha Hauer <kernel@pengutronix.de> 2094 M: Sascha Hauer <kernel@pengutronix.de>
2095 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 2095 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
2096 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 2096 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
2097 S: Maintained 2097 S: Maintained
2098 F: arch/arm/plat-mxc/include/mach/imxfb.h 2098 F: arch/arm/plat-mxc/include/mach/imxfb.h
2099 F: drivers/video/imxfb.c 2099 F: drivers/video/imxfb.c
2100 2100
2101 FREESCALE SOC FS_ENET DRIVER 2101 FREESCALE SOC FS_ENET DRIVER
2102 M: Pantelis Antoniou <pantelis.antoniou@gmail.com> 2102 M: Pantelis Antoniou <pantelis.antoniou@gmail.com>
2103 M: Vitaly Bordug <vbordug@ru.mvista.com> 2103 M: Vitaly Bordug <vbordug@ru.mvista.com>
2104 L: linuxppc-dev@ozlabs.org 2104 L: linuxppc-dev@ozlabs.org
2105 L: netdev@vger.kernel.org 2105 L: netdev@vger.kernel.org
2106 S: Maintained 2106 S: Maintained
2107 F: drivers/net/fs_enet/ 2107 F: drivers/net/fs_enet/
2108 F: include/linux/fs_enet_pd.h 2108 F: include/linux/fs_enet_pd.h
2109 2109
2110 FREESCALE QUICC ENGINE LIBRARY 2110 FREESCALE QUICC ENGINE LIBRARY
2111 M: Timur Tabi <timur@freescale.com> 2111 M: Timur Tabi <timur@freescale.com>
2112 L: linuxppc-dev@ozlabs.org 2112 L: linuxppc-dev@ozlabs.org
2113 S: Supported 2113 S: Supported
2114 F: arch/powerpc/sysdev/qe_lib/ 2114 F: arch/powerpc/sysdev/qe_lib/
2115 F: arch/powerpc/include/asm/*qe.h 2115 F: arch/powerpc/include/asm/*qe.h
2116 2116
2117 FREESCALE USB PERIPHERIAL DRIVERS 2117 FREESCALE USB PERIPHERIAL DRIVERS
2118 M: Li Yang <leoli@freescale.com> 2118 M: Li Yang <leoli@freescale.com>
2119 L: linux-usb@vger.kernel.org 2119 L: linux-usb@vger.kernel.org
2120 L: linuxppc-dev@ozlabs.org 2120 L: linuxppc-dev@ozlabs.org
2121 S: Maintained 2121 S: Maintained
2122 F: drivers/usb/gadget/fsl* 2122 F: drivers/usb/gadget/fsl*
2123 2123
2124 FREESCALE QUICC ENGINE UCC ETHERNET DRIVER 2124 FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
2125 M: Li Yang <leoli@freescale.com> 2125 M: Li Yang <leoli@freescale.com>
2126 L: netdev@vger.kernel.org 2126 L: netdev@vger.kernel.org
2127 L: linuxppc-dev@ozlabs.org 2127 L: linuxppc-dev@ozlabs.org
2128 S: Maintained 2128 S: Maintained
2129 F: drivers/net/ucc_geth* 2129 F: drivers/net/ucc_geth*
2130 2130
2131 FREESCALE QUICC ENGINE UCC UART DRIVER 2131 FREESCALE QUICC ENGINE UCC UART DRIVER
2132 M: Timur Tabi <timur@freescale.com> 2132 M: Timur Tabi <timur@freescale.com>
2133 L: linuxppc-dev@ozlabs.org 2133 L: linuxppc-dev@ozlabs.org
2134 S: Supported 2134 S: Supported
2135 F: drivers/serial/ucc_uart.c 2135 F: drivers/serial/ucc_uart.c
2136 2136
2137 FREESCALE SOC SOUND DRIVERS 2137 FREESCALE SOC SOUND DRIVERS
2138 M: Timur Tabi <timur@freescale.com> 2138 M: Timur Tabi <timur@freescale.com>
2139 L: alsa-devel@alsa-project.org (moderated for non-subscribers) 2139 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
2140 L: linuxppc-dev@ozlabs.org 2140 L: linuxppc-dev@ozlabs.org
2141 S: Supported 2141 S: Supported
2142 F: sound/soc/fsl/fsl* 2142 F: sound/soc/fsl/fsl*
2143 F: sound/soc/fsl/mpc8610_hpcd.c 2143 F: sound/soc/fsl/mpc8610_hpcd.c
2144 2144
2145 FREEVXFS FILESYSTEM 2145 FREEVXFS FILESYSTEM
2146 M: Christoph Hellwig <hch@infradead.org> 2146 M: Christoph Hellwig <hch@infradead.org>
2147 W: ftp://ftp.openlinux.org/pub/people/hch/vxfs 2147 W: ftp://ftp.openlinux.org/pub/people/hch/vxfs
2148 S: Maintained 2148 S: Maintained
2149 F: fs/freevxfs/ 2149 F: fs/freevxfs/
2150 2150
2151 FREEZER 2151 FREEZER
2152 M: Pavel Machek <pavel@ucw.cz> 2152 M: Pavel Machek <pavel@ucw.cz>
2153 M: "Rafael J. Wysocki" <rjw@sisk.pl> 2153 M: "Rafael J. Wysocki" <rjw@sisk.pl>
2154 L: linux-pm@lists.linux-foundation.org 2154 L: linux-pm@lists.linux-foundation.org
2155 S: Supported 2155 S: Supported
2156 F: Documentation/power/freezing-of-tasks.txt 2156 F: Documentation/power/freezing-of-tasks.txt
2157 F: include/linux/freezer.h 2157 F: include/linux/freezer.h
2158 F: kernel/freezer.c 2158 F: kernel/freezer.c
2159 2159
2160 FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS 2160 FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS
2161 M: David Howells <dhowells@redhat.com> 2161 M: David Howells <dhowells@redhat.com>
2162 L: linux-cachefs@redhat.com 2162 L: linux-cachefs@redhat.com
2163 S: Supported 2163 S: Supported
2164 F: Documentation/filesystems/caching/ 2164 F: Documentation/filesystems/caching/
2165 F: fs/fscache/ 2165 F: fs/fscache/
2166 F: include/linux/fscache*.h 2166 F: include/linux/fscache*.h
2167 2167
2168 TRACING 2168 TRACING
2169 M: Steven Rostedt <rostedt@goodmis.org> 2169 M: Steven Rostedt <rostedt@goodmis.org>
2170 M: Frederic Weisbecker <fweisbec@gmail.com> 2170 M: Frederic Weisbecker <fweisbec@gmail.com>
2171 M: Ingo Molnar <mingo@redhat.com> 2171 M: Ingo Molnar <mingo@redhat.com>
2172 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git tracing/core 2172 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git tracing/core
2173 S: Maintained 2173 S: Maintained
2174 F: Documentation/trace/ftrace.txt 2174 F: Documentation/trace/ftrace.txt
2175 F: arch/*/*/*/ftrace.h 2175 F: arch/*/*/*/ftrace.h
2176 F: arch/*/kernel/ftrace.c 2176 F: arch/*/kernel/ftrace.c
2177 F: include/*/ftrace.h include/trace/ include/linux/trace*.h 2177 F: include/*/ftrace.h include/trace/ include/linux/trace*.h
2178 F: kernel/trace/ 2178 F: kernel/trace/
2179 2179
2180 FUJITSU FR-V (FRV) PORT 2180 FUJITSU FR-V (FRV) PORT
2181 M: David Howells <dhowells@redhat.com> 2181 M: David Howells <dhowells@redhat.com>
2182 S: Maintained 2182 S: Maintained
2183 F: arch/frv/ 2183 F: arch/frv/
2184 2184
2185 FUJITSU LAPTOP EXTRAS 2185 FUJITSU LAPTOP EXTRAS
2186 M: Jonathan Woithe <jwoithe@physics.adelaide.edu.au> 2186 M: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
2187 L: linux-acpi@vger.kernel.org 2187 L: linux-acpi@vger.kernel.org
2188 S: Maintained 2188 S: Maintained
2189 F: drivers/platform/x86/fujitsu-laptop.c 2189 F: drivers/platform/x86/fujitsu-laptop.c
2190 2190
2191 FUSE: FILESYSTEM IN USERSPACE 2191 FUSE: FILESYSTEM IN USERSPACE
2192 M: Miklos Szeredi <miklos@szeredi.hu> 2192 M: Miklos Szeredi <miklos@szeredi.hu>
2193 L: fuse-devel@lists.sourceforge.net 2193 L: fuse-devel@lists.sourceforge.net
2194 W: http://fuse.sourceforge.net/ 2194 W: http://fuse.sourceforge.net/
2195 S: Maintained 2195 S: Maintained
2196 F: fs/fuse/ 2196 F: fs/fuse/
2197 F: include/linux/fuse.h 2197 F: include/linux/fuse.h
2198 2198
2199 FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit) 2199 FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit)
2200 M: Rik Faith <faith@cs.unc.edu> 2200 M: Rik Faith <faith@cs.unc.edu>
2201 L: linux-scsi@vger.kernel.org 2201 L: linux-scsi@vger.kernel.org
2202 S: Odd Fixes (e.g., new signatures) 2202 S: Odd Fixes (e.g., new signatures)
2203 F: drivers/scsi/fdomain.* 2203 F: drivers/scsi/fdomain.*
2204 2204
2205 GDT SCSI DISK ARRAY CONTROLLER DRIVER 2205 GDT SCSI DISK ARRAY CONTROLLER DRIVER
2206 M: Achim Leubner <achim_leubner@adaptec.com> 2206 M: Achim Leubner <achim_leubner@adaptec.com>
2207 L: linux-scsi@vger.kernel.org 2207 L: linux-scsi@vger.kernel.org
2208 W: http://www.icp-vortex.com/ 2208 W: http://www.icp-vortex.com/
2209 S: Supported 2209 S: Supported
2210 F: drivers/scsi/gdt* 2210 F: drivers/scsi/gdt*
2211 2211
2212 GENERIC GPIO I2C DRIVER 2212 GENERIC GPIO I2C DRIVER
2213 M: Haavard Skinnemoen <hskinnemoen@atmel.com> 2213 M: Haavard Skinnemoen <hskinnemoen@atmel.com>
2214 S: Supported 2214 S: Supported
2215 F: drivers/i2c/busses/i2c-gpio.c 2215 F: drivers/i2c/busses/i2c-gpio.c
2216 F: include/linux/i2c-gpio.h 2216 F: include/linux/i2c-gpio.h
2217 2217
2218 GENERIC HDLC (WAN) DRIVERS 2218 GENERIC HDLC (WAN) DRIVERS
2219 M: Krzysztof Halasa <khc@pm.waw.pl> 2219 M: Krzysztof Halasa <khc@pm.waw.pl>
2220 W: http://www.kernel.org/pub/linux/utils/net/hdlc/ 2220 W: http://www.kernel.org/pub/linux/utils/net/hdlc/
2221 S: Maintained 2221 S: Maintained
2222 F: drivers/net/wan/c101.c 2222 F: drivers/net/wan/c101.c
2223 F: drivers/net/wan/hd6457* 2223 F: drivers/net/wan/hd6457*
2224 F: drivers/net/wan/hdlc* 2224 F: drivers/net/wan/hdlc*
2225 F: drivers/net/wan/n2.c 2225 F: drivers/net/wan/n2.c
2226 F: drivers/net/wan/pc300too.c 2226 F: drivers/net/wan/pc300too.c
2227 F: drivers/net/wan/pci200syn.c 2227 F: drivers/net/wan/pci200syn.c
2228 F: drivers/net/wan/wanxl* 2228 F: drivers/net/wan/wanxl*
2229 2229
2230 GENERIC INCLUDE/ASM HEADER FILES 2230 GENERIC INCLUDE/ASM HEADER FILES
2231 M: Arnd Bergmann <arnd@arndb.de> 2231 M: Arnd Bergmann <arnd@arndb.de>
2232 L: linux-arch@vger.kernel.org 2232 L: linux-arch@vger.kernel.org
2233 T: git git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git 2233 T: git git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git
2234 S: Maintained 2234 S: Maintained
2235 F: include/asm-generic 2235 F: include/asm-generic
2236 2236
2237 GENERIC UIO DRIVER FOR PCI DEVICES 2237 GENERIC UIO DRIVER FOR PCI DEVICES
2238 M: Michael S. Tsirkin <mst@redhat.com> 2238 M: Michael S. Tsirkin <mst@redhat.com>
2239 L: kvm@vger.kernel.org 2239 L: kvm@vger.kernel.org
2240 L: linux-kernel@vger.kernel.org 2240 L: linux-kernel@vger.kernel.org
2241 S: Supported 2241 S: Supported
2242 F: drivers/uio/uio_pci_generic.c 2242 F: drivers/uio/uio_pci_generic.c
2243 2243
2244 GFS2 FILE SYSTEM 2244 GFS2 FILE SYSTEM
2245 M: Steven Whitehouse <swhiteho@redhat.com> 2245 M: Steven Whitehouse <swhiteho@redhat.com>
2246 L: cluster-devel@redhat.com 2246 L: cluster-devel@redhat.com
2247 W: http://sources.redhat.com/cluster/ 2247 W: http://sources.redhat.com/cluster/
2248 T: git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git 2248 T: git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git
2249 T: git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw.git 2249 T: git git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw.git
2250 S: Supported 2250 S: Supported
2251 F: Documentation/filesystems/gfs2*.txt 2251 F: Documentation/filesystems/gfs2*.txt
2252 F: fs/gfs2/ 2252 F: fs/gfs2/
2253 F: include/linux/gfs2_ondisk.h 2253 F: include/linux/gfs2_ondisk.h
2254 2254
2255 GIGASET ISDN DRIVERS 2255 GIGASET ISDN DRIVERS
2256 M: Hansjoerg Lipp <hjlipp@web.de> 2256 M: Hansjoerg Lipp <hjlipp@web.de>
2257 M: Tilman Schmidt <tilman@imap.cc> 2257 M: Tilman Schmidt <tilman@imap.cc>
2258 L: gigaset307x-common@lists.sourceforge.net 2258 L: gigaset307x-common@lists.sourceforge.net
2259 W: http://gigaset307x.sourceforge.net/ 2259 W: http://gigaset307x.sourceforge.net/
2260 S: Maintained 2260 S: Maintained
2261 F: Documentation/isdn/README.gigaset 2261 F: Documentation/isdn/README.gigaset
2262 F: drivers/isdn/gigaset/ 2262 F: drivers/isdn/gigaset/
2263 F: include/linux/gigaset_dev.h 2263 F: include/linux/gigaset_dev.h
2264 2264
2265 HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER 2265 HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
2266 M: Frank Seidel <frank@f-seidel.de> 2266 M: Frank Seidel <frank@f-seidel.de>
2267 L: lm-sensors@lm-sensors.org 2267 L: lm-sensors@lm-sensors.org
2268 W: http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/ 2268 W: http://www.kernel.org/pub/linux/kernel/people/fseidel/hdaps/
2269 S: Maintained 2269 S: Maintained
2270 F: drivers/hwmon/hdaps.c 2270 F: drivers/hwmon/hdaps.c
2271 2271
2272 HYPERVISOR VIRTUAL CONSOLE DRIVER 2272 HYPERVISOR VIRTUAL CONSOLE DRIVER
2273 L: linuxppc-dev@ozlabs.org 2273 L: linuxppc-dev@ozlabs.org
2274 S: Odd Fixes 2274 S: Odd Fixes
2275 F: drivers/char/hvc_* 2275 F: drivers/char/hvc_*
2276 2276
2277 GSPCA FINEPIX SUBDRIVER 2277 GSPCA FINEPIX SUBDRIVER
2278 M: Frank Zago <frank@zago.net> 2278 M: Frank Zago <frank@zago.net>
2279 L: linux-media@vger.kernel.org 2279 L: linux-media@vger.kernel.org
2280 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2280 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2281 S: Maintained 2281 S: Maintained
2282 F: drivers/media/video/gspca/finepix.c 2282 F: drivers/media/video/gspca/finepix.c
2283 2283
2284 GSPCA M5602 SUBDRIVER 2284 GSPCA M5602 SUBDRIVER
2285 M: Erik Andren <erik.andren@gmail.com> 2285 M: Erik Andren <erik.andren@gmail.com>
2286 L: linux-media@vger.kernel.org 2286 L: linux-media@vger.kernel.org
2287 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2287 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2288 S: Maintained 2288 S: Maintained
2289 F: drivers/media/video/gspca/m5602/ 2289 F: drivers/media/video/gspca/m5602/
2290 2290
2291 GSPCA PAC207 SONIXB SUBDRIVER 2291 GSPCA PAC207 SONIXB SUBDRIVER
2292 M: Hans de Goede <hdegoede@redhat.com> 2292 M: Hans de Goede <hdegoede@redhat.com>
2293 L: linux-media@vger.kernel.org 2293 L: linux-media@vger.kernel.org
2294 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2294 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2295 S: Maintained 2295 S: Maintained
2296 F: drivers/media/video/gspca/pac207.c 2296 F: drivers/media/video/gspca/pac207.c
2297 2297
2298 GSPCA SN9C20X SUBDRIVER 2298 GSPCA SN9C20X SUBDRIVER
2299 M: Brian Johnson <brijohn@gmail.com> 2299 M: Brian Johnson <brijohn@gmail.com>
2300 L: linux-media@vger.kernel.org 2300 L: linux-media@vger.kernel.org
2301 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2301 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2302 S: Maintained 2302 S: Maintained
2303 F: drivers/media/video/gspca/sn9c20x.c 2303 F: drivers/media/video/gspca/sn9c20x.c
2304 2304
2305 GSPCA T613 SUBDRIVER 2305 GSPCA T613 SUBDRIVER
2306 M: Leandro Costantino <lcostantino@gmail.com> 2306 M: Leandro Costantino <lcostantino@gmail.com>
2307 L: linux-media@vger.kernel.org 2307 L: linux-media@vger.kernel.org
2308 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2308 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2309 S: Maintained 2309 S: Maintained
2310 F: drivers/media/video/gspca/t613.c 2310 F: drivers/media/video/gspca/t613.c
2311 2311
2312 GSPCA USB WEBCAM DRIVER 2312 GSPCA USB WEBCAM DRIVER
2313 M: Jean-Francois Moine <moinejf@free.fr> 2313 M: Jean-Francois Moine <moinejf@free.fr>
2314 W: http://moinejf.free.fr 2314 W: http://moinejf.free.fr
2315 L: linux-media@vger.kernel.org 2315 L: linux-media@vger.kernel.org
2316 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2316 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2317 S: Maintained 2317 S: Maintained
2318 F: drivers/media/video/gspca/ 2318 F: drivers/media/video/gspca/
2319 2319
2320 HARDWARE MONITORING 2320 HARDWARE MONITORING
2321 L: lm-sensors@lm-sensors.org 2321 L: lm-sensors@lm-sensors.org
2322 W: http://www.lm-sensors.org/ 2322 W: http://www.lm-sensors.org/
2323 S: Orphan 2323 S: Orphan
2324 F: drivers/hwmon/ 2324 F: drivers/hwmon/
2325 2325
2326 HARDWARE RANDOM NUMBER GENERATOR CORE 2326 HARDWARE RANDOM NUMBER GENERATOR CORE
2327 S: Orphan 2327 S: Orphan
2328 F: Documentation/hw_random.txt 2328 F: Documentation/hw_random.txt
2329 F: drivers/char/hw_random/ 2329 F: drivers/char/hw_random/
2330 F: include/linux/hw_random.h 2330 F: include/linux/hw_random.h
2331 2331
2332 HARMONY SOUND DRIVER 2332 HARMONY SOUND DRIVER
2333 M: Kyle McMartin <kyle@mcmartin.ca> 2333 M: Kyle McMartin <kyle@mcmartin.ca>
2334 L: linux-parisc@vger.kernel.org 2334 L: linux-parisc@vger.kernel.org
2335 S: Maintained 2335 S: Maintained
2336 F: sound/parisc/harmony.* 2336 F: sound/parisc/harmony.*
2337 2337
2338 HAYES ESP SERIAL DRIVER 2338 HAYES ESP SERIAL DRIVER
2339 M: "Andrew J. Robinson" <arobinso@nyx.net> 2339 M: "Andrew J. Robinson" <arobinso@nyx.net>
2340 W: http://www.nyx.net/~arobinso 2340 W: http://www.nyx.net/~arobinso
2341 S: Maintained 2341 S: Maintained
2342 F: Documentation/serial/hayes-esp.txt 2342 F: Documentation/serial/hayes-esp.txt
2343 F: drivers/char/esp.c 2343 F: drivers/char/esp.c
2344 2344
2345 HEWLETT-PACKARD SMART2 RAID DRIVER 2345 HEWLETT-PACKARD SMART2 RAID DRIVER
2346 M: Chirag Kantharia <chirag.kantharia@hp.com> 2346 M: Chirag Kantharia <chirag.kantharia@hp.com>
2347 L: iss_storagedev@hp.com 2347 L: iss_storagedev@hp.com
2348 S: Maintained 2348 S: Maintained
2349 F: Documentation/blockdev/cpqarray.txt 2349 F: Documentation/blockdev/cpqarray.txt
2350 F: drivers/block/cpqarray.* 2350 F: drivers/block/cpqarray.*
2351 2351
2352 HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss) 2352 HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss)
2353 M: Mike Miller <mike.miller@hp.com> 2353 M: Mike Miller <mike.miller@hp.com>
2354 L: iss_storagedev@hp.com 2354 L: iss_storagedev@hp.com
2355 S: Supported 2355 S: Supported
2356 F: Documentation/blockdev/cciss.txt 2356 F: Documentation/blockdev/cciss.txt
2357 F: drivers/block/cciss* 2357 F: drivers/block/cciss*
2358 F: include/linux/cciss_ioctl.h 2358 F: include/linux/cciss_ioctl.h
2359 2359
2360 HFS FILESYSTEM 2360 HFS FILESYSTEM
2361 M: Roman Zippel <zippel@linux-m68k.org> 2361 M: Roman Zippel <zippel@linux-m68k.org>
2362 S: Maintained 2362 S: Maintained
2363 F: Documentation/filesystems/hfs.txt 2363 F: Documentation/filesystems/hfs.txt
2364 F: fs/hfs/ 2364 F: fs/hfs/
2365 2365
2366 HGA FRAMEBUFFER DRIVER 2366 HGA FRAMEBUFFER DRIVER
2367 M: Ferenc Bakonyi <fero@drama.obuda.kando.hu> 2367 M: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
2368 L: linux-nvidia@lists.surfsouth.com 2368 L: linux-nvidia@lists.surfsouth.com
2369 W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml 2369 W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
2370 S: Maintained 2370 S: Maintained
2371 F: drivers/video/hgafb.c 2371 F: drivers/video/hgafb.c
2372 2372
2373 HIBERNATION (aka Software Suspend, aka swsusp) 2373 HIBERNATION (aka Software Suspend, aka swsusp)
2374 M: Pavel Machek <pavel@ucw.cz> 2374 M: Pavel Machek <pavel@ucw.cz>
2375 M: "Rafael J. Wysocki" <rjw@sisk.pl> 2375 M: "Rafael J. Wysocki" <rjw@sisk.pl>
2376 L: linux-pm@lists.linux-foundation.org 2376 L: linux-pm@lists.linux-foundation.org
2377 S: Supported 2377 S: Supported
2378 F: arch/x86/power/ 2378 F: arch/x86/power/
2379 F: drivers/base/power/ 2379 F: drivers/base/power/
2380 F: kernel/power/ 2380 F: kernel/power/
2381 F: include/linux/suspend.h 2381 F: include/linux/suspend.h
2382 F: include/linux/freezer.h 2382 F: include/linux/freezer.h
2383 F: include/linux/pm.h 2383 F: include/linux/pm.h
2384 F: arch/*/include/asm/suspend*.h 2384 F: arch/*/include/asm/suspend*.h
2385 2385
2386 HID CORE LAYER 2386 HID CORE LAYER
2387 M: Jiri Kosina <jkosina@suse.cz> 2387 M: Jiri Kosina <jkosina@suse.cz>
2388 L: linux-input@vger.kernel.org 2388 L: linux-input@vger.kernel.org
2389 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git 2389 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git
2390 S: Maintained 2390 S: Maintained
2391 F: drivers/hid/ 2391 F: drivers/hid/
2392 F: include/linux/hid* 2392 F: include/linux/hid*
2393 2393
2394 HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS 2394 HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS
2395 M: Thomas Gleixner <tglx@linutronix.de> 2395 M: Thomas Gleixner <tglx@linutronix.de>
2396 S: Maintained 2396 S: Maintained
2397 F: Documentation/timers/ 2397 F: Documentation/timers/
2398 F: kernel/hrtimer.c 2398 F: kernel/hrtimer.c
2399 F: include/linux/hrtimer.h 2399 F: include/linux/hrtimer.h
2400 2400
2401 HIGH-SPEED SCC DRIVER FOR AX.25 2401 HIGH-SPEED SCC DRIVER FOR AX.25
2402 M: Klaus Kudielka <klaus.kudielka@ieee.org> 2402 M: Klaus Kudielka <klaus.kudielka@ieee.org>
2403 L: linux-hams@vger.kernel.org 2403 L: linux-hams@vger.kernel.org
2404 W: http://www.nt.tuwien.ac.at/~kkudielk/Linux/ 2404 W: http://www.nt.tuwien.ac.at/~kkudielk/Linux/
2405 S: Maintained 2405 S: Maintained
2406 F: drivers/net/hamradio/dmascc.c 2406 F: drivers/net/hamradio/dmascc.c
2407 F: drivers/net/hamradio/scc.c 2407 F: drivers/net/hamradio/scc.c
2408 2408
2409 HIGHPOINT ROCKETRAID 3xxx RAID DRIVER 2409 HIGHPOINT ROCKETRAID 3xxx RAID DRIVER
2410 M: HighPoint Linux Team <linux@highpoint-tech.com> 2410 M: HighPoint Linux Team <linux@highpoint-tech.com>
2411 W: http://www.highpoint-tech.com 2411 W: http://www.highpoint-tech.com
2412 S: Supported 2412 S: Supported
2413 F: Documentation/scsi/hptiop.txt 2413 F: Documentation/scsi/hptiop.txt
2414 F: drivers/scsi/hptiop.c 2414 F: drivers/scsi/hptiop.c
2415 2415
2416 HIPPI 2416 HIPPI
2417 M: Jes Sorensen <jes@trained-monkey.org> 2417 M: Jes Sorensen <jes@trained-monkey.org>
2418 L: linux-hippi@sunsite.dk 2418 L: linux-hippi@sunsite.dk
2419 S: Maintained 2419 S: Maintained
2420 F: include/linux/hippidevice.h 2420 F: include/linux/hippidevice.h
2421 F: include/linux/if_hippi.h 2421 F: include/linux/if_hippi.h
2422 F: net/802/hippi.c 2422 F: net/802/hippi.c
2423 2423
2424 HOST AP DRIVER 2424 HOST AP DRIVER
2425 M: Jouni Malinen <j@w1.fi> 2425 M: Jouni Malinen <j@w1.fi>
2426 L: hostap@shmoo.com (subscribers-only) 2426 L: hostap@shmoo.com (subscribers-only)
2427 L: linux-wireless@vger.kernel.org 2427 L: linux-wireless@vger.kernel.org
2428 W: http://hostap.epitest.fi/ 2428 W: http://hostap.epitest.fi/
2429 S: Maintained 2429 S: Maintained
2430 F: drivers/net/wireless/hostap/ 2430 F: drivers/net/wireless/hostap/
2431 2431
2432 HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER 2432 HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
2433 M: Carlos Corbacho <carlos@strangeworlds.co.uk> 2433 M: Carlos Corbacho <carlos@strangeworlds.co.uk>
2434 S: Odd Fixes 2434 S: Odd Fixes
2435 F: drivers/platform/x86/tc1100-wmi.c 2435 F: drivers/platform/x86/tc1100-wmi.c
2436 2436
2437 HP100: Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series 2437 HP100: Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series
2438 M: Jaroslav Kysela <perex@perex.cz> 2438 M: Jaroslav Kysela <perex@perex.cz>
2439 S: Maintained 2439 S: Maintained
2440 F: drivers/net/hp100.* 2440 F: drivers/net/hp100.*
2441 2441
2442 HPET: High Precision Event Timers driver 2442 HPET: High Precision Event Timers driver
2443 M: Clemens Ladisch <clemens@ladisch.de> 2443 M: Clemens Ladisch <clemens@ladisch.de>
2444 S: Maintained 2444 S: Maintained
2445 F: Documentation/timers/hpet.txt 2445 F: Documentation/timers/hpet.txt
2446 F: drivers/char/hpet.c 2446 F: drivers/char/hpet.c
2447 F: include/linux/hpet.h 2447 F: include/linux/hpet.h
2448 2448
2449 HPET: i386 2449 HPET: i386
2450 M: "Venkatesh Pallipadi (Venki)" <venkatesh.pallipadi@intel.com> 2450 M: "Venkatesh Pallipadi (Venki)" <venkatesh.pallipadi@intel.com>
2451 S: Maintained 2451 S: Maintained
2452 F: arch/x86/kernel/hpet.c 2452 F: arch/x86/kernel/hpet.c
2453 F: arch/x86/include/asm/hpet.h 2453 F: arch/x86/include/asm/hpet.h
2454 2454
2455 HPET: x86_64 2455 HPET: x86_64
2456 M: Vojtech Pavlik <vojtech@suse.cz> 2456 M: Vojtech Pavlik <vojtech@suse.cz>
2457 S: Maintained 2457 S: Maintained
2458 2458
2459 HPET: ACPI 2459 HPET: ACPI
2460 M: Bob Picco <bob.picco@hp.com> 2460 M: Bob Picco <bob.picco@hp.com>
2461 S: Maintained 2461 S: Maintained
2462 F: drivers/char/hpet.c 2462 F: drivers/char/hpet.c
2463 2463
2464 HPFS FILESYSTEM 2464 HPFS FILESYSTEM
2465 M: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> 2465 M: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
2466 W: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi 2466 W: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi
2467 S: Maintained 2467 S: Maintained
2468 F: fs/hpfs/ 2468 F: fs/hpfs/
2469 2469
2470 HSO 3G MODEM DRIVER 2470 HSO 3G MODEM DRIVER
2471 M: Jan Dumon <j.dumon@option.com> 2471 M: Jan Dumon <j.dumon@option.com>
2472 W: http://www.pharscape.org 2472 W: http://www.pharscape.org
2473 S: Maintained 2473 S: Maintained
2474 F: drivers/net/usb/hso.c 2474 F: drivers/net/usb/hso.c
2475 2475
2476 HTCPEN TOUCHSCREEN DRIVER 2476 HTCPEN TOUCHSCREEN DRIVER
2477 M: Pau Oliva Fora <pof@eslack.org> 2477 M: Pau Oliva Fora <pof@eslack.org>
2478 L: linux-input@vger.kernel.org 2478 L: linux-input@vger.kernel.org
2479 S: Maintained 2479 S: Maintained
2480 F: drivers/input/touchscreen/htcpen.c 2480 F: drivers/input/touchscreen/htcpen.c
2481 2481
2482 HUGETLB FILESYSTEM 2482 HUGETLB FILESYSTEM
2483 M: William Irwin <wli@holomorphy.com> 2483 M: William Irwin <wli@holomorphy.com>
2484 S: Maintained 2484 S: Maintained
2485 F: fs/hugetlbfs/ 2485 F: fs/hugetlbfs/
2486 2486
2487 I2C/SMBUS STUB DRIVER 2487 I2C/SMBUS STUB DRIVER
2488 M: "Mark M. Hoffman" <mhoffman@lightlink.com> 2488 M: "Mark M. Hoffman" <mhoffman@lightlink.com>
2489 L: linux-i2c@vger.kernel.org 2489 L: linux-i2c@vger.kernel.org
2490 S: Maintained 2490 S: Maintained
2491 F: drivers/i2c/busses/i2c-stub.c 2491 F: drivers/i2c/busses/i2c-stub.c
2492 2492
2493 I2C SUBSYSTEM 2493 I2C SUBSYSTEM
2494 M: "Jean Delvare (PC drivers, core)" <khali@linux-fr.org> 2494 M: "Jean Delvare (PC drivers, core)" <khali@linux-fr.org>
2495 M: "Ben Dooks (embedded platforms)" <ben-linux@fluff.org> 2495 M: "Ben Dooks (embedded platforms)" <ben-linux@fluff.org>
2496 L: linux-i2c@vger.kernel.org 2496 L: linux-i2c@vger.kernel.org
2497 W: http://i2c.wiki.kernel.org/ 2497 W: http://i2c.wiki.kernel.org/
2498 T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/ 2498 T: quilt kernel.org/pub/linux/kernel/people/jdelvare/linux-2.6/jdelvare-i2c/
2499 S: Maintained 2499 S: Maintained
2500 F: Documentation/i2c/ 2500 F: Documentation/i2c/
2501 F: drivers/i2c/ 2501 F: drivers/i2c/
2502 F: include/linux/i2c.h 2502 F: include/linux/i2c.h
2503 F: include/linux/i2c-dev.h 2503 F: include/linux/i2c-dev.h
2504 F: include/linux/i2c-id.h 2504 F: include/linux/i2c-id.h
2505 2505
2506 I2C-TINY-USB DRIVER 2506 I2C-TINY-USB DRIVER
2507 M: Till Harbaum <till@harbaum.org> 2507 M: Till Harbaum <till@harbaum.org>
2508 L: linux-i2c@vger.kernel.org 2508 L: linux-i2c@vger.kernel.org
2509 W: http://www.harbaum.org/till/i2c_tiny_usb 2509 W: http://www.harbaum.org/till/i2c_tiny_usb
2510 S: Maintained 2510 S: Maintained
2511 F: drivers/i2c/busses/i2c-tiny-usb.c 2511 F: drivers/i2c/busses/i2c-tiny-usb.c
2512 2512
2513 i386 BOOT CODE 2513 i386 BOOT CODE
2514 M: "H. Peter Anvin" <hpa@zytor.com> 2514 M: "H. Peter Anvin" <hpa@zytor.com>
2515 S: Maintained 2515 S: Maintained
2516 F: arch/x86/boot/ 2516 F: arch/x86/boot/
2517 2517
2518 i386 SETUP CODE / CPU ERRATA WORKAROUNDS 2518 i386 SETUP CODE / CPU ERRATA WORKAROUNDS
2519 M: "H. Peter Anvin" <hpa@zytor.com> 2519 M: "H. Peter Anvin" <hpa@zytor.com>
2520 T: git git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup.git 2520 T: git git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup.git
2521 S: Maintained 2521 S: Maintained
2522 2522
2523 IA64 (Itanium) PLATFORM 2523 IA64 (Itanium) PLATFORM
2524 M: Tony Luck <tony.luck@intel.com> 2524 M: Tony Luck <tony.luck@intel.com>
2525 M: Fenghua Yu <fenghua.yu@intel.com> 2525 M: Fenghua Yu <fenghua.yu@intel.com>
2526 L: linux-ia64@vger.kernel.org 2526 L: linux-ia64@vger.kernel.org
2527 W: http://www.ia64-linux.org/ 2527 W: http://www.ia64-linux.org/
2528 T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git 2528 T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git
2529 S: Maintained 2529 S: Maintained
2530 F: arch/ia64/ 2530 F: arch/ia64/
2531 2531
2532 IBM MCA SCSI SUBSYSTEM DRIVER 2532 IBM MCA SCSI SUBSYSTEM DRIVER
2533 M: Michael Lang <langa2@kph.uni-mainz.de> 2533 M: Michael Lang <langa2@kph.uni-mainz.de>
2534 W: http://www.uni-mainz.de/~langm000/linux.html 2534 W: http://www.uni-mainz.de/~langm000/linux.html
2535 S: Maintained 2535 S: Maintained
2536 F: drivers/scsi/ibmmca.c 2536 F: drivers/scsi/ibmmca.c
2537 2537
2538 IBM Power Linux RAID adapter 2538 IBM Power Linux RAID adapter
2539 M: Brian King <brking@us.ibm.com> 2539 M: Brian King <brking@us.ibm.com>
2540 S: Supported 2540 S: Supported
2541 F: drivers/scsi/ipr.* 2541 F: drivers/scsi/ipr.*
2542 2542
2543 IBM ServeRAID RAID DRIVER 2543 IBM ServeRAID RAID DRIVER
2544 P: Jack Hammer 2544 P: Jack Hammer
2545 M: Dave Jeffery <ipslinux@adaptec.com> 2545 M: Dave Jeffery <ipslinux@adaptec.com>
2546 W: http://www.developer.ibm.com/welcome/netfinity/serveraid.html 2546 W: http://www.developer.ibm.com/welcome/netfinity/serveraid.html
2547 S: Supported 2547 S: Supported
2548 F: drivers/scsi/ips.* 2548 F: drivers/scsi/ips.*
2549 2549
2550 IDE SUBSYSTEM 2550 IDE SUBSYSTEM
2551 M: "David S. Miller" <davem@davemloft.net> 2551 M: "David S. Miller" <davem@davemloft.net>
2552 L: linux-ide@vger.kernel.org 2552 L: linux-ide@vger.kernel.org
2553 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6.git 2553 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6.git
2554 S: Maintained 2554 S: Maintained
2555 F: Documentation/ide/ 2555 F: Documentation/ide/
2556 F: drivers/ide/ 2556 F: drivers/ide/
2557 F: include/linux/ide.h 2557 F: include/linux/ide.h
2558 2558
2559 IDE/ATAPI DRIVERS 2559 IDE/ATAPI DRIVERS
2560 M: Borislav Petkov <petkovbb@gmail.com> 2560 M: Borislav Petkov <petkovbb@gmail.com>
2561 L: linux-ide@vger.kernel.org 2561 L: linux-ide@vger.kernel.org
2562 S: Maintained 2562 S: Maintained
2563 F: Documentation/cdrom/ide-cd 2563 F: Documentation/cdrom/ide-cd
2564 F: drivers/ide/ide-cd* 2564 F: drivers/ide/ide-cd*
2565 2565
2566 IDLE-I7300 2566 IDLE-I7300
2567 M: Andy Henroid <andrew.d.henroid@intel.com> 2567 M: Andy Henroid <andrew.d.henroid@intel.com>
2568 L: linux-pm@lists.linux-foundation.org 2568 L: linux-pm@lists.linux-foundation.org
2569 S: Supported 2569 S: Supported
2570 F: drivers/idle/i7300_idle.c 2570 F: drivers/idle/i7300_idle.c
2571 2571
2572 IEEE 1394 SUBSYSTEM 2572 IEEE 1394 SUBSYSTEM
2573 M: Ben Collins <ben.collins@ubuntu.com> 2573 M: Ben Collins <ben.collins@ubuntu.com>
2574 M: Stefan Richter <stefanr@s5r6.in-berlin.de> 2574 M: Stefan Richter <stefanr@s5r6.in-berlin.de>
2575 L: linux1394-devel@lists.sourceforge.net 2575 L: linux1394-devel@lists.sourceforge.net
2576 W: http://www.linux1394.org/ 2576 W: http://www.linux1394.org/
2577 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git 2577 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
2578 S: Maintained 2578 S: Maintained
2579 F: drivers/ieee1394/ 2579 F: drivers/ieee1394/
2580 2580
2581 IEEE 1394 RAW I/O DRIVER 2581 IEEE 1394 RAW I/O DRIVER
2582 M: Dan Dennedy <dan@dennedy.org> 2582 M: Dan Dennedy <dan@dennedy.org>
2583 M: Stefan Richter <stefanr@s5r6.in-berlin.de> 2583 M: Stefan Richter <stefanr@s5r6.in-berlin.de>
2584 L: linux1394-devel@lists.sourceforge.net 2584 L: linux1394-devel@lists.sourceforge.net
2585 S: Maintained 2585 S: Maintained
2586 F: drivers/ieee1394/raw1394* 2586 F: drivers/ieee1394/raw1394*
2587 2587
2588 IEEE 802.15.4 SUBSYSTEM 2588 IEEE 802.15.4 SUBSYSTEM
2589 M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 2589 M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2590 M: Sergey Lapin <slapin@ossfans.org> 2590 M: Sergey Lapin <slapin@ossfans.org>
2591 L: linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers) 2591 L: linux-zigbee-devel@lists.sourceforge.net (moderated for non-subscribers)
2592 W: http://apps.sourceforge.net/trac/linux-zigbee 2592 W: http://apps.sourceforge.net/trac/linux-zigbee
2593 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git 2593 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
2594 S: Maintained 2594 S: Maintained
2595 F: net/ieee802154/ 2595 F: net/ieee802154/
2596 F: drivers/ieee802154/ 2596 F: drivers/ieee802154/
2597 2597
2598 INTEGRITY MEASUREMENT ARCHITECTURE (IMA) 2598 INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
2599 M: Mimi Zohar <zohar@us.ibm.com> 2599 M: Mimi Zohar <zohar@us.ibm.com>
2600 S: Supported 2600 S: Supported
2601 F: security/integrity/ima/ 2601 F: security/integrity/ima/
2602 2602
2603 IMS TWINTURBO FRAMEBUFFER DRIVER 2603 IMS TWINTURBO FRAMEBUFFER DRIVER
2604 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 2604 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
2605 S: Orphan 2605 S: Orphan
2606 F: drivers/video/imsttfb.c 2606 F: drivers/video/imsttfb.c
2607 2607
2608 INFINIBAND SUBSYSTEM 2608 INFINIBAND SUBSYSTEM
2609 M: Roland Dreier <rolandd@cisco.com> 2609 M: Roland Dreier <rolandd@cisco.com>
2610 M: Sean Hefty <sean.hefty@intel.com> 2610 M: Sean Hefty <sean.hefty@intel.com>
2611 M: Hal Rosenstock <hal.rosenstock@gmail.com> 2611 M: Hal Rosenstock <hal.rosenstock@gmail.com>
2612 L: linux-rdma@vger.kernel.org 2612 L: linux-rdma@vger.kernel.org
2613 W: http://www.openib.org/ 2613 W: http://www.openib.org/
2614 T: git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git 2614 T: git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git
2615 S: Supported 2615 S: Supported
2616 F: Documentation/infiniband/ 2616 F: Documentation/infiniband/
2617 F: drivers/infiniband/ 2617 F: drivers/infiniband/
2618 F: include/linux/if_infiniband.h 2618 F: include/linux/if_infiniband.h
2619 2619
2620 INOTIFY 2620 INOTIFY
2621 M: John McCutchan <john@johnmccutchan.com> 2621 M: John McCutchan <john@johnmccutchan.com>
2622 M: Robert Love <rlove@rlove.org> 2622 M: Robert Love <rlove@rlove.org>
2623 M: Eric Paris <eparis@parisplace.org> 2623 M: Eric Paris <eparis@parisplace.org>
2624 S: Maintained 2624 S: Maintained
2625 F: Documentation/filesystems/inotify.txt 2625 F: Documentation/filesystems/inotify.txt
2626 F: fs/notify/inotify/ 2626 F: fs/notify/inotify/
2627 F: include/linux/inotify.h 2627 F: include/linux/inotify.h
2628 2628
2629 INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS 2629 INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
2630 M: Dmitry Torokhov <dmitry.torokhov@gmail.com> 2630 M: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2631 M: Dmitry Torokhov <dtor@mail.ru> 2631 M: Dmitry Torokhov <dtor@mail.ru>
2632 L: linux-input@vger.kernel.org 2632 L: linux-input@vger.kernel.org
2633 T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git 2633 T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
2634 S: Maintained 2634 S: Maintained
2635 F: drivers/input/ 2635 F: drivers/input/
2636 2636
2637 INTEL FRAMEBUFFER DRIVER (excluding 810 and 815) 2637 INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
2638 M: Sylvain Meyer <sylvain.meyer@worldonline.fr> 2638 M: Sylvain Meyer <sylvain.meyer@worldonline.fr>
2639 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 2639 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
2640 S: Maintained 2640 S: Maintained
2641 F: Documentation/fb/intelfb.txt 2641 F: Documentation/fb/intelfb.txt
2642 F: drivers/video/intelfb/ 2642 F: drivers/video/intelfb/
2643 2643
2644 INTEL 810/815 FRAMEBUFFER DRIVER 2644 INTEL 810/815 FRAMEBUFFER DRIVER
2645 M: Antonino Daplas <adaplas@gmail.com> 2645 M: Antonino Daplas <adaplas@gmail.com>
2646 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 2646 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
2647 S: Maintained 2647 S: Maintained
2648 F: drivers/video/i810/ 2648 F: drivers/video/i810/
2649 2649
2650 INTEL MENLOW THERMAL DRIVER 2650 INTEL MENLOW THERMAL DRIVER
2651 M: Sujith Thomas <sujith.thomas@intel.com> 2651 M: Sujith Thomas <sujith.thomas@intel.com>
2652 L: linux-acpi@vger.kernel.org 2652 L: linux-acpi@vger.kernel.org
2653 W: http://www.lesswatts.org/projects/acpi/ 2653 W: http://www.lesswatts.org/projects/acpi/
2654 S: Supported 2654 S: Supported
2655 F: drivers/platform/x86/intel_menlow.c 2655 F: drivers/platform/x86/intel_menlow.c
2656 2656
2657 INTEL IA32 MICROCODE UPDATE SUPPORT 2657 INTEL IA32 MICROCODE UPDATE SUPPORT
2658 M: Tigran Aivazian <tigran@aivazian.fsnet.co.uk> 2658 M: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
2659 S: Maintained 2659 S: Maintained
2660 F: arch/x86/kernel/microcode_core.c 2660 F: arch/x86/kernel/microcode_core.c
2661 F: arch/x86/kernel/microcode_intel.c 2661 F: arch/x86/kernel/microcode_intel.c
2662 2662
2663 INTEL I/OAT DMA DRIVER 2663 INTEL I/OAT DMA DRIVER
2664 M: Maciej Sosnowski <maciej.sosnowski@intel.com> 2664 M: Maciej Sosnowski <maciej.sosnowski@intel.com>
2665 S: Supported 2665 S: Supported
2666 F: drivers/dma/ioat* 2666 F: drivers/dma/ioat*
2667 2667
2668 INTEL IOMMU (VT-d) 2668 INTEL IOMMU (VT-d)
2669 M: David Woodhouse <dwmw2@infradead.org> 2669 M: David Woodhouse <dwmw2@infradead.org>
2670 L: iommu@lists.linux-foundation.org 2670 L: iommu@lists.linux-foundation.org
2671 T: git git://git.infradead.org/iommu-2.6.git 2671 T: git git://git.infradead.org/iommu-2.6.git
2672 S: Supported 2672 S: Supported
2673 F: drivers/pci/intel-iommu.c 2673 F: drivers/pci/intel-iommu.c
2674 F: include/linux/intel-iommu.h 2674 F: include/linux/intel-iommu.h
2675 2675
2676 INTEL IOP-ADMA DMA DRIVER 2676 INTEL IOP-ADMA DMA DRIVER
2677 M: Dan Williams <dan.j.williams@intel.com> 2677 M: Dan Williams <dan.j.williams@intel.com>
2678 S: Supported 2678 S: Supported
2679 F: drivers/dma/iop-adma.c 2679 F: drivers/dma/iop-adma.c
2680 2680
2681 INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT 2681 INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
2682 M: Krzysztof Halasa <khc@pm.waw.pl> 2682 M: Krzysztof Halasa <khc@pm.waw.pl>
2683 S: Maintained 2683 S: Maintained
2684 F: arch/arm/mach-ixp4xx/include/mach/qmgr.h 2684 F: arch/arm/mach-ixp4xx/include/mach/qmgr.h
2685 F: arch/arm/mach-ixp4xx/include/mach/npe.h 2685 F: arch/arm/mach-ixp4xx/include/mach/npe.h
2686 F: arch/arm/mach-ixp4xx/ixp4xx_qmgr.c 2686 F: arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
2687 F: arch/arm/mach-ixp4xx/ixp4xx_npe.c 2687 F: arch/arm/mach-ixp4xx/ixp4xx_npe.c
2688 F: drivers/net/arm/ixp4xx_eth.c 2688 F: drivers/net/arm/ixp4xx_eth.c
2689 F: drivers/net/wan/ixp4xx_hss.c 2689 F: drivers/net/wan/ixp4xx_hss.c
2690 2690
2691 INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT 2691 INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT
2692 M: Deepak Saxena <dsaxena@plexity.net> 2692 M: Deepak Saxena <dsaxena@plexity.net>
2693 S: Maintained 2693 S: Maintained
2694 F: drivers/char/hw_random/ixp4xx-rng.c 2694 F: drivers/char/hw_random/ixp4xx-rng.c
2695 2695
2696 INTEL IXP2000 ETHERNET DRIVER 2696 INTEL IXP2000 ETHERNET DRIVER
2697 M: Lennert Buytenhek <kernel@wantstofly.org> 2697 M: Lennert Buytenhek <kernel@wantstofly.org>
2698 L: netdev@vger.kernel.org 2698 L: netdev@vger.kernel.org
2699 S: Maintained 2699 S: Maintained
2700 F: drivers/net/ixp2000/ 2700 F: drivers/net/ixp2000/
2701 2701
2702 INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/ixgb/ixgbe) 2702 INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/ixgb/ixgbe)
2703 M: Jeff Kirsher <jeffrey.t.kirsher@intel.com> 2703 M: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2704 M: Jesse Brandeburg <jesse.brandeburg@intel.com> 2704 M: Jesse Brandeburg <jesse.brandeburg@intel.com>
2705 M: Bruce Allan <bruce.w.allan@intel.com> 2705 M: Bruce Allan <bruce.w.allan@intel.com>
2706 M: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com> 2706 M: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
2707 M: John Ronciak <john.ronciak@intel.com> 2707 M: John Ronciak <john.ronciak@intel.com>
2708 L: e1000-devel@lists.sourceforge.net 2708 L: e1000-devel@lists.sourceforge.net
2709 W: http://e1000.sourceforge.net/ 2709 W: http://e1000.sourceforge.net/
2710 S: Supported 2710 S: Supported
2711 F: drivers/net/e100.c 2711 F: drivers/net/e100.c
2712 F: drivers/net/e1000/ 2712 F: drivers/net/e1000/
2713 F: drivers/net/e1000e/ 2713 F: drivers/net/e1000e/
2714 F: drivers/net/igb/ 2714 F: drivers/net/igb/
2715 F: drivers/net/ixgb/ 2715 F: drivers/net/ixgb/
2716 F: drivers/net/ixgbe/ 2716 F: drivers/net/ixgbe/
2717 2717
2718 INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT 2718 INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
2719 M: Zhu Yi <yi.zhu@intel.com> 2719 M: Zhu Yi <yi.zhu@intel.com>
2720 M: Reinette Chatre <reinette.chatre@intel.com> 2720 M: Reinette Chatre <reinette.chatre@intel.com>
2721 M: Intel Linux Wireless <ilw@linux.intel.com> 2721 M: Intel Linux Wireless <ilw@linux.intel.com>
2722 L: linux-wireless@vger.kernel.org 2722 L: linux-wireless@vger.kernel.org
2723 W: http://ipw2100.sourceforge.net 2723 W: http://ipw2100.sourceforge.net
2724 S: Odd Fixes 2724 S: Odd Fixes
2725 F: Documentation/networking/README.ipw2100 2725 F: Documentation/networking/README.ipw2100
2726 F: drivers/net/wireless/ipw2x00/ipw2100.* 2726 F: drivers/net/wireless/ipw2x00/ipw2100.*
2727 2727
2728 INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT 2728 INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
2729 M: Zhu Yi <yi.zhu@intel.com> 2729 M: Zhu Yi <yi.zhu@intel.com>
2730 M: Reinette Chatre <reinette.chatre@intel.com> 2730 M: Reinette Chatre <reinette.chatre@intel.com>
2731 M: Intel Linux Wireless <ilw@linux.intel.com> 2731 M: Intel Linux Wireless <ilw@linux.intel.com>
2732 L: linux-wireless@vger.kernel.org 2732 L: linux-wireless@vger.kernel.org
2733 W: http://ipw2200.sourceforge.net 2733 W: http://ipw2200.sourceforge.net
2734 S: Odd Fixes 2734 S: Odd Fixes
2735 F: Documentation/networking/README.ipw2200 2735 F: Documentation/networking/README.ipw2200
2736 F: drivers/net/wireless/ipw2x00/ipw2200.* 2736 F: drivers/net/wireless/ipw2x00/ipw2200.*
2737 2737
2738 INTEL WIRELESS WIMAX CONNECTION 2400 2738 INTEL WIRELESS WIMAX CONNECTION 2400
2739 M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> 2739 M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2740 M: linux-wimax@intel.com 2740 M: linux-wimax@intel.com
2741 L: wimax@linuxwimax.org 2741 L: wimax@linuxwimax.org
2742 S: Supported 2742 S: Supported
2743 W: http://linuxwimax.org 2743 W: http://linuxwimax.org
2744 F: Documentation/wimax/README.i2400m 2744 F: Documentation/wimax/README.i2400m
2745 F: drivers/net/wimax/i2400m/ 2745 F: drivers/net/wimax/i2400m/
2746 F: include/linux/wimax/i2400m.h 2746 F: include/linux/wimax/i2400m.h
2747 2747
2748 INTEL WIRELESS WIFI LINK (iwlwifi) 2748 INTEL WIRELESS WIFI LINK (iwlwifi)
2749 M: Zhu Yi <yi.zhu@intel.com> 2749 M: Zhu Yi <yi.zhu@intel.com>
2750 M: Reinette Chatre <reinette.chatre@intel.com> 2750 M: Reinette Chatre <reinette.chatre@intel.com>
2751 M: Intel Linux Wireless <ilw@linux.intel.com> 2751 M: Intel Linux Wireless <ilw@linux.intel.com>
2752 L: linux-wireless@vger.kernel.org 2752 L: linux-wireless@vger.kernel.org
2753 W: http://intellinuxwireless.org 2753 W: http://intellinuxwireless.org
2754 T: git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git 2754 T: git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git
2755 S: Supported 2755 S: Supported
2756 F: drivers/net/wireless/iwlwifi/ 2756 F: drivers/net/wireless/iwlwifi/
2757 2757
2758 IOC3 ETHERNET DRIVER 2758 IOC3 ETHERNET DRIVER
2759 M: Ralf Baechle <ralf@linux-mips.org> 2759 M: Ralf Baechle <ralf@linux-mips.org>
2760 L: linux-mips@linux-mips.org 2760 L: linux-mips@linux-mips.org
2761 S: Maintained 2761 S: Maintained
2762 F: drivers/net/ioc3-eth.c 2762 F: drivers/net/ioc3-eth.c
2763 2763
2764 IOC3 SERIAL DRIVER 2764 IOC3 SERIAL DRIVER
2765 M: Pat Gefre <pfg@sgi.com> 2765 M: Pat Gefre <pfg@sgi.com>
2766 L: linux-mips@linux-mips.org 2766 L: linux-mips@linux-mips.org
2767 S: Maintained 2767 S: Maintained
2768 F: drivers/serial/ioc3_serial.c 2768 F: drivers/serial/ioc3_serial.c
2769 2769
2770 IP MASQUERADING 2770 IP MASQUERADING
2771 M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar> 2771 M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
2772 S: Maintained 2772 S: Maintained
2773 F: net/ipv4/netfilter/ipt_MASQUERADE.c 2773 F: net/ipv4/netfilter/ipt_MASQUERADE.c
2774 2774
2775 IP1000A 10/100/1000 GIGABIT ETHERNET DRIVER 2775 IP1000A 10/100/1000 GIGABIT ETHERNET DRIVER
2776 M: Francois Romieu <romieu@fr.zoreil.com> 2776 M: Francois Romieu <romieu@fr.zoreil.com>
2777 M: Sorbica Shieh <sorbica@icplus.com.tw> 2777 M: Sorbica Shieh <sorbica@icplus.com.tw>
2778 M: Jesse Huang <jesse@icplus.com.tw> 2778 M: Jesse Huang <jesse@icplus.com.tw>
2779 L: netdev@vger.kernel.org 2779 L: netdev@vger.kernel.org
2780 S: Maintained 2780 S: Maintained
2781 F: drivers/net/ipg.c 2781 F: drivers/net/ipg.c
2782 2782
2783 IPATH DRIVER 2783 IPATH DRIVER
2784 M: Ralph Campbell <infinipath@qlogic.com> 2784 M: Ralph Campbell <infinipath@qlogic.com>
2785 L: linux-rdma@vger.kernel.org 2785 L: linux-rdma@vger.kernel.org
2786 T: git git://git.qlogic.com/ipath-linux-2.6 2786 T: git git://git.qlogic.com/ipath-linux-2.6
2787 S: Supported 2787 S: Supported
2788 F: drivers/infiniband/hw/ipath/ 2788 F: drivers/infiniband/hw/ipath/
2789 2789
2790 IPMI SUBSYSTEM 2790 IPMI SUBSYSTEM
2791 M: Corey Minyard <minyard@acm.org> 2791 M: Corey Minyard <minyard@acm.org>
2792 L: openipmi-developer@lists.sourceforge.net 2792 L: openipmi-developer@lists.sourceforge.net
2793 W: http://openipmi.sourceforge.net/ 2793 W: http://openipmi.sourceforge.net/
2794 S: Supported 2794 S: Supported
2795 F: Documentation/IPMI.txt 2795 F: Documentation/IPMI.txt
2796 F: drivers/char/ipmi/ 2796 F: drivers/char/ipmi/
2797 F: include/linux/ipmi* 2797 F: include/linux/ipmi*
2798 2798
2799 IPS SCSI RAID DRIVER 2799 IPS SCSI RAID DRIVER
2800 M: Adaptec OEM Raid Solutions <aacraid@adaptec.com> 2800 M: Adaptec OEM Raid Solutions <aacraid@adaptec.com>
2801 L: linux-scsi@vger.kernel.org 2801 L: linux-scsi@vger.kernel.org
2802 W: http://www.adaptec.com/ 2802 W: http://www.adaptec.com/
2803 S: Maintained 2803 S: Maintained
2804 F: drivers/scsi/ips* 2804 F: drivers/scsi/ips*
2805 2805
2806 IPVS 2806 IPVS
2807 M: Wensong Zhang <wensong@linux-vs.org> 2807 M: Wensong Zhang <wensong@linux-vs.org>
2808 M: Simon Horman <horms@verge.net.au> 2808 M: Simon Horman <horms@verge.net.au>
2809 M: Julian Anastasov <ja@ssi.bg> 2809 M: Julian Anastasov <ja@ssi.bg>
2810 L: netdev@vger.kernel.org 2810 L: netdev@vger.kernel.org
2811 L: lvs-devel@vger.kernel.org 2811 L: lvs-devel@vger.kernel.org
2812 S: Maintained 2812 S: Maintained
2813 F: Documentation/networking/ipvs-sysctl.txt 2813 F: Documentation/networking/ipvs-sysctl.txt
2814 F: include/net/ip_vs.h 2814 F: include/net/ip_vs.h
2815 F: include/linux/ip_vs.h 2815 F: include/linux/ip_vs.h
2816 F: net/netfilter/ipvs/ 2816 F: net/netfilter/ipvs/
2817 2817
2818 IPWIRELESS DRIVER 2818 IPWIRELESS DRIVER
2819 M: Jiri Kosina <jkosina@suse.cz> 2819 M: Jiri Kosina <jkosina@suse.cz>
2820 M: David Sterba <dsterba@suse.cz> 2820 M: David Sterba <dsterba@suse.cz>
2821 S: Maintained 2821 S: Maintained
2822 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/ipwireless_cs.git 2822 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/ipwireless_cs.git
2823 F: drivers/char/pcmcia/ipwireless/ 2823 F: drivers/char/pcmcia/ipwireless/
2824 2824
2825 IPX NETWORK LAYER 2825 IPX NETWORK LAYER
2826 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> 2826 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
2827 L: netdev@vger.kernel.org 2827 L: netdev@vger.kernel.org
2828 S: Maintained 2828 S: Maintained
2829 F: include/linux/ipx.h 2829 F: include/linux/ipx.h
2830 F: include/net/ipx.h 2830 F: include/net/ipx.h
2831 F: net/ipx/ 2831 F: net/ipx/
2832 2832
2833 IRDA SUBSYSTEM 2833 IRDA SUBSYSTEM
2834 M: Samuel Ortiz <samuel@sortiz.org> 2834 M: Samuel Ortiz <samuel@sortiz.org>
2835 L: irda-users@lists.sourceforge.net (subscribers-only) 2835 L: irda-users@lists.sourceforge.net (subscribers-only)
2836 W: http://irda.sourceforge.net/ 2836 W: http://irda.sourceforge.net/
2837 S: Maintained 2837 S: Maintained
2838 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/irda-2.6.git 2838 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/irda-2.6.git
2839 F: Documentation/networking/irda.txt 2839 F: Documentation/networking/irda.txt
2840 F: drivers/net/irda/ 2840 F: drivers/net/irda/
2841 F: include/net/irda/ 2841 F: include/net/irda/
2842 F: net/irda/ 2842 F: net/irda/
2843 2843
2844 ISAPNP 2844 ISAPNP
2845 M: Jaroslav Kysela <perex@perex.cz> 2845 M: Jaroslav Kysela <perex@perex.cz>
2846 S: Maintained 2846 S: Maintained
2847 F: Documentation/isapnp.txt 2847 F: Documentation/isapnp.txt
2848 F: drivers/pnp/isapnp/ 2848 F: drivers/pnp/isapnp/
2849 F: include/linux/isapnp.h 2849 F: include/linux/isapnp.h
2850 2850
2851 ISCSI 2851 ISCSI
2852 M: Mike Christie <michaelc@cs.wisc.edu> 2852 M: Mike Christie <michaelc@cs.wisc.edu>
2853 L: open-iscsi@googlegroups.com 2853 L: open-iscsi@googlegroups.com
2854 W: www.open-iscsi.org 2854 W: www.open-iscsi.org
2855 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mnc/linux-2.6-iscsi.git 2855 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mnc/linux-2.6-iscsi.git
2856 S: Maintained 2856 S: Maintained
2857 F: drivers/scsi/*iscsi* 2857 F: drivers/scsi/*iscsi*
2858 F: include/scsi/*iscsi* 2858 F: include/scsi/*iscsi*
2859 2859
2860 ISDN SUBSYSTEM 2860 ISDN SUBSYSTEM
2861 M: Karsten Keil <isdn@linux-pingi.de> 2861 M: Karsten Keil <isdn@linux-pingi.de>
2862 L: isdn4linux@listserv.isdn4linux.de (subscribers-only) 2862 L: isdn4linux@listserv.isdn4linux.de (subscribers-only)
2863 W: http://www.isdn4linux.de 2863 W: http://www.isdn4linux.de
2864 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/isdn-2.6.git 2864 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/isdn-2.6.git
2865 S: Maintained 2865 S: Maintained
2866 F: Documentation/isdn/ 2866 F: Documentation/isdn/
2867 F: drivers/isdn/ 2867 F: drivers/isdn/
2868 F: include/linux/isdn.h 2868 F: include/linux/isdn.h
2869 F: include/linux/isdn/ 2869 F: include/linux/isdn/
2870 2870
2871 ISDN SUBSYSTEM (Eicon active card driver) 2871 ISDN SUBSYSTEM (Eicon active card driver)
2872 M: Armin Schindler <mac@melware.de> 2872 M: Armin Schindler <mac@melware.de>
2873 L: isdn4linux@listserv.isdn4linux.de (subscribers-only) 2873 L: isdn4linux@listserv.isdn4linux.de (subscribers-only)
2874 W: http://www.melware.de 2874 W: http://www.melware.de
2875 S: Maintained 2875 S: Maintained
2876 F: drivers/isdn/hardware/eicon/ 2876 F: drivers/isdn/hardware/eicon/
2877 2877
2878 IVTV VIDEO4LINUX DRIVER 2878 IVTV VIDEO4LINUX DRIVER
2879 M: Hans Verkuil <hverkuil@xs4all.nl> 2879 M: Hans Verkuil <hverkuil@xs4all.nl>
2880 L: ivtv-devel@ivtvdriver.org 2880 L: ivtv-devel@ivtvdriver.org
2881 L: linux-media@vger.kernel.org 2881 L: linux-media@vger.kernel.org
2882 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 2882 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
2883 W: http://www.ivtvdriver.org 2883 W: http://www.ivtvdriver.org
2884 S: Maintained 2884 S: Maintained
2885 F: Documentation/video4linux/*.ivtv 2885 F: Documentation/video4linux/*.ivtv
2886 F: drivers/media/video/ivtv/ 2886 F: drivers/media/video/ivtv/
2887 F: include/linux/ivtv* 2887 F: include/linux/ivtv*
2888 2888
2889 JFS FILESYSTEM 2889 JFS FILESYSTEM
2890 M: Dave Kleikamp <shaggy@linux.vnet.ibm.com> 2890 M: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
2891 L: jfs-discussion@lists.sourceforge.net 2891 L: jfs-discussion@lists.sourceforge.net
2892 W: http://jfs.sourceforge.net/ 2892 W: http://jfs.sourceforge.net/
2893 T: git git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git 2893 T: git git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git
2894 S: Maintained 2894 S: Maintained
2895 F: Documentation/filesystems/jfs.txt 2895 F: Documentation/filesystems/jfs.txt
2896 F: fs/jfs/ 2896 F: fs/jfs/
2897 2897
2898 JME NETWORK DRIVER 2898 JME NETWORK DRIVER
2899 M: Guo-Fu Tseng <cooldavid@cooldavid.org> 2899 M: Guo-Fu Tseng <cooldavid@cooldavid.org>
2900 L: netdev@vger.kernel.org 2900 L: netdev@vger.kernel.org
2901 S: Maintained 2901 S: Maintained
2902 F: drivers/net/jme.* 2902 F: drivers/net/jme.*
2903 2903
2904 JOURNALLING FLASH FILE SYSTEM V2 (JFFS2) 2904 JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
2905 M: David Woodhouse <dwmw2@infradead.org> 2905 M: David Woodhouse <dwmw2@infradead.org>
2906 L: linux-mtd@lists.infradead.org 2906 L: linux-mtd@lists.infradead.org
2907 W: http://www.linux-mtd.infradead.org/doc/jffs2.html 2907 W: http://www.linux-mtd.infradead.org/doc/jffs2.html
2908 S: Maintained 2908 S: Maintained
2909 F: fs/jffs2/ 2909 F: fs/jffs2/
2910 F: include/linux/jffs2.h 2910 F: include/linux/jffs2.h
2911 2911
2912 JOURNALLING LAYER FOR BLOCK DEVICES (JBD) 2912 JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
2913 M: Andrew Morton <akpm@linux-foundation.org> 2913 M: Andrew Morton <akpm@linux-foundation.org>
2914 M: Jan Kara <jack@suse.cz> 2914 M: Jan Kara <jack@suse.cz>
2915 L: linux-ext4@vger.kernel.org 2915 L: linux-ext4@vger.kernel.org
2916 S: Maintained 2916 S: Maintained
2917 F: fs/jbd*/ 2917 F: fs/jbd*/
2918 F: include/linux/ext*jbd*.h 2918 F: include/linux/ext*jbd*.h
2919 F: include/linux/jbd*.h 2919 F: include/linux/jbd*.h
2920 2920
2921 K8TEMP HARDWARE MONITORING DRIVER 2921 K8TEMP HARDWARE MONITORING DRIVER
2922 M: Rudolf Marek <r.marek@assembler.cz> 2922 M: Rudolf Marek <r.marek@assembler.cz>
2923 L: lm-sensors@lm-sensors.org 2923 L: lm-sensors@lm-sensors.org
2924 S: Maintained 2924 S: Maintained
2925 F: Documentation/hwmon/k8temp 2925 F: Documentation/hwmon/k8temp
2926 F: drivers/hwmon/k8temp.c 2926 F: drivers/hwmon/k8temp.c
2927 2927
2928 KCONFIG 2928 KCONFIG
2929 M: Roman Zippel <zippel@linux-m68k.org> 2929 M: Roman Zippel <zippel@linux-m68k.org>
2930 L: linux-kbuild@vger.kernel.org 2930 L: linux-kbuild@vger.kernel.org
2931 S: Maintained 2931 S: Maintained
2932 F: Documentation/kbuild/kconfig-language.txt 2932 F: Documentation/kbuild/kconfig-language.txt
2933 F: scripts/kconfig/ 2933 F: scripts/kconfig/
2934 2934
2935 KDUMP 2935 KDUMP
2936 M: Vivek Goyal <vgoyal@redhat.com> 2936 M: Vivek Goyal <vgoyal@redhat.com>
2937 M: Haren Myneni <hbabu@us.ibm.com> 2937 M: Haren Myneni <hbabu@us.ibm.com>
2938 L: kexec@lists.infradead.org 2938 L: kexec@lists.infradead.org
2939 W: http://lse.sourceforge.net/kdump/ 2939 W: http://lse.sourceforge.net/kdump/
2940 S: Maintained 2940 S: Maintained
2941 F: Documentation/kdump/ 2941 F: Documentation/kdump/
2942 2942
2943 KERNEL AUTOMOUNTER (AUTOFS) 2943 KERNEL AUTOMOUNTER (AUTOFS)
2944 M: "H. Peter Anvin" <hpa@zytor.com> 2944 M: "H. Peter Anvin" <hpa@zytor.com>
2945 L: autofs@linux.kernel.org 2945 L: autofs@linux.kernel.org
2946 S: Odd Fixes 2946 S: Odd Fixes
2947 F: fs/autofs/ 2947 F: fs/autofs/
2948 2948
2949 KERNEL AUTOMOUNTER v4 (AUTOFS4) 2949 KERNEL AUTOMOUNTER v4 (AUTOFS4)
2950 M: Ian Kent <raven@themaw.net> 2950 M: Ian Kent <raven@themaw.net>
2951 L: autofs@linux.kernel.org 2951 L: autofs@linux.kernel.org
2952 S: Maintained 2952 S: Maintained
2953 F: fs/autofs4/ 2953 F: fs/autofs4/
2954 2954
2955 KERNEL BUILD 2955 KERNEL BUILD
2956 M: Sam Ravnborg <sam@ravnborg.org> 2956 M: Sam Ravnborg <sam@ravnborg.org>
2957 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next.git 2957 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next.git
2958 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes.git 2958 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes.git
2959 L: linux-kbuild@vger.kernel.org 2959 L: linux-kbuild@vger.kernel.org
2960 S: Maintained 2960 S: Maintained
2961 F: Documentation/kbuild/ 2961 F: Documentation/kbuild/
2962 F: Makefile 2962 F: Makefile
2963 F: scripts/Makefile.* 2963 F: scripts/Makefile.*
2964 2964
2965 KERNEL JANITORS 2965 KERNEL JANITORS
2966 L: kernel-janitors@vger.kernel.org 2966 L: kernel-janitors@vger.kernel.org
2967 W: http://www.kerneljanitors.org/ 2967 W: http://www.kerneljanitors.org/
2968 S: Maintained 2968 S: Maintained
2969 2969
2970 KERNEL NFSD, SUNRPC, AND LOCKD SERVERS 2970 KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
2971 M: "J. Bruce Fields" <bfields@fieldses.org> 2971 M: "J. Bruce Fields" <bfields@fieldses.org>
2972 M: Neil Brown <neilb@suse.de> 2972 M: Neil Brown <neilb@suse.de>
2973 L: linux-nfs@vger.kernel.org 2973 L: linux-nfs@vger.kernel.org
2974 W: http://nfs.sourceforge.net/ 2974 W: http://nfs.sourceforge.net/
2975 S: Supported 2975 S: Supported
2976 F: fs/nfsd/ 2976 F: fs/nfsd/
2977 F: include/linux/nfsd/ 2977 F: include/linux/nfsd/
2978 F: fs/lockd/ 2978 F: fs/lockd/
2979 F: fs/nfs_common/ 2979 F: fs/nfs_common/
2980 F: net/sunrpc/ 2980 F: net/sunrpc/
2981 F: include/linux/lockd/ 2981 F: include/linux/lockd/
2982 F: include/linux/sunrpc/ 2982 F: include/linux/sunrpc/
2983 2983
2984 KERNEL VIRTUAL MACHINE (KVM) 2984 KERNEL VIRTUAL MACHINE (KVM)
2985 M: Avi Kivity <avi@redhat.com> 2985 M: Avi Kivity <avi@redhat.com>
2986 M: Marcelo Tosatti <mtosatti@redhat.com> 2986 M: Marcelo Tosatti <mtosatti@redhat.com>
2987 L: kvm@vger.kernel.org 2987 L: kvm@vger.kernel.org
2988 W: http://kvm.qumranet.com 2988 W: http://kvm.qumranet.com
2989 S: Supported 2989 S: Supported
2990 F: Documentation/*/kvm.txt 2990 F: Documentation/*/kvm.txt
2991 F: arch/*/kvm/ 2991 F: arch/*/kvm/
2992 F: arch/*/include/asm/kvm* 2992 F: arch/*/include/asm/kvm*
2993 F: include/linux/kvm* 2993 F: include/linux/kvm*
2994 F: virt/kvm/ 2994 F: virt/kvm/
2995 2995
2996 KERNEL VIRTUAL MACHINE (KVM) FOR AMD-V 2996 KERNEL VIRTUAL MACHINE (KVM) FOR AMD-V
2997 M: Joerg Roedel <joerg.roedel@amd.com> 2997 M: Joerg Roedel <joerg.roedel@amd.com>
2998 L: kvm@vger.kernel.org 2998 L: kvm@vger.kernel.org
2999 W: http://kvm.qumranet.com 2999 W: http://kvm.qumranet.com
3000 S: Supported 3000 S: Supported
3001 F: arch/x86/include/asm/svm.h 3001 F: arch/x86/include/asm/svm.h
3002 F: arch/x86/kvm/kvm_svm.h 3002 F: arch/x86/kvm/kvm_svm.h
3003 F: arch/x86/kvm/svm.c 3003 F: arch/x86/kvm/svm.c
3004 3004
3005 KERNEL VIRTUAL MACHINE (KVM) FOR POWERPC 3005 KERNEL VIRTUAL MACHINE (KVM) FOR POWERPC
3006 M: Hollis Blanchard <hollisb@us.ibm.com> 3006 M: Hollis Blanchard <hollisb@us.ibm.com>
3007 L: kvm-ppc@vger.kernel.org 3007 L: kvm-ppc@vger.kernel.org
3008 W: http://kvm.qumranet.com 3008 W: http://kvm.qumranet.com
3009 S: Supported 3009 S: Supported
3010 F: arch/powerpc/include/asm/kvm* 3010 F: arch/powerpc/include/asm/kvm*
3011 F: arch/powerpc/kvm/ 3011 F: arch/powerpc/kvm/
3012 3012
3013 KERNEL VIRTUAL MACHINE For Itanium (KVM/IA64) 3013 KERNEL VIRTUAL MACHINE For Itanium (KVM/IA64)
3014 M: Xiantao Zhang <xiantao.zhang@intel.com> 3014 M: Xiantao Zhang <xiantao.zhang@intel.com>
3015 L: kvm-ia64@vger.kernel.org 3015 L: kvm-ia64@vger.kernel.org
3016 W: http://kvm.qumranet.com 3016 W: http://kvm.qumranet.com
3017 S: Supported 3017 S: Supported
3018 F: Documentation/ia64/kvm.txt 3018 F: Documentation/ia64/kvm.txt
3019 F: arch/ia64/include/asm/kvm* 3019 F: arch/ia64/include/asm/kvm*
3020 F: arch/ia64/kvm/ 3020 F: arch/ia64/kvm/
3021 3021
3022 KERNEL VIRTUAL MACHINE for s390 (KVM/s390) 3022 KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
3023 M: Carsten Otte <cotte@de.ibm.com> 3023 M: Carsten Otte <cotte@de.ibm.com>
3024 M: Christian Borntraeger <borntraeger@de.ibm.com> 3024 M: Christian Borntraeger <borntraeger@de.ibm.com>
3025 M: linux390@de.ibm.com 3025 M: linux390@de.ibm.com
3026 L: linux-s390@vger.kernel.org 3026 L: linux-s390@vger.kernel.org
3027 W: http://www.ibm.com/developerworks/linux/linux390/ 3027 W: http://www.ibm.com/developerworks/linux/linux390/
3028 S: Supported 3028 S: Supported
3029 F: Documentation/s390/kvm.txt 3029 F: Documentation/s390/kvm.txt
3030 F: arch/s390/include/asm/kvm* 3030 F: arch/s390/include/asm/kvm*
3031 F: arch/s390/kvm/ 3031 F: arch/s390/kvm/
3032 3032
3033 KEXEC 3033 KEXEC
3034 M: Eric Biederman <ebiederm@xmission.com> 3034 M: Eric Biederman <ebiederm@xmission.com>
3035 W: http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/ 3035 W: http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/
3036 L: kexec@lists.infradead.org 3036 L: kexec@lists.infradead.org
3037 S: Maintained 3037 S: Maintained
3038 F: include/linux/kexec.h 3038 F: include/linux/kexec.h
3039 F: kernel/kexec.c 3039 F: kernel/kexec.c
3040 3040
3041 KGDB 3041 KGDB
3042 M: Jason Wessel <jason.wessel@windriver.com> 3042 M: Jason Wessel <jason.wessel@windriver.com>
3043 L: kgdb-bugreport@lists.sourceforge.net 3043 L: kgdb-bugreport@lists.sourceforge.net
3044 S: Maintained 3044 S: Maintained
3045 F: Documentation/DocBook/kgdb.tmpl 3045 F: Documentation/DocBook/kgdb.tmpl
3046 F: drivers/misc/kgdbts.c 3046 F: drivers/misc/kgdbts.c
3047 F: drivers/serial/kgdboc.c 3047 F: drivers/serial/kgdboc.c
3048 F: include/linux/kgdb.h 3048 F: include/linux/kgdb.h
3049 F: kernel/kgdb.c 3049 F: kernel/kgdb.c
3050 3050
3051 KMEMCHECK 3051 KMEMCHECK
3052 M: Vegard Nossum <vegardno@ifi.uio.no> 3052 M: Vegard Nossum <vegardno@ifi.uio.no>
3053 P Pekka Enberg 3053 P Pekka Enberg
3054 M: penberg@cs.helsinki.fi 3054 M: penberg@cs.helsinki.fi
3055 S: Maintained 3055 S: Maintained
3056 3056
3057 KMEMLEAK 3057 KMEMLEAK
3058 M: Catalin Marinas <catalin.marinas@arm.com> 3058 M: Catalin Marinas <catalin.marinas@arm.com>
3059 S: Maintained 3059 S: Maintained
3060 F: Documentation/kmemleak.txt 3060 F: Documentation/kmemleak.txt
3061 F: include/linux/kmemleak.h 3061 F: include/linux/kmemleak.h
3062 F: mm/kmemleak.c 3062 F: mm/kmemleak.c
3063 F: mm/kmemleak-test.c 3063 F: mm/kmemleak-test.c
3064 3064
3065 KMEMTRACE 3065 KMEMTRACE
3066 M: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> 3066 M: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
3067 S: Maintained 3067 S: Maintained
3068 F: Documentation/trace/kmemtrace.txt 3068 F: Documentation/trace/kmemtrace.txt
3069 F: include/linux/kmemtrace.h 3069 F: include/linux/kmemtrace.h
3070 F: kernel/trace/kmemtrace.c 3070 F: kernel/trace/kmemtrace.c
3071 3071
3072 KPROBES 3072 KPROBES
3073 M: Ananth N Mavinakayanahalli <ananth@in.ibm.com> 3073 M: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
3074 M: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> 3074 M: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
3075 M: "David S. Miller" <davem@davemloft.net> 3075 M: "David S. Miller" <davem@davemloft.net>
3076 M: Masami Hiramatsu <mhiramat@redhat.com> 3076 M: Masami Hiramatsu <mhiramat@redhat.com>
3077 S: Maintained 3077 S: Maintained
3078 F: Documentation/kprobes.txt 3078 F: Documentation/kprobes.txt
3079 F: include/linux/kprobes.h 3079 F: include/linux/kprobes.h
3080 F: kernel/kprobes.c 3080 F: kernel/kprobes.c
3081 3081
3082 KS0108 LCD CONTROLLER DRIVER 3082 KS0108 LCD CONTROLLER DRIVER
3083 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com> 3083 M: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
3084 W: http://miguelojeda.es/auxdisplay.htm 3084 W: http://miguelojeda.es/auxdisplay.htm
3085 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm 3085 W: http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
3086 S: Maintained 3086 S: Maintained
3087 F: Documentation/auxdisplay/ks0108 3087 F: Documentation/auxdisplay/ks0108
3088 F: drivers/auxdisplay/ks0108.c 3088 F: drivers/auxdisplay/ks0108.c
3089 F: include/linux/ks0108.h 3089 F: include/linux/ks0108.h
3090 3090
3091 LAPB module 3091 LAPB module
3092 L: linux-x25@vger.kernel.org 3092 L: linux-x25@vger.kernel.org
3093 S: Orphan 3093 S: Orphan
3094 F: Documentation/networking/lapb-module.txt 3094 F: Documentation/networking/lapb-module.txt
3095 F: include/*/lapb.h 3095 F: include/*/lapb.h
3096 F: net/lapb/ 3096 F: net/lapb/
3097 3097
3098 LASI 53c700 driver for PARISC 3098 LASI 53c700 driver for PARISC
3099 M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com> 3099 M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
3100 L: linux-scsi@vger.kernel.org 3100 L: linux-scsi@vger.kernel.org
3101 S: Maintained 3101 S: Maintained
3102 F: Documentation/scsi/53c700.txt 3102 F: Documentation/scsi/53c700.txt
3103 F: drivers/scsi/53c700* 3103 F: drivers/scsi/53c700*
3104 3104
3105 LED SUBSYSTEM 3105 LED SUBSYSTEM
3106 M: Richard Purdie <rpurdie@rpsys.net> 3106 M: Richard Purdie <rpurdie@rpsys.net>
3107 S: Maintained 3107 S: Maintained
3108 F: drivers/leds/ 3108 F: drivers/leds/
3109 F: include/linux/leds.h 3109 F: include/linux/leds.h
3110 3110
3111 LEGO USB Tower driver 3111 LEGO USB Tower driver
3112 M: Juergen Stuber <starblue@users.sourceforge.net> 3112 M: Juergen Stuber <starblue@users.sourceforge.net>
3113 L: legousb-devel@lists.sourceforge.net 3113 L: legousb-devel@lists.sourceforge.net
3114 W: http://legousb.sourceforge.net/ 3114 W: http://legousb.sourceforge.net/
3115 S: Maintained 3115 S: Maintained
3116 F: drivers/usb/misc/legousbtower.c 3116 F: drivers/usb/misc/legousbtower.c
3117 3117
3118 LGUEST 3118 LGUEST
3119 M: Rusty Russell <rusty@rustcorp.com.au> 3119 M: Rusty Russell <rusty@rustcorp.com.au>
3120 L: lguest@ozlabs.org 3120 L: lguest@ozlabs.org
3121 W: http://lguest.ozlabs.org/ 3121 W: http://lguest.ozlabs.org/
3122 S: Maintained 3122 S: Maintained
3123 F: Documentation/lguest/ 3123 F: Documentation/lguest/
3124 F: arch/x86/lguest/ 3124 F: arch/x86/lguest/
3125 F: drivers/lguest/ 3125 F: drivers/lguest/
3126 F: include/linux/lguest*.h 3126 F: include/linux/lguest*.h
3127 F: arch/x86/include/asm/lguest*.h 3127 F: arch/x86/include/asm/lguest*.h
3128 3128
3129 LINUX FOR IBM pSERIES (RS/6000) 3129 LINUX FOR IBM pSERIES (RS/6000)
3130 M: Paul Mackerras <paulus@au.ibm.com> 3130 M: Paul Mackerras <paulus@au.ibm.com>
3131 W: http://www.ibm.com/linux/ltc/projects/ppc 3131 W: http://www.ibm.com/linux/ltc/projects/ppc
3132 S: Supported 3132 S: Supported
3133 3133
3134 LINUX FOR POWERPC (32-BIT AND 64-BIT) 3134 LINUX FOR POWERPC (32-BIT AND 64-BIT)
3135 M: Benjamin Herrenschmidt <benh@kernel.crashing.org> 3135 M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
3136 M: Paul Mackerras <paulus@samba.org> 3136 M: Paul Mackerras <paulus@samba.org>
3137 W: http://www.penguinppc.org/ 3137 W: http://www.penguinppc.org/
3138 L: linuxppc-dev@ozlabs.org 3138 L: linuxppc-dev@ozlabs.org
3139 T: git git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git 3139 T: git git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
3140 S: Supported 3140 S: Supported
3141 3141
3142 LINUX FOR POWER MACINTOSH 3142 LINUX FOR POWER MACINTOSH
3143 M: Benjamin Herrenschmidt <benh@kernel.crashing.org> 3143 M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
3144 W: http://www.penguinppc.org/ 3144 W: http://www.penguinppc.org/
3145 L: linuxppc-dev@ozlabs.org 3145 L: linuxppc-dev@ozlabs.org
3146 S: Maintained 3146 S: Maintained
3147 3147
3148 LINUX FOR POWERPC EMBEDDED MPC5XXX 3148 LINUX FOR POWERPC EMBEDDED MPC5XXX
3149 M: Grant Likely <grant.likely@secretlab.ca> 3149 M: Grant Likely <grant.likely@secretlab.ca>
3150 L: linuxppc-dev@ozlabs.org 3150 L: linuxppc-dev@ozlabs.org
3151 T: git git://git.secretlab.ca/git/linux-2.6.git 3151 T: git git://git.secretlab.ca/git/linux-2.6.git
3152 S: Maintained 3152 S: Maintained
3153 3153
3154 LINUX FOR POWERPC EMBEDDED PPC4XX 3154 LINUX FOR POWERPC EMBEDDED PPC4XX
3155 M: Josh Boyer <jwboyer@linux.vnet.ibm.com> 3155 M: Josh Boyer <jwboyer@linux.vnet.ibm.com>
3156 M: Matt Porter <mporter@kernel.crashing.org> 3156 M: Matt Porter <mporter@kernel.crashing.org>
3157 W: http://www.penguinppc.org/ 3157 W: http://www.penguinppc.org/
3158 L: linuxppc-dev@ozlabs.org 3158 L: linuxppc-dev@ozlabs.org
3159 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git 3159 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git
3160 S: Maintained 3160 S: Maintained
3161 3161
3162 LINUX FOR POWERPC EMBEDDED XILINX VIRTEX 3162 LINUX FOR POWERPC EMBEDDED XILINX VIRTEX
3163 M: Grant Likely <grant.likely@secretlab.ca> 3163 M: Grant Likely <grant.likely@secretlab.ca>
3164 W: http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex 3164 W: http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex
3165 L: linuxppc-dev@ozlabs.org 3165 L: linuxppc-dev@ozlabs.org
3166 T: git git://git.secretlab.ca/git/linux-2.6.git 3166 T: git git://git.secretlab.ca/git/linux-2.6.git
3167 S: Maintained 3167 S: Maintained
3168 3168
3169 LINUX FOR POWERPC EMBEDDED PPC8XX 3169 LINUX FOR POWERPC EMBEDDED PPC8XX
3170 M: Vitaly Bordug <vitb@kernel.crashing.org> 3170 M: Vitaly Bordug <vitb@kernel.crashing.org>
3171 M: Marcelo Tosatti <marcelo@kvack.org> 3171 M: Marcelo Tosatti <marcelo@kvack.org>
3172 W: http://www.penguinppc.org/ 3172 W: http://www.penguinppc.org/
3173 L: linuxppc-dev@ozlabs.org 3173 L: linuxppc-dev@ozlabs.org
3174 S: Maintained 3174 S: Maintained
3175 3175
3176 LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX 3176 LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
3177 M: Kumar Gala <galak@kernel.crashing.org> 3177 M: Kumar Gala <galak@kernel.crashing.org>
3178 W: http://www.penguinppc.org/ 3178 W: http://www.penguinppc.org/
3179 L: linuxppc-dev@ozlabs.org 3179 L: linuxppc-dev@ozlabs.org
3180 S: Maintained 3180 S: Maintained
3181 3181
3182 LINUX FOR POWERPC PA SEMI PWRFICIENT 3182 LINUX FOR POWERPC PA SEMI PWRFICIENT
3183 M: Olof Johansson <olof@lixom.net> 3183 M: Olof Johansson <olof@lixom.net>
3184 W: http://www.pasemi.com/ 3184 W: http://www.pasemi.com/
3185 L: linuxppc-dev@ozlabs.org 3185 L: linuxppc-dev@ozlabs.org
3186 S: Supported 3186 S: Supported
3187 3187
3188 LINUX SECURITY MODULE (LSM) FRAMEWORK 3188 LINUX SECURITY MODULE (LSM) FRAMEWORK
3189 M: Chris Wright <chrisw@sous-sol.org> 3189 M: Chris Wright <chrisw@sous-sol.org>
3190 L: linux-security-module@vger.kernel.org 3190 L: linux-security-module@vger.kernel.org
3191 T: git git://git.kernel.org/pub/scm/linux/kernel/git/chrisw/lsm-2.6.git 3191 T: git git://git.kernel.org/pub/scm/linux/kernel/git/chrisw/lsm-2.6.git
3192 S: Supported 3192 S: Supported
3193 3193
3194 LLC (802.2) 3194 LLC (802.2)
3195 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> 3195 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
3196 S: Maintained 3196 S: Maintained
3197 F: include/linux/llc.h 3197 F: include/linux/llc.h
3198 F: include/net/llc* 3198 F: include/net/llc*
3199 F: net/llc/ 3199 F: net/llc/
3200 3200
3201 LIS3LV02D ACCELEROMETER DRIVER 3201 LIS3LV02D ACCELEROMETER DRIVER
3202 M: Eric Piel <eric.piel@tremplin-utc.net> 3202 M: Eric Piel <eric.piel@tremplin-utc.net>
3203 S: Maintained 3203 S: Maintained
3204 F: Documentation/hwmon/lis3lv02d 3204 F: Documentation/hwmon/lis3lv02d
3205 F: drivers/hwmon/lis3lv02d.* 3205 F: drivers/hwmon/lis3lv02d.*
3206 3206
3207 LM83 HARDWARE MONITOR DRIVER 3207 LM83 HARDWARE MONITOR DRIVER
3208 M: Jean Delvare <khali@linux-fr.org> 3208 M: Jean Delvare <khali@linux-fr.org>
3209 L: lm-sensors@lm-sensors.org 3209 L: lm-sensors@lm-sensors.org
3210 S: Maintained 3210 S: Maintained
3211 F: Documentation/hwmon/lm83 3211 F: Documentation/hwmon/lm83
3212 F: drivers/hwmon/lm83.c 3212 F: drivers/hwmon/lm83.c
3213 3213
3214 LM90 HARDWARE MONITOR DRIVER 3214 LM90 HARDWARE MONITOR DRIVER
3215 M: Jean Delvare <khali@linux-fr.org> 3215 M: Jean Delvare <khali@linux-fr.org>
3216 L: lm-sensors@lm-sensors.org 3216 L: lm-sensors@lm-sensors.org
3217 S: Maintained 3217 S: Maintained
3218 F: Documentation/hwmon/lm90 3218 F: Documentation/hwmon/lm90
3219 F: drivers/hwmon/lm90.c 3219 F: drivers/hwmon/lm90.c
3220 3220
3221 LOCKDEP AND LOCKSTAT 3221 LOCKDEP AND LOCKSTAT
3222 M: Peter Zijlstra <peterz@infradead.org> 3222 M: Peter Zijlstra <peterz@infradead.org>
3223 M: Ingo Molnar <mingo@redhat.com> 3223 M: Ingo Molnar <mingo@redhat.com>
3224 T: git git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep.git 3224 T: git git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep.git
3225 S: Maintained 3225 S: Maintained
3226 F: Documentation/lockdep*.txt 3226 F: Documentation/lockdep*.txt
3227 F: Documentation/lockstat.txt 3227 F: Documentation/lockstat.txt
3228 F: include/linux/lockdep.h 3228 F: include/linux/lockdep.h
3229 F: kernel/lockdep* 3229 F: kernel/lockdep*
3230 3230
3231 LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks) 3231 LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
3232 M: "Richard Russon (FlatCap)" <ldm@flatcap.org> 3232 M: "Richard Russon (FlatCap)" <ldm@flatcap.org>
3233 L: linux-ntfs-dev@lists.sourceforge.net 3233 L: linux-ntfs-dev@lists.sourceforge.net
3234 W: http://www.linux-ntfs.org/content/view/19/37/ 3234 W: http://www.linux-ntfs.org/content/view/19/37/
3235 S: Maintained 3235 S: Maintained
3236 F: Documentation/ldm.txt 3236 F: Documentation/ldm.txt
3237 F: fs/partitions/ldm.* 3237 F: fs/partitions/ldm.*
3238 3238
3239 LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) 3239 LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
3240 M: Eric Moore <Eric.Moore@lsi.com> 3240 M: Eric Moore <Eric.Moore@lsi.com>
3241 M: support@lsi.com 3241 M: support@lsi.com
3242 L: DL-MPTFusionLinux@lsi.com 3242 L: DL-MPTFusionLinux@lsi.com
3243 L: linux-scsi@vger.kernel.org 3243 L: linux-scsi@vger.kernel.org
3244 W: http://www.lsilogic.com/support 3244 W: http://www.lsilogic.com/support
3245 S: Supported 3245 S: Supported
3246 F: drivers/message/fusion/ 3246 F: drivers/message/fusion/
3247 3247
3248 LSILOGIC/SYMBIOS/NCR 53C8XX and 53C1010 PCI-SCSI drivers 3248 LSILOGIC/SYMBIOS/NCR 53C8XX and 53C1010 PCI-SCSI drivers
3249 M: Matthew Wilcox <matthew@wil.cx> 3249 M: Matthew Wilcox <matthew@wil.cx>
3250 L: linux-scsi@vger.kernel.org 3250 L: linux-scsi@vger.kernel.org
3251 S: Maintained 3251 S: Maintained
3252 F: drivers/scsi/sym53c8xx_2/ 3252 F: drivers/scsi/sym53c8xx_2/
3253 3253
3254 LTP (Linux Test Project) 3254 LTP (Linux Test Project)
3255 M: Subrata Modak <subrata@linux.vnet.ibm.com> 3255 M: Subrata Modak <subrata@linux.vnet.ibm.com>
3256 M: Mike Frysinger <vapier@gentoo.org> 3256 M: Mike Frysinger <vapier@gentoo.org>
3257 L: ltp-list@lists.sourceforge.net (subscribers-only) 3257 L: ltp-list@lists.sourceforge.net (subscribers-only)
3258 W: http://ltp.sourceforge.net/ 3258 W: http://ltp.sourceforge.net/
3259 T: git git://git.kernel.org/pub/scm/linux/kernel/git/galak/ltp.git 3259 T: git git://git.kernel.org/pub/scm/linux/kernel/git/galak/ltp.git
3260 S: Maintained 3260 S: Maintained
3261 3261
3262 M32R ARCHITECTURE 3262 M32R ARCHITECTURE
3263 M: Hirokazu Takata <takata@linux-m32r.org> 3263 M: Hirokazu Takata <takata@linux-m32r.org>
3264 L: linux-m32r@ml.linux-m32r.org 3264 L: linux-m32r@ml.linux-m32r.org
3265 L: linux-m32r-ja@ml.linux-m32r.org (in Japanese) 3265 L: linux-m32r-ja@ml.linux-m32r.org (in Japanese)
3266 W: http://www.linux-m32r.org/ 3266 W: http://www.linux-m32r.org/
3267 S: Maintained 3267 S: Maintained
3268 F: arch/m32r/ 3268 F: arch/m32r/
3269 3269
3270 M68K ARCHITECTURE 3270 M68K ARCHITECTURE
3271 M: Geert Uytterhoeven <geert@linux-m68k.org> 3271 M: Geert Uytterhoeven <geert@linux-m68k.org>
3272 M: Roman Zippel <zippel@linux-m68k.org> 3272 M: Roman Zippel <zippel@linux-m68k.org>
3273 L: linux-m68k@lists.linux-m68k.org 3273 L: linux-m68k@lists.linux-m68k.org
3274 W: http://www.linux-m68k.org/ 3274 W: http://www.linux-m68k.org/
3275 T: git git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git 3275 T: git git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git
3276 S: Maintained 3276 S: Maintained
3277 F: arch/m68k/ 3277 F: arch/m68k/
3278 F: drivers/zorro/ 3278 F: drivers/zorro/
3279 3279
3280 M68K ON APPLE MACINTOSH 3280 M68K ON APPLE MACINTOSH
3281 M: Joshua Thompson <funaho@jurai.org> 3281 M: Joshua Thompson <funaho@jurai.org>
3282 W: http://www.mac.linux-m68k.org/ 3282 W: http://www.mac.linux-m68k.org/
3283 L: linux-m68k@lists.linux-m68k.org 3283 L: linux-m68k@lists.linux-m68k.org
3284 S: Maintained 3284 S: Maintained
3285 F: arch/m68k/mac/ 3285 F: arch/m68k/mac/
3286 3286
3287 M68K ON HP9000/300 3287 M68K ON HP9000/300
3288 M: Philip Blundell <philb@gnu.org> 3288 M: Philip Blundell <philb@gnu.org>
3289 W: http://www.tazenda.demon.co.uk/phil/linux-hp 3289 W: http://www.tazenda.demon.co.uk/phil/linux-hp
3290 S: Maintained 3290 S: Maintained
3291 F: arch/m68k/hp300/ 3291 F: arch/m68k/hp300/
3292 3292
3293 MAC80211 3293 MAC80211
3294 M: Johannes Berg <johannes@sipsolutions.net> 3294 M: Johannes Berg <johannes@sipsolutions.net>
3295 L: linux-wireless@vger.kernel.org 3295 L: linux-wireless@vger.kernel.org
3296 W: http://linuxwireless.org/ 3296 W: http://linuxwireless.org/
3297 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git 3297 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
3298 S: Maintained 3298 S: Maintained
3299 F: Documentation/networking/mac80211-injection.txt 3299 F: Documentation/networking/mac80211-injection.txt
3300 F: include/net/mac80211.h 3300 F: include/net/mac80211.h
3301 F: net/mac80211/ 3301 F: net/mac80211/
3302 3302
3303 MAC80211 PID RATE CONTROL 3303 MAC80211 PID RATE CONTROL
3304 M: Stefano Brivio <stefano.brivio@polimi.it> 3304 M: Stefano Brivio <stefano.brivio@polimi.it>
3305 M: Mattias Nissler <mattias.nissler@gmx.de> 3305 M: Mattias Nissler <mattias.nissler@gmx.de>
3306 L: linux-wireless@vger.kernel.org 3306 L: linux-wireless@vger.kernel.org
3307 W: http://linuxwireless.org/en/developers/Documentation/mac80211/RateControl/PID 3307 W: http://linuxwireless.org/en/developers/Documentation/mac80211/RateControl/PID
3308 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git 3308 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
3309 S: Maintained 3309 S: Maintained
3310 F: net/mac80211/rc80211_pid* 3310 F: net/mac80211/rc80211_pid*
3311 3311
3312 MACVLAN DRIVER 3312 MACVLAN DRIVER
3313 M: Patrick McHardy <kaber@trash.net> 3313 M: Patrick McHardy <kaber@trash.net>
3314 L: netdev@vger.kernel.org 3314 L: netdev@vger.kernel.org
3315 S: Maintained 3315 S: Maintained
3316 F: drivers/net/macvlan.c 3316 F: drivers/net/macvlan.c
3317 F: include/linux/if_macvlan.h 3317 F: include/linux/if_macvlan.h
3318 3318
3319 MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7 3319 MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
3320 M: Michael Kerrisk <mtk.manpages@gmail.com> 3320 M: Michael Kerrisk <mtk.manpages@gmail.com>
3321 W: http://www.kernel.org/doc/man-pages 3321 W: http://www.kernel.org/doc/man-pages
3322 L: linux-man@vger.kernel.org 3322 L: linux-man@vger.kernel.org
3323 S: Maintained 3323 S: Maintained
3324 3324
3325 MARVELL LIBERTAS WIRELESS DRIVER 3325 MARVELL LIBERTAS WIRELESS DRIVER
3326 M: Dan Williams <dcbw@redhat.com> 3326 M: Dan Williams <dcbw@redhat.com>
3327 L: libertas-dev@lists.infradead.org 3327 L: libertas-dev@lists.infradead.org
3328 S: Maintained 3328 S: Maintained
3329 F: drivers/net/wireless/libertas/ 3329 F: drivers/net/wireless/libertas/
3330 3330
3331 MARVELL MV643XX ETHERNET DRIVER 3331 MARVELL MV643XX ETHERNET DRIVER
3332 M: Lennert Buytenhek <buytenh@marvell.com> 3332 M: Lennert Buytenhek <buytenh@marvell.com>
3333 L: netdev@vger.kernel.org 3333 L: netdev@vger.kernel.org
3334 S: Supported 3334 S: Supported
3335 F: drivers/net/mv643xx_eth.* 3335 F: drivers/net/mv643xx_eth.*
3336 F: include/linux/mv643xx.h 3336 F: include/linux/mv643xx.h
3337 3337
3338 MARVELL MWL8K WIRELESS DRIVER 3338 MARVELL MWL8K WIRELESS DRIVER
3339 M: Lennert Buytenhek <buytenh@marvell.com> 3339 M: Lennert Buytenhek <buytenh@marvell.com>
3340 L: linux-wireless@vger.kernel.org 3340 L: linux-wireless@vger.kernel.org
3341 S: Supported 3341 S: Supported
3342 F: drivers/net/wireless/mwl8k.c 3342 F: drivers/net/wireless/mwl8k.c
3343 3343
3344 MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER 3344 MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
3345 M: Nicolas Pitre <nico@fluxnic.net> 3345 M: Nicolas Pitre <nico@fluxnic.net>
3346 S: Maintained 3346 S: Maintained
3347 3347
3348 MARVELL YUKON / SYSKONNECT DRIVER 3348 MARVELL YUKON / SYSKONNECT DRIVER
3349 M: Mirko Lindner <mlindner@syskonnect.de> 3349 M: Mirko Lindner <mlindner@syskonnect.de>
3350 M: Ralph Roesler <rroesler@syskonnect.de> 3350 M: Ralph Roesler <rroesler@syskonnect.de>
3351 W: http://www.syskonnect.com 3351 W: http://www.syskonnect.com
3352 S: Supported 3352 S: Supported
3353 3353
3354 MATROX FRAMEBUFFER DRIVER 3354 MATROX FRAMEBUFFER DRIVER
3355 M: Petr Vandrovec <vandrove@vc.cvut.cz> 3355 M: Petr Vandrovec <vandrove@vc.cvut.cz>
3356 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 3356 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
3357 S: Maintained 3357 S: Maintained
3358 F: drivers/video/matrox/matroxfb_* 3358 F: drivers/video/matrox/matroxfb_*
3359 F: include/linux/matroxfb.h 3359 F: include/linux/matroxfb.h
3360 3360
3361 MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER 3361 MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
3362 M: "Hans J. Koch" <hjk@linutronix.de> 3362 M: "Hans J. Koch" <hjk@linutronix.de>
3363 L: lm-sensors@lm-sensors.org 3363 L: lm-sensors@lm-sensors.org
3364 S: Maintained 3364 S: Maintained
3365 F: Documentation/hwmon/max6650 3365 F: Documentation/hwmon/max6650
3366 F: drivers/hwmon/max6650.c 3366 F: drivers/hwmon/max6650.c
3367 3367
3368 MEDIA INPUT INFRASTRUCTURE (V4L/DVB) 3368 MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
3369 M: Mauro Carvalho Chehab <mchehab@infradead.org> 3369 M: Mauro Carvalho Chehab <mchehab@infradead.org>
3370 P: LinuxTV.org Project 3370 P: LinuxTV.org Project
3371 L: linux-media@vger.kernel.org 3371 L: linux-media@vger.kernel.org
3372 W: http://linuxtv.org 3372 W: http://linuxtv.org
3373 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 3373 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
3374 S: Maintained 3374 S: Maintained
3375 F: Documentation/dvb/ 3375 F: Documentation/dvb/
3376 F: Documentation/video4linux/ 3376 F: Documentation/video4linux/
3377 F: drivers/media/ 3377 F: drivers/media/
3378 F: include/media/ 3378 F: include/media/
3379 F: include/linux/dvb/ 3379 F: include/linux/dvb/
3380 F: include/linux/videodev*.h 3380 F: include/linux/videodev*.h
3381 3381
3382 MEGARAID SCSI DRIVERS 3382 MEGARAID SCSI DRIVERS
3383 M: Neela Syam Kolli <megaraidlinux@lsi.com> 3383 M: Neela Syam Kolli <megaraidlinux@lsi.com>
3384 L: linux-scsi@vger.kernel.org 3384 L: linux-scsi@vger.kernel.org
3385 W: http://megaraid.lsilogic.com 3385 W: http://megaraid.lsilogic.com
3386 S: Maintained 3386 S: Maintained
3387 F: Documentation/scsi/megaraid.txt 3387 F: Documentation/scsi/megaraid.txt
3388 F: drivers/scsi/megaraid.* 3388 F: drivers/scsi/megaraid.*
3389 F: drivers/scsi/megaraid/ 3389 F: drivers/scsi/megaraid/
3390 3390
3391 MEMORY MANAGEMENT 3391 MEMORY MANAGEMENT
3392 L: linux-mm@kvack.org 3392 L: linux-mm@kvack.org
3393 W: http://www.linux-mm.org 3393 W: http://www.linux-mm.org
3394 S: Maintained 3394 S: Maintained
3395 F: include/linux/mm.h 3395 F: include/linux/mm.h
3396 F: mm/ 3396 F: mm/
3397 3397
3398 MEMORY RESOURCE CONTROLLER 3398 MEMORY RESOURCE CONTROLLER
3399 M: Balbir Singh <balbir@linux.vnet.ibm.com> 3399 M: Balbir Singh <balbir@linux.vnet.ibm.com>
3400 M: Pavel Emelyanov <xemul@openvz.org> 3400 M: Pavel Emelyanov <xemul@openvz.org>
3401 M: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> 3401 M: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
3402 L: linux-mm@kvack.org 3402 L: linux-mm@kvack.org
3403 S: Maintained 3403 S: Maintained
3404 F: mm/memcontrol.c 3404 F: mm/memcontrol.c
3405 3405
3406 MEMORY TECHNOLOGY DEVICES (MTD) 3406 MEMORY TECHNOLOGY DEVICES (MTD)
3407 M: David Woodhouse <dwmw2@infradead.org> 3407 M: David Woodhouse <dwmw2@infradead.org>
3408 W: http://www.linux-mtd.infradead.org/ 3408 W: http://www.linux-mtd.infradead.org/
3409 L: linux-mtd@lists.infradead.org 3409 L: linux-mtd@lists.infradead.org
3410 T: git git://git.infradead.org/mtd-2.6.git 3410 T: git git://git.infradead.org/mtd-2.6.git
3411 S: Maintained 3411 S: Maintained
3412 F: drivers/mtd/ 3412 F: drivers/mtd/
3413 F: include/linux/mtd/ 3413 F: include/linux/mtd/
3414 F: include/mtd/ 3414 F: include/mtd/
3415 3415
3416 MICROBLAZE ARCHITECTURE 3416 MICROBLAZE ARCHITECTURE
3417 M: Michal Simek <monstr@monstr.eu> 3417 M: Michal Simek <monstr@monstr.eu>
3418 L: microblaze-uclinux@itee.uq.edu.au 3418 L: microblaze-uclinux@itee.uq.edu.au
3419 W: http://www.monstr.eu/fdt/ 3419 W: http://www.monstr.eu/fdt/
3420 T: git git://git.monstr.eu/linux-2.6-microblaze.git 3420 T: git git://git.monstr.eu/linux-2.6-microblaze.git
3421 S: Supported 3421 S: Supported
3422 F: arch/microblaze/ 3422 F: arch/microblaze/
3423 3423
3424 MICROTEK X6 SCANNER 3424 MICROTEK X6 SCANNER
3425 M: Oliver Neukum <oliver@neukum.name> 3425 M: Oliver Neukum <oliver@neukum.name>
3426 S: Maintained 3426 S: Maintained
3427 F: drivers/usb/image/microtek.* 3427 F: drivers/usb/image/microtek.*
3428 3428
3429 MIPS 3429 MIPS
3430 M: Ralf Baechle <ralf@linux-mips.org> 3430 M: Ralf Baechle <ralf@linux-mips.org>
3431 W: http://www.linux-mips.org/ 3431 W: http://www.linux-mips.org/
3432 L: linux-mips@linux-mips.org 3432 L: linux-mips@linux-mips.org
3433 T: git git://git.linux-mips.org/pub/scm/linux.git 3433 T: git git://git.linux-mips.org/pub/scm/linux.git
3434 S: Supported 3434 S: Supported
3435 F: Documentation/mips/ 3435 F: Documentation/mips/
3436 F: arch/mips/ 3436 F: arch/mips/
3437 3437
3438 MISCELLANEOUS MCA-SUPPORT 3438 MISCELLANEOUS MCA-SUPPORT
3439 M: James Bottomley <James.Bottomley@HansenPartnership.com> 3439 M: James Bottomley <James.Bottomley@HansenPartnership.com>
3440 S: Maintained 3440 S: Maintained
3441 F: Documentation/ia64/mca.txt 3441 F: Documentation/ia64/mca.txt
3442 F: Documentation/mca.txt 3442 F: Documentation/mca.txt
3443 F: drivers/mca/ 3443 F: drivers/mca/
3444 F: include/linux/mca* 3444 F: include/linux/mca*
3445 3445
3446 MODULE SUPPORT 3446 MODULE SUPPORT
3447 M: Rusty Russell <rusty@rustcorp.com.au> 3447 M: Rusty Russell <rusty@rustcorp.com.au>
3448 S: Maintained 3448 S: Maintained
3449 F: include/linux/module.h 3449 F: include/linux/module.h
3450 F: kernel/module.c 3450 F: kernel/module.c
3451 3451
3452 MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER 3452 MOTION EYE VAIO PICTUREBOOK CAMERA DRIVER
3453 M: Stelian Pop <stelian@popies.net> 3453 M: Stelian Pop <stelian@popies.net>
3454 W: http://popies.net/meye/ 3454 W: http://popies.net/meye/
3455 S: Maintained 3455 S: Maintained
3456 F: Documentation/video4linux/meye.txt 3456 F: Documentation/video4linux/meye.txt
3457 F: drivers/media/video/meye.* 3457 F: drivers/media/video/meye.*
3458 F: include/linux/meye.h 3458 F: include/linux/meye.h
3459 3459
3460 MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER 3460 MOTOROLA IMX MMC/SD HOST CONTROLLER INTERFACE DRIVER
3461 M: Pavel Pisa <ppisa@pikron.com> 3461 M: Pavel Pisa <ppisa@pikron.com>
3462 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 3462 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
3463 S: Maintained 3463 S: Maintained
3464 F: drivers/mmc/host/imxmmc.* 3464 F: drivers/mmc/host/imxmmc.*
3465 3465
3466 MOUSE AND MISC DEVICES [GENERAL] 3466 MOUSE AND MISC DEVICES [GENERAL]
3467 M: Alessandro Rubini <rubini@ipvvis.unipv.it> 3467 M: Alessandro Rubini <rubini@ipvvis.unipv.it>
3468 S: Maintained 3468 S: Maintained
3469 F: drivers/input/mouse/ 3469 F: drivers/input/mouse/
3470 F: include/linux/gpio_mouse.h 3470 F: include/linux/gpio_mouse.h
3471 3471
3472 MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD 3472 MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
3473 M: Jiri Slaby <jirislaby@gmail.com> 3473 M: Jiri Slaby <jirislaby@gmail.com>
3474 S: Maintained 3474 S: Maintained
3475 F: Documentation/serial/moxa-smartio 3475 F: Documentation/serial/moxa-smartio
3476 F: drivers/char/mxser.* 3476 F: drivers/char/mxser.*
3477 3477
3478 MSI LAPTOP SUPPORT 3478 MSI LAPTOP SUPPORT
3479 M: Lennart Poettering <mzxreary@0pointer.de> 3479 M: Lennart Poettering <mzxreary@0pointer.de>
3480 W: https://tango.0pointer.de/mailman/listinfo/s270-linux 3480 W: https://tango.0pointer.de/mailman/listinfo/s270-linux
3481 W: http://0pointer.de/lennart/tchibo.html 3481 W: http://0pointer.de/lennart/tchibo.html
3482 S: Maintained 3482 S: Maintained
3483 F: drivers/platform/x86/msi-laptop.c 3483 F: drivers/platform/x86/msi-laptop.c
3484 3484
3485 MULTIFUNCTION DEVICES (MFD) 3485 MULTIFUNCTION DEVICES (MFD)
3486 M: Samuel Ortiz <sameo@linux.intel.com> 3486 M: Samuel Ortiz <sameo@linux.intel.com>
3487 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6.git 3487 T: git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6.git
3488 S: Supported 3488 S: Supported
3489 F: drivers/mfd/ 3489 F: drivers/mfd/
3490 3490
3491 MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM 3491 MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
3492 S: Orphan 3492 S: Orphan
3493 L: linux-mmc@vger.kernel.org 3493 L: linux-mmc@vger.kernel.org
3494 F: drivers/mmc/ 3494 F: drivers/mmc/
3495 F: include/linux/mmc/ 3495 F: include/linux/mmc/
3496 3496
3497 MULTIMEDIA CARD (MMC) ETC. OVER SPI 3497 MULTIMEDIA CARD (MMC) ETC. OVER SPI
3498 M: David Brownell <dbrownell@users.sourceforge.net> 3498 M: David Brownell <dbrownell@users.sourceforge.net>
3499 S: Odd Fixes 3499 S: Odd Fixes
3500 F: drivers/mmc/host/mmc_spi.c 3500 F: drivers/mmc/host/mmc_spi.c
3501 F: include/linux/spi/mmc_spi.h 3501 F: include/linux/spi/mmc_spi.h
3502 3502
3503 MULTISOUND SOUND DRIVER 3503 MULTISOUND SOUND DRIVER
3504 M: Andrew Veliath <andrewtv@usa.net> 3504 M: Andrew Veliath <andrewtv@usa.net>
3505 S: Maintained 3505 S: Maintained
3506 F: Documentation/sound/oss/MultiSound 3506 F: Documentation/sound/oss/MultiSound
3507 F: sound/oss/msnd* 3507 F: sound/oss/msnd*
3508 3508
3509 MULTITECH MULTIPORT CARD (ISICOM) 3509 MULTITECH MULTIPORT CARD (ISICOM)
3510 M: Jiri Slaby <jirislaby@gmail.com> 3510 M: Jiri Slaby <jirislaby@gmail.com>
3511 S: Maintained 3511 S: Maintained
3512 F: drivers/char/isicom.c 3512 F: drivers/char/isicom.c
3513 F: include/linux/isicom.h 3513 F: include/linux/isicom.h
3514 3514
3515 MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER 3515 MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER
3516 M: Felipe Balbi <felipe.balbi@nokia.com> 3516 M: Felipe Balbi <felipe.balbi@nokia.com>
3517 L: linux-usb@vger.kernel.org 3517 L: linux-usb@vger.kernel.org
3518 T: git git://gitorious.org/musb/mainline.git 3518 T: git git://gitorious.org/musb/mainline.git
3519 S: Maintained 3519 S: Maintained
3520 F: drivers/usb/musb/ 3520 F: drivers/usb/musb/
3521 3521
3522 MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE) 3522 MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE)
3523 M: Andrew Gallatin <gallatin@myri.com> 3523 M: Andrew Gallatin <gallatin@myri.com>
3524 M: Brice Goglin <brice@myri.com> 3524 M: Brice Goglin <brice@myri.com>
3525 L: netdev@vger.kernel.org 3525 L: netdev@vger.kernel.org
3526 W: http://www.myri.com/scs/download-Myri10GE.html 3526 W: http://www.myri.com/scs/download-Myri10GE.html
3527 S: Supported 3527 S: Supported
3528 F: drivers/net/myri10ge/ 3528 F: drivers/net/myri10ge/
3529 3529
3530 NATSEMI ETHERNET DRIVER (DP8381x) 3530 NATSEMI ETHERNET DRIVER (DP8381x)
3531 M: Tim Hockin <thockin@hockin.org> 3531 M: Tim Hockin <thockin@hockin.org>
3532 S: Maintained 3532 S: Maintained
3533 F: drivers/net/natsemi.c 3533 F: drivers/net/natsemi.c
3534 3534
3535 NCP FILESYSTEM 3535 NCP FILESYSTEM
3536 M: Petr Vandrovec <vandrove@vc.cvut.cz> 3536 M: Petr Vandrovec <vandrove@vc.cvut.cz>
3537 S: Maintained 3537 S: Maintained
3538 F: fs/ncpfs/ 3538 F: fs/ncpfs/
3539 3539
3540 NCR DUAL 700 SCSI DRIVER (MICROCHANNEL) 3540 NCR DUAL 700 SCSI DRIVER (MICROCHANNEL)
3541 M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com> 3541 M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
3542 L: linux-scsi@vger.kernel.org 3542 L: linux-scsi@vger.kernel.org
3543 S: Maintained 3543 S: Maintained
3544 F: drivers/scsi/NCR_D700.* 3544 F: drivers/scsi/NCR_D700.*
3545 3545
3546 NETEFFECT IWARP RNIC DRIVER (IW_NES) 3546 NETEFFECT IWARP RNIC DRIVER (IW_NES)
3547 M: Faisal Latif <faisal.latif@intel.com> 3547 M: Faisal Latif <faisal.latif@intel.com>
3548 M: Chien Tung <chien.tin.tung@intel.com> 3548 M: Chien Tung <chien.tin.tung@intel.com>
3549 L: linux-rdma@vger.kernel.org 3549 L: linux-rdma@vger.kernel.org
3550 W: http://www.neteffect.com 3550 W: http://www.neteffect.com
3551 S: Supported 3551 S: Supported
3552 F: drivers/infiniband/hw/nes/ 3552 F: drivers/infiniband/hw/nes/
3553 3553
3554 NETEM NETWORK EMULATOR 3554 NETEM NETWORK EMULATOR
3555 M: Stephen Hemminger <shemminger@linux-foundation.org> 3555 M: Stephen Hemminger <shemminger@linux-foundation.org>
3556 L: netem@lists.linux-foundation.org 3556 L: netem@lists.linux-foundation.org
3557 S: Maintained 3557 S: Maintained
3558 F: net/sched/sch_netem.c 3558 F: net/sched/sch_netem.c
3559 3559
3560 NETERION (S2IO) 10GbE DRIVER (xframe/vxge) 3560 NETERION (S2IO) 10GbE DRIVER (xframe/vxge)
3561 M: Ramkrishna Vepa <ram.vepa@neterion.com> 3561 M: Ramkrishna Vepa <ram.vepa@neterion.com>
3562 M: Rastapur Santosh <santosh.rastapur@neterion.com> 3562 M: Rastapur Santosh <santosh.rastapur@neterion.com>
3563 M: Sivakumar Subramani <sivakumar.subramani@neterion.com> 3563 M: Sivakumar Subramani <sivakumar.subramani@neterion.com>
3564 M: Sreenivasa Honnur <sreenivasa.honnur@neterion.com> 3564 M: Sreenivasa Honnur <sreenivasa.honnur@neterion.com>
3565 M: Anil Murthy <anil.murthy@neterion.com> 3565 M: Anil Murthy <anil.murthy@neterion.com>
3566 L: netdev@vger.kernel.org 3566 L: netdev@vger.kernel.org
3567 W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/Linux?Anonymous 3567 W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/Linux?Anonymous
3568 W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/X3100Linux?Anonymous 3568 W: http://trac.neterion.com/cgi-bin/trac.cgi/wiki/X3100Linux?Anonymous
3569 S: Supported 3569 S: Supported
3570 F: Documentation/networking/s2io.txt 3570 F: Documentation/networking/s2io.txt
3571 F: drivers/net/s2io* 3571 F: drivers/net/s2io*
3572 3572
3573 NETFILTER/IPTABLES/IPCHAINS 3573 NETFILTER/IPTABLES/IPCHAINS
3574 P: Rusty Russell 3574 P: Rusty Russell
3575 P: Marc Boucher 3575 P: Marc Boucher
3576 P: James Morris 3576 P: James Morris
3577 P: Harald Welte 3577 P: Harald Welte
3578 P: Jozsef Kadlecsik 3578 P: Jozsef Kadlecsik
3579 M: Patrick McHardy <kaber@trash.net> 3579 M: Patrick McHardy <kaber@trash.net>
3580 L: netfilter-devel@vger.kernel.org 3580 L: netfilter-devel@vger.kernel.org
3581 L: netfilter@vger.kernel.org 3581 L: netfilter@vger.kernel.org
3582 L: coreteam@netfilter.org 3582 L: coreteam@netfilter.org
3583 W: http://www.netfilter.org/ 3583 W: http://www.netfilter.org/
3584 W: http://www.iptables.org/ 3584 W: http://www.iptables.org/
3585 T: git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6.git 3585 T: git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6.git
3586 S: Supported 3586 S: Supported
3587 F: include/linux/netfilter* 3587 F: include/linux/netfilter*
3588 F: include/linux/netfilter/ 3588 F: include/linux/netfilter/
3589 F: include/net/netfilter/ 3589 F: include/net/netfilter/
3590 F: net/*/netfilter.c 3590 F: net/*/netfilter.c
3591 F: net/*/netfilter/ 3591 F: net/*/netfilter/
3592 F: net/netfilter/ 3592 F: net/netfilter/
3593 3593
3594 NETLABEL 3594 NETLABEL
3595 M: Paul Moore <paul.moore@hp.com> 3595 M: Paul Moore <paul.moore@hp.com>
3596 W: http://netlabel.sf.net 3596 W: http://netlabel.sf.net
3597 L: netdev@vger.kernel.org 3597 L: netdev@vger.kernel.org
3598 S: Supported 3598 S: Supported
3599 F: Documentation/netlabel/ 3599 F: Documentation/netlabel/
3600 F: include/net/netlabel.h 3600 F: include/net/netlabel.h
3601 F: net/netlabel/ 3601 F: net/netlabel/
3602 3602
3603 NETROM NETWORK LAYER 3603 NETROM NETWORK LAYER
3604 M: Ralf Baechle <ralf@linux-mips.org> 3604 M: Ralf Baechle <ralf@linux-mips.org>
3605 L: linux-hams@vger.kernel.org 3605 L: linux-hams@vger.kernel.org
3606 W: http://www.linux-ax25.org/ 3606 W: http://www.linux-ax25.org/
3607 S: Maintained 3607 S: Maintained
3608 F: include/linux/netrom.h 3608 F: include/linux/netrom.h
3609 F: include/net/netrom.h 3609 F: include/net/netrom.h
3610 F: net/netrom/ 3610 F: net/netrom/
3611 3611
3612 NETWORK BLOCK DEVICE (NBD) 3612 NETWORK BLOCK DEVICE (NBD)
3613 M: Paul Clements <Paul.Clements@steeleye.com> 3613 M: Paul Clements <Paul.Clements@steeleye.com>
3614 S: Maintained 3614 S: Maintained
3615 F: Documentation/blockdev/nbd.txt 3615 F: Documentation/blockdev/nbd.txt
3616 F: drivers/block/nbd.c 3616 F: drivers/block/nbd.c
3617 F: include/linux/nbd.h 3617 F: include/linux/nbd.h
3618 3618
3619 NETWORKING [GENERAL] 3619 NETWORKING [GENERAL]
3620 M: "David S. Miller" <davem@davemloft.net> 3620 M: "David S. Miller" <davem@davemloft.net>
3621 L: netdev@vger.kernel.org 3621 L: netdev@vger.kernel.org
3622 W: http://www.linuxfoundation.org/en/Net 3622 W: http://www.linuxfoundation.org/en/Net
3623 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git 3623 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
3624 S: Maintained 3624 S: Maintained
3625 F: net/ 3625 F: net/
3626 F: include/net/ 3626 F: include/net/
3627 F: include/linux/in.h 3627 F: include/linux/in.h
3628 F: include/linux/net.h 3628 F: include/linux/net.h
3629 F: include/linux/netdevice.h 3629 F: include/linux/netdevice.h
3630 3630
3631 NETWORKING [IPv4/IPv6] 3631 NETWORKING [IPv4/IPv6]
3632 M: "David S. Miller" <davem@davemloft.net> 3632 M: "David S. Miller" <davem@davemloft.net>
3633 M: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> 3633 M: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
3634 M: "Pekka Savola (ipv6)" <pekkas@netcore.fi> 3634 M: "Pekka Savola (ipv6)" <pekkas@netcore.fi>
3635 M: James Morris <jmorris@namei.org> 3635 M: James Morris <jmorris@namei.org>
3636 M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> 3636 M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
3637 M: Patrick McHardy <kaber@trash.net> 3637 M: Patrick McHardy <kaber@trash.net>
3638 L: netdev@vger.kernel.org 3638 L: netdev@vger.kernel.org
3639 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git 3639 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
3640 S: Maintained 3640 S: Maintained
3641 F: net/ipv4/ 3641 F: net/ipv4/
3642 F: net/ipv6/ 3642 F: net/ipv6/
3643 F: include/net/ip* 3643 F: include/net/ip*
3644 3644
3645 NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK) 3645 NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK)
3646 M: Paul Moore <paul.moore@hp.com> 3646 M: Paul Moore <paul.moore@hp.com>
3647 L: netdev@vger.kernel.org 3647 L: netdev@vger.kernel.org
3648 S: Maintained 3648 S: Maintained
3649 3649
3650 NETWORKING [WIRELESS] 3650 NETWORKING [WIRELESS]
3651 M: "John W. Linville" <linville@tuxdriver.com> 3651 M: "John W. Linville" <linville@tuxdriver.com>
3652 L: linux-wireless@vger.kernel.org 3652 L: linux-wireless@vger.kernel.org
3653 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git 3653 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
3654 S: Maintained 3654 S: Maintained
3655 F: net/mac80211/ 3655 F: net/mac80211/
3656 F: net/rfkill/ 3656 F: net/rfkill/
3657 F: net/wireless/ 3657 F: net/wireless/
3658 F: include/net/ieee80211* 3658 F: include/net/ieee80211*
3659 F: include/linux/wireless.h 3659 F: include/linux/wireless.h
3660 F: drivers/net/wireless/ 3660 F: drivers/net/wireless/
3661 3661
3662 NETWORKING DRIVERS 3662 NETWORKING DRIVERS
3663 L: netdev@vger.kernel.org 3663 L: netdev@vger.kernel.org
3664 W: http://www.linuxfoundation.org/en/Net 3664 W: http://www.linuxfoundation.org/en/Net
3665 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git 3665 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
3666 S: Odd Fixes 3666 S: Odd Fixes
3667 F: drivers/net/ 3667 F: drivers/net/
3668 F: include/linux/if_* 3668 F: include/linux/if_*
3669 F: include/linux/*device.h 3669 F: include/linux/*device.h
3670 3670
3671 NETXEN (1/10) GbE SUPPORT 3671 NETXEN (1/10) GbE SUPPORT
3672 M: Dhananjay Phadke <dhananjay@netxen.com> 3672 M: Dhananjay Phadke <dhananjay@netxen.com>
3673 L: netdev@vger.kernel.org 3673 L: netdev@vger.kernel.org
3674 W: http://www.netxen.com 3674 W: http://www.netxen.com
3675 S: Supported 3675 S: Supported
3676 F: drivers/net/netxen/ 3676 F: drivers/net/netxen/
3677 3677
3678 NFS, SUNRPC, AND LOCKD CLIENTS 3678 NFS, SUNRPC, AND LOCKD CLIENTS
3679 M: Trond Myklebust <Trond.Myklebust@netapp.com> 3679 M: Trond Myklebust <Trond.Myklebust@netapp.com>
3680 L: linux-nfs@vger.kernel.org 3680 L: linux-nfs@vger.kernel.org
3681 W: http://client.linux-nfs.org 3681 W: http://client.linux-nfs.org
3682 T: git git://git.linux-nfs.org/pub/linux/nfs-2.6.git 3682 T: git git://git.linux-nfs.org/pub/linux/nfs-2.6.git
3683 S: Maintained 3683 S: Maintained
3684 F: fs/lockd/ 3684 F: fs/lockd/
3685 F: fs/nfs/ 3685 F: fs/nfs/
3686 F: fs/nfs_common/ 3686 F: fs/nfs_common/
3687 F: net/sunrpc/ 3687 F: net/sunrpc/
3688 F: include/linux/lockd/ 3688 F: include/linux/lockd/
3689 F: include/linux/nfs* 3689 F: include/linux/nfs*
3690 F: include/linux/sunrpc/ 3690 F: include/linux/sunrpc/
3691 3691
3692 NI5010 NETWORK DRIVER 3692 NI5010 NETWORK DRIVER
3693 M: Jan-Pascal van Best <janpascal@vanbest.org> 3693 M: Jan-Pascal van Best <janpascal@vanbest.org>
3694 M: Andreas Mohr <andi@lisas.de> 3694 M: Andreas Mohr <andi@lisas.de>
3695 L: netdev@vger.kernel.org 3695 L: netdev@vger.kernel.org
3696 S: Maintained 3696 S: Maintained
3697 F: drivers/net/ni5010.* 3697 F: drivers/net/ni5010.*
3698 3698
3699 NILFS2 FILESYSTEM 3699 NILFS2 FILESYSTEM
3700 M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp> 3700 M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
3701 L: users@nilfs.org 3701 L: users@nilfs.org
3702 W: http://www.nilfs.org/en/ 3702 W: http://www.nilfs.org/en/
3703 S: Supported 3703 S: Supported
3704 F: Documentation/filesystems/nilfs2.txt 3704 F: Documentation/filesystems/nilfs2.txt
3705 F: fs/nilfs2/ 3705 F: fs/nilfs2/
3706 F: include/linux/nilfs2_fs.h 3706 F: include/linux/nilfs2_fs.h
3707 3707
3708 NINJA SCSI-3 / NINJA SCSI-32Bi (16bit/CardBus) PCMCIA SCSI HOST ADAPTER DRIVER 3708 NINJA SCSI-3 / NINJA SCSI-32Bi (16bit/CardBus) PCMCIA SCSI HOST ADAPTER DRIVER
3709 M: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp> 3709 M: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp>
3710 W: http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/ninja/ 3710 W: http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/ninja/
3711 S: Maintained 3711 S: Maintained
3712 F: Documentation/scsi/NinjaSCSI.txt 3712 F: Documentation/scsi/NinjaSCSI.txt
3713 F: drivers/scsi/pcmcia/nsp_* 3713 F: drivers/scsi/pcmcia/nsp_*
3714 3714
3715 NINJA SCSI-32Bi/UDE PCI/CARDBUS SCSI HOST ADAPTER DRIVER 3715 NINJA SCSI-32Bi/UDE PCI/CARDBUS SCSI HOST ADAPTER DRIVER
3716 M: GOTO Masanori <gotom@debian.or.jp> 3716 M: GOTO Masanori <gotom@debian.or.jp>
3717 M: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp> 3717 M: YOKOTA Hiroshi <yokota@netlab.is.tsukuba.ac.jp>
3718 W: http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/ninja/ 3718 W: http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/ninja/
3719 S: Maintained 3719 S: Maintained
3720 F: Documentation/scsi/NinjaSCSI.txt 3720 F: Documentation/scsi/NinjaSCSI.txt
3721 F: drivers/scsi/nsp32* 3721 F: drivers/scsi/nsp32*
3722 3722
3723 NTFS FILESYSTEM 3723 NTFS FILESYSTEM
3724 M: Anton Altaparmakov <aia21@cantab.net> 3724 M: Anton Altaparmakov <aia21@cantab.net>
3725 L: linux-ntfs-dev@lists.sourceforge.net 3725 L: linux-ntfs-dev@lists.sourceforge.net
3726 W: http://www.linux-ntfs.org/ 3726 W: http://www.linux-ntfs.org/
3727 T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git 3727 T: git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
3728 S: Maintained 3728 S: Maintained
3729 F: Documentation/filesystems/ntfs.txt 3729 F: Documentation/filesystems/ntfs.txt
3730 F: fs/ntfs/ 3730 F: fs/ntfs/
3731 3731
3732 NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER 3732 NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
3733 M: Antonino Daplas <adaplas@gmail.com> 3733 M: Antonino Daplas <adaplas@gmail.com>
3734 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 3734 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
3735 S: Maintained 3735 S: Maintained
3736 F: drivers/video/riva/ 3736 F: drivers/video/riva/
3737 F: drivers/video/nvidia/ 3737 F: drivers/video/nvidia/
3738 3738
3739 OMAP SUPPORT 3739 OMAP SUPPORT
3740 M: "Tony Lindgren <tony@atomide.com>" <tony@atomide.com> 3740 M: "Tony Lindgren <tony@atomide.com>" <tony@atomide.com>
3741 L: linux-omap@vger.kernel.org 3741 L: linux-omap@vger.kernel.org
3742 W: http://www.muru.com/linux/omap/ 3742 W: http://www.muru.com/linux/omap/
3743 W: http://linux.omap.com/ 3743 W: http://linux.omap.com/
3744 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git 3744 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
3745 S: Maintained 3745 S: Maintained
3746 F: arch/arm/*omap*/ 3746 F: arch/arm/*omap*/
3747 3747
3748 OMAP CLOCK FRAMEWORK SUPPORT 3748 OMAP CLOCK FRAMEWORK SUPPORT
3749 M: Paul Walmsley <paul@pwsan.com> 3749 M: Paul Walmsley <paul@pwsan.com>
3750 L: linux-omap@vger.kernel.org 3750 L: linux-omap@vger.kernel.org
3751 S: Maintained 3751 S: Maintained
3752 F: arch/arm/*omap*/*clock* 3752 F: arch/arm/*omap*/*clock*
3753 3753
3754 OMAP POWER MANAGEMENT SUPPORT 3754 OMAP POWER MANAGEMENT SUPPORT
3755 M: Kevin Hilman <khilman@deeprootsystems.com> 3755 M: Kevin Hilman <khilman@deeprootsystems.com>
3756 L: linux-omap@vger.kernel.org 3756 L: linux-omap@vger.kernel.org
3757 S: Maintained 3757 S: Maintained
3758 F: arch/arm/*omap*/*pm* 3758 F: arch/arm/*omap*/*pm*
3759 3759
3760 OMAP AUDIO SUPPORT 3760 OMAP AUDIO SUPPORT
3761 M: Jarkko Nikula <jhnikula@gmail.com> 3761 M: Jarkko Nikula <jhnikula@gmail.com>
3762 L: alsa-devel@alsa-project.org (subscribers-only) 3762 L: alsa-devel@alsa-project.org (subscribers-only)
3763 L: linux-omap@vger.kernel.org 3763 L: linux-omap@vger.kernel.org
3764 S: Maintained 3764 S: Maintained
3765 F: sound/soc/omap/ 3765 F: sound/soc/omap/
3766 3766
3767 OMAP FRAMEBUFFER SUPPORT 3767 OMAP FRAMEBUFFER SUPPORT
3768 M: Imre Deak <imre.deak@nokia.com> 3768 M: Imre Deak <imre.deak@nokia.com>
3769 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 3769 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
3770 L: linux-omap@vger.kernel.org 3770 L: linux-omap@vger.kernel.org
3771 S: Maintained 3771 S: Maintained
3772 F: drivers/video/omap/ 3772 F: drivers/video/omap/
3773 3773
3774 OMAP MMC SUPPORT 3774 OMAP MMC SUPPORT
3775 M: Jarkko Lavinen <jarkko.lavinen@nokia.com> 3775 M: Jarkko Lavinen <jarkko.lavinen@nokia.com>
3776 L: linux-omap@vger.kernel.org 3776 L: linux-omap@vger.kernel.org
3777 S: Maintained 3777 S: Maintained
3778 F: drivers/mmc/host/omap.c 3778 F: drivers/mmc/host/omap.c
3779 3779
3780 OMAP HS MMC SUPPORT 3780 OMAP HS MMC SUPPORT
3781 M: Madhusudhan Chikkature <madhu.cr@ti.com> 3781 M: Madhusudhan Chikkature <madhu.cr@ti.com>
3782 L: linux-omap@vger.kernel.org 3782 L: linux-omap@vger.kernel.org
3783 S: Maintained 3783 S: Maintained
3784 F: drivers/mmc/host/omap_hsmmc.c 3784 F: drivers/mmc/host/omap_hsmmc.c
3785 3785
3786 OMAP RANDOM NUMBER GENERATOR SUPPORT 3786 OMAP RANDOM NUMBER GENERATOR SUPPORT
3787 M: Deepak Saxena <dsaxena@plexity.net> 3787 M: Deepak Saxena <dsaxena@plexity.net>
3788 S: Maintained 3788 S: Maintained
3789 F: drivers/char/hw_random/omap-rng.c 3789 F: drivers/char/hw_random/omap-rng.c
3790 3790
3791 OMAP USB SUPPORT 3791 OMAP USB SUPPORT
3792 M: Felipe Balbi <felipe.balbi@nokia.com> 3792 M: Felipe Balbi <felipe.balbi@nokia.com>
3793 M: David Brownell <dbrownell@users.sourceforge.net> 3793 M: David Brownell <dbrownell@users.sourceforge.net>
3794 L: linux-usb@vger.kernel.org 3794 L: linux-usb@vger.kernel.org
3795 L: linux-omap@vger.kernel.org 3795 L: linux-omap@vger.kernel.org
3796 S: Maintained 3796 S: Maintained
3797 3797
3798 OMFS FILESYSTEM 3798 OMFS FILESYSTEM
3799 M: Bob Copeland <me@bobcopeland.com> 3799 M: Bob Copeland <me@bobcopeland.com>
3800 L: linux-karma-devel@lists.sourceforge.net 3800 L: linux-karma-devel@lists.sourceforge.net
3801 S: Maintained 3801 S: Maintained
3802 F: Documentation/filesystems/omfs.txt 3802 F: Documentation/filesystems/omfs.txt
3803 F: fs/omfs/ 3803 F: fs/omfs/
3804 3804
3805 OMNIKEY CARDMAN 4000 DRIVER 3805 OMNIKEY CARDMAN 4000 DRIVER
3806 M: Harald Welte <laforge@gnumonks.org> 3806 M: Harald Welte <laforge@gnumonks.org>
3807 S: Maintained 3807 S: Maintained
3808 F: drivers/char/pcmcia/cm4000_cs.c 3808 F: drivers/char/pcmcia/cm4000_cs.c
3809 F: include/linux/cm4000_cs.h 3809 F: include/linux/cm4000_cs.h
3810 3810
3811 OMNIKEY CARDMAN 4040 DRIVER 3811 OMNIKEY CARDMAN 4040 DRIVER
3812 M: Harald Welte <laforge@gnumonks.org> 3812 M: Harald Welte <laforge@gnumonks.org>
3813 S: Maintained 3813 S: Maintained
3814 F: drivers/char/pcmcia/cm4040_cs.* 3814 F: drivers/char/pcmcia/cm4040_cs.*
3815 3815
3816 OMNIVISION OV7670 SENSOR DRIVER 3816 OMNIVISION OV7670 SENSOR DRIVER
3817 M: Jonathan Corbet <corbet@lwn.net> 3817 M: Jonathan Corbet <corbet@lwn.net>
3818 L: linux-media@vger.kernel.org 3818 L: linux-media@vger.kernel.org
3819 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 3819 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
3820 S: Maintained 3820 S: Maintained
3821 F: drivers/media/video/ov7670.c 3821 F: drivers/media/video/ov7670.c
3822 3822
3823 ONENAND FLASH DRIVER 3823 ONENAND FLASH DRIVER
3824 M: Kyungmin Park <kyungmin.park@samsung.com> 3824 M: Kyungmin Park <kyungmin.park@samsung.com>
3825 L: linux-mtd@lists.infradead.org 3825 L: linux-mtd@lists.infradead.org
3826 S: Maintained 3826 S: Maintained
3827 F: drivers/mtd/onenand/ 3827 F: drivers/mtd/onenand/
3828 F: include/linux/mtd/onenand*.h 3828 F: include/linux/mtd/onenand*.h
3829 3829
3830 ONSTREAM SCSI TAPE DRIVER 3830 ONSTREAM SCSI TAPE DRIVER
3831 M: Willem Riede <osst@riede.org> 3831 M: Willem Riede <osst@riede.org>
3832 L: osst-users@lists.sourceforge.net 3832 L: osst-users@lists.sourceforge.net
3833 L: linux-scsi@vger.kernel.org 3833 L: linux-scsi@vger.kernel.org
3834 S: Maintained 3834 S: Maintained
3835 F: drivers/scsi/osst* 3835 F: drivers/scsi/osst*
3836 F: drivers/scsi/st* 3836 F: drivers/scsi/st*
3837 3837
3838 OPENCORES I2C BUS DRIVER 3838 OPENCORES I2C BUS DRIVER
3839 M: Peter Korsgaard <jacmet@sunsite.dk> 3839 M: Peter Korsgaard <jacmet@sunsite.dk>
3840 L: linux-i2c@vger.kernel.org 3840 L: linux-i2c@vger.kernel.org
3841 S: Maintained 3841 S: Maintained
3842 F: Documentation/i2c/busses/i2c-ocores 3842 F: Documentation/i2c/busses/i2c-ocores
3843 F: drivers/i2c/busses/i2c-ocores.c 3843 F: drivers/i2c/busses/i2c-ocores.c
3844 3844
3845 OPROFILE 3845 OPROFILE
3846 M: Robert Richter <robert.richter@amd.com> 3846 M: Robert Richter <robert.richter@amd.com>
3847 L: oprofile-list@lists.sf.net 3847 L: oprofile-list@lists.sf.net
3848 S: Maintained 3848 S: Maintained
3849 F: arch/*/oprofile/ 3849 F: arch/*/oprofile/
3850 F: drivers/oprofile/ 3850 F: drivers/oprofile/
3851 F: include/linux/oprofile.h 3851 F: include/linux/oprofile.h
3852 3852
3853 ORACLE CLUSTER FILESYSTEM 2 (OCFS2) 3853 ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
3854 M: Mark Fasheh <mfasheh@suse.com> 3854 M: Mark Fasheh <mfasheh@suse.com>
3855 M: Joel Becker <joel.becker@oracle.com> 3855 M: Joel Becker <joel.becker@oracle.com>
3856 L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers) 3856 L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
3857 W: http://oss.oracle.com/projects/ocfs2/ 3857 W: http://oss.oracle.com/projects/ocfs2/
3858 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2.git 3858 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2.git
3859 S: Supported 3859 S: Supported
3860 F: Documentation/filesystems/ocfs2.txt 3860 F: Documentation/filesystems/ocfs2.txt
3861 F: Documentation/filesystems/dlmfs.txt 3861 F: Documentation/filesystems/dlmfs.txt
3862 F: fs/ocfs2/ 3862 F: fs/ocfs2/
3863 3863
3864 ORINOCO DRIVER 3864 ORINOCO DRIVER
3865 M: Pavel Roskin <proski@gnu.org> 3865 M: Pavel Roskin <proski@gnu.org>
3866 M: David Gibson <hermes@gibson.dropbear.id.au> 3866 M: David Gibson <hermes@gibson.dropbear.id.au>
3867 L: linux-wireless@vger.kernel.org 3867 L: linux-wireless@vger.kernel.org
3868 L: orinoco-users@lists.sourceforge.net 3868 L: orinoco-users@lists.sourceforge.net
3869 L: orinoco-devel@lists.sourceforge.net 3869 L: orinoco-devel@lists.sourceforge.net
3870 W: http://www.nongnu.org/orinoco/ 3870 W: http://www.nongnu.org/orinoco/
3871 S: Maintained 3871 S: Maintained
3872 F: drivers/net/wireless/orinoco/ 3872 F: drivers/net/wireless/orinoco/
3873 3873
3874 OSD LIBRARY and FILESYSTEM 3874 OSD LIBRARY and FILESYSTEM
3875 M: Boaz Harrosh <bharrosh@panasas.com> 3875 M: Boaz Harrosh <bharrosh@panasas.com>
3876 M: Benny Halevy <bhalevy@panasas.com> 3876 M: Benny Halevy <bhalevy@panasas.com>
3877 L: osd-dev@open-osd.org 3877 L: osd-dev@open-osd.org
3878 W: http://open-osd.org 3878 W: http://open-osd.org
3879 T: git git://git.open-osd.org/open-osd.git 3879 T: git git://git.open-osd.org/open-osd.git
3880 S: Maintained 3880 S: Maintained
3881 F: drivers/scsi/osd/ 3881 F: drivers/scsi/osd/
3882 F: include/scsi/osd_* 3882 F: include/scsi/osd_*
3883 F: fs/exofs/ 3883 F: fs/exofs/
3884 3884
3885 P54 WIRELESS DRIVER 3885 P54 WIRELESS DRIVER
3886 M: Michael Wu <flamingice@sourmilk.net> 3886 M: Michael Wu <flamingice@sourmilk.net>
3887 L: linux-wireless@vger.kernel.org 3887 L: linux-wireless@vger.kernel.org
3888 W: http://prism54.org 3888 W: http://prism54.org
3889 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git 3889 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
3890 S: Maintained 3890 S: Maintained
3891 F: drivers/net/wireless/p54/ 3891 F: drivers/net/wireless/p54/
3892 3892
3893 PA SEMI ETHERNET DRIVER 3893 PA SEMI ETHERNET DRIVER
3894 M: Olof Johansson <olof@lixom.net> 3894 M: Olof Johansson <olof@lixom.net>
3895 L: netdev@vger.kernel.org 3895 L: netdev@vger.kernel.org
3896 S: Maintained 3896 S: Maintained
3897 F: drivers/net/pasemi_mac.* 3897 F: drivers/net/pasemi_mac.*
3898 3898
3899 PA SEMI SMBUS DRIVER 3899 PA SEMI SMBUS DRIVER
3900 M: Olof Johansson <olof@lixom.net> 3900 M: Olof Johansson <olof@lixom.net>
3901 L: linux-i2c@vger.kernel.org 3901 L: linux-i2c@vger.kernel.org
3902 S: Maintained 3902 S: Maintained
3903 F: drivers/i2c/busses/i2c-pasemi.c 3903 F: drivers/i2c/busses/i2c-pasemi.c
3904 3904
3905 PANASONIC LAPTOP ACPI EXTRAS DRIVER 3905 PANASONIC LAPTOP ACPI EXTRAS DRIVER
3906 M: Harald Welte <laforge@gnumonks.org> 3906 M: Harald Welte <laforge@gnumonks.org>
3907 S: Maintained 3907 S: Maintained
3908 F: drivers/platform/x86/panasonic-laptop.c 3908 F: drivers/platform/x86/panasonic-laptop.c
3909 3909
3910 PANASONIC MN10300/AM33 PORT 3910 PANASONIC MN10300/AM33 PORT
3911 M: David Howells <dhowells@redhat.com> 3911 M: David Howells <dhowells@redhat.com>
3912 M: Koichi Yasutake <yasutake.koichi@jp.panasonic.com> 3912 M: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
3913 L: linux-am33-list@redhat.com (moderated for non-subscribers) 3913 L: linux-am33-list@redhat.com (moderated for non-subscribers)
3914 W: ftp://ftp.redhat.com/pub/redhat/gnupro/AM33/ 3914 W: ftp://ftp.redhat.com/pub/redhat/gnupro/AM33/
3915 S: Maintained 3915 S: Maintained
3916 F: Documentation/mn10300/ 3916 F: Documentation/mn10300/
3917 F: arch/mn10300/ 3917 F: arch/mn10300/
3918 3918
3919 PARALLEL PORT SUPPORT 3919 PARALLEL PORT SUPPORT
3920 L: linux-parport@lists.infradead.org (subscribers-only) 3920 L: linux-parport@lists.infradead.org (subscribers-only)
3921 S: Orphan 3921 S: Orphan
3922 F: drivers/parport/ 3922 F: drivers/parport/
3923 F: include/linux/parport*.h 3923 F: include/linux/parport*.h
3924 F: drivers/char/ppdev.c 3924 F: drivers/char/ppdev.c
3925 F: include/linux/ppdev.h 3925 F: include/linux/ppdev.h
3926 3926
3927 PARAVIRT_OPS INTERFACE 3927 PARAVIRT_OPS INTERFACE
3928 M: Jeremy Fitzhardinge <jeremy@xensource.com> 3928 M: Jeremy Fitzhardinge <jeremy@xensource.com>
3929 M: Chris Wright <chrisw@sous-sol.org> 3929 M: Chris Wright <chrisw@sous-sol.org>
3930 M: Alok Kataria <akataria@vmware.com> 3930 M: Alok Kataria <akataria@vmware.com>
3931 M: Rusty Russell <rusty@rustcorp.com.au> 3931 M: Rusty Russell <rusty@rustcorp.com.au>
3932 L: virtualization@lists.osdl.org 3932 L: virtualization@lists.osdl.org
3933 S: Supported 3933 S: Supported
3934 F: Documentation/ia64/paravirt_ops.txt 3934 F: Documentation/ia64/paravirt_ops.txt
3935 F: arch/*/kernel/paravirt* 3935 F: arch/*/kernel/paravirt*
3936 F: arch/*/include/asm/paravirt.h 3936 F: arch/*/include/asm/paravirt.h
3937 3937
3938 PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES 3938 PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES
3939 M: Tim Waugh <tim@cyberelk.net> 3939 M: Tim Waugh <tim@cyberelk.net>
3940 L: linux-parport@lists.infradead.org (subscribers-only) 3940 L: linux-parport@lists.infradead.org (subscribers-only)
3941 W: http://www.torque.net/linux-pp.html 3941 W: http://www.torque.net/linux-pp.html
3942 S: Maintained 3942 S: Maintained
3943 F: Documentation/blockdev/paride.txt 3943 F: Documentation/blockdev/paride.txt
3944 F: drivers/block/paride/ 3944 F: drivers/block/paride/
3945 3945
3946 PARISC ARCHITECTURE 3946 PARISC ARCHITECTURE
3947 M: Kyle McMartin <kyle@mcmartin.ca> 3947 M: Kyle McMartin <kyle@mcmartin.ca>
3948 M: Helge Deller <deller@gmx.de> 3948 M: Helge Deller <deller@gmx.de>
3949 L: linux-parisc@vger.kernel.org 3949 L: linux-parisc@vger.kernel.org
3950 W: http://www.parisc-linux.org/ 3950 W: http://www.parisc-linux.org/
3951 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git 3951 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
3952 S: Maintained 3952 S: Maintained
3953 F: arch/parisc/ 3953 F: arch/parisc/
3954 F: drivers/parisc/ 3954 F: drivers/parisc/
3955 3955
3956 PC87360 HARDWARE MONITORING DRIVER 3956 PC87360 HARDWARE MONITORING DRIVER
3957 M: Jim Cromie <jim.cromie@gmail.com> 3957 M: Jim Cromie <jim.cromie@gmail.com>
3958 L: lm-sensors@lm-sensors.org 3958 L: lm-sensors@lm-sensors.org
3959 S: Maintained 3959 S: Maintained
3960 F: Documentation/hwmon/pc87360 3960 F: Documentation/hwmon/pc87360
3961 F: drivers/hwmon/pc87360.c 3961 F: drivers/hwmon/pc87360.c
3962 3962
3963 PC8736x GPIO DRIVER 3963 PC8736x GPIO DRIVER
3964 M: Jim Cromie <jim.cromie@gmail.com> 3964 M: Jim Cromie <jim.cromie@gmail.com>
3965 S: Maintained 3965 S: Maintained
3966 F: drivers/char/pc8736x_gpio.c 3966 F: drivers/char/pc8736x_gpio.c
3967 3967
3968 PCA9532 LED DRIVER 3968 PCA9532 LED DRIVER
3969 M: Riku Voipio <riku.voipio@iki.fi> 3969 M: Riku Voipio <riku.voipio@iki.fi>
3970 S: Maintained 3970 S: Maintained
3971 F: drivers/leds/leds-pca9532.c 3971 F: drivers/leds/leds-pca9532.c
3972 F: include/linux/leds-pca9532.h 3972 F: include/linux/leds-pca9532.h
3973 3973
3974 PCA9564/PCA9665 I2C BUS DRIVER 3974 PCA9564/PCA9665 I2C BUS DRIVER
3975 M: Wolfram Sang <w.sang@pengutronix.de> 3975 M: Wolfram Sang <w.sang@pengutronix.de>
3976 L: linux-i2c@vger.kernel.org 3976 L: linux-i2c@vger.kernel.org
3977 S: Maintained 3977 S: Maintained
3978 F: drivers/i2c/algos/i2c-algo-pca.c 3978 F: drivers/i2c/algos/i2c-algo-pca.c
3979 F: drivers/i2c/busses/i2c-pca-* 3979 F: drivers/i2c/busses/i2c-pca-*
3980 F: include/linux/i2c-algo-pca.h 3980 F: include/linux/i2c-algo-pca.h
3981 F: include/linux/i2c-pca-platform.h 3981 F: include/linux/i2c-pca-platform.h
3982 3982
3983 PCI ERROR RECOVERY 3983 PCI ERROR RECOVERY
3984 M: Linas Vepstas <linas@austin.ibm.com> 3984 M: Linas Vepstas <linas@austin.ibm.com>
3985 L: linux-pci@vger.kernel.org 3985 L: linux-pci@vger.kernel.org
3986 S: Supported 3986 S: Supported
3987 F: Documentation/PCI/pci-error-recovery.txt 3987 F: Documentation/PCI/pci-error-recovery.txt
3988 F: Documentation/powerpc/eeh-pci-error-recovery.txt 3988 F: Documentation/powerpc/eeh-pci-error-recovery.txt
3989 3989
3990 PCI SUBSYSTEM 3990 PCI SUBSYSTEM
3991 M: Jesse Barnes <jbarnes@virtuousgeek.org> 3991 M: Jesse Barnes <jbarnes@virtuousgeek.org>
3992 L: linux-pci@vger.kernel.org 3992 L: linux-pci@vger.kernel.org
3993 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6.git 3993 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6.git
3994 S: Supported 3994 S: Supported
3995 F: Documentation/PCI/ 3995 F: Documentation/PCI/
3996 F: drivers/pci/ 3996 F: drivers/pci/
3997 F: include/linux/pci* 3997 F: include/linux/pci*
3998 3998
3999 PCIE HOTPLUG DRIVER 3999 PCIE HOTPLUG DRIVER
4000 M: Kristen Carlson Accardi <kristen.c.accardi@intel.com> 4000 M: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
4001 L: linux-pci@vger.kernel.org 4001 L: linux-pci@vger.kernel.org
4002 S: Supported 4002 S: Supported
4003 F: drivers/pci/pcie/ 4003 F: drivers/pci/pcie/
4004 4004
4005 PCMCIA SUBSYSTEM 4005 PCMCIA SUBSYSTEM
4006 P: Linux PCMCIA Team 4006 P: Linux PCMCIA Team
4007 L: linux-pcmcia@lists.infradead.org 4007 L: linux-pcmcia@lists.infradead.org
4008 W: http://lists.infradead.org/mailman/listinfo/linux-pcmcia 4008 W: http://lists.infradead.org/mailman/listinfo/linux-pcmcia
4009 T: git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git 4009 T: git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git
4010 S: Maintained 4010 S: Maintained
4011 F: Documentation/pcmcia/ 4011 F: Documentation/pcmcia/
4012 F: drivers/pcmcia/ 4012 F: drivers/pcmcia/
4013 F: include/pcmcia/ 4013 F: include/pcmcia/
4014 4014
4015 PCNET32 NETWORK DRIVER 4015 PCNET32 NETWORK DRIVER
4016 M: Don Fry <pcnet32@verizon.net> 4016 M: Don Fry <pcnet32@verizon.net>
4017 L: netdev@vger.kernel.org 4017 L: netdev@vger.kernel.org
4018 S: Maintained 4018 S: Maintained
4019 F: drivers/net/pcnet32.c 4019 F: drivers/net/pcnet32.c
4020 4020
4021 PER-TASK DELAY ACCOUNTING 4021 PER-TASK DELAY ACCOUNTING
4022 M: Balbir Singh <balbir@linux.vnet.ibm.com> 4022 M: Balbir Singh <balbir@linux.vnet.ibm.com>
4023 S: Maintained 4023 S: Maintained
4024 F: include/linux/delayacct.h 4024 F: include/linux/delayacct.h
4025 F: kernel/delayacct.c 4025 F: kernel/delayacct.c
4026 4026
4027 PERFORMANCE EVENTS SUBSYSTEM 4027 PERFORMANCE EVENTS SUBSYSTEM
4028 M: Peter Zijlstra <a.p.zijlstra@chello.nl> 4028 M: Peter Zijlstra <a.p.zijlstra@chello.nl>
4029 M: Paul Mackerras <paulus@samba.org> 4029 M: Paul Mackerras <paulus@samba.org>
4030 M: Ingo Molnar <mingo@elte.hu> 4030 M: Ingo Molnar <mingo@elte.hu>
4031 S: Supported 4031 S: Supported
4032 4032
4033 PERSONALITY HANDLING 4033 PERSONALITY HANDLING
4034 M: Christoph Hellwig <hch@infradead.org> 4034 M: Christoph Hellwig <hch@infradead.org>
4035 L: linux-abi-devel@lists.sourceforge.net 4035 L: linux-abi-devel@lists.sourceforge.net
4036 S: Maintained 4036 S: Maintained
4037 F: include/linux/personality.h 4037 F: include/linux/personality.h
4038 4038
4039 PHRAM MTD DRIVER 4039 PHRAM MTD DRIVER
4040 M: Joern Engel <joern@lazybastard.org> 4040 M: Joern Engel <joern@lazybastard.org>
4041 L: linux-mtd@lists.infradead.org 4041 L: linux-mtd@lists.infradead.org
4042 S: Maintained 4042 S: Maintained
4043 F: drivers/mtd/devices/phram.c 4043 F: drivers/mtd/devices/phram.c
4044 4044
4045 PKTCDVD DRIVER 4045 PKTCDVD DRIVER
4046 M: Peter Osterlund <petero2@telia.com> 4046 M: Peter Osterlund <petero2@telia.com>
4047 S: Maintained 4047 S: Maintained
4048 F: drivers/block/pktcdvd.c 4048 F: drivers/block/pktcdvd.c
4049 F: include/linux/pktcdvd.h 4049 F: include/linux/pktcdvd.h
4050 4050
4051 PMC SIERRA MaxRAID DRIVER 4051 PMC SIERRA MaxRAID DRIVER
4052 M: Anil Ravindranath <anil_ravindranath@pmc-sierra.com> 4052 M: Anil Ravindranath <anil_ravindranath@pmc-sierra.com>
4053 L: linux-scsi@vger.kernel.org 4053 L: linux-scsi@vger.kernel.org
4054 W: http://www.pmc-sierra.com/ 4054 W: http://www.pmc-sierra.com/
4055 S: Supported 4055 S: Supported
4056 F: drivers/scsi/pmcraid.* 4056 F: drivers/scsi/pmcraid.*
4057 4057
4058 POSIX CLOCKS and TIMERS 4058 POSIX CLOCKS and TIMERS
4059 M: Thomas Gleixner <tglx@linutronix.de> 4059 M: Thomas Gleixner <tglx@linutronix.de>
4060 S: Supported 4060 S: Supported
4061 F: fs/timerfd.c 4061 F: fs/timerfd.c
4062 F: include/linux/timer* 4062 F: include/linux/timer*
4063 F: kernel/*timer* 4063 F: kernel/*timer*
4064 4064
4065 POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS 4065 POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS
4066 M: Anton Vorontsov <cbou@mail.ru> 4066 M: Anton Vorontsov <cbou@mail.ru>
4067 M: David Woodhouse <dwmw2@infradead.org> 4067 M: David Woodhouse <dwmw2@infradead.org>
4068 T: git git://git.infradead.org/battery-2.6.git 4068 T: git git://git.infradead.org/battery-2.6.git
4069 S: Maintained 4069 S: Maintained
4070 F: include/linux/power_supply.h 4070 F: include/linux/power_supply.h
4071 F: drivers/power/power_supply* 4071 F: drivers/power/power_supply*
4072 4072
4073 PNP SUPPORT 4073 PNP SUPPORT
4074 M: Adam Belay <abelay@mit.edu> 4074 M: Adam Belay <abelay@mit.edu>
4075 M: Bjorn Helgaas <bjorn.helgaas@hp.com> 4075 M: Bjorn Helgaas <bjorn.helgaas@hp.com>
4076 S: Maintained 4076 S: Maintained
4077 F: drivers/pnp/ 4077 F: drivers/pnp/
4078 4078
4079 PNXxxxx I2C DRIVER 4079 PNXxxxx I2C DRIVER
4080 M: Vitaly Wool <vitalywool@gmail.com> 4080 M: Vitaly Wool <vitalywool@gmail.com>
4081 L: linux-i2c@vger.kernel.org 4081 L: linux-i2c@vger.kernel.org
4082 S: Maintained 4082 S: Maintained
4083 F: drivers/i2c/busses/i2c-pnx.c 4083 F: drivers/i2c/busses/i2c-pnx.c
4084 4084
4085 PPP PROTOCOL DRIVERS AND COMPRESSORS 4085 PPP PROTOCOL DRIVERS AND COMPRESSORS
4086 M: Paul Mackerras <paulus@samba.org> 4086 M: Paul Mackerras <paulus@samba.org>
4087 L: linux-ppp@vger.kernel.org 4087 L: linux-ppp@vger.kernel.org
4088 S: Maintained 4088 S: Maintained
4089 F: drivers/net/ppp_* 4089 F: drivers/net/ppp_*
4090 4090
4091 PPP OVER ATM (RFC 2364) 4091 PPP OVER ATM (RFC 2364)
4092 M: Mitchell Blank Jr <mitch@sfgoth.com> 4092 M: Mitchell Blank Jr <mitch@sfgoth.com>
4093 S: Maintained 4093 S: Maintained
4094 F: net/atm/pppoatm.c 4094 F: net/atm/pppoatm.c
4095 F: include/linux/atmppp.h 4095 F: include/linux/atmppp.h
4096 4096
4097 PPP OVER ETHERNET 4097 PPP OVER ETHERNET
4098 M: Michal Ostrowski <mostrows@earthlink.net> 4098 M: Michal Ostrowski <mostrows@earthlink.net>
4099 S: Maintained 4099 S: Maintained
4100 F: drivers/net/pppoe.c 4100 F: drivers/net/pppoe.c
4101 F: drivers/net/pppox.c 4101 F: drivers/net/pppox.c
4102 4102
4103 PPP OVER L2TP 4103 PPP OVER L2TP
4104 M: James Chapman <jchapman@katalix.com> 4104 M: James Chapman <jchapman@katalix.com>
4105 S: Maintained 4105 S: Maintained
4106 F: drivers/net/pppol2tp.c 4106 F: drivers/net/pppol2tp.c
4107 F: include/linux/if_pppol2tp.h 4107 F: include/linux/if_pppol2tp.h
4108 4108
4109 PPS SUPPORT 4109 PPS SUPPORT
4110 M: Rodolfo Giometti <giometti@enneenne.com> 4110 M: Rodolfo Giometti <giometti@enneenne.com>
4111 W: http://wiki.enneenne.com/index.php/LinuxPPS_support 4111 W: http://wiki.enneenne.com/index.php/LinuxPPS_support
4112 L: linuxpps@ml.enneenne.com (subscribers-only) 4112 L: linuxpps@ml.enneenne.com (subscribers-only)
4113 S: Maintained 4113 S: Maintained
4114 F: Documentation/pps/ 4114 F: Documentation/pps/
4115 F: drivers/pps/ 4115 F: drivers/pps/
4116 F: include/linux/pps*.h 4116 F: include/linux/pps*.h
4117 4117
4118 PREEMPTIBLE KERNEL 4118 PREEMPTIBLE KERNEL
4119 M: Robert Love <rml@tech9.net> 4119 M: Robert Love <rml@tech9.net>
4120 L: kpreempt-tech@lists.sourceforge.net 4120 L: kpreempt-tech@lists.sourceforge.net
4121 W: ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel 4121 W: ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
4122 S: Supported 4122 S: Supported
4123 F: Documentation/preempt-locking.txt 4123 F: Documentation/preempt-locking.txt
4124 F: include/linux/preempt.h 4124 F: include/linux/preempt.h
4125 4125
4126 PRISM54 WIRELESS DRIVER 4126 PRISM54 WIRELESS DRIVER
4127 M: "Luis R. Rodriguez" <mcgrof@gmail.com> 4127 M: "Luis R. Rodriguez" <mcgrof@gmail.com>
4128 L: linux-wireless@vger.kernel.org 4128 L: linux-wireless@vger.kernel.org
4129 W: http://prism54.org 4129 W: http://prism54.org
4130 S: Maintained 4130 S: Maintained
4131 F: drivers/net/wireless/prism54/ 4131 F: drivers/net/wireless/prism54/
4132 4132
4133 PROMISE DC4030 CACHING DISK CONTROLLER DRIVER 4133 PROMISE DC4030 CACHING DISK CONTROLLER DRIVER
4134 M: Peter Denison <promise@pnd-pc.demon.co.uk> 4134 M: Peter Denison <promise@pnd-pc.demon.co.uk>
4135 W: http://www.pnd-pc.demon.co.uk/promise/ 4135 W: http://www.pnd-pc.demon.co.uk/promise/
4136 S: Maintained 4136 S: Maintained
4137 4137
4138 PROMISE SATA TX2/TX4 CONTROLLER LIBATA DRIVER 4138 PROMISE SATA TX2/TX4 CONTROLLER LIBATA DRIVER
4139 M: Mikael Pettersson <mikpe@it.uu.se> 4139 M: Mikael Pettersson <mikpe@it.uu.se>
4140 L: linux-ide@vger.kernel.org 4140 L: linux-ide@vger.kernel.org
4141 S: Maintained 4141 S: Maintained
4142 F: drivers/ata/sata_promise.* 4142 F: drivers/ata/sata_promise.*
4143 4143
4144 PS3 NETWORK SUPPORT 4144 PS3 NETWORK SUPPORT
4145 M: Geoff Levand <geoffrey.levand@am.sony.com> 4145 M: Geoff Levand <geoffrey.levand@am.sony.com>
4146 L: netdev@vger.kernel.org 4146 L: netdev@vger.kernel.org
4147 L: cbe-oss-dev@ozlabs.org 4147 L: cbe-oss-dev@ozlabs.org
4148 S: Supported 4148 S: Supported
4149 F: drivers/net/ps3_gelic_net.* 4149 F: drivers/net/ps3_gelic_net.*
4150 4150
4151 PS3 PLATFORM SUPPORT 4151 PS3 PLATFORM SUPPORT
4152 M: Geoff Levand <geoffrey.levand@am.sony.com> 4152 M: Geoff Levand <geoffrey.levand@am.sony.com>
4153 L: linuxppc-dev@ozlabs.org 4153 L: linuxppc-dev@ozlabs.org
4154 L: cbe-oss-dev@ozlabs.org 4154 L: cbe-oss-dev@ozlabs.org
4155 S: Supported 4155 S: Supported
4156 F: arch/powerpc/boot/ps3* 4156 F: arch/powerpc/boot/ps3*
4157 F: arch/powerpc/include/asm/lv1call.h 4157 F: arch/powerpc/include/asm/lv1call.h
4158 F: arch/powerpc/include/asm/ps3*.h 4158 F: arch/powerpc/include/asm/ps3*.h
4159 F: arch/powerpc/platforms/ps3/ 4159 F: arch/powerpc/platforms/ps3/
4160 F: drivers/*/ps3* 4160 F: drivers/*/ps3*
4161 F: drivers/ps3/ 4161 F: drivers/ps3/
4162 F: drivers/rtc/rtc-ps3.c 4162 F: drivers/rtc/rtc-ps3.c
4163 F: drivers/usb/host/*ps3.c 4163 F: drivers/usb/host/*ps3.c
4164 F: sound/ppc/snd_ps3* 4164 F: sound/ppc/snd_ps3*
4165 4165
4166 PS3VRAM DRIVER 4166 PS3VRAM DRIVER
4167 M: Jim Paris <jim@jtan.com> 4167 M: Jim Paris <jim@jtan.com>
4168 L: cbe-oss-dev@ozlabs.org 4168 L: cbe-oss-dev@ozlabs.org
4169 S: Maintained 4169 S: Maintained
4170 4170
4171 PTRACE SUPPORT 4171 PTRACE SUPPORT
4172 M: Roland McGrath <roland@redhat.com> 4172 M: Roland McGrath <roland@redhat.com>
4173 M: Oleg Nesterov <oleg@redhat.com> 4173 M: Oleg Nesterov <oleg@redhat.com>
4174 S: Maintained 4174 S: Maintained
4175 F: include/asm-generic/syscall.h 4175 F: include/asm-generic/syscall.h
4176 F: include/linux/ptrace.h 4176 F: include/linux/ptrace.h
4177 F: include/linux/regset.h 4177 F: include/linux/regset.h
4178 F: include/linux/tracehook.h 4178 F: include/linux/tracehook.h
4179 F: kernel/ptrace.c 4179 F: kernel/ptrace.c
4180 4180
4181 PVRUSB2 VIDEO4LINUX DRIVER 4181 PVRUSB2 VIDEO4LINUX DRIVER
4182 M: Mike Isely <isely@pobox.com> 4182 M: Mike Isely <isely@pobox.com>
4183 L: pvrusb2@isely.net (subscribers-only) 4183 L: pvrusb2@isely.net (subscribers-only)
4184 L: linux-media@vger.kernel.org 4184 L: linux-media@vger.kernel.org
4185 W: http://www.isely.net/pvrusb2/ 4185 W: http://www.isely.net/pvrusb2/
4186 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 4186 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
4187 S: Maintained 4187 S: Maintained
4188 F: Documentation/video4linux/README.pvrusb2 4188 F: Documentation/video4linux/README.pvrusb2
4189 F: drivers/media/video/pvrusb2/ 4189 F: drivers/media/video/pvrusb2/
4190 4190
4191 PXA2xx/PXA3xx SUPPORT 4191 PXA2xx/PXA3xx SUPPORT
4192 M: Eric Miao <eric.y.miao@gmail.com> 4192 M: Eric Miao <eric.y.miao@gmail.com>
4193 M: Russell King <linux@arm.linux.org.uk> 4193 M: Russell King <linux@arm.linux.org.uk>
4194 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 4194 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
4195 S: Maintained 4195 S: Maintained
4196 F: arch/arm/mach-pxa/ 4196 F: arch/arm/mach-pxa/
4197 F: drivers/pcmcia/pxa2xx* 4197 F: drivers/pcmcia/pxa2xx*
4198 F: drivers/spi/pxa2xx* 4198 F: drivers/spi/pxa2xx*
4199 F: drivers/usb/gadget/pxa2* 4199 F: drivers/usb/gadget/pxa2*
4200 F: include/sound/pxa2xx-lib.h 4200 F: include/sound/pxa2xx-lib.h
4201 F: sound/arm/pxa* 4201 F: sound/arm/pxa*
4202 F: sound/soc/pxa 4202 F: sound/soc/pxa
4203 4203
4204 PXA168 SUPPORT 4204 PXA168 SUPPORT
4205 M: Eric Miao <eric.y.miao@gmail.com> 4205 M: Eric Miao <eric.y.miao@gmail.com>
4206 M: Jason Chagas <jason.chagas@marvell.com> 4206 M: Jason Chagas <jason.chagas@marvell.com>
4207 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 4207 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
4208 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git 4208 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
4209 S: Maintained 4209 S: Maintained
4210 4210
4211 PXA910 SUPPORT 4211 PXA910 SUPPORT
4212 M: Eric Miao <eric.y.miao@gmail.com> 4212 M: Eric Miao <eric.y.miao@gmail.com>
4213 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 4213 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
4214 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git 4214 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
4215 S: Maintained 4215 S: Maintained
4216 4216
4217 PXA MMCI DRIVER 4217 PXA MMCI DRIVER
4218 S: Orphan 4218 S: Orphan
4219 4219
4220 PXA RTC DRIVER 4220 PXA RTC DRIVER
4221 M: Robert Jarzmik <robert.jarzmik@free.fr> 4221 M: Robert Jarzmik <robert.jarzmik@free.fr>
4222 L: rtc-linux@googlegroups.com 4222 L: rtc-linux@googlegroups.com
4223 S: Maintained 4223 S: Maintained
4224 4224
4225 QLOGIC QLA2XXX FC-SCSI DRIVER 4225 QLOGIC QLA2XXX FC-SCSI DRIVER
4226 M: Andrew Vasquez <andrew.vasquez@qlogic.com> 4226 M: Andrew Vasquez <andrew.vasquez@qlogic.com>
4227 M: linux-driver@qlogic.com 4227 M: linux-driver@qlogic.com
4228 L: linux-scsi@vger.kernel.org 4228 L: linux-scsi@vger.kernel.org
4229 S: Supported 4229 S: Supported
4230 F: Documentation/scsi/LICENSE.qla2xxx 4230 F: Documentation/scsi/LICENSE.qla2xxx
4231 F: drivers/scsi/qla2xxx/ 4231 F: drivers/scsi/qla2xxx/
4232 4232
4233 QLOGIC QLA3XXX NETWORK DRIVER 4233 QLOGIC QLA3XXX NETWORK DRIVER
4234 M: Ron Mercer <ron.mercer@qlogic.com> 4234 M: Ron Mercer <ron.mercer@qlogic.com>
4235 M: linux-driver@qlogic.com 4235 M: linux-driver@qlogic.com
4236 L: netdev@vger.kernel.org 4236 L: netdev@vger.kernel.org
4237 S: Supported 4237 S: Supported
4238 F: Documentation/networking/LICENSE.qla3xxx 4238 F: Documentation/networking/LICENSE.qla3xxx
4239 F: drivers/net/qla3xxx.* 4239 F: drivers/net/qla3xxx.*
4240 4240
4241 QLOGIC QLGE 10Gb ETHERNET DRIVER 4241 QLOGIC QLGE 10Gb ETHERNET DRIVER
4242 M: Ron Mercer <ron.mercer@qlogic.com> 4242 M: Ron Mercer <ron.mercer@qlogic.com>
4243 M: linux-driver@qlogic.com 4243 M: linux-driver@qlogic.com
4244 L: netdev@vger.kernel.org 4244 L: netdev@vger.kernel.org
4245 S: Supported 4245 S: Supported
4246 F: drivers/net/qlge/ 4246 F: drivers/net/qlge/
4247 4247
4248 QNX4 FILESYSTEM 4248 QNX4 FILESYSTEM
4249 M: Anders Larsen <al@alarsen.net> 4249 M: Anders Larsen <al@alarsen.net>
4250 W: http://www.alarsen.net/linux/qnx4fs/ 4250 W: http://www.alarsen.net/linux/qnx4fs/
4251 S: Maintained 4251 S: Maintained
4252 F: fs/qnx4/ 4252 F: fs/qnx4/
4253 F: include/linux/qnx4_fs.h 4253 F: include/linux/qnx4_fs.h
4254 F: include/linux/qnxtypes.h 4254 F: include/linux/qnxtypes.h
4255 4255
4256 RADEON FRAMEBUFFER DISPLAY DRIVER 4256 RADEON FRAMEBUFFER DISPLAY DRIVER
4257 M: Benjamin Herrenschmidt <benh@kernel.crashing.org> 4257 M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
4258 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 4258 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
4259 S: Maintained 4259 S: Maintained
4260 F: drivers/video/aty/radeon* 4260 F: drivers/video/aty/radeon*
4261 F: include/linux/radeonfb.h 4261 F: include/linux/radeonfb.h
4262 4262
4263 RAGE128 FRAMEBUFFER DISPLAY DRIVER 4263 RAGE128 FRAMEBUFFER DISPLAY DRIVER
4264 M: Paul Mackerras <paulus@samba.org> 4264 M: Paul Mackerras <paulus@samba.org>
4265 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 4265 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
4266 S: Maintained 4266 S: Maintained
4267 F: drivers/video/aty/aty128fb.c 4267 F: drivers/video/aty/aty128fb.c
4268 4268
4269 RALINK RT2X00 WIRELESS LAN DRIVER 4269 RALINK RT2X00 WIRELESS LAN DRIVER
4270 P: rt2x00 project 4270 P: rt2x00 project
4271 L: linux-wireless@vger.kernel.org 4271 L: linux-wireless@vger.kernel.org
4272 L: users@rt2x00.serialmonkey.com 4272 L: users@rt2x00.serialmonkey.com
4273 W: http://rt2x00.serialmonkey.com/ 4273 W: http://rt2x00.serialmonkey.com/
4274 S: Maintained 4274 S: Maintained
4275 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git 4275 T: git git://git.kernel.org/pub/scm/linux/kernel/git/ivd/rt2x00.git
4276 F: drivers/net/wireless/rt2x00/ 4276 F: drivers/net/wireless/rt2x00/
4277 4277
4278 RAMDISK RAM BLOCK DEVICE DRIVER 4278 RAMDISK RAM BLOCK DEVICE DRIVER
4279 M: Nick Piggin <npiggin@suse.de> 4279 M: Nick Piggin <npiggin@suse.de>
4280 S: Maintained 4280 S: Maintained
4281 F: Documentation/blockdev/ramdisk.txt 4281 F: Documentation/blockdev/ramdisk.txt
4282 F: drivers/block/brd.c 4282 F: drivers/block/brd.c
4283 4283
4284 RANDOM NUMBER DRIVER 4284 RANDOM NUMBER DRIVER
4285 M: Matt Mackall <mpm@selenic.com> 4285 M: Matt Mackall <mpm@selenic.com>
4286 S: Maintained 4286 S: Maintained
4287 F: drivers/char/random.c 4287 F: drivers/char/random.c
4288 4288
4289 RAPIDIO SUBSYSTEM 4289 RAPIDIO SUBSYSTEM
4290 M: Matt Porter <mporter@kernel.crashing.org> 4290 M: Matt Porter <mporter@kernel.crashing.org>
4291 S: Maintained 4291 S: Maintained
4292 F: drivers/rapidio/ 4292 F: drivers/rapidio/
4293 4293
4294 RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER 4294 RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER
4295 M: Corey Thomas <coreythomas@charter.net> 4295 M: Corey Thomas <coreythomas@charter.net>
4296 L: linux-wireless@vger.kernel.org 4296 L: linux-wireless@vger.kernel.org
4297 S: Maintained 4297 S: Maintained
4298 F: drivers/net/wireless/ray* 4298 F: drivers/net/wireless/ray*
4299 4299
4300 RCUTORTURE MODULE 4300 RCUTORTURE MODULE
4301 M: Josh Triplett <josh@freedesktop.org> 4301 M: Josh Triplett <josh@freedesktop.org>
4302 M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> 4302 M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
4303 S: Maintained 4303 S: Maintained
4304 F: Documentation/RCU/torture.txt 4304 F: Documentation/RCU/torture.txt
4305 F: kernel/rcutorture.c 4305 F: kernel/rcutorture.c
4306 4306
4307 RDC R-321X SoC 4307 RDC R-321X SoC
4308 M: Florian Fainelli <florian@openwrt.org> 4308 M: Florian Fainelli <florian@openwrt.org>
4309 S: Maintained 4309 S: Maintained
4310 4310
4311 RDC R6040 FAST ETHERNET DRIVER 4311 RDC R6040 FAST ETHERNET DRIVER
4312 M: Florian Fainelli <florian@openwrt.org> 4312 M: Florian Fainelli <florian@openwrt.org>
4313 L: netdev@vger.kernel.org 4313 L: netdev@vger.kernel.org
4314 S: Maintained 4314 S: Maintained
4315 F: drivers/net/r6040.c 4315 F: drivers/net/r6040.c
4316 4316
4317 RDS - RELIABLE DATAGRAM SOCKETS 4317 RDS - RELIABLE DATAGRAM SOCKETS
4318 M: Andy Grover <andy.grover@oracle.com> 4318 M: Andy Grover <andy.grover@oracle.com>
4319 L: rds-devel@oss.oracle.com (moderated for non-subscribers) 4319 L: rds-devel@oss.oracle.com (moderated for non-subscribers)
4320 S: Supported 4320 S: Supported
4321 F: net/rds/ 4321 F: net/rds/
4322 4322
4323 READ-COPY UPDATE (RCU) 4323 READ-COPY UPDATE (RCU)
4324 M: Dipankar Sarma <dipankar@in.ibm.com> 4324 M: Dipankar Sarma <dipankar@in.ibm.com>
4325 M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> 4325 M: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
4326 W: http://www.rdrop.com/users/paulmck/rclock/ 4326 W: http://www.rdrop.com/users/paulmck/rclock/
4327 S: Supported 4327 S: Supported
4328 F: Documentation/RCU/rcu.txt 4328 F: Documentation/RCU/rcu.txt
4329 F: Documentation/RCU/rcuref.txt 4329 F: Documentation/RCU/rcuref.txt
4330 F: include/linux/rcupdate.h 4330 F: include/linux/rcupdate.h
4331 F: include/linux/srcu.h 4331 F: include/linux/srcu.h
4332 F: kernel/rcupdate.c 4332 F: kernel/rcupdate.c
4333 4333
4334 REAL TIME CLOCK DRIVER 4334 REAL TIME CLOCK DRIVER
4335 M: Paul Gortmaker <p_gortmaker@yahoo.com> 4335 M: Paul Gortmaker <p_gortmaker@yahoo.com>
4336 S: Maintained 4336 S: Maintained
4337 F: Documentation/rtc.txt 4337 F: Documentation/rtc.txt
4338 F: drivers/rtc/ 4338 F: drivers/rtc/
4339 F: include/linux/rtc.h 4339 F: include/linux/rtc.h
4340 4340
4341 REAL TIME CLOCK (RTC) SUBSYSTEM 4341 REAL TIME CLOCK (RTC) SUBSYSTEM
4342 M: Alessandro Zummo <a.zummo@towertech.it> 4342 M: Alessandro Zummo <a.zummo@towertech.it>
4343 L: rtc-linux@googlegroups.com 4343 L: rtc-linux@googlegroups.com
4344 S: Maintained 4344 S: Maintained
4345 F: Documentation/rtc.txt 4345 F: Documentation/rtc.txt
4346 F: drivers/rtc/ 4346 F: drivers/rtc/
4347 F: include/linux/rtc.h 4347 F: include/linux/rtc.h
4348 4348
4349 REISERFS FILE SYSTEM 4349 REISERFS FILE SYSTEM
4350 L: reiserfs-devel@vger.kernel.org 4350 L: reiserfs-devel@vger.kernel.org
4351 S: Supported 4351 S: Supported
4352 F: fs/reiserfs/ 4352 F: fs/reiserfs/
4353 4353
4354 RFKILL 4354 RFKILL
4355 M: Johannes Berg <johannes@sipsolutions.net> 4355 M: Johannes Berg <johannes@sipsolutions.net>
4356 L: linux-wireless@vger.kernel.org 4356 L: linux-wireless@vger.kernel.org
4357 S: Maintained 4357 S: Maintained
4358 F Documentation/rfkill.txt 4358 F Documentation/rfkill.txt
4359 F: net/rfkill/ 4359 F: net/rfkill/
4360 4360
4361 RISCOM8 DRIVER 4361 RISCOM8 DRIVER
4362 S: Orphan 4362 S: Orphan
4363 F: Documentation/serial/riscom8.txt 4363 F: Documentation/serial/riscom8.txt
4364 F: drivers/char/riscom8* 4364 F: drivers/char/riscom8*
4365 4365
4366 ROCKETPORT DRIVER 4366 ROCKETPORT DRIVER
4367 P: Comtrol Corp. 4367 P: Comtrol Corp.
4368 W: http://www.comtrol.com 4368 W: http://www.comtrol.com
4369 S: Maintained 4369 S: Maintained
4370 F: Documentation/serial/rocket.txt 4370 F: Documentation/serial/rocket.txt
4371 F: drivers/char/rocket* 4371 F: drivers/char/rocket*
4372 4372
4373 ROSE NETWORK LAYER 4373 ROSE NETWORK LAYER
4374 M: Ralf Baechle <ralf@linux-mips.org> 4374 M: Ralf Baechle <ralf@linux-mips.org>
4375 L: linux-hams@vger.kernel.org 4375 L: linux-hams@vger.kernel.org
4376 W: http://www.linux-ax25.org/ 4376 W: http://www.linux-ax25.org/
4377 S: Maintained 4377 S: Maintained
4378 F: include/linux/rose.h 4378 F: include/linux/rose.h
4379 F: include/net/rose.h 4379 F: include/net/rose.h
4380 F: net/rose/ 4380 F: net/rose/
4381 4381
4382 RTL8180 WIRELESS DRIVER 4382 RTL8180 WIRELESS DRIVER
4383 M: "John W. Linville" <linville@tuxdriver.com> 4383 M: "John W. Linville" <linville@tuxdriver.com>
4384 L: linux-wireless@vger.kernel.org 4384 L: linux-wireless@vger.kernel.org
4385 W: http://linuxwireless.org/ 4385 W: http://linuxwireless.org/
4386 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git 4386 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
4387 S: Maintained 4387 S: Maintained
4388 F: drivers/net/wireless/rtl818x/rtl8180* 4388 F: drivers/net/wireless/rtl818x/rtl8180*
4389 4389
4390 RTL8187 WIRELESS DRIVER 4390 RTL8187 WIRELESS DRIVER
4391 M: Herton Ronaldo Krzesinski <herton@mandriva.com.br> 4391 M: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
4392 M: Hin-Tak Leung <htl10@users.sourceforge.net> 4392 M: Hin-Tak Leung <htl10@users.sourceforge.net>
4393 M: Larry Finger <Larry.Finger@lwfinger.net> 4393 M: Larry Finger <Larry.Finger@lwfinger.net>
4394 L: linux-wireless@vger.kernel.org 4394 L: linux-wireless@vger.kernel.org
4395 W: http://linuxwireless.org/ 4395 W: http://linuxwireless.org/
4396 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git 4396 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
4397 S: Maintained 4397 S: Maintained
4398 F: drivers/net/wireless/rtl818x/rtl8187* 4398 F: drivers/net/wireless/rtl818x/rtl8187*
4399 4399
4400 S3 SAVAGE FRAMEBUFFER DRIVER 4400 S3 SAVAGE FRAMEBUFFER DRIVER
4401 M: Antonino Daplas <adaplas@gmail.com> 4401 M: Antonino Daplas <adaplas@gmail.com>
4402 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 4402 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
4403 S: Maintained 4403 S: Maintained
4404 F: drivers/video/savage/ 4404 F: drivers/video/savage/
4405 4405
4406 S390 4406 S390
4407 M: Martin Schwidefsky <schwidefsky@de.ibm.com> 4407 M: Martin Schwidefsky <schwidefsky@de.ibm.com>
4408 M: Heiko Carstens <heiko.carstens@de.ibm.com> 4408 M: Heiko Carstens <heiko.carstens@de.ibm.com>
4409 M: linux390@de.ibm.com 4409 M: linux390@de.ibm.com
4410 L: linux-s390@vger.kernel.org 4410 L: linux-s390@vger.kernel.org
4411 W: http://www.ibm.com/developerworks/linux/linux390/ 4411 W: http://www.ibm.com/developerworks/linux/linux390/
4412 S: Supported 4412 S: Supported
4413 F: arch/s390/ 4413 F: arch/s390/
4414 4414
4415 S390 NETWORK DRIVERS 4415 S390 NETWORK DRIVERS
4416 M: Ursula Braun <ursula.braun@de.ibm.com> 4416 M: Ursula Braun <ursula.braun@de.ibm.com>
4417 M: Frank Blaschka <blaschka@linux.vnet.ibm.com> 4417 M: Frank Blaschka <blaschka@linux.vnet.ibm.com>
4418 M: linux390@de.ibm.com 4418 M: linux390@de.ibm.com
4419 L: linux-s390@vger.kernel.org 4419 L: linux-s390@vger.kernel.org
4420 W: http://www.ibm.com/developerworks/linux/linux390/ 4420 W: http://www.ibm.com/developerworks/linux/linux390/
4421 S: Supported 4421 S: Supported
4422 F: drivers/s390/net/ 4422 F: drivers/s390/net/
4423 4423
4424 S390 ZCRYPT DRIVER 4424 S390 ZCRYPT DRIVER
4425 M: Felix Beck <felix.beck@de.ibm.com> 4425 M: Felix Beck <felix.beck@de.ibm.com>
4426 M: Ralph Wuerthner <ralph.wuerthner@de.ibm.com> 4426 M: Ralph Wuerthner <ralph.wuerthner@de.ibm.com>
4427 M: linux390@de.ibm.com 4427 M: linux390@de.ibm.com
4428 L: linux-s390@vger.kernel.org 4428 L: linux-s390@vger.kernel.org
4429 S: Supported 4429 S: Supported
4430 F: drivers/s390/crypto/ 4430 F: drivers/s390/crypto/
4431 4431
4432 S390 ZFCP DRIVER 4432 S390 ZFCP DRIVER
4433 M: Christof Schmitt <christof.schmitt@de.ibm.com> 4433 M: Christof Schmitt <christof.schmitt@de.ibm.com>
4434 M: Martin Peschke <mp3@de.ibm.com> 4434 M: Martin Peschke <mp3@de.ibm.com>
4435 M: linux390@de.ibm.com 4435 M: linux390@de.ibm.com
4436 L: linux-s390@vger.kernel.org 4436 L: linux-s390@vger.kernel.org
4437 W: http://www.ibm.com/developerworks/linux/linux390/ 4437 W: http://www.ibm.com/developerworks/linux/linux390/
4438 S: Supported 4438 S: Supported
4439 F: Documentation/s390/zfcpdump.txt 4439 F: Documentation/s390/zfcpdump.txt
4440 F: drivers/s390/scsi/zfcp_* 4440 F: drivers/s390/scsi/zfcp_*
4441 4441
4442 S390 IUCV NETWORK LAYER 4442 S390 IUCV NETWORK LAYER
4443 M: Ursula Braun <ursula.braun@de.ibm.com> 4443 M: Ursula Braun <ursula.braun@de.ibm.com>
4444 M: linux390@de.ibm.com 4444 M: linux390@de.ibm.com
4445 L: linux-s390@vger.kernel.org 4445 L: linux-s390@vger.kernel.org
4446 W: http://www.ibm.com/developerworks/linux/linux390/ 4446 W: http://www.ibm.com/developerworks/linux/linux390/
4447 S: Supported 4447 S: Supported
4448 F: drivers/s390/net/*iucv* 4448 F: drivers/s390/net/*iucv*
4449 F: include/net/iucv/ 4449 F: include/net/iucv/
4450 F: net/iucv/ 4450 F: net/iucv/
4451 4451
4452 S3C24XX SD/MMC Driver 4452 S3C24XX SD/MMC Driver
4453 M: Ben Dooks <ben-linux@fluff.org> 4453 M: Ben Dooks <ben-linux@fluff.org>
4454 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 4454 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
4455 S: Supported 4455 S: Supported
4456 F: drivers/mmc/host/s3cmci.* 4456 F: drivers/mmc/host/s3cmci.*
4457 4457
4458 SAA7146 VIDEO4LINUX-2 DRIVER 4458 SAA7146 VIDEO4LINUX-2 DRIVER
4459 M: Michael Hunold <michael@mihu.de> 4459 M: Michael Hunold <michael@mihu.de>
4460 L: linux-media@vger.kernel.org 4460 L: linux-media@vger.kernel.org
4461 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 4461 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
4462 W: http://www.mihu.de/linux/saa7146 4462 W: http://www.mihu.de/linux/saa7146
4463 S: Maintained 4463 S: Maintained
4464 F: drivers/media/common/saa7146* 4464 F: drivers/media/common/saa7146*
4465 F: drivers/media/video/*7146* 4465 F: drivers/media/video/*7146*
4466 F: include/media/*7146* 4466 F: include/media/*7146*
4467 4467
4468 SC1200 WDT DRIVER 4468 SC1200 WDT DRIVER
4469 M: Zwane Mwaikambo <zwane@arm.linux.org.uk> 4469 M: Zwane Mwaikambo <zwane@arm.linux.org.uk>
4470 S: Maintained 4470 S: Maintained
4471 F: drivers/watchdog/sc1200wdt.c 4471 F: drivers/watchdog/sc1200wdt.c
4472 4472
4473 SCHEDULER 4473 SCHEDULER
4474 M: Ingo Molnar <mingo@elte.hu> 4474 M: Ingo Molnar <mingo@elte.hu>
4475 M: Peter Zijlstra <peterz@infradead.org> 4475 M: Peter Zijlstra <peterz@infradead.org>
4476 S: Maintained 4476 S: Maintained
4477 F: kernel/sched* 4477 F: kernel/sched*
4478 F: include/linux/sched.h 4478 F: include/linux/sched.h
4479 4479
4480 SCORE ARCHITECTURE 4480 SCORE ARCHITECTURE
4481 P: Chen Liqin 4481 P: Chen Liqin
4482 M: liqin.chen@sunplusct.com 4482 M: liqin.chen@sunplusct.com
4483 P: Lennox Wu 4483 P: Lennox Wu
4484 M: lennox.wu@gmail.com 4484 M: lennox.wu@gmail.com
4485 W: http://www.sunplusct.com 4485 W: http://www.sunplusct.com
4486 S: Supported 4486 S: Supported
4487 4487
4488 SCSI CDROM DRIVER 4488 SCSI CDROM DRIVER
4489 M: Jens Axboe <axboe@kernel.dk> 4489 M: Jens Axboe <axboe@kernel.dk>
4490 L: linux-scsi@vger.kernel.org 4490 L: linux-scsi@vger.kernel.org
4491 W: http://www.kernel.dk 4491 W: http://www.kernel.dk
4492 S: Maintained 4492 S: Maintained
4493 F: drivers/scsi/sr* 4493 F: drivers/scsi/sr*
4494 4494
4495 SCSI SG DRIVER 4495 SCSI SG DRIVER
4496 M: Doug Gilbert <dgilbert@interlog.com> 4496 M: Doug Gilbert <dgilbert@interlog.com>
4497 L: linux-scsi@vger.kernel.org 4497 L: linux-scsi@vger.kernel.org
4498 W: http://www.torque.net/sg 4498 W: http://www.torque.net/sg
4499 S: Maintained 4499 S: Maintained
4500 F: drivers/scsi/sg.c 4500 F: drivers/scsi/sg.c
4501 F: include/scsi/sg.h 4501 F: include/scsi/sg.h
4502 4502
4503 SCSI SUBSYSTEM 4503 SCSI SUBSYSTEM
4504 M: "James E.J. Bottomley" <James.Bottomley@suse.de> 4504 M: "James E.J. Bottomley" <James.Bottomley@suse.de>
4505 L: linux-scsi@vger.kernel.org 4505 L: linux-scsi@vger.kernel.org
4506 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git 4506 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
4507 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git 4507 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git
4508 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-pending-2.6.git 4508 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-pending-2.6.git
4509 S: Maintained 4509 S: Maintained
4510 F: drivers/scsi/ 4510 F: drivers/scsi/
4511 F: include/scsi/ 4511 F: include/scsi/
4512 4512
4513 SCSI TAPE DRIVER 4513 SCSI TAPE DRIVER
4514 M: Kai Mรƒยคkisara <Kai.Makisara@kolumbus.fi> 4514 M: Kai Mรƒยคkisara <Kai.Makisara@kolumbus.fi>
4515 L: linux-scsi@vger.kernel.org 4515 L: linux-scsi@vger.kernel.org
4516 S: Maintained 4516 S: Maintained
4517 F: Documentation/scsi/st.txt 4517 F: Documentation/scsi/st.txt
4518 F: drivers/scsi/st* 4518 F: drivers/scsi/st*
4519 4519
4520 SCTP PROTOCOL 4520 SCTP PROTOCOL
4521 M: Vlad Yasevich <vladislav.yasevich@hp.com> 4521 M: Vlad Yasevich <vladislav.yasevich@hp.com>
4522 M: Sridhar Samudrala <sri@us.ibm.com> 4522 M: Sridhar Samudrala <sri@us.ibm.com>
4523 L: linux-sctp@vger.kernel.org 4523 L: linux-sctp@vger.kernel.org
4524 W: http://lksctp.sourceforge.net 4524 W: http://lksctp.sourceforge.net
4525 S: Supported 4525 S: Supported
4526 F: Documentation/networking/sctp.txt 4526 F: Documentation/networking/sctp.txt
4527 F: include/linux/sctp.h 4527 F: include/linux/sctp.h
4528 F: include/net/sctp/ 4528 F: include/net/sctp/
4529 F: net/sctp/ 4529 F: net/sctp/
4530 4530
4531 SCx200 CPU SUPPORT 4531 SCx200 CPU SUPPORT
4532 M: Jim Cromie <jim.cromie@gmail.com> 4532 M: Jim Cromie <jim.cromie@gmail.com>
4533 S: Odd Fixes 4533 S: Odd Fixes
4534 F: Documentation/i2c/busses/scx200_acb 4534 F: Documentation/i2c/busses/scx200_acb
4535 F: arch/x86/kernel/scx200_32.c 4535 F: arch/x86/kernel/scx200_32.c
4536 F: drivers/watchdog/scx200_wdt.c 4536 F: drivers/watchdog/scx200_wdt.c
4537 F: drivers/i2c/busses/scx200* 4537 F: drivers/i2c/busses/scx200*
4538 F: drivers/mtd/maps/scx200_docflash.c 4538 F: drivers/mtd/maps/scx200_docflash.c
4539 F: include/linux/scx200.h 4539 F: include/linux/scx200.h
4540 4540
4541 SCx200 GPIO DRIVER 4541 SCx200 GPIO DRIVER
4542 M: Jim Cromie <jim.cromie@gmail.com> 4542 M: Jim Cromie <jim.cromie@gmail.com>
4543 S: Maintained 4543 S: Maintained
4544 F: drivers/char/scx200_gpio.c 4544 F: drivers/char/scx200_gpio.c
4545 F: include/linux/scx200_gpio.h 4545 F: include/linux/scx200_gpio.h
4546 4546
4547 SCx200 HRT CLOCKSOURCE DRIVER 4547 SCx200 HRT CLOCKSOURCE DRIVER
4548 M: Jim Cromie <jim.cromie@gmail.com> 4548 M: Jim Cromie <jim.cromie@gmail.com>
4549 S: Maintained 4549 S: Maintained
4550 F: drivers/clocksource/scx200_hrt.c 4550 F: drivers/clocksource/scx200_hrt.c
4551 4551
4552 SDRICOH_CS MMC/SD HOST CONTROLLER INTERFACE DRIVER 4552 SDRICOH_CS MMC/SD HOST CONTROLLER INTERFACE DRIVER
4553 M: Sascha Sommer <saschasommer@freenet.de> 4553 M: Sascha Sommer <saschasommer@freenet.de>
4554 L: sdricohcs-devel@lists.sourceforge.net (subscribers-only) 4554 L: sdricohcs-devel@lists.sourceforge.net (subscribers-only)
4555 S: Maintained 4555 S: Maintained
4556 F: drivers/mmc/host/sdricoh_cs.c 4556 F: drivers/mmc/host/sdricoh_cs.c
4557 4557
4558 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER 4558 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
4559 S: Orphan 4559 S: Orphan
4560 L: linux-mmc@vger.kernel.org 4560 L: linux-mmc@vger.kernel.org
4561 F: drivers/mmc/host/sdhci.* 4561 F: drivers/mmc/host/sdhci.*
4562 4562
4563 SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF) 4563 SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)
4564 M: Anton Vorontsov <avorontsov@ru.mvista.com> 4564 M: Anton Vorontsov <avorontsov@ru.mvista.com>
4565 L: linuxppc-dev@ozlabs.org 4565 L: linuxppc-dev@ozlabs.org
4566 L: linux-mmc@vger.kernel.org 4566 L: linux-mmc@vger.kernel.org
4567 S: Maintained 4567 S: Maintained
4568 F: drivers/mmc/host/sdhci-of.* 4568 F: drivers/mmc/host/sdhci-of.*
4569 4569
4570 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER 4570 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
4571 M: Ben Dooks <ben-linux@fluff.org> 4571 M: Ben Dooks <ben-linux@fluff.org>
4572 L: linux-mmc@vger.kernel.org 4572 L: linux-mmc@vger.kernel.org
4573 S: Maintained 4573 S: Maintained
4574 F: drivers/mmc/host/sdhci-s3c.c 4574 F: drivers/mmc/host/sdhci-s3c.c
4575 4575
4576 SECURITY SUBSYSTEM 4576 SECURITY SUBSYSTEM
4577 M: James Morris <jmorris@namei.org> 4577 M: James Morris <jmorris@namei.org>
4578 L: linux-security-module@vger.kernel.org (suggested Cc:) 4578 L: linux-security-module@vger.kernel.org (suggested Cc:)
4579 T: git git://www.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git 4579 T: git git://www.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
4580 W: http://security.wiki.kernel.org/ 4580 W: http://security.wiki.kernel.org/
4581 S: Supported 4581 S: Supported
4582 F: security/ 4582 F: security/
4583 4583
4584 SECURITY CONTACT 4584 SECURITY CONTACT
4585 M: Security Officers <security@kernel.org> 4585 M: Security Officers <security@kernel.org>
4586 S: Supported 4586 S: Supported
4587 4587
4588 SELINUX SECURITY MODULE 4588 SELINUX SECURITY MODULE
4589 M: Stephen Smalley <sds@tycho.nsa.gov> 4589 M: Stephen Smalley <sds@tycho.nsa.gov>
4590 M: James Morris <jmorris@namei.org> 4590 M: James Morris <jmorris@namei.org>
4591 M: Eric Paris <eparis@parisplace.org> 4591 M: Eric Paris <eparis@parisplace.org>
4592 L: selinux@tycho.nsa.gov (subscribers-only, general discussion) 4592 L: selinux@tycho.nsa.gov (subscribers-only, general discussion)
4593 W: http://selinuxproject.org 4593 W: http://selinuxproject.org
4594 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git 4594 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
4595 S: Supported 4595 S: Supported
4596 F: include/linux/selinux* 4596 F: include/linux/selinux*
4597 F: security/selinux/ 4597 F: security/selinux/
4598 4598
4599 SENSABLE PHANTOM 4599 SENSABLE PHANTOM
4600 M: Jiri Slaby <jirislaby@gmail.com> 4600 M: Jiri Slaby <jirislaby@gmail.com>
4601 S: Maintained 4601 S: Maintained
4602 F: drivers/misc/phantom.c 4602 F: drivers/misc/phantom.c
4603 F: include/linux/phantom.h 4603 F: include/linux/phantom.h
4604 4604
4605 SERIAL ATA (SATA) SUBSYSTEM 4605 SERIAL ATA (SATA) SUBSYSTEM
4606 M: Jeff Garzik <jgarzik@pobox.com> 4606 M: Jeff Garzik <jgarzik@pobox.com>
4607 L: linux-ide@vger.kernel.org 4607 L: linux-ide@vger.kernel.org
4608 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git 4608 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
4609 S: Supported 4609 S: Supported
4610 F: drivers/ata/ 4610 F: drivers/ata/
4611 F: include/linux/ata.h 4611 F: include/linux/ata.h
4612 F: include/linux/libata.h 4612 F: include/linux/libata.h
4613 4613
4614 SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER 4614 SERVER ENGINES 10Gbps NIC - BladeEngine 2 DRIVER
4615 M: Sathya Perla <sathyap@serverengines.com> 4615 M: Sathya Perla <sathyap@serverengines.com>
4616 M: Subbu Seetharaman <subbus@serverengines.com> 4616 M: Subbu Seetharaman <subbus@serverengines.com>
4617 L: netdev@vger.kernel.org 4617 L: netdev@vger.kernel.org
4618 W: http://www.serverengines.com 4618 W: http://www.serverengines.com
4619 S: Supported 4619 S: Supported
4620 F: drivers/net/benet/ 4620 F: drivers/net/benet/
4621 4621
4622 SFC NETWORK DRIVER 4622 SFC NETWORK DRIVER
4623 M: Solarflare linux maintainers <linux-net-drivers@solarflare.com> 4623 M: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
4624 M: Steve Hodgson <shodgson@solarflare.com> 4624 M: Steve Hodgson <shodgson@solarflare.com>
4625 M: Ben Hutchings <bhutchings@solarflare.com> 4625 M: Ben Hutchings <bhutchings@solarflare.com>
4626 L: netdev@vger.kernel.org 4626 L: netdev@vger.kernel.org
4627 S: Supported 4627 S: Supported
4628 F: drivers/net/sfc/ 4628 F: drivers/net/sfc/
4629 4629
4630 SGI GRU DRIVER 4630 SGI GRU DRIVER
4631 M: Jack Steiner <steiner@sgi.com> 4631 M: Jack Steiner <steiner@sgi.com>
4632 S: Maintained 4632 S: Maintained
4633 F: drivers/misc/sgi-gru/ 4633 F: drivers/misc/sgi-gru/
4634 4634
4635 SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER 4635 SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER
4636 M: Pat Gefre <pfg@sgi.com> 4636 M: Pat Gefre <pfg@sgi.com>
4637 L: linux-ia64@vger.kernel.org 4637 L: linux-ia64@vger.kernel.org
4638 S: Supported 4638 S: Supported
4639 F: Documentation/ia64/serial.txt 4639 F: Documentation/ia64/serial.txt
4640 F: drivers/serial/ioc?_serial.c 4640 F: drivers/serial/ioc?_serial.c
4641 F: include/linux/ioc?.h 4641 F: include/linux/ioc?.h
4642 4642
4643 SGI VISUAL WORKSTATION 320 AND 540 4643 SGI VISUAL WORKSTATION 320 AND 540
4644 M: Andrey Panin <pazke@donpac.ru> 4644 M: Andrey Panin <pazke@donpac.ru>
4645 L: linux-visws-devel@lists.sf.net 4645 L: linux-visws-devel@lists.sf.net
4646 W: http://linux-visws.sf.net 4646 W: http://linux-visws.sf.net
4647 S: Maintained for 2.6. 4647 S: Maintained for 2.6.
4648 F: Documentation/sgi-visws.txt 4648 F: Documentation/sgi-visws.txt
4649 4649
4650 SGI XP/XPC/XPNET DRIVER 4650 SGI XP/XPC/XPNET DRIVER
4651 M: Robin Holt <holt@sgi.com> 4651 M: Robin Holt <holt@sgi.com>
4652 S: Maintained 4652 S: Maintained
4653 F: drivers/misc/sgi-xp/ 4653 F: drivers/misc/sgi-xp/
4654 4654
4655 SHARP LH SUPPORT (LH7952X & LH7A40X) 4655 SHARP LH SUPPORT (LH7952X & LH7A40X)
4656 M: Marc Singer <elf@buici.com> 4656 M: Marc Singer <elf@buici.com>
4657 W: http://projects.buici.com/arm 4657 W: http://projects.buici.com/arm
4658 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 4658 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
4659 S: Maintained 4659 S: Maintained
4660 F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen 4660 F: Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen
4661 F: arch/arm/mach-lh7a40x/ 4661 F: arch/arm/mach-lh7a40x/
4662 F: drivers/serial/serial_lh7a40x.c 4662 F: drivers/serial/serial_lh7a40x.c
4663 F: drivers/usb/gadget/lh7a40* 4663 F: drivers/usb/gadget/lh7a40*
4664 F: drivers/usb/host/ohci-lh7a40* 4664 F: drivers/usb/host/ohci-lh7a40*
4665 4665
4666 SHPC HOTPLUG DRIVER 4666 SHPC HOTPLUG DRIVER
4667 M: Kristen Carlson Accardi <kristen.c.accardi@intel.com> 4667 M: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
4668 L: linux-pci@vger.kernel.org 4668 L: linux-pci@vger.kernel.org
4669 S: Supported 4669 S: Supported
4670 F: drivers/pci/hotplug/shpchp* 4670 F: drivers/pci/hotplug/shpchp*
4671 4671
4672 SIMPLE FIRMWARE INTERFACE (SFI)
4673 P: Len Brown
4674 M: lenb@kernel.org
4675 L: sfi-devel@simplefirmware.org
4676 W: http://simplefirmware.org/
4677 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-sfi-2.6.git
4678 S: Supported
4679 F: arch/x86/kernel/*sfi*
4680 F: drivers/sfi/
4681 F: include/linux/sfi*.h
4682
4683
4672 SIMTEC EB110ATX (Chalice CATS) 4684 SIMTEC EB110ATX (Chalice CATS)
4673 P: Ben Dooks 4685 P: Ben Dooks
4674 M: Vincent Sanders <support@simtec.co.uk> 4686 M: Vincent Sanders <support@simtec.co.uk>
4675 W: http://www.simtec.co.uk/products/EB110ATX/ 4687 W: http://www.simtec.co.uk/products/EB110ATX/
4676 S: Supported 4688 S: Supported
4677 4689
4678 SIMTEC EB2410ITX (BAST) 4690 SIMTEC EB2410ITX (BAST)
4679 P: Ben Dooks 4691 P: Ben Dooks
4680 M: Vincent Sanders <support@simtec.co.uk> 4692 M: Vincent Sanders <support@simtec.co.uk>
4681 W: http://www.simtec.co.uk/products/EB2410ITX/ 4693 W: http://www.simtec.co.uk/products/EB2410ITX/
4682 S: Supported 4694 S: Supported
4683 F: arch/arm/mach-s3c2410/ 4695 F: arch/arm/mach-s3c2410/
4684 F: drivers/*/*s3c2410* 4696 F: drivers/*/*s3c2410*
4685 F: drivers/*/*/*s3c2410* 4697 F: drivers/*/*/*s3c2410*
4686 4698
4687 TI DAVINCI MACHINE SUPPORT 4699 TI DAVINCI MACHINE SUPPORT
4688 P: Kevin Hilman 4700 P: Kevin Hilman
4689 M: davinci-linux-open-source@linux.davincidsp.com 4701 M: davinci-linux-open-source@linux.davincidsp.com
4690 S: Supported 4702 S: Supported
4691 F: arch/arm/mach-davinci 4703 F: arch/arm/mach-davinci
4692 4704
4693 SIS 190 ETHERNET DRIVER 4705 SIS 190 ETHERNET DRIVER
4694 M: Francois Romieu <romieu@fr.zoreil.com> 4706 M: Francois Romieu <romieu@fr.zoreil.com>
4695 L: netdev@vger.kernel.org 4707 L: netdev@vger.kernel.org
4696 S: Maintained 4708 S: Maintained
4697 F: drivers/net/sis190.c 4709 F: drivers/net/sis190.c
4698 4710
4699 SIS 900/7016 FAST ETHERNET DRIVER 4711 SIS 900/7016 FAST ETHERNET DRIVER
4700 M: Daniele Venzano <venza@brownhat.org> 4712 M: Daniele Venzano <venza@brownhat.org>
4701 W: http://www.brownhat.org/sis900.html 4713 W: http://www.brownhat.org/sis900.html
4702 L: netdev@vger.kernel.org 4714 L: netdev@vger.kernel.org
4703 S: Maintained 4715 S: Maintained
4704 F: drivers/net/sis900.* 4716 F: drivers/net/sis900.*
4705 4717
4706 SIS 96X I2C/SMBUS DRIVER 4718 SIS 96X I2C/SMBUS DRIVER
4707 M: "Mark M. Hoffman" <mhoffman@lightlink.com> 4719 M: "Mark M. Hoffman" <mhoffman@lightlink.com>
4708 L: linux-i2c@vger.kernel.org 4720 L: linux-i2c@vger.kernel.org
4709 S: Maintained 4721 S: Maintained
4710 F: Documentation/i2c/busses/i2c-sis96x 4722 F: Documentation/i2c/busses/i2c-sis96x
4711 F: drivers/i2c/busses/i2c-sis96x.c 4723 F: drivers/i2c/busses/i2c-sis96x.c
4712 4724
4713 SIS FRAMEBUFFER DRIVER 4725 SIS FRAMEBUFFER DRIVER
4714 M: Thomas Winischhofer <thomas@winischhofer.net> 4726 M: Thomas Winischhofer <thomas@winischhofer.net>
4715 W: http://www.winischhofer.net/linuxsisvga.shtml 4727 W: http://www.winischhofer.net/linuxsisvga.shtml
4716 S: Maintained 4728 S: Maintained
4717 F: Documentation/fb/sisfb.txt 4729 F: Documentation/fb/sisfb.txt
4718 F: drivers/video/sis/ 4730 F: drivers/video/sis/
4719 F: include/video/sisfb.h 4731 F: include/video/sisfb.h
4720 4732
4721 SIS USB2VGA DRIVER 4733 SIS USB2VGA DRIVER
4722 M: Thomas Winischhofer <thomas@winischhofer.net> 4734 M: Thomas Winischhofer <thomas@winischhofer.net>
4723 W: http://www.winischhofer.at/linuxsisusbvga.shtml 4735 W: http://www.winischhofer.at/linuxsisusbvga.shtml
4724 S: Maintained 4736 S: Maintained
4725 F: drivers/usb/misc/sisusbvga/ 4737 F: drivers/usb/misc/sisusbvga/
4726 4738
4727 SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS 4739 SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
4728 M: Stephen Hemminger <shemminger@linux-foundation.org> 4740 M: Stephen Hemminger <shemminger@linux-foundation.org>
4729 L: netdev@vger.kernel.org 4741 L: netdev@vger.kernel.org
4730 S: Maintained 4742 S: Maintained
4731 F: drivers/net/skge.* 4743 F: drivers/net/skge.*
4732 F: drivers/net/sky2.* 4744 F: drivers/net/sky2.*
4733 4745
4734 SLAB ALLOCATOR 4746 SLAB ALLOCATOR
4735 M: Christoph Lameter <cl@linux-foundation.org> 4747 M: Christoph Lameter <cl@linux-foundation.org>
4736 M: Pekka Enberg <penberg@cs.helsinki.fi> 4748 M: Pekka Enberg <penberg@cs.helsinki.fi>
4737 M: Matt Mackall <mpm@selenic.com> 4749 M: Matt Mackall <mpm@selenic.com>
4738 L: linux-mm@kvack.org 4750 L: linux-mm@kvack.org
4739 S: Maintained 4751 S: Maintained
4740 F: include/linux/sl?b*.h 4752 F: include/linux/sl?b*.h
4741 F: mm/sl?b.c 4753 F: mm/sl?b.c
4742 4754
4743 SMC91x ETHERNET DRIVER 4755 SMC91x ETHERNET DRIVER
4744 M: Nicolas Pitre <nico@fluxnic.net> 4756 M: Nicolas Pitre <nico@fluxnic.net>
4745 S: Maintained 4757 S: Maintained
4746 F: drivers/net/smc91x.* 4758 F: drivers/net/smc91x.*
4747 4759
4748 SMSC47B397 HARDWARE MONITOR DRIVER 4760 SMSC47B397 HARDWARE MONITOR DRIVER
4749 M: "Mark M. Hoffman" <mhoffman@lightlink.com> 4761 M: "Mark M. Hoffman" <mhoffman@lightlink.com>
4750 L: lm-sensors@lm-sensors.org 4762 L: lm-sensors@lm-sensors.org
4751 S: Maintained 4763 S: Maintained
4752 F: Documentation/hwmon/smsc47b397 4764 F: Documentation/hwmon/smsc47b397
4753 F: drivers/hwmon/smsc47b397.c 4765 F: drivers/hwmon/smsc47b397.c
4754 4766
4755 SMSC911x ETHERNET DRIVER 4767 SMSC911x ETHERNET DRIVER
4756 M: Steve Glendinning <steve.glendinning@smsc.com> 4768 M: Steve Glendinning <steve.glendinning@smsc.com>
4757 L: netdev@vger.kernel.org 4769 L: netdev@vger.kernel.org
4758 S: Supported 4770 S: Supported
4759 F: include/linux/smsc911x.h 4771 F: include/linux/smsc911x.h
4760 F: drivers/net/smsc911x.* 4772 F: drivers/net/smsc911x.*
4761 4773
4762 SMSC9420 PCI ETHERNET DRIVER 4774 SMSC9420 PCI ETHERNET DRIVER
4763 M: Steve Glendinning <steve.glendinning@smsc.com> 4775 M: Steve Glendinning <steve.glendinning@smsc.com>
4764 L: netdev@vger.kernel.org 4776 L: netdev@vger.kernel.org
4765 S: Supported 4777 S: Supported
4766 F: drivers/net/smsc9420.* 4778 F: drivers/net/smsc9420.*
4767 4779
4768 SMX UIO Interface 4780 SMX UIO Interface
4769 M: Ben Nizette <bn@niasdigital.com> 4781 M: Ben Nizette <bn@niasdigital.com>
4770 S: Maintained 4782 S: Maintained
4771 F: drivers/uio/uio_smx.c 4783 F: drivers/uio/uio_smx.c
4772 4784
4773 SN-IA64 (Itanium) SUB-PLATFORM 4785 SN-IA64 (Itanium) SUB-PLATFORM
4774 M: Jes Sorensen <jes@sgi.com> 4786 M: Jes Sorensen <jes@sgi.com>
4775 L: linux-altix@sgi.com 4787 L: linux-altix@sgi.com
4776 L: linux-ia64@vger.kernel.org 4788 L: linux-ia64@vger.kernel.org
4777 W: http://www.sgi.com/altix 4789 W: http://www.sgi.com/altix
4778 S: Maintained 4790 S: Maintained
4779 F: arch/ia64/sn/ 4791 F: arch/ia64/sn/
4780 4792
4781 SOC-CAMERA V4L2 SUBSYSTEM 4793 SOC-CAMERA V4L2 SUBSYSTEM
4782 M: Guennadi Liakhovetski <g.liakhovetski@gmx.de> 4794 M: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
4783 L: linux-media@vger.kernel.org 4795 L: linux-media@vger.kernel.org
4784 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 4796 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
4785 S: Maintained 4797 S: Maintained
4786 F: include/media/v4l2* 4798 F: include/media/v4l2*
4787 F: drivers/media/video/v4l2* 4799 F: drivers/media/video/v4l2*
4788 4800
4789 SOEKRIS NET48XX LED SUPPORT 4801 SOEKRIS NET48XX LED SUPPORT
4790 M: Chris Boot <bootc@bootc.net> 4802 M: Chris Boot <bootc@bootc.net>
4791 S: Maintained 4803 S: Maintained
4792 F: drivers/leds/leds-net48xx.c 4804 F: drivers/leds/leds-net48xx.c
4793 4805
4794 SOFTWARE RAID (Multiple Disks) SUPPORT 4806 SOFTWARE RAID (Multiple Disks) SUPPORT
4795 M: Neil Brown <neilb@suse.de> 4807 M: Neil Brown <neilb@suse.de>
4796 L: linux-raid@vger.kernel.org 4808 L: linux-raid@vger.kernel.org
4797 S: Supported 4809 S: Supported
4798 F: drivers/md/ 4810 F: drivers/md/
4799 F: include/linux/raid/ 4811 F: include/linux/raid/
4800 4812
4801 SONIC NETWORK DRIVER 4813 SONIC NETWORK DRIVER
4802 M: Thomas Bogendoerfer <tsbogend@alpha.franken.de> 4814 M: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
4803 L: netdev@vger.kernel.org 4815 L: netdev@vger.kernel.org
4804 S: Maintained 4816 S: Maintained
4805 F: drivers/net/sonic.* 4817 F: drivers/net/sonic.*
4806 4818
4807 SONICS SILICON BACKPLANE DRIVER (SSB) 4819 SONICS SILICON BACKPLANE DRIVER (SSB)
4808 M: Michael Buesch <mb@bu3sch.de> 4820 M: Michael Buesch <mb@bu3sch.de>
4809 L: netdev@vger.kernel.org 4821 L: netdev@vger.kernel.org
4810 S: Maintained 4822 S: Maintained
4811 F: drivers/ssb/ 4823 F: drivers/ssb/
4812 F: include/linux/ssb/ 4824 F: include/linux/ssb/
4813 4825
4814 SONY VAIO CONTROL DEVICE DRIVER 4826 SONY VAIO CONTROL DEVICE DRIVER
4815 M: Mattia Dongili <malattia@linux.it> 4827 M: Mattia Dongili <malattia@linux.it>
4816 L: linux-acpi@vger.kernel.org 4828 L: linux-acpi@vger.kernel.org
4817 W: http://www.linux.it/~malattia/wiki/index.php/Sony_drivers 4829 W: http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
4818 S: Maintained 4830 S: Maintained
4819 F: Documentation/laptops/sony-laptop.txt 4831 F: Documentation/laptops/sony-laptop.txt
4820 F: drivers/char/sonypi.c 4832 F: drivers/char/sonypi.c
4821 F: drivers/platform/x86/sony-laptop.c 4833 F: drivers/platform/x86/sony-laptop.c
4822 F: include/linux/sony-laptop.h 4834 F: include/linux/sony-laptop.h
4823 4835
4824 SONY MEMORYSTICK CARD SUPPORT 4836 SONY MEMORYSTICK CARD SUPPORT
4825 M: Alex Dubov <oakad@yahoo.com> 4837 M: Alex Dubov <oakad@yahoo.com>
4826 W: http://tifmxx.berlios.de/ 4838 W: http://tifmxx.berlios.de/
4827 S: Maintained 4839 S: Maintained
4828 F: drivers/memstick/host/tifm_ms.c 4840 F: drivers/memstick/host/tifm_ms.c
4829 4841
4830 SOUND 4842 SOUND
4831 M: Jaroslav Kysela <perex@perex.cz> 4843 M: Jaroslav Kysela <perex@perex.cz>
4832 M: Takashi Iwai <tiwai@suse.de> 4844 M: Takashi Iwai <tiwai@suse.de>
4833 L: alsa-devel@alsa-project.org (moderated for non-subscribers) 4845 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
4834 W: http://www.alsa-project.org/ 4846 W: http://www.alsa-project.org/
4835 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git 4847 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
4836 T: git git://git.alsa-project.org/alsa-kernel.git 4848 T: git git://git.alsa-project.org/alsa-kernel.git
4837 S: Maintained 4849 S: Maintained
4838 F: Documentation/sound/ 4850 F: Documentation/sound/
4839 F: include/sound/ 4851 F: include/sound/
4840 F: sound/ 4852 F: sound/
4841 4853
4842 SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC) 4854 SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
4843 M: Liam Girdwood <lrg@slimlogic.co.uk> 4855 M: Liam Girdwood <lrg@slimlogic.co.uk>
4844 M: Mark Brown <broonie@opensource.wolfsonmicro.com> 4856 M: Mark Brown <broonie@opensource.wolfsonmicro.com>
4845 T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git 4857 T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git
4846 L: alsa-devel@alsa-project.org (moderated for non-subscribers) 4858 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
4847 W: http://alsa-project.org/main/index.php/ASoC 4859 W: http://alsa-project.org/main/index.php/ASoC
4848 S: Supported 4860 S: Supported
4849 F: sound/soc/ 4861 F: sound/soc/
4850 F: include/sound/soc* 4862 F: include/sound/soc*
4851 4863
4852 SPARC + UltraSPARC (sparc/sparc64) 4864 SPARC + UltraSPARC (sparc/sparc64)
4853 M: "David S. Miller" <davem@davemloft.net> 4865 M: "David S. Miller" <davem@davemloft.net>
4854 L: sparclinux@vger.kernel.org 4866 L: sparclinux@vger.kernel.org
4855 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git 4867 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git
4856 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git 4868 T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next-2.6.git
4857 S: Maintained 4869 S: Maintained
4858 F: arch/sparc/ 4870 F: arch/sparc/
4859 4871
4860 SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER 4872 SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
4861 M: Roger Wolff <R.E.Wolff@BitWizard.nl> 4873 M: Roger Wolff <R.E.Wolff@BitWizard.nl>
4862 S: Supported 4874 S: Supported
4863 F: Documentation/serial/specialix.txt 4875 F: Documentation/serial/specialix.txt
4864 F: drivers/char/specialix* 4876 F: drivers/char/specialix*
4865 4877
4866 SPI SUBSYSTEM 4878 SPI SUBSYSTEM
4867 M: David Brownell <dbrownell@users.sourceforge.net> 4879 M: David Brownell <dbrownell@users.sourceforge.net>
4868 L: spi-devel-general@lists.sourceforge.net 4880 L: spi-devel-general@lists.sourceforge.net
4869 S: Maintained 4881 S: Maintained
4870 F: Documentation/spi/ 4882 F: Documentation/spi/
4871 F: drivers/spi/ 4883 F: drivers/spi/
4872 F: include/linux/spi/ 4884 F: include/linux/spi/
4873 4885
4874 SPIDERNET NETWORK DRIVER for CELL 4886 SPIDERNET NETWORK DRIVER for CELL
4875 M: Ishizaki Kou <kou.ishizaki@toshiba.co.jp> 4887 M: Ishizaki Kou <kou.ishizaki@toshiba.co.jp>
4876 M: Jens Osterkamp <jens@de.ibm.com> 4888 M: Jens Osterkamp <jens@de.ibm.com>
4877 L: netdev@vger.kernel.org 4889 L: netdev@vger.kernel.org
4878 S: Supported 4890 S: Supported
4879 F: Documentation/networking/spider_net.txt 4891 F: Documentation/networking/spider_net.txt
4880 F: drivers/net/spider_net* 4892 F: drivers/net/spider_net*
4881 4893
4882 SPU FILE SYSTEM 4894 SPU FILE SYSTEM
4883 M: Jeremy Kerr <jk@ozlabs.org> 4895 M: Jeremy Kerr <jk@ozlabs.org>
4884 L: linuxppc-dev@ozlabs.org 4896 L: linuxppc-dev@ozlabs.org
4885 L: cbe-oss-dev@ozlabs.org 4897 L: cbe-oss-dev@ozlabs.org
4886 W: http://www.ibm.com/developerworks/power/cell/ 4898 W: http://www.ibm.com/developerworks/power/cell/
4887 S: Supported 4899 S: Supported
4888 F: Documentation/filesystems/spufs.txt 4900 F: Documentation/filesystems/spufs.txt
4889 F: arch/powerpc/platforms/cell/spufs/ 4901 F: arch/powerpc/platforms/cell/spufs/
4890 4902
4891 SQUASHFS FILE SYSTEM 4903 SQUASHFS FILE SYSTEM
4892 M: Phillip Lougher <phillip@lougher.demon.co.uk> 4904 M: Phillip Lougher <phillip@lougher.demon.co.uk>
4893 L: squashfs-devel@lists.sourceforge.net (subscribers-only) 4905 L: squashfs-devel@lists.sourceforge.net (subscribers-only)
4894 W: http://squashfs.org.uk 4906 W: http://squashfs.org.uk
4895 S: Maintained 4907 S: Maintained
4896 F: Documentation/filesystems/squashfs.txt 4908 F: Documentation/filesystems/squashfs.txt
4897 F: fs/squashfs/ 4909 F: fs/squashfs/
4898 4910
4899 SRM (Alpha) environment access 4911 SRM (Alpha) environment access
4900 M: Jan-Benedict Glaw <jbglaw@lug-owl.de> 4912 M: Jan-Benedict Glaw <jbglaw@lug-owl.de>
4901 S: Maintained 4913 S: Maintained
4902 F: arch/alpha/kernel/srm_env.c 4914 F: arch/alpha/kernel/srm_env.c
4903 4915
4904 STABLE BRANCH 4916 STABLE BRANCH
4905 M: Greg Kroah-Hartman <greg@kroah.com> 4917 M: Greg Kroah-Hartman <greg@kroah.com>
4906 M: Chris Wright <chrisw@sous-sol.org> 4918 M: Chris Wright <chrisw@sous-sol.org>
4907 L: stable@kernel.org 4919 L: stable@kernel.org
4908 S: Maintained 4920 S: Maintained
4909 4921
4910 STAGING SUBSYSTEM 4922 STAGING SUBSYSTEM
4911 M: Greg Kroah-Hartman <gregkh@suse.de> 4923 M: Greg Kroah-Hartman <gregkh@suse.de>
4912 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 4924 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
4913 L: devel@driverdev.osuosl.org 4925 L: devel@driverdev.osuosl.org
4914 S: Maintained 4926 S: Maintained
4915 F: drivers/staging/ 4927 F: drivers/staging/
4916 4928
4917 STARFIRE/DURALAN NETWORK DRIVER 4929 STARFIRE/DURALAN NETWORK DRIVER
4918 M: Ion Badulescu <ionut@badula.org> 4930 M: Ion Badulescu <ionut@badula.org>
4919 S: Odd Fixes 4931 S: Odd Fixes
4920 F: drivers/net/starfire* 4932 F: drivers/net/starfire*
4921 4933
4922 STARMODE RADIO IP (STRIP) PROTOCOL DRIVER 4934 STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
4923 S: Orphan 4935 S: Orphan
4924 F: drivers/net/wireless/strip.c 4936 F: drivers/net/wireless/strip.c
4925 F: include/linux/if_strip.h 4937 F: include/linux/if_strip.h
4926 4938
4927 STRADIS MPEG-2 DECODER DRIVER 4939 STRADIS MPEG-2 DECODER DRIVER
4928 M: Nathan Laredo <laredo@gnu.org> 4940 M: Nathan Laredo <laredo@gnu.org>
4929 W: http://www.stradis.com/ 4941 W: http://www.stradis.com/
4930 S: Maintained 4942 S: Maintained
4931 F: drivers/media/video/stradis.c 4943 F: drivers/media/video/stradis.c
4932 4944
4933 SUN3/3X 4945 SUN3/3X
4934 M: Sam Creasey <sammy@sammy.net> 4946 M: Sam Creasey <sammy@sammy.net>
4935 W: http://sammy.net/sun3/ 4947 W: http://sammy.net/sun3/
4936 S: Maintained 4948 S: Maintained
4937 F: arch/m68k/kernel/*sun3* 4949 F: arch/m68k/kernel/*sun3*
4938 F: arch/m68k/sun3*/ 4950 F: arch/m68k/sun3*/
4939 F: arch/m68k/include/asm/sun3* 4951 F: arch/m68k/include/asm/sun3*
4940 4952
4941 SUPERH 4953 SUPERH
4942 M: Paul Mundt <lethal@linux-sh.org> 4954 M: Paul Mundt <lethal@linux-sh.org>
4943 L: linux-sh@vger.kernel.org 4955 L: linux-sh@vger.kernel.org
4944 W: http://www.linux-sh.org 4956 W: http://www.linux-sh.org
4945 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git 4957 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.git
4946 S: Supported 4958 S: Supported
4947 F: Documentation/sh/ 4959 F: Documentation/sh/
4948 F: arch/sh/ 4960 F: arch/sh/
4949 F: drivers/sh/ 4961 F: drivers/sh/
4950 4962
4951 SUSPEND TO RAM 4963 SUSPEND TO RAM
4952 M: Len Brown <len.brown@intel.com> 4964 M: Len Brown <len.brown@intel.com>
4953 M: Pavel Machek <pavel@ucw.cz> 4965 M: Pavel Machek <pavel@ucw.cz>
4954 M: "Rafael J. Wysocki" <rjw@sisk.pl> 4966 M: "Rafael J. Wysocki" <rjw@sisk.pl>
4955 L: linux-pm@lists.linux-foundation.org 4967 L: linux-pm@lists.linux-foundation.org
4956 S: Supported 4968 S: Supported
4957 F: Documentation/power/ 4969 F: Documentation/power/
4958 F: arch/x86/kernel/acpi/ 4970 F: arch/x86/kernel/acpi/
4959 F: drivers/base/power/ 4971 F: drivers/base/power/
4960 F: kernel/power/ 4972 F: kernel/power/
4961 F: include/linux/suspend.h 4973 F: include/linux/suspend.h
4962 F: include/linux/freezer.h 4974 F: include/linux/freezer.h
4963 F: include/linux/pm.h 4975 F: include/linux/pm.h
4964 4976
4965 SVGA HANDLING 4977 SVGA HANDLING
4966 M: Martin Mares <mj@ucw.cz> 4978 M: Martin Mares <mj@ucw.cz>
4967 L: linux-video@atrey.karlin.mff.cuni.cz 4979 L: linux-video@atrey.karlin.mff.cuni.cz
4968 S: Maintained 4980 S: Maintained
4969 F: Documentation/svga.txt 4981 F: Documentation/svga.txt
4970 F: arch/x86/boot/video* 4982 F: arch/x86/boot/video*
4971 4983
4972 SYSV FILESYSTEM 4984 SYSV FILESYSTEM
4973 M: Christoph Hellwig <hch@infradead.org> 4985 M: Christoph Hellwig <hch@infradead.org>
4974 S: Maintained 4986 S: Maintained
4975 F: Documentation/filesystems/sysv-fs.txt 4987 F: Documentation/filesystems/sysv-fs.txt
4976 F: fs/sysv/ 4988 F: fs/sysv/
4977 F: include/linux/sysv_fs.h 4989 F: include/linux/sysv_fs.h
4978 4990
4979 TASKSTATS STATISTICS INTERFACE 4991 TASKSTATS STATISTICS INTERFACE
4980 M: Balbir Singh <balbir@linux.vnet.ibm.com> 4992 M: Balbir Singh <balbir@linux.vnet.ibm.com>
4981 S: Maintained 4993 S: Maintained
4982 F: Documentation/accounting/taskstats* 4994 F: Documentation/accounting/taskstats*
4983 F: include/linux/taskstats* 4995 F: include/linux/taskstats*
4984 F: kernel/taskstats.c 4996 F: kernel/taskstats.c
4985 4997
4986 TC CLASSIFIER 4998 TC CLASSIFIER
4987 M: Jamal Hadi Salim <hadi@cyberus.ca> 4999 M: Jamal Hadi Salim <hadi@cyberus.ca>
4988 L: netdev@vger.kernel.org 5000 L: netdev@vger.kernel.org
4989 S: Maintained 5001 S: Maintained
4990 F: include/linux/pkt_cls.h 5002 F: include/linux/pkt_cls.h
4991 F: include/net/pkt_cls.h 5003 F: include/net/pkt_cls.h
4992 F: net/sched/ 5004 F: net/sched/
4993 5005
4994 TCP LOW PRIORITY MODULE 5006 TCP LOW PRIORITY MODULE
4995 M: "Wong Hoi Sing, Edison" <hswong3i@gmail.com> 5007 M: "Wong Hoi Sing, Edison" <hswong3i@gmail.com>
4996 M: "Hung Hing Lun, Mike" <hlhung3i@gmail.com> 5008 M: "Hung Hing Lun, Mike" <hlhung3i@gmail.com>
4997 W: http://tcp-lp-mod.sourceforge.net/ 5009 W: http://tcp-lp-mod.sourceforge.net/
4998 S: Maintained 5010 S: Maintained
4999 F: net/ipv4/tcp_lp.c 5011 F: net/ipv4/tcp_lp.c
5000 5012
5001 TEHUTI ETHERNET DRIVER 5013 TEHUTI ETHERNET DRIVER
5002 M: Alexander Indenbaum <baum@tehutinetworks.net> 5014 M: Alexander Indenbaum <baum@tehutinetworks.net>
5003 M: Andy Gospodarek <andy@greyhouse.net> 5015 M: Andy Gospodarek <andy@greyhouse.net>
5004 L: netdev@vger.kernel.org 5016 L: netdev@vger.kernel.org
5005 S: Supported 5017 S: Supported
5006 F: drivers/net/tehuti* 5018 F: drivers/net/tehuti*
5007 5019
5008 Telecom Clock Driver for MCPL0010 5020 Telecom Clock Driver for MCPL0010
5009 M: Mark Gross <mark.gross@intel.com> 5021 M: Mark Gross <mark.gross@intel.com>
5010 S: Supported 5022 S: Supported
5011 F: drivers/char/tlclk.c 5023 F: drivers/char/tlclk.c
5012 5024
5013 TENSILICA XTENSA PORT (xtensa) 5025 TENSILICA XTENSA PORT (xtensa)
5014 M: Chris Zankel <chris@zankel.net> 5026 M: Chris Zankel <chris@zankel.net>
5015 S: Maintained 5027 S: Maintained
5016 F: arch/xtensa/ 5028 F: arch/xtensa/
5017 5029
5018 THINKPAD ACPI EXTRAS DRIVER 5030 THINKPAD ACPI EXTRAS DRIVER
5019 M: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br> 5031 M: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
5020 L: ibm-acpi-devel@lists.sourceforge.net 5032 L: ibm-acpi-devel@lists.sourceforge.net
5021 W: http://ibm-acpi.sourceforge.net 5033 W: http://ibm-acpi.sourceforge.net
5022 W: http://thinkwiki.org/wiki/Ibm-acpi 5034 W: http://thinkwiki.org/wiki/Ibm-acpi
5023 T: git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git 5035 T: git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
5024 S: Maintained 5036 S: Maintained
5025 F: drivers/platform/x86/thinkpad_acpi.c 5037 F: drivers/platform/x86/thinkpad_acpi.c
5026 5038
5027 TI FLASH MEDIA INTERFACE DRIVER 5039 TI FLASH MEDIA INTERFACE DRIVER
5028 M: Alex Dubov <oakad@yahoo.com> 5040 M: Alex Dubov <oakad@yahoo.com>
5029 S: Maintained 5041 S: Maintained
5030 F: drivers/misc/tifm* 5042 F: drivers/misc/tifm*
5031 F: drivers/mmc/host/tifm_sd.c 5043 F: drivers/mmc/host/tifm_sd.c
5032 F: include/linux/tifm.h 5044 F: include/linux/tifm.h
5033 5045
5034 TI TWL4030 SERIES SOC CODEC DRIVER 5046 TI TWL4030 SERIES SOC CODEC DRIVER
5035 M: Peter Ujfalusi <peter.ujfalusi@nokia.com> 5047 M: Peter Ujfalusi <peter.ujfalusi@nokia.com>
5036 L: alsa-devel@alsa-project.org (moderated for non-subscribers) 5048 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
5037 S: Maintained 5049 S: Maintained
5038 F: sound/soc/codecs/twl4030* 5050 F: sound/soc/codecs/twl4030*
5039 5051
5040 TIPC NETWORK LAYER 5052 TIPC NETWORK LAYER
5041 M: Per Liden <per.liden@ericsson.com> 5053 M: Per Liden <per.liden@ericsson.com>
5042 M: Jon Maloy <jon.maloy@ericsson.com> 5054 M: Jon Maloy <jon.maloy@ericsson.com>
5043 M: Allan Stephens <allan.stephens@windriver.com> 5055 M: Allan Stephens <allan.stephens@windriver.com>
5044 L: tipc-discussion@lists.sourceforge.net 5056 L: tipc-discussion@lists.sourceforge.net
5045 W: http://tipc.sourceforge.net/ 5057 W: http://tipc.sourceforge.net/
5046 W: http://tipc.cslab.ericsson.net/ 5058 W: http://tipc.cslab.ericsson.net/
5047 T: git git://tipc.cslab.ericsson.net/pub/git/tipc.git 5059 T: git git://tipc.cslab.ericsson.net/pub/git/tipc.git
5048 S: Maintained 5060 S: Maintained
5049 F: include/linux/tipc*.h 5061 F: include/linux/tipc*.h
5050 F: include/net/tipc/ 5062 F: include/net/tipc/
5051 F: net/tipc/ 5063 F: net/tipc/
5052 5064
5053 TLAN NETWORK DRIVER 5065 TLAN NETWORK DRIVER
5054 M: Samuel Chessman <chessman@tux.org> 5066 M: Samuel Chessman <chessman@tux.org>
5055 L: tlan-devel@lists.sourceforge.net (subscribers-only) 5067 L: tlan-devel@lists.sourceforge.net (subscribers-only)
5056 W: http://sourceforge.net/projects/tlan/ 5068 W: http://sourceforge.net/projects/tlan/
5057 S: Maintained 5069 S: Maintained
5058 F: Documentation/networking/tlan.txt 5070 F: Documentation/networking/tlan.txt
5059 F: drivers/net/tlan.* 5071 F: drivers/net/tlan.*
5060 5072
5061 TOMOYO SECURITY MODULE 5073 TOMOYO SECURITY MODULE
5062 M: Kentaro Takeda <takedakn@nttdata.co.jp> 5074 M: Kentaro Takeda <takedakn@nttdata.co.jp>
5063 M: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> 5075 M: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
5064 L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for developers and users in English) 5076 L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for developers and users in English)
5065 L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese) 5077 L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese)
5066 L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese) 5078 L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese)
5067 W: http://tomoyo.sourceforge.jp/ 5079 W: http://tomoyo.sourceforge.jp/
5068 T: quilt http://svn.sourceforge.jp/svnroot/tomoyo/trunk/2.2.x/tomoyo-lsm/patches/ 5080 T: quilt http://svn.sourceforge.jp/svnroot/tomoyo/trunk/2.2.x/tomoyo-lsm/patches/
5069 S: Maintained 5081 S: Maintained
5070 F: security/tomoyo/ 5082 F: security/tomoyo/
5071 5083
5072 TOPSTAR LAPTOP EXTRAS DRIVER 5084 TOPSTAR LAPTOP EXTRAS DRIVER
5073 M: Herton Ronaldo Krzesinski <herton@mandriva.com.br> 5085 M: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
5074 S: Maintained 5086 S: Maintained
5075 F: drivers/platform/x86/topstar-laptop.c 5087 F: drivers/platform/x86/topstar-laptop.c
5076 5088
5077 TOSHIBA ACPI EXTRAS DRIVER 5089 TOSHIBA ACPI EXTRAS DRIVER
5078 S: Orphan 5090 S: Orphan
5079 F: drivers/platform/x86/toshiba_acpi.c 5091 F: drivers/platform/x86/toshiba_acpi.c
5080 5092
5081 TOSHIBA SMM DRIVER 5093 TOSHIBA SMM DRIVER
5082 M: Jonathan Buzzard <jonathan@buzzard.org.uk> 5094 M: Jonathan Buzzard <jonathan@buzzard.org.uk>
5083 L: tlinux-users@tce.toshiba-dme.co.jp 5095 L: tlinux-users@tce.toshiba-dme.co.jp
5084 W: http://www.buzzard.org.uk/toshiba/ 5096 W: http://www.buzzard.org.uk/toshiba/
5085 S: Maintained 5097 S: Maintained
5086 F: drivers/char/toshiba.c 5098 F: drivers/char/toshiba.c
5087 F: include/linux/toshiba.h 5099 F: include/linux/toshiba.h
5088 5100
5089 TMIO MMC DRIVER 5101 TMIO MMC DRIVER
5090 M: Ian Molton <ian@mnementh.co.uk> 5102 M: Ian Molton <ian@mnementh.co.uk>
5091 S: Maintained 5103 S: Maintained
5092 F: drivers/mmc/host/tmio_mmc.* 5104 F: drivers/mmc/host/tmio_mmc.*
5093 5105
5094 TMPFS (SHMEM FILESYSTEM) 5106 TMPFS (SHMEM FILESYSTEM)
5095 M: Hugh Dickins <hugh.dickins@tiscali.co.uk> 5107 M: Hugh Dickins <hugh.dickins@tiscali.co.uk>
5096 L: linux-mm@kvack.org 5108 L: linux-mm@kvack.org
5097 S: Maintained 5109 S: Maintained
5098 F: include/linux/shmem_fs.h 5110 F: include/linux/shmem_fs.h
5099 F: mm/shmem.c 5111 F: mm/shmem.c
5100 5112
5101 TPM DEVICE DRIVER 5113 TPM DEVICE DRIVER
5102 M: Debora Velarde <debora@linux.vnet.ibm.com> 5114 M: Debora Velarde <debora@linux.vnet.ibm.com>
5103 M: Rajiv Andrade <srajiv@linux.vnet.ibm.com> 5115 M: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
5104 W: http://tpmdd.sourceforge.net 5116 W: http://tpmdd.sourceforge.net
5105 M: Marcel Selhorst <m.selhorst@sirrix.com> 5117 M: Marcel Selhorst <m.selhorst@sirrix.com>
5106 W: http://www.sirrix.com 5118 W: http://www.sirrix.com
5107 L: tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers) 5119 L: tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
5108 S: Maintained 5120 S: Maintained
5109 F: drivers/char/tpm/ 5121 F: drivers/char/tpm/
5110 5122
5111 TRIVIAL PATCHES 5123 TRIVIAL PATCHES
5112 M: Jiri Kosina <trivial@kernel.org> 5124 M: Jiri Kosina <trivial@kernel.org>
5113 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git 5125 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
5114 S: Maintained 5126 S: Maintained
5115 5127
5116 TTY LAYER 5128 TTY LAYER
5117 M: Greg Kroah-Hartman <gregkh@suse.de> 5129 M: Greg Kroah-Hartman <gregkh@suse.de>
5118 S: Maintained 5130 S: Maintained
5119 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 5131 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
5120 F: drivers/char/tty_* 5132 F: drivers/char/tty_*
5121 F: drivers/serial/serial_core.c 5133 F: drivers/serial/serial_core.c
5122 F: include/linux/serial_core.h 5134 F: include/linux/serial_core.h
5123 F: include/linux/serial.h 5135 F: include/linux/serial.h
5124 F: include/linux/tty.h 5136 F: include/linux/tty.h
5125 5137
5126 TULIP NETWORK DRIVERS 5138 TULIP NETWORK DRIVERS
5127 M: Grant Grundler <grundler@parisc-linux.org> 5139 M: Grant Grundler <grundler@parisc-linux.org>
5128 M: Kyle McMartin <kyle@mcmartin.ca> 5140 M: Kyle McMartin <kyle@mcmartin.ca>
5129 L: netdev@vger.kernel.org 5141 L: netdev@vger.kernel.org
5130 S: Maintained 5142 S: Maintained
5131 F: drivers/net/tulip/ 5143 F: drivers/net/tulip/
5132 5144
5133 TUN/TAP driver 5145 TUN/TAP driver
5134 M: Maxim Krasnyansky <maxk@qualcomm.com> 5146 M: Maxim Krasnyansky <maxk@qualcomm.com>
5135 L: vtun@office.satix.net 5147 L: vtun@office.satix.net
5136 W: http://vtun.sourceforge.net/tun 5148 W: http://vtun.sourceforge.net/tun
5137 S: Maintained 5149 S: Maintained
5138 F: Documentation/networking/tuntap.txt 5150 F: Documentation/networking/tuntap.txt
5139 F: arch/um/os-Linux/drivers/ 5151 F: arch/um/os-Linux/drivers/
5140 5152
5141 TURBOCHANNEL SUBSYSTEM 5153 TURBOCHANNEL SUBSYSTEM
5142 M: "Maciej W. Rozycki" <macro@linux-mips.org> 5154 M: "Maciej W. Rozycki" <macro@linux-mips.org>
5143 S: Maintained 5155 S: Maintained
5144 F: drivers/tc/ 5156 F: drivers/tc/
5145 F: include/linux/tc.h 5157 F: include/linux/tc.h
5146 5158
5147 U14-34F SCSI DRIVER 5159 U14-34F SCSI DRIVER
5148 M: Dario Ballabio <ballabio_dario@emc.com> 5160 M: Dario Ballabio <ballabio_dario@emc.com>
5149 L: linux-scsi@vger.kernel.org 5161 L: linux-scsi@vger.kernel.org
5150 S: Maintained 5162 S: Maintained
5151 F: drivers/scsi/u14-34f.c 5163 F: drivers/scsi/u14-34f.c
5152 5164
5153 UBI FILE SYSTEM (UBIFS) 5165 UBI FILE SYSTEM (UBIFS)
5154 M: Artem Bityutskiy <dedekind@infradead.org> 5166 M: Artem Bityutskiy <dedekind@infradead.org>
5155 M: Adrian Hunter <adrian.hunter@nokia.com> 5167 M: Adrian Hunter <adrian.hunter@nokia.com>
5156 L: linux-mtd@lists.infradead.org 5168 L: linux-mtd@lists.infradead.org
5157 T: git git://git.infradead.org/ubifs-2.6.git 5169 T: git git://git.infradead.org/ubifs-2.6.git
5158 W: http://www.linux-mtd.infradead.org/doc/ubifs.html 5170 W: http://www.linux-mtd.infradead.org/doc/ubifs.html
5159 S: Maintained 5171 S: Maintained
5160 F: Documentation/filesystems/ubifs.txt 5172 F: Documentation/filesystems/ubifs.txt
5161 F: fs/ubifs/ 5173 F: fs/ubifs/
5162 5174
5163 UCLINUX (AND M68KNOMMU) 5175 UCLINUX (AND M68KNOMMU)
5164 M: Greg Ungerer <gerg@uclinux.org> 5176 M: Greg Ungerer <gerg@uclinux.org>
5165 W: http://www.uclinux.org/ 5177 W: http://www.uclinux.org/
5166 L: uclinux-dev@uclinux.org (subscribers-only) 5178 L: uclinux-dev@uclinux.org (subscribers-only)
5167 S: Maintained 5179 S: Maintained
5168 F: arch/m68knommu/ 5180 F: arch/m68knommu/
5169 5181
5170 UCLINUX FOR RENESAS H8/300 (H8300) 5182 UCLINUX FOR RENESAS H8/300 (H8300)
5171 M: Yoshinori Sato <ysato@users.sourceforge.jp> 5183 M: Yoshinori Sato <ysato@users.sourceforge.jp>
5172 W: http://uclinux-h8.sourceforge.jp/ 5184 W: http://uclinux-h8.sourceforge.jp/
5173 S: Supported 5185 S: Supported
5174 5186
5175 UDF FILESYSTEM 5187 UDF FILESYSTEM
5176 M: Jan Kara <jack@suse.cz> 5188 M: Jan Kara <jack@suse.cz>
5177 W: http://linux-udf.sourceforge.net 5189 W: http://linux-udf.sourceforge.net
5178 S: Maintained 5190 S: Maintained
5179 F: Documentation/filesystems/udf.txt 5191 F: Documentation/filesystems/udf.txt
5180 F: fs/udf/ 5192 F: fs/udf/
5181 5193
5182 UFS FILESYSTEM 5194 UFS FILESYSTEM
5183 M: Evgeniy Dushistov <dushistov@mail.ru> 5195 M: Evgeniy Dushistov <dushistov@mail.ru>
5184 S: Maintained 5196 S: Maintained
5185 F: Documentation/filesystems/ufs.txt 5197 F: Documentation/filesystems/ufs.txt
5186 F: fs/ufs/ 5198 F: fs/ufs/
5187 5199
5188 ULTRA-WIDEBAND (UWB) SUBSYSTEM: 5200 ULTRA-WIDEBAND (UWB) SUBSYSTEM:
5189 M: David Vrabel <david.vrabel@csr.com> 5201 M: David Vrabel <david.vrabel@csr.com>
5190 L: linux-usb@vger.kernel.org 5202 L: linux-usb@vger.kernel.org
5191 S: Supported 5203 S: Supported
5192 F: drivers/uwb/* 5204 F: drivers/uwb/*
5193 F: include/linux/uwb.h 5205 F: include/linux/uwb.h
5194 F: include/linux/uwb/ 5206 F: include/linux/uwb/
5195 5207
5196 UNIFORM CDROM DRIVER 5208 UNIFORM CDROM DRIVER
5197 M: Jens Axboe <axboe@kernel.dk> 5209 M: Jens Axboe <axboe@kernel.dk>
5198 W: http://www.kernel.dk 5210 W: http://www.kernel.dk
5199 S: Maintained 5211 S: Maintained
5200 F: Documentation/cdrom/ 5212 F: Documentation/cdrom/
5201 F: drivers/cdrom/cdrom.c 5213 F: drivers/cdrom/cdrom.c
5202 F: include/linux/cdrom.h 5214 F: include/linux/cdrom.h
5203 5215
5204 UNSORTED BLOCK IMAGES (UBI) 5216 UNSORTED BLOCK IMAGES (UBI)
5205 M: Artem Bityutskiy <dedekind@infradead.org> 5217 M: Artem Bityutskiy <dedekind@infradead.org>
5206 W: http://www.linux-mtd.infradead.org/ 5218 W: http://www.linux-mtd.infradead.org/
5207 L: linux-mtd@lists.infradead.org 5219 L: linux-mtd@lists.infradead.org
5208 T: git git://git.infradead.org/ubi-2.6.git 5220 T: git git://git.infradead.org/ubi-2.6.git
5209 S: Maintained 5221 S: Maintained
5210 F: drivers/mtd/ubi/ 5222 F: drivers/mtd/ubi/
5211 F: include/linux/mtd/ubi.h 5223 F: include/linux/mtd/ubi.h
5212 F: include/mtd/ubi-user.h 5224 F: include/mtd/ubi-user.h
5213 5225
5214 USB ACM DRIVER 5226 USB ACM DRIVER
5215 M: Oliver Neukum <oliver@neukum.name> 5227 M: Oliver Neukum <oliver@neukum.name>
5216 L: linux-usb@vger.kernel.org 5228 L: linux-usb@vger.kernel.org
5217 S: Maintained 5229 S: Maintained
5218 F: Documentation/usb/acm.txt 5230 F: Documentation/usb/acm.txt
5219 F: drivers/usb/class/cdc-acm.* 5231 F: drivers/usb/class/cdc-acm.*
5220 5232
5221 USB BLOCK DRIVER (UB ub) 5233 USB BLOCK DRIVER (UB ub)
5222 M: Pete Zaitcev <zaitcev@redhat.com> 5234 M: Pete Zaitcev <zaitcev@redhat.com>
5223 L: linux-usb@vger.kernel.org 5235 L: linux-usb@vger.kernel.org
5224 S: Supported 5236 S: Supported
5225 F: drivers/block/ub.c 5237 F: drivers/block/ub.c
5226 5238
5227 USB CDC ETHERNET DRIVER 5239 USB CDC ETHERNET DRIVER
5228 M: Greg Kroah-Hartman <greg@kroah.com> 5240 M: Greg Kroah-Hartman <greg@kroah.com>
5229 L: linux-usb@vger.kernel.org 5241 L: linux-usb@vger.kernel.org
5230 S: Maintained 5242 S: Maintained
5231 W: http://www.kroah.com/linux-usb/ 5243 W: http://www.kroah.com/linux-usb/
5232 F: drivers/net/usb/cdc_*.c 5244 F: drivers/net/usb/cdc_*.c
5233 F: include/linux/usb/cdc.h 5245 F: include/linux/usb/cdc.h
5234 5246
5235 USB CYPRESS C67X00 DRIVER 5247 USB CYPRESS C67X00 DRIVER
5236 M: Peter Korsgaard <jacmet@sunsite.dk> 5248 M: Peter Korsgaard <jacmet@sunsite.dk>
5237 L: linux-usb@vger.kernel.org 5249 L: linux-usb@vger.kernel.org
5238 S: Maintained 5250 S: Maintained
5239 F: drivers/usb/c67x00/ 5251 F: drivers/usb/c67x00/
5240 5252
5241 USB DAVICOM DM9601 DRIVER 5253 USB DAVICOM DM9601 DRIVER
5242 M: Peter Korsgaard <jacmet@sunsite.dk> 5254 M: Peter Korsgaard <jacmet@sunsite.dk>
5243 L: netdev@vger.kernel.org 5255 L: netdev@vger.kernel.org
5244 W: http://www.linux-usb.org/usbnet 5256 W: http://www.linux-usb.org/usbnet
5245 S: Maintained 5257 S: Maintained
5246 F: drivers/net/usb/dm9601.c 5258 F: drivers/net/usb/dm9601.c
5247 5259
5248 USB DIAMOND RIO500 DRIVER 5260 USB DIAMOND RIO500 DRIVER
5249 M: Cesar Miquel <miquel@df.uba.ar> 5261 M: Cesar Miquel <miquel@df.uba.ar>
5250 L: rio500-users@lists.sourceforge.net 5262 L: rio500-users@lists.sourceforge.net
5251 W: http://rio500.sourceforge.net 5263 W: http://rio500.sourceforge.net
5252 S: Maintained 5264 S: Maintained
5253 F: drivers/usb/misc/rio500* 5265 F: drivers/usb/misc/rio500*
5254 5266
5255 USB EHCI DRIVER 5267 USB EHCI DRIVER
5256 M: David Brownell <dbrownell@users.sourceforge.net> 5268 M: David Brownell <dbrownell@users.sourceforge.net>
5257 L: linux-usb@vger.kernel.org 5269 L: linux-usb@vger.kernel.org
5258 S: Odd Fixes 5270 S: Odd Fixes
5259 F: Documentation/usb/ehci.txt 5271 F: Documentation/usb/ehci.txt
5260 F: drivers/usb/host/ehci* 5272 F: drivers/usb/host/ehci*
5261 5273
5262 USB ET61X[12]51 DRIVER 5274 USB ET61X[12]51 DRIVER
5263 M: Luca Risolia <luca.risolia@studio.unibo.it> 5275 M: Luca Risolia <luca.risolia@studio.unibo.it>
5264 L: linux-usb@vger.kernel.org 5276 L: linux-usb@vger.kernel.org
5265 L: linux-media@vger.kernel.org 5277 L: linux-media@vger.kernel.org
5266 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 5278 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
5267 W: http://www.linux-projects.org 5279 W: http://www.linux-projects.org
5268 S: Maintained 5280 S: Maintained
5269 F: drivers/media/video/et61x251/ 5281 F: drivers/media/video/et61x251/
5270 5282
5271 USB GADGET/PERIPHERAL SUBSYSTEM 5283 USB GADGET/PERIPHERAL SUBSYSTEM
5272 M: David Brownell <dbrownell@users.sourceforge.net> 5284 M: David Brownell <dbrownell@users.sourceforge.net>
5273 L: linux-usb@vger.kernel.org 5285 L: linux-usb@vger.kernel.org
5274 W: http://www.linux-usb.org/gadget 5286 W: http://www.linux-usb.org/gadget
5275 S: Maintained 5287 S: Maintained
5276 F: drivers/usb/gadget/ 5288 F: drivers/usb/gadget/
5277 F: include/linux/usb/gadget* 5289 F: include/linux/usb/gadget*
5278 5290
5279 USB HID/HIDBP DRIVERS (USB KEYBOARDS, MICE, REMOTE CONTROLS, ...) 5291 USB HID/HIDBP DRIVERS (USB KEYBOARDS, MICE, REMOTE CONTROLS, ...)
5280 M: Jiri Kosina <jkosina@suse.cz> 5292 M: Jiri Kosina <jkosina@suse.cz>
5281 L: linux-usb@vger.kernel.org 5293 L: linux-usb@vger.kernel.org
5282 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git 5294 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git
5283 S: Maintained 5295 S: Maintained
5284 F: Documentation/usb/hiddev.txt 5296 F: Documentation/usb/hiddev.txt
5285 F: drivers/hid/usbhid/ 5297 F: drivers/hid/usbhid/
5286 5298
5287 USB ISP116X DRIVER 5299 USB ISP116X DRIVER
5288 M: Olav Kongas <ok@artecdesign.ee> 5300 M: Olav Kongas <ok@artecdesign.ee>
5289 L: linux-usb@vger.kernel.org 5301 L: linux-usb@vger.kernel.org
5290 S: Maintained 5302 S: Maintained
5291 F: drivers/usb/host/isp116x* 5303 F: drivers/usb/host/isp116x*
5292 F: include/linux/usb/isp116x.h 5304 F: include/linux/usb/isp116x.h
5293 5305
5294 USB KAWASAKI LSI DRIVER 5306 USB KAWASAKI LSI DRIVER
5295 M: Oliver Neukum <oliver@neukum.name> 5307 M: Oliver Neukum <oliver@neukum.name>
5296 L: linux-usb@vger.kernel.org 5308 L: linux-usb@vger.kernel.org
5297 S: Maintained 5309 S: Maintained
5298 F: drivers/usb/serial/kl5kusb105.* 5310 F: drivers/usb/serial/kl5kusb105.*
5299 5311
5300 USB MASS STORAGE DRIVER 5312 USB MASS STORAGE DRIVER
5301 M: Matthew Dharm <mdharm-usb@one-eyed-alien.net> 5313 M: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
5302 L: linux-usb@vger.kernel.org 5314 L: linux-usb@vger.kernel.org
5303 L: usb-storage@lists.one-eyed-alien.net 5315 L: usb-storage@lists.one-eyed-alien.net
5304 S: Maintained 5316 S: Maintained
5305 W: http://www.one-eyed-alien.net/~mdharm/linux-usb/ 5317 W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
5306 F: drivers/usb/storage/ 5318 F: drivers/usb/storage/
5307 5319
5308 USB OHCI DRIVER 5320 USB OHCI DRIVER
5309 M: David Brownell <dbrownell@users.sourceforge.net> 5321 M: David Brownell <dbrownell@users.sourceforge.net>
5310 L: linux-usb@vger.kernel.org 5322 L: linux-usb@vger.kernel.org
5311 S: Odd Fixes 5323 S: Odd Fixes
5312 F: Documentation/usb/ohci.txt 5324 F: Documentation/usb/ohci.txt
5313 F: drivers/usb/host/ohci* 5325 F: drivers/usb/host/ohci*
5314 5326
5315 USB OPTION-CARD DRIVER 5327 USB OPTION-CARD DRIVER
5316 M: Matthias Urlichs <smurf@smurf.noris.de> 5328 M: Matthias Urlichs <smurf@smurf.noris.de>
5317 L: linux-usb@vger.kernel.org 5329 L: linux-usb@vger.kernel.org
5318 S: Maintained 5330 S: Maintained
5319 F: drivers/usb/serial/option.c 5331 F: drivers/usb/serial/option.c
5320 5332
5321 USB OV511 DRIVER 5333 USB OV511 DRIVER
5322 M: Mark McClelland <mmcclell@bigfoot.com> 5334 M: Mark McClelland <mmcclell@bigfoot.com>
5323 L: linux-usb@vger.kernel.org 5335 L: linux-usb@vger.kernel.org
5324 W: http://alpha.dyndns.org/ov511/ 5336 W: http://alpha.dyndns.org/ov511/
5325 S: Maintained 5337 S: Maintained
5326 F: drivers/media/video/ov511.* 5338 F: drivers/media/video/ov511.*
5327 5339
5328 USB PEGASUS DRIVER 5340 USB PEGASUS DRIVER
5329 M: Petko Manolov <petkan@users.sourceforge.net> 5341 M: Petko Manolov <petkan@users.sourceforge.net>
5330 L: linux-usb@vger.kernel.org 5342 L: linux-usb@vger.kernel.org
5331 L: netdev@vger.kernel.org 5343 L: netdev@vger.kernel.org
5332 W: http://pegasus2.sourceforge.net/ 5344 W: http://pegasus2.sourceforge.net/
5333 S: Maintained 5345 S: Maintained
5334 F: drivers/net/usb/pegasus.* 5346 F: drivers/net/usb/pegasus.*
5335 5347
5336 USB PRINTER DRIVER (usblp) 5348 USB PRINTER DRIVER (usblp)
5337 M: Pete Zaitcev <zaitcev@redhat.com> 5349 M: Pete Zaitcev <zaitcev@redhat.com>
5338 L: linux-usb@vger.kernel.org 5350 L: linux-usb@vger.kernel.org
5339 S: Supported 5351 S: Supported
5340 F: drivers/usb/class/usblp.c 5352 F: drivers/usb/class/usblp.c
5341 5353
5342 USB RTL8150 DRIVER 5354 USB RTL8150 DRIVER
5343 M: Petko Manolov <petkan@users.sourceforge.net> 5355 M: Petko Manolov <petkan@users.sourceforge.net>
5344 L: linux-usb@vger.kernel.org 5356 L: linux-usb@vger.kernel.org
5345 L: netdev@vger.kernel.org 5357 L: netdev@vger.kernel.org
5346 W: http://pegasus2.sourceforge.net/ 5358 W: http://pegasus2.sourceforge.net/
5347 S: Maintained 5359 S: Maintained
5348 F: drivers/net/usb/rtl8150.c 5360 F: drivers/net/usb/rtl8150.c
5349 5361
5350 USB SE401 DRIVER 5362 USB SE401 DRIVER
5351 M: Jeroen Vreeken <pe1rxq@amsat.org> 5363 M: Jeroen Vreeken <pe1rxq@amsat.org>
5352 L: linux-usb@vger.kernel.org 5364 L: linux-usb@vger.kernel.org
5353 W: http://www.chello.nl/~j.vreeken/se401/ 5365 W: http://www.chello.nl/~j.vreeken/se401/
5354 S: Maintained 5366 S: Maintained
5355 F: Documentation/video4linux/se401.txt 5367 F: Documentation/video4linux/se401.txt
5356 F: drivers/media/video/se401.* 5368 F: drivers/media/video/se401.*
5357 5369
5358 USB SERIAL BELKIN F5U103 DRIVER 5370 USB SERIAL BELKIN F5U103 DRIVER
5359 M: William Greathouse <wgreathouse@smva.com> 5371 M: William Greathouse <wgreathouse@smva.com>
5360 L: linux-usb@vger.kernel.org 5372 L: linux-usb@vger.kernel.org
5361 S: Maintained 5373 S: Maintained
5362 F: drivers/usb/serial/belkin_sa.* 5374 F: drivers/usb/serial/belkin_sa.*
5363 5375
5364 USB SERIAL CYPRESS M8 DRIVER 5376 USB SERIAL CYPRESS M8 DRIVER
5365 M: Lonnie Mendez <dignome@gmail.com> 5377 M: Lonnie Mendez <dignome@gmail.com>
5366 L: linux-usb@vger.kernel.org 5378 L: linux-usb@vger.kernel.org
5367 S: Maintained 5379 S: Maintained
5368 W: http://geocities.com/i0xox0i 5380 W: http://geocities.com/i0xox0i
5369 W: http://firstlight.net/cvs 5381 W: http://firstlight.net/cvs
5370 F: drivers/usb/serial/cypress_m8.* 5382 F: drivers/usb/serial/cypress_m8.*
5371 5383
5372 USB SERIAL CYBERJACK DRIVER 5384 USB SERIAL CYBERJACK DRIVER
5373 M: Matthias Bruestle and Harald Welte <support@reiner-sct.com> 5385 M: Matthias Bruestle and Harald Welte <support@reiner-sct.com>
5374 W: http://www.reiner-sct.de/support/treiber_cyberjack.php 5386 W: http://www.reiner-sct.de/support/treiber_cyberjack.php
5375 S: Maintained 5387 S: Maintained
5376 F: drivers/usb/serial/cyberjack.c 5388 F: drivers/usb/serial/cyberjack.c
5377 5389
5378 USB SERIAL DIGI ACCELEPORT DRIVER 5390 USB SERIAL DIGI ACCELEPORT DRIVER
5379 M: Peter Berger <pberger@brimson.com> 5391 M: Peter Berger <pberger@brimson.com>
5380 M: Al Borchers <alborchers@steinerpoint.com> 5392 M: Al Borchers <alborchers@steinerpoint.com>
5381 L: linux-usb@vger.kernel.org 5393 L: linux-usb@vger.kernel.org
5382 S: Maintained 5394 S: Maintained
5383 F: drivers/usb/serial/digi_acceleport.c 5395 F: drivers/usb/serial/digi_acceleport.c
5384 5396
5385 USB SERIAL DRIVER 5397 USB SERIAL DRIVER
5386 M: Greg Kroah-Hartman <gregkh@suse.de> 5398 M: Greg Kroah-Hartman <gregkh@suse.de>
5387 L: linux-usb@vger.kernel.org 5399 L: linux-usb@vger.kernel.org
5388 S: Supported 5400 S: Supported
5389 F: Documentation/usb/usb-serial.txt 5401 F: Documentation/usb/usb-serial.txt
5390 F: drivers/usb/serial/generic.c 5402 F: drivers/usb/serial/generic.c
5391 F: drivers/usb/serial/usb-serial.c 5403 F: drivers/usb/serial/usb-serial.c
5392 F: include/linux/usb/serial.h 5404 F: include/linux/usb/serial.h
5393 5405
5394 USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER 5406 USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER
5395 M: Gary Brubaker <xavyer@ix.netcom.com> 5407 M: Gary Brubaker <xavyer@ix.netcom.com>
5396 L: linux-usb@vger.kernel.org 5408 L: linux-usb@vger.kernel.org
5397 S: Maintained 5409 S: Maintained
5398 F: drivers/usb/serial/empeg.c 5410 F: drivers/usb/serial/empeg.c
5399 5411
5400 USB SERIAL KEYSPAN DRIVER 5412 USB SERIAL KEYSPAN DRIVER
5401 M: Greg Kroah-Hartman <greg@kroah.com> 5413 M: Greg Kroah-Hartman <greg@kroah.com>
5402 L: linux-usb@vger.kernel.org 5414 L: linux-usb@vger.kernel.org
5403 W: http://www.kroah.com/linux/ 5415 W: http://www.kroah.com/linux/
5404 S: Maintained 5416 S: Maintained
5405 F: drivers/usb/serial/*keyspan* 5417 F: drivers/usb/serial/*keyspan*
5406 5418
5407 USB SERIAL WHITEHEAT DRIVER 5419 USB SERIAL WHITEHEAT DRIVER
5408 M: Support Department <support@connecttech.com> 5420 M: Support Department <support@connecttech.com>
5409 L: linux-usb@vger.kernel.org 5421 L: linux-usb@vger.kernel.org
5410 W: http://www.connecttech.com 5422 W: http://www.connecttech.com
5411 S: Supported 5423 S: Supported
5412 F: drivers/usb/serial/whiteheat* 5424 F: drivers/usb/serial/whiteheat*
5413 5425
5414 USB SMSC95XX ETHERNET DRIVER 5426 USB SMSC95XX ETHERNET DRIVER
5415 M: Steve Glendinning <steve.glendinning@smsc.com> 5427 M: Steve Glendinning <steve.glendinning@smsc.com>
5416 L: netdev@vger.kernel.org 5428 L: netdev@vger.kernel.org
5417 S: Supported 5429 S: Supported
5418 F: drivers/net/usb/smsc95xx.* 5430 F: drivers/net/usb/smsc95xx.*
5419 5431
5420 USB SN9C1xx DRIVER 5432 USB SN9C1xx DRIVER
5421 M: Luca Risolia <luca.risolia@studio.unibo.it> 5433 M: Luca Risolia <luca.risolia@studio.unibo.it>
5422 L: linux-usb@vger.kernel.org 5434 L: linux-usb@vger.kernel.org
5423 L: linux-media@vger.kernel.org 5435 L: linux-media@vger.kernel.org
5424 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 5436 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
5425 W: http://www.linux-projects.org 5437 W: http://www.linux-projects.org
5426 S: Maintained 5438 S: Maintained
5427 F: Documentation/video4linux/sn9c102.txt 5439 F: Documentation/video4linux/sn9c102.txt
5428 F: drivers/media/video/sn9c102/ 5440 F: drivers/media/video/sn9c102/
5429 5441
5430 USB SUBSYSTEM 5442 USB SUBSYSTEM
5431 M: Greg Kroah-Hartman <gregkh@suse.de> 5443 M: Greg Kroah-Hartman <gregkh@suse.de>
5432 L: linux-usb@vger.kernel.org 5444 L: linux-usb@vger.kernel.org
5433 W: http://www.linux-usb.org 5445 W: http://www.linux-usb.org
5434 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 5446 T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
5435 S: Supported 5447 S: Supported
5436 F: Documentation/usb/ 5448 F: Documentation/usb/
5437 F: drivers/net/usb/ 5449 F: drivers/net/usb/
5438 F: drivers/usb/ 5450 F: drivers/usb/
5439 F: include/linux/usb.h 5451 F: include/linux/usb.h
5440 F: include/linux/usb/ 5452 F: include/linux/usb/
5441 5453
5442 USB UHCI DRIVER 5454 USB UHCI DRIVER
5443 M: Alan Stern <stern@rowland.harvard.edu> 5455 M: Alan Stern <stern@rowland.harvard.edu>
5444 L: linux-usb@vger.kernel.org 5456 L: linux-usb@vger.kernel.org
5445 S: Maintained 5457 S: Maintained
5446 F: drivers/usb/host/uhci* 5458 F: drivers/usb/host/uhci*
5447 5459
5448 USB "USBNET" DRIVER FRAMEWORK 5460 USB "USBNET" DRIVER FRAMEWORK
5449 M: David Brownell <dbrownell@users.sourceforge.net> 5461 M: David Brownell <dbrownell@users.sourceforge.net>
5450 L: netdev@vger.kernel.org 5462 L: netdev@vger.kernel.org
5451 W: http://www.linux-usb.org/usbnet 5463 W: http://www.linux-usb.org/usbnet
5452 S: Maintained 5464 S: Maintained
5453 F: drivers/net/usb/usbnet.c 5465 F: drivers/net/usb/usbnet.c
5454 F: include/linux/usb/usbnet.h 5466 F: include/linux/usb/usbnet.h
5455 5467
5456 USB VIDEO CLASS 5468 USB VIDEO CLASS
5457 M: Laurent Pinchart <laurent.pinchart@skynet.be> 5469 M: Laurent Pinchart <laurent.pinchart@skynet.be>
5458 L: linux-uvc-devel@lists.berlios.de (subscribers-only) 5470 L: linux-uvc-devel@lists.berlios.de (subscribers-only)
5459 L: linux-media@vger.kernel.org 5471 L: linux-media@vger.kernel.org
5460 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 5472 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
5461 W: http://linux-uvc.berlios.de 5473 W: http://linux-uvc.berlios.de
5462 S: Maintained 5474 S: Maintained
5463 F: drivers/media/video/uvc/ 5475 F: drivers/media/video/uvc/
5464 5476
5465 USB W996[87]CF DRIVER 5477 USB W996[87]CF DRIVER
5466 M: Luca Risolia <luca.risolia@studio.unibo.it> 5478 M: Luca Risolia <luca.risolia@studio.unibo.it>
5467 L: linux-usb@vger.kernel.org 5479 L: linux-usb@vger.kernel.org
5468 L: linux-media@vger.kernel.org 5480 L: linux-media@vger.kernel.org
5469 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 5481 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
5470 W: http://www.linux-projects.org 5482 W: http://www.linux-projects.org
5471 S: Maintained 5483 S: Maintained
5472 F: Documentation/video4linux/w9968cf.txt 5484 F: Documentation/video4linux/w9968cf.txt
5473 F: drivers/media/video/w996* 5485 F: drivers/media/video/w996*
5474 5486
5475 USB WIRELESS RNDIS DRIVER (rndis_wlan) 5487 USB WIRELESS RNDIS DRIVER (rndis_wlan)
5476 M: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> 5488 M: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
5477 L: linux-wireless@vger.kernel.org 5489 L: linux-wireless@vger.kernel.org
5478 S: Maintained 5490 S: Maintained
5479 F: drivers/net/wireless/rndis_wlan.c 5491 F: drivers/net/wireless/rndis_wlan.c
5480 5492
5481 USB XHCI DRIVER 5493 USB XHCI DRIVER
5482 M: Sarah Sharp <sarah.a.sharp@intel.com> 5494 M: Sarah Sharp <sarah.a.sharp@intel.com>
5483 L: linux-usb@vger.kernel.org 5495 L: linux-usb@vger.kernel.org
5484 S: Supported 5496 S: Supported
5485 5497
5486 USB ZC0301 DRIVER 5498 USB ZC0301 DRIVER
5487 M: Luca Risolia <luca.risolia@studio.unibo.it> 5499 M: Luca Risolia <luca.risolia@studio.unibo.it>
5488 L: linux-usb@vger.kernel.org 5500 L: linux-usb@vger.kernel.org
5489 L: linux-media@vger.kernel.org 5501 L: linux-media@vger.kernel.org
5490 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 5502 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
5491 W: http://www.linux-projects.org 5503 W: http://www.linux-projects.org
5492 S: Maintained 5504 S: Maintained
5493 F: Documentation/video4linux/zc0301.txt 5505 F: Documentation/video4linux/zc0301.txt
5494 F: drivers/media/video/zc0301/ 5506 F: drivers/media/video/zc0301/
5495 5507
5496 USB ZD1201 DRIVER 5508 USB ZD1201 DRIVER
5497 M: Jeroen Vreeken <pe1rxq@amsat.org> 5509 M: Jeroen Vreeken <pe1rxq@amsat.org>
5498 L: linux-usb@vger.kernel.org 5510 L: linux-usb@vger.kernel.org
5499 W: http://linux-lc100020.sourceforge.net 5511 W: http://linux-lc100020.sourceforge.net
5500 S: Maintained 5512 S: Maintained
5501 F: drivers/net/wireless/zd1201.* 5513 F: drivers/net/wireless/zd1201.*
5502 5514
5503 USB ZR364XX DRIVER 5515 USB ZR364XX DRIVER
5504 M: Antoine Jacquet <royale@zerezo.com> 5516 M: Antoine Jacquet <royale@zerezo.com>
5505 L: linux-usb@vger.kernel.org 5517 L: linux-usb@vger.kernel.org
5506 L: linux-media@vger.kernel.org 5518 L: linux-media@vger.kernel.org
5507 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git 5519 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git
5508 W: http://royale.zerezo.com/zr364xx/ 5520 W: http://royale.zerezo.com/zr364xx/
5509 S: Maintained 5521 S: Maintained
5510 F: Documentation/video4linux/zr364xx.txt 5522 F: Documentation/video4linux/zr364xx.txt
5511 F: drivers/media/video/zr364xx.c 5523 F: drivers/media/video/zr364xx.c
5512 5524
5513 USER-MODE LINUX (UML) 5525 USER-MODE LINUX (UML)
5514 M: Jeff Dike <jdike@addtoit.com> 5526 M: Jeff Dike <jdike@addtoit.com>
5515 L: user-mode-linux-devel@lists.sourceforge.net 5527 L: user-mode-linux-devel@lists.sourceforge.net
5516 L: user-mode-linux-user@lists.sourceforge.net 5528 L: user-mode-linux-user@lists.sourceforge.net
5517 W: http://user-mode-linux.sourceforge.net 5529 W: http://user-mode-linux.sourceforge.net
5518 S: Maintained 5530 S: Maintained
5519 F: Documentation/uml/ 5531 F: Documentation/uml/
5520 F: arch/um/ 5532 F: arch/um/
5521 F: fs/hostfs/ 5533 F: fs/hostfs/
5522 F: fs/hppfs/ 5534 F: fs/hppfs/
5523 5535
5524 USERSPACE I/O (UIO) 5536 USERSPACE I/O (UIO)
5525 M: "Hans J. Koch" <hjk@linutronix.de> 5537 M: "Hans J. Koch" <hjk@linutronix.de>
5526 M: Greg Kroah-Hartman <gregkh@suse.de> 5538 M: Greg Kroah-Hartman <gregkh@suse.de>
5527 S: Maintained 5539 S: Maintained
5528 F: Documentation/DocBook/uio-howto.tmpl 5540 F: Documentation/DocBook/uio-howto.tmpl
5529 F: drivers/uio/ 5541 F: drivers/uio/
5530 F: include/linux/uio*.h 5542 F: include/linux/uio*.h
5531 5543
5532 UTIL-LINUX-NG PACKAGE 5544 UTIL-LINUX-NG PACKAGE
5533 M: Karel Zak <kzak@redhat.com> 5545 M: Karel Zak <kzak@redhat.com>
5534 L: util-linux-ng@vger.kernel.org 5546 L: util-linux-ng@vger.kernel.org
5535 W: http://kernel.org/~kzak/util-linux-ng/ 5547 W: http://kernel.org/~kzak/util-linux-ng/
5536 T: git git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git 5548 T: git git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git
5537 S: Maintained 5549 S: Maintained
5538 5550
5539 UVESAFB DRIVER 5551 UVESAFB DRIVER
5540 M: Michal Januszewski <spock@gentoo.org> 5552 M: Michal Januszewski <spock@gentoo.org>
5541 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 5553 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
5542 W: http://dev.gentoo.org/~spock/projects/uvesafb/ 5554 W: http://dev.gentoo.org/~spock/projects/uvesafb/
5543 S: Maintained 5555 S: Maintained
5544 F: Documentation/fb/uvesafb.txt 5556 F: Documentation/fb/uvesafb.txt
5545 F: drivers/video/uvesafb.* 5557 F: drivers/video/uvesafb.*
5546 5558
5547 VFAT/FAT/MSDOS FILESYSTEM 5559 VFAT/FAT/MSDOS FILESYSTEM
5548 M: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> 5560 M: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
5549 S: Maintained 5561 S: Maintained
5550 F: Documentation/filesystems/vfat.txt 5562 F: Documentation/filesystems/vfat.txt
5551 F: fs/fat/ 5563 F: fs/fat/
5552 5564
5553 VIA RHINE NETWORK DRIVER 5565 VIA RHINE NETWORK DRIVER
5554 M: Roger Luethi <rl@hellgate.ch> 5566 M: Roger Luethi <rl@hellgate.ch>
5555 S: Maintained 5567 S: Maintained
5556 F: drivers/net/via-rhine.c 5568 F: drivers/net/via-rhine.c
5557 5569
5558 VIAPRO SMBUS DRIVER 5570 VIAPRO SMBUS DRIVER
5559 M: Jean Delvare <khali@linux-fr.org> 5571 M: Jean Delvare <khali@linux-fr.org>
5560 L: linux-i2c@vger.kernel.org 5572 L: linux-i2c@vger.kernel.org
5561 S: Maintained 5573 S: Maintained
5562 F: Documentation/i2c/busses/i2c-viapro 5574 F: Documentation/i2c/busses/i2c-viapro
5563 F: drivers/i2c/busses/i2c-viapro.c 5575 F: drivers/i2c/busses/i2c-viapro.c
5564 5576
5565 VIA SD/MMC CARD CONTROLLER DRIVER 5577 VIA SD/MMC CARD CONTROLLER DRIVER
5566 M: Joseph Chan <JosephChan@via.com.tw> 5578 M: Joseph Chan <JosephChan@via.com.tw>
5567 M: Harald Welte <HaraldWelte@viatech.com> 5579 M: Harald Welte <HaraldWelte@viatech.com>
5568 S: Maintained 5580 S: Maintained
5569 F: drivers/mmc/host/via-sdmmc.c 5581 F: drivers/mmc/host/via-sdmmc.c
5570 5582
5571 VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER 5583 VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
5572 M: Joseph Chan <JosephChan@via.com.tw> 5584 M: Joseph Chan <JosephChan@via.com.tw>
5573 M: Scott Fang <ScottFang@viatech.com.cn> 5585 M: Scott Fang <ScottFang@viatech.com.cn>
5574 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers) 5586 L: linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
5575 S: Maintained 5587 S: Maintained
5576 F: drivers/video/via/ 5588 F: drivers/video/via/
5577 5589
5578 VIA VELOCITY NETWORK DRIVER 5590 VIA VELOCITY NETWORK DRIVER
5579 M: Francois Romieu <romieu@fr.zoreil.com> 5591 M: Francois Romieu <romieu@fr.zoreil.com>
5580 L: netdev@vger.kernel.org 5592 L: netdev@vger.kernel.org
5581 S: Maintained 5593 S: Maintained
5582 F: drivers/net/via-velocity.* 5594 F: drivers/net/via-velocity.*
5583 5595
5584 VLAN (802.1Q) 5596 VLAN (802.1Q)
5585 M: Patrick McHardy <kaber@trash.net> 5597 M: Patrick McHardy <kaber@trash.net>
5586 L: netdev@vger.kernel.org 5598 L: netdev@vger.kernel.org
5587 S: Maintained 5599 S: Maintained
5588 F: drivers/net/macvlan.c 5600 F: drivers/net/macvlan.c
5589 F: include/linux/if_*vlan.h 5601 F: include/linux/if_*vlan.h
5590 F: net/8021q/ 5602 F: net/8021q/
5591 5603
5592 VLYNQ BUS 5604 VLYNQ BUS
5593 M: Florian Fainelli <florian@openwrt.org> 5605 M: Florian Fainelli <florian@openwrt.org>
5594 L: openwrt-devel@lists.openwrt.org 5606 L: openwrt-devel@lists.openwrt.org
5595 S: Maintained 5607 S: Maintained
5596 F: drivers/vlynq/vlynq.c 5608 F: drivers/vlynq/vlynq.c
5597 F: include/linux/vlynq.h 5609 F: include/linux/vlynq.h
5598 5610
5599 VOLTAGE AND CURRENT REGULATOR FRAMEWORK 5611 VOLTAGE AND CURRENT REGULATOR FRAMEWORK
5600 M: Liam Girdwood <lrg@slimlogic.co.uk> 5612 M: Liam Girdwood <lrg@slimlogic.co.uk>
5601 M: Mark Brown <broonie@opensource.wolfsonmicro.com> 5613 M: Mark Brown <broonie@opensource.wolfsonmicro.com>
5602 W: http://opensource.wolfsonmicro.com/node/15 5614 W: http://opensource.wolfsonmicro.com/node/15
5603 W: http://www.slimlogic.co.uk/?p=48 5615 W: http://www.slimlogic.co.uk/?p=48
5604 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6.git 5616 T: git git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6.git
5605 S: Supported 5617 S: Supported
5606 F: drivers/regulator/ 5618 F: drivers/regulator/
5607 F: include/linux/regulator/ 5619 F: include/linux/regulator/
5608 5620
5609 VT1211 HARDWARE MONITOR DRIVER 5621 VT1211 HARDWARE MONITOR DRIVER
5610 M: Juerg Haefliger <juergh@gmail.com> 5622 M: Juerg Haefliger <juergh@gmail.com>
5611 L: lm-sensors@lm-sensors.org 5623 L: lm-sensors@lm-sensors.org
5612 S: Maintained 5624 S: Maintained
5613 F: Documentation/hwmon/vt1211 5625 F: Documentation/hwmon/vt1211
5614 F: drivers/hwmon/vt1211.c 5626 F: drivers/hwmon/vt1211.c
5615 5627
5616 VT8231 HARDWARE MONITOR DRIVER 5628 VT8231 HARDWARE MONITOR DRIVER
5617 M: Roger Lucas <vt8231@hiddenengine.co.uk> 5629 M: Roger Lucas <vt8231@hiddenengine.co.uk>
5618 L: lm-sensors@lm-sensors.org 5630 L: lm-sensors@lm-sensors.org
5619 S: Maintained 5631 S: Maintained
5620 F: drivers/hwmon/vt8231.c 5632 F: drivers/hwmon/vt8231.c
5621 5633
5622 W1 DALLAS'S 1-WIRE BUS 5634 W1 DALLAS'S 1-WIRE BUS
5623 M: Evgeniy Polyakov <johnpol@2ka.mipt.ru> 5635 M: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
5624 S: Maintained 5636 S: Maintained
5625 F: Documentation/w1/ 5637 F: Documentation/w1/
5626 F: drivers/w1/ 5638 F: drivers/w1/
5627 5639
5628 W83791D HARDWARE MONITORING DRIVER 5640 W83791D HARDWARE MONITORING DRIVER
5629 M: Marc Hulsman <m.hulsman@tudelft.nl> 5641 M: Marc Hulsman <m.hulsman@tudelft.nl>
5630 L: lm-sensors@lm-sensors.org 5642 L: lm-sensors@lm-sensors.org
5631 S: Maintained 5643 S: Maintained
5632 F: Documentation/hwmon/w83791d 5644 F: Documentation/hwmon/w83791d
5633 F: drivers/hwmon/w83791d.c 5645 F: drivers/hwmon/w83791d.c
5634 5646
5635 W83793 HARDWARE MONITORING DRIVER 5647 W83793 HARDWARE MONITORING DRIVER
5636 M: Rudolf Marek <r.marek@assembler.cz> 5648 M: Rudolf Marek <r.marek@assembler.cz>
5637 L: lm-sensors@lm-sensors.org 5649 L: lm-sensors@lm-sensors.org
5638 S: Maintained 5650 S: Maintained
5639 F: Documentation/hwmon/w83793 5651 F: Documentation/hwmon/w83793
5640 F: drivers/hwmon/w83793.c 5652 F: drivers/hwmon/w83793.c
5641 5653
5642 W83L51xD SD/MMC CARD INTERFACE DRIVER 5654 W83L51xD SD/MMC CARD INTERFACE DRIVER
5643 M: Pierre Ossman <pierre@ossman.eu> 5655 M: Pierre Ossman <pierre@ossman.eu>
5644 S: Maintained 5656 S: Maintained
5645 F: drivers/mmc/host/wbsd.* 5657 F: drivers/mmc/host/wbsd.*
5646 5658
5647 WATCHDOG DEVICE DRIVERS 5659 WATCHDOG DEVICE DRIVERS
5648 M: Wim Van Sebroeck <wim@iguana.be> 5660 M: Wim Van Sebroeck <wim@iguana.be>
5649 T: git git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git 5661 T: git git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git
5650 S: Maintained 5662 S: Maintained
5651 F: Documentation/watchdog/ 5663 F: Documentation/watchdog/
5652 F: drivers/watchdog/ 5664 F: drivers/watchdog/
5653 F: include/linux/watchdog.h 5665 F: include/linux/watchdog.h
5654 5666
5655 WAVELAN NETWORK DRIVER & WIRELESS EXTENSIONS 5667 WAVELAN NETWORK DRIVER & WIRELESS EXTENSIONS
5656 M: Jean Tourrilhes <jt@hpl.hp.com> 5668 M: Jean Tourrilhes <jt@hpl.hp.com>
5657 L: linux-wireless@vger.kernel.org 5669 L: linux-wireless@vger.kernel.org
5658 W: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ 5670 W: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
5659 S: Maintained 5671 S: Maintained
5660 F: Documentation/networking/wavelan.txt 5672 F: Documentation/networking/wavelan.txt
5661 F: drivers/net/wireless/wavelan* 5673 F: drivers/net/wireless/wavelan*
5662 5674
5663 WD7000 SCSI DRIVER 5675 WD7000 SCSI DRIVER
5664 M: Miroslav Zagorac <zaga@fly.cc.fer.hr> 5676 M: Miroslav Zagorac <zaga@fly.cc.fer.hr>
5665 L: linux-scsi@vger.kernel.org 5677 L: linux-scsi@vger.kernel.org
5666 S: Maintained 5678 S: Maintained
5667 F: drivers/scsi/wd7000.c 5679 F: drivers/scsi/wd7000.c
5668 5680
5669 WINBOND CIR DRIVER 5681 WINBOND CIR DRIVER
5670 P: David Hรคrdeman 5682 P: David Hรคrdeman
5671 M: david@hardeman.nu 5683 M: david@hardeman.nu
5672 S: Maintained 5684 S: Maintained
5673 F: drivers/input/misc/winbond-cir.c 5685 F: drivers/input/misc/winbond-cir.c
5674 5686
5675 WIMAX STACK 5687 WIMAX STACK
5676 M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com> 5688 M: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
5677 M: linux-wimax@intel.com 5689 M: linux-wimax@intel.com
5678 L: wimax@linuxwimax.org 5690 L: wimax@linuxwimax.org
5679 S: Supported 5691 S: Supported
5680 W: http://linuxwimax.org 5692 W: http://linuxwimax.org
5681 5693
5682 WIMEDIA LLC PROTOCOL (WLP) SUBSYSTEM 5694 WIMEDIA LLC PROTOCOL (WLP) SUBSYSTEM
5683 M: David Vrabel <david.vrabel@csr.com> 5695 M: David Vrabel <david.vrabel@csr.com>
5684 S: Maintained 5696 S: Maintained
5685 F: include/linux/wlp.h 5697 F: include/linux/wlp.h
5686 F: drivers/uwb/wlp/ 5698 F: drivers/uwb/wlp/
5687 5699
5688 WISTRON LAPTOP BUTTON DRIVER 5700 WISTRON LAPTOP BUTTON DRIVER
5689 M: Miloslav Trmac <mitr@volny.cz> 5701 M: Miloslav Trmac <mitr@volny.cz>
5690 S: Maintained 5702 S: Maintained
5691 F: drivers/input/misc/wistron_btns.c 5703 F: drivers/input/misc/wistron_btns.c
5692 5704
5693 WL1251 WIRELESS DRIVER 5705 WL1251 WIRELESS DRIVER
5694 M: Kalle Valo <kalle.valo@nokia.com> 5706 M: Kalle Valo <kalle.valo@nokia.com>
5695 L: linux-wireless@vger.kernel.org 5707 L: linux-wireless@vger.kernel.org
5696 W: http://wireless.kernel.org 5708 W: http://wireless.kernel.org
5697 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git 5709 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
5698 S: Maintained 5710 S: Maintained
5699 F: drivers/net/wireless/wl12xx/* 5711 F: drivers/net/wireless/wl12xx/*
5700 X: drivers/net/wireless/wl12xx/wl1271* 5712 X: drivers/net/wireless/wl12xx/wl1271*
5701 5713
5702 WL1271 WIRELESS DRIVER 5714 WL1271 WIRELESS DRIVER
5703 M: Luciano Coelho <luciano.coelho@nokia.com> 5715 M: Luciano Coelho <luciano.coelho@nokia.com>
5704 L: linux-wireless@vger.kernel.org 5716 L: linux-wireless@vger.kernel.org
5705 W: http://wireless.kernel.org 5717 W: http://wireless.kernel.org
5706 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git 5718 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
5707 S: Maintained 5719 S: Maintained
5708 F: drivers/net/wireless/wl12xx/wl1271* 5720 F: drivers/net/wireless/wl12xx/wl1271*
5709 5721
5710 WL3501 WIRELESS PCMCIA CARD DRIVER 5722 WL3501 WIRELESS PCMCIA CARD DRIVER
5711 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> 5723 M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
5712 L: linux-wireless@vger.kernel.org 5724 L: linux-wireless@vger.kernel.org
5713 W: http://oops.ghostprotocols.net:81/blog 5725 W: http://oops.ghostprotocols.net:81/blog
5714 S: Maintained 5726 S: Maintained
5715 F: drivers/net/wireless/wl3501* 5727 F: drivers/net/wireless/wl3501*
5716 5728
5717 WM97XX TOUCHSCREEN DRIVERS 5729 WM97XX TOUCHSCREEN DRIVERS
5718 M: Mark Brown <broonie@opensource.wolfsonmicro.com> 5730 M: Mark Brown <broonie@opensource.wolfsonmicro.com>
5719 M: Liam Girdwood <lrg@slimlogic.co.uk> 5731 M: Liam Girdwood <lrg@slimlogic.co.uk>
5720 L: linux-input@vger.kernel.org 5732 L: linux-input@vger.kernel.org
5721 T: git git://opensource.wolfsonmicro.com/linux-2.6-touch 5733 T: git git://opensource.wolfsonmicro.com/linux-2.6-touch
5722 W: http://opensource.wolfsonmicro.com/node/7 5734 W: http://opensource.wolfsonmicro.com/node/7
5723 S: Supported 5735 S: Supported
5724 F: drivers/input/touchscreen/*wm97* 5736 F: drivers/input/touchscreen/*wm97*
5725 F: include/linux/wm97xx.h 5737 F: include/linux/wm97xx.h
5726 5738
5727 WOLFSON MICROELECTRONICS PMIC DRIVERS 5739 WOLFSON MICROELECTRONICS PMIC DRIVERS
5728 P: Mark Brown 5740 P: Mark Brown
5729 M: broonie@opensource.wolfsonmicro.com 5741 M: broonie@opensource.wolfsonmicro.com
5730 L: linux-kernel@vger.kernel.org 5742 L: linux-kernel@vger.kernel.org
5731 T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus 5743 T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus
5732 W: http://opensource.wolfsonmicro.com/node/8 5744 W: http://opensource.wolfsonmicro.com/node/8
5733 S: Supported 5745 S: Supported
5734 F: drivers/leds/leds-wm83*.c 5746 F: drivers/leds/leds-wm83*.c
5735 F: drivers/mfd/wm8*.c 5747 F: drivers/mfd/wm8*.c
5736 F: drivers/power/wm83*.c 5748 F: drivers/power/wm83*.c
5737 F: drivers/rtc/rtc-wm83*.c 5749 F: drivers/rtc/rtc-wm83*.c
5738 F: drivers/regulator/wm8*.c 5750 F: drivers/regulator/wm8*.c
5739 F: drivers/video/backlight/wm83*_bl.c 5751 F: drivers/video/backlight/wm83*_bl.c
5740 F: drivers/watchdog/wm83*_wdt.c 5752 F: drivers/watchdog/wm83*_wdt.c
5741 F: include/linux/mfd/wm831x/ 5753 F: include/linux/mfd/wm831x/
5742 F: include/linux/mfd/wm8350/ 5754 F: include/linux/mfd/wm8350/
5743 F: include/linux/mfd/wm8400/ 5755 F: include/linux/mfd/wm8400/
5744 F: sound/soc/codecs/wm8350.c 5756 F: sound/soc/codecs/wm8350.c
5745 F: sound/soc/codecs/wm8400.c 5757 F: sound/soc/codecs/wm8400.c
5746 5758
5747 X.25 NETWORK LAYER 5759 X.25 NETWORK LAYER
5748 M: Henner Eisen <eis@baty.hanse.de> 5760 M: Henner Eisen <eis@baty.hanse.de>
5749 L: linux-x25@vger.kernel.org 5761 L: linux-x25@vger.kernel.org
5750 S: Maintained 5762 S: Maintained
5751 F: Documentation/networking/x25* 5763 F: Documentation/networking/x25*
5752 F: include/net/x25* 5764 F: include/net/x25*
5753 F: net/x25/ 5765 F: net/x25/
5754 5766
5755 X86 ARCHITECTURE (32-BIT AND 64-BIT) 5767 X86 ARCHITECTURE (32-BIT AND 64-BIT)
5756 M: Thomas Gleixner <tglx@linutronix.de> 5768 M: Thomas Gleixner <tglx@linutronix.de>
5757 M: Ingo Molnar <mingo@redhat.com> 5769 M: Ingo Molnar <mingo@redhat.com>
5758 M: "H. Peter Anvin" <hpa@zytor.com> 5770 M: "H. Peter Anvin" <hpa@zytor.com>
5759 M: x86@kernel.org 5771 M: x86@kernel.org
5760 T: git git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git 5772 T: git git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
5761 S: Maintained 5773 S: Maintained
5762 F: Documentation/x86/ 5774 F: Documentation/x86/
5763 F: arch/x86/ 5775 F: arch/x86/
5764 5776
5765 XEN HYPERVISOR INTERFACE 5777 XEN HYPERVISOR INTERFACE
5766 M: Jeremy Fitzhardinge <jeremy@xensource.com> 5778 M: Jeremy Fitzhardinge <jeremy@xensource.com>
5767 M: Chris Wright <chrisw@sous-sol.org> 5779 M: Chris Wright <chrisw@sous-sol.org>
5768 L: virtualization@lists.osdl.org 5780 L: virtualization@lists.osdl.org
5769 L: xen-devel@lists.xensource.com 5781 L: xen-devel@lists.xensource.com
5770 S: Supported 5782 S: Supported
5771 F: arch/x86/xen/ 5783 F: arch/x86/xen/
5772 F: drivers/*/xen-*front.c 5784 F: drivers/*/xen-*front.c
5773 F: drivers/xen/ 5785 F: drivers/xen/
5774 F: arch/x86/include/asm/xen/ 5786 F: arch/x86/include/asm/xen/
5775 F: include/xen/ 5787 F: include/xen/
5776 5788
5777 XFS FILESYSTEM 5789 XFS FILESYSTEM
5778 P: Silicon Graphics Inc 5790 P: Silicon Graphics Inc
5779 M: Alex Elder <aelder@sgi.com> 5791 M: Alex Elder <aelder@sgi.com>
5780 M: xfs-masters@oss.sgi.com 5792 M: xfs-masters@oss.sgi.com
5781 L: xfs@oss.sgi.com 5793 L: xfs@oss.sgi.com
5782 W: http://oss.sgi.com/projects/xfs 5794 W: http://oss.sgi.com/projects/xfs
5783 T: git git://oss.sgi.com/xfs/xfs.git 5795 T: git git://oss.sgi.com/xfs/xfs.git
5784 S: Supported 5796 S: Supported
5785 F: Documentation/filesystems/xfs.txt 5797 F: Documentation/filesystems/xfs.txt
5786 F: fs/xfs/ 5798 F: fs/xfs/
5787 5799
5788 XILINX SYSTEMACE DRIVER 5800 XILINX SYSTEMACE DRIVER
5789 M: Grant Likely <grant.likely@secretlab.ca> 5801 M: Grant Likely <grant.likely@secretlab.ca>
5790 W: http://www.secretlab.ca/ 5802 W: http://www.secretlab.ca/
5791 S: Maintained 5803 S: Maintained
5792 F: drivers/block/xsysace.c 5804 F: drivers/block/xsysace.c
5793 5805
5794 XILINX UARTLITE SERIAL DRIVER 5806 XILINX UARTLITE SERIAL DRIVER
5795 M: Peter Korsgaard <jacmet@sunsite.dk> 5807 M: Peter Korsgaard <jacmet@sunsite.dk>
5796 L: linux-serial@vger.kernel.org 5808 L: linux-serial@vger.kernel.org
5797 S: Maintained 5809 S: Maintained
5798 F: drivers/serial/uartlite.c 5810 F: drivers/serial/uartlite.c
5799 5811
5800 YAM DRIVER FOR AX.25 5812 YAM DRIVER FOR AX.25
5801 M: Jean-Paul Roubelat <jpr@f6fbb.org> 5813 M: Jean-Paul Roubelat <jpr@f6fbb.org>
5802 L: linux-hams@vger.kernel.org 5814 L: linux-hams@vger.kernel.org
5803 S: Maintained 5815 S: Maintained
5804 F: drivers/net/hamradio/yam* 5816 F: drivers/net/hamradio/yam*
5805 F: include/linux/yam.h 5817 F: include/linux/yam.h
5806 5818
5807 YEALINK PHONE DRIVER 5819 YEALINK PHONE DRIVER
5808 M: Henk Vergonet <Henk.Vergonet@gmail.com> 5820 M: Henk Vergonet <Henk.Vergonet@gmail.com>
5809 L: usbb2k-api-dev@nongnu.org 5821 L: usbb2k-api-dev@nongnu.org
5810 S: Maintained 5822 S: Maintained
5811 F: Documentation/input/yealink.txt 5823 F: Documentation/input/yealink.txt
5812 F: drivers/input/misc/yealink.* 5824 F: drivers/input/misc/yealink.*
5813 5825
5814 Z8530 DRIVER FOR AX.25 5826 Z8530 DRIVER FOR AX.25
5815 M: Joerg Reuter <jreuter@yaina.de> 5827 M: Joerg Reuter <jreuter@yaina.de>
5816 W: http://yaina.de/jreuter/ 5828 W: http://yaina.de/jreuter/
5817 W: http://www.qsl.net/dl1bke/ 5829 W: http://www.qsl.net/dl1bke/
5818 L: linux-hams@vger.kernel.org 5830 L: linux-hams@vger.kernel.org
5819 S: Maintained 5831 S: Maintained
5820 F: Documentation/networking/z8530drv.txt 5832 F: Documentation/networking/z8530drv.txt
5821 F: drivers/net/hamradio/*scc.c 5833 F: drivers/net/hamradio/*scc.c
5822 F: drivers/net/hamradio/z8530.h 5834 F: drivers/net/hamradio/z8530.h
5823 5835
5824 ZD1211RW WIRELESS DRIVER 5836 ZD1211RW WIRELESS DRIVER
5825 M: Daniel Drake <dsd@gentoo.org> 5837 M: Daniel Drake <dsd@gentoo.org>
5826 M: Ulrich Kunitz <kune@deine-taler.de> 5838 M: Ulrich Kunitz <kune@deine-taler.de>
5827 W: http://zd1211.ath.cx/wiki/DriverRewrite 5839 W: http://zd1211.ath.cx/wiki/DriverRewrite
5828 L: linux-wireless@vger.kernel.org 5840 L: linux-wireless@vger.kernel.org
5829 L: zd1211-devs@lists.sourceforge.net (subscribers-only) 5841 L: zd1211-devs@lists.sourceforge.net (subscribers-only)
5830 S: Maintained 5842 S: Maintained
5831 F: drivers/net/wireless/zd1211rw/ 5843 F: drivers/net/wireless/zd1211rw/
5832 5844
5833 ZR36067 VIDEO FOR LINUX DRIVER 5845 ZR36067 VIDEO FOR LINUX DRIVER
5834 L: mjpeg-users@lists.sourceforge.net 5846 L: mjpeg-users@lists.sourceforge.net
5835 L: linux-media@vger.kernel.org 5847 L: linux-media@vger.kernel.org
5836 W: http://mjpeg.sourceforge.net/driver-zoran/ 5848 W: http://mjpeg.sourceforge.net/driver-zoran/
5837 T: Mercurial http://linuxtv.org/hg/v4l-dvb 5849 T: Mercurial http://linuxtv.org/hg/v4l-dvb
5838 S: Odd Fixes 5850 S: Odd Fixes
5839 F: drivers/media/video/zoran/ 5851 F: drivers/media/video/zoran/
5840 5852
5841 ZS DECSTATION Z85C30 SERIAL DRIVER 5853 ZS DECSTATION Z85C30 SERIAL DRIVER
5842 M: "Maciej W. Rozycki" <macro@linux-mips.org> 5854 M: "Maciej W. Rozycki" <macro@linux-mips.org>
5843 S: Maintained 5855 S: Maintained
5844 F: drivers/serial/zs.* 5856 F: drivers/serial/zs.*
5845 5857
5846 THE REST 5858 THE REST
5847 M: Linus Torvalds <torvalds@linux-foundation.org> 5859 M: Linus Torvalds <torvalds@linux-foundation.org>
5848 L: linux-kernel@vger.kernel.org 5860 L: linux-kernel@vger.kernel.org
5849 T: git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 5861 T: git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
5850 S: Buried alive in reporters 5862 S: Buried alive in reporters
5851 F: * 5863 F: *
5852 F: */ 5864 F: */
5853 5865
1 # x86 configuration 1 # x86 configuration
2 mainmenu "Linux Kernel Configuration for x86" 2 mainmenu "Linux Kernel Configuration for x86"
3 3
4 # Select 32 or 64 bit 4 # Select 32 or 64 bit
5 config 64BIT 5 config 64BIT
6 bool "64-bit kernel" if ARCH = "x86" 6 bool "64-bit kernel" if ARCH = "x86"
7 default ARCH = "x86_64" 7 default ARCH = "x86_64"
8 ---help--- 8 ---help---
9 Say yes to build a 64-bit kernel - formerly known as x86_64 9 Say yes to build a 64-bit kernel - formerly known as x86_64
10 Say no to build a 32-bit kernel - formerly known as i386 10 Say no to build a 32-bit kernel - formerly known as i386
11 11
12 config X86_32 12 config X86_32
13 def_bool !64BIT 13 def_bool !64BIT
14 14
15 config X86_64 15 config X86_64
16 def_bool 64BIT 16 def_bool 64BIT
17 17
18 ### Arch settings 18 ### Arch settings
19 config X86 19 config X86
20 def_bool y 20 def_bool y
21 select HAVE_AOUT if X86_32 21 select HAVE_AOUT if X86_32
22 select HAVE_READQ 22 select HAVE_READQ
23 select HAVE_WRITEQ 23 select HAVE_WRITEQ
24 select HAVE_UNSTABLE_SCHED_CLOCK 24 select HAVE_UNSTABLE_SCHED_CLOCK
25 select HAVE_IDE 25 select HAVE_IDE
26 select HAVE_OPROFILE 26 select HAVE_OPROFILE
27 select HAVE_PERF_EVENTS if (!M386 && !M486) 27 select HAVE_PERF_EVENTS if (!M386 && !M486)
28 select HAVE_IOREMAP_PROT 28 select HAVE_IOREMAP_PROT
29 select HAVE_KPROBES 29 select HAVE_KPROBES
30 select ARCH_WANT_OPTIONAL_GPIOLIB 30 select ARCH_WANT_OPTIONAL_GPIOLIB
31 select ARCH_WANT_FRAME_POINTERS 31 select ARCH_WANT_FRAME_POINTERS
32 select HAVE_DMA_ATTRS 32 select HAVE_DMA_ATTRS
33 select HAVE_KRETPROBES 33 select HAVE_KRETPROBES
34 select HAVE_FTRACE_MCOUNT_RECORD 34 select HAVE_FTRACE_MCOUNT_RECORD
35 select HAVE_DYNAMIC_FTRACE 35 select HAVE_DYNAMIC_FTRACE
36 select HAVE_FUNCTION_TRACER 36 select HAVE_FUNCTION_TRACER
37 select HAVE_FUNCTION_GRAPH_TRACER 37 select HAVE_FUNCTION_GRAPH_TRACER
38 select HAVE_FUNCTION_GRAPH_FP_TEST 38 select HAVE_FUNCTION_GRAPH_FP_TEST
39 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 39 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
40 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE 40 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
41 select HAVE_SYSCALL_TRACEPOINTS 41 select HAVE_SYSCALL_TRACEPOINTS
42 select HAVE_KVM 42 select HAVE_KVM
43 select HAVE_ARCH_KGDB 43 select HAVE_ARCH_KGDB
44 select HAVE_ARCH_TRACEHOOK 44 select HAVE_ARCH_TRACEHOOK
45 select HAVE_GENERIC_DMA_COHERENT if X86_32 45 select HAVE_GENERIC_DMA_COHERENT if X86_32
46 select HAVE_EFFICIENT_UNALIGNED_ACCESS 46 select HAVE_EFFICIENT_UNALIGNED_ACCESS
47 select USER_STACKTRACE_SUPPORT 47 select USER_STACKTRACE_SUPPORT
48 select HAVE_DMA_API_DEBUG 48 select HAVE_DMA_API_DEBUG
49 select HAVE_KERNEL_GZIP 49 select HAVE_KERNEL_GZIP
50 select HAVE_KERNEL_BZIP2 50 select HAVE_KERNEL_BZIP2
51 select HAVE_KERNEL_LZMA 51 select HAVE_KERNEL_LZMA
52 select HAVE_ARCH_KMEMCHECK 52 select HAVE_ARCH_KMEMCHECK
53 53
54 config OUTPUT_FORMAT 54 config OUTPUT_FORMAT
55 string 55 string
56 default "elf32-i386" if X86_32 56 default "elf32-i386" if X86_32
57 default "elf64-x86-64" if X86_64 57 default "elf64-x86-64" if X86_64
58 58
59 config ARCH_DEFCONFIG 59 config ARCH_DEFCONFIG
60 string 60 string
61 default "arch/x86/configs/i386_defconfig" if X86_32 61 default "arch/x86/configs/i386_defconfig" if X86_32
62 default "arch/x86/configs/x86_64_defconfig" if X86_64 62 default "arch/x86/configs/x86_64_defconfig" if X86_64
63 63
64 config GENERIC_TIME 64 config GENERIC_TIME
65 def_bool y 65 def_bool y
66 66
67 config GENERIC_CMOS_UPDATE 67 config GENERIC_CMOS_UPDATE
68 def_bool y 68 def_bool y
69 69
70 config CLOCKSOURCE_WATCHDOG 70 config CLOCKSOURCE_WATCHDOG
71 def_bool y 71 def_bool y
72 72
73 config GENERIC_CLOCKEVENTS 73 config GENERIC_CLOCKEVENTS
74 def_bool y 74 def_bool y
75 75
76 config GENERIC_CLOCKEVENTS_BROADCAST 76 config GENERIC_CLOCKEVENTS_BROADCAST
77 def_bool y 77 def_bool y
78 depends on X86_64 || (X86_32 && X86_LOCAL_APIC) 78 depends on X86_64 || (X86_32 && X86_LOCAL_APIC)
79 79
80 config LOCKDEP_SUPPORT 80 config LOCKDEP_SUPPORT
81 def_bool y 81 def_bool y
82 82
83 config STACKTRACE_SUPPORT 83 config STACKTRACE_SUPPORT
84 def_bool y 84 def_bool y
85 85
86 config HAVE_LATENCYTOP_SUPPORT 86 config HAVE_LATENCYTOP_SUPPORT
87 def_bool y 87 def_bool y
88 88
89 config FAST_CMPXCHG_LOCAL 89 config FAST_CMPXCHG_LOCAL
90 bool 90 bool
91 default y 91 default y
92 92
93 config MMU 93 config MMU
94 def_bool y 94 def_bool y
95 95
96 config ZONE_DMA 96 config ZONE_DMA
97 def_bool y 97 def_bool y
98 98
99 config SBUS 99 config SBUS
100 bool 100 bool
101 101
102 config GENERIC_ISA_DMA 102 config GENERIC_ISA_DMA
103 def_bool y 103 def_bool y
104 104
105 config GENERIC_IOMAP 105 config GENERIC_IOMAP
106 def_bool y 106 def_bool y
107 107
108 config GENERIC_BUG 108 config GENERIC_BUG
109 def_bool y 109 def_bool y
110 depends on BUG 110 depends on BUG
111 select GENERIC_BUG_RELATIVE_POINTERS if X86_64 111 select GENERIC_BUG_RELATIVE_POINTERS if X86_64
112 112
113 config GENERIC_BUG_RELATIVE_POINTERS 113 config GENERIC_BUG_RELATIVE_POINTERS
114 bool 114 bool
115 115
116 config GENERIC_HWEIGHT 116 config GENERIC_HWEIGHT
117 def_bool y 117 def_bool y
118 118
119 config GENERIC_GPIO 119 config GENERIC_GPIO
120 bool 120 bool
121 121
122 config ARCH_MAY_HAVE_PC_FDC 122 config ARCH_MAY_HAVE_PC_FDC
123 def_bool y 123 def_bool y
124 124
125 config RWSEM_GENERIC_SPINLOCK 125 config RWSEM_GENERIC_SPINLOCK
126 def_bool !X86_XADD 126 def_bool !X86_XADD
127 127
128 config RWSEM_XCHGADD_ALGORITHM 128 config RWSEM_XCHGADD_ALGORITHM
129 def_bool X86_XADD 129 def_bool X86_XADD
130 130
131 config ARCH_HAS_CPU_IDLE_WAIT 131 config ARCH_HAS_CPU_IDLE_WAIT
132 def_bool y 132 def_bool y
133 133
134 config GENERIC_CALIBRATE_DELAY 134 config GENERIC_CALIBRATE_DELAY
135 def_bool y 135 def_bool y
136 136
137 config GENERIC_TIME_VSYSCALL 137 config GENERIC_TIME_VSYSCALL
138 bool 138 bool
139 default X86_64 139 default X86_64
140 140
141 config ARCH_HAS_CPU_RELAX 141 config ARCH_HAS_CPU_RELAX
142 def_bool y 142 def_bool y
143 143
144 config ARCH_HAS_DEFAULT_IDLE 144 config ARCH_HAS_DEFAULT_IDLE
145 def_bool y 145 def_bool y
146 146
147 config ARCH_HAS_CACHE_LINE_SIZE 147 config ARCH_HAS_CACHE_LINE_SIZE
148 def_bool y 148 def_bool y
149 149
150 config HAVE_SETUP_PER_CPU_AREA 150 config HAVE_SETUP_PER_CPU_AREA
151 def_bool y 151 def_bool y
152 152
153 config NEED_PER_CPU_EMBED_FIRST_CHUNK 153 config NEED_PER_CPU_EMBED_FIRST_CHUNK
154 def_bool y 154 def_bool y
155 155
156 config NEED_PER_CPU_PAGE_FIRST_CHUNK 156 config NEED_PER_CPU_PAGE_FIRST_CHUNK
157 def_bool y 157 def_bool y
158 158
159 config HAVE_CPUMASK_OF_CPU_MAP 159 config HAVE_CPUMASK_OF_CPU_MAP
160 def_bool X86_64_SMP 160 def_bool X86_64_SMP
161 161
162 config ARCH_HIBERNATION_POSSIBLE 162 config ARCH_HIBERNATION_POSSIBLE
163 def_bool y 163 def_bool y
164 164
165 config ARCH_SUSPEND_POSSIBLE 165 config ARCH_SUSPEND_POSSIBLE
166 def_bool y 166 def_bool y
167 167
168 config ZONE_DMA32 168 config ZONE_DMA32
169 bool 169 bool
170 default X86_64 170 default X86_64
171 171
172 config ARCH_POPULATES_NODE_MAP 172 config ARCH_POPULATES_NODE_MAP
173 def_bool y 173 def_bool y
174 174
175 config AUDIT_ARCH 175 config AUDIT_ARCH
176 bool 176 bool
177 default X86_64 177 default X86_64
178 178
179 config ARCH_SUPPORTS_OPTIMIZED_INLINING 179 config ARCH_SUPPORTS_OPTIMIZED_INLINING
180 def_bool y 180 def_bool y
181 181
182 config ARCH_SUPPORTS_DEBUG_PAGEALLOC 182 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
183 def_bool y 183 def_bool y
184 184
185 config HAVE_INTEL_TXT 185 config HAVE_INTEL_TXT
186 def_bool y 186 def_bool y
187 depends on EXPERIMENTAL && DMAR && ACPI 187 depends on EXPERIMENTAL && DMAR && ACPI
188 188
189 # Use the generic interrupt handling code in kernel/irq/: 189 # Use the generic interrupt handling code in kernel/irq/:
190 config GENERIC_HARDIRQS 190 config GENERIC_HARDIRQS
191 bool 191 bool
192 default y 192 default y
193 193
194 config GENERIC_HARDIRQS_NO__DO_IRQ 194 config GENERIC_HARDIRQS_NO__DO_IRQ
195 def_bool y 195 def_bool y
196 196
197 config GENERIC_IRQ_PROBE 197 config GENERIC_IRQ_PROBE
198 bool 198 bool
199 default y 199 default y
200 200
201 config GENERIC_PENDING_IRQ 201 config GENERIC_PENDING_IRQ
202 bool 202 bool
203 depends on GENERIC_HARDIRQS && SMP 203 depends on GENERIC_HARDIRQS && SMP
204 default y 204 default y
205 205
206 config USE_GENERIC_SMP_HELPERS 206 config USE_GENERIC_SMP_HELPERS
207 def_bool y 207 def_bool y
208 depends on SMP 208 depends on SMP
209 209
210 config X86_32_SMP 210 config X86_32_SMP
211 def_bool y 211 def_bool y
212 depends on X86_32 && SMP 212 depends on X86_32 && SMP
213 213
214 config X86_64_SMP 214 config X86_64_SMP
215 def_bool y 215 def_bool y
216 depends on X86_64 && SMP 216 depends on X86_64 && SMP
217 217
218 config X86_HT 218 config X86_HT
219 bool 219 bool
220 depends on SMP 220 depends on SMP
221 default y 221 default y
222 222
223 config X86_TRAMPOLINE 223 config X86_TRAMPOLINE
224 bool 224 bool
225 depends on SMP || (64BIT && ACPI_SLEEP) 225 depends on SMP || (64BIT && ACPI_SLEEP)
226 default y 226 default y
227 227
228 config X86_32_LAZY_GS 228 config X86_32_LAZY_GS
229 def_bool y 229 def_bool y
230 depends on X86_32 && !CC_STACKPROTECTOR 230 depends on X86_32 && !CC_STACKPROTECTOR
231 231
232 config KTIME_SCALAR 232 config KTIME_SCALAR
233 def_bool X86_32 233 def_bool X86_32
234 source "init/Kconfig" 234 source "init/Kconfig"
235 source "kernel/Kconfig.freezer" 235 source "kernel/Kconfig.freezer"
236 236
237 menu "Processor type and features" 237 menu "Processor type and features"
238 238
239 source "kernel/time/Kconfig" 239 source "kernel/time/Kconfig"
240 240
241 config SMP 241 config SMP
242 bool "Symmetric multi-processing support" 242 bool "Symmetric multi-processing support"
243 ---help--- 243 ---help---
244 This enables support for systems with more than one CPU. If you have 244 This enables support for systems with more than one CPU. If you have
245 a system with only one CPU, like most personal computers, say N. If 245 a system with only one CPU, like most personal computers, say N. If
246 you have a system with more than one CPU, say Y. 246 you have a system with more than one CPU, say Y.
247 247
248 If you say N here, the kernel will run on single and multiprocessor 248 If you say N here, the kernel will run on single and multiprocessor
249 machines, but will use only one CPU of a multiprocessor machine. If 249 machines, but will use only one CPU of a multiprocessor machine. If
250 you say Y here, the kernel will run on many, but not all, 250 you say Y here, the kernel will run on many, but not all,
251 singleprocessor machines. On a singleprocessor machine, the kernel 251 singleprocessor machines. On a singleprocessor machine, the kernel
252 will run faster if you say N here. 252 will run faster if you say N here.
253 253
254 Note that if you say Y here and choose architecture "586" or 254 Note that if you say Y here and choose architecture "586" or
255 "Pentium" under "Processor family", the kernel will not work on 486 255 "Pentium" under "Processor family", the kernel will not work on 486
256 architectures. Similarly, multiprocessor kernels for the "PPro" 256 architectures. Similarly, multiprocessor kernels for the "PPro"
257 architecture may not work on all Pentium based boards. 257 architecture may not work on all Pentium based boards.
258 258
259 People using multiprocessor machines who say Y here should also say 259 People using multiprocessor machines who say Y here should also say
260 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power 260 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
261 Management" code will be disabled if you say Y here. 261 Management" code will be disabled if you say Y here.
262 262
263 See also <file:Documentation/i386/IO-APIC.txt>, 263 See also <file:Documentation/i386/IO-APIC.txt>,
264 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at 264 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
265 <http://www.tldp.org/docs.html#howto>. 265 <http://www.tldp.org/docs.html#howto>.
266 266
267 If you don't know what to do here, say N. 267 If you don't know what to do here, say N.
268 268
269 config X86_X2APIC 269 config X86_X2APIC
270 bool "Support x2apic" 270 bool "Support x2apic"
271 depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP 271 depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP
272 ---help--- 272 ---help---
273 This enables x2apic support on CPUs that have this feature. 273 This enables x2apic support on CPUs that have this feature.
274 274
275 This allows 32-bit apic IDs (so it can support very large systems), 275 This allows 32-bit apic IDs (so it can support very large systems),
276 and accesses the local apic via MSRs not via mmio. 276 and accesses the local apic via MSRs not via mmio.
277 277
278 If you don't know what to do here, say N. 278 If you don't know what to do here, say N.
279 279
280 config SPARSE_IRQ 280 config SPARSE_IRQ
281 bool "Support sparse irq numbering" 281 bool "Support sparse irq numbering"
282 depends on PCI_MSI || HT_IRQ 282 depends on PCI_MSI || HT_IRQ
283 ---help--- 283 ---help---
284 This enables support for sparse irqs. This is useful for distro 284 This enables support for sparse irqs. This is useful for distro
285 kernels that want to define a high CONFIG_NR_CPUS value but still 285 kernels that want to define a high CONFIG_NR_CPUS value but still
286 want to have low kernel memory footprint on smaller machines. 286 want to have low kernel memory footprint on smaller machines.
287 287
288 ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread 288 ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread
289 out the irq_desc[] array in a more NUMA-friendly way. ) 289 out the irq_desc[] array in a more NUMA-friendly way. )
290 290
291 If you don't know what to do here, say N. 291 If you don't know what to do here, say N.
292 292
293 config NUMA_IRQ_DESC 293 config NUMA_IRQ_DESC
294 def_bool y 294 def_bool y
295 depends on SPARSE_IRQ && NUMA 295 depends on SPARSE_IRQ && NUMA
296 296
297 config X86_MPPARSE 297 config X86_MPPARSE
298 bool "Enable MPS table" if ACPI 298 bool "Enable MPS table" if ACPI
299 default y 299 default y
300 depends on X86_LOCAL_APIC 300 depends on X86_LOCAL_APIC
301 ---help--- 301 ---help---
302 For old smp systems that do not have proper acpi support. Newer systems 302 For old smp systems that do not have proper acpi support. Newer systems
303 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it 303 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
304 304
305 config X86_BIGSMP 305 config X86_BIGSMP
306 bool "Support for big SMP systems with more than 8 CPUs" 306 bool "Support for big SMP systems with more than 8 CPUs"
307 depends on X86_32 && SMP 307 depends on X86_32 && SMP
308 ---help--- 308 ---help---
309 This option is needed for the systems that have more than 8 CPUs 309 This option is needed for the systems that have more than 8 CPUs
310 310
311 if X86_32 311 if X86_32
312 config X86_EXTENDED_PLATFORM 312 config X86_EXTENDED_PLATFORM
313 bool "Support for extended (non-PC) x86 platforms" 313 bool "Support for extended (non-PC) x86 platforms"
314 default y 314 default y
315 ---help--- 315 ---help---
316 If you disable this option then the kernel will only support 316 If you disable this option then the kernel will only support
317 standard PC platforms. (which covers the vast majority of 317 standard PC platforms. (which covers the vast majority of
318 systems out there.) 318 systems out there.)
319 319
320 If you enable this option then you'll be able to select support 320 If you enable this option then you'll be able to select support
321 for the following (non-PC) 32 bit x86 platforms: 321 for the following (non-PC) 32 bit x86 platforms:
322 AMD Elan 322 AMD Elan
323 NUMAQ (IBM/Sequent) 323 NUMAQ (IBM/Sequent)
324 RDC R-321x SoC 324 RDC R-321x SoC
325 SGI 320/540 (Visual Workstation) 325 SGI 320/540 (Visual Workstation)
326 Summit/EXA (IBM x440) 326 Summit/EXA (IBM x440)
327 Unisys ES7000 IA32 series 327 Unisys ES7000 IA32 series
328 Moorestown MID devices 328 Moorestown MID devices
329 329
330 If you have one of these systems, or if you want to build a 330 If you have one of these systems, or if you want to build a
331 generic distribution kernel, say Y here - otherwise say N. 331 generic distribution kernel, say Y here - otherwise say N.
332 endif 332 endif
333 333
334 if X86_64 334 if X86_64
335 config X86_EXTENDED_PLATFORM 335 config X86_EXTENDED_PLATFORM
336 bool "Support for extended (non-PC) x86 platforms" 336 bool "Support for extended (non-PC) x86 platforms"
337 default y 337 default y
338 ---help--- 338 ---help---
339 If you disable this option then the kernel will only support 339 If you disable this option then the kernel will only support
340 standard PC platforms. (which covers the vast majority of 340 standard PC platforms. (which covers the vast majority of
341 systems out there.) 341 systems out there.)
342 342
343 If you enable this option then you'll be able to select support 343 If you enable this option then you'll be able to select support
344 for the following (non-PC) 64 bit x86 platforms: 344 for the following (non-PC) 64 bit x86 platforms:
345 ScaleMP vSMP 345 ScaleMP vSMP
346 SGI Ultraviolet 346 SGI Ultraviolet
347 347
348 If you have one of these systems, or if you want to build a 348 If you have one of these systems, or if you want to build a
349 generic distribution kernel, say Y here - otherwise say N. 349 generic distribution kernel, say Y here - otherwise say N.
350 endif 350 endif
351 # This is an alphabetically sorted list of 64 bit extended platforms 351 # This is an alphabetically sorted list of 64 bit extended platforms
352 # Please maintain the alphabetic order if and when there are additions 352 # Please maintain the alphabetic order if and when there are additions
353 353
354 config X86_VSMP 354 config X86_VSMP
355 bool "ScaleMP vSMP" 355 bool "ScaleMP vSMP"
356 select PARAVIRT 356 select PARAVIRT
357 depends on X86_64 && PCI 357 depends on X86_64 && PCI
358 depends on X86_EXTENDED_PLATFORM 358 depends on X86_EXTENDED_PLATFORM
359 ---help--- 359 ---help---
360 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 360 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
361 supposed to run on these EM64T-based machines. Only choose this option 361 supposed to run on these EM64T-based machines. Only choose this option
362 if you have one of these machines. 362 if you have one of these machines.
363 363
364 config X86_UV 364 config X86_UV
365 bool "SGI Ultraviolet" 365 bool "SGI Ultraviolet"
366 depends on X86_64 366 depends on X86_64
367 depends on X86_EXTENDED_PLATFORM 367 depends on X86_EXTENDED_PLATFORM
368 depends on NUMA 368 depends on NUMA
369 depends on X86_X2APIC 369 depends on X86_X2APIC
370 ---help--- 370 ---help---
371 This option is needed in order to support SGI Ultraviolet systems. 371 This option is needed in order to support SGI Ultraviolet systems.
372 If you don't have one of these, you should say N here. 372 If you don't have one of these, you should say N here.
373 373
374 # Following is an alphabetically sorted list of 32 bit extended platforms 374 # Following is an alphabetically sorted list of 32 bit extended platforms
375 # Please maintain the alphabetic order if and when there are additions 375 # Please maintain the alphabetic order if and when there are additions
376 376
377 config X86_ELAN 377 config X86_ELAN
378 bool "AMD Elan" 378 bool "AMD Elan"
379 depends on X86_32 379 depends on X86_32
380 depends on X86_EXTENDED_PLATFORM 380 depends on X86_EXTENDED_PLATFORM
381 ---help--- 381 ---help---
382 Select this for an AMD Elan processor. 382 Select this for an AMD Elan processor.
383 383
384 Do not use this option for K6/Athlon/Opteron processors! 384 Do not use this option for K6/Athlon/Opteron processors!
385 385
386 If unsure, choose "PC-compatible" instead. 386 If unsure, choose "PC-compatible" instead.
387 387
388 config X86_MRST 388 config X86_MRST
389 bool "Moorestown MID platform" 389 bool "Moorestown MID platform"
390 depends on X86_32 390 depends on X86_32
391 depends on X86_EXTENDED_PLATFORM 391 depends on X86_EXTENDED_PLATFORM
392 ---help--- 392 ---help---
393 Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin 393 Moorestown is Intel's Low Power Intel Architecture (LPIA) based Moblin
394 Internet Device(MID) platform. Moorestown consists of two chips: 394 Internet Device(MID) platform. Moorestown consists of two chips:
395 Lincroft (CPU core, graphics, and memory controller) and Langwell IOH. 395 Lincroft (CPU core, graphics, and memory controller) and Langwell IOH.
396 Unlike standard x86 PCs, Moorestown does not have many legacy devices 396 Unlike standard x86 PCs, Moorestown does not have many legacy devices
397 nor standard legacy replacement devices/features. e.g. Moorestown does 397 nor standard legacy replacement devices/features. e.g. Moorestown does
398 not contain i8259, i8254, HPET, legacy BIOS, most of the io ports. 398 not contain i8259, i8254, HPET, legacy BIOS, most of the io ports.
399 399
400 config X86_RDC321X 400 config X86_RDC321X
401 bool "RDC R-321x SoC" 401 bool "RDC R-321x SoC"
402 depends on X86_32 402 depends on X86_32
403 depends on X86_EXTENDED_PLATFORM 403 depends on X86_EXTENDED_PLATFORM
404 select M486 404 select M486
405 select X86_REBOOTFIXUPS 405 select X86_REBOOTFIXUPS
406 ---help--- 406 ---help---
407 This option is needed for RDC R-321x system-on-chip, also known 407 This option is needed for RDC R-321x system-on-chip, also known
408 as R-8610-(G). 408 as R-8610-(G).
409 If you don't have one of these chips, you should say N here. 409 If you don't have one of these chips, you should say N here.
410 410
411 config X86_32_NON_STANDARD 411 config X86_32_NON_STANDARD
412 bool "Support non-standard 32-bit SMP architectures" 412 bool "Support non-standard 32-bit SMP architectures"
413 depends on X86_32 && SMP 413 depends on X86_32 && SMP
414 depends on X86_EXTENDED_PLATFORM 414 depends on X86_EXTENDED_PLATFORM
415 ---help--- 415 ---help---
416 This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default 416 This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
417 subarchitectures. It is intended for a generic binary kernel. 417 subarchitectures. It is intended for a generic binary kernel.
418 if you select them all, kernel will probe it one by one. and will 418 if you select them all, kernel will probe it one by one. and will
419 fallback to default. 419 fallback to default.
420 420
421 # Alphabetically sorted list of Non standard 32 bit platforms 421 # Alphabetically sorted list of Non standard 32 bit platforms
422 422
423 config X86_NUMAQ 423 config X86_NUMAQ
424 bool "NUMAQ (IBM/Sequent)" 424 bool "NUMAQ (IBM/Sequent)"
425 depends on X86_32_NON_STANDARD 425 depends on X86_32_NON_STANDARD
426 select NUMA 426 select NUMA
427 select X86_MPPARSE 427 select X86_MPPARSE
428 ---help--- 428 ---help---
429 This option is used for getting Linux to run on a NUMAQ (IBM/Sequent) 429 This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
430 NUMA multiquad box. This changes the way that processors are 430 NUMA multiquad box. This changes the way that processors are
431 bootstrapped, and uses Clustered Logical APIC addressing mode instead 431 bootstrapped, and uses Clustered Logical APIC addressing mode instead
432 of Flat Logical. You will need a new lynxer.elf file to flash your 432 of Flat Logical. You will need a new lynxer.elf file to flash your
433 firmware with - send email to <Martin.Bligh@us.ibm.com>. 433 firmware with - send email to <Martin.Bligh@us.ibm.com>.
434 434
435 config X86_VISWS 435 config X86_VISWS
436 bool "SGI 320/540 (Visual Workstation)" 436 bool "SGI 320/540 (Visual Workstation)"
437 depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT 437 depends on X86_32 && PCI && X86_MPPARSE && PCI_GODIRECT
438 depends on X86_32_NON_STANDARD 438 depends on X86_32_NON_STANDARD
439 ---help--- 439 ---help---
440 The SGI Visual Workstation series is an IA32-based workstation 440 The SGI Visual Workstation series is an IA32-based workstation
441 based on SGI systems chips with some legacy PC hardware attached. 441 based on SGI systems chips with some legacy PC hardware attached.
442 442
443 Say Y here to create a kernel to run on the SGI 320 or 540. 443 Say Y here to create a kernel to run on the SGI 320 or 540.
444 444
445 A kernel compiled for the Visual Workstation will run on general 445 A kernel compiled for the Visual Workstation will run on general
446 PCs as well. See <file:Documentation/sgi-visws.txt> for details. 446 PCs as well. See <file:Documentation/sgi-visws.txt> for details.
447 447
448 config X86_SUMMIT 448 config X86_SUMMIT
449 bool "Summit/EXA (IBM x440)" 449 bool "Summit/EXA (IBM x440)"
450 depends on X86_32_NON_STANDARD 450 depends on X86_32_NON_STANDARD
451 ---help--- 451 ---help---
452 This option is needed for IBM systems that use the Summit/EXA chipset. 452 This option is needed for IBM systems that use the Summit/EXA chipset.
453 In particular, it is needed for the x440. 453 In particular, it is needed for the x440.
454 454
455 config X86_ES7000 455 config X86_ES7000
456 bool "Unisys ES7000 IA32 series" 456 bool "Unisys ES7000 IA32 series"
457 depends on X86_32_NON_STANDARD && X86_BIGSMP 457 depends on X86_32_NON_STANDARD && X86_BIGSMP
458 ---help--- 458 ---help---
459 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is 459 Support for Unisys ES7000 systems. Say 'Y' here if this kernel is
460 supposed to run on an IA32-based Unisys ES7000 system. 460 supposed to run on an IA32-based Unisys ES7000 system.
461 461
462 config SCHED_OMIT_FRAME_POINTER 462 config SCHED_OMIT_FRAME_POINTER
463 def_bool y 463 def_bool y
464 prompt "Single-depth WCHAN output" 464 prompt "Single-depth WCHAN output"
465 depends on X86 465 depends on X86
466 ---help--- 466 ---help---
467 Calculate simpler /proc/<PID>/wchan values. If this option 467 Calculate simpler /proc/<PID>/wchan values. If this option
468 is disabled then wchan values will recurse back to the 468 is disabled then wchan values will recurse back to the
469 caller function. This provides more accurate wchan values, 469 caller function. This provides more accurate wchan values,
470 at the expense of slightly more scheduling overhead. 470 at the expense of slightly more scheduling overhead.
471 471
472 If in doubt, say "Y". 472 If in doubt, say "Y".
473 473
474 menuconfig PARAVIRT_GUEST 474 menuconfig PARAVIRT_GUEST
475 bool "Paravirtualized guest support" 475 bool "Paravirtualized guest support"
476 ---help--- 476 ---help---
477 Say Y here to get to see options related to running Linux under 477 Say Y here to get to see options related to running Linux under
478 various hypervisors. This option alone does not add any kernel code. 478 various hypervisors. This option alone does not add any kernel code.
479 479
480 If you say N, all options in this submenu will be skipped and disabled. 480 If you say N, all options in this submenu will be skipped and disabled.
481 481
482 if PARAVIRT_GUEST 482 if PARAVIRT_GUEST
483 483
484 source "arch/x86/xen/Kconfig" 484 source "arch/x86/xen/Kconfig"
485 485
486 config VMI 486 config VMI
487 bool "VMI Guest support" 487 bool "VMI Guest support"
488 select PARAVIRT 488 select PARAVIRT
489 depends on X86_32 489 depends on X86_32
490 ---help--- 490 ---help---
491 VMI provides a paravirtualized interface to the VMware ESX server 491 VMI provides a paravirtualized interface to the VMware ESX server
492 (it could be used by other hypervisors in theory too, but is not 492 (it could be used by other hypervisors in theory too, but is not
493 at the moment), by linking the kernel to a GPL-ed ROM module 493 at the moment), by linking the kernel to a GPL-ed ROM module
494 provided by the hypervisor. 494 provided by the hypervisor.
495 495
496 config KVM_CLOCK 496 config KVM_CLOCK
497 bool "KVM paravirtualized clock" 497 bool "KVM paravirtualized clock"
498 select PARAVIRT 498 select PARAVIRT
499 select PARAVIRT_CLOCK 499 select PARAVIRT_CLOCK
500 ---help--- 500 ---help---
501 Turning on this option will allow you to run a paravirtualized clock 501 Turning on this option will allow you to run a paravirtualized clock
502 when running over the KVM hypervisor. Instead of relying on a PIT 502 when running over the KVM hypervisor. Instead of relying on a PIT
503 (or probably other) emulation by the underlying device model, the host 503 (or probably other) emulation by the underlying device model, the host
504 provides the guest with timing infrastructure such as time of day, and 504 provides the guest with timing infrastructure such as time of day, and
505 system time 505 system time
506 506
507 config KVM_GUEST 507 config KVM_GUEST
508 bool "KVM Guest support" 508 bool "KVM Guest support"
509 select PARAVIRT 509 select PARAVIRT
510 ---help--- 510 ---help---
511 This option enables various optimizations for running under the KVM 511 This option enables various optimizations for running under the KVM
512 hypervisor. 512 hypervisor.
513 513
514 source "arch/x86/lguest/Kconfig" 514 source "arch/x86/lguest/Kconfig"
515 515
516 config PARAVIRT 516 config PARAVIRT
517 bool "Enable paravirtualization code" 517 bool "Enable paravirtualization code"
518 ---help--- 518 ---help---
519 This changes the kernel so it can modify itself when it is run 519 This changes the kernel so it can modify itself when it is run
520 under a hypervisor, potentially improving performance significantly 520 under a hypervisor, potentially improving performance significantly
521 over full virtualization. However, when run without a hypervisor 521 over full virtualization. However, when run without a hypervisor
522 the kernel is theoretically slower and slightly larger. 522 the kernel is theoretically slower and slightly larger.
523 523
524 config PARAVIRT_SPINLOCKS 524 config PARAVIRT_SPINLOCKS
525 bool "Paravirtualization layer for spinlocks" 525 bool "Paravirtualization layer for spinlocks"
526 depends on PARAVIRT && SMP && EXPERIMENTAL 526 depends on PARAVIRT && SMP && EXPERIMENTAL
527 ---help--- 527 ---help---
528 Paravirtualized spinlocks allow a pvops backend to replace the 528 Paravirtualized spinlocks allow a pvops backend to replace the
529 spinlock implementation with something virtualization-friendly 529 spinlock implementation with something virtualization-friendly
530 (for example, block the virtual CPU rather than spinning). 530 (for example, block the virtual CPU rather than spinning).
531 531
532 Unfortunately the downside is an up to 5% performance hit on 532 Unfortunately the downside is an up to 5% performance hit on
533 native kernels, with various workloads. 533 native kernels, with various workloads.
534 534
535 If you are unsure how to answer this question, answer N. 535 If you are unsure how to answer this question, answer N.
536 536
537 config PARAVIRT_CLOCK 537 config PARAVIRT_CLOCK
538 bool 538 bool
539 default n 539 default n
540 540
541 endif 541 endif
542 542
543 config PARAVIRT_DEBUG 543 config PARAVIRT_DEBUG
544 bool "paravirt-ops debugging" 544 bool "paravirt-ops debugging"
545 depends on PARAVIRT && DEBUG_KERNEL 545 depends on PARAVIRT && DEBUG_KERNEL
546 ---help--- 546 ---help---
547 Enable to debug paravirt_ops internals. Specifically, BUG if 547 Enable to debug paravirt_ops internals. Specifically, BUG if
548 a paravirt_op is missing when it is called. 548 a paravirt_op is missing when it is called.
549 549
550 config MEMTEST 550 config MEMTEST
551 bool "Memtest" 551 bool "Memtest"
552 ---help--- 552 ---help---
553 This option adds a kernel parameter 'memtest', which allows memtest 553 This option adds a kernel parameter 'memtest', which allows memtest
554 to be set. 554 to be set.
555 memtest=0, mean disabled; -- default 555 memtest=0, mean disabled; -- default
556 memtest=1, mean do 1 test pattern; 556 memtest=1, mean do 1 test pattern;
557 ... 557 ...
558 memtest=4, mean do 4 test patterns. 558 memtest=4, mean do 4 test patterns.
559 If you are unsure how to answer this question, answer N. 559 If you are unsure how to answer this question, answer N.
560 560
561 config X86_SUMMIT_NUMA 561 config X86_SUMMIT_NUMA
562 def_bool y 562 def_bool y
563 depends on X86_32 && NUMA && X86_32_NON_STANDARD 563 depends on X86_32 && NUMA && X86_32_NON_STANDARD
564 564
565 config X86_CYCLONE_TIMER 565 config X86_CYCLONE_TIMER
566 def_bool y 566 def_bool y
567 depends on X86_32_NON_STANDARD 567 depends on X86_32_NON_STANDARD
568 568
569 source "arch/x86/Kconfig.cpu" 569 source "arch/x86/Kconfig.cpu"
570 570
571 config HPET_TIMER 571 config HPET_TIMER
572 def_bool X86_64 572 def_bool X86_64
573 prompt "HPET Timer Support" if X86_32 573 prompt "HPET Timer Support" if X86_32
574 ---help--- 574 ---help---
575 Use the IA-PC HPET (High Precision Event Timer) to manage 575 Use the IA-PC HPET (High Precision Event Timer) to manage
576 time in preference to the PIT and RTC, if a HPET is 576 time in preference to the PIT and RTC, if a HPET is
577 present. 577 present.
578 HPET is the next generation timer replacing legacy 8254s. 578 HPET is the next generation timer replacing legacy 8254s.
579 The HPET provides a stable time base on SMP 579 The HPET provides a stable time base on SMP
580 systems, unlike the TSC, but it is more expensive to access, 580 systems, unlike the TSC, but it is more expensive to access,
581 as it is off-chip. You can find the HPET spec at 581 as it is off-chip. You can find the HPET spec at
582 <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>. 582 <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>.
583 583
584 You can safely choose Y here. However, HPET will only be 584 You can safely choose Y here. However, HPET will only be
585 activated if the platform and the BIOS support this feature. 585 activated if the platform and the BIOS support this feature.
586 Otherwise the 8254 will be used for timing services. 586 Otherwise the 8254 will be used for timing services.
587 587
588 Choose N to continue using the legacy 8254 timer. 588 Choose N to continue using the legacy 8254 timer.
589 589
590 config HPET_EMULATE_RTC 590 config HPET_EMULATE_RTC
591 def_bool y 591 def_bool y
592 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y) 592 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
593 593
594 # Mark as embedded because too many people got it wrong. 594 # Mark as embedded because too many people got it wrong.
595 # The code disables itself when not needed. 595 # The code disables itself when not needed.
596 config DMI 596 config DMI
597 default y 597 default y
598 bool "Enable DMI scanning" if EMBEDDED 598 bool "Enable DMI scanning" if EMBEDDED
599 ---help--- 599 ---help---
600 Enabled scanning of DMI to identify machine quirks. Say Y 600 Enabled scanning of DMI to identify machine quirks. Say Y
601 here unless you have verified that your setup is not 601 here unless you have verified that your setup is not
602 affected by entries in the DMI blacklist. Required by PNP 602 affected by entries in the DMI blacklist. Required by PNP
603 BIOS code. 603 BIOS code.
604 604
605 config GART_IOMMU 605 config GART_IOMMU
606 bool "GART IOMMU support" if EMBEDDED 606 bool "GART IOMMU support" if EMBEDDED
607 default y 607 default y
608 select SWIOTLB 608 select SWIOTLB
609 depends on X86_64 && PCI 609 depends on X86_64 && PCI
610 ---help--- 610 ---help---
611 Support for full DMA access of devices with 32bit memory access only 611 Support for full DMA access of devices with 32bit memory access only
612 on systems with more than 3GB. This is usually needed for USB, 612 on systems with more than 3GB. This is usually needed for USB,
613 sound, many IDE/SATA chipsets and some other devices. 613 sound, many IDE/SATA chipsets and some other devices.
614 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 614 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
615 based hardware IOMMU and a software bounce buffer based IOMMU used 615 based hardware IOMMU and a software bounce buffer based IOMMU used
616 on Intel systems and as fallback. 616 on Intel systems and as fallback.
617 The code is only active when needed (enough memory and limited 617 The code is only active when needed (enough memory and limited
618 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 618 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
619 too. 619 too.
620 620
621 config CALGARY_IOMMU 621 config CALGARY_IOMMU
622 bool "IBM Calgary IOMMU support" 622 bool "IBM Calgary IOMMU support"
623 select SWIOTLB 623 select SWIOTLB
624 depends on X86_64 && PCI && EXPERIMENTAL 624 depends on X86_64 && PCI && EXPERIMENTAL
625 ---help--- 625 ---help---
626 Support for hardware IOMMUs in IBM's xSeries x366 and x460 626 Support for hardware IOMMUs in IBM's xSeries x366 and x460
627 systems. Needed to run systems with more than 3GB of memory 627 systems. Needed to run systems with more than 3GB of memory
628 properly with 32-bit PCI devices that do not support DAC 628 properly with 32-bit PCI devices that do not support DAC
629 (Double Address Cycle). Calgary also supports bus level 629 (Double Address Cycle). Calgary also supports bus level
630 isolation, where all DMAs pass through the IOMMU. This 630 isolation, where all DMAs pass through the IOMMU. This
631 prevents them from going anywhere except their intended 631 prevents them from going anywhere except their intended
632 destination. This catches hard-to-find kernel bugs and 632 destination. This catches hard-to-find kernel bugs and
633 mis-behaving drivers and devices that do not use the DMA-API 633 mis-behaving drivers and devices that do not use the DMA-API
634 properly to set up their DMA buffers. The IOMMU can be 634 properly to set up their DMA buffers. The IOMMU can be
635 turned off at boot time with the iommu=off parameter. 635 turned off at boot time with the iommu=off parameter.
636 Normally the kernel will make the right choice by itself. 636 Normally the kernel will make the right choice by itself.
637 If unsure, say Y. 637 If unsure, say Y.
638 638
639 config CALGARY_IOMMU_ENABLED_BY_DEFAULT 639 config CALGARY_IOMMU_ENABLED_BY_DEFAULT
640 def_bool y 640 def_bool y
641 prompt "Should Calgary be enabled by default?" 641 prompt "Should Calgary be enabled by default?"
642 depends on CALGARY_IOMMU 642 depends on CALGARY_IOMMU
643 ---help--- 643 ---help---
644 Should Calgary be enabled by default? if you choose 'y', Calgary 644 Should Calgary be enabled by default? if you choose 'y', Calgary
645 will be used (if it exists). If you choose 'n', Calgary will not be 645 will be used (if it exists). If you choose 'n', Calgary will not be
646 used even if it exists. If you choose 'n' and would like to use 646 used even if it exists. If you choose 'n' and would like to use
647 Calgary anyway, pass 'iommu=calgary' on the kernel command line. 647 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
648 If unsure, say Y. 648 If unsure, say Y.
649 649
650 config AMD_IOMMU 650 config AMD_IOMMU
651 bool "AMD IOMMU support" 651 bool "AMD IOMMU support"
652 select SWIOTLB 652 select SWIOTLB
653 select PCI_MSI 653 select PCI_MSI
654 depends on X86_64 && PCI && ACPI 654 depends on X86_64 && PCI && ACPI
655 ---help--- 655 ---help---
656 With this option you can enable support for AMD IOMMU hardware in 656 With this option you can enable support for AMD IOMMU hardware in
657 your system. An IOMMU is a hardware component which provides 657 your system. An IOMMU is a hardware component which provides
658 remapping of DMA memory accesses from devices. With an AMD IOMMU you 658 remapping of DMA memory accesses from devices. With an AMD IOMMU you
659 can isolate the the DMA memory of different devices and protect the 659 can isolate the the DMA memory of different devices and protect the
660 system from misbehaving device drivers or hardware. 660 system from misbehaving device drivers or hardware.
661 661
662 You can find out if your system has an AMD IOMMU if you look into 662 You can find out if your system has an AMD IOMMU if you look into
663 your BIOS for an option to enable it or if you have an IVRS ACPI 663 your BIOS for an option to enable it or if you have an IVRS ACPI
664 table. 664 table.
665 665
666 config AMD_IOMMU_STATS 666 config AMD_IOMMU_STATS
667 bool "Export AMD IOMMU statistics to debugfs" 667 bool "Export AMD IOMMU statistics to debugfs"
668 depends on AMD_IOMMU 668 depends on AMD_IOMMU
669 select DEBUG_FS 669 select DEBUG_FS
670 ---help--- 670 ---help---
671 This option enables code in the AMD IOMMU driver to collect various 671 This option enables code in the AMD IOMMU driver to collect various
672 statistics about whats happening in the driver and exports that 672 statistics about whats happening in the driver and exports that
673 information to userspace via debugfs. 673 information to userspace via debugfs.
674 If unsure, say N. 674 If unsure, say N.
675 675
676 # need this always selected by IOMMU for the VIA workaround 676 # need this always selected by IOMMU for the VIA workaround
677 config SWIOTLB 677 config SWIOTLB
678 def_bool y if X86_64 678 def_bool y if X86_64
679 ---help--- 679 ---help---
680 Support for software bounce buffers used on x86-64 systems 680 Support for software bounce buffers used on x86-64 systems
681 which don't have a hardware IOMMU (e.g. the current generation 681 which don't have a hardware IOMMU (e.g. the current generation
682 of Intel's x86-64 CPUs). Using this PCI devices which can only 682 of Intel's x86-64 CPUs). Using this PCI devices which can only
683 access 32-bits of memory can be used on systems with more than 683 access 32-bits of memory can be used on systems with more than
684 3 GB of memory. If unsure, say Y. 684 3 GB of memory. If unsure, say Y.
685 685
686 config IOMMU_HELPER 686 config IOMMU_HELPER
687 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) 687 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
688 688
689 config IOMMU_API 689 config IOMMU_API
690 def_bool (AMD_IOMMU || DMAR) 690 def_bool (AMD_IOMMU || DMAR)
691 691
692 config MAXSMP 692 config MAXSMP
693 bool "Configure Maximum number of SMP Processors and NUMA Nodes" 693 bool "Configure Maximum number of SMP Processors and NUMA Nodes"
694 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL 694 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
695 select CPUMASK_OFFSTACK 695 select CPUMASK_OFFSTACK
696 default n 696 default n
697 ---help--- 697 ---help---
698 Configure maximum number of CPUS and NUMA Nodes for this architecture. 698 Configure maximum number of CPUS and NUMA Nodes for this architecture.
699 If unsure, say N. 699 If unsure, say N.
700 700
701 config NR_CPUS 701 config NR_CPUS
702 int "Maximum number of CPUs" if SMP && !MAXSMP 702 int "Maximum number of CPUs" if SMP && !MAXSMP
703 range 2 8 if SMP && X86_32 && !X86_BIGSMP 703 range 2 8 if SMP && X86_32 && !X86_BIGSMP
704 range 2 512 if SMP && !MAXSMP 704 range 2 512 if SMP && !MAXSMP
705 default "1" if !SMP 705 default "1" if !SMP
706 default "4096" if MAXSMP 706 default "4096" if MAXSMP
707 default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000) 707 default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
708 default "8" if SMP 708 default "8" if SMP
709 ---help--- 709 ---help---
710 This allows you to specify the maximum number of CPUs which this 710 This allows you to specify the maximum number of CPUs which this
711 kernel will support. The maximum supported value is 512 and the 711 kernel will support. The maximum supported value is 512 and the
712 minimum value which makes sense is 2. 712 minimum value which makes sense is 2.
713 713
714 This is purely to save memory - each supported CPU adds 714 This is purely to save memory - each supported CPU adds
715 approximately eight kilobytes to the kernel image. 715 approximately eight kilobytes to the kernel image.
716 716
717 config SCHED_SMT 717 config SCHED_SMT
718 bool "SMT (Hyperthreading) scheduler support" 718 bool "SMT (Hyperthreading) scheduler support"
719 depends on X86_HT 719 depends on X86_HT
720 ---help--- 720 ---help---
721 SMT scheduler support improves the CPU scheduler's decision making 721 SMT scheduler support improves the CPU scheduler's decision making
722 when dealing with Intel Pentium 4 chips with HyperThreading at a 722 when dealing with Intel Pentium 4 chips with HyperThreading at a
723 cost of slightly increased overhead in some places. If unsure say 723 cost of slightly increased overhead in some places. If unsure say
724 N here. 724 N here.
725 725
726 config SCHED_MC 726 config SCHED_MC
727 def_bool y 727 def_bool y
728 prompt "Multi-core scheduler support" 728 prompt "Multi-core scheduler support"
729 depends on X86_HT 729 depends on X86_HT
730 ---help--- 730 ---help---
731 Multi-core scheduler support improves the CPU scheduler's decision 731 Multi-core scheduler support improves the CPU scheduler's decision
732 making when dealing with multi-core CPU chips at a cost of slightly 732 making when dealing with multi-core CPU chips at a cost of slightly
733 increased overhead in some places. If unsure say N here. 733 increased overhead in some places. If unsure say N here.
734 734
735 source "kernel/Kconfig.preempt" 735 source "kernel/Kconfig.preempt"
736 736
737 config X86_UP_APIC 737 config X86_UP_APIC
738 bool "Local APIC support on uniprocessors" 738 bool "Local APIC support on uniprocessors"
739 depends on X86_32 && !SMP && !X86_32_NON_STANDARD 739 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
740 ---help--- 740 ---help---
741 A local APIC (Advanced Programmable Interrupt Controller) is an 741 A local APIC (Advanced Programmable Interrupt Controller) is an
742 integrated interrupt controller in the CPU. If you have a single-CPU 742 integrated interrupt controller in the CPU. If you have a single-CPU
743 system which has a processor with a local APIC, you can say Y here to 743 system which has a processor with a local APIC, you can say Y here to
744 enable and use it. If you say Y here even though your machine doesn't 744 enable and use it. If you say Y here even though your machine doesn't
745 have a local APIC, then the kernel will still run with no slowdown at 745 have a local APIC, then the kernel will still run with no slowdown at
746 all. The local APIC supports CPU-generated self-interrupts (timer, 746 all. The local APIC supports CPU-generated self-interrupts (timer,
747 performance counters), and the NMI watchdog which detects hard 747 performance counters), and the NMI watchdog which detects hard
748 lockups. 748 lockups.
749 749
750 config X86_UP_IOAPIC 750 config X86_UP_IOAPIC
751 bool "IO-APIC support on uniprocessors" 751 bool "IO-APIC support on uniprocessors"
752 depends on X86_UP_APIC 752 depends on X86_UP_APIC
753 ---help--- 753 ---help---
754 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an 754 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
755 SMP-capable replacement for PC-style interrupt controllers. Most 755 SMP-capable replacement for PC-style interrupt controllers. Most
756 SMP systems and many recent uniprocessor systems have one. 756 SMP systems and many recent uniprocessor systems have one.
757 757
758 If you have a single-CPU system with an IO-APIC, you can say Y here 758 If you have a single-CPU system with an IO-APIC, you can say Y here
759 to use it. If you say Y here even though your machine doesn't have 759 to use it. If you say Y here even though your machine doesn't have
760 an IO-APIC, then the kernel will still run with no slowdown at all. 760 an IO-APIC, then the kernel will still run with no slowdown at all.
761 761
762 config X86_LOCAL_APIC 762 config X86_LOCAL_APIC
763 def_bool y 763 def_bool y
764 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC 764 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
765 765
766 config X86_IO_APIC 766 config X86_IO_APIC
767 def_bool y 767 def_bool y
768 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC 768 depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC
769 769
770 config X86_VISWS_APIC 770 config X86_VISWS_APIC
771 def_bool y 771 def_bool y
772 depends on X86_32 && X86_VISWS 772 depends on X86_32 && X86_VISWS
773 773
774 config X86_REROUTE_FOR_BROKEN_BOOT_IRQS 774 config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
775 bool "Reroute for broken boot IRQs" 775 bool "Reroute for broken boot IRQs"
776 default n 776 default n
777 depends on X86_IO_APIC 777 depends on X86_IO_APIC
778 ---help--- 778 ---help---
779 This option enables a workaround that fixes a source of 779 This option enables a workaround that fixes a source of
780 spurious interrupts. This is recommended when threaded 780 spurious interrupts. This is recommended when threaded
781 interrupt handling is used on systems where the generation of 781 interrupt handling is used on systems where the generation of
782 superfluous "boot interrupts" cannot be disabled. 782 superfluous "boot interrupts" cannot be disabled.
783 783
784 Some chipsets generate a legacy INTx "boot IRQ" when the IRQ 784 Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
785 entry in the chipset's IO-APIC is masked (as, e.g. the RT 785 entry in the chipset's IO-APIC is masked (as, e.g. the RT
786 kernel does during interrupt handling). On chipsets where this 786 kernel does during interrupt handling). On chipsets where this
787 boot IRQ generation cannot be disabled, this workaround keeps 787 boot IRQ generation cannot be disabled, this workaround keeps
788 the original IRQ line masked so that only the equivalent "boot 788 the original IRQ line masked so that only the equivalent "boot
789 IRQ" is delivered to the CPUs. The workaround also tells the 789 IRQ" is delivered to the CPUs. The workaround also tells the
790 kernel to set up the IRQ handler on the boot IRQ line. In this 790 kernel to set up the IRQ handler on the boot IRQ line. In this
791 way only one interrupt is delivered to the kernel. Otherwise 791 way only one interrupt is delivered to the kernel. Otherwise
792 the spurious second interrupt may cause the kernel to bring 792 the spurious second interrupt may cause the kernel to bring
793 down (vital) interrupt lines. 793 down (vital) interrupt lines.
794 794
795 Only affects "broken" chipsets. Interrupt sharing may be 795 Only affects "broken" chipsets. Interrupt sharing may be
796 increased on these systems. 796 increased on these systems.
797 797
798 config X86_MCE 798 config X86_MCE
799 bool "Machine Check / overheating reporting" 799 bool "Machine Check / overheating reporting"
800 ---help--- 800 ---help---
801 Machine Check support allows the processor to notify the 801 Machine Check support allows the processor to notify the
802 kernel if it detects a problem (e.g. overheating, data corruption). 802 kernel if it detects a problem (e.g. overheating, data corruption).
803 The action the kernel takes depends on the severity of the problem, 803 The action the kernel takes depends on the severity of the problem,
804 ranging from warning messages to halting the machine. 804 ranging from warning messages to halting the machine.
805 805
806 config X86_MCE_INTEL 806 config X86_MCE_INTEL
807 def_bool y 807 def_bool y
808 prompt "Intel MCE features" 808 prompt "Intel MCE features"
809 depends on X86_MCE && X86_LOCAL_APIC 809 depends on X86_MCE && X86_LOCAL_APIC
810 ---help--- 810 ---help---
811 Additional support for intel specific MCE features such as 811 Additional support for intel specific MCE features such as
812 the thermal monitor. 812 the thermal monitor.
813 813
814 config X86_MCE_AMD 814 config X86_MCE_AMD
815 def_bool y 815 def_bool y
816 prompt "AMD MCE features" 816 prompt "AMD MCE features"
817 depends on X86_MCE && X86_LOCAL_APIC 817 depends on X86_MCE && X86_LOCAL_APIC
818 ---help--- 818 ---help---
819 Additional support for AMD specific MCE features such as 819 Additional support for AMD specific MCE features such as
820 the DRAM Error Threshold. 820 the DRAM Error Threshold.
821 821
822 config X86_ANCIENT_MCE 822 config X86_ANCIENT_MCE
823 def_bool n 823 def_bool n
824 depends on X86_32 && X86_MCE 824 depends on X86_32 && X86_MCE
825 prompt "Support for old Pentium 5 / WinChip machine checks" 825 prompt "Support for old Pentium 5 / WinChip machine checks"
826 ---help--- 826 ---help---
827 Include support for machine check handling on old Pentium 5 or WinChip 827 Include support for machine check handling on old Pentium 5 or WinChip
828 systems. These typically need to be enabled explicitely on the command 828 systems. These typically need to be enabled explicitely on the command
829 line. 829 line.
830 830
831 config X86_MCE_THRESHOLD 831 config X86_MCE_THRESHOLD
832 depends on X86_MCE_AMD || X86_MCE_INTEL 832 depends on X86_MCE_AMD || X86_MCE_INTEL
833 bool 833 bool
834 default y 834 default y
835 835
836 config X86_MCE_INJECT 836 config X86_MCE_INJECT
837 depends on X86_MCE 837 depends on X86_MCE
838 tristate "Machine check injector support" 838 tristate "Machine check injector support"
839 ---help--- 839 ---help---
840 Provide support for injecting machine checks for testing purposes. 840 Provide support for injecting machine checks for testing purposes.
841 If you don't know what a machine check is and you don't do kernel 841 If you don't know what a machine check is and you don't do kernel
842 QA it is safe to say n. 842 QA it is safe to say n.
843 843
844 config X86_THERMAL_VECTOR 844 config X86_THERMAL_VECTOR
845 def_bool y 845 def_bool y
846 depends on X86_MCE_INTEL 846 depends on X86_MCE_INTEL
847 847
848 config VM86 848 config VM86
849 bool "Enable VM86 support" if EMBEDDED 849 bool "Enable VM86 support" if EMBEDDED
850 default y 850 default y
851 depends on X86_32 851 depends on X86_32
852 ---help--- 852 ---help---
853 This option is required by programs like DOSEMU to run 16-bit legacy 853 This option is required by programs like DOSEMU to run 16-bit legacy
854 code on X86 processors. It also may be needed by software like 854 code on X86 processors. It also may be needed by software like
855 XFree86 to initialize some video cards via BIOS. Disabling this 855 XFree86 to initialize some video cards via BIOS. Disabling this
856 option saves about 6k. 856 option saves about 6k.
857 857
858 config TOSHIBA 858 config TOSHIBA
859 tristate "Toshiba Laptop support" 859 tristate "Toshiba Laptop support"
860 depends on X86_32 860 depends on X86_32
861 ---help--- 861 ---help---
862 This adds a driver to safely access the System Management Mode of 862 This adds a driver to safely access the System Management Mode of
863 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does 863 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
864 not work on models with a Phoenix BIOS. The System Management Mode 864 not work on models with a Phoenix BIOS. The System Management Mode
865 is used to set the BIOS and power saving options on Toshiba portables. 865 is used to set the BIOS and power saving options on Toshiba portables.
866 866
867 For information on utilities to make use of this driver see the 867 For information on utilities to make use of this driver see the
868 Toshiba Linux utilities web site at: 868 Toshiba Linux utilities web site at:
869 <http://www.buzzard.org.uk/toshiba/>. 869 <http://www.buzzard.org.uk/toshiba/>.
870 870
871 Say Y if you intend to run this kernel on a Toshiba portable. 871 Say Y if you intend to run this kernel on a Toshiba portable.
872 Say N otherwise. 872 Say N otherwise.
873 873
874 config I8K 874 config I8K
875 tristate "Dell laptop support" 875 tristate "Dell laptop support"
876 ---help--- 876 ---help---
877 This adds a driver to safely access the System Management Mode 877 This adds a driver to safely access the System Management Mode
878 of the CPU on the Dell Inspiron 8000. The System Management Mode 878 of the CPU on the Dell Inspiron 8000. The System Management Mode
879 is used to read cpu temperature and cooling fan status and to 879 is used to read cpu temperature and cooling fan status and to
880 control the fans on the I8K portables. 880 control the fans on the I8K portables.
881 881
882 This driver has been tested only on the Inspiron 8000 but it may 882 This driver has been tested only on the Inspiron 8000 but it may
883 also work with other Dell laptops. You can force loading on other 883 also work with other Dell laptops. You can force loading on other
884 models by passing the parameter `force=1' to the module. Use at 884 models by passing the parameter `force=1' to the module. Use at
885 your own risk. 885 your own risk.
886 886
887 For information on utilities to make use of this driver see the 887 For information on utilities to make use of this driver see the
888 I8K Linux utilities web site at: 888 I8K Linux utilities web site at:
889 <http://people.debian.org/~dz/i8k/> 889 <http://people.debian.org/~dz/i8k/>
890 890
891 Say Y if you intend to run this kernel on a Dell Inspiron 8000. 891 Say Y if you intend to run this kernel on a Dell Inspiron 8000.
892 Say N otherwise. 892 Say N otherwise.
893 893
894 config X86_REBOOTFIXUPS 894 config X86_REBOOTFIXUPS
895 bool "Enable X86 board specific fixups for reboot" 895 bool "Enable X86 board specific fixups for reboot"
896 depends on X86_32 896 depends on X86_32
897 ---help--- 897 ---help---
898 This enables chipset and/or board specific fixups to be done 898 This enables chipset and/or board specific fixups to be done
899 in order to get reboot to work correctly. This is only needed on 899 in order to get reboot to work correctly. This is only needed on
900 some combinations of hardware and BIOS. The symptom, for which 900 some combinations of hardware and BIOS. The symptom, for which
901 this config is intended, is when reboot ends with a stalled/hung 901 this config is intended, is when reboot ends with a stalled/hung
902 system. 902 system.
903 903
904 Currently, the only fixup is for the Geode machines using 904 Currently, the only fixup is for the Geode machines using
905 CS5530A and CS5536 chipsets and the RDC R-321x SoC. 905 CS5530A and CS5536 chipsets and the RDC R-321x SoC.
906 906
907 Say Y if you want to enable the fixup. Currently, it's safe to 907 Say Y if you want to enable the fixup. Currently, it's safe to
908 enable this option even if you don't need it. 908 enable this option even if you don't need it.
909 Say N otherwise. 909 Say N otherwise.
910 910
911 config MICROCODE 911 config MICROCODE
912 tristate "/dev/cpu/microcode - microcode support" 912 tristate "/dev/cpu/microcode - microcode support"
913 select FW_LOADER 913 select FW_LOADER
914 ---help--- 914 ---help---
915 If you say Y here, you will be able to update the microcode on 915 If you say Y here, you will be able to update the microcode on
916 certain Intel and AMD processors. The Intel support is for the 916 certain Intel and AMD processors. The Intel support is for the
917 IA32 family, e.g. Pentium Pro, Pentium II, Pentium III, 917 IA32 family, e.g. Pentium Pro, Pentium II, Pentium III,
918 Pentium 4, Xeon etc. The AMD support is for family 0x10 and 918 Pentium 4, Xeon etc. The AMD support is for family 0x10 and
919 0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra. 919 0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra.
920 You will obviously need the actual microcode binary data itself 920 You will obviously need the actual microcode binary data itself
921 which is not shipped with the Linux kernel. 921 which is not shipped with the Linux kernel.
922 922
923 This option selects the general module only, you need to select 923 This option selects the general module only, you need to select
924 at least one vendor specific module as well. 924 at least one vendor specific module as well.
925 925
926 To compile this driver as a module, choose M here: the 926 To compile this driver as a module, choose M here: the
927 module will be called microcode. 927 module will be called microcode.
928 928
929 config MICROCODE_INTEL 929 config MICROCODE_INTEL
930 bool "Intel microcode patch loading support" 930 bool "Intel microcode patch loading support"
931 depends on MICROCODE 931 depends on MICROCODE
932 default MICROCODE 932 default MICROCODE
933 select FW_LOADER 933 select FW_LOADER
934 ---help--- 934 ---help---
935 This options enables microcode patch loading support for Intel 935 This options enables microcode patch loading support for Intel
936 processors. 936 processors.
937 937
938 For latest news and information on obtaining all the required 938 For latest news and information on obtaining all the required
939 Intel ingredients for this driver, check: 939 Intel ingredients for this driver, check:
940 <http://www.urbanmyth.org/microcode/>. 940 <http://www.urbanmyth.org/microcode/>.
941 941
942 config MICROCODE_AMD 942 config MICROCODE_AMD
943 bool "AMD microcode patch loading support" 943 bool "AMD microcode patch loading support"
944 depends on MICROCODE 944 depends on MICROCODE
945 select FW_LOADER 945 select FW_LOADER
946 ---help--- 946 ---help---
947 If you select this option, microcode patch loading support for AMD 947 If you select this option, microcode patch loading support for AMD
948 processors will be enabled. 948 processors will be enabled.
949 949
950 config MICROCODE_OLD_INTERFACE 950 config MICROCODE_OLD_INTERFACE
951 def_bool y 951 def_bool y
952 depends on MICROCODE 952 depends on MICROCODE
953 953
954 config X86_MSR 954 config X86_MSR
955 tristate "/dev/cpu/*/msr - Model-specific register support" 955 tristate "/dev/cpu/*/msr - Model-specific register support"
956 ---help--- 956 ---help---
957 This device gives privileged processes access to the x86 957 This device gives privileged processes access to the x86
958 Model-Specific Registers (MSRs). It is a character device with 958 Model-Specific Registers (MSRs). It is a character device with
959 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 959 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
960 MSR accesses are directed to a specific CPU on multi-processor 960 MSR accesses are directed to a specific CPU on multi-processor
961 systems. 961 systems.
962 962
963 config X86_CPUID 963 config X86_CPUID
964 tristate "/dev/cpu/*/cpuid - CPU information support" 964 tristate "/dev/cpu/*/cpuid - CPU information support"
965 ---help--- 965 ---help---
966 This device gives processes access to the x86 CPUID instruction to 966 This device gives processes access to the x86 CPUID instruction to
967 be executed on a specific processor. It is a character device 967 be executed on a specific processor. It is a character device
968 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 968 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
969 /dev/cpu/31/cpuid. 969 /dev/cpu/31/cpuid.
970 970
971 config X86_CPU_DEBUG 971 config X86_CPU_DEBUG
972 tristate "/sys/kernel/debug/x86/cpu/* - CPU Debug support" 972 tristate "/sys/kernel/debug/x86/cpu/* - CPU Debug support"
973 ---help--- 973 ---help---
974 If you select this option, this will provide various x86 CPUs 974 If you select this option, this will provide various x86 CPUs
975 information through debugfs. 975 information through debugfs.
976 976
977 choice 977 choice
978 prompt "High Memory Support" 978 prompt "High Memory Support"
979 default HIGHMEM4G if !X86_NUMAQ 979 default HIGHMEM4G if !X86_NUMAQ
980 default HIGHMEM64G if X86_NUMAQ 980 default HIGHMEM64G if X86_NUMAQ
981 depends on X86_32 981 depends on X86_32
982 982
983 config NOHIGHMEM 983 config NOHIGHMEM
984 bool "off" 984 bool "off"
985 depends on !X86_NUMAQ 985 depends on !X86_NUMAQ
986 ---help--- 986 ---help---
987 Linux can use up to 64 Gigabytes of physical memory on x86 systems. 987 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
988 However, the address space of 32-bit x86 processors is only 4 988 However, the address space of 32-bit x86 processors is only 4
989 Gigabytes large. That means that, if you have a large amount of 989 Gigabytes large. That means that, if you have a large amount of
990 physical memory, not all of it can be "permanently mapped" by the 990 physical memory, not all of it can be "permanently mapped" by the
991 kernel. The physical memory that's not permanently mapped is called 991 kernel. The physical memory that's not permanently mapped is called
992 "high memory". 992 "high memory".
993 993
994 If you are compiling a kernel which will never run on a machine with 994 If you are compiling a kernel which will never run on a machine with
995 more than 1 Gigabyte total physical RAM, answer "off" here (default 995 more than 1 Gigabyte total physical RAM, answer "off" here (default
996 choice and suitable for most users). This will result in a "3GB/1GB" 996 choice and suitable for most users). This will result in a "3GB/1GB"
997 split: 3GB are mapped so that each process sees a 3GB virtual memory 997 split: 3GB are mapped so that each process sees a 3GB virtual memory
998 space and the remaining part of the 4GB virtual memory space is used 998 space and the remaining part of the 4GB virtual memory space is used
999 by the kernel to permanently map as much physical memory as 999 by the kernel to permanently map as much physical memory as
1000 possible. 1000 possible.
1001 1001
1002 If the machine has between 1 and 4 Gigabytes physical RAM, then 1002 If the machine has between 1 and 4 Gigabytes physical RAM, then
1003 answer "4GB" here. 1003 answer "4GB" here.
1004 1004
1005 If more than 4 Gigabytes is used then answer "64GB" here. This 1005 If more than 4 Gigabytes is used then answer "64GB" here. This
1006 selection turns Intel PAE (Physical Address Extension) mode on. 1006 selection turns Intel PAE (Physical Address Extension) mode on.
1007 PAE implements 3-level paging on IA32 processors. PAE is fully 1007 PAE implements 3-level paging on IA32 processors. PAE is fully
1008 supported by Linux, PAE mode is implemented on all recent Intel 1008 supported by Linux, PAE mode is implemented on all recent Intel
1009 processors (Pentium Pro and better). NOTE: If you say "64GB" here, 1009 processors (Pentium Pro and better). NOTE: If you say "64GB" here,
1010 then the kernel will not boot on CPUs that don't support PAE! 1010 then the kernel will not boot on CPUs that don't support PAE!
1011 1011
1012 The actual amount of total physical memory will either be 1012 The actual amount of total physical memory will either be
1013 auto detected or can be forced by using a kernel command line option 1013 auto detected or can be forced by using a kernel command line option
1014 such as "mem=256M". (Try "man bootparam" or see the documentation of 1014 such as "mem=256M". (Try "man bootparam" or see the documentation of
1015 your boot loader (lilo or loadlin) about how to pass options to the 1015 your boot loader (lilo or loadlin) about how to pass options to the
1016 kernel at boot time.) 1016 kernel at boot time.)
1017 1017
1018 If unsure, say "off". 1018 If unsure, say "off".
1019 1019
1020 config HIGHMEM4G 1020 config HIGHMEM4G
1021 bool "4GB" 1021 bool "4GB"
1022 depends on !X86_NUMAQ 1022 depends on !X86_NUMAQ
1023 ---help--- 1023 ---help---
1024 Select this if you have a 32-bit processor and between 1 and 4 1024 Select this if you have a 32-bit processor and between 1 and 4
1025 gigabytes of physical RAM. 1025 gigabytes of physical RAM.
1026 1026
1027 config HIGHMEM64G 1027 config HIGHMEM64G
1028 bool "64GB" 1028 bool "64GB"
1029 depends on !M386 && !M486 1029 depends on !M386 && !M486
1030 select X86_PAE 1030 select X86_PAE
1031 ---help--- 1031 ---help---
1032 Select this if you have a 32-bit processor and more than 4 1032 Select this if you have a 32-bit processor and more than 4
1033 gigabytes of physical RAM. 1033 gigabytes of physical RAM.
1034 1034
1035 endchoice 1035 endchoice
1036 1036
1037 choice 1037 choice
1038 depends on EXPERIMENTAL 1038 depends on EXPERIMENTAL
1039 prompt "Memory split" if EMBEDDED 1039 prompt "Memory split" if EMBEDDED
1040 default VMSPLIT_3G 1040 default VMSPLIT_3G
1041 depends on X86_32 1041 depends on X86_32
1042 ---help--- 1042 ---help---
1043 Select the desired split between kernel and user memory. 1043 Select the desired split between kernel and user memory.
1044 1044
1045 If the address range available to the kernel is less than the 1045 If the address range available to the kernel is less than the
1046 physical memory installed, the remaining memory will be available 1046 physical memory installed, the remaining memory will be available
1047 as "high memory". Accessing high memory is a little more costly 1047 as "high memory". Accessing high memory is a little more costly
1048 than low memory, as it needs to be mapped into the kernel first. 1048 than low memory, as it needs to be mapped into the kernel first.
1049 Note that increasing the kernel address space limits the range 1049 Note that increasing the kernel address space limits the range
1050 available to user programs, making the address space there 1050 available to user programs, making the address space there
1051 tighter. Selecting anything other than the default 3G/1G split 1051 tighter. Selecting anything other than the default 3G/1G split
1052 will also likely make your kernel incompatible with binary-only 1052 will also likely make your kernel incompatible with binary-only
1053 kernel modules. 1053 kernel modules.
1054 1054
1055 If you are not absolutely sure what you are doing, leave this 1055 If you are not absolutely sure what you are doing, leave this
1056 option alone! 1056 option alone!
1057 1057
1058 config VMSPLIT_3G 1058 config VMSPLIT_3G
1059 bool "3G/1G user/kernel split" 1059 bool "3G/1G user/kernel split"
1060 config VMSPLIT_3G_OPT 1060 config VMSPLIT_3G_OPT
1061 depends on !X86_PAE 1061 depends on !X86_PAE
1062 bool "3G/1G user/kernel split (for full 1G low memory)" 1062 bool "3G/1G user/kernel split (for full 1G low memory)"
1063 config VMSPLIT_2G 1063 config VMSPLIT_2G
1064 bool "2G/2G user/kernel split" 1064 bool "2G/2G user/kernel split"
1065 config VMSPLIT_2G_OPT 1065 config VMSPLIT_2G_OPT
1066 depends on !X86_PAE 1066 depends on !X86_PAE
1067 bool "2G/2G user/kernel split (for full 2G low memory)" 1067 bool "2G/2G user/kernel split (for full 2G low memory)"
1068 config VMSPLIT_1G 1068 config VMSPLIT_1G
1069 bool "1G/3G user/kernel split" 1069 bool "1G/3G user/kernel split"
1070 endchoice 1070 endchoice
1071 1071
1072 config PAGE_OFFSET 1072 config PAGE_OFFSET
1073 hex 1073 hex
1074 default 0xB0000000 if VMSPLIT_3G_OPT 1074 default 0xB0000000 if VMSPLIT_3G_OPT
1075 default 0x80000000 if VMSPLIT_2G 1075 default 0x80000000 if VMSPLIT_2G
1076 default 0x78000000 if VMSPLIT_2G_OPT 1076 default 0x78000000 if VMSPLIT_2G_OPT
1077 default 0x40000000 if VMSPLIT_1G 1077 default 0x40000000 if VMSPLIT_1G
1078 default 0xC0000000 1078 default 0xC0000000
1079 depends on X86_32 1079 depends on X86_32
1080 1080
1081 config HIGHMEM 1081 config HIGHMEM
1082 def_bool y 1082 def_bool y
1083 depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) 1083 depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
1084 1084
1085 config X86_PAE 1085 config X86_PAE
1086 bool "PAE (Physical Address Extension) Support" 1086 bool "PAE (Physical Address Extension) Support"
1087 depends on X86_32 && !HIGHMEM4G 1087 depends on X86_32 && !HIGHMEM4G
1088 ---help--- 1088 ---help---
1089 PAE is required for NX support, and furthermore enables 1089 PAE is required for NX support, and furthermore enables
1090 larger swapspace support for non-overcommit purposes. It 1090 larger swapspace support for non-overcommit purposes. It
1091 has the cost of more pagetable lookup overhead, and also 1091 has the cost of more pagetable lookup overhead, and also
1092 consumes more pagetable space per process. 1092 consumes more pagetable space per process.
1093 1093
1094 config ARCH_PHYS_ADDR_T_64BIT 1094 config ARCH_PHYS_ADDR_T_64BIT
1095 def_bool X86_64 || X86_PAE 1095 def_bool X86_64 || X86_PAE
1096 1096
1097 config DIRECT_GBPAGES 1097 config DIRECT_GBPAGES
1098 bool "Enable 1GB pages for kernel pagetables" if EMBEDDED 1098 bool "Enable 1GB pages for kernel pagetables" if EMBEDDED
1099 default y 1099 default y
1100 depends on X86_64 1100 depends on X86_64
1101 ---help--- 1101 ---help---
1102 Allow the kernel linear mapping to use 1GB pages on CPUs that 1102 Allow the kernel linear mapping to use 1GB pages on CPUs that
1103 support it. This can improve the kernel's performance a tiny bit by 1103 support it. This can improve the kernel's performance a tiny bit by
1104 reducing TLB pressure. If in doubt, say "Y". 1104 reducing TLB pressure. If in doubt, say "Y".
1105 1105
1106 # Common NUMA Features 1106 # Common NUMA Features
1107 config NUMA 1107 config NUMA
1108 bool "Numa Memory Allocation and Scheduler Support" 1108 bool "Numa Memory Allocation and Scheduler Support"
1109 depends on SMP 1109 depends on SMP
1110 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) 1110 depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
1111 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) 1111 default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
1112 ---help--- 1112 ---help---
1113 Enable NUMA (Non Uniform Memory Access) support. 1113 Enable NUMA (Non Uniform Memory Access) support.
1114 1114
1115 The kernel will try to allocate memory used by a CPU on the 1115 The kernel will try to allocate memory used by a CPU on the
1116 local memory controller of the CPU and add some more 1116 local memory controller of the CPU and add some more
1117 NUMA awareness to the kernel. 1117 NUMA awareness to the kernel.
1118 1118
1119 For 64-bit this is recommended if the system is Intel Core i7 1119 For 64-bit this is recommended if the system is Intel Core i7
1120 (or later), AMD Opteron, or EM64T NUMA. 1120 (or later), AMD Opteron, or EM64T NUMA.
1121 1121
1122 For 32-bit this is only needed on (rare) 32-bit-only platforms 1122 For 32-bit this is only needed on (rare) 32-bit-only platforms
1123 that support NUMA topologies, such as NUMAQ / Summit, or if you 1123 that support NUMA topologies, such as NUMAQ / Summit, or if you
1124 boot a 32-bit kernel on a 64-bit NUMA platform. 1124 boot a 32-bit kernel on a 64-bit NUMA platform.
1125 1125
1126 Otherwise, you should say N. 1126 Otherwise, you should say N.
1127 1127
1128 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 1128 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
1129 depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) 1129 depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI)
1130 1130
1131 config K8_NUMA 1131 config K8_NUMA
1132 def_bool y 1132 def_bool y
1133 prompt "Old style AMD Opteron NUMA detection" 1133 prompt "Old style AMD Opteron NUMA detection"
1134 depends on X86_64 && NUMA && PCI 1134 depends on X86_64 && NUMA && PCI
1135 ---help--- 1135 ---help---
1136 Enable K8 NUMA node topology detection. You should say Y here if 1136 Enable K8 NUMA node topology detection. You should say Y here if
1137 you have a multi processor AMD K8 system. This uses an old 1137 you have a multi processor AMD K8 system. This uses an old
1138 method to read the NUMA configuration directly from the builtin 1138 method to read the NUMA configuration directly from the builtin
1139 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 1139 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
1140 instead, which also takes priority if both are compiled in. 1140 instead, which also takes priority if both are compiled in.
1141 1141
1142 config X86_64_ACPI_NUMA 1142 config X86_64_ACPI_NUMA
1143 def_bool y 1143 def_bool y
1144 prompt "ACPI NUMA detection" 1144 prompt "ACPI NUMA detection"
1145 depends on X86_64 && NUMA && ACPI && PCI 1145 depends on X86_64 && NUMA && ACPI && PCI
1146 select ACPI_NUMA 1146 select ACPI_NUMA
1147 ---help--- 1147 ---help---
1148 Enable ACPI SRAT based node topology detection. 1148 Enable ACPI SRAT based node topology detection.
1149 1149
1150 # Some NUMA nodes have memory ranges that span 1150 # Some NUMA nodes have memory ranges that span
1151 # other nodes. Even though a pfn is valid and 1151 # other nodes. Even though a pfn is valid and
1152 # between a node's start and end pfns, it may not 1152 # between a node's start and end pfns, it may not
1153 # reside on that node. See memmap_init_zone() 1153 # reside on that node. See memmap_init_zone()
1154 # for details. 1154 # for details.
1155 config NODES_SPAN_OTHER_NODES 1155 config NODES_SPAN_OTHER_NODES
1156 def_bool y 1156 def_bool y
1157 depends on X86_64_ACPI_NUMA 1157 depends on X86_64_ACPI_NUMA
1158 1158
1159 config NUMA_EMU 1159 config NUMA_EMU
1160 bool "NUMA emulation" 1160 bool "NUMA emulation"
1161 depends on X86_64 && NUMA 1161 depends on X86_64 && NUMA
1162 ---help--- 1162 ---help---
1163 Enable NUMA emulation. A flat machine will be split 1163 Enable NUMA emulation. A flat machine will be split
1164 into virtual nodes when booted with "numa=fake=N", where N is the 1164 into virtual nodes when booted with "numa=fake=N", where N is the
1165 number of nodes. This is only useful for debugging. 1165 number of nodes. This is only useful for debugging.
1166 1166
1167 config NODES_SHIFT 1167 config NODES_SHIFT
1168 int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP 1168 int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
1169 range 1 9 1169 range 1 9
1170 default "9" if MAXSMP 1170 default "9" if MAXSMP
1171 default "6" if X86_64 1171 default "6" if X86_64
1172 default "4" if X86_NUMAQ 1172 default "4" if X86_NUMAQ
1173 default "3" 1173 default "3"
1174 depends on NEED_MULTIPLE_NODES 1174 depends on NEED_MULTIPLE_NODES
1175 ---help--- 1175 ---help---
1176 Specify the maximum number of NUMA Nodes available on the target 1176 Specify the maximum number of NUMA Nodes available on the target
1177 system. Increases memory reserved to accommodate various tables. 1177 system. Increases memory reserved to accommodate various tables.
1178 1178
1179 config HAVE_ARCH_BOOTMEM 1179 config HAVE_ARCH_BOOTMEM
1180 def_bool y 1180 def_bool y
1181 depends on X86_32 && NUMA 1181 depends on X86_32 && NUMA
1182 1182
1183 config ARCH_HAVE_MEMORY_PRESENT 1183 config ARCH_HAVE_MEMORY_PRESENT
1184 def_bool y 1184 def_bool y
1185 depends on X86_32 && DISCONTIGMEM 1185 depends on X86_32 && DISCONTIGMEM
1186 1186
1187 config NEED_NODE_MEMMAP_SIZE 1187 config NEED_NODE_MEMMAP_SIZE
1188 def_bool y 1188 def_bool y
1189 depends on X86_32 && (DISCONTIGMEM || SPARSEMEM) 1189 depends on X86_32 && (DISCONTIGMEM || SPARSEMEM)
1190 1190
1191 config HAVE_ARCH_ALLOC_REMAP 1191 config HAVE_ARCH_ALLOC_REMAP
1192 def_bool y 1192 def_bool y
1193 depends on X86_32 && NUMA 1193 depends on X86_32 && NUMA
1194 1194
1195 config ARCH_FLATMEM_ENABLE 1195 config ARCH_FLATMEM_ENABLE
1196 def_bool y 1196 def_bool y
1197 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA 1197 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA
1198 1198
1199 config ARCH_DISCONTIGMEM_ENABLE 1199 config ARCH_DISCONTIGMEM_ENABLE
1200 def_bool y 1200 def_bool y
1201 depends on NUMA && X86_32 1201 depends on NUMA && X86_32
1202 1202
1203 config ARCH_DISCONTIGMEM_DEFAULT 1203 config ARCH_DISCONTIGMEM_DEFAULT
1204 def_bool y 1204 def_bool y
1205 depends on NUMA && X86_32 1205 depends on NUMA && X86_32
1206 1206
1207 config ARCH_PROC_KCORE_TEXT 1207 config ARCH_PROC_KCORE_TEXT
1208 def_bool y 1208 def_bool y
1209 depends on X86_64 && PROC_KCORE 1209 depends on X86_64 && PROC_KCORE
1210 1210
1211 config ARCH_SPARSEMEM_DEFAULT 1211 config ARCH_SPARSEMEM_DEFAULT
1212 def_bool y 1212 def_bool y
1213 depends on X86_64 1213 depends on X86_64
1214 1214
1215 config ARCH_SPARSEMEM_ENABLE 1215 config ARCH_SPARSEMEM_ENABLE
1216 def_bool y 1216 def_bool y
1217 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD 1217 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD
1218 select SPARSEMEM_STATIC if X86_32 1218 select SPARSEMEM_STATIC if X86_32
1219 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 1219 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1220 1220
1221 config ARCH_SELECT_MEMORY_MODEL 1221 config ARCH_SELECT_MEMORY_MODEL
1222 def_bool y 1222 def_bool y
1223 depends on ARCH_SPARSEMEM_ENABLE 1223 depends on ARCH_SPARSEMEM_ENABLE
1224 1224
1225 config ARCH_MEMORY_PROBE 1225 config ARCH_MEMORY_PROBE
1226 def_bool X86_64 1226 def_bool X86_64
1227 depends on MEMORY_HOTPLUG 1227 depends on MEMORY_HOTPLUG
1228 1228
1229 source "mm/Kconfig" 1229 source "mm/Kconfig"
1230 1230
1231 config HIGHPTE 1231 config HIGHPTE
1232 bool "Allocate 3rd-level pagetables from highmem" 1232 bool "Allocate 3rd-level pagetables from highmem"
1233 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G) 1233 depends on X86_32 && (HIGHMEM4G || HIGHMEM64G)
1234 ---help--- 1234 ---help---
1235 The VM uses one page table entry for each page of physical memory. 1235 The VM uses one page table entry for each page of physical memory.
1236 For systems with a lot of RAM, this can be wasteful of precious 1236 For systems with a lot of RAM, this can be wasteful of precious
1237 low memory. Setting this option will put user-space page table 1237 low memory. Setting this option will put user-space page table
1238 entries in high memory. 1238 entries in high memory.
1239 1239
1240 config X86_CHECK_BIOS_CORRUPTION 1240 config X86_CHECK_BIOS_CORRUPTION
1241 bool "Check for low memory corruption" 1241 bool "Check for low memory corruption"
1242 ---help--- 1242 ---help---
1243 Periodically check for memory corruption in low memory, which 1243 Periodically check for memory corruption in low memory, which
1244 is suspected to be caused by BIOS. Even when enabled in the 1244 is suspected to be caused by BIOS. Even when enabled in the
1245 configuration, it is disabled at runtime. Enable it by 1245 configuration, it is disabled at runtime. Enable it by
1246 setting "memory_corruption_check=1" on the kernel command 1246 setting "memory_corruption_check=1" on the kernel command
1247 line. By default it scans the low 64k of memory every 60 1247 line. By default it scans the low 64k of memory every 60
1248 seconds; see the memory_corruption_check_size and 1248 seconds; see the memory_corruption_check_size and
1249 memory_corruption_check_period parameters in 1249 memory_corruption_check_period parameters in
1250 Documentation/kernel-parameters.txt to adjust this. 1250 Documentation/kernel-parameters.txt to adjust this.
1251 1251
1252 When enabled with the default parameters, this option has 1252 When enabled with the default parameters, this option has
1253 almost no overhead, as it reserves a relatively small amount 1253 almost no overhead, as it reserves a relatively small amount
1254 of memory and scans it infrequently. It both detects corruption 1254 of memory and scans it infrequently. It both detects corruption
1255 and prevents it from affecting the running system. 1255 and prevents it from affecting the running system.
1256 1256
1257 It is, however, intended as a diagnostic tool; if repeatable 1257 It is, however, intended as a diagnostic tool; if repeatable
1258 BIOS-originated corruption always affects the same memory, 1258 BIOS-originated corruption always affects the same memory,
1259 you can use memmap= to prevent the kernel from using that 1259 you can use memmap= to prevent the kernel from using that
1260 memory. 1260 memory.
1261 1261
1262 config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK 1262 config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
1263 bool "Set the default setting of memory_corruption_check" 1263 bool "Set the default setting of memory_corruption_check"
1264 depends on X86_CHECK_BIOS_CORRUPTION 1264 depends on X86_CHECK_BIOS_CORRUPTION
1265 default y 1265 default y
1266 ---help--- 1266 ---help---
1267 Set whether the default state of memory_corruption_check is 1267 Set whether the default state of memory_corruption_check is
1268 on or off. 1268 on or off.
1269 1269
1270 config X86_RESERVE_LOW_64K 1270 config X86_RESERVE_LOW_64K
1271 bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen" 1271 bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
1272 default y 1272 default y
1273 ---help--- 1273 ---help---
1274 Reserve the first 64K of physical RAM on BIOSes that are known 1274 Reserve the first 64K of physical RAM on BIOSes that are known
1275 to potentially corrupt that memory range. A numbers of BIOSes are 1275 to potentially corrupt that memory range. A numbers of BIOSes are
1276 known to utilize this area during suspend/resume, so it must not 1276 known to utilize this area during suspend/resume, so it must not
1277 be used by the kernel. 1277 be used by the kernel.
1278 1278
1279 Set this to N if you are absolutely sure that you trust the BIOS 1279 Set this to N if you are absolutely sure that you trust the BIOS
1280 to get all its memory reservations and usages right. 1280 to get all its memory reservations and usages right.
1281 1281
1282 If you have doubts about the BIOS (e.g. suspend/resume does not 1282 If you have doubts about the BIOS (e.g. suspend/resume does not
1283 work or there's kernel crashes after certain hardware hotplug 1283 work or there's kernel crashes after certain hardware hotplug
1284 events) and it's not AMI or Phoenix, then you might want to enable 1284 events) and it's not AMI or Phoenix, then you might want to enable
1285 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical 1285 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
1286 corruption patterns. 1286 corruption patterns.
1287 1287
1288 Say Y if unsure. 1288 Say Y if unsure.
1289 1289
1290 config MATH_EMULATION 1290 config MATH_EMULATION
1291 bool 1291 bool
1292 prompt "Math emulation" if X86_32 1292 prompt "Math emulation" if X86_32
1293 ---help--- 1293 ---help---
1294 Linux can emulate a math coprocessor (used for floating point 1294 Linux can emulate a math coprocessor (used for floating point
1295 operations) if you don't have one. 486DX and Pentium processors have 1295 operations) if you don't have one. 486DX and Pentium processors have
1296 a math coprocessor built in, 486SX and 386 do not, unless you added 1296 a math coprocessor built in, 486SX and 386 do not, unless you added
1297 a 487DX or 387, respectively. (The messages during boot time can 1297 a 487DX or 387, respectively. (The messages during boot time can
1298 give you some hints here ["man dmesg"].) Everyone needs either a 1298 give you some hints here ["man dmesg"].) Everyone needs either a
1299 coprocessor or this emulation. 1299 coprocessor or this emulation.
1300 1300
1301 If you don't have a math coprocessor, you need to say Y here; if you 1301 If you don't have a math coprocessor, you need to say Y here; if you
1302 say Y here even though you have a coprocessor, the coprocessor will 1302 say Y here even though you have a coprocessor, the coprocessor will
1303 be used nevertheless. (This behavior can be changed with the kernel 1303 be used nevertheless. (This behavior can be changed with the kernel
1304 command line option "no387", which comes handy if your coprocessor 1304 command line option "no387", which comes handy if your coprocessor
1305 is broken. Try "man bootparam" or see the documentation of your boot 1305 is broken. Try "man bootparam" or see the documentation of your boot
1306 loader (lilo or loadlin) about how to pass options to the kernel at 1306 loader (lilo or loadlin) about how to pass options to the kernel at
1307 boot time.) This means that it is a good idea to say Y here if you 1307 boot time.) This means that it is a good idea to say Y here if you
1308 intend to use this kernel on different machines. 1308 intend to use this kernel on different machines.
1309 1309
1310 More information about the internals of the Linux math coprocessor 1310 More information about the internals of the Linux math coprocessor
1311 emulation can be found in <file:arch/x86/math-emu/README>. 1311 emulation can be found in <file:arch/x86/math-emu/README>.
1312 1312
1313 If you are not sure, say Y; apart from resulting in a 66 KB bigger 1313 If you are not sure, say Y; apart from resulting in a 66 KB bigger
1314 kernel, it won't hurt. 1314 kernel, it won't hurt.
1315 1315
1316 config MTRR 1316 config MTRR
1317 bool "MTRR (Memory Type Range Register) support" 1317 bool "MTRR (Memory Type Range Register) support"
1318 ---help--- 1318 ---help---
1319 On Intel P6 family processors (Pentium Pro, Pentium II and later) 1319 On Intel P6 family processors (Pentium Pro, Pentium II and later)
1320 the Memory Type Range Registers (MTRRs) may be used to control 1320 the Memory Type Range Registers (MTRRs) may be used to control
1321 processor access to memory ranges. This is most useful if you have 1321 processor access to memory ranges. This is most useful if you have
1322 a video (VGA) card on a PCI or AGP bus. Enabling write-combining 1322 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
1323 allows bus write transfers to be combined into a larger transfer 1323 allows bus write transfers to be combined into a larger transfer
1324 before bursting over the PCI/AGP bus. This can increase performance 1324 before bursting over the PCI/AGP bus. This can increase performance
1325 of image write operations 2.5 times or more. Saying Y here creates a 1325 of image write operations 2.5 times or more. Saying Y here creates a
1326 /proc/mtrr file which may be used to manipulate your processor's 1326 /proc/mtrr file which may be used to manipulate your processor's
1327 MTRRs. Typically the X server should use this. 1327 MTRRs. Typically the X server should use this.
1328 1328
1329 This code has a reasonably generic interface so that similar 1329 This code has a reasonably generic interface so that similar
1330 control registers on other processors can be easily supported 1330 control registers on other processors can be easily supported
1331 as well: 1331 as well:
1332 1332
1333 The Cyrix 6x86, 6x86MX and M II processors have Address Range 1333 The Cyrix 6x86, 6x86MX and M II processors have Address Range
1334 Registers (ARRs) which provide a similar functionality to MTRRs. For 1334 Registers (ARRs) which provide a similar functionality to MTRRs. For
1335 these, the ARRs are used to emulate the MTRRs. 1335 these, the ARRs are used to emulate the MTRRs.
1336 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two 1336 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1337 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing 1337 MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
1338 write-combining. All of these processors are supported by this code 1338 write-combining. All of these processors are supported by this code
1339 and it makes sense to say Y here if you have one of them. 1339 and it makes sense to say Y here if you have one of them.
1340 1340
1341 Saying Y here also fixes a problem with buggy SMP BIOSes which only 1341 Saying Y here also fixes a problem with buggy SMP BIOSes which only
1342 set the MTRRs for the boot CPU and not for the secondary CPUs. This 1342 set the MTRRs for the boot CPU and not for the secondary CPUs. This
1343 can lead to all sorts of problems, so it's good to say Y here. 1343 can lead to all sorts of problems, so it's good to say Y here.
1344 1344
1345 You can safely say Y even if your machine doesn't have MTRRs, you'll 1345 You can safely say Y even if your machine doesn't have MTRRs, you'll
1346 just add about 9 KB to your kernel. 1346 just add about 9 KB to your kernel.
1347 1347
1348 See <file:Documentation/x86/mtrr.txt> for more information. 1348 See <file:Documentation/x86/mtrr.txt> for more information.
1349 1349
1350 config MTRR_SANITIZER 1350 config MTRR_SANITIZER
1351 def_bool y 1351 def_bool y
1352 prompt "MTRR cleanup support" 1352 prompt "MTRR cleanup support"
1353 depends on MTRR 1353 depends on MTRR
1354 ---help--- 1354 ---help---
1355 Convert MTRR layout from continuous to discrete, so X drivers can 1355 Convert MTRR layout from continuous to discrete, so X drivers can
1356 add writeback entries. 1356 add writeback entries.
1357 1357
1358 Can be disabled with disable_mtrr_cleanup on the kernel command line. 1358 Can be disabled with disable_mtrr_cleanup on the kernel command line.
1359 The largest mtrr entry size for a continuous block can be set with 1359 The largest mtrr entry size for a continuous block can be set with
1360 mtrr_chunk_size. 1360 mtrr_chunk_size.
1361 1361
1362 If unsure, say Y. 1362 If unsure, say Y.
1363 1363
1364 config MTRR_SANITIZER_ENABLE_DEFAULT 1364 config MTRR_SANITIZER_ENABLE_DEFAULT
1365 int "MTRR cleanup enable value (0-1)" 1365 int "MTRR cleanup enable value (0-1)"
1366 range 0 1 1366 range 0 1
1367 default "0" 1367 default "0"
1368 depends on MTRR_SANITIZER 1368 depends on MTRR_SANITIZER
1369 ---help--- 1369 ---help---
1370 Enable mtrr cleanup default value 1370 Enable mtrr cleanup default value
1371 1371
1372 config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT 1372 config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
1373 int "MTRR cleanup spare reg num (0-7)" 1373 int "MTRR cleanup spare reg num (0-7)"
1374 range 0 7 1374 range 0 7
1375 default "1" 1375 default "1"
1376 depends on MTRR_SANITIZER 1376 depends on MTRR_SANITIZER
1377 ---help--- 1377 ---help---
1378 mtrr cleanup spare entries default, it can be changed via 1378 mtrr cleanup spare entries default, it can be changed via
1379 mtrr_spare_reg_nr=N on the kernel command line. 1379 mtrr_spare_reg_nr=N on the kernel command line.
1380 1380
1381 config X86_PAT 1381 config X86_PAT
1382 bool 1382 bool
1383 prompt "x86 PAT support" 1383 prompt "x86 PAT support"
1384 depends on MTRR 1384 depends on MTRR
1385 ---help--- 1385 ---help---
1386 Use PAT attributes to setup page level cache control. 1386 Use PAT attributes to setup page level cache control.
1387 1387
1388 PATs are the modern equivalents of MTRRs and are much more 1388 PATs are the modern equivalents of MTRRs and are much more
1389 flexible than MTRRs. 1389 flexible than MTRRs.
1390 1390
1391 Say N here if you see bootup problems (boot crash, boot hang, 1391 Say N here if you see bootup problems (boot crash, boot hang,
1392 spontaneous reboots) or a non-working video driver. 1392 spontaneous reboots) or a non-working video driver.
1393 1393
1394 If unsure, say Y. 1394 If unsure, say Y.
1395 1395
1396 config ARCH_USES_PG_UNCACHED 1396 config ARCH_USES_PG_UNCACHED
1397 def_bool y 1397 def_bool y
1398 depends on X86_PAT 1398 depends on X86_PAT
1399 1399
1400 config EFI 1400 config EFI
1401 bool "EFI runtime service support" 1401 bool "EFI runtime service support"
1402 depends on ACPI 1402 depends on ACPI
1403 ---help--- 1403 ---help---
1404 This enables the kernel to use EFI runtime services that are 1404 This enables the kernel to use EFI runtime services that are
1405 available (such as the EFI variable services). 1405 available (such as the EFI variable services).
1406 1406
1407 This option is only useful on systems that have EFI firmware. 1407 This option is only useful on systems that have EFI firmware.
1408 In addition, you should use the latest ELILO loader available 1408 In addition, you should use the latest ELILO loader available
1409 at <http://elilo.sourceforge.net> in order to take advantage 1409 at <http://elilo.sourceforge.net> in order to take advantage
1410 of EFI runtime services. However, even with this option, the 1410 of EFI runtime services. However, even with this option, the
1411 resultant kernel should continue to boot on existing non-EFI 1411 resultant kernel should continue to boot on existing non-EFI
1412 platforms. 1412 platforms.
1413 1413
1414 config SECCOMP 1414 config SECCOMP
1415 def_bool y 1415 def_bool y
1416 prompt "Enable seccomp to safely compute untrusted bytecode" 1416 prompt "Enable seccomp to safely compute untrusted bytecode"
1417 ---help--- 1417 ---help---
1418 This kernel feature is useful for number crunching applications 1418 This kernel feature is useful for number crunching applications
1419 that may need to compute untrusted bytecode during their 1419 that may need to compute untrusted bytecode during their
1420 execution. By using pipes or other transports made available to 1420 execution. By using pipes or other transports made available to
1421 the process as file descriptors supporting the read/write 1421 the process as file descriptors supporting the read/write
1422 syscalls, it's possible to isolate those applications in 1422 syscalls, it's possible to isolate those applications in
1423 their own address space using seccomp. Once seccomp is 1423 their own address space using seccomp. Once seccomp is
1424 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled 1424 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
1425 and the task is only allowed to execute a few safe syscalls 1425 and the task is only allowed to execute a few safe syscalls
1426 defined by each seccomp mode. 1426 defined by each seccomp mode.
1427 1427
1428 If unsure, say Y. Only embedded should say N here. 1428 If unsure, say Y. Only embedded should say N here.
1429 1429
1430 config CC_STACKPROTECTOR_ALL 1430 config CC_STACKPROTECTOR_ALL
1431 bool 1431 bool
1432 1432
1433 config CC_STACKPROTECTOR 1433 config CC_STACKPROTECTOR
1434 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 1434 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
1435 select CC_STACKPROTECTOR_ALL 1435 select CC_STACKPROTECTOR_ALL
1436 ---help--- 1436 ---help---
1437 This option turns on the -fstack-protector GCC feature. This 1437 This option turns on the -fstack-protector GCC feature. This
1438 feature puts, at the beginning of functions, a canary value on 1438 feature puts, at the beginning of functions, a canary value on
1439 the stack just before the return address, and validates 1439 the stack just before the return address, and validates
1440 the value just before actually returning. Stack based buffer 1440 the value just before actually returning. Stack based buffer
1441 overflows (that need to overwrite this return address) now also 1441 overflows (that need to overwrite this return address) now also
1442 overwrite the canary, which gets detected and the attack is then 1442 overwrite the canary, which gets detected and the attack is then
1443 neutralized via a kernel panic. 1443 neutralized via a kernel panic.
1444 1444
1445 This feature requires gcc version 4.2 or above, or a distribution 1445 This feature requires gcc version 4.2 or above, or a distribution
1446 gcc with the feature backported. Older versions are automatically 1446 gcc with the feature backported. Older versions are automatically
1447 detected and for those versions, this configuration option is 1447 detected and for those versions, this configuration option is
1448 ignored. (and a warning is printed during bootup) 1448 ignored. (and a warning is printed during bootup)
1449 1449
1450 source kernel/Kconfig.hz 1450 source kernel/Kconfig.hz
1451 1451
1452 config KEXEC 1452 config KEXEC
1453 bool "kexec system call" 1453 bool "kexec system call"
1454 ---help--- 1454 ---help---
1455 kexec is a system call that implements the ability to shutdown your 1455 kexec is a system call that implements the ability to shutdown your
1456 current kernel, and to start another kernel. It is like a reboot 1456 current kernel, and to start another kernel. It is like a reboot
1457 but it is independent of the system firmware. And like a reboot 1457 but it is independent of the system firmware. And like a reboot
1458 you can start any kernel with it, not just Linux. 1458 you can start any kernel with it, not just Linux.
1459 1459
1460 The name comes from the similarity to the exec system call. 1460 The name comes from the similarity to the exec system call.
1461 1461
1462 It is an ongoing process to be certain the hardware in a machine 1462 It is an ongoing process to be certain the hardware in a machine
1463 is properly shutdown, so do not be surprised if this code does not 1463 is properly shutdown, so do not be surprised if this code does not
1464 initially work for you. It may help to enable device hotplugging 1464 initially work for you. It may help to enable device hotplugging
1465 support. As of this writing the exact hardware interface is 1465 support. As of this writing the exact hardware interface is
1466 strongly in flux, so no good recommendation can be made. 1466 strongly in flux, so no good recommendation can be made.
1467 1467
1468 config CRASH_DUMP 1468 config CRASH_DUMP
1469 bool "kernel crash dumps" 1469 bool "kernel crash dumps"
1470 depends on X86_64 || (X86_32 && HIGHMEM) 1470 depends on X86_64 || (X86_32 && HIGHMEM)
1471 ---help--- 1471 ---help---
1472 Generate crash dump after being started by kexec. 1472 Generate crash dump after being started by kexec.
1473 This should be normally only set in special crash dump kernels 1473 This should be normally only set in special crash dump kernels
1474 which are loaded in the main kernel with kexec-tools into 1474 which are loaded in the main kernel with kexec-tools into
1475 a specially reserved region and then later executed after 1475 a specially reserved region and then later executed after
1476 a crash by kdump/kexec. The crash dump kernel must be compiled 1476 a crash by kdump/kexec. The crash dump kernel must be compiled
1477 to a memory address not used by the main kernel or BIOS using 1477 to a memory address not used by the main kernel or BIOS using
1478 PHYSICAL_START, or it must be built as a relocatable image 1478 PHYSICAL_START, or it must be built as a relocatable image
1479 (CONFIG_RELOCATABLE=y). 1479 (CONFIG_RELOCATABLE=y).
1480 For more details see Documentation/kdump/kdump.txt 1480 For more details see Documentation/kdump/kdump.txt
1481 1481
1482 config KEXEC_JUMP 1482 config KEXEC_JUMP
1483 bool "kexec jump (EXPERIMENTAL)" 1483 bool "kexec jump (EXPERIMENTAL)"
1484 depends on EXPERIMENTAL 1484 depends on EXPERIMENTAL
1485 depends on KEXEC && HIBERNATION 1485 depends on KEXEC && HIBERNATION
1486 ---help--- 1486 ---help---
1487 Jump between original kernel and kexeced kernel and invoke 1487 Jump between original kernel and kexeced kernel and invoke
1488 code in physical address mode via KEXEC 1488 code in physical address mode via KEXEC
1489 1489
1490 config PHYSICAL_START 1490 config PHYSICAL_START
1491 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 1491 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
1492 default "0x1000000" 1492 default "0x1000000"
1493 ---help--- 1493 ---help---
1494 This gives the physical address where the kernel is loaded. 1494 This gives the physical address where the kernel is loaded.
1495 1495
1496 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 1496 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
1497 bzImage will decompress itself to above physical address and 1497 bzImage will decompress itself to above physical address and
1498 run from there. Otherwise, bzImage will run from the address where 1498 run from there. Otherwise, bzImage will run from the address where
1499 it has been loaded by the boot loader and will ignore above physical 1499 it has been loaded by the boot loader and will ignore above physical
1500 address. 1500 address.
1501 1501
1502 In normal kdump cases one does not have to set/change this option 1502 In normal kdump cases one does not have to set/change this option
1503 as now bzImage can be compiled as a completely relocatable image 1503 as now bzImage can be compiled as a completely relocatable image
1504 (CONFIG_RELOCATABLE=y) and be used to load and run from a different 1504 (CONFIG_RELOCATABLE=y) and be used to load and run from a different
1505 address. This option is mainly useful for the folks who don't want 1505 address. This option is mainly useful for the folks who don't want
1506 to use a bzImage for capturing the crash dump and want to use a 1506 to use a bzImage for capturing the crash dump and want to use a
1507 vmlinux instead. vmlinux is not relocatable hence a kernel needs 1507 vmlinux instead. vmlinux is not relocatable hence a kernel needs
1508 to be specifically compiled to run from a specific memory area 1508 to be specifically compiled to run from a specific memory area
1509 (normally a reserved region) and this option comes handy. 1509 (normally a reserved region) and this option comes handy.
1510 1510
1511 So if you are using bzImage for capturing the crash dump, 1511 So if you are using bzImage for capturing the crash dump,
1512 leave the value here unchanged to 0x1000000 and set 1512 leave the value here unchanged to 0x1000000 and set
1513 CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux 1513 CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux
1514 for capturing the crash dump change this value to start of 1514 for capturing the crash dump change this value to start of
1515 the reserved region. In other words, it can be set based on 1515 the reserved region. In other words, it can be set based on
1516 the "X" value as specified in the "crashkernel=YM@XM" 1516 the "X" value as specified in the "crashkernel=YM@XM"
1517 command line boot parameter passed to the panic-ed 1517 command line boot parameter passed to the panic-ed
1518 kernel. Please take a look at Documentation/kdump/kdump.txt 1518 kernel. Please take a look at Documentation/kdump/kdump.txt
1519 for more details about crash dumps. 1519 for more details about crash dumps.
1520 1520
1521 Usage of bzImage for capturing the crash dump is recommended as 1521 Usage of bzImage for capturing the crash dump is recommended as
1522 one does not have to build two kernels. Same kernel can be used 1522 one does not have to build two kernels. Same kernel can be used
1523 as production kernel and capture kernel. Above option should have 1523 as production kernel and capture kernel. Above option should have
1524 gone away after relocatable bzImage support is introduced. But it 1524 gone away after relocatable bzImage support is introduced. But it
1525 is present because there are users out there who continue to use 1525 is present because there are users out there who continue to use
1526 vmlinux for dump capture. This option should go away down the 1526 vmlinux for dump capture. This option should go away down the
1527 line. 1527 line.
1528 1528
1529 Don't change this unless you know what you are doing. 1529 Don't change this unless you know what you are doing.
1530 1530
1531 config RELOCATABLE 1531 config RELOCATABLE
1532 bool "Build a relocatable kernel" 1532 bool "Build a relocatable kernel"
1533 default y 1533 default y
1534 ---help--- 1534 ---help---
1535 This builds a kernel image that retains relocation information 1535 This builds a kernel image that retains relocation information
1536 so it can be loaded someplace besides the default 1MB. 1536 so it can be loaded someplace besides the default 1MB.
1537 The relocations tend to make the kernel binary about 10% larger, 1537 The relocations tend to make the kernel binary about 10% larger,
1538 but are discarded at runtime. 1538 but are discarded at runtime.
1539 1539
1540 One use is for the kexec on panic case where the recovery kernel 1540 One use is for the kexec on panic case where the recovery kernel
1541 must live at a different physical address than the primary 1541 must live at a different physical address than the primary
1542 kernel. 1542 kernel.
1543 1543
1544 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 1544 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
1545 it has been loaded at and the compile time physical address 1545 it has been loaded at and the compile time physical address
1546 (CONFIG_PHYSICAL_START) is ignored. 1546 (CONFIG_PHYSICAL_START) is ignored.
1547 1547
1548 # Relocation on x86-32 needs some additional build support 1548 # Relocation on x86-32 needs some additional build support
1549 config X86_NEED_RELOCS 1549 config X86_NEED_RELOCS
1550 def_bool y 1550 def_bool y
1551 depends on X86_32 && RELOCATABLE 1551 depends on X86_32 && RELOCATABLE
1552 1552
1553 config PHYSICAL_ALIGN 1553 config PHYSICAL_ALIGN
1554 hex 1554 hex
1555 prompt "Alignment value to which kernel should be aligned" if X86_32 1555 prompt "Alignment value to which kernel should be aligned" if X86_32
1556 default "0x1000000" 1556 default "0x1000000"
1557 range 0x2000 0x1000000 1557 range 0x2000 0x1000000
1558 ---help--- 1558 ---help---
1559 This value puts the alignment restrictions on physical address 1559 This value puts the alignment restrictions on physical address
1560 where kernel is loaded and run from. Kernel is compiled for an 1560 where kernel is loaded and run from. Kernel is compiled for an
1561 address which meets above alignment restriction. 1561 address which meets above alignment restriction.
1562 1562
1563 If bootloader loads the kernel at a non-aligned address and 1563 If bootloader loads the kernel at a non-aligned address and
1564 CONFIG_RELOCATABLE is set, kernel will move itself to nearest 1564 CONFIG_RELOCATABLE is set, kernel will move itself to nearest
1565 address aligned to above value and run from there. 1565 address aligned to above value and run from there.
1566 1566
1567 If bootloader loads the kernel at a non-aligned address and 1567 If bootloader loads the kernel at a non-aligned address and
1568 CONFIG_RELOCATABLE is not set, kernel will ignore the run time 1568 CONFIG_RELOCATABLE is not set, kernel will ignore the run time
1569 load address and decompress itself to the address it has been 1569 load address and decompress itself to the address it has been
1570 compiled for and run from there. The address for which kernel is 1570 compiled for and run from there. The address for which kernel is
1571 compiled already meets above alignment restrictions. Hence the 1571 compiled already meets above alignment restrictions. Hence the
1572 end result is that kernel runs from a physical address meeting 1572 end result is that kernel runs from a physical address meeting
1573 above alignment restrictions. 1573 above alignment restrictions.
1574 1574
1575 Don't change this unless you know what you are doing. 1575 Don't change this unless you know what you are doing.
1576 1576
1577 config HOTPLUG_CPU 1577 config HOTPLUG_CPU
1578 bool "Support for hot-pluggable CPUs" 1578 bool "Support for hot-pluggable CPUs"
1579 depends on SMP && HOTPLUG 1579 depends on SMP && HOTPLUG
1580 ---help--- 1580 ---help---
1581 Say Y here to allow turning CPUs off and on. CPUs can be 1581 Say Y here to allow turning CPUs off and on. CPUs can be
1582 controlled through /sys/devices/system/cpu. 1582 controlled through /sys/devices/system/cpu.
1583 ( Note: power management support will enable this option 1583 ( Note: power management support will enable this option
1584 automatically on SMP systems. ) 1584 automatically on SMP systems. )
1585 Say N if you want to disable CPU hotplug. 1585 Say N if you want to disable CPU hotplug.
1586 1586
1587 config COMPAT_VDSO 1587 config COMPAT_VDSO
1588 def_bool y 1588 def_bool y
1589 prompt "Compat VDSO support" 1589 prompt "Compat VDSO support"
1590 depends on X86_32 || IA32_EMULATION 1590 depends on X86_32 || IA32_EMULATION
1591 ---help--- 1591 ---help---
1592 Map the 32-bit VDSO to the predictable old-style address too. 1592 Map the 32-bit VDSO to the predictable old-style address too.
1593 ---help--- 1593 ---help---
1594 Say N here if you are running a sufficiently recent glibc 1594 Say N here if you are running a sufficiently recent glibc
1595 version (2.3.3 or later), to remove the high-mapped 1595 version (2.3.3 or later), to remove the high-mapped
1596 VDSO mapping and to exclusively use the randomized VDSO. 1596 VDSO mapping and to exclusively use the randomized VDSO.
1597 1597
1598 If unsure, say Y. 1598 If unsure, say Y.
1599 1599
1600 config CMDLINE_BOOL 1600 config CMDLINE_BOOL
1601 bool "Built-in kernel command line" 1601 bool "Built-in kernel command line"
1602 default n 1602 default n
1603 ---help--- 1603 ---help---
1604 Allow for specifying boot arguments to the kernel at 1604 Allow for specifying boot arguments to the kernel at
1605 build time. On some systems (e.g. embedded ones), it is 1605 build time. On some systems (e.g. embedded ones), it is
1606 necessary or convenient to provide some or all of the 1606 necessary or convenient to provide some or all of the
1607 kernel boot arguments with the kernel itself (that is, 1607 kernel boot arguments with the kernel itself (that is,
1608 to not rely on the boot loader to provide them.) 1608 to not rely on the boot loader to provide them.)
1609 1609
1610 To compile command line arguments into the kernel, 1610 To compile command line arguments into the kernel,
1611 set this option to 'Y', then fill in the 1611 set this option to 'Y', then fill in the
1612 the boot arguments in CONFIG_CMDLINE. 1612 the boot arguments in CONFIG_CMDLINE.
1613 1613
1614 Systems with fully functional boot loaders (i.e. non-embedded) 1614 Systems with fully functional boot loaders (i.e. non-embedded)
1615 should leave this option set to 'N'. 1615 should leave this option set to 'N'.
1616 1616
1617 config CMDLINE 1617 config CMDLINE
1618 string "Built-in kernel command string" 1618 string "Built-in kernel command string"
1619 depends on CMDLINE_BOOL 1619 depends on CMDLINE_BOOL
1620 default "" 1620 default ""
1621 ---help--- 1621 ---help---
1622 Enter arguments here that should be compiled into the kernel 1622 Enter arguments here that should be compiled into the kernel
1623 image and used at boot time. If the boot loader provides a 1623 image and used at boot time. If the boot loader provides a
1624 command line at boot time, it is appended to this string to 1624 command line at boot time, it is appended to this string to
1625 form the full kernel command line, when the system boots. 1625 form the full kernel command line, when the system boots.
1626 1626
1627 However, you can use the CONFIG_CMDLINE_OVERRIDE option to 1627 However, you can use the CONFIG_CMDLINE_OVERRIDE option to
1628 change this behavior. 1628 change this behavior.
1629 1629
1630 In most cases, the command line (whether built-in or provided 1630 In most cases, the command line (whether built-in or provided
1631 by the boot loader) should specify the device for the root 1631 by the boot loader) should specify the device for the root
1632 file system. 1632 file system.
1633 1633
1634 config CMDLINE_OVERRIDE 1634 config CMDLINE_OVERRIDE
1635 bool "Built-in command line overrides boot loader arguments" 1635 bool "Built-in command line overrides boot loader arguments"
1636 default n 1636 default n
1637 depends on CMDLINE_BOOL 1637 depends on CMDLINE_BOOL
1638 ---help--- 1638 ---help---
1639 Set this option to 'Y' to have the kernel ignore the boot loader 1639 Set this option to 'Y' to have the kernel ignore the boot loader
1640 command line, and use ONLY the built-in command line. 1640 command line, and use ONLY the built-in command line.
1641 1641
1642 This is used to work around broken boot loaders. This should 1642 This is used to work around broken boot loaders. This should
1643 be set to 'N' under normal conditions. 1643 be set to 'N' under normal conditions.
1644 1644
1645 endmenu 1645 endmenu
1646 1646
1647 config ARCH_ENABLE_MEMORY_HOTPLUG 1647 config ARCH_ENABLE_MEMORY_HOTPLUG
1648 def_bool y 1648 def_bool y
1649 depends on X86_64 || (X86_32 && HIGHMEM) 1649 depends on X86_64 || (X86_32 && HIGHMEM)
1650 1650
1651 config ARCH_ENABLE_MEMORY_HOTREMOVE 1651 config ARCH_ENABLE_MEMORY_HOTREMOVE
1652 def_bool y 1652 def_bool y
1653 depends on MEMORY_HOTPLUG 1653 depends on MEMORY_HOTPLUG
1654 1654
1655 config HAVE_ARCH_EARLY_PFN_TO_NID 1655 config HAVE_ARCH_EARLY_PFN_TO_NID
1656 def_bool X86_64 1656 def_bool X86_64
1657 depends on NUMA 1657 depends on NUMA
1658 1658
1659 menu "Power management and ACPI options" 1659 menu "Power management and ACPI options"
1660 1660
1661 config ARCH_HIBERNATION_HEADER 1661 config ARCH_HIBERNATION_HEADER
1662 def_bool y 1662 def_bool y
1663 depends on X86_64 && HIBERNATION 1663 depends on X86_64 && HIBERNATION
1664 1664
1665 source "kernel/power/Kconfig" 1665 source "kernel/power/Kconfig"
1666 1666
1667 source "drivers/acpi/Kconfig" 1667 source "drivers/acpi/Kconfig"
1668 1668
1669 source "drivers/sfi/Kconfig"
1670
1669 config X86_APM_BOOT 1671 config X86_APM_BOOT
1670 bool 1672 bool
1671 default y 1673 default y
1672 depends on APM || APM_MODULE 1674 depends on APM || APM_MODULE
1673 1675
1674 menuconfig APM 1676 menuconfig APM
1675 tristate "APM (Advanced Power Management) BIOS support" 1677 tristate "APM (Advanced Power Management) BIOS support"
1676 depends on X86_32 && PM_SLEEP 1678 depends on X86_32 && PM_SLEEP
1677 ---help--- 1679 ---help---
1678 APM is a BIOS specification for saving power using several different 1680 APM is a BIOS specification for saving power using several different
1679 techniques. This is mostly useful for battery powered laptops with 1681 techniques. This is mostly useful for battery powered laptops with
1680 APM compliant BIOSes. If you say Y here, the system time will be 1682 APM compliant BIOSes. If you say Y here, the system time will be
1681 reset after a RESUME operation, the /proc/apm device will provide 1683 reset after a RESUME operation, the /proc/apm device will provide
1682 battery status information, and user-space programs will receive 1684 battery status information, and user-space programs will receive
1683 notification of APM "events" (e.g. battery status change). 1685 notification of APM "events" (e.g. battery status change).
1684 1686
1685 If you select "Y" here, you can disable actual use of the APM 1687 If you select "Y" here, you can disable actual use of the APM
1686 BIOS by passing the "apm=off" option to the kernel at boot time. 1688 BIOS by passing the "apm=off" option to the kernel at boot time.
1687 1689
1688 Note that the APM support is almost completely disabled for 1690 Note that the APM support is almost completely disabled for
1689 machines with more than one CPU. 1691 machines with more than one CPU.
1690 1692
1691 In order to use APM, you will need supporting software. For location 1693 In order to use APM, you will need supporting software. For location
1692 and more information, read <file:Documentation/power/pm.txt> and the 1694 and more information, read <file:Documentation/power/pm.txt> and the
1693 Battery Powered Linux mini-HOWTO, available from 1695 Battery Powered Linux mini-HOWTO, available from
1694 <http://www.tldp.org/docs.html#howto>. 1696 <http://www.tldp.org/docs.html#howto>.
1695 1697
1696 This driver does not spin down disk drives (see the hdparm(8) 1698 This driver does not spin down disk drives (see the hdparm(8)
1697 manpage ("man 8 hdparm") for that), and it doesn't turn off 1699 manpage ("man 8 hdparm") for that), and it doesn't turn off
1698 VESA-compliant "green" monitors. 1700 VESA-compliant "green" monitors.
1699 1701
1700 This driver does not support the TI 4000M TravelMate and the ACER 1702 This driver does not support the TI 4000M TravelMate and the ACER
1701 486/DX4/75 because they don't have compliant BIOSes. Many "green" 1703 486/DX4/75 because they don't have compliant BIOSes. Many "green"
1702 desktop machines also don't have compliant BIOSes, and this driver 1704 desktop machines also don't have compliant BIOSes, and this driver
1703 may cause those machines to panic during the boot phase. 1705 may cause those machines to panic during the boot phase.
1704 1706
1705 Generally, if you don't have a battery in your machine, there isn't 1707 Generally, if you don't have a battery in your machine, there isn't
1706 much point in using this driver and you should say N. If you get 1708 much point in using this driver and you should say N. If you get
1707 random kernel OOPSes or reboots that don't seem to be related to 1709 random kernel OOPSes or reboots that don't seem to be related to
1708 anything, try disabling/enabling this option (or disabling/enabling 1710 anything, try disabling/enabling this option (or disabling/enabling
1709 APM in your BIOS). 1711 APM in your BIOS).
1710 1712
1711 Some other things you should try when experiencing seemingly random, 1713 Some other things you should try when experiencing seemingly random,
1712 "weird" problems: 1714 "weird" problems:
1713 1715
1714 1) make sure that you have enough swap space and that it is 1716 1) make sure that you have enough swap space and that it is
1715 enabled. 1717 enabled.
1716 2) pass the "no-hlt" option to the kernel 1718 2) pass the "no-hlt" option to the kernel
1717 3) switch on floating point emulation in the kernel and pass 1719 3) switch on floating point emulation in the kernel and pass
1718 the "no387" option to the kernel 1720 the "no387" option to the kernel
1719 4) pass the "floppy=nodma" option to the kernel 1721 4) pass the "floppy=nodma" option to the kernel
1720 5) pass the "mem=4M" option to the kernel (thereby disabling 1722 5) pass the "mem=4M" option to the kernel (thereby disabling
1721 all but the first 4 MB of RAM) 1723 all but the first 4 MB of RAM)
1722 6) make sure that the CPU is not over clocked. 1724 6) make sure that the CPU is not over clocked.
1723 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/> 1725 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
1724 8) disable the cache from your BIOS settings 1726 8) disable the cache from your BIOS settings
1725 9) install a fan for the video card or exchange video RAM 1727 9) install a fan for the video card or exchange video RAM
1726 10) install a better fan for the CPU 1728 10) install a better fan for the CPU
1727 11) exchange RAM chips 1729 11) exchange RAM chips
1728 12) exchange the motherboard. 1730 12) exchange the motherboard.
1729 1731
1730 To compile this driver as a module, choose M here: the 1732 To compile this driver as a module, choose M here: the
1731 module will be called apm. 1733 module will be called apm.
1732 1734
1733 if APM 1735 if APM
1734 1736
1735 config APM_IGNORE_USER_SUSPEND 1737 config APM_IGNORE_USER_SUSPEND
1736 bool "Ignore USER SUSPEND" 1738 bool "Ignore USER SUSPEND"
1737 ---help--- 1739 ---help---
1738 This option will ignore USER SUSPEND requests. On machines with a 1740 This option will ignore USER SUSPEND requests. On machines with a
1739 compliant APM BIOS, you want to say N. However, on the NEC Versa M 1741 compliant APM BIOS, you want to say N. However, on the NEC Versa M
1740 series notebooks, it is necessary to say Y because of a BIOS bug. 1742 series notebooks, it is necessary to say Y because of a BIOS bug.
1741 1743
1742 config APM_DO_ENABLE 1744 config APM_DO_ENABLE
1743 bool "Enable PM at boot time" 1745 bool "Enable PM at boot time"
1744 ---help--- 1746 ---help---
1745 Enable APM features at boot time. From page 36 of the APM BIOS 1747 Enable APM features at boot time. From page 36 of the APM BIOS
1746 specification: "When disabled, the APM BIOS does not automatically 1748 specification: "When disabled, the APM BIOS does not automatically
1747 power manage devices, enter the Standby State, enter the Suspend 1749 power manage devices, enter the Standby State, enter the Suspend
1748 State, or take power saving steps in response to CPU Idle calls." 1750 State, or take power saving steps in response to CPU Idle calls."
1749 This driver will make CPU Idle calls when Linux is idle (unless this 1751 This driver will make CPU Idle calls when Linux is idle (unless this
1750 feature is turned off -- see "Do CPU IDLE calls", below). This 1752 feature is turned off -- see "Do CPU IDLE calls", below). This
1751 should always save battery power, but more complicated APM features 1753 should always save battery power, but more complicated APM features
1752 will be dependent on your BIOS implementation. You may need to turn 1754 will be dependent on your BIOS implementation. You may need to turn
1753 this option off if your computer hangs at boot time when using APM 1755 this option off if your computer hangs at boot time when using APM
1754 support, or if it beeps continuously instead of suspending. Turn 1756 support, or if it beeps continuously instead of suspending. Turn
1755 this off if you have a NEC UltraLite Versa 33/C or a Toshiba 1757 this off if you have a NEC UltraLite Versa 33/C or a Toshiba
1756 T400CDT. This is off by default since most machines do fine without 1758 T400CDT. This is off by default since most machines do fine without
1757 this feature. 1759 this feature.
1758 1760
1759 config APM_CPU_IDLE 1761 config APM_CPU_IDLE
1760 bool "Make CPU Idle calls when idle" 1762 bool "Make CPU Idle calls when idle"
1761 ---help--- 1763 ---help---
1762 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. 1764 Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
1763 On some machines, this can activate improved power savings, such as 1765 On some machines, this can activate improved power savings, such as
1764 a slowed CPU clock rate, when the machine is idle. These idle calls 1766 a slowed CPU clock rate, when the machine is idle. These idle calls
1765 are made after the idle loop has run for some length of time (e.g., 1767 are made after the idle loop has run for some length of time (e.g.,
1766 333 mS). On some machines, this will cause a hang at boot time or 1768 333 mS). On some machines, this will cause a hang at boot time or
1767 whenever the CPU becomes idle. (On machines with more than one CPU, 1769 whenever the CPU becomes idle. (On machines with more than one CPU,
1768 this option does nothing.) 1770 this option does nothing.)
1769 1771
1770 config APM_DISPLAY_BLANK 1772 config APM_DISPLAY_BLANK
1771 bool "Enable console blanking using APM" 1773 bool "Enable console blanking using APM"
1772 ---help--- 1774 ---help---
1773 Enable console blanking using the APM. Some laptops can use this to 1775 Enable console blanking using the APM. Some laptops can use this to
1774 turn off the LCD backlight when the screen blanker of the Linux 1776 turn off the LCD backlight when the screen blanker of the Linux
1775 virtual console blanks the screen. Note that this is only used by 1777 virtual console blanks the screen. Note that this is only used by
1776 the virtual console screen blanker, and won't turn off the backlight 1778 the virtual console screen blanker, and won't turn off the backlight
1777 when using the X Window system. This also doesn't have anything to 1779 when using the X Window system. This also doesn't have anything to
1778 do with your VESA-compliant power-saving monitor. Further, this 1780 do with your VESA-compliant power-saving monitor. Further, this
1779 option doesn't work for all laptops -- it might not turn off your 1781 option doesn't work for all laptops -- it might not turn off your
1780 backlight at all, or it might print a lot of errors to the console, 1782 backlight at all, or it might print a lot of errors to the console,
1781 especially if you are using gpm. 1783 especially if you are using gpm.
1782 1784
1783 config APM_ALLOW_INTS 1785 config APM_ALLOW_INTS
1784 bool "Allow interrupts during APM BIOS calls" 1786 bool "Allow interrupts during APM BIOS calls"
1785 ---help--- 1787 ---help---
1786 Normally we disable external interrupts while we are making calls to 1788 Normally we disable external interrupts while we are making calls to
1787 the APM BIOS as a measure to lessen the effects of a badly behaving 1789 the APM BIOS as a measure to lessen the effects of a badly behaving
1788 BIOS implementation. The BIOS should reenable interrupts if it 1790 BIOS implementation. The BIOS should reenable interrupts if it
1789 needs to. Unfortunately, some BIOSes do not -- especially those in 1791 needs to. Unfortunately, some BIOSes do not -- especially those in
1790 many of the newer IBM Thinkpads. If you experience hangs when you 1792 many of the newer IBM Thinkpads. If you experience hangs when you
1791 suspend, try setting this to Y. Otherwise, say N. 1793 suspend, try setting this to Y. Otherwise, say N.
1792 1794
1793 endif # APM 1795 endif # APM
1794 1796
1795 source "arch/x86/kernel/cpu/cpufreq/Kconfig" 1797 source "arch/x86/kernel/cpu/cpufreq/Kconfig"
1796 1798
1797 source "drivers/cpuidle/Kconfig" 1799 source "drivers/cpuidle/Kconfig"
1798 1800
1799 source "drivers/idle/Kconfig" 1801 source "drivers/idle/Kconfig"
1800 1802
1801 endmenu 1803 endmenu
1802 1804
1803 1805
1804 menu "Bus options (PCI etc.)" 1806 menu "Bus options (PCI etc.)"
1805 1807
1806 config PCI 1808 config PCI
1807 bool "PCI support" 1809 bool "PCI support"
1808 default y 1810 default y
1809 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) 1811 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
1810 ---help--- 1812 ---help---
1811 Find out whether you have a PCI motherboard. PCI is the name of a 1813 Find out whether you have a PCI motherboard. PCI is the name of a
1812 bus system, i.e. the way the CPU talks to the other stuff inside 1814 bus system, i.e. the way the CPU talks to the other stuff inside
1813 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 1815 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
1814 VESA. If you have PCI, say Y, otherwise N. 1816 VESA. If you have PCI, say Y, otherwise N.
1815 1817
1816 choice 1818 choice
1817 prompt "PCI access mode" 1819 prompt "PCI access mode"
1818 depends on X86_32 && PCI 1820 depends on X86_32 && PCI
1819 default PCI_GOANY 1821 default PCI_GOANY
1820 ---help--- 1822 ---help---
1821 On PCI systems, the BIOS can be used to detect the PCI devices and 1823 On PCI systems, the BIOS can be used to detect the PCI devices and
1822 determine their configuration. However, some old PCI motherboards 1824 determine their configuration. However, some old PCI motherboards
1823 have BIOS bugs and may crash if this is done. Also, some embedded 1825 have BIOS bugs and may crash if this is done. Also, some embedded
1824 PCI-based systems don't have any BIOS at all. Linux can also try to 1826 PCI-based systems don't have any BIOS at all. Linux can also try to
1825 detect the PCI hardware directly without using the BIOS. 1827 detect the PCI hardware directly without using the BIOS.
1826 1828
1827 With this option, you can specify how Linux should detect the 1829 With this option, you can specify how Linux should detect the
1828 PCI devices. If you choose "BIOS", the BIOS will be used, 1830 PCI devices. If you choose "BIOS", the BIOS will be used,
1829 if you choose "Direct", the BIOS won't be used, and if you 1831 if you choose "Direct", the BIOS won't be used, and if you
1830 choose "MMConfig", then PCI Express MMCONFIG will be used. 1832 choose "MMConfig", then PCI Express MMCONFIG will be used.
1831 If you choose "Any", the kernel will try MMCONFIG, then the 1833 If you choose "Any", the kernel will try MMCONFIG, then the
1832 direct access method and falls back to the BIOS if that doesn't 1834 direct access method and falls back to the BIOS if that doesn't
1833 work. If unsure, go with the default, which is "Any". 1835 work. If unsure, go with the default, which is "Any".
1834 1836
1835 config PCI_GOBIOS 1837 config PCI_GOBIOS
1836 bool "BIOS" 1838 bool "BIOS"
1837 1839
1838 config PCI_GOMMCONFIG 1840 config PCI_GOMMCONFIG
1839 bool "MMConfig" 1841 bool "MMConfig"
1840 1842
1841 config PCI_GODIRECT 1843 config PCI_GODIRECT
1842 bool "Direct" 1844 bool "Direct"
1843 1845
1844 config PCI_GOOLPC 1846 config PCI_GOOLPC
1845 bool "OLPC" 1847 bool "OLPC"
1846 depends on OLPC 1848 depends on OLPC
1847 1849
1848 config PCI_GOANY 1850 config PCI_GOANY
1849 bool "Any" 1851 bool "Any"
1850 1852
1851 endchoice 1853 endchoice
1852 1854
1853 config PCI_BIOS 1855 config PCI_BIOS
1854 def_bool y 1856 def_bool y
1855 depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY) 1857 depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY)
1856 1858
1857 # x86-64 doesn't support PCI BIOS access from long mode so always go direct. 1859 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
1858 config PCI_DIRECT 1860 config PCI_DIRECT
1859 def_bool y 1861 def_bool y
1860 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC)) 1862 depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC))
1861 1863
1862 config PCI_MMCONFIG 1864 config PCI_MMCONFIG
1863 def_bool y 1865 def_bool y
1864 depends on X86_32 && PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY) 1866 depends on X86_32 && PCI && (ACPI || SFI) && (PCI_GOMMCONFIG || PCI_GOANY)
1865 1867
1866 config PCI_OLPC 1868 config PCI_OLPC
1867 def_bool y 1869 def_bool y
1868 depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY) 1870 depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY)
1869 1871
1870 config PCI_DOMAINS 1872 config PCI_DOMAINS
1871 def_bool y 1873 def_bool y
1872 depends on PCI 1874 depends on PCI
1873 1875
1874 config PCI_MMCONFIG 1876 config PCI_MMCONFIG
1875 bool "Support mmconfig PCI config space access" 1877 bool "Support mmconfig PCI config space access"
1876 depends on X86_64 && PCI && ACPI 1878 depends on X86_64 && PCI && ACPI
1877 1879
1878 config DMAR 1880 config DMAR
1879 bool "Support for DMA Remapping Devices (EXPERIMENTAL)" 1881 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1880 depends on PCI_MSI && ACPI && EXPERIMENTAL 1882 depends on PCI_MSI && ACPI && EXPERIMENTAL
1881 help 1883 help
1882 DMA remapping (DMAR) devices support enables independent address 1884 DMA remapping (DMAR) devices support enables independent address
1883 translations for Direct Memory Access (DMA) from devices. 1885 translations for Direct Memory Access (DMA) from devices.
1884 These DMA remapping devices are reported via ACPI tables 1886 These DMA remapping devices are reported via ACPI tables
1885 and include PCI device scope covered by these DMA 1887 and include PCI device scope covered by these DMA
1886 remapping devices. 1888 remapping devices.
1887 1889
1888 config DMAR_DEFAULT_ON 1890 config DMAR_DEFAULT_ON
1889 def_bool y 1891 def_bool y
1890 prompt "Enable DMA Remapping Devices by default" 1892 prompt "Enable DMA Remapping Devices by default"
1891 depends on DMAR 1893 depends on DMAR
1892 help 1894 help
1893 Selecting this option will enable a DMAR device at boot time if 1895 Selecting this option will enable a DMAR device at boot time if
1894 one is found. If this option is not selected, DMAR support can 1896 one is found. If this option is not selected, DMAR support can
1895 be enabled by passing intel_iommu=on to the kernel. It is 1897 be enabled by passing intel_iommu=on to the kernel. It is
1896 recommended you say N here while the DMAR code remains 1898 recommended you say N here while the DMAR code remains
1897 experimental. 1899 experimental.
1898 1900
1899 config DMAR_BROKEN_GFX_WA 1901 config DMAR_BROKEN_GFX_WA
1900 def_bool n 1902 def_bool n
1901 prompt "Workaround broken graphics drivers (going away soon)" 1903 prompt "Workaround broken graphics drivers (going away soon)"
1902 depends on DMAR 1904 depends on DMAR
1903 ---help--- 1905 ---help---
1904 Current Graphics drivers tend to use physical address 1906 Current Graphics drivers tend to use physical address
1905 for DMA and avoid using DMA APIs. Setting this config 1907 for DMA and avoid using DMA APIs. Setting this config
1906 option permits the IOMMU driver to set a unity map for 1908 option permits the IOMMU driver to set a unity map for
1907 all the OS-visible memory. Hence the driver can continue 1909 all the OS-visible memory. Hence the driver can continue
1908 to use physical addresses for DMA, at least until this 1910 to use physical addresses for DMA, at least until this
1909 option is removed in the 2.6.32 kernel. 1911 option is removed in the 2.6.32 kernel.
1910 1912
1911 config DMAR_FLOPPY_WA 1913 config DMAR_FLOPPY_WA
1912 def_bool y 1914 def_bool y
1913 depends on DMAR 1915 depends on DMAR
1914 ---help--- 1916 ---help---
1915 Floppy disk drivers are known to bypass DMA API calls 1917 Floppy disk drivers are known to bypass DMA API calls
1916 thereby failing to work when IOMMU is enabled. This 1918 thereby failing to work when IOMMU is enabled. This
1917 workaround will setup a 1:1 mapping for the first 1919 workaround will setup a 1:1 mapping for the first
1918 16MiB to make floppy (an ISA device) work. 1920 16MiB to make floppy (an ISA device) work.
1919 1921
1920 config INTR_REMAP 1922 config INTR_REMAP
1921 bool "Support for Interrupt Remapping (EXPERIMENTAL)" 1923 bool "Support for Interrupt Remapping (EXPERIMENTAL)"
1922 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL 1924 depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
1923 ---help--- 1925 ---help---
1924 Supports Interrupt remapping for IO-APIC and MSI devices. 1926 Supports Interrupt remapping for IO-APIC and MSI devices.
1925 To use x2apic mode in the CPU's which support x2APIC enhancements or 1927 To use x2apic mode in the CPU's which support x2APIC enhancements or
1926 to support platforms with CPU's having > 8 bit APIC ID, say Y. 1928 to support platforms with CPU's having > 8 bit APIC ID, say Y.
1927 1929
1928 source "drivers/pci/pcie/Kconfig" 1930 source "drivers/pci/pcie/Kconfig"
1929 1931
1930 source "drivers/pci/Kconfig" 1932 source "drivers/pci/Kconfig"
1931 1933
1932 # x86_64 have no ISA slots, but do have ISA-style DMA. 1934 # x86_64 have no ISA slots, but do have ISA-style DMA.
1933 config ISA_DMA_API 1935 config ISA_DMA_API
1934 def_bool y 1936 def_bool y
1935 1937
1936 if X86_32 1938 if X86_32
1937 1939
1938 config ISA 1940 config ISA
1939 bool "ISA support" 1941 bool "ISA support"
1940 ---help--- 1942 ---help---
1941 Find out whether you have ISA slots on your motherboard. ISA is the 1943 Find out whether you have ISA slots on your motherboard. ISA is the
1942 name of a bus system, i.e. the way the CPU talks to the other stuff 1944 name of a bus system, i.e. the way the CPU talks to the other stuff
1943 inside your box. Other bus systems are PCI, EISA, MicroChannel 1945 inside your box. Other bus systems are PCI, EISA, MicroChannel
1944 (MCA) or VESA. ISA is an older system, now being displaced by PCI; 1946 (MCA) or VESA. ISA is an older system, now being displaced by PCI;
1945 newer boards don't support it. If you have ISA, say Y, otherwise N. 1947 newer boards don't support it. If you have ISA, say Y, otherwise N.
1946 1948
1947 config EISA 1949 config EISA
1948 bool "EISA support" 1950 bool "EISA support"
1949 depends on ISA 1951 depends on ISA
1950 ---help--- 1952 ---help---
1951 The Extended Industry Standard Architecture (EISA) bus was 1953 The Extended Industry Standard Architecture (EISA) bus was
1952 developed as an open alternative to the IBM MicroChannel bus. 1954 developed as an open alternative to the IBM MicroChannel bus.
1953 1955
1954 The EISA bus provided some of the features of the IBM MicroChannel 1956 The EISA bus provided some of the features of the IBM MicroChannel
1955 bus while maintaining backward compatibility with cards made for 1957 bus while maintaining backward compatibility with cards made for
1956 the older ISA bus. The EISA bus saw limited use between 1988 and 1958 the older ISA bus. The EISA bus saw limited use between 1988 and
1957 1995 when it was made obsolete by the PCI bus. 1959 1995 when it was made obsolete by the PCI bus.
1958 1960
1959 Say Y here if you are building a kernel for an EISA-based machine. 1961 Say Y here if you are building a kernel for an EISA-based machine.
1960 1962
1961 Otherwise, say N. 1963 Otherwise, say N.
1962 1964
1963 source "drivers/eisa/Kconfig" 1965 source "drivers/eisa/Kconfig"
1964 1966
1965 config MCA 1967 config MCA
1966 bool "MCA support" 1968 bool "MCA support"
1967 ---help--- 1969 ---help---
1968 MicroChannel Architecture is found in some IBM PS/2 machines and 1970 MicroChannel Architecture is found in some IBM PS/2 machines and
1969 laptops. It is a bus system similar to PCI or ISA. See 1971 laptops. It is a bus system similar to PCI or ISA. See
1970 <file:Documentation/mca.txt> (and especially the web page given 1972 <file:Documentation/mca.txt> (and especially the web page given
1971 there) before attempting to build an MCA bus kernel. 1973 there) before attempting to build an MCA bus kernel.
1972 1974
1973 source "drivers/mca/Kconfig" 1975 source "drivers/mca/Kconfig"
1974 1976
1975 config SCx200 1977 config SCx200
1976 tristate "NatSemi SCx200 support" 1978 tristate "NatSemi SCx200 support"
1977 ---help--- 1979 ---help---
1978 This provides basic support for National Semiconductor's 1980 This provides basic support for National Semiconductor's
1979 (now AMD's) Geode processors. The driver probes for the 1981 (now AMD's) Geode processors. The driver probes for the
1980 PCI-IDs of several on-chip devices, so its a good dependency 1982 PCI-IDs of several on-chip devices, so its a good dependency
1981 for other scx200_* drivers. 1983 for other scx200_* drivers.
1982 1984
1983 If compiled as a module, the driver is named scx200. 1985 If compiled as a module, the driver is named scx200.
1984 1986
1985 config SCx200HR_TIMER 1987 config SCx200HR_TIMER
1986 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" 1988 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
1987 depends on SCx200 && GENERIC_TIME 1989 depends on SCx200 && GENERIC_TIME
1988 default y 1990 default y
1989 ---help--- 1991 ---help---
1990 This driver provides a clocksource built upon the on-chip 1992 This driver provides a clocksource built upon the on-chip
1991 27MHz high-resolution timer. Its also a workaround for 1993 27MHz high-resolution timer. Its also a workaround for
1992 NSC Geode SC-1100's buggy TSC, which loses time when the 1994 NSC Geode SC-1100's buggy TSC, which loses time when the
1993 processor goes idle (as is done by the scheduler). The 1995 processor goes idle (as is done by the scheduler). The
1994 other workaround is idle=poll boot option. 1996 other workaround is idle=poll boot option.
1995 1997
1996 config GEODE_MFGPT_TIMER 1998 config GEODE_MFGPT_TIMER
1997 def_bool y 1999 def_bool y
1998 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events" 2000 prompt "Geode Multi-Function General Purpose Timer (MFGPT) events"
1999 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS 2001 depends on MGEODE_LX && GENERIC_TIME && GENERIC_CLOCKEVENTS
2000 ---help--- 2002 ---help---
2001 This driver provides a clock event source based on the MFGPT 2003 This driver provides a clock event source based on the MFGPT
2002 timer(s) in the CS5535 and CS5536 companion chip for the geode. 2004 timer(s) in the CS5535 and CS5536 companion chip for the geode.
2003 MFGPTs have a better resolution and max interval than the 2005 MFGPTs have a better resolution and max interval than the
2004 generic PIT, and are suitable for use as high-res timers. 2006 generic PIT, and are suitable for use as high-res timers.
2005 2007
2006 config OLPC 2008 config OLPC
2007 bool "One Laptop Per Child support" 2009 bool "One Laptop Per Child support"
2008 default n 2010 default n
2009 ---help--- 2011 ---help---
2010 Add support for detecting the unique features of the OLPC 2012 Add support for detecting the unique features of the OLPC
2011 XO hardware. 2013 XO hardware.
2012 2014
2013 endif # X86_32 2015 endif # X86_32
2014 2016
2015 config K8_NB 2017 config K8_NB
2016 def_bool y 2018 def_bool y
2017 depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA))) 2019 depends on AGP_AMD64 || (X86_64 && (GART_IOMMU || (PCI && NUMA)))
2018 2020
2019 source "drivers/pcmcia/Kconfig" 2021 source "drivers/pcmcia/Kconfig"
2020 2022
2021 source "drivers/pci/hotplug/Kconfig" 2023 source "drivers/pci/hotplug/Kconfig"
2022 2024
2023 endmenu 2025 endmenu
2024 2026
2025 2027
2026 menu "Executable file formats / Emulations" 2028 menu "Executable file formats / Emulations"
2027 2029
2028 source "fs/Kconfig.binfmt" 2030 source "fs/Kconfig.binfmt"
2029 2031
2030 config IA32_EMULATION 2032 config IA32_EMULATION
2031 bool "IA32 Emulation" 2033 bool "IA32 Emulation"
2032 depends on X86_64 2034 depends on X86_64
2033 select COMPAT_BINFMT_ELF 2035 select COMPAT_BINFMT_ELF
2034 ---help--- 2036 ---help---
2035 Include code to run 32-bit programs under a 64-bit kernel. You should 2037 Include code to run 32-bit programs under a 64-bit kernel. You should
2036 likely turn this on, unless you're 100% sure that you don't have any 2038 likely turn this on, unless you're 100% sure that you don't have any
2037 32-bit programs left. 2039 32-bit programs left.
2038 2040
2039 config IA32_AOUT 2041 config IA32_AOUT
2040 tristate "IA32 a.out support" 2042 tristate "IA32 a.out support"
2041 depends on IA32_EMULATION 2043 depends on IA32_EMULATION
2042 ---help--- 2044 ---help---
2043 Support old a.out binaries in the 32bit emulation. 2045 Support old a.out binaries in the 32bit emulation.
2044 2046
2045 config COMPAT 2047 config COMPAT
2046 def_bool y 2048 def_bool y
2047 depends on IA32_EMULATION 2049 depends on IA32_EMULATION
2048 2050
2049 config COMPAT_FOR_U64_ALIGNMENT 2051 config COMPAT_FOR_U64_ALIGNMENT
2050 def_bool COMPAT 2052 def_bool COMPAT
2051 depends on X86_64 2053 depends on X86_64
2052 2054
2053 config SYSVIPC_COMPAT 2055 config SYSVIPC_COMPAT
2054 def_bool y 2056 def_bool y
2055 depends on COMPAT && SYSVIPC 2057 depends on COMPAT && SYSVIPC
2056 2058
2057 endmenu 2059 endmenu
2058 2060
2059 2061
2060 config HAVE_ATOMIC_IOMAP 2062 config HAVE_ATOMIC_IOMAP
2061 def_bool y 2063 def_bool y
2062 depends on X86_32 2064 depends on X86_32
2063 2065
2064 source "net/Kconfig" 2066 source "net/Kconfig"
2065 2067
2066 source "drivers/Kconfig" 2068 source "drivers/Kconfig"
2067 2069
2068 source "drivers/firmware/Kconfig" 2070 source "drivers/firmware/Kconfig"
2069 2071
2070 source "fs/Kconfig" 2072 source "fs/Kconfig"
2071 2073
2072 source "arch/x86/Kconfig.debug" 2074 source "arch/x86/Kconfig.debug"
2073 2075
2074 source "security/Kconfig" 2076 source "security/Kconfig"
2075 2077
2076 source "crypto/Kconfig" 2078 source "crypto/Kconfig"
2077 2079
2078 source "arch/x86/kvm/Kconfig" 2080 source "arch/x86/kvm/Kconfig"
2079 2081
2080 source "lib/Kconfig" 2082 source "lib/Kconfig"
2081 2083
arch/x86/kernel/Makefile
1 # 1 #
2 # Makefile for the linux kernel. 2 # Makefile for the linux kernel.
3 # 3 #
4 4
5 extra-y := head_$(BITS).o head$(BITS).o head.o init_task.o vmlinux.lds 5 extra-y := head_$(BITS).o head$(BITS).o head.o init_task.o vmlinux.lds
6 6
7 CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE) 7 CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE)
8 8
9 ifdef CONFIG_FUNCTION_TRACER 9 ifdef CONFIG_FUNCTION_TRACER
10 # Do not profile debug and lowlevel utilities 10 # Do not profile debug and lowlevel utilities
11 CFLAGS_REMOVE_tsc.o = -pg 11 CFLAGS_REMOVE_tsc.o = -pg
12 CFLAGS_REMOVE_rtc.o = -pg 12 CFLAGS_REMOVE_rtc.o = -pg
13 CFLAGS_REMOVE_paravirt-spinlocks.o = -pg 13 CFLAGS_REMOVE_paravirt-spinlocks.o = -pg
14 CFLAGS_REMOVE_ftrace.o = -pg 14 CFLAGS_REMOVE_ftrace.o = -pg
15 CFLAGS_REMOVE_early_printk.o = -pg 15 CFLAGS_REMOVE_early_printk.o = -pg
16 endif 16 endif
17 17
18 # 18 #
19 # vsyscalls (which work on the user stack) should have 19 # vsyscalls (which work on the user stack) should have
20 # no stack-protector checks: 20 # no stack-protector checks:
21 # 21 #
22 nostackp := $(call cc-option, -fno-stack-protector) 22 nostackp := $(call cc-option, -fno-stack-protector)
23 CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp) 23 CFLAGS_vsyscall_64.o := $(PROFILING) -g0 $(nostackp)
24 CFLAGS_hpet.o := $(nostackp) 24 CFLAGS_hpet.o := $(nostackp)
25 CFLAGS_tsc.o := $(nostackp) 25 CFLAGS_tsc.o := $(nostackp)
26 CFLAGS_paravirt.o := $(nostackp) 26 CFLAGS_paravirt.o := $(nostackp)
27 GCOV_PROFILE_vsyscall_64.o := n 27 GCOV_PROFILE_vsyscall_64.o := n
28 GCOV_PROFILE_hpet.o := n 28 GCOV_PROFILE_hpet.o := n
29 GCOV_PROFILE_tsc.o := n 29 GCOV_PROFILE_tsc.o := n
30 GCOV_PROFILE_paravirt.o := n 30 GCOV_PROFILE_paravirt.o := n
31 31
32 obj-y := process_$(BITS).o signal.o entry_$(BITS).o 32 obj-y := process_$(BITS).o signal.o entry_$(BITS).o
33 obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o 33 obj-y += traps.o irq.o irq_$(BITS).o dumpstack_$(BITS).o
34 obj-y += time.o ioport.o ldt.o dumpstack.o 34 obj-y += time.o ioport.o ldt.o dumpstack.o
35 obj-y += setup.o x86_init.o i8259.o irqinit.o 35 obj-y += setup.o x86_init.o i8259.o irqinit.o
36 obj-$(CONFIG_X86_VISWS) += visws_quirks.o 36 obj-$(CONFIG_X86_VISWS) += visws_quirks.o
37 obj-$(CONFIG_X86_32) += probe_roms_32.o 37 obj-$(CONFIG_X86_32) += probe_roms_32.o
38 obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o 38 obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
39 obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o 39 obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
40 obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o 40 obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o
41 obj-y += bootflag.o e820.o 41 obj-y += bootflag.o e820.o
42 obj-y += pci-dma.o quirks.o i8237.o topology.o kdebugfs.o 42 obj-y += pci-dma.o quirks.o i8237.o topology.o kdebugfs.o
43 obj-y += alternative.o i8253.o pci-nommu.o 43 obj-y += alternative.o i8253.o pci-nommu.o
44 obj-y += tsc.o io_delay.o rtc.o 44 obj-y += tsc.o io_delay.o rtc.o
45 45
46 obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o 46 obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o
47 obj-y += process.o 47 obj-y += process.o
48 obj-y += i387.o xsave.o 48 obj-y += i387.o xsave.o
49 obj-y += ptrace.o 49 obj-y += ptrace.o
50 obj-$(CONFIG_X86_DS) += ds.o 50 obj-$(CONFIG_X86_DS) += ds.o
51 obj-$(CONFIG_X86_DS_SELFTEST) += ds_selftest.o 51 obj-$(CONFIG_X86_DS_SELFTEST) += ds_selftest.o
52 obj-$(CONFIG_X86_32) += tls.o 52 obj-$(CONFIG_X86_32) += tls.o
53 obj-$(CONFIG_IA32_EMULATION) += tls.o 53 obj-$(CONFIG_IA32_EMULATION) += tls.o
54 obj-y += step.o 54 obj-y += step.o
55 obj-$(CONFIG_INTEL_TXT) += tboot.o 55 obj-$(CONFIG_INTEL_TXT) += tboot.o
56 obj-$(CONFIG_STACKTRACE) += stacktrace.o 56 obj-$(CONFIG_STACKTRACE) += stacktrace.o
57 obj-y += cpu/ 57 obj-y += cpu/
58 obj-y += acpi/ 58 obj-y += acpi/
59 obj-$(CONFIG_SFI) += sfi.o
59 obj-y += reboot.o 60 obj-y += reboot.o
60 obj-$(CONFIG_MCA) += mca_32.o 61 obj-$(CONFIG_MCA) += mca_32.o
61 obj-$(CONFIG_X86_MSR) += msr.o 62 obj-$(CONFIG_X86_MSR) += msr.o
62 obj-$(CONFIG_X86_CPUID) += cpuid.o 63 obj-$(CONFIG_X86_CPUID) += cpuid.o
63 obj-$(CONFIG_PCI) += early-quirks.o 64 obj-$(CONFIG_PCI) += early-quirks.o
64 apm-y := apm_32.o 65 apm-y := apm_32.o
65 obj-$(CONFIG_APM) += apm.o 66 obj-$(CONFIG_APM) += apm.o
66 obj-$(CONFIG_SMP) += smp.o 67 obj-$(CONFIG_SMP) += smp.o
67 obj-$(CONFIG_SMP) += smpboot.o tsc_sync.o 68 obj-$(CONFIG_SMP) += smpboot.o tsc_sync.o
68 obj-$(CONFIG_SMP) += setup_percpu.o 69 obj-$(CONFIG_SMP) += setup_percpu.o
69 obj-$(CONFIG_X86_64_SMP) += tsc_sync.o 70 obj-$(CONFIG_X86_64_SMP) += tsc_sync.o
70 obj-$(CONFIG_X86_TRAMPOLINE) += trampoline_$(BITS).o 71 obj-$(CONFIG_X86_TRAMPOLINE) += trampoline_$(BITS).o
71 obj-$(CONFIG_X86_MPPARSE) += mpparse.o 72 obj-$(CONFIG_X86_MPPARSE) += mpparse.o
72 obj-y += apic/ 73 obj-y += apic/
73 obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o 74 obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o
74 obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o 75 obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
75 obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o 76 obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
76 obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o 77 obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o
77 obj-$(CONFIG_KEXEC) += machine_kexec_$(BITS).o 78 obj-$(CONFIG_KEXEC) += machine_kexec_$(BITS).o
78 obj-$(CONFIG_KEXEC) += relocate_kernel_$(BITS).o crash.o 79 obj-$(CONFIG_KEXEC) += relocate_kernel_$(BITS).o crash.o
79 obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o 80 obj-$(CONFIG_CRASH_DUMP) += crash_dump_$(BITS).o
80 obj-$(CONFIG_KPROBES) += kprobes.o 81 obj-$(CONFIG_KPROBES) += kprobes.o
81 obj-$(CONFIG_MODULES) += module.o 82 obj-$(CONFIG_MODULES) += module.o
82 obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o 83 obj-$(CONFIG_EFI) += efi.o efi_$(BITS).o efi_stub_$(BITS).o
83 obj-$(CONFIG_DOUBLEFAULT) += doublefault_32.o 84 obj-$(CONFIG_DOUBLEFAULT) += doublefault_32.o
84 obj-$(CONFIG_KGDB) += kgdb.o 85 obj-$(CONFIG_KGDB) += kgdb.o
85 obj-$(CONFIG_VM86) += vm86_32.o 86 obj-$(CONFIG_VM86) += vm86_32.o
86 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 87 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
87 88
88 obj-$(CONFIG_HPET_TIMER) += hpet.o 89 obj-$(CONFIG_HPET_TIMER) += hpet.o
89 90
90 obj-$(CONFIG_K8_NB) += k8.o 91 obj-$(CONFIG_K8_NB) += k8.o
91 obj-$(CONFIG_MGEODE_LX) += geode_32.o mfgpt_32.o 92 obj-$(CONFIG_MGEODE_LX) += geode_32.o mfgpt_32.o
92 obj-$(CONFIG_DEBUG_RODATA_TEST) += test_rodata.o 93 obj-$(CONFIG_DEBUG_RODATA_TEST) += test_rodata.o
93 obj-$(CONFIG_DEBUG_NX_TEST) += test_nx.o 94 obj-$(CONFIG_DEBUG_NX_TEST) += test_nx.o
94 95
95 obj-$(CONFIG_VMI) += vmi_32.o vmiclock_32.o 96 obj-$(CONFIG_VMI) += vmi_32.o vmiclock_32.o
96 obj-$(CONFIG_KVM_GUEST) += kvm.o 97 obj-$(CONFIG_KVM_GUEST) += kvm.o
97 obj-$(CONFIG_KVM_CLOCK) += kvmclock.o 98 obj-$(CONFIG_KVM_CLOCK) += kvmclock.o
98 obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o 99 obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o
99 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o 100 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= paravirt-spinlocks.o
100 obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o 101 obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o
101 102
102 obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o 103 obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o
103 104
104 obj-$(CONFIG_SCx200) += scx200.o 105 obj-$(CONFIG_SCx200) += scx200.o
105 scx200-y += scx200_32.o 106 scx200-y += scx200_32.o
106 107
107 obj-$(CONFIG_OLPC) += olpc.o 108 obj-$(CONFIG_OLPC) += olpc.o
108 obj-$(CONFIG_X86_MRST) += mrst.o 109 obj-$(CONFIG_X86_MRST) += mrst.o
109 110
110 microcode-y := microcode_core.o 111 microcode-y := microcode_core.o
111 microcode-$(CONFIG_MICROCODE_INTEL) += microcode_intel.o 112 microcode-$(CONFIG_MICROCODE_INTEL) += microcode_intel.o
112 microcode-$(CONFIG_MICROCODE_AMD) += microcode_amd.o 113 microcode-$(CONFIG_MICROCODE_AMD) += microcode_amd.o
113 obj-$(CONFIG_MICROCODE) += microcode.o 114 obj-$(CONFIG_MICROCODE) += microcode.o
114 115
115 obj-$(CONFIG_X86_CHECK_BIOS_CORRUPTION) += check.o 116 obj-$(CONFIG_X86_CHECK_BIOS_CORRUPTION) += check.o
116 117
117 obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o 118 obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o
118 119
119 ### 120 ###
120 # 64 bit specific files 121 # 64 bit specific files
121 ifeq ($(CONFIG_X86_64),y) 122 ifeq ($(CONFIG_X86_64),y)
122 obj-$(CONFIG_X86_UV) += tlb_uv.o bios_uv.o uv_irq.o uv_sysfs.o uv_time.o 123 obj-$(CONFIG_X86_UV) += tlb_uv.o bios_uv.o uv_irq.o uv_sysfs.o uv_time.o
123 obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o 124 obj-$(CONFIG_X86_PM_TIMER) += pmtimer_64.o
124 obj-$(CONFIG_AUDIT) += audit_64.o 125 obj-$(CONFIG_AUDIT) += audit_64.o
125 126
126 obj-$(CONFIG_GART_IOMMU) += pci-gart_64.o aperture_64.o 127 obj-$(CONFIG_GART_IOMMU) += pci-gart_64.o aperture_64.o
127 obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary_64.o tce_64.o 128 obj-$(CONFIG_CALGARY_IOMMU) += pci-calgary_64.o tce_64.o
128 obj-$(CONFIG_AMD_IOMMU) += amd_iommu_init.o amd_iommu.o 129 obj-$(CONFIG_AMD_IOMMU) += amd_iommu_init.o amd_iommu.o
129 130
130 obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o 131 obj-$(CONFIG_PCI_MMCONFIG) += mmconf-fam10h_64.o
131 obj-y += vsmp_64.o 132 obj-y += vsmp_64.o
132 endif 133 endif
133 134
arch/x86/kernel/setup.c
1 /* 1 /*
2 * Copyright (C) 1995 Linus Torvalds 2 * Copyright (C) 1995 Linus Torvalds
3 * 3 *
4 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 4 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
5 * 5 *
6 * Memory region support 6 * Memory region support
7 * David Parsons <orc@pell.chi.il.us>, July-August 1999 7 * David Parsons <orc@pell.chi.il.us>, July-August 1999
8 * 8 *
9 * Added E820 sanitization routine (removes overlapping memory regions); 9 * Added E820 sanitization routine (removes overlapping memory regions);
10 * Brian Moyle <bmoyle@mvista.com>, February 2001 10 * Brian Moyle <bmoyle@mvista.com>, February 2001
11 * 11 *
12 * Moved CPU detection code to cpu/${cpu}.c 12 * Moved CPU detection code to cpu/${cpu}.c
13 * Patrick Mochel <mochel@osdl.org>, March 2002 13 * Patrick Mochel <mochel@osdl.org>, March 2002
14 * 14 *
15 * Provisions for empty E820 memory regions (reported by certain BIOSes). 15 * Provisions for empty E820 memory regions (reported by certain BIOSes).
16 * Alex Achenbach <xela@slit.de>, December 2002. 16 * Alex Achenbach <xela@slit.de>, December 2002.
17 * 17 *
18 */ 18 */
19 19
20 /* 20 /*
21 * This file handles the architecture-dependent parts of initialization 21 * This file handles the architecture-dependent parts of initialization
22 */ 22 */
23 23
24 #include <linux/sched.h> 24 #include <linux/sched.h>
25 #include <linux/mm.h> 25 #include <linux/mm.h>
26 #include <linux/mmzone.h> 26 #include <linux/mmzone.h>
27 #include <linux/screen_info.h> 27 #include <linux/screen_info.h>
28 #include <linux/ioport.h> 28 #include <linux/ioport.h>
29 #include <linux/acpi.h> 29 #include <linux/acpi.h>
30 #include <linux/sfi.h>
30 #include <linux/apm_bios.h> 31 #include <linux/apm_bios.h>
31 #include <linux/initrd.h> 32 #include <linux/initrd.h>
32 #include <linux/bootmem.h> 33 #include <linux/bootmem.h>
33 #include <linux/seq_file.h> 34 #include <linux/seq_file.h>
34 #include <linux/console.h> 35 #include <linux/console.h>
35 #include <linux/mca.h> 36 #include <linux/mca.h>
36 #include <linux/root_dev.h> 37 #include <linux/root_dev.h>
37 #include <linux/highmem.h> 38 #include <linux/highmem.h>
38 #include <linux/module.h> 39 #include <linux/module.h>
39 #include <linux/efi.h> 40 #include <linux/efi.h>
40 #include <linux/init.h> 41 #include <linux/init.h>
41 #include <linux/edd.h> 42 #include <linux/edd.h>
42 #include <linux/iscsi_ibft.h> 43 #include <linux/iscsi_ibft.h>
43 #include <linux/nodemask.h> 44 #include <linux/nodemask.h>
44 #include <linux/kexec.h> 45 #include <linux/kexec.h>
45 #include <linux/dmi.h> 46 #include <linux/dmi.h>
46 #include <linux/pfn.h> 47 #include <linux/pfn.h>
47 #include <linux/pci.h> 48 #include <linux/pci.h>
48 #include <asm/pci-direct.h> 49 #include <asm/pci-direct.h>
49 #include <linux/init_ohci1394_dma.h> 50 #include <linux/init_ohci1394_dma.h>
50 #include <linux/kvm_para.h> 51 #include <linux/kvm_para.h>
51 52
52 #include <linux/errno.h> 53 #include <linux/errno.h>
53 #include <linux/kernel.h> 54 #include <linux/kernel.h>
54 #include <linux/stddef.h> 55 #include <linux/stddef.h>
55 #include <linux/unistd.h> 56 #include <linux/unistd.h>
56 #include <linux/ptrace.h> 57 #include <linux/ptrace.h>
57 #include <linux/slab.h> 58 #include <linux/slab.h>
58 #include <linux/user.h> 59 #include <linux/user.h>
59 #include <linux/delay.h> 60 #include <linux/delay.h>
60 61
61 #include <linux/kallsyms.h> 62 #include <linux/kallsyms.h>
62 #include <linux/cpufreq.h> 63 #include <linux/cpufreq.h>
63 #include <linux/dma-mapping.h> 64 #include <linux/dma-mapping.h>
64 #include <linux/ctype.h> 65 #include <linux/ctype.h>
65 #include <linux/uaccess.h> 66 #include <linux/uaccess.h>
66 67
67 #include <linux/percpu.h> 68 #include <linux/percpu.h>
68 #include <linux/crash_dump.h> 69 #include <linux/crash_dump.h>
69 #include <linux/tboot.h> 70 #include <linux/tboot.h>
70 71
71 #include <video/edid.h> 72 #include <video/edid.h>
72 73
73 #include <asm/mtrr.h> 74 #include <asm/mtrr.h>
74 #include <asm/apic.h> 75 #include <asm/apic.h>
75 #include <asm/e820.h> 76 #include <asm/e820.h>
76 #include <asm/mpspec.h> 77 #include <asm/mpspec.h>
77 #include <asm/setup.h> 78 #include <asm/setup.h>
78 #include <asm/efi.h> 79 #include <asm/efi.h>
79 #include <asm/timer.h> 80 #include <asm/timer.h>
80 #include <asm/i8259.h> 81 #include <asm/i8259.h>
81 #include <asm/sections.h> 82 #include <asm/sections.h>
82 #include <asm/dmi.h> 83 #include <asm/dmi.h>
83 #include <asm/io_apic.h> 84 #include <asm/io_apic.h>
84 #include <asm/ist.h> 85 #include <asm/ist.h>
85 #include <asm/vmi.h> 86 #include <asm/vmi.h>
86 #include <asm/setup_arch.h> 87 #include <asm/setup_arch.h>
87 #include <asm/bios_ebda.h> 88 #include <asm/bios_ebda.h>
88 #include <asm/cacheflush.h> 89 #include <asm/cacheflush.h>
89 #include <asm/processor.h> 90 #include <asm/processor.h>
90 #include <asm/bugs.h> 91 #include <asm/bugs.h>
91 92
92 #include <asm/system.h> 93 #include <asm/system.h>
93 #include <asm/vsyscall.h> 94 #include <asm/vsyscall.h>
94 #include <asm/cpu.h> 95 #include <asm/cpu.h>
95 #include <asm/desc.h> 96 #include <asm/desc.h>
96 #include <asm/dma.h> 97 #include <asm/dma.h>
97 #include <asm/iommu.h> 98 #include <asm/iommu.h>
98 #include <asm/gart.h> 99 #include <asm/gart.h>
99 #include <asm/mmu_context.h> 100 #include <asm/mmu_context.h>
100 #include <asm/proto.h> 101 #include <asm/proto.h>
101 102
102 #include <asm/paravirt.h> 103 #include <asm/paravirt.h>
103 #include <asm/hypervisor.h> 104 #include <asm/hypervisor.h>
104 105
105 #include <asm/percpu.h> 106 #include <asm/percpu.h>
106 #include <asm/topology.h> 107 #include <asm/topology.h>
107 #include <asm/apicdef.h> 108 #include <asm/apicdef.h>
108 #ifdef CONFIG_X86_64 109 #ifdef CONFIG_X86_64
109 #include <asm/numa_64.h> 110 #include <asm/numa_64.h>
110 #endif 111 #endif
111 112
112 /* 113 /*
113 * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries. 114 * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries.
114 * The direct mapping extends to max_pfn_mapped, so that we can directly access 115 * The direct mapping extends to max_pfn_mapped, so that we can directly access
115 * apertures, ACPI and other tables without having to play with fixmaps. 116 * apertures, ACPI and other tables without having to play with fixmaps.
116 */ 117 */
117 unsigned long max_low_pfn_mapped; 118 unsigned long max_low_pfn_mapped;
118 unsigned long max_pfn_mapped; 119 unsigned long max_pfn_mapped;
119 120
120 RESERVE_BRK(dmi_alloc, 65536); 121 RESERVE_BRK(dmi_alloc, 65536);
121 122
122 unsigned int boot_cpu_id __read_mostly; 123 unsigned int boot_cpu_id __read_mostly;
123 124
124 static __initdata unsigned long _brk_start = (unsigned long)__brk_base; 125 static __initdata unsigned long _brk_start = (unsigned long)__brk_base;
125 unsigned long _brk_end = (unsigned long)__brk_base; 126 unsigned long _brk_end = (unsigned long)__brk_base;
126 127
127 #ifdef CONFIG_X86_64 128 #ifdef CONFIG_X86_64
128 int default_cpu_present_to_apicid(int mps_cpu) 129 int default_cpu_present_to_apicid(int mps_cpu)
129 { 130 {
130 return __default_cpu_present_to_apicid(mps_cpu); 131 return __default_cpu_present_to_apicid(mps_cpu);
131 } 132 }
132 133
133 int default_check_phys_apicid_present(int phys_apicid) 134 int default_check_phys_apicid_present(int phys_apicid)
134 { 135 {
135 return __default_check_phys_apicid_present(phys_apicid); 136 return __default_check_phys_apicid_present(phys_apicid);
136 } 137 }
137 #endif 138 #endif
138 139
139 #ifndef CONFIG_DEBUG_BOOT_PARAMS 140 #ifndef CONFIG_DEBUG_BOOT_PARAMS
140 struct boot_params __initdata boot_params; 141 struct boot_params __initdata boot_params;
141 #else 142 #else
142 struct boot_params boot_params; 143 struct boot_params boot_params;
143 #endif 144 #endif
144 145
145 /* 146 /*
146 * Machine setup.. 147 * Machine setup..
147 */ 148 */
148 static struct resource data_resource = { 149 static struct resource data_resource = {
149 .name = "Kernel data", 150 .name = "Kernel data",
150 .start = 0, 151 .start = 0,
151 .end = 0, 152 .end = 0,
152 .flags = IORESOURCE_BUSY | IORESOURCE_MEM 153 .flags = IORESOURCE_BUSY | IORESOURCE_MEM
153 }; 154 };
154 155
155 static struct resource code_resource = { 156 static struct resource code_resource = {
156 .name = "Kernel code", 157 .name = "Kernel code",
157 .start = 0, 158 .start = 0,
158 .end = 0, 159 .end = 0,
159 .flags = IORESOURCE_BUSY | IORESOURCE_MEM 160 .flags = IORESOURCE_BUSY | IORESOURCE_MEM
160 }; 161 };
161 162
162 static struct resource bss_resource = { 163 static struct resource bss_resource = {
163 .name = "Kernel bss", 164 .name = "Kernel bss",
164 .start = 0, 165 .start = 0,
165 .end = 0, 166 .end = 0,
166 .flags = IORESOURCE_BUSY | IORESOURCE_MEM 167 .flags = IORESOURCE_BUSY | IORESOURCE_MEM
167 }; 168 };
168 169
169 170
170 #ifdef CONFIG_X86_32 171 #ifdef CONFIG_X86_32
171 /* cpu data as detected by the assembly code in head.S */ 172 /* cpu data as detected by the assembly code in head.S */
172 struct cpuinfo_x86 new_cpu_data __cpuinitdata = {0, 0, 0, 0, -1, 1, 0, 0, -1}; 173 struct cpuinfo_x86 new_cpu_data __cpuinitdata = {0, 0, 0, 0, -1, 1, 0, 0, -1};
173 /* common cpu data for all cpus */ 174 /* common cpu data for all cpus */
174 struct cpuinfo_x86 boot_cpu_data __read_mostly = {0, 0, 0, 0, -1, 1, 0, 0, -1}; 175 struct cpuinfo_x86 boot_cpu_data __read_mostly = {0, 0, 0, 0, -1, 1, 0, 0, -1};
175 EXPORT_SYMBOL(boot_cpu_data); 176 EXPORT_SYMBOL(boot_cpu_data);
176 static void set_mca_bus(int x) 177 static void set_mca_bus(int x)
177 { 178 {
178 #ifdef CONFIG_MCA 179 #ifdef CONFIG_MCA
179 MCA_bus = x; 180 MCA_bus = x;
180 #endif 181 #endif
181 } 182 }
182 183
183 unsigned int def_to_bigsmp; 184 unsigned int def_to_bigsmp;
184 185
185 /* for MCA, but anyone else can use it if they want */ 186 /* for MCA, but anyone else can use it if they want */
186 unsigned int machine_id; 187 unsigned int machine_id;
187 unsigned int machine_submodel_id; 188 unsigned int machine_submodel_id;
188 unsigned int BIOS_revision; 189 unsigned int BIOS_revision;
189 190
190 struct apm_info apm_info; 191 struct apm_info apm_info;
191 EXPORT_SYMBOL(apm_info); 192 EXPORT_SYMBOL(apm_info);
192 193
193 #if defined(CONFIG_X86_SPEEDSTEP_SMI) || \ 194 #if defined(CONFIG_X86_SPEEDSTEP_SMI) || \
194 defined(CONFIG_X86_SPEEDSTEP_SMI_MODULE) 195 defined(CONFIG_X86_SPEEDSTEP_SMI_MODULE)
195 struct ist_info ist_info; 196 struct ist_info ist_info;
196 EXPORT_SYMBOL(ist_info); 197 EXPORT_SYMBOL(ist_info);
197 #else 198 #else
198 struct ist_info ist_info; 199 struct ist_info ist_info;
199 #endif 200 #endif
200 201
201 #else 202 #else
202 struct cpuinfo_x86 boot_cpu_data __read_mostly = { 203 struct cpuinfo_x86 boot_cpu_data __read_mostly = {
203 .x86_phys_bits = MAX_PHYSMEM_BITS, 204 .x86_phys_bits = MAX_PHYSMEM_BITS,
204 }; 205 };
205 EXPORT_SYMBOL(boot_cpu_data); 206 EXPORT_SYMBOL(boot_cpu_data);
206 #endif 207 #endif
207 208
208 209
209 #if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64) 210 #if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
210 unsigned long mmu_cr4_features; 211 unsigned long mmu_cr4_features;
211 #else 212 #else
212 unsigned long mmu_cr4_features = X86_CR4_PAE; 213 unsigned long mmu_cr4_features = X86_CR4_PAE;
213 #endif 214 #endif
214 215
215 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */ 216 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */
216 int bootloader_type, bootloader_version; 217 int bootloader_type, bootloader_version;
217 218
218 /* 219 /*
219 * Setup options 220 * Setup options
220 */ 221 */
221 struct screen_info screen_info; 222 struct screen_info screen_info;
222 EXPORT_SYMBOL(screen_info); 223 EXPORT_SYMBOL(screen_info);
223 struct edid_info edid_info; 224 struct edid_info edid_info;
224 EXPORT_SYMBOL_GPL(edid_info); 225 EXPORT_SYMBOL_GPL(edid_info);
225 226
226 extern int root_mountflags; 227 extern int root_mountflags;
227 228
228 unsigned long saved_video_mode; 229 unsigned long saved_video_mode;
229 230
230 #define RAMDISK_IMAGE_START_MASK 0x07FF 231 #define RAMDISK_IMAGE_START_MASK 0x07FF
231 #define RAMDISK_PROMPT_FLAG 0x8000 232 #define RAMDISK_PROMPT_FLAG 0x8000
232 #define RAMDISK_LOAD_FLAG 0x4000 233 #define RAMDISK_LOAD_FLAG 0x4000
233 234
234 static char __initdata command_line[COMMAND_LINE_SIZE]; 235 static char __initdata command_line[COMMAND_LINE_SIZE];
235 #ifdef CONFIG_CMDLINE_BOOL 236 #ifdef CONFIG_CMDLINE_BOOL
236 static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE; 237 static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE;
237 #endif 238 #endif
238 239
239 #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) 240 #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE)
240 struct edd edd; 241 struct edd edd;
241 #ifdef CONFIG_EDD_MODULE 242 #ifdef CONFIG_EDD_MODULE
242 EXPORT_SYMBOL(edd); 243 EXPORT_SYMBOL(edd);
243 #endif 244 #endif
244 /** 245 /**
245 * copy_edd() - Copy the BIOS EDD information 246 * copy_edd() - Copy the BIOS EDD information
246 * from boot_params into a safe place. 247 * from boot_params into a safe place.
247 * 248 *
248 */ 249 */
249 static inline void copy_edd(void) 250 static inline void copy_edd(void)
250 { 251 {
251 memcpy(edd.mbr_signature, boot_params.edd_mbr_sig_buffer, 252 memcpy(edd.mbr_signature, boot_params.edd_mbr_sig_buffer,
252 sizeof(edd.mbr_signature)); 253 sizeof(edd.mbr_signature));
253 memcpy(edd.edd_info, boot_params.eddbuf, sizeof(edd.edd_info)); 254 memcpy(edd.edd_info, boot_params.eddbuf, sizeof(edd.edd_info));
254 edd.mbr_signature_nr = boot_params.edd_mbr_sig_buf_entries; 255 edd.mbr_signature_nr = boot_params.edd_mbr_sig_buf_entries;
255 edd.edd_info_nr = boot_params.eddbuf_entries; 256 edd.edd_info_nr = boot_params.eddbuf_entries;
256 } 257 }
257 #else 258 #else
258 static inline void copy_edd(void) 259 static inline void copy_edd(void)
259 { 260 {
260 } 261 }
261 #endif 262 #endif
262 263
263 void * __init extend_brk(size_t size, size_t align) 264 void * __init extend_brk(size_t size, size_t align)
264 { 265 {
265 size_t mask = align - 1; 266 size_t mask = align - 1;
266 void *ret; 267 void *ret;
267 268
268 BUG_ON(_brk_start == 0); 269 BUG_ON(_brk_start == 0);
269 BUG_ON(align & mask); 270 BUG_ON(align & mask);
270 271
271 _brk_end = (_brk_end + mask) & ~mask; 272 _brk_end = (_brk_end + mask) & ~mask;
272 BUG_ON((char *)(_brk_end + size) > __brk_limit); 273 BUG_ON((char *)(_brk_end + size) > __brk_limit);
273 274
274 ret = (void *)_brk_end; 275 ret = (void *)_brk_end;
275 _brk_end += size; 276 _brk_end += size;
276 277
277 memset(ret, 0, size); 278 memset(ret, 0, size);
278 279
279 return ret; 280 return ret;
280 } 281 }
281 282
282 #ifdef CONFIG_X86_64 283 #ifdef CONFIG_X86_64
283 static void __init init_gbpages(void) 284 static void __init init_gbpages(void)
284 { 285 {
285 if (direct_gbpages && cpu_has_gbpages) 286 if (direct_gbpages && cpu_has_gbpages)
286 printk(KERN_INFO "Using GB pages for direct mapping\n"); 287 printk(KERN_INFO "Using GB pages for direct mapping\n");
287 else 288 else
288 direct_gbpages = 0; 289 direct_gbpages = 0;
289 } 290 }
290 #else 291 #else
291 static inline void init_gbpages(void) 292 static inline void init_gbpages(void)
292 { 293 {
293 } 294 }
294 #endif 295 #endif
295 296
296 static void __init reserve_brk(void) 297 static void __init reserve_brk(void)
297 { 298 {
298 if (_brk_end > _brk_start) 299 if (_brk_end > _brk_start)
299 reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK"); 300 reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK");
300 301
301 /* Mark brk area as locked down and no longer taking any 302 /* Mark brk area as locked down and no longer taking any
302 new allocations */ 303 new allocations */
303 _brk_start = 0; 304 _brk_start = 0;
304 } 305 }
305 306
306 #ifdef CONFIG_BLK_DEV_INITRD 307 #ifdef CONFIG_BLK_DEV_INITRD
307 308
308 #define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT) 309 #define MAX_MAP_CHUNK (NR_FIX_BTMAPS << PAGE_SHIFT)
309 static void __init relocate_initrd(void) 310 static void __init relocate_initrd(void)
310 { 311 {
311 312
312 u64 ramdisk_image = boot_params.hdr.ramdisk_image; 313 u64 ramdisk_image = boot_params.hdr.ramdisk_image;
313 u64 ramdisk_size = boot_params.hdr.ramdisk_size; 314 u64 ramdisk_size = boot_params.hdr.ramdisk_size;
314 u64 end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT; 315 u64 end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT;
315 u64 ramdisk_here; 316 u64 ramdisk_here;
316 unsigned long slop, clen, mapaddr; 317 unsigned long slop, clen, mapaddr;
317 char *p, *q; 318 char *p, *q;
318 319
319 /* We need to move the initrd down into lowmem */ 320 /* We need to move the initrd down into lowmem */
320 ramdisk_here = find_e820_area(0, end_of_lowmem, ramdisk_size, 321 ramdisk_here = find_e820_area(0, end_of_lowmem, ramdisk_size,
321 PAGE_SIZE); 322 PAGE_SIZE);
322 323
323 if (ramdisk_here == -1ULL) 324 if (ramdisk_here == -1ULL)
324 panic("Cannot find place for new RAMDISK of size %lld\n", 325 panic("Cannot find place for new RAMDISK of size %lld\n",
325 ramdisk_size); 326 ramdisk_size);
326 327
327 /* Note: this includes all the lowmem currently occupied by 328 /* Note: this includes all the lowmem currently occupied by
328 the initrd, we rely on that fact to keep the data intact. */ 329 the initrd, we rely on that fact to keep the data intact. */
329 reserve_early(ramdisk_here, ramdisk_here + ramdisk_size, 330 reserve_early(ramdisk_here, ramdisk_here + ramdisk_size,
330 "NEW RAMDISK"); 331 "NEW RAMDISK");
331 initrd_start = ramdisk_here + PAGE_OFFSET; 332 initrd_start = ramdisk_here + PAGE_OFFSET;
332 initrd_end = initrd_start + ramdisk_size; 333 initrd_end = initrd_start + ramdisk_size;
333 printk(KERN_INFO "Allocated new RAMDISK: %08llx - %08llx\n", 334 printk(KERN_INFO "Allocated new RAMDISK: %08llx - %08llx\n",
334 ramdisk_here, ramdisk_here + ramdisk_size); 335 ramdisk_here, ramdisk_here + ramdisk_size);
335 336
336 q = (char *)initrd_start; 337 q = (char *)initrd_start;
337 338
338 /* Copy any lowmem portion of the initrd */ 339 /* Copy any lowmem portion of the initrd */
339 if (ramdisk_image < end_of_lowmem) { 340 if (ramdisk_image < end_of_lowmem) {
340 clen = end_of_lowmem - ramdisk_image; 341 clen = end_of_lowmem - ramdisk_image;
341 p = (char *)__va(ramdisk_image); 342 p = (char *)__va(ramdisk_image);
342 memcpy(q, p, clen); 343 memcpy(q, p, clen);
343 q += clen; 344 q += clen;
344 ramdisk_image += clen; 345 ramdisk_image += clen;
345 ramdisk_size -= clen; 346 ramdisk_size -= clen;
346 } 347 }
347 348
348 /* Copy the highmem portion of the initrd */ 349 /* Copy the highmem portion of the initrd */
349 while (ramdisk_size) { 350 while (ramdisk_size) {
350 slop = ramdisk_image & ~PAGE_MASK; 351 slop = ramdisk_image & ~PAGE_MASK;
351 clen = ramdisk_size; 352 clen = ramdisk_size;
352 if (clen > MAX_MAP_CHUNK-slop) 353 if (clen > MAX_MAP_CHUNK-slop)
353 clen = MAX_MAP_CHUNK-slop; 354 clen = MAX_MAP_CHUNK-slop;
354 mapaddr = ramdisk_image & PAGE_MASK; 355 mapaddr = ramdisk_image & PAGE_MASK;
355 p = early_memremap(mapaddr, clen+slop); 356 p = early_memremap(mapaddr, clen+slop);
356 memcpy(q, p+slop, clen); 357 memcpy(q, p+slop, clen);
357 early_iounmap(p, clen+slop); 358 early_iounmap(p, clen+slop);
358 q += clen; 359 q += clen;
359 ramdisk_image += clen; 360 ramdisk_image += clen;
360 ramdisk_size -= clen; 361 ramdisk_size -= clen;
361 } 362 }
362 /* high pages is not converted by early_res_to_bootmem */ 363 /* high pages is not converted by early_res_to_bootmem */
363 ramdisk_image = boot_params.hdr.ramdisk_image; 364 ramdisk_image = boot_params.hdr.ramdisk_image;
364 ramdisk_size = boot_params.hdr.ramdisk_size; 365 ramdisk_size = boot_params.hdr.ramdisk_size;
365 printk(KERN_INFO "Move RAMDISK from %016llx - %016llx to" 366 printk(KERN_INFO "Move RAMDISK from %016llx - %016llx to"
366 " %08llx - %08llx\n", 367 " %08llx - %08llx\n",
367 ramdisk_image, ramdisk_image + ramdisk_size - 1, 368 ramdisk_image, ramdisk_image + ramdisk_size - 1,
368 ramdisk_here, ramdisk_here + ramdisk_size - 1); 369 ramdisk_here, ramdisk_here + ramdisk_size - 1);
369 } 370 }
370 371
371 static void __init reserve_initrd(void) 372 static void __init reserve_initrd(void)
372 { 373 {
373 u64 ramdisk_image = boot_params.hdr.ramdisk_image; 374 u64 ramdisk_image = boot_params.hdr.ramdisk_image;
374 u64 ramdisk_size = boot_params.hdr.ramdisk_size; 375 u64 ramdisk_size = boot_params.hdr.ramdisk_size;
375 u64 ramdisk_end = ramdisk_image + ramdisk_size; 376 u64 ramdisk_end = ramdisk_image + ramdisk_size;
376 u64 end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT; 377 u64 end_of_lowmem = max_low_pfn_mapped << PAGE_SHIFT;
377 378
378 if (!boot_params.hdr.type_of_loader || 379 if (!boot_params.hdr.type_of_loader ||
379 !ramdisk_image || !ramdisk_size) 380 !ramdisk_image || !ramdisk_size)
380 return; /* No initrd provided by bootloader */ 381 return; /* No initrd provided by bootloader */
381 382
382 initrd_start = 0; 383 initrd_start = 0;
383 384
384 if (ramdisk_size >= (end_of_lowmem>>1)) { 385 if (ramdisk_size >= (end_of_lowmem>>1)) {
385 free_early(ramdisk_image, ramdisk_end); 386 free_early(ramdisk_image, ramdisk_end);
386 printk(KERN_ERR "initrd too large to handle, " 387 printk(KERN_ERR "initrd too large to handle, "
387 "disabling initrd\n"); 388 "disabling initrd\n");
388 return; 389 return;
389 } 390 }
390 391
391 printk(KERN_INFO "RAMDISK: %08llx - %08llx\n", ramdisk_image, 392 printk(KERN_INFO "RAMDISK: %08llx - %08llx\n", ramdisk_image,
392 ramdisk_end); 393 ramdisk_end);
393 394
394 395
395 if (ramdisk_end <= end_of_lowmem) { 396 if (ramdisk_end <= end_of_lowmem) {
396 /* All in lowmem, easy case */ 397 /* All in lowmem, easy case */
397 /* 398 /*
398 * don't need to reserve again, already reserved early 399 * don't need to reserve again, already reserved early
399 * in i386_start_kernel 400 * in i386_start_kernel
400 */ 401 */
401 initrd_start = ramdisk_image + PAGE_OFFSET; 402 initrd_start = ramdisk_image + PAGE_OFFSET;
402 initrd_end = initrd_start + ramdisk_size; 403 initrd_end = initrd_start + ramdisk_size;
403 return; 404 return;
404 } 405 }
405 406
406 relocate_initrd(); 407 relocate_initrd();
407 408
408 free_early(ramdisk_image, ramdisk_end); 409 free_early(ramdisk_image, ramdisk_end);
409 } 410 }
410 #else 411 #else
411 static void __init reserve_initrd(void) 412 static void __init reserve_initrd(void)
412 { 413 {
413 } 414 }
414 #endif /* CONFIG_BLK_DEV_INITRD */ 415 #endif /* CONFIG_BLK_DEV_INITRD */
415 416
416 static void __init parse_setup_data(void) 417 static void __init parse_setup_data(void)
417 { 418 {
418 struct setup_data *data; 419 struct setup_data *data;
419 u64 pa_data; 420 u64 pa_data;
420 421
421 if (boot_params.hdr.version < 0x0209) 422 if (boot_params.hdr.version < 0x0209)
422 return; 423 return;
423 pa_data = boot_params.hdr.setup_data; 424 pa_data = boot_params.hdr.setup_data;
424 while (pa_data) { 425 while (pa_data) {
425 data = early_memremap(pa_data, PAGE_SIZE); 426 data = early_memremap(pa_data, PAGE_SIZE);
426 switch (data->type) { 427 switch (data->type) {
427 case SETUP_E820_EXT: 428 case SETUP_E820_EXT:
428 parse_e820_ext(data, pa_data); 429 parse_e820_ext(data, pa_data);
429 break; 430 break;
430 default: 431 default:
431 break; 432 break;
432 } 433 }
433 pa_data = data->next; 434 pa_data = data->next;
434 early_iounmap(data, PAGE_SIZE); 435 early_iounmap(data, PAGE_SIZE);
435 } 436 }
436 } 437 }
437 438
438 static void __init e820_reserve_setup_data(void) 439 static void __init e820_reserve_setup_data(void)
439 { 440 {
440 struct setup_data *data; 441 struct setup_data *data;
441 u64 pa_data; 442 u64 pa_data;
442 int found = 0; 443 int found = 0;
443 444
444 if (boot_params.hdr.version < 0x0209) 445 if (boot_params.hdr.version < 0x0209)
445 return; 446 return;
446 pa_data = boot_params.hdr.setup_data; 447 pa_data = boot_params.hdr.setup_data;
447 while (pa_data) { 448 while (pa_data) {
448 data = early_memremap(pa_data, sizeof(*data)); 449 data = early_memremap(pa_data, sizeof(*data));
449 e820_update_range(pa_data, sizeof(*data)+data->len, 450 e820_update_range(pa_data, sizeof(*data)+data->len,
450 E820_RAM, E820_RESERVED_KERN); 451 E820_RAM, E820_RESERVED_KERN);
451 found = 1; 452 found = 1;
452 pa_data = data->next; 453 pa_data = data->next;
453 early_iounmap(data, sizeof(*data)); 454 early_iounmap(data, sizeof(*data));
454 } 455 }
455 if (!found) 456 if (!found)
456 return; 457 return;
457 458
458 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 459 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
459 memcpy(&e820_saved, &e820, sizeof(struct e820map)); 460 memcpy(&e820_saved, &e820, sizeof(struct e820map));
460 printk(KERN_INFO "extended physical RAM map:\n"); 461 printk(KERN_INFO "extended physical RAM map:\n");
461 e820_print_map("reserve setup_data"); 462 e820_print_map("reserve setup_data");
462 } 463 }
463 464
464 static void __init reserve_early_setup_data(void) 465 static void __init reserve_early_setup_data(void)
465 { 466 {
466 struct setup_data *data; 467 struct setup_data *data;
467 u64 pa_data; 468 u64 pa_data;
468 char buf[32]; 469 char buf[32];
469 470
470 if (boot_params.hdr.version < 0x0209) 471 if (boot_params.hdr.version < 0x0209)
471 return; 472 return;
472 pa_data = boot_params.hdr.setup_data; 473 pa_data = boot_params.hdr.setup_data;
473 while (pa_data) { 474 while (pa_data) {
474 data = early_memremap(pa_data, sizeof(*data)); 475 data = early_memremap(pa_data, sizeof(*data));
475 sprintf(buf, "setup data %x", data->type); 476 sprintf(buf, "setup data %x", data->type);
476 reserve_early(pa_data, pa_data+sizeof(*data)+data->len, buf); 477 reserve_early(pa_data, pa_data+sizeof(*data)+data->len, buf);
477 pa_data = data->next; 478 pa_data = data->next;
478 early_iounmap(data, sizeof(*data)); 479 early_iounmap(data, sizeof(*data));
479 } 480 }
480 } 481 }
481 482
482 /* 483 /*
483 * --------- Crashkernel reservation ------------------------------ 484 * --------- Crashkernel reservation ------------------------------
484 */ 485 */
485 486
486 #ifdef CONFIG_KEXEC 487 #ifdef CONFIG_KEXEC
487 488
488 /** 489 /**
489 * Reserve @size bytes of crashkernel memory at any suitable offset. 490 * Reserve @size bytes of crashkernel memory at any suitable offset.
490 * 491 *
491 * @size: Size of the crashkernel memory to reserve. 492 * @size: Size of the crashkernel memory to reserve.
492 * Returns the base address on success, and -1ULL on failure. 493 * Returns the base address on success, and -1ULL on failure.
493 */ 494 */
494 static 495 static
495 unsigned long long __init find_and_reserve_crashkernel(unsigned long long size) 496 unsigned long long __init find_and_reserve_crashkernel(unsigned long long size)
496 { 497 {
497 const unsigned long long alignment = 16<<20; /* 16M */ 498 const unsigned long long alignment = 16<<20; /* 16M */
498 unsigned long long start = 0LL; 499 unsigned long long start = 0LL;
499 500
500 while (1) { 501 while (1) {
501 int ret; 502 int ret;
502 503
503 start = find_e820_area(start, ULONG_MAX, size, alignment); 504 start = find_e820_area(start, ULONG_MAX, size, alignment);
504 if (start == -1ULL) 505 if (start == -1ULL)
505 return start; 506 return start;
506 507
507 /* try to reserve it */ 508 /* try to reserve it */
508 ret = reserve_bootmem_generic(start, size, BOOTMEM_EXCLUSIVE); 509 ret = reserve_bootmem_generic(start, size, BOOTMEM_EXCLUSIVE);
509 if (ret >= 0) 510 if (ret >= 0)
510 return start; 511 return start;
511 512
512 start += alignment; 513 start += alignment;
513 } 514 }
514 } 515 }
515 516
516 static inline unsigned long long get_total_mem(void) 517 static inline unsigned long long get_total_mem(void)
517 { 518 {
518 unsigned long long total; 519 unsigned long long total;
519 520
520 total = max_low_pfn - min_low_pfn; 521 total = max_low_pfn - min_low_pfn;
521 #ifdef CONFIG_HIGHMEM 522 #ifdef CONFIG_HIGHMEM
522 total += highend_pfn - highstart_pfn; 523 total += highend_pfn - highstart_pfn;
523 #endif 524 #endif
524 525
525 return total << PAGE_SHIFT; 526 return total << PAGE_SHIFT;
526 } 527 }
527 528
528 static void __init reserve_crashkernel(void) 529 static void __init reserve_crashkernel(void)
529 { 530 {
530 unsigned long long total_mem; 531 unsigned long long total_mem;
531 unsigned long long crash_size, crash_base; 532 unsigned long long crash_size, crash_base;
532 int ret; 533 int ret;
533 534
534 total_mem = get_total_mem(); 535 total_mem = get_total_mem();
535 536
536 ret = parse_crashkernel(boot_command_line, total_mem, 537 ret = parse_crashkernel(boot_command_line, total_mem,
537 &crash_size, &crash_base); 538 &crash_size, &crash_base);
538 if (ret != 0 || crash_size <= 0) 539 if (ret != 0 || crash_size <= 0)
539 return; 540 return;
540 541
541 /* 0 means: find the address automatically */ 542 /* 0 means: find the address automatically */
542 if (crash_base <= 0) { 543 if (crash_base <= 0) {
543 crash_base = find_and_reserve_crashkernel(crash_size); 544 crash_base = find_and_reserve_crashkernel(crash_size);
544 if (crash_base == -1ULL) { 545 if (crash_base == -1ULL) {
545 pr_info("crashkernel reservation failed. " 546 pr_info("crashkernel reservation failed. "
546 "No suitable area found.\n"); 547 "No suitable area found.\n");
547 return; 548 return;
548 } 549 }
549 } else { 550 } else {
550 ret = reserve_bootmem_generic(crash_base, crash_size, 551 ret = reserve_bootmem_generic(crash_base, crash_size,
551 BOOTMEM_EXCLUSIVE); 552 BOOTMEM_EXCLUSIVE);
552 if (ret < 0) { 553 if (ret < 0) {
553 pr_info("crashkernel reservation failed - " 554 pr_info("crashkernel reservation failed - "
554 "memory is in use\n"); 555 "memory is in use\n");
555 return; 556 return;
556 } 557 }
557 } 558 }
558 559
559 printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " 560 printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "
560 "for crashkernel (System RAM: %ldMB)\n", 561 "for crashkernel (System RAM: %ldMB)\n",
561 (unsigned long)(crash_size >> 20), 562 (unsigned long)(crash_size >> 20),
562 (unsigned long)(crash_base >> 20), 563 (unsigned long)(crash_base >> 20),
563 (unsigned long)(total_mem >> 20)); 564 (unsigned long)(total_mem >> 20));
564 565
565 crashk_res.start = crash_base; 566 crashk_res.start = crash_base;
566 crashk_res.end = crash_base + crash_size - 1; 567 crashk_res.end = crash_base + crash_size - 1;
567 insert_resource(&iomem_resource, &crashk_res); 568 insert_resource(&iomem_resource, &crashk_res);
568 } 569 }
569 #else 570 #else
570 static void __init reserve_crashkernel(void) 571 static void __init reserve_crashkernel(void)
571 { 572 {
572 } 573 }
573 #endif 574 #endif
574 575
575 static struct resource standard_io_resources[] = { 576 static struct resource standard_io_resources[] = {
576 { .name = "dma1", .start = 0x00, .end = 0x1f, 577 { .name = "dma1", .start = 0x00, .end = 0x1f,
577 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 578 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
578 { .name = "pic1", .start = 0x20, .end = 0x21, 579 { .name = "pic1", .start = 0x20, .end = 0x21,
579 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 580 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
580 { .name = "timer0", .start = 0x40, .end = 0x43, 581 { .name = "timer0", .start = 0x40, .end = 0x43,
581 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 582 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
582 { .name = "timer1", .start = 0x50, .end = 0x53, 583 { .name = "timer1", .start = 0x50, .end = 0x53,
583 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 584 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
584 { .name = "keyboard", .start = 0x60, .end = 0x60, 585 { .name = "keyboard", .start = 0x60, .end = 0x60,
585 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 586 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
586 { .name = "keyboard", .start = 0x64, .end = 0x64, 587 { .name = "keyboard", .start = 0x64, .end = 0x64,
587 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 588 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
588 { .name = "dma page reg", .start = 0x80, .end = 0x8f, 589 { .name = "dma page reg", .start = 0x80, .end = 0x8f,
589 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 590 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
590 { .name = "pic2", .start = 0xa0, .end = 0xa1, 591 { .name = "pic2", .start = 0xa0, .end = 0xa1,
591 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 592 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
592 { .name = "dma2", .start = 0xc0, .end = 0xdf, 593 { .name = "dma2", .start = 0xc0, .end = 0xdf,
593 .flags = IORESOURCE_BUSY | IORESOURCE_IO }, 594 .flags = IORESOURCE_BUSY | IORESOURCE_IO },
594 { .name = "fpu", .start = 0xf0, .end = 0xff, 595 { .name = "fpu", .start = 0xf0, .end = 0xff,
595 .flags = IORESOURCE_BUSY | IORESOURCE_IO } 596 .flags = IORESOURCE_BUSY | IORESOURCE_IO }
596 }; 597 };
597 598
598 void __init reserve_standard_io_resources(void) 599 void __init reserve_standard_io_resources(void)
599 { 600 {
600 int i; 601 int i;
601 602
602 /* request I/O space for devices used on all i[345]86 PCs */ 603 /* request I/O space for devices used on all i[345]86 PCs */
603 for (i = 0; i < ARRAY_SIZE(standard_io_resources); i++) 604 for (i = 0; i < ARRAY_SIZE(standard_io_resources); i++)
604 request_resource(&ioport_resource, &standard_io_resources[i]); 605 request_resource(&ioport_resource, &standard_io_resources[i]);
605 606
606 } 607 }
607 608
608 /* 609 /*
609 * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by 610 * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by
610 * is_kdump_kernel() to determine if we are booting after a panic. Hence 611 * is_kdump_kernel() to determine if we are booting after a panic. Hence
611 * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE. 612 * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE.
612 */ 613 */
613 614
614 #ifdef CONFIG_CRASH_DUMP 615 #ifdef CONFIG_CRASH_DUMP
615 /* elfcorehdr= specifies the location of elf core header 616 /* elfcorehdr= specifies the location of elf core header
616 * stored by the crashed kernel. This option will be passed 617 * stored by the crashed kernel. This option will be passed
617 * by kexec loader to the capture kernel. 618 * by kexec loader to the capture kernel.
618 */ 619 */
619 static int __init setup_elfcorehdr(char *arg) 620 static int __init setup_elfcorehdr(char *arg)
620 { 621 {
621 char *end; 622 char *end;
622 if (!arg) 623 if (!arg)
623 return -EINVAL; 624 return -EINVAL;
624 elfcorehdr_addr = memparse(arg, &end); 625 elfcorehdr_addr = memparse(arg, &end);
625 return end > arg ? 0 : -EINVAL; 626 return end > arg ? 0 : -EINVAL;
626 } 627 }
627 early_param("elfcorehdr", setup_elfcorehdr); 628 early_param("elfcorehdr", setup_elfcorehdr);
628 #endif 629 #endif
629 630
630 #ifdef CONFIG_X86_RESERVE_LOW_64K 631 #ifdef CONFIG_X86_RESERVE_LOW_64K
631 static int __init dmi_low_memory_corruption(const struct dmi_system_id *d) 632 static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
632 { 633 {
633 printk(KERN_NOTICE 634 printk(KERN_NOTICE
634 "%s detected: BIOS may corrupt low RAM, working around it.\n", 635 "%s detected: BIOS may corrupt low RAM, working around it.\n",
635 d->ident); 636 d->ident);
636 637
637 e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED); 638 e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED);
638 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 639 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
639 640
640 return 0; 641 return 0;
641 } 642 }
642 #endif 643 #endif
643 644
644 /* List of systems that have known low memory corruption BIOS problems */ 645 /* List of systems that have known low memory corruption BIOS problems */
645 static struct dmi_system_id __initdata bad_bios_dmi_table[] = { 646 static struct dmi_system_id __initdata bad_bios_dmi_table[] = {
646 #ifdef CONFIG_X86_RESERVE_LOW_64K 647 #ifdef CONFIG_X86_RESERVE_LOW_64K
647 { 648 {
648 .callback = dmi_low_memory_corruption, 649 .callback = dmi_low_memory_corruption,
649 .ident = "AMI BIOS", 650 .ident = "AMI BIOS",
650 .matches = { 651 .matches = {
651 DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), 652 DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
652 }, 653 },
653 }, 654 },
654 { 655 {
655 .callback = dmi_low_memory_corruption, 656 .callback = dmi_low_memory_corruption,
656 .ident = "Phoenix BIOS", 657 .ident = "Phoenix BIOS",
657 .matches = { 658 .matches = {
658 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies"), 659 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies"),
659 }, 660 },
660 }, 661 },
661 { 662 {
662 /* 663 /*
663 * AMI BIOS with low memory corruption was found on Intel DG45ID board. 664 * AMI BIOS with low memory corruption was found on Intel DG45ID board.
664 * It hase different DMI_BIOS_VENDOR = "Intel Corp.", for now we will 665 * It hase different DMI_BIOS_VENDOR = "Intel Corp.", for now we will
665 * match only DMI_BOARD_NAME and see if there is more bad products 666 * match only DMI_BOARD_NAME and see if there is more bad products
666 * with this vendor. 667 * with this vendor.
667 */ 668 */
668 .callback = dmi_low_memory_corruption, 669 .callback = dmi_low_memory_corruption,
669 .ident = "AMI BIOS", 670 .ident = "AMI BIOS",
670 .matches = { 671 .matches = {
671 DMI_MATCH(DMI_BOARD_NAME, "DG45ID"), 672 DMI_MATCH(DMI_BOARD_NAME, "DG45ID"),
672 }, 673 },
673 }, 674 },
674 #endif 675 #endif
675 {} 676 {}
676 }; 677 };
677 678
678 /* 679 /*
679 * Determine if we were loaded by an EFI loader. If so, then we have also been 680 * Determine if we were loaded by an EFI loader. If so, then we have also been
680 * passed the efi memmap, systab, etc., so we should use these data structures 681 * passed the efi memmap, systab, etc., so we should use these data structures
681 * for initialization. Note, the efi init code path is determined by the 682 * for initialization. Note, the efi init code path is determined by the
682 * global efi_enabled. This allows the same kernel image to be used on existing 683 * global efi_enabled. This allows the same kernel image to be used on existing
683 * systems (with a traditional BIOS) as well as on EFI systems. 684 * systems (with a traditional BIOS) as well as on EFI systems.
684 */ 685 */
685 /* 686 /*
686 * setup_arch - architecture-specific boot-time initializations 687 * setup_arch - architecture-specific boot-time initializations
687 * 688 *
688 * Note: On x86_64, fixmaps are ready for use even before this is called. 689 * Note: On x86_64, fixmaps are ready for use even before this is called.
689 */ 690 */
690 691
691 void __init setup_arch(char **cmdline_p) 692 void __init setup_arch(char **cmdline_p)
692 { 693 {
693 #ifdef CONFIG_X86_32 694 #ifdef CONFIG_X86_32
694 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); 695 memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
695 visws_early_detect(); 696 visws_early_detect();
696 #else 697 #else
697 printk(KERN_INFO "Command line: %s\n", boot_command_line); 698 printk(KERN_INFO "Command line: %s\n", boot_command_line);
698 #endif 699 #endif
699 700
700 /* VMI may relocate the fixmap; do this before touching ioremap area */ 701 /* VMI may relocate the fixmap; do this before touching ioremap area */
701 vmi_init(); 702 vmi_init();
702 703
703 early_cpu_init(); 704 early_cpu_init();
704 early_ioremap_init(); 705 early_ioremap_init();
705 706
706 ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev); 707 ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev);
707 screen_info = boot_params.screen_info; 708 screen_info = boot_params.screen_info;
708 edid_info = boot_params.edid_info; 709 edid_info = boot_params.edid_info;
709 #ifdef CONFIG_X86_32 710 #ifdef CONFIG_X86_32
710 apm_info.bios = boot_params.apm_bios_info; 711 apm_info.bios = boot_params.apm_bios_info;
711 ist_info = boot_params.ist_info; 712 ist_info = boot_params.ist_info;
712 if (boot_params.sys_desc_table.length != 0) { 713 if (boot_params.sys_desc_table.length != 0) {
713 set_mca_bus(boot_params.sys_desc_table.table[3] & 0x2); 714 set_mca_bus(boot_params.sys_desc_table.table[3] & 0x2);
714 machine_id = boot_params.sys_desc_table.table[0]; 715 machine_id = boot_params.sys_desc_table.table[0];
715 machine_submodel_id = boot_params.sys_desc_table.table[1]; 716 machine_submodel_id = boot_params.sys_desc_table.table[1];
716 BIOS_revision = boot_params.sys_desc_table.table[2]; 717 BIOS_revision = boot_params.sys_desc_table.table[2];
717 } 718 }
718 #endif 719 #endif
719 saved_video_mode = boot_params.hdr.vid_mode; 720 saved_video_mode = boot_params.hdr.vid_mode;
720 bootloader_type = boot_params.hdr.type_of_loader; 721 bootloader_type = boot_params.hdr.type_of_loader;
721 if ((bootloader_type >> 4) == 0xe) { 722 if ((bootloader_type >> 4) == 0xe) {
722 bootloader_type &= 0xf; 723 bootloader_type &= 0xf;
723 bootloader_type |= (boot_params.hdr.ext_loader_type+0x10) << 4; 724 bootloader_type |= (boot_params.hdr.ext_loader_type+0x10) << 4;
724 } 725 }
725 bootloader_version = bootloader_type & 0xf; 726 bootloader_version = bootloader_type & 0xf;
726 bootloader_version |= boot_params.hdr.ext_loader_ver << 4; 727 bootloader_version |= boot_params.hdr.ext_loader_ver << 4;
727 728
728 #ifdef CONFIG_BLK_DEV_RAM 729 #ifdef CONFIG_BLK_DEV_RAM
729 rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK; 730 rd_image_start = boot_params.hdr.ram_size & RAMDISK_IMAGE_START_MASK;
730 rd_prompt = ((boot_params.hdr.ram_size & RAMDISK_PROMPT_FLAG) != 0); 731 rd_prompt = ((boot_params.hdr.ram_size & RAMDISK_PROMPT_FLAG) != 0);
731 rd_doload = ((boot_params.hdr.ram_size & RAMDISK_LOAD_FLAG) != 0); 732 rd_doload = ((boot_params.hdr.ram_size & RAMDISK_LOAD_FLAG) != 0);
732 #endif 733 #endif
733 #ifdef CONFIG_EFI 734 #ifdef CONFIG_EFI
734 if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature, 735 if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,
735 #ifdef CONFIG_X86_32 736 #ifdef CONFIG_X86_32
736 "EL32", 737 "EL32",
737 #else 738 #else
738 "EL64", 739 "EL64",
739 #endif 740 #endif
740 4)) { 741 4)) {
741 efi_enabled = 1; 742 efi_enabled = 1;
742 efi_reserve_early(); 743 efi_reserve_early();
743 } 744 }
744 #endif 745 #endif
745 746
746 x86_init.oem.arch_setup(); 747 x86_init.oem.arch_setup();
747 748
748 setup_memory_map(); 749 setup_memory_map();
749 parse_setup_data(); 750 parse_setup_data();
750 /* update the e820_saved too */ 751 /* update the e820_saved too */
751 e820_reserve_setup_data(); 752 e820_reserve_setup_data();
752 753
753 copy_edd(); 754 copy_edd();
754 755
755 if (!boot_params.hdr.root_flags) 756 if (!boot_params.hdr.root_flags)
756 root_mountflags &= ~MS_RDONLY; 757 root_mountflags &= ~MS_RDONLY;
757 init_mm.start_code = (unsigned long) _text; 758 init_mm.start_code = (unsigned long) _text;
758 init_mm.end_code = (unsigned long) _etext; 759 init_mm.end_code = (unsigned long) _etext;
759 init_mm.end_data = (unsigned long) _edata; 760 init_mm.end_data = (unsigned long) _edata;
760 init_mm.brk = _brk_end; 761 init_mm.brk = _brk_end;
761 762
762 code_resource.start = virt_to_phys(_text); 763 code_resource.start = virt_to_phys(_text);
763 code_resource.end = virt_to_phys(_etext)-1; 764 code_resource.end = virt_to_phys(_etext)-1;
764 data_resource.start = virt_to_phys(_etext); 765 data_resource.start = virt_to_phys(_etext);
765 data_resource.end = virt_to_phys(_edata)-1; 766 data_resource.end = virt_to_phys(_edata)-1;
766 bss_resource.start = virt_to_phys(&__bss_start); 767 bss_resource.start = virt_to_phys(&__bss_start);
767 bss_resource.end = virt_to_phys(&__bss_stop)-1; 768 bss_resource.end = virt_to_phys(&__bss_stop)-1;
768 769
769 #ifdef CONFIG_CMDLINE_BOOL 770 #ifdef CONFIG_CMDLINE_BOOL
770 #ifdef CONFIG_CMDLINE_OVERRIDE 771 #ifdef CONFIG_CMDLINE_OVERRIDE
771 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); 772 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
772 #else 773 #else
773 if (builtin_cmdline[0]) { 774 if (builtin_cmdline[0]) {
774 /* append boot loader cmdline to builtin */ 775 /* append boot loader cmdline to builtin */
775 strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE); 776 strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE);
776 strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE); 777 strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE);
777 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); 778 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
778 } 779 }
779 #endif 780 #endif
780 #endif 781 #endif
781 782
782 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); 783 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
783 *cmdline_p = command_line; 784 *cmdline_p = command_line;
784 785
785 #ifdef CONFIG_X86_64 786 #ifdef CONFIG_X86_64
786 /* 787 /*
787 * Must call this twice: Once just to detect whether hardware doesn't 788 * Must call this twice: Once just to detect whether hardware doesn't
788 * support NX (so that the early EHCI debug console setup can safely 789 * support NX (so that the early EHCI debug console setup can safely
789 * call set_fixmap(), and then again after parsing early parameters to 790 * call set_fixmap(), and then again after parsing early parameters to
790 * honor the respective command line option. 791 * honor the respective command line option.
791 */ 792 */
792 check_efer(); 793 check_efer();
793 #endif 794 #endif
794 795
795 parse_early_param(); 796 parse_early_param();
796 797
797 #ifdef CONFIG_X86_64 798 #ifdef CONFIG_X86_64
798 check_efer(); 799 check_efer();
799 #endif 800 #endif
800 801
801 /* Must be before kernel pagetables are setup */ 802 /* Must be before kernel pagetables are setup */
802 vmi_activate(); 803 vmi_activate();
803 804
804 /* after early param, so could get panic from serial */ 805 /* after early param, so could get panic from serial */
805 reserve_early_setup_data(); 806 reserve_early_setup_data();
806 807
807 if (acpi_mps_check()) { 808 if (acpi_mps_check()) {
808 #ifdef CONFIG_X86_LOCAL_APIC 809 #ifdef CONFIG_X86_LOCAL_APIC
809 disable_apic = 1; 810 disable_apic = 1;
810 #endif 811 #endif
811 setup_clear_cpu_cap(X86_FEATURE_APIC); 812 setup_clear_cpu_cap(X86_FEATURE_APIC);
812 } 813 }
813 814
814 #ifdef CONFIG_PCI 815 #ifdef CONFIG_PCI
815 if (pci_early_dump_regs) 816 if (pci_early_dump_regs)
816 early_dump_pci_devices(); 817 early_dump_pci_devices();
817 #endif 818 #endif
818 819
819 finish_e820_parsing(); 820 finish_e820_parsing();
820 821
821 if (efi_enabled) 822 if (efi_enabled)
822 efi_init(); 823 efi_init();
823 824
824 dmi_scan_machine(); 825 dmi_scan_machine();
825 826
826 dmi_check_system(bad_bios_dmi_table); 827 dmi_check_system(bad_bios_dmi_table);
827 828
828 /* 829 /*
829 * VMware detection requires dmi to be available, so this 830 * VMware detection requires dmi to be available, so this
830 * needs to be done after dmi_scan_machine, for the BP. 831 * needs to be done after dmi_scan_machine, for the BP.
831 */ 832 */
832 init_hypervisor_platform(); 833 init_hypervisor_platform();
833 834
834 x86_init.resources.probe_roms(); 835 x86_init.resources.probe_roms();
835 836
836 /* after parse_early_param, so could debug it */ 837 /* after parse_early_param, so could debug it */
837 insert_resource(&iomem_resource, &code_resource); 838 insert_resource(&iomem_resource, &code_resource);
838 insert_resource(&iomem_resource, &data_resource); 839 insert_resource(&iomem_resource, &data_resource);
839 insert_resource(&iomem_resource, &bss_resource); 840 insert_resource(&iomem_resource, &bss_resource);
840 841
841 842
842 #ifdef CONFIG_X86_32 843 #ifdef CONFIG_X86_32
843 if (ppro_with_ram_bug()) { 844 if (ppro_with_ram_bug()) {
844 e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM, 845 e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM,
845 E820_RESERVED); 846 E820_RESERVED);
846 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 847 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
847 printk(KERN_INFO "fixed physical RAM map:\n"); 848 printk(KERN_INFO "fixed physical RAM map:\n");
848 e820_print_map("bad_ppro"); 849 e820_print_map("bad_ppro");
849 } 850 }
850 #else 851 #else
851 early_gart_iommu_check(); 852 early_gart_iommu_check();
852 #endif 853 #endif
853 854
854 /* 855 /*
855 * partially used pages are not usable - thus 856 * partially used pages are not usable - thus
856 * we are rounding upwards: 857 * we are rounding upwards:
857 */ 858 */
858 max_pfn = e820_end_of_ram_pfn(); 859 max_pfn = e820_end_of_ram_pfn();
859 860
860 /* preallocate 4k for mptable mpc */ 861 /* preallocate 4k for mptable mpc */
861 early_reserve_e820_mpc_new(); 862 early_reserve_e820_mpc_new();
862 /* update e820 for memory not covered by WB MTRRs */ 863 /* update e820 for memory not covered by WB MTRRs */
863 mtrr_bp_init(); 864 mtrr_bp_init();
864 if (mtrr_trim_uncached_memory(max_pfn)) 865 if (mtrr_trim_uncached_memory(max_pfn))
865 max_pfn = e820_end_of_ram_pfn(); 866 max_pfn = e820_end_of_ram_pfn();
866 867
867 #ifdef CONFIG_X86_32 868 #ifdef CONFIG_X86_32
868 /* max_low_pfn get updated here */ 869 /* max_low_pfn get updated here */
869 find_low_pfn_range(); 870 find_low_pfn_range();
870 #else 871 #else
871 num_physpages = max_pfn; 872 num_physpages = max_pfn;
872 873
873 check_x2apic(); 874 check_x2apic();
874 875
875 /* How many end-of-memory variables you have, grandma! */ 876 /* How many end-of-memory variables you have, grandma! */
876 /* need this before calling reserve_initrd */ 877 /* need this before calling reserve_initrd */
877 if (max_pfn > (1UL<<(32 - PAGE_SHIFT))) 878 if (max_pfn > (1UL<<(32 - PAGE_SHIFT)))
878 max_low_pfn = e820_end_of_low_ram_pfn(); 879 max_low_pfn = e820_end_of_low_ram_pfn();
879 else 880 else
880 max_low_pfn = max_pfn; 881 max_low_pfn = max_pfn;
881 882
882 high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1; 883 high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1;
883 max_pfn_mapped = KERNEL_IMAGE_SIZE >> PAGE_SHIFT; 884 max_pfn_mapped = KERNEL_IMAGE_SIZE >> PAGE_SHIFT;
884 #endif 885 #endif
885 886
886 #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION 887 #ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
887 setup_bios_corruption_check(); 888 setup_bios_corruption_check();
888 #endif 889 #endif
889 890
890 printk(KERN_DEBUG "initial memory mapped : 0 - %08lx\n", 891 printk(KERN_DEBUG "initial memory mapped : 0 - %08lx\n",
891 max_pfn_mapped<<PAGE_SHIFT); 892 max_pfn_mapped<<PAGE_SHIFT);
892 893
893 reserve_brk(); 894 reserve_brk();
894 895
895 init_gbpages(); 896 init_gbpages();
896 897
897 /* max_pfn_mapped is updated here */ 898 /* max_pfn_mapped is updated here */
898 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT); 899 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);
899 max_pfn_mapped = max_low_pfn_mapped; 900 max_pfn_mapped = max_low_pfn_mapped;
900 901
901 #ifdef CONFIG_X86_64 902 #ifdef CONFIG_X86_64
902 if (max_pfn > max_low_pfn) { 903 if (max_pfn > max_low_pfn) {
903 max_pfn_mapped = init_memory_mapping(1UL<<32, 904 max_pfn_mapped = init_memory_mapping(1UL<<32,
904 max_pfn<<PAGE_SHIFT); 905 max_pfn<<PAGE_SHIFT);
905 /* can we preseve max_low_pfn ?*/ 906 /* can we preseve max_low_pfn ?*/
906 max_low_pfn = max_pfn; 907 max_low_pfn = max_pfn;
907 } 908 }
908 #endif 909 #endif
909 910
910 /* 911 /*
911 * NOTE: On x86-32, only from this point on, fixmaps are ready for use. 912 * NOTE: On x86-32, only from this point on, fixmaps are ready for use.
912 */ 913 */
913 914
914 #ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT 915 #ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
915 if (init_ohci1394_dma_early) 916 if (init_ohci1394_dma_early)
916 init_ohci1394_dma_on_all_controllers(); 917 init_ohci1394_dma_on_all_controllers();
917 #endif 918 #endif
918 919
919 reserve_initrd(); 920 reserve_initrd();
920 921
921 vsmp_init(); 922 vsmp_init();
922 923
923 io_delay_init(); 924 io_delay_init();
924 925
925 /* 926 /*
926 * Parse the ACPI tables for possible boot-time SMP configuration. 927 * Parse the ACPI tables for possible boot-time SMP configuration.
927 */ 928 */
928 acpi_boot_table_init(); 929 acpi_boot_table_init();
929 930
930 early_acpi_boot_init(); 931 early_acpi_boot_init();
931 932
932 #ifdef CONFIG_ACPI_NUMA 933 #ifdef CONFIG_ACPI_NUMA
933 /* 934 /*
934 * Parse SRAT to discover nodes. 935 * Parse SRAT to discover nodes.
935 */ 936 */
936 acpi_numa_init(); 937 acpi_numa_init();
937 #endif 938 #endif
938 939
939 initmem_init(0, max_pfn); 940 initmem_init(0, max_pfn);
940 941
941 #ifdef CONFIG_ACPI_SLEEP 942 #ifdef CONFIG_ACPI_SLEEP
942 /* 943 /*
943 * Reserve low memory region for sleep support. 944 * Reserve low memory region for sleep support.
944 */ 945 */
945 acpi_reserve_bootmem(); 946 acpi_reserve_bootmem();
946 #endif 947 #endif
947 /* 948 /*
948 * Find and reserve possible boot-time SMP configuration: 949 * Find and reserve possible boot-time SMP configuration:
949 */ 950 */
950 find_smp_config(); 951 find_smp_config();
951 952
952 reserve_crashkernel(); 953 reserve_crashkernel();
953 954
954 #ifdef CONFIG_X86_64 955 #ifdef CONFIG_X86_64
955 /* 956 /*
956 * dma32_reserve_bootmem() allocates bootmem which may conflict 957 * dma32_reserve_bootmem() allocates bootmem which may conflict
957 * with the crashkernel command line, so do that after 958 * with the crashkernel command line, so do that after
958 * reserve_crashkernel() 959 * reserve_crashkernel()
959 */ 960 */
960 dma32_reserve_bootmem(); 961 dma32_reserve_bootmem();
961 #endif 962 #endif
962 963
963 reserve_ibft_region(); 964 reserve_ibft_region();
964 965
965 #ifdef CONFIG_KVM_CLOCK 966 #ifdef CONFIG_KVM_CLOCK
966 kvmclock_init(); 967 kvmclock_init();
967 #endif 968 #endif
968 969
969 x86_init.paging.pagetable_setup_start(swapper_pg_dir); 970 x86_init.paging.pagetable_setup_start(swapper_pg_dir);
970 paging_init(); 971 paging_init();
971 x86_init.paging.pagetable_setup_done(swapper_pg_dir); 972 x86_init.paging.pagetable_setup_done(swapper_pg_dir);
972 973
973 tboot_probe(); 974 tboot_probe();
974 975
975 #ifdef CONFIG_X86_64 976 #ifdef CONFIG_X86_64
976 map_vsyscall(); 977 map_vsyscall();
977 #endif 978 #endif
978 979
979 generic_apic_probe(); 980 generic_apic_probe();
980 981
981 early_quirks(); 982 early_quirks();
982 983
983 /* 984 /*
984 * Read APIC and some other early information from ACPI tables. 985 * Read APIC and some other early information from ACPI tables.
985 */ 986 */
986 acpi_boot_init(); 987 acpi_boot_init();
988
989 sfi_init();
987 990
988 /* 991 /*
989 * get boot-time SMP configuration: 992 * get boot-time SMP configuration:
990 */ 993 */
991 if (smp_found_config) 994 if (smp_found_config)
992 get_smp_config(); 995 get_smp_config();
993 996
994 prefill_possible_map(); 997 prefill_possible_map();
995 998
996 #ifdef CONFIG_X86_64 999 #ifdef CONFIG_X86_64
997 init_cpu_to_node(); 1000 init_cpu_to_node();
998 #endif 1001 #endif
999 1002
1000 init_apic_mappings(); 1003 init_apic_mappings();
1001 ioapic_init_mappings(); 1004 ioapic_init_mappings();
1002 1005
1003 /* need to wait for io_apic is mapped */ 1006 /* need to wait for io_apic is mapped */
1004 probe_nr_irqs_gsi(); 1007 probe_nr_irqs_gsi();
1005 1008
1006 kvm_guest_init(); 1009 kvm_guest_init();
1007 1010
1008 e820_reserve_resources(); 1011 e820_reserve_resources();
1009 e820_mark_nosave_regions(max_low_pfn); 1012 e820_mark_nosave_regions(max_low_pfn);
1010 1013
1011 x86_init.resources.reserve_resources(); 1014 x86_init.resources.reserve_resources();
1012 1015
1013 e820_setup_gap(); 1016 e820_setup_gap();
1014 1017
1015 #ifdef CONFIG_VT 1018 #ifdef CONFIG_VT
1016 #if defined(CONFIG_VGA_CONSOLE) 1019 #if defined(CONFIG_VGA_CONSOLE)
1017 if (!efi_enabled || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY)) 1020 if (!efi_enabled || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY))
1018 conswitchp = &vga_con; 1021 conswitchp = &vga_con;
1019 #elif defined(CONFIG_DUMMY_CONSOLE) 1022 #elif defined(CONFIG_DUMMY_CONSOLE)
1020 conswitchp = &dummy_con; 1023 conswitchp = &dummy_con;
1021 #endif 1024 #endif
1022 #endif 1025 #endif
1023 x86_init.oem.banner(); 1026 x86_init.oem.banner();
1024 } 1027 }
1025 1028
1026 #ifdef CONFIG_X86_32 1029 #ifdef CONFIG_X86_32
1027 1030
1028 static struct resource video_ram_resource = { 1031 static struct resource video_ram_resource = {
1029 .name = "Video RAM area", 1032 .name = "Video RAM area",
1030 .start = 0xa0000, 1033 .start = 0xa0000,
1031 .end = 0xbffff, 1034 .end = 0xbffff,
1032 .flags = IORESOURCE_BUSY | IORESOURCE_MEM 1035 .flags = IORESOURCE_BUSY | IORESOURCE_MEM
1033 }; 1036 };
1034 1037
1035 void __init i386_reserve_resources(void) 1038 void __init i386_reserve_resources(void)
1036 { 1039 {
1037 request_resource(&iomem_resource, &video_ram_resource); 1040 request_resource(&iomem_resource, &video_ram_resource);
1038 reserve_standard_io_resources(); 1041 reserve_standard_io_resources();
1039 } 1042 }
1040 1043
1041 #endif /* CONFIG_X86_32 */ 1044 #endif /* CONFIG_X86_32 */
1042 1045
arch/x86/kernel/sfi.c
File was created 1 /*
2 * sfi.c - x86 architecture SFI support.
3 *
4 * Copyright (c) 2009, Intel Corporation.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 *
15 * You should have received a copy of the GNU General Public License along with
16 * this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 */
20
21 #define KMSG_COMPONENT "SFI"
22 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
23
24 #include <linux/acpi.h>
25 #include <linux/init.h>
26 #include <linux/sfi.h>
27 #include <linux/io.h>
28
29 #include <asm/io_apic.h>
30 #include <asm/mpspec.h>
31 #include <asm/setup.h>
32 #include <asm/apic.h>
33
34 #ifdef CONFIG_X86_LOCAL_APIC
35 static unsigned long sfi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
36
37 void __init mp_sfi_register_lapic_address(unsigned long address)
38 {
39 mp_lapic_addr = address;
40
41 set_fixmap_nocache(FIX_APIC_BASE, mp_lapic_addr);
42 if (boot_cpu_physical_apicid == -1U)
43 boot_cpu_physical_apicid = read_apic_id();
44
45 pr_info("Boot CPU = %d\n", boot_cpu_physical_apicid);
46 }
47
48 /* All CPUs enumerated by SFI must be present and enabled */
49 void __cpuinit mp_sfi_register_lapic(u8 id)
50 {
51 if (MAX_APICS - id <= 0) {
52 pr_warning("Processor #%d invalid (max %d)\n",
53 id, MAX_APICS);
54 return;
55 }
56
57 pr_info("registering lapic[%d]\n", id);
58
59 generic_processor_info(id, GET_APIC_VERSION(apic_read(APIC_LVR)));
60 }
61
62 static int __init sfi_parse_cpus(struct sfi_table_header *table)
63 {
64 struct sfi_table_simple *sb;
65 struct sfi_cpu_table_entry *pentry;
66 int i;
67 int cpu_num;
68
69 sb = (struct sfi_table_simple *)table;
70 cpu_num = SFI_GET_NUM_ENTRIES(sb, struct sfi_cpu_table_entry);
71 pentry = (struct sfi_cpu_table_entry *)sb->pentry;
72
73 for (i = 0; i < cpu_num; i++) {
74 mp_sfi_register_lapic(pentry->apic_id);
75 pentry++;
76 }
77
78 smp_found_config = 1;
79 return 0;
80 }
81 #endif /* CONFIG_X86_LOCAL_APIC */
82
83 #ifdef CONFIG_X86_IO_APIC
84 static u32 gsi_base;
85
86 static int __init sfi_parse_ioapic(struct sfi_table_header *table)
87 {
88 struct sfi_table_simple *sb;
89 struct sfi_apic_table_entry *pentry;
90 int i, num;
91
92 sb = (struct sfi_table_simple *)table;
93 num = SFI_GET_NUM_ENTRIES(sb, struct sfi_apic_table_entry);
94 pentry = (struct sfi_apic_table_entry *)sb->pentry;
95
96 for (i = 0; i < num; i++) {
97 mp_register_ioapic(i, pentry->phys_addr, gsi_base);
98 gsi_base += io_apic_get_redir_entries(i);
99 pentry++;
100 }
101
102 WARN(pic_mode, KERN_WARNING
103 "SFI: pic_mod shouldn't be 1 when IOAPIC table is present\n");
104 pic_mode = 0;
105 return 0;
106 }
107 #endif /* CONFIG_X86_IO_APIC */
108
109 /*
110 * sfi_platform_init(): register lapics & io-apics
111 */
112 int __init sfi_platform_init(void)
113 {
114 #ifdef CONFIG_X86_LOCAL_APIC
115 mp_sfi_register_lapic_address(sfi_lapic_addr);
116 sfi_table_parse(SFI_SIG_CPUS, NULL, NULL, sfi_parse_cpus);
117 #endif
118 #ifdef CONFIG_X86_IO_APIC
119 sfi_table_parse(SFI_SIG_APIC, NULL, NULL, sfi_parse_ioapic);
120 #endif
121 return 0;
122 }
123
arch/x86/pci/mmconfig-shared.c
1 /* 1 /*
2 * mmconfig-shared.c - Low-level direct PCI config space access via 2 * mmconfig-shared.c - Low-level direct PCI config space access via
3 * MMCONFIG - common code between i386 and x86-64. 3 * MMCONFIG - common code between i386 and x86-64.
4 * 4 *
5 * This code does: 5 * This code does:
6 * - known chipset handling 6 * - known chipset handling
7 * - ACPI decoding and validation 7 * - ACPI decoding and validation
8 * 8 *
9 * Per-architecture code takes care of the mappings and accesses 9 * Per-architecture code takes care of the mappings and accesses
10 * themselves. 10 * themselves.
11 */ 11 */
12 12
13 #include <linux/pci.h> 13 #include <linux/pci.h>
14 #include <linux/init.h> 14 #include <linux/init.h>
15 #include <linux/acpi.h> 15 #include <linux/acpi.h>
16 #include <linux/sfi_acpi.h>
16 #include <linux/bitmap.h> 17 #include <linux/bitmap.h>
17 #include <linux/sort.h> 18 #include <linux/sort.h>
18 #include <asm/e820.h> 19 #include <asm/e820.h>
19 #include <asm/pci_x86.h> 20 #include <asm/pci_x86.h>
21 #include <asm/acpi.h>
20 22
21 #define PREFIX "PCI: " 23 #define PREFIX "PCI: "
22 24
23 /* aperture is up to 256MB but BIOS may reserve less */ 25 /* aperture is up to 256MB but BIOS may reserve less */
24 #define MMCONFIG_APER_MIN (2 * 1024*1024) 26 #define MMCONFIG_APER_MIN (2 * 1024*1024)
25 #define MMCONFIG_APER_MAX (256 * 1024*1024) 27 #define MMCONFIG_APER_MAX (256 * 1024*1024)
26 28
27 /* Indicate if the mmcfg resources have been placed into the resource table. */ 29 /* Indicate if the mmcfg resources have been placed into the resource table. */
28 static int __initdata pci_mmcfg_resources_inserted; 30 static int __initdata pci_mmcfg_resources_inserted;
29 31
30 static __init int extend_mmcfg(int num) 32 static __init int extend_mmcfg(int num)
31 { 33 {
32 struct acpi_mcfg_allocation *new; 34 struct acpi_mcfg_allocation *new;
33 int new_num = pci_mmcfg_config_num + num; 35 int new_num = pci_mmcfg_config_num + num;
34 36
35 new = kzalloc(sizeof(pci_mmcfg_config[0]) * new_num, GFP_KERNEL); 37 new = kzalloc(sizeof(pci_mmcfg_config[0]) * new_num, GFP_KERNEL);
36 if (!new) 38 if (!new)
37 return -1; 39 return -1;
38 40
39 if (pci_mmcfg_config) { 41 if (pci_mmcfg_config) {
40 memcpy(new, pci_mmcfg_config, 42 memcpy(new, pci_mmcfg_config,
41 sizeof(pci_mmcfg_config[0]) * new_num); 43 sizeof(pci_mmcfg_config[0]) * new_num);
42 kfree(pci_mmcfg_config); 44 kfree(pci_mmcfg_config);
43 } 45 }
44 pci_mmcfg_config = new; 46 pci_mmcfg_config = new;
45 47
46 return 0; 48 return 0;
47 } 49 }
48 50
49 static __init void fill_one_mmcfg(u64 addr, int segment, int start, int end) 51 static __init void fill_one_mmcfg(u64 addr, int segment, int start, int end)
50 { 52 {
51 int i = pci_mmcfg_config_num; 53 int i = pci_mmcfg_config_num;
52 54
53 pci_mmcfg_config_num++; 55 pci_mmcfg_config_num++;
54 pci_mmcfg_config[i].address = addr; 56 pci_mmcfg_config[i].address = addr;
55 pci_mmcfg_config[i].pci_segment = segment; 57 pci_mmcfg_config[i].pci_segment = segment;
56 pci_mmcfg_config[i].start_bus_number = start; 58 pci_mmcfg_config[i].start_bus_number = start;
57 pci_mmcfg_config[i].end_bus_number = end; 59 pci_mmcfg_config[i].end_bus_number = end;
58 } 60 }
59 61
60 static const char __init *pci_mmcfg_e7520(void) 62 static const char __init *pci_mmcfg_e7520(void)
61 { 63 {
62 u32 win; 64 u32 win;
63 raw_pci_ops->read(0, 0, PCI_DEVFN(0, 0), 0xce, 2, &win); 65 raw_pci_ops->read(0, 0, PCI_DEVFN(0, 0), 0xce, 2, &win);
64 66
65 win = win & 0xf000; 67 win = win & 0xf000;
66 if (win == 0x0000 || win == 0xf000) 68 if (win == 0x0000 || win == 0xf000)
67 return NULL; 69 return NULL;
68 70
69 if (extend_mmcfg(1) == -1) 71 if (extend_mmcfg(1) == -1)
70 return NULL; 72 return NULL;
71 73
72 fill_one_mmcfg(win << 16, 0, 0, 255); 74 fill_one_mmcfg(win << 16, 0, 0, 255);
73 75
74 return "Intel Corporation E7520 Memory Controller Hub"; 76 return "Intel Corporation E7520 Memory Controller Hub";
75 } 77 }
76 78
77 static const char __init *pci_mmcfg_intel_945(void) 79 static const char __init *pci_mmcfg_intel_945(void)
78 { 80 {
79 u32 pciexbar, mask = 0, len = 0; 81 u32 pciexbar, mask = 0, len = 0;
80 82
81 raw_pci_ops->read(0, 0, PCI_DEVFN(0, 0), 0x48, 4, &pciexbar); 83 raw_pci_ops->read(0, 0, PCI_DEVFN(0, 0), 0x48, 4, &pciexbar);
82 84
83 /* Enable bit */ 85 /* Enable bit */
84 if (!(pciexbar & 1)) 86 if (!(pciexbar & 1))
85 return NULL; 87 return NULL;
86 88
87 /* Size bits */ 89 /* Size bits */
88 switch ((pciexbar >> 1) & 3) { 90 switch ((pciexbar >> 1) & 3) {
89 case 0: 91 case 0:
90 mask = 0xf0000000U; 92 mask = 0xf0000000U;
91 len = 0x10000000U; 93 len = 0x10000000U;
92 break; 94 break;
93 case 1: 95 case 1:
94 mask = 0xf8000000U; 96 mask = 0xf8000000U;
95 len = 0x08000000U; 97 len = 0x08000000U;
96 break; 98 break;
97 case 2: 99 case 2:
98 mask = 0xfc000000U; 100 mask = 0xfc000000U;
99 len = 0x04000000U; 101 len = 0x04000000U;
100 break; 102 break;
101 default: 103 default:
102 return NULL; 104 return NULL;
103 } 105 }
104 106
105 /* Errata #2, things break when not aligned on a 256Mb boundary */ 107 /* Errata #2, things break when not aligned on a 256Mb boundary */
106 /* Can only happen in 64M/128M mode */ 108 /* Can only happen in 64M/128M mode */
107 109
108 if ((pciexbar & mask) & 0x0fffffffU) 110 if ((pciexbar & mask) & 0x0fffffffU)
109 return NULL; 111 return NULL;
110 112
111 /* Don't hit the APIC registers and their friends */ 113 /* Don't hit the APIC registers and their friends */
112 if ((pciexbar & mask) >= 0xf0000000U) 114 if ((pciexbar & mask) >= 0xf0000000U)
113 return NULL; 115 return NULL;
114 116
115 if (extend_mmcfg(1) == -1) 117 if (extend_mmcfg(1) == -1)
116 return NULL; 118 return NULL;
117 119
118 fill_one_mmcfg(pciexbar & mask, 0, 0, (len >> 20) - 1); 120 fill_one_mmcfg(pciexbar & mask, 0, 0, (len >> 20) - 1);
119 121
120 return "Intel Corporation 945G/GZ/P/PL Express Memory Controller Hub"; 122 return "Intel Corporation 945G/GZ/P/PL Express Memory Controller Hub";
121 } 123 }
122 124
123 static const char __init *pci_mmcfg_amd_fam10h(void) 125 static const char __init *pci_mmcfg_amd_fam10h(void)
124 { 126 {
125 u32 low, high, address; 127 u32 low, high, address;
126 u64 base, msr; 128 u64 base, msr;
127 int i; 129 int i;
128 unsigned segnbits = 0, busnbits; 130 unsigned segnbits = 0, busnbits;
129 131
130 if (!(pci_probe & PCI_CHECK_ENABLE_AMD_MMCONF)) 132 if (!(pci_probe & PCI_CHECK_ENABLE_AMD_MMCONF))
131 return NULL; 133 return NULL;
132 134
133 address = MSR_FAM10H_MMIO_CONF_BASE; 135 address = MSR_FAM10H_MMIO_CONF_BASE;
134 if (rdmsr_safe(address, &low, &high)) 136 if (rdmsr_safe(address, &low, &high))
135 return NULL; 137 return NULL;
136 138
137 msr = high; 139 msr = high;
138 msr <<= 32; 140 msr <<= 32;
139 msr |= low; 141 msr |= low;
140 142
141 /* mmconfig is not enable */ 143 /* mmconfig is not enable */
142 if (!(msr & FAM10H_MMIO_CONF_ENABLE)) 144 if (!(msr & FAM10H_MMIO_CONF_ENABLE))
143 return NULL; 145 return NULL;
144 146
145 base = msr & (FAM10H_MMIO_CONF_BASE_MASK<<FAM10H_MMIO_CONF_BASE_SHIFT); 147 base = msr & (FAM10H_MMIO_CONF_BASE_MASK<<FAM10H_MMIO_CONF_BASE_SHIFT);
146 148
147 busnbits = (msr >> FAM10H_MMIO_CONF_BUSRANGE_SHIFT) & 149 busnbits = (msr >> FAM10H_MMIO_CONF_BUSRANGE_SHIFT) &
148 FAM10H_MMIO_CONF_BUSRANGE_MASK; 150 FAM10H_MMIO_CONF_BUSRANGE_MASK;
149 151
150 /* 152 /*
151 * only handle bus 0 ? 153 * only handle bus 0 ?
152 * need to skip it 154 * need to skip it
153 */ 155 */
154 if (!busnbits) 156 if (!busnbits)
155 return NULL; 157 return NULL;
156 158
157 if (busnbits > 8) { 159 if (busnbits > 8) {
158 segnbits = busnbits - 8; 160 segnbits = busnbits - 8;
159 busnbits = 8; 161 busnbits = 8;
160 } 162 }
161 163
162 if (extend_mmcfg(1 << segnbits) == -1) 164 if (extend_mmcfg(1 << segnbits) == -1)
163 return NULL; 165 return NULL;
164 166
165 for (i = 0; i < (1 << segnbits); i++) 167 for (i = 0; i < (1 << segnbits); i++)
166 fill_one_mmcfg(base + (1<<28) * i, i, 0, (1 << busnbits) - 1); 168 fill_one_mmcfg(base + (1<<28) * i, i, 0, (1 << busnbits) - 1);
167 169
168 return "AMD Family 10h NB"; 170 return "AMD Family 10h NB";
169 } 171 }
170 172
171 static bool __initdata mcp55_checked; 173 static bool __initdata mcp55_checked;
172 static const char __init *pci_mmcfg_nvidia_mcp55(void) 174 static const char __init *pci_mmcfg_nvidia_mcp55(void)
173 { 175 {
174 int bus; 176 int bus;
175 int mcp55_mmconf_found = 0; 177 int mcp55_mmconf_found = 0;
176 178
177 static const u32 extcfg_regnum = 0x90; 179 static const u32 extcfg_regnum = 0x90;
178 static const u32 extcfg_regsize = 4; 180 static const u32 extcfg_regsize = 4;
179 static const u32 extcfg_enable_mask = 1<<31; 181 static const u32 extcfg_enable_mask = 1<<31;
180 static const u32 extcfg_start_mask = 0xff<<16; 182 static const u32 extcfg_start_mask = 0xff<<16;
181 static const int extcfg_start_shift = 16; 183 static const int extcfg_start_shift = 16;
182 static const u32 extcfg_size_mask = 0x3<<28; 184 static const u32 extcfg_size_mask = 0x3<<28;
183 static const int extcfg_size_shift = 28; 185 static const int extcfg_size_shift = 28;
184 static const int extcfg_sizebus[] = {0x100, 0x80, 0x40, 0x20}; 186 static const int extcfg_sizebus[] = {0x100, 0x80, 0x40, 0x20};
185 static const u32 extcfg_base_mask[] = {0x7ff8, 0x7ffc, 0x7ffe, 0x7fff}; 187 static const u32 extcfg_base_mask[] = {0x7ff8, 0x7ffc, 0x7ffe, 0x7fff};
186 static const int extcfg_base_lshift = 25; 188 static const int extcfg_base_lshift = 25;
187 189
188 /* 190 /*
189 * do check if amd fam10h already took over 191 * do check if amd fam10h already took over
190 */ 192 */
191 if (!acpi_disabled || pci_mmcfg_config_num || mcp55_checked) 193 if (!acpi_disabled || pci_mmcfg_config_num || mcp55_checked)
192 return NULL; 194 return NULL;
193 195
194 mcp55_checked = true; 196 mcp55_checked = true;
195 for (bus = 0; bus < 256; bus++) { 197 for (bus = 0; bus < 256; bus++) {
196 u64 base; 198 u64 base;
197 u32 l, extcfg; 199 u32 l, extcfg;
198 u16 vendor, device; 200 u16 vendor, device;
199 int start, size_index, end; 201 int start, size_index, end;
200 202
201 raw_pci_ops->read(0, bus, PCI_DEVFN(0, 0), 0, 4, &l); 203 raw_pci_ops->read(0, bus, PCI_DEVFN(0, 0), 0, 4, &l);
202 vendor = l & 0xffff; 204 vendor = l & 0xffff;
203 device = (l >> 16) & 0xffff; 205 device = (l >> 16) & 0xffff;
204 206
205 if (PCI_VENDOR_ID_NVIDIA != vendor || 0x0369 != device) 207 if (PCI_VENDOR_ID_NVIDIA != vendor || 0x0369 != device)
206 continue; 208 continue;
207 209
208 raw_pci_ops->read(0, bus, PCI_DEVFN(0, 0), extcfg_regnum, 210 raw_pci_ops->read(0, bus, PCI_DEVFN(0, 0), extcfg_regnum,
209 extcfg_regsize, &extcfg); 211 extcfg_regsize, &extcfg);
210 212
211 if (!(extcfg & extcfg_enable_mask)) 213 if (!(extcfg & extcfg_enable_mask))
212 continue; 214 continue;
213 215
214 if (extend_mmcfg(1) == -1) 216 if (extend_mmcfg(1) == -1)
215 continue; 217 continue;
216 218
217 size_index = (extcfg & extcfg_size_mask) >> extcfg_size_shift; 219 size_index = (extcfg & extcfg_size_mask) >> extcfg_size_shift;
218 base = extcfg & extcfg_base_mask[size_index]; 220 base = extcfg & extcfg_base_mask[size_index];
219 /* base could > 4G */ 221 /* base could > 4G */
220 base <<= extcfg_base_lshift; 222 base <<= extcfg_base_lshift;
221 start = (extcfg & extcfg_start_mask) >> extcfg_start_shift; 223 start = (extcfg & extcfg_start_mask) >> extcfg_start_shift;
222 end = start + extcfg_sizebus[size_index] - 1; 224 end = start + extcfg_sizebus[size_index] - 1;
223 fill_one_mmcfg(base, 0, start, end); 225 fill_one_mmcfg(base, 0, start, end);
224 mcp55_mmconf_found++; 226 mcp55_mmconf_found++;
225 } 227 }
226 228
227 if (!mcp55_mmconf_found) 229 if (!mcp55_mmconf_found)
228 return NULL; 230 return NULL;
229 231
230 return "nVidia MCP55"; 232 return "nVidia MCP55";
231 } 233 }
232 234
233 struct pci_mmcfg_hostbridge_probe { 235 struct pci_mmcfg_hostbridge_probe {
234 u32 bus; 236 u32 bus;
235 u32 devfn; 237 u32 devfn;
236 u32 vendor; 238 u32 vendor;
237 u32 device; 239 u32 device;
238 const char *(*probe)(void); 240 const char *(*probe)(void);
239 }; 241 };
240 242
241 static struct pci_mmcfg_hostbridge_probe pci_mmcfg_probes[] __initdata = { 243 static struct pci_mmcfg_hostbridge_probe pci_mmcfg_probes[] __initdata = {
242 { 0, PCI_DEVFN(0, 0), PCI_VENDOR_ID_INTEL, 244 { 0, PCI_DEVFN(0, 0), PCI_VENDOR_ID_INTEL,
243 PCI_DEVICE_ID_INTEL_E7520_MCH, pci_mmcfg_e7520 }, 245 PCI_DEVICE_ID_INTEL_E7520_MCH, pci_mmcfg_e7520 },
244 { 0, PCI_DEVFN(0, 0), PCI_VENDOR_ID_INTEL, 246 { 0, PCI_DEVFN(0, 0), PCI_VENDOR_ID_INTEL,
245 PCI_DEVICE_ID_INTEL_82945G_HB, pci_mmcfg_intel_945 }, 247 PCI_DEVICE_ID_INTEL_82945G_HB, pci_mmcfg_intel_945 },
246 { 0, PCI_DEVFN(0x18, 0), PCI_VENDOR_ID_AMD, 248 { 0, PCI_DEVFN(0x18, 0), PCI_VENDOR_ID_AMD,
247 0x1200, pci_mmcfg_amd_fam10h }, 249 0x1200, pci_mmcfg_amd_fam10h },
248 { 0xff, PCI_DEVFN(0, 0), PCI_VENDOR_ID_AMD, 250 { 0xff, PCI_DEVFN(0, 0), PCI_VENDOR_ID_AMD,
249 0x1200, pci_mmcfg_amd_fam10h }, 251 0x1200, pci_mmcfg_amd_fam10h },
250 { 0, PCI_DEVFN(0, 0), PCI_VENDOR_ID_NVIDIA, 252 { 0, PCI_DEVFN(0, 0), PCI_VENDOR_ID_NVIDIA,
251 0x0369, pci_mmcfg_nvidia_mcp55 }, 253 0x0369, pci_mmcfg_nvidia_mcp55 },
252 }; 254 };
253 255
254 static int __init cmp_mmcfg(const void *x1, const void *x2) 256 static int __init cmp_mmcfg(const void *x1, const void *x2)
255 { 257 {
256 const typeof(pci_mmcfg_config[0]) *m1 = x1; 258 const typeof(pci_mmcfg_config[0]) *m1 = x1;
257 const typeof(pci_mmcfg_config[0]) *m2 = x2; 259 const typeof(pci_mmcfg_config[0]) *m2 = x2;
258 int start1, start2; 260 int start1, start2;
259 261
260 start1 = m1->start_bus_number; 262 start1 = m1->start_bus_number;
261 start2 = m2->start_bus_number; 263 start2 = m2->start_bus_number;
262 264
263 return start1 - start2; 265 return start1 - start2;
264 } 266 }
265 267
266 static void __init pci_mmcfg_check_end_bus_number(void) 268 static void __init pci_mmcfg_check_end_bus_number(void)
267 { 269 {
268 int i; 270 int i;
269 typeof(pci_mmcfg_config[0]) *cfg, *cfgx; 271 typeof(pci_mmcfg_config[0]) *cfg, *cfgx;
270 272
271 /* sort them at first */ 273 /* sort them at first */
272 sort(pci_mmcfg_config, pci_mmcfg_config_num, 274 sort(pci_mmcfg_config, pci_mmcfg_config_num,
273 sizeof(pci_mmcfg_config[0]), cmp_mmcfg, NULL); 275 sizeof(pci_mmcfg_config[0]), cmp_mmcfg, NULL);
274 276
275 /* last one*/ 277 /* last one*/
276 if (pci_mmcfg_config_num > 0) { 278 if (pci_mmcfg_config_num > 0) {
277 i = pci_mmcfg_config_num - 1; 279 i = pci_mmcfg_config_num - 1;
278 cfg = &pci_mmcfg_config[i]; 280 cfg = &pci_mmcfg_config[i];
279 if (cfg->end_bus_number < cfg->start_bus_number) 281 if (cfg->end_bus_number < cfg->start_bus_number)
280 cfg->end_bus_number = 255; 282 cfg->end_bus_number = 255;
281 } 283 }
282 284
283 /* don't overlap please */ 285 /* don't overlap please */
284 for (i = 0; i < pci_mmcfg_config_num - 1; i++) { 286 for (i = 0; i < pci_mmcfg_config_num - 1; i++) {
285 cfg = &pci_mmcfg_config[i]; 287 cfg = &pci_mmcfg_config[i];
286 cfgx = &pci_mmcfg_config[i+1]; 288 cfgx = &pci_mmcfg_config[i+1];
287 289
288 if (cfg->end_bus_number < cfg->start_bus_number) 290 if (cfg->end_bus_number < cfg->start_bus_number)
289 cfg->end_bus_number = 255; 291 cfg->end_bus_number = 255;
290 292
291 if (cfg->end_bus_number >= cfgx->start_bus_number) 293 if (cfg->end_bus_number >= cfgx->start_bus_number)
292 cfg->end_bus_number = cfgx->start_bus_number - 1; 294 cfg->end_bus_number = cfgx->start_bus_number - 1;
293 } 295 }
294 } 296 }
295 297
296 static int __init pci_mmcfg_check_hostbridge(void) 298 static int __init pci_mmcfg_check_hostbridge(void)
297 { 299 {
298 u32 l; 300 u32 l;
299 u32 bus, devfn; 301 u32 bus, devfn;
300 u16 vendor, device; 302 u16 vendor, device;
301 int i; 303 int i;
302 const char *name; 304 const char *name;
303 305
304 if (!raw_pci_ops) 306 if (!raw_pci_ops)
305 return 0; 307 return 0;
306 308
307 pci_mmcfg_config_num = 0; 309 pci_mmcfg_config_num = 0;
308 pci_mmcfg_config = NULL; 310 pci_mmcfg_config = NULL;
309 311
310 for (i = 0; i < ARRAY_SIZE(pci_mmcfg_probes); i++) { 312 for (i = 0; i < ARRAY_SIZE(pci_mmcfg_probes); i++) {
311 bus = pci_mmcfg_probes[i].bus; 313 bus = pci_mmcfg_probes[i].bus;
312 devfn = pci_mmcfg_probes[i].devfn; 314 devfn = pci_mmcfg_probes[i].devfn;
313 raw_pci_ops->read(0, bus, devfn, 0, 4, &l); 315 raw_pci_ops->read(0, bus, devfn, 0, 4, &l);
314 vendor = l & 0xffff; 316 vendor = l & 0xffff;
315 device = (l >> 16) & 0xffff; 317 device = (l >> 16) & 0xffff;
316 318
317 name = NULL; 319 name = NULL;
318 if (pci_mmcfg_probes[i].vendor == vendor && 320 if (pci_mmcfg_probes[i].vendor == vendor &&
319 pci_mmcfg_probes[i].device == device) 321 pci_mmcfg_probes[i].device == device)
320 name = pci_mmcfg_probes[i].probe(); 322 name = pci_mmcfg_probes[i].probe();
321 323
322 if (name) 324 if (name)
323 printk(KERN_INFO "PCI: Found %s with MMCONFIG support.\n", 325 printk(KERN_INFO "PCI: Found %s with MMCONFIG support.\n",
324 name); 326 name);
325 } 327 }
326 328
327 /* some end_bus_number is crazy, fix it */ 329 /* some end_bus_number is crazy, fix it */
328 pci_mmcfg_check_end_bus_number(); 330 pci_mmcfg_check_end_bus_number();
329 331
330 return pci_mmcfg_config_num != 0; 332 return pci_mmcfg_config_num != 0;
331 } 333 }
332 334
333 static void __init pci_mmcfg_insert_resources(void) 335 static void __init pci_mmcfg_insert_resources(void)
334 { 336 {
335 #define PCI_MMCFG_RESOURCE_NAME_LEN 24 337 #define PCI_MMCFG_RESOURCE_NAME_LEN 24
336 int i; 338 int i;
337 struct resource *res; 339 struct resource *res;
338 char *names; 340 char *names;
339 unsigned num_buses; 341 unsigned num_buses;
340 342
341 res = kcalloc(PCI_MMCFG_RESOURCE_NAME_LEN + sizeof(*res), 343 res = kcalloc(PCI_MMCFG_RESOURCE_NAME_LEN + sizeof(*res),
342 pci_mmcfg_config_num, GFP_KERNEL); 344 pci_mmcfg_config_num, GFP_KERNEL);
343 if (!res) { 345 if (!res) {
344 printk(KERN_ERR "PCI: Unable to allocate MMCONFIG resources\n"); 346 printk(KERN_ERR "PCI: Unable to allocate MMCONFIG resources\n");
345 return; 347 return;
346 } 348 }
347 349
348 names = (void *)&res[pci_mmcfg_config_num]; 350 names = (void *)&res[pci_mmcfg_config_num];
349 for (i = 0; i < pci_mmcfg_config_num; i++, res++) { 351 for (i = 0; i < pci_mmcfg_config_num; i++, res++) {
350 struct acpi_mcfg_allocation *cfg = &pci_mmcfg_config[i]; 352 struct acpi_mcfg_allocation *cfg = &pci_mmcfg_config[i];
351 num_buses = cfg->end_bus_number - cfg->start_bus_number + 1; 353 num_buses = cfg->end_bus_number - cfg->start_bus_number + 1;
352 res->name = names; 354 res->name = names;
353 snprintf(names, PCI_MMCFG_RESOURCE_NAME_LEN, 355 snprintf(names, PCI_MMCFG_RESOURCE_NAME_LEN,
354 "PCI MMCONFIG %u [%02x-%02x]", cfg->pci_segment, 356 "PCI MMCONFIG %u [%02x-%02x]", cfg->pci_segment,
355 cfg->start_bus_number, cfg->end_bus_number); 357 cfg->start_bus_number, cfg->end_bus_number);
356 res->start = cfg->address + (cfg->start_bus_number << 20); 358 res->start = cfg->address + (cfg->start_bus_number << 20);
357 res->end = res->start + (num_buses << 20) - 1; 359 res->end = res->start + (num_buses << 20) - 1;
358 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; 360 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
359 insert_resource(&iomem_resource, res); 361 insert_resource(&iomem_resource, res);
360 names += PCI_MMCFG_RESOURCE_NAME_LEN; 362 names += PCI_MMCFG_RESOURCE_NAME_LEN;
361 } 363 }
362 364
363 /* Mark that the resources have been inserted. */ 365 /* Mark that the resources have been inserted. */
364 pci_mmcfg_resources_inserted = 1; 366 pci_mmcfg_resources_inserted = 1;
365 } 367 }
366 368
367 static acpi_status __init check_mcfg_resource(struct acpi_resource *res, 369 static acpi_status __init check_mcfg_resource(struct acpi_resource *res,
368 void *data) 370 void *data)
369 { 371 {
370 struct resource *mcfg_res = data; 372 struct resource *mcfg_res = data;
371 struct acpi_resource_address64 address; 373 struct acpi_resource_address64 address;
372 acpi_status status; 374 acpi_status status;
373 375
374 if (res->type == ACPI_RESOURCE_TYPE_FIXED_MEMORY32) { 376 if (res->type == ACPI_RESOURCE_TYPE_FIXED_MEMORY32) {
375 struct acpi_resource_fixed_memory32 *fixmem32 = 377 struct acpi_resource_fixed_memory32 *fixmem32 =
376 &res->data.fixed_memory32; 378 &res->data.fixed_memory32;
377 if (!fixmem32) 379 if (!fixmem32)
378 return AE_OK; 380 return AE_OK;
379 if ((mcfg_res->start >= fixmem32->address) && 381 if ((mcfg_res->start >= fixmem32->address) &&
380 (mcfg_res->end < (fixmem32->address + 382 (mcfg_res->end < (fixmem32->address +
381 fixmem32->address_length))) { 383 fixmem32->address_length))) {
382 mcfg_res->flags = 1; 384 mcfg_res->flags = 1;
383 return AE_CTRL_TERMINATE; 385 return AE_CTRL_TERMINATE;
384 } 386 }
385 } 387 }
386 if ((res->type != ACPI_RESOURCE_TYPE_ADDRESS32) && 388 if ((res->type != ACPI_RESOURCE_TYPE_ADDRESS32) &&
387 (res->type != ACPI_RESOURCE_TYPE_ADDRESS64)) 389 (res->type != ACPI_RESOURCE_TYPE_ADDRESS64))
388 return AE_OK; 390 return AE_OK;
389 391
390 status = acpi_resource_to_address64(res, &address); 392 status = acpi_resource_to_address64(res, &address);
391 if (ACPI_FAILURE(status) || 393 if (ACPI_FAILURE(status) ||
392 (address.address_length <= 0) || 394 (address.address_length <= 0) ||
393 (address.resource_type != ACPI_MEMORY_RANGE)) 395 (address.resource_type != ACPI_MEMORY_RANGE))
394 return AE_OK; 396 return AE_OK;
395 397
396 if ((mcfg_res->start >= address.minimum) && 398 if ((mcfg_res->start >= address.minimum) &&
397 (mcfg_res->end < (address.minimum + address.address_length))) { 399 (mcfg_res->end < (address.minimum + address.address_length))) {
398 mcfg_res->flags = 1; 400 mcfg_res->flags = 1;
399 return AE_CTRL_TERMINATE; 401 return AE_CTRL_TERMINATE;
400 } 402 }
401 return AE_OK; 403 return AE_OK;
402 } 404 }
403 405
404 static acpi_status __init find_mboard_resource(acpi_handle handle, u32 lvl, 406 static acpi_status __init find_mboard_resource(acpi_handle handle, u32 lvl,
405 void *context, void **rv) 407 void *context, void **rv)
406 { 408 {
407 struct resource *mcfg_res = context; 409 struct resource *mcfg_res = context;
408 410
409 acpi_walk_resources(handle, METHOD_NAME__CRS, 411 acpi_walk_resources(handle, METHOD_NAME__CRS,
410 check_mcfg_resource, context); 412 check_mcfg_resource, context);
411 413
412 if (mcfg_res->flags) 414 if (mcfg_res->flags)
413 return AE_CTRL_TERMINATE; 415 return AE_CTRL_TERMINATE;
414 416
415 return AE_OK; 417 return AE_OK;
416 } 418 }
417 419
418 static int __init is_acpi_reserved(u64 start, u64 end, unsigned not_used) 420 static int __init is_acpi_reserved(u64 start, u64 end, unsigned not_used)
419 { 421 {
420 struct resource mcfg_res; 422 struct resource mcfg_res;
421 423
422 mcfg_res.start = start; 424 mcfg_res.start = start;
423 mcfg_res.end = end - 1; 425 mcfg_res.end = end - 1;
424 mcfg_res.flags = 0; 426 mcfg_res.flags = 0;
425 427
426 acpi_get_devices("PNP0C01", find_mboard_resource, &mcfg_res, NULL); 428 acpi_get_devices("PNP0C01", find_mboard_resource, &mcfg_res, NULL);
427 429
428 if (!mcfg_res.flags) 430 if (!mcfg_res.flags)
429 acpi_get_devices("PNP0C02", find_mboard_resource, &mcfg_res, 431 acpi_get_devices("PNP0C02", find_mboard_resource, &mcfg_res,
430 NULL); 432 NULL);
431 433
432 return mcfg_res.flags; 434 return mcfg_res.flags;
433 } 435 }
434 436
435 typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type); 437 typedef int (*check_reserved_t)(u64 start, u64 end, unsigned type);
436 438
437 static int __init is_mmconf_reserved(check_reserved_t is_reserved, 439 static int __init is_mmconf_reserved(check_reserved_t is_reserved,
438 u64 addr, u64 size, int i, 440 u64 addr, u64 size, int i,
439 typeof(pci_mmcfg_config[0]) *cfg, int with_e820) 441 typeof(pci_mmcfg_config[0]) *cfg, int with_e820)
440 { 442 {
441 u64 old_size = size; 443 u64 old_size = size;
442 int valid = 0; 444 int valid = 0;
443 445
444 while (!is_reserved(addr, addr + size, E820_RESERVED)) { 446 while (!is_reserved(addr, addr + size, E820_RESERVED)) {
445 size >>= 1; 447 size >>= 1;
446 if (size < (16UL<<20)) 448 if (size < (16UL<<20))
447 break; 449 break;
448 } 450 }
449 451
450 if (size >= (16UL<<20) || size == old_size) { 452 if (size >= (16UL<<20) || size == old_size) {
451 printk(KERN_NOTICE 453 printk(KERN_NOTICE
452 "PCI: MCFG area at %Lx reserved in %s\n", 454 "PCI: MCFG area at %Lx reserved in %s\n",
453 addr, with_e820?"E820":"ACPI motherboard resources"); 455 addr, with_e820?"E820":"ACPI motherboard resources");
454 valid = 1; 456 valid = 1;
455 457
456 if (old_size != size) { 458 if (old_size != size) {
457 /* update end_bus_number */ 459 /* update end_bus_number */
458 cfg->end_bus_number = cfg->start_bus_number + ((size>>20) - 1); 460 cfg->end_bus_number = cfg->start_bus_number + ((size>>20) - 1);
459 printk(KERN_NOTICE "PCI: updated MCFG configuration %d: base %lx " 461 printk(KERN_NOTICE "PCI: updated MCFG configuration %d: base %lx "
460 "segment %hu buses %u - %u\n", 462 "segment %hu buses %u - %u\n",
461 i, (unsigned long)cfg->address, cfg->pci_segment, 463 i, (unsigned long)cfg->address, cfg->pci_segment,
462 (unsigned int)cfg->start_bus_number, 464 (unsigned int)cfg->start_bus_number,
463 (unsigned int)cfg->end_bus_number); 465 (unsigned int)cfg->end_bus_number);
464 } 466 }
465 } 467 }
466 468
467 return valid; 469 return valid;
468 } 470 }
469 471
470 static void __init pci_mmcfg_reject_broken(int early) 472 static void __init pci_mmcfg_reject_broken(int early)
471 { 473 {
472 typeof(pci_mmcfg_config[0]) *cfg; 474 typeof(pci_mmcfg_config[0]) *cfg;
473 int i; 475 int i;
474 476
475 if ((pci_mmcfg_config_num == 0) || 477 if ((pci_mmcfg_config_num == 0) ||
476 (pci_mmcfg_config == NULL) || 478 (pci_mmcfg_config == NULL) ||
477 (pci_mmcfg_config[0].address == 0)) 479 (pci_mmcfg_config[0].address == 0))
478 return; 480 return;
479 481
480 for (i = 0; i < pci_mmcfg_config_num; i++) { 482 for (i = 0; i < pci_mmcfg_config_num; i++) {
481 int valid = 0; 483 int valid = 0;
482 u64 addr, size; 484 u64 addr, size;
483 485
484 cfg = &pci_mmcfg_config[i]; 486 cfg = &pci_mmcfg_config[i];
485 addr = cfg->start_bus_number; 487 addr = cfg->start_bus_number;
486 addr <<= 20; 488 addr <<= 20;
487 addr += cfg->address; 489 addr += cfg->address;
488 size = cfg->end_bus_number + 1 - cfg->start_bus_number; 490 size = cfg->end_bus_number + 1 - cfg->start_bus_number;
489 size <<= 20; 491 size <<= 20;
490 printk(KERN_NOTICE "PCI: MCFG configuration %d: base %lx " 492 printk(KERN_NOTICE "PCI: MCFG configuration %d: base %lx "
491 "segment %hu buses %u - %u\n", 493 "segment %hu buses %u - %u\n",
492 i, (unsigned long)cfg->address, cfg->pci_segment, 494 i, (unsigned long)cfg->address, cfg->pci_segment,
493 (unsigned int)cfg->start_bus_number, 495 (unsigned int)cfg->start_bus_number,
494 (unsigned int)cfg->end_bus_number); 496 (unsigned int)cfg->end_bus_number);
495 497
496 if (!early) 498 if (!early && !acpi_disabled)
497 valid = is_mmconf_reserved(is_acpi_reserved, addr, size, i, cfg, 0); 499 valid = is_mmconf_reserved(is_acpi_reserved, addr, size, i, cfg, 0);
498 500
499 if (valid) 501 if (valid)
500 continue; 502 continue;
501 503
502 if (!early) 504 if (!early)
503 printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %Lx is not" 505 printk(KERN_ERR "PCI: BIOS Bug: MCFG area at %Lx is not"
504 " reserved in ACPI motherboard resources\n", 506 " reserved in ACPI motherboard resources\n",
505 cfg->address); 507 cfg->address);
506 508
507 /* Don't try to do this check unless configuration 509 /* Don't try to do this check unless configuration
508 type 1 is available. how about type 2 ?*/ 510 type 1 is available. how about type 2 ?*/
509 if (raw_pci_ops) 511 if (raw_pci_ops)
510 valid = is_mmconf_reserved(e820_all_mapped, addr, size, i, cfg, 1); 512 valid = is_mmconf_reserved(e820_all_mapped, addr, size, i, cfg, 1);
511 513
512 if (!valid) 514 if (!valid)
513 goto reject; 515 goto reject;
514 } 516 }
515 517
516 return; 518 return;
517 519
518 reject: 520 reject:
519 printk(KERN_INFO "PCI: Not using MMCONFIG.\n"); 521 printk(KERN_INFO "PCI: Not using MMCONFIG.\n");
520 pci_mmcfg_arch_free(); 522 pci_mmcfg_arch_free();
521 kfree(pci_mmcfg_config); 523 kfree(pci_mmcfg_config);
522 pci_mmcfg_config = NULL; 524 pci_mmcfg_config = NULL;
523 pci_mmcfg_config_num = 0; 525 pci_mmcfg_config_num = 0;
524 } 526 }
525 527
526 static int __initdata known_bridge; 528 static int __initdata known_bridge;
527 529
528 static int acpi_mcfg_64bit_base_addr __initdata = FALSE; 530 static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
529 531
530 /* The physical address of the MMCONFIG aperture. Set from ACPI tables. */ 532 /* The physical address of the MMCONFIG aperture. Set from ACPI tables. */
531 struct acpi_mcfg_allocation *pci_mmcfg_config; 533 struct acpi_mcfg_allocation *pci_mmcfg_config;
532 int pci_mmcfg_config_num; 534 int pci_mmcfg_config_num;
533 535
534 static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg) 536 static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg)
535 { 537 {
536 if (!strcmp(mcfg->header.oem_id, "SGI")) 538 if (!strcmp(mcfg->header.oem_id, "SGI"))
537 acpi_mcfg_64bit_base_addr = TRUE; 539 acpi_mcfg_64bit_base_addr = TRUE;
538 540
539 return 0; 541 return 0;
540 } 542 }
541 543
542 static int __init pci_parse_mcfg(struct acpi_table_header *header) 544 static int __init pci_parse_mcfg(struct acpi_table_header *header)
543 { 545 {
544 struct acpi_table_mcfg *mcfg; 546 struct acpi_table_mcfg *mcfg;
545 unsigned long i; 547 unsigned long i;
546 int config_size; 548 int config_size;
547 549
548 if (!header) 550 if (!header)
549 return -EINVAL; 551 return -EINVAL;
550 552
551 mcfg = (struct acpi_table_mcfg *)header; 553 mcfg = (struct acpi_table_mcfg *)header;
552 554
553 /* how many config structures do we have */ 555 /* how many config structures do we have */
554 pci_mmcfg_config_num = 0; 556 pci_mmcfg_config_num = 0;
555 i = header->length - sizeof(struct acpi_table_mcfg); 557 i = header->length - sizeof(struct acpi_table_mcfg);
556 while (i >= sizeof(struct acpi_mcfg_allocation)) { 558 while (i >= sizeof(struct acpi_mcfg_allocation)) {
557 ++pci_mmcfg_config_num; 559 ++pci_mmcfg_config_num;
558 i -= sizeof(struct acpi_mcfg_allocation); 560 i -= sizeof(struct acpi_mcfg_allocation);
559 }; 561 };
560 if (pci_mmcfg_config_num == 0) { 562 if (pci_mmcfg_config_num == 0) {
561 printk(KERN_ERR PREFIX "MMCONFIG has no entries\n"); 563 printk(KERN_ERR PREFIX "MMCONFIG has no entries\n");
562 return -ENODEV; 564 return -ENODEV;
563 } 565 }
564 566
565 config_size = pci_mmcfg_config_num * sizeof(*pci_mmcfg_config); 567 config_size = pci_mmcfg_config_num * sizeof(*pci_mmcfg_config);
566 pci_mmcfg_config = kmalloc(config_size, GFP_KERNEL); 568 pci_mmcfg_config = kmalloc(config_size, GFP_KERNEL);
567 if (!pci_mmcfg_config) { 569 if (!pci_mmcfg_config) {
568 printk(KERN_WARNING PREFIX 570 printk(KERN_WARNING PREFIX
569 "No memory for MCFG config tables\n"); 571 "No memory for MCFG config tables\n");
570 return -ENOMEM; 572 return -ENOMEM;
571 } 573 }
572 574
573 memcpy(pci_mmcfg_config, &mcfg[1], config_size); 575 memcpy(pci_mmcfg_config, &mcfg[1], config_size);
574 576
575 acpi_mcfg_oem_check(mcfg); 577 acpi_mcfg_oem_check(mcfg);
576 578
577 for (i = 0; i < pci_mmcfg_config_num; ++i) { 579 for (i = 0; i < pci_mmcfg_config_num; ++i) {
578 if ((pci_mmcfg_config[i].address > 0xFFFFFFFF) && 580 if ((pci_mmcfg_config[i].address > 0xFFFFFFFF) &&
579 !acpi_mcfg_64bit_base_addr) { 581 !acpi_mcfg_64bit_base_addr) {
580 printk(KERN_ERR PREFIX 582 printk(KERN_ERR PREFIX
581 "MMCONFIG not in low 4GB of memory\n"); 583 "MMCONFIG not in low 4GB of memory\n");
582 kfree(pci_mmcfg_config); 584 kfree(pci_mmcfg_config);
583 pci_mmcfg_config_num = 0; 585 pci_mmcfg_config_num = 0;
584 return -ENODEV; 586 return -ENODEV;
585 } 587 }
586 } 588 }
587 589
588 return 0; 590 return 0;
589 } 591 }
590 592
591 static void __init __pci_mmcfg_init(int early) 593 static void __init __pci_mmcfg_init(int early)
592 { 594 {
593 /* MMCONFIG disabled */ 595 /* MMCONFIG disabled */
594 if ((pci_probe & PCI_PROBE_MMCONF) == 0) 596 if ((pci_probe & PCI_PROBE_MMCONF) == 0)
595 return; 597 return;
596 598
597 /* MMCONFIG already enabled */ 599 /* MMCONFIG already enabled */
598 if (!early && !(pci_probe & PCI_PROBE_MASK & ~PCI_PROBE_MMCONF)) 600 if (!early && !(pci_probe & PCI_PROBE_MASK & ~PCI_PROBE_MMCONF))
599 return; 601 return;
600 602
601 /* for late to exit */ 603 /* for late to exit */
602 if (known_bridge) 604 if (known_bridge)
603 return; 605 return;
604 606
605 if (early) { 607 if (early) {
606 if (pci_mmcfg_check_hostbridge()) 608 if (pci_mmcfg_check_hostbridge())
607 known_bridge = 1; 609 known_bridge = 1;
608 } 610 }
609 611
610 if (!known_bridge) 612 if (!known_bridge)
611 acpi_table_parse(ACPI_SIG_MCFG, pci_parse_mcfg); 613 acpi_sfi_table_parse(ACPI_SIG_MCFG, pci_parse_mcfg);
612 614
613 pci_mmcfg_reject_broken(early); 615 pci_mmcfg_reject_broken(early);
614 616
615 if ((pci_mmcfg_config_num == 0) || 617 if ((pci_mmcfg_config_num == 0) ||
616 (pci_mmcfg_config == NULL) || 618 (pci_mmcfg_config == NULL) ||
617 (pci_mmcfg_config[0].address == 0)) 619 (pci_mmcfg_config[0].address == 0))
618 return; 620 return;
619 621
620 if (pci_mmcfg_arch_init()) 622 if (pci_mmcfg_arch_init())
621 pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF; 623 pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF;
622 else { 624 else {
623 /* 625 /*
624 * Signal not to attempt to insert mmcfg resources because 626 * Signal not to attempt to insert mmcfg resources because
625 * the architecture mmcfg setup could not initialize. 627 * the architecture mmcfg setup could not initialize.
626 */ 628 */
627 pci_mmcfg_resources_inserted = 1; 629 pci_mmcfg_resources_inserted = 1;
628 } 630 }
629 } 631 }
630 632
631 void __init pci_mmcfg_early_init(void) 633 void __init pci_mmcfg_early_init(void)
632 { 634 {
633 __pci_mmcfg_init(1); 635 __pci_mmcfg_init(1);
634 } 636 }
635 637
636 void __init pci_mmcfg_late_init(void) 638 void __init pci_mmcfg_late_init(void)
637 { 639 {
638 __pci_mmcfg_init(0); 640 __pci_mmcfg_init(0);
639 } 641 }
640 642
641 static int __init pci_mmcfg_late_insert_resources(void) 643 static int __init pci_mmcfg_late_insert_resources(void)
642 { 644 {
643 /* 645 /*
644 * If resources are already inserted or we are not using MMCONFIG, 646 * If resources are already inserted or we are not using MMCONFIG,
645 * don't insert the resources. 647 * don't insert the resources.
646 */ 648 */
647 if ((pci_mmcfg_resources_inserted == 1) || 649 if ((pci_mmcfg_resources_inserted == 1) ||
648 (pci_probe & PCI_PROBE_MMCONF) == 0 || 650 (pci_probe & PCI_PROBE_MMCONF) == 0 ||
649 (pci_mmcfg_config_num == 0) || 651 (pci_mmcfg_config_num == 0) ||
650 (pci_mmcfg_config == NULL) || 652 (pci_mmcfg_config == NULL) ||
651 (pci_mmcfg_config[0].address == 0)) 653 (pci_mmcfg_config[0].address == 0))
652 return 1; 654 return 1;
653 655
654 /* 656 /*
655 * Attempt to insert the mmcfg resources but not with the busy flag 657 * Attempt to insert the mmcfg resources but not with the busy flag
656 * marked so it won't cause request errors when __request_region is 658 * marked so it won't cause request errors when __request_region is
657 * called. 659 * called.
658 */ 660 */
659 pci_mmcfg_insert_resources(); 661 pci_mmcfg_insert_resources();
660 662
661 return 0; 663 return 0;
662 } 664 }
663 665
664 /* 666 /*
665 * Perform MMCONFIG resource insertion after PCI initialization to allow for 667 * Perform MMCONFIG resource insertion after PCI initialization to allow for
666 * misprogrammed MCFG tables that state larger sizes but actually conflict 668 * misprogrammed MCFG tables that state larger sizes but actually conflict
667 * with other system resources. 669 * with other system resources.
668 */ 670 */
669 late_initcall(pci_mmcfg_late_insert_resources); 671 late_initcall(pci_mmcfg_late_insert_resources);
670 672
arch/x86/pci/mmconfig_32.c
1 /* 1 /*
2 * Copyright (C) 2004 Matthew Wilcox <matthew@wil.cx> 2 * Copyright (C) 2004 Matthew Wilcox <matthew@wil.cx>
3 * Copyright (C) 2004 Intel Corp. 3 * Copyright (C) 2004 Intel Corp.
4 * 4 *
5 * This code is released under the GNU General Public License version 2. 5 * This code is released under the GNU General Public License version 2.
6 */ 6 */
7 7
8 /* 8 /*
9 * mmconfig.c - Low-level direct PCI config space access via MMCONFIG 9 * mmconfig.c - Low-level direct PCI config space access via MMCONFIG
10 */ 10 */
11 11
12 #include <linux/pci.h> 12 #include <linux/pci.h>
13 #include <linux/init.h> 13 #include <linux/init.h>
14 #include <linux/acpi.h>
15 #include <asm/e820.h> 14 #include <asm/e820.h>
16 #include <asm/pci_x86.h> 15 #include <asm/pci_x86.h>
16 #include <acpi/acpi.h>
17 17
18 /* Assume systems with more busses have correct MCFG */ 18 /* Assume systems with more busses have correct MCFG */
19 #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG)) 19 #define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
20 20
21 /* The base address of the last MMCONFIG device accessed */ 21 /* The base address of the last MMCONFIG device accessed */
22 static u32 mmcfg_last_accessed_device; 22 static u32 mmcfg_last_accessed_device;
23 static int mmcfg_last_accessed_cpu; 23 static int mmcfg_last_accessed_cpu;
24 24
25 /* 25 /*
26 * Functions for accessing PCI configuration space with MMCONFIG accesses 26 * Functions for accessing PCI configuration space with MMCONFIG accesses
27 */ 27 */
28 static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn) 28 static u32 get_base_addr(unsigned int seg, int bus, unsigned devfn)
29 { 29 {
30 struct acpi_mcfg_allocation *cfg; 30 struct acpi_mcfg_allocation *cfg;
31 int cfg_num; 31 int cfg_num;
32 32
33 for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) { 33 for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) {
34 cfg = &pci_mmcfg_config[cfg_num]; 34 cfg = &pci_mmcfg_config[cfg_num];
35 if (cfg->pci_segment == seg && 35 if (cfg->pci_segment == seg &&
36 (cfg->start_bus_number <= bus) && 36 (cfg->start_bus_number <= bus) &&
37 (cfg->end_bus_number >= bus)) 37 (cfg->end_bus_number >= bus))
38 return cfg->address; 38 return cfg->address;
39 } 39 }
40 40
41 /* Fall back to type 0 */ 41 /* Fall back to type 0 */
42 return 0; 42 return 0;
43 } 43 }
44 44
45 /* 45 /*
46 * This is always called under pci_config_lock 46 * This is always called under pci_config_lock
47 */ 47 */
48 static void pci_exp_set_dev_base(unsigned int base, int bus, int devfn) 48 static void pci_exp_set_dev_base(unsigned int base, int bus, int devfn)
49 { 49 {
50 u32 dev_base = base | (bus << 20) | (devfn << 12); 50 u32 dev_base = base | (bus << 20) | (devfn << 12);
51 int cpu = smp_processor_id(); 51 int cpu = smp_processor_id();
52 if (dev_base != mmcfg_last_accessed_device || 52 if (dev_base != mmcfg_last_accessed_device ||
53 cpu != mmcfg_last_accessed_cpu) { 53 cpu != mmcfg_last_accessed_cpu) {
54 mmcfg_last_accessed_device = dev_base; 54 mmcfg_last_accessed_device = dev_base;
55 mmcfg_last_accessed_cpu = cpu; 55 mmcfg_last_accessed_cpu = cpu;
56 set_fixmap_nocache(FIX_PCIE_MCFG, dev_base); 56 set_fixmap_nocache(FIX_PCIE_MCFG, dev_base);
57 } 57 }
58 } 58 }
59 59
60 static int pci_mmcfg_read(unsigned int seg, unsigned int bus, 60 static int pci_mmcfg_read(unsigned int seg, unsigned int bus,
61 unsigned int devfn, int reg, int len, u32 *value) 61 unsigned int devfn, int reg, int len, u32 *value)
62 { 62 {
63 unsigned long flags; 63 unsigned long flags;
64 u32 base; 64 u32 base;
65 65
66 if ((bus > 255) || (devfn > 255) || (reg > 4095)) { 66 if ((bus > 255) || (devfn > 255) || (reg > 4095)) {
67 err: *value = -1; 67 err: *value = -1;
68 return -EINVAL; 68 return -EINVAL;
69 } 69 }
70 70
71 base = get_base_addr(seg, bus, devfn); 71 base = get_base_addr(seg, bus, devfn);
72 if (!base) 72 if (!base)
73 goto err; 73 goto err;
74 74
75 spin_lock_irqsave(&pci_config_lock, flags); 75 spin_lock_irqsave(&pci_config_lock, flags);
76 76
77 pci_exp_set_dev_base(base, bus, devfn); 77 pci_exp_set_dev_base(base, bus, devfn);
78 78
79 switch (len) { 79 switch (len) {
80 case 1: 80 case 1:
81 *value = mmio_config_readb(mmcfg_virt_addr + reg); 81 *value = mmio_config_readb(mmcfg_virt_addr + reg);
82 break; 82 break;
83 case 2: 83 case 2:
84 *value = mmio_config_readw(mmcfg_virt_addr + reg); 84 *value = mmio_config_readw(mmcfg_virt_addr + reg);
85 break; 85 break;
86 case 4: 86 case 4:
87 *value = mmio_config_readl(mmcfg_virt_addr + reg); 87 *value = mmio_config_readl(mmcfg_virt_addr + reg);
88 break; 88 break;
89 } 89 }
90 spin_unlock_irqrestore(&pci_config_lock, flags); 90 spin_unlock_irqrestore(&pci_config_lock, flags);
91 91
92 return 0; 92 return 0;
93 } 93 }
94 94
95 static int pci_mmcfg_write(unsigned int seg, unsigned int bus, 95 static int pci_mmcfg_write(unsigned int seg, unsigned int bus,
96 unsigned int devfn, int reg, int len, u32 value) 96 unsigned int devfn, int reg, int len, u32 value)
97 { 97 {
98 unsigned long flags; 98 unsigned long flags;
99 u32 base; 99 u32 base;
100 100
101 if ((bus > 255) || (devfn > 255) || (reg > 4095)) 101 if ((bus > 255) || (devfn > 255) || (reg > 4095))
102 return -EINVAL; 102 return -EINVAL;
103 103
104 base = get_base_addr(seg, bus, devfn); 104 base = get_base_addr(seg, bus, devfn);
105 if (!base) 105 if (!base)
106 return -EINVAL; 106 return -EINVAL;
107 107
108 spin_lock_irqsave(&pci_config_lock, flags); 108 spin_lock_irqsave(&pci_config_lock, flags);
109 109
110 pci_exp_set_dev_base(base, bus, devfn); 110 pci_exp_set_dev_base(base, bus, devfn);
111 111
112 switch (len) { 112 switch (len) {
113 case 1: 113 case 1:
114 mmio_config_writeb(mmcfg_virt_addr + reg, value); 114 mmio_config_writeb(mmcfg_virt_addr + reg, value);
115 break; 115 break;
116 case 2: 116 case 2:
117 mmio_config_writew(mmcfg_virt_addr + reg, value); 117 mmio_config_writew(mmcfg_virt_addr + reg, value);
118 break; 118 break;
119 case 4: 119 case 4:
120 mmio_config_writel(mmcfg_virt_addr + reg, value); 120 mmio_config_writel(mmcfg_virt_addr + reg, value);
121 break; 121 break;
122 } 122 }
123 spin_unlock_irqrestore(&pci_config_lock, flags); 123 spin_unlock_irqrestore(&pci_config_lock, flags);
124 124
125 return 0; 125 return 0;
126 } 126 }
127 127
128 static struct pci_raw_ops pci_mmcfg = { 128 static struct pci_raw_ops pci_mmcfg = {
129 .read = pci_mmcfg_read, 129 .read = pci_mmcfg_read,
130 .write = pci_mmcfg_write, 130 .write = pci_mmcfg_write,
131 }; 131 };
132 132
133 int __init pci_mmcfg_arch_init(void) 133 int __init pci_mmcfg_arch_init(void)
134 { 134 {
135 printk(KERN_INFO "PCI: Using MMCONFIG for extended config space\n"); 135 printk(KERN_INFO "PCI: Using MMCONFIG for extended config space\n");
136 raw_pci_ext_ops = &pci_mmcfg; 136 raw_pci_ext_ops = &pci_mmcfg;
137 return 1; 137 return 1;
138 } 138 }
139 139
140 void __init pci_mmcfg_arch_free(void) 140 void __init pci_mmcfg_arch_free(void)
141 { 141 {
142 } 142 }
1 # 1 #
2 # Makefile for the Linux kernel device drivers. 2 # Makefile for the Linux kernel device drivers.
3 # 3 #
4 # 15 Sep 2000, Christoph Hellwig <hch@infradead.org> 4 # 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
5 # Rewritten to use lists instead of if-statements. 5 # Rewritten to use lists instead of if-statements.
6 # 6 #
7 7
8 obj-y += gpio/ 8 obj-y += gpio/
9 obj-$(CONFIG_PCI) += pci/ 9 obj-$(CONFIG_PCI) += pci/
10 obj-$(CONFIG_PARISC) += parisc/ 10 obj-$(CONFIG_PARISC) += parisc/
11 obj-$(CONFIG_RAPIDIO) += rapidio/ 11 obj-$(CONFIG_RAPIDIO) += rapidio/
12 obj-y += video/ 12 obj-y += video/
13 obj-$(CONFIG_ACPI) += acpi/ 13 obj-$(CONFIG_ACPI) += acpi/
14 obj-$(CONFIG_SFI) += sfi/
14 # PnP must come after ACPI since it will eventually need to check if acpi 15 # PnP must come after ACPI since it will eventually need to check if acpi
15 # was used and do nothing if so 16 # was used and do nothing if so
16 obj-$(CONFIG_PNP) += pnp/ 17 obj-$(CONFIG_PNP) += pnp/
17 obj-$(CONFIG_ARM_AMBA) += amba/ 18 obj-$(CONFIG_ARM_AMBA) += amba/
18 19
19 obj-$(CONFIG_XEN) += xen/ 20 obj-$(CONFIG_XEN) += xen/
20 21
21 # regulators early, since some subsystems rely on them to initialize 22 # regulators early, since some subsystems rely on them to initialize
22 obj-$(CONFIG_REGULATOR) += regulator/ 23 obj-$(CONFIG_REGULATOR) += regulator/
23 24
24 # char/ comes before serial/ etc so that the VT console is the boot-time 25 # char/ comes before serial/ etc so that the VT console is the boot-time
25 # default. 26 # default.
26 obj-y += char/ 27 obj-y += char/
27 28
28 # gpu/ comes after char for AGP vs DRM startup 29 # gpu/ comes after char for AGP vs DRM startup
29 obj-y += gpu/ 30 obj-y += gpu/
30 31
31 obj-$(CONFIG_CONNECTOR) += connector/ 32 obj-$(CONFIG_CONNECTOR) += connector/
32 33
33 # i810fb and intelfb depend on char/agp/ 34 # i810fb and intelfb depend on char/agp/
34 obj-$(CONFIG_FB_I810) += video/i810/ 35 obj-$(CONFIG_FB_I810) += video/i810/
35 obj-$(CONFIG_FB_INTEL) += video/intelfb/ 36 obj-$(CONFIG_FB_INTEL) += video/intelfb/
36 37
37 obj-y += serial/ 38 obj-y += serial/
38 obj-$(CONFIG_PARPORT) += parport/ 39 obj-$(CONFIG_PARPORT) += parport/
39 obj-y += base/ block/ misc/ mfd/ 40 obj-y += base/ block/ misc/ mfd/
40 obj-$(CONFIG_NUBUS) += nubus/ 41 obj-$(CONFIG_NUBUS) += nubus/
41 obj-y += macintosh/ 42 obj-y += macintosh/
42 obj-$(CONFIG_IDE) += ide/ 43 obj-$(CONFIG_IDE) += ide/
43 obj-$(CONFIG_SCSI) += scsi/ 44 obj-$(CONFIG_SCSI) += scsi/
44 obj-$(CONFIG_ATA) += ata/ 45 obj-$(CONFIG_ATA) += ata/
45 obj-y += net/ 46 obj-y += net/
46 obj-$(CONFIG_ATM) += atm/ 47 obj-$(CONFIG_ATM) += atm/
47 obj-$(CONFIG_FUSION) += message/ 48 obj-$(CONFIG_FUSION) += message/
48 obj-$(CONFIG_FIREWIRE) += firewire/ 49 obj-$(CONFIG_FIREWIRE) += firewire/
49 obj-y += ieee1394/ 50 obj-y += ieee1394/
50 obj-$(CONFIG_UIO) += uio/ 51 obj-$(CONFIG_UIO) += uio/
51 obj-y += cdrom/ 52 obj-y += cdrom/
52 obj-y += auxdisplay/ 53 obj-y += auxdisplay/
53 obj-$(CONFIG_MTD) += mtd/ 54 obj-$(CONFIG_MTD) += mtd/
54 obj-$(CONFIG_SPI) += spi/ 55 obj-$(CONFIG_SPI) += spi/
55 obj-$(CONFIG_PCCARD) += pcmcia/ 56 obj-$(CONFIG_PCCARD) += pcmcia/
56 obj-$(CONFIG_DIO) += dio/ 57 obj-$(CONFIG_DIO) += dio/
57 obj-$(CONFIG_SBUS) += sbus/ 58 obj-$(CONFIG_SBUS) += sbus/
58 obj-$(CONFIG_ZORRO) += zorro/ 59 obj-$(CONFIG_ZORRO) += zorro/
59 obj-$(CONFIG_MAC) += macintosh/ 60 obj-$(CONFIG_MAC) += macintosh/
60 obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/ 61 obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
61 obj-$(CONFIG_PARIDE) += block/paride/ 62 obj-$(CONFIG_PARIDE) += block/paride/
62 obj-$(CONFIG_TC) += tc/ 63 obj-$(CONFIG_TC) += tc/
63 obj-$(CONFIG_UWB) += uwb/ 64 obj-$(CONFIG_UWB) += uwb/
64 obj-$(CONFIG_USB_OTG_UTILS) += usb/otg/ 65 obj-$(CONFIG_USB_OTG_UTILS) += usb/otg/
65 obj-$(CONFIG_USB) += usb/ 66 obj-$(CONFIG_USB) += usb/
66 obj-$(CONFIG_USB_MUSB_HDRC) += usb/musb/ 67 obj-$(CONFIG_USB_MUSB_HDRC) += usb/musb/
67 obj-$(CONFIG_PCI) += usb/ 68 obj-$(CONFIG_PCI) += usb/
68 obj-$(CONFIG_USB_GADGET) += usb/gadget/ 69 obj-$(CONFIG_USB_GADGET) += usb/gadget/
69 obj-$(CONFIG_SERIO) += input/serio/ 70 obj-$(CONFIG_SERIO) += input/serio/
70 obj-$(CONFIG_GAMEPORT) += input/gameport/ 71 obj-$(CONFIG_GAMEPORT) += input/gameport/
71 obj-$(CONFIG_INPUT) += input/ 72 obj-$(CONFIG_INPUT) += input/
72 obj-$(CONFIG_I2O) += message/ 73 obj-$(CONFIG_I2O) += message/
73 obj-$(CONFIG_RTC_LIB) += rtc/ 74 obj-$(CONFIG_RTC_LIB) += rtc/
74 obj-y += i2c/ media/ 75 obj-y += i2c/ media/
75 obj-$(CONFIG_PPS) += pps/ 76 obj-$(CONFIG_PPS) += pps/
76 obj-$(CONFIG_W1) += w1/ 77 obj-$(CONFIG_W1) += w1/
77 obj-$(CONFIG_POWER_SUPPLY) += power/ 78 obj-$(CONFIG_POWER_SUPPLY) += power/
78 obj-$(CONFIG_HWMON) += hwmon/ 79 obj-$(CONFIG_HWMON) += hwmon/
79 obj-$(CONFIG_THERMAL) += thermal/ 80 obj-$(CONFIG_THERMAL) += thermal/
80 obj-$(CONFIG_WATCHDOG) += watchdog/ 81 obj-$(CONFIG_WATCHDOG) += watchdog/
81 obj-$(CONFIG_PHONE) += telephony/ 82 obj-$(CONFIG_PHONE) += telephony/
82 obj-$(CONFIG_MD) += md/ 83 obj-$(CONFIG_MD) += md/
83 obj-$(CONFIG_BT) += bluetooth/ 84 obj-$(CONFIG_BT) += bluetooth/
84 obj-$(CONFIG_ACCESSIBILITY) += accessibility/ 85 obj-$(CONFIG_ACCESSIBILITY) += accessibility/
85 obj-$(CONFIG_ISDN) += isdn/ 86 obj-$(CONFIG_ISDN) += isdn/
86 obj-$(CONFIG_EDAC) += edac/ 87 obj-$(CONFIG_EDAC) += edac/
87 obj-$(CONFIG_MCA) += mca/ 88 obj-$(CONFIG_MCA) += mca/
88 obj-$(CONFIG_EISA) += eisa/ 89 obj-$(CONFIG_EISA) += eisa/
89 obj-y += lguest/ 90 obj-y += lguest/
90 obj-$(CONFIG_CPU_FREQ) += cpufreq/ 91 obj-$(CONFIG_CPU_FREQ) += cpufreq/
91 obj-$(CONFIG_CPU_IDLE) += cpuidle/ 92 obj-$(CONFIG_CPU_IDLE) += cpuidle/
92 obj-y += idle/ 93 obj-y += idle/
93 obj-$(CONFIG_MMC) += mmc/ 94 obj-$(CONFIG_MMC) += mmc/
94 obj-$(CONFIG_MEMSTICK) += memstick/ 95 obj-$(CONFIG_MEMSTICK) += memstick/
95 obj-$(CONFIG_NEW_LEDS) += leds/ 96 obj-$(CONFIG_NEW_LEDS) += leds/
96 obj-$(CONFIG_INFINIBAND) += infiniband/ 97 obj-$(CONFIG_INFINIBAND) += infiniband/
97 obj-$(CONFIG_SGI_SN) += sn/ 98 obj-$(CONFIG_SGI_SN) += sn/
98 obj-y += firmware/ 99 obj-y += firmware/
99 obj-$(CONFIG_CRYPTO) += crypto/ 100 obj-$(CONFIG_CRYPTO) += crypto/
100 obj-$(CONFIG_SUPERH) += sh/ 101 obj-$(CONFIG_SUPERH) += sh/
101 obj-$(CONFIG_GENERIC_TIME) += clocksource/ 102 obj-$(CONFIG_GENERIC_TIME) += clocksource/
102 obj-$(CONFIG_DMA_ENGINE) += dma/ 103 obj-$(CONFIG_DMA_ENGINE) += dma/
103 obj-$(CONFIG_DCA) += dca/ 104 obj-$(CONFIG_DCA) += dca/
104 obj-$(CONFIG_HID) += hid/ 105 obj-$(CONFIG_HID) += hid/
105 obj-$(CONFIG_PPC_PS3) += ps3/ 106 obj-$(CONFIG_PPC_PS3) += ps3/
106 obj-$(CONFIG_OF) += of/ 107 obj-$(CONFIG_OF) += of/
107 obj-$(CONFIG_SSB) += ssb/ 108 obj-$(CONFIG_SSB) += ssb/
108 obj-$(CONFIG_VIRTIO) += virtio/ 109 obj-$(CONFIG_VIRTIO) += virtio/
109 obj-$(CONFIG_VLYNQ) += vlynq/ 110 obj-$(CONFIG_VLYNQ) += vlynq/
110 obj-$(CONFIG_STAGING) += staging/ 111 obj-$(CONFIG_STAGING) += staging/
111 obj-y += platform/ 112 obj-y += platform/
112 obj-y += ieee802154/ 113 obj-y += ieee802154/
113 114
File was created 1 #
2 # SFI Configuration
3 #
4
5 menuconfig SFI
6 bool "SFI (Simple Firmware Interface) Support"
7 ---help---
8 The Simple Firmware Interface (SFI) provides a lightweight method
9 for platform firmware to pass information to the operating system
10 via static tables in memory. Kernel SFI support is required to
11 boot on SFI-only platforms. Currently, all SFI-only platforms are
12 based on the 2nd generation Intel Atom processor platform,
13 code-named Moorestown.
14
15 For more information, see http://simplefirmware.org
16
17 Say 'Y' here to enable the kernel to boot on SFI-only platforms.
18
drivers/sfi/Makefile
File was created 1 obj-y += sfi_acpi.o
2 obj-y += sfi_core.o
3
4
drivers/sfi/sfi_acpi.c
File was created 1 /* sfi_acpi.c Simple Firmware Interface - ACPI extensions */
2
3 /*
4
5 This file is provided under a dual BSD/GPLv2 license. When using or
6 redistributing this file, you may do so under either license.
7
8 GPL LICENSE SUMMARY
9
10 Copyright(c) 2009 Intel Corporation. All rights reserved.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of version 2 of the GNU General Public License as
14 published by the Free Software Foundation.
15
16 This program is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
24 The full GNU General Public License is included in this distribution
25 in the file called LICENSE.GPL.
26
27 BSD LICENSE
28
29 Copyright(c) 2009 Intel Corporation. All rights reserved.
30
31 Redistribution and use in source and binary forms, with or without
32 modification, are permitted provided that the following conditions
33 are met:
34
35 * Redistributions of source code must retain the above copyright
36 notice, this list of conditions and the following disclaimer.
37 * Redistributions in binary form must reproduce the above copyright
38 notice, this list of conditions and the following disclaimer in
39 the documentation and/or other materials provided with the
40 distribution.
41 * Neither the name of Intel Corporation nor the names of its
42 contributors may be used to endorse or promote products derived
43 from this software without specific prior written permission.
44
45 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
46 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
47 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
48 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
49 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56
57 */
58
59 #define KMSG_COMPONENT "SFI"
60 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
61
62 #include <linux/kernel.h>
63 #include <acpi/acpi.h>
64
65 #include <linux/sfi.h>
66 #include "sfi_core.h"
67
68 /*
69 * SFI can access ACPI-defined tables via an optional ACPI XSDT.
70 *
71 * This allows re-use, and avoids re-definition, of standard tables.
72 * For example, the "MCFG" table is defined by PCI, reserved by ACPI,
73 * and is expected to be present many SFI-only systems.
74 */
75
76 static struct acpi_table_xsdt *xsdt_va __read_mostly;
77
78 #define XSDT_GET_NUM_ENTRIES(ptable, entry_type) \
79 ((ptable->header.length - sizeof(struct acpi_table_header)) / \
80 (sizeof(entry_type)))
81
82 static inline struct sfi_table_header *acpi_to_sfi_th(
83 struct acpi_table_header *th)
84 {
85 return (struct sfi_table_header *)th;
86 }
87
88 static inline struct acpi_table_header *sfi_to_acpi_th(
89 struct sfi_table_header *th)
90 {
91 return (struct acpi_table_header *)th;
92 }
93
94 /*
95 * sfi_acpi_parse_xsdt()
96 *
97 * Parse the ACPI XSDT for later access by sfi_acpi_table_parse().
98 */
99 static int __init sfi_acpi_parse_xsdt(struct sfi_table_header *th)
100 {
101 struct sfi_table_key key = SFI_ANY_KEY;
102 int tbl_cnt, i;
103 void *ret;
104
105 xsdt_va = (struct acpi_table_xsdt *)th;
106 tbl_cnt = XSDT_GET_NUM_ENTRIES(xsdt_va, u64);
107 for (i = 0; i < tbl_cnt; i++) {
108 ret = sfi_check_table(xsdt_va->table_offset_entry[i], &key);
109 if (IS_ERR(ret)) {
110 disable_sfi();
111 return -1;
112 }
113 }
114
115 return 0;
116 }
117
118 int __init sfi_acpi_init(void)
119 {
120 struct sfi_table_key xsdt_key = { .sig = SFI_SIG_XSDT };
121
122 sfi_table_parse(SFI_SIG_XSDT, NULL, NULL, sfi_acpi_parse_xsdt);
123
124 /* Only call the get_table to keep the table mapped */
125 xsdt_va = (struct acpi_table_xsdt *)sfi_get_table(&xsdt_key);
126 return 0;
127 }
128
129 static struct acpi_table_header *sfi_acpi_get_table(struct sfi_table_key *key)
130 {
131 u32 tbl_cnt, i;
132 void *ret;
133
134 tbl_cnt = XSDT_GET_NUM_ENTRIES(xsdt_va, u64);
135 for (i = 0; i < tbl_cnt; i++) {
136 ret = sfi_check_table(xsdt_va->table_offset_entry[i], key);
137 if (!IS_ERR(ret) && ret)
138 return sfi_to_acpi_th(ret);
139 }
140
141 return NULL;
142 }
143
144 static void sfi_acpi_put_table(struct acpi_table_header *table)
145 {
146 sfi_put_table(acpi_to_sfi_th(table));
147 }
148
149 /*
150 * sfi_acpi_table_parse()
151 *
152 * Find specified table in XSDT, run handler on it and return its return value
153 */
154 int sfi_acpi_table_parse(char *signature, char *oem_id, char *oem_table_id,
155 int(*handler)(struct acpi_table_header *))
156 {
157 struct acpi_table_header *table = NULL;
158 struct sfi_table_key key;
159 int ret = 0;
160
161 if (sfi_disabled)
162 return -1;
163
164 key.sig = signature;
165 key.oem_id = oem_id;
166 key.oem_table_id = oem_table_id;
167
168 table = sfi_acpi_get_table(&key);
169 if (!table)
170 return -EINVAL;
171
172 ret = handler(table);
173 sfi_acpi_put_table(table);
174 return ret;
175 }
176
drivers/sfi/sfi_core.c
File was created 1 /* sfi_core.c Simple Firmware Interface - core internals */
2
3 /*
4
5 This file is provided under a dual BSD/GPLv2 license. When using or
6 redistributing this file, you may do so under either license.
7
8 GPL LICENSE SUMMARY
9
10 Copyright(c) 2009 Intel Corporation. All rights reserved.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of version 2 of the GNU General Public License as
14 published by the Free Software Foundation.
15
16 This program is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
24 The full GNU General Public License is included in this distribution
25 in the file called LICENSE.GPL.
26
27 BSD LICENSE
28
29 Copyright(c) 2009 Intel Corporation. All rights reserved.
30
31 Redistribution and use in source and binary forms, with or without
32 modification, are permitted provided that the following conditions
33 are met:
34
35 * Redistributions of source code must retain the above copyright
36 notice, this list of conditions and the following disclaimer.
37 * Redistributions in binary form must reproduce the above copyright
38 notice, this list of conditions and the following disclaimer in
39 the documentation and/or other materials provided with the
40 distribution.
41 * Neither the name of Intel Corporation nor the names of its
42 contributors may be used to endorse or promote products derived
43 from this software without specific prior written permission.
44
45 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
46 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
47 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
48 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
49 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56
57 */
58
59 #define KMSG_COMPONENT "SFI"
60 #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
61
62 #include <linux/bootmem.h>
63 #include <linux/kernel.h>
64 #include <linux/module.h>
65 #include <linux/errno.h>
66 #include <linux/types.h>
67 #include <linux/acpi.h>
68 #include <linux/init.h>
69 #include <linux/sfi.h>
70
71 #include "sfi_core.h"
72
73 #define ON_SAME_PAGE(addr1, addr2) \
74 (((unsigned long)(addr1) & PAGE_MASK) == \
75 ((unsigned long)(addr2) & PAGE_MASK))
76 #define TABLE_ON_PAGE(page, table, size) (ON_SAME_PAGE(page, table) && \
77 ON_SAME_PAGE(page, table + size))
78
79 int sfi_disabled __read_mostly;
80 EXPORT_SYMBOL(sfi_disabled);
81
82 static u64 syst_pa __read_mostly;
83 static struct sfi_table_simple *syst_va __read_mostly;
84
85 /*
86 * FW creates and saves the SFI tables in memory. When these tables get
87 * used, they may need to be mapped to virtual address space, and the mapping
88 * can happen before or after the ioremap() is ready, so a flag is needed
89 * to indicating this
90 */
91 static u32 sfi_use_ioremap __read_mostly;
92
93 static void __iomem *sfi_map_memory(u64 phys, u32 size)
94 {
95 if (!phys || !size)
96 return NULL;
97
98 if (sfi_use_ioremap)
99 return ioremap(phys, size);
100 else
101 return early_ioremap(phys, size);
102 }
103
104 static void sfi_unmap_memory(void __iomem *virt, u32 size)
105 {
106 if (!virt || !size)
107 return;
108
109 if (sfi_use_ioremap)
110 iounmap(virt);
111 else
112 early_iounmap(virt, size);
113 }
114
115 static void sfi_print_table_header(unsigned long long pa,
116 struct sfi_table_header *header)
117 {
118 pr_info("%4.4s %llX, %04X (v%d %6.6s %8.8s)\n",
119 header->sig, pa,
120 header->len, header->rev, header->oem_id,
121 header->oem_table_id);
122 }
123
124 /*
125 * sfi_verify_table()
126 * Sanity check table lengh, calculate checksum
127 */
128 static __init int sfi_verify_table(struct sfi_table_header *table)
129 {
130
131 u8 checksum = 0;
132 u8 *puchar = (u8 *)table;
133 u32 length = table->len;
134
135 /* Sanity check table length against arbitrary 1MB limit */
136 if (length > 0x100000) {
137 pr_err("Invalid table length 0x%x\n", length);
138 return -1;
139 }
140
141 while (length--)
142 checksum += *puchar++;
143
144 if (checksum) {
145 pr_err("Checksum %2.2X should be %2.2X\n",
146 table->csum, table->csum - checksum);
147 return -1;
148 }
149 return 0;
150 }
151
152 /*
153 * sfi_map_table()
154 *
155 * Return address of mapped table
156 * Check for common case that we can re-use mapping to SYST,
157 * which requires syst_pa, syst_va to be initialized.
158 */
159 struct sfi_table_header *sfi_map_table(u64 pa)
160 {
161 struct sfi_table_header *th;
162 u32 length;
163
164 if (!TABLE_ON_PAGE(syst_pa, pa, sizeof(struct sfi_table_header)))
165 th = sfi_map_memory(pa, sizeof(struct sfi_table_header));
166 else
167 th = (void *)syst_va + (pa - syst_pa);
168
169 /* If table fits on same page as its header, we are done */
170 if (TABLE_ON_PAGE(th, th, th->len))
171 return th;
172
173 /* Entire table does not fit on same page as SYST */
174 length = th->len;
175 if (!TABLE_ON_PAGE(syst_pa, pa, sizeof(struct sfi_table_header)))
176 sfi_unmap_memory(th, sizeof(struct sfi_table_header));
177
178 return sfi_map_memory(pa, length);
179 }
180
181 /*
182 * sfi_unmap_table()
183 *
184 * Undoes effect of sfi_map_table() by unmapping table
185 * if it did not completely fit on same page as SYST.
186 */
187 void sfi_unmap_table(struct sfi_table_header *th)
188 {
189 if (!TABLE_ON_PAGE(syst_va, th, th->len))
190 sfi_unmap_memory(th, TABLE_ON_PAGE(th, th, th->len) ?
191 sizeof(*th) : th->len);
192 }
193
194 static int sfi_table_check_key(struct sfi_table_header *th,
195 struct sfi_table_key *key)
196 {
197
198 if (strncmp(th->sig, key->sig, SFI_SIGNATURE_SIZE)
199 || (key->oem_id && strncmp(th->oem_id,
200 key->oem_id, SFI_OEM_ID_SIZE))
201 || (key->oem_table_id && strncmp(th->oem_table_id,
202 key->oem_table_id, SFI_OEM_TABLE_ID_SIZE)))
203 return -1;
204
205 return 0;
206 }
207
208 /*
209 * This function will be used in 2 cases:
210 * 1. used to enumerate and verify the tables addressed by SYST/XSDT,
211 * thus no signature will be given (in kernel boot phase)
212 * 2. used to parse one specific table, signature must exist, and
213 * the mapped virt address will be returned, and the virt space
214 * will be released by call sfi_put_table() later
215 *
216 * Return value:
217 * NULL: when can't find a table matching the key
218 * ERR_PTR(error): error value
219 * virt table address: when a matched table is found
220 */
221 struct sfi_table_header *sfi_check_table(u64 pa, struct sfi_table_key *key)
222 {
223 struct sfi_table_header *th;
224 void *ret = NULL;
225
226 th = sfi_map_table(pa);
227 if (!th)
228 return ERR_PTR(-ENOMEM);
229
230 if (!key->sig) {
231 sfi_print_table_header(pa, th);
232 if (sfi_verify_table(th))
233 ret = ERR_PTR(-EINVAL);
234 } else {
235 if (!sfi_table_check_key(th, key))
236 return th; /* Success */
237 }
238
239 sfi_unmap_table(th);
240 return ret;
241 }
242
243 /*
244 * sfi_get_table()
245 *
246 * Search SYST for the specified table with the signature in
247 * the key, and return the mapped table
248 */
249 struct sfi_table_header *sfi_get_table(struct sfi_table_key *key)
250 {
251 struct sfi_table_header *th;
252 u32 tbl_cnt, i;
253
254 tbl_cnt = SFI_GET_NUM_ENTRIES(syst_va, u64);
255 for (i = 0; i < tbl_cnt; i++) {
256 th = sfi_check_table(syst_va->pentry[i], key);
257 if (!IS_ERR(th) && th)
258 return th;
259 }
260
261 return NULL;
262 }
263
264 void sfi_put_table(struct sfi_table_header *th)
265 {
266 sfi_unmap_table(th);
267 }
268
269 /* Find table with signature, run handler on it */
270 int sfi_table_parse(char *signature, char *oem_id, char *oem_table_id,
271 sfi_table_handler handler)
272 {
273 struct sfi_table_header *table = NULL;
274 struct sfi_table_key key;
275 int ret = -EINVAL;
276
277 if (sfi_disabled || !handler || !signature)
278 goto exit;
279
280 key.sig = signature;
281 key.oem_id = oem_id;
282 key.oem_table_id = oem_table_id;
283
284 table = sfi_get_table(&key);
285 if (!table)
286 goto exit;
287
288 ret = handler(table);
289 sfi_put_table(table);
290 exit:
291 return ret;
292 }
293 EXPORT_SYMBOL_GPL(sfi_table_parse);
294
295 /*
296 * sfi_parse_syst()
297 * Checksum all the tables in SYST and print their headers
298 *
299 * success: set syst_va, return 0
300 */
301 static int __init sfi_parse_syst(void)
302 {
303 struct sfi_table_key key = SFI_ANY_KEY;
304 int tbl_cnt, i;
305 void *ret;
306
307 syst_va = sfi_map_memory(syst_pa, sizeof(struct sfi_table_simple));
308 if (!syst_va)
309 return -ENOMEM;
310
311 tbl_cnt = SFI_GET_NUM_ENTRIES(syst_va, u64);
312 for (i = 0; i < tbl_cnt; i++) {
313 ret = sfi_check_table(syst_va->pentry[i], &key);
314 if (IS_ERR(ret))
315 return PTR_ERR(ret);
316 }
317
318 return 0;
319 }
320
321 /*
322 * The OS finds the System Table by searching 16-byte boundaries between
323 * physical address 0x000E0000 and 0x000FFFFF. The OS shall search this region
324 * starting at the low address and shall stop searching when the 1st valid SFI
325 * System Table is found.
326 *
327 * success: set syst_pa, return 0
328 * fail: return -1
329 */
330 static __init int sfi_find_syst(void)
331 {
332 unsigned long offset, len;
333 void *start;
334
335 len = SFI_SYST_SEARCH_END - SFI_SYST_SEARCH_BEGIN;
336 start = sfi_map_memory(SFI_SYST_SEARCH_BEGIN, len);
337 if (!start)
338 return -1;
339
340 for (offset = 0; offset < len; offset += 16) {
341 struct sfi_table_header *syst_hdr;
342
343 syst_hdr = start + offset;
344 if (strncmp(syst_hdr->sig, SFI_SIG_SYST,
345 SFI_SIGNATURE_SIZE))
346 continue;
347
348 if (syst_hdr->len > PAGE_SIZE)
349 continue;
350
351 sfi_print_table_header(SFI_SYST_SEARCH_BEGIN + offset,
352 syst_hdr);
353
354 if (sfi_verify_table(syst_hdr))
355 continue;
356
357 /*
358 * Enforce SFI spec mandate that SYST reside within a page.
359 */
360 if (!ON_SAME_PAGE(syst_pa, syst_pa + syst_hdr->len)) {
361 pr_info("SYST 0x%llx + 0x%x crosses page\n",
362 syst_pa, syst_hdr->len);
363 continue;
364 }
365
366 /* Success */
367 syst_pa = SFI_SYST_SEARCH_BEGIN + offset;
368 sfi_unmap_memory(start, len);
369 return 0;
370 }
371
372 sfi_unmap_memory(start, len);
373 return -1;
374 }
375
376 void __init sfi_init(void)
377 {
378 if (!acpi_disabled)
379 disable_sfi();
380
381 if (sfi_disabled)
382 return;
383
384 pr_info("Simple Firmware Interface v0.7 http://simplefirmware.org\n");
385
386 if (sfi_find_syst() || sfi_parse_syst() || sfi_platform_init())
387 disable_sfi();
388
389 return;
390 }
391
392 void __init sfi_init_late(void)
393 {
394 int length;
395
396 if (sfi_disabled)
397 return;
398
399 length = syst_va->header.len;
400 sfi_unmap_memory(syst_va, sizeof(struct sfi_table_simple));
401
402 /* Use ioremap now after it is ready */
403 sfi_use_ioremap = 1;
404 syst_va = sfi_map_memory(syst_pa, length);
405
406 sfi_acpi_init();
407 }
408
drivers/sfi/sfi_core.h
File was created 1 /* sfi_core.h Simple Firmware Interface, internal header */
2
3 /*
4
5 This file is provided under a dual BSD/GPLv2 license. When using or
6 redistributing this file, you may do so under either license.
7
8 GPL LICENSE SUMMARY
9
10 Copyright(c) 2009 Intel Corporation. All rights reserved.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of version 2 of the GNU General Public License as
14 published by the Free Software Foundation.
15
16 This program is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
24 The full GNU General Public License is included in this distribution
25 in the file called LICENSE.GPL.
26
27 BSD LICENSE
28
29 Copyright(c) 2009 Intel Corporation. All rights reserved.
30
31 Redistribution and use in source and binary forms, with or without
32 modification, are permitted provided that the following conditions
33 are met:
34
35 * Redistributions of source code must retain the above copyright
36 notice, this list of conditions and the following disclaimer.
37 * Redistributions in binary form must reproduce the above copyright
38 notice, this list of conditions and the following disclaimer in
39 the documentation and/or other materials provided with the
40 distribution.
41 * Neither the name of Intel Corporation nor the names of its
42 contributors may be used to endorse or promote products derived
43 from this software without specific prior written permission.
44
45 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
46 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
47 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
48 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
49 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56
57 */
58 struct sfi_table_key{
59 char *sig;
60 char *oem_id;
61 char *oem_table_id;
62 };
63
64 #define SFI_ANY_KEY { .sig = NULL, .oem_id = NULL, .oem_table_id = NULL }
65
66 extern int __init sfi_acpi_init(void);
67 extern struct sfi_table_header *sfi_check_table(u64 paddr,
68 struct sfi_table_key *key);
69 struct sfi_table_header *sfi_get_table(struct sfi_table_key *key);
70 extern void sfi_put_table(struct sfi_table_header *table);
71
File was created 1 /* sfi.h Simple Firmware Interface */
2
3 /*
4
5 This file is provided under a dual BSD/GPLv2 license. When using or
6 redistributing this file, you may do so under either license.
7
8 GPL LICENSE SUMMARY
9
10 Copyright(c) 2009 Intel Corporation. All rights reserved.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of version 2 of the GNU General Public License as
14 published by the Free Software Foundation.
15
16 This program is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
24 The full GNU General Public License is included in this distribution
25 in the file called LICENSE.GPL.
26
27 BSD LICENSE
28
29 Copyright(c) 2009 Intel Corporation. All rights reserved.
30
31 Redistribution and use in source and binary forms, with or without
32 modification, are permitted provided that the following conditions
33 are met:
34
35 * Redistributions of source code must retain the above copyright
36 notice, this list of conditions and the following disclaimer.
37 * Redistributions in binary form must reproduce the above copyright
38 notice, this list of conditions and the following disclaimer in
39 the documentation and/or other materials provided with the
40 distribution.
41 * Neither the name of Intel Corporation nor the names of its
42 contributors may be used to endorse or promote products derived
43 from this software without specific prior written permission.
44
45 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
46 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
47 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
48 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
49 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56
57 */
58
59 #ifndef _LINUX_SFI_H
60 #define _LINUX_SFI_H
61
62 /* Table signatures reserved by the SFI specification */
63 #define SFI_SIG_SYST "SYST"
64 #define SFI_SIG_FREQ "FREQ"
65 #define SFI_SIG_IDLE "IDLE"
66 #define SFI_SIG_CPUS "CPUS"
67 #define SFI_SIG_MTMR "MTMR"
68 #define SFI_SIG_MRTC "MRTC"
69 #define SFI_SIG_MMAP "MMAP"
70 #define SFI_SIG_APIC "APIC"
71 #define SFI_SIG_XSDT "XSDT"
72 #define SFI_SIG_WAKE "WAKE"
73 #define SFI_SIG_SPIB "SPIB"
74 #define SFI_SIG_I2CB "I2CB"
75 #define SFI_SIG_GPEM "GPEM"
76
77 #define SFI_SIGNATURE_SIZE 4
78 #define SFI_OEM_ID_SIZE 6
79 #define SFI_OEM_TABLE_ID_SIZE 8
80
81 #define SFI_SYST_SEARCH_BEGIN 0x000E0000
82 #define SFI_SYST_SEARCH_END 0x000FFFFF
83
84 #define SFI_GET_NUM_ENTRIES(ptable, entry_type) \
85 ((ptable->header.len - sizeof(struct sfi_table_header)) / \
86 (sizeof(entry_type)))
87 /*
88 * Table structures must be byte-packed to match the SFI specification,
89 * as they are provided by the BIOS.
90 */
91 struct sfi_table_header {
92 char sig[SFI_SIGNATURE_SIZE];
93 u32 len;
94 u8 rev;
95 u8 csum;
96 char oem_id[SFI_OEM_ID_SIZE];
97 char oem_table_id[SFI_OEM_TABLE_ID_SIZE];
98 } __packed;
99
100 struct sfi_table_simple {
101 struct sfi_table_header header;
102 u64 pentry[1];
103 } __packed;
104
105 /* Comply with UEFI spec 2.1 */
106 struct sfi_mem_entry {
107 u32 type;
108 u64 phys_start;
109 u64 virt_start;
110 u64 pages;
111 u64 attrib;
112 } __packed;
113
114 struct sfi_cpu_table_entry {
115 u32 apic_id;
116 } __packed;
117
118 struct sfi_cstate_table_entry {
119 u32 hint; /* MWAIT hint */
120 u32 latency; /* latency in ms */
121 } __packed;
122
123 struct sfi_apic_table_entry {
124 u64 phys_addr; /* phy base addr for APIC reg */
125 } __packed;
126
127 struct sfi_freq_table_entry {
128 u32 freq_mhz; /* in MHZ */
129 u32 latency; /* transition latency in ms */
130 u32 ctrl_val; /* value to write to PERF_CTL */
131 } __packed;
132
133 struct sfi_wake_table_entry {
134 u64 phys_addr; /* pointer to where the wake vector locates */
135 } __packed;
136
137 struct sfi_timer_table_entry {
138 u64 phys_addr; /* phy base addr for the timer */
139 u32 freq_hz; /* in HZ */
140 u32 irq;
141 } __packed;
142
143 struct sfi_rtc_table_entry {
144 u64 phys_addr; /* phy base addr for the RTC */
145 u32 irq;
146 } __packed;
147
148 struct sfi_spi_table_entry {
149 u16 host_num; /* attached to host 0, 1...*/
150 u16 cs; /* chip select */
151 u16 irq_info;
152 char name[16];
153 u8 dev_info[10];
154 } __packed;
155
156 struct sfi_i2c_table_entry {
157 u16 host_num;
158 u16 addr; /* slave addr */
159 u16 irq_info;
160 char name[16];
161 u8 dev_info[10];
162 } __packed;
163
164 struct sfi_gpe_table_entry {
165 u16 logical_id; /* logical id */
166 u16 phys_id; /* physical GPE id */
167 } __packed;
168
169
170 typedef int (*sfi_table_handler) (struct sfi_table_header *table);
171
172 #ifdef CONFIG_SFI
173 extern void __init sfi_init(void);
174 extern int __init sfi_platform_init(void);
175 extern void __init sfi_init_late(void);
176 extern int sfi_table_parse(char *signature, char *oem_id, char *oem_table_id,
177 sfi_table_handler handler);
178
179 extern int sfi_disabled;
180 static inline void disable_sfi(void)
181 {
182 sfi_disabled = 1;
183 }
184
185 #else /* !CONFIG_SFI */
186
187 static inline void sfi_init(void)
188 {
189 }
190
191 static inline void sfi_init_late(void)
192 {
193 }
194
195 #define sfi_disabled 0
196
197 static inline int sfi_table_parse(char *signature, char *oem_id,
198 char *oem_table_id,
199 sfi_table_handler handler)
200 {
201 return -1;
202 }
203
204 #endif /* !CONFIG_SFI */
205
206 #endif /*_LINUX_SFI_H*/
207
include/linux/sfi_acpi.h
File was created 1 /* sfi.h Simple Firmware Interface */
2
3 /*
4
5 This file is provided under a dual BSD/GPLv2 license. When using or
6 redistributing this file, you may do so under either license.
7
8 GPL LICENSE SUMMARY
9
10 Copyright(c) 2009 Intel Corporation. All rights reserved.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of version 2 of the GNU General Public License as
14 published by the Free Software Foundation.
15
16 This program is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
24 The full GNU General Public License is included in this distribution
25 in the file called LICENSE.GPL.
26
27 BSD LICENSE
28
29 Copyright(c) 2009 Intel Corporation. All rights reserved.
30
31 Redistribution and use in source and binary forms, with or without
32 modification, are permitted provided that the following conditions
33 are met:
34
35 * Redistributions of source code must retain the above copyright
36 notice, this list of conditions and the following disclaimer.
37 * Redistributions in binary form must reproduce the above copyright
38 notice, this list of conditions and the following disclaimer in
39 the documentation and/or other materials provided with the
40 distribution.
41 * Neither the name of Intel Corporation nor the names of its
42 contributors may be used to endorse or promote products derived
43 from this software without specific prior written permission.
44
45 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
46 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
47 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
48 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
49 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
50 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
51 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
55 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56
57 */
58
59 #ifndef _LINUX_SFI_ACPI_H
60 #define _LINUX_SFI_ACPI_H
61
62 #ifdef CONFIG_SFI
63 #include <acpi/acpi.h> /* struct acpi_table_header */
64
65 extern int sfi_acpi_table_parse(char *signature, char *oem_id,
66 char *oem_table_id,
67 int (*handler)(struct acpi_table_header *));
68
69 static inline int acpi_sfi_table_parse(char *signature,
70 int (*handler)(struct acpi_table_header *))
71 {
72 if (!acpi_table_parse(signature, handler))
73 return 0;
74
75 return sfi_acpi_table_parse(signature, NULL, NULL, handler);
76 }
77 #else /* !CONFIG_SFI */
78
79 static inline int sfi_acpi_table_parse(char *signature, char *oem_id,
80 char *oem_table_id,
81 int (*handler)(struct acpi_table_header *))
82 {
83 return -1;
84 }
85
86 static inline int acpi_sfi_table_parse(char *signature,
87 int (*handler)(struct acpi_table_header *))
88 {
89 return acpi_table_parse(signature, handler);
90 }
91 #endif /* !CONFIG_SFI */
92
93 #endif /*_LINUX_SFI_ACPI_H*/
94
1 /* 1 /*
2 * linux/init/main.c 2 * linux/init/main.c
3 * 3 *
4 * Copyright (C) 1991, 1992 Linus Torvalds 4 * Copyright (C) 1991, 1992 Linus Torvalds
5 * 5 *
6 * GK 2/5/95 - Changed to support mounting root fs via NFS 6 * GK 2/5/95 - Changed to support mounting root fs via NFS
7 * Added initrd & change_root: Werner Almesberger & Hans Lermen, Feb '96 7 * Added initrd & change_root: Werner Almesberger & Hans Lermen, Feb '96
8 * Moan early if gcc is old, avoiding bogus kernels - Paul Gortmaker, May '96 8 * Moan early if gcc is old, avoiding bogus kernels - Paul Gortmaker, May '96
9 * Simplified starting of init: Michael A. Griffith <grif@acm.org> 9 * Simplified starting of init: Michael A. Griffith <grif@acm.org>
10 */ 10 */
11 11
12 #include <linux/types.h> 12 #include <linux/types.h>
13 #include <linux/module.h> 13 #include <linux/module.h>
14 #include <linux/proc_fs.h> 14 #include <linux/proc_fs.h>
15 #include <linux/kernel.h> 15 #include <linux/kernel.h>
16 #include <linux/syscalls.h> 16 #include <linux/syscalls.h>
17 #include <linux/stackprotector.h> 17 #include <linux/stackprotector.h>
18 #include <linux/string.h> 18 #include <linux/string.h>
19 #include <linux/ctype.h> 19 #include <linux/ctype.h>
20 #include <linux/delay.h> 20 #include <linux/delay.h>
21 #include <linux/utsname.h> 21 #include <linux/utsname.h>
22 #include <linux/ioport.h> 22 #include <linux/ioport.h>
23 #include <linux/init.h> 23 #include <linux/init.h>
24 #include <linux/smp_lock.h> 24 #include <linux/smp_lock.h>
25 #include <linux/initrd.h> 25 #include <linux/initrd.h>
26 #include <linux/bootmem.h> 26 #include <linux/bootmem.h>
27 #include <linux/acpi.h> 27 #include <linux/acpi.h>
28 #include <linux/tty.h> 28 #include <linux/tty.h>
29 #include <linux/gfp.h> 29 #include <linux/gfp.h>
30 #include <linux/percpu.h> 30 #include <linux/percpu.h>
31 #include <linux/kmod.h> 31 #include <linux/kmod.h>
32 #include <linux/vmalloc.h> 32 #include <linux/vmalloc.h>
33 #include <linux/kernel_stat.h> 33 #include <linux/kernel_stat.h>
34 #include <linux/start_kernel.h> 34 #include <linux/start_kernel.h>
35 #include <linux/security.h> 35 #include <linux/security.h>
36 #include <linux/smp.h> 36 #include <linux/smp.h>
37 #include <linux/workqueue.h> 37 #include <linux/workqueue.h>
38 #include <linux/profile.h> 38 #include <linux/profile.h>
39 #include <linux/rcupdate.h> 39 #include <linux/rcupdate.h>
40 #include <linux/moduleparam.h> 40 #include <linux/moduleparam.h>
41 #include <linux/kallsyms.h> 41 #include <linux/kallsyms.h>
42 #include <linux/writeback.h> 42 #include <linux/writeback.h>
43 #include <linux/cpu.h> 43 #include <linux/cpu.h>
44 #include <linux/cpuset.h> 44 #include <linux/cpuset.h>
45 #include <linux/cgroup.h> 45 #include <linux/cgroup.h>
46 #include <linux/efi.h> 46 #include <linux/efi.h>
47 #include <linux/tick.h> 47 #include <linux/tick.h>
48 #include <linux/interrupt.h> 48 #include <linux/interrupt.h>
49 #include <linux/taskstats_kern.h> 49 #include <linux/taskstats_kern.h>
50 #include <linux/delayacct.h> 50 #include <linux/delayacct.h>
51 #include <linux/unistd.h> 51 #include <linux/unistd.h>
52 #include <linux/rmap.h> 52 #include <linux/rmap.h>
53 #include <linux/mempolicy.h> 53 #include <linux/mempolicy.h>
54 #include <linux/key.h> 54 #include <linux/key.h>
55 #include <linux/buffer_head.h> 55 #include <linux/buffer_head.h>
56 #include <linux/page_cgroup.h> 56 #include <linux/page_cgroup.h>
57 #include <linux/debug_locks.h> 57 #include <linux/debug_locks.h>
58 #include <linux/debugobjects.h> 58 #include <linux/debugobjects.h>
59 #include <linux/lockdep.h> 59 #include <linux/lockdep.h>
60 #include <linux/kmemleak.h> 60 #include <linux/kmemleak.h>
61 #include <linux/pid_namespace.h> 61 #include <linux/pid_namespace.h>
62 #include <linux/device.h> 62 #include <linux/device.h>
63 #include <linux/kthread.h> 63 #include <linux/kthread.h>
64 #include <linux/sched.h> 64 #include <linux/sched.h>
65 #include <linux/signal.h> 65 #include <linux/signal.h>
66 #include <linux/idr.h> 66 #include <linux/idr.h>
67 #include <linux/ftrace.h> 67 #include <linux/ftrace.h>
68 #include <linux/async.h> 68 #include <linux/async.h>
69 #include <linux/kmemcheck.h> 69 #include <linux/kmemcheck.h>
70 #include <linux/kmemtrace.h> 70 #include <linux/kmemtrace.h>
71 #include <linux/sfi.h>
71 #include <linux/shmem_fs.h> 72 #include <linux/shmem_fs.h>
72 #include <trace/boot.h> 73 #include <trace/boot.h>
73 74
74 #include <asm/io.h> 75 #include <asm/io.h>
75 #include <asm/bugs.h> 76 #include <asm/bugs.h>
76 #include <asm/setup.h> 77 #include <asm/setup.h>
77 #include <asm/sections.h> 78 #include <asm/sections.h>
78 #include <asm/cacheflush.h> 79 #include <asm/cacheflush.h>
79 80
80 #ifdef CONFIG_X86_LOCAL_APIC 81 #ifdef CONFIG_X86_LOCAL_APIC
81 #include <asm/smp.h> 82 #include <asm/smp.h>
82 #endif 83 #endif
83 84
84 static int kernel_init(void *); 85 static int kernel_init(void *);
85 86
86 extern void init_IRQ(void); 87 extern void init_IRQ(void);
87 extern void fork_init(unsigned long); 88 extern void fork_init(unsigned long);
88 extern void mca_init(void); 89 extern void mca_init(void);
89 extern void sbus_init(void); 90 extern void sbus_init(void);
90 extern void prio_tree_init(void); 91 extern void prio_tree_init(void);
91 extern void radix_tree_init(void); 92 extern void radix_tree_init(void);
92 extern void free_initmem(void); 93 extern void free_initmem(void);
93 #ifndef CONFIG_DEBUG_RODATA 94 #ifndef CONFIG_DEBUG_RODATA
94 static inline void mark_rodata_ro(void) { } 95 static inline void mark_rodata_ro(void) { }
95 #endif 96 #endif
96 97
97 #ifdef CONFIG_TC 98 #ifdef CONFIG_TC
98 extern void tc_init(void); 99 extern void tc_init(void);
99 #endif 100 #endif
100 101
101 enum system_states system_state __read_mostly; 102 enum system_states system_state __read_mostly;
102 EXPORT_SYMBOL(system_state); 103 EXPORT_SYMBOL(system_state);
103 104
104 /* 105 /*
105 * Boot command-line arguments 106 * Boot command-line arguments
106 */ 107 */
107 #define MAX_INIT_ARGS CONFIG_INIT_ENV_ARG_LIMIT 108 #define MAX_INIT_ARGS CONFIG_INIT_ENV_ARG_LIMIT
108 #define MAX_INIT_ENVS CONFIG_INIT_ENV_ARG_LIMIT 109 #define MAX_INIT_ENVS CONFIG_INIT_ENV_ARG_LIMIT
109 110
110 extern void time_init(void); 111 extern void time_init(void);
111 /* Default late time init is NULL. archs can override this later. */ 112 /* Default late time init is NULL. archs can override this later. */
112 void (*__initdata late_time_init)(void); 113 void (*__initdata late_time_init)(void);
113 extern void softirq_init(void); 114 extern void softirq_init(void);
114 115
115 /* Untouched command line saved by arch-specific code. */ 116 /* Untouched command line saved by arch-specific code. */
116 char __initdata boot_command_line[COMMAND_LINE_SIZE]; 117 char __initdata boot_command_line[COMMAND_LINE_SIZE];
117 /* Untouched saved command line (eg. for /proc) */ 118 /* Untouched saved command line (eg. for /proc) */
118 char *saved_command_line; 119 char *saved_command_line;
119 /* Command line for parameter parsing */ 120 /* Command line for parameter parsing */
120 static char *static_command_line; 121 static char *static_command_line;
121 122
122 static char *execute_command; 123 static char *execute_command;
123 static char *ramdisk_execute_command; 124 static char *ramdisk_execute_command;
124 125
125 #ifdef CONFIG_SMP 126 #ifdef CONFIG_SMP
126 /* Setup configured maximum number of CPUs to activate */ 127 /* Setup configured maximum number of CPUs to activate */
127 unsigned int __initdata setup_max_cpus = NR_CPUS; 128 unsigned int __initdata setup_max_cpus = NR_CPUS;
128 129
129 /* 130 /*
130 * Setup routine for controlling SMP activation 131 * Setup routine for controlling SMP activation
131 * 132 *
132 * Command-line option of "nosmp" or "maxcpus=0" will disable SMP 133 * Command-line option of "nosmp" or "maxcpus=0" will disable SMP
133 * activation entirely (the MPS table probe still happens, though). 134 * activation entirely (the MPS table probe still happens, though).
134 * 135 *
135 * Command-line option of "maxcpus=<NUM>", where <NUM> is an integer 136 * Command-line option of "maxcpus=<NUM>", where <NUM> is an integer
136 * greater than 0, limits the maximum number of CPUs activated in 137 * greater than 0, limits the maximum number of CPUs activated in
137 * SMP mode to <NUM>. 138 * SMP mode to <NUM>.
138 */ 139 */
139 140
140 void __weak arch_disable_smp_support(void) { } 141 void __weak arch_disable_smp_support(void) { }
141 142
142 static int __init nosmp(char *str) 143 static int __init nosmp(char *str)
143 { 144 {
144 setup_max_cpus = 0; 145 setup_max_cpus = 0;
145 arch_disable_smp_support(); 146 arch_disable_smp_support();
146 147
147 return 0; 148 return 0;
148 } 149 }
149 150
150 early_param("nosmp", nosmp); 151 early_param("nosmp", nosmp);
151 152
152 static int __init maxcpus(char *str) 153 static int __init maxcpus(char *str)
153 { 154 {
154 get_option(&str, &setup_max_cpus); 155 get_option(&str, &setup_max_cpus);
155 if (setup_max_cpus == 0) 156 if (setup_max_cpus == 0)
156 arch_disable_smp_support(); 157 arch_disable_smp_support();
157 158
158 return 0; 159 return 0;
159 } 160 }
160 161
161 early_param("maxcpus", maxcpus); 162 early_param("maxcpus", maxcpus);
162 #else 163 #else
163 const unsigned int setup_max_cpus = NR_CPUS; 164 const unsigned int setup_max_cpus = NR_CPUS;
164 #endif 165 #endif
165 166
166 /* 167 /*
167 * If set, this is an indication to the drivers that reset the underlying 168 * If set, this is an indication to the drivers that reset the underlying
168 * device before going ahead with the initialization otherwise driver might 169 * device before going ahead with the initialization otherwise driver might
169 * rely on the BIOS and skip the reset operation. 170 * rely on the BIOS and skip the reset operation.
170 * 171 *
171 * This is useful if kernel is booting in an unreliable environment. 172 * This is useful if kernel is booting in an unreliable environment.
172 * For ex. kdump situaiton where previous kernel has crashed, BIOS has been 173 * For ex. kdump situaiton where previous kernel has crashed, BIOS has been
173 * skipped and devices will be in unknown state. 174 * skipped and devices will be in unknown state.
174 */ 175 */
175 unsigned int reset_devices; 176 unsigned int reset_devices;
176 EXPORT_SYMBOL(reset_devices); 177 EXPORT_SYMBOL(reset_devices);
177 178
178 static int __init set_reset_devices(char *str) 179 static int __init set_reset_devices(char *str)
179 { 180 {
180 reset_devices = 1; 181 reset_devices = 1;
181 return 1; 182 return 1;
182 } 183 }
183 184
184 __setup("reset_devices", set_reset_devices); 185 __setup("reset_devices", set_reset_devices);
185 186
186 static char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, }; 187 static char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
187 char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; 188 char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
188 static const char *panic_later, *panic_param; 189 static const char *panic_later, *panic_param;
189 190
190 extern struct obs_kernel_param __setup_start[], __setup_end[]; 191 extern struct obs_kernel_param __setup_start[], __setup_end[];
191 192
192 static int __init obsolete_checksetup(char *line) 193 static int __init obsolete_checksetup(char *line)
193 { 194 {
194 struct obs_kernel_param *p; 195 struct obs_kernel_param *p;
195 int had_early_param = 0; 196 int had_early_param = 0;
196 197
197 p = __setup_start; 198 p = __setup_start;
198 do { 199 do {
199 int n = strlen(p->str); 200 int n = strlen(p->str);
200 if (!strncmp(line, p->str, n)) { 201 if (!strncmp(line, p->str, n)) {
201 if (p->early) { 202 if (p->early) {
202 /* Already done in parse_early_param? 203 /* Already done in parse_early_param?
203 * (Needs exact match on param part). 204 * (Needs exact match on param part).
204 * Keep iterating, as we can have early 205 * Keep iterating, as we can have early
205 * params and __setups of same names 8( */ 206 * params and __setups of same names 8( */
206 if (line[n] == '\0' || line[n] == '=') 207 if (line[n] == '\0' || line[n] == '=')
207 had_early_param = 1; 208 had_early_param = 1;
208 } else if (!p->setup_func) { 209 } else if (!p->setup_func) {
209 printk(KERN_WARNING "Parameter %s is obsolete," 210 printk(KERN_WARNING "Parameter %s is obsolete,"
210 " ignored\n", p->str); 211 " ignored\n", p->str);
211 return 1; 212 return 1;
212 } else if (p->setup_func(line + n)) 213 } else if (p->setup_func(line + n))
213 return 1; 214 return 1;
214 } 215 }
215 p++; 216 p++;
216 } while (p < __setup_end); 217 } while (p < __setup_end);
217 218
218 return had_early_param; 219 return had_early_param;
219 } 220 }
220 221
221 /* 222 /*
222 * This should be approx 2 Bo*oMips to start (note initial shift), and will 223 * This should be approx 2 Bo*oMips to start (note initial shift), and will
223 * still work even if initially too large, it will just take slightly longer 224 * still work even if initially too large, it will just take slightly longer
224 */ 225 */
225 unsigned long loops_per_jiffy = (1<<12); 226 unsigned long loops_per_jiffy = (1<<12);
226 227
227 EXPORT_SYMBOL(loops_per_jiffy); 228 EXPORT_SYMBOL(loops_per_jiffy);
228 229
229 static int __init debug_kernel(char *str) 230 static int __init debug_kernel(char *str)
230 { 231 {
231 console_loglevel = 10; 232 console_loglevel = 10;
232 return 0; 233 return 0;
233 } 234 }
234 235
235 static int __init quiet_kernel(char *str) 236 static int __init quiet_kernel(char *str)
236 { 237 {
237 console_loglevel = 4; 238 console_loglevel = 4;
238 return 0; 239 return 0;
239 } 240 }
240 241
241 early_param("debug", debug_kernel); 242 early_param("debug", debug_kernel);
242 early_param("quiet", quiet_kernel); 243 early_param("quiet", quiet_kernel);
243 244
244 static int __init loglevel(char *str) 245 static int __init loglevel(char *str)
245 { 246 {
246 get_option(&str, &console_loglevel); 247 get_option(&str, &console_loglevel);
247 return 0; 248 return 0;
248 } 249 }
249 250
250 early_param("loglevel", loglevel); 251 early_param("loglevel", loglevel);
251 252
252 /* 253 /*
253 * Unknown boot options get handed to init, unless they look like 254 * Unknown boot options get handed to init, unless they look like
254 * failed parameters 255 * failed parameters
255 */ 256 */
256 static int __init unknown_bootoption(char *param, char *val) 257 static int __init unknown_bootoption(char *param, char *val)
257 { 258 {
258 /* Change NUL term back to "=", to make "param" the whole string. */ 259 /* Change NUL term back to "=", to make "param" the whole string. */
259 if (val) { 260 if (val) {
260 /* param=val or param="val"? */ 261 /* param=val or param="val"? */
261 if (val == param+strlen(param)+1) 262 if (val == param+strlen(param)+1)
262 val[-1] = '='; 263 val[-1] = '=';
263 else if (val == param+strlen(param)+2) { 264 else if (val == param+strlen(param)+2) {
264 val[-2] = '='; 265 val[-2] = '=';
265 memmove(val-1, val, strlen(val)+1); 266 memmove(val-1, val, strlen(val)+1);
266 val--; 267 val--;
267 } else 268 } else
268 BUG(); 269 BUG();
269 } 270 }
270 271
271 /* Handle obsolete-style parameters */ 272 /* Handle obsolete-style parameters */
272 if (obsolete_checksetup(param)) 273 if (obsolete_checksetup(param))
273 return 0; 274 return 0;
274 275
275 /* 276 /*
276 * Preemptive maintenance for "why didn't my misspelled command 277 * Preemptive maintenance for "why didn't my misspelled command
277 * line work?" 278 * line work?"
278 */ 279 */
279 if (strchr(param, '.') && (!val || strchr(param, '.') < val)) { 280 if (strchr(param, '.') && (!val || strchr(param, '.') < val)) {
280 printk(KERN_ERR "Unknown boot option `%s': ignoring\n", param); 281 printk(KERN_ERR "Unknown boot option `%s': ignoring\n", param);
281 return 0; 282 return 0;
282 } 283 }
283 284
284 if (panic_later) 285 if (panic_later)
285 return 0; 286 return 0;
286 287
287 if (val) { 288 if (val) {
288 /* Environment option */ 289 /* Environment option */
289 unsigned int i; 290 unsigned int i;
290 for (i = 0; envp_init[i]; i++) { 291 for (i = 0; envp_init[i]; i++) {
291 if (i == MAX_INIT_ENVS) { 292 if (i == MAX_INIT_ENVS) {
292 panic_later = "Too many boot env vars at `%s'"; 293 panic_later = "Too many boot env vars at `%s'";
293 panic_param = param; 294 panic_param = param;
294 } 295 }
295 if (!strncmp(param, envp_init[i], val - param)) 296 if (!strncmp(param, envp_init[i], val - param))
296 break; 297 break;
297 } 298 }
298 envp_init[i] = param; 299 envp_init[i] = param;
299 } else { 300 } else {
300 /* Command line option */ 301 /* Command line option */
301 unsigned int i; 302 unsigned int i;
302 for (i = 0; argv_init[i]; i++) { 303 for (i = 0; argv_init[i]; i++) {
303 if (i == MAX_INIT_ARGS) { 304 if (i == MAX_INIT_ARGS) {
304 panic_later = "Too many boot init vars at `%s'"; 305 panic_later = "Too many boot init vars at `%s'";
305 panic_param = param; 306 panic_param = param;
306 } 307 }
307 } 308 }
308 argv_init[i] = param; 309 argv_init[i] = param;
309 } 310 }
310 return 0; 311 return 0;
311 } 312 }
312 313
313 #ifdef CONFIG_DEBUG_PAGEALLOC 314 #ifdef CONFIG_DEBUG_PAGEALLOC
314 int __read_mostly debug_pagealloc_enabled = 0; 315 int __read_mostly debug_pagealloc_enabled = 0;
315 #endif 316 #endif
316 317
317 static int __init init_setup(char *str) 318 static int __init init_setup(char *str)
318 { 319 {
319 unsigned int i; 320 unsigned int i;
320 321
321 execute_command = str; 322 execute_command = str;
322 /* 323 /*
323 * In case LILO is going to boot us with default command line, 324 * In case LILO is going to boot us with default command line,
324 * it prepends "auto" before the whole cmdline which makes 325 * it prepends "auto" before the whole cmdline which makes
325 * the shell think it should execute a script with such name. 326 * the shell think it should execute a script with such name.
326 * So we ignore all arguments entered _before_ init=... [MJ] 327 * So we ignore all arguments entered _before_ init=... [MJ]
327 */ 328 */
328 for (i = 1; i < MAX_INIT_ARGS; i++) 329 for (i = 1; i < MAX_INIT_ARGS; i++)
329 argv_init[i] = NULL; 330 argv_init[i] = NULL;
330 return 1; 331 return 1;
331 } 332 }
332 __setup("init=", init_setup); 333 __setup("init=", init_setup);
333 334
334 static int __init rdinit_setup(char *str) 335 static int __init rdinit_setup(char *str)
335 { 336 {
336 unsigned int i; 337 unsigned int i;
337 338
338 ramdisk_execute_command = str; 339 ramdisk_execute_command = str;
339 /* See "auto" comment in init_setup */ 340 /* See "auto" comment in init_setup */
340 for (i = 1; i < MAX_INIT_ARGS; i++) 341 for (i = 1; i < MAX_INIT_ARGS; i++)
341 argv_init[i] = NULL; 342 argv_init[i] = NULL;
342 return 1; 343 return 1;
343 } 344 }
344 __setup("rdinit=", rdinit_setup); 345 __setup("rdinit=", rdinit_setup);
345 346
346 #ifndef CONFIG_SMP 347 #ifndef CONFIG_SMP
347 348
348 #ifdef CONFIG_X86_LOCAL_APIC 349 #ifdef CONFIG_X86_LOCAL_APIC
349 static void __init smp_init(void) 350 static void __init smp_init(void)
350 { 351 {
351 APIC_init_uniprocessor(); 352 APIC_init_uniprocessor();
352 } 353 }
353 #else 354 #else
354 #define smp_init() do { } while (0) 355 #define smp_init() do { } while (0)
355 #endif 356 #endif
356 357
357 static inline void setup_nr_cpu_ids(void) { } 358 static inline void setup_nr_cpu_ids(void) { }
358 static inline void smp_prepare_cpus(unsigned int maxcpus) { } 359 static inline void smp_prepare_cpus(unsigned int maxcpus) { }
359 360
360 #else 361 #else
361 362
362 #if NR_CPUS > BITS_PER_LONG 363 #if NR_CPUS > BITS_PER_LONG
363 cpumask_t cpu_mask_all __read_mostly = CPU_MASK_ALL; 364 cpumask_t cpu_mask_all __read_mostly = CPU_MASK_ALL;
364 EXPORT_SYMBOL(cpu_mask_all); 365 EXPORT_SYMBOL(cpu_mask_all);
365 #endif 366 #endif
366 367
367 /* Setup number of possible processor ids */ 368 /* Setup number of possible processor ids */
368 int nr_cpu_ids __read_mostly = NR_CPUS; 369 int nr_cpu_ids __read_mostly = NR_CPUS;
369 EXPORT_SYMBOL(nr_cpu_ids); 370 EXPORT_SYMBOL(nr_cpu_ids);
370 371
371 /* An arch may set nr_cpu_ids earlier if needed, so this would be redundant */ 372 /* An arch may set nr_cpu_ids earlier if needed, so this would be redundant */
372 static void __init setup_nr_cpu_ids(void) 373 static void __init setup_nr_cpu_ids(void)
373 { 374 {
374 nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1; 375 nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1;
375 } 376 }
376 377
377 /* Called by boot processor to activate the rest. */ 378 /* Called by boot processor to activate the rest. */
378 static void __init smp_init(void) 379 static void __init smp_init(void)
379 { 380 {
380 unsigned int cpu; 381 unsigned int cpu;
381 382
382 /* 383 /*
383 * Set up the current CPU as possible to migrate to. 384 * Set up the current CPU as possible to migrate to.
384 * The other ones will be done by cpu_up/cpu_down() 385 * The other ones will be done by cpu_up/cpu_down()
385 */ 386 */
386 set_cpu_active(smp_processor_id(), true); 387 set_cpu_active(smp_processor_id(), true);
387 388
388 /* FIXME: This should be done in userspace --RR */ 389 /* FIXME: This should be done in userspace --RR */
389 for_each_present_cpu(cpu) { 390 for_each_present_cpu(cpu) {
390 if (num_online_cpus() >= setup_max_cpus) 391 if (num_online_cpus() >= setup_max_cpus)
391 break; 392 break;
392 if (!cpu_online(cpu)) 393 if (!cpu_online(cpu))
393 cpu_up(cpu); 394 cpu_up(cpu);
394 } 395 }
395 396
396 /* Any cleanup work */ 397 /* Any cleanup work */
397 printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus()); 398 printk(KERN_INFO "Brought up %ld CPUs\n", (long)num_online_cpus());
398 smp_cpus_done(setup_max_cpus); 399 smp_cpus_done(setup_max_cpus);
399 } 400 }
400 401
401 #endif 402 #endif
402 403
403 /* 404 /*
404 * We need to store the untouched command line for future reference. 405 * We need to store the untouched command line for future reference.
405 * We also need to store the touched command line since the parameter 406 * We also need to store the touched command line since the parameter
406 * parsing is performed in place, and we should allow a component to 407 * parsing is performed in place, and we should allow a component to
407 * store reference of name/value for future reference. 408 * store reference of name/value for future reference.
408 */ 409 */
409 static void __init setup_command_line(char *command_line) 410 static void __init setup_command_line(char *command_line)
410 { 411 {
411 saved_command_line = alloc_bootmem(strlen (boot_command_line)+1); 412 saved_command_line = alloc_bootmem(strlen (boot_command_line)+1);
412 static_command_line = alloc_bootmem(strlen (command_line)+1); 413 static_command_line = alloc_bootmem(strlen (command_line)+1);
413 strcpy (saved_command_line, boot_command_line); 414 strcpy (saved_command_line, boot_command_line);
414 strcpy (static_command_line, command_line); 415 strcpy (static_command_line, command_line);
415 } 416 }
416 417
417 /* 418 /*
418 * We need to finalize in a non-__init function or else race conditions 419 * We need to finalize in a non-__init function or else race conditions
419 * between the root thread and the init thread may cause start_kernel to 420 * between the root thread and the init thread may cause start_kernel to
420 * be reaped by free_initmem before the root thread has proceeded to 421 * be reaped by free_initmem before the root thread has proceeded to
421 * cpu_idle. 422 * cpu_idle.
422 * 423 *
423 * gcc-3.4 accidentally inlines this function, so use noinline. 424 * gcc-3.4 accidentally inlines this function, so use noinline.
424 */ 425 */
425 426
426 static noinline void __init_refok rest_init(void) 427 static noinline void __init_refok rest_init(void)
427 __releases(kernel_lock) 428 __releases(kernel_lock)
428 { 429 {
429 int pid; 430 int pid;
430 431
431 rcu_scheduler_starting(); 432 rcu_scheduler_starting();
432 kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); 433 kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
433 numa_default_policy(); 434 numa_default_policy();
434 pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); 435 pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
435 kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); 436 kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
436 unlock_kernel(); 437 unlock_kernel();
437 438
438 /* 439 /*
439 * The boot idle thread must execute schedule() 440 * The boot idle thread must execute schedule()
440 * at least once to get things moving: 441 * at least once to get things moving:
441 */ 442 */
442 init_idle_bootup_task(current); 443 init_idle_bootup_task(current);
443 preempt_enable_no_resched(); 444 preempt_enable_no_resched();
444 schedule(); 445 schedule();
445 preempt_disable(); 446 preempt_disable();
446 447
447 /* Call into cpu_idle with preempt disabled */ 448 /* Call into cpu_idle with preempt disabled */
448 cpu_idle(); 449 cpu_idle();
449 } 450 }
450 451
451 /* Check for early params. */ 452 /* Check for early params. */
452 static int __init do_early_param(char *param, char *val) 453 static int __init do_early_param(char *param, char *val)
453 { 454 {
454 struct obs_kernel_param *p; 455 struct obs_kernel_param *p;
455 456
456 for (p = __setup_start; p < __setup_end; p++) { 457 for (p = __setup_start; p < __setup_end; p++) {
457 if ((p->early && strcmp(param, p->str) == 0) || 458 if ((p->early && strcmp(param, p->str) == 0) ||
458 (strcmp(param, "console") == 0 && 459 (strcmp(param, "console") == 0 &&
459 strcmp(p->str, "earlycon") == 0) 460 strcmp(p->str, "earlycon") == 0)
460 ) { 461 ) {
461 if (p->setup_func(val) != 0) 462 if (p->setup_func(val) != 0)
462 printk(KERN_WARNING 463 printk(KERN_WARNING
463 "Malformed early option '%s'\n", param); 464 "Malformed early option '%s'\n", param);
464 } 465 }
465 } 466 }
466 /* We accept everything at this stage. */ 467 /* We accept everything at this stage. */
467 return 0; 468 return 0;
468 } 469 }
469 470
470 void __init parse_early_options(char *cmdline) 471 void __init parse_early_options(char *cmdline)
471 { 472 {
472 parse_args("early options", cmdline, NULL, 0, do_early_param); 473 parse_args("early options", cmdline, NULL, 0, do_early_param);
473 } 474 }
474 475
475 /* Arch code calls this early on, or if not, just before other parsing. */ 476 /* Arch code calls this early on, or if not, just before other parsing. */
476 void __init parse_early_param(void) 477 void __init parse_early_param(void)
477 { 478 {
478 static __initdata int done = 0; 479 static __initdata int done = 0;
479 static __initdata char tmp_cmdline[COMMAND_LINE_SIZE]; 480 static __initdata char tmp_cmdline[COMMAND_LINE_SIZE];
480 481
481 if (done) 482 if (done)
482 return; 483 return;
483 484
484 /* All fall through to do_early_param. */ 485 /* All fall through to do_early_param. */
485 strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE); 486 strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE);
486 parse_early_options(tmp_cmdline); 487 parse_early_options(tmp_cmdline);
487 done = 1; 488 done = 1;
488 } 489 }
489 490
490 /* 491 /*
491 * Activate the first processor. 492 * Activate the first processor.
492 */ 493 */
493 494
494 static void __init boot_cpu_init(void) 495 static void __init boot_cpu_init(void)
495 { 496 {
496 int cpu = smp_processor_id(); 497 int cpu = smp_processor_id();
497 /* Mark the boot cpu "present", "online" etc for SMP and UP case */ 498 /* Mark the boot cpu "present", "online" etc for SMP and UP case */
498 set_cpu_online(cpu, true); 499 set_cpu_online(cpu, true);
499 set_cpu_present(cpu, true); 500 set_cpu_present(cpu, true);
500 set_cpu_possible(cpu, true); 501 set_cpu_possible(cpu, true);
501 } 502 }
502 503
503 void __init __weak smp_setup_processor_id(void) 504 void __init __weak smp_setup_processor_id(void)
504 { 505 {
505 } 506 }
506 507
507 void __init __weak thread_info_cache_init(void) 508 void __init __weak thread_info_cache_init(void)
508 { 509 {
509 } 510 }
510 511
511 /* 512 /*
512 * Set up kernel memory allocators 513 * Set up kernel memory allocators
513 */ 514 */
514 static void __init mm_init(void) 515 static void __init mm_init(void)
515 { 516 {
516 /* 517 /*
517 * page_cgroup requires countinous pages as memmap 518 * page_cgroup requires countinous pages as memmap
518 * and it's bigger than MAX_ORDER unless SPARSEMEM. 519 * and it's bigger than MAX_ORDER unless SPARSEMEM.
519 */ 520 */
520 page_cgroup_init_flatmem(); 521 page_cgroup_init_flatmem();
521 mem_init(); 522 mem_init();
522 kmem_cache_init(); 523 kmem_cache_init();
523 pgtable_cache_init(); 524 pgtable_cache_init();
524 vmalloc_init(); 525 vmalloc_init();
525 } 526 }
526 527
527 asmlinkage void __init start_kernel(void) 528 asmlinkage void __init start_kernel(void)
528 { 529 {
529 char * command_line; 530 char * command_line;
530 extern struct kernel_param __start___param[], __stop___param[]; 531 extern struct kernel_param __start___param[], __stop___param[];
531 532
532 smp_setup_processor_id(); 533 smp_setup_processor_id();
533 534
534 /* 535 /*
535 * Need to run as early as possible, to initialize the 536 * Need to run as early as possible, to initialize the
536 * lockdep hash: 537 * lockdep hash:
537 */ 538 */
538 lockdep_init(); 539 lockdep_init();
539 debug_objects_early_init(); 540 debug_objects_early_init();
540 541
541 /* 542 /*
542 * Set up the the initial canary ASAP: 543 * Set up the the initial canary ASAP:
543 */ 544 */
544 boot_init_stack_canary(); 545 boot_init_stack_canary();
545 546
546 cgroup_init_early(); 547 cgroup_init_early();
547 548
548 local_irq_disable(); 549 local_irq_disable();
549 early_boot_irqs_off(); 550 early_boot_irqs_off();
550 early_init_irq_lock_class(); 551 early_init_irq_lock_class();
551 552
552 /* 553 /*
553 * Interrupts are still disabled. Do necessary setups, then 554 * Interrupts are still disabled. Do necessary setups, then
554 * enable them 555 * enable them
555 */ 556 */
556 lock_kernel(); 557 lock_kernel();
557 tick_init(); 558 tick_init();
558 boot_cpu_init(); 559 boot_cpu_init();
559 page_address_init(); 560 page_address_init();
560 printk(KERN_NOTICE "%s", linux_banner); 561 printk(KERN_NOTICE "%s", linux_banner);
561 setup_arch(&command_line); 562 setup_arch(&command_line);
562 mm_init_owner(&init_mm, &init_task); 563 mm_init_owner(&init_mm, &init_task);
563 setup_command_line(command_line); 564 setup_command_line(command_line);
564 setup_nr_cpu_ids(); 565 setup_nr_cpu_ids();
565 setup_per_cpu_areas(); 566 setup_per_cpu_areas();
566 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */ 567 smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
567 568
568 build_all_zonelists(); 569 build_all_zonelists();
569 page_alloc_init(); 570 page_alloc_init();
570 571
571 printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line); 572 printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line);
572 parse_early_param(); 573 parse_early_param();
573 parse_args("Booting kernel", static_command_line, __start___param, 574 parse_args("Booting kernel", static_command_line, __start___param,
574 __stop___param - __start___param, 575 __stop___param - __start___param,
575 &unknown_bootoption); 576 &unknown_bootoption);
576 /* 577 /*
577 * These use large bootmem allocations and must precede 578 * These use large bootmem allocations and must precede
578 * kmem_cache_init() 579 * kmem_cache_init()
579 */ 580 */
580 pidhash_init(); 581 pidhash_init();
581 vfs_caches_init_early(); 582 vfs_caches_init_early();
582 sort_main_extable(); 583 sort_main_extable();
583 trap_init(); 584 trap_init();
584 mm_init(); 585 mm_init();
585 /* 586 /*
586 * Set up the scheduler prior starting any interrupts (such as the 587 * Set up the scheduler prior starting any interrupts (such as the
587 * timer interrupt). Full topology setup happens at smp_init() 588 * timer interrupt). Full topology setup happens at smp_init()
588 * time - but meanwhile we still have a functioning scheduler. 589 * time - but meanwhile we still have a functioning scheduler.
589 */ 590 */
590 sched_init(); 591 sched_init();
591 /* 592 /*
592 * Disable preemption - early bootup scheduling is extremely 593 * Disable preemption - early bootup scheduling is extremely
593 * fragile until we cpu_idle() for the first time. 594 * fragile until we cpu_idle() for the first time.
594 */ 595 */
595 preempt_disable(); 596 preempt_disable();
596 if (!irqs_disabled()) { 597 if (!irqs_disabled()) {
597 printk(KERN_WARNING "start_kernel(): bug: interrupts were " 598 printk(KERN_WARNING "start_kernel(): bug: interrupts were "
598 "enabled *very* early, fixing it\n"); 599 "enabled *very* early, fixing it\n");
599 local_irq_disable(); 600 local_irq_disable();
600 } 601 }
601 rcu_init(); 602 rcu_init();
602 /* init some links before init_ISA_irqs() */ 603 /* init some links before init_ISA_irqs() */
603 early_irq_init(); 604 early_irq_init();
604 init_IRQ(); 605 init_IRQ();
605 prio_tree_init(); 606 prio_tree_init();
606 init_timers(); 607 init_timers();
607 hrtimers_init(); 608 hrtimers_init();
608 softirq_init(); 609 softirq_init();
609 timekeeping_init(); 610 timekeeping_init();
610 time_init(); 611 time_init();
611 profile_init(); 612 profile_init();
612 if (!irqs_disabled()) 613 if (!irqs_disabled())
613 printk(KERN_CRIT "start_kernel(): bug: interrupts were " 614 printk(KERN_CRIT "start_kernel(): bug: interrupts were "
614 "enabled early\n"); 615 "enabled early\n");
615 early_boot_irqs_on(); 616 early_boot_irqs_on();
616 local_irq_enable(); 617 local_irq_enable();
617 618
618 /* Interrupts are enabled now so all GFP allocations are safe. */ 619 /* Interrupts are enabled now so all GFP allocations are safe. */
619 set_gfp_allowed_mask(__GFP_BITS_MASK); 620 set_gfp_allowed_mask(__GFP_BITS_MASK);
620 621
621 kmem_cache_init_late(); 622 kmem_cache_init_late();
622 623
623 /* 624 /*
624 * HACK ALERT! This is early. We're enabling the console before 625 * HACK ALERT! This is early. We're enabling the console before
625 * we've done PCI setups etc, and console_init() must be aware of 626 * we've done PCI setups etc, and console_init() must be aware of
626 * this. But we do want output early, in case something goes wrong. 627 * this. But we do want output early, in case something goes wrong.
627 */ 628 */
628 console_init(); 629 console_init();
629 if (panic_later) 630 if (panic_later)
630 panic(panic_later, panic_param); 631 panic(panic_later, panic_param);
631 632
632 lockdep_info(); 633 lockdep_info();
633 634
634 /* 635 /*
635 * Need to run this when irqs are enabled, because it wants 636 * Need to run this when irqs are enabled, because it wants
636 * to self-test [hard/soft]-irqs on/off lock inversion bugs 637 * to self-test [hard/soft]-irqs on/off lock inversion bugs
637 * too: 638 * too:
638 */ 639 */
639 locking_selftest(); 640 locking_selftest();
640 641
641 #ifdef CONFIG_BLK_DEV_INITRD 642 #ifdef CONFIG_BLK_DEV_INITRD
642 if (initrd_start && !initrd_below_start_ok && 643 if (initrd_start && !initrd_below_start_ok &&
643 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) { 644 page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
644 printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " 645 printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - "
645 "disabling it.\n", 646 "disabling it.\n",
646 page_to_pfn(virt_to_page((void *)initrd_start)), 647 page_to_pfn(virt_to_page((void *)initrd_start)),
647 min_low_pfn); 648 min_low_pfn);
648 initrd_start = 0; 649 initrd_start = 0;
649 } 650 }
650 #endif 651 #endif
651 page_cgroup_init(); 652 page_cgroup_init();
652 enable_debug_pagealloc(); 653 enable_debug_pagealloc();
653 kmemtrace_init(); 654 kmemtrace_init();
654 kmemleak_init(); 655 kmemleak_init();
655 debug_objects_mem_init(); 656 debug_objects_mem_init();
656 idr_init_cache(); 657 idr_init_cache();
657 setup_per_cpu_pageset(); 658 setup_per_cpu_pageset();
658 numa_policy_init(); 659 numa_policy_init();
659 if (late_time_init) 660 if (late_time_init)
660 late_time_init(); 661 late_time_init();
661 sched_clock_init(); 662 sched_clock_init();
662 calibrate_delay(); 663 calibrate_delay();
663 pidmap_init(); 664 pidmap_init();
664 anon_vma_init(); 665 anon_vma_init();
665 #ifdef CONFIG_X86 666 #ifdef CONFIG_X86
666 if (efi_enabled) 667 if (efi_enabled)
667 efi_enter_virtual_mode(); 668 efi_enter_virtual_mode();
668 #endif 669 #endif
669 thread_info_cache_init(); 670 thread_info_cache_init();
670 cred_init(); 671 cred_init();
671 fork_init(totalram_pages); 672 fork_init(totalram_pages);
672 proc_caches_init(); 673 proc_caches_init();
673 buffer_init(); 674 buffer_init();
674 key_init(); 675 key_init();
675 security_init(); 676 security_init();
676 vfs_caches_init(totalram_pages); 677 vfs_caches_init(totalram_pages);
677 radix_tree_init(); 678 radix_tree_init();
678 signals_init(); 679 signals_init();
679 /* rootfs populating might need page-writeback */ 680 /* rootfs populating might need page-writeback */
680 page_writeback_init(); 681 page_writeback_init();
681 #ifdef CONFIG_PROC_FS 682 #ifdef CONFIG_PROC_FS
682 proc_root_init(); 683 proc_root_init();
683 #endif 684 #endif
684 cgroup_init(); 685 cgroup_init();
685 cpuset_init(); 686 cpuset_init();
686 taskstats_init_early(); 687 taskstats_init_early();
687 delayacct_init(); 688 delayacct_init();
688 689
689 check_bugs(); 690 check_bugs();
690 691
691 acpi_early_init(); /* before LAPIC and SMP init */ 692 acpi_early_init(); /* before LAPIC and SMP init */
693 sfi_init_late();
692 694
693 ftrace_init(); 695 ftrace_init();
694 696
695 /* Do the rest non-__init'ed, we're now alive */ 697 /* Do the rest non-__init'ed, we're now alive */
696 rest_init(); 698 rest_init();
697 } 699 }
698 700
699 /* Call all constructor functions linked into the kernel. */ 701 /* Call all constructor functions linked into the kernel. */
700 static void __init do_ctors(void) 702 static void __init do_ctors(void)
701 { 703 {
702 #ifdef CONFIG_CONSTRUCTORS 704 #ifdef CONFIG_CONSTRUCTORS
703 ctor_fn_t *call = (ctor_fn_t *) __ctors_start; 705 ctor_fn_t *call = (ctor_fn_t *) __ctors_start;
704 706
705 for (; call < (ctor_fn_t *) __ctors_end; call++) 707 for (; call < (ctor_fn_t *) __ctors_end; call++)
706 (*call)(); 708 (*call)();
707 #endif 709 #endif
708 } 710 }
709 711
710 int initcall_debug; 712 int initcall_debug;
711 core_param(initcall_debug, initcall_debug, bool, 0644); 713 core_param(initcall_debug, initcall_debug, bool, 0644);
712 714
713 static char msgbuf[64]; 715 static char msgbuf[64];
714 static struct boot_trace_call call; 716 static struct boot_trace_call call;
715 static struct boot_trace_ret ret; 717 static struct boot_trace_ret ret;
716 718
717 int do_one_initcall(initcall_t fn) 719 int do_one_initcall(initcall_t fn)
718 { 720 {
719 int count = preempt_count(); 721 int count = preempt_count();
720 ktime_t calltime, delta, rettime; 722 ktime_t calltime, delta, rettime;
721 723
722 if (initcall_debug) { 724 if (initcall_debug) {
723 call.caller = task_pid_nr(current); 725 call.caller = task_pid_nr(current);
724 printk("calling %pF @ %i\n", fn, call.caller); 726 printk("calling %pF @ %i\n", fn, call.caller);
725 calltime = ktime_get(); 727 calltime = ktime_get();
726 trace_boot_call(&call, fn); 728 trace_boot_call(&call, fn);
727 enable_boot_trace(); 729 enable_boot_trace();
728 } 730 }
729 731
730 ret.result = fn(); 732 ret.result = fn();
731 733
732 if (initcall_debug) { 734 if (initcall_debug) {
733 disable_boot_trace(); 735 disable_boot_trace();
734 rettime = ktime_get(); 736 rettime = ktime_get();
735 delta = ktime_sub(rettime, calltime); 737 delta = ktime_sub(rettime, calltime);
736 ret.duration = (unsigned long long) ktime_to_ns(delta) >> 10; 738 ret.duration = (unsigned long long) ktime_to_ns(delta) >> 10;
737 trace_boot_ret(&ret, fn); 739 trace_boot_ret(&ret, fn);
738 printk("initcall %pF returned %d after %Ld usecs\n", fn, 740 printk("initcall %pF returned %d after %Ld usecs\n", fn,
739 ret.result, ret.duration); 741 ret.result, ret.duration);
740 } 742 }
741 743
742 msgbuf[0] = 0; 744 msgbuf[0] = 0;
743 745
744 if (ret.result && ret.result != -ENODEV && initcall_debug) 746 if (ret.result && ret.result != -ENODEV && initcall_debug)
745 sprintf(msgbuf, "error code %d ", ret.result); 747 sprintf(msgbuf, "error code %d ", ret.result);
746 748
747 if (preempt_count() != count) { 749 if (preempt_count() != count) {
748 strlcat(msgbuf, "preemption imbalance ", sizeof(msgbuf)); 750 strlcat(msgbuf, "preemption imbalance ", sizeof(msgbuf));
749 preempt_count() = count; 751 preempt_count() = count;
750 } 752 }
751 if (irqs_disabled()) { 753 if (irqs_disabled()) {
752 strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf)); 754 strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
753 local_irq_enable(); 755 local_irq_enable();
754 } 756 }
755 if (msgbuf[0]) { 757 if (msgbuf[0]) {
756 printk("initcall %pF returned with %s\n", fn, msgbuf); 758 printk("initcall %pF returned with %s\n", fn, msgbuf);
757 } 759 }
758 760
759 return ret.result; 761 return ret.result;
760 } 762 }
761 763
762 764
763 extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; 765 extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];
764 766
765 static void __init do_initcalls(void) 767 static void __init do_initcalls(void)
766 { 768 {
767 initcall_t *call; 769 initcall_t *call;
768 770
769 for (call = __early_initcall_end; call < __initcall_end; call++) 771 for (call = __early_initcall_end; call < __initcall_end; call++)
770 do_one_initcall(*call); 772 do_one_initcall(*call);
771 773
772 /* Make sure there is no pending stuff from the initcall sequence */ 774 /* Make sure there is no pending stuff from the initcall sequence */
773 flush_scheduled_work(); 775 flush_scheduled_work();
774 } 776 }
775 777
776 /* 778 /*
777 * Ok, the machine is now initialized. None of the devices 779 * Ok, the machine is now initialized. None of the devices
778 * have been touched yet, but the CPU subsystem is up and 780 * have been touched yet, but the CPU subsystem is up and
779 * running, and memory and process management works. 781 * running, and memory and process management works.
780 * 782 *
781 * Now we can finally start doing some real work.. 783 * Now we can finally start doing some real work..
782 */ 784 */
783 static void __init do_basic_setup(void) 785 static void __init do_basic_setup(void)
784 { 786 {
785 rcu_init_sched(); /* needed by module_init stage. */ 787 rcu_init_sched(); /* needed by module_init stage. */
786 init_workqueues(); 788 init_workqueues();
787 cpuset_init_smp(); 789 cpuset_init_smp();
788 usermodehelper_init(); 790 usermodehelper_init();
789 init_tmpfs(); 791 init_tmpfs();
790 driver_init(); 792 driver_init();
791 init_irq_proc(); 793 init_irq_proc();
792 do_ctors(); 794 do_ctors();
793 do_initcalls(); 795 do_initcalls();
794 } 796 }
795 797
796 static void __init do_pre_smp_initcalls(void) 798 static void __init do_pre_smp_initcalls(void)
797 { 799 {
798 initcall_t *call; 800 initcall_t *call;
799 801
800 for (call = __initcall_start; call < __early_initcall_end; call++) 802 for (call = __initcall_start; call < __early_initcall_end; call++)
801 do_one_initcall(*call); 803 do_one_initcall(*call);
802 } 804 }
803 805
804 static void run_init_process(char *init_filename) 806 static void run_init_process(char *init_filename)
805 { 807 {
806 argv_init[0] = init_filename; 808 argv_init[0] = init_filename;
807 kernel_execve(init_filename, argv_init, envp_init); 809 kernel_execve(init_filename, argv_init, envp_init);
808 } 810 }
809 811
810 /* This is a non __init function. Force it to be noinline otherwise gcc 812 /* This is a non __init function. Force it to be noinline otherwise gcc
811 * makes it inline to init() and it becomes part of init.text section 813 * makes it inline to init() and it becomes part of init.text section
812 */ 814 */
813 static noinline int init_post(void) 815 static noinline int init_post(void)
814 __releases(kernel_lock) 816 __releases(kernel_lock)
815 { 817 {
816 /* need to finish all async __init code before freeing the memory */ 818 /* need to finish all async __init code before freeing the memory */
817 async_synchronize_full(); 819 async_synchronize_full();
818 free_initmem(); 820 free_initmem();
819 unlock_kernel(); 821 unlock_kernel();
820 mark_rodata_ro(); 822 mark_rodata_ro();
821 system_state = SYSTEM_RUNNING; 823 system_state = SYSTEM_RUNNING;
822 numa_default_policy(); 824 numa_default_policy();
823 825
824 if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) 826 if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
825 printk(KERN_WARNING "Warning: unable to open an initial console.\n"); 827 printk(KERN_WARNING "Warning: unable to open an initial console.\n");
826 828
827 (void) sys_dup(0); 829 (void) sys_dup(0);
828 (void) sys_dup(0); 830 (void) sys_dup(0);
829 831
830 current->signal->flags |= SIGNAL_UNKILLABLE; 832 current->signal->flags |= SIGNAL_UNKILLABLE;
831 833
832 if (ramdisk_execute_command) { 834 if (ramdisk_execute_command) {
833 run_init_process(ramdisk_execute_command); 835 run_init_process(ramdisk_execute_command);
834 printk(KERN_WARNING "Failed to execute %s\n", 836 printk(KERN_WARNING "Failed to execute %s\n",
835 ramdisk_execute_command); 837 ramdisk_execute_command);
836 } 838 }
837 839
838 /* 840 /*
839 * We try each of these until one succeeds. 841 * We try each of these until one succeeds.
840 * 842 *
841 * The Bourne shell can be used instead of init if we are 843 * The Bourne shell can be used instead of init if we are
842 * trying to recover a really broken machine. 844 * trying to recover a really broken machine.
843 */ 845 */
844 if (execute_command) { 846 if (execute_command) {
845 run_init_process(execute_command); 847 run_init_process(execute_command);
846 printk(KERN_WARNING "Failed to execute %s. Attempting " 848 printk(KERN_WARNING "Failed to execute %s. Attempting "
847 "defaults...\n", execute_command); 849 "defaults...\n", execute_command);
848 } 850 }
849 run_init_process("/sbin/init"); 851 run_init_process("/sbin/init");
850 run_init_process("/etc/init"); 852 run_init_process("/etc/init");
851 run_init_process("/bin/init"); 853 run_init_process("/bin/init");
852 run_init_process("/bin/sh"); 854 run_init_process("/bin/sh");
853 855
854 panic("No init found. Try passing init= option to kernel."); 856 panic("No init found. Try passing init= option to kernel.");
855 } 857 }
856 858
857 static int __init kernel_init(void * unused) 859 static int __init kernel_init(void * unused)
858 { 860 {
859 lock_kernel(); 861 lock_kernel();
860 862
861 /* 863 /*
862 * init can allocate pages on any node 864 * init can allocate pages on any node
863 */ 865 */
864 set_mems_allowed(node_possible_map); 866 set_mems_allowed(node_possible_map);
865 /* 867 /*
866 * init can run on any cpu. 868 * init can run on any cpu.
867 */ 869 */
868 set_cpus_allowed_ptr(current, cpu_all_mask); 870 set_cpus_allowed_ptr(current, cpu_all_mask);
869 /* 871 /*
870 * Tell the world that we're going to be the grim 872 * Tell the world that we're going to be the grim
871 * reaper of innocent orphaned children. 873 * reaper of innocent orphaned children.
872 * 874 *
873 * We don't want people to have to make incorrect 875 * We don't want people to have to make incorrect
874 * assumptions about where in the task array this 876 * assumptions about where in the task array this
875 * can be found. 877 * can be found.
876 */ 878 */
877 init_pid_ns.child_reaper = current; 879 init_pid_ns.child_reaper = current;
878 880
879 cad_pid = task_pid(current); 881 cad_pid = task_pid(current);
880 882
881 smp_prepare_cpus(setup_max_cpus); 883 smp_prepare_cpus(setup_max_cpus);
882 884
883 do_pre_smp_initcalls(); 885 do_pre_smp_initcalls();
884 start_boot_trace(); 886 start_boot_trace();
885 887
886 smp_init(); 888 smp_init();
887 sched_init_smp(); 889 sched_init_smp();
888 890
889 do_basic_setup(); 891 do_basic_setup();
890 892
891 /* 893 /*
892 * check if there is an early userspace init. If yes, let it do all 894 * check if there is an early userspace init. If yes, let it do all
893 * the work 895 * the work
894 */ 896 */
895 897
896 if (!ramdisk_execute_command) 898 if (!ramdisk_execute_command)
897 ramdisk_execute_command = "/init"; 899 ramdisk_execute_command = "/init";
898 900
899 if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) { 901 if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
900 ramdisk_execute_command = NULL; 902 ramdisk_execute_command = NULL;
901 prepare_namespace(); 903 prepare_namespace();
902 } 904 }
903 905
904 /* 906 /*
905 * Ok, we have completed the initial bootup, and 907 * Ok, we have completed the initial bootup, and
906 * we're essentially up and running. Get rid of the 908 * we're essentially up and running. Get rid of the
907 * initmem segments and start the user-mode stuff.. 909 * initmem segments and start the user-mode stuff..
908 */ 910 */
909 911
910 init_post(); 912 init_post();
911 return 0; 913 return 0;
912 } 914 }
913 915