Commit 746942d06acdb4dd78d16baa5f3728a48a033bdd
Exists in
master
and in
4 other branches
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
- MAINTAINERS
- arch/x86/Kconfig
- arch/x86/kernel/Makefile
- arch/x86/kernel/setup.c
- arch/x86/kernel/sfi.c
- arch/x86/pci/mmconfig-shared.c
- arch/x86/pci/mmconfig_32.c
- drivers/Makefile
- drivers/sfi/Kconfig
- drivers/sfi/Makefile
- drivers/sfi/sfi_acpi.c
- drivers/sfi/sfi_core.c
- drivers/sfi/sfi_core.h
- include/linux/sfi.h
- include/linux/sfi_acpi.h
- init/main.c
MAINTAINERS
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 |
arch/x86/Kconfig
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 | } |
drivers/Makefile
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 |
drivers/sfi/Kconfig
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 |
include/linux/sfi.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_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 |
init/main.c
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 |