diff options
author | John W. Linville <linville@tuxdriver.com> | 2006-05-05 16:50:23 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-05-05 16:50:23 -0400 |
commit | aad61439e6a00bdb72cb649e11f6e166590c5f66 (patch) | |
tree | 2279f3c2a15f81526d14182c6acb358cafd0b359 | |
parent | 3c304956755fa63ee80ca51ce38078fe1c4e8818 (diff) | |
parent | d98550e334715b2d9e45f8f0f4e1608720108640 (diff) |
Merge branch 'from-linus' into upstream
494 files changed, 9035 insertions, 6342 deletions
@@ -1194,15 +1194,9 @@ S: Brecksville, OH 44141-1334 | |||
1194 | S: USA | 1194 | S: USA |
1195 | 1195 | ||
1196 | N: Tristan Greaves | 1196 | N: Tristan Greaves |
1197 | E: Tristan.Greaves@icl.com | 1197 | E: tristan@extricate.org |
1198 | E: tmg296@ecs.soton.ac.uk | 1198 | W: http://www.extricate.org/ |
1199 | W: http://www.ecs.soton.ac.uk/~tmg296 | ||
1200 | D: Miscellaneous ipv4 sysctl patches | 1199 | D: Miscellaneous ipv4 sysctl patches |
1201 | S: 15 Little Mead | ||
1202 | S: Denmead | ||
1203 | S: Hampshire | ||
1204 | S: PO7 6HS | ||
1205 | S: United Kingdom | ||
1206 | 1200 | ||
1207 | N: Michael A. Griffith | 1201 | N: Michael A. Griffith |
1208 | E: grif@cs.ucr.edu | 1202 | E: grif@cs.ucr.edu |
diff --git a/Documentation/HOWTO b/Documentation/HOWTO index 6c9e746267da..915ae8c986c6 100644 --- a/Documentation/HOWTO +++ b/Documentation/HOWTO | |||
@@ -603,7 +603,8 @@ start exactly where you are now. | |||
603 | 603 | ||
604 | 604 | ||
605 | ---------- | 605 | ---------- |
606 | Thanks to Paolo Ciarrocchi who allowed the "Development Process" section | 606 | Thanks to Paolo Ciarrocchi who allowed the "Development Process" |
607 | (http://linux.tar.bz/articles/2.6-development_process) section | ||
607 | to be based on text he had written, and to Randy Dunlap and Gerrit | 608 | to be based on text he had written, and to Randy Dunlap and Gerrit |
608 | Huizenga for some of the list of things you should and should not say. | 609 | Huizenga for some of the list of things you should and should not say. |
609 | Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, | 610 | Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, |
diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt index c8bce82ddcac..89b1d196ca80 100644 --- a/Documentation/filesystems/sysfs.txt +++ b/Documentation/filesystems/sysfs.txt | |||
@@ -246,6 +246,7 @@ class/ | |||
246 | devices/ | 246 | devices/ |
247 | firmware/ | 247 | firmware/ |
248 | net/ | 248 | net/ |
249 | fs/ | ||
249 | 250 | ||
250 | devices/ contains a filesystem representation of the device tree. It maps | 251 | devices/ contains a filesystem representation of the device tree. It maps |
251 | directly to the internal kernel device tree, which is a hierarchy of | 252 | directly to the internal kernel device tree, which is a hierarchy of |
@@ -264,6 +265,10 @@ drivers/ contains a directory for each device driver that is loaded | |||
264 | for devices on that particular bus (this assumes that drivers do not | 265 | for devices on that particular bus (this assumes that drivers do not |
265 | span multiple bus types). | 266 | span multiple bus types). |
266 | 267 | ||
268 | fs/ contains a directory for some filesystems. Currently each | ||
269 | filesystem wanting to export attributes must create its own hierarchy | ||
270 | below fs/ (see ./fuse.txt for an example). | ||
271 | |||
267 | 272 | ||
268 | More information can driver-model specific features can be found in | 273 | More information can driver-model specific features can be found in |
269 | Documentation/driver-model/. | 274 | Documentation/driver-model/. |
diff --git a/Documentation/pci.txt b/Documentation/pci.txt index 711210b38f5f..66bbbf1d1ef6 100644 --- a/Documentation/pci.txt +++ b/Documentation/pci.txt | |||
@@ -259,7 +259,17 @@ on the bus need to be capable of doing it, so this is something which needs | |||
259 | to be handled by platform and generic code, not individual drivers. | 259 | to be handled by platform and generic code, not individual drivers. |
260 | 260 | ||
261 | 261 | ||
262 | 8. Obsolete functions | 262 | 8. Vendor and device identifications |
263 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
264 | For the future, let's avoid adding device ids to include/linux/pci_ids.h. | ||
265 | |||
266 | PCI_VENDOR_ID_xxx for vendors, and a hex constant for device ids. | ||
267 | |||
268 | Rationale: PCI_VENDOR_ID_xxx constants are re-used, but device ids are not. | ||
269 | Further, device ids are arbitrary hex numbers, normally used only in a | ||
270 | single location, the pci_device_id table. | ||
271 | |||
272 | 9. Obsolete functions | ||
263 | ~~~~~~~~~~~~~~~~~~~~~ | 273 | ~~~~~~~~~~~~~~~~~~~~~ |
264 | There are several functions which you might come across when trying to | 274 | There are several functions which you might come across when trying to |
265 | port an old driver to the new PCI interface. They are no longer present | 275 | port an old driver to the new PCI interface. They are no longer present |
diff --git a/Documentation/power/video.txt b/Documentation/power/video.txt index d18a57d1a531..43a889f8f08d 100644 --- a/Documentation/power/video.txt +++ b/Documentation/power/video.txt | |||
@@ -140,7 +140,7 @@ IBM TP T41p s3_bios (2), switch to X after resume | |||
140 | IBM TP T42 s3_bios (2) | 140 | IBM TP T42 s3_bios (2) |
141 | IBM ThinkPad T42p (2373-GTG) s3_bios (2) | 141 | IBM ThinkPad T42p (2373-GTG) s3_bios (2) |
142 | IBM TP X20 ??? (*) | 142 | IBM TP X20 ??? (*) |
143 | IBM TP X30 s3_bios (2) | 143 | IBM TP X30 s3_bios, s3_mode (4) |
144 | IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight. | 144 | IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight. |
145 | IBM TP X32 none (1), but backlight is on and video is trashed after long suspend. s3_bios,s3_mode (4) works too. Perhaps that gets better results? | 145 | IBM TP X32 none (1), but backlight is on and video is trashed after long suspend. s3_bios,s3_mode (4) works too. Perhaps that gets better results? |
146 | IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) | 146 | IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4) |
diff --git a/Documentation/sound/alsa/Audiophile-Usb.txt b/Documentation/sound/alsa/Audiophile-Usb.txt index 4692c8e77dc1..b535c2a198f8 100644 --- a/Documentation/sound/alsa/Audiophile-Usb.txt +++ b/Documentation/sound/alsa/Audiophile-Usb.txt | |||
@@ -1,4 +1,4 @@ | |||
1 | Guide to using M-Audio Audiophile USB with ALSA and Jack v1.2 | 1 | Guide to using M-Audio Audiophile USB with ALSA and Jack v1.3 |
2 | ======================================================== | 2 | ======================================================== |
3 | 3 | ||
4 | Thibault Le Meur <Thibault.LeMeur@supelec.fr> | 4 | Thibault Le Meur <Thibault.LeMeur@supelec.fr> |
@@ -22,16 +22,16 @@ The device has 4 audio interfaces, and 2 MIDI ports: | |||
22 | * Midi In (Mi) | 22 | * Midi In (Mi) |
23 | * Midi Out (Mo) | 23 | * Midi Out (Mo) |
24 | 24 | ||
25 | The internal DAC/ADC has the following caracteristics: | 25 | The internal DAC/ADC has the following characteristics: |
26 | * sample depth of 16 or 24 bits | 26 | * sample depth of 16 or 24 bits |
27 | * sample rate from 8kHz to 96kHz | 27 | * sample rate from 8kHz to 96kHz |
28 | * Two ports can't use different sample depths at the same time.Moreover, the | 28 | * Two ports can't use different sample depths at the same time. Moreover, the |
29 | Audiophile USB documentation gives the following Warning: "Please exit any | 29 | Audiophile USB documentation gives the following Warning: "Please exit any |
30 | audio application running before switching between bit depths" | 30 | audio application running before switching between bit depths" |
31 | 31 | ||
32 | Due to the USB 1.1 bandwidth limitation, a limited number of interfaces can be | 32 | Due to the USB 1.1 bandwidth limitation, a limited number of interfaces can be |
33 | activated at the same time depending on the audio mode selected: | 33 | activated at the same time depending on the audio mode selected: |
34 | * 16-bit/48kHz ==> 4 channels in/ 4 channels out | 34 | * 16-bit/48kHz ==> 4 channels in/4 channels out |
35 | - Ai+Ao+Di+Do | 35 | - Ai+Ao+Di+Do |
36 | * 24-bit/48kHz ==> 4 channels in/2 channels out, | 36 | * 24-bit/48kHz ==> 4 channels in/2 channels out, |
37 | or 2 channels in/4 channels out | 37 | or 2 channels in/4 channels out |
@@ -41,8 +41,8 @@ activated at the same time depending on the audio mode selected: | |||
41 | 41 | ||
42 | Important facts about the Digital interface: | 42 | Important facts about the Digital interface: |
43 | -------------------------------------------- | 43 | -------------------------------------------- |
44 | * The Do port additionnaly supports surround-encoded AC-3 and DTS passthrough, | 44 | * The Do port additionally supports surround-encoded AC-3 and DTS passthrough, |
45 | though I haven't tested it under linux | 45 | though I haven't tested it under Linux |
46 | - Note that in this setup only the Do interface can be enabled | 46 | - Note that in this setup only the Do interface can be enabled |
47 | * Apart from recording an audio digital stream, enabling the Di port is a way | 47 | * Apart from recording an audio digital stream, enabling the Di port is a way |
48 | to synchronize the device to an external sample clock | 48 | to synchronize the device to an external sample clock |
@@ -60,24 +60,23 @@ synchronization error (for instance sound played at an odd sample rate) | |||
60 | The Audiophile USB MIDI ports will be automatically supported once the | 60 | The Audiophile USB MIDI ports will be automatically supported once the |
61 | following modules have been loaded: | 61 | following modules have been loaded: |
62 | * snd-usb-audio | 62 | * snd-usb-audio |
63 | * snd-seq | ||
64 | * snd-seq-midi | 63 | * snd-seq-midi |
65 | 64 | ||
66 | No additionnal setting is required. | 65 | No additional setting is required. |
67 | 66 | ||
68 | 2.2 - Audio ports | 67 | 2.2 - Audio ports |
69 | ----------------- | 68 | ----------------- |
70 | 69 | ||
71 | Audio functions of the Audiophile USB device are handled by the snd-usb-audio | 70 | Audio functions of the Audiophile USB device are handled by the snd-usb-audio |
72 | module. This module can work in a default mode (without any device-specific | 71 | module. This module can work in a default mode (without any device-specific |
73 | parameter), or in an advanced mode with the device-specific parameter called | 72 | parameter), or in an "advanced" mode with the device-specific parameter called |
74 | "device_setup". | 73 | "device_setup". |
75 | 74 | ||
76 | 2.2.1 - Default Alsa driver mode | 75 | 2.2.1 - Default Alsa driver mode |
77 | 76 | ||
78 | The default behaviour of the snd-usb-audio driver is to parse the device | 77 | The default behavior of the snd-usb-audio driver is to parse the device |
79 | capabilities at startup and enable all functions inside the device (including | 78 | capabilities at startup and enable all functions inside the device (including |
80 | all ports at any sample rates and any sample depths supported). This approach | 79 | all ports at any supported sample rates and sample depths). This approach |
81 | has the advantage to let the driver easily switch from sample rates/depths | 80 | has the advantage to let the driver easily switch from sample rates/depths |
82 | automatically according to the need of the application claiming the device. | 81 | automatically according to the need of the application claiming the device. |
83 | 82 | ||
@@ -114,9 +113,9 @@ gain). | |||
114 | For people having this problem, the snd-usb-audio module has a new module | 113 | For people having this problem, the snd-usb-audio module has a new module |
115 | parameter called "device_setup". | 114 | parameter called "device_setup". |
116 | 115 | ||
117 | 2.2.2.1 - Initializing the working mode of the Audiohile USB | 116 | 2.2.2.1 - Initializing the working mode of the Audiophile USB |
118 | 117 | ||
119 | As far as the Audiohile USB device is concerned, this value let the user | 118 | As far as the Audiophile USB device is concerned, this value let the user |
120 | specify: | 119 | specify: |
121 | * the sample depth | 120 | * the sample depth |
122 | * the sample rate | 121 | * the sample rate |
@@ -174,20 +173,20 @@ The parameter can be given: | |||
174 | 173 | ||
175 | IMPORTANT NOTE WHEN SWITCHING CONFIGURATION: | 174 | IMPORTANT NOTE WHEN SWITCHING CONFIGURATION: |
176 | ------------------------------------------- | 175 | ------------------------------------------- |
177 | * You may need to _first_ intialize the module with the correct device_setup | 176 | * You may need to _first_ initialize the module with the correct device_setup |
178 | parameter and _only_after_ turn on the Audiophile USB device | 177 | parameter and _only_after_ turn on the Audiophile USB device |
179 | * This is especially true when switching the sample depth: | 178 | * This is especially true when switching the sample depth: |
180 | - first trun off the device | 179 | - first turn off the device |
181 | - de-register the snd-usb-audio module | 180 | - de-register the snd-usb-audio module (modprobe -r) |
182 | - change the device_setup parameter (by either manually reprobing the module | 181 | - change the device_setup parameter by changing the device_setup |
183 | or changing modprobe.conf) | 182 | option in /etc/modprobe.conf |
184 | - turn on the device | 183 | - turn on the device |
185 | 184 | ||
186 | 2.2.2.3 - Audiophile USB's device_setup structure | 185 | 2.2.2.3 - Audiophile USB's device_setup structure |
187 | 186 | ||
188 | If you want to understand the device_setup magic numbers for the Audiophile | 187 | If you want to understand the device_setup magic numbers for the Audiophile |
189 | USB, you need some very basic understanding of binary computation. However, | 188 | USB, you need some very basic understanding of binary computation. However, |
190 | this is not required to use the parameter and you may skip thi section. | 189 | this is not required to use the parameter and you may skip this section. |
191 | 190 | ||
192 | The device_setup is one byte long and its structure is the following: | 191 | The device_setup is one byte long and its structure is the following: |
193 | 192 | ||
@@ -231,11 +230,11 @@ Caution: | |||
231 | 230 | ||
232 | 2.2.3 - USB implementation details for this device | 231 | 2.2.3 - USB implementation details for this device |
233 | 232 | ||
234 | You may safely skip this section if you're not interrested in driver | 233 | You may safely skip this section if you're not interested in driver |
235 | development. | 234 | development. |
236 | 235 | ||
237 | This section describes some internals aspect of the device and summarize the | 236 | This section describes some internal aspects of the device and summarize the |
238 | data I got by usb-snooping the windows and linux drivers. | 237 | data I got by usb-snooping the windows and Linux drivers. |
239 | 238 | ||
240 | The M-Audio Audiophile USB has 7 USB Interfaces: | 239 | The M-Audio Audiophile USB has 7 USB Interfaces: |
241 | a "USB interface": | 240 | a "USB interface": |
@@ -277,9 +276,9 @@ Here is a short description of the AltSettings capabilities: | |||
277 | - 16-bit depth, 8-48kHz sample mode | 276 | - 16-bit depth, 8-48kHz sample mode |
278 | - Synch playback (Do), audio format type III IEC1937_AC-3 | 277 | - Synch playback (Do), audio format type III IEC1937_AC-3 |
279 | 278 | ||
280 | In order to ensure a correct intialization of the device, the driver | 279 | In order to ensure a correct initialization of the device, the driver |
281 | _must_know_ how the device will be used: | 280 | _must_know_ how the device will be used: |
282 | * if DTS is choosen, only Interface 2 with AltSet nb.6 must be | 281 | * if DTS is chosen, only Interface 2 with AltSet nb.6 must be |
283 | registered | 282 | registered |
284 | * if 96KHz only AltSets nb.1 of each interface must be selected | 283 | * if 96KHz only AltSets nb.1 of each interface must be selected |
285 | * if samples are using 24bits/48KHz then AltSet 2 must me used if | 284 | * if samples are using 24bits/48KHz then AltSet 2 must me used if |
@@ -290,7 +289,7 @@ _must_know_ how the device will be used: | |||
290 | is not connected | 289 | is not connected |
291 | 290 | ||
292 | When device_setup is given as a parameter to the snd-usb-audio module, the | 291 | When device_setup is given as a parameter to the snd-usb-audio module, the |
293 | parse_audio_enpoint function uses a quirk called | 292 | parse_audio_endpoints function uses a quirk called |
294 | "audiophile_skip_setting_quirk" in order to prevent AltSettings not | 293 | "audiophile_skip_setting_quirk" in order to prevent AltSettings not |
295 | corresponding to device_setup from being registered in the driver. | 294 | corresponding to device_setup from being registered in the driver. |
296 | 295 | ||
@@ -317,9 +316,8 @@ However you may see the following warning message: | |||
317 | using the "default" ALSA device. This is less efficient than it could be. | 316 | using the "default" ALSA device. This is less efficient than it could be. |
318 | Consider using a hardware device instead rather than using the plug layer." | 317 | Consider using a hardware device instead rather than using the plug layer." |
319 | 318 | ||
320 | |||
321 | 3.2 - Patching alsa to use direct pcm device | 319 | 3.2 - Patching alsa to use direct pcm device |
322 | ------------------------------------------- | 320 | -------------------------------------------- |
323 | A patch for Jack by Andreas Steinmetz adds support for Big Endian devices. | 321 | A patch for Jack by Andreas Steinmetz adds support for Big Endian devices. |
324 | However it has not been included in the CVS tree. | 322 | However it has not been included in the CVS tree. |
325 | 323 | ||
@@ -331,3 +329,32 @@ After having applied the patch you can run jackd with the following command | |||
331 | line: | 329 | line: |
332 | % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1 | 330 | % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1 |
333 | 331 | ||
332 | 3.2 - Getting 2 input and/or output interfaces in Jack | ||
333 | ------------------------------------------------------ | ||
334 | |||
335 | As you can see, starting the Jack server this way will only enable 1 stereo | ||
336 | input (Di or Ai) and 1 stereo output (Ao or Do). | ||
337 | |||
338 | This is due to the following restrictions: | ||
339 | * Jack can only open one capture device and one playback device at a time | ||
340 | * The Audiophile USB is seen as 2 (or three) Alsa devices: hw:1,0, hw:1,1 | ||
341 | (and optionally hw:1,2) | ||
342 | If you want to get Ai+Di and/or Ao+Do support with Jack, you would need to | ||
343 | combine the Alsa devices into one logical "complex" device. | ||
344 | |||
345 | If you want to give it a try, I recommend reading the information from | ||
346 | this page: http://www.sound-man.co.uk/linuxaudio/ice1712multi.html | ||
347 | It is related to another device (ice1712) but can be adapted to suit | ||
348 | the Audiophile USB. | ||
349 | |||
350 | Enabling multiple Audiophile USB interfaces for Jackd will certainly require: | ||
351 | * patching Jack with the previously mentioned "Big Endian" patch | ||
352 | * patching Jackd with the MMAP_COMPLEX patch (see the ice1712 page) | ||
353 | * patching the alsa-lib/src/pcm/pcm_multi.c file (see the ice1712 page) | ||
354 | * define a multi device (combination of hw:1,0 and hw:1,1) in your .asoundrc | ||
355 | file | ||
356 | * start jackd with this device | ||
357 | |||
358 | I had no success in testing this for now, but this may be due to my OS | ||
359 | configuration. If you have any success with this kind of setup, please | ||
360 | drop me an email. | ||
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index 68eeebc17ff4..1faf76383bab 100644 --- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl | |||
@@ -1172,7 +1172,7 @@ | |||
1172 | } | 1172 | } |
1173 | 1173 | ||
1174 | /* PCI IDs */ | 1174 | /* PCI IDs */ |
1175 | static struct pci_device_id snd_mychip_ids[] = { | 1175 | static struct pci_device_id snd_mychip_ids[] __devinitdata = { |
1176 | { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR, | 1176 | { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR, |
1177 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 1177 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
1178 | .... | 1178 | .... |
@@ -1565,7 +1565,7 @@ | |||
1565 | <informalexample> | 1565 | <informalexample> |
1566 | <programlisting> | 1566 | <programlisting> |
1567 | <![CDATA[ | 1567 | <![CDATA[ |
1568 | static struct pci_device_id snd_mychip_ids[] = { | 1568 | static struct pci_device_id snd_mychip_ids[] __devinitdata = { |
1569 | { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR, | 1569 | { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR, |
1570 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 1570 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
1571 | .... | 1571 | .... |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 17 | 3 | SUBLEVEL = 17 |
4 | EXTRAVERSION =-rc2 | 4 | EXTRAVERSION =-rc3 |
5 | NAME=Sliding Snow Leopard | 5 | NAME=Sliding Snow Leopard |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/alpha/lib/strncpy.S b/arch/alpha/lib/strncpy.S index 338551c7113c..bbdef1be5f95 100644 --- a/arch/alpha/lib/strncpy.S +++ b/arch/alpha/lib/strncpy.S | |||
@@ -43,8 +43,8 @@ strncpy: | |||
43 | 43 | ||
44 | .align 4 | 44 | .align 4 |
45 | $multiword: | 45 | $multiword: |
46 | subq $24, 1, $2 # clear the final bits in the prev word | 46 | subq $27, 1, $2 # clear the final bits in the prev word |
47 | or $2, $24, $2 | 47 | or $2, $27, $2 |
48 | zapnot $1, $2, $1 | 48 | zapnot $1, $2, $1 |
49 | subq $18, 1, $18 | 49 | subq $18, 1, $18 |
50 | 50 | ||
@@ -70,8 +70,8 @@ $multiword: | |||
70 | bne $18, 0b | 70 | bne $18, 0b |
71 | 71 | ||
72 | 1: ldq_u $1, 0($16) # clear the leading bits in the final word | 72 | 1: ldq_u $1, 0($16) # clear the leading bits in the final word |
73 | subq $27, 1, $2 | 73 | subq $24, 1, $2 |
74 | or $2, $27, $2 | 74 | or $2, $24, $2 |
75 | 75 | ||
76 | zap $1, $2, $1 | 76 | zap $1, $2, $1 |
77 | stq_u $1, 0($16) | 77 | stq_u $1, 0($16) |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1dbf6ddb300d..08b7cc900cae 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -150,8 +150,6 @@ config ARCH_IOP3XX | |||
150 | 150 | ||
151 | config ARCH_IXP4XX | 151 | config ARCH_IXP4XX |
152 | bool "IXP4xx-based" | 152 | bool "IXP4xx-based" |
153 | select DMABOUNCE | ||
154 | select PCI | ||
155 | help | 153 | help |
156 | Support for Intel's IXP4XX (XScale) family of processors. | 154 | Support for Intel's IXP4XX (XScale) family of processors. |
157 | 155 | ||
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 95a96275f88a..6f8e84c1c1f2 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -66,7 +66,7 @@ tune-$(CONFIG_CPU_XSC3) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) - | |||
66 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) | 66 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) |
67 | 67 | ||
68 | ifeq ($(CONFIG_AEABI),y) | 68 | ifeq ($(CONFIG_AEABI),y) |
69 | CFLAGS_ABI :=-mabi=aapcs -mno-thumb-interwork | 69 | CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork |
70 | else | 70 | else |
71 | CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) | 71 | CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) |
72 | endif | 72 | endif |
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 0af3772efcb7..ace3fb5835d9 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -38,10 +38,10 @@ static void icedcc_putc(int ch) | |||
38 | if (--i < 0) | 38 | if (--i < 0) |
39 | return; | 39 | return; |
40 | 40 | ||
41 | asm("mrc p14, 0, %0, c0, c0, 0" : "=r" (status)); | 41 | asm volatile ("mrc p14, 0, %0, c0, c0, 0" : "=r" (status)); |
42 | } while (status & 2); | 42 | } while (status & 2); |
43 | 43 | ||
44 | asm("mcr p15, 0, %0, c1, c0, 0" : : "r" (ch)); | 44 | asm("mcr p14, 0, %0, c1, c0, 0" : : "r" (ch)); |
45 | } | 45 | } |
46 | 46 | ||
47 | #define putc(ch) icedcc_putc(ch) | 47 | #define putc(ch) icedcc_putc(ch) |
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index 2ce0e3a27a45..a601b8b55f35 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile | |||
@@ -29,7 +29,7 @@ ifneq ($(CONFIG_ARCH_EBSA110),y) | |||
29 | obj-y += io.o | 29 | obj-y += io.o |
30 | endif | 30 | endif |
31 | 31 | ||
32 | head-y := head.o | 32 | head-y := head$(MMUEXT).o |
33 | obj-$(CONFIG_DEBUG_LL) += debug.o | 33 | obj-$(CONFIG_DEBUG_LL) += debug.o |
34 | 34 | ||
35 | extra-y := $(head-y) init_task.o vmlinux.lds | 35 | extra-y := $(head-y) init_task.o vmlinux.lds |
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S index b093ab8738b5..0bea65864051 100644 --- a/arch/arm/kernel/head-nommu.S +++ b/arch/arm/kernel/head-nommu.S | |||
@@ -20,10 +20,11 @@ | |||
20 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
21 | #include <asm/procinfo.h> | 21 | #include <asm/procinfo.h> |
22 | #include <asm/ptrace.h> | 22 | #include <asm/ptrace.h> |
23 | #include <asm/constants.h> | 23 | #include <asm/thread_info.h> |
24 | #include <asm/system.h> | 24 | #include <asm/system.h> |
25 | 25 | ||
26 | #define PROCINFO_INITFUNC 12 | 26 | #define PROCINFO_INITFUNC 12 |
27 | #define MACHINFO_TYPE 0 | ||
27 | 28 | ||
28 | /* | 29 | /* |
29 | * Kernel startup entry point. | 30 | * Kernel startup entry point. |
@@ -79,5 +80,6 @@ __after_proc_init: | |||
79 | 80 | ||
80 | mov pc, r13 @ clear the BSS and jump | 81 | mov pc, r13 @ clear the BSS and jump |
81 | @ to start_kernel | 82 | @ to start_kernel |
83 | .ltorg | ||
82 | 84 | ||
83 | #include "head-common.S" | 85 | #include "head-common.S" |
diff --git a/arch/arm/mach-imx/generic.c b/arch/arm/mach-imx/generic.c index 9d8331be2b58..12ea58a3b84f 100644 --- a/arch/arm/mach-imx/generic.c +++ b/arch/arm/mach-imx/generic.c | |||
@@ -195,56 +195,6 @@ void __init imx_set_mmc_info(struct imxmmc_platform_data *info) | |||
195 | } | 195 | } |
196 | EXPORT_SYMBOL(imx_set_mmc_info); | 196 | EXPORT_SYMBOL(imx_set_mmc_info); |
197 | 197 | ||
198 | static struct resource imx_uart1_resources[] = { | ||
199 | [0] = { | ||
200 | .start = 0x00206000, | ||
201 | .end = 0x002060FF, | ||
202 | .flags = IORESOURCE_MEM, | ||
203 | }, | ||
204 | [1] = { | ||
205 | .start = (UART1_MINT_RX), | ||
206 | .end = (UART1_MINT_RX), | ||
207 | .flags = IORESOURCE_IRQ, | ||
208 | }, | ||
209 | [2] = { | ||
210 | .start = (UART1_MINT_TX), | ||
211 | .end = (UART1_MINT_TX), | ||
212 | .flags = IORESOURCE_IRQ, | ||
213 | }, | ||
214 | }; | ||
215 | |||
216 | static struct platform_device imx_uart1_device = { | ||
217 | .name = "imx-uart", | ||
218 | .id = 0, | ||
219 | .num_resources = ARRAY_SIZE(imx_uart1_resources), | ||
220 | .resource = imx_uart1_resources, | ||
221 | }; | ||
222 | |||
223 | static struct resource imx_uart2_resources[] = { | ||
224 | [0] = { | ||
225 | .start = 0x00207000, | ||
226 | .end = 0x002070FF, | ||
227 | .flags = IORESOURCE_MEM, | ||
228 | }, | ||
229 | [1] = { | ||
230 | .start = (UART2_MINT_RX), | ||
231 | .end = (UART2_MINT_RX), | ||
232 | .flags = IORESOURCE_IRQ, | ||
233 | }, | ||
234 | [2] = { | ||
235 | .start = (UART2_MINT_TX), | ||
236 | .end = (UART2_MINT_TX), | ||
237 | .flags = IORESOURCE_IRQ, | ||
238 | }, | ||
239 | }; | ||
240 | |||
241 | static struct platform_device imx_uart2_device = { | ||
242 | .name = "imx-uart", | ||
243 | .id = 1, | ||
244 | .num_resources = ARRAY_SIZE(imx_uart2_resources), | ||
245 | .resource = imx_uart2_resources, | ||
246 | }; | ||
247 | |||
248 | static struct imxfb_mach_info imx_fb_info; | 198 | static struct imxfb_mach_info imx_fb_info; |
249 | 199 | ||
250 | void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info) | 200 | void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info) |
@@ -283,8 +233,6 @@ static struct platform_device imxfb_device = { | |||
283 | static struct platform_device *devices[] __initdata = { | 233 | static struct platform_device *devices[] __initdata = { |
284 | &imx_mmc_device, | 234 | &imx_mmc_device, |
285 | &imxfb_device, | 235 | &imxfb_device, |
286 | &imx_uart1_device, | ||
287 | &imx_uart2_device, | ||
288 | }; | 236 | }; |
289 | 237 | ||
290 | static struct map_desc imx_io_desc[] __initdata = { | 238 | static struct map_desc imx_io_desc[] __initdata = { |
diff --git a/arch/arm/mach-imx/mx1ads.c b/arch/arm/mach-imx/mx1ads.c index e34d0df90aed..e1f6c0bbe1e7 100644 --- a/arch/arm/mach-imx/mx1ads.c +++ b/arch/arm/mach-imx/mx1ads.c | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
28 | #include <asm/arch/mmc.h> | 28 | #include <asm/arch/mmc.h> |
29 | #include <asm/arch/imx-uart.h> | ||
29 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
30 | #include "generic.h" | 31 | #include "generic.h" |
31 | 32 | ||
@@ -48,8 +49,70 @@ static struct platform_device cs89x0_device = { | |||
48 | .resource = cs89x0_resources, | 49 | .resource = cs89x0_resources, |
49 | }; | 50 | }; |
50 | 51 | ||
52 | static struct imxuart_platform_data uart_pdata = { | ||
53 | .flags = IMXUART_HAVE_RTSCTS, | ||
54 | }; | ||
55 | |||
56 | static struct resource imx_uart1_resources[] = { | ||
57 | [0] = { | ||
58 | .start = 0x00206000, | ||
59 | .end = 0x002060FF, | ||
60 | .flags = IORESOURCE_MEM, | ||
61 | }, | ||
62 | [1] = { | ||
63 | .start = (UART1_MINT_RX), | ||
64 | .end = (UART1_MINT_RX), | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, | ||
67 | [2] = { | ||
68 | .start = (UART1_MINT_TX), | ||
69 | .end = (UART1_MINT_TX), | ||
70 | .flags = IORESOURCE_IRQ, | ||
71 | }, | ||
72 | }; | ||
73 | |||
74 | static struct platform_device imx_uart1_device = { | ||
75 | .name = "imx-uart", | ||
76 | .id = 0, | ||
77 | .num_resources = ARRAY_SIZE(imx_uart1_resources), | ||
78 | .resource = imx_uart1_resources, | ||
79 | .dev = { | ||
80 | .platform_data = &uart_pdata, | ||
81 | } | ||
82 | }; | ||
83 | |||
84 | static struct resource imx_uart2_resources[] = { | ||
85 | [0] = { | ||
86 | .start = 0x00207000, | ||
87 | .end = 0x002070FF, | ||
88 | .flags = IORESOURCE_MEM, | ||
89 | }, | ||
90 | [1] = { | ||
91 | .start = (UART2_MINT_RX), | ||
92 | .end = (UART2_MINT_RX), | ||
93 | .flags = IORESOURCE_IRQ, | ||
94 | }, | ||
95 | [2] = { | ||
96 | .start = (UART2_MINT_TX), | ||
97 | .end = (UART2_MINT_TX), | ||
98 | .flags = IORESOURCE_IRQ, | ||
99 | }, | ||
100 | }; | ||
101 | |||
102 | static struct platform_device imx_uart2_device = { | ||
103 | .name = "imx-uart", | ||
104 | .id = 1, | ||
105 | .num_resources = ARRAY_SIZE(imx_uart2_resources), | ||
106 | .resource = imx_uart2_resources, | ||
107 | .dev = { | ||
108 | .platform_data = &uart_pdata, | ||
109 | } | ||
110 | }; | ||
111 | |||
51 | static struct platform_device *devices[] __initdata = { | 112 | static struct platform_device *devices[] __initdata = { |
52 | &cs89x0_device, | 113 | &cs89x0_device, |
114 | &imx_uart1_device, | ||
115 | &imx_uart2_device, | ||
53 | }; | 116 | }; |
54 | 117 | ||
55 | #ifdef CONFIG_MMC_IMX | 118 | #ifdef CONFIG_MMC_IMX |
@@ -75,6 +138,17 @@ mx1ads_init(void) | |||
75 | imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20); | 138 | imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20); |
76 | imx_set_mmc_info(&mx1ads_mmc_info); | 139 | imx_set_mmc_info(&mx1ads_mmc_info); |
77 | #endif | 140 | #endif |
141 | |||
142 | imx_gpio_mode(PC9_PF_UART1_CTS); | ||
143 | imx_gpio_mode(PC10_PF_UART1_RTS); | ||
144 | imx_gpio_mode(PC11_PF_UART1_TXD); | ||
145 | imx_gpio_mode(PC12_PF_UART1_RXD); | ||
146 | |||
147 | imx_gpio_mode(PB28_PF_UART2_CTS); | ||
148 | imx_gpio_mode(PB29_PF_UART2_RTS); | ||
149 | imx_gpio_mode(PB30_PF_UART2_TXD); | ||
150 | imx_gpio_mode(PB31_PF_UART2_RXD); | ||
151 | |||
78 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 152 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
79 | } | 153 | } |
80 | 154 | ||
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig index 5bf50a2a737d..2a39f9e481ad 100644 --- a/arch/arm/mach-ixp4xx/Kconfig +++ b/arch/arm/mach-ixp4xx/Kconfig | |||
@@ -11,6 +11,7 @@ comment "IXP4xx Platforms" | |||
11 | config MACH_NSLU2 | 11 | config MACH_NSLU2 |
12 | bool | 12 | bool |
13 | prompt "Linksys NSLU2" | 13 | prompt "Linksys NSLU2" |
14 | select PCI | ||
14 | help | 15 | help |
15 | Say 'Y' here if you want your kernel to support Linksys's | 16 | Say 'Y' here if you want your kernel to support Linksys's |
16 | NSLU2 NAS device. For more information on this platform, | 17 | NSLU2 NAS device. For more information on this platform, |
@@ -18,6 +19,7 @@ config MACH_NSLU2 | |||
18 | 19 | ||
19 | config ARCH_AVILA | 20 | config ARCH_AVILA |
20 | bool "Avila" | 21 | bool "Avila" |
22 | select PCI | ||
21 | help | 23 | help |
22 | Say 'Y' here if you want your kernel to support the Gateworks | 24 | Say 'Y' here if you want your kernel to support the Gateworks |
23 | Avila Network Platform. For more information on this platform, | 25 | Avila Network Platform. For more information on this platform, |
@@ -25,6 +27,7 @@ config ARCH_AVILA | |||
25 | 27 | ||
26 | config ARCH_ADI_COYOTE | 28 | config ARCH_ADI_COYOTE |
27 | bool "Coyote" | 29 | bool "Coyote" |
30 | select PCI | ||
28 | help | 31 | help |
29 | Say 'Y' here if you want your kernel to support the ADI | 32 | Say 'Y' here if you want your kernel to support the ADI |
30 | Engineering Coyote Gateway Reference Platform. For more | 33 | Engineering Coyote Gateway Reference Platform. For more |
@@ -32,6 +35,7 @@ config ARCH_ADI_COYOTE | |||
32 | 35 | ||
33 | config ARCH_IXDP425 | 36 | config ARCH_IXDP425 |
34 | bool "IXDP425" | 37 | bool "IXDP425" |
38 | select PCI | ||
35 | help | 39 | help |
36 | Say 'Y' here if you want your kernel to support Intel's | 40 | Say 'Y' here if you want your kernel to support Intel's |
37 | IXDP425 Development Platform (Also known as Richfield). | 41 | IXDP425 Development Platform (Also known as Richfield). |
@@ -39,6 +43,7 @@ config ARCH_IXDP425 | |||
39 | 43 | ||
40 | config MACH_IXDPG425 | 44 | config MACH_IXDPG425 |
41 | bool "IXDPG425" | 45 | bool "IXDPG425" |
46 | select PCI | ||
42 | help | 47 | help |
43 | Say 'Y' here if you want your kernel to support Intel's | 48 | Say 'Y' here if you want your kernel to support Intel's |
44 | IXDPG425 Development Platform (Also known as Montajade). | 49 | IXDPG425 Development Platform (Also known as Montajade). |
@@ -46,6 +51,7 @@ config MACH_IXDPG425 | |||
46 | 51 | ||
47 | config MACH_IXDP465 | 52 | config MACH_IXDP465 |
48 | bool "IXDP465" | 53 | bool "IXDP465" |
54 | select PCI | ||
49 | help | 55 | help |
50 | Say 'Y' here if you want your kernel to support Intel's | 56 | Say 'Y' here if you want your kernel to support Intel's |
51 | IXDP465 Development Platform (Also known as BMP). | 57 | IXDP465 Development Platform (Also known as BMP). |
@@ -72,6 +78,7 @@ config ARCH_PRPMC1100 | |||
72 | config MACH_NAS100D | 78 | config MACH_NAS100D |
73 | bool | 79 | bool |
74 | prompt "NAS100D" | 80 | prompt "NAS100D" |
81 | select PCI | ||
75 | help | 82 | help |
76 | Say 'Y' here if you want your kernel to support Iomega's | 83 | Say 'Y' here if you want your kernel to support Iomega's |
77 | NAS 100d device. For more information on this platform, | 84 | NAS 100d device. For more information on this platform, |
@@ -96,6 +103,7 @@ config CPU_IXP46X | |||
96 | config MACH_GTWX5715 | 103 | config MACH_GTWX5715 |
97 | bool "Gemtek WX5715 (Linksys WRV54G)" | 104 | bool "Gemtek WX5715 (Linksys WRV54G)" |
98 | depends on ARCH_IXP4XX | 105 | depends on ARCH_IXP4XX |
106 | select PCI | ||
99 | help | 107 | help |
100 | This board is currently inside the Linksys WRV54G Gateways. | 108 | This board is currently inside the Linksys WRV54G Gateways. |
101 | 109 | ||
@@ -110,11 +118,16 @@ config MACH_GTWX5715 | |||
110 | "High Speed" UART is n/c (as far as I can tell) | 118 | "High Speed" UART is n/c (as far as I can tell) |
111 | 20 Pin ARM/Xscale JTAG interface on J2 | 119 | 20 Pin ARM/Xscale JTAG interface on J2 |
112 | 120 | ||
113 | |||
114 | comment "IXP4xx Options" | 121 | comment "IXP4xx Options" |
115 | 122 | ||
123 | config DMABOUNCE | ||
124 | bool | ||
125 | default y | ||
126 | depends on PCI | ||
127 | |||
116 | config IXP4XX_INDIRECT_PCI | 128 | config IXP4XX_INDIRECT_PCI |
117 | bool "Use indirect PCI memory access" | 129 | bool "Use indirect PCI memory access" |
130 | depends on PCI | ||
118 | help | 131 | help |
119 | IXP4xx provides two methods of accessing PCI memory space: | 132 | IXP4xx provides two methods of accessing PCI memory space: |
120 | 133 | ||
diff --git a/arch/arm/mach-ixp4xx/Makefile b/arch/arm/mach-ixp4xx/Makefile index 0471044fa179..5a4aaa0e0a09 100644 --- a/arch/arm/mach-ixp4xx/Makefile +++ b/arch/arm/mach-ixp4xx/Makefile | |||
@@ -2,8 +2,9 @@ | |||
2 | # Makefile for the linux kernel. | 2 | # Makefile for the linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += common.o common-pci.o | 5 | obj-y += common.o |
6 | 6 | ||
7 | obj-$(CONFIG_PCI) += common-pci.o | ||
7 | obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o | 8 | obj-$(CONFIG_ARCH_IXDP4XX) += ixdp425-pci.o ixdp425-setup.o |
8 | obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o | 9 | obj-$(CONFIG_MACH_IXDPG425) += ixdpg425-pci.o coyote-setup.o |
9 | obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o | 10 | obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o |
diff --git a/arch/arm/vfp/vfpdouble.c b/arch/arm/vfp/vfpdouble.c index febd115dba28..009038c8113e 100644 --- a/arch/arm/vfp/vfpdouble.c +++ b/arch/arm/vfp/vfpdouble.c | |||
@@ -197,7 +197,7 @@ u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exce | |||
197 | dd, d, exceptions); | 197 | dd, d, exceptions); |
198 | vfp_put_double(dd, d); | 198 | vfp_put_double(dd, d); |
199 | } | 199 | } |
200 | return exceptions & ~VFP_NAN_FLAG; | 200 | return exceptions; |
201 | } | 201 | } |
202 | 202 | ||
203 | /* | 203 | /* |
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 22f3da4e0829..37ff8145b5b5 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -180,7 +180,7 @@ static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs) | |||
180 | * emulate it. | 180 | * emulate it. |
181 | */ | 181 | */ |
182 | } | 182 | } |
183 | return exceptions; | 183 | return exceptions & ~VFP_NAN_FLAG; |
184 | } | 184 | } |
185 | 185 | ||
186 | /* | 186 | /* |
diff --git a/arch/arm/vfp/vfpsingle.c b/arch/arm/vfp/vfpsingle.c index 4ac27f193934..dae2c2f46052 100644 --- a/arch/arm/vfp/vfpsingle.c +++ b/arch/arm/vfp/vfpsingle.c | |||
@@ -203,7 +203,7 @@ u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exce | |||
203 | vfp_put_float(sd, d); | 203 | vfp_put_float(sd, d); |
204 | } | 204 | } |
205 | 205 | ||
206 | return exceptions & ~VFP_NAN_FLAG; | 206 | return exceptions; |
207 | } | 207 | } |
208 | 208 | ||
209 | /* | 209 | /* |
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 18ec9fe6deb6..c6fe99e57a05 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -467,7 +467,7 @@ endchoice | |||
467 | 467 | ||
468 | choice | 468 | choice |
469 | depends on EXPERIMENTAL && !X86_PAE | 469 | depends on EXPERIMENTAL && !X86_PAE |
470 | prompt "Memory split" | 470 | prompt "Memory split" if EMBEDDED |
471 | default VMSPLIT_3G | 471 | default VMSPLIT_3G |
472 | help | 472 | help |
473 | Select the desired split between kernel and user memory. | 473 | Select the desired split between kernel and user memory. |
@@ -756,7 +756,7 @@ config PHYSICAL_START | |||
756 | 756 | ||
757 | config HOTPLUG_CPU | 757 | config HOTPLUG_CPU |
758 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" | 758 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" |
759 | depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER && !X86_PC | 759 | depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER |
760 | ---help--- | 760 | ---help--- |
761 | Say Y here to experiment with turning CPUs off and on. CPUs | 761 | Say Y here to experiment with turning CPUs off and on. CPUs |
762 | can be controlled through /sys/devices/system/cpu. | 762 | can be controlled through /sys/devices/system/cpu. |
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 049a25583793..40e5aba3ad3d 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -215,7 +215,7 @@ static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size) | |||
215 | { | 215 | { |
216 | struct acpi_table_madt *madt = NULL; | 216 | struct acpi_table_madt *madt = NULL; |
217 | 217 | ||
218 | if (!phys_addr || !size || !cpu_has_apic) | 218 | if (!phys_addr || !size) |
219 | return -EINVAL; | 219 | return -EINVAL; |
220 | 220 | ||
221 | madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); | 221 | madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); |
@@ -1102,9 +1102,6 @@ int __init acpi_boot_table_init(void) | |||
1102 | dmi_check_system(acpi_dmi_table); | 1102 | dmi_check_system(acpi_dmi_table); |
1103 | #endif | 1103 | #endif |
1104 | 1104 | ||
1105 | if (!cpu_has_apic) | ||
1106 | return -ENODEV; | ||
1107 | |||
1108 | /* | 1105 | /* |
1109 | * If acpi_disabled, bail out | 1106 | * If acpi_disabled, bail out |
1110 | * One exception: acpi=ht continues far enough to enumerate LAPICs | 1107 | * One exception: acpi=ht continues far enough to enumerate LAPICs |
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 254cee9f0b7b..013b85df18c6 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -757,10 +757,6 @@ static int __init apic_set_verbosity(char *str) | |||
757 | apic_verbosity = APIC_DEBUG; | 757 | apic_verbosity = APIC_DEBUG; |
758 | else if (strcmp("verbose", str) == 0) | 758 | else if (strcmp("verbose", str) == 0) |
759 | apic_verbosity = APIC_VERBOSE; | 759 | apic_verbosity = APIC_VERBOSE; |
760 | else | ||
761 | printk(KERN_WARNING "APIC Verbosity level %s not recognised" | ||
762 | " use apic=verbose or apic=debug\n", str); | ||
763 | |||
764 | return 1; | 760 | return 1; |
765 | } | 761 | } |
766 | 762 | ||
diff --git a/arch/i386/kernel/cpu/intel_cacheinfo.c b/arch/i386/kernel/cpu/intel_cacheinfo.c index 9df87b03612c..c8547a6fa7e6 100644 --- a/arch/i386/kernel/cpu/intel_cacheinfo.c +++ b/arch/i386/kernel/cpu/intel_cacheinfo.c | |||
@@ -642,7 +642,7 @@ static void __cpuexit cache_remove_dev(struct sys_device * sys_dev) | |||
642 | return; | 642 | return; |
643 | } | 643 | } |
644 | 644 | ||
645 | static int __cpuinit cacheinfo_cpu_callback(struct notifier_block *nfb, | 645 | static int cacheinfo_cpu_callback(struct notifier_block *nfb, |
646 | unsigned long action, void *hcpu) | 646 | unsigned long action, void *hcpu) |
647 | { | 647 | { |
648 | unsigned int cpu = (unsigned long)hcpu; | 648 | unsigned int cpu = (unsigned long)hcpu; |
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c index 043f5292e70a..38806f427849 100644 --- a/arch/i386/kernel/kprobes.c +++ b/arch/i386/kernel/kprobes.c | |||
@@ -242,10 +242,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
242 | kcb->kprobe_status = KPROBE_REENTER; | 242 | kcb->kprobe_status = KPROBE_REENTER; |
243 | return 1; | 243 | return 1; |
244 | } else { | 244 | } else { |
245 | if (regs->eflags & VM_MASK) { | ||
246 | /* We are in virtual-8086 mode. Return 0 */ | ||
247 | goto no_kprobe; | ||
248 | } | ||
249 | if (*addr != BREAKPOINT_INSTRUCTION) { | 245 | if (*addr != BREAKPOINT_INSTRUCTION) { |
250 | /* The breakpoint instruction was removed by | 246 | /* The breakpoint instruction was removed by |
251 | * another cpu right after we hit, no further | 247 | * another cpu right after we hit, no further |
@@ -265,11 +261,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
265 | 261 | ||
266 | p = get_kprobe(addr); | 262 | p = get_kprobe(addr); |
267 | if (!p) { | 263 | if (!p) { |
268 | if (regs->eflags & VM_MASK) { | ||
269 | /* We are in virtual-8086 mode. Return 0 */ | ||
270 | goto no_kprobe; | ||
271 | } | ||
272 | |||
273 | if (*addr != BREAKPOINT_INSTRUCTION) { | 264 | if (*addr != BREAKPOINT_INSTRUCTION) { |
274 | /* | 265 | /* |
275 | * The breakpoint instruction was removed right | 266 | * The breakpoint instruction was removed right |
@@ -452,10 +443,11 @@ static void __kprobes resume_execution(struct kprobe *p, | |||
452 | *tos &= ~(TF_MASK | IF_MASK); | 443 | *tos &= ~(TF_MASK | IF_MASK); |
453 | *tos |= kcb->kprobe_old_eflags; | 444 | *tos |= kcb->kprobe_old_eflags; |
454 | break; | 445 | break; |
455 | case 0xc3: /* ret/lret */ | 446 | case 0xc2: /* iret/ret/lret */ |
456 | case 0xcb: | 447 | case 0xc3: |
457 | case 0xc2: | ||
458 | case 0xca: | 448 | case 0xca: |
449 | case 0xcb: | ||
450 | case 0xcf: | ||
459 | case 0xea: /* jmp absolute -- eip is correct */ | 451 | case 0xea: /* jmp absolute -- eip is correct */ |
460 | /* eip is already adjusted, no more changes required */ | 452 | /* eip is already adjusted, no more changes required */ |
461 | p->ainsn.boostable = 1; | 453 | p->ainsn.boostable = 1; |
@@ -463,10 +455,13 @@ static void __kprobes resume_execution(struct kprobe *p, | |||
463 | case 0xe8: /* call relative - Fix return addr */ | 455 | case 0xe8: /* call relative - Fix return addr */ |
464 | *tos = orig_eip + (*tos - copy_eip); | 456 | *tos = orig_eip + (*tos - copy_eip); |
465 | break; | 457 | break; |
458 | case 0x9a: /* call absolute -- same as call absolute, indirect */ | ||
459 | *tos = orig_eip + (*tos - copy_eip); | ||
460 | goto no_change; | ||
466 | case 0xff: | 461 | case 0xff: |
467 | if ((p->ainsn.insn[1] & 0x30) == 0x10) { | 462 | if ((p->ainsn.insn[1] & 0x30) == 0x10) { |
468 | /* call absolute, indirect */ | ||
469 | /* | 463 | /* |
464 | * call absolute, indirect | ||
470 | * Fix return addr; eip is correct. | 465 | * Fix return addr; eip is correct. |
471 | * But this is not boostable | 466 | * But this is not boostable |
472 | */ | 467 | */ |
diff --git a/arch/i386/kernel/ptrace.c b/arch/i386/kernel/ptrace.c index 506462ef36a0..fd7eaf7866e0 100644 --- a/arch/i386/kernel/ptrace.c +++ b/arch/i386/kernel/ptrace.c | |||
@@ -671,7 +671,7 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit) | |||
671 | 671 | ||
672 | if (unlikely(current->audit_context)) { | 672 | if (unlikely(current->audit_context)) { |
673 | if (entryexit) | 673 | if (entryexit) |
674 | audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), | 674 | audit_syscall_exit(AUDITSC_RESULT(regs->eax), |
675 | regs->eax); | 675 | regs->eax); |
676 | /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only | 676 | /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only |
677 | * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is | 677 | * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is |
@@ -720,14 +720,13 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit) | |||
720 | ret = is_sysemu; | 720 | ret = is_sysemu; |
721 | out: | 721 | out: |
722 | if (unlikely(current->audit_context) && !entryexit) | 722 | if (unlikely(current->audit_context) && !entryexit) |
723 | audit_syscall_entry(current, AUDIT_ARCH_I386, regs->orig_eax, | 723 | audit_syscall_entry(AUDIT_ARCH_I386, regs->orig_eax, |
724 | regs->ebx, regs->ecx, regs->edx, regs->esi); | 724 | regs->ebx, regs->ecx, regs->edx, regs->esi); |
725 | if (ret == 0) | 725 | if (ret == 0) |
726 | return 0; | 726 | return 0; |
727 | 727 | ||
728 | regs->orig_eax = -1; /* force skip of syscall restarting */ | 728 | regs->orig_eax = -1; /* force skip of syscall restarting */ |
729 | if (unlikely(current->audit_context)) | 729 | if (unlikely(current->audit_context)) |
730 | audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), | 730 | audit_syscall_exit(AUDITSC_RESULT(regs->eax), regs->eax); |
731 | regs->eax); | ||
732 | return 1; | 731 | return 1; |
733 | } | 732 | } |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 80cb3b2d0997..d77e89ac0d54 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -970,8 +970,10 @@ efi_memory_present_wrapper(unsigned long start, unsigned long end, void *arg) | |||
970 | * not-overlapping, which is the case | 970 | * not-overlapping, which is the case |
971 | */ | 971 | */ |
972 | int __init | 972 | int __init |
973 | e820_all_mapped(unsigned long start, unsigned long end, unsigned type) | 973 | e820_all_mapped(unsigned long s, unsigned long e, unsigned type) |
974 | { | 974 | { |
975 | u64 start = s; | ||
976 | u64 end = e; | ||
975 | int i; | 977 | int i; |
976 | for (i = 0; i < e820.nr_map; i++) { | 978 | for (i = 0; i < e820.nr_map; i++) { |
977 | struct e820entry *ei = &e820.map[i]; | 979 | struct e820entry *ei = &e820.map[i]; |
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index a6969903f2d6..825b2b4ca721 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -313,7 +313,9 @@ static void __init synchronize_tsc_bp (void) | |||
313 | if (tsc_values[i] < avg) | 313 | if (tsc_values[i] < avg) |
314 | realdelta = -realdelta; | 314 | realdelta = -realdelta; |
315 | 315 | ||
316 | printk(KERN_INFO "CPU#%d had %ld usecs TSC skew, fixed it up.\n", i, realdelta); | 316 | if (realdelta > 0) |
317 | printk(KERN_INFO "CPU#%d had %ld usecs TSC " | ||
318 | "skew, fixed it up.\n", i, realdelta); | ||
317 | } | 319 | } |
318 | 320 | ||
319 | sum += delta; | 321 | sum += delta; |
diff --git a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c index 5e41ee29c8cf..f1187ddb0d0f 100644 --- a/arch/i386/kernel/timers/timer_tsc.c +++ b/arch/i386/kernel/timers/timer_tsc.c | |||
@@ -279,7 +279,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | |||
279 | { | 279 | { |
280 | struct cpufreq_freqs *freq = data; | 280 | struct cpufreq_freqs *freq = data; |
281 | 281 | ||
282 | if (val != CPUFREQ_RESUMECHANGE) | 282 | if (val != CPUFREQ_RESUMECHANGE && val != CPUFREQ_SUSPENDCHANGE) |
283 | write_seqlock_irq(&xtime_lock); | 283 | write_seqlock_irq(&xtime_lock); |
284 | if (!ref_freq) { | 284 | if (!ref_freq) { |
285 | if (!freq->old){ | 285 | if (!freq->old){ |
@@ -312,7 +312,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | |||
312 | } | 312 | } |
313 | 313 | ||
314 | end: | 314 | end: |
315 | if (val != CPUFREQ_RESUMECHANGE) | 315 | if (val != CPUFREQ_RESUMECHANGE && val != CPUFREQ_SUSPENDCHANGE) |
316 | write_sequnlock_irq(&xtime_lock); | 316 | write_sequnlock_irq(&xtime_lock); |
317 | 317 | ||
318 | return 0; | 318 | return 0; |
diff --git a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c index aee14fafd13d..00e0118e717c 100644 --- a/arch/i386/kernel/vm86.c +++ b/arch/i386/kernel/vm86.c | |||
@@ -312,7 +312,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk | |||
312 | 312 | ||
313 | /*call audit_syscall_exit since we do not exit via the normal paths */ | 313 | /*call audit_syscall_exit since we do not exit via the normal paths */ |
314 | if (unlikely(current->audit_context)) | 314 | if (unlikely(current->audit_context)) |
315 | audit_syscall_exit(current, AUDITSC_RESULT(eax), eax); | 315 | audit_syscall_exit(AUDITSC_RESULT(eax), eax); |
316 | 316 | ||
317 | __asm__ __volatile__( | 317 | __asm__ __volatile__( |
318 | "movl %0,%%esp\n\t" | 318 | "movl %0,%%esp\n\t" |
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c index 73235443fda7..06dab00aaadc 100644 --- a/arch/i386/pci/irq.c +++ b/arch/i386/pci/irq.c | |||
@@ -591,7 +591,6 @@ static __init int via_router_probe(struct irq_router *r, | |||
591 | case PCI_DEVICE_ID_VIA_8233A: | 591 | case PCI_DEVICE_ID_VIA_8233A: |
592 | case PCI_DEVICE_ID_VIA_8235: | 592 | case PCI_DEVICE_ID_VIA_8235: |
593 | case PCI_DEVICE_ID_VIA_8237: | 593 | case PCI_DEVICE_ID_VIA_8237: |
594 | case PCI_DEVICE_ID_VIA_8237_SATA: | ||
595 | /* FIXME: add new ones for 8233/5 */ | 594 | /* FIXME: add new ones for 8233/5 */ |
596 | r->name = "VIA"; | 595 | r->name = "VIA"; |
597 | r->get = pirq_via_get; | 596 | r->get = pirq_via_get; |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 9f40eeff0b5c..0f3076a820c3 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -413,6 +413,8 @@ config IA64_PALINFO | |||
413 | config SGI_SN | 413 | config SGI_SN |
414 | def_bool y if (IA64_SGI_SN2 || IA64_GENERIC) | 414 | def_bool y if (IA64_SGI_SN2 || IA64_GENERIC) |
415 | 415 | ||
416 | source "drivers/sn/Kconfig" | ||
417 | |||
416 | source "drivers/firmware/Kconfig" | 418 | source "drivers/firmware/Kconfig" |
417 | 419 | ||
418 | source "fs/Kconfig.binfmt" | 420 | source "fs/Kconfig.binfmt" |
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index a718034d68d0..f6a8853cd1b4 100644 --- a/arch/ia64/configs/sn2_defconfig +++ b/arch/ia64/configs/sn2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc5 | 3 | # Linux kernel version: 2.6.17-rc3 |
4 | # Mon Feb 27 16:06:38 2006 | 4 | # Thu Apr 27 11:48:23 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
@@ -24,6 +24,7 @@ CONFIG_SYSCTL=y | |||
24 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
25 | # CONFIG_IKCONFIG is not set | 25 | # CONFIG_IKCONFIG is not set |
26 | CONFIG_CPUSETS=y | 26 | CONFIG_CPUSETS=y |
27 | CONFIG_RELAY=y | ||
27 | CONFIG_INITRAMFS_SOURCE="" | 28 | CONFIG_INITRAMFS_SOURCE="" |
28 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
29 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
@@ -38,10 +39,6 @@ CONFIG_BASE_FULL=y | |||
38 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
39 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
40 | CONFIG_SHMEM=y | 41 | CONFIG_SHMEM=y |
41 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
42 | CONFIG_CC_ALIGN_LABELS=0 | ||
43 | CONFIG_CC_ALIGN_LOOPS=0 | ||
44 | CONFIG_CC_ALIGN_JUMPS=0 | ||
45 | CONFIG_SLAB=y | 42 | CONFIG_SLAB=y |
46 | # CONFIG_TINY_SHMEM is not set | 43 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 44 | CONFIG_BASE_SMALL=0 |
@@ -53,7 +50,6 @@ CONFIG_BASE_SMALL=0 | |||
53 | CONFIG_MODULES=y | 50 | CONFIG_MODULES=y |
54 | CONFIG_MODULE_UNLOAD=y | 51 | CONFIG_MODULE_UNLOAD=y |
55 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 52 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
56 | CONFIG_OBSOLETE_MODPARM=y | ||
57 | # CONFIG_MODVERSIONS is not set | 53 | # CONFIG_MODVERSIONS is not set |
58 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 54 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
59 | CONFIG_KMOD=y | 55 | CONFIG_KMOD=y |
@@ -62,6 +58,7 @@ CONFIG_STOP_MACHINE=y | |||
62 | # | 58 | # |
63 | # Block layer | 59 | # Block layer |
64 | # | 60 | # |
61 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
65 | 62 | ||
66 | # | 63 | # |
67 | # IO Schedulers | 64 | # IO Schedulers |
@@ -84,8 +81,10 @@ CONFIG_64BIT=y | |||
84 | CONFIG_MMU=y | 81 | CONFIG_MMU=y |
85 | CONFIG_SWIOTLB=y | 82 | CONFIG_SWIOTLB=y |
86 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 83 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
84 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
87 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 85 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
88 | CONFIG_TIME_INTERPOLATION=y | 86 | CONFIG_TIME_INTERPOLATION=y |
87 | CONFIG_DMI=y | ||
89 | CONFIG_EFI=y | 88 | CONFIG_EFI=y |
90 | CONFIG_GENERIC_IOMAP=y | 89 | CONFIG_GENERIC_IOMAP=y |
91 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 90 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
@@ -116,7 +115,6 @@ CONFIG_IA64_SGI_SN_XP=m | |||
116 | CONFIG_FORCE_MAX_ZONEORDER=17 | 115 | CONFIG_FORCE_MAX_ZONEORDER=17 |
117 | CONFIG_SMP=y | 116 | CONFIG_SMP=y |
118 | CONFIG_NR_CPUS=1024 | 117 | CONFIG_NR_CPUS=1024 |
119 | CONFIG_IA64_NR_NODES=256 | ||
120 | # CONFIG_HOTPLUG_CPU is not set | 118 | # CONFIG_HOTPLUG_CPU is not set |
121 | CONFIG_SCHED_SMT=y | 119 | CONFIG_SCHED_SMT=y |
122 | CONFIG_PREEMPT=y | 120 | CONFIG_PREEMPT=y |
@@ -136,6 +134,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y | |||
136 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 134 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
137 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y | 135 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y |
138 | CONFIG_NUMA=y | 136 | CONFIG_NUMA=y |
137 | CONFIG_NODES_SHIFT=8 | ||
139 | CONFIG_VIRTUAL_MEM_MAP=y | 138 | CONFIG_VIRTUAL_MEM_MAP=y |
140 | CONFIG_HOLES_IN_ZONE=y | 139 | CONFIG_HOLES_IN_ZONE=y |
141 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | 140 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y |
@@ -187,7 +186,6 @@ CONFIG_ACPI_SYSTEM=y | |||
187 | CONFIG_PCI=y | 186 | CONFIG_PCI=y |
188 | CONFIG_PCI_DOMAINS=y | 187 | CONFIG_PCI_DOMAINS=y |
189 | # CONFIG_PCI_MSI is not set | 188 | # CONFIG_PCI_MSI is not set |
190 | CONFIG_PCI_LEGACY_PROC=y | ||
191 | # CONFIG_PCI_DEBUG is not set | 189 | # CONFIG_PCI_DEBUG is not set |
192 | 190 | ||
193 | # | 191 | # |
@@ -231,6 +229,7 @@ CONFIG_SYN_COOKIES=y | |||
231 | # CONFIG_INET_AH is not set | 229 | # CONFIG_INET_AH is not set |
232 | # CONFIG_INET_ESP is not set | 230 | # CONFIG_INET_ESP is not set |
233 | # CONFIG_INET_IPCOMP is not set | 231 | # CONFIG_INET_IPCOMP is not set |
232 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
234 | # CONFIG_INET_TUNNEL is not set | 233 | # CONFIG_INET_TUNNEL is not set |
235 | CONFIG_INET_DIAG=m | 234 | CONFIG_INET_DIAG=m |
236 | CONFIG_INET_TCP_DIAG=m | 235 | CONFIG_INET_TCP_DIAG=m |
@@ -238,9 +237,11 @@ CONFIG_INET_TCP_DIAG=m | |||
238 | CONFIG_TCP_CONG_BIC=y | 237 | CONFIG_TCP_CONG_BIC=y |
239 | CONFIG_IPV6=m | 238 | CONFIG_IPV6=m |
240 | # CONFIG_IPV6_PRIVACY is not set | 239 | # CONFIG_IPV6_PRIVACY is not set |
240 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
241 | # CONFIG_INET6_AH is not set | 241 | # CONFIG_INET6_AH is not set |
242 | # CONFIG_INET6_ESP is not set | 242 | # CONFIG_INET6_ESP is not set |
243 | # CONFIG_INET6_IPCOMP is not set | 243 | # CONFIG_INET6_IPCOMP is not set |
244 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
244 | # CONFIG_INET6_TUNNEL is not set | 245 | # CONFIG_INET6_TUNNEL is not set |
245 | # CONFIG_IPV6_TUNNEL is not set | 246 | # CONFIG_IPV6_TUNNEL is not set |
246 | # CONFIG_NETFILTER is not set | 247 | # CONFIG_NETFILTER is not set |
@@ -468,9 +469,14 @@ CONFIG_SCSI_SATA_VITESSE=y | |||
468 | # CONFIG_SCSI_INIA100 is not set | 469 | # CONFIG_SCSI_INIA100 is not set |
469 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 470 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
470 | # CONFIG_SCSI_IPR is not set | 471 | # CONFIG_SCSI_IPR is not set |
471 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
472 | CONFIG_SCSI_QLOGIC_1280=y | 472 | CONFIG_SCSI_QLOGIC_1280=y |
473 | # CONFIG_SCSI_QLA_FC is not set | 473 | CONFIG_SCSI_QLA_FC=y |
474 | CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y | ||
475 | # CONFIG_SCSI_QLA21XX is not set | ||
476 | CONFIG_SCSI_QLA22XX=y | ||
477 | CONFIG_SCSI_QLA2300=y | ||
478 | CONFIG_SCSI_QLA2322=y | ||
479 | # CONFIG_SCSI_QLA24XX is not set | ||
474 | # CONFIG_SCSI_LPFC is not set | 480 | # CONFIG_SCSI_LPFC is not set |
475 | # CONFIG_SCSI_DC395x is not set | 481 | # CONFIG_SCSI_DC395x is not set |
476 | # CONFIG_SCSI_DC390T is not set | 482 | # CONFIG_SCSI_DC390T is not set |
@@ -486,6 +492,7 @@ CONFIG_MD_RAID0=y | |||
486 | CONFIG_MD_RAID1=y | 492 | CONFIG_MD_RAID1=y |
487 | # CONFIG_MD_RAID10 is not set | 493 | # CONFIG_MD_RAID10 is not set |
488 | CONFIG_MD_RAID5=y | 494 | CONFIG_MD_RAID5=y |
495 | # CONFIG_MD_RAID5_RESHAPE is not set | ||
489 | # CONFIG_MD_RAID6 is not set | 496 | # CONFIG_MD_RAID6 is not set |
490 | CONFIG_MD_MULTIPATH=y | 497 | CONFIG_MD_MULTIPATH=y |
491 | # CONFIG_MD_FAULTY is not set | 498 | # CONFIG_MD_FAULTY is not set |
@@ -694,6 +701,7 @@ CONFIG_EFI_RTC=y | |||
694 | # Ftape, the floppy tape device driver | 701 | # Ftape, the floppy tape device driver |
695 | # | 702 | # |
696 | CONFIG_AGP=y | 703 | CONFIG_AGP=y |
704 | # CONFIG_AGP_VIA is not set | ||
697 | CONFIG_AGP_SGI_TIOCA=y | 705 | CONFIG_AGP_SGI_TIOCA=y |
698 | # CONFIG_DRM is not set | 706 | # CONFIG_DRM is not set |
699 | CONFIG_RAW_DRIVER=m | 707 | CONFIG_RAW_DRIVER=m |
@@ -735,10 +743,6 @@ CONFIG_MMTIMER=y | |||
735 | # | 743 | # |
736 | 744 | ||
737 | # | 745 | # |
738 | # Multimedia Capabilities Port drivers | ||
739 | # | ||
740 | |||
741 | # | ||
742 | # Multimedia devices | 746 | # Multimedia devices |
743 | # | 747 | # |
744 | # CONFIG_VIDEO_DEV is not set | 748 | # CONFIG_VIDEO_DEV is not set |
@@ -747,6 +751,7 @@ CONFIG_MMTIMER=y | |||
747 | # Digital Video Broadcasting Devices | 751 | # Digital Video Broadcasting Devices |
748 | # | 752 | # |
749 | # CONFIG_DVB is not set | 753 | # CONFIG_DVB is not set |
754 | # CONFIG_USB_DABUSB is not set | ||
750 | 755 | ||
751 | # | 756 | # |
752 | # Graphics support | 757 | # Graphics support |
@@ -757,6 +762,7 @@ CONFIG_MMTIMER=y | |||
757 | # Console display driver support | 762 | # Console display driver support |
758 | # | 763 | # |
759 | CONFIG_VGA_CONSOLE=y | 764 | CONFIG_VGA_CONSOLE=y |
765 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
760 | CONFIG_DUMMY_CONSOLE=y | 766 | CONFIG_DUMMY_CONSOLE=y |
761 | 767 | ||
762 | # | 768 | # |
@@ -769,6 +775,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
769 | # | 775 | # |
770 | CONFIG_USB_ARCH_HAS_HCD=y | 776 | CONFIG_USB_ARCH_HAS_HCD=y |
771 | CONFIG_USB_ARCH_HAS_OHCI=y | 777 | CONFIG_USB_ARCH_HAS_OHCI=y |
778 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
772 | CONFIG_USB=m | 779 | CONFIG_USB=m |
773 | # CONFIG_USB_DEBUG is not set | 780 | # CONFIG_USB_DEBUG is not set |
774 | 781 | ||
@@ -829,9 +836,7 @@ CONFIG_USB_HIDINPUT=y | |||
829 | # CONFIG_USB_ACECAD is not set | 836 | # CONFIG_USB_ACECAD is not set |
830 | # CONFIG_USB_KBTAB is not set | 837 | # CONFIG_USB_KBTAB is not set |
831 | # CONFIG_USB_POWERMATE is not set | 838 | # CONFIG_USB_POWERMATE is not set |
832 | # CONFIG_USB_MTOUCH is not set | 839 | # CONFIG_USB_TOUCHSCREEN is not set |
833 | # CONFIG_USB_ITMTOUCH is not set | ||
834 | # CONFIG_USB_EGALAX is not set | ||
835 | # CONFIG_USB_YEALINK is not set | 840 | # CONFIG_USB_YEALINK is not set |
836 | # CONFIG_USB_XPAD is not set | 841 | # CONFIG_USB_XPAD is not set |
837 | # CONFIG_USB_ATI_REMOTE is not set | 842 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -846,15 +851,6 @@ CONFIG_USB_HIDINPUT=y | |||
846 | # CONFIG_USB_MICROTEK is not set | 851 | # CONFIG_USB_MICROTEK is not set |
847 | 852 | ||
848 | # | 853 | # |
849 | # USB Multimedia devices | ||
850 | # | ||
851 | # CONFIG_USB_DABUSB is not set | ||
852 | |||
853 | # | ||
854 | # Video4Linux support is needed for USB Multimedia device support | ||
855 | # | ||
856 | |||
857 | # | ||
858 | # USB Network Adapters | 854 | # USB Network Adapters |
859 | # | 855 | # |
860 | # CONFIG_USB_CATC is not set | 856 | # CONFIG_USB_CATC is not set |
@@ -905,15 +901,29 @@ CONFIG_USB_MON=y | |||
905 | # CONFIG_MMC is not set | 901 | # CONFIG_MMC is not set |
906 | 902 | ||
907 | # | 903 | # |
904 | # LED devices | ||
905 | # | ||
906 | # CONFIG_NEW_LEDS is not set | ||
907 | |||
908 | # | ||
909 | # LED drivers | ||
910 | # | ||
911 | |||
912 | # | ||
913 | # LED Triggers | ||
914 | # | ||
915 | |||
916 | # | ||
908 | # InfiniBand support | 917 | # InfiniBand support |
909 | # | 918 | # |
910 | CONFIG_INFINIBAND=m | 919 | CONFIG_INFINIBAND=m |
911 | # CONFIG_INFINIBAND_USER_MAD is not set | 920 | # CONFIG_INFINIBAND_USER_MAD is not set |
912 | CONFIG_INFINIBAND_USER_ACCESS=m | 921 | CONFIG_INFINIBAND_USER_ACCESS=m |
913 | CONFIG_INFINIBAND_MTHCA=m | 922 | CONFIG_INFINIBAND_MTHCA=m |
914 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 923 | CONFIG_INFINIBAND_MTHCA_DEBUG=y |
915 | CONFIG_INFINIBAND_IPOIB=m | 924 | CONFIG_INFINIBAND_IPOIB=m |
916 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set | 925 | CONFIG_INFINIBAND_IPOIB_DEBUG=y |
926 | # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set | ||
917 | CONFIG_INFINIBAND_SRP=m | 927 | CONFIG_INFINIBAND_SRP=m |
918 | 928 | ||
919 | # | 929 | # |
@@ -923,8 +933,13 @@ CONFIG_SGI_IOC4=y | |||
923 | CONFIG_SGI_IOC3=y | 933 | CONFIG_SGI_IOC3=y |
924 | 934 | ||
925 | # | 935 | # |
926 | # EDAC - error detection and reporting (RAS) | 936 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
937 | # | ||
938 | |||
939 | # | ||
940 | # Real Time Clock | ||
927 | # | 941 | # |
942 | # CONFIG_RTC_CLASS is not set | ||
928 | 943 | ||
929 | # | 944 | # |
930 | # File systems | 945 | # File systems |
@@ -997,7 +1012,6 @@ CONFIG_TMPFS=y | |||
997 | CONFIG_HUGETLBFS=y | 1012 | CONFIG_HUGETLBFS=y |
998 | CONFIG_HUGETLB_PAGE=y | 1013 | CONFIG_HUGETLB_PAGE=y |
999 | CONFIG_RAMFS=y | 1014 | CONFIG_RAMFS=y |
1000 | CONFIG_RELAYFS_FS=m | ||
1001 | # CONFIG_CONFIGFS_FS is not set | 1015 | # CONFIG_CONFIGFS_FS is not set |
1002 | 1016 | ||
1003 | # | 1017 | # |
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c index 4e7a6a1ec6c7..da03c06744f1 100644 --- a/arch/ia64/ia32/binfmt_elf32.c +++ b/arch/ia64/ia32/binfmt_elf32.c | |||
@@ -35,6 +35,9 @@ extern void ia64_elf32_init (struct pt_regs *regs); | |||
35 | 35 | ||
36 | static void elf32_set_personality (void); | 36 | static void elf32_set_personality (void); |
37 | 37 | ||
38 | static unsigned long __attribute ((unused)) | ||
39 | randomize_stack_top(unsigned long stack_top); | ||
40 | |||
38 | #define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec) | 41 | #define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec) |
39 | #define elf_map elf32_map | 42 | #define elf_map elf32_map |
40 | 43 | ||
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S index 95fe04400f6b..a32cd59b81ed 100644 --- a/arch/ia64/ia32/ia32_entry.S +++ b/arch/ia64/ia32/ia32_entry.S | |||
@@ -334,7 +334,7 @@ ia32_syscall_table: | |||
334 | data8 sys_setdomainname | 334 | data8 sys_setdomainname |
335 | data8 sys32_newuname | 335 | data8 sys32_newuname |
336 | data8 sys32_modify_ldt | 336 | data8 sys32_modify_ldt |
337 | data8 sys_ni_syscall /* adjtimex */ | 337 | data8 compat_sys_adjtimex |
338 | data8 sys32_mprotect /* 125 */ | 338 | data8 sys32_mprotect /* 125 */ |
339 | data8 compat_sys_sigprocmask | 339 | data8 compat_sys_sigprocmask |
340 | data8 sys_ni_syscall /* create_module */ | 340 | data8 sys_ni_syscall /* create_module */ |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index e30798811216..bcb80ca5cf40 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -1610,5 +1610,6 @@ sys_call_table: | |||
1610 | data8 sys_get_robust_list | 1610 | data8 sys_get_robust_list |
1611 | data8 sys_sync_file_range // 1300 | 1611 | data8 sys_sync_file_range // 1300 |
1612 | data8 sys_tee | 1612 | data8 sys_tee |
1613 | data8 sys_vmsplice | ||
1613 | 1614 | ||
1614 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls | 1615 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls |
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index 37c88eb55873..ca6666b51ccb 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c | |||
@@ -62,6 +62,11 @@ typedef enum { | |||
62 | ISOLATE_NONE | 62 | ISOLATE_NONE |
63 | } isolate_status_t; | 63 | } isolate_status_t; |
64 | 64 | ||
65 | typedef enum { | ||
66 | MCA_NOT_RECOVERED = 0, | ||
67 | MCA_RECOVERED = 1 | ||
68 | } recovery_status_t; | ||
69 | |||
65 | /* | 70 | /* |
66 | * This pool keeps pointers to the section part of SAL error record | 71 | * This pool keeps pointers to the section part of SAL error record |
67 | */ | 72 | */ |
@@ -71,6 +76,18 @@ static struct { | |||
71 | int max_idx; /* Maximum index of section pointer list pool */ | 76 | int max_idx; /* Maximum index of section pointer list pool */ |
72 | } slidx_pool; | 77 | } slidx_pool; |
73 | 78 | ||
79 | static int | ||
80 | fatal_mca(const char *fmt, ...) | ||
81 | { | ||
82 | va_list args; | ||
83 | |||
84 | va_start(args, fmt); | ||
85 | vprintk(fmt, args); | ||
86 | va_end(args); | ||
87 | |||
88 | return MCA_NOT_RECOVERED; | ||
89 | } | ||
90 | |||
74 | /** | 91 | /** |
75 | * mca_page_isolate - isolate a poisoned page in order not to use it later | 92 | * mca_page_isolate - isolate a poisoned page in order not to use it later |
76 | * @paddr: poisoned memory location | 93 | * @paddr: poisoned memory location |
@@ -424,7 +441,7 @@ recover_from_read_error(slidx_table_t *slidx, | |||
424 | 441 | ||
425 | /* Is target address valid? */ | 442 | /* Is target address valid? */ |
426 | if (!pbci->tv) | 443 | if (!pbci->tv) |
427 | return 0; | 444 | return fatal_mca(KERN_ALERT "MCA: target address not valid\n"); |
428 | 445 | ||
429 | /* | 446 | /* |
430 | * cpu read or memory-mapped io read | 447 | * cpu read or memory-mapped io read |
@@ -442,7 +459,7 @@ recover_from_read_error(slidx_table_t *slidx, | |||
442 | 459 | ||
443 | /* Is minstate valid? */ | 460 | /* Is minstate valid? */ |
444 | if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate)) | 461 | if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate)) |
445 | return 0; | 462 | return fatal_mca(KERN_ALERT "MCA: minstate not valid\n"); |
446 | psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); | 463 | psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); |
447 | psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr); | 464 | psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr); |
448 | 465 | ||
@@ -476,12 +493,13 @@ recover_from_read_error(slidx_table_t *slidx, | |||
476 | psr2->bn = 1; | 493 | psr2->bn = 1; |
477 | psr2->i = 0; | 494 | psr2->i = 0; |
478 | 495 | ||
479 | return 1; | 496 | return MCA_RECOVERED; |
480 | } | 497 | } |
481 | 498 | ||
482 | } | 499 | } |
483 | 500 | ||
484 | return 0; | 501 | return fatal_mca(KERN_ALERT "MCA: kernel context not recovered," |
502 | " iip 0x%lx\n", pmsa->pmsa_iip); | ||
485 | } | 503 | } |
486 | 504 | ||
487 | /** | 505 | /** |
@@ -567,13 +585,13 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
567 | * The machine check is corrected. | 585 | * The machine check is corrected. |
568 | */ | 586 | */ |
569 | if (psp->cm == 1) | 587 | if (psp->cm == 1) |
570 | return 1; | 588 | return MCA_RECOVERED; |
571 | 589 | ||
572 | /* | 590 | /* |
573 | * The error was not contained. Software must be reset. | 591 | * The error was not contained. Software must be reset. |
574 | */ | 592 | */ |
575 | if (psp->us || psp->ci == 0) | 593 | if (psp->us || psp->ci == 0) |
576 | return 0; | 594 | return fatal_mca(KERN_ALERT "MCA: error not contained\n"); |
577 | 595 | ||
578 | /* | 596 | /* |
579 | * The cache check and bus check bits have four possible states | 597 | * The cache check and bus check bits have four possible states |
@@ -584,20 +602,22 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
584 | * 1 1 Memory error, attempt recovery | 602 | * 1 1 Memory error, attempt recovery |
585 | */ | 603 | */ |
586 | if (psp->bc == 0 || pbci == NULL) | 604 | if (psp->bc == 0 || pbci == NULL) |
587 | return 0; | 605 | return fatal_mca(KERN_ALERT "MCA: No bus check\n"); |
588 | 606 | ||
589 | /* | 607 | /* |
590 | * Sorry, we cannot handle so many. | 608 | * Sorry, we cannot handle so many. |
591 | */ | 609 | */ |
592 | if (peidx_bus_check_num(peidx) > 1) | 610 | if (peidx_bus_check_num(peidx) > 1) |
593 | return 0; | 611 | return fatal_mca(KERN_ALERT "MCA: Too many bus checks\n"); |
594 | /* | 612 | /* |
595 | * Well, here is only one bus error. | 613 | * Well, here is only one bus error. |
596 | */ | 614 | */ |
597 | if (pbci->ib || pbci->cc) | 615 | if (pbci->ib) |
598 | return 0; | 616 | return fatal_mca(KERN_ALERT "MCA: Internal Bus error\n"); |
617 | if (pbci->cc) | ||
618 | return fatal_mca(KERN_ALERT "MCA: Cache-cache error\n"); | ||
599 | if (pbci->eb && pbci->bsi > 0) | 619 | if (pbci->eb && pbci->bsi > 0) |
600 | return 0; | 620 | return fatal_mca(KERN_ALERT "MCA: External bus check fatal status\n"); |
601 | 621 | ||
602 | /* | 622 | /* |
603 | * This is a local MCA and estimated as recoverble external bus error. | 623 | * This is a local MCA and estimated as recoverble external bus error. |
@@ -609,7 +629,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
609 | /* | 629 | /* |
610 | * On account of strange SAL error record, we cannot recover. | 630 | * On account of strange SAL error record, we cannot recover. |
611 | */ | 631 | */ |
612 | return 0; | 632 | return fatal_mca(KERN_ALERT "MCA: Strange SAL record\n"); |
613 | } | 633 | } |
614 | 634 | ||
615 | /** | 635 | /** |
@@ -638,12 +658,10 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos) | |||
638 | 658 | ||
639 | /* Now, OS can recover when there is one processor error section */ | 659 | /* Now, OS can recover when there is one processor error section */ |
640 | if (n_proc_err > 1) | 660 | if (n_proc_err > 1) |
641 | return 0; | 661 | return fatal_mca(KERN_ALERT "MCA: Too Many Errors\n"); |
642 | else if (n_proc_err == 0) { | 662 | else if (n_proc_err == 0) |
643 | /* Weird SAL record ... We need not to recover */ | 663 | /* Weird SAL record ... We need not to recover */ |
644 | 664 | return fatal_mca(KERN_ALERT "MCA: Weird SAL record\n"); | |
645 | return 1; | ||
646 | } | ||
647 | 665 | ||
648 | /* Make index of processor error section */ | 666 | /* Make index of processor error section */ |
649 | mca_make_peidx((sal_log_processor_info_t*) | 667 | mca_make_peidx((sal_log_processor_info_t*) |
@@ -654,7 +672,7 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos) | |||
654 | 672 | ||
655 | /* Check whether MCA is global or not */ | 673 | /* Check whether MCA is global or not */ |
656 | if (is_mca_global(&peidx, &pbci, sos)) | 674 | if (is_mca_global(&peidx, &pbci, sos)) |
657 | return 0; | 675 | return fatal_mca(KERN_ALERT "MCA: global MCA\n"); |
658 | 676 | ||
659 | /* Try to recover a processor error */ | 677 | /* Try to recover a processor error */ |
660 | return recover_from_processor_error(platform_err, &slidx, &peidx, | 678 | return recover_from_processor_error(platform_err, &slidx, &peidx, |
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c index 6386f63c413e..859fb37ff49b 100644 --- a/arch/ia64/kernel/palinfo.c +++ b/arch/ia64/kernel/palinfo.c | |||
@@ -959,7 +959,7 @@ remove_palinfo_proc_entries(unsigned int hcpu) | |||
959 | } | 959 | } |
960 | } | 960 | } |
961 | 961 | ||
962 | static int __devinit palinfo_cpu_callback(struct notifier_block *nfb, | 962 | static int palinfo_cpu_callback(struct notifier_block *nfb, |
963 | unsigned long action, | 963 | unsigned long action, |
964 | void *hcpu) | 964 | void *hcpu) |
965 | { | 965 | { |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 9887c8787e7a..e61e15e28d8b 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -1644,7 +1644,7 @@ syscall_trace_enter (long arg0, long arg1, long arg2, long arg3, | |||
1644 | arch = AUDIT_ARCH_IA64; | 1644 | arch = AUDIT_ARCH_IA64; |
1645 | } | 1645 | } |
1646 | 1646 | ||
1647 | audit_syscall_entry(current, arch, syscall, arg0, arg1, arg2, arg3); | 1647 | audit_syscall_entry(arch, syscall, arg0, arg1, arg2, arg3); |
1648 | } | 1648 | } |
1649 | 1649 | ||
1650 | } | 1650 | } |
@@ -1662,7 +1662,7 @@ syscall_trace_leave (long arg0, long arg1, long arg2, long arg3, | |||
1662 | 1662 | ||
1663 | if (success != AUDITSC_SUCCESS) | 1663 | if (success != AUDITSC_SUCCESS) |
1664 | result = -result; | 1664 | result = -result; |
1665 | audit_syscall_exit(current, success, result); | 1665 | audit_syscall_exit(success, result); |
1666 | } | 1666 | } |
1667 | 1667 | ||
1668 | if (test_thread_flag(TIF_SYSCALL_TRACE) | 1668 | if (test_thread_flag(TIF_SYSCALL_TRACE) |
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c index 9d5a823479a3..663a186ad194 100644 --- a/arch/ia64/kernel/salinfo.c +++ b/arch/ia64/kernel/salinfo.c | |||
@@ -572,7 +572,7 @@ static struct file_operations salinfo_data_fops = { | |||
572 | }; | 572 | }; |
573 | 573 | ||
574 | #ifdef CONFIG_HOTPLUG_CPU | 574 | #ifdef CONFIG_HOTPLUG_CPU |
575 | static int __devinit | 575 | static int |
576 | salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu) | 576 | salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu) |
577 | { | 577 | { |
578 | unsigned int i, cpu = (unsigned long)hcpu; | 578 | unsigned int i, cpu = (unsigned long)hcpu; |
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c index b47476d655f1..4f3a16b37f8f 100644 --- a/arch/ia64/kernel/topology.c +++ b/arch/ia64/kernel/topology.c | |||
@@ -305,13 +305,10 @@ static struct kobj_type cache_ktype_percpu_entry = { | |||
305 | 305 | ||
306 | static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu) | 306 | static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu) |
307 | { | 307 | { |
308 | if (all_cpu_cache_info[cpu].cache_leaves) { | 308 | kfree(all_cpu_cache_info[cpu].cache_leaves); |
309 | kfree(all_cpu_cache_info[cpu].cache_leaves); | 309 | all_cpu_cache_info[cpu].cache_leaves = NULL; |
310 | all_cpu_cache_info[cpu].cache_leaves = NULL; | ||
311 | } | ||
312 | all_cpu_cache_info[cpu].num_cache_leaves = 0; | 310 | all_cpu_cache_info[cpu].num_cache_leaves = 0; |
313 | memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject)); | 311 | memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject)); |
314 | |||
315 | return; | 312 | return; |
316 | } | 313 | } |
317 | 314 | ||
@@ -429,7 +426,7 @@ static int __cpuinit cache_remove_dev(struct sys_device * sys_dev) | |||
429 | * When a cpu is hot-plugged, do a check and initiate | 426 | * When a cpu is hot-plugged, do a check and initiate |
430 | * cache kobject if necessary | 427 | * cache kobject if necessary |
431 | */ | 428 | */ |
432 | static int __cpuinit cache_cpu_callback(struct notifier_block *nfb, | 429 | static int cache_cpu_callback(struct notifier_block *nfb, |
433 | unsigned long action, void *hcpu) | 430 | unsigned long action, void *hcpu) |
434 | { | 431 | { |
435 | unsigned int cpu = (unsigned long)hcpu; | 432 | unsigned int cpu = (unsigned long)hcpu; |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 9ba32b2d96d0..ab829a22f8a4 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/hw_irq.h> | 32 | #include <asm/hw_irq.h> |
33 | 33 | ||
34 | |||
35 | /* | 34 | /* |
36 | * Low-level SAL-based PCI configuration access functions. Note that SAL | 35 | * Low-level SAL-based PCI configuration access functions. Note that SAL |
37 | * calls are already serialized (via sal_lock), so we don't need another | 36 | * calls are already serialized (via sal_lock), so we don't need another |
@@ -707,7 +706,7 @@ int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
707 | * | 706 | * |
708 | * Simply writes @size bytes of @val to @port. | 707 | * Simply writes @size bytes of @val to @port. |
709 | */ | 708 | */ |
710 | int ia64_pci_legacy_write(struct pci_dev *bus, u16 port, u32 val, u8 size) | 709 | int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) |
711 | { | 710 | { |
712 | int ret = size; | 711 | int ret = size; |
713 | 712 | ||
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index d917afa30b27..739c948dc504 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -284,6 +284,8 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb | |||
284 | /* find nearest node with cpus and nearest memory */ | 284 | /* find nearest node with cpus and nearest memory */ |
285 | for (router=NULL, j=0; j < op->ports; j++) { | 285 | for (router=NULL, j=0; j < op->ports; j++) { |
286 | dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id); | 286 | dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id); |
287 | if (dest && SN_HWPERF_IS_ROUTER(dest)) | ||
288 | router = dest; | ||
287 | if (!dest || SN_HWPERF_FOREIGN(dest) || | 289 | if (!dest || SN_HWPERF_FOREIGN(dest) || |
288 | !SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) { | 290 | !SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) { |
289 | continue; | 291 | continue; |
@@ -299,8 +301,6 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb | |||
299 | *near_mem_node = c; | 301 | *near_mem_node = c; |
300 | found_mem++; | 302 | found_mem++; |
301 | } | 303 | } |
302 | if (SN_HWPERF_IS_ROUTER(dest)) | ||
303 | router = dest; | ||
304 | } | 304 | } |
305 | 305 | ||
306 | if (router && (!found_cpu || !found_mem)) { | 306 | if (router && (!found_cpu || !found_mem)) { |
@@ -493,7 +493,7 @@ static int sn_topology_show(struct seq_file *s, void *d) | |||
493 | * numalink ports | 493 | * numalink ports |
494 | */ | 494 | */ |
495 | sz = obj->ports * sizeof(struct sn_hwperf_port_info); | 495 | sz = obj->ports * sizeof(struct sn_hwperf_port_info); |
496 | if ((ptdata = vmalloc(sz)) == NULL) | 496 | if ((ptdata = kmalloc(sz, GFP_KERNEL)) == NULL) |
497 | return -ENOMEM; | 497 | return -ENOMEM; |
498 | e = ia64_sn_hwperf_op(sn_hwperf_master_nasid, | 498 | e = ia64_sn_hwperf_op(sn_hwperf_master_nasid, |
499 | SN_HWPERF_ENUM_PORTS, obj->id, sz, | 499 | SN_HWPERF_ENUM_PORTS, obj->id, sz, |
@@ -541,7 +541,7 @@ static int sn_topology_show(struct seq_file *s, void *d) | |||
541 | (SN_HWPERF_IS_NL3ROUTER(obj) || | 541 | (SN_HWPERF_IS_NL3ROUTER(obj) || |
542 | SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4"); | 542 | SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4"); |
543 | } | 543 | } |
544 | vfree(ptdata); | 544 | kfree(ptdata); |
545 | } | 545 | } |
546 | 546 | ||
547 | return 0; | 547 | return 0; |
diff --git a/arch/ia64/sn/kernel/xpc_partition.c b/arch/ia64/sn/kernel/xpc_partition.c index 94211429fd0c..2a89cfce4954 100644 --- a/arch/ia64/sn/kernel/xpc_partition.c +++ b/arch/ia64/sn/kernel/xpc_partition.c | |||
@@ -136,9 +136,7 @@ xpc_get_rsvd_page_pa(int nasid) | |||
136 | } | 136 | } |
137 | 137 | ||
138 | if (L1_CACHE_ALIGN(len) > buf_len) { | 138 | if (L1_CACHE_ALIGN(len) > buf_len) { |
139 | if (buf_base != NULL) { | 139 | kfree(buf_base); |
140 | kfree(buf_base); | ||
141 | } | ||
142 | buf_len = L1_CACHE_ALIGN(len); | 140 | buf_len = L1_CACHE_ALIGN(len); |
143 | buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len, | 141 | buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len, |
144 | GFP_KERNEL, &buf_base); | 142 | GFP_KERNEL, &buf_base); |
@@ -159,9 +157,7 @@ xpc_get_rsvd_page_pa(int nasid) | |||
159 | } | 157 | } |
160 | } | 158 | } |
161 | 159 | ||
162 | if (buf_base != NULL) { | 160 | kfree(buf_base); |
163 | kfree(buf_base); | ||
164 | } | ||
165 | 161 | ||
166 | if (status != SALRET_OK) { | 162 | if (status != SALRET_OK) { |
167 | rp_pa = 0; | 163 | rp_pa = 0; |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index fa073cc4b565..833295624e5d 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -682,9 +682,6 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit) | |||
682 | int ate_index, last_ate, ps; | 682 | int ate_index, last_ate, ps; |
683 | struct tioce *ce_mmr; | 683 | struct tioce *ce_mmr; |
684 | 684 | ||
685 | if (!TIOCE_M32_ADDR(base)) | ||
686 | return; | ||
687 | |||
688 | ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; | 685 | ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; |
689 | ps = ce_kern->ce_ate3240_pagesize; | 686 | ps = ce_kern->ce_ate3240_pagesize; |
690 | ate_index = ATE_PAGE(base, ps); | 687 | ate_index = ATE_PAGE(base, ps); |
@@ -693,6 +690,9 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit) | |||
693 | if (ate_index < 64) | 690 | if (ate_index < 64) |
694 | ate_index = 64; | 691 | ate_index = 64; |
695 | 692 | ||
693 | if (last_ate >= TIOCE_NUM_M3240_ATES) | ||
694 | last_ate = TIOCE_NUM_M3240_ATES - 1; | ||
695 | |||
696 | while (ate_index <= last_ate) { | 696 | while (ate_index <= last_ate) { |
697 | u64 ate; | 697 | u64 ate; |
698 | 698 | ||
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 87f0b79c6b15..ee5fbb02b28f 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1067,6 +1067,7 @@ choice | |||
1067 | config CPU_MIPS32_R1 | 1067 | config CPU_MIPS32_R1 |
1068 | bool "MIPS32 Release 1" | 1068 | bool "MIPS32 Release 1" |
1069 | depends on SYS_HAS_CPU_MIPS32_R1 | 1069 | depends on SYS_HAS_CPU_MIPS32_R1 |
1070 | select CPU_HAS_LLSC | ||
1070 | select CPU_HAS_PREFETCH | 1071 | select CPU_HAS_PREFETCH |
1071 | select CPU_SUPPORTS_32BIT_KERNEL | 1072 | select CPU_SUPPORTS_32BIT_KERNEL |
1072 | select CPU_SUPPORTS_HIGHMEM | 1073 | select CPU_SUPPORTS_HIGHMEM |
@@ -1084,6 +1085,7 @@ config CPU_MIPS32_R1 | |||
1084 | config CPU_MIPS32_R2 | 1085 | config CPU_MIPS32_R2 |
1085 | bool "MIPS32 Release 2" | 1086 | bool "MIPS32 Release 2" |
1086 | depends on SYS_HAS_CPU_MIPS32_R2 | 1087 | depends on SYS_HAS_CPU_MIPS32_R2 |
1088 | select CPU_HAS_LLSC | ||
1087 | select CPU_HAS_PREFETCH | 1089 | select CPU_HAS_PREFETCH |
1088 | select CPU_SUPPORTS_32BIT_KERNEL | 1090 | select CPU_SUPPORTS_32BIT_KERNEL |
1089 | select CPU_SUPPORTS_HIGHMEM | 1091 | select CPU_SUPPORTS_HIGHMEM |
@@ -1097,6 +1099,7 @@ config CPU_MIPS32_R2 | |||
1097 | config CPU_MIPS64_R1 | 1099 | config CPU_MIPS64_R1 |
1098 | bool "MIPS64 Release 1" | 1100 | bool "MIPS64 Release 1" |
1099 | depends on SYS_HAS_CPU_MIPS64_R1 | 1101 | depends on SYS_HAS_CPU_MIPS64_R1 |
1102 | select CPU_HAS_LLSC | ||
1100 | select CPU_HAS_PREFETCH | 1103 | select CPU_HAS_PREFETCH |
1101 | select CPU_SUPPORTS_32BIT_KERNEL | 1104 | select CPU_SUPPORTS_32BIT_KERNEL |
1102 | select CPU_SUPPORTS_64BIT_KERNEL | 1105 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1115,6 +1118,7 @@ config CPU_MIPS64_R1 | |||
1115 | config CPU_MIPS64_R2 | 1118 | config CPU_MIPS64_R2 |
1116 | bool "MIPS64 Release 2" | 1119 | bool "MIPS64 Release 2" |
1117 | depends on SYS_HAS_CPU_MIPS64_R2 | 1120 | depends on SYS_HAS_CPU_MIPS64_R2 |
1121 | select CPU_HAS_LLSC | ||
1118 | select CPU_HAS_PREFETCH | 1122 | select CPU_HAS_PREFETCH |
1119 | select CPU_SUPPORTS_32BIT_KERNEL | 1123 | select CPU_SUPPORTS_32BIT_KERNEL |
1120 | select CPU_SUPPORTS_64BIT_KERNEL | 1124 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1129,6 +1133,7 @@ config CPU_MIPS64_R2 | |||
1129 | config CPU_R3000 | 1133 | config CPU_R3000 |
1130 | bool "R3000" | 1134 | bool "R3000" |
1131 | depends on SYS_HAS_CPU_R3000 | 1135 | depends on SYS_HAS_CPU_R3000 |
1136 | select CPU_HAS_WB | ||
1132 | select CPU_SUPPORTS_32BIT_KERNEL | 1137 | select CPU_SUPPORTS_32BIT_KERNEL |
1133 | select CPU_SUPPORTS_HIGHMEM | 1138 | select CPU_SUPPORTS_HIGHMEM |
1134 | help | 1139 | help |
@@ -1158,6 +1163,7 @@ config CPU_VR41XX | |||
1158 | config CPU_R4300 | 1163 | config CPU_R4300 |
1159 | bool "R4300" | 1164 | bool "R4300" |
1160 | depends on SYS_HAS_CPU_R4300 | 1165 | depends on SYS_HAS_CPU_R4300 |
1166 | select CPU_HAS_LLSC | ||
1161 | select CPU_SUPPORTS_32BIT_KERNEL | 1167 | select CPU_SUPPORTS_32BIT_KERNEL |
1162 | select CPU_SUPPORTS_64BIT_KERNEL | 1168 | select CPU_SUPPORTS_64BIT_KERNEL |
1163 | help | 1169 | help |
@@ -1166,6 +1172,7 @@ config CPU_R4300 | |||
1166 | config CPU_R4X00 | 1172 | config CPU_R4X00 |
1167 | bool "R4x00" | 1173 | bool "R4x00" |
1168 | depends on SYS_HAS_CPU_R4X00 | 1174 | depends on SYS_HAS_CPU_R4X00 |
1175 | select CPU_HAS_LLSC | ||
1169 | select CPU_SUPPORTS_32BIT_KERNEL | 1176 | select CPU_SUPPORTS_32BIT_KERNEL |
1170 | select CPU_SUPPORTS_64BIT_KERNEL | 1177 | select CPU_SUPPORTS_64BIT_KERNEL |
1171 | help | 1178 | help |
@@ -1175,6 +1182,7 @@ config CPU_R4X00 | |||
1175 | config CPU_TX49XX | 1182 | config CPU_TX49XX |
1176 | bool "R49XX" | 1183 | bool "R49XX" |
1177 | depends on SYS_HAS_CPU_TX49XX | 1184 | depends on SYS_HAS_CPU_TX49XX |
1185 | select CPU_HAS_LLSC | ||
1178 | select CPU_HAS_PREFETCH | 1186 | select CPU_HAS_PREFETCH |
1179 | select CPU_SUPPORTS_32BIT_KERNEL | 1187 | select CPU_SUPPORTS_32BIT_KERNEL |
1180 | select CPU_SUPPORTS_64BIT_KERNEL | 1188 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1182,6 +1190,7 @@ config CPU_TX49XX | |||
1182 | config CPU_R5000 | 1190 | config CPU_R5000 |
1183 | bool "R5000" | 1191 | bool "R5000" |
1184 | depends on SYS_HAS_CPU_R5000 | 1192 | depends on SYS_HAS_CPU_R5000 |
1193 | select CPU_HAS_LLSC | ||
1185 | select CPU_SUPPORTS_32BIT_KERNEL | 1194 | select CPU_SUPPORTS_32BIT_KERNEL |
1186 | select CPU_SUPPORTS_64BIT_KERNEL | 1195 | select CPU_SUPPORTS_64BIT_KERNEL |
1187 | help | 1196 | help |
@@ -1190,12 +1199,14 @@ config CPU_R5000 | |||
1190 | config CPU_R5432 | 1199 | config CPU_R5432 |
1191 | bool "R5432" | 1200 | bool "R5432" |
1192 | depends on SYS_HAS_CPU_R5432 | 1201 | depends on SYS_HAS_CPU_R5432 |
1202 | select CPU_HAS_LLSC | ||
1193 | select CPU_SUPPORTS_32BIT_KERNEL | 1203 | select CPU_SUPPORTS_32BIT_KERNEL |
1194 | select CPU_SUPPORTS_64BIT_KERNEL | 1204 | select CPU_SUPPORTS_64BIT_KERNEL |
1195 | 1205 | ||
1196 | config CPU_R6000 | 1206 | config CPU_R6000 |
1197 | bool "R6000" | 1207 | bool "R6000" |
1198 | depends on EXPERIMENTAL | 1208 | depends on EXPERIMENTAL |
1209 | select CPU_HAS_LLSC | ||
1199 | depends on SYS_HAS_CPU_R6000 | 1210 | depends on SYS_HAS_CPU_R6000 |
1200 | select CPU_SUPPORTS_32BIT_KERNEL | 1211 | select CPU_SUPPORTS_32BIT_KERNEL |
1201 | help | 1212 | help |
@@ -1205,6 +1216,7 @@ config CPU_R6000 | |||
1205 | config CPU_NEVADA | 1216 | config CPU_NEVADA |
1206 | bool "RM52xx" | 1217 | bool "RM52xx" |
1207 | depends on SYS_HAS_CPU_NEVADA | 1218 | depends on SYS_HAS_CPU_NEVADA |
1219 | select CPU_HAS_LLSC | ||
1208 | select CPU_SUPPORTS_32BIT_KERNEL | 1220 | select CPU_SUPPORTS_32BIT_KERNEL |
1209 | select CPU_SUPPORTS_64BIT_KERNEL | 1221 | select CPU_SUPPORTS_64BIT_KERNEL |
1210 | help | 1222 | help |
@@ -1214,6 +1226,7 @@ config CPU_R8000 | |||
1214 | bool "R8000" | 1226 | bool "R8000" |
1215 | depends on EXPERIMENTAL | 1227 | depends on EXPERIMENTAL |
1216 | depends on SYS_HAS_CPU_R8000 | 1228 | depends on SYS_HAS_CPU_R8000 |
1229 | select CPU_HAS_LLSC | ||
1217 | select CPU_HAS_PREFETCH | 1230 | select CPU_HAS_PREFETCH |
1218 | select CPU_SUPPORTS_64BIT_KERNEL | 1231 | select CPU_SUPPORTS_64BIT_KERNEL |
1219 | help | 1232 | help |
@@ -1223,6 +1236,7 @@ config CPU_R8000 | |||
1223 | config CPU_R10000 | 1236 | config CPU_R10000 |
1224 | bool "R10000" | 1237 | bool "R10000" |
1225 | depends on SYS_HAS_CPU_R10000 | 1238 | depends on SYS_HAS_CPU_R10000 |
1239 | select CPU_HAS_LLSC | ||
1226 | select CPU_HAS_PREFETCH | 1240 | select CPU_HAS_PREFETCH |
1227 | select CPU_SUPPORTS_32BIT_KERNEL | 1241 | select CPU_SUPPORTS_32BIT_KERNEL |
1228 | select CPU_SUPPORTS_64BIT_KERNEL | 1242 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1233,6 +1247,7 @@ config CPU_R10000 | |||
1233 | config CPU_RM7000 | 1247 | config CPU_RM7000 |
1234 | bool "RM7000" | 1248 | bool "RM7000" |
1235 | depends on SYS_HAS_CPU_RM7000 | 1249 | depends on SYS_HAS_CPU_RM7000 |
1250 | select CPU_HAS_LLSC | ||
1236 | select CPU_HAS_PREFETCH | 1251 | select CPU_HAS_PREFETCH |
1237 | select CPU_SUPPORTS_32BIT_KERNEL | 1252 | select CPU_SUPPORTS_32BIT_KERNEL |
1238 | select CPU_SUPPORTS_64BIT_KERNEL | 1253 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1241,6 +1256,7 @@ config CPU_RM7000 | |||
1241 | config CPU_RM9000 | 1256 | config CPU_RM9000 |
1242 | bool "RM9000" | 1257 | bool "RM9000" |
1243 | depends on SYS_HAS_CPU_RM9000 | 1258 | depends on SYS_HAS_CPU_RM9000 |
1259 | select CPU_HAS_LLSC | ||
1244 | select CPU_HAS_PREFETCH | 1260 | select CPU_HAS_PREFETCH |
1245 | select CPU_SUPPORTS_32BIT_KERNEL | 1261 | select CPU_SUPPORTS_32BIT_KERNEL |
1246 | select CPU_SUPPORTS_64BIT_KERNEL | 1262 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1249,6 +1265,7 @@ config CPU_RM9000 | |||
1249 | config CPU_SB1 | 1265 | config CPU_SB1 |
1250 | bool "SB1" | 1266 | bool "SB1" |
1251 | depends on SYS_HAS_CPU_SB1 | 1267 | depends on SYS_HAS_CPU_SB1 |
1268 | select CPU_HAS_LLSC | ||
1252 | select CPU_SUPPORTS_32BIT_KERNEL | 1269 | select CPU_SUPPORTS_32BIT_KERNEL |
1253 | select CPU_SUPPORTS_64BIT_KERNEL | 1270 | select CPU_SUPPORTS_64BIT_KERNEL |
1254 | select CPU_SUPPORTS_HIGHMEM | 1271 | select CPU_SUPPORTS_HIGHMEM |
@@ -1449,6 +1466,8 @@ choice | |||
1449 | 1466 | ||
1450 | config MIPS_MT_SMTC | 1467 | config MIPS_MT_SMTC |
1451 | bool "SMTC: Use all TCs on all VPEs for SMP" | 1468 | bool "SMTC: Use all TCs on all VPEs for SMP" |
1469 | select CPU_MIPSR2_IRQ_VI | ||
1470 | select CPU_MIPSR2_SRS | ||
1452 | select SMP | 1471 | select SMP |
1453 | 1472 | ||
1454 | config MIPS_MT_SMP | 1473 | config MIPS_MT_SMP |
@@ -1514,38 +1533,15 @@ config 64BIT_PHYS_ADDR | |||
1514 | bool "Support for 64-bit physical address space" | 1533 | bool "Support for 64-bit physical address space" |
1515 | depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT | 1534 | depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT |
1516 | 1535 | ||
1517 | config CPU_ADVANCED | ||
1518 | bool "Override CPU Options" | ||
1519 | depends on 32BIT | ||
1520 | help | ||
1521 | Saying yes here allows you to select support for various features | ||
1522 | your CPU may or may not have. Most people should say N here. | ||
1523 | |||
1524 | config CPU_HAS_LLSC | 1536 | config CPU_HAS_LLSC |
1525 | bool "ll/sc Instructions available" if CPU_ADVANCED | 1537 | bool |
1526 | default y if !CPU_ADVANCED && !CPU_R3000 && !CPU_VR41XX && !CPU_TX39XX | ||
1527 | help | ||
1528 | MIPS R4000 series and later provide the Load Linked (ll) | ||
1529 | and Store Conditional (sc) instructions. More information is | ||
1530 | available at <http://www.go-ecs.com/mips/miptek1.htm>. | ||
1531 | |||
1532 | Say Y here if your CPU has the ll and sc instructions. Say Y here | ||
1533 | for better performance, N if you don't know. You must say Y here | ||
1534 | for multiprocessor machines. | ||
1535 | 1538 | ||
1536 | config CPU_HAS_WB | 1539 | config CPU_HAS_WB |
1537 | bool "Writeback Buffer available" if CPU_ADVANCED | 1540 | bool |
1538 | default y if !CPU_ADVANCED && CPU_R3000 && MACH_DECSTATION | ||
1539 | help | ||
1540 | Say N here for slightly better performance. You must say Y here for | ||
1541 | machines which require flushing of write buffers in software. Saying | ||
1542 | Y is the safe option; N may result in kernel malfunction and crashes. | ||
1543 | |||
1544 | menu "MIPSR2 Interrupt handling" | ||
1545 | depends on CPU_MIPSR2 && CPU_ADVANCED | ||
1546 | 1541 | ||
1547 | config CPU_MIPSR2_IRQ_VI | 1542 | config CPU_MIPSR2_IRQ_VI |
1548 | bool "Vectored interrupt mode" | 1543 | bool "Vectored interrupt mode" |
1544 | depends on CPU_MIPSR2 | ||
1549 | help | 1545 | help |
1550 | Vectored interrupt mode allowing faster dispatching of interrupts. | 1546 | Vectored interrupt mode allowing faster dispatching of interrupts. |
1551 | The board support code needs to be written to take advantage of this | 1547 | The board support code needs to be written to take advantage of this |
@@ -1555,6 +1551,7 @@ config CPU_MIPSR2_IRQ_VI | |||
1555 | 1551 | ||
1556 | config CPU_MIPSR2_IRQ_EI | 1552 | config CPU_MIPSR2_IRQ_EI |
1557 | bool "External interrupt controller mode" | 1553 | bool "External interrupt controller mode" |
1554 | depends on CPU_MIPSR2 | ||
1558 | help | 1555 | help |
1559 | Extended interrupt mode takes advantage of an external interrupt | 1556 | Extended interrupt mode takes advantage of an external interrupt |
1560 | controller to allow fast dispatching from many possible interrupt | 1557 | controller to allow fast dispatching from many possible interrupt |
@@ -1568,7 +1565,6 @@ config CPU_MIPSR2_SRS | |||
1568 | Allow the kernel to use shadow register sets for fast interrupts. | 1565 | Allow the kernel to use shadow register sets for fast interrupts. |
1569 | Interrupt handlers must be specially written to use shadow sets. | 1566 | Interrupt handlers must be specially written to use shadow sets. |
1570 | Say N unless you know that shadow register set upport is needed. | 1567 | Say N unless you know that shadow register set upport is needed. |
1571 | endmenu | ||
1572 | 1568 | ||
1573 | config CPU_HAS_SYNC | 1569 | config CPU_HAS_SYNC |
1574 | bool | 1570 | bool |
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index d3c5cc3b9c9d..515f9e611307 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug | |||
@@ -6,7 +6,13 @@ config CROSSCOMPILE | |||
6 | bool "Are you using a crosscompiler" | 6 | bool "Are you using a crosscompiler" |
7 | help | 7 | help |
8 | Say Y here if you are compiling the kernel on a different | 8 | Say Y here if you are compiling the kernel on a different |
9 | architecture than the one it is intended to run on. | 9 | architecture than the one it is intended to run on. This is just a |
10 | convenience option which will select the appropriate value for | ||
11 | the CROSS_COMPILE make variable which otherwise has to be passed on | ||
12 | the command line from mips-linux-, mipsel-linux-, mips64-linux- and | ||
13 | mips64el-linux- as appropriate for a particular kernel configuration. | ||
14 | You will have to pass the value for CROSS_COMPILE manually if the | ||
15 | name prefix for your tools is different. | ||
10 | 16 | ||
11 | config CMDLINE | 17 | config CMDLINE |
12 | string "Default kernel command string" | 18 | string "Default kernel command string" |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 69b9c1b8fafc..133900aca992 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -615,7 +615,10 @@ LDFLAGS += -m $(ld-emul) | |||
615 | ifdef CONFIG_MIPS | 615 | ifdef CONFIG_MIPS |
616 | CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ | 616 | CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \ |
617 | egrep -vw '__GNUC_(MAJOR|MINOR|PATCHLEVEL)__' | \ | 617 | egrep -vw '__GNUC_(MAJOR|MINOR|PATCHLEVEL)__' | \ |
618 | sed -e 's/^\#define /-D/' -e 's/ /="/' -e 's/$$/"/') | 618 | sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/") |
619 | ifdef CONFIG_64BIT | ||
620 | CHECKFLAGS += -m64 | ||
621 | endif | ||
619 | endif | 622 | endif |
620 | 623 | ||
621 | OBJCOPYFLAGS += --remove-section=.reginfo | 624 | OBJCOPYFLAGS += --remove-section=.reginfo |
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig index 9e1ae953e966..4b080bcb258f 100644 --- a/arch/mips/configs/atlas_defconfig +++ b/arch/mips/configs/atlas_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:52 2006 | 4 | # Mon Apr 24 14:50:55 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_ATLAS=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -127,11 +129,11 @@ CONFIG_RM7000_CPU_SCACHE=y | |||
127 | CONFIG_CPU_HAS_PREFETCH=y | 129 | CONFIG_CPU_HAS_PREFETCH=y |
128 | # CONFIG_MIPS_MT is not set | 130 | # CONFIG_MIPS_MT is not set |
129 | # CONFIG_64BIT_PHYS_ADDR is not set | 131 | # CONFIG_64BIT_PHYS_ADDR is not set |
130 | # CONFIG_CPU_ADVANCED is not set | ||
131 | CONFIG_CPU_HAS_LLSC=y | 132 | CONFIG_CPU_HAS_LLSC=y |
132 | CONFIG_CPU_HAS_SYNC=y | 133 | CONFIG_CPU_HAS_SYNC=y |
133 | CONFIG_GENERIC_HARDIRQS=y | 134 | CONFIG_GENERIC_HARDIRQS=y |
134 | CONFIG_GENERIC_IRQ_PROBE=y | 135 | CONFIG_GENERIC_IRQ_PROBE=y |
136 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
135 | CONFIG_ARCH_FLATMEM_ENABLE=y | 137 | CONFIG_ARCH_FLATMEM_ENABLE=y |
136 | CONFIG_SELECT_MEMORY_MODEL=y | 138 | CONFIG_SELECT_MEMORY_MODEL=y |
137 | CONFIG_FLATMEM_MANUAL=y | 139 | CONFIG_FLATMEM_MANUAL=y |
@@ -149,7 +151,6 @@ CONFIG_PREEMPT_NONE=y | |||
149 | # Code maturity level options | 151 | # Code maturity level options |
150 | # | 152 | # |
151 | CONFIG_EXPERIMENTAL=y | 153 | CONFIG_EXPERIMENTAL=y |
152 | CONFIG_CLEAN_COMPILE=y | ||
153 | CONFIG_BROKEN_ON_SMP=y | 154 | CONFIG_BROKEN_ON_SMP=y |
154 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 155 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
155 | 156 | ||
@@ -165,6 +166,7 @@ CONFIG_SYSVIPC=y | |||
165 | CONFIG_SYSCTL=y | 166 | CONFIG_SYSCTL=y |
166 | # CONFIG_AUDIT is not set | 167 | # CONFIG_AUDIT is not set |
167 | # CONFIG_IKCONFIG is not set | 168 | # CONFIG_IKCONFIG is not set |
169 | CONFIG_RELAY=y | ||
168 | CONFIG_INITRAMFS_SOURCE="" | 170 | CONFIG_INITRAMFS_SOURCE="" |
169 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 171 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
170 | CONFIG_EMBEDDED=y | 172 | CONFIG_EMBEDDED=y |
@@ -178,10 +180,6 @@ CONFIG_BASE_FULL=y | |||
178 | CONFIG_FUTEX=y | 180 | CONFIG_FUTEX=y |
179 | CONFIG_EPOLL=y | 181 | CONFIG_EPOLL=y |
180 | CONFIG_SHMEM=y | 182 | CONFIG_SHMEM=y |
181 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
182 | CONFIG_CC_ALIGN_LABELS=0 | ||
183 | CONFIG_CC_ALIGN_LOOPS=0 | ||
184 | CONFIG_CC_ALIGN_JUMPS=0 | ||
185 | CONFIG_SLAB=y | 183 | CONFIG_SLAB=y |
186 | # CONFIG_TINY_SHMEM is not set | 184 | # CONFIG_TINY_SHMEM is not set |
187 | CONFIG_BASE_SMALL=0 | 185 | CONFIG_BASE_SMALL=0 |
@@ -193,7 +191,6 @@ CONFIG_BASE_SMALL=0 | |||
193 | CONFIG_MODULES=y | 191 | CONFIG_MODULES=y |
194 | CONFIG_MODULE_UNLOAD=y | 192 | CONFIG_MODULE_UNLOAD=y |
195 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 193 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
196 | CONFIG_OBSOLETE_MODPARM=y | ||
197 | CONFIG_MODVERSIONS=y | 194 | CONFIG_MODVERSIONS=y |
198 | CONFIG_MODULE_SRCVERSION_ALL=y | 195 | CONFIG_MODULE_SRCVERSION_ALL=y |
199 | CONFIG_KMOD=y | 196 | CONFIG_KMOD=y |
@@ -202,6 +199,8 @@ CONFIG_KMOD=y | |||
202 | # Block layer | 199 | # Block layer |
203 | # | 200 | # |
204 | # CONFIG_LBD is not set | 201 | # CONFIG_LBD is not set |
202 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
203 | # CONFIG_LSF is not set | ||
205 | 204 | ||
206 | # | 205 | # |
207 | # IO Schedulers | 206 | # IO Schedulers |
@@ -221,7 +220,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
221 | # | 220 | # |
222 | CONFIG_HW_HAS_PCI=y | 221 | CONFIG_HW_HAS_PCI=y |
223 | CONFIG_PCI=y | 222 | CONFIG_PCI=y |
224 | CONFIG_PCI_LEGACY_PROC=y | ||
225 | CONFIG_MMU=y | 223 | CONFIG_MMU=y |
226 | 224 | ||
227 | # | 225 | # |
@@ -249,6 +247,7 @@ CONFIG_NET=y | |||
249 | # | 247 | # |
250 | # Networking options | 248 | # Networking options |
251 | # | 249 | # |
250 | # CONFIG_NETDEBUG is not set | ||
252 | CONFIG_PACKET=y | 251 | CONFIG_PACKET=y |
253 | CONFIG_PACKET_MMAP=y | 252 | CONFIG_PACKET_MMAP=y |
254 | CONFIG_UNIX=y | 253 | CONFIG_UNIX=y |
@@ -281,6 +280,7 @@ CONFIG_SYN_COOKIES=y | |||
281 | CONFIG_INET_AH=m | 280 | CONFIG_INET_AH=m |
282 | CONFIG_INET_ESP=m | 281 | CONFIG_INET_ESP=m |
283 | CONFIG_INET_IPCOMP=m | 282 | CONFIG_INET_IPCOMP=m |
283 | CONFIG_INET_XFRM_TUNNEL=m | ||
284 | CONFIG_INET_TUNNEL=m | 284 | CONFIG_INET_TUNNEL=m |
285 | CONFIG_INET_DIAG=y | 285 | CONFIG_INET_DIAG=y |
286 | CONFIG_INET_TCP_DIAG=y | 286 | CONFIG_INET_TCP_DIAG=y |
@@ -322,9 +322,12 @@ CONFIG_IP_VS_NQ=m | |||
322 | CONFIG_IP_VS_FTP=m | 322 | CONFIG_IP_VS_FTP=m |
323 | CONFIG_IPV6=m | 323 | CONFIG_IPV6=m |
324 | CONFIG_IPV6_PRIVACY=y | 324 | CONFIG_IPV6_PRIVACY=y |
325 | CONFIG_IPV6_ROUTER_PREF=y | ||
326 | CONFIG_IPV6_ROUTE_INFO=y | ||
325 | CONFIG_INET6_AH=m | 327 | CONFIG_INET6_AH=m |
326 | CONFIG_INET6_ESP=m | 328 | CONFIG_INET6_ESP=m |
327 | CONFIG_INET6_IPCOMP=m | 329 | CONFIG_INET6_IPCOMP=m |
330 | CONFIG_INET6_XFRM_TUNNEL=m | ||
328 | CONFIG_INET6_TUNNEL=m | 331 | CONFIG_INET6_TUNNEL=m |
329 | CONFIG_IPV6_TUNNEL=m | 332 | CONFIG_IPV6_TUNNEL=m |
330 | CONFIG_NETFILTER=y | 333 | CONFIG_NETFILTER=y |
@@ -348,11 +351,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | |||
348 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 351 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
349 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 352 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
350 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 353 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
354 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
351 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 355 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
352 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 356 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
353 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 357 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
354 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 358 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
355 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 359 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
360 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
361 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
356 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | 362 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m |
357 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 363 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
358 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 364 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
@@ -376,20 +382,19 @@ CONFIG_IP_NF_IRC=m | |||
376 | CONFIG_IP_NF_TFTP=m | 382 | CONFIG_IP_NF_TFTP=m |
377 | CONFIG_IP_NF_AMANDA=m | 383 | CONFIG_IP_NF_AMANDA=m |
378 | CONFIG_IP_NF_PPTP=m | 384 | CONFIG_IP_NF_PPTP=m |
385 | CONFIG_IP_NF_H323=m | ||
379 | CONFIG_IP_NF_QUEUE=m | 386 | CONFIG_IP_NF_QUEUE=m |
380 | CONFIG_IP_NF_IPTABLES=m | 387 | CONFIG_IP_NF_IPTABLES=m |
381 | CONFIG_IP_NF_MATCH_IPRANGE=m | 388 | CONFIG_IP_NF_MATCH_IPRANGE=m |
382 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
383 | CONFIG_IP_NF_MATCH_TOS=m | 389 | CONFIG_IP_NF_MATCH_TOS=m |
384 | CONFIG_IP_NF_MATCH_RECENT=m | 390 | CONFIG_IP_NF_MATCH_RECENT=m |
385 | CONFIG_IP_NF_MATCH_ECN=m | 391 | CONFIG_IP_NF_MATCH_ECN=m |
386 | CONFIG_IP_NF_MATCH_DSCP=m | 392 | CONFIG_IP_NF_MATCH_DSCP=m |
387 | CONFIG_IP_NF_MATCH_AH_ESP=m | 393 | CONFIG_IP_NF_MATCH_AH=m |
388 | CONFIG_IP_NF_MATCH_TTL=m | 394 | CONFIG_IP_NF_MATCH_TTL=m |
389 | CONFIG_IP_NF_MATCH_OWNER=m | 395 | CONFIG_IP_NF_MATCH_OWNER=m |
390 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 396 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
391 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 397 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
392 | CONFIG_IP_NF_MATCH_POLICY=m | ||
393 | CONFIG_IP_NF_FILTER=m | 398 | CONFIG_IP_NF_FILTER=m |
394 | CONFIG_IP_NF_TARGET_REJECT=m | 399 | CONFIG_IP_NF_TARGET_REJECT=m |
395 | CONFIG_IP_NF_TARGET_LOG=m | 400 | CONFIG_IP_NF_TARGET_LOG=m |
@@ -407,6 +412,7 @@ CONFIG_IP_NF_NAT_FTP=m | |||
407 | CONFIG_IP_NF_NAT_TFTP=m | 412 | CONFIG_IP_NF_NAT_TFTP=m |
408 | CONFIG_IP_NF_NAT_AMANDA=m | 413 | CONFIG_IP_NF_NAT_AMANDA=m |
409 | CONFIG_IP_NF_NAT_PPTP=m | 414 | CONFIG_IP_NF_NAT_PPTP=m |
415 | CONFIG_IP_NF_NAT_H323=m | ||
410 | CONFIG_IP_NF_MANGLE=m | 416 | CONFIG_IP_NF_MANGLE=m |
411 | CONFIG_IP_NF_TARGET_TOS=m | 417 | CONFIG_IP_NF_TARGET_TOS=m |
412 | CONFIG_IP_NF_TARGET_ECN=m | 418 | CONFIG_IP_NF_TARGET_ECN=m |
@@ -427,12 +433,10 @@ CONFIG_IP6_NF_MATCH_RT=m | |||
427 | CONFIG_IP6_NF_MATCH_OPTS=m | 433 | CONFIG_IP6_NF_MATCH_OPTS=m |
428 | CONFIG_IP6_NF_MATCH_FRAG=m | 434 | CONFIG_IP6_NF_MATCH_FRAG=m |
429 | CONFIG_IP6_NF_MATCH_HL=m | 435 | CONFIG_IP6_NF_MATCH_HL=m |
430 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
431 | CONFIG_IP6_NF_MATCH_OWNER=m | 436 | CONFIG_IP6_NF_MATCH_OWNER=m |
432 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 437 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
433 | CONFIG_IP6_NF_MATCH_AHESP=m | 438 | CONFIG_IP6_NF_MATCH_AH=m |
434 | CONFIG_IP6_NF_MATCH_EUI64=m | 439 | CONFIG_IP6_NF_MATCH_EUI64=m |
435 | CONFIG_IP6_NF_MATCH_POLICY=m | ||
436 | CONFIG_IP6_NF_FILTER=m | 440 | CONFIG_IP6_NF_FILTER=m |
437 | CONFIG_IP6_NF_TARGET_LOG=m | 441 | CONFIG_IP6_NF_TARGET_LOG=m |
438 | CONFIG_IP6_NF_TARGET_REJECT=m | 442 | CONFIG_IP6_NF_TARGET_REJECT=m |
@@ -478,6 +482,11 @@ CONFIG_IP_SCTP=m | |||
478 | # CONFIG_SCTP_HMAC_NONE is not set | 482 | # CONFIG_SCTP_HMAC_NONE is not set |
479 | # CONFIG_SCTP_HMAC_SHA1 is not set | 483 | # CONFIG_SCTP_HMAC_SHA1 is not set |
480 | CONFIG_SCTP_HMAC_MD5=y | 484 | CONFIG_SCTP_HMAC_MD5=y |
485 | |||
486 | # | ||
487 | # TIPC Configuration (EXPERIMENTAL) | ||
488 | # | ||
489 | # CONFIG_TIPC is not set | ||
481 | # CONFIG_ATM is not set | 490 | # CONFIG_ATM is not set |
482 | CONFIG_BRIDGE=m | 491 | CONFIG_BRIDGE=m |
483 | CONFIG_VLAN_8021Q=m | 492 | CONFIG_VLAN_8021Q=m |
@@ -492,11 +501,6 @@ CONFIG_IPDDP_ENCAP=y | |||
492 | CONFIG_IPDDP_DECAP=y | 501 | CONFIG_IPDDP_DECAP=y |
493 | # CONFIG_X25 is not set | 502 | # CONFIG_X25 is not set |
494 | # CONFIG_LAPB is not set | 503 | # CONFIG_LAPB is not set |
495 | |||
496 | # | ||
497 | # TIPC Configuration (EXPERIMENTAL) | ||
498 | # | ||
499 | # CONFIG_TIPC is not set | ||
500 | CONFIG_NET_DIVERT=y | 504 | CONFIG_NET_DIVERT=y |
501 | # CONFIG_ECONET is not set | 505 | # CONFIG_ECONET is not set |
502 | # CONFIG_WAN_ROUTER is not set | 506 | # CONFIG_WAN_ROUTER is not set |
@@ -556,6 +560,9 @@ CONFIG_IEEE80211=m | |||
556 | # CONFIG_IEEE80211_DEBUG is not set | 560 | # CONFIG_IEEE80211_DEBUG is not set |
557 | CONFIG_IEEE80211_CRYPT_WEP=m | 561 | CONFIG_IEEE80211_CRYPT_WEP=m |
558 | CONFIG_IEEE80211_CRYPT_CCMP=m | 562 | CONFIG_IEEE80211_CRYPT_CCMP=m |
563 | CONFIG_IEEE80211_SOFTMAC=m | ||
564 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
565 | CONFIG_WIRELESS_EXT=y | ||
559 | 566 | ||
560 | # | 567 | # |
561 | # Device Drivers | 568 | # Device Drivers |
@@ -694,9 +701,8 @@ CONFIG_SCSI_SYM53C8XX_2=y | |||
694 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | 701 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 |
695 | CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | 702 | CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 |
696 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 703 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
697 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 704 | CONFIG_SCSI_SYM53C8XX_MMIO=y |
698 | # CONFIG_SCSI_IPR is not set | 705 | # CONFIG_SCSI_IPR is not set |
699 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
700 | # CONFIG_SCSI_QLOGIC_1280 is not set | 706 | # CONFIG_SCSI_QLOGIC_1280 is not set |
701 | # CONFIG_SCSI_QLA_FC is not set | 707 | # CONFIG_SCSI_QLA_FC is not set |
702 | # CONFIG_SCSI_LPFC is not set | 708 | # CONFIG_SCSI_LPFC is not set |
@@ -715,6 +721,7 @@ CONFIG_MD_RAID0=m | |||
715 | CONFIG_MD_RAID1=m | 721 | CONFIG_MD_RAID1=m |
716 | CONFIG_MD_RAID10=m | 722 | CONFIG_MD_RAID10=m |
717 | CONFIG_MD_RAID5=m | 723 | CONFIG_MD_RAID5=m |
724 | CONFIG_MD_RAID5_RESHAPE=y | ||
718 | CONFIG_MD_RAID6=m | 725 | CONFIG_MD_RAID6=m |
719 | CONFIG_MD_MULTIPATH=m | 726 | CONFIG_MD_MULTIPATH=m |
720 | CONFIG_MD_FAULTY=m | 727 | CONFIG_MD_FAULTY=m |
@@ -921,6 +928,7 @@ CONFIG_HW_CONSOLE=y | |||
921 | # | 928 | # |
922 | CONFIG_SERIAL_8250=y | 929 | CONFIG_SERIAL_8250=y |
923 | CONFIG_SERIAL_8250_CONSOLE=y | 930 | CONFIG_SERIAL_8250_CONSOLE=y |
931 | CONFIG_SERIAL_8250_PCI=m | ||
924 | CONFIG_SERIAL_8250_NR_UARTS=4 | 932 | CONFIG_SERIAL_8250_NR_UARTS=4 |
925 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 933 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
926 | # CONFIG_SERIAL_8250_EXTENDED is not set | 934 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -930,6 +938,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
930 | # | 938 | # |
931 | CONFIG_SERIAL_CORE=y | 939 | CONFIG_SERIAL_CORE=y |
932 | CONFIG_SERIAL_CORE_CONSOLE=y | 940 | CONFIG_SERIAL_CORE_CONSOLE=y |
941 | # CONFIG_SERIAL_JSM is not set | ||
933 | CONFIG_UNIX98_PTYS=y | 942 | CONFIG_UNIX98_PTYS=y |
934 | CONFIG_LEGACY_PTYS=y | 943 | CONFIG_LEGACY_PTYS=y |
935 | CONFIG_LEGACY_PTY_COUNT=256 | 944 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -988,10 +997,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
988 | # | 997 | # |
989 | 998 | ||
990 | # | 999 | # |
991 | # Multimedia Capabilities Port drivers | ||
992 | # | ||
993 | |||
994 | # | ||
995 | # Multimedia devices | 1000 | # Multimedia devices |
996 | # | 1001 | # |
997 | # CONFIG_VIDEO_DEV is not set | 1002 | # CONFIG_VIDEO_DEV is not set |
@@ -1022,6 +1027,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
1022 | # | 1027 | # |
1023 | CONFIG_USB_ARCH_HAS_HCD=y | 1028 | CONFIG_USB_ARCH_HAS_HCD=y |
1024 | CONFIG_USB_ARCH_HAS_OHCI=y | 1029 | CONFIG_USB_ARCH_HAS_OHCI=y |
1030 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
1025 | # CONFIG_USB is not set | 1031 | # CONFIG_USB is not set |
1026 | 1032 | ||
1027 | # | 1033 | # |
@@ -1039,13 +1045,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1039 | # CONFIG_MMC is not set | 1045 | # CONFIG_MMC is not set |
1040 | 1046 | ||
1041 | # | 1047 | # |
1048 | # LED devices | ||
1049 | # | ||
1050 | # CONFIG_NEW_LEDS is not set | ||
1051 | |||
1052 | # | ||
1053 | # LED drivers | ||
1054 | # | ||
1055 | |||
1056 | # | ||
1057 | # LED Triggers | ||
1058 | # | ||
1059 | |||
1060 | # | ||
1042 | # InfiniBand support | 1061 | # InfiniBand support |
1043 | # | 1062 | # |
1044 | # CONFIG_INFINIBAND is not set | 1063 | # CONFIG_INFINIBAND is not set |
1045 | 1064 | ||
1046 | # | 1065 | # |
1047 | # SN Devices | 1066 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1067 | # | ||
1068 | |||
1069 | # | ||
1070 | # Real Time Clock | ||
1048 | # | 1071 | # |
1072 | # CONFIG_RTC_CLASS is not set | ||
1049 | 1073 | ||
1050 | # | 1074 | # |
1051 | # File systems | 1075 | # File systems |
@@ -1120,7 +1144,6 @@ CONFIG_SYSFS=y | |||
1120 | # CONFIG_TMPFS is not set | 1144 | # CONFIG_TMPFS is not set |
1121 | # CONFIG_HUGETLB_PAGE is not set | 1145 | # CONFIG_HUGETLB_PAGE is not set |
1122 | CONFIG_RAMFS=y | 1146 | CONFIG_RAMFS=y |
1123 | CONFIG_RELAYFS_FS=m | ||
1124 | # CONFIG_CONFIGFS_FS is not set | 1147 | # CONFIG_CONFIGFS_FS is not set |
1125 | 1148 | ||
1126 | # | 1149 | # |
@@ -1140,7 +1163,6 @@ CONFIG_VXFS_FS=m | |||
1140 | # CONFIG_QNX4FS_FS is not set | 1163 | # CONFIG_QNX4FS_FS is not set |
1141 | CONFIG_SYSV_FS=m | 1164 | CONFIG_SYSV_FS=m |
1142 | CONFIG_UFS_FS=m | 1165 | CONFIG_UFS_FS=m |
1143 | # CONFIG_UFS_FS_WRITE is not set | ||
1144 | 1166 | ||
1145 | # | 1167 | # |
1146 | # Network File Systems | 1168 | # Network File Systems |
@@ -1232,6 +1254,7 @@ CONFIG_NLS_UTF8=m | |||
1232 | # CONFIG_MAGIC_SYSRQ is not set | 1254 | # CONFIG_MAGIC_SYSRQ is not set |
1233 | # CONFIG_DEBUG_KERNEL is not set | 1255 | # CONFIG_DEBUG_KERNEL is not set |
1234 | CONFIG_LOG_BUF_SHIFT=14 | 1256 | CONFIG_LOG_BUF_SHIFT=14 |
1257 | # CONFIG_DEBUG_FS is not set | ||
1235 | CONFIG_CROSSCOMPILE=y | 1258 | CONFIG_CROSSCOMPILE=y |
1236 | CONFIG_CMDLINE="" | 1259 | CONFIG_CMDLINE="" |
1237 | 1260 | ||
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig index 32984100a75e..d85cda58d650 100644 --- a/arch/mips/configs/bigsur_defconfig +++ b/arch/mips/configs/bigsur_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:53 2006 | 4 | # Mon Apr 24 14:50:55 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -80,6 +80,8 @@ CONFIG_SIBYTE_CFE=y | |||
80 | # CONFIG_SIBYTE_SB1250_PROF is not set | 80 | # CONFIG_SIBYTE_SB1250_PROF is not set |
81 | # CONFIG_SIBYTE_TBPROF is not set | 81 | # CONFIG_SIBYTE_TBPROF is not set |
82 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 82 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
83 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
84 | CONFIG_GENERIC_HWEIGHT=y | ||
83 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 85 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
84 | CONFIG_DMA_COHERENT=y | 86 | CONFIG_DMA_COHERENT=y |
85 | CONFIG_CPU_BIG_ENDIAN=y | 87 | CONFIG_CPU_BIG_ENDIAN=y |
@@ -154,7 +156,6 @@ CONFIG_PREEMPT_NONE=y | |||
154 | # Code maturity level options | 156 | # Code maturity level options |
155 | # | 157 | # |
156 | CONFIG_EXPERIMENTAL=y | 158 | CONFIG_EXPERIMENTAL=y |
157 | CONFIG_CLEAN_COMPILE=y | ||
158 | CONFIG_LOCK_KERNEL=y | 159 | CONFIG_LOCK_KERNEL=y |
159 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 160 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
160 | 161 | ||
@@ -172,6 +173,7 @@ CONFIG_SYSCTL=y | |||
172 | CONFIG_IKCONFIG=y | 173 | CONFIG_IKCONFIG=y |
173 | CONFIG_IKCONFIG_PROC=y | 174 | CONFIG_IKCONFIG_PROC=y |
174 | # CONFIG_CPUSETS is not set | 175 | # CONFIG_CPUSETS is not set |
176 | # CONFIG_RELAY is not set | ||
175 | CONFIG_INITRAMFS_SOURCE="" | 177 | CONFIG_INITRAMFS_SOURCE="" |
176 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 178 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
177 | CONFIG_EMBEDDED=y | 179 | CONFIG_EMBEDDED=y |
@@ -186,10 +188,6 @@ CONFIG_BASE_FULL=y | |||
186 | CONFIG_FUTEX=y | 188 | CONFIG_FUTEX=y |
187 | CONFIG_EPOLL=y | 189 | CONFIG_EPOLL=y |
188 | CONFIG_SHMEM=y | 190 | CONFIG_SHMEM=y |
189 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
190 | CONFIG_CC_ALIGN_LABELS=0 | ||
191 | CONFIG_CC_ALIGN_LOOPS=0 | ||
192 | CONFIG_CC_ALIGN_JUMPS=0 | ||
193 | CONFIG_SLAB=y | 191 | CONFIG_SLAB=y |
194 | # CONFIG_TINY_SHMEM is not set | 192 | # CONFIG_TINY_SHMEM is not set |
195 | CONFIG_BASE_SMALL=0 | 193 | CONFIG_BASE_SMALL=0 |
@@ -201,7 +199,6 @@ CONFIG_BASE_SMALL=0 | |||
201 | CONFIG_MODULES=y | 199 | CONFIG_MODULES=y |
202 | CONFIG_MODULE_UNLOAD=y | 200 | CONFIG_MODULE_UNLOAD=y |
203 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 201 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
204 | CONFIG_OBSOLETE_MODPARM=y | ||
205 | CONFIG_MODVERSIONS=y | 202 | CONFIG_MODVERSIONS=y |
206 | CONFIG_MODULE_SRCVERSION_ALL=y | 203 | CONFIG_MODULE_SRCVERSION_ALL=y |
207 | CONFIG_KMOD=y | 204 | CONFIG_KMOD=y |
@@ -210,6 +207,7 @@ CONFIG_STOP_MACHINE=y | |||
210 | # | 207 | # |
211 | # Block layer | 208 | # Block layer |
212 | # | 209 | # |
210 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
213 | 211 | ||
214 | # | 212 | # |
215 | # IO Schedulers | 213 | # IO Schedulers |
@@ -230,7 +228,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
230 | CONFIG_HW_HAS_PCI=y | 228 | CONFIG_HW_HAS_PCI=y |
231 | CONFIG_PCI=y | 229 | CONFIG_PCI=y |
232 | CONFIG_PCI_DOMAINS=y | 230 | CONFIG_PCI_DOMAINS=y |
233 | CONFIG_PCI_LEGACY_PROC=y | ||
234 | CONFIG_PCI_DEBUG=y | 231 | CONFIG_PCI_DEBUG=y |
235 | CONFIG_MMU=y | 232 | CONFIG_MMU=y |
236 | 233 | ||
@@ -249,6 +246,7 @@ CONFIG_MMU=y | |||
249 | # | 246 | # |
250 | CONFIG_BINFMT_ELF=y | 247 | CONFIG_BINFMT_ELF=y |
251 | # CONFIG_BINFMT_MISC is not set | 248 | # CONFIG_BINFMT_MISC is not set |
249 | CONFIG_BUILD_ELF64=y | ||
252 | CONFIG_MIPS32_COMPAT=y | 250 | CONFIG_MIPS32_COMPAT=y |
253 | CONFIG_COMPAT=y | 251 | CONFIG_COMPAT=y |
254 | CONFIG_MIPS32_O32=y | 252 | CONFIG_MIPS32_O32=y |
@@ -263,6 +261,7 @@ CONFIG_NET=y | |||
263 | # | 261 | # |
264 | # Networking options | 262 | # Networking options |
265 | # | 263 | # |
264 | # CONFIG_NETDEBUG is not set | ||
266 | CONFIG_PACKET=y | 265 | CONFIG_PACKET=y |
267 | CONFIG_PACKET_MMAP=y | 266 | CONFIG_PACKET_MMAP=y |
268 | CONFIG_UNIX=y | 267 | CONFIG_UNIX=y |
@@ -284,12 +283,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
284 | # CONFIG_INET_AH is not set | 283 | # CONFIG_INET_AH is not set |
285 | # CONFIG_INET_ESP is not set | 284 | # CONFIG_INET_ESP is not set |
286 | # CONFIG_INET_IPCOMP is not set | 285 | # CONFIG_INET_IPCOMP is not set |
287 | CONFIG_INET_TUNNEL=m | 286 | # CONFIG_INET_XFRM_TUNNEL is not set |
287 | # CONFIG_INET_TUNNEL is not set | ||
288 | CONFIG_INET_DIAG=y | 288 | CONFIG_INET_DIAG=y |
289 | CONFIG_INET_TCP_DIAG=y | 289 | CONFIG_INET_TCP_DIAG=y |
290 | # CONFIG_TCP_CONG_ADVANCED is not set | 290 | # CONFIG_TCP_CONG_ADVANCED is not set |
291 | CONFIG_TCP_CONG_BIC=y | 291 | CONFIG_TCP_CONG_BIC=y |
292 | # CONFIG_IPV6 is not set | 292 | # CONFIG_IPV6 is not set |
293 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
294 | # CONFIG_INET6_TUNNEL is not set | ||
293 | # CONFIG_NETFILTER is not set | 295 | # CONFIG_NETFILTER is not set |
294 | 296 | ||
295 | # | 297 | # |
@@ -301,6 +303,11 @@ CONFIG_TCP_CONG_BIC=y | |||
301 | # SCTP Configuration (EXPERIMENTAL) | 303 | # SCTP Configuration (EXPERIMENTAL) |
302 | # | 304 | # |
303 | # CONFIG_IP_SCTP is not set | 305 | # CONFIG_IP_SCTP is not set |
306 | |||
307 | # | ||
308 | # TIPC Configuration (EXPERIMENTAL) | ||
309 | # | ||
310 | # CONFIG_TIPC is not set | ||
304 | # CONFIG_ATM is not set | 311 | # CONFIG_ATM is not set |
305 | # CONFIG_BRIDGE is not set | 312 | # CONFIG_BRIDGE is not set |
306 | # CONFIG_VLAN_8021Q is not set | 313 | # CONFIG_VLAN_8021Q is not set |
@@ -310,11 +317,6 @@ CONFIG_TCP_CONG_BIC=y | |||
310 | # CONFIG_ATALK is not set | 317 | # CONFIG_ATALK is not set |
311 | # CONFIG_X25 is not set | 318 | # CONFIG_X25 is not set |
312 | # CONFIG_LAPB is not set | 319 | # CONFIG_LAPB is not set |
313 | |||
314 | # | ||
315 | # TIPC Configuration (EXPERIMENTAL) | ||
316 | # | ||
317 | # CONFIG_TIPC is not set | ||
318 | # CONFIG_NET_DIVERT is not set | 320 | # CONFIG_NET_DIVERT is not set |
319 | # CONFIG_ECONET is not set | 321 | # CONFIG_ECONET is not set |
320 | # CONFIG_WAN_ROUTER is not set | 322 | # CONFIG_WAN_ROUTER is not set |
@@ -377,7 +379,7 @@ CONFIG_BLK_DEV_LOOP=m | |||
377 | CONFIG_BLK_DEV_NBD=m | 379 | CONFIG_BLK_DEV_NBD=m |
378 | # CONFIG_BLK_DEV_SX8 is not set | 380 | # CONFIG_BLK_DEV_SX8 is not set |
379 | # CONFIG_BLK_DEV_RAM is not set | 381 | # CONFIG_BLK_DEV_RAM is not set |
380 | CONFIG_BLK_DEV_RAM_COUNT=16 | 382 | # CONFIG_BLK_DEV_INITRD is not set |
381 | # CONFIG_CDROM_PKTCDVD is not set | 383 | # CONFIG_CDROM_PKTCDVD is not set |
382 | # CONFIG_ATA_OVER_ETH is not set | 384 | # CONFIG_ATA_OVER_ETH is not set |
383 | 385 | ||
@@ -575,6 +577,7 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y | |||
575 | # | 577 | # |
576 | # Non-8250 serial port support | 578 | # Non-8250 serial port support |
577 | # | 579 | # |
580 | # CONFIG_SERIAL_JSM is not set | ||
578 | CONFIG_UNIX98_PTYS=y | 581 | CONFIG_UNIX98_PTYS=y |
579 | CONFIG_LEGACY_PTYS=y | 582 | CONFIG_LEGACY_PTYS=y |
580 | CONFIG_LEGACY_PTY_COUNT=256 | 583 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -637,7 +640,6 @@ CONFIG_I2C_ALGO_SIBYTE=y | |||
637 | # CONFIG_I2C_PROSAVAGE is not set | 640 | # CONFIG_I2C_PROSAVAGE is not set |
638 | # CONFIG_I2C_SAVAGE4 is not set | 641 | # CONFIG_I2C_SAVAGE4 is not set |
639 | CONFIG_I2C_SIBYTE=y | 642 | CONFIG_I2C_SIBYTE=y |
640 | # CONFIG_SCx200_ACB is not set | ||
641 | # CONFIG_I2C_SIS5595 is not set | 643 | # CONFIG_I2C_SIS5595 is not set |
642 | # CONFIG_I2C_SIS630 is not set | 644 | # CONFIG_I2C_SIS630 is not set |
643 | # CONFIG_I2C_SIS96X is not set | 645 | # CONFIG_I2C_SIS96X is not set |
@@ -656,9 +658,7 @@ CONFIG_SENSORS_EEPROM=y | |||
656 | CONFIG_SENSORS_PCF8574=y | 658 | CONFIG_SENSORS_PCF8574=y |
657 | CONFIG_SENSORS_PCA9539=y | 659 | CONFIG_SENSORS_PCA9539=y |
658 | CONFIG_SENSORS_PCF8591=y | 660 | CONFIG_SENSORS_PCF8591=y |
659 | CONFIG_SENSORS_RTC8564=y | ||
660 | CONFIG_SENSORS_MAX6875=y | 661 | CONFIG_SENSORS_MAX6875=y |
661 | # CONFIG_RTC_X1205_I2C is not set | ||
662 | CONFIG_I2C_DEBUG_CORE=y | 662 | CONFIG_I2C_DEBUG_CORE=y |
663 | CONFIG_I2C_DEBUG_ALGO=y | 663 | CONFIG_I2C_DEBUG_ALGO=y |
664 | CONFIG_I2C_DEBUG_BUS=y | 664 | CONFIG_I2C_DEBUG_BUS=y |
@@ -686,10 +686,6 @@ CONFIG_I2C_DEBUG_CHIP=y | |||
686 | # | 686 | # |
687 | 687 | ||
688 | # | 688 | # |
689 | # Multimedia Capabilities Port drivers | ||
690 | # | ||
691 | |||
692 | # | ||
693 | # Multimedia devices | 689 | # Multimedia devices |
694 | # | 690 | # |
695 | # CONFIG_VIDEO_DEV is not set | 691 | # CONFIG_VIDEO_DEV is not set |
@@ -714,6 +710,7 @@ CONFIG_I2C_DEBUG_CHIP=y | |||
714 | # | 710 | # |
715 | CONFIG_USB_ARCH_HAS_HCD=y | 711 | CONFIG_USB_ARCH_HAS_HCD=y |
716 | CONFIG_USB_ARCH_HAS_OHCI=y | 712 | CONFIG_USB_ARCH_HAS_OHCI=y |
713 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
717 | # CONFIG_USB is not set | 714 | # CONFIG_USB is not set |
718 | 715 | ||
719 | # | 716 | # |
@@ -731,13 +728,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
731 | # CONFIG_MMC is not set | 728 | # CONFIG_MMC is not set |
732 | 729 | ||
733 | # | 730 | # |
731 | # LED devices | ||
732 | # | ||
733 | # CONFIG_NEW_LEDS is not set | ||
734 | |||
735 | # | ||
736 | # LED drivers | ||
737 | # | ||
738 | |||
739 | # | ||
740 | # LED Triggers | ||
741 | # | ||
742 | |||
743 | # | ||
734 | # InfiniBand support | 744 | # InfiniBand support |
735 | # | 745 | # |
736 | # CONFIG_INFINIBAND is not set | 746 | # CONFIG_INFINIBAND is not set |
737 | 747 | ||
738 | # | 748 | # |
739 | # SN Devices | 749 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
750 | # | ||
751 | |||
752 | # | ||
753 | # Real Time Clock | ||
740 | # | 754 | # |
755 | # CONFIG_RTC_CLASS is not set | ||
741 | 756 | ||
742 | # | 757 | # |
743 | # File systems | 758 | # File systems |
@@ -785,7 +800,6 @@ CONFIG_SYSFS=y | |||
785 | # CONFIG_TMPFS is not set | 800 | # CONFIG_TMPFS is not set |
786 | # CONFIG_HUGETLB_PAGE is not set | 801 | # CONFIG_HUGETLB_PAGE is not set |
787 | CONFIG_RAMFS=y | 802 | CONFIG_RAMFS=y |
788 | # CONFIG_RELAYFS_FS is not set | ||
789 | # CONFIG_CONFIGFS_FS is not set | 803 | # CONFIG_CONFIGFS_FS is not set |
790 | 804 | ||
791 | # | 805 | # |
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig index 6c2961affbd6..ca0af1683a00 100644 --- a/arch/mips/configs/capcella_defconfig +++ b/arch/mips/configs/capcella_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:54 2006 | 4 | # Tue Apr 25 00:08:06 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -72,6 +72,8 @@ CONFIG_ZAO_CAPCELLA=y | |||
72 | CONFIG_PCI_VR41XX=y | 72 | CONFIG_PCI_VR41XX=y |
73 | # CONFIG_VRC4173 is not set | 73 | # CONFIG_VRC4173 is not set |
74 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 74 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
75 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
76 | CONFIG_GENERIC_HWEIGHT=y | ||
75 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 77 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
76 | CONFIG_DMA_NONCOHERENT=y | 78 | CONFIG_DMA_NONCOHERENT=y |
77 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 79 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -90,7 +92,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
90 | # CONFIG_CPU_MIPS64_R2 is not set | 92 | # CONFIG_CPU_MIPS64_R2 is not set |
91 | # CONFIG_CPU_R3000 is not set | 93 | # CONFIG_CPU_R3000 is not set |
92 | # CONFIG_CPU_TX39XX is not set | 94 | # CONFIG_CPU_TX39XX is not set |
93 | # CONFIG_CPU_VR41XX is not set | 95 | CONFIG_CPU_VR41XX=y |
94 | # CONFIG_CPU_R4300 is not set | 96 | # CONFIG_CPU_R4300 is not set |
95 | # CONFIG_CPU_R4X00 is not set | 97 | # CONFIG_CPU_R4X00 is not set |
96 | # CONFIG_CPU_TX49XX is not set | 98 | # CONFIG_CPU_TX49XX is not set |
@@ -103,18 +105,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
103 | # CONFIG_CPU_RM7000 is not set | 105 | # CONFIG_CPU_RM7000 is not set |
104 | # CONFIG_CPU_RM9000 is not set | 106 | # CONFIG_CPU_RM9000 is not set |
105 | # CONFIG_CPU_SB1 is not set | 107 | # CONFIG_CPU_SB1 is not set |
108 | CONFIG_SYS_HAS_CPU_VR41XX=y | ||
109 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
110 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
111 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
106 | 112 | ||
107 | # | 113 | # |
108 | # Kernel type | 114 | # Kernel type |
109 | # | 115 | # |
110 | # CONFIG_32BIT is not set | 116 | CONFIG_32BIT=y |
111 | # CONFIG_64BIT is not set | 117 | # CONFIG_64BIT is not set |
112 | CONFIG_PAGE_SIZE_4KB=y | 118 | CONFIG_PAGE_SIZE_4KB=y |
113 | # CONFIG_PAGE_SIZE_8KB is not set | 119 | # CONFIG_PAGE_SIZE_8KB is not set |
114 | # CONFIG_PAGE_SIZE_16KB is not set | 120 | # CONFIG_PAGE_SIZE_16KB is not set |
115 | # CONFIG_PAGE_SIZE_64KB is not set | 121 | # CONFIG_PAGE_SIZE_64KB is not set |
116 | # CONFIG_MIPS_MT is not set | 122 | # CONFIG_MIPS_MT is not set |
117 | CONFIG_CPU_HAS_LLSC=y | ||
118 | CONFIG_CPU_HAS_SYNC=y | 123 | CONFIG_CPU_HAS_SYNC=y |
119 | CONFIG_GENERIC_HARDIRQS=y | 124 | CONFIG_GENERIC_HARDIRQS=y |
120 | CONFIG_GENERIC_IRQ_PROBE=y | 125 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -135,7 +140,6 @@ CONFIG_PREEMPT_NONE=y | |||
135 | # Code maturity level options | 140 | # Code maturity level options |
136 | # | 141 | # |
137 | CONFIG_EXPERIMENTAL=y | 142 | CONFIG_EXPERIMENTAL=y |
138 | CONFIG_CLEAN_COMPILE=y | ||
139 | CONFIG_BROKEN_ON_SMP=y | 143 | CONFIG_BROKEN_ON_SMP=y |
140 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 144 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
141 | 145 | ||
@@ -151,6 +155,7 @@ CONFIG_SYSVIPC=y | |||
151 | CONFIG_SYSCTL=y | 155 | CONFIG_SYSCTL=y |
152 | # CONFIG_AUDIT is not set | 156 | # CONFIG_AUDIT is not set |
153 | # CONFIG_IKCONFIG is not set | 157 | # CONFIG_IKCONFIG is not set |
158 | # CONFIG_RELAY is not set | ||
154 | CONFIG_INITRAMFS_SOURCE="" | 159 | CONFIG_INITRAMFS_SOURCE="" |
155 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 160 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
156 | CONFIG_EMBEDDED=y | 161 | CONFIG_EMBEDDED=y |
@@ -164,10 +169,6 @@ CONFIG_BASE_FULL=y | |||
164 | CONFIG_FUTEX=y | 169 | CONFIG_FUTEX=y |
165 | CONFIG_EPOLL=y | 170 | CONFIG_EPOLL=y |
166 | CONFIG_SHMEM=y | 171 | CONFIG_SHMEM=y |
167 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
168 | CONFIG_CC_ALIGN_LABELS=0 | ||
169 | CONFIG_CC_ALIGN_LOOPS=0 | ||
170 | CONFIG_CC_ALIGN_JUMPS=0 | ||
171 | CONFIG_SLAB=y | 172 | CONFIG_SLAB=y |
172 | # CONFIG_TINY_SHMEM is not set | 173 | # CONFIG_TINY_SHMEM is not set |
173 | CONFIG_BASE_SMALL=0 | 174 | CONFIG_BASE_SMALL=0 |
@@ -179,7 +180,6 @@ CONFIG_BASE_SMALL=0 | |||
179 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
180 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
181 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
182 | CONFIG_OBSOLETE_MODPARM=y | ||
183 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
184 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
185 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -187,6 +187,9 @@ CONFIG_KMOD=y | |||
187 | # | 187 | # |
188 | # Block layer | 188 | # Block layer |
189 | # | 189 | # |
190 | # CONFIG_LBD is not set | ||
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
190 | 193 | ||
191 | # | 194 | # |
192 | # IO Schedulers | 195 | # IO Schedulers |
@@ -206,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
206 | # | 209 | # |
207 | CONFIG_HW_HAS_PCI=y | 210 | CONFIG_HW_HAS_PCI=y |
208 | CONFIG_PCI=y | 211 | CONFIG_PCI=y |
209 | CONFIG_PCI_LEGACY_PROC=y | ||
210 | CONFIG_MMU=y | 212 | CONFIG_MMU=y |
211 | 213 | ||
212 | # | 214 | # |
@@ -224,6 +226,7 @@ CONFIG_MMU=y | |||
224 | # | 226 | # |
225 | CONFIG_BINFMT_ELF=y | 227 | CONFIG_BINFMT_ELF=y |
226 | # CONFIG_BINFMT_MISC is not set | 228 | # CONFIG_BINFMT_MISC is not set |
229 | CONFIG_TRAD_SIGNALS=y | ||
227 | 230 | ||
228 | # | 231 | # |
229 | # Networking | 232 | # Networking |
@@ -233,6 +236,7 @@ CONFIG_NET=y | |||
233 | # | 236 | # |
234 | # Networking options | 237 | # Networking options |
235 | # | 238 | # |
239 | # CONFIG_NETDEBUG is not set | ||
236 | CONFIG_PACKET=y | 240 | CONFIG_PACKET=y |
237 | CONFIG_PACKET_MMAP=y | 241 | CONFIG_PACKET_MMAP=y |
238 | CONFIG_UNIX=y | 242 | CONFIG_UNIX=y |
@@ -255,12 +259,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
255 | # CONFIG_INET_AH is not set | 259 | # CONFIG_INET_AH is not set |
256 | # CONFIG_INET_ESP is not set | 260 | # CONFIG_INET_ESP is not set |
257 | # CONFIG_INET_IPCOMP is not set | 261 | # CONFIG_INET_IPCOMP is not set |
258 | CONFIG_INET_TUNNEL=m | 262 | # CONFIG_INET_XFRM_TUNNEL is not set |
263 | # CONFIG_INET_TUNNEL is not set | ||
259 | CONFIG_INET_DIAG=y | 264 | CONFIG_INET_DIAG=y |
260 | CONFIG_INET_TCP_DIAG=y | 265 | CONFIG_INET_TCP_DIAG=y |
261 | # CONFIG_TCP_CONG_ADVANCED is not set | 266 | # CONFIG_TCP_CONG_ADVANCED is not set |
262 | CONFIG_TCP_CONG_BIC=y | 267 | CONFIG_TCP_CONG_BIC=y |
263 | # CONFIG_IPV6 is not set | 268 | # CONFIG_IPV6 is not set |
269 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
270 | # CONFIG_INET6_TUNNEL is not set | ||
264 | # CONFIG_NETFILTER is not set | 271 | # CONFIG_NETFILTER is not set |
265 | 272 | ||
266 | # | 273 | # |
@@ -272,6 +279,11 @@ CONFIG_TCP_CONG_BIC=y | |||
272 | # SCTP Configuration (EXPERIMENTAL) | 279 | # SCTP Configuration (EXPERIMENTAL) |
273 | # | 280 | # |
274 | # CONFIG_IP_SCTP is not set | 281 | # CONFIG_IP_SCTP is not set |
282 | |||
283 | # | ||
284 | # TIPC Configuration (EXPERIMENTAL) | ||
285 | # | ||
286 | # CONFIG_TIPC is not set | ||
275 | # CONFIG_ATM is not set | 287 | # CONFIG_ATM is not set |
276 | # CONFIG_BRIDGE is not set | 288 | # CONFIG_BRIDGE is not set |
277 | # CONFIG_VLAN_8021Q is not set | 289 | # CONFIG_VLAN_8021Q is not set |
@@ -281,11 +293,6 @@ CONFIG_TCP_CONG_BIC=y | |||
281 | # CONFIG_ATALK is not set | 293 | # CONFIG_ATALK is not set |
282 | # CONFIG_X25 is not set | 294 | # CONFIG_X25 is not set |
283 | # CONFIG_LAPB is not set | 295 | # CONFIG_LAPB is not set |
284 | |||
285 | # | ||
286 | # TIPC Configuration (EXPERIMENTAL) | ||
287 | # | ||
288 | # CONFIG_TIPC is not set | ||
289 | # CONFIG_NET_DIVERT is not set | 296 | # CONFIG_NET_DIVERT is not set |
290 | # CONFIG_ECONET is not set | 297 | # CONFIG_ECONET is not set |
291 | # CONFIG_WAN_ROUTER is not set | 298 | # CONFIG_WAN_ROUTER is not set |
@@ -302,10 +309,7 @@ CONFIG_TCP_CONG_BIC=y | |||
302 | # CONFIG_HAMRADIO is not set | 309 | # CONFIG_HAMRADIO is not set |
303 | # CONFIG_IRDA is not set | 310 | # CONFIG_IRDA is not set |
304 | # CONFIG_BT is not set | 311 | # CONFIG_BT is not set |
305 | CONFIG_IEEE80211=m | 312 | # CONFIG_IEEE80211 is not set |
306 | # CONFIG_IEEE80211_DEBUG is not set | ||
307 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
308 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
309 | 313 | ||
310 | # | 314 | # |
311 | # Device Drivers | 315 | # Device Drivers |
@@ -348,10 +352,12 @@ CONFIG_CONNECTOR=m | |||
348 | # CONFIG_BLK_DEV_LOOP is not set | 352 | # CONFIG_BLK_DEV_LOOP is not set |
349 | # CONFIG_BLK_DEV_NBD is not set | 353 | # CONFIG_BLK_DEV_NBD is not set |
350 | # CONFIG_BLK_DEV_SX8 is not set | 354 | # CONFIG_BLK_DEV_SX8 is not set |
351 | # CONFIG_BLK_DEV_RAM is not set | 355 | CONFIG_BLK_DEV_RAM=y |
352 | CONFIG_BLK_DEV_RAM_COUNT=16 | 356 | CONFIG_BLK_DEV_RAM_COUNT=16 |
357 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
358 | # CONFIG_BLK_DEV_INITRD is not set | ||
353 | # CONFIG_CDROM_PKTCDVD is not set | 359 | # CONFIG_CDROM_PKTCDVD is not set |
354 | CONFIG_ATA_OVER_ETH=m | 360 | # CONFIG_ATA_OVER_ETH is not set |
355 | 361 | ||
356 | # | 362 | # |
357 | # ATA/ATAPI/MFM/RLL support | 363 | # ATA/ATAPI/MFM/RLL support |
@@ -578,6 +584,11 @@ CONFIG_HW_CONSOLE=y | |||
578 | # | 584 | # |
579 | # Non-8250 serial port support | 585 | # Non-8250 serial port support |
580 | # | 586 | # |
587 | CONFIG_SERIAL_CORE=y | ||
588 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
589 | CONFIG_SERIAL_VR41XX=y | ||
590 | CONFIG_SERIAL_VR41XX_CONSOLE=y | ||
591 | # CONFIG_SERIAL_JSM is not set | ||
581 | CONFIG_UNIX98_PTYS=y | 592 | CONFIG_UNIX98_PTYS=y |
582 | CONFIG_LEGACY_PTYS=y | 593 | CONFIG_LEGACY_PTYS=y |
583 | CONFIG_LEGACY_PTY_COUNT=256 | 594 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -601,6 +612,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
601 | # Ftape, the floppy tape device driver | 612 | # Ftape, the floppy tape device driver |
602 | # | 613 | # |
603 | # CONFIG_DRM is not set | 614 | # CONFIG_DRM is not set |
615 | CONFIG_GPIO_VR41XX=y | ||
604 | # CONFIG_RAW_DRIVER is not set | 616 | # CONFIG_RAW_DRIVER is not set |
605 | 617 | ||
606 | # | 618 | # |
@@ -636,10 +648,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
636 | # | 648 | # |
637 | 649 | ||
638 | # | 650 | # |
639 | # Multimedia Capabilities Port drivers | ||
640 | # | ||
641 | |||
642 | # | ||
643 | # Multimedia devices | 651 | # Multimedia devices |
644 | # | 652 | # |
645 | # CONFIG_VIDEO_DEV is not set | 653 | # CONFIG_VIDEO_DEV is not set |
@@ -670,6 +678,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
670 | # | 678 | # |
671 | CONFIG_USB_ARCH_HAS_HCD=y | 679 | CONFIG_USB_ARCH_HAS_HCD=y |
672 | CONFIG_USB_ARCH_HAS_OHCI=y | 680 | CONFIG_USB_ARCH_HAS_OHCI=y |
681 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
673 | # CONFIG_USB is not set | 682 | # CONFIG_USB is not set |
674 | 683 | ||
675 | # | 684 | # |
@@ -687,13 +696,48 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
687 | # CONFIG_MMC is not set | 696 | # CONFIG_MMC is not set |
688 | 697 | ||
689 | # | 698 | # |
699 | # LED devices | ||
700 | # | ||
701 | # CONFIG_NEW_LEDS is not set | ||
702 | |||
703 | # | ||
704 | # LED drivers | ||
705 | # | ||
706 | |||
707 | # | ||
708 | # LED Triggers | ||
709 | # | ||
710 | |||
711 | # | ||
690 | # InfiniBand support | 712 | # InfiniBand support |
691 | # | 713 | # |
692 | # CONFIG_INFINIBAND is not set | 714 | # CONFIG_INFINIBAND is not set |
693 | 715 | ||
694 | # | 716 | # |
695 | # SN Devices | 717 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
718 | # | ||
719 | |||
720 | # | ||
721 | # Real Time Clock | ||
722 | # | ||
723 | CONFIG_RTC_LIB=y | ||
724 | CONFIG_RTC_CLASS=y | ||
725 | CONFIG_RTC_HCTOSYS=y | ||
726 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
727 | |||
728 | # | ||
729 | # RTC interfaces | ||
730 | # | ||
731 | CONFIG_RTC_INTF_SYSFS=y | ||
732 | CONFIG_RTC_INTF_PROC=y | ||
733 | CONFIG_RTC_INTF_DEV=y | ||
734 | |||
735 | # | ||
736 | # RTC drivers | ||
696 | # | 737 | # |
738 | # CONFIG_RTC_DRV_M48T86 is not set | ||
739 | CONFIG_RTC_DRV_VR41XX=y | ||
740 | # CONFIG_RTC_DRV_TEST is not set | ||
697 | 741 | ||
698 | # | 742 | # |
699 | # File systems | 743 | # File systems |
@@ -712,7 +756,7 @@ CONFIG_EXT2_FS=y | |||
712 | CONFIG_INOTIFY=y | 756 | CONFIG_INOTIFY=y |
713 | # CONFIG_QUOTA is not set | 757 | # CONFIG_QUOTA is not set |
714 | CONFIG_DNOTIFY=y | 758 | CONFIG_DNOTIFY=y |
715 | CONFIG_AUTOFS_FS=y | 759 | # CONFIG_AUTOFS_FS is not set |
716 | CONFIG_AUTOFS4_FS=y | 760 | CONFIG_AUTOFS4_FS=y |
717 | CONFIG_FUSE_FS=m | 761 | CONFIG_FUSE_FS=m |
718 | 762 | ||
@@ -735,10 +779,9 @@ CONFIG_FUSE_FS=m | |||
735 | CONFIG_PROC_FS=y | 779 | CONFIG_PROC_FS=y |
736 | CONFIG_PROC_KCORE=y | 780 | CONFIG_PROC_KCORE=y |
737 | CONFIG_SYSFS=y | 781 | CONFIG_SYSFS=y |
738 | # CONFIG_TMPFS is not set | 782 | CONFIG_TMPFS=y |
739 | # CONFIG_HUGETLB_PAGE is not set | 783 | # CONFIG_HUGETLB_PAGE is not set |
740 | CONFIG_RAMFS=y | 784 | CONFIG_RAMFS=y |
741 | CONFIG_RELAYFS_FS=m | ||
742 | # CONFIG_CONFIGFS_FS is not set | 785 | # CONFIG_CONFIGFS_FS is not set |
743 | 786 | ||
744 | # | 787 | # |
@@ -805,44 +848,20 @@ CONFIG_MSDOS_PARTITION=y | |||
805 | # CONFIG_MAGIC_SYSRQ is not set | 848 | # CONFIG_MAGIC_SYSRQ is not set |
806 | # CONFIG_DEBUG_KERNEL is not set | 849 | # CONFIG_DEBUG_KERNEL is not set |
807 | CONFIG_LOG_BUF_SHIFT=14 | 850 | CONFIG_LOG_BUF_SHIFT=14 |
851 | # CONFIG_DEBUG_FS is not set | ||
808 | CONFIG_CROSSCOMPILE=y | 852 | CONFIG_CROSSCOMPILE=y |
809 | CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" | 853 | CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" |
810 | 854 | ||
811 | # | 855 | # |
812 | # Security options | 856 | # Security options |
813 | # | 857 | # |
814 | CONFIG_KEYS=y | 858 | # CONFIG_KEYS is not set |
815 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
816 | # CONFIG_SECURITY is not set | 859 | # CONFIG_SECURITY is not set |
817 | 860 | ||
818 | # | 861 | # |
819 | # Cryptographic options | 862 | # Cryptographic options |
820 | # | 863 | # |
821 | CONFIG_CRYPTO=y | 864 | # CONFIG_CRYPTO is not set |
822 | CONFIG_CRYPTO_HMAC=y | ||
823 | CONFIG_CRYPTO_NULL=m | ||
824 | CONFIG_CRYPTO_MD4=m | ||
825 | CONFIG_CRYPTO_MD5=m | ||
826 | CONFIG_CRYPTO_SHA1=m | ||
827 | CONFIG_CRYPTO_SHA256=m | ||
828 | CONFIG_CRYPTO_SHA512=m | ||
829 | CONFIG_CRYPTO_WP512=m | ||
830 | CONFIG_CRYPTO_TGR192=m | ||
831 | CONFIG_CRYPTO_DES=m | ||
832 | CONFIG_CRYPTO_BLOWFISH=m | ||
833 | CONFIG_CRYPTO_TWOFISH=m | ||
834 | CONFIG_CRYPTO_SERPENT=m | ||
835 | CONFIG_CRYPTO_AES=m | ||
836 | CONFIG_CRYPTO_CAST5=m | ||
837 | CONFIG_CRYPTO_CAST6=m | ||
838 | CONFIG_CRYPTO_TEA=m | ||
839 | CONFIG_CRYPTO_ARC4=m | ||
840 | CONFIG_CRYPTO_KHAZAD=m | ||
841 | CONFIG_CRYPTO_ANUBIS=m | ||
842 | CONFIG_CRYPTO_DEFLATE=m | ||
843 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
844 | CONFIG_CRYPTO_CRC32C=m | ||
845 | # CONFIG_CRYPTO_TEST is not set | ||
846 | 865 | ||
847 | # | 866 | # |
848 | # Hardware crypto devices | 867 | # Hardware crypto devices |
@@ -852,8 +871,6 @@ CONFIG_CRYPTO_CRC32C=m | |||
852 | # Library routines | 871 | # Library routines |
853 | # | 872 | # |
854 | # CONFIG_CRC_CCITT is not set | 873 | # CONFIG_CRC_CCITT is not set |
855 | CONFIG_CRC16=m | 874 | # CONFIG_CRC16 is not set |
856 | CONFIG_CRC32=y | 875 | CONFIG_CRC32=y |
857 | CONFIG_LIBCRC32C=m | 876 | # CONFIG_LIBCRC32C is not set |
858 | CONFIG_ZLIB_INFLATE=m | ||
859 | CONFIG_ZLIB_DEFLATE=m | ||
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig index 8336b21d3db2..7d269e609282 100644 --- a/arch/mips/configs/cobalt_defconfig +++ b/arch/mips/configs/cobalt_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:55 2006 | 4 | # Mon Apr 24 14:50:57 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -63,7 +63,10 @@ CONFIG_MIPS_COBALT=y | |||
63 | # CONFIG_TOSHIBA_JMR3927 is not set | 63 | # CONFIG_TOSHIBA_JMR3927 is not set |
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_EARLY_PRINTK=y | ||
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -113,7 +116,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
113 | # CONFIG_PAGE_SIZE_16KB is not set | 116 | # CONFIG_PAGE_SIZE_16KB is not set |
114 | # CONFIG_PAGE_SIZE_64KB is not set | 117 | # CONFIG_PAGE_SIZE_64KB is not set |
115 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
116 | # CONFIG_CPU_ADVANCED is not set | ||
117 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
118 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
119 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
@@ -135,7 +137,6 @@ CONFIG_PREEMPT_NONE=y | |||
135 | # Code maturity level options | 137 | # Code maturity level options |
136 | # | 138 | # |
137 | CONFIG_EXPERIMENTAL=y | 139 | CONFIG_EXPERIMENTAL=y |
138 | CONFIG_CLEAN_COMPILE=y | ||
139 | CONFIG_BROKEN_ON_SMP=y | 140 | CONFIG_BROKEN_ON_SMP=y |
140 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 141 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
141 | 142 | ||
@@ -151,6 +152,7 @@ CONFIG_SYSVIPC=y | |||
151 | CONFIG_SYSCTL=y | 152 | CONFIG_SYSCTL=y |
152 | # CONFIG_AUDIT is not set | 153 | # CONFIG_AUDIT is not set |
153 | # CONFIG_IKCONFIG is not set | 154 | # CONFIG_IKCONFIG is not set |
155 | CONFIG_RELAY=y | ||
154 | CONFIG_INITRAMFS_SOURCE="" | 156 | CONFIG_INITRAMFS_SOURCE="" |
155 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
156 | CONFIG_EMBEDDED=y | 158 | CONFIG_EMBEDDED=y |
@@ -164,10 +166,6 @@ CONFIG_BASE_FULL=y | |||
164 | CONFIG_FUTEX=y | 166 | CONFIG_FUTEX=y |
165 | CONFIG_EPOLL=y | 167 | CONFIG_EPOLL=y |
166 | CONFIG_SHMEM=y | 168 | CONFIG_SHMEM=y |
167 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
168 | CONFIG_CC_ALIGN_LABELS=0 | ||
169 | CONFIG_CC_ALIGN_LOOPS=0 | ||
170 | CONFIG_CC_ALIGN_JUMPS=0 | ||
171 | CONFIG_SLAB=y | 169 | CONFIG_SLAB=y |
172 | # CONFIG_TINY_SHMEM is not set | 170 | # CONFIG_TINY_SHMEM is not set |
173 | CONFIG_BASE_SMALL=0 | 171 | CONFIG_BASE_SMALL=0 |
@@ -182,6 +180,8 @@ CONFIG_BASE_SMALL=0 | |||
182 | # Block layer | 180 | # Block layer |
183 | # | 181 | # |
184 | # CONFIG_LBD is not set | 182 | # CONFIG_LBD is not set |
183 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
184 | # CONFIG_LSF is not set | ||
185 | 185 | ||
186 | # | 186 | # |
187 | # IO Schedulers | 187 | # IO Schedulers |
@@ -201,7 +201,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
201 | # | 201 | # |
202 | CONFIG_HW_HAS_PCI=y | 202 | CONFIG_HW_HAS_PCI=y |
203 | CONFIG_PCI=y | 203 | CONFIG_PCI=y |
204 | CONFIG_PCI_LEGACY_PROC=y | ||
205 | CONFIG_MMU=y | 204 | CONFIG_MMU=y |
206 | 205 | ||
207 | # | 206 | # |
@@ -229,6 +228,7 @@ CONFIG_NET=y | |||
229 | # | 228 | # |
230 | # Networking options | 229 | # Networking options |
231 | # | 230 | # |
231 | # CONFIG_NETDEBUG is not set | ||
232 | CONFIG_PACKET=y | 232 | CONFIG_PACKET=y |
233 | # CONFIG_PACKET_MMAP is not set | 233 | # CONFIG_PACKET_MMAP is not set |
234 | CONFIG_UNIX=y | 234 | CONFIG_UNIX=y |
@@ -247,12 +247,15 @@ CONFIG_IP_FIB_HASH=y | |||
247 | # CONFIG_INET_AH is not set | 247 | # CONFIG_INET_AH is not set |
248 | # CONFIG_INET_ESP is not set | 248 | # CONFIG_INET_ESP is not set |
249 | # CONFIG_INET_IPCOMP is not set | 249 | # CONFIG_INET_IPCOMP is not set |
250 | CONFIG_INET_TUNNEL=y | 250 | # CONFIG_INET_XFRM_TUNNEL is not set |
251 | # CONFIG_INET_TUNNEL is not set | ||
251 | CONFIG_INET_DIAG=y | 252 | CONFIG_INET_DIAG=y |
252 | CONFIG_INET_TCP_DIAG=y | 253 | CONFIG_INET_TCP_DIAG=y |
253 | # CONFIG_TCP_CONG_ADVANCED is not set | 254 | # CONFIG_TCP_CONG_ADVANCED is not set |
254 | CONFIG_TCP_CONG_BIC=y | 255 | CONFIG_TCP_CONG_BIC=y |
255 | # CONFIG_IPV6 is not set | 256 | # CONFIG_IPV6 is not set |
257 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
258 | # CONFIG_INET6_TUNNEL is not set | ||
256 | # CONFIG_NETFILTER is not set | 259 | # CONFIG_NETFILTER is not set |
257 | 260 | ||
258 | # | 261 | # |
@@ -264,6 +267,11 @@ CONFIG_TCP_CONG_BIC=y | |||
264 | # SCTP Configuration (EXPERIMENTAL) | 267 | # SCTP Configuration (EXPERIMENTAL) |
265 | # | 268 | # |
266 | # CONFIG_IP_SCTP is not set | 269 | # CONFIG_IP_SCTP is not set |
270 | |||
271 | # | ||
272 | # TIPC Configuration (EXPERIMENTAL) | ||
273 | # | ||
274 | # CONFIG_TIPC is not set | ||
267 | # CONFIG_ATM is not set | 275 | # CONFIG_ATM is not set |
268 | # CONFIG_BRIDGE is not set | 276 | # CONFIG_BRIDGE is not set |
269 | # CONFIG_VLAN_8021Q is not set | 277 | # CONFIG_VLAN_8021Q is not set |
@@ -273,11 +281,6 @@ CONFIG_TCP_CONG_BIC=y | |||
273 | # CONFIG_ATALK is not set | 281 | # CONFIG_ATALK is not set |
274 | # CONFIG_X25 is not set | 282 | # CONFIG_X25 is not set |
275 | # CONFIG_LAPB is not set | 283 | # CONFIG_LAPB is not set |
276 | |||
277 | # | ||
278 | # TIPC Configuration (EXPERIMENTAL) | ||
279 | # | ||
280 | # CONFIG_TIPC is not set | ||
281 | # CONFIG_NET_DIVERT is not set | 284 | # CONFIG_NET_DIVERT is not set |
282 | # CONFIG_ECONET is not set | 285 | # CONFIG_ECONET is not set |
283 | # CONFIG_WAN_ROUTER is not set | 286 | # CONFIG_WAN_ROUTER is not set |
@@ -298,6 +301,9 @@ CONFIG_IEEE80211=y | |||
298 | # CONFIG_IEEE80211_DEBUG is not set | 301 | # CONFIG_IEEE80211_DEBUG is not set |
299 | CONFIG_IEEE80211_CRYPT_WEP=y | 302 | CONFIG_IEEE80211_CRYPT_WEP=y |
300 | CONFIG_IEEE80211_CRYPT_CCMP=y | 303 | CONFIG_IEEE80211_CRYPT_CCMP=y |
304 | CONFIG_IEEE80211_SOFTMAC=y | ||
305 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
306 | CONFIG_WIRELESS_EXT=y | ||
301 | 307 | ||
302 | # | 308 | # |
303 | # Device Drivers | 309 | # Device Drivers |
@@ -343,7 +349,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
343 | # CONFIG_BLK_DEV_NBD is not set | 349 | # CONFIG_BLK_DEV_NBD is not set |
344 | # CONFIG_BLK_DEV_SX8 is not set | 350 | # CONFIG_BLK_DEV_SX8 is not set |
345 | # CONFIG_BLK_DEV_RAM is not set | 351 | # CONFIG_BLK_DEV_RAM is not set |
346 | CONFIG_BLK_DEV_RAM_COUNT=16 | 352 | # CONFIG_BLK_DEV_INITRD is not set |
347 | CONFIG_CDROM_PKTCDVD=y | 353 | CONFIG_CDROM_PKTCDVD=y |
348 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 354 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
349 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 355 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -593,6 +599,7 @@ CONFIG_HW_CONSOLE=y | |||
593 | # | 599 | # |
594 | CONFIG_SERIAL_8250=y | 600 | CONFIG_SERIAL_8250=y |
595 | CONFIG_SERIAL_8250_CONSOLE=y | 601 | CONFIG_SERIAL_8250_CONSOLE=y |
602 | CONFIG_SERIAL_8250_PCI=y | ||
596 | CONFIG_SERIAL_8250_NR_UARTS=4 | 603 | CONFIG_SERIAL_8250_NR_UARTS=4 |
597 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 604 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
598 | # CONFIG_SERIAL_8250_EXTENDED is not set | 605 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -602,6 +609,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
602 | # | 609 | # |
603 | CONFIG_SERIAL_CORE=y | 610 | CONFIG_SERIAL_CORE=y |
604 | CONFIG_SERIAL_CORE_CONSOLE=y | 611 | CONFIG_SERIAL_CORE_CONSOLE=y |
612 | # CONFIG_SERIAL_JSM is not set | ||
605 | CONFIG_UNIX98_PTYS=y | 613 | CONFIG_UNIX98_PTYS=y |
606 | CONFIG_LEGACY_PTYS=y | 614 | CONFIG_LEGACY_PTYS=y |
607 | CONFIG_LEGACY_PTY_COUNT=256 | 615 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -660,10 +668,6 @@ CONFIG_COBALT_LCD=y | |||
660 | # | 668 | # |
661 | 669 | ||
662 | # | 670 | # |
663 | # Multimedia Capabilities Port drivers | ||
664 | # | ||
665 | |||
666 | # | ||
667 | # Multimedia devices | 671 | # Multimedia devices |
668 | # | 672 | # |
669 | # CONFIG_VIDEO_DEV is not set | 673 | # CONFIG_VIDEO_DEV is not set |
@@ -694,6 +698,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
694 | # | 698 | # |
695 | CONFIG_USB_ARCH_HAS_HCD=y | 699 | CONFIG_USB_ARCH_HAS_HCD=y |
696 | CONFIG_USB_ARCH_HAS_OHCI=y | 700 | CONFIG_USB_ARCH_HAS_OHCI=y |
701 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
697 | # CONFIG_USB is not set | 702 | # CONFIG_USB is not set |
698 | 703 | ||
699 | # | 704 | # |
@@ -711,13 +716,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
711 | # CONFIG_MMC is not set | 716 | # CONFIG_MMC is not set |
712 | 717 | ||
713 | # | 718 | # |
719 | # LED devices | ||
720 | # | ||
721 | # CONFIG_NEW_LEDS is not set | ||
722 | |||
723 | # | ||
724 | # LED drivers | ||
725 | # | ||
726 | |||
727 | # | ||
728 | # LED Triggers | ||
729 | # | ||
730 | |||
731 | # | ||
714 | # InfiniBand support | 732 | # InfiniBand support |
715 | # | 733 | # |
716 | # CONFIG_INFINIBAND is not set | 734 | # CONFIG_INFINIBAND is not set |
717 | 735 | ||
718 | # | 736 | # |
719 | # SN Devices | 737 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
738 | # | ||
739 | |||
740 | # | ||
741 | # Real Time Clock | ||
720 | # | 742 | # |
743 | # CONFIG_RTC_CLASS is not set | ||
721 | 744 | ||
722 | # | 745 | # |
723 | # File systems | 746 | # File systems |
@@ -765,7 +788,6 @@ CONFIG_SYSFS=y | |||
765 | # CONFIG_TMPFS is not set | 788 | # CONFIG_TMPFS is not set |
766 | # CONFIG_HUGETLB_PAGE is not set | 789 | # CONFIG_HUGETLB_PAGE is not set |
767 | CONFIG_RAMFS=y | 790 | CONFIG_RAMFS=y |
768 | CONFIG_RELAYFS_FS=y | ||
769 | # CONFIG_CONFIGFS_FS is not set | 791 | # CONFIG_CONFIGFS_FS is not set |
770 | 792 | ||
771 | # | 793 | # |
@@ -828,6 +850,8 @@ CONFIG_MSDOS_PARTITION=y | |||
828 | # CONFIG_MAGIC_SYSRQ is not set | 850 | # CONFIG_MAGIC_SYSRQ is not set |
829 | # CONFIG_DEBUG_KERNEL is not set | 851 | # CONFIG_DEBUG_KERNEL is not set |
830 | CONFIG_LOG_BUF_SHIFT=14 | 852 | CONFIG_LOG_BUF_SHIFT=14 |
853 | # CONFIG_DEBUG_FS is not set | ||
854 | # CONFIG_UNWIND_INFO is not set | ||
831 | CONFIG_CROSSCOMPILE=y | 855 | CONFIG_CROSSCOMPILE=y |
832 | CONFIG_CMDLINE="" | 856 | CONFIG_CMDLINE="" |
833 | 857 | ||
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig index 7f071403c8e3..579b665e3339 100644 --- a/arch/mips/configs/db1000_defconfig +++ b/arch/mips/configs/db1000_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:56 2006 | 4 | # Mon Apr 24 14:50:57 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1000=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | CONFIG_CPU_HAS_PREFETCH=y | 116 | CONFIG_CPU_HAS_PREFETCH=y |
115 | # CONFIG_MIPS_MT is not set | 117 | # CONFIG_MIPS_MT is not set |
116 | CONFIG_64BIT_PHYS_ADDR=y | 118 | CONFIG_64BIT_PHYS_ADDR=y |
117 | # CONFIG_CPU_ADVANCED is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
121 | CONFIG_GENERIC_IRQ_PROBE=y | 122 | CONFIG_GENERIC_IRQ_PROBE=y |
123 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
122 | CONFIG_ARCH_FLATMEM_ENABLE=y | 124 | CONFIG_ARCH_FLATMEM_ENABLE=y |
123 | CONFIG_SELECT_MEMORY_MODEL=y | 125 | CONFIG_SELECT_MEMORY_MODEL=y |
124 | CONFIG_FLATMEM_MANUAL=y | 126 | CONFIG_FLATMEM_MANUAL=y |
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
136 | # Code maturity level options | 138 | # Code maturity level options |
137 | # | 139 | # |
138 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
139 | CONFIG_CLEAN_COMPILE=y | ||
140 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
141 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
142 | 143 | ||
@@ -152,6 +153,7 @@ CONFIG_SYSVIPC=y | |||
152 | CONFIG_SYSCTL=y | 153 | CONFIG_SYSCTL=y |
153 | # CONFIG_AUDIT is not set | 154 | # CONFIG_AUDIT is not set |
154 | # CONFIG_IKCONFIG is not set | 155 | # CONFIG_IKCONFIG is not set |
156 | CONFIG_RELAY=y | ||
155 | CONFIG_INITRAMFS_SOURCE="" | 157 | CONFIG_INITRAMFS_SOURCE="" |
156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
157 | CONFIG_EMBEDDED=y | 159 | CONFIG_EMBEDDED=y |
@@ -165,10 +167,6 @@ CONFIG_BASE_FULL=y | |||
165 | CONFIG_FUTEX=y | 167 | CONFIG_FUTEX=y |
166 | CONFIG_EPOLL=y | 168 | CONFIG_EPOLL=y |
167 | CONFIG_SHMEM=y | 169 | CONFIG_SHMEM=y |
168 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
169 | CONFIG_CC_ALIGN_LABELS=0 | ||
170 | CONFIG_CC_ALIGN_LOOPS=0 | ||
171 | CONFIG_CC_ALIGN_JUMPS=0 | ||
172 | CONFIG_SLAB=y | 170 | CONFIG_SLAB=y |
173 | # CONFIG_TINY_SHMEM is not set | 171 | # CONFIG_TINY_SHMEM is not set |
174 | CONFIG_BASE_SMALL=0 | 172 | CONFIG_BASE_SMALL=0 |
@@ -181,7 +179,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
181 | CONFIG_MODULES=y | 179 | CONFIG_MODULES=y |
182 | CONFIG_MODULE_UNLOAD=y | 180 | CONFIG_MODULE_UNLOAD=y |
183 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 181 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
184 | CONFIG_OBSOLETE_MODPARM=y | ||
185 | CONFIG_MODVERSIONS=y | 182 | CONFIG_MODVERSIONS=y |
186 | CONFIG_MODULE_SRCVERSION_ALL=y | 183 | CONFIG_MODULE_SRCVERSION_ALL=y |
187 | CONFIG_KMOD=y | 184 | CONFIG_KMOD=y |
@@ -190,6 +187,8 @@ CONFIG_KMOD=y | |||
190 | # Block layer | 187 | # Block layer |
191 | # | 188 | # |
192 | # CONFIG_LBD is not set | 189 | # CONFIG_LBD is not set |
190 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
191 | # CONFIG_LSF is not set | ||
193 | 192 | ||
194 | # | 193 | # |
195 | # IO Schedulers | 194 | # IO Schedulers |
@@ -245,6 +244,7 @@ CONFIG_NET=y | |||
245 | # | 244 | # |
246 | # Networking options | 245 | # Networking options |
247 | # | 246 | # |
247 | # CONFIG_NETDEBUG is not set | ||
248 | CONFIG_PACKET=y | 248 | CONFIG_PACKET=y |
249 | # CONFIG_PACKET_MMAP is not set | 249 | # CONFIG_PACKET_MMAP is not set |
250 | CONFIG_UNIX=y | 250 | CONFIG_UNIX=y |
@@ -267,7 +267,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
267 | # CONFIG_INET_AH is not set | 267 | # CONFIG_INET_AH is not set |
268 | # CONFIG_INET_ESP is not set | 268 | # CONFIG_INET_ESP is not set |
269 | # CONFIG_INET_IPCOMP is not set | 269 | # CONFIG_INET_IPCOMP is not set |
270 | CONFIG_INET_TUNNEL=m | 270 | # CONFIG_INET_XFRM_TUNNEL is not set |
271 | # CONFIG_INET_TUNNEL is not set | ||
271 | CONFIG_INET_DIAG=y | 272 | CONFIG_INET_DIAG=y |
272 | CONFIG_INET_TCP_DIAG=y | 273 | CONFIG_INET_TCP_DIAG=y |
273 | # CONFIG_TCP_CONG_ADVANCED is not set | 274 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -278,6 +279,8 @@ CONFIG_TCP_CONG_BIC=y | |||
278 | # | 279 | # |
279 | # CONFIG_IP_VS is not set | 280 | # CONFIG_IP_VS is not set |
280 | # CONFIG_IPV6 is not set | 281 | # CONFIG_IPV6 is not set |
282 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
283 | # CONFIG_INET6_TUNNEL is not set | ||
281 | CONFIG_NETFILTER=y | 284 | CONFIG_NETFILTER=y |
282 | # CONFIG_NETFILTER_DEBUG is not set | 285 | # CONFIG_NETFILTER_DEBUG is not set |
283 | 286 | ||
@@ -294,10 +297,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
294 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 297 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
295 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 298 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
296 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 299 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
300 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
297 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 301 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
298 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 302 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
299 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 303 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
300 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 304 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
305 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
306 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
301 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 307 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
302 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 308 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
303 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 309 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -321,6 +327,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
321 | # SCTP Configuration (EXPERIMENTAL) | 327 | # SCTP Configuration (EXPERIMENTAL) |
322 | # | 328 | # |
323 | # CONFIG_IP_SCTP is not set | 329 | # CONFIG_IP_SCTP is not set |
330 | |||
331 | # | ||
332 | # TIPC Configuration (EXPERIMENTAL) | ||
333 | # | ||
334 | # CONFIG_TIPC is not set | ||
324 | # CONFIG_ATM is not set | 335 | # CONFIG_ATM is not set |
325 | # CONFIG_BRIDGE is not set | 336 | # CONFIG_BRIDGE is not set |
326 | # CONFIG_VLAN_8021Q is not set | 337 | # CONFIG_VLAN_8021Q is not set |
@@ -330,11 +341,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
330 | # CONFIG_ATALK is not set | 341 | # CONFIG_ATALK is not set |
331 | # CONFIG_X25 is not set | 342 | # CONFIG_X25 is not set |
332 | # CONFIG_LAPB is not set | 343 | # CONFIG_LAPB is not set |
333 | |||
334 | # | ||
335 | # TIPC Configuration (EXPERIMENTAL) | ||
336 | # | ||
337 | # CONFIG_TIPC is not set | ||
338 | # CONFIG_NET_DIVERT is not set | 344 | # CONFIG_NET_DIVERT is not set |
339 | # CONFIG_ECONET is not set | 345 | # CONFIG_ECONET is not set |
340 | # CONFIG_WAN_ROUTER is not set | 346 | # CONFIG_WAN_ROUTER is not set |
@@ -356,6 +362,9 @@ CONFIG_IEEE80211=m | |||
356 | # CONFIG_IEEE80211_DEBUG is not set | 362 | # CONFIG_IEEE80211_DEBUG is not set |
357 | CONFIG_IEEE80211_CRYPT_WEP=m | 363 | CONFIG_IEEE80211_CRYPT_WEP=m |
358 | CONFIG_IEEE80211_CRYPT_CCMP=m | 364 | CONFIG_IEEE80211_CRYPT_CCMP=m |
365 | CONFIG_IEEE80211_SOFTMAC=m | ||
366 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
367 | CONFIG_WIRELESS_EXT=y | ||
359 | 368 | ||
360 | # | 369 | # |
361 | # Device Drivers | 370 | # Device Drivers |
@@ -412,7 +421,6 @@ CONFIG_MTD_CFI_I2=y | |||
412 | # CONFIG_MTD_CFI_I8 is not set | 421 | # CONFIG_MTD_CFI_I8 is not set |
413 | # CONFIG_MTD_CFI_INTELEXT is not set | 422 | # CONFIG_MTD_CFI_INTELEXT is not set |
414 | CONFIG_MTD_CFI_AMDSTD=y | 423 | CONFIG_MTD_CFI_AMDSTD=y |
415 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
416 | # CONFIG_MTD_CFI_STAA is not set | 424 | # CONFIG_MTD_CFI_STAA is not set |
417 | CONFIG_MTD_CFI_UTIL=y | 425 | CONFIG_MTD_CFI_UTIL=y |
418 | # CONFIG_MTD_RAM is not set | 426 | # CONFIG_MTD_RAM is not set |
@@ -434,7 +442,6 @@ CONFIG_MTD_ALCHEMY=y | |||
434 | # CONFIG_MTD_SLRAM is not set | 442 | # CONFIG_MTD_SLRAM is not set |
435 | # CONFIG_MTD_PHRAM is not set | 443 | # CONFIG_MTD_PHRAM is not set |
436 | # CONFIG_MTD_MTDRAM is not set | 444 | # CONFIG_MTD_MTDRAM is not set |
437 | # CONFIG_MTD_BLKMTD is not set | ||
438 | # CONFIG_MTD_BLOCK2MTD is not set | 445 | # CONFIG_MTD_BLOCK2MTD is not set |
439 | 446 | ||
440 | # | 447 | # |
@@ -471,7 +478,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
471 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 478 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
472 | # CONFIG_BLK_DEV_NBD is not set | 479 | # CONFIG_BLK_DEV_NBD is not set |
473 | # CONFIG_BLK_DEV_RAM is not set | 480 | # CONFIG_BLK_DEV_RAM is not set |
474 | CONFIG_BLK_DEV_RAM_COUNT=16 | 481 | # CONFIG_BLK_DEV_INITRD is not set |
475 | CONFIG_CDROM_PKTCDVD=m | 482 | CONFIG_CDROM_PKTCDVD=m |
476 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 483 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
477 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 484 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -722,10 +729,6 @@ CONFIG_SYNCLINK_CS=m | |||
722 | # | 729 | # |
723 | 730 | ||
724 | # | 731 | # |
725 | # Multimedia Capabilities Port drivers | ||
726 | # | ||
727 | |||
728 | # | ||
729 | # Multimedia devices | 732 | # Multimedia devices |
730 | # | 733 | # |
731 | # CONFIG_VIDEO_DEV is not set | 734 | # CONFIG_VIDEO_DEV is not set |
@@ -756,6 +759,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
756 | # | 759 | # |
757 | CONFIG_USB_ARCH_HAS_HCD=y | 760 | CONFIG_USB_ARCH_HAS_HCD=y |
758 | CONFIG_USB_ARCH_HAS_OHCI=y | 761 | CONFIG_USB_ARCH_HAS_OHCI=y |
762 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
759 | # CONFIG_USB is not set | 763 | # CONFIG_USB is not set |
760 | 764 | ||
761 | # | 765 | # |
@@ -773,12 +777,30 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
773 | # CONFIG_MMC is not set | 777 | # CONFIG_MMC is not set |
774 | 778 | ||
775 | # | 779 | # |
780 | # LED devices | ||
781 | # | ||
782 | # CONFIG_NEW_LEDS is not set | ||
783 | |||
784 | # | ||
785 | # LED drivers | ||
786 | # | ||
787 | |||
788 | # | ||
789 | # LED Triggers | ||
790 | # | ||
791 | |||
792 | # | ||
776 | # InfiniBand support | 793 | # InfiniBand support |
777 | # | 794 | # |
778 | 795 | ||
779 | # | 796 | # |
780 | # SN Devices | 797 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
798 | # | ||
799 | |||
800 | # | ||
801 | # Real Time Clock | ||
781 | # | 802 | # |
803 | # CONFIG_RTC_CLASS is not set | ||
782 | 804 | ||
783 | # | 805 | # |
784 | # File systems | 806 | # File systems |
@@ -836,7 +858,6 @@ CONFIG_SYSFS=y | |||
836 | CONFIG_TMPFS=y | 858 | CONFIG_TMPFS=y |
837 | # CONFIG_HUGETLB_PAGE is not set | 859 | # CONFIG_HUGETLB_PAGE is not set |
838 | CONFIG_RAMFS=y | 860 | CONFIG_RAMFS=y |
839 | CONFIG_RELAYFS_FS=m | ||
840 | # CONFIG_CONFIGFS_FS is not set | 861 | # CONFIG_CONFIGFS_FS is not set |
841 | 862 | ||
842 | # | 863 | # |
@@ -945,6 +966,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
945 | # CONFIG_MAGIC_SYSRQ is not set | 966 | # CONFIG_MAGIC_SYSRQ is not set |
946 | # CONFIG_DEBUG_KERNEL is not set | 967 | # CONFIG_DEBUG_KERNEL is not set |
947 | CONFIG_LOG_BUF_SHIFT=14 | 968 | CONFIG_LOG_BUF_SHIFT=14 |
969 | # CONFIG_DEBUG_FS is not set | ||
948 | CONFIG_CROSSCOMPILE=y | 970 | CONFIG_CROSSCOMPILE=y |
949 | CONFIG_CMDLINE="" | 971 | CONFIG_CMDLINE="" |
950 | 972 | ||
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig index 98590cac1ec5..e5eb53867422 100644 --- a/arch/mips/configs/db1100_defconfig +++ b/arch/mips/configs/db1100_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:57 2006 | 4 | # Mon Apr 24 14:50:58 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1100=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | CONFIG_CPU_HAS_PREFETCH=y | 116 | CONFIG_CPU_HAS_PREFETCH=y |
115 | # CONFIG_MIPS_MT is not set | 117 | # CONFIG_MIPS_MT is not set |
116 | CONFIG_64BIT_PHYS_ADDR=y | 118 | CONFIG_64BIT_PHYS_ADDR=y |
117 | # CONFIG_CPU_ADVANCED is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
121 | CONFIG_GENERIC_IRQ_PROBE=y | 122 | CONFIG_GENERIC_IRQ_PROBE=y |
123 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
122 | CONFIG_ARCH_FLATMEM_ENABLE=y | 124 | CONFIG_ARCH_FLATMEM_ENABLE=y |
123 | CONFIG_SELECT_MEMORY_MODEL=y | 125 | CONFIG_SELECT_MEMORY_MODEL=y |
124 | CONFIG_FLATMEM_MANUAL=y | 126 | CONFIG_FLATMEM_MANUAL=y |
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
136 | # Code maturity level options | 138 | # Code maturity level options |
137 | # | 139 | # |
138 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
139 | CONFIG_CLEAN_COMPILE=y | ||
140 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
141 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
142 | 143 | ||
@@ -152,6 +153,7 @@ CONFIG_SYSVIPC=y | |||
152 | CONFIG_SYSCTL=y | 153 | CONFIG_SYSCTL=y |
153 | # CONFIG_AUDIT is not set | 154 | # CONFIG_AUDIT is not set |
154 | # CONFIG_IKCONFIG is not set | 155 | # CONFIG_IKCONFIG is not set |
156 | CONFIG_RELAY=y | ||
155 | CONFIG_INITRAMFS_SOURCE="" | 157 | CONFIG_INITRAMFS_SOURCE="" |
156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
157 | CONFIG_EMBEDDED=y | 159 | CONFIG_EMBEDDED=y |
@@ -165,10 +167,6 @@ CONFIG_BASE_FULL=y | |||
165 | CONFIG_FUTEX=y | 167 | CONFIG_FUTEX=y |
166 | CONFIG_EPOLL=y | 168 | CONFIG_EPOLL=y |
167 | CONFIG_SHMEM=y | 169 | CONFIG_SHMEM=y |
168 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
169 | CONFIG_CC_ALIGN_LABELS=0 | ||
170 | CONFIG_CC_ALIGN_LOOPS=0 | ||
171 | CONFIG_CC_ALIGN_JUMPS=0 | ||
172 | CONFIG_SLAB=y | 170 | CONFIG_SLAB=y |
173 | # CONFIG_TINY_SHMEM is not set | 171 | # CONFIG_TINY_SHMEM is not set |
174 | CONFIG_BASE_SMALL=0 | 172 | CONFIG_BASE_SMALL=0 |
@@ -181,7 +179,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
181 | CONFIG_MODULES=y | 179 | CONFIG_MODULES=y |
182 | CONFIG_MODULE_UNLOAD=y | 180 | CONFIG_MODULE_UNLOAD=y |
183 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 181 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
184 | CONFIG_OBSOLETE_MODPARM=y | ||
185 | CONFIG_MODVERSIONS=y | 182 | CONFIG_MODVERSIONS=y |
186 | CONFIG_MODULE_SRCVERSION_ALL=y | 183 | CONFIG_MODULE_SRCVERSION_ALL=y |
187 | CONFIG_KMOD=y | 184 | CONFIG_KMOD=y |
@@ -190,6 +187,8 @@ CONFIG_KMOD=y | |||
190 | # Block layer | 187 | # Block layer |
191 | # | 188 | # |
192 | # CONFIG_LBD is not set | 189 | # CONFIG_LBD is not set |
190 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
191 | # CONFIG_LSF is not set | ||
193 | 192 | ||
194 | # | 193 | # |
195 | # IO Schedulers | 194 | # IO Schedulers |
@@ -234,6 +233,7 @@ CONFIG_NET=y | |||
234 | # | 233 | # |
235 | # Networking options | 234 | # Networking options |
236 | # | 235 | # |
236 | # CONFIG_NETDEBUG is not set | ||
237 | CONFIG_PACKET=y | 237 | CONFIG_PACKET=y |
238 | # CONFIG_PACKET_MMAP is not set | 238 | # CONFIG_PACKET_MMAP is not set |
239 | CONFIG_UNIX=y | 239 | CONFIG_UNIX=y |
@@ -256,7 +256,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
256 | # CONFIG_INET_AH is not set | 256 | # CONFIG_INET_AH is not set |
257 | # CONFIG_INET_ESP is not set | 257 | # CONFIG_INET_ESP is not set |
258 | # CONFIG_INET_IPCOMP is not set | 258 | # CONFIG_INET_IPCOMP is not set |
259 | CONFIG_INET_TUNNEL=m | 259 | # CONFIG_INET_XFRM_TUNNEL is not set |
260 | # CONFIG_INET_TUNNEL is not set | ||
260 | CONFIG_INET_DIAG=y | 261 | CONFIG_INET_DIAG=y |
261 | CONFIG_INET_TCP_DIAG=y | 262 | CONFIG_INET_TCP_DIAG=y |
262 | # CONFIG_TCP_CONG_ADVANCED is not set | 263 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -267,6 +268,8 @@ CONFIG_TCP_CONG_BIC=y | |||
267 | # | 268 | # |
268 | # CONFIG_IP_VS is not set | 269 | # CONFIG_IP_VS is not set |
269 | # CONFIG_IPV6 is not set | 270 | # CONFIG_IPV6 is not set |
271 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
272 | # CONFIG_INET6_TUNNEL is not set | ||
270 | CONFIG_NETFILTER=y | 273 | CONFIG_NETFILTER=y |
271 | # CONFIG_NETFILTER_DEBUG is not set | 274 | # CONFIG_NETFILTER_DEBUG is not set |
272 | 275 | ||
@@ -283,10 +286,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
283 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 286 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
284 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 287 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
285 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 288 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
289 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
286 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 290 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
287 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 291 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
288 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 292 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
289 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 293 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
294 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
295 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
290 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 296 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
291 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 297 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
292 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 298 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -310,6 +316,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
310 | # SCTP Configuration (EXPERIMENTAL) | 316 | # SCTP Configuration (EXPERIMENTAL) |
311 | # | 317 | # |
312 | # CONFIG_IP_SCTP is not set | 318 | # CONFIG_IP_SCTP is not set |
319 | |||
320 | # | ||
321 | # TIPC Configuration (EXPERIMENTAL) | ||
322 | # | ||
323 | # CONFIG_TIPC is not set | ||
313 | # CONFIG_ATM is not set | 324 | # CONFIG_ATM is not set |
314 | # CONFIG_BRIDGE is not set | 325 | # CONFIG_BRIDGE is not set |
315 | # CONFIG_VLAN_8021Q is not set | 326 | # CONFIG_VLAN_8021Q is not set |
@@ -319,11 +330,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
319 | # CONFIG_ATALK is not set | 330 | # CONFIG_ATALK is not set |
320 | # CONFIG_X25 is not set | 331 | # CONFIG_X25 is not set |
321 | # CONFIG_LAPB is not set | 332 | # CONFIG_LAPB is not set |
322 | |||
323 | # | ||
324 | # TIPC Configuration (EXPERIMENTAL) | ||
325 | # | ||
326 | # CONFIG_TIPC is not set | ||
327 | # CONFIG_NET_DIVERT is not set | 333 | # CONFIG_NET_DIVERT is not set |
328 | # CONFIG_ECONET is not set | 334 | # CONFIG_ECONET is not set |
329 | # CONFIG_WAN_ROUTER is not set | 335 | # CONFIG_WAN_ROUTER is not set |
@@ -345,6 +351,9 @@ CONFIG_IEEE80211=m | |||
345 | # CONFIG_IEEE80211_DEBUG is not set | 351 | # CONFIG_IEEE80211_DEBUG is not set |
346 | CONFIG_IEEE80211_CRYPT_WEP=m | 352 | CONFIG_IEEE80211_CRYPT_WEP=m |
347 | CONFIG_IEEE80211_CRYPT_CCMP=m | 353 | CONFIG_IEEE80211_CRYPT_CCMP=m |
354 | CONFIG_IEEE80211_SOFTMAC=m | ||
355 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
356 | CONFIG_WIRELESS_EXT=y | ||
348 | 357 | ||
349 | # | 358 | # |
350 | # Device Drivers | 359 | # Device Drivers |
@@ -401,7 +410,6 @@ CONFIG_MTD_CFI_I2=y | |||
401 | # CONFIG_MTD_CFI_I8 is not set | 410 | # CONFIG_MTD_CFI_I8 is not set |
402 | # CONFIG_MTD_CFI_INTELEXT is not set | 411 | # CONFIG_MTD_CFI_INTELEXT is not set |
403 | CONFIG_MTD_CFI_AMDSTD=y | 412 | CONFIG_MTD_CFI_AMDSTD=y |
404 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
405 | # CONFIG_MTD_CFI_STAA is not set | 413 | # CONFIG_MTD_CFI_STAA is not set |
406 | CONFIG_MTD_CFI_UTIL=y | 414 | CONFIG_MTD_CFI_UTIL=y |
407 | # CONFIG_MTD_RAM is not set | 415 | # CONFIG_MTD_RAM is not set |
@@ -423,7 +431,6 @@ CONFIG_MTD_ALCHEMY=y | |||
423 | # CONFIG_MTD_SLRAM is not set | 431 | # CONFIG_MTD_SLRAM is not set |
424 | # CONFIG_MTD_PHRAM is not set | 432 | # CONFIG_MTD_PHRAM is not set |
425 | # CONFIG_MTD_MTDRAM is not set | 433 | # CONFIG_MTD_MTDRAM is not set |
426 | # CONFIG_MTD_BLKMTD is not set | ||
427 | # CONFIG_MTD_BLOCK2MTD is not set | 434 | # CONFIG_MTD_BLOCK2MTD is not set |
428 | 435 | ||
429 | # | 436 | # |
@@ -460,7 +467,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
460 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 467 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
461 | # CONFIG_BLK_DEV_NBD is not set | 468 | # CONFIG_BLK_DEV_NBD is not set |
462 | # CONFIG_BLK_DEV_RAM is not set | 469 | # CONFIG_BLK_DEV_RAM is not set |
463 | CONFIG_BLK_DEV_RAM_COUNT=16 | 470 | # CONFIG_BLK_DEV_INITRD is not set |
464 | CONFIG_CDROM_PKTCDVD=m | 471 | CONFIG_CDROM_PKTCDVD=m |
465 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 472 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
466 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 473 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -690,10 +697,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
690 | # | 697 | # |
691 | 698 | ||
692 | # | 699 | # |
693 | # Multimedia Capabilities Port drivers | ||
694 | # | ||
695 | |||
696 | # | ||
697 | # Multimedia devices | 700 | # Multimedia devices |
698 | # | 701 | # |
699 | # CONFIG_VIDEO_DEV is not set | 702 | # CONFIG_VIDEO_DEV is not set |
@@ -711,6 +714,7 @@ CONFIG_FB_CFB_FILLRECT=y | |||
711 | CONFIG_FB_CFB_COPYAREA=y | 714 | CONFIG_FB_CFB_COPYAREA=y |
712 | CONFIG_FB_CFB_IMAGEBLIT=y | 715 | CONFIG_FB_CFB_IMAGEBLIT=y |
713 | # CONFIG_FB_MACMODES is not set | 716 | # CONFIG_FB_MACMODES is not set |
717 | CONFIG_FB_FIRMWARE_EDID=y | ||
714 | # CONFIG_FB_MODE_HELPERS is not set | 718 | # CONFIG_FB_MODE_HELPERS is not set |
715 | # CONFIG_FB_TILEBLITTING is not set | 719 | # CONFIG_FB_TILEBLITTING is not set |
716 | # CONFIG_FB_S1D13XXX is not set | 720 | # CONFIG_FB_S1D13XXX is not set |
@@ -755,6 +759,7 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
755 | # | 759 | # |
756 | CONFIG_USB_ARCH_HAS_HCD=y | 760 | CONFIG_USB_ARCH_HAS_HCD=y |
757 | CONFIG_USB_ARCH_HAS_OHCI=y | 761 | CONFIG_USB_ARCH_HAS_OHCI=y |
762 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
758 | # CONFIG_USB is not set | 763 | # CONFIG_USB is not set |
759 | 764 | ||
760 | # | 765 | # |
@@ -772,12 +777,30 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
772 | # CONFIG_MMC is not set | 777 | # CONFIG_MMC is not set |
773 | 778 | ||
774 | # | 779 | # |
780 | # LED devices | ||
781 | # | ||
782 | # CONFIG_NEW_LEDS is not set | ||
783 | |||
784 | # | ||
785 | # LED drivers | ||
786 | # | ||
787 | |||
788 | # | ||
789 | # LED Triggers | ||
790 | # | ||
791 | |||
792 | # | ||
775 | # InfiniBand support | 793 | # InfiniBand support |
776 | # | 794 | # |
777 | 795 | ||
778 | # | 796 | # |
779 | # SN Devices | 797 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
798 | # | ||
799 | |||
800 | # | ||
801 | # Real Time Clock | ||
780 | # | 802 | # |
803 | # CONFIG_RTC_CLASS is not set | ||
781 | 804 | ||
782 | # | 805 | # |
783 | # File systems | 806 | # File systems |
@@ -835,7 +858,6 @@ CONFIG_SYSFS=y | |||
835 | CONFIG_TMPFS=y | 858 | CONFIG_TMPFS=y |
836 | # CONFIG_HUGETLB_PAGE is not set | 859 | # CONFIG_HUGETLB_PAGE is not set |
837 | CONFIG_RAMFS=y | 860 | CONFIG_RAMFS=y |
838 | CONFIG_RELAYFS_FS=m | ||
839 | # CONFIG_CONFIGFS_FS is not set | 861 | # CONFIG_CONFIGFS_FS is not set |
840 | 862 | ||
841 | # | 863 | # |
@@ -944,6 +966,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
944 | # CONFIG_MAGIC_SYSRQ is not set | 966 | # CONFIG_MAGIC_SYSRQ is not set |
945 | # CONFIG_DEBUG_KERNEL is not set | 967 | # CONFIG_DEBUG_KERNEL is not set |
946 | CONFIG_LOG_BUF_SHIFT=14 | 968 | CONFIG_LOG_BUF_SHIFT=14 |
969 | # CONFIG_DEBUG_FS is not set | ||
947 | CONFIG_CROSSCOMPILE=y | 970 | CONFIG_CROSSCOMPILE=y |
948 | CONFIG_CMDLINE="" | 971 | CONFIG_CMDLINE="" |
949 | 972 | ||
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig index 92888472dca0..a43fb2329fd5 100644 --- a/arch/mips/configs/db1200_defconfig +++ b/arch/mips/configs/db1200_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:58 2006 | 4 | # Mon Apr 24 14:50:58 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1200=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_COHERENT=y | 70 | CONFIG_DMA_COHERENT=y |
69 | CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y | 71 | CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y |
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | CONFIG_CPU_HAS_PREFETCH=y | 116 | CONFIG_CPU_HAS_PREFETCH=y |
115 | # CONFIG_MIPS_MT is not set | 117 | # CONFIG_MIPS_MT is not set |
116 | CONFIG_64BIT_PHYS_ADDR=y | 118 | CONFIG_64BIT_PHYS_ADDR=y |
117 | # CONFIG_CPU_ADVANCED is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
121 | CONFIG_GENERIC_IRQ_PROBE=y | 122 | CONFIG_GENERIC_IRQ_PROBE=y |
123 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
122 | CONFIG_ARCH_FLATMEM_ENABLE=y | 124 | CONFIG_ARCH_FLATMEM_ENABLE=y |
123 | CONFIG_SELECT_MEMORY_MODEL=y | 125 | CONFIG_SELECT_MEMORY_MODEL=y |
124 | CONFIG_FLATMEM_MANUAL=y | 126 | CONFIG_FLATMEM_MANUAL=y |
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
136 | # Code maturity level options | 138 | # Code maturity level options |
137 | # | 139 | # |
138 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
139 | CONFIG_CLEAN_COMPILE=y | ||
140 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
141 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
142 | 143 | ||
@@ -153,6 +154,7 @@ CONFIG_SYSCTL=y | |||
153 | # CONFIG_AUDIT is not set | 154 | # CONFIG_AUDIT is not set |
154 | CONFIG_IKCONFIG=y | 155 | CONFIG_IKCONFIG=y |
155 | CONFIG_IKCONFIG_PROC=y | 156 | CONFIG_IKCONFIG_PROC=y |
157 | # CONFIG_RELAY is not set | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
166 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
167 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
168 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
169 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
170 | CONFIG_CC_ALIGN_LABELS=0 | ||
171 | CONFIG_CC_ALIGN_LOOPS=0 | ||
172 | CONFIG_CC_ALIGN_JUMPS=0 | ||
173 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
174 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
175 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
182 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
183 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
184 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
185 | CONFIG_OBSOLETE_MODPARM=y | ||
186 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
187 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
188 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -191,6 +188,8 @@ CONFIG_KMOD=y | |||
191 | # Block layer | 188 | # Block layer |
192 | # | 189 | # |
193 | # CONFIG_LBD is not set | 190 | # CONFIG_LBD is not set |
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
194 | 193 | ||
195 | # | 194 | # |
196 | # IO Schedulers | 195 | # IO Schedulers |
@@ -244,6 +243,7 @@ CONFIG_NET=y | |||
244 | # | 243 | # |
245 | # Networking options | 244 | # Networking options |
246 | # | 245 | # |
246 | # CONFIG_NETDEBUG is not set | ||
247 | CONFIG_PACKET=y | 247 | CONFIG_PACKET=y |
248 | # CONFIG_PACKET_MMAP is not set | 248 | # CONFIG_PACKET_MMAP is not set |
249 | CONFIG_UNIX=y | 249 | CONFIG_UNIX=y |
@@ -263,7 +263,8 @@ CONFIG_IP_FIB_HASH=y | |||
263 | # CONFIG_INET_AH is not set | 263 | # CONFIG_INET_AH is not set |
264 | # CONFIG_INET_ESP is not set | 264 | # CONFIG_INET_ESP is not set |
265 | # CONFIG_INET_IPCOMP is not set | 265 | # CONFIG_INET_IPCOMP is not set |
266 | CONFIG_INET_TUNNEL=m | 266 | # CONFIG_INET_XFRM_TUNNEL is not set |
267 | # CONFIG_INET_TUNNEL is not set | ||
267 | CONFIG_INET_DIAG=y | 268 | CONFIG_INET_DIAG=y |
268 | CONFIG_INET_TCP_DIAG=y | 269 | CONFIG_INET_TCP_DIAG=y |
269 | # CONFIG_TCP_CONG_ADVANCED is not set | 270 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -274,6 +275,8 @@ CONFIG_TCP_CONG_BIC=y | |||
274 | # | 275 | # |
275 | # CONFIG_IP_VS is not set | 276 | # CONFIG_IP_VS is not set |
276 | # CONFIG_IPV6 is not set | 277 | # CONFIG_IPV6 is not set |
278 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
279 | # CONFIG_INET6_TUNNEL is not set | ||
277 | CONFIG_NETFILTER=y | 280 | CONFIG_NETFILTER=y |
278 | # CONFIG_NETFILTER_DEBUG is not set | 281 | # CONFIG_NETFILTER_DEBUG is not set |
279 | 282 | ||
@@ -288,10 +291,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
288 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 291 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
289 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 292 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
290 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 293 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
294 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
291 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 295 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
292 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 296 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
293 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 297 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
294 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 298 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
299 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
300 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
295 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 301 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
296 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 302 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
297 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 303 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -315,6 +321,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
315 | # SCTP Configuration (EXPERIMENTAL) | 321 | # SCTP Configuration (EXPERIMENTAL) |
316 | # | 322 | # |
317 | # CONFIG_IP_SCTP is not set | 323 | # CONFIG_IP_SCTP is not set |
324 | |||
325 | # | ||
326 | # TIPC Configuration (EXPERIMENTAL) | ||
327 | # | ||
328 | # CONFIG_TIPC is not set | ||
318 | # CONFIG_ATM is not set | 329 | # CONFIG_ATM is not set |
319 | # CONFIG_BRIDGE is not set | 330 | # CONFIG_BRIDGE is not set |
320 | # CONFIG_VLAN_8021Q is not set | 331 | # CONFIG_VLAN_8021Q is not set |
@@ -324,11 +335,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
324 | # CONFIG_ATALK is not set | 335 | # CONFIG_ATALK is not set |
325 | # CONFIG_X25 is not set | 336 | # CONFIG_X25 is not set |
326 | # CONFIG_LAPB is not set | 337 | # CONFIG_LAPB is not set |
327 | |||
328 | # | ||
329 | # TIPC Configuration (EXPERIMENTAL) | ||
330 | # | ||
331 | # CONFIG_TIPC is not set | ||
332 | # CONFIG_NET_DIVERT is not set | 338 | # CONFIG_NET_DIVERT is not set |
333 | # CONFIG_ECONET is not set | 339 | # CONFIG_ECONET is not set |
334 | # CONFIG_WAN_ROUTER is not set | 340 | # CONFIG_WAN_ROUTER is not set |
@@ -403,7 +409,6 @@ CONFIG_MTD_CFI_I2=y | |||
403 | # CONFIG_MTD_CFI_I8 is not set | 409 | # CONFIG_MTD_CFI_I8 is not set |
404 | # CONFIG_MTD_CFI_INTELEXT is not set | 410 | # CONFIG_MTD_CFI_INTELEXT is not set |
405 | CONFIG_MTD_CFI_AMDSTD=y | 411 | CONFIG_MTD_CFI_AMDSTD=y |
406 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
407 | # CONFIG_MTD_CFI_STAA is not set | 412 | # CONFIG_MTD_CFI_STAA is not set |
408 | CONFIG_MTD_CFI_UTIL=y | 413 | CONFIG_MTD_CFI_UTIL=y |
409 | # CONFIG_MTD_RAM is not set | 414 | # CONFIG_MTD_RAM is not set |
@@ -425,7 +430,6 @@ CONFIG_MTD_ALCHEMY=y | |||
425 | # CONFIG_MTD_SLRAM is not set | 430 | # CONFIG_MTD_SLRAM is not set |
426 | # CONFIG_MTD_PHRAM is not set | 431 | # CONFIG_MTD_PHRAM is not set |
427 | # CONFIG_MTD_MTDRAM is not set | 432 | # CONFIG_MTD_MTDRAM is not set |
428 | # CONFIG_MTD_BLKMTD is not set | ||
429 | # CONFIG_MTD_BLOCK2MTD is not set | 433 | # CONFIG_MTD_BLOCK2MTD is not set |
430 | 434 | ||
431 | # | 435 | # |
@@ -763,10 +767,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
763 | # | 767 | # |
764 | 768 | ||
765 | # | 769 | # |
766 | # Multimedia Capabilities Port drivers | ||
767 | # | ||
768 | |||
769 | # | ||
770 | # Multimedia devices | 770 | # Multimedia devices |
771 | # | 771 | # |
772 | # CONFIG_VIDEO_DEV is not set | 772 | # CONFIG_VIDEO_DEV is not set |
@@ -784,6 +784,7 @@ CONFIG_FB_CFB_FILLRECT=y | |||
784 | CONFIG_FB_CFB_COPYAREA=y | 784 | CONFIG_FB_CFB_COPYAREA=y |
785 | CONFIG_FB_CFB_IMAGEBLIT=y | 785 | CONFIG_FB_CFB_IMAGEBLIT=y |
786 | # CONFIG_FB_MACMODES is not set | 786 | # CONFIG_FB_MACMODES is not set |
787 | CONFIG_FB_FIRMWARE_EDID=y | ||
787 | # CONFIG_FB_MODE_HELPERS is not set | 788 | # CONFIG_FB_MODE_HELPERS is not set |
788 | # CONFIG_FB_TILEBLITTING is not set | 789 | # CONFIG_FB_TILEBLITTING is not set |
789 | # CONFIG_FB_S1D13XXX is not set | 790 | # CONFIG_FB_S1D13XXX is not set |
@@ -794,6 +795,7 @@ CONFIG_FB_AU1200=y | |||
794 | # Console display driver support | 795 | # Console display driver support |
795 | # | 796 | # |
796 | CONFIG_VGA_CONSOLE=y | 797 | CONFIG_VGA_CONSOLE=y |
798 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
797 | CONFIG_DUMMY_CONSOLE=y | 799 | CONFIG_DUMMY_CONSOLE=y |
798 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | 800 | # CONFIG_FRAMEBUFFER_CONSOLE is not set |
799 | 801 | ||
@@ -816,6 +818,7 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
816 | # | 818 | # |
817 | CONFIG_USB_ARCH_HAS_HCD=y | 819 | CONFIG_USB_ARCH_HAS_HCD=y |
818 | CONFIG_USB_ARCH_HAS_OHCI=y | 820 | CONFIG_USB_ARCH_HAS_OHCI=y |
821 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
819 | # CONFIG_USB is not set | 822 | # CONFIG_USB is not set |
820 | 823 | ||
821 | # | 824 | # |
@@ -832,6 +835,7 @@ CONFIG_USB_GADGET=m | |||
832 | # CONFIG_USB_GADGET_GOKU is not set | 835 | # CONFIG_USB_GADGET_GOKU is not set |
833 | # CONFIG_USB_GADGET_LH7A40X is not set | 836 | # CONFIG_USB_GADGET_LH7A40X is not set |
834 | # CONFIG_USB_GADGET_OMAP is not set | 837 | # CONFIG_USB_GADGET_OMAP is not set |
838 | # CONFIG_USB_GADGET_AT91 is not set | ||
835 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | 839 | # CONFIG_USB_GADGET_DUMMY_HCD is not set |
836 | # CONFIG_USB_GADGET_DUALSPEED is not set | 840 | # CONFIG_USB_GADGET_DUALSPEED is not set |
837 | 841 | ||
@@ -844,12 +848,30 @@ CONFIG_MMC_BLOCK=y | |||
844 | CONFIG_MMC_AU1X=y | 848 | CONFIG_MMC_AU1X=y |
845 | 849 | ||
846 | # | 850 | # |
851 | # LED devices | ||
852 | # | ||
853 | # CONFIG_NEW_LEDS is not set | ||
854 | |||
855 | # | ||
856 | # LED drivers | ||
857 | # | ||
858 | |||
859 | # | ||
860 | # LED Triggers | ||
861 | # | ||
862 | |||
863 | # | ||
847 | # InfiniBand support | 864 | # InfiniBand support |
848 | # | 865 | # |
849 | 866 | ||
850 | # | 867 | # |
851 | # SN Devices | 868 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
869 | # | ||
870 | |||
871 | # | ||
872 | # Real Time Clock | ||
852 | # | 873 | # |
874 | # CONFIG_RTC_CLASS is not set | ||
853 | 875 | ||
854 | # | 876 | # |
855 | # File systems | 877 | # File systems |
@@ -913,7 +935,6 @@ CONFIG_SYSFS=y | |||
913 | CONFIG_TMPFS=y | 935 | CONFIG_TMPFS=y |
914 | # CONFIG_HUGETLB_PAGE is not set | 936 | # CONFIG_HUGETLB_PAGE is not set |
915 | CONFIG_RAMFS=y | 937 | CONFIG_RAMFS=y |
916 | # CONFIG_RELAYFS_FS is not set | ||
917 | # CONFIG_CONFIGFS_FS is not set | 938 | # CONFIG_CONFIGFS_FS is not set |
918 | 939 | ||
919 | # | 940 | # |
@@ -1027,6 +1048,7 @@ CONFIG_NLS_UTF8=m | |||
1027 | # CONFIG_MAGIC_SYSRQ is not set | 1048 | # CONFIG_MAGIC_SYSRQ is not set |
1028 | # CONFIG_DEBUG_KERNEL is not set | 1049 | # CONFIG_DEBUG_KERNEL is not set |
1029 | CONFIG_LOG_BUF_SHIFT=14 | 1050 | CONFIG_LOG_BUF_SHIFT=14 |
1051 | # CONFIG_DEBUG_FS is not set | ||
1030 | CONFIG_CROSSCOMPILE=y | 1052 | CONFIG_CROSSCOMPILE=y |
1031 | CONFIG_CMDLINE="mem=48M" | 1053 | CONFIG_CMDLINE="mem=48M" |
1032 | 1054 | ||
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig index 5a415b1d4af0..ad632d87c4ef 100644 --- a/arch/mips/configs/db1500_defconfig +++ b/arch/mips/configs/db1500_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:59 2006 | 4 | # Mon Apr 24 14:50:59 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1500=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -116,11 +118,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
116 | CONFIG_CPU_HAS_PREFETCH=y | 118 | CONFIG_CPU_HAS_PREFETCH=y |
117 | # CONFIG_MIPS_MT is not set | 119 | # CONFIG_MIPS_MT is not set |
118 | CONFIG_64BIT_PHYS_ADDR=y | 120 | CONFIG_64BIT_PHYS_ADDR=y |
119 | # CONFIG_CPU_ADVANCED is not set | ||
120 | CONFIG_CPU_HAS_LLSC=y | 121 | CONFIG_CPU_HAS_LLSC=y |
121 | CONFIG_CPU_HAS_SYNC=y | 122 | CONFIG_CPU_HAS_SYNC=y |
122 | CONFIG_GENERIC_HARDIRQS=y | 123 | CONFIG_GENERIC_HARDIRQS=y |
123 | CONFIG_GENERIC_IRQ_PROBE=y | 124 | CONFIG_GENERIC_IRQ_PROBE=y |
125 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
124 | CONFIG_ARCH_FLATMEM_ENABLE=y | 126 | CONFIG_ARCH_FLATMEM_ENABLE=y |
125 | CONFIG_SELECT_MEMORY_MODEL=y | 127 | CONFIG_SELECT_MEMORY_MODEL=y |
126 | CONFIG_FLATMEM_MANUAL=y | 128 | CONFIG_FLATMEM_MANUAL=y |
@@ -138,7 +140,6 @@ CONFIG_PREEMPT_NONE=y | |||
138 | # Code maturity level options | 140 | # Code maturity level options |
139 | # | 141 | # |
140 | CONFIG_EXPERIMENTAL=y | 142 | CONFIG_EXPERIMENTAL=y |
141 | CONFIG_CLEAN_COMPILE=y | ||
142 | CONFIG_BROKEN_ON_SMP=y | 143 | CONFIG_BROKEN_ON_SMP=y |
143 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 144 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
144 | 145 | ||
@@ -154,6 +155,7 @@ CONFIG_SYSVIPC=y | |||
154 | CONFIG_SYSCTL=y | 155 | CONFIG_SYSCTL=y |
155 | # CONFIG_AUDIT is not set | 156 | # CONFIG_AUDIT is not set |
156 | # CONFIG_IKCONFIG is not set | 157 | # CONFIG_IKCONFIG is not set |
158 | CONFIG_RELAY=y | ||
157 | CONFIG_INITRAMFS_SOURCE="" | 159 | CONFIG_INITRAMFS_SOURCE="" |
158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 160 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
159 | CONFIG_EMBEDDED=y | 161 | CONFIG_EMBEDDED=y |
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 169 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 170 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 171 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 172 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 173 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 174 | CONFIG_BASE_SMALL=0 |
@@ -183,7 +181,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
183 | CONFIG_MODULES=y | 181 | CONFIG_MODULES=y |
184 | CONFIG_MODULE_UNLOAD=y | 182 | CONFIG_MODULE_UNLOAD=y |
185 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 183 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
186 | CONFIG_OBSOLETE_MODPARM=y | ||
187 | CONFIG_MODVERSIONS=y | 184 | CONFIG_MODVERSIONS=y |
188 | CONFIG_MODULE_SRCVERSION_ALL=y | 185 | CONFIG_MODULE_SRCVERSION_ALL=y |
189 | CONFIG_KMOD=y | 186 | CONFIG_KMOD=y |
@@ -192,6 +189,8 @@ CONFIG_KMOD=y | |||
192 | # Block layer | 189 | # Block layer |
193 | # | 190 | # |
194 | # CONFIG_LBD is not set | 191 | # CONFIG_LBD is not set |
192 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
193 | # CONFIG_LSF is not set | ||
195 | 194 | ||
196 | # | 195 | # |
197 | # IO Schedulers | 196 | # IO Schedulers |
@@ -211,7 +210,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
211 | # | 210 | # |
212 | CONFIG_HW_HAS_PCI=y | 211 | CONFIG_HW_HAS_PCI=y |
213 | CONFIG_PCI=y | 212 | CONFIG_PCI=y |
214 | CONFIG_PCI_LEGACY_PROC=y | ||
215 | CONFIG_MMU=y | 213 | CONFIG_MMU=y |
216 | 214 | ||
217 | # | 215 | # |
@@ -253,6 +251,7 @@ CONFIG_NET=y | |||
253 | # | 251 | # |
254 | # Networking options | 252 | # Networking options |
255 | # | 253 | # |
254 | # CONFIG_NETDEBUG is not set | ||
256 | CONFIG_PACKET=y | 255 | CONFIG_PACKET=y |
257 | # CONFIG_PACKET_MMAP is not set | 256 | # CONFIG_PACKET_MMAP is not set |
258 | CONFIG_UNIX=y | 257 | CONFIG_UNIX=y |
@@ -275,7 +274,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
275 | # CONFIG_INET_AH is not set | 274 | # CONFIG_INET_AH is not set |
276 | # CONFIG_INET_ESP is not set | 275 | # CONFIG_INET_ESP is not set |
277 | # CONFIG_INET_IPCOMP is not set | 276 | # CONFIG_INET_IPCOMP is not set |
278 | CONFIG_INET_TUNNEL=m | 277 | # CONFIG_INET_XFRM_TUNNEL is not set |
278 | # CONFIG_INET_TUNNEL is not set | ||
279 | CONFIG_INET_DIAG=y | 279 | CONFIG_INET_DIAG=y |
280 | CONFIG_INET_TCP_DIAG=y | 280 | CONFIG_INET_TCP_DIAG=y |
281 | # CONFIG_TCP_CONG_ADVANCED is not set | 281 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -286,6 +286,8 @@ CONFIG_TCP_CONG_BIC=y | |||
286 | # | 286 | # |
287 | # CONFIG_IP_VS is not set | 287 | # CONFIG_IP_VS is not set |
288 | # CONFIG_IPV6 is not set | 288 | # CONFIG_IPV6 is not set |
289 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
290 | # CONFIG_INET6_TUNNEL is not set | ||
289 | CONFIG_NETFILTER=y | 291 | CONFIG_NETFILTER=y |
290 | # CONFIG_NETFILTER_DEBUG is not set | 292 | # CONFIG_NETFILTER_DEBUG is not set |
291 | 293 | ||
@@ -302,10 +304,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
302 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 304 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
303 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 305 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
304 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 306 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
307 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
305 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 308 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
306 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 309 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
307 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 310 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
308 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 311 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
312 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
313 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
309 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 314 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
310 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 315 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
311 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 316 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -329,6 +334,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
329 | # SCTP Configuration (EXPERIMENTAL) | 334 | # SCTP Configuration (EXPERIMENTAL) |
330 | # | 335 | # |
331 | # CONFIG_IP_SCTP is not set | 336 | # CONFIG_IP_SCTP is not set |
337 | |||
338 | # | ||
339 | # TIPC Configuration (EXPERIMENTAL) | ||
340 | # | ||
341 | # CONFIG_TIPC is not set | ||
332 | # CONFIG_ATM is not set | 342 | # CONFIG_ATM is not set |
333 | # CONFIG_BRIDGE is not set | 343 | # CONFIG_BRIDGE is not set |
334 | # CONFIG_VLAN_8021Q is not set | 344 | # CONFIG_VLAN_8021Q is not set |
@@ -338,11 +348,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
338 | # CONFIG_ATALK is not set | 348 | # CONFIG_ATALK is not set |
339 | # CONFIG_X25 is not set | 349 | # CONFIG_X25 is not set |
340 | # CONFIG_LAPB is not set | 350 | # CONFIG_LAPB is not set |
341 | |||
342 | # | ||
343 | # TIPC Configuration (EXPERIMENTAL) | ||
344 | # | ||
345 | # CONFIG_TIPC is not set | ||
346 | # CONFIG_NET_DIVERT is not set | 351 | # CONFIG_NET_DIVERT is not set |
347 | # CONFIG_ECONET is not set | 352 | # CONFIG_ECONET is not set |
348 | # CONFIG_WAN_ROUTER is not set | 353 | # CONFIG_WAN_ROUTER is not set |
@@ -364,6 +369,9 @@ CONFIG_IEEE80211=m | |||
364 | # CONFIG_IEEE80211_DEBUG is not set | 369 | # CONFIG_IEEE80211_DEBUG is not set |
365 | CONFIG_IEEE80211_CRYPT_WEP=m | 370 | CONFIG_IEEE80211_CRYPT_WEP=m |
366 | CONFIG_IEEE80211_CRYPT_CCMP=m | 371 | CONFIG_IEEE80211_CRYPT_CCMP=m |
372 | CONFIG_IEEE80211_SOFTMAC=m | ||
373 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
374 | CONFIG_WIRELESS_EXT=y | ||
367 | 375 | ||
368 | # | 376 | # |
369 | # Device Drivers | 377 | # Device Drivers |
@@ -420,7 +428,6 @@ CONFIG_MTD_CFI_I2=y | |||
420 | # CONFIG_MTD_CFI_I8 is not set | 428 | # CONFIG_MTD_CFI_I8 is not set |
421 | CONFIG_MTD_CFI_INTELEXT=y | 429 | CONFIG_MTD_CFI_INTELEXT=y |
422 | CONFIG_MTD_CFI_AMDSTD=y | 430 | CONFIG_MTD_CFI_AMDSTD=y |
423 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
424 | # CONFIG_MTD_CFI_STAA is not set | 431 | # CONFIG_MTD_CFI_STAA is not set |
425 | CONFIG_MTD_CFI_UTIL=y | 432 | CONFIG_MTD_CFI_UTIL=y |
426 | # CONFIG_MTD_RAM is not set | 433 | # CONFIG_MTD_RAM is not set |
@@ -443,7 +450,6 @@ CONFIG_MTD_ALCHEMY=y | |||
443 | # CONFIG_MTD_SLRAM is not set | 450 | # CONFIG_MTD_SLRAM is not set |
444 | # CONFIG_MTD_PHRAM is not set | 451 | # CONFIG_MTD_PHRAM is not set |
445 | # CONFIG_MTD_MTDRAM is not set | 452 | # CONFIG_MTD_MTDRAM is not set |
446 | # CONFIG_MTD_BLKMTD is not set | ||
447 | # CONFIG_MTD_BLOCK2MTD is not set | 453 | # CONFIG_MTD_BLOCK2MTD is not set |
448 | 454 | ||
449 | # | 455 | # |
@@ -486,7 +492,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
486 | # CONFIG_BLK_DEV_SX8 is not set | 492 | # CONFIG_BLK_DEV_SX8 is not set |
487 | # CONFIG_BLK_DEV_UB is not set | 493 | # CONFIG_BLK_DEV_UB is not set |
488 | # CONFIG_BLK_DEV_RAM is not set | 494 | # CONFIG_BLK_DEV_RAM is not set |
489 | CONFIG_BLK_DEV_RAM_COUNT=16 | 495 | # CONFIG_BLK_DEV_INITRD is not set |
490 | CONFIG_CDROM_PKTCDVD=m | 496 | CONFIG_CDROM_PKTCDVD=m |
491 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 497 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
492 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 498 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -714,6 +720,7 @@ CONFIG_SERIO_RAW=m | |||
714 | # | 720 | # |
715 | CONFIG_SERIAL_8250=y | 721 | CONFIG_SERIAL_8250=y |
716 | CONFIG_SERIAL_8250_CONSOLE=y | 722 | CONFIG_SERIAL_8250_CONSOLE=y |
723 | CONFIG_SERIAL_8250_PCI=y | ||
717 | # CONFIG_SERIAL_8250_CS is not set | 724 | # CONFIG_SERIAL_8250_CS is not set |
718 | CONFIG_SERIAL_8250_NR_UARTS=4 | 725 | CONFIG_SERIAL_8250_NR_UARTS=4 |
719 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 726 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
@@ -725,6 +732,7 @@ CONFIG_SERIAL_8250_AU1X00=y | |||
725 | # | 732 | # |
726 | CONFIG_SERIAL_CORE=y | 733 | CONFIG_SERIAL_CORE=y |
727 | CONFIG_SERIAL_CORE_CONSOLE=y | 734 | CONFIG_SERIAL_CORE_CONSOLE=y |
735 | # CONFIG_SERIAL_JSM is not set | ||
728 | CONFIG_UNIX98_PTYS=y | 736 | CONFIG_UNIX98_PTYS=y |
729 | CONFIG_LEGACY_PTYS=y | 737 | CONFIG_LEGACY_PTYS=y |
730 | CONFIG_LEGACY_PTY_COUNT=256 | 738 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -790,10 +798,6 @@ CONFIG_SYNCLINK_CS=m | |||
790 | # | 798 | # |
791 | 799 | ||
792 | # | 800 | # |
793 | # Multimedia Capabilities Port drivers | ||
794 | # | ||
795 | |||
796 | # | ||
797 | # Multimedia devices | 801 | # Multimedia devices |
798 | # | 802 | # |
799 | # CONFIG_VIDEO_DEV is not set | 803 | # CONFIG_VIDEO_DEV is not set |
@@ -802,6 +806,7 @@ CONFIG_SYNCLINK_CS=m | |||
802 | # Digital Video Broadcasting Devices | 806 | # Digital Video Broadcasting Devices |
803 | # | 807 | # |
804 | # CONFIG_DVB is not set | 808 | # CONFIG_DVB is not set |
809 | # CONFIG_USB_DABUSB is not set | ||
805 | 810 | ||
806 | # | 811 | # |
807 | # Graphics support | 812 | # Graphics support |
@@ -825,9 +830,11 @@ CONFIG_SND_SEQ_DUMMY=m | |||
825 | CONFIG_SND_OSSEMUL=y | 830 | CONFIG_SND_OSSEMUL=y |
826 | CONFIG_SND_MIXER_OSS=m | 831 | CONFIG_SND_MIXER_OSS=m |
827 | CONFIG_SND_PCM_OSS=m | 832 | CONFIG_SND_PCM_OSS=m |
833 | CONFIG_SND_PCM_OSS_PLUGINS=y | ||
828 | CONFIG_SND_SEQUENCER_OSS=y | 834 | CONFIG_SND_SEQUENCER_OSS=y |
829 | # CONFIG_SND_DYNAMIC_MINORS is not set | 835 | # CONFIG_SND_DYNAMIC_MINORS is not set |
830 | CONFIG_SND_SUPPORT_OLD_API=y | 836 | CONFIG_SND_SUPPORT_OLD_API=y |
837 | CONFIG_SND_VERBOSE_PROCFS=y | ||
831 | # CONFIG_SND_VERBOSE_PRINTK is not set | 838 | # CONFIG_SND_VERBOSE_PRINTK is not set |
832 | # CONFIG_SND_DEBUG is not set | 839 | # CONFIG_SND_DEBUG is not set |
833 | 840 | ||
@@ -846,6 +853,7 @@ CONFIG_SND_MTPAV=m | |||
846 | # PCI devices | 853 | # PCI devices |
847 | # | 854 | # |
848 | # CONFIG_SND_AD1889 is not set | 855 | # CONFIG_SND_AD1889 is not set |
856 | # CONFIG_SND_ALS300 is not set | ||
849 | # CONFIG_SND_ALI5451 is not set | 857 | # CONFIG_SND_ALI5451 is not set |
850 | # CONFIG_SND_ATIIXP is not set | 858 | # CONFIG_SND_ATIIXP is not set |
851 | # CONFIG_SND_ATIIXP_MODEM is not set | 859 | # CONFIG_SND_ATIIXP_MODEM is not set |
@@ -877,6 +885,7 @@ CONFIG_SND_MTPAV=m | |||
877 | # CONFIG_SND_MIXART is not set | 885 | # CONFIG_SND_MIXART is not set |
878 | # CONFIG_SND_NM256 is not set | 886 | # CONFIG_SND_NM256 is not set |
879 | # CONFIG_SND_PCXHR is not set | 887 | # CONFIG_SND_PCXHR is not set |
888 | # CONFIG_SND_RIPTIDE is not set | ||
880 | # CONFIG_SND_RME32 is not set | 889 | # CONFIG_SND_RME32 is not set |
881 | # CONFIG_SND_RME96 is not set | 890 | # CONFIG_SND_RME96 is not set |
882 | # CONFIG_SND_RME9652 is not set | 891 | # CONFIG_SND_RME9652 is not set |
@@ -905,34 +914,22 @@ CONFIG_SND_AU1X00=m | |||
905 | # Open Sound System | 914 | # Open Sound System |
906 | # | 915 | # |
907 | CONFIG_SOUND_PRIME=y | 916 | CONFIG_SOUND_PRIME=y |
908 | CONFIG_OBSOLETE_OSS_DRIVER=y | ||
909 | # CONFIG_SOUND_BT878 is not set | 917 | # CONFIG_SOUND_BT878 is not set |
910 | # CONFIG_SOUND_CMPCI is not set | ||
911 | # CONFIG_SOUND_EMU10K1 is not set | 918 | # CONFIG_SOUND_EMU10K1 is not set |
912 | # CONFIG_SOUND_FUSION is not set | 919 | # CONFIG_SOUND_FUSION is not set |
913 | # CONFIG_SOUND_CS4281 is not set | ||
914 | # CONFIG_SOUND_ES1370 is not set | ||
915 | # CONFIG_SOUND_ES1371 is not set | 920 | # CONFIG_SOUND_ES1371 is not set |
916 | # CONFIG_SOUND_ESSSOLO1 is not set | ||
917 | # CONFIG_SOUND_MAESTRO is not set | ||
918 | # CONFIG_SOUND_MAESTRO3 is not set | ||
919 | # CONFIG_SOUND_ICH is not set | 921 | # CONFIG_SOUND_ICH is not set |
920 | # CONFIG_SOUND_SONICVIBES is not set | ||
921 | # CONFIG_SOUND_AU1000 is not set | ||
922 | # CONFIG_SOUND_TRIDENT is not set | 922 | # CONFIG_SOUND_TRIDENT is not set |
923 | # CONFIG_SOUND_MSNDCLAS is not set | 923 | # CONFIG_SOUND_MSNDCLAS is not set |
924 | # CONFIG_SOUND_MSNDPIN is not set | 924 | # CONFIG_SOUND_MSNDPIN is not set |
925 | # CONFIG_SOUND_VIA82CXXX is not set | 925 | # CONFIG_SOUND_VIA82CXXX is not set |
926 | # CONFIG_SOUND_ALI5455 is not set | ||
927 | # CONFIG_SOUND_FORTE is not set | ||
928 | # CONFIG_SOUND_RME96XX is not set | ||
929 | # CONFIG_SOUND_AD1980 is not set | ||
930 | 926 | ||
931 | # | 927 | # |
932 | # USB support | 928 | # USB support |
933 | # | 929 | # |
934 | CONFIG_USB_ARCH_HAS_HCD=y | 930 | CONFIG_USB_ARCH_HAS_HCD=y |
935 | CONFIG_USB_ARCH_HAS_OHCI=y | 931 | CONFIG_USB_ARCH_HAS_OHCI=y |
932 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
936 | CONFIG_USB=y | 933 | CONFIG_USB=y |
937 | # CONFIG_USB_DEBUG is not set | 934 | # CONFIG_USB_DEBUG is not set |
938 | 935 | ||
@@ -958,7 +955,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
958 | # | 955 | # |
959 | # USB Device Class drivers | 956 | # USB Device Class drivers |
960 | # | 957 | # |
961 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | ||
962 | # CONFIG_USB_ACM is not set | 958 | # CONFIG_USB_ACM is not set |
963 | # CONFIG_USB_PRINTER is not set | 959 | # CONFIG_USB_PRINTER is not set |
964 | 960 | ||
@@ -985,9 +981,7 @@ CONFIG_USB_HIDINPUT=y | |||
985 | # CONFIG_USB_ACECAD is not set | 981 | # CONFIG_USB_ACECAD is not set |
986 | # CONFIG_USB_KBTAB is not set | 982 | # CONFIG_USB_KBTAB is not set |
987 | # CONFIG_USB_POWERMATE is not set | 983 | # CONFIG_USB_POWERMATE is not set |
988 | # CONFIG_USB_MTOUCH is not set | 984 | # CONFIG_USB_TOUCHSCREEN is not set |
989 | # CONFIG_USB_ITMTOUCH is not set | ||
990 | # CONFIG_USB_EGALAX is not set | ||
991 | CONFIG_USB_YEALINK=m | 985 | CONFIG_USB_YEALINK=m |
992 | # CONFIG_USB_XPAD is not set | 986 | # CONFIG_USB_XPAD is not set |
993 | # CONFIG_USB_ATI_REMOTE is not set | 987 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -1001,15 +995,6 @@ CONFIG_USB_YEALINK=m | |||
1001 | # CONFIG_USB_MDC800 is not set | 995 | # CONFIG_USB_MDC800 is not set |
1002 | 996 | ||
1003 | # | 997 | # |
1004 | # USB Multimedia devices | ||
1005 | # | ||
1006 | # CONFIG_USB_DABUSB is not set | ||
1007 | |||
1008 | # | ||
1009 | # Video4Linux support is needed for USB Multimedia device support | ||
1010 | # | ||
1011 | |||
1012 | # | ||
1013 | # USB Network Adapters | 998 | # USB Network Adapters |
1014 | # | 999 | # |
1015 | # CONFIG_USB_CATC is not set | 1000 | # CONFIG_USB_CATC is not set |
@@ -1059,13 +1044,31 @@ CONFIG_USB_LD=m | |||
1059 | # CONFIG_MMC is not set | 1044 | # CONFIG_MMC is not set |
1060 | 1045 | ||
1061 | # | 1046 | # |
1047 | # LED devices | ||
1048 | # | ||
1049 | # CONFIG_NEW_LEDS is not set | ||
1050 | |||
1051 | # | ||
1052 | # LED drivers | ||
1053 | # | ||
1054 | |||
1055 | # | ||
1056 | # LED Triggers | ||
1057 | # | ||
1058 | |||
1059 | # | ||
1062 | # InfiniBand support | 1060 | # InfiniBand support |
1063 | # | 1061 | # |
1064 | # CONFIG_INFINIBAND is not set | 1062 | # CONFIG_INFINIBAND is not set |
1065 | 1063 | ||
1066 | # | 1064 | # |
1067 | # SN Devices | 1065 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1066 | # | ||
1067 | |||
1068 | # | ||
1069 | # Real Time Clock | ||
1068 | # | 1070 | # |
1071 | # CONFIG_RTC_CLASS is not set | ||
1069 | 1072 | ||
1070 | # | 1073 | # |
1071 | # File systems | 1074 | # File systems |
@@ -1123,7 +1126,6 @@ CONFIG_SYSFS=y | |||
1123 | CONFIG_TMPFS=y | 1126 | CONFIG_TMPFS=y |
1124 | # CONFIG_HUGETLB_PAGE is not set | 1127 | # CONFIG_HUGETLB_PAGE is not set |
1125 | CONFIG_RAMFS=y | 1128 | CONFIG_RAMFS=y |
1126 | CONFIG_RELAYFS_FS=m | ||
1127 | # CONFIG_CONFIGFS_FS is not set | 1129 | # CONFIG_CONFIGFS_FS is not set |
1128 | 1130 | ||
1129 | # | 1131 | # |
@@ -1232,6 +1234,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1232 | # CONFIG_MAGIC_SYSRQ is not set | 1234 | # CONFIG_MAGIC_SYSRQ is not set |
1233 | # CONFIG_DEBUG_KERNEL is not set | 1235 | # CONFIG_DEBUG_KERNEL is not set |
1234 | CONFIG_LOG_BUF_SHIFT=14 | 1236 | CONFIG_LOG_BUF_SHIFT=14 |
1237 | # CONFIG_DEBUG_FS is not set | ||
1235 | CONFIG_CROSSCOMPILE=y | 1238 | CONFIG_CROSSCOMPILE=y |
1236 | CONFIG_CMDLINE="" | 1239 | CONFIG_CMDLINE="" |
1237 | 1240 | ||
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig index 8dc1f18badfe..8130e23dc255 100644 --- a/arch/mips/configs/db1550_defconfig +++ b/arch/mips/configs/db1550_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:00 2006 | 4 | # Mon Apr 24 14:51:00 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_DB1550=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -115,11 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
115 | CONFIG_CPU_HAS_PREFETCH=y | 117 | CONFIG_CPU_HAS_PREFETCH=y |
116 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
117 | CONFIG_64BIT_PHYS_ADDR=y | 119 | CONFIG_64BIT_PHYS_ADDR=y |
118 | # CONFIG_CPU_ADVANCED is not set | ||
119 | CONFIG_CPU_HAS_LLSC=y | 120 | CONFIG_CPU_HAS_LLSC=y |
120 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 123 | CONFIG_GENERIC_IRQ_PROBE=y |
124 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
123 | CONFIG_ARCH_FLATMEM_ENABLE=y | 125 | CONFIG_ARCH_FLATMEM_ENABLE=y |
124 | CONFIG_SELECT_MEMORY_MODEL=y | 126 | CONFIG_SELECT_MEMORY_MODEL=y |
125 | CONFIG_FLATMEM_MANUAL=y | 127 | CONFIG_FLATMEM_MANUAL=y |
@@ -137,7 +139,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 139 | # Code maturity level options |
138 | # | 140 | # |
139 | CONFIG_EXPERIMENTAL=y | 141 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 142 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 143 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 144 | ||
@@ -153,6 +154,7 @@ CONFIG_SYSVIPC=y | |||
153 | CONFIG_SYSCTL=y | 154 | CONFIG_SYSCTL=y |
154 | # CONFIG_AUDIT is not set | 155 | # CONFIG_AUDIT is not set |
155 | # CONFIG_IKCONFIG is not set | 156 | # CONFIG_IKCONFIG is not set |
157 | CONFIG_RELAY=y | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
166 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
167 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
168 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
169 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
170 | CONFIG_CC_ALIGN_LABELS=0 | ||
171 | CONFIG_CC_ALIGN_LOOPS=0 | ||
172 | CONFIG_CC_ALIGN_JUMPS=0 | ||
173 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
174 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
175 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
182 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
183 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
184 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
185 | CONFIG_OBSOLETE_MODPARM=y | ||
186 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
187 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
188 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -191,6 +188,8 @@ CONFIG_KMOD=y | |||
191 | # Block layer | 188 | # Block layer |
192 | # | 189 | # |
193 | # CONFIG_LBD is not set | 190 | # CONFIG_LBD is not set |
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
194 | 193 | ||
195 | # | 194 | # |
196 | # IO Schedulers | 195 | # IO Schedulers |
@@ -210,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
210 | # | 209 | # |
211 | CONFIG_HW_HAS_PCI=y | 210 | CONFIG_HW_HAS_PCI=y |
212 | CONFIG_PCI=y | 211 | CONFIG_PCI=y |
213 | CONFIG_PCI_LEGACY_PROC=y | ||
214 | CONFIG_MMU=y | 212 | CONFIG_MMU=y |
215 | 213 | ||
216 | # | 214 | # |
@@ -252,6 +250,7 @@ CONFIG_NET=y | |||
252 | # | 250 | # |
253 | # Networking options | 251 | # Networking options |
254 | # | 252 | # |
253 | # CONFIG_NETDEBUG is not set | ||
255 | CONFIG_PACKET=y | 254 | CONFIG_PACKET=y |
256 | # CONFIG_PACKET_MMAP is not set | 255 | # CONFIG_PACKET_MMAP is not set |
257 | CONFIG_UNIX=y | 256 | CONFIG_UNIX=y |
@@ -274,7 +273,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
274 | # CONFIG_INET_AH is not set | 273 | # CONFIG_INET_AH is not set |
275 | # CONFIG_INET_ESP is not set | 274 | # CONFIG_INET_ESP is not set |
276 | # CONFIG_INET_IPCOMP is not set | 275 | # CONFIG_INET_IPCOMP is not set |
277 | CONFIG_INET_TUNNEL=m | 276 | # CONFIG_INET_XFRM_TUNNEL is not set |
277 | # CONFIG_INET_TUNNEL is not set | ||
278 | CONFIG_INET_DIAG=y | 278 | CONFIG_INET_DIAG=y |
279 | CONFIG_INET_TCP_DIAG=y | 279 | CONFIG_INET_TCP_DIAG=y |
280 | # CONFIG_TCP_CONG_ADVANCED is not set | 280 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -285,6 +285,8 @@ CONFIG_TCP_CONG_BIC=y | |||
285 | # | 285 | # |
286 | # CONFIG_IP_VS is not set | 286 | # CONFIG_IP_VS is not set |
287 | # CONFIG_IPV6 is not set | 287 | # CONFIG_IPV6 is not set |
288 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
289 | # CONFIG_INET6_TUNNEL is not set | ||
288 | CONFIG_NETFILTER=y | 290 | CONFIG_NETFILTER=y |
289 | # CONFIG_NETFILTER_DEBUG is not set | 291 | # CONFIG_NETFILTER_DEBUG is not set |
290 | 292 | ||
@@ -301,10 +303,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
301 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 303 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
302 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 304 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
303 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 305 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
306 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
304 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 307 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
305 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 308 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
306 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 309 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
307 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 310 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
311 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
312 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
308 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 313 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
309 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 314 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
310 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 315 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -328,6 +333,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
328 | # SCTP Configuration (EXPERIMENTAL) | 333 | # SCTP Configuration (EXPERIMENTAL) |
329 | # | 334 | # |
330 | # CONFIG_IP_SCTP is not set | 335 | # CONFIG_IP_SCTP is not set |
336 | |||
337 | # | ||
338 | # TIPC Configuration (EXPERIMENTAL) | ||
339 | # | ||
340 | # CONFIG_TIPC is not set | ||
331 | # CONFIG_ATM is not set | 341 | # CONFIG_ATM is not set |
332 | # CONFIG_BRIDGE is not set | 342 | # CONFIG_BRIDGE is not set |
333 | # CONFIG_VLAN_8021Q is not set | 343 | # CONFIG_VLAN_8021Q is not set |
@@ -337,11 +347,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
337 | # CONFIG_ATALK is not set | 347 | # CONFIG_ATALK is not set |
338 | # CONFIG_X25 is not set | 348 | # CONFIG_X25 is not set |
339 | # CONFIG_LAPB is not set | 349 | # CONFIG_LAPB is not set |
340 | |||
341 | # | ||
342 | # TIPC Configuration (EXPERIMENTAL) | ||
343 | # | ||
344 | # CONFIG_TIPC is not set | ||
345 | # CONFIG_NET_DIVERT is not set | 350 | # CONFIG_NET_DIVERT is not set |
346 | # CONFIG_ECONET is not set | 351 | # CONFIG_ECONET is not set |
347 | # CONFIG_WAN_ROUTER is not set | 352 | # CONFIG_WAN_ROUTER is not set |
@@ -363,6 +368,9 @@ CONFIG_IEEE80211=m | |||
363 | # CONFIG_IEEE80211_DEBUG is not set | 368 | # CONFIG_IEEE80211_DEBUG is not set |
364 | CONFIG_IEEE80211_CRYPT_WEP=m | 369 | CONFIG_IEEE80211_CRYPT_WEP=m |
365 | CONFIG_IEEE80211_CRYPT_CCMP=m | 370 | CONFIG_IEEE80211_CRYPT_CCMP=m |
371 | CONFIG_IEEE80211_SOFTMAC=m | ||
372 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
373 | CONFIG_WIRELESS_EXT=y | ||
366 | 374 | ||
367 | # | 375 | # |
368 | # Device Drivers | 376 | # Device Drivers |
@@ -419,7 +427,6 @@ CONFIG_MTD_CFI_I2=y | |||
419 | # CONFIG_MTD_CFI_I8 is not set | 427 | # CONFIG_MTD_CFI_I8 is not set |
420 | # CONFIG_MTD_CFI_INTELEXT is not set | 428 | # CONFIG_MTD_CFI_INTELEXT is not set |
421 | CONFIG_MTD_CFI_AMDSTD=y | 429 | CONFIG_MTD_CFI_AMDSTD=y |
422 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
423 | # CONFIG_MTD_CFI_STAA is not set | 430 | # CONFIG_MTD_CFI_STAA is not set |
424 | CONFIG_MTD_CFI_UTIL=y | 431 | CONFIG_MTD_CFI_UTIL=y |
425 | # CONFIG_MTD_RAM is not set | 432 | # CONFIG_MTD_RAM is not set |
@@ -442,7 +449,6 @@ CONFIG_MTD_ALCHEMY=y | |||
442 | # CONFIG_MTD_SLRAM is not set | 449 | # CONFIG_MTD_SLRAM is not set |
443 | # CONFIG_MTD_PHRAM is not set | 450 | # CONFIG_MTD_PHRAM is not set |
444 | # CONFIG_MTD_MTDRAM is not set | 451 | # CONFIG_MTD_MTDRAM is not set |
445 | # CONFIG_MTD_BLKMTD is not set | ||
446 | # CONFIG_MTD_BLOCK2MTD is not set | 452 | # CONFIG_MTD_BLOCK2MTD is not set |
447 | 453 | ||
448 | # | 454 | # |
@@ -489,7 +495,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
489 | # CONFIG_BLK_DEV_NBD is not set | 495 | # CONFIG_BLK_DEV_NBD is not set |
490 | # CONFIG_BLK_DEV_SX8 is not set | 496 | # CONFIG_BLK_DEV_SX8 is not set |
491 | # CONFIG_BLK_DEV_RAM is not set | 497 | # CONFIG_BLK_DEV_RAM is not set |
492 | CONFIG_BLK_DEV_RAM_COUNT=16 | 498 | # CONFIG_BLK_DEV_INITRD is not set |
493 | CONFIG_CDROM_PKTCDVD=m | 499 | CONFIG_CDROM_PKTCDVD=m |
494 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 500 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
495 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 501 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -754,6 +760,7 @@ CONFIG_SERIO_RAW=m | |||
754 | # | 760 | # |
755 | CONFIG_SERIAL_8250=y | 761 | CONFIG_SERIAL_8250=y |
756 | CONFIG_SERIAL_8250_CONSOLE=y | 762 | CONFIG_SERIAL_8250_CONSOLE=y |
763 | CONFIG_SERIAL_8250_PCI=y | ||
757 | # CONFIG_SERIAL_8250_CS is not set | 764 | # CONFIG_SERIAL_8250_CS is not set |
758 | CONFIG_SERIAL_8250_NR_UARTS=4 | 765 | CONFIG_SERIAL_8250_NR_UARTS=4 |
759 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 766 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
@@ -765,6 +772,7 @@ CONFIG_SERIAL_8250_AU1X00=y | |||
765 | # | 772 | # |
766 | CONFIG_SERIAL_CORE=y | 773 | CONFIG_SERIAL_CORE=y |
767 | CONFIG_SERIAL_CORE_CONSOLE=y | 774 | CONFIG_SERIAL_CORE_CONSOLE=y |
775 | # CONFIG_SERIAL_JSM is not set | ||
768 | CONFIG_UNIX98_PTYS=y | 776 | CONFIG_UNIX98_PTYS=y |
769 | CONFIG_LEGACY_PTYS=y | 777 | CONFIG_LEGACY_PTYS=y |
770 | CONFIG_LEGACY_PTY_COUNT=256 | 778 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -830,10 +838,6 @@ CONFIG_SYNCLINK_CS=m | |||
830 | # | 838 | # |
831 | 839 | ||
832 | # | 840 | # |
833 | # Multimedia Capabilities Port drivers | ||
834 | # | ||
835 | |||
836 | # | ||
837 | # Multimedia devices | 841 | # Multimedia devices |
838 | # | 842 | # |
839 | # CONFIG_VIDEO_DEV is not set | 843 | # CONFIG_VIDEO_DEV is not set |
@@ -858,6 +862,7 @@ CONFIG_SYNCLINK_CS=m | |||
858 | # | 862 | # |
859 | CONFIG_USB_ARCH_HAS_HCD=y | 863 | CONFIG_USB_ARCH_HAS_HCD=y |
860 | CONFIG_USB_ARCH_HAS_OHCI=y | 864 | CONFIG_USB_ARCH_HAS_OHCI=y |
865 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
861 | # CONFIG_USB is not set | 866 | # CONFIG_USB is not set |
862 | 867 | ||
863 | # | 868 | # |
@@ -875,13 +880,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
875 | # CONFIG_MMC is not set | 880 | # CONFIG_MMC is not set |
876 | 881 | ||
877 | # | 882 | # |
883 | # LED devices | ||
884 | # | ||
885 | # CONFIG_NEW_LEDS is not set | ||
886 | |||
887 | # | ||
888 | # LED drivers | ||
889 | # | ||
890 | |||
891 | # | ||
892 | # LED Triggers | ||
893 | # | ||
894 | |||
895 | # | ||
878 | # InfiniBand support | 896 | # InfiniBand support |
879 | # | 897 | # |
880 | # CONFIG_INFINIBAND is not set | 898 | # CONFIG_INFINIBAND is not set |
881 | 899 | ||
882 | # | 900 | # |
883 | # SN Devices | 901 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
902 | # | ||
903 | |||
904 | # | ||
905 | # Real Time Clock | ||
884 | # | 906 | # |
907 | # CONFIG_RTC_CLASS is not set | ||
885 | 908 | ||
886 | # | 909 | # |
887 | # File systems | 910 | # File systems |
@@ -939,7 +962,6 @@ CONFIG_SYSFS=y | |||
939 | CONFIG_TMPFS=y | 962 | CONFIG_TMPFS=y |
940 | # CONFIG_HUGETLB_PAGE is not set | 963 | # CONFIG_HUGETLB_PAGE is not set |
941 | CONFIG_RAMFS=y | 964 | CONFIG_RAMFS=y |
942 | CONFIG_RELAYFS_FS=m | ||
943 | # CONFIG_CONFIGFS_FS is not set | 965 | # CONFIG_CONFIGFS_FS is not set |
944 | 966 | ||
945 | # | 967 | # |
@@ -1048,6 +1070,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1048 | # CONFIG_MAGIC_SYSRQ is not set | 1070 | # CONFIG_MAGIC_SYSRQ is not set |
1049 | # CONFIG_DEBUG_KERNEL is not set | 1071 | # CONFIG_DEBUG_KERNEL is not set |
1050 | CONFIG_LOG_BUF_SHIFT=14 | 1072 | CONFIG_LOG_BUF_SHIFT=14 |
1073 | # CONFIG_DEBUG_FS is not set | ||
1051 | CONFIG_CROSSCOMPILE=y | 1074 | CONFIG_CROSSCOMPILE=y |
1052 | CONFIG_CMDLINE="" | 1075 | CONFIG_CMDLINE="" |
1053 | 1076 | ||
diff --git a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig index 8fae63e47e5e..8d88ac1bbfeb 100644 --- a/arch/mips/configs/ddb5476_defconfig +++ b/arch/mips/configs/ddb5476_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:02 2006 | 4 | # Mon Apr 24 14:51:00 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_DDB5476=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,7 +116,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | # CONFIG_PAGE_SIZE_16KB is not set | 116 | # CONFIG_PAGE_SIZE_16KB is not set |
115 | # CONFIG_PAGE_SIZE_64KB is not set | 117 | # CONFIG_PAGE_SIZE_64KB is not set |
116 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
117 | # CONFIG_CPU_ADVANCED is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
@@ -136,7 +137,6 @@ CONFIG_PREEMPT_NONE=y | |||
136 | # Code maturity level options | 137 | # Code maturity level options |
137 | # | 138 | # |
138 | CONFIG_EXPERIMENTAL=y | 139 | CONFIG_EXPERIMENTAL=y |
139 | CONFIG_CLEAN_COMPILE=y | ||
140 | CONFIG_BROKEN_ON_SMP=y | 140 | CONFIG_BROKEN_ON_SMP=y |
141 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 141 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
142 | 142 | ||
@@ -152,6 +152,7 @@ CONFIG_SYSVIPC=y | |||
152 | CONFIG_SYSCTL=y | 152 | CONFIG_SYSCTL=y |
153 | # CONFIG_AUDIT is not set | 153 | # CONFIG_AUDIT is not set |
154 | # CONFIG_IKCONFIG is not set | 154 | # CONFIG_IKCONFIG is not set |
155 | CONFIG_RELAY=y | ||
155 | CONFIG_INITRAMFS_SOURCE="" | 156 | CONFIG_INITRAMFS_SOURCE="" |
156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
157 | CONFIG_EMBEDDED=y | 158 | CONFIG_EMBEDDED=y |
@@ -165,10 +166,6 @@ CONFIG_BASE_FULL=y | |||
165 | CONFIG_FUTEX=y | 166 | CONFIG_FUTEX=y |
166 | CONFIG_EPOLL=y | 167 | CONFIG_EPOLL=y |
167 | CONFIG_SHMEM=y | 168 | CONFIG_SHMEM=y |
168 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
169 | CONFIG_CC_ALIGN_LABELS=0 | ||
170 | CONFIG_CC_ALIGN_LOOPS=0 | ||
171 | CONFIG_CC_ALIGN_JUMPS=0 | ||
172 | CONFIG_SLAB=y | 169 | CONFIG_SLAB=y |
173 | # CONFIG_TINY_SHMEM is not set | 170 | # CONFIG_TINY_SHMEM is not set |
174 | CONFIG_BASE_SMALL=0 | 171 | CONFIG_BASE_SMALL=0 |
@@ -183,6 +180,8 @@ CONFIG_BASE_SMALL=0 | |||
183 | # Block layer | 180 | # Block layer |
184 | # | 181 | # |
185 | # CONFIG_LBD is not set | 182 | # CONFIG_LBD is not set |
183 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
184 | # CONFIG_LSF is not set | ||
186 | 185 | ||
187 | # | 186 | # |
188 | # IO Schedulers | 187 | # IO Schedulers |
@@ -202,7 +201,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
202 | # | 201 | # |
203 | CONFIG_HW_HAS_PCI=y | 202 | CONFIG_HW_HAS_PCI=y |
204 | CONFIG_PCI=y | 203 | CONFIG_PCI=y |
205 | CONFIG_PCI_LEGACY_PROC=y | ||
206 | CONFIG_ISA=y | 204 | CONFIG_ISA=y |
207 | CONFIG_MMU=y | 205 | CONFIG_MMU=y |
208 | 206 | ||
@@ -231,6 +229,7 @@ CONFIG_NET=y | |||
231 | # | 229 | # |
232 | # Networking options | 230 | # Networking options |
233 | # | 231 | # |
232 | # CONFIG_NETDEBUG is not set | ||
234 | CONFIG_PACKET=y | 233 | CONFIG_PACKET=y |
235 | # CONFIG_PACKET_MMAP is not set | 234 | # CONFIG_PACKET_MMAP is not set |
236 | CONFIG_UNIX=y | 235 | CONFIG_UNIX=y |
@@ -252,12 +251,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
252 | # CONFIG_INET_AH is not set | 251 | # CONFIG_INET_AH is not set |
253 | # CONFIG_INET_ESP is not set | 252 | # CONFIG_INET_ESP is not set |
254 | # CONFIG_INET_IPCOMP is not set | 253 | # CONFIG_INET_IPCOMP is not set |
255 | CONFIG_INET_TUNNEL=y | 254 | # CONFIG_INET_XFRM_TUNNEL is not set |
255 | # CONFIG_INET_TUNNEL is not set | ||
256 | CONFIG_INET_DIAG=y | 256 | CONFIG_INET_DIAG=y |
257 | CONFIG_INET_TCP_DIAG=y | 257 | CONFIG_INET_TCP_DIAG=y |
258 | # CONFIG_TCP_CONG_ADVANCED is not set | 258 | # CONFIG_TCP_CONG_ADVANCED is not set |
259 | CONFIG_TCP_CONG_BIC=y | 259 | CONFIG_TCP_CONG_BIC=y |
260 | # CONFIG_IPV6 is not set | 260 | # CONFIG_IPV6 is not set |
261 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
262 | # CONFIG_INET6_TUNNEL is not set | ||
261 | # CONFIG_NETFILTER is not set | 263 | # CONFIG_NETFILTER is not set |
262 | 264 | ||
263 | # | 265 | # |
@@ -269,6 +271,11 @@ CONFIG_TCP_CONG_BIC=y | |||
269 | # SCTP Configuration (EXPERIMENTAL) | 271 | # SCTP Configuration (EXPERIMENTAL) |
270 | # | 272 | # |
271 | # CONFIG_IP_SCTP is not set | 273 | # CONFIG_IP_SCTP is not set |
274 | |||
275 | # | ||
276 | # TIPC Configuration (EXPERIMENTAL) | ||
277 | # | ||
278 | # CONFIG_TIPC is not set | ||
272 | # CONFIG_ATM is not set | 279 | # CONFIG_ATM is not set |
273 | # CONFIG_BRIDGE is not set | 280 | # CONFIG_BRIDGE is not set |
274 | # CONFIG_VLAN_8021Q is not set | 281 | # CONFIG_VLAN_8021Q is not set |
@@ -278,11 +285,6 @@ CONFIG_TCP_CONG_BIC=y | |||
278 | # CONFIG_ATALK is not set | 285 | # CONFIG_ATALK is not set |
279 | # CONFIG_X25 is not set | 286 | # CONFIG_X25 is not set |
280 | # CONFIG_LAPB is not set | 287 | # CONFIG_LAPB is not set |
281 | |||
282 | # | ||
283 | # TIPC Configuration (EXPERIMENTAL) | ||
284 | # | ||
285 | # CONFIG_TIPC is not set | ||
286 | # CONFIG_NET_DIVERT is not set | 288 | # CONFIG_NET_DIVERT is not set |
287 | # CONFIG_ECONET is not set | 289 | # CONFIG_ECONET is not set |
288 | # CONFIG_WAN_ROUTER is not set | 290 | # CONFIG_WAN_ROUTER is not set |
@@ -303,6 +305,9 @@ CONFIG_IEEE80211=y | |||
303 | # CONFIG_IEEE80211_DEBUG is not set | 305 | # CONFIG_IEEE80211_DEBUG is not set |
304 | CONFIG_IEEE80211_CRYPT_WEP=y | 306 | CONFIG_IEEE80211_CRYPT_WEP=y |
305 | CONFIG_IEEE80211_CRYPT_CCMP=y | 307 | CONFIG_IEEE80211_CRYPT_CCMP=y |
308 | CONFIG_IEEE80211_SOFTMAC=y | ||
309 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
310 | CONFIG_WIRELESS_EXT=y | ||
306 | 311 | ||
307 | # | 312 | # |
308 | # Device Drivers | 313 | # Device Drivers |
@@ -348,7 +353,7 @@ CONFIG_PROC_EVENTS=y | |||
348 | # CONFIG_BLK_DEV_NBD is not set | 353 | # CONFIG_BLK_DEV_NBD is not set |
349 | # CONFIG_BLK_DEV_SX8 is not set | 354 | # CONFIG_BLK_DEV_SX8 is not set |
350 | # CONFIG_BLK_DEV_RAM is not set | 355 | # CONFIG_BLK_DEV_RAM is not set |
351 | CONFIG_BLK_DEV_RAM_COUNT=16 | 356 | # CONFIG_BLK_DEV_INITRD is not set |
352 | CONFIG_CDROM_PKTCDVD=y | 357 | CONFIG_CDROM_PKTCDVD=y |
353 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 358 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
354 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 359 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -571,6 +576,7 @@ CONFIG_HW_CONSOLE=y | |||
571 | # | 576 | # |
572 | CONFIG_SERIAL_8250=y | 577 | CONFIG_SERIAL_8250=y |
573 | CONFIG_SERIAL_8250_CONSOLE=y | 578 | CONFIG_SERIAL_8250_CONSOLE=y |
579 | CONFIG_SERIAL_8250_PCI=y | ||
574 | CONFIG_SERIAL_8250_NR_UARTS=4 | 580 | CONFIG_SERIAL_8250_NR_UARTS=4 |
575 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 581 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
576 | # CONFIG_SERIAL_8250_EXTENDED is not set | 582 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -580,6 +586,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
580 | # | 586 | # |
581 | CONFIG_SERIAL_CORE=y | 587 | CONFIG_SERIAL_CORE=y |
582 | CONFIG_SERIAL_CORE_CONSOLE=y | 588 | CONFIG_SERIAL_CORE_CONSOLE=y |
589 | # CONFIG_SERIAL_JSM is not set | ||
583 | CONFIG_UNIX98_PTYS=y | 590 | CONFIG_UNIX98_PTYS=y |
584 | CONFIG_LEGACY_PTYS=y | 591 | CONFIG_LEGACY_PTYS=y |
585 | CONFIG_LEGACY_PTY_COUNT=256 | 592 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -638,10 +645,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
638 | # | 645 | # |
639 | 646 | ||
640 | # | 647 | # |
641 | # Multimedia Capabilities Port drivers | ||
642 | # | ||
643 | |||
644 | # | ||
645 | # Multimedia devices | 648 | # Multimedia devices |
646 | # | 649 | # |
647 | # CONFIG_VIDEO_DEV is not set | 650 | # CONFIG_VIDEO_DEV is not set |
@@ -659,6 +662,7 @@ CONFIG_FB=y | |||
659 | # CONFIG_FB_CFB_COPYAREA is not set | 662 | # CONFIG_FB_CFB_COPYAREA is not set |
660 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 663 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
661 | # CONFIG_FB_MACMODES is not set | 664 | # CONFIG_FB_MACMODES is not set |
665 | CONFIG_FB_FIRMWARE_EDID=y | ||
662 | # CONFIG_FB_MODE_HELPERS is not set | 666 | # CONFIG_FB_MODE_HELPERS is not set |
663 | # CONFIG_FB_TILEBLITTING is not set | 667 | # CONFIG_FB_TILEBLITTING is not set |
664 | # CONFIG_FB_CIRRUS is not set | 668 | # CONFIG_FB_CIRRUS is not set |
@@ -670,7 +674,6 @@ CONFIG_FB=y | |||
670 | # CONFIG_FB_NVIDIA is not set | 674 | # CONFIG_FB_NVIDIA is not set |
671 | # CONFIG_FB_RIVA is not set | 675 | # CONFIG_FB_RIVA is not set |
672 | # CONFIG_FB_MATROX is not set | 676 | # CONFIG_FB_MATROX is not set |
673 | # CONFIG_FB_RADEON_OLD is not set | ||
674 | # CONFIG_FB_RADEON is not set | 677 | # CONFIG_FB_RADEON is not set |
675 | # CONFIG_FB_ATY128 is not set | 678 | # CONFIG_FB_ATY128 is not set |
676 | # CONFIG_FB_ATY is not set | 679 | # CONFIG_FB_ATY is not set |
@@ -708,6 +711,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
708 | # | 711 | # |
709 | CONFIG_USB_ARCH_HAS_HCD=y | 712 | CONFIG_USB_ARCH_HAS_HCD=y |
710 | CONFIG_USB_ARCH_HAS_OHCI=y | 713 | CONFIG_USB_ARCH_HAS_OHCI=y |
714 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
711 | # CONFIG_USB is not set | 715 | # CONFIG_USB is not set |
712 | 716 | ||
713 | # | 717 | # |
@@ -725,13 +729,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
725 | # CONFIG_MMC is not set | 729 | # CONFIG_MMC is not set |
726 | 730 | ||
727 | # | 731 | # |
732 | # LED devices | ||
733 | # | ||
734 | # CONFIG_NEW_LEDS is not set | ||
735 | |||
736 | # | ||
737 | # LED drivers | ||
738 | # | ||
739 | |||
740 | # | ||
741 | # LED Triggers | ||
742 | # | ||
743 | |||
744 | # | ||
728 | # InfiniBand support | 745 | # InfiniBand support |
729 | # | 746 | # |
730 | # CONFIG_INFINIBAND is not set | 747 | # CONFIG_INFINIBAND is not set |
731 | 748 | ||
732 | # | 749 | # |
733 | # SN Devices | 750 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
751 | # | ||
752 | |||
753 | # | ||
754 | # Real Time Clock | ||
734 | # | 755 | # |
756 | # CONFIG_RTC_CLASS is not set | ||
735 | 757 | ||
736 | # | 758 | # |
737 | # File systems | 759 | # File systems |
@@ -776,7 +798,6 @@ CONFIG_SYSFS=y | |||
776 | # CONFIG_TMPFS is not set | 798 | # CONFIG_TMPFS is not set |
777 | # CONFIG_HUGETLB_PAGE is not set | 799 | # CONFIG_HUGETLB_PAGE is not set |
778 | CONFIG_RAMFS=y | 800 | CONFIG_RAMFS=y |
779 | CONFIG_RELAYFS_FS=y | ||
780 | # CONFIG_CONFIGFS_FS is not set | 801 | # CONFIG_CONFIGFS_FS is not set |
781 | 802 | ||
782 | # | 803 | # |
@@ -840,6 +861,8 @@ CONFIG_MSDOS_PARTITION=y | |||
840 | # CONFIG_MAGIC_SYSRQ is not set | 861 | # CONFIG_MAGIC_SYSRQ is not set |
841 | # CONFIG_DEBUG_KERNEL is not set | 862 | # CONFIG_DEBUG_KERNEL is not set |
842 | CONFIG_LOG_BUF_SHIFT=14 | 863 | CONFIG_LOG_BUF_SHIFT=14 |
864 | # CONFIG_DEBUG_FS is not set | ||
865 | # CONFIG_UNWIND_INFO is not set | ||
843 | CONFIG_CROSSCOMPILE=y | 866 | CONFIG_CROSSCOMPILE=y |
844 | CONFIG_CMDLINE="ip=any" | 867 | CONFIG_CMDLINE="ip=any" |
845 | 868 | ||
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig index a0fcd44e7709..8c911b671415 100644 --- a/arch/mips/configs/ddb5477_defconfig +++ b/arch/mips/configs/ddb5477_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:02 2006 | 4 | # Mon Apr 24 14:51:01 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -65,6 +65,8 @@ CONFIG_DDB5477=y | |||
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_DDB5477_BUS_FREQUENCY=0 | 66 | CONFIG_DDB5477_BUS_FREQUENCY=0 |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
70 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,7 +116,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | # CONFIG_PAGE_SIZE_16KB is not set | 116 | # CONFIG_PAGE_SIZE_16KB is not set |
115 | # CONFIG_PAGE_SIZE_64KB is not set | 117 | # CONFIG_PAGE_SIZE_64KB is not set |
116 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
117 | # CONFIG_CPU_ADVANCED is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
@@ -136,7 +137,6 @@ CONFIG_PREEMPT_NONE=y | |||
136 | # Code maturity level options | 137 | # Code maturity level options |
137 | # | 138 | # |
138 | CONFIG_EXPERIMENTAL=y | 139 | CONFIG_EXPERIMENTAL=y |
139 | CONFIG_CLEAN_COMPILE=y | ||
140 | CONFIG_BROKEN_ON_SMP=y | 140 | CONFIG_BROKEN_ON_SMP=y |
141 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 141 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
142 | 142 | ||
@@ -152,6 +152,7 @@ CONFIG_SYSVIPC=y | |||
152 | CONFIG_SYSCTL=y | 152 | CONFIG_SYSCTL=y |
153 | # CONFIG_AUDIT is not set | 153 | # CONFIG_AUDIT is not set |
154 | # CONFIG_IKCONFIG is not set | 154 | # CONFIG_IKCONFIG is not set |
155 | CONFIG_RELAY=y | ||
155 | CONFIG_INITRAMFS_SOURCE="" | 156 | CONFIG_INITRAMFS_SOURCE="" |
156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
157 | CONFIG_EMBEDDED=y | 158 | CONFIG_EMBEDDED=y |
@@ -165,10 +166,6 @@ CONFIG_BASE_FULL=y | |||
165 | CONFIG_FUTEX=y | 166 | CONFIG_FUTEX=y |
166 | CONFIG_EPOLL=y | 167 | CONFIG_EPOLL=y |
167 | CONFIG_SHMEM=y | 168 | CONFIG_SHMEM=y |
168 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
169 | CONFIG_CC_ALIGN_LABELS=0 | ||
170 | CONFIG_CC_ALIGN_LOOPS=0 | ||
171 | CONFIG_CC_ALIGN_JUMPS=0 | ||
172 | CONFIG_SLAB=y | 169 | CONFIG_SLAB=y |
173 | # CONFIG_TINY_SHMEM is not set | 170 | # CONFIG_TINY_SHMEM is not set |
174 | CONFIG_BASE_SMALL=0 | 171 | CONFIG_BASE_SMALL=0 |
@@ -183,6 +180,8 @@ CONFIG_BASE_SMALL=0 | |||
183 | # Block layer | 180 | # Block layer |
184 | # | 181 | # |
185 | # CONFIG_LBD is not set | 182 | # CONFIG_LBD is not set |
183 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
184 | # CONFIG_LSF is not set | ||
186 | 185 | ||
187 | # | 186 | # |
188 | # IO Schedulers | 187 | # IO Schedulers |
@@ -202,7 +201,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
202 | # | 201 | # |
203 | CONFIG_HW_HAS_PCI=y | 202 | CONFIG_HW_HAS_PCI=y |
204 | CONFIG_PCI=y | 203 | CONFIG_PCI=y |
205 | CONFIG_PCI_LEGACY_PROC=y | ||
206 | CONFIG_MMU=y | 204 | CONFIG_MMU=y |
207 | 205 | ||
208 | # | 206 | # |
@@ -230,6 +228,7 @@ CONFIG_NET=y | |||
230 | # | 228 | # |
231 | # Networking options | 229 | # Networking options |
232 | # | 230 | # |
231 | # CONFIG_NETDEBUG is not set | ||
233 | CONFIG_PACKET=y | 232 | CONFIG_PACKET=y |
234 | # CONFIG_PACKET_MMAP is not set | 233 | # CONFIG_PACKET_MMAP is not set |
235 | CONFIG_UNIX=y | 234 | CONFIG_UNIX=y |
@@ -251,12 +250,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
251 | # CONFIG_INET_AH is not set | 250 | # CONFIG_INET_AH is not set |
252 | # CONFIG_INET_ESP is not set | 251 | # CONFIG_INET_ESP is not set |
253 | # CONFIG_INET_IPCOMP is not set | 252 | # CONFIG_INET_IPCOMP is not set |
254 | CONFIG_INET_TUNNEL=y | 253 | # CONFIG_INET_XFRM_TUNNEL is not set |
254 | # CONFIG_INET_TUNNEL is not set | ||
255 | CONFIG_INET_DIAG=y | 255 | CONFIG_INET_DIAG=y |
256 | CONFIG_INET_TCP_DIAG=y | 256 | CONFIG_INET_TCP_DIAG=y |
257 | # CONFIG_TCP_CONG_ADVANCED is not set | 257 | # CONFIG_TCP_CONG_ADVANCED is not set |
258 | CONFIG_TCP_CONG_BIC=y | 258 | CONFIG_TCP_CONG_BIC=y |
259 | # CONFIG_IPV6 is not set | 259 | # CONFIG_IPV6 is not set |
260 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
261 | # CONFIG_INET6_TUNNEL is not set | ||
260 | # CONFIG_NETFILTER is not set | 262 | # CONFIG_NETFILTER is not set |
261 | 263 | ||
262 | # | 264 | # |
@@ -268,6 +270,11 @@ CONFIG_TCP_CONG_BIC=y | |||
268 | # SCTP Configuration (EXPERIMENTAL) | 270 | # SCTP Configuration (EXPERIMENTAL) |
269 | # | 271 | # |
270 | # CONFIG_IP_SCTP is not set | 272 | # CONFIG_IP_SCTP is not set |
273 | |||
274 | # | ||
275 | # TIPC Configuration (EXPERIMENTAL) | ||
276 | # | ||
277 | # CONFIG_TIPC is not set | ||
271 | # CONFIG_ATM is not set | 278 | # CONFIG_ATM is not set |
272 | # CONFIG_BRIDGE is not set | 279 | # CONFIG_BRIDGE is not set |
273 | # CONFIG_VLAN_8021Q is not set | 280 | # CONFIG_VLAN_8021Q is not set |
@@ -277,11 +284,6 @@ CONFIG_TCP_CONG_BIC=y | |||
277 | # CONFIG_ATALK is not set | 284 | # CONFIG_ATALK is not set |
278 | # CONFIG_X25 is not set | 285 | # CONFIG_X25 is not set |
279 | # CONFIG_LAPB is not set | 286 | # CONFIG_LAPB is not set |
280 | |||
281 | # | ||
282 | # TIPC Configuration (EXPERIMENTAL) | ||
283 | # | ||
284 | # CONFIG_TIPC is not set | ||
285 | # CONFIG_NET_DIVERT is not set | 287 | # CONFIG_NET_DIVERT is not set |
286 | # CONFIG_ECONET is not set | 288 | # CONFIG_ECONET is not set |
287 | # CONFIG_WAN_ROUTER is not set | 289 | # CONFIG_WAN_ROUTER is not set |
@@ -302,6 +304,9 @@ CONFIG_IEEE80211=y | |||
302 | # CONFIG_IEEE80211_DEBUG is not set | 304 | # CONFIG_IEEE80211_DEBUG is not set |
303 | CONFIG_IEEE80211_CRYPT_WEP=y | 305 | CONFIG_IEEE80211_CRYPT_WEP=y |
304 | CONFIG_IEEE80211_CRYPT_CCMP=y | 306 | CONFIG_IEEE80211_CRYPT_CCMP=y |
307 | CONFIG_IEEE80211_SOFTMAC=y | ||
308 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
309 | CONFIG_WIRELESS_EXT=y | ||
305 | 310 | ||
306 | # | 311 | # |
307 | # Device Drivers | 312 | # Device Drivers |
@@ -346,7 +351,7 @@ CONFIG_PROC_EVENTS=y | |||
346 | # CONFIG_BLK_DEV_NBD is not set | 351 | # CONFIG_BLK_DEV_NBD is not set |
347 | # CONFIG_BLK_DEV_SX8 is not set | 352 | # CONFIG_BLK_DEV_SX8 is not set |
348 | # CONFIG_BLK_DEV_RAM is not set | 353 | # CONFIG_BLK_DEV_RAM is not set |
349 | CONFIG_BLK_DEV_RAM_COUNT=16 | 354 | # CONFIG_BLK_DEV_INITRD is not set |
350 | CONFIG_CDROM_PKTCDVD=y | 355 | CONFIG_CDROM_PKTCDVD=y |
351 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 356 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
352 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 357 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -556,6 +561,7 @@ CONFIG_HW_CONSOLE=y | |||
556 | # | 561 | # |
557 | CONFIG_SERIAL_8250=y | 562 | CONFIG_SERIAL_8250=y |
558 | CONFIG_SERIAL_8250_CONSOLE=y | 563 | CONFIG_SERIAL_8250_CONSOLE=y |
564 | CONFIG_SERIAL_8250_PCI=y | ||
559 | CONFIG_SERIAL_8250_NR_UARTS=4 | 565 | CONFIG_SERIAL_8250_NR_UARTS=4 |
560 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 566 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
561 | # CONFIG_SERIAL_8250_EXTENDED is not set | 567 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -565,6 +571,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
565 | # | 571 | # |
566 | CONFIG_SERIAL_CORE=y | 572 | CONFIG_SERIAL_CORE=y |
567 | CONFIG_SERIAL_CORE_CONSOLE=y | 573 | CONFIG_SERIAL_CORE_CONSOLE=y |
574 | # CONFIG_SERIAL_JSM is not set | ||
568 | CONFIG_UNIX98_PTYS=y | 575 | CONFIG_UNIX98_PTYS=y |
569 | CONFIG_LEGACY_PTYS=y | 576 | CONFIG_LEGACY_PTYS=y |
570 | CONFIG_LEGACY_PTY_COUNT=256 | 577 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -623,10 +630,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
623 | # | 630 | # |
624 | 631 | ||
625 | # | 632 | # |
626 | # Multimedia Capabilities Port drivers | ||
627 | # | ||
628 | |||
629 | # | ||
630 | # Multimedia devices | 633 | # Multimedia devices |
631 | # | 634 | # |
632 | # CONFIG_VIDEO_DEV is not set | 635 | # CONFIG_VIDEO_DEV is not set |
@@ -657,6 +660,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
657 | # | 660 | # |
658 | CONFIG_USB_ARCH_HAS_HCD=y | 661 | CONFIG_USB_ARCH_HAS_HCD=y |
659 | CONFIG_USB_ARCH_HAS_OHCI=y | 662 | CONFIG_USB_ARCH_HAS_OHCI=y |
663 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
660 | # CONFIG_USB is not set | 664 | # CONFIG_USB is not set |
661 | 665 | ||
662 | # | 666 | # |
@@ -674,13 +678,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
674 | # CONFIG_MMC is not set | 678 | # CONFIG_MMC is not set |
675 | 679 | ||
676 | # | 680 | # |
681 | # LED devices | ||
682 | # | ||
683 | # CONFIG_NEW_LEDS is not set | ||
684 | |||
685 | # | ||
686 | # LED drivers | ||
687 | # | ||
688 | |||
689 | # | ||
690 | # LED Triggers | ||
691 | # | ||
692 | |||
693 | # | ||
677 | # InfiniBand support | 694 | # InfiniBand support |
678 | # | 695 | # |
679 | # CONFIG_INFINIBAND is not set | 696 | # CONFIG_INFINIBAND is not set |
680 | 697 | ||
681 | # | 698 | # |
682 | # SN Devices | 699 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
700 | # | ||
701 | |||
702 | # | ||
703 | # Real Time Clock | ||
683 | # | 704 | # |
705 | # CONFIG_RTC_CLASS is not set | ||
684 | 706 | ||
685 | # | 707 | # |
686 | # File systems | 708 | # File systems |
@@ -725,7 +747,6 @@ CONFIG_SYSFS=y | |||
725 | # CONFIG_TMPFS is not set | 747 | # CONFIG_TMPFS is not set |
726 | # CONFIG_HUGETLB_PAGE is not set | 748 | # CONFIG_HUGETLB_PAGE is not set |
727 | CONFIG_RAMFS=y | 749 | CONFIG_RAMFS=y |
728 | CONFIG_RELAYFS_FS=y | ||
729 | # CONFIG_CONFIGFS_FS is not set | 750 | # CONFIG_CONFIGFS_FS is not set |
730 | 751 | ||
731 | # | 752 | # |
@@ -792,6 +813,8 @@ CONFIG_MSDOS_PARTITION=y | |||
792 | # CONFIG_MAGIC_SYSRQ is not set | 813 | # CONFIG_MAGIC_SYSRQ is not set |
793 | # CONFIG_DEBUG_KERNEL is not set | 814 | # CONFIG_DEBUG_KERNEL is not set |
794 | CONFIG_LOG_BUF_SHIFT=14 | 815 | CONFIG_LOG_BUF_SHIFT=14 |
816 | # CONFIG_DEBUG_FS is not set | ||
817 | # CONFIG_UNWIND_INFO is not set | ||
795 | CONFIG_CROSSCOMPILE=y | 818 | CONFIG_CROSSCOMPILE=y |
796 | CONFIG_CMDLINE="ip=any" | 819 | CONFIG_CMDLINE="ip=any" |
797 | 820 | ||
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig index 5a181eadd437..d838496e114f 100644 --- a/arch/mips/configs/decstation_defconfig +++ b/arch/mips/configs/decstation_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:03 2006 | 4 | # Mon Apr 24 14:51:01 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -63,11 +63,13 @@ CONFIG_MACH_DECSTATION=y | |||
63 | # CONFIG_TOSHIBA_JMR3927 is not set | 63 | # CONFIG_TOSHIBA_JMR3927 is not set |
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_EARLY_PRINTK=y | ||
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
70 | CONFIG_EARLY_PRINTK=y | ||
71 | # CONFIG_CPU_BIG_ENDIAN is not set | 73 | # CONFIG_CPU_BIG_ENDIAN is not set |
72 | CONFIG_CPU_LITTLE_ENDIAN=y | 74 | CONFIG_CPU_LITTLE_ENDIAN=y |
73 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 75 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -113,7 +115,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
113 | # CONFIG_PAGE_SIZE_16KB is not set | 115 | # CONFIG_PAGE_SIZE_16KB is not set |
114 | # CONFIG_PAGE_SIZE_64KB is not set | 116 | # CONFIG_PAGE_SIZE_64KB is not set |
115 | # CONFIG_MIPS_MT is not set | 117 | # CONFIG_MIPS_MT is not set |
116 | # CONFIG_CPU_ADVANCED is not set | ||
117 | CONFIG_CPU_HAS_WB=y | 118 | CONFIG_CPU_HAS_WB=y |
118 | CONFIG_GENERIC_HARDIRQS=y | 119 | CONFIG_GENERIC_HARDIRQS=y |
119 | CONFIG_GENERIC_IRQ_PROBE=y | 120 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -135,7 +136,6 @@ CONFIG_PREEMPT_NONE=y | |||
135 | # Code maturity level options | 136 | # Code maturity level options |
136 | # | 137 | # |
137 | CONFIG_EXPERIMENTAL=y | 138 | CONFIG_EXPERIMENTAL=y |
138 | CONFIG_CLEAN_COMPILE=y | ||
139 | CONFIG_BROKEN_ON_SMP=y | 139 | CONFIG_BROKEN_ON_SMP=y |
140 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 140 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
141 | 141 | ||
@@ -151,6 +151,7 @@ CONFIG_SYSVIPC=y | |||
151 | CONFIG_SYSCTL=y | 151 | CONFIG_SYSCTL=y |
152 | # CONFIG_AUDIT is not set | 152 | # CONFIG_AUDIT is not set |
153 | # CONFIG_IKCONFIG is not set | 153 | # CONFIG_IKCONFIG is not set |
154 | CONFIG_RELAY=y | ||
154 | CONFIG_INITRAMFS_SOURCE="" | 155 | CONFIG_INITRAMFS_SOURCE="" |
155 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
156 | CONFIG_EMBEDDED=y | 157 | CONFIG_EMBEDDED=y |
@@ -165,10 +166,6 @@ CONFIG_BASE_FULL=y | |||
165 | CONFIG_FUTEX=y | 166 | CONFIG_FUTEX=y |
166 | CONFIG_EPOLL=y | 167 | CONFIG_EPOLL=y |
167 | CONFIG_SHMEM=y | 168 | CONFIG_SHMEM=y |
168 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
169 | CONFIG_CC_ALIGN_LABELS=0 | ||
170 | CONFIG_CC_ALIGN_LOOPS=0 | ||
171 | CONFIG_CC_ALIGN_JUMPS=0 | ||
172 | CONFIG_SLAB=y | 169 | CONFIG_SLAB=y |
173 | # CONFIG_TINY_SHMEM is not set | 170 | # CONFIG_TINY_SHMEM is not set |
174 | CONFIG_BASE_SMALL=0 | 171 | CONFIG_BASE_SMALL=0 |
@@ -180,7 +177,6 @@ CONFIG_BASE_SMALL=0 | |||
180 | CONFIG_MODULES=y | 177 | CONFIG_MODULES=y |
181 | CONFIG_MODULE_UNLOAD=y | 178 | CONFIG_MODULE_UNLOAD=y |
182 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 179 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
183 | CONFIG_OBSOLETE_MODPARM=y | ||
184 | # CONFIG_MODVERSIONS is not set | 180 | # CONFIG_MODVERSIONS is not set |
185 | CONFIG_MODULE_SRCVERSION_ALL=y | 181 | CONFIG_MODULE_SRCVERSION_ALL=y |
186 | CONFIG_KMOD=y | 182 | CONFIG_KMOD=y |
@@ -189,6 +185,8 @@ CONFIG_KMOD=y | |||
189 | # Block layer | 185 | # Block layer |
190 | # | 186 | # |
191 | # CONFIG_LBD is not set | 187 | # CONFIG_LBD is not set |
188 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
189 | # CONFIG_LSF is not set | ||
192 | 190 | ||
193 | # | 191 | # |
194 | # IO Schedulers | 192 | # IO Schedulers |
@@ -233,11 +231,10 @@ CONFIG_NET=y | |||
233 | # | 231 | # |
234 | # Networking options | 232 | # Networking options |
235 | # | 233 | # |
234 | # CONFIG_NETDEBUG is not set | ||
236 | CONFIG_PACKET=y | 235 | CONFIG_PACKET=y |
237 | CONFIG_PACKET_MMAP=y | 236 | CONFIG_PACKET_MMAP=y |
238 | CONFIG_UNIX=y | 237 | CONFIG_UNIX=y |
239 | CONFIG_XFRM=y | ||
240 | CONFIG_XFRM_USER=m | ||
241 | # CONFIG_NET_KEY is not set | 238 | # CONFIG_NET_KEY is not set |
242 | CONFIG_INET=y | 239 | CONFIG_INET=y |
243 | # CONFIG_IP_MULTICAST is not set | 240 | # CONFIG_IP_MULTICAST is not set |
@@ -254,12 +251,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
254 | # CONFIG_INET_AH is not set | 251 | # CONFIG_INET_AH is not set |
255 | # CONFIG_INET_ESP is not set | 252 | # CONFIG_INET_ESP is not set |
256 | # CONFIG_INET_IPCOMP is not set | 253 | # CONFIG_INET_IPCOMP is not set |
257 | CONFIG_INET_TUNNEL=m | 254 | # CONFIG_INET_XFRM_TUNNEL is not set |
255 | # CONFIG_INET_TUNNEL is not set | ||
258 | CONFIG_INET_DIAG=y | 256 | CONFIG_INET_DIAG=y |
259 | CONFIG_INET_TCP_DIAG=y | 257 | CONFIG_INET_TCP_DIAG=y |
260 | # CONFIG_TCP_CONG_ADVANCED is not set | 258 | # CONFIG_TCP_CONG_ADVANCED is not set |
261 | CONFIG_TCP_CONG_BIC=y | 259 | CONFIG_TCP_CONG_BIC=y |
262 | # CONFIG_IPV6 is not set | 260 | # CONFIG_IPV6 is not set |
261 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
262 | # CONFIG_INET6_TUNNEL is not set | ||
263 | # CONFIG_NETFILTER is not set | 263 | # CONFIG_NETFILTER is not set |
264 | 264 | ||
265 | # | 265 | # |
@@ -271,6 +271,11 @@ CONFIG_TCP_CONG_BIC=y | |||
271 | # SCTP Configuration (EXPERIMENTAL) | 271 | # SCTP Configuration (EXPERIMENTAL) |
272 | # | 272 | # |
273 | # CONFIG_IP_SCTP is not set | 273 | # CONFIG_IP_SCTP is not set |
274 | |||
275 | # | ||
276 | # TIPC Configuration (EXPERIMENTAL) | ||
277 | # | ||
278 | # CONFIG_TIPC is not set | ||
274 | # CONFIG_ATM is not set | 279 | # CONFIG_ATM is not set |
275 | # CONFIG_BRIDGE is not set | 280 | # CONFIG_BRIDGE is not set |
276 | # CONFIG_VLAN_8021Q is not set | 281 | # CONFIG_VLAN_8021Q is not set |
@@ -280,11 +285,6 @@ CONFIG_TCP_CONG_BIC=y | |||
280 | # CONFIG_ATALK is not set | 285 | # CONFIG_ATALK is not set |
281 | # CONFIG_X25 is not set | 286 | # CONFIG_X25 is not set |
282 | # CONFIG_LAPB is not set | 287 | # CONFIG_LAPB is not set |
283 | |||
284 | # | ||
285 | # TIPC Configuration (EXPERIMENTAL) | ||
286 | # | ||
287 | # CONFIG_TIPC is not set | ||
288 | # CONFIG_NET_DIVERT is not set | 288 | # CONFIG_NET_DIVERT is not set |
289 | # CONFIG_ECONET is not set | 289 | # CONFIG_ECONET is not set |
290 | # CONFIG_WAN_ROUTER is not set | 290 | # CONFIG_WAN_ROUTER is not set |
@@ -305,6 +305,9 @@ CONFIG_IEEE80211=m | |||
305 | # CONFIG_IEEE80211_DEBUG is not set | 305 | # CONFIG_IEEE80211_DEBUG is not set |
306 | CONFIG_IEEE80211_CRYPT_WEP=m | 306 | CONFIG_IEEE80211_CRYPT_WEP=m |
307 | CONFIG_IEEE80211_CRYPT_CCMP=m | 307 | CONFIG_IEEE80211_CRYPT_CCMP=m |
308 | CONFIG_IEEE80211_SOFTMAC=m | ||
309 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
310 | CONFIG_WIRELESS_EXT=y | ||
308 | 311 | ||
309 | # | 312 | # |
310 | # Device Drivers | 313 | # Device Drivers |
@@ -345,7 +348,7 @@ CONFIG_BLK_DEV_LOOP=m | |||
345 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 348 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
346 | # CONFIG_BLK_DEV_NBD is not set | 349 | # CONFIG_BLK_DEV_NBD is not set |
347 | # CONFIG_BLK_DEV_RAM is not set | 350 | # CONFIG_BLK_DEV_RAM is not set |
348 | CONFIG_BLK_DEV_RAM_COUNT=16 | 351 | # CONFIG_BLK_DEV_INITRD is not set |
349 | # CONFIG_CDROM_PKTCDVD is not set | 352 | # CONFIG_CDROM_PKTCDVD is not set |
350 | # CONFIG_ATA_OVER_ETH is not set | 353 | # CONFIG_ATA_OVER_ETH is not set |
351 | 354 | ||
@@ -567,10 +570,6 @@ CONFIG_RTC=y | |||
567 | # | 570 | # |
568 | 571 | ||
569 | # | 572 | # |
570 | # Multimedia Capabilities Port drivers | ||
571 | # | ||
572 | |||
573 | # | ||
574 | # Multimedia devices | 573 | # Multimedia devices |
575 | # | 574 | # |
576 | # CONFIG_VIDEO_DEV is not set | 575 | # CONFIG_VIDEO_DEV is not set |
@@ -588,6 +587,7 @@ CONFIG_FB_CFB_FILLRECT=y | |||
588 | CONFIG_FB_CFB_COPYAREA=y | 587 | CONFIG_FB_CFB_COPYAREA=y |
589 | CONFIG_FB_CFB_IMAGEBLIT=y | 588 | CONFIG_FB_CFB_IMAGEBLIT=y |
590 | # CONFIG_FB_MACMODES is not set | 589 | # CONFIG_FB_MACMODES is not set |
590 | CONFIG_FB_FIRMWARE_EDID=y | ||
591 | # CONFIG_FB_MODE_HELPERS is not set | 591 | # CONFIG_FB_MODE_HELPERS is not set |
592 | # CONFIG_FB_TILEBLITTING is not set | 592 | # CONFIG_FB_TILEBLITTING is not set |
593 | # CONFIG_FB_S1D13XXX is not set | 593 | # CONFIG_FB_S1D13XXX is not set |
@@ -617,6 +617,7 @@ CONFIG_LOGO_DEC_CLUT224=y | |||
617 | # | 617 | # |
618 | # CONFIG_USB_ARCH_HAS_HCD is not set | 618 | # CONFIG_USB_ARCH_HAS_HCD is not set |
619 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 619 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
620 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
620 | 621 | ||
621 | # | 622 | # |
622 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 623 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -633,12 +634,30 @@ CONFIG_LOGO_DEC_CLUT224=y | |||
633 | # CONFIG_MMC is not set | 634 | # CONFIG_MMC is not set |
634 | 635 | ||
635 | # | 636 | # |
637 | # LED devices | ||
638 | # | ||
639 | # CONFIG_NEW_LEDS is not set | ||
640 | |||
641 | # | ||
642 | # LED drivers | ||
643 | # | ||
644 | |||
645 | # | ||
646 | # LED Triggers | ||
647 | # | ||
648 | |||
649 | # | ||
636 | # InfiniBand support | 650 | # InfiniBand support |
637 | # | 651 | # |
638 | 652 | ||
639 | # | 653 | # |
640 | # SN Devices | 654 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
655 | # | ||
656 | |||
657 | # | ||
658 | # Real Time Clock | ||
641 | # | 659 | # |
660 | # CONFIG_RTC_CLASS is not set | ||
642 | 661 | ||
643 | # | 662 | # |
644 | # File systems | 663 | # File systems |
@@ -686,7 +705,6 @@ CONFIG_SYSFS=y | |||
686 | CONFIG_TMPFS=y | 705 | CONFIG_TMPFS=y |
687 | # CONFIG_HUGETLB_PAGE is not set | 706 | # CONFIG_HUGETLB_PAGE is not set |
688 | CONFIG_RAMFS=y | 707 | CONFIG_RAMFS=y |
689 | CONFIG_RELAYFS_FS=m | ||
690 | # CONFIG_CONFIGFS_FS is not set | 708 | # CONFIG_CONFIGFS_FS is not set |
691 | 709 | ||
692 | # | 710 | # |
@@ -705,7 +723,6 @@ CONFIG_RELAYFS_FS=m | |||
705 | # CONFIG_QNX4FS_FS is not set | 723 | # CONFIG_QNX4FS_FS is not set |
706 | # CONFIG_SYSV_FS is not set | 724 | # CONFIG_SYSV_FS is not set |
707 | CONFIG_UFS_FS=y | 725 | CONFIG_UFS_FS=y |
708 | CONFIG_UFS_FS_WRITE=y | ||
709 | 726 | ||
710 | # | 727 | # |
711 | # Network File Systems | 728 | # Network File Systems |
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig index 8fbfc06a6a2a..0760f4318910 100644 --- a/arch/mips/configs/e55_defconfig +++ b/arch/mips/configs/e55_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:04 2006 | 4 | # Tue Apr 25 00:08:20 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -70,6 +70,8 @@ CONFIG_CASIO_E55=y | |||
70 | # CONFIG_VICTOR_MPC30X is not set | 70 | # CONFIG_VICTOR_MPC30X is not set |
71 | # CONFIG_ZAO_CAPCELLA is not set | 71 | # CONFIG_ZAO_CAPCELLA is not set |
72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
73 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
74 | CONFIG_GENERIC_HWEIGHT=y | ||
73 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 75 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
74 | CONFIG_DMA_NONCOHERENT=y | 76 | CONFIG_DMA_NONCOHERENT=y |
75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 77 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -88,7 +90,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
88 | # CONFIG_CPU_MIPS64_R2 is not set | 90 | # CONFIG_CPU_MIPS64_R2 is not set |
89 | # CONFIG_CPU_R3000 is not set | 91 | # CONFIG_CPU_R3000 is not set |
90 | # CONFIG_CPU_TX39XX is not set | 92 | # CONFIG_CPU_TX39XX is not set |
91 | # CONFIG_CPU_VR41XX is not set | 93 | CONFIG_CPU_VR41XX=y |
92 | # CONFIG_CPU_R4300 is not set | 94 | # CONFIG_CPU_R4300 is not set |
93 | # CONFIG_CPU_R4X00 is not set | 95 | # CONFIG_CPU_R4X00 is not set |
94 | # CONFIG_CPU_TX49XX is not set | 96 | # CONFIG_CPU_TX49XX is not set |
@@ -101,18 +103,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
101 | # CONFIG_CPU_RM7000 is not set | 103 | # CONFIG_CPU_RM7000 is not set |
102 | # CONFIG_CPU_RM9000 is not set | 104 | # CONFIG_CPU_RM9000 is not set |
103 | # CONFIG_CPU_SB1 is not set | 105 | # CONFIG_CPU_SB1 is not set |
106 | CONFIG_SYS_HAS_CPU_VR41XX=y | ||
107 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
108 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
109 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
104 | 110 | ||
105 | # | 111 | # |
106 | # Kernel type | 112 | # Kernel type |
107 | # | 113 | # |
108 | # CONFIG_32BIT is not set | 114 | CONFIG_32BIT=y |
109 | # CONFIG_64BIT is not set | 115 | # CONFIG_64BIT is not set |
110 | CONFIG_PAGE_SIZE_4KB=y | 116 | CONFIG_PAGE_SIZE_4KB=y |
111 | # CONFIG_PAGE_SIZE_8KB is not set | 117 | # CONFIG_PAGE_SIZE_8KB is not set |
112 | # CONFIG_PAGE_SIZE_16KB is not set | 118 | # CONFIG_PAGE_SIZE_16KB is not set |
113 | # CONFIG_PAGE_SIZE_64KB is not set | 119 | # CONFIG_PAGE_SIZE_64KB is not set |
114 | # CONFIG_MIPS_MT is not set | 120 | # CONFIG_MIPS_MT is not set |
115 | CONFIG_CPU_HAS_LLSC=y | ||
116 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
117 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
118 | CONFIG_GENERIC_IRQ_PROBE=y | 123 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -133,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
133 | # Code maturity level options | 138 | # Code maturity level options |
134 | # | 139 | # |
135 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
136 | CONFIG_CLEAN_COMPILE=y | ||
137 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
138 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
139 | 143 | ||
@@ -144,11 +148,10 @@ CONFIG_LOCALVERSION="" | |||
144 | CONFIG_LOCALVERSION_AUTO=y | 148 | CONFIG_LOCALVERSION_AUTO=y |
145 | CONFIG_SWAP=y | 149 | CONFIG_SWAP=y |
146 | CONFIG_SYSVIPC=y | 150 | CONFIG_SYSVIPC=y |
147 | # CONFIG_POSIX_MQUEUE is not set | ||
148 | # CONFIG_BSD_PROCESS_ACCT is not set | 151 | # CONFIG_BSD_PROCESS_ACCT is not set |
149 | CONFIG_SYSCTL=y | 152 | CONFIG_SYSCTL=y |
150 | # CONFIG_AUDIT is not set | ||
151 | # CONFIG_IKCONFIG is not set | 153 | # CONFIG_IKCONFIG is not set |
154 | # CONFIG_RELAY is not set | ||
152 | CONFIG_INITRAMFS_SOURCE="" | 155 | CONFIG_INITRAMFS_SOURCE="" |
153 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
154 | CONFIG_EMBEDDED=y | 157 | CONFIG_EMBEDDED=y |
@@ -162,10 +165,6 @@ CONFIG_BASE_FULL=y | |||
162 | CONFIG_FUTEX=y | 165 | CONFIG_FUTEX=y |
163 | CONFIG_EPOLL=y | 166 | CONFIG_EPOLL=y |
164 | CONFIG_SHMEM=y | 167 | CONFIG_SHMEM=y |
165 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
166 | CONFIG_CC_ALIGN_LABELS=0 | ||
167 | CONFIG_CC_ALIGN_LOOPS=0 | ||
168 | CONFIG_CC_ALIGN_JUMPS=0 | ||
169 | CONFIG_SLAB=y | 168 | CONFIG_SLAB=y |
170 | # CONFIG_TINY_SHMEM is not set | 169 | # CONFIG_TINY_SHMEM is not set |
171 | CONFIG_BASE_SMALL=0 | 170 | CONFIG_BASE_SMALL=0 |
@@ -177,7 +176,6 @@ CONFIG_BASE_SMALL=0 | |||
177 | CONFIG_MODULES=y | 176 | CONFIG_MODULES=y |
178 | CONFIG_MODULE_UNLOAD=y | 177 | CONFIG_MODULE_UNLOAD=y |
179 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 178 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
180 | CONFIG_OBSOLETE_MODPARM=y | ||
181 | CONFIG_MODVERSIONS=y | 179 | CONFIG_MODVERSIONS=y |
182 | CONFIG_MODULE_SRCVERSION_ALL=y | 180 | CONFIG_MODULE_SRCVERSION_ALL=y |
183 | CONFIG_KMOD=y | 181 | CONFIG_KMOD=y |
@@ -185,6 +183,9 @@ CONFIG_KMOD=y | |||
185 | # | 183 | # |
186 | # Block layer | 184 | # Block layer |
187 | # | 185 | # |
186 | # CONFIG_LBD is not set | ||
187 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
188 | # CONFIG_LSF is not set | ||
188 | 189 | ||
189 | # | 190 | # |
190 | # IO Schedulers | 191 | # IO Schedulers |
@@ -219,85 +220,12 @@ CONFIG_MMU=y | |||
219 | # | 220 | # |
220 | CONFIG_BINFMT_ELF=y | 221 | CONFIG_BINFMT_ELF=y |
221 | # CONFIG_BINFMT_MISC is not set | 222 | # CONFIG_BINFMT_MISC is not set |
223 | CONFIG_TRAD_SIGNALS=y | ||
222 | 224 | ||
223 | # | 225 | # |
224 | # Networking | 226 | # Networking |
225 | # | 227 | # |
226 | CONFIG_NET=y | 228 | # CONFIG_NET is not set |
227 | |||
228 | # | ||
229 | # Networking options | ||
230 | # | ||
231 | CONFIG_PACKET=y | ||
232 | CONFIG_PACKET_MMAP=y | ||
233 | CONFIG_UNIX=y | ||
234 | CONFIG_XFRM=y | ||
235 | CONFIG_XFRM_USER=m | ||
236 | CONFIG_NET_KEY=y | ||
237 | CONFIG_INET=y | ||
238 | CONFIG_IP_MULTICAST=y | ||
239 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
240 | CONFIG_IP_FIB_HASH=y | ||
241 | # CONFIG_IP_PNP is not set | ||
242 | # CONFIG_NET_IPIP is not set | ||
243 | # CONFIG_NET_IPGRE is not set | ||
244 | # CONFIG_IP_MROUTE is not set | ||
245 | # CONFIG_ARPD is not set | ||
246 | # CONFIG_SYN_COOKIES is not set | ||
247 | # CONFIG_INET_AH is not set | ||
248 | # CONFIG_INET_ESP is not set | ||
249 | # CONFIG_INET_IPCOMP is not set | ||
250 | CONFIG_INET_TUNNEL=m | ||
251 | CONFIG_INET_DIAG=y | ||
252 | CONFIG_INET_TCP_DIAG=y | ||
253 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
254 | CONFIG_TCP_CONG_BIC=y | ||
255 | # CONFIG_IPV6 is not set | ||
256 | # CONFIG_NETFILTER is not set | ||
257 | |||
258 | # | ||
259 | # DCCP Configuration (EXPERIMENTAL) | ||
260 | # | ||
261 | # CONFIG_IP_DCCP is not set | ||
262 | |||
263 | # | ||
264 | # SCTP Configuration (EXPERIMENTAL) | ||
265 | # | ||
266 | # CONFIG_IP_SCTP is not set | ||
267 | # CONFIG_ATM is not set | ||
268 | # CONFIG_BRIDGE is not set | ||
269 | # CONFIG_VLAN_8021Q is not set | ||
270 | # CONFIG_DECNET is not set | ||
271 | # CONFIG_LLC2 is not set | ||
272 | # CONFIG_IPX is not set | ||
273 | # CONFIG_ATALK is not set | ||
274 | # CONFIG_X25 is not set | ||
275 | # CONFIG_LAPB is not set | ||
276 | |||
277 | # | ||
278 | # TIPC Configuration (EXPERIMENTAL) | ||
279 | # | ||
280 | # CONFIG_TIPC is not set | ||
281 | # CONFIG_NET_DIVERT is not set | ||
282 | # CONFIG_ECONET is not set | ||
283 | # CONFIG_WAN_ROUTER is not set | ||
284 | |||
285 | # | ||
286 | # QoS and/or fair queueing | ||
287 | # | ||
288 | # CONFIG_NET_SCHED is not set | ||
289 | |||
290 | # | ||
291 | # Network testing | ||
292 | # | ||
293 | # CONFIG_NET_PKTGEN is not set | ||
294 | # CONFIG_HAMRADIO is not set | ||
295 | # CONFIG_IRDA is not set | ||
296 | # CONFIG_BT is not set | ||
297 | CONFIG_IEEE80211=m | ||
298 | # CONFIG_IEEE80211_DEBUG is not set | ||
299 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
300 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
301 | 229 | ||
302 | # | 230 | # |
303 | # Device Drivers | 231 | # Device Drivers |
@@ -313,7 +241,6 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
313 | # | 241 | # |
314 | # Connector - unified userspace <-> kernelspace linker | 242 | # Connector - unified userspace <-> kernelspace linker |
315 | # | 243 | # |
316 | CONFIG_CONNECTOR=m | ||
317 | 244 | ||
318 | # | 245 | # |
319 | # Memory Technology Devices (MTD) | 246 | # Memory Technology Devices (MTD) |
@@ -335,11 +262,11 @@ CONFIG_CONNECTOR=m | |||
335 | # | 262 | # |
336 | # CONFIG_BLK_DEV_COW_COMMON is not set | 263 | # CONFIG_BLK_DEV_COW_COMMON is not set |
337 | # CONFIG_BLK_DEV_LOOP is not set | 264 | # CONFIG_BLK_DEV_LOOP is not set |
338 | # CONFIG_BLK_DEV_NBD is not set | 265 | CONFIG_BLK_DEV_RAM=m |
339 | # CONFIG_BLK_DEV_RAM is not set | ||
340 | CONFIG_BLK_DEV_RAM_COUNT=16 | 266 | CONFIG_BLK_DEV_RAM_COUNT=16 |
267 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
268 | # CONFIG_BLK_DEV_INITRD is not set | ||
341 | # CONFIG_CDROM_PKTCDVD is not set | 269 | # CONFIG_CDROM_PKTCDVD is not set |
342 | # CONFIG_ATA_OVER_ETH is not set | ||
343 | 270 | ||
344 | # | 271 | # |
345 | # ATA/ATAPI/MFM/RLL support | 272 | # ATA/ATAPI/MFM/RLL support |
@@ -398,81 +325,8 @@ CONFIG_IDE_GENERIC=y | |||
398 | # | 325 | # |
399 | 326 | ||
400 | # | 327 | # |
401 | # Network device support | ||
402 | # | ||
403 | CONFIG_NETDEVICES=y | ||
404 | # CONFIG_DUMMY is not set | ||
405 | # CONFIG_BONDING is not set | ||
406 | # CONFIG_EQUALIZER is not set | ||
407 | # CONFIG_TUN is not set | ||
408 | |||
409 | # | ||
410 | # ARCnet devices | ||
411 | # | ||
412 | # CONFIG_ARCNET is not set | ||
413 | |||
414 | # | ||
415 | # PHY device support | ||
416 | # | ||
417 | CONFIG_PHYLIB=m | ||
418 | |||
419 | # | ||
420 | # MII PHY device drivers | ||
421 | # | ||
422 | CONFIG_MARVELL_PHY=m | ||
423 | CONFIG_DAVICOM_PHY=m | ||
424 | CONFIG_QSEMI_PHY=m | ||
425 | CONFIG_LXT_PHY=m | ||
426 | CONFIG_CICADA_PHY=m | ||
427 | |||
428 | # | ||
429 | # Ethernet (10 or 100Mbit) | ||
430 | # | ||
431 | CONFIG_NET_ETHERNET=y | ||
432 | # CONFIG_MII is not set | ||
433 | # CONFIG_NET_VENDOR_3COM is not set | ||
434 | # CONFIG_NET_VENDOR_SMC is not set | ||
435 | # CONFIG_DM9000 is not set | ||
436 | # CONFIG_NET_VENDOR_RACAL is not set | ||
437 | # CONFIG_AT1700 is not set | ||
438 | # CONFIG_DEPCA is not set | ||
439 | # CONFIG_HP100 is not set | ||
440 | # CONFIG_NET_ISA is not set | ||
441 | # CONFIG_NET_PCI is not set | ||
442 | |||
443 | # | ||
444 | # Ethernet (1000 Mbit) | ||
445 | # | ||
446 | |||
447 | # | ||
448 | # Ethernet (10000 Mbit) | ||
449 | # | ||
450 | |||
451 | # | ||
452 | # Token Ring devices | ||
453 | # | ||
454 | # CONFIG_TR is not set | ||
455 | |||
456 | # | ||
457 | # Wireless LAN (non-hamradio) | ||
458 | # | ||
459 | # CONFIG_NET_RADIO is not set | ||
460 | |||
461 | # | ||
462 | # Wan interfaces | ||
463 | # | ||
464 | # CONFIG_WAN is not set | ||
465 | # CONFIG_PPP is not set | ||
466 | # CONFIG_SLIP is not set | ||
467 | # CONFIG_SHAPER is not set | ||
468 | # CONFIG_NETCONSOLE is not set | ||
469 | # CONFIG_NETPOLL is not set | ||
470 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
471 | |||
472 | # | ||
473 | # ISDN subsystem | 328 | # ISDN subsystem |
474 | # | 329 | # |
475 | # CONFIG_ISDN is not set | ||
476 | 330 | ||
477 | # | 331 | # |
478 | # Telephony Support | 332 | # Telephony Support |
@@ -508,11 +362,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 | |||
508 | # | 362 | # |
509 | # Hardware I/O ports | 363 | # Hardware I/O ports |
510 | # | 364 | # |
511 | CONFIG_SERIO=y | 365 | # CONFIG_SERIO is not set |
512 | # CONFIG_SERIO_I8042 is not set | ||
513 | CONFIG_SERIO_SERPORT=y | ||
514 | # CONFIG_SERIO_LIBPS2 is not set | ||
515 | CONFIG_SERIO_RAW=m | ||
516 | # CONFIG_GAMEPORT is not set | 366 | # CONFIG_GAMEPORT is not set |
517 | 367 | ||
518 | # | 368 | # |
@@ -531,6 +381,10 @@ CONFIG_HW_CONSOLE=y | |||
531 | # | 381 | # |
532 | # Non-8250 serial port support | 382 | # Non-8250 serial port support |
533 | # | 383 | # |
384 | CONFIG_SERIAL_CORE=y | ||
385 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
386 | CONFIG_SERIAL_VR41XX=y | ||
387 | CONFIG_SERIAL_VR41XX_CONSOLE=y | ||
534 | CONFIG_UNIX98_PTYS=y | 388 | CONFIG_UNIX98_PTYS=y |
535 | CONFIG_LEGACY_PTYS=y | 389 | CONFIG_LEGACY_PTYS=y |
536 | CONFIG_LEGACY_PTY_COUNT=256 | 390 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -565,6 +419,7 @@ CONFIG_WATCHDOG=y | |||
565 | # | 419 | # |
566 | # Ftape, the floppy tape device driver | 420 | # Ftape, the floppy tape device driver |
567 | # | 421 | # |
422 | CONFIG_GPIO_VR41XX=y | ||
568 | # CONFIG_RAW_DRIVER is not set | 423 | # CONFIG_RAW_DRIVER is not set |
569 | 424 | ||
570 | # | 425 | # |
@@ -600,10 +455,6 @@ CONFIG_WATCHDOG=y | |||
600 | # | 455 | # |
601 | 456 | ||
602 | # | 457 | # |
603 | # Multimedia Capabilities Port drivers | ||
604 | # | ||
605 | |||
606 | # | ||
607 | # Multimedia devices | 458 | # Multimedia devices |
608 | # | 459 | # |
609 | # CONFIG_VIDEO_DEV is not set | 460 | # CONFIG_VIDEO_DEV is not set |
@@ -611,7 +462,6 @@ CONFIG_WATCHDOG=y | |||
611 | # | 462 | # |
612 | # Digital Video Broadcasting Devices | 463 | # Digital Video Broadcasting Devices |
613 | # | 464 | # |
614 | # CONFIG_DVB is not set | ||
615 | 465 | ||
616 | # | 466 | # |
617 | # Graphics support | 467 | # Graphics support |
@@ -635,6 +485,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
635 | # | 485 | # |
636 | # CONFIG_USB_ARCH_HAS_HCD is not set | 486 | # CONFIG_USB_ARCH_HAS_HCD is not set |
637 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 487 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
488 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
638 | 489 | ||
639 | # | 490 | # |
640 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 491 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -651,12 +502,30 @@ CONFIG_DUMMY_CONSOLE=y | |||
651 | # CONFIG_MMC is not set | 502 | # CONFIG_MMC is not set |
652 | 503 | ||
653 | # | 504 | # |
505 | # LED devices | ||
506 | # | ||
507 | # CONFIG_NEW_LEDS is not set | ||
508 | |||
509 | # | ||
510 | # LED drivers | ||
511 | # | ||
512 | |||
513 | # | ||
514 | # LED Triggers | ||
515 | # | ||
516 | |||
517 | # | ||
654 | # InfiniBand support | 518 | # InfiniBand support |
655 | # | 519 | # |
656 | 520 | ||
657 | # | 521 | # |
658 | # SN Devices | 522 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
523 | # | ||
524 | |||
525 | # | ||
526 | # Real Time Clock | ||
659 | # | 527 | # |
528 | # CONFIG_RTC_CLASS is not set | ||
660 | 529 | ||
661 | # | 530 | # |
662 | # File systems | 531 | # File systems |
@@ -669,13 +538,12 @@ CONFIG_EXT2_FS=y | |||
669 | # CONFIG_JFS_FS is not set | 538 | # CONFIG_JFS_FS is not set |
670 | # CONFIG_FS_POSIX_ACL is not set | 539 | # CONFIG_FS_POSIX_ACL is not set |
671 | # CONFIG_XFS_FS is not set | 540 | # CONFIG_XFS_FS is not set |
672 | # CONFIG_OCFS2_FS is not set | ||
673 | # CONFIG_MINIX_FS is not set | 541 | # CONFIG_MINIX_FS is not set |
674 | # CONFIG_ROMFS_FS is not set | 542 | # CONFIG_ROMFS_FS is not set |
675 | CONFIG_INOTIFY=y | 543 | CONFIG_INOTIFY=y |
676 | # CONFIG_QUOTA is not set | 544 | # CONFIG_QUOTA is not set |
677 | CONFIG_DNOTIFY=y | 545 | CONFIG_DNOTIFY=y |
678 | CONFIG_AUTOFS_FS=y | 546 | # CONFIG_AUTOFS_FS is not set |
679 | CONFIG_AUTOFS4_FS=y | 547 | CONFIG_AUTOFS4_FS=y |
680 | CONFIG_FUSE_FS=m | 548 | CONFIG_FUSE_FS=m |
681 | 549 | ||
@@ -698,10 +566,9 @@ CONFIG_FUSE_FS=m | |||
698 | CONFIG_PROC_FS=y | 566 | CONFIG_PROC_FS=y |
699 | CONFIG_PROC_KCORE=y | 567 | CONFIG_PROC_KCORE=y |
700 | CONFIG_SYSFS=y | 568 | CONFIG_SYSFS=y |
701 | # CONFIG_TMPFS is not set | 569 | CONFIG_TMPFS=y |
702 | # CONFIG_HUGETLB_PAGE is not set | 570 | # CONFIG_HUGETLB_PAGE is not set |
703 | CONFIG_RAMFS=y | 571 | CONFIG_RAMFS=y |
704 | CONFIG_RELAYFS_FS=m | ||
705 | # CONFIG_CONFIGFS_FS is not set | 572 | # CONFIG_CONFIGFS_FS is not set |
706 | 573 | ||
707 | # | 574 | # |
@@ -722,29 +589,6 @@ CONFIG_RELAYFS_FS=m | |||
722 | # CONFIG_UFS_FS is not set | 589 | # CONFIG_UFS_FS is not set |
723 | 590 | ||
724 | # | 591 | # |
725 | # Network File Systems | ||
726 | # | ||
727 | CONFIG_NFS_FS=m | ||
728 | # CONFIG_NFS_V3 is not set | ||
729 | # CONFIG_NFS_V4 is not set | ||
730 | # CONFIG_NFS_DIRECTIO is not set | ||
731 | CONFIG_NFSD=m | ||
732 | # CONFIG_NFSD_V3 is not set | ||
733 | # CONFIG_NFSD_TCP is not set | ||
734 | CONFIG_LOCKD=m | ||
735 | CONFIG_EXPORTFS=m | ||
736 | CONFIG_NFS_COMMON=y | ||
737 | CONFIG_SUNRPC=m | ||
738 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
739 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
740 | # CONFIG_SMB_FS is not set | ||
741 | # CONFIG_CIFS is not set | ||
742 | # CONFIG_NCP_FS is not set | ||
743 | # CONFIG_CODA_FS is not set | ||
744 | # CONFIG_AFS_FS is not set | ||
745 | # CONFIG_9P_FS is not set | ||
746 | |||
747 | # | ||
748 | # Partition Types | 592 | # Partition Types |
749 | # | 593 | # |
750 | # CONFIG_PARTITION_ADVANCED is not set | 594 | # CONFIG_PARTITION_ADVANCED is not set |
@@ -767,44 +611,20 @@ CONFIG_MSDOS_PARTITION=y | |||
767 | # CONFIG_MAGIC_SYSRQ is not set | 611 | # CONFIG_MAGIC_SYSRQ is not set |
768 | # CONFIG_DEBUG_KERNEL is not set | 612 | # CONFIG_DEBUG_KERNEL is not set |
769 | CONFIG_LOG_BUF_SHIFT=14 | 613 | CONFIG_LOG_BUF_SHIFT=14 |
614 | # CONFIG_DEBUG_FS is not set | ||
770 | CONFIG_CROSSCOMPILE=y | 615 | CONFIG_CROSSCOMPILE=y |
771 | CONFIG_CMDLINE="console=ttyVR0,19200 mem=8M" | 616 | CONFIG_CMDLINE="console=ttyVR0,19200 mem=8M" |
772 | 617 | ||
773 | # | 618 | # |
774 | # Security options | 619 | # Security options |
775 | # | 620 | # |
776 | CONFIG_KEYS=y | 621 | # CONFIG_KEYS is not set |
777 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
778 | # CONFIG_SECURITY is not set | 622 | # CONFIG_SECURITY is not set |
779 | 623 | ||
780 | # | 624 | # |
781 | # Cryptographic options | 625 | # Cryptographic options |
782 | # | 626 | # |
783 | CONFIG_CRYPTO=y | 627 | # CONFIG_CRYPTO is not set |
784 | CONFIG_CRYPTO_HMAC=y | ||
785 | CONFIG_CRYPTO_NULL=m | ||
786 | CONFIG_CRYPTO_MD4=m | ||
787 | CONFIG_CRYPTO_MD5=m | ||
788 | CONFIG_CRYPTO_SHA1=m | ||
789 | CONFIG_CRYPTO_SHA256=m | ||
790 | CONFIG_CRYPTO_SHA512=m | ||
791 | CONFIG_CRYPTO_WP512=m | ||
792 | CONFIG_CRYPTO_TGR192=m | ||
793 | CONFIG_CRYPTO_DES=m | ||
794 | CONFIG_CRYPTO_BLOWFISH=m | ||
795 | CONFIG_CRYPTO_TWOFISH=m | ||
796 | CONFIG_CRYPTO_SERPENT=m | ||
797 | CONFIG_CRYPTO_AES=m | ||
798 | CONFIG_CRYPTO_CAST5=m | ||
799 | CONFIG_CRYPTO_CAST6=m | ||
800 | CONFIG_CRYPTO_TEA=m | ||
801 | CONFIG_CRYPTO_ARC4=m | ||
802 | CONFIG_CRYPTO_KHAZAD=m | ||
803 | CONFIG_CRYPTO_ANUBIS=m | ||
804 | CONFIG_CRYPTO_DEFLATE=m | ||
805 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
806 | CONFIG_CRYPTO_CRC32C=m | ||
807 | # CONFIG_CRYPTO_TEST is not set | ||
808 | 628 | ||
809 | # | 629 | # |
810 | # Hardware crypto devices | 630 | # Hardware crypto devices |
@@ -814,8 +634,6 @@ CONFIG_CRYPTO_CRC32C=m | |||
814 | # Library routines | 634 | # Library routines |
815 | # | 635 | # |
816 | # CONFIG_CRC_CCITT is not set | 636 | # CONFIG_CRC_CCITT is not set |
817 | CONFIG_CRC16=m | 637 | # CONFIG_CRC16 is not set |
818 | CONFIG_CRC32=m | 638 | # CONFIG_CRC32 is not set |
819 | CONFIG_LIBCRC32C=m | 639 | # CONFIG_LIBCRC32C is not set |
820 | CONFIG_ZLIB_INFLATE=m | ||
821 | CONFIG_ZLIB_DEFLATE=m | ||
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig index f2d43be69007..7067f608b22c 100644 --- a/arch/mips/configs/ev64120_defconfig +++ b/arch/mips/configs/ev64120_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:05 2006 | 4 | # Mon Apr 24 14:51:02 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -65,6 +65,8 @@ CONFIG_MIPS_EV64120=y | |||
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | # CONFIG_EVB_PCI1 is not set | 66 | # CONFIG_EVB_PCI1 is not set |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
70 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -116,7 +118,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
116 | # CONFIG_PAGE_SIZE_64KB is not set | 118 | # CONFIG_PAGE_SIZE_64KB is not set |
117 | # CONFIG_MIPS_MT is not set | 119 | # CONFIG_MIPS_MT is not set |
118 | # CONFIG_64BIT_PHYS_ADDR is not set | 120 | # CONFIG_64BIT_PHYS_ADDR is not set |
119 | # CONFIG_CPU_ADVANCED is not set | ||
120 | CONFIG_CPU_HAS_LLSC=y | 121 | CONFIG_CPU_HAS_LLSC=y |
121 | CONFIG_CPU_HAS_SYNC=y | 122 | CONFIG_CPU_HAS_SYNC=y |
122 | CONFIG_GENERIC_HARDIRQS=y | 123 | CONFIG_GENERIC_HARDIRQS=y |
@@ -138,7 +139,6 @@ CONFIG_PREEMPT_NONE=y | |||
138 | # Code maturity level options | 139 | # Code maturity level options |
139 | # | 140 | # |
140 | CONFIG_EXPERIMENTAL=y | 141 | CONFIG_EXPERIMENTAL=y |
141 | CONFIG_CLEAN_COMPILE=y | ||
142 | CONFIG_BROKEN_ON_SMP=y | 142 | CONFIG_BROKEN_ON_SMP=y |
143 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 143 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
144 | 144 | ||
@@ -154,6 +154,7 @@ CONFIG_SYSVIPC=y | |||
154 | CONFIG_SYSCTL=y | 154 | CONFIG_SYSCTL=y |
155 | # CONFIG_AUDIT is not set | 155 | # CONFIG_AUDIT is not set |
156 | # CONFIG_IKCONFIG is not set | 156 | # CONFIG_IKCONFIG is not set |
157 | CONFIG_RELAY=y | ||
157 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
159 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -167,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -182,7 +179,6 @@ CONFIG_BASE_SMALL=0 | |||
182 | CONFIG_MODULES=y | 179 | CONFIG_MODULES=y |
183 | CONFIG_MODULE_UNLOAD=y | 180 | CONFIG_MODULE_UNLOAD=y |
184 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 181 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
185 | CONFIG_OBSOLETE_MODPARM=y | ||
186 | CONFIG_MODVERSIONS=y | 182 | CONFIG_MODVERSIONS=y |
187 | CONFIG_MODULE_SRCVERSION_ALL=y | 183 | CONFIG_MODULE_SRCVERSION_ALL=y |
188 | # CONFIG_KMOD is not set | 184 | # CONFIG_KMOD is not set |
@@ -191,6 +187,8 @@ CONFIG_MODULE_SRCVERSION_ALL=y | |||
191 | # Block layer | 187 | # Block layer |
192 | # | 188 | # |
193 | # CONFIG_LBD is not set | 189 | # CONFIG_LBD is not set |
190 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
191 | # CONFIG_LSF is not set | ||
194 | 192 | ||
195 | # | 193 | # |
196 | # IO Schedulers | 194 | # IO Schedulers |
@@ -210,7 +208,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
210 | # | 208 | # |
211 | CONFIG_HW_HAS_PCI=y | 209 | CONFIG_HW_HAS_PCI=y |
212 | CONFIG_PCI=y | 210 | CONFIG_PCI=y |
213 | CONFIG_PCI_LEGACY_PROC=y | ||
214 | CONFIG_MMU=y | 211 | CONFIG_MMU=y |
215 | 212 | ||
216 | # | 213 | # |
@@ -238,6 +235,7 @@ CONFIG_NET=y | |||
238 | # | 235 | # |
239 | # Networking options | 236 | # Networking options |
240 | # | 237 | # |
238 | # CONFIG_NETDEBUG is not set | ||
241 | # CONFIG_PACKET is not set | 239 | # CONFIG_PACKET is not set |
242 | CONFIG_UNIX=y | 240 | CONFIG_UNIX=y |
243 | CONFIG_XFRM=y | 241 | CONFIG_XFRM=y |
@@ -258,12 +256,15 @@ CONFIG_IP_PNP=y | |||
258 | # CONFIG_INET_AH is not set | 256 | # CONFIG_INET_AH is not set |
259 | # CONFIG_INET_ESP is not set | 257 | # CONFIG_INET_ESP is not set |
260 | # CONFIG_INET_IPCOMP is not set | 258 | # CONFIG_INET_IPCOMP is not set |
261 | CONFIG_INET_TUNNEL=m | 259 | # CONFIG_INET_XFRM_TUNNEL is not set |
260 | # CONFIG_INET_TUNNEL is not set | ||
262 | CONFIG_INET_DIAG=y | 261 | CONFIG_INET_DIAG=y |
263 | CONFIG_INET_TCP_DIAG=y | 262 | CONFIG_INET_TCP_DIAG=y |
264 | # CONFIG_TCP_CONG_ADVANCED is not set | 263 | # CONFIG_TCP_CONG_ADVANCED is not set |
265 | CONFIG_TCP_CONG_BIC=y | 264 | CONFIG_TCP_CONG_BIC=y |
266 | # CONFIG_IPV6 is not set | 265 | # CONFIG_IPV6 is not set |
266 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
267 | # CONFIG_INET6_TUNNEL is not set | ||
267 | # CONFIG_NETFILTER is not set | 268 | # CONFIG_NETFILTER is not set |
268 | 269 | ||
269 | # | 270 | # |
@@ -275,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y | |||
275 | # SCTP Configuration (EXPERIMENTAL) | 276 | # SCTP Configuration (EXPERIMENTAL) |
276 | # | 277 | # |
277 | # CONFIG_IP_SCTP is not set | 278 | # CONFIG_IP_SCTP is not set |
279 | |||
280 | # | ||
281 | # TIPC Configuration (EXPERIMENTAL) | ||
282 | # | ||
283 | # CONFIG_TIPC is not set | ||
278 | # CONFIG_ATM is not set | 284 | # CONFIG_ATM is not set |
279 | # CONFIG_BRIDGE is not set | 285 | # CONFIG_BRIDGE is not set |
280 | # CONFIG_VLAN_8021Q is not set | 286 | # CONFIG_VLAN_8021Q is not set |
@@ -284,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y | |||
284 | # CONFIG_ATALK is not set | 290 | # CONFIG_ATALK is not set |
285 | # CONFIG_X25 is not set | 291 | # CONFIG_X25 is not set |
286 | # CONFIG_LAPB is not set | 292 | # CONFIG_LAPB is not set |
287 | |||
288 | # | ||
289 | # TIPC Configuration (EXPERIMENTAL) | ||
290 | # | ||
291 | # CONFIG_TIPC is not set | ||
292 | # CONFIG_NET_DIVERT is not set | 293 | # CONFIG_NET_DIVERT is not set |
293 | # CONFIG_ECONET is not set | 294 | # CONFIG_ECONET is not set |
294 | # CONFIG_WAN_ROUTER is not set | 295 | # CONFIG_WAN_ROUTER is not set |
@@ -309,6 +310,9 @@ CONFIG_IEEE80211=m | |||
309 | # CONFIG_IEEE80211_DEBUG is not set | 310 | # CONFIG_IEEE80211_DEBUG is not set |
310 | CONFIG_IEEE80211_CRYPT_WEP=m | 311 | CONFIG_IEEE80211_CRYPT_WEP=m |
311 | CONFIG_IEEE80211_CRYPT_CCMP=m | 312 | CONFIG_IEEE80211_CRYPT_CCMP=m |
313 | CONFIG_IEEE80211_SOFTMAC=m | ||
314 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
315 | CONFIG_WIRELESS_EXT=y | ||
312 | 316 | ||
313 | # | 317 | # |
314 | # Device Drivers | 318 | # Device Drivers |
@@ -352,7 +356,7 @@ CONFIG_CONNECTOR=m | |||
352 | # CONFIG_BLK_DEV_NBD is not set | 356 | # CONFIG_BLK_DEV_NBD is not set |
353 | # CONFIG_BLK_DEV_SX8 is not set | 357 | # CONFIG_BLK_DEV_SX8 is not set |
354 | # CONFIG_BLK_DEV_RAM is not set | 358 | # CONFIG_BLK_DEV_RAM is not set |
355 | CONFIG_BLK_DEV_RAM_COUNT=16 | 359 | # CONFIG_BLK_DEV_INITRD is not set |
356 | CONFIG_CDROM_PKTCDVD=m | 360 | CONFIG_CDROM_PKTCDVD=m |
357 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 361 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
358 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 362 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -550,6 +554,7 @@ CONFIG_HW_CONSOLE=y | |||
550 | # | 554 | # |
551 | CONFIG_SERIAL_8250=y | 555 | CONFIG_SERIAL_8250=y |
552 | CONFIG_SERIAL_8250_CONSOLE=y | 556 | CONFIG_SERIAL_8250_CONSOLE=y |
557 | CONFIG_SERIAL_8250_PCI=y | ||
553 | CONFIG_SERIAL_8250_NR_UARTS=4 | 558 | CONFIG_SERIAL_8250_NR_UARTS=4 |
554 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 559 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
555 | # CONFIG_SERIAL_8250_EXTENDED is not set | 560 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -559,6 +564,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
559 | # | 564 | # |
560 | CONFIG_SERIAL_CORE=y | 565 | CONFIG_SERIAL_CORE=y |
561 | CONFIG_SERIAL_CORE_CONSOLE=y | 566 | CONFIG_SERIAL_CORE_CONSOLE=y |
567 | # CONFIG_SERIAL_JSM is not set | ||
562 | CONFIG_UNIX98_PTYS=y | 568 | CONFIG_UNIX98_PTYS=y |
563 | CONFIG_LEGACY_PTYS=y | 569 | CONFIG_LEGACY_PTYS=y |
564 | CONFIG_LEGACY_PTY_COUNT=256 | 570 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -617,10 +623,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
617 | # | 623 | # |
618 | 624 | ||
619 | # | 625 | # |
620 | # Multimedia Capabilities Port drivers | ||
621 | # | ||
622 | |||
623 | # | ||
624 | # Multimedia devices | 626 | # Multimedia devices |
625 | # | 627 | # |
626 | # CONFIG_VIDEO_DEV is not set | 628 | # CONFIG_VIDEO_DEV is not set |
@@ -651,6 +653,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
651 | # | 653 | # |
652 | CONFIG_USB_ARCH_HAS_HCD=y | 654 | CONFIG_USB_ARCH_HAS_HCD=y |
653 | CONFIG_USB_ARCH_HAS_OHCI=y | 655 | CONFIG_USB_ARCH_HAS_OHCI=y |
656 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
654 | # CONFIG_USB is not set | 657 | # CONFIG_USB is not set |
655 | 658 | ||
656 | # | 659 | # |
@@ -668,13 +671,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
668 | # CONFIG_MMC is not set | 671 | # CONFIG_MMC is not set |
669 | 672 | ||
670 | # | 673 | # |
674 | # LED devices | ||
675 | # | ||
676 | # CONFIG_NEW_LEDS is not set | ||
677 | |||
678 | # | ||
679 | # LED drivers | ||
680 | # | ||
681 | |||
682 | # | ||
683 | # LED Triggers | ||
684 | # | ||
685 | |||
686 | # | ||
671 | # InfiniBand support | 687 | # InfiniBand support |
672 | # | 688 | # |
673 | # CONFIG_INFINIBAND is not set | 689 | # CONFIG_INFINIBAND is not set |
674 | 690 | ||
675 | # | 691 | # |
676 | # SN Devices | 692 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
693 | # | ||
694 | |||
695 | # | ||
696 | # Real Time Clock | ||
677 | # | 697 | # |
698 | # CONFIG_RTC_CLASS is not set | ||
678 | 699 | ||
679 | # | 700 | # |
680 | # File systems | 701 | # File systems |
@@ -719,7 +740,6 @@ CONFIG_SYSFS=y | |||
719 | # CONFIG_TMPFS is not set | 740 | # CONFIG_TMPFS is not set |
720 | # CONFIG_HUGETLB_PAGE is not set | 741 | # CONFIG_HUGETLB_PAGE is not set |
721 | CONFIG_RAMFS=y | 742 | CONFIG_RAMFS=y |
722 | CONFIG_RELAYFS_FS=m | ||
723 | # CONFIG_CONFIGFS_FS is not set | 743 | # CONFIG_CONFIGFS_FS is not set |
724 | 744 | ||
725 | # | 745 | # |
@@ -783,6 +803,7 @@ CONFIG_MSDOS_PARTITION=y | |||
783 | # CONFIG_MAGIC_SYSRQ is not set | 803 | # CONFIG_MAGIC_SYSRQ is not set |
784 | # CONFIG_DEBUG_KERNEL is not set | 804 | # CONFIG_DEBUG_KERNEL is not set |
785 | CONFIG_LOG_BUF_SHIFT=14 | 805 | CONFIG_LOG_BUF_SHIFT=14 |
806 | # CONFIG_DEBUG_FS is not set | ||
786 | CONFIG_CROSSCOMPILE=y | 807 | CONFIG_CROSSCOMPILE=y |
787 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/disk2/fs.gal ip=192.168.1.211:192.168.1.1:::gt::" | 808 | CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/disk2/fs.gal ip=192.168.1.211:192.168.1.1:::gt::" |
788 | 809 | ||
diff --git a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig index ac5841c4b698..00b56ed0e638 100644 --- a/arch/mips/configs/ev96100_defconfig +++ b/arch/mips/configs/ev96100_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:06 2006 | 4 | # Mon Apr 24 14:51:03 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_EV96100=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -119,7 +121,6 @@ CONFIG_RM7000_CPU_SCACHE=y | |||
119 | CONFIG_CPU_HAS_PREFETCH=y | 121 | CONFIG_CPU_HAS_PREFETCH=y |
120 | # CONFIG_MIPS_MT is not set | 122 | # CONFIG_MIPS_MT is not set |
121 | # CONFIG_64BIT_PHYS_ADDR is not set | 123 | # CONFIG_64BIT_PHYS_ADDR is not set |
122 | # CONFIG_CPU_ADVANCED is not set | ||
123 | CONFIG_CPU_HAS_LLSC=y | 124 | CONFIG_CPU_HAS_LLSC=y |
124 | CONFIG_CPU_HAS_SYNC=y | 125 | CONFIG_CPU_HAS_SYNC=y |
125 | CONFIG_GENERIC_HARDIRQS=y | 126 | CONFIG_GENERIC_HARDIRQS=y |
@@ -142,7 +143,6 @@ CONFIG_PREEMPT_NONE=y | |||
142 | # Code maturity level options | 143 | # Code maturity level options |
143 | # | 144 | # |
144 | CONFIG_EXPERIMENTAL=y | 145 | CONFIG_EXPERIMENTAL=y |
145 | CONFIG_CLEAN_COMPILE=y | ||
146 | CONFIG_BROKEN_ON_SMP=y | 146 | CONFIG_BROKEN_ON_SMP=y |
147 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 147 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
148 | 148 | ||
@@ -158,6 +158,7 @@ CONFIG_SYSVIPC=y | |||
158 | CONFIG_SYSCTL=y | 158 | CONFIG_SYSCTL=y |
159 | # CONFIG_AUDIT is not set | 159 | # CONFIG_AUDIT is not set |
160 | # CONFIG_IKCONFIG is not set | 160 | # CONFIG_IKCONFIG is not set |
161 | CONFIG_RELAY=y | ||
161 | CONFIG_INITRAMFS_SOURCE="" | 162 | CONFIG_INITRAMFS_SOURCE="" |
162 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 163 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
163 | CONFIG_EMBEDDED=y | 164 | CONFIG_EMBEDDED=y |
@@ -171,10 +172,6 @@ CONFIG_BASE_FULL=y | |||
171 | CONFIG_FUTEX=y | 172 | CONFIG_FUTEX=y |
172 | CONFIG_EPOLL=y | 173 | CONFIG_EPOLL=y |
173 | CONFIG_SHMEM=y | 174 | CONFIG_SHMEM=y |
174 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
175 | CONFIG_CC_ALIGN_LABELS=0 | ||
176 | CONFIG_CC_ALIGN_LOOPS=0 | ||
177 | CONFIG_CC_ALIGN_JUMPS=0 | ||
178 | CONFIG_SLAB=y | 175 | CONFIG_SLAB=y |
179 | # CONFIG_TINY_SHMEM is not set | 176 | # CONFIG_TINY_SHMEM is not set |
180 | CONFIG_BASE_SMALL=0 | 177 | CONFIG_BASE_SMALL=0 |
@@ -186,7 +183,6 @@ CONFIG_BASE_SMALL=0 | |||
186 | CONFIG_MODULES=y | 183 | CONFIG_MODULES=y |
187 | CONFIG_MODULE_UNLOAD=y | 184 | CONFIG_MODULE_UNLOAD=y |
188 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 185 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
189 | CONFIG_OBSOLETE_MODPARM=y | ||
190 | CONFIG_MODVERSIONS=y | 186 | CONFIG_MODVERSIONS=y |
191 | CONFIG_MODULE_SRCVERSION_ALL=y | 187 | CONFIG_MODULE_SRCVERSION_ALL=y |
192 | # CONFIG_KMOD is not set | 188 | # CONFIG_KMOD is not set |
@@ -195,6 +191,8 @@ CONFIG_MODULE_SRCVERSION_ALL=y | |||
195 | # Block layer | 191 | # Block layer |
196 | # | 192 | # |
197 | # CONFIG_LBD is not set | 193 | # CONFIG_LBD is not set |
194 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
195 | # CONFIG_LSF is not set | ||
198 | 196 | ||
199 | # | 197 | # |
200 | # IO Schedulers | 198 | # IO Schedulers |
@@ -240,6 +238,7 @@ CONFIG_NET=y | |||
240 | # | 238 | # |
241 | # Networking options | 239 | # Networking options |
242 | # | 240 | # |
241 | # CONFIG_NETDEBUG is not set | ||
243 | # CONFIG_PACKET is not set | 242 | # CONFIG_PACKET is not set |
244 | CONFIG_UNIX=y | 243 | CONFIG_UNIX=y |
245 | CONFIG_XFRM=y | 244 | CONFIG_XFRM=y |
@@ -260,12 +259,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
260 | # CONFIG_INET_AH is not set | 259 | # CONFIG_INET_AH is not set |
261 | # CONFIG_INET_ESP is not set | 260 | # CONFIG_INET_ESP is not set |
262 | # CONFIG_INET_IPCOMP is not set | 261 | # CONFIG_INET_IPCOMP is not set |
263 | CONFIG_INET_TUNNEL=m | 262 | # CONFIG_INET_XFRM_TUNNEL is not set |
263 | # CONFIG_INET_TUNNEL is not set | ||
264 | CONFIG_INET_DIAG=y | 264 | CONFIG_INET_DIAG=y |
265 | CONFIG_INET_TCP_DIAG=y | 265 | CONFIG_INET_TCP_DIAG=y |
266 | # CONFIG_TCP_CONG_ADVANCED is not set | 266 | # CONFIG_TCP_CONG_ADVANCED is not set |
267 | CONFIG_TCP_CONG_BIC=y | 267 | CONFIG_TCP_CONG_BIC=y |
268 | # CONFIG_IPV6 is not set | 268 | # CONFIG_IPV6 is not set |
269 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
270 | # CONFIG_INET6_TUNNEL is not set | ||
269 | # CONFIG_NETFILTER is not set | 271 | # CONFIG_NETFILTER is not set |
270 | 272 | ||
271 | # | 273 | # |
@@ -277,6 +279,11 @@ CONFIG_TCP_CONG_BIC=y | |||
277 | # SCTP Configuration (EXPERIMENTAL) | 279 | # SCTP Configuration (EXPERIMENTAL) |
278 | # | 280 | # |
279 | # CONFIG_IP_SCTP is not set | 281 | # CONFIG_IP_SCTP is not set |
282 | |||
283 | # | ||
284 | # TIPC Configuration (EXPERIMENTAL) | ||
285 | # | ||
286 | # CONFIG_TIPC is not set | ||
280 | # CONFIG_ATM is not set | 287 | # CONFIG_ATM is not set |
281 | # CONFIG_BRIDGE is not set | 288 | # CONFIG_BRIDGE is not set |
282 | # CONFIG_VLAN_8021Q is not set | 289 | # CONFIG_VLAN_8021Q is not set |
@@ -286,11 +293,6 @@ CONFIG_TCP_CONG_BIC=y | |||
286 | # CONFIG_ATALK is not set | 293 | # CONFIG_ATALK is not set |
287 | # CONFIG_X25 is not set | 294 | # CONFIG_X25 is not set |
288 | # CONFIG_LAPB is not set | 295 | # CONFIG_LAPB is not set |
289 | |||
290 | # | ||
291 | # TIPC Configuration (EXPERIMENTAL) | ||
292 | # | ||
293 | # CONFIG_TIPC is not set | ||
294 | # CONFIG_NET_DIVERT is not set | 296 | # CONFIG_NET_DIVERT is not set |
295 | # CONFIG_ECONET is not set | 297 | # CONFIG_ECONET is not set |
296 | # CONFIG_WAN_ROUTER is not set | 298 | # CONFIG_WAN_ROUTER is not set |
@@ -311,6 +313,9 @@ CONFIG_IEEE80211=m | |||
311 | # CONFIG_IEEE80211_DEBUG is not set | 313 | # CONFIG_IEEE80211_DEBUG is not set |
312 | CONFIG_IEEE80211_CRYPT_WEP=m | 314 | CONFIG_IEEE80211_CRYPT_WEP=m |
313 | CONFIG_IEEE80211_CRYPT_CCMP=m | 315 | CONFIG_IEEE80211_CRYPT_CCMP=m |
316 | CONFIG_IEEE80211_SOFTMAC=m | ||
317 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
318 | CONFIG_WIRELESS_EXT=y | ||
314 | 319 | ||
315 | # | 320 | # |
316 | # Device Drivers | 321 | # Device Drivers |
@@ -349,7 +354,7 @@ CONFIG_CONNECTOR=m | |||
349 | # CONFIG_BLK_DEV_LOOP is not set | 354 | # CONFIG_BLK_DEV_LOOP is not set |
350 | # CONFIG_BLK_DEV_NBD is not set | 355 | # CONFIG_BLK_DEV_NBD is not set |
351 | # CONFIG_BLK_DEV_RAM is not set | 356 | # CONFIG_BLK_DEV_RAM is not set |
352 | CONFIG_BLK_DEV_RAM_COUNT=16 | 357 | # CONFIG_BLK_DEV_INITRD is not set |
353 | CONFIG_CDROM_PKTCDVD=m | 358 | CONFIG_CDROM_PKTCDVD=m |
354 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 359 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
355 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 360 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -567,10 +572,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
567 | # | 572 | # |
568 | 573 | ||
569 | # | 574 | # |
570 | # Multimedia Capabilities Port drivers | ||
571 | # | ||
572 | |||
573 | # | ||
574 | # Multimedia devices | 575 | # Multimedia devices |
575 | # | 576 | # |
576 | # CONFIG_VIDEO_DEV is not set | 577 | # CONFIG_VIDEO_DEV is not set |
@@ -601,6 +602,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
601 | # | 602 | # |
602 | # CONFIG_USB_ARCH_HAS_HCD is not set | 603 | # CONFIG_USB_ARCH_HAS_HCD is not set |
603 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 604 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
605 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
604 | 606 | ||
605 | # | 607 | # |
606 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 608 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -617,12 +619,30 @@ CONFIG_DUMMY_CONSOLE=y | |||
617 | # CONFIG_MMC is not set | 619 | # CONFIG_MMC is not set |
618 | 620 | ||
619 | # | 621 | # |
622 | # LED devices | ||
623 | # | ||
624 | # CONFIG_NEW_LEDS is not set | ||
625 | |||
626 | # | ||
627 | # LED drivers | ||
628 | # | ||
629 | |||
630 | # | ||
631 | # LED Triggers | ||
632 | # | ||
633 | |||
634 | # | ||
620 | # InfiniBand support | 635 | # InfiniBand support |
621 | # | 636 | # |
622 | 637 | ||
623 | # | 638 | # |
624 | # SN Devices | 639 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
640 | # | ||
641 | |||
642 | # | ||
643 | # Real Time Clock | ||
625 | # | 644 | # |
645 | # CONFIG_RTC_CLASS is not set | ||
626 | 646 | ||
627 | # | 647 | # |
628 | # File systems | 648 | # File systems |
@@ -667,7 +687,6 @@ CONFIG_SYSFS=y | |||
667 | # CONFIG_TMPFS is not set | 687 | # CONFIG_TMPFS is not set |
668 | # CONFIG_HUGETLB_PAGE is not set | 688 | # CONFIG_HUGETLB_PAGE is not set |
669 | CONFIG_RAMFS=y | 689 | CONFIG_RAMFS=y |
670 | CONFIG_RELAYFS_FS=m | ||
671 | # CONFIG_CONFIGFS_FS is not set | 690 | # CONFIG_CONFIGFS_FS is not set |
672 | 691 | ||
673 | # | 692 | # |
@@ -731,6 +750,7 @@ CONFIG_MSDOS_PARTITION=y | |||
731 | # CONFIG_MAGIC_SYSRQ is not set | 750 | # CONFIG_MAGIC_SYSRQ is not set |
732 | # CONFIG_DEBUG_KERNEL is not set | 751 | # CONFIG_DEBUG_KERNEL is not set |
733 | CONFIG_LOG_BUF_SHIFT=14 | 752 | CONFIG_LOG_BUF_SHIFT=14 |
753 | # CONFIG_DEBUG_FS is not set | ||
734 | CONFIG_CROSSCOMPILE=y | 754 | CONFIG_CROSSCOMPILE=y |
735 | CONFIG_CMDLINE="" | 755 | CONFIG_CMDLINE="" |
736 | 756 | ||
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig index 42d5cd7927cb..607e2985ffe3 100644 --- a/arch/mips/configs/ip22_defconfig +++ b/arch/mips/configs/ip22_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:51 2006 | 4 | # Mon Apr 24 14:50:54 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_SGI_IP22=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_ARC=y | 70 | CONFIG_ARC=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
@@ -121,7 +123,6 @@ CONFIG_BOARD_SCACHE=y | |||
121 | CONFIG_IP22_CPU_SCACHE=y | 123 | CONFIG_IP22_CPU_SCACHE=y |
122 | # CONFIG_MIPS_MT is not set | 124 | # CONFIG_MIPS_MT is not set |
123 | # CONFIG_64BIT_PHYS_ADDR is not set | 125 | # CONFIG_64BIT_PHYS_ADDR is not set |
124 | # CONFIG_CPU_ADVANCED is not set | ||
125 | CONFIG_CPU_HAS_LLSC=y | 126 | CONFIG_CPU_HAS_LLSC=y |
126 | CONFIG_CPU_HAS_SYNC=y | 127 | CONFIG_CPU_HAS_SYNC=y |
127 | CONFIG_GENERIC_HARDIRQS=y | 128 | CONFIG_GENERIC_HARDIRQS=y |
@@ -143,7 +144,6 @@ CONFIG_PREEMPT_VOLUNTARY=y | |||
143 | # Code maturity level options | 144 | # Code maturity level options |
144 | # | 145 | # |
145 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
146 | CONFIG_CLEAN_COMPILE=y | ||
147 | CONFIG_BROKEN_ON_SMP=y | 147 | CONFIG_BROKEN_ON_SMP=y |
148 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
149 | 149 | ||
@@ -160,6 +160,7 @@ CONFIG_SYSCTL=y | |||
160 | # CONFIG_AUDIT is not set | 160 | # CONFIG_AUDIT is not set |
161 | CONFIG_IKCONFIG=y | 161 | CONFIG_IKCONFIG=y |
162 | CONFIG_IKCONFIG_PROC=y | 162 | CONFIG_IKCONFIG_PROC=y |
163 | CONFIG_RELAY=y | ||
163 | CONFIG_INITRAMFS_SOURCE="" | 164 | CONFIG_INITRAMFS_SOURCE="" |
164 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
165 | CONFIG_EMBEDDED=y | 166 | CONFIG_EMBEDDED=y |
@@ -173,10 +174,6 @@ CONFIG_BASE_FULL=y | |||
173 | CONFIG_FUTEX=y | 174 | CONFIG_FUTEX=y |
174 | CONFIG_EPOLL=y | 175 | CONFIG_EPOLL=y |
175 | CONFIG_SHMEM=y | 176 | CONFIG_SHMEM=y |
176 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
177 | CONFIG_CC_ALIGN_LABELS=0 | ||
178 | CONFIG_CC_ALIGN_LOOPS=0 | ||
179 | CONFIG_CC_ALIGN_JUMPS=0 | ||
180 | CONFIG_SLAB=y | 177 | CONFIG_SLAB=y |
181 | # CONFIG_TINY_SHMEM is not set | 178 | # CONFIG_TINY_SHMEM is not set |
182 | CONFIG_BASE_SMALL=0 | 179 | CONFIG_BASE_SMALL=0 |
@@ -188,7 +185,6 @@ CONFIG_BASE_SMALL=0 | |||
188 | CONFIG_MODULES=y | 185 | CONFIG_MODULES=y |
189 | CONFIG_MODULE_UNLOAD=y | 186 | CONFIG_MODULE_UNLOAD=y |
190 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 187 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
191 | CONFIG_OBSOLETE_MODPARM=y | ||
192 | CONFIG_MODVERSIONS=y | 188 | CONFIG_MODVERSIONS=y |
193 | CONFIG_MODULE_SRCVERSION_ALL=y | 189 | CONFIG_MODULE_SRCVERSION_ALL=y |
194 | CONFIG_KMOD=y | 190 | CONFIG_KMOD=y |
@@ -197,6 +193,8 @@ CONFIG_KMOD=y | |||
197 | # Block layer | 193 | # Block layer |
198 | # | 194 | # |
199 | # CONFIG_LBD is not set | 195 | # CONFIG_LBD is not set |
196 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
197 | # CONFIG_LSF is not set | ||
200 | 198 | ||
201 | # | 199 | # |
202 | # IO Schedulers | 200 | # IO Schedulers |
@@ -242,6 +240,7 @@ CONFIG_NET=y | |||
242 | # | 240 | # |
243 | # Networking options | 241 | # Networking options |
244 | # | 242 | # |
243 | # CONFIG_NETDEBUG is not set | ||
245 | CONFIG_PACKET=y | 244 | CONFIG_PACKET=y |
246 | CONFIG_PACKET_MMAP=y | 245 | CONFIG_PACKET_MMAP=y |
247 | CONFIG_UNIX=y | 246 | CONFIG_UNIX=y |
@@ -264,6 +263,7 @@ CONFIG_IP_PNP_BOOTP=y | |||
264 | CONFIG_INET_AH=m | 263 | CONFIG_INET_AH=m |
265 | CONFIG_INET_ESP=m | 264 | CONFIG_INET_ESP=m |
266 | CONFIG_INET_IPCOMP=m | 265 | CONFIG_INET_IPCOMP=m |
266 | CONFIG_INET_XFRM_TUNNEL=m | ||
267 | CONFIG_INET_TUNNEL=m | 267 | CONFIG_INET_TUNNEL=m |
268 | CONFIG_INET_DIAG=y | 268 | CONFIG_INET_DIAG=y |
269 | CONFIG_INET_TCP_DIAG=y | 269 | CONFIG_INET_TCP_DIAG=y |
@@ -305,9 +305,12 @@ CONFIG_IP_VS_NQ=m | |||
305 | CONFIG_IP_VS_FTP=m | 305 | CONFIG_IP_VS_FTP=m |
306 | CONFIG_IPV6=m | 306 | CONFIG_IPV6=m |
307 | CONFIG_IPV6_PRIVACY=y | 307 | CONFIG_IPV6_PRIVACY=y |
308 | CONFIG_IPV6_ROUTER_PREF=y | ||
309 | CONFIG_IPV6_ROUTE_INFO=y | ||
308 | CONFIG_INET6_AH=m | 310 | CONFIG_INET6_AH=m |
309 | CONFIG_INET6_ESP=m | 311 | CONFIG_INET6_ESP=m |
310 | CONFIG_INET6_IPCOMP=m | 312 | CONFIG_INET6_IPCOMP=m |
313 | CONFIG_INET6_XFRM_TUNNEL=m | ||
311 | CONFIG_INET6_TUNNEL=m | 314 | CONFIG_INET6_TUNNEL=m |
312 | CONFIG_IPV6_TUNNEL=m | 315 | CONFIG_IPV6_TUNNEL=m |
313 | CONFIG_NETFILTER=y | 316 | CONFIG_NETFILTER=y |
@@ -330,11 +333,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | |||
330 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 333 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
331 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 334 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
332 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 335 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
336 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
333 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 337 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
334 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 338 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
335 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 339 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
336 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 340 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
337 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 341 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
342 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
343 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
338 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 344 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
339 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 345 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
340 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 346 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -357,20 +363,19 @@ CONFIG_IP_NF_IRC=m | |||
357 | CONFIG_IP_NF_TFTP=m | 363 | CONFIG_IP_NF_TFTP=m |
358 | CONFIG_IP_NF_AMANDA=m | 364 | CONFIG_IP_NF_AMANDA=m |
359 | CONFIG_IP_NF_PPTP=m | 365 | CONFIG_IP_NF_PPTP=m |
366 | CONFIG_IP_NF_H323=m | ||
360 | CONFIG_IP_NF_QUEUE=m | 367 | CONFIG_IP_NF_QUEUE=m |
361 | CONFIG_IP_NF_IPTABLES=m | 368 | CONFIG_IP_NF_IPTABLES=m |
362 | CONFIG_IP_NF_MATCH_IPRANGE=m | 369 | CONFIG_IP_NF_MATCH_IPRANGE=m |
363 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
364 | CONFIG_IP_NF_MATCH_TOS=m | 370 | CONFIG_IP_NF_MATCH_TOS=m |
365 | CONFIG_IP_NF_MATCH_RECENT=m | 371 | CONFIG_IP_NF_MATCH_RECENT=m |
366 | CONFIG_IP_NF_MATCH_ECN=m | 372 | CONFIG_IP_NF_MATCH_ECN=m |
367 | CONFIG_IP_NF_MATCH_DSCP=m | 373 | CONFIG_IP_NF_MATCH_DSCP=m |
368 | CONFIG_IP_NF_MATCH_AH_ESP=m | 374 | CONFIG_IP_NF_MATCH_AH=m |
369 | CONFIG_IP_NF_MATCH_TTL=m | 375 | CONFIG_IP_NF_MATCH_TTL=m |
370 | CONFIG_IP_NF_MATCH_OWNER=m | 376 | CONFIG_IP_NF_MATCH_OWNER=m |
371 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 377 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
372 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 378 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
373 | CONFIG_IP_NF_MATCH_POLICY=m | ||
374 | CONFIG_IP_NF_FILTER=m | 379 | CONFIG_IP_NF_FILTER=m |
375 | CONFIG_IP_NF_TARGET_REJECT=m | 380 | CONFIG_IP_NF_TARGET_REJECT=m |
376 | CONFIG_IP_NF_TARGET_LOG=m | 381 | CONFIG_IP_NF_TARGET_LOG=m |
@@ -388,6 +393,7 @@ CONFIG_IP_NF_NAT_FTP=m | |||
388 | CONFIG_IP_NF_NAT_TFTP=m | 393 | CONFIG_IP_NF_NAT_TFTP=m |
389 | CONFIG_IP_NF_NAT_AMANDA=m | 394 | CONFIG_IP_NF_NAT_AMANDA=m |
390 | CONFIG_IP_NF_NAT_PPTP=m | 395 | CONFIG_IP_NF_NAT_PPTP=m |
396 | CONFIG_IP_NF_NAT_H323=m | ||
391 | CONFIG_IP_NF_MANGLE=m | 397 | CONFIG_IP_NF_MANGLE=m |
392 | CONFIG_IP_NF_TARGET_TOS=m | 398 | CONFIG_IP_NF_TARGET_TOS=m |
393 | CONFIG_IP_NF_TARGET_ECN=m | 399 | CONFIG_IP_NF_TARGET_ECN=m |
@@ -408,12 +414,10 @@ CONFIG_IP6_NF_MATCH_RT=m | |||
408 | CONFIG_IP6_NF_MATCH_OPTS=m | 414 | CONFIG_IP6_NF_MATCH_OPTS=m |
409 | CONFIG_IP6_NF_MATCH_FRAG=m | 415 | CONFIG_IP6_NF_MATCH_FRAG=m |
410 | CONFIG_IP6_NF_MATCH_HL=m | 416 | CONFIG_IP6_NF_MATCH_HL=m |
411 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
412 | CONFIG_IP6_NF_MATCH_OWNER=m | 417 | CONFIG_IP6_NF_MATCH_OWNER=m |
413 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 418 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
414 | CONFIG_IP6_NF_MATCH_AHESP=m | 419 | CONFIG_IP6_NF_MATCH_AH=m |
415 | CONFIG_IP6_NF_MATCH_EUI64=m | 420 | CONFIG_IP6_NF_MATCH_EUI64=m |
416 | CONFIG_IP6_NF_MATCH_POLICY=m | ||
417 | CONFIG_IP6_NF_FILTER=m | 421 | CONFIG_IP6_NF_FILTER=m |
418 | CONFIG_IP6_NF_TARGET_LOG=m | 422 | CONFIG_IP6_NF_TARGET_LOG=m |
419 | CONFIG_IP6_NF_TARGET_REJECT=m | 423 | CONFIG_IP6_NF_TARGET_REJECT=m |
@@ -435,6 +439,11 @@ CONFIG_IP_SCTP=m | |||
435 | # CONFIG_SCTP_HMAC_NONE is not set | 439 | # CONFIG_SCTP_HMAC_NONE is not set |
436 | # CONFIG_SCTP_HMAC_SHA1 is not set | 440 | # CONFIG_SCTP_HMAC_SHA1 is not set |
437 | CONFIG_SCTP_HMAC_MD5=y | 441 | CONFIG_SCTP_HMAC_MD5=y |
442 | |||
443 | # | ||
444 | # TIPC Configuration (EXPERIMENTAL) | ||
445 | # | ||
446 | # CONFIG_TIPC is not set | ||
438 | # CONFIG_ATM is not set | 447 | # CONFIG_ATM is not set |
439 | # CONFIG_BRIDGE is not set | 448 | # CONFIG_BRIDGE is not set |
440 | # CONFIG_VLAN_8021Q is not set | 449 | # CONFIG_VLAN_8021Q is not set |
@@ -444,11 +453,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
444 | # CONFIG_ATALK is not set | 453 | # CONFIG_ATALK is not set |
445 | # CONFIG_X25 is not set | 454 | # CONFIG_X25 is not set |
446 | # CONFIG_LAPB is not set | 455 | # CONFIG_LAPB is not set |
447 | |||
448 | # | ||
449 | # TIPC Configuration (EXPERIMENTAL) | ||
450 | # | ||
451 | # CONFIG_TIPC is not set | ||
452 | CONFIG_NET_DIVERT=y | 456 | CONFIG_NET_DIVERT=y |
453 | # CONFIG_ECONET is not set | 457 | # CONFIG_ECONET is not set |
454 | # CONFIG_WAN_ROUTER is not set | 458 | # CONFIG_WAN_ROUTER is not set |
@@ -508,6 +512,9 @@ CONFIG_IEEE80211=m | |||
508 | # CONFIG_IEEE80211_DEBUG is not set | 512 | # CONFIG_IEEE80211_DEBUG is not set |
509 | CONFIG_IEEE80211_CRYPT_WEP=m | 513 | CONFIG_IEEE80211_CRYPT_WEP=m |
510 | CONFIG_IEEE80211_CRYPT_CCMP=m | 514 | CONFIG_IEEE80211_CRYPT_CCMP=m |
515 | CONFIG_IEEE80211_SOFTMAC=m | ||
516 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
517 | CONFIG_WIRELESS_EXT=y | ||
511 | 518 | ||
512 | # | 519 | # |
513 | # Device Drivers | 520 | # Device Drivers |
@@ -546,7 +553,7 @@ CONFIG_CONNECTOR=m | |||
546 | # CONFIG_BLK_DEV_LOOP is not set | 553 | # CONFIG_BLK_DEV_LOOP is not set |
547 | # CONFIG_BLK_DEV_NBD is not set | 554 | # CONFIG_BLK_DEV_NBD is not set |
548 | # CONFIG_BLK_DEV_RAM is not set | 555 | # CONFIG_BLK_DEV_RAM is not set |
549 | CONFIG_BLK_DEV_RAM_COUNT=16 | 556 | # CONFIG_BLK_DEV_INITRD is not set |
550 | CONFIG_CDROM_PKTCDVD=m | 557 | CONFIG_CDROM_PKTCDVD=m |
551 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 558 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
552 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 559 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -812,10 +819,6 @@ CONFIG_MAX_RAW_DEVS=256 | |||
812 | # | 819 | # |
813 | 820 | ||
814 | # | 821 | # |
815 | # Multimedia Capabilities Port drivers | ||
816 | # | ||
817 | |||
818 | # | ||
819 | # Multimedia devices | 822 | # Multimedia devices |
820 | # | 823 | # |
821 | # CONFIG_VIDEO_DEV is not set | 824 | # CONFIG_VIDEO_DEV is not set |
@@ -857,6 +860,7 @@ CONFIG_LOGO_SGI_CLUT224=y | |||
857 | # | 860 | # |
858 | # CONFIG_USB_ARCH_HAS_HCD is not set | 861 | # CONFIG_USB_ARCH_HAS_HCD is not set |
859 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 862 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
863 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
860 | 864 | ||
861 | # | 865 | # |
862 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 866 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -873,12 +877,30 @@ CONFIG_LOGO_SGI_CLUT224=y | |||
873 | # CONFIG_MMC is not set | 877 | # CONFIG_MMC is not set |
874 | 878 | ||
875 | # | 879 | # |
880 | # LED devices | ||
881 | # | ||
882 | # CONFIG_NEW_LEDS is not set | ||
883 | |||
884 | # | ||
885 | # LED drivers | ||
886 | # | ||
887 | |||
888 | # | ||
889 | # LED Triggers | ||
890 | # | ||
891 | |||
892 | # | ||
876 | # InfiniBand support | 893 | # InfiniBand support |
877 | # | 894 | # |
878 | 895 | ||
879 | # | 896 | # |
880 | # SN Devices | 897 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
898 | # | ||
899 | |||
900 | # | ||
901 | # Real Time Clock | ||
881 | # | 902 | # |
903 | # CONFIG_RTC_CLASS is not set | ||
882 | 904 | ||
883 | # | 905 | # |
884 | # File systems | 906 | # File systems |
@@ -944,7 +966,6 @@ CONFIG_SYSFS=y | |||
944 | # CONFIG_TMPFS is not set | 966 | # CONFIG_TMPFS is not set |
945 | # CONFIG_HUGETLB_PAGE is not set | 967 | # CONFIG_HUGETLB_PAGE is not set |
946 | CONFIG_RAMFS=y | 968 | CONFIG_RAMFS=y |
947 | CONFIG_RELAYFS_FS=m | ||
948 | # CONFIG_CONFIGFS_FS is not set | 969 | # CONFIG_CONFIGFS_FS is not set |
949 | 970 | ||
950 | # | 971 | # |
@@ -963,7 +984,6 @@ CONFIG_EFS_FS=m | |||
963 | # CONFIG_QNX4FS_FS is not set | 984 | # CONFIG_QNX4FS_FS is not set |
964 | # CONFIG_SYSV_FS is not set | 985 | # CONFIG_SYSV_FS is not set |
965 | CONFIG_UFS_FS=m | 986 | CONFIG_UFS_FS=m |
966 | # CONFIG_UFS_FS_WRITE is not set | ||
967 | 987 | ||
968 | # | 988 | # |
969 | # Network File Systems | 989 | # Network File Systems |
@@ -1078,6 +1098,7 @@ CONFIG_NLS_UTF8=m | |||
1078 | # CONFIG_MAGIC_SYSRQ is not set | 1098 | # CONFIG_MAGIC_SYSRQ is not set |
1079 | # CONFIG_DEBUG_KERNEL is not set | 1099 | # CONFIG_DEBUG_KERNEL is not set |
1080 | CONFIG_LOG_BUF_SHIFT=14 | 1100 | CONFIG_LOG_BUF_SHIFT=14 |
1101 | # CONFIG_DEBUG_FS is not set | ||
1081 | CONFIG_CROSSCOMPILE=y | 1102 | CONFIG_CROSSCOMPILE=y |
1082 | CONFIG_CMDLINE="" | 1103 | CONFIG_CMDLINE="" |
1083 | 1104 | ||
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig index 8c40590737e1..f724b4b2ecf2 100644 --- a/arch/mips/configs/ip27_defconfig +++ b/arch/mips/configs/ip27_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc4 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Tue Feb 21 13:44:31 2006 | 4 | # Mon Apr 24 14:51:04 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -70,6 +70,8 @@ CONFIG_NUMA=y | |||
70 | # CONFIG_REPLICATE_KTEXT is not set | 70 | # CONFIG_REPLICATE_KTEXT is not set |
71 | # CONFIG_REPLICATE_EXHANDLERS is not set | 71 | # CONFIG_REPLICATE_EXHANDLERS is not set |
72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
73 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
74 | CONFIG_GENERIC_HWEIGHT=y | ||
73 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 75 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
74 | CONFIG_ARC=y | 76 | CONFIG_ARC=y |
75 | CONFIG_DMA_IP27=y | 77 | CONFIG_DMA_IP27=y |
@@ -123,6 +125,7 @@ CONFIG_CPU_HAS_SYNC=y | |||
123 | CONFIG_GENERIC_HARDIRQS=y | 125 | CONFIG_GENERIC_HARDIRQS=y |
124 | CONFIG_GENERIC_IRQ_PROBE=y | 126 | CONFIG_GENERIC_IRQ_PROBE=y |
125 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | 127 | CONFIG_CPU_SUPPORTS_HIGHMEM=y |
128 | CONFIG_NODES_SHIFT=6 | ||
126 | CONFIG_SELECT_MEMORY_MODEL=y | 129 | CONFIG_SELECT_MEMORY_MODEL=y |
127 | # CONFIG_FLATMEM_MANUAL is not set | 130 | # CONFIG_FLATMEM_MANUAL is not set |
128 | CONFIG_DISCONTIGMEM_MANUAL=y | 131 | CONFIG_DISCONTIGMEM_MANUAL=y |
@@ -162,6 +165,7 @@ CONFIG_SYSCTL=y | |||
162 | CONFIG_IKCONFIG=y | 165 | CONFIG_IKCONFIG=y |
163 | CONFIG_IKCONFIG_PROC=y | 166 | CONFIG_IKCONFIG_PROC=y |
164 | CONFIG_CPUSETS=y | 167 | CONFIG_CPUSETS=y |
168 | CONFIG_RELAY=y | ||
165 | CONFIG_INITRAMFS_SOURCE="" | 169 | CONFIG_INITRAMFS_SOURCE="" |
166 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 170 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
167 | CONFIG_EMBEDDED=y | 171 | CONFIG_EMBEDDED=y |
@@ -175,10 +179,6 @@ CONFIG_BASE_FULL=y | |||
175 | CONFIG_FUTEX=y | 179 | CONFIG_FUTEX=y |
176 | CONFIG_EPOLL=y | 180 | CONFIG_EPOLL=y |
177 | CONFIG_SHMEM=y | 181 | CONFIG_SHMEM=y |
178 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
179 | CONFIG_CC_ALIGN_LABELS=0 | ||
180 | CONFIG_CC_ALIGN_LOOPS=0 | ||
181 | CONFIG_CC_ALIGN_JUMPS=0 | ||
182 | CONFIG_SLAB=y | 182 | CONFIG_SLAB=y |
183 | # CONFIG_TINY_SHMEM is not set | 183 | # CONFIG_TINY_SHMEM is not set |
184 | CONFIG_BASE_SMALL=0 | 184 | CONFIG_BASE_SMALL=0 |
@@ -190,7 +190,6 @@ CONFIG_BASE_SMALL=0 | |||
190 | CONFIG_MODULES=y | 190 | CONFIG_MODULES=y |
191 | CONFIG_MODULE_UNLOAD=y | 191 | CONFIG_MODULE_UNLOAD=y |
192 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 192 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
193 | CONFIG_OBSOLETE_MODPARM=y | ||
194 | # CONFIG_MODVERSIONS is not set | 193 | # CONFIG_MODVERSIONS is not set |
195 | CONFIG_MODULE_SRCVERSION_ALL=y | 194 | CONFIG_MODULE_SRCVERSION_ALL=y |
196 | CONFIG_KMOD=y | 195 | CONFIG_KMOD=y |
@@ -199,6 +198,7 @@ CONFIG_STOP_MACHINE=y | |||
199 | # | 198 | # |
200 | # Block layer | 199 | # Block layer |
201 | # | 200 | # |
201 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
202 | 202 | ||
203 | # | 203 | # |
204 | # IO Schedulers | 204 | # IO Schedulers |
@@ -219,7 +219,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
219 | CONFIG_HW_HAS_PCI=y | 219 | CONFIG_HW_HAS_PCI=y |
220 | CONFIG_PCI=y | 220 | CONFIG_PCI=y |
221 | CONFIG_PCI_DOMAINS=y | 221 | CONFIG_PCI_DOMAINS=y |
222 | CONFIG_PCI_LEGACY_PROC=y | ||
223 | CONFIG_MMU=y | 222 | CONFIG_MMU=y |
224 | 223 | ||
225 | # | 224 | # |
@@ -237,6 +236,7 @@ CONFIG_MMU=y | |||
237 | # | 236 | # |
238 | CONFIG_BINFMT_ELF=y | 237 | CONFIG_BINFMT_ELF=y |
239 | # CONFIG_BINFMT_MISC is not set | 238 | # CONFIG_BINFMT_MISC is not set |
239 | # CONFIG_BUILD_ELF64 is not set | ||
240 | CONFIG_MIPS32_COMPAT=y | 240 | CONFIG_MIPS32_COMPAT=y |
241 | CONFIG_COMPAT=y | 241 | CONFIG_COMPAT=y |
242 | CONFIG_MIPS32_O32=y | 242 | CONFIG_MIPS32_O32=y |
@@ -274,12 +274,15 @@ CONFIG_IP_PNP=y | |||
274 | # CONFIG_INET_AH is not set | 274 | # CONFIG_INET_AH is not set |
275 | # CONFIG_INET_ESP is not set | 275 | # CONFIG_INET_ESP is not set |
276 | # CONFIG_INET_IPCOMP is not set | 276 | # CONFIG_INET_IPCOMP is not set |
277 | CONFIG_INET_TUNNEL=m | 277 | # CONFIG_INET_XFRM_TUNNEL is not set |
278 | # CONFIG_INET_TUNNEL is not set | ||
278 | CONFIG_INET_DIAG=y | 279 | CONFIG_INET_DIAG=y |
279 | CONFIG_INET_TCP_DIAG=y | 280 | CONFIG_INET_TCP_DIAG=y |
280 | # CONFIG_TCP_CONG_ADVANCED is not set | 281 | # CONFIG_TCP_CONG_ADVANCED is not set |
281 | CONFIG_TCP_CONG_BIC=y | 282 | CONFIG_TCP_CONG_BIC=y |
282 | # CONFIG_IPV6 is not set | 283 | # CONFIG_IPV6 is not set |
284 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
285 | # CONFIG_INET6_TUNNEL is not set | ||
283 | # CONFIG_NETFILTER is not set | 286 | # CONFIG_NETFILTER is not set |
284 | 287 | ||
285 | # | 288 | # |
@@ -363,6 +366,9 @@ CONFIG_IEEE80211=m | |||
363 | # CONFIG_IEEE80211_DEBUG is not set | 366 | # CONFIG_IEEE80211_DEBUG is not set |
364 | CONFIG_IEEE80211_CRYPT_WEP=m | 367 | CONFIG_IEEE80211_CRYPT_WEP=m |
365 | CONFIG_IEEE80211_CRYPT_CCMP=m | 368 | CONFIG_IEEE80211_CRYPT_CCMP=m |
369 | CONFIG_IEEE80211_SOFTMAC=m | ||
370 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
371 | CONFIG_WIRELESS_EXT=y | ||
366 | 372 | ||
367 | # | 373 | # |
368 | # Device Drivers | 374 | # Device Drivers |
@@ -407,7 +413,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m | |||
407 | # CONFIG_BLK_DEV_NBD is not set | 413 | # CONFIG_BLK_DEV_NBD is not set |
408 | # CONFIG_BLK_DEV_SX8 is not set | 414 | # CONFIG_BLK_DEV_SX8 is not set |
409 | # CONFIG_BLK_DEV_RAM is not set | 415 | # CONFIG_BLK_DEV_RAM is not set |
410 | CONFIG_BLK_DEV_RAM_COUNT=16 | 416 | # CONFIG_BLK_DEV_INITRD is not set |
411 | CONFIG_CDROM_PKTCDVD=m | 417 | CONFIG_CDROM_PKTCDVD=m |
412 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 418 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
413 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 419 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -473,7 +479,6 @@ CONFIG_SCSI_SAS_ATTRS=m | |||
473 | # CONFIG_SCSI_INIA100 is not set | 479 | # CONFIG_SCSI_INIA100 is not set |
474 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 480 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
475 | # CONFIG_SCSI_IPR is not set | 481 | # CONFIG_SCSI_IPR is not set |
476 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
477 | CONFIG_SCSI_QLOGIC_1280=y | 482 | CONFIG_SCSI_QLOGIC_1280=y |
478 | # CONFIG_SCSI_QLA_FC is not set | 483 | # CONFIG_SCSI_QLA_FC is not set |
479 | # CONFIG_SCSI_LPFC is not set | 484 | # CONFIG_SCSI_LPFC is not set |
@@ -491,6 +496,7 @@ CONFIG_MD_RAID0=y | |||
491 | CONFIG_MD_RAID1=y | 496 | CONFIG_MD_RAID1=y |
492 | CONFIG_MD_RAID10=m | 497 | CONFIG_MD_RAID10=m |
493 | CONFIG_MD_RAID5=y | 498 | CONFIG_MD_RAID5=y |
499 | CONFIG_MD_RAID5_RESHAPE=y | ||
494 | CONFIG_MD_RAID6=m | 500 | CONFIG_MD_RAID6=m |
495 | CONFIG_MD_MULTIPATH=m | 501 | CONFIG_MD_MULTIPATH=m |
496 | CONFIG_MD_FAULTY=m | 502 | CONFIG_MD_FAULTY=m |
@@ -654,6 +660,7 @@ CONFIG_SERIO_RAW=m | |||
654 | # | 660 | # |
655 | CONFIG_SERIAL_8250=y | 661 | CONFIG_SERIAL_8250=y |
656 | CONFIG_SERIAL_8250_CONSOLE=y | 662 | CONFIG_SERIAL_8250_CONSOLE=y |
663 | CONFIG_SERIAL_8250_PCI=y | ||
657 | CONFIG_SERIAL_8250_NR_UARTS=4 | 664 | CONFIG_SERIAL_8250_NR_UARTS=4 |
658 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 665 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
659 | CONFIG_SERIAL_8250_EXTENDED=y | 666 | CONFIG_SERIAL_8250_EXTENDED=y |
@@ -727,10 +734,6 @@ CONFIG_SGI_IP27_RTC=y | |||
727 | # | 734 | # |
728 | 735 | ||
729 | # | 736 | # |
730 | # Multimedia Capabilities Port drivers | ||
731 | # | ||
732 | |||
733 | # | ||
734 | # Multimedia devices | 737 | # Multimedia devices |
735 | # | 738 | # |
736 | # CONFIG_VIDEO_DEV is not set | 739 | # CONFIG_VIDEO_DEV is not set |
@@ -755,6 +758,7 @@ CONFIG_SGI_IP27_RTC=y | |||
755 | # | 758 | # |
756 | CONFIG_USB_ARCH_HAS_HCD=y | 759 | CONFIG_USB_ARCH_HAS_HCD=y |
757 | CONFIG_USB_ARCH_HAS_OHCI=y | 760 | CONFIG_USB_ARCH_HAS_OHCI=y |
761 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
758 | # CONFIG_USB is not set | 762 | # CONFIG_USB is not set |
759 | 763 | ||
760 | # | 764 | # |
@@ -772,17 +776,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
772 | # CONFIG_MMC is not set | 776 | # CONFIG_MMC is not set |
773 | 777 | ||
774 | # | 778 | # |
779 | # LED devices | ||
780 | # | ||
781 | # CONFIG_NEW_LEDS is not set | ||
782 | |||
783 | # | ||
784 | # LED drivers | ||
785 | # | ||
786 | |||
787 | # | ||
788 | # LED Triggers | ||
789 | # | ||
790 | |||
791 | # | ||
775 | # InfiniBand support | 792 | # InfiniBand support |
776 | # | 793 | # |
777 | # CONFIG_INFINIBAND is not set | 794 | # CONFIG_INFINIBAND is not set |
778 | 795 | ||
779 | # | 796 | # |
780 | # SN Devices | 797 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
781 | # | 798 | # |
782 | 799 | ||
783 | # | 800 | # |
784 | # EDAC - error detection and reporting (RAS) | 801 | # Real Time Clock |
785 | # | 802 | # |
803 | # CONFIG_RTC_CLASS is not set | ||
786 | 804 | ||
787 | # | 805 | # |
788 | # File systems | 806 | # File systems |
@@ -840,7 +858,6 @@ CONFIG_SYSFS=y | |||
840 | # CONFIG_TMPFS is not set | 858 | # CONFIG_TMPFS is not set |
841 | # CONFIG_HUGETLB_PAGE is not set | 859 | # CONFIG_HUGETLB_PAGE is not set |
842 | CONFIG_RAMFS=y | 860 | CONFIG_RAMFS=y |
843 | CONFIG_RELAYFS_FS=m | ||
844 | # CONFIG_CONFIGFS_FS is not set | 861 | # CONFIG_CONFIGFS_FS is not set |
845 | 862 | ||
846 | # | 863 | # |
@@ -922,6 +939,7 @@ CONFIG_SGI_PARTITION=y | |||
922 | # CONFIG_MAGIC_SYSRQ is not set | 939 | # CONFIG_MAGIC_SYSRQ is not set |
923 | # CONFIG_DEBUG_KERNEL is not set | 940 | # CONFIG_DEBUG_KERNEL is not set |
924 | CONFIG_LOG_BUF_SHIFT=15 | 941 | CONFIG_LOG_BUF_SHIFT=15 |
942 | # CONFIG_DEBUG_FS is not set | ||
925 | CONFIG_CROSSCOMPILE=y | 943 | CONFIG_CROSSCOMPILE=y |
926 | CONFIG_CMDLINE="" | 944 | CONFIG_CMDLINE="" |
927 | 945 | ||
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig index 7fdcaf51face..8f11d3565b2d 100644 --- a/arch/mips/configs/ip32_defconfig +++ b/arch/mips/configs/ip32_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:09 2006 | 4 | # Mon Apr 24 14:51:05 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_SGI_IP32=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_ARC=y | 70 | CONFIG_ARC=y |
69 | CONFIG_DMA_IP32=y | 71 | CONFIG_DMA_IP32=y |
@@ -142,7 +144,6 @@ CONFIG_PREEMPT_VOLUNTARY=y | |||
142 | # Code maturity level options | 144 | # Code maturity level options |
143 | # | 145 | # |
144 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
145 | CONFIG_CLEAN_COMPILE=y | ||
146 | CONFIG_BROKEN_ON_SMP=y | 147 | CONFIG_BROKEN_ON_SMP=y |
147 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
148 | 149 | ||
@@ -159,6 +160,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
159 | CONFIG_SYSCTL=y | 160 | CONFIG_SYSCTL=y |
160 | # CONFIG_AUDIT is not set | 161 | # CONFIG_AUDIT is not set |
161 | # CONFIG_IKCONFIG is not set | 162 | # CONFIG_IKCONFIG is not set |
163 | CONFIG_RELAY=y | ||
162 | CONFIG_INITRAMFS_SOURCE="" | 164 | CONFIG_INITRAMFS_SOURCE="" |
163 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
164 | CONFIG_EMBEDDED=y | 166 | CONFIG_EMBEDDED=y |
@@ -172,10 +174,6 @@ CONFIG_BASE_FULL=y | |||
172 | CONFIG_FUTEX=y | 174 | CONFIG_FUTEX=y |
173 | CONFIG_EPOLL=y | 175 | CONFIG_EPOLL=y |
174 | CONFIG_SHMEM=y | 176 | CONFIG_SHMEM=y |
175 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
176 | CONFIG_CC_ALIGN_LABELS=0 | ||
177 | CONFIG_CC_ALIGN_LOOPS=0 | ||
178 | CONFIG_CC_ALIGN_JUMPS=0 | ||
179 | CONFIG_SLAB=y | 177 | CONFIG_SLAB=y |
180 | # CONFIG_TINY_SHMEM is not set | 178 | # CONFIG_TINY_SHMEM is not set |
181 | CONFIG_BASE_SMALL=0 | 179 | CONFIG_BASE_SMALL=0 |
@@ -189,6 +187,7 @@ CONFIG_BASE_SMALL=0 | |||
189 | # | 187 | # |
190 | # Block layer | 188 | # Block layer |
191 | # | 189 | # |
190 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | 191 | ||
193 | # | 192 | # |
194 | # IO Schedulers | 193 | # IO Schedulers |
@@ -208,7 +207,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
208 | # | 207 | # |
209 | CONFIG_HW_HAS_PCI=y | 208 | CONFIG_HW_HAS_PCI=y |
210 | CONFIG_PCI=y | 209 | CONFIG_PCI=y |
211 | CONFIG_PCI_LEGACY_PROC=y | ||
212 | CONFIG_MMU=y | 210 | CONFIG_MMU=y |
213 | 211 | ||
214 | # | 212 | # |
@@ -226,6 +224,7 @@ CONFIG_MMU=y | |||
226 | # | 224 | # |
227 | CONFIG_BINFMT_ELF=y | 225 | CONFIG_BINFMT_ELF=y |
228 | CONFIG_BINFMT_MISC=y | 226 | CONFIG_BINFMT_MISC=y |
227 | # CONFIG_BUILD_ELF64 is not set | ||
229 | CONFIG_MIPS32_COMPAT=y | 228 | CONFIG_MIPS32_COMPAT=y |
230 | CONFIG_COMPAT=y | 229 | CONFIG_COMPAT=y |
231 | CONFIG_MIPS32_O32=y | 230 | CONFIG_MIPS32_O32=y |
@@ -240,6 +239,7 @@ CONFIG_NET=y | |||
240 | # | 239 | # |
241 | # Networking options | 240 | # Networking options |
242 | # | 241 | # |
242 | # CONFIG_NETDEBUG is not set | ||
243 | CONFIG_PACKET=y | 243 | CONFIG_PACKET=y |
244 | CONFIG_PACKET_MMAP=y | 244 | CONFIG_PACKET_MMAP=y |
245 | CONFIG_UNIX=y | 245 | CONFIG_UNIX=y |
@@ -261,12 +261,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
261 | # CONFIG_INET_AH is not set | 261 | # CONFIG_INET_AH is not set |
262 | # CONFIG_INET_ESP is not set | 262 | # CONFIG_INET_ESP is not set |
263 | # CONFIG_INET_IPCOMP is not set | 263 | # CONFIG_INET_IPCOMP is not set |
264 | CONFIG_INET_TUNNEL=y | 264 | # CONFIG_INET_XFRM_TUNNEL is not set |
265 | # CONFIG_INET_TUNNEL is not set | ||
265 | CONFIG_INET_DIAG=y | 266 | CONFIG_INET_DIAG=y |
266 | CONFIG_INET_TCP_DIAG=y | 267 | CONFIG_INET_TCP_DIAG=y |
267 | # CONFIG_TCP_CONG_ADVANCED is not set | 268 | # CONFIG_TCP_CONG_ADVANCED is not set |
268 | CONFIG_TCP_CONG_BIC=y | 269 | CONFIG_TCP_CONG_BIC=y |
269 | # CONFIG_IPV6 is not set | 270 | # CONFIG_IPV6 is not set |
271 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
272 | # CONFIG_INET6_TUNNEL is not set | ||
270 | # CONFIG_NETFILTER is not set | 273 | # CONFIG_NETFILTER is not set |
271 | 274 | ||
272 | # | 275 | # |
@@ -278,6 +281,11 @@ CONFIG_TCP_CONG_BIC=y | |||
278 | # SCTP Configuration (EXPERIMENTAL) | 281 | # SCTP Configuration (EXPERIMENTAL) |
279 | # | 282 | # |
280 | # CONFIG_IP_SCTP is not set | 283 | # CONFIG_IP_SCTP is not set |
284 | |||
285 | # | ||
286 | # TIPC Configuration (EXPERIMENTAL) | ||
287 | # | ||
288 | # CONFIG_TIPC is not set | ||
281 | # CONFIG_ATM is not set | 289 | # CONFIG_ATM is not set |
282 | # CONFIG_BRIDGE is not set | 290 | # CONFIG_BRIDGE is not set |
283 | # CONFIG_VLAN_8021Q is not set | 291 | # CONFIG_VLAN_8021Q is not set |
@@ -287,11 +295,6 @@ CONFIG_TCP_CONG_BIC=y | |||
287 | # CONFIG_ATALK is not set | 295 | # CONFIG_ATALK is not set |
288 | # CONFIG_X25 is not set | 296 | # CONFIG_X25 is not set |
289 | # CONFIG_LAPB is not set | 297 | # CONFIG_LAPB is not set |
290 | |||
291 | # | ||
292 | # TIPC Configuration (EXPERIMENTAL) | ||
293 | # | ||
294 | # CONFIG_TIPC is not set | ||
295 | # CONFIG_NET_DIVERT is not set | 298 | # CONFIG_NET_DIVERT is not set |
296 | # CONFIG_ECONET is not set | 299 | # CONFIG_ECONET is not set |
297 | # CONFIG_WAN_ROUTER is not set | 300 | # CONFIG_WAN_ROUTER is not set |
@@ -312,6 +315,9 @@ CONFIG_IEEE80211=y | |||
312 | # CONFIG_IEEE80211_DEBUG is not set | 315 | # CONFIG_IEEE80211_DEBUG is not set |
313 | CONFIG_IEEE80211_CRYPT_WEP=y | 316 | CONFIG_IEEE80211_CRYPT_WEP=y |
314 | CONFIG_IEEE80211_CRYPT_CCMP=y | 317 | CONFIG_IEEE80211_CRYPT_CCMP=y |
318 | CONFIG_IEEE80211_SOFTMAC=y | ||
319 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
320 | CONFIG_WIRELESS_EXT=y | ||
315 | 321 | ||
316 | # | 322 | # |
317 | # Device Drivers | 323 | # Device Drivers |
@@ -357,7 +363,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
357 | # CONFIG_BLK_DEV_NBD is not set | 363 | # CONFIG_BLK_DEV_NBD is not set |
358 | # CONFIG_BLK_DEV_SX8 is not set | 364 | # CONFIG_BLK_DEV_SX8 is not set |
359 | # CONFIG_BLK_DEV_RAM is not set | 365 | # CONFIG_BLK_DEV_RAM is not set |
360 | CONFIG_BLK_DEV_RAM_COUNT=16 | 366 | # CONFIG_BLK_DEV_INITRD is not set |
361 | CONFIG_CDROM_PKTCDVD=y | 367 | CONFIG_CDROM_PKTCDVD=y |
362 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 368 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
363 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 369 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -428,7 +434,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y | |||
428 | # CONFIG_SCSI_INIA100 is not set | 434 | # CONFIG_SCSI_INIA100 is not set |
429 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 435 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
430 | # CONFIG_SCSI_IPR is not set | 436 | # CONFIG_SCSI_IPR is not set |
431 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
432 | # CONFIG_SCSI_QLOGIC_1280 is not set | 437 | # CONFIG_SCSI_QLOGIC_1280 is not set |
433 | # CONFIG_SCSI_QLA_FC is not set | 438 | # CONFIG_SCSI_QLA_FC is not set |
434 | # CONFIG_SCSI_LPFC is not set | 439 | # CONFIG_SCSI_LPFC is not set |
@@ -615,6 +620,7 @@ CONFIG_HW_CONSOLE=y | |||
615 | # | 620 | # |
616 | CONFIG_SERIAL_8250=y | 621 | CONFIG_SERIAL_8250=y |
617 | CONFIG_SERIAL_8250_CONSOLE=y | 622 | CONFIG_SERIAL_8250_CONSOLE=y |
623 | CONFIG_SERIAL_8250_PCI=y | ||
618 | CONFIG_SERIAL_8250_NR_UARTS=4 | 624 | CONFIG_SERIAL_8250_NR_UARTS=4 |
619 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 625 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
620 | # CONFIG_SERIAL_8250_EXTENDED is not set | 626 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -624,6 +630,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
624 | # | 630 | # |
625 | CONFIG_SERIAL_CORE=y | 631 | CONFIG_SERIAL_CORE=y |
626 | CONFIG_SERIAL_CORE_CONSOLE=y | 632 | CONFIG_SERIAL_CORE_CONSOLE=y |
633 | # CONFIG_SERIAL_JSM is not set | ||
627 | CONFIG_UNIX98_PTYS=y | 634 | CONFIG_UNIX98_PTYS=y |
628 | CONFIG_LEGACY_PTYS=y | 635 | CONFIG_LEGACY_PTYS=y |
629 | CONFIG_LEGACY_PTY_COUNT=256 | 636 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -682,10 +689,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
682 | # | 689 | # |
683 | 690 | ||
684 | # | 691 | # |
685 | # Multimedia Capabilities Port drivers | ||
686 | # | ||
687 | |||
688 | # | ||
689 | # Multimedia devices | 692 | # Multimedia devices |
690 | # | 693 | # |
691 | # CONFIG_VIDEO_DEV is not set | 694 | # CONFIG_VIDEO_DEV is not set |
@@ -716,6 +719,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
716 | # | 719 | # |
717 | CONFIG_USB_ARCH_HAS_HCD=y | 720 | CONFIG_USB_ARCH_HAS_HCD=y |
718 | CONFIG_USB_ARCH_HAS_OHCI=y | 721 | CONFIG_USB_ARCH_HAS_OHCI=y |
722 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
719 | # CONFIG_USB is not set | 723 | # CONFIG_USB is not set |
720 | 724 | ||
721 | # | 725 | # |
@@ -733,13 +737,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
733 | # CONFIG_MMC is not set | 737 | # CONFIG_MMC is not set |
734 | 738 | ||
735 | # | 739 | # |
740 | # LED devices | ||
741 | # | ||
742 | # CONFIG_NEW_LEDS is not set | ||
743 | |||
744 | # | ||
745 | # LED drivers | ||
746 | # | ||
747 | |||
748 | # | ||
749 | # LED Triggers | ||
750 | # | ||
751 | |||
752 | # | ||
736 | # InfiniBand support | 753 | # InfiniBand support |
737 | # | 754 | # |
738 | # CONFIG_INFINIBAND is not set | 755 | # CONFIG_INFINIBAND is not set |
739 | 756 | ||
740 | # | 757 | # |
741 | # SN Devices | 758 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
759 | # | ||
760 | |||
761 | # | ||
762 | # Real Time Clock | ||
742 | # | 763 | # |
764 | # CONFIG_RTC_CLASS is not set | ||
743 | 765 | ||
744 | # | 766 | # |
745 | # File systems | 767 | # File systems |
@@ -784,7 +806,6 @@ CONFIG_SYSFS=y | |||
784 | CONFIG_TMPFS=y | 806 | CONFIG_TMPFS=y |
785 | # CONFIG_HUGETLB_PAGE is not set | 807 | # CONFIG_HUGETLB_PAGE is not set |
786 | CONFIG_RAMFS=y | 808 | CONFIG_RAMFS=y |
787 | CONFIG_RELAYFS_FS=y | ||
788 | # CONFIG_CONFIGFS_FS is not set | 809 | # CONFIG_CONFIGFS_FS is not set |
789 | 810 | ||
790 | # | 811 | # |
@@ -861,6 +882,8 @@ CONFIG_SGI_PARTITION=y | |||
861 | # CONFIG_MAGIC_SYSRQ is not set | 882 | # CONFIG_MAGIC_SYSRQ is not set |
862 | # CONFIG_DEBUG_KERNEL is not set | 883 | # CONFIG_DEBUG_KERNEL is not set |
863 | CONFIG_LOG_BUF_SHIFT=14 | 884 | CONFIG_LOG_BUF_SHIFT=14 |
885 | # CONFIG_DEBUG_FS is not set | ||
886 | # CONFIG_UNWIND_INFO is not set | ||
864 | CONFIG_CROSSCOMPILE=y | 887 | CONFIG_CROSSCOMPILE=y |
865 | CONFIG_CMDLINE="" | 888 | CONFIG_CMDLINE="" |
866 | 889 | ||
diff --git a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig index c716996d9eca..757adf23853d 100644 --- a/arch/mips/configs/it8172_defconfig +++ b/arch/mips/configs/it8172_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:10 2006 | 4 | # Mon Apr 24 14:51:05 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -65,6 +65,8 @@ CONFIG_MIPS_ITE8172=y | |||
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | # CONFIG_IT8172_REVC is not set | 66 | # CONFIG_IT8172_REVC is not set |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
70 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -115,7 +117,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
115 | # CONFIG_PAGE_SIZE_16KB is not set | 117 | # CONFIG_PAGE_SIZE_16KB is not set |
116 | # CONFIG_PAGE_SIZE_64KB is not set | 118 | # CONFIG_PAGE_SIZE_64KB is not set |
117 | # CONFIG_MIPS_MT is not set | 119 | # CONFIG_MIPS_MT is not set |
118 | # CONFIG_CPU_ADVANCED is not set | ||
119 | CONFIG_CPU_HAS_LLSC=y | 120 | CONFIG_CPU_HAS_LLSC=y |
120 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
@@ -137,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 138 | # Code maturity level options |
138 | # | 139 | # |
139 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 143 | ||
@@ -154,6 +154,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
154 | CONFIG_SYSCTL=y | 154 | CONFIG_SYSCTL=y |
155 | # CONFIG_AUDIT is not set | 155 | # CONFIG_AUDIT is not set |
156 | # CONFIG_IKCONFIG is not set | 156 | # CONFIG_IKCONFIG is not set |
157 | CONFIG_RELAY=y | ||
157 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
159 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -167,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -183,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
183 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
184 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
185 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
186 | CONFIG_OBSOLETE_MODPARM=y | ||
187 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
188 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
189 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -192,6 +188,8 @@ CONFIG_KMOD=y | |||
192 | # Block layer | 188 | # Block layer |
193 | # | 189 | # |
194 | # CONFIG_LBD is not set | 190 | # CONFIG_LBD is not set |
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
195 | 193 | ||
196 | # | 194 | # |
197 | # IO Schedulers | 195 | # IO Schedulers |
@@ -237,6 +235,7 @@ CONFIG_NET=y | |||
237 | # | 235 | # |
238 | # Networking options | 236 | # Networking options |
239 | # | 237 | # |
238 | # CONFIG_NETDEBUG is not set | ||
240 | CONFIG_PACKET=y | 239 | CONFIG_PACKET=y |
241 | CONFIG_PACKET_MMAP=y | 240 | CONFIG_PACKET_MMAP=y |
242 | CONFIG_UNIX=y | 241 | CONFIG_UNIX=y |
@@ -258,12 +257,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
258 | # CONFIG_INET_AH is not set | 257 | # CONFIG_INET_AH is not set |
259 | # CONFIG_INET_ESP is not set | 258 | # CONFIG_INET_ESP is not set |
260 | # CONFIG_INET_IPCOMP is not set | 259 | # CONFIG_INET_IPCOMP is not set |
261 | CONFIG_INET_TUNNEL=m | 260 | # CONFIG_INET_XFRM_TUNNEL is not set |
261 | # CONFIG_INET_TUNNEL is not set | ||
262 | CONFIG_INET_DIAG=y | 262 | CONFIG_INET_DIAG=y |
263 | CONFIG_INET_TCP_DIAG=y | 263 | CONFIG_INET_TCP_DIAG=y |
264 | # CONFIG_TCP_CONG_ADVANCED is not set | 264 | # CONFIG_TCP_CONG_ADVANCED is not set |
265 | CONFIG_TCP_CONG_BIC=y | 265 | CONFIG_TCP_CONG_BIC=y |
266 | # CONFIG_IPV6 is not set | 266 | # CONFIG_IPV6 is not set |
267 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
268 | # CONFIG_INET6_TUNNEL is not set | ||
267 | # CONFIG_NETFILTER is not set | 269 | # CONFIG_NETFILTER is not set |
268 | 270 | ||
269 | # | 271 | # |
@@ -275,6 +277,11 @@ CONFIG_TCP_CONG_BIC=y | |||
275 | # SCTP Configuration (EXPERIMENTAL) | 277 | # SCTP Configuration (EXPERIMENTAL) |
276 | # | 278 | # |
277 | # CONFIG_IP_SCTP is not set | 279 | # CONFIG_IP_SCTP is not set |
280 | |||
281 | # | ||
282 | # TIPC Configuration (EXPERIMENTAL) | ||
283 | # | ||
284 | # CONFIG_TIPC is not set | ||
278 | # CONFIG_ATM is not set | 285 | # CONFIG_ATM is not set |
279 | # CONFIG_BRIDGE is not set | 286 | # CONFIG_BRIDGE is not set |
280 | # CONFIG_VLAN_8021Q is not set | 287 | # CONFIG_VLAN_8021Q is not set |
@@ -284,11 +291,6 @@ CONFIG_TCP_CONG_BIC=y | |||
284 | # CONFIG_ATALK is not set | 291 | # CONFIG_ATALK is not set |
285 | # CONFIG_X25 is not set | 292 | # CONFIG_X25 is not set |
286 | # CONFIG_LAPB is not set | 293 | # CONFIG_LAPB is not set |
287 | |||
288 | # | ||
289 | # TIPC Configuration (EXPERIMENTAL) | ||
290 | # | ||
291 | # CONFIG_TIPC is not set | ||
292 | # CONFIG_NET_DIVERT is not set | 294 | # CONFIG_NET_DIVERT is not set |
293 | # CONFIG_ECONET is not set | 295 | # CONFIG_ECONET is not set |
294 | # CONFIG_WAN_ROUTER is not set | 296 | # CONFIG_WAN_ROUTER is not set |
@@ -309,6 +311,9 @@ CONFIG_IEEE80211=m | |||
309 | # CONFIG_IEEE80211_DEBUG is not set | 311 | # CONFIG_IEEE80211_DEBUG is not set |
310 | CONFIG_IEEE80211_CRYPT_WEP=m | 312 | CONFIG_IEEE80211_CRYPT_WEP=m |
311 | CONFIG_IEEE80211_CRYPT_CCMP=m | 313 | CONFIG_IEEE80211_CRYPT_CCMP=m |
314 | CONFIG_IEEE80211_SOFTMAC=m | ||
315 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
316 | CONFIG_WIRELESS_EXT=y | ||
312 | 317 | ||
313 | # | 318 | # |
314 | # Device Drivers | 319 | # Device Drivers |
@@ -387,7 +392,6 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | |||
387 | # CONFIG_MTD_SLRAM is not set | 392 | # CONFIG_MTD_SLRAM is not set |
388 | # CONFIG_MTD_PHRAM is not set | 393 | # CONFIG_MTD_PHRAM is not set |
389 | # CONFIG_MTD_MTDRAM is not set | 394 | # CONFIG_MTD_MTDRAM is not set |
390 | # CONFIG_MTD_BLKMTD is not set | ||
391 | # CONFIG_MTD_BLOCK2MTD is not set | 395 | # CONFIG_MTD_BLOCK2MTD is not set |
392 | 396 | ||
393 | # | 397 | # |
@@ -424,7 +428,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
424 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 428 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
425 | # CONFIG_BLK_DEV_NBD is not set | 429 | # CONFIG_BLK_DEV_NBD is not set |
426 | # CONFIG_BLK_DEV_RAM is not set | 430 | # CONFIG_BLK_DEV_RAM is not set |
427 | CONFIG_BLK_DEV_RAM_COUNT=16 | 431 | # CONFIG_BLK_DEV_INITRD is not set |
428 | CONFIG_CDROM_PKTCDVD=m | 432 | CONFIG_CDROM_PKTCDVD=m |
429 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 433 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
430 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 434 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -666,10 +670,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
666 | # | 670 | # |
667 | 671 | ||
668 | # | 672 | # |
669 | # Multimedia Capabilities Port drivers | ||
670 | # | ||
671 | |||
672 | # | ||
673 | # Multimedia devices | 673 | # Multimedia devices |
674 | # | 674 | # |
675 | # CONFIG_VIDEO_DEV is not set | 675 | # CONFIG_VIDEO_DEV is not set |
@@ -704,7 +704,6 @@ CONFIG_SOUND=y | |||
704 | # Open Sound System | 704 | # Open Sound System |
705 | # | 705 | # |
706 | CONFIG_SOUND_PRIME=y | 706 | CONFIG_SOUND_PRIME=y |
707 | # CONFIG_OBSOLETE_OSS_DRIVER is not set | ||
708 | CONFIG_SOUND_IT8172=y | 707 | CONFIG_SOUND_IT8172=y |
709 | # CONFIG_SOUND_MSNDCLAS is not set | 708 | # CONFIG_SOUND_MSNDCLAS is not set |
710 | # CONFIG_SOUND_MSNDPIN is not set | 709 | # CONFIG_SOUND_MSNDPIN is not set |
@@ -714,6 +713,7 @@ CONFIG_SOUND_IT8172=y | |||
714 | # | 713 | # |
715 | # CONFIG_USB_ARCH_HAS_HCD is not set | 714 | # CONFIG_USB_ARCH_HAS_HCD is not set |
716 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 715 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
716 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
717 | 717 | ||
718 | # | 718 | # |
719 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 719 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -730,12 +730,30 @@ CONFIG_SOUND_IT8172=y | |||
730 | # CONFIG_MMC is not set | 730 | # CONFIG_MMC is not set |
731 | 731 | ||
732 | # | 732 | # |
733 | # LED devices | ||
734 | # | ||
735 | # CONFIG_NEW_LEDS is not set | ||
736 | |||
737 | # | ||
738 | # LED drivers | ||
739 | # | ||
740 | |||
741 | # | ||
742 | # LED Triggers | ||
743 | # | ||
744 | |||
745 | # | ||
733 | # InfiniBand support | 746 | # InfiniBand support |
734 | # | 747 | # |
735 | 748 | ||
736 | # | 749 | # |
737 | # SN Devices | 750 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
751 | # | ||
752 | |||
753 | # | ||
754 | # Real Time Clock | ||
738 | # | 755 | # |
756 | # CONFIG_RTC_CLASS is not set | ||
739 | 757 | ||
740 | # | 758 | # |
741 | # File systems | 759 | # File systems |
@@ -780,7 +798,6 @@ CONFIG_SYSFS=y | |||
780 | # CONFIG_TMPFS is not set | 798 | # CONFIG_TMPFS is not set |
781 | # CONFIG_HUGETLB_PAGE is not set | 799 | # CONFIG_HUGETLB_PAGE is not set |
782 | CONFIG_RAMFS=y | 800 | CONFIG_RAMFS=y |
783 | CONFIG_RELAYFS_FS=m | ||
784 | # CONFIG_CONFIGFS_FS is not set | 801 | # CONFIG_CONFIGFS_FS is not set |
785 | 802 | ||
786 | # | 803 | # |
@@ -846,6 +863,7 @@ CONFIG_MSDOS_PARTITION=y | |||
846 | # CONFIG_MAGIC_SYSRQ is not set | 863 | # CONFIG_MAGIC_SYSRQ is not set |
847 | # CONFIG_DEBUG_KERNEL is not set | 864 | # CONFIG_DEBUG_KERNEL is not set |
848 | CONFIG_LOG_BUF_SHIFT=14 | 865 | CONFIG_LOG_BUF_SHIFT=14 |
866 | # CONFIG_DEBUG_FS is not set | ||
849 | CONFIG_CROSSCOMPILE=y | 867 | CONFIG_CROSSCOMPILE=y |
850 | CONFIG_CMDLINE="" | 868 | CONFIG_CMDLINE="" |
851 | 869 | ||
diff --git a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig index a8376d125e11..021761a8a237 100644 --- a/arch/mips/configs/ivr_defconfig +++ b/arch/mips/configs/ivr_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:11 2006 | 4 | # Mon Apr 24 14:51:06 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_IVR=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -112,7 +114,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
112 | # CONFIG_PAGE_SIZE_16KB is not set | 114 | # CONFIG_PAGE_SIZE_16KB is not set |
113 | # CONFIG_PAGE_SIZE_64KB is not set | 115 | # CONFIG_PAGE_SIZE_64KB is not set |
114 | # CONFIG_MIPS_MT is not set | 116 | # CONFIG_MIPS_MT is not set |
115 | # CONFIG_CPU_ADVANCED is not set | ||
116 | CONFIG_CPU_HAS_LLSC=y | 117 | CONFIG_CPU_HAS_LLSC=y |
117 | CONFIG_CPU_HAS_SYNC=y | 118 | CONFIG_CPU_HAS_SYNC=y |
118 | CONFIG_GENERIC_HARDIRQS=y | 119 | CONFIG_GENERIC_HARDIRQS=y |
@@ -134,7 +135,6 @@ CONFIG_PREEMPT_NONE=y | |||
134 | # Code maturity level options | 135 | # Code maturity level options |
135 | # | 136 | # |
136 | CONFIG_EXPERIMENTAL=y | 137 | CONFIG_EXPERIMENTAL=y |
137 | CONFIG_CLEAN_COMPILE=y | ||
138 | CONFIG_BROKEN_ON_SMP=y | 138 | CONFIG_BROKEN_ON_SMP=y |
139 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 139 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
140 | 140 | ||
@@ -151,6 +151,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
151 | CONFIG_SYSCTL=y | 151 | CONFIG_SYSCTL=y |
152 | # CONFIG_AUDIT is not set | 152 | # CONFIG_AUDIT is not set |
153 | # CONFIG_IKCONFIG is not set | 153 | # CONFIG_IKCONFIG is not set |
154 | CONFIG_RELAY=y | ||
154 | CONFIG_INITRAMFS_SOURCE="" | 155 | CONFIG_INITRAMFS_SOURCE="" |
155 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 156 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
156 | CONFIG_EMBEDDED=y | 157 | CONFIG_EMBEDDED=y |
@@ -164,10 +165,6 @@ CONFIG_BASE_FULL=y | |||
164 | CONFIG_FUTEX=y | 165 | CONFIG_FUTEX=y |
165 | CONFIG_EPOLL=y | 166 | CONFIG_EPOLL=y |
166 | CONFIG_SHMEM=y | 167 | CONFIG_SHMEM=y |
167 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
168 | CONFIG_CC_ALIGN_LABELS=0 | ||
169 | CONFIG_CC_ALIGN_LOOPS=0 | ||
170 | CONFIG_CC_ALIGN_JUMPS=0 | ||
171 | CONFIG_SLAB=y | 168 | CONFIG_SLAB=y |
172 | # CONFIG_TINY_SHMEM is not set | 169 | # CONFIG_TINY_SHMEM is not set |
173 | CONFIG_BASE_SMALL=0 | 170 | CONFIG_BASE_SMALL=0 |
@@ -179,7 +176,6 @@ CONFIG_BASE_SMALL=0 | |||
179 | CONFIG_MODULES=y | 176 | CONFIG_MODULES=y |
180 | CONFIG_MODULE_UNLOAD=y | 177 | CONFIG_MODULE_UNLOAD=y |
181 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 178 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
182 | CONFIG_OBSOLETE_MODPARM=y | ||
183 | CONFIG_MODVERSIONS=y | 179 | CONFIG_MODVERSIONS=y |
184 | CONFIG_MODULE_SRCVERSION_ALL=y | 180 | CONFIG_MODULE_SRCVERSION_ALL=y |
185 | CONFIG_KMOD=y | 181 | CONFIG_KMOD=y |
@@ -188,6 +184,8 @@ CONFIG_KMOD=y | |||
188 | # Block layer | 184 | # Block layer |
189 | # | 185 | # |
190 | # CONFIG_LBD is not set | 186 | # CONFIG_LBD is not set |
187 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
188 | # CONFIG_LSF is not set | ||
191 | 189 | ||
192 | # | 190 | # |
193 | # IO Schedulers | 191 | # IO Schedulers |
@@ -207,7 +205,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
207 | # | 205 | # |
208 | CONFIG_HW_HAS_PCI=y | 206 | CONFIG_HW_HAS_PCI=y |
209 | CONFIG_PCI=y | 207 | CONFIG_PCI=y |
210 | CONFIG_PCI_LEGACY_PROC=y | ||
211 | CONFIG_MMU=y | 208 | CONFIG_MMU=y |
212 | 209 | ||
213 | # | 210 | # |
@@ -235,6 +232,7 @@ CONFIG_NET=y | |||
235 | # | 232 | # |
236 | # Networking options | 233 | # Networking options |
237 | # | 234 | # |
235 | # CONFIG_NETDEBUG is not set | ||
238 | CONFIG_PACKET=y | 236 | CONFIG_PACKET=y |
239 | CONFIG_PACKET_MMAP=y | 237 | CONFIG_PACKET_MMAP=y |
240 | CONFIG_UNIX=y | 238 | CONFIG_UNIX=y |
@@ -256,12 +254,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
256 | # CONFIG_INET_AH is not set | 254 | # CONFIG_INET_AH is not set |
257 | # CONFIG_INET_ESP is not set | 255 | # CONFIG_INET_ESP is not set |
258 | # CONFIG_INET_IPCOMP is not set | 256 | # CONFIG_INET_IPCOMP is not set |
259 | CONFIG_INET_TUNNEL=m | 257 | # CONFIG_INET_XFRM_TUNNEL is not set |
258 | # CONFIG_INET_TUNNEL is not set | ||
260 | CONFIG_INET_DIAG=y | 259 | CONFIG_INET_DIAG=y |
261 | CONFIG_INET_TCP_DIAG=y | 260 | CONFIG_INET_TCP_DIAG=y |
262 | # CONFIG_TCP_CONG_ADVANCED is not set | 261 | # CONFIG_TCP_CONG_ADVANCED is not set |
263 | CONFIG_TCP_CONG_BIC=y | 262 | CONFIG_TCP_CONG_BIC=y |
264 | # CONFIG_IPV6 is not set | 263 | # CONFIG_IPV6 is not set |
264 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
265 | # CONFIG_INET6_TUNNEL is not set | ||
265 | # CONFIG_NETFILTER is not set | 266 | # CONFIG_NETFILTER is not set |
266 | 267 | ||
267 | # | 268 | # |
@@ -273,6 +274,11 @@ CONFIG_TCP_CONG_BIC=y | |||
273 | # SCTP Configuration (EXPERIMENTAL) | 274 | # SCTP Configuration (EXPERIMENTAL) |
274 | # | 275 | # |
275 | # CONFIG_IP_SCTP is not set | 276 | # CONFIG_IP_SCTP is not set |
277 | |||
278 | # | ||
279 | # TIPC Configuration (EXPERIMENTAL) | ||
280 | # | ||
281 | # CONFIG_TIPC is not set | ||
276 | # CONFIG_ATM is not set | 282 | # CONFIG_ATM is not set |
277 | # CONFIG_BRIDGE is not set | 283 | # CONFIG_BRIDGE is not set |
278 | # CONFIG_VLAN_8021Q is not set | 284 | # CONFIG_VLAN_8021Q is not set |
@@ -282,11 +288,6 @@ CONFIG_TCP_CONG_BIC=y | |||
282 | # CONFIG_ATALK is not set | 288 | # CONFIG_ATALK is not set |
283 | # CONFIG_X25 is not set | 289 | # CONFIG_X25 is not set |
284 | # CONFIG_LAPB is not set | 290 | # CONFIG_LAPB is not set |
285 | |||
286 | # | ||
287 | # TIPC Configuration (EXPERIMENTAL) | ||
288 | # | ||
289 | # CONFIG_TIPC is not set | ||
290 | # CONFIG_NET_DIVERT is not set | 291 | # CONFIG_NET_DIVERT is not set |
291 | # CONFIG_ECONET is not set | 292 | # CONFIG_ECONET is not set |
292 | # CONFIG_WAN_ROUTER is not set | 293 | # CONFIG_WAN_ROUTER is not set |
@@ -307,6 +308,9 @@ CONFIG_IEEE80211=m | |||
307 | # CONFIG_IEEE80211_DEBUG is not set | 308 | # CONFIG_IEEE80211_DEBUG is not set |
308 | CONFIG_IEEE80211_CRYPT_WEP=m | 309 | CONFIG_IEEE80211_CRYPT_WEP=m |
309 | CONFIG_IEEE80211_CRYPT_CCMP=m | 310 | CONFIG_IEEE80211_CRYPT_CCMP=m |
311 | CONFIG_IEEE80211_SOFTMAC=m | ||
312 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
313 | CONFIG_WIRELESS_EXT=y | ||
310 | 314 | ||
311 | # | 315 | # |
312 | # Device Drivers | 316 | # Device Drivers |
@@ -350,7 +354,7 @@ CONFIG_CONNECTOR=m | |||
350 | # CONFIG_BLK_DEV_NBD is not set | 354 | # CONFIG_BLK_DEV_NBD is not set |
351 | # CONFIG_BLK_DEV_SX8 is not set | 355 | # CONFIG_BLK_DEV_SX8 is not set |
352 | # CONFIG_BLK_DEV_RAM is not set | 356 | # CONFIG_BLK_DEV_RAM is not set |
353 | CONFIG_BLK_DEV_RAM_COUNT=16 | 357 | # CONFIG_BLK_DEV_INITRD is not set |
354 | CONFIG_CDROM_PKTCDVD=m | 358 | CONFIG_CDROM_PKTCDVD=m |
355 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 359 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
356 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 360 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -565,6 +569,7 @@ CONFIG_IT8172_SCR1=y | |||
565 | # | 569 | # |
566 | CONFIG_SERIAL_8250=y | 570 | CONFIG_SERIAL_8250=y |
567 | CONFIG_SERIAL_8250_CONSOLE=y | 571 | CONFIG_SERIAL_8250_CONSOLE=y |
572 | CONFIG_SERIAL_8250_PCI=y | ||
568 | CONFIG_SERIAL_8250_NR_UARTS=4 | 573 | CONFIG_SERIAL_8250_NR_UARTS=4 |
569 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 574 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
570 | # CONFIG_SERIAL_8250_EXTENDED is not set | 575 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -574,6 +579,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
574 | # | 579 | # |
575 | CONFIG_SERIAL_CORE=y | 580 | CONFIG_SERIAL_CORE=y |
576 | CONFIG_SERIAL_CORE_CONSOLE=y | 581 | CONFIG_SERIAL_CORE_CONSOLE=y |
582 | # CONFIG_SERIAL_JSM is not set | ||
577 | CONFIG_UNIX98_PTYS=y | 583 | CONFIG_UNIX98_PTYS=y |
578 | CONFIG_LEGACY_PTYS=y | 584 | CONFIG_LEGACY_PTYS=y |
579 | CONFIG_LEGACY_PTY_COUNT=256 | 585 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -631,10 +637,6 @@ CONFIG_RTC=y | |||
631 | # | 637 | # |
632 | 638 | ||
633 | # | 639 | # |
634 | # Multimedia Capabilities Port drivers | ||
635 | # | ||
636 | |||
637 | # | ||
638 | # Multimedia devices | 640 | # Multimedia devices |
639 | # | 641 | # |
640 | # CONFIG_VIDEO_DEV is not set | 642 | # CONFIG_VIDEO_DEV is not set |
@@ -665,6 +667,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
665 | # | 667 | # |
666 | CONFIG_USB_ARCH_HAS_HCD=y | 668 | CONFIG_USB_ARCH_HAS_HCD=y |
667 | CONFIG_USB_ARCH_HAS_OHCI=y | 669 | CONFIG_USB_ARCH_HAS_OHCI=y |
670 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
668 | # CONFIG_USB is not set | 671 | # CONFIG_USB is not set |
669 | 672 | ||
670 | # | 673 | # |
@@ -682,13 +685,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
682 | # CONFIG_MMC is not set | 685 | # CONFIG_MMC is not set |
683 | 686 | ||
684 | # | 687 | # |
688 | # LED devices | ||
689 | # | ||
690 | # CONFIG_NEW_LEDS is not set | ||
691 | |||
692 | # | ||
693 | # LED drivers | ||
694 | # | ||
695 | |||
696 | # | ||
697 | # LED Triggers | ||
698 | # | ||
699 | |||
700 | # | ||
685 | # InfiniBand support | 701 | # InfiniBand support |
686 | # | 702 | # |
687 | # CONFIG_INFINIBAND is not set | 703 | # CONFIG_INFINIBAND is not set |
688 | 704 | ||
689 | # | 705 | # |
690 | # SN Devices | 706 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
707 | # | ||
708 | |||
709 | # | ||
710 | # Real Time Clock | ||
691 | # | 711 | # |
712 | # CONFIG_RTC_CLASS is not set | ||
692 | 713 | ||
693 | # | 714 | # |
694 | # File systems | 715 | # File systems |
@@ -733,7 +754,6 @@ CONFIG_SYSFS=y | |||
733 | # CONFIG_TMPFS is not set | 754 | # CONFIG_TMPFS is not set |
734 | # CONFIG_HUGETLB_PAGE is not set | 755 | # CONFIG_HUGETLB_PAGE is not set |
735 | CONFIG_RAMFS=y | 756 | CONFIG_RAMFS=y |
736 | CONFIG_RELAYFS_FS=m | ||
737 | # CONFIG_CONFIGFS_FS is not set | 757 | # CONFIG_CONFIGFS_FS is not set |
738 | 758 | ||
739 | # | 759 | # |
@@ -797,6 +817,7 @@ CONFIG_MSDOS_PARTITION=y | |||
797 | # CONFIG_MAGIC_SYSRQ is not set | 817 | # CONFIG_MAGIC_SYSRQ is not set |
798 | # CONFIG_DEBUG_KERNEL is not set | 818 | # CONFIG_DEBUG_KERNEL is not set |
799 | CONFIG_LOG_BUF_SHIFT=14 | 819 | CONFIG_LOG_BUF_SHIFT=14 |
820 | # CONFIG_DEBUG_FS is not set | ||
800 | CONFIG_CROSSCOMPILE=y | 821 | CONFIG_CROSSCOMPILE=y |
801 | CONFIG_CMDLINE="" | 822 | CONFIG_CMDLINE="" |
802 | 823 | ||
diff --git a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig index 316015379dbc..08f6c30b0abc 100644 --- a/arch/mips/configs/jaguar-atx_defconfig +++ b/arch/mips/configs/jaguar-atx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:12 2006 | 4 | # Mon Apr 24 14:51:06 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -65,6 +65,8 @@ CONFIG_MOMENCO_JAGUAR_ATX=y | |||
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_JAGUAR_DMALOW=y | 66 | CONFIG_JAGUAR_DMALOW=y |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
70 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -122,7 +124,6 @@ CONFIG_RM7000_CPU_SCACHE=y | |||
122 | CONFIG_CPU_HAS_PREFETCH=y | 124 | CONFIG_CPU_HAS_PREFETCH=y |
123 | # CONFIG_MIPS_MT is not set | 125 | # CONFIG_MIPS_MT is not set |
124 | # CONFIG_64BIT_PHYS_ADDR is not set | 126 | # CONFIG_64BIT_PHYS_ADDR is not set |
125 | # CONFIG_CPU_ADVANCED is not set | ||
126 | CONFIG_CPU_HAS_LLSC=y | 127 | CONFIG_CPU_HAS_LLSC=y |
127 | CONFIG_CPU_HAS_SYNC=y | 128 | CONFIG_CPU_HAS_SYNC=y |
128 | CONFIG_GENERIC_HARDIRQS=y | 129 | CONFIG_GENERIC_HARDIRQS=y |
@@ -144,7 +145,6 @@ CONFIG_PREEMPT_NONE=y | |||
144 | # Code maturity level options | 145 | # Code maturity level options |
145 | # | 146 | # |
146 | # CONFIG_EXPERIMENTAL is not set | 147 | # CONFIG_EXPERIMENTAL is not set |
147 | CONFIG_CLEAN_COMPILE=y | ||
148 | CONFIG_BROKEN_ON_SMP=y | 148 | CONFIG_BROKEN_ON_SMP=y |
149 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 149 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
150 | 150 | ||
@@ -160,6 +160,7 @@ CONFIG_SYSCTL=y | |||
160 | # CONFIG_AUDIT is not set | 160 | # CONFIG_AUDIT is not set |
161 | CONFIG_IKCONFIG=y | 161 | CONFIG_IKCONFIG=y |
162 | CONFIG_IKCONFIG_PROC=y | 162 | CONFIG_IKCONFIG_PROC=y |
163 | CONFIG_RELAY=y | ||
163 | CONFIG_INITRAMFS_SOURCE="" | 164 | CONFIG_INITRAMFS_SOURCE="" |
164 | CONFIG_EMBEDDED=y | 165 | CONFIG_EMBEDDED=y |
165 | CONFIG_KALLSYMS=y | 166 | CONFIG_KALLSYMS=y |
@@ -172,10 +173,6 @@ CONFIG_BASE_FULL=y | |||
172 | CONFIG_FUTEX=y | 173 | CONFIG_FUTEX=y |
173 | CONFIG_EPOLL=y | 174 | CONFIG_EPOLL=y |
174 | CONFIG_SHMEM=y | 175 | CONFIG_SHMEM=y |
175 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
176 | CONFIG_CC_ALIGN_LABELS=0 | ||
177 | CONFIG_CC_ALIGN_LOOPS=0 | ||
178 | CONFIG_CC_ALIGN_JUMPS=0 | ||
179 | CONFIG_SLAB=y | 176 | CONFIG_SLAB=y |
180 | # CONFIG_TINY_SHMEM is not set | 177 | # CONFIG_TINY_SHMEM is not set |
181 | CONFIG_BASE_SMALL=0 | 178 | CONFIG_BASE_SMALL=0 |
@@ -186,7 +183,6 @@ CONFIG_BASE_SMALL=0 | |||
186 | # | 183 | # |
187 | CONFIG_MODULES=y | 184 | CONFIG_MODULES=y |
188 | CONFIG_MODULE_UNLOAD=y | 185 | CONFIG_MODULE_UNLOAD=y |
189 | CONFIG_OBSOLETE_MODPARM=y | ||
190 | # CONFIG_MODVERSIONS is not set | 186 | # CONFIG_MODVERSIONS is not set |
191 | CONFIG_MODULE_SRCVERSION_ALL=y | 187 | CONFIG_MODULE_SRCVERSION_ALL=y |
192 | CONFIG_KMOD=y | 188 | CONFIG_KMOD=y |
@@ -195,6 +191,8 @@ CONFIG_KMOD=y | |||
195 | # Block layer | 191 | # Block layer |
196 | # | 192 | # |
197 | # CONFIG_LBD is not set | 193 | # CONFIG_LBD is not set |
194 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
195 | # CONFIG_LSF is not set | ||
198 | 196 | ||
199 | # | 197 | # |
200 | # IO Schedulers | 198 | # IO Schedulers |
@@ -214,7 +212,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
214 | # | 212 | # |
215 | CONFIG_HW_HAS_PCI=y | 213 | CONFIG_HW_HAS_PCI=y |
216 | CONFIG_PCI=y | 214 | CONFIG_PCI=y |
217 | CONFIG_PCI_LEGACY_PROC=y | ||
218 | CONFIG_MMU=y | 215 | CONFIG_MMU=y |
219 | 216 | ||
220 | # | 217 | # |
@@ -241,6 +238,7 @@ CONFIG_NET=y | |||
241 | # | 238 | # |
242 | # Networking options | 239 | # Networking options |
243 | # | 240 | # |
241 | # CONFIG_NETDEBUG is not set | ||
244 | # CONFIG_PACKET is not set | 242 | # CONFIG_PACKET is not set |
245 | CONFIG_UNIX=y | 243 | CONFIG_UNIX=y |
246 | CONFIG_XFRM=y | 244 | CONFIG_XFRM=y |
@@ -260,16 +258,19 @@ CONFIG_IP_PNP_BOOTP=y | |||
260 | # CONFIG_INET_AH is not set | 258 | # CONFIG_INET_AH is not set |
261 | # CONFIG_INET_ESP is not set | 259 | # CONFIG_INET_ESP is not set |
262 | # CONFIG_INET_IPCOMP is not set | 260 | # CONFIG_INET_IPCOMP is not set |
263 | CONFIG_INET_TUNNEL=m | 261 | # CONFIG_INET_XFRM_TUNNEL is not set |
262 | # CONFIG_INET_TUNNEL is not set | ||
264 | CONFIG_INET_DIAG=y | 263 | CONFIG_INET_DIAG=y |
265 | CONFIG_INET_TCP_DIAG=y | 264 | CONFIG_INET_TCP_DIAG=y |
266 | # CONFIG_TCP_CONG_ADVANCED is not set | 265 | # CONFIG_TCP_CONG_ADVANCED is not set |
267 | CONFIG_TCP_CONG_BIC=y | 266 | CONFIG_TCP_CONG_BIC=y |
268 | CONFIG_IPV6=m | 267 | CONFIG_IPV6=m |
269 | CONFIG_IPV6_PRIVACY=y | 268 | CONFIG_IPV6_PRIVACY=y |
269 | CONFIG_IPV6_ROUTER_PREF=y | ||
270 | CONFIG_INET6_AH=m | 270 | CONFIG_INET6_AH=m |
271 | CONFIG_INET6_ESP=m | 271 | CONFIG_INET6_ESP=m |
272 | CONFIG_INET6_IPCOMP=m | 272 | CONFIG_INET6_IPCOMP=m |
273 | CONFIG_INET6_XFRM_TUNNEL=m | ||
273 | CONFIG_INET6_TUNNEL=m | 274 | CONFIG_INET6_TUNNEL=m |
274 | CONFIG_IPV6_TUNNEL=m | 275 | CONFIG_IPV6_TUNNEL=m |
275 | # CONFIG_NETFILTER is not set | 276 | # CONFIG_NETFILTER is not set |
@@ -338,10 +339,9 @@ CONFIG_CONNECTOR=m | |||
338 | # CONFIG_BLK_DEV_NBD is not set | 339 | # CONFIG_BLK_DEV_NBD is not set |
339 | # CONFIG_BLK_DEV_SX8 is not set | 340 | # CONFIG_BLK_DEV_SX8 is not set |
340 | # CONFIG_BLK_DEV_RAM is not set | 341 | # CONFIG_BLK_DEV_RAM is not set |
341 | CONFIG_BLK_DEV_RAM_COUNT=16 | 342 | # CONFIG_BLK_DEV_INITRD is not set |
342 | CONFIG_CDROM_PKTCDVD=m | 343 | CONFIG_CDROM_PKTCDVD=m |
343 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 344 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
344 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
345 | CONFIG_ATA_OVER_ETH=m | 345 | CONFIG_ATA_OVER_ETH=m |
346 | 346 | ||
347 | # | 347 | # |
@@ -423,6 +423,7 @@ CONFIG_NET_PCI=y | |||
423 | # CONFIG_PCNET32 is not set | 423 | # CONFIG_PCNET32 is not set |
424 | # CONFIG_AMD8111_ETH is not set | 424 | # CONFIG_AMD8111_ETH is not set |
425 | # CONFIG_ADAPTEC_STARFIRE is not set | 425 | # CONFIG_ADAPTEC_STARFIRE is not set |
426 | # CONFIG_FORCEDETH is not set | ||
426 | # CONFIG_DGRS is not set | 427 | # CONFIG_DGRS is not set |
427 | CONFIG_EEPRO100=y | 428 | CONFIG_EEPRO100=y |
428 | # CONFIG_E100 is not set | 429 | # CONFIG_E100 is not set |
@@ -446,6 +447,7 @@ CONFIG_EEPRO100=y | |||
446 | # CONFIG_HAMACHI is not set | 447 | # CONFIG_HAMACHI is not set |
447 | # CONFIG_R8169 is not set | 448 | # CONFIG_R8169 is not set |
448 | # CONFIG_SIS190 is not set | 449 | # CONFIG_SIS190 is not set |
450 | # CONFIG_SKGE is not set | ||
449 | # CONFIG_SK98LIN is not set | 451 | # CONFIG_SK98LIN is not set |
450 | # CONFIG_VIA_VELOCITY is not set | 452 | # CONFIG_VIA_VELOCITY is not set |
451 | # CONFIG_TIGON3 is not set | 453 | # CONFIG_TIGON3 is not set |
@@ -514,6 +516,7 @@ CONFIG_MV643XX_ETH_2=y | |||
514 | # | 516 | # |
515 | CONFIG_SERIAL_8250=y | 517 | CONFIG_SERIAL_8250=y |
516 | CONFIG_SERIAL_8250_CONSOLE=y | 518 | CONFIG_SERIAL_8250_CONSOLE=y |
519 | CONFIG_SERIAL_8250_PCI=y | ||
517 | CONFIG_SERIAL_8250_NR_UARTS=4 | 520 | CONFIG_SERIAL_8250_NR_UARTS=4 |
518 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 521 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
519 | # CONFIG_SERIAL_8250_EXTENDED is not set | 522 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -523,6 +526,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
523 | # | 526 | # |
524 | CONFIG_SERIAL_CORE=y | 527 | CONFIG_SERIAL_CORE=y |
525 | CONFIG_SERIAL_CORE_CONSOLE=y | 528 | CONFIG_SERIAL_CORE_CONSOLE=y |
529 | # CONFIG_SERIAL_JSM is not set | ||
526 | CONFIG_UNIX98_PTYS=y | 530 | CONFIG_UNIX98_PTYS=y |
527 | CONFIG_LEGACY_PTYS=y | 531 | CONFIG_LEGACY_PTYS=y |
528 | CONFIG_LEGACY_PTY_COUNT=256 | 532 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -579,10 +583,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
579 | # | 583 | # |
580 | 584 | ||
581 | # | 585 | # |
582 | # Multimedia Capabilities Port drivers | ||
583 | # | ||
584 | |||
585 | # | ||
586 | # Multimedia devices | 586 | # Multimedia devices |
587 | # | 587 | # |
588 | # CONFIG_VIDEO_DEV is not set | 588 | # CONFIG_VIDEO_DEV is not set |
@@ -607,6 +607,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
607 | # | 607 | # |
608 | CONFIG_USB_ARCH_HAS_HCD=y | 608 | CONFIG_USB_ARCH_HAS_HCD=y |
609 | CONFIG_USB_ARCH_HAS_OHCI=y | 609 | CONFIG_USB_ARCH_HAS_OHCI=y |
610 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
610 | # CONFIG_USB is not set | 611 | # CONFIG_USB is not set |
611 | 612 | ||
612 | # | 613 | # |
@@ -624,12 +625,29 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
624 | # CONFIG_MMC is not set | 625 | # CONFIG_MMC is not set |
625 | 626 | ||
626 | # | 627 | # |
628 | # LED devices | ||
629 | # | ||
630 | # CONFIG_NEW_LEDS is not set | ||
631 | |||
632 | # | ||
633 | # LED drivers | ||
634 | # | ||
635 | |||
636 | # | ||
637 | # LED Triggers | ||
638 | # | ||
639 | |||
640 | # | ||
627 | # InfiniBand support | 641 | # InfiniBand support |
628 | # | 642 | # |
629 | # CONFIG_INFINIBAND is not set | 643 | # CONFIG_INFINIBAND is not set |
630 | 644 | ||
631 | # | 645 | # |
632 | # SN Devices | 646 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
647 | # | ||
648 | |||
649 | # | ||
650 | # Real Time Clock | ||
633 | # | 651 | # |
634 | 652 | ||
635 | # | 653 | # |
@@ -672,7 +690,6 @@ CONFIG_SYSFS=y | |||
672 | # CONFIG_TMPFS is not set | 690 | # CONFIG_TMPFS is not set |
673 | # CONFIG_HUGETLB_PAGE is not set | 691 | # CONFIG_HUGETLB_PAGE is not set |
674 | CONFIG_RAMFS=y | 692 | CONFIG_RAMFS=y |
675 | CONFIG_RELAYFS_FS=m | ||
676 | 693 | ||
677 | # | 694 | # |
678 | # Miscellaneous filesystems | 695 | # Miscellaneous filesystems |
@@ -718,6 +735,7 @@ CONFIG_MSDOS_PARTITION=y | |||
718 | # CONFIG_MAGIC_SYSRQ is not set | 735 | # CONFIG_MAGIC_SYSRQ is not set |
719 | # CONFIG_DEBUG_KERNEL is not set | 736 | # CONFIG_DEBUG_KERNEL is not set |
720 | CONFIG_LOG_BUF_SHIFT=14 | 737 | CONFIG_LOG_BUF_SHIFT=14 |
738 | # CONFIG_DEBUG_FS is not set | ||
721 | CONFIG_CROSSCOMPILE=y | 739 | CONFIG_CROSSCOMPILE=y |
722 | CONFIG_CMDLINE="" | 740 | CONFIG_CMDLINE="" |
723 | 741 | ||
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig index 53fbef1ac25d..38b1e026e10d 100644 --- a/arch/mips/configs/jmr3927_defconfig +++ b/arch/mips/configs/jmr3927_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:13 2006 | 4 | # Mon Apr 24 14:51:07 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_TOSHIBA_JMR3927=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -111,7 +113,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
111 | # CONFIG_PAGE_SIZE_16KB is not set | 113 | # CONFIG_PAGE_SIZE_16KB is not set |
112 | # CONFIG_PAGE_SIZE_64KB is not set | 114 | # CONFIG_PAGE_SIZE_64KB is not set |
113 | # CONFIG_MIPS_MT is not set | 115 | # CONFIG_MIPS_MT is not set |
114 | # CONFIG_CPU_ADVANCED is not set | ||
115 | CONFIG_CPU_HAS_SYNC=y | 116 | CONFIG_CPU_HAS_SYNC=y |
116 | CONFIG_GENERIC_HARDIRQS=y | 117 | CONFIG_GENERIC_HARDIRQS=y |
117 | CONFIG_GENERIC_IRQ_PROBE=y | 118 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -133,7 +134,6 @@ CONFIG_RTC_DS1742=y | |||
133 | # Code maturity level options | 134 | # Code maturity level options |
134 | # | 135 | # |
135 | CONFIG_EXPERIMENTAL=y | 136 | CONFIG_EXPERIMENTAL=y |
136 | CONFIG_CLEAN_COMPILE=y | ||
137 | CONFIG_BROKEN_ON_SMP=y | 137 | CONFIG_BROKEN_ON_SMP=y |
138 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 138 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
139 | 139 | ||
@@ -149,6 +149,7 @@ CONFIG_SYSVIPC=y | |||
149 | CONFIG_SYSCTL=y | 149 | CONFIG_SYSCTL=y |
150 | # CONFIG_AUDIT is not set | 150 | # CONFIG_AUDIT is not set |
151 | # CONFIG_IKCONFIG is not set | 151 | # CONFIG_IKCONFIG is not set |
152 | CONFIG_RELAY=y | ||
152 | CONFIG_INITRAMFS_SOURCE="" | 153 | CONFIG_INITRAMFS_SOURCE="" |
153 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 154 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
154 | CONFIG_EMBEDDED=y | 155 | CONFIG_EMBEDDED=y |
@@ -162,10 +163,6 @@ CONFIG_BASE_FULL=y | |||
162 | CONFIG_FUTEX=y | 163 | CONFIG_FUTEX=y |
163 | CONFIG_EPOLL=y | 164 | CONFIG_EPOLL=y |
164 | CONFIG_SHMEM=y | 165 | CONFIG_SHMEM=y |
165 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
166 | CONFIG_CC_ALIGN_LABELS=0 | ||
167 | CONFIG_CC_ALIGN_LOOPS=0 | ||
168 | CONFIG_CC_ALIGN_JUMPS=0 | ||
169 | CONFIG_SLAB=y | 166 | CONFIG_SLAB=y |
170 | # CONFIG_TINY_SHMEM is not set | 167 | # CONFIG_TINY_SHMEM is not set |
171 | CONFIG_BASE_SMALL=0 | 168 | CONFIG_BASE_SMALL=0 |
@@ -180,6 +177,8 @@ CONFIG_BASE_SMALL=0 | |||
180 | # Block layer | 177 | # Block layer |
181 | # | 178 | # |
182 | # CONFIG_LBD is not set | 179 | # CONFIG_LBD is not set |
180 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
181 | # CONFIG_LSF is not set | ||
183 | 182 | ||
184 | # | 183 | # |
185 | # IO Schedulers | 184 | # IO Schedulers |
@@ -199,7 +198,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
199 | # | 198 | # |
200 | CONFIG_HW_HAS_PCI=y | 199 | CONFIG_HW_HAS_PCI=y |
201 | CONFIG_PCI=y | 200 | CONFIG_PCI=y |
202 | CONFIG_PCI_LEGACY_PROC=y | ||
203 | CONFIG_MMU=y | 201 | CONFIG_MMU=y |
204 | 202 | ||
205 | # | 203 | # |
@@ -227,6 +225,7 @@ CONFIG_NET=y | |||
227 | # | 225 | # |
228 | # Networking options | 226 | # Networking options |
229 | # | 227 | # |
228 | # CONFIG_NETDEBUG is not set | ||
230 | CONFIG_PACKET=y | 229 | CONFIG_PACKET=y |
231 | # CONFIG_PACKET_MMAP is not set | 230 | # CONFIG_PACKET_MMAP is not set |
232 | CONFIG_UNIX=y | 231 | CONFIG_UNIX=y |
@@ -248,12 +247,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
248 | # CONFIG_INET_AH is not set | 247 | # CONFIG_INET_AH is not set |
249 | # CONFIG_INET_ESP is not set | 248 | # CONFIG_INET_ESP is not set |
250 | # CONFIG_INET_IPCOMP is not set | 249 | # CONFIG_INET_IPCOMP is not set |
251 | CONFIG_INET_TUNNEL=y | 250 | # CONFIG_INET_XFRM_TUNNEL is not set |
251 | # CONFIG_INET_TUNNEL is not set | ||
252 | CONFIG_INET_DIAG=y | 252 | CONFIG_INET_DIAG=y |
253 | CONFIG_INET_TCP_DIAG=y | 253 | CONFIG_INET_TCP_DIAG=y |
254 | # CONFIG_TCP_CONG_ADVANCED is not set | 254 | # CONFIG_TCP_CONG_ADVANCED is not set |
255 | CONFIG_TCP_CONG_BIC=y | 255 | CONFIG_TCP_CONG_BIC=y |
256 | # CONFIG_IPV6 is not set | 256 | # CONFIG_IPV6 is not set |
257 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
258 | # CONFIG_INET6_TUNNEL is not set | ||
257 | # CONFIG_NETFILTER is not set | 259 | # CONFIG_NETFILTER is not set |
258 | 260 | ||
259 | # | 261 | # |
@@ -265,6 +267,11 @@ CONFIG_TCP_CONG_BIC=y | |||
265 | # SCTP Configuration (EXPERIMENTAL) | 267 | # SCTP Configuration (EXPERIMENTAL) |
266 | # | 268 | # |
267 | # CONFIG_IP_SCTP is not set | 269 | # CONFIG_IP_SCTP is not set |
270 | |||
271 | # | ||
272 | # TIPC Configuration (EXPERIMENTAL) | ||
273 | # | ||
274 | # CONFIG_TIPC is not set | ||
268 | # CONFIG_ATM is not set | 275 | # CONFIG_ATM is not set |
269 | # CONFIG_BRIDGE is not set | 276 | # CONFIG_BRIDGE is not set |
270 | # CONFIG_VLAN_8021Q is not set | 277 | # CONFIG_VLAN_8021Q is not set |
@@ -274,11 +281,6 @@ CONFIG_TCP_CONG_BIC=y | |||
274 | # CONFIG_ATALK is not set | 281 | # CONFIG_ATALK is not set |
275 | # CONFIG_X25 is not set | 282 | # CONFIG_X25 is not set |
276 | # CONFIG_LAPB is not set | 283 | # CONFIG_LAPB is not set |
277 | |||
278 | # | ||
279 | # TIPC Configuration (EXPERIMENTAL) | ||
280 | # | ||
281 | # CONFIG_TIPC is not set | ||
282 | # CONFIG_NET_DIVERT is not set | 284 | # CONFIG_NET_DIVERT is not set |
283 | # CONFIG_ECONET is not set | 285 | # CONFIG_ECONET is not set |
284 | # CONFIG_WAN_ROUTER is not set | 286 | # CONFIG_WAN_ROUTER is not set |
@@ -299,6 +301,9 @@ CONFIG_IEEE80211=y | |||
299 | # CONFIG_IEEE80211_DEBUG is not set | 301 | # CONFIG_IEEE80211_DEBUG is not set |
300 | CONFIG_IEEE80211_CRYPT_WEP=y | 302 | CONFIG_IEEE80211_CRYPT_WEP=y |
301 | CONFIG_IEEE80211_CRYPT_CCMP=y | 303 | CONFIG_IEEE80211_CRYPT_CCMP=y |
304 | CONFIG_IEEE80211_SOFTMAC=y | ||
305 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
306 | CONFIG_WIRELESS_EXT=y | ||
302 | 307 | ||
303 | # | 308 | # |
304 | # Device Drivers | 309 | # Device Drivers |
@@ -343,7 +348,7 @@ CONFIG_PROC_EVENTS=y | |||
343 | # CONFIG_BLK_DEV_NBD is not set | 348 | # CONFIG_BLK_DEV_NBD is not set |
344 | # CONFIG_BLK_DEV_SX8 is not set | 349 | # CONFIG_BLK_DEV_SX8 is not set |
345 | # CONFIG_BLK_DEV_RAM is not set | 350 | # CONFIG_BLK_DEV_RAM is not set |
346 | CONFIG_BLK_DEV_RAM_COUNT=16 | 351 | # CONFIG_BLK_DEV_INITRD is not set |
347 | CONFIG_CDROM_PKTCDVD=y | 352 | CONFIG_CDROM_PKTCDVD=y |
348 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 353 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
349 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 354 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -551,7 +556,12 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
551 | # | 556 | # |
552 | # Non-8250 serial port support | 557 | # Non-8250 serial port support |
553 | # | 558 | # |
559 | CONFIG_SERIAL_CORE=y | ||
560 | CONFIG_SERIAL_TXX9=y | ||
554 | CONFIG_HAS_TXX9_SERIAL=y | 561 | CONFIG_HAS_TXX9_SERIAL=y |
562 | # CONFIG_SERIAL_TXX9_CONSOLE is not set | ||
563 | # CONFIG_SERIAL_TXX9_STDSERIAL is not set | ||
564 | # CONFIG_SERIAL_JSM is not set | ||
555 | # CONFIG_UNIX98_PTYS is not set | 565 | # CONFIG_UNIX98_PTYS is not set |
556 | CONFIG_LEGACY_PTYS=y | 566 | CONFIG_LEGACY_PTYS=y |
557 | CONFIG_LEGACY_PTY_COUNT=256 | 567 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -610,10 +620,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
610 | # | 620 | # |
611 | 621 | ||
612 | # | 622 | # |
613 | # Multimedia Capabilities Port drivers | ||
614 | # | ||
615 | |||
616 | # | ||
617 | # Multimedia devices | 623 | # Multimedia devices |
618 | # | 624 | # |
619 | # CONFIG_VIDEO_DEV is not set | 625 | # CONFIG_VIDEO_DEV is not set |
@@ -631,6 +637,7 @@ CONFIG_FB=y | |||
631 | # CONFIG_FB_CFB_COPYAREA is not set | 637 | # CONFIG_FB_CFB_COPYAREA is not set |
632 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 638 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
633 | # CONFIG_FB_MACMODES is not set | 639 | # CONFIG_FB_MACMODES is not set |
640 | CONFIG_FB_FIRMWARE_EDID=y | ||
634 | # CONFIG_FB_MODE_HELPERS is not set | 641 | # CONFIG_FB_MODE_HELPERS is not set |
635 | # CONFIG_FB_TILEBLITTING is not set | 642 | # CONFIG_FB_TILEBLITTING is not set |
636 | # CONFIG_FB_CIRRUS is not set | 643 | # CONFIG_FB_CIRRUS is not set |
@@ -642,7 +649,6 @@ CONFIG_FB=y | |||
642 | # CONFIG_FB_NVIDIA is not set | 649 | # CONFIG_FB_NVIDIA is not set |
643 | # CONFIG_FB_RIVA is not set | 650 | # CONFIG_FB_RIVA is not set |
644 | # CONFIG_FB_MATROX is not set | 651 | # CONFIG_FB_MATROX is not set |
645 | # CONFIG_FB_RADEON_OLD is not set | ||
646 | # CONFIG_FB_RADEON is not set | 652 | # CONFIG_FB_RADEON is not set |
647 | # CONFIG_FB_ATY128 is not set | 653 | # CONFIG_FB_ATY128 is not set |
648 | # CONFIG_FB_ATY is not set | 654 | # CONFIG_FB_ATY is not set |
@@ -679,6 +685,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
679 | # | 685 | # |
680 | CONFIG_USB_ARCH_HAS_HCD=y | 686 | CONFIG_USB_ARCH_HAS_HCD=y |
681 | CONFIG_USB_ARCH_HAS_OHCI=y | 687 | CONFIG_USB_ARCH_HAS_OHCI=y |
688 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
682 | # CONFIG_USB is not set | 689 | # CONFIG_USB is not set |
683 | 690 | ||
684 | # | 691 | # |
@@ -696,13 +703,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
696 | # CONFIG_MMC is not set | 703 | # CONFIG_MMC is not set |
697 | 704 | ||
698 | # | 705 | # |
706 | # LED devices | ||
707 | # | ||
708 | # CONFIG_NEW_LEDS is not set | ||
709 | |||
710 | # | ||
711 | # LED drivers | ||
712 | # | ||
713 | |||
714 | # | ||
715 | # LED Triggers | ||
716 | # | ||
717 | |||
718 | # | ||
699 | # InfiniBand support | 719 | # InfiniBand support |
700 | # | 720 | # |
701 | # CONFIG_INFINIBAND is not set | 721 | # CONFIG_INFINIBAND is not set |
702 | 722 | ||
703 | # | 723 | # |
704 | # SN Devices | 724 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
725 | # | ||
726 | |||
727 | # | ||
728 | # Real Time Clock | ||
705 | # | 729 | # |
730 | # CONFIG_RTC_CLASS is not set | ||
706 | 731 | ||
707 | # | 732 | # |
708 | # File systems | 733 | # File systems |
@@ -745,7 +770,6 @@ CONFIG_SYSFS=y | |||
745 | # CONFIG_TMPFS is not set | 770 | # CONFIG_TMPFS is not set |
746 | # CONFIG_HUGETLB_PAGE is not set | 771 | # CONFIG_HUGETLB_PAGE is not set |
747 | CONFIG_RAMFS=y | 772 | CONFIG_RAMFS=y |
748 | CONFIG_RELAYFS_FS=y | ||
749 | # CONFIG_CONFIGFS_FS is not set | 773 | # CONFIG_CONFIGFS_FS is not set |
750 | 774 | ||
751 | # | 775 | # |
@@ -809,6 +833,8 @@ CONFIG_MSDOS_PARTITION=y | |||
809 | # CONFIG_MAGIC_SYSRQ is not set | 833 | # CONFIG_MAGIC_SYSRQ is not set |
810 | # CONFIG_DEBUG_KERNEL is not set | 834 | # CONFIG_DEBUG_KERNEL is not set |
811 | CONFIG_LOG_BUF_SHIFT=14 | 835 | CONFIG_LOG_BUF_SHIFT=14 |
836 | # CONFIG_DEBUG_FS is not set | ||
837 | # CONFIG_UNWIND_INFO is not set | ||
812 | CONFIG_CROSSCOMPILE=y | 838 | CONFIG_CROSSCOMPILE=y |
813 | CONFIG_CMDLINE="" | 839 | CONFIG_CMDLINE="" |
814 | 840 | ||
diff --git a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig index ef0fa9fc79d6..4d25990a0a05 100644 --- a/arch/mips/configs/lasat200_defconfig +++ b/arch/mips/configs/lasat200_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:14 2006 | 4 | # Mon Apr 24 14:51:07 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -68,6 +68,8 @@ CONFIG_PICVUE_PROC=y | |||
68 | CONFIG_DS1603=y | 68 | CONFIG_DS1603=y |
69 | CONFIG_LASAT_SYSCTL=y | 69 | CONFIG_LASAT_SYSCTL=y |
70 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 70 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
71 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
72 | CONFIG_GENERIC_HWEIGHT=y | ||
71 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 73 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
72 | CONFIG_DMA_NONCOHERENT=y | 74 | CONFIG_DMA_NONCOHERENT=y |
73 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -119,7 +121,6 @@ CONFIG_BOARD_SCACHE=y | |||
119 | CONFIG_R5000_CPU_SCACHE=y | 121 | CONFIG_R5000_CPU_SCACHE=y |
120 | # CONFIG_MIPS_MT is not set | 122 | # CONFIG_MIPS_MT is not set |
121 | # CONFIG_64BIT_PHYS_ADDR is not set | 123 | # CONFIG_64BIT_PHYS_ADDR is not set |
122 | # CONFIG_CPU_ADVANCED is not set | ||
123 | CONFIG_CPU_HAS_LLSC=y | 124 | CONFIG_CPU_HAS_LLSC=y |
124 | CONFIG_CPU_HAS_SYNC=y | 125 | CONFIG_CPU_HAS_SYNC=y |
125 | CONFIG_GENERIC_HARDIRQS=y | 126 | CONFIG_GENERIC_HARDIRQS=y |
@@ -141,7 +142,6 @@ CONFIG_PREEMPT_NONE=y | |||
141 | # Code maturity level options | 142 | # Code maturity level options |
142 | # | 143 | # |
143 | CONFIG_EXPERIMENTAL=y | 144 | CONFIG_EXPERIMENTAL=y |
144 | CONFIG_CLEAN_COMPILE=y | ||
145 | CONFIG_BROKEN_ON_SMP=y | 145 | CONFIG_BROKEN_ON_SMP=y |
146 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 146 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
147 | 147 | ||
@@ -157,6 +157,7 @@ CONFIG_SYSVIPC=y | |||
157 | CONFIG_SYSCTL=y | 157 | CONFIG_SYSCTL=y |
158 | # CONFIG_AUDIT is not set | 158 | # CONFIG_AUDIT is not set |
159 | # CONFIG_IKCONFIG is not set | 159 | # CONFIG_IKCONFIG is not set |
160 | CONFIG_RELAY=y | ||
160 | CONFIG_INITRAMFS_SOURCE="" | 161 | CONFIG_INITRAMFS_SOURCE="" |
161 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 162 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
162 | CONFIG_EMBEDDED=y | 163 | CONFIG_EMBEDDED=y |
@@ -170,10 +171,6 @@ CONFIG_BASE_FULL=y | |||
170 | CONFIG_FUTEX=y | 171 | CONFIG_FUTEX=y |
171 | CONFIG_EPOLL=y | 172 | CONFIG_EPOLL=y |
172 | CONFIG_SHMEM=y | 173 | CONFIG_SHMEM=y |
173 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
174 | CONFIG_CC_ALIGN_LABELS=0 | ||
175 | CONFIG_CC_ALIGN_LOOPS=0 | ||
176 | CONFIG_CC_ALIGN_JUMPS=0 | ||
177 | CONFIG_SLAB=y | 174 | CONFIG_SLAB=y |
178 | # CONFIG_TINY_SHMEM is not set | 175 | # CONFIG_TINY_SHMEM is not set |
179 | CONFIG_BASE_SMALL=0 | 176 | CONFIG_BASE_SMALL=0 |
@@ -186,7 +183,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
186 | CONFIG_MODULES=y | 183 | CONFIG_MODULES=y |
187 | CONFIG_MODULE_UNLOAD=y | 184 | CONFIG_MODULE_UNLOAD=y |
188 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 185 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
189 | CONFIG_OBSOLETE_MODPARM=y | ||
190 | CONFIG_MODVERSIONS=y | 186 | CONFIG_MODVERSIONS=y |
191 | CONFIG_MODULE_SRCVERSION_ALL=y | 187 | CONFIG_MODULE_SRCVERSION_ALL=y |
192 | CONFIG_KMOD=y | 188 | CONFIG_KMOD=y |
@@ -195,6 +191,8 @@ CONFIG_KMOD=y | |||
195 | # Block layer | 191 | # Block layer |
196 | # | 192 | # |
197 | # CONFIG_LBD is not set | 193 | # CONFIG_LBD is not set |
194 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
195 | # CONFIG_LSF is not set | ||
198 | 196 | ||
199 | # | 197 | # |
200 | # IO Schedulers | 198 | # IO Schedulers |
@@ -214,7 +212,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
214 | # | 212 | # |
215 | CONFIG_HW_HAS_PCI=y | 213 | CONFIG_HW_HAS_PCI=y |
216 | CONFIG_PCI=y | 214 | CONFIG_PCI=y |
217 | CONFIG_PCI_LEGACY_PROC=y | ||
218 | CONFIG_MMU=y | 215 | CONFIG_MMU=y |
219 | 216 | ||
220 | # | 217 | # |
@@ -242,6 +239,7 @@ CONFIG_NET=y | |||
242 | # | 239 | # |
243 | # Networking options | 240 | # Networking options |
244 | # | 241 | # |
242 | # CONFIG_NETDEBUG is not set | ||
245 | # CONFIG_PACKET is not set | 243 | # CONFIG_PACKET is not set |
246 | CONFIG_UNIX=y | 244 | CONFIG_UNIX=y |
247 | CONFIG_XFRM=y | 245 | CONFIG_XFRM=y |
@@ -259,12 +257,15 @@ CONFIG_IP_FIB_HASH=y | |||
259 | # CONFIG_INET_AH is not set | 257 | # CONFIG_INET_AH is not set |
260 | # CONFIG_INET_ESP is not set | 258 | # CONFIG_INET_ESP is not set |
261 | # CONFIG_INET_IPCOMP is not set | 259 | # CONFIG_INET_IPCOMP is not set |
262 | CONFIG_INET_TUNNEL=m | 260 | # CONFIG_INET_XFRM_TUNNEL is not set |
261 | # CONFIG_INET_TUNNEL is not set | ||
263 | CONFIG_INET_DIAG=y | 262 | CONFIG_INET_DIAG=y |
264 | CONFIG_INET_TCP_DIAG=y | 263 | CONFIG_INET_TCP_DIAG=y |
265 | # CONFIG_TCP_CONG_ADVANCED is not set | 264 | # CONFIG_TCP_CONG_ADVANCED is not set |
266 | CONFIG_TCP_CONG_BIC=y | 265 | CONFIG_TCP_CONG_BIC=y |
267 | # CONFIG_IPV6 is not set | 266 | # CONFIG_IPV6 is not set |
267 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
268 | # CONFIG_INET6_TUNNEL is not set | ||
268 | # CONFIG_NETFILTER is not set | 269 | # CONFIG_NETFILTER is not set |
269 | 270 | ||
270 | # | 271 | # |
@@ -276,6 +277,11 @@ CONFIG_TCP_CONG_BIC=y | |||
276 | # SCTP Configuration (EXPERIMENTAL) | 277 | # SCTP Configuration (EXPERIMENTAL) |
277 | # | 278 | # |
278 | # CONFIG_IP_SCTP is not set | 279 | # CONFIG_IP_SCTP is not set |
280 | |||
281 | # | ||
282 | # TIPC Configuration (EXPERIMENTAL) | ||
283 | # | ||
284 | # CONFIG_TIPC is not set | ||
279 | # CONFIG_ATM is not set | 285 | # CONFIG_ATM is not set |
280 | # CONFIG_BRIDGE is not set | 286 | # CONFIG_BRIDGE is not set |
281 | # CONFIG_VLAN_8021Q is not set | 287 | # CONFIG_VLAN_8021Q is not set |
@@ -285,11 +291,6 @@ CONFIG_TCP_CONG_BIC=y | |||
285 | # CONFIG_ATALK is not set | 291 | # CONFIG_ATALK is not set |
286 | # CONFIG_X25 is not set | 292 | # CONFIG_X25 is not set |
287 | # CONFIG_LAPB is not set | 293 | # CONFIG_LAPB is not set |
288 | |||
289 | # | ||
290 | # TIPC Configuration (EXPERIMENTAL) | ||
291 | # | ||
292 | # CONFIG_TIPC is not set | ||
293 | # CONFIG_NET_DIVERT is not set | 294 | # CONFIG_NET_DIVERT is not set |
294 | # CONFIG_ECONET is not set | 295 | # CONFIG_ECONET is not set |
295 | # CONFIG_WAN_ROUTER is not set | 296 | # CONFIG_WAN_ROUTER is not set |
@@ -310,6 +311,9 @@ CONFIG_IEEE80211=m | |||
310 | # CONFIG_IEEE80211_DEBUG is not set | 311 | # CONFIG_IEEE80211_DEBUG is not set |
311 | CONFIG_IEEE80211_CRYPT_WEP=m | 312 | CONFIG_IEEE80211_CRYPT_WEP=m |
312 | CONFIG_IEEE80211_CRYPT_CCMP=m | 313 | CONFIG_IEEE80211_CRYPT_CCMP=m |
314 | CONFIG_IEEE80211_SOFTMAC=m | ||
315 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
316 | CONFIG_WIRELESS_EXT=y | ||
313 | 317 | ||
314 | # | 318 | # |
315 | # Device Drivers | 319 | # Device Drivers |
@@ -366,7 +370,6 @@ CONFIG_MTD_CFI_I2=y | |||
366 | # CONFIG_MTD_CFI_I8 is not set | 370 | # CONFIG_MTD_CFI_I8 is not set |
367 | # CONFIG_MTD_CFI_INTELEXT is not set | 371 | # CONFIG_MTD_CFI_INTELEXT is not set |
368 | CONFIG_MTD_CFI_AMDSTD=y | 372 | CONFIG_MTD_CFI_AMDSTD=y |
369 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
370 | # CONFIG_MTD_CFI_STAA is not set | 373 | # CONFIG_MTD_CFI_STAA is not set |
371 | CONFIG_MTD_CFI_UTIL=y | 374 | CONFIG_MTD_CFI_UTIL=y |
372 | # CONFIG_MTD_RAM is not set | 375 | # CONFIG_MTD_RAM is not set |
@@ -389,7 +392,6 @@ CONFIG_MTD_LASAT=y | |||
389 | # CONFIG_MTD_SLRAM is not set | 392 | # CONFIG_MTD_SLRAM is not set |
390 | # CONFIG_MTD_PHRAM is not set | 393 | # CONFIG_MTD_PHRAM is not set |
391 | # CONFIG_MTD_MTDRAM is not set | 394 | # CONFIG_MTD_MTDRAM is not set |
392 | # CONFIG_MTD_BLKMTD is not set | ||
393 | # CONFIG_MTD_BLOCK2MTD is not set | 395 | # CONFIG_MTD_BLOCK2MTD is not set |
394 | 396 | ||
395 | # | 397 | # |
@@ -430,7 +432,7 @@ CONFIG_MTD_LASAT=y | |||
430 | # CONFIG_BLK_DEV_NBD is not set | 432 | # CONFIG_BLK_DEV_NBD is not set |
431 | # CONFIG_BLK_DEV_SX8 is not set | 433 | # CONFIG_BLK_DEV_SX8 is not set |
432 | # CONFIG_BLK_DEV_RAM is not set | 434 | # CONFIG_BLK_DEV_RAM is not set |
433 | CONFIG_BLK_DEV_RAM_COUNT=16 | 435 | # CONFIG_BLK_DEV_INITRD is not set |
434 | CONFIG_CDROM_PKTCDVD=m | 436 | CONFIG_CDROM_PKTCDVD=m |
435 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 437 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
436 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 438 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -672,6 +674,7 @@ CONFIG_HW_CONSOLE=y | |||
672 | # | 674 | # |
673 | CONFIG_SERIAL_8250=y | 675 | CONFIG_SERIAL_8250=y |
674 | CONFIG_SERIAL_8250_CONSOLE=y | 676 | CONFIG_SERIAL_8250_CONSOLE=y |
677 | CONFIG_SERIAL_8250_PCI=y | ||
675 | CONFIG_SERIAL_8250_NR_UARTS=4 | 678 | CONFIG_SERIAL_8250_NR_UARTS=4 |
676 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 679 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
677 | # CONFIG_SERIAL_8250_EXTENDED is not set | 680 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -681,6 +684,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
681 | # | 684 | # |
682 | CONFIG_SERIAL_CORE=y | 685 | CONFIG_SERIAL_CORE=y |
683 | CONFIG_SERIAL_CORE_CONSOLE=y | 686 | CONFIG_SERIAL_CORE_CONSOLE=y |
687 | # CONFIG_SERIAL_JSM is not set | ||
684 | CONFIG_UNIX98_PTYS=y | 688 | CONFIG_UNIX98_PTYS=y |
685 | CONFIG_LEGACY_PTYS=y | 689 | CONFIG_LEGACY_PTYS=y |
686 | CONFIG_LEGACY_PTY_COUNT=256 | 690 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -739,10 +743,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
739 | # | 743 | # |
740 | 744 | ||
741 | # | 745 | # |
742 | # Multimedia Capabilities Port drivers | ||
743 | # | ||
744 | |||
745 | # | ||
746 | # Multimedia devices | 746 | # Multimedia devices |
747 | # | 747 | # |
748 | # CONFIG_VIDEO_DEV is not set | 748 | # CONFIG_VIDEO_DEV is not set |
@@ -773,6 +773,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
773 | # | 773 | # |
774 | CONFIG_USB_ARCH_HAS_HCD=y | 774 | CONFIG_USB_ARCH_HAS_HCD=y |
775 | CONFIG_USB_ARCH_HAS_OHCI=y | 775 | CONFIG_USB_ARCH_HAS_OHCI=y |
776 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
776 | # CONFIG_USB is not set | 777 | # CONFIG_USB is not set |
777 | 778 | ||
778 | # | 779 | # |
@@ -790,13 +791,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
790 | # CONFIG_MMC is not set | 791 | # CONFIG_MMC is not set |
791 | 792 | ||
792 | # | 793 | # |
794 | # LED devices | ||
795 | # | ||
796 | # CONFIG_NEW_LEDS is not set | ||
797 | |||
798 | # | ||
799 | # LED drivers | ||
800 | # | ||
801 | |||
802 | # | ||
803 | # LED Triggers | ||
804 | # | ||
805 | |||
806 | # | ||
793 | # InfiniBand support | 807 | # InfiniBand support |
794 | # | 808 | # |
795 | # CONFIG_INFINIBAND is not set | 809 | # CONFIG_INFINIBAND is not set |
796 | 810 | ||
797 | # | 811 | # |
798 | # SN Devices | 812 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
813 | # | ||
814 | |||
815 | # | ||
816 | # Real Time Clock | ||
799 | # | 817 | # |
818 | # CONFIG_RTC_CLASS is not set | ||
800 | 819 | ||
801 | # | 820 | # |
802 | # File systems | 821 | # File systems |
@@ -847,7 +866,6 @@ CONFIG_SYSFS=y | |||
847 | # CONFIG_TMPFS is not set | 866 | # CONFIG_TMPFS is not set |
848 | # CONFIG_HUGETLB_PAGE is not set | 867 | # CONFIG_HUGETLB_PAGE is not set |
849 | CONFIG_RAMFS=y | 868 | CONFIG_RAMFS=y |
850 | CONFIG_RELAYFS_FS=m | ||
851 | # CONFIG_CONFIGFS_FS is not set | 869 | # CONFIG_CONFIGFS_FS is not set |
852 | 870 | ||
853 | # | 871 | # |
@@ -914,6 +932,7 @@ CONFIG_MSDOS_PARTITION=y | |||
914 | # CONFIG_MAGIC_SYSRQ is not set | 932 | # CONFIG_MAGIC_SYSRQ is not set |
915 | # CONFIG_DEBUG_KERNEL is not set | 933 | # CONFIG_DEBUG_KERNEL is not set |
916 | CONFIG_LOG_BUF_SHIFT=14 | 934 | CONFIG_LOG_BUF_SHIFT=14 |
935 | # CONFIG_DEBUG_FS is not set | ||
917 | CONFIG_CROSSCOMPILE=y | 936 | CONFIG_CROSSCOMPILE=y |
918 | CONFIG_CMDLINE="" | 937 | CONFIG_CMDLINE="" |
919 | 938 | ||
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig index 367d279efdd9..977f52be51dc 100644 --- a/arch/mips/configs/malta_defconfig +++ b/arch/mips/configs/malta_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:15 2006 | 4 | # Mon Apr 24 14:51:08 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_MALTA=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 70 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
@@ -128,16 +130,21 @@ CONFIG_PAGE_SIZE_4KB=y | |||
128 | # CONFIG_PAGE_SIZE_64KB is not set | 130 | # CONFIG_PAGE_SIZE_64KB is not set |
129 | CONFIG_CPU_HAS_PREFETCH=y | 131 | CONFIG_CPU_HAS_PREFETCH=y |
130 | CONFIG_MIPS_MT=y | 132 | CONFIG_MIPS_MT=y |
133 | # CONFIG_MIPS_MT_SMTC is not set | ||
131 | # CONFIG_MIPS_MT_SMP is not set | 134 | # CONFIG_MIPS_MT_SMP is not set |
132 | CONFIG_MIPS_VPE_LOADER=y | 135 | CONFIG_MIPS_VPE_LOADER=y |
136 | CONFIG_MIPS_MT_FPAFF=y | ||
133 | CONFIG_MIPS_VPE_LOADER_TOM=y | 137 | CONFIG_MIPS_VPE_LOADER_TOM=y |
134 | CONFIG_MIPS_VPE_APSP_API=y | 138 | CONFIG_MIPS_VPE_APSP_API=y |
139 | CONFIG_MIPS_APSP_KSPD=y | ||
135 | # CONFIG_64BIT_PHYS_ADDR is not set | 140 | # CONFIG_64BIT_PHYS_ADDR is not set |
136 | # CONFIG_CPU_ADVANCED is not set | ||
137 | CONFIG_CPU_HAS_LLSC=y | 141 | CONFIG_CPU_HAS_LLSC=y |
142 | # CONFIG_CPU_MIPSR2_IRQ_VI is not set | ||
143 | # CONFIG_CPU_MIPSR2_IRQ_EI is not set | ||
138 | CONFIG_CPU_HAS_SYNC=y | 144 | CONFIG_CPU_HAS_SYNC=y |
139 | CONFIG_GENERIC_HARDIRQS=y | 145 | CONFIG_GENERIC_HARDIRQS=y |
140 | CONFIG_GENERIC_IRQ_PROBE=y | 146 | CONFIG_GENERIC_IRQ_PROBE=y |
147 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
141 | CONFIG_ARCH_FLATMEM_ENABLE=y | 148 | CONFIG_ARCH_FLATMEM_ENABLE=y |
142 | CONFIG_SELECT_MEMORY_MODEL=y | 149 | CONFIG_SELECT_MEMORY_MODEL=y |
143 | CONFIG_FLATMEM_MANUAL=y | 150 | CONFIG_FLATMEM_MANUAL=y |
@@ -155,7 +162,6 @@ CONFIG_PREEMPT_NONE=y | |||
155 | # Code maturity level options | 162 | # Code maturity level options |
156 | # | 163 | # |
157 | CONFIG_EXPERIMENTAL=y | 164 | CONFIG_EXPERIMENTAL=y |
158 | CONFIG_CLEAN_COMPILE=y | ||
159 | CONFIG_BROKEN_ON_SMP=y | 165 | CONFIG_BROKEN_ON_SMP=y |
160 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 166 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
161 | 167 | ||
@@ -171,6 +177,7 @@ CONFIG_SYSVIPC=y | |||
171 | CONFIG_SYSCTL=y | 177 | CONFIG_SYSCTL=y |
172 | # CONFIG_AUDIT is not set | 178 | # CONFIG_AUDIT is not set |
173 | # CONFIG_IKCONFIG is not set | 179 | # CONFIG_IKCONFIG is not set |
180 | CONFIG_RELAY=y | ||
174 | CONFIG_INITRAMFS_SOURCE="" | 181 | CONFIG_INITRAMFS_SOURCE="" |
175 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 182 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
176 | CONFIG_EMBEDDED=y | 183 | CONFIG_EMBEDDED=y |
@@ -184,10 +191,6 @@ CONFIG_BASE_FULL=y | |||
184 | CONFIG_FUTEX=y | 191 | CONFIG_FUTEX=y |
185 | CONFIG_EPOLL=y | 192 | CONFIG_EPOLL=y |
186 | CONFIG_SHMEM=y | 193 | CONFIG_SHMEM=y |
187 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
188 | CONFIG_CC_ALIGN_LABELS=0 | ||
189 | CONFIG_CC_ALIGN_LOOPS=0 | ||
190 | CONFIG_CC_ALIGN_JUMPS=0 | ||
191 | CONFIG_SLAB=y | 194 | CONFIG_SLAB=y |
192 | # CONFIG_TINY_SHMEM is not set | 195 | # CONFIG_TINY_SHMEM is not set |
193 | CONFIG_BASE_SMALL=0 | 196 | CONFIG_BASE_SMALL=0 |
@@ -199,7 +202,6 @@ CONFIG_BASE_SMALL=0 | |||
199 | CONFIG_MODULES=y | 202 | CONFIG_MODULES=y |
200 | CONFIG_MODULE_UNLOAD=y | 203 | CONFIG_MODULE_UNLOAD=y |
201 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 204 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
202 | CONFIG_OBSOLETE_MODPARM=y | ||
203 | CONFIG_MODVERSIONS=y | 205 | CONFIG_MODVERSIONS=y |
204 | CONFIG_MODULE_SRCVERSION_ALL=y | 206 | CONFIG_MODULE_SRCVERSION_ALL=y |
205 | CONFIG_KMOD=y | 207 | CONFIG_KMOD=y |
@@ -208,6 +210,8 @@ CONFIG_KMOD=y | |||
208 | # Block layer | 210 | # Block layer |
209 | # | 211 | # |
210 | # CONFIG_LBD is not set | 212 | # CONFIG_LBD is not set |
213 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
214 | # CONFIG_LSF is not set | ||
211 | 215 | ||
212 | # | 216 | # |
213 | # IO Schedulers | 217 | # IO Schedulers |
@@ -227,7 +231,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
227 | # | 231 | # |
228 | CONFIG_HW_HAS_PCI=y | 232 | CONFIG_HW_HAS_PCI=y |
229 | CONFIG_PCI=y | 233 | CONFIG_PCI=y |
230 | CONFIG_PCI_LEGACY_PROC=y | ||
231 | CONFIG_MMU=y | 234 | CONFIG_MMU=y |
232 | 235 | ||
233 | # | 236 | # |
@@ -255,6 +258,7 @@ CONFIG_NET=y | |||
255 | # | 258 | # |
256 | # Networking options | 259 | # Networking options |
257 | # | 260 | # |
261 | # CONFIG_NETDEBUG is not set | ||
258 | CONFIG_PACKET=y | 262 | CONFIG_PACKET=y |
259 | CONFIG_PACKET_MMAP=y | 263 | CONFIG_PACKET_MMAP=y |
260 | CONFIG_UNIX=y | 264 | CONFIG_UNIX=y |
@@ -287,6 +291,7 @@ CONFIG_SYN_COOKIES=y | |||
287 | CONFIG_INET_AH=m | 291 | CONFIG_INET_AH=m |
288 | CONFIG_INET_ESP=m | 292 | CONFIG_INET_ESP=m |
289 | CONFIG_INET_IPCOMP=m | 293 | CONFIG_INET_IPCOMP=m |
294 | CONFIG_INET_XFRM_TUNNEL=m | ||
290 | CONFIG_INET_TUNNEL=m | 295 | CONFIG_INET_TUNNEL=m |
291 | CONFIG_INET_DIAG=y | 296 | CONFIG_INET_DIAG=y |
292 | CONFIG_INET_TCP_DIAG=y | 297 | CONFIG_INET_TCP_DIAG=y |
@@ -328,9 +333,12 @@ CONFIG_IP_VS_NQ=m | |||
328 | CONFIG_IP_VS_FTP=m | 333 | CONFIG_IP_VS_FTP=m |
329 | CONFIG_IPV6=m | 334 | CONFIG_IPV6=m |
330 | CONFIG_IPV6_PRIVACY=y | 335 | CONFIG_IPV6_PRIVACY=y |
336 | CONFIG_IPV6_ROUTER_PREF=y | ||
337 | CONFIG_IPV6_ROUTE_INFO=y | ||
331 | CONFIG_INET6_AH=m | 338 | CONFIG_INET6_AH=m |
332 | CONFIG_INET6_ESP=m | 339 | CONFIG_INET6_ESP=m |
333 | CONFIG_INET6_IPCOMP=m | 340 | CONFIG_INET6_IPCOMP=m |
341 | CONFIG_INET6_XFRM_TUNNEL=m | ||
334 | CONFIG_INET6_TUNNEL=m | 342 | CONFIG_INET6_TUNNEL=m |
335 | CONFIG_IPV6_TUNNEL=m | 343 | CONFIG_IPV6_TUNNEL=m |
336 | CONFIG_NETFILTER=y | 344 | CONFIG_NETFILTER=y |
@@ -354,11 +362,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | |||
354 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 362 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
355 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 363 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
356 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 364 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
365 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
357 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 366 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
358 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 367 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
359 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 368 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
360 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 369 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
361 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 370 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
371 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
372 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
362 | # CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set | 373 | # CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set |
363 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 374 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
364 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 375 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
@@ -382,20 +393,19 @@ CONFIG_IP_NF_IRC=m | |||
382 | CONFIG_IP_NF_TFTP=m | 393 | CONFIG_IP_NF_TFTP=m |
383 | CONFIG_IP_NF_AMANDA=m | 394 | CONFIG_IP_NF_AMANDA=m |
384 | CONFIG_IP_NF_PPTP=m | 395 | CONFIG_IP_NF_PPTP=m |
396 | CONFIG_IP_NF_H323=m | ||
385 | CONFIG_IP_NF_QUEUE=m | 397 | CONFIG_IP_NF_QUEUE=m |
386 | CONFIG_IP_NF_IPTABLES=m | 398 | CONFIG_IP_NF_IPTABLES=m |
387 | CONFIG_IP_NF_MATCH_IPRANGE=m | 399 | CONFIG_IP_NF_MATCH_IPRANGE=m |
388 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
389 | CONFIG_IP_NF_MATCH_TOS=m | 400 | CONFIG_IP_NF_MATCH_TOS=m |
390 | CONFIG_IP_NF_MATCH_RECENT=m | 401 | CONFIG_IP_NF_MATCH_RECENT=m |
391 | CONFIG_IP_NF_MATCH_ECN=m | 402 | CONFIG_IP_NF_MATCH_ECN=m |
392 | CONFIG_IP_NF_MATCH_DSCP=m | 403 | CONFIG_IP_NF_MATCH_DSCP=m |
393 | CONFIG_IP_NF_MATCH_AH_ESP=m | 404 | CONFIG_IP_NF_MATCH_AH=m |
394 | CONFIG_IP_NF_MATCH_TTL=m | 405 | CONFIG_IP_NF_MATCH_TTL=m |
395 | CONFIG_IP_NF_MATCH_OWNER=m | 406 | CONFIG_IP_NF_MATCH_OWNER=m |
396 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 407 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
397 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 408 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
398 | CONFIG_IP_NF_MATCH_POLICY=m | ||
399 | CONFIG_IP_NF_FILTER=m | 409 | CONFIG_IP_NF_FILTER=m |
400 | CONFIG_IP_NF_TARGET_REJECT=m | 410 | CONFIG_IP_NF_TARGET_REJECT=m |
401 | CONFIG_IP_NF_TARGET_LOG=m | 411 | CONFIG_IP_NF_TARGET_LOG=m |
@@ -413,6 +423,7 @@ CONFIG_IP_NF_NAT_FTP=m | |||
413 | CONFIG_IP_NF_NAT_TFTP=m | 423 | CONFIG_IP_NF_NAT_TFTP=m |
414 | CONFIG_IP_NF_NAT_AMANDA=m | 424 | CONFIG_IP_NF_NAT_AMANDA=m |
415 | CONFIG_IP_NF_NAT_PPTP=m | 425 | CONFIG_IP_NF_NAT_PPTP=m |
426 | CONFIG_IP_NF_NAT_H323=m | ||
416 | CONFIG_IP_NF_MANGLE=m | 427 | CONFIG_IP_NF_MANGLE=m |
417 | CONFIG_IP_NF_TARGET_TOS=m | 428 | CONFIG_IP_NF_TARGET_TOS=m |
418 | CONFIG_IP_NF_TARGET_ECN=m | 429 | CONFIG_IP_NF_TARGET_ECN=m |
@@ -433,12 +444,10 @@ CONFIG_IP6_NF_MATCH_RT=m | |||
433 | CONFIG_IP6_NF_MATCH_OPTS=m | 444 | CONFIG_IP6_NF_MATCH_OPTS=m |
434 | CONFIG_IP6_NF_MATCH_FRAG=m | 445 | CONFIG_IP6_NF_MATCH_FRAG=m |
435 | CONFIG_IP6_NF_MATCH_HL=m | 446 | CONFIG_IP6_NF_MATCH_HL=m |
436 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
437 | CONFIG_IP6_NF_MATCH_OWNER=m | 447 | CONFIG_IP6_NF_MATCH_OWNER=m |
438 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 448 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
439 | CONFIG_IP6_NF_MATCH_AHESP=m | 449 | CONFIG_IP6_NF_MATCH_AH=m |
440 | CONFIG_IP6_NF_MATCH_EUI64=m | 450 | CONFIG_IP6_NF_MATCH_EUI64=m |
441 | CONFIG_IP6_NF_MATCH_POLICY=m | ||
442 | CONFIG_IP6_NF_FILTER=m | 451 | CONFIG_IP6_NF_FILTER=m |
443 | CONFIG_IP6_NF_TARGET_LOG=m | 452 | CONFIG_IP6_NF_TARGET_LOG=m |
444 | CONFIG_IP6_NF_TARGET_REJECT=m | 453 | CONFIG_IP6_NF_TARGET_REJECT=m |
@@ -484,6 +493,11 @@ CONFIG_IP_SCTP=m | |||
484 | # CONFIG_SCTP_HMAC_NONE is not set | 493 | # CONFIG_SCTP_HMAC_NONE is not set |
485 | # CONFIG_SCTP_HMAC_SHA1 is not set | 494 | # CONFIG_SCTP_HMAC_SHA1 is not set |
486 | CONFIG_SCTP_HMAC_MD5=y | 495 | CONFIG_SCTP_HMAC_MD5=y |
496 | |||
497 | # | ||
498 | # TIPC Configuration (EXPERIMENTAL) | ||
499 | # | ||
500 | # CONFIG_TIPC is not set | ||
487 | # CONFIG_ATM is not set | 501 | # CONFIG_ATM is not set |
488 | CONFIG_BRIDGE=m | 502 | CONFIG_BRIDGE=m |
489 | CONFIG_VLAN_8021Q=m | 503 | CONFIG_VLAN_8021Q=m |
@@ -498,11 +512,6 @@ CONFIG_IPDDP_ENCAP=y | |||
498 | CONFIG_IPDDP_DECAP=y | 512 | CONFIG_IPDDP_DECAP=y |
499 | # CONFIG_X25 is not set | 513 | # CONFIG_X25 is not set |
500 | # CONFIG_LAPB is not set | 514 | # CONFIG_LAPB is not set |
501 | |||
502 | # | ||
503 | # TIPC Configuration (EXPERIMENTAL) | ||
504 | # | ||
505 | # CONFIG_TIPC is not set | ||
506 | CONFIG_NET_DIVERT=y | 515 | CONFIG_NET_DIVERT=y |
507 | # CONFIG_ECONET is not set | 516 | # CONFIG_ECONET is not set |
508 | # CONFIG_WAN_ROUTER is not set | 517 | # CONFIG_WAN_ROUTER is not set |
@@ -562,6 +571,9 @@ CONFIG_IEEE80211=m | |||
562 | # CONFIG_IEEE80211_DEBUG is not set | 571 | # CONFIG_IEEE80211_DEBUG is not set |
563 | CONFIG_IEEE80211_CRYPT_WEP=m | 572 | CONFIG_IEEE80211_CRYPT_WEP=m |
564 | CONFIG_IEEE80211_CRYPT_CCMP=m | 573 | CONFIG_IEEE80211_CRYPT_CCMP=m |
574 | CONFIG_IEEE80211_SOFTMAC=m | ||
575 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
576 | CONFIG_WIRELESS_EXT=y | ||
565 | 577 | ||
566 | # | 578 | # |
567 | # Device Drivers | 579 | # Device Drivers |
@@ -734,7 +746,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y | |||
734 | # CONFIG_SCSI_INIA100 is not set | 746 | # CONFIG_SCSI_INIA100 is not set |
735 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 747 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
736 | # CONFIG_SCSI_IPR is not set | 748 | # CONFIG_SCSI_IPR is not set |
737 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
738 | # CONFIG_SCSI_QLOGIC_1280 is not set | 749 | # CONFIG_SCSI_QLOGIC_1280 is not set |
739 | # CONFIG_SCSI_QLA_FC is not set | 750 | # CONFIG_SCSI_QLA_FC is not set |
740 | # CONFIG_SCSI_LPFC is not set | 751 | # CONFIG_SCSI_LPFC is not set |
@@ -753,6 +764,7 @@ CONFIG_MD_RAID0=m | |||
753 | CONFIG_MD_RAID1=m | 764 | CONFIG_MD_RAID1=m |
754 | CONFIG_MD_RAID10=m | 765 | CONFIG_MD_RAID10=m |
755 | CONFIG_MD_RAID5=m | 766 | CONFIG_MD_RAID5=m |
767 | CONFIG_MD_RAID5_RESHAPE=y | ||
756 | CONFIG_MD_RAID6=m | 768 | CONFIG_MD_RAID6=m |
757 | CONFIG_MD_MULTIPATH=m | 769 | CONFIG_MD_MULTIPATH=m |
758 | CONFIG_MD_FAULTY=m | 770 | CONFIG_MD_FAULTY=m |
@@ -956,6 +968,7 @@ CONFIG_HW_CONSOLE=y | |||
956 | # | 968 | # |
957 | CONFIG_SERIAL_8250=y | 969 | CONFIG_SERIAL_8250=y |
958 | CONFIG_SERIAL_8250_CONSOLE=y | 970 | CONFIG_SERIAL_8250_CONSOLE=y |
971 | CONFIG_SERIAL_8250_PCI=y | ||
959 | CONFIG_SERIAL_8250_NR_UARTS=4 | 972 | CONFIG_SERIAL_8250_NR_UARTS=4 |
960 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 973 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
961 | # CONFIG_SERIAL_8250_EXTENDED is not set | 974 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -965,6 +978,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
965 | # | 978 | # |
966 | CONFIG_SERIAL_CORE=y | 979 | CONFIG_SERIAL_CORE=y |
967 | CONFIG_SERIAL_CORE_CONSOLE=y | 980 | CONFIG_SERIAL_CORE_CONSOLE=y |
981 | # CONFIG_SERIAL_JSM is not set | ||
968 | CONFIG_UNIX98_PTYS=y | 982 | CONFIG_UNIX98_PTYS=y |
969 | CONFIG_LEGACY_PTYS=y | 983 | CONFIG_LEGACY_PTYS=y |
970 | CONFIG_LEGACY_PTY_COUNT=256 | 984 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -1022,10 +1036,6 @@ CONFIG_RTC=y | |||
1022 | # | 1036 | # |
1023 | 1037 | ||
1024 | # | 1038 | # |
1025 | # Multimedia Capabilities Port drivers | ||
1026 | # | ||
1027 | |||
1028 | # | ||
1029 | # Multimedia devices | 1039 | # Multimedia devices |
1030 | # | 1040 | # |
1031 | # CONFIG_VIDEO_DEV is not set | 1041 | # CONFIG_VIDEO_DEV is not set |
@@ -1056,6 +1066,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
1056 | # | 1066 | # |
1057 | CONFIG_USB_ARCH_HAS_HCD=y | 1067 | CONFIG_USB_ARCH_HAS_HCD=y |
1058 | CONFIG_USB_ARCH_HAS_OHCI=y | 1068 | CONFIG_USB_ARCH_HAS_OHCI=y |
1069 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
1059 | # CONFIG_USB is not set | 1070 | # CONFIG_USB is not set |
1060 | 1071 | ||
1061 | # | 1072 | # |
@@ -1073,13 +1084,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1073 | # CONFIG_MMC is not set | 1084 | # CONFIG_MMC is not set |
1074 | 1085 | ||
1075 | # | 1086 | # |
1087 | # LED devices | ||
1088 | # | ||
1089 | # CONFIG_NEW_LEDS is not set | ||
1090 | |||
1091 | # | ||
1092 | # LED drivers | ||
1093 | # | ||
1094 | |||
1095 | # | ||
1096 | # LED Triggers | ||
1097 | # | ||
1098 | |||
1099 | # | ||
1076 | # InfiniBand support | 1100 | # InfiniBand support |
1077 | # | 1101 | # |
1078 | # CONFIG_INFINIBAND is not set | 1102 | # CONFIG_INFINIBAND is not set |
1079 | 1103 | ||
1080 | # | 1104 | # |
1081 | # SN Devices | 1105 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1106 | # | ||
1107 | |||
1108 | # | ||
1109 | # Real Time Clock | ||
1082 | # | 1110 | # |
1111 | # CONFIG_RTC_CLASS is not set | ||
1083 | 1112 | ||
1084 | # | 1113 | # |
1085 | # File systems | 1114 | # File systems |
@@ -1154,7 +1183,6 @@ CONFIG_SYSFS=y | |||
1154 | # CONFIG_TMPFS is not set | 1183 | # CONFIG_TMPFS is not set |
1155 | # CONFIG_HUGETLB_PAGE is not set | 1184 | # CONFIG_HUGETLB_PAGE is not set |
1156 | CONFIG_RAMFS=y | 1185 | CONFIG_RAMFS=y |
1157 | CONFIG_RELAYFS_FS=m | ||
1158 | # CONFIG_CONFIGFS_FS is not set | 1186 | # CONFIG_CONFIGFS_FS is not set |
1159 | 1187 | ||
1160 | # | 1188 | # |
@@ -1174,7 +1202,6 @@ CONFIG_VXFS_FS=m | |||
1174 | # CONFIG_QNX4FS_FS is not set | 1202 | # CONFIG_QNX4FS_FS is not set |
1175 | CONFIG_SYSV_FS=m | 1203 | CONFIG_SYSV_FS=m |
1176 | CONFIG_UFS_FS=m | 1204 | CONFIG_UFS_FS=m |
1177 | # CONFIG_UFS_FS_WRITE is not set | ||
1178 | 1205 | ||
1179 | # | 1206 | # |
1180 | # Network File Systems | 1207 | # Network File Systems |
@@ -1266,6 +1293,7 @@ CONFIG_NLS_UTF8=m | |||
1266 | # CONFIG_MAGIC_SYSRQ is not set | 1293 | # CONFIG_MAGIC_SYSRQ is not set |
1267 | # CONFIG_DEBUG_KERNEL is not set | 1294 | # CONFIG_DEBUG_KERNEL is not set |
1268 | CONFIG_LOG_BUF_SHIFT=14 | 1295 | CONFIG_LOG_BUF_SHIFT=14 |
1296 | # CONFIG_DEBUG_FS is not set | ||
1269 | CONFIG_CROSSCOMPILE=y | 1297 | CONFIG_CROSSCOMPILE=y |
1270 | CONFIG_CMDLINE="" | 1298 | CONFIG_CMDLINE="" |
1271 | 1299 | ||
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig index fe78961762b8..00560e0143f1 100644 --- a/arch/mips/configs/mipssim_defconfig +++ b/arch/mips/configs/mipssim_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:16 2006 | 4 | # Mon Apr 24 14:51:09 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_SIM=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,16 +116,19 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | # CONFIG_PAGE_SIZE_64KB is not set | 116 | # CONFIG_PAGE_SIZE_64KB is not set |
115 | CONFIG_CPU_HAS_PREFETCH=y | 117 | CONFIG_CPU_HAS_PREFETCH=y |
116 | CONFIG_MIPS_MT=y | 118 | CONFIG_MIPS_MT=y |
119 | # CONFIG_MIPS_MT_SMTC is not set | ||
117 | # CONFIG_MIPS_MT_SMP is not set | 120 | # CONFIG_MIPS_MT_SMP is not set |
118 | CONFIG_MIPS_VPE_LOADER=y | 121 | CONFIG_MIPS_VPE_LOADER=y |
122 | CONFIG_MIPS_MT_FPAFF=y | ||
119 | CONFIG_MIPS_VPE_LOADER_TOM=y | 123 | CONFIG_MIPS_VPE_LOADER_TOM=y |
120 | CONFIG_MIPS_VPE_APSP_API=y | 124 | CONFIG_MIPS_VPE_APSP_API=y |
125 | CONFIG_MIPS_APSP_KSPD=y | ||
121 | # CONFIG_64BIT_PHYS_ADDR is not set | 126 | # CONFIG_64BIT_PHYS_ADDR is not set |
122 | # CONFIG_CPU_ADVANCED is not set | ||
123 | CONFIG_CPU_HAS_LLSC=y | 127 | CONFIG_CPU_HAS_LLSC=y |
124 | CONFIG_CPU_HAS_SYNC=y | 128 | CONFIG_CPU_HAS_SYNC=y |
125 | CONFIG_GENERIC_HARDIRQS=y | 129 | CONFIG_GENERIC_HARDIRQS=y |
126 | CONFIG_GENERIC_IRQ_PROBE=y | 130 | CONFIG_GENERIC_IRQ_PROBE=y |
131 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
127 | CONFIG_ARCH_FLATMEM_ENABLE=y | 132 | CONFIG_ARCH_FLATMEM_ENABLE=y |
128 | CONFIG_SELECT_MEMORY_MODEL=y | 133 | CONFIG_SELECT_MEMORY_MODEL=y |
129 | CONFIG_FLATMEM_MANUAL=y | 134 | CONFIG_FLATMEM_MANUAL=y |
@@ -141,7 +146,6 @@ CONFIG_PREEMPT_NONE=y | |||
141 | # Code maturity level options | 146 | # Code maturity level options |
142 | # | 147 | # |
143 | CONFIG_EXPERIMENTAL=y | 148 | CONFIG_EXPERIMENTAL=y |
144 | CONFIG_CLEAN_COMPILE=y | ||
145 | CONFIG_BROKEN_ON_SMP=y | 149 | CONFIG_BROKEN_ON_SMP=y |
146 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 150 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
147 | 151 | ||
@@ -157,6 +161,7 @@ CONFIG_SYSVIPC=y | |||
157 | CONFIG_SYSCTL=y | 161 | CONFIG_SYSCTL=y |
158 | # CONFIG_AUDIT is not set | 162 | # CONFIG_AUDIT is not set |
159 | # CONFIG_IKCONFIG is not set | 163 | # CONFIG_IKCONFIG is not set |
164 | # CONFIG_RELAY is not set | ||
160 | CONFIG_INITRAMFS_SOURCE="" | 165 | CONFIG_INITRAMFS_SOURCE="" |
161 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 166 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
162 | CONFIG_EMBEDDED=y | 167 | CONFIG_EMBEDDED=y |
@@ -171,10 +176,6 @@ CONFIG_BASE_FULL=y | |||
171 | CONFIG_FUTEX=y | 176 | CONFIG_FUTEX=y |
172 | CONFIG_EPOLL=y | 177 | CONFIG_EPOLL=y |
173 | CONFIG_SHMEM=y | 178 | CONFIG_SHMEM=y |
174 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
175 | CONFIG_CC_ALIGN_LABELS=0 | ||
176 | CONFIG_CC_ALIGN_LOOPS=0 | ||
177 | CONFIG_CC_ALIGN_JUMPS=0 | ||
178 | CONFIG_SLAB=y | 179 | CONFIG_SLAB=y |
179 | # CONFIG_TINY_SHMEM is not set | 180 | # CONFIG_TINY_SHMEM is not set |
180 | CONFIG_BASE_SMALL=0 | 181 | CONFIG_BASE_SMALL=0 |
@@ -186,7 +187,6 @@ CONFIG_BASE_SMALL=0 | |||
186 | CONFIG_MODULES=y | 187 | CONFIG_MODULES=y |
187 | CONFIG_MODULE_UNLOAD=y | 188 | CONFIG_MODULE_UNLOAD=y |
188 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 189 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
189 | CONFIG_OBSOLETE_MODPARM=y | ||
190 | CONFIG_MODVERSIONS=y | 190 | CONFIG_MODVERSIONS=y |
191 | CONFIG_MODULE_SRCVERSION_ALL=y | 191 | CONFIG_MODULE_SRCVERSION_ALL=y |
192 | CONFIG_KMOD=y | 192 | CONFIG_KMOD=y |
@@ -195,6 +195,7 @@ CONFIG_KMOD=y | |||
195 | # Block layer | 195 | # Block layer |
196 | # | 196 | # |
197 | # CONFIG_LBD is not set | 197 | # CONFIG_LBD is not set |
198 | # CONFIG_LSF is not set | ||
198 | 199 | ||
199 | # | 200 | # |
200 | # IO Schedulers | 201 | # IO Schedulers |
@@ -238,6 +239,7 @@ CONFIG_NET=y | |||
238 | # | 239 | # |
239 | # Networking options | 240 | # Networking options |
240 | # | 241 | # |
242 | # CONFIG_NETDEBUG is not set | ||
241 | CONFIG_PACKET=y | 243 | CONFIG_PACKET=y |
242 | CONFIG_PACKET_MMAP=y | 244 | CONFIG_PACKET_MMAP=y |
243 | CONFIG_UNIX=y | 245 | CONFIG_UNIX=y |
@@ -268,12 +270,15 @@ CONFIG_SYN_COOKIES=y | |||
268 | # CONFIG_INET_AH is not set | 270 | # CONFIG_INET_AH is not set |
269 | # CONFIG_INET_ESP is not set | 271 | # CONFIG_INET_ESP is not set |
270 | # CONFIG_INET_IPCOMP is not set | 272 | # CONFIG_INET_IPCOMP is not set |
273 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
271 | # CONFIG_INET_TUNNEL is not set | 274 | # CONFIG_INET_TUNNEL is not set |
272 | CONFIG_INET_DIAG=y | 275 | CONFIG_INET_DIAG=y |
273 | CONFIG_INET_TCP_DIAG=y | 276 | CONFIG_INET_TCP_DIAG=y |
274 | # CONFIG_TCP_CONG_ADVANCED is not set | 277 | # CONFIG_TCP_CONG_ADVANCED is not set |
275 | CONFIG_TCP_CONG_BIC=y | 278 | CONFIG_TCP_CONG_BIC=y |
276 | # CONFIG_IPV6 is not set | 279 | # CONFIG_IPV6 is not set |
280 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
281 | # CONFIG_INET6_TUNNEL is not set | ||
277 | # CONFIG_NETFILTER is not set | 282 | # CONFIG_NETFILTER is not set |
278 | 283 | ||
279 | # | 284 | # |
@@ -290,6 +295,11 @@ CONFIG_IP_SCTP=m | |||
290 | # CONFIG_SCTP_HMAC_NONE is not set | 295 | # CONFIG_SCTP_HMAC_NONE is not set |
291 | # CONFIG_SCTP_HMAC_SHA1 is not set | 296 | # CONFIG_SCTP_HMAC_SHA1 is not set |
292 | CONFIG_SCTP_HMAC_MD5=y | 297 | CONFIG_SCTP_HMAC_MD5=y |
298 | |||
299 | # | ||
300 | # TIPC Configuration (EXPERIMENTAL) | ||
301 | # | ||
302 | # CONFIG_TIPC is not set | ||
293 | # CONFIG_ATM is not set | 303 | # CONFIG_ATM is not set |
294 | # CONFIG_BRIDGE is not set | 304 | # CONFIG_BRIDGE is not set |
295 | # CONFIG_VLAN_8021Q is not set | 305 | # CONFIG_VLAN_8021Q is not set |
@@ -299,11 +309,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
299 | # CONFIG_ATALK is not set | 309 | # CONFIG_ATALK is not set |
300 | # CONFIG_X25 is not set | 310 | # CONFIG_X25 is not set |
301 | # CONFIG_LAPB is not set | 311 | # CONFIG_LAPB is not set |
302 | |||
303 | # | ||
304 | # TIPC Configuration (EXPERIMENTAL) | ||
305 | # | ||
306 | # CONFIG_TIPC is not set | ||
307 | CONFIG_NET_DIVERT=y | 312 | CONFIG_NET_DIVERT=y |
308 | # CONFIG_ECONET is not set | 313 | # CONFIG_ECONET is not set |
309 | # CONFIG_WAN_ROUTER is not set | 314 | # CONFIG_WAN_ROUTER is not set |
@@ -397,7 +402,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
397 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 402 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
398 | CONFIG_BLK_DEV_NBD=y | 403 | CONFIG_BLK_DEV_NBD=y |
399 | # CONFIG_BLK_DEV_RAM is not set | 404 | # CONFIG_BLK_DEV_RAM is not set |
400 | CONFIG_BLK_DEV_RAM_COUNT=16 | 405 | # CONFIG_BLK_DEV_INITRD is not set |
401 | # CONFIG_CDROM_PKTCDVD is not set | 406 | # CONFIG_CDROM_PKTCDVD is not set |
402 | # CONFIG_ATA_OVER_ETH is not set | 407 | # CONFIG_ATA_OVER_ETH is not set |
403 | 408 | ||
@@ -532,7 +537,7 @@ CONFIG_SERIO_SERPORT=y | |||
532 | CONFIG_SERIAL_8250=y | 537 | CONFIG_SERIAL_8250=y |
533 | CONFIG_SERIAL_8250_CONSOLE=y | 538 | CONFIG_SERIAL_8250_CONSOLE=y |
534 | CONFIG_SERIAL_8250_NR_UARTS=1 | 539 | CONFIG_SERIAL_8250_NR_UARTS=1 |
535 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 540 | CONFIG_SERIAL_8250_RUNTIME_UARTS=1 |
536 | # CONFIG_SERIAL_8250_EXTENDED is not set | 541 | # CONFIG_SERIAL_8250_EXTENDED is not set |
537 | 542 | ||
538 | # | 543 | # |
@@ -596,10 +601,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
596 | # | 601 | # |
597 | 602 | ||
598 | # | 603 | # |
599 | # Multimedia Capabilities Port drivers | ||
600 | # | ||
601 | |||
602 | # | ||
603 | # Multimedia devices | 604 | # Multimedia devices |
604 | # | 605 | # |
605 | # CONFIG_VIDEO_DEV is not set | 606 | # CONFIG_VIDEO_DEV is not set |
@@ -624,6 +625,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
624 | # | 625 | # |
625 | # CONFIG_USB_ARCH_HAS_HCD is not set | 626 | # CONFIG_USB_ARCH_HAS_HCD is not set |
626 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 627 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
628 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
627 | 629 | ||
628 | # | 630 | # |
629 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 631 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -640,12 +642,30 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
640 | # CONFIG_MMC is not set | 642 | # CONFIG_MMC is not set |
641 | 643 | ||
642 | # | 644 | # |
645 | # LED devices | ||
646 | # | ||
647 | # CONFIG_NEW_LEDS is not set | ||
648 | |||
649 | # | ||
650 | # LED drivers | ||
651 | # | ||
652 | |||
653 | # | ||
654 | # LED Triggers | ||
655 | # | ||
656 | |||
657 | # | ||
643 | # InfiniBand support | 658 | # InfiniBand support |
644 | # | 659 | # |
645 | 660 | ||
646 | # | 661 | # |
647 | # SN Devices | 662 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
663 | # | ||
664 | |||
665 | # | ||
666 | # Real Time Clock | ||
648 | # | 667 | # |
668 | # CONFIG_RTC_CLASS is not set | ||
649 | 669 | ||
650 | # | 670 | # |
651 | # File systems | 671 | # File systems |
@@ -690,8 +710,6 @@ CONFIG_PROC_FS=y | |||
690 | # CONFIG_TMPFS is not set | 710 | # CONFIG_TMPFS is not set |
691 | # CONFIG_HUGETLB_PAGE is not set | 711 | # CONFIG_HUGETLB_PAGE is not set |
692 | CONFIG_RAMFS=y | 712 | CONFIG_RAMFS=y |
693 | # CONFIG_RELAYFS_FS is not set | ||
694 | # CONFIG_CONFIGFS_FS is not set | ||
695 | 713 | ||
696 | # | 714 | # |
697 | # Miscellaneous filesystems | 715 | # Miscellaneous filesystems |
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig index e4620e7f0a5e..286a018375b2 100644 --- a/arch/mips/configs/mpc30x_defconfig +++ b/arch/mips/configs/mpc30x_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:17 2006 | 4 | # Mon Apr 24 14:51:09 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -72,6 +72,8 @@ CONFIG_VICTOR_MPC30X=y | |||
72 | CONFIG_PCI_VR41XX=y | 72 | CONFIG_PCI_VR41XX=y |
73 | CONFIG_VRC4173=y | 73 | CONFIG_VRC4173=y |
74 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 74 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
75 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
76 | CONFIG_GENERIC_HWEIGHT=y | ||
75 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 77 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
76 | CONFIG_DMA_NONCOHERENT=y | 78 | CONFIG_DMA_NONCOHERENT=y |
77 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 79 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -90,7 +92,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
90 | # CONFIG_CPU_MIPS64_R2 is not set | 92 | # CONFIG_CPU_MIPS64_R2 is not set |
91 | # CONFIG_CPU_R3000 is not set | 93 | # CONFIG_CPU_R3000 is not set |
92 | # CONFIG_CPU_TX39XX is not set | 94 | # CONFIG_CPU_TX39XX is not set |
93 | # CONFIG_CPU_VR41XX is not set | 95 | CONFIG_CPU_VR41XX=y |
94 | # CONFIG_CPU_R4300 is not set | 96 | # CONFIG_CPU_R4300 is not set |
95 | # CONFIG_CPU_R4X00 is not set | 97 | # CONFIG_CPU_R4X00 is not set |
96 | # CONFIG_CPU_TX49XX is not set | 98 | # CONFIG_CPU_TX49XX is not set |
@@ -103,18 +105,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
103 | # CONFIG_CPU_RM7000 is not set | 105 | # CONFIG_CPU_RM7000 is not set |
104 | # CONFIG_CPU_RM9000 is not set | 106 | # CONFIG_CPU_RM9000 is not set |
105 | # CONFIG_CPU_SB1 is not set | 107 | # CONFIG_CPU_SB1 is not set |
108 | CONFIG_SYS_HAS_CPU_VR41XX=y | ||
109 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
110 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
111 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
106 | 112 | ||
107 | # | 113 | # |
108 | # Kernel type | 114 | # Kernel type |
109 | # | 115 | # |
110 | # CONFIG_32BIT is not set | 116 | CONFIG_32BIT=y |
111 | # CONFIG_64BIT is not set | 117 | # CONFIG_64BIT is not set |
112 | CONFIG_PAGE_SIZE_4KB=y | 118 | CONFIG_PAGE_SIZE_4KB=y |
113 | # CONFIG_PAGE_SIZE_8KB is not set | 119 | # CONFIG_PAGE_SIZE_8KB is not set |
114 | # CONFIG_PAGE_SIZE_16KB is not set | 120 | # CONFIG_PAGE_SIZE_16KB is not set |
115 | # CONFIG_PAGE_SIZE_64KB is not set | 121 | # CONFIG_PAGE_SIZE_64KB is not set |
116 | # CONFIG_MIPS_MT is not set | 122 | # CONFIG_MIPS_MT is not set |
117 | CONFIG_CPU_HAS_LLSC=y | ||
118 | CONFIG_CPU_HAS_SYNC=y | 123 | CONFIG_CPU_HAS_SYNC=y |
119 | CONFIG_GENERIC_HARDIRQS=y | 124 | CONFIG_GENERIC_HARDIRQS=y |
120 | CONFIG_GENERIC_IRQ_PROBE=y | 125 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -135,7 +140,6 @@ CONFIG_PREEMPT_NONE=y | |||
135 | # Code maturity level options | 140 | # Code maturity level options |
136 | # | 141 | # |
137 | CONFIG_EXPERIMENTAL=y | 142 | CONFIG_EXPERIMENTAL=y |
138 | CONFIG_CLEAN_COMPILE=y | ||
139 | CONFIG_BROKEN_ON_SMP=y | 143 | CONFIG_BROKEN_ON_SMP=y |
140 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 144 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
141 | 145 | ||
@@ -151,6 +155,7 @@ CONFIG_SYSVIPC=y | |||
151 | CONFIG_SYSCTL=y | 155 | CONFIG_SYSCTL=y |
152 | # CONFIG_AUDIT is not set | 156 | # CONFIG_AUDIT is not set |
153 | # CONFIG_IKCONFIG is not set | 157 | # CONFIG_IKCONFIG is not set |
158 | CONFIG_RELAY=y | ||
154 | CONFIG_INITRAMFS_SOURCE="" | 159 | CONFIG_INITRAMFS_SOURCE="" |
155 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 160 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
156 | CONFIG_EMBEDDED=y | 161 | CONFIG_EMBEDDED=y |
@@ -164,10 +169,6 @@ CONFIG_BASE_FULL=y | |||
164 | CONFIG_FUTEX=y | 169 | CONFIG_FUTEX=y |
165 | CONFIG_EPOLL=y | 170 | CONFIG_EPOLL=y |
166 | CONFIG_SHMEM=y | 171 | CONFIG_SHMEM=y |
167 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
168 | CONFIG_CC_ALIGN_LABELS=0 | ||
169 | CONFIG_CC_ALIGN_LOOPS=0 | ||
170 | CONFIG_CC_ALIGN_JUMPS=0 | ||
171 | CONFIG_SLAB=y | 172 | CONFIG_SLAB=y |
172 | # CONFIG_TINY_SHMEM is not set | 173 | # CONFIG_TINY_SHMEM is not set |
173 | CONFIG_BASE_SMALL=0 | 174 | CONFIG_BASE_SMALL=0 |
@@ -179,7 +180,6 @@ CONFIG_BASE_SMALL=0 | |||
179 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
180 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
181 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
182 | CONFIG_OBSOLETE_MODPARM=y | ||
183 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
184 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
185 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -187,6 +187,9 @@ CONFIG_KMOD=y | |||
187 | # | 187 | # |
188 | # Block layer | 188 | # Block layer |
189 | # | 189 | # |
190 | # CONFIG_LBD is not set | ||
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
190 | 193 | ||
191 | # | 194 | # |
192 | # IO Schedulers | 195 | # IO Schedulers |
@@ -206,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
206 | # | 209 | # |
207 | CONFIG_HW_HAS_PCI=y | 210 | CONFIG_HW_HAS_PCI=y |
208 | CONFIG_PCI=y | 211 | CONFIG_PCI=y |
209 | CONFIG_PCI_LEGACY_PROC=y | ||
210 | CONFIG_MMU=y | 212 | CONFIG_MMU=y |
211 | 213 | ||
212 | # | 214 | # |
@@ -225,6 +227,7 @@ CONFIG_PCMCIA_IOCTL=y | |||
225 | # CONFIG_YENTA is not set | 227 | # CONFIG_YENTA is not set |
226 | # CONFIG_PD6729 is not set | 228 | # CONFIG_PD6729 is not set |
227 | # CONFIG_I82092 is not set | 229 | # CONFIG_I82092 is not set |
230 | # CONFIG_PCMCIA_VRC4173 is not set | ||
228 | 231 | ||
229 | # | 232 | # |
230 | # PCI Hotplug Support | 233 | # PCI Hotplug Support |
@@ -236,6 +239,7 @@ CONFIG_PCMCIA_IOCTL=y | |||
236 | # | 239 | # |
237 | CONFIG_BINFMT_ELF=y | 240 | CONFIG_BINFMT_ELF=y |
238 | # CONFIG_BINFMT_MISC is not set | 241 | # CONFIG_BINFMT_MISC is not set |
242 | CONFIG_TRAD_SIGNALS=y | ||
239 | 243 | ||
240 | # | 244 | # |
241 | # Networking | 245 | # Networking |
@@ -245,6 +249,7 @@ CONFIG_NET=y | |||
245 | # | 249 | # |
246 | # Networking options | 250 | # Networking options |
247 | # | 251 | # |
252 | # CONFIG_NETDEBUG is not set | ||
248 | CONFIG_PACKET=y | 253 | CONFIG_PACKET=y |
249 | CONFIG_PACKET_MMAP=y | 254 | CONFIG_PACKET_MMAP=y |
250 | CONFIG_UNIX=y | 255 | CONFIG_UNIX=y |
@@ -264,12 +269,15 @@ CONFIG_IP_FIB_HASH=y | |||
264 | # CONFIG_INET_AH is not set | 269 | # CONFIG_INET_AH is not set |
265 | # CONFIG_INET_ESP is not set | 270 | # CONFIG_INET_ESP is not set |
266 | # CONFIG_INET_IPCOMP is not set | 271 | # CONFIG_INET_IPCOMP is not set |
267 | CONFIG_INET_TUNNEL=m | 272 | # CONFIG_INET_XFRM_TUNNEL is not set |
273 | # CONFIG_INET_TUNNEL is not set | ||
268 | CONFIG_INET_DIAG=y | 274 | CONFIG_INET_DIAG=y |
269 | CONFIG_INET_TCP_DIAG=y | 275 | CONFIG_INET_TCP_DIAG=y |
270 | # CONFIG_TCP_CONG_ADVANCED is not set | 276 | # CONFIG_TCP_CONG_ADVANCED is not set |
271 | CONFIG_TCP_CONG_BIC=y | 277 | CONFIG_TCP_CONG_BIC=y |
272 | # CONFIG_IPV6 is not set | 278 | # CONFIG_IPV6 is not set |
279 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
280 | # CONFIG_INET6_TUNNEL is not set | ||
273 | # CONFIG_NETFILTER is not set | 281 | # CONFIG_NETFILTER is not set |
274 | 282 | ||
275 | # | 283 | # |
@@ -281,6 +289,11 @@ CONFIG_TCP_CONG_BIC=y | |||
281 | # SCTP Configuration (EXPERIMENTAL) | 289 | # SCTP Configuration (EXPERIMENTAL) |
282 | # | 290 | # |
283 | # CONFIG_IP_SCTP is not set | 291 | # CONFIG_IP_SCTP is not set |
292 | |||
293 | # | ||
294 | # TIPC Configuration (EXPERIMENTAL) | ||
295 | # | ||
296 | # CONFIG_TIPC is not set | ||
284 | # CONFIG_ATM is not set | 297 | # CONFIG_ATM is not set |
285 | # CONFIG_BRIDGE is not set | 298 | # CONFIG_BRIDGE is not set |
286 | # CONFIG_VLAN_8021Q is not set | 299 | # CONFIG_VLAN_8021Q is not set |
@@ -290,11 +303,6 @@ CONFIG_TCP_CONG_BIC=y | |||
290 | # CONFIG_ATALK is not set | 303 | # CONFIG_ATALK is not set |
291 | # CONFIG_X25 is not set | 304 | # CONFIG_X25 is not set |
292 | # CONFIG_LAPB is not set | 305 | # CONFIG_LAPB is not set |
293 | |||
294 | # | ||
295 | # TIPC Configuration (EXPERIMENTAL) | ||
296 | # | ||
297 | # CONFIG_TIPC is not set | ||
298 | # CONFIG_NET_DIVERT is not set | 306 | # CONFIG_NET_DIVERT is not set |
299 | # CONFIG_ECONET is not set | 307 | # CONFIG_ECONET is not set |
300 | # CONFIG_WAN_ROUTER is not set | 308 | # CONFIG_WAN_ROUTER is not set |
@@ -316,6 +324,9 @@ CONFIG_IEEE80211=m | |||
316 | CONFIG_IEEE80211_CRYPT_WEP=m | 324 | CONFIG_IEEE80211_CRYPT_WEP=m |
317 | CONFIG_IEEE80211_CRYPT_CCMP=m | 325 | CONFIG_IEEE80211_CRYPT_CCMP=m |
318 | CONFIG_IEEE80211_CRYPT_TKIP=m | 326 | CONFIG_IEEE80211_CRYPT_TKIP=m |
327 | CONFIG_IEEE80211_SOFTMAC=m | ||
328 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
329 | CONFIG_WIRELESS_EXT=y | ||
319 | 330 | ||
320 | # | 331 | # |
321 | # Device Drivers | 332 | # Device Drivers |
@@ -360,7 +371,7 @@ CONFIG_CONNECTOR=m | |||
360 | # CONFIG_BLK_DEV_SX8 is not set | 371 | # CONFIG_BLK_DEV_SX8 is not set |
361 | # CONFIG_BLK_DEV_UB is not set | 372 | # CONFIG_BLK_DEV_UB is not set |
362 | # CONFIG_BLK_DEV_RAM is not set | 373 | # CONFIG_BLK_DEV_RAM is not set |
363 | CONFIG_BLK_DEV_RAM_COUNT=16 | 374 | # CONFIG_BLK_DEV_INITRD is not set |
364 | # CONFIG_CDROM_PKTCDVD is not set | 375 | # CONFIG_CDROM_PKTCDVD is not set |
365 | CONFIG_ATA_OVER_ETH=m | 376 | CONFIG_ATA_OVER_ETH=m |
366 | 377 | ||
@@ -475,6 +486,7 @@ CONFIG_MII=m | |||
475 | # Wireless LAN (non-hamradio) | 486 | # Wireless LAN (non-hamradio) |
476 | # | 487 | # |
477 | CONFIG_NET_RADIO=y | 488 | CONFIG_NET_RADIO=y |
489 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
478 | 490 | ||
479 | # | 491 | # |
480 | # Obsolete Wireless cards support (pre-802.11) | 492 | # Obsolete Wireless cards support (pre-802.11) |
@@ -513,6 +525,7 @@ CONFIG_PCMCIA_HERMES=m | |||
513 | # | 525 | # |
514 | # CONFIG_PRISM54 is not set | 526 | # CONFIG_PRISM54 is not set |
515 | # CONFIG_HOSTAP is not set | 527 | # CONFIG_HOSTAP is not set |
528 | # CONFIG_BCM43XX is not set | ||
516 | CONFIG_NET_WIRELESS=y | 529 | CONFIG_NET_WIRELESS=y |
517 | 530 | ||
518 | # | 531 | # |
@@ -604,6 +617,8 @@ CONFIG_HW_CONSOLE=y | |||
604 | # | 617 | # |
605 | # Non-8250 serial port support | 618 | # Non-8250 serial port support |
606 | # | 619 | # |
620 | # CONFIG_SERIAL_VR41XX is not set | ||
621 | # CONFIG_SERIAL_JSM is not set | ||
607 | CONFIG_UNIX98_PTYS=y | 622 | CONFIG_UNIX98_PTYS=y |
608 | CONFIG_LEGACY_PTYS=y | 623 | CONFIG_LEGACY_PTYS=y |
609 | CONFIG_LEGACY_PTY_COUNT=256 | 624 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -634,6 +649,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
634 | # CONFIG_SYNCLINK_CS is not set | 649 | # CONFIG_SYNCLINK_CS is not set |
635 | # CONFIG_CARDMAN_4000 is not set | 650 | # CONFIG_CARDMAN_4000 is not set |
636 | # CONFIG_CARDMAN_4040 is not set | 651 | # CONFIG_CARDMAN_4040 is not set |
652 | # CONFIG_GPIO_VR41XX is not set | ||
637 | # CONFIG_RAW_DRIVER is not set | 653 | # CONFIG_RAW_DRIVER is not set |
638 | 654 | ||
639 | # | 655 | # |
@@ -669,10 +685,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
669 | # | 685 | # |
670 | 686 | ||
671 | # | 687 | # |
672 | # Multimedia Capabilities Port drivers | ||
673 | # | ||
674 | |||
675 | # | ||
676 | # Multimedia devices | 688 | # Multimedia devices |
677 | # | 689 | # |
678 | # CONFIG_VIDEO_DEV is not set | 690 | # CONFIG_VIDEO_DEV is not set |
@@ -681,6 +693,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
681 | # Digital Video Broadcasting Devices | 693 | # Digital Video Broadcasting Devices |
682 | # | 694 | # |
683 | # CONFIG_DVB is not set | 695 | # CONFIG_DVB is not set |
696 | # CONFIG_USB_DABUSB is not set | ||
684 | 697 | ||
685 | # | 698 | # |
686 | # Graphics support | 699 | # Graphics support |
@@ -703,6 +716,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
703 | # | 716 | # |
704 | CONFIG_USB_ARCH_HAS_HCD=y | 717 | CONFIG_USB_ARCH_HAS_HCD=y |
705 | CONFIG_USB_ARCH_HAS_OHCI=y | 718 | CONFIG_USB_ARCH_HAS_OHCI=y |
719 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
706 | CONFIG_USB=m | 720 | CONFIG_USB=m |
707 | # CONFIG_USB_DEBUG is not set | 721 | # CONFIG_USB_DEBUG is not set |
708 | 722 | ||
@@ -756,9 +770,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
756 | # CONFIG_USB_ACECAD is not set | 770 | # CONFIG_USB_ACECAD is not set |
757 | # CONFIG_USB_KBTAB is not set | 771 | # CONFIG_USB_KBTAB is not set |
758 | # CONFIG_USB_POWERMATE is not set | 772 | # CONFIG_USB_POWERMATE is not set |
759 | # CONFIG_USB_MTOUCH is not set | 773 | # CONFIG_USB_TOUCHSCREEN is not set |
760 | # CONFIG_USB_ITMTOUCH is not set | ||
761 | # CONFIG_USB_EGALAX is not set | ||
762 | # CONFIG_USB_YEALINK is not set | 774 | # CONFIG_USB_YEALINK is not set |
763 | # CONFIG_USB_XPAD is not set | 775 | # CONFIG_USB_XPAD is not set |
764 | # CONFIG_USB_ATI_REMOTE is not set | 776 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -772,15 +784,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
772 | # CONFIG_USB_MDC800 is not set | 784 | # CONFIG_USB_MDC800 is not set |
773 | 785 | ||
774 | # | 786 | # |
775 | # USB Multimedia devices | ||
776 | # | ||
777 | # CONFIG_USB_DABUSB is not set | ||
778 | |||
779 | # | ||
780 | # Video4Linux support is needed for USB Multimedia device support | ||
781 | # | ||
782 | |||
783 | # | ||
784 | # USB Network Adapters | 787 | # USB Network Adapters |
785 | # | 788 | # |
786 | # CONFIG_USB_CATC is not set | 789 | # CONFIG_USB_CATC is not set |
@@ -832,13 +835,31 @@ CONFIG_USB_PEGASUS=m | |||
832 | # CONFIG_MMC is not set | 835 | # CONFIG_MMC is not set |
833 | 836 | ||
834 | # | 837 | # |
838 | # LED devices | ||
839 | # | ||
840 | # CONFIG_NEW_LEDS is not set | ||
841 | |||
842 | # | ||
843 | # LED drivers | ||
844 | # | ||
845 | |||
846 | # | ||
847 | # LED Triggers | ||
848 | # | ||
849 | |||
850 | # | ||
835 | # InfiniBand support | 851 | # InfiniBand support |
836 | # | 852 | # |
837 | # CONFIG_INFINIBAND is not set | 853 | # CONFIG_INFINIBAND is not set |
838 | 854 | ||
839 | # | 855 | # |
840 | # SN Devices | 856 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
857 | # | ||
858 | |||
859 | # | ||
860 | # Real Time Clock | ||
841 | # | 861 | # |
862 | # CONFIG_RTC_CLASS is not set | ||
842 | 863 | ||
843 | # | 864 | # |
844 | # File systems | 865 | # File systems |
@@ -883,7 +904,6 @@ CONFIG_SYSFS=y | |||
883 | # CONFIG_TMPFS is not set | 904 | # CONFIG_TMPFS is not set |
884 | # CONFIG_HUGETLB_PAGE is not set | 905 | # CONFIG_HUGETLB_PAGE is not set |
885 | CONFIG_RAMFS=y | 906 | CONFIG_RAMFS=y |
886 | CONFIG_RELAYFS_FS=m | ||
887 | # CONFIG_CONFIGFS_FS is not set | 907 | # CONFIG_CONFIGFS_FS is not set |
888 | 908 | ||
889 | # | 909 | # |
@@ -946,6 +966,7 @@ CONFIG_MSDOS_PARTITION=y | |||
946 | # CONFIG_MAGIC_SYSRQ is not set | 966 | # CONFIG_MAGIC_SYSRQ is not set |
947 | # CONFIG_DEBUG_KERNEL is not set | 967 | # CONFIG_DEBUG_KERNEL is not set |
948 | CONFIG_LOG_BUF_SHIFT=14 | 968 | CONFIG_LOG_BUF_SHIFT=14 |
969 | # CONFIG_DEBUG_FS is not set | ||
949 | CONFIG_CROSSCOMPILE=y | 970 | CONFIG_CROSSCOMPILE=y |
950 | CONFIG_CMDLINE="mem=32M console=ttyVR0,19200" | 971 | CONFIG_CMDLINE="mem=32M console=ttyVR0,19200" |
951 | 972 | ||
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/ocelot_3_defconfig index 925d8adef88d..1ce4310fd92a 100644 --- a/arch/mips/configs/ocelot_3_defconfig +++ b/arch/mips/configs/ocelot_3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:18 2006 | 4 | # Mon Apr 24 14:51:10 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT_3=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -120,7 +122,6 @@ CONFIG_RM7000_CPU_SCACHE=y | |||
120 | CONFIG_CPU_HAS_PREFETCH=y | 122 | CONFIG_CPU_HAS_PREFETCH=y |
121 | # CONFIG_MIPS_MT is not set | 123 | # CONFIG_MIPS_MT is not set |
122 | # CONFIG_64BIT_PHYS_ADDR is not set | 124 | # CONFIG_64BIT_PHYS_ADDR is not set |
123 | # CONFIG_CPU_ADVANCED is not set | ||
124 | CONFIG_CPU_HAS_LLSC=y | 125 | CONFIG_CPU_HAS_LLSC=y |
125 | CONFIG_CPU_HAS_SYNC=y | 126 | CONFIG_CPU_HAS_SYNC=y |
126 | CONFIG_GENERIC_HARDIRQS=y | 127 | CONFIG_GENERIC_HARDIRQS=y |
@@ -144,7 +145,6 @@ CONFIG_PREEMPT_NONE=y | |||
144 | # Code maturity level options | 145 | # Code maturity level options |
145 | # | 146 | # |
146 | CONFIG_EXPERIMENTAL=y | 147 | CONFIG_EXPERIMENTAL=y |
147 | CONFIG_CLEAN_COMPILE=y | ||
148 | CONFIG_BROKEN_ON_SMP=y | 148 | CONFIG_BROKEN_ON_SMP=y |
149 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 149 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
150 | 150 | ||
@@ -161,6 +161,7 @@ CONFIG_SYSCTL=y | |||
161 | # CONFIG_AUDIT is not set | 161 | # CONFIG_AUDIT is not set |
162 | CONFIG_IKCONFIG=y | 162 | CONFIG_IKCONFIG=y |
163 | CONFIG_IKCONFIG_PROC=y | 163 | CONFIG_IKCONFIG_PROC=y |
164 | CONFIG_RELAY=y | ||
164 | CONFIG_INITRAMFS_SOURCE="" | 165 | CONFIG_INITRAMFS_SOURCE="" |
165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 166 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
166 | CONFIG_EMBEDDED=y | 167 | CONFIG_EMBEDDED=y |
@@ -174,10 +175,6 @@ CONFIG_BASE_FULL=y | |||
174 | CONFIG_FUTEX=y | 175 | CONFIG_FUTEX=y |
175 | CONFIG_EPOLL=y | 176 | CONFIG_EPOLL=y |
176 | CONFIG_SHMEM=y | 177 | CONFIG_SHMEM=y |
177 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
178 | CONFIG_CC_ALIGN_LABELS=0 | ||
179 | CONFIG_CC_ALIGN_LOOPS=0 | ||
180 | CONFIG_CC_ALIGN_JUMPS=0 | ||
181 | CONFIG_SLAB=y | 178 | CONFIG_SLAB=y |
182 | # CONFIG_TINY_SHMEM is not set | 179 | # CONFIG_TINY_SHMEM is not set |
183 | CONFIG_BASE_SMALL=0 | 180 | CONFIG_BASE_SMALL=0 |
@@ -189,7 +186,6 @@ CONFIG_BASE_SMALL=0 | |||
189 | CONFIG_MODULES=y | 186 | CONFIG_MODULES=y |
190 | CONFIG_MODULE_UNLOAD=y | 187 | CONFIG_MODULE_UNLOAD=y |
191 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 188 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
192 | CONFIG_OBSOLETE_MODPARM=y | ||
193 | CONFIG_MODVERSIONS=y | 189 | CONFIG_MODVERSIONS=y |
194 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 190 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
195 | CONFIG_KMOD=y | 191 | CONFIG_KMOD=y |
@@ -198,6 +194,8 @@ CONFIG_KMOD=y | |||
198 | # Block layer | 194 | # Block layer |
199 | # | 195 | # |
200 | # CONFIG_LBD is not set | 196 | # CONFIG_LBD is not set |
197 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
198 | # CONFIG_LSF is not set | ||
201 | 199 | ||
202 | # | 200 | # |
203 | # IO Schedulers | 201 | # IO Schedulers |
@@ -217,7 +215,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
217 | # | 215 | # |
218 | CONFIG_HW_HAS_PCI=y | 216 | CONFIG_HW_HAS_PCI=y |
219 | CONFIG_PCI=y | 217 | CONFIG_PCI=y |
220 | CONFIG_PCI_LEGACY_PROC=y | ||
221 | CONFIG_MMU=y | 218 | CONFIG_MMU=y |
222 | 219 | ||
223 | # | 220 | # |
@@ -245,6 +242,7 @@ CONFIG_NET=y | |||
245 | # | 242 | # |
246 | # Networking options | 243 | # Networking options |
247 | # | 244 | # |
245 | # CONFIG_NETDEBUG is not set | ||
248 | CONFIG_PACKET=y | 246 | CONFIG_PACKET=y |
249 | # CONFIG_PACKET_MMAP is not set | 247 | # CONFIG_PACKET_MMAP is not set |
250 | CONFIG_UNIX=y | 248 | CONFIG_UNIX=y |
@@ -266,6 +264,7 @@ CONFIG_IP_PNP_BOOTP=y | |||
266 | # CONFIG_INET_AH is not set | 264 | # CONFIG_INET_AH is not set |
267 | # CONFIG_INET_ESP is not set | 265 | # CONFIG_INET_ESP is not set |
268 | # CONFIG_INET_IPCOMP is not set | 266 | # CONFIG_INET_IPCOMP is not set |
267 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
269 | # CONFIG_INET_TUNNEL is not set | 268 | # CONFIG_INET_TUNNEL is not set |
270 | CONFIG_INET_DIAG=y | 269 | CONFIG_INET_DIAG=y |
271 | CONFIG_INET_TCP_DIAG=y | 270 | CONFIG_INET_TCP_DIAG=y |
@@ -278,9 +277,12 @@ CONFIG_TCP_CONG_BIC=y | |||
278 | # CONFIG_IP_VS is not set | 277 | # CONFIG_IP_VS is not set |
279 | CONFIG_IPV6=m | 278 | CONFIG_IPV6=m |
280 | # CONFIG_IPV6_PRIVACY is not set | 279 | # CONFIG_IPV6_PRIVACY is not set |
280 | CONFIG_IPV6_ROUTER_PREF=y | ||
281 | CONFIG_IPV6_ROUTE_INFO=y | ||
281 | # CONFIG_INET6_AH is not set | 282 | # CONFIG_INET6_AH is not set |
282 | # CONFIG_INET6_ESP is not set | 283 | # CONFIG_INET6_ESP is not set |
283 | # CONFIG_INET6_IPCOMP is not set | 284 | # CONFIG_INET6_IPCOMP is not set |
285 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
284 | # CONFIG_INET6_TUNNEL is not set | 286 | # CONFIG_INET6_TUNNEL is not set |
285 | # CONFIG_IPV6_TUNNEL is not set | 287 | # CONFIG_IPV6_TUNNEL is not set |
286 | CONFIG_NETFILTER=y | 288 | CONFIG_NETFILTER=y |
@@ -299,10 +301,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
299 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 301 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
300 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 302 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
301 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 303 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
304 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
302 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 305 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
303 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 306 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
304 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 307 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
305 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 308 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
309 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
310 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
306 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 311 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
307 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 312 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
308 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 313 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -332,6 +337,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
332 | # SCTP Configuration (EXPERIMENTAL) | 337 | # SCTP Configuration (EXPERIMENTAL) |
333 | # | 338 | # |
334 | # CONFIG_IP_SCTP is not set | 339 | # CONFIG_IP_SCTP is not set |
340 | |||
341 | # | ||
342 | # TIPC Configuration (EXPERIMENTAL) | ||
343 | # | ||
344 | # CONFIG_TIPC is not set | ||
335 | # CONFIG_ATM is not set | 345 | # CONFIG_ATM is not set |
336 | # CONFIG_BRIDGE is not set | 346 | # CONFIG_BRIDGE is not set |
337 | # CONFIG_VLAN_8021Q is not set | 347 | # CONFIG_VLAN_8021Q is not set |
@@ -341,11 +351,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
341 | # CONFIG_ATALK is not set | 351 | # CONFIG_ATALK is not set |
342 | # CONFIG_X25 is not set | 352 | # CONFIG_X25 is not set |
343 | # CONFIG_LAPB is not set | 353 | # CONFIG_LAPB is not set |
344 | |||
345 | # | ||
346 | # TIPC Configuration (EXPERIMENTAL) | ||
347 | # | ||
348 | # CONFIG_TIPC is not set | ||
349 | # CONFIG_NET_DIVERT is not set | 354 | # CONFIG_NET_DIVERT is not set |
350 | # CONFIG_ECONET is not set | 355 | # CONFIG_ECONET is not set |
351 | # CONFIG_WAN_ROUTER is not set | 356 | # CONFIG_WAN_ROUTER is not set |
@@ -367,6 +372,9 @@ CONFIG_IEEE80211=m | |||
367 | # CONFIG_IEEE80211_DEBUG is not set | 372 | # CONFIG_IEEE80211_DEBUG is not set |
368 | CONFIG_IEEE80211_CRYPT_WEP=m | 373 | CONFIG_IEEE80211_CRYPT_WEP=m |
369 | CONFIG_IEEE80211_CRYPT_CCMP=m | 374 | CONFIG_IEEE80211_CRYPT_CCMP=m |
375 | CONFIG_IEEE80211_SOFTMAC=m | ||
376 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
377 | CONFIG_WIRELESS_EXT=y | ||
370 | 378 | ||
371 | # | 379 | # |
372 | # Device Drivers | 380 | # Device Drivers |
@@ -411,7 +419,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
411 | # CONFIG_BLK_DEV_NBD is not set | 419 | # CONFIG_BLK_DEV_NBD is not set |
412 | # CONFIG_BLK_DEV_SX8 is not set | 420 | # CONFIG_BLK_DEV_SX8 is not set |
413 | # CONFIG_BLK_DEV_RAM is not set | 421 | # CONFIG_BLK_DEV_RAM is not set |
414 | CONFIG_BLK_DEV_RAM_COUNT=16 | 422 | # CONFIG_BLK_DEV_INITRD is not set |
415 | # CONFIG_CDROM_PKTCDVD is not set | 423 | # CONFIG_CDROM_PKTCDVD is not set |
416 | CONFIG_ATA_OVER_ETH=m | 424 | CONFIG_ATA_OVER_ETH=m |
417 | 425 | ||
@@ -475,7 +483,6 @@ CONFIG_ISCSI_TCP=m | |||
475 | # CONFIG_SCSI_INIA100 is not set | 483 | # CONFIG_SCSI_INIA100 is not set |
476 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 484 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
477 | # CONFIG_SCSI_IPR is not set | 485 | # CONFIG_SCSI_IPR is not set |
478 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
479 | # CONFIG_SCSI_QLOGIC_1280 is not set | 486 | # CONFIG_SCSI_QLOGIC_1280 is not set |
480 | # CONFIG_SCSI_QLA_FC is not set | 487 | # CONFIG_SCSI_QLA_FC is not set |
481 | # CONFIG_SCSI_LPFC is not set | 488 | # CONFIG_SCSI_LPFC is not set |
@@ -690,6 +697,7 @@ CONFIG_HW_CONSOLE=y | |||
690 | # | 697 | # |
691 | CONFIG_SERIAL_8250=y | 698 | CONFIG_SERIAL_8250=y |
692 | CONFIG_SERIAL_8250_CONSOLE=y | 699 | CONFIG_SERIAL_8250_CONSOLE=y |
700 | CONFIG_SERIAL_8250_PCI=y | ||
693 | CONFIG_SERIAL_8250_NR_UARTS=4 | 701 | CONFIG_SERIAL_8250_NR_UARTS=4 |
694 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 702 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
695 | # CONFIG_SERIAL_8250_EXTENDED is not set | 703 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -699,6 +707,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
699 | # | 707 | # |
700 | CONFIG_SERIAL_CORE=y | 708 | CONFIG_SERIAL_CORE=y |
701 | CONFIG_SERIAL_CORE_CONSOLE=y | 709 | CONFIG_SERIAL_CORE_CONSOLE=y |
710 | # CONFIG_SERIAL_JSM is not set | ||
702 | CONFIG_UNIX98_PTYS=y | 711 | CONFIG_UNIX98_PTYS=y |
703 | CONFIG_LEGACY_PTYS=y | 712 | CONFIG_LEGACY_PTYS=y |
704 | CONFIG_LEGACY_PTY_COUNT=256 | 713 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -756,10 +765,6 @@ CONFIG_RTC=y | |||
756 | # | 765 | # |
757 | 766 | ||
758 | # | 767 | # |
759 | # Multimedia Capabilities Port drivers | ||
760 | # | ||
761 | |||
762 | # | ||
763 | # Multimedia devices | 768 | # Multimedia devices |
764 | # | 769 | # |
765 | # CONFIG_VIDEO_DEV is not set | 770 | # CONFIG_VIDEO_DEV is not set |
@@ -777,6 +782,7 @@ CONFIG_FB=y | |||
777 | # CONFIG_FB_CFB_COPYAREA is not set | 782 | # CONFIG_FB_CFB_COPYAREA is not set |
778 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 783 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
779 | # CONFIG_FB_MACMODES is not set | 784 | # CONFIG_FB_MACMODES is not set |
785 | CONFIG_FB_FIRMWARE_EDID=y | ||
780 | CONFIG_FB_MODE_HELPERS=y | 786 | CONFIG_FB_MODE_HELPERS=y |
781 | # CONFIG_FB_TILEBLITTING is not set | 787 | # CONFIG_FB_TILEBLITTING is not set |
782 | # CONFIG_FB_CIRRUS is not set | 788 | # CONFIG_FB_CIRRUS is not set |
@@ -788,7 +794,6 @@ CONFIG_FB_MODE_HELPERS=y | |||
788 | # CONFIG_FB_NVIDIA is not set | 794 | # CONFIG_FB_NVIDIA is not set |
789 | # CONFIG_FB_RIVA is not set | 795 | # CONFIG_FB_RIVA is not set |
790 | # CONFIG_FB_MATROX is not set | 796 | # CONFIG_FB_MATROX is not set |
791 | # CONFIG_FB_RADEON_OLD is not set | ||
792 | # CONFIG_FB_RADEON is not set | 797 | # CONFIG_FB_RADEON is not set |
793 | # CONFIG_FB_ATY128 is not set | 798 | # CONFIG_FB_ATY128 is not set |
794 | # CONFIG_FB_ATY is not set | 799 | # CONFIG_FB_ATY is not set |
@@ -832,6 +837,7 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
832 | # | 837 | # |
833 | CONFIG_USB_ARCH_HAS_HCD=y | 838 | CONFIG_USB_ARCH_HAS_HCD=y |
834 | CONFIG_USB_ARCH_HAS_OHCI=y | 839 | CONFIG_USB_ARCH_HAS_OHCI=y |
840 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
835 | # CONFIG_USB is not set | 841 | # CONFIG_USB is not set |
836 | 842 | ||
837 | # | 843 | # |
@@ -849,13 +855,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
849 | # CONFIG_MMC is not set | 855 | # CONFIG_MMC is not set |
850 | 856 | ||
851 | # | 857 | # |
858 | # LED devices | ||
859 | # | ||
860 | # CONFIG_NEW_LEDS is not set | ||
861 | |||
862 | # | ||
863 | # LED drivers | ||
864 | # | ||
865 | |||
866 | # | ||
867 | # LED Triggers | ||
868 | # | ||
869 | |||
870 | # | ||
852 | # InfiniBand support | 871 | # InfiniBand support |
853 | # | 872 | # |
854 | # CONFIG_INFINIBAND is not set | 873 | # CONFIG_INFINIBAND is not set |
855 | 874 | ||
856 | # | 875 | # |
857 | # SN Devices | 876 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
877 | # | ||
878 | |||
879 | # | ||
880 | # Real Time Clock | ||
858 | # | 881 | # |
882 | # CONFIG_RTC_CLASS is not set | ||
859 | 883 | ||
860 | # | 884 | # |
861 | # File systems | 885 | # File systems |
@@ -914,7 +938,6 @@ CONFIG_SYSFS=y | |||
914 | CONFIG_TMPFS=y | 938 | CONFIG_TMPFS=y |
915 | # CONFIG_HUGETLB_PAGE is not set | 939 | # CONFIG_HUGETLB_PAGE is not set |
916 | CONFIG_RAMFS=y | 940 | CONFIG_RAMFS=y |
917 | CONFIG_RELAYFS_FS=m | ||
918 | # CONFIG_CONFIGFS_FS is not set | 941 | # CONFIG_CONFIGFS_FS is not set |
919 | 942 | ||
920 | # | 943 | # |
@@ -1025,6 +1048,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1025 | # CONFIG_MAGIC_SYSRQ is not set | 1048 | # CONFIG_MAGIC_SYSRQ is not set |
1026 | # CONFIG_DEBUG_KERNEL is not set | 1049 | # CONFIG_DEBUG_KERNEL is not set |
1027 | CONFIG_LOG_BUF_SHIFT=14 | 1050 | CONFIG_LOG_BUF_SHIFT=14 |
1051 | # CONFIG_DEBUG_FS is not set | ||
1028 | CONFIG_CROSSCOMPILE=y | 1052 | CONFIG_CROSSCOMPILE=y |
1029 | CONFIG_CMDLINE="ip=any root=nfs" | 1053 | CONFIG_CMDLINE="ip=any root=nfs" |
1030 | 1054 | ||
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig index ee1cf9b9eb9a..8a6aa5012f89 100644 --- a/arch/mips/configs/ocelot_c_defconfig +++ b/arch/mips/configs/ocelot_c_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:19 2006 | 4 | # Mon Apr 24 14:51:10 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT_C=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -139,7 +141,6 @@ CONFIG_PREEMPT_NONE=y | |||
139 | # Code maturity level options | 141 | # Code maturity level options |
140 | # | 142 | # |
141 | CONFIG_EXPERIMENTAL=y | 143 | CONFIG_EXPERIMENTAL=y |
142 | CONFIG_CLEAN_COMPILE=y | ||
143 | CONFIG_BROKEN_ON_SMP=y | 144 | CONFIG_BROKEN_ON_SMP=y |
144 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 145 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
145 | 146 | ||
@@ -155,6 +156,7 @@ CONFIG_SYSVIPC=y | |||
155 | CONFIG_SYSCTL=y | 156 | CONFIG_SYSCTL=y |
156 | # CONFIG_AUDIT is not set | 157 | # CONFIG_AUDIT is not set |
157 | # CONFIG_IKCONFIG is not set | 158 | # CONFIG_IKCONFIG is not set |
159 | CONFIG_RELAY=y | ||
158 | CONFIG_INITRAMFS_SOURCE="" | 160 | CONFIG_INITRAMFS_SOURCE="" |
159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 161 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
160 | CONFIG_EMBEDDED=y | 162 | CONFIG_EMBEDDED=y |
@@ -168,10 +170,6 @@ CONFIG_BASE_FULL=y | |||
168 | CONFIG_FUTEX=y | 170 | CONFIG_FUTEX=y |
169 | CONFIG_EPOLL=y | 171 | CONFIG_EPOLL=y |
170 | CONFIG_SHMEM=y | 172 | CONFIG_SHMEM=y |
171 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
172 | CONFIG_CC_ALIGN_LABELS=0 | ||
173 | CONFIG_CC_ALIGN_LOOPS=0 | ||
174 | CONFIG_CC_ALIGN_JUMPS=0 | ||
175 | CONFIG_SLAB=y | 173 | CONFIG_SLAB=y |
176 | # CONFIG_TINY_SHMEM is not set | 174 | # CONFIG_TINY_SHMEM is not set |
177 | CONFIG_BASE_SMALL=0 | 175 | CONFIG_BASE_SMALL=0 |
@@ -185,6 +183,7 @@ CONFIG_BASE_SMALL=0 | |||
185 | # | 183 | # |
186 | # Block layer | 184 | # Block layer |
187 | # | 185 | # |
186 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
188 | 187 | ||
189 | # | 188 | # |
190 | # IO Schedulers | 189 | # IO Schedulers |
@@ -204,7 +203,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
204 | # | 203 | # |
205 | CONFIG_HW_HAS_PCI=y | 204 | CONFIG_HW_HAS_PCI=y |
206 | CONFIG_PCI=y | 205 | CONFIG_PCI=y |
207 | CONFIG_PCI_LEGACY_PROC=y | ||
208 | CONFIG_MMU=y | 206 | CONFIG_MMU=y |
209 | 207 | ||
210 | # | 208 | # |
@@ -222,6 +220,7 @@ CONFIG_MMU=y | |||
222 | # | 220 | # |
223 | CONFIG_BINFMT_ELF=y | 221 | CONFIG_BINFMT_ELF=y |
224 | # CONFIG_BINFMT_MISC is not set | 222 | # CONFIG_BINFMT_MISC is not set |
223 | # CONFIG_BUILD_ELF64 is not set | ||
225 | CONFIG_MIPS32_COMPAT=y | 224 | CONFIG_MIPS32_COMPAT=y |
226 | CONFIG_COMPAT=y | 225 | CONFIG_COMPAT=y |
227 | CONFIG_MIPS32_O32=y | 226 | CONFIG_MIPS32_O32=y |
@@ -236,6 +235,7 @@ CONFIG_NET=y | |||
236 | # | 235 | # |
237 | # Networking options | 236 | # Networking options |
238 | # | 237 | # |
238 | # CONFIG_NETDEBUG is not set | ||
239 | # CONFIG_PACKET is not set | 239 | # CONFIG_PACKET is not set |
240 | CONFIG_UNIX=y | 240 | CONFIG_UNIX=y |
241 | CONFIG_XFRM=y | 241 | CONFIG_XFRM=y |
@@ -256,12 +256,15 @@ CONFIG_IP_PNP_DHCP=y | |||
256 | # CONFIG_INET_AH is not set | 256 | # CONFIG_INET_AH is not set |
257 | # CONFIG_INET_ESP is not set | 257 | # CONFIG_INET_ESP is not set |
258 | # CONFIG_INET_IPCOMP is not set | 258 | # CONFIG_INET_IPCOMP is not set |
259 | CONFIG_INET_TUNNEL=y | 259 | # CONFIG_INET_XFRM_TUNNEL is not set |
260 | # CONFIG_INET_TUNNEL is not set | ||
260 | CONFIG_INET_DIAG=y | 261 | CONFIG_INET_DIAG=y |
261 | CONFIG_INET_TCP_DIAG=y | 262 | CONFIG_INET_TCP_DIAG=y |
262 | # CONFIG_TCP_CONG_ADVANCED is not set | 263 | # CONFIG_TCP_CONG_ADVANCED is not set |
263 | CONFIG_TCP_CONG_BIC=y | 264 | CONFIG_TCP_CONG_BIC=y |
264 | # CONFIG_IPV6 is not set | 265 | # CONFIG_IPV6 is not set |
266 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
267 | # CONFIG_INET6_TUNNEL is not set | ||
265 | # CONFIG_NETFILTER is not set | 268 | # CONFIG_NETFILTER is not set |
266 | 269 | ||
267 | # | 270 | # |
@@ -273,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y | |||
273 | # SCTP Configuration (EXPERIMENTAL) | 276 | # SCTP Configuration (EXPERIMENTAL) |
274 | # | 277 | # |
275 | # CONFIG_IP_SCTP is not set | 278 | # CONFIG_IP_SCTP is not set |
279 | |||
280 | # | ||
281 | # TIPC Configuration (EXPERIMENTAL) | ||
282 | # | ||
283 | # CONFIG_TIPC is not set | ||
276 | # CONFIG_ATM is not set | 284 | # CONFIG_ATM is not set |
277 | # CONFIG_BRIDGE is not set | 285 | # CONFIG_BRIDGE is not set |
278 | # CONFIG_VLAN_8021Q is not set | 286 | # CONFIG_VLAN_8021Q is not set |
@@ -282,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y | |||
282 | # CONFIG_ATALK is not set | 290 | # CONFIG_ATALK is not set |
283 | # CONFIG_X25 is not set | 291 | # CONFIG_X25 is not set |
284 | # CONFIG_LAPB is not set | 292 | # CONFIG_LAPB is not set |
285 | |||
286 | # | ||
287 | # TIPC Configuration (EXPERIMENTAL) | ||
288 | # | ||
289 | # CONFIG_TIPC is not set | ||
290 | # CONFIG_NET_DIVERT is not set | 293 | # CONFIG_NET_DIVERT is not set |
291 | # CONFIG_ECONET is not set | 294 | # CONFIG_ECONET is not set |
292 | # CONFIG_WAN_ROUTER is not set | 295 | # CONFIG_WAN_ROUTER is not set |
@@ -307,6 +310,9 @@ CONFIG_IEEE80211=y | |||
307 | # CONFIG_IEEE80211_DEBUG is not set | 310 | # CONFIG_IEEE80211_DEBUG is not set |
308 | CONFIG_IEEE80211_CRYPT_WEP=y | 311 | CONFIG_IEEE80211_CRYPT_WEP=y |
309 | CONFIG_IEEE80211_CRYPT_CCMP=y | 312 | CONFIG_IEEE80211_CRYPT_CCMP=y |
313 | CONFIG_IEEE80211_SOFTMAC=y | ||
314 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
315 | CONFIG_WIRELESS_EXT=y | ||
310 | 316 | ||
311 | # | 317 | # |
312 | # Device Drivers | 318 | # Device Drivers |
@@ -351,7 +357,7 @@ CONFIG_PROC_EVENTS=y | |||
351 | # CONFIG_BLK_DEV_NBD is not set | 357 | # CONFIG_BLK_DEV_NBD is not set |
352 | # CONFIG_BLK_DEV_SX8 is not set | 358 | # CONFIG_BLK_DEV_SX8 is not set |
353 | # CONFIG_BLK_DEV_RAM is not set | 359 | # CONFIG_BLK_DEV_RAM is not set |
354 | CONFIG_BLK_DEV_RAM_COUNT=16 | 360 | # CONFIG_BLK_DEV_INITRD is not set |
355 | CONFIG_CDROM_PKTCDVD=y | 361 | CONFIG_CDROM_PKTCDVD=y |
356 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 362 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
357 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 363 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -542,6 +548,7 @@ CONFIG_HW_CONSOLE=y | |||
542 | # | 548 | # |
543 | CONFIG_SERIAL_8250=y | 549 | CONFIG_SERIAL_8250=y |
544 | CONFIG_SERIAL_8250_CONSOLE=y | 550 | CONFIG_SERIAL_8250_CONSOLE=y |
551 | CONFIG_SERIAL_8250_PCI=y | ||
545 | CONFIG_SERIAL_8250_NR_UARTS=4 | 552 | CONFIG_SERIAL_8250_NR_UARTS=4 |
546 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 553 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
547 | # CONFIG_SERIAL_8250_EXTENDED is not set | 554 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -551,6 +558,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
551 | # | 558 | # |
552 | CONFIG_SERIAL_CORE=y | 559 | CONFIG_SERIAL_CORE=y |
553 | CONFIG_SERIAL_CORE_CONSOLE=y | 560 | CONFIG_SERIAL_CORE_CONSOLE=y |
561 | # CONFIG_SERIAL_JSM is not set | ||
554 | CONFIG_UNIX98_PTYS=y | 562 | CONFIG_UNIX98_PTYS=y |
555 | CONFIG_LEGACY_PTYS=y | 563 | CONFIG_LEGACY_PTYS=y |
556 | CONFIG_LEGACY_PTY_COUNT=256 | 564 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -609,10 +617,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
609 | # | 617 | # |
610 | 618 | ||
611 | # | 619 | # |
612 | # Multimedia Capabilities Port drivers | ||
613 | # | ||
614 | |||
615 | # | ||
616 | # Multimedia devices | 620 | # Multimedia devices |
617 | # | 621 | # |
618 | # CONFIG_VIDEO_DEV is not set | 622 | # CONFIG_VIDEO_DEV is not set |
@@ -643,6 +647,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
643 | # | 647 | # |
644 | CONFIG_USB_ARCH_HAS_HCD=y | 648 | CONFIG_USB_ARCH_HAS_HCD=y |
645 | CONFIG_USB_ARCH_HAS_OHCI=y | 649 | CONFIG_USB_ARCH_HAS_OHCI=y |
650 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
646 | # CONFIG_USB is not set | 651 | # CONFIG_USB is not set |
647 | 652 | ||
648 | # | 653 | # |
@@ -660,13 +665,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
660 | # CONFIG_MMC is not set | 665 | # CONFIG_MMC is not set |
661 | 666 | ||
662 | # | 667 | # |
668 | # LED devices | ||
669 | # | ||
670 | # CONFIG_NEW_LEDS is not set | ||
671 | |||
672 | # | ||
673 | # LED drivers | ||
674 | # | ||
675 | |||
676 | # | ||
677 | # LED Triggers | ||
678 | # | ||
679 | |||
680 | # | ||
663 | # InfiniBand support | 681 | # InfiniBand support |
664 | # | 682 | # |
665 | # CONFIG_INFINIBAND is not set | 683 | # CONFIG_INFINIBAND is not set |
666 | 684 | ||
667 | # | 685 | # |
668 | # SN Devices | 686 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
687 | # | ||
688 | |||
689 | # | ||
690 | # Real Time Clock | ||
669 | # | 691 | # |
692 | # CONFIG_RTC_CLASS is not set | ||
670 | 693 | ||
671 | # | 694 | # |
672 | # File systems | 695 | # File systems |
@@ -711,7 +734,6 @@ CONFIG_SYSFS=y | |||
711 | # CONFIG_TMPFS is not set | 734 | # CONFIG_TMPFS is not set |
712 | # CONFIG_HUGETLB_PAGE is not set | 735 | # CONFIG_HUGETLB_PAGE is not set |
713 | CONFIG_RAMFS=y | 736 | CONFIG_RAMFS=y |
714 | CONFIG_RELAYFS_FS=y | ||
715 | # CONFIG_CONFIGFS_FS is not set | 737 | # CONFIG_CONFIGFS_FS is not set |
716 | 738 | ||
717 | # | 739 | # |
@@ -778,6 +800,8 @@ CONFIG_MSDOS_PARTITION=y | |||
778 | # CONFIG_MAGIC_SYSRQ is not set | 800 | # CONFIG_MAGIC_SYSRQ is not set |
779 | # CONFIG_DEBUG_KERNEL is not set | 801 | # CONFIG_DEBUG_KERNEL is not set |
780 | CONFIG_LOG_BUF_SHIFT=14 | 802 | CONFIG_LOG_BUF_SHIFT=14 |
803 | # CONFIG_DEBUG_FS is not set | ||
804 | # CONFIG_UNWIND_INFO is not set | ||
781 | CONFIG_CROSSCOMPILE=y | 805 | CONFIG_CROSSCOMPILE=y |
782 | CONFIG_CMDLINE="" | 806 | CONFIG_CMDLINE="" |
783 | 807 | ||
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig index d80ff278f2af..f9ee35eeb762 100644 --- a/arch/mips/configs/ocelot_defconfig +++ b/arch/mips/configs/ocelot_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:20 2006 | 4 | # Mon Apr 24 14:51:11 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -121,7 +123,6 @@ CONFIG_RM7000_CPU_SCACHE=y | |||
121 | CONFIG_CPU_HAS_PREFETCH=y | 123 | CONFIG_CPU_HAS_PREFETCH=y |
122 | # CONFIG_MIPS_MT is not set | 124 | # CONFIG_MIPS_MT is not set |
123 | # CONFIG_64BIT_PHYS_ADDR is not set | 125 | # CONFIG_64BIT_PHYS_ADDR is not set |
124 | # CONFIG_CPU_ADVANCED is not set | ||
125 | CONFIG_CPU_HAS_LLSC=y | 126 | CONFIG_CPU_HAS_LLSC=y |
126 | CONFIG_CPU_HAS_SYNC=y | 127 | CONFIG_CPU_HAS_SYNC=y |
127 | CONFIG_GENERIC_HARDIRQS=y | 128 | CONFIG_GENERIC_HARDIRQS=y |
@@ -144,7 +145,6 @@ CONFIG_PREEMPT_NONE=y | |||
144 | # Code maturity level options | 145 | # Code maturity level options |
145 | # | 146 | # |
146 | CONFIG_EXPERIMENTAL=y | 147 | CONFIG_EXPERIMENTAL=y |
147 | CONFIG_CLEAN_COMPILE=y | ||
148 | CONFIG_BROKEN_ON_SMP=y | 148 | CONFIG_BROKEN_ON_SMP=y |
149 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 149 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
150 | 150 | ||
@@ -160,6 +160,7 @@ CONFIG_SYSVIPC=y | |||
160 | CONFIG_SYSCTL=y | 160 | CONFIG_SYSCTL=y |
161 | # CONFIG_AUDIT is not set | 161 | # CONFIG_AUDIT is not set |
162 | # CONFIG_IKCONFIG is not set | 162 | # CONFIG_IKCONFIG is not set |
163 | CONFIG_RELAY=y | ||
163 | CONFIG_INITRAMFS_SOURCE="" | 164 | CONFIG_INITRAMFS_SOURCE="" |
164 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
165 | CONFIG_EMBEDDED=y | 166 | CONFIG_EMBEDDED=y |
@@ -173,10 +174,6 @@ CONFIG_BASE_FULL=y | |||
173 | CONFIG_FUTEX=y | 174 | CONFIG_FUTEX=y |
174 | CONFIG_EPOLL=y | 175 | CONFIG_EPOLL=y |
175 | CONFIG_SHMEM=y | 176 | CONFIG_SHMEM=y |
176 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
177 | CONFIG_CC_ALIGN_LABELS=0 | ||
178 | CONFIG_CC_ALIGN_LOOPS=0 | ||
179 | CONFIG_CC_ALIGN_JUMPS=0 | ||
180 | CONFIG_SLAB=y | 177 | CONFIG_SLAB=y |
181 | # CONFIG_TINY_SHMEM is not set | 178 | # CONFIG_TINY_SHMEM is not set |
182 | CONFIG_BASE_SMALL=0 | 179 | CONFIG_BASE_SMALL=0 |
@@ -191,6 +188,8 @@ CONFIG_BASE_SMALL=0 | |||
191 | # Block layer | 188 | # Block layer |
192 | # | 189 | # |
193 | # CONFIG_LBD is not set | 190 | # CONFIG_LBD is not set |
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
194 | 193 | ||
195 | # | 194 | # |
196 | # IO Schedulers | 195 | # IO Schedulers |
@@ -236,6 +235,7 @@ CONFIG_NET=y | |||
236 | # | 235 | # |
237 | # Networking options | 236 | # Networking options |
238 | # | 237 | # |
238 | # CONFIG_NETDEBUG is not set | ||
239 | # CONFIG_PACKET is not set | 239 | # CONFIG_PACKET is not set |
240 | CONFIG_UNIX=y | 240 | CONFIG_UNIX=y |
241 | CONFIG_XFRM=y | 241 | CONFIG_XFRM=y |
@@ -256,12 +256,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
256 | # CONFIG_INET_AH is not set | 256 | # CONFIG_INET_AH is not set |
257 | # CONFIG_INET_ESP is not set | 257 | # CONFIG_INET_ESP is not set |
258 | # CONFIG_INET_IPCOMP is not set | 258 | # CONFIG_INET_IPCOMP is not set |
259 | CONFIG_INET_TUNNEL=y | 259 | # CONFIG_INET_XFRM_TUNNEL is not set |
260 | # CONFIG_INET_TUNNEL is not set | ||
260 | CONFIG_INET_DIAG=y | 261 | CONFIG_INET_DIAG=y |
261 | CONFIG_INET_TCP_DIAG=y | 262 | CONFIG_INET_TCP_DIAG=y |
262 | # CONFIG_TCP_CONG_ADVANCED is not set | 263 | # CONFIG_TCP_CONG_ADVANCED is not set |
263 | CONFIG_TCP_CONG_BIC=y | 264 | CONFIG_TCP_CONG_BIC=y |
264 | # CONFIG_IPV6 is not set | 265 | # CONFIG_IPV6 is not set |
266 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
267 | # CONFIG_INET6_TUNNEL is not set | ||
265 | # CONFIG_NETFILTER is not set | 268 | # CONFIG_NETFILTER is not set |
266 | 269 | ||
267 | # | 270 | # |
@@ -273,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y | |||
273 | # SCTP Configuration (EXPERIMENTAL) | 276 | # SCTP Configuration (EXPERIMENTAL) |
274 | # | 277 | # |
275 | # CONFIG_IP_SCTP is not set | 278 | # CONFIG_IP_SCTP is not set |
279 | |||
280 | # | ||
281 | # TIPC Configuration (EXPERIMENTAL) | ||
282 | # | ||
283 | # CONFIG_TIPC is not set | ||
276 | # CONFIG_ATM is not set | 284 | # CONFIG_ATM is not set |
277 | # CONFIG_BRIDGE is not set | 285 | # CONFIG_BRIDGE is not set |
278 | # CONFIG_VLAN_8021Q is not set | 286 | # CONFIG_VLAN_8021Q is not set |
@@ -282,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y | |||
282 | # CONFIG_ATALK is not set | 290 | # CONFIG_ATALK is not set |
283 | # CONFIG_X25 is not set | 291 | # CONFIG_X25 is not set |
284 | # CONFIG_LAPB is not set | 292 | # CONFIG_LAPB is not set |
285 | |||
286 | # | ||
287 | # TIPC Configuration (EXPERIMENTAL) | ||
288 | # | ||
289 | # CONFIG_TIPC is not set | ||
290 | # CONFIG_NET_DIVERT is not set | 293 | # CONFIG_NET_DIVERT is not set |
291 | # CONFIG_ECONET is not set | 294 | # CONFIG_ECONET is not set |
292 | # CONFIG_WAN_ROUTER is not set | 295 | # CONFIG_WAN_ROUTER is not set |
@@ -307,6 +310,9 @@ CONFIG_IEEE80211=y | |||
307 | # CONFIG_IEEE80211_DEBUG is not set | 310 | # CONFIG_IEEE80211_DEBUG is not set |
308 | CONFIG_IEEE80211_CRYPT_WEP=y | 311 | CONFIG_IEEE80211_CRYPT_WEP=y |
309 | CONFIG_IEEE80211_CRYPT_CCMP=y | 312 | CONFIG_IEEE80211_CRYPT_CCMP=y |
313 | CONFIG_IEEE80211_SOFTMAC=y | ||
314 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
315 | CONFIG_WIRELESS_EXT=y | ||
310 | 316 | ||
311 | # | 317 | # |
312 | # Device Drivers | 318 | # Device Drivers |
@@ -346,7 +352,7 @@ CONFIG_PROC_EVENTS=y | |||
346 | # CONFIG_BLK_DEV_LOOP is not set | 352 | # CONFIG_BLK_DEV_LOOP is not set |
347 | # CONFIG_BLK_DEV_NBD is not set | 353 | # CONFIG_BLK_DEV_NBD is not set |
348 | # CONFIG_BLK_DEV_RAM is not set | 354 | # CONFIG_BLK_DEV_RAM is not set |
349 | CONFIG_BLK_DEV_RAM_COUNT=16 | 355 | # CONFIG_BLK_DEV_INITRD is not set |
350 | CONFIG_CDROM_PKTCDVD=y | 356 | CONFIG_CDROM_PKTCDVD=y |
351 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 357 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
352 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 358 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -563,10 +569,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
563 | # | 569 | # |
564 | 570 | ||
565 | # | 571 | # |
566 | # Multimedia Capabilities Port drivers | ||
567 | # | ||
568 | |||
569 | # | ||
570 | # Multimedia devices | 572 | # Multimedia devices |
571 | # | 573 | # |
572 | # CONFIG_VIDEO_DEV is not set | 574 | # CONFIG_VIDEO_DEV is not set |
@@ -597,6 +599,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
597 | # | 599 | # |
598 | # CONFIG_USB_ARCH_HAS_HCD is not set | 600 | # CONFIG_USB_ARCH_HAS_HCD is not set |
599 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 601 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
602 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
600 | 603 | ||
601 | # | 604 | # |
602 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 605 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -613,12 +616,30 @@ CONFIG_DUMMY_CONSOLE=y | |||
613 | # CONFIG_MMC is not set | 616 | # CONFIG_MMC is not set |
614 | 617 | ||
615 | # | 618 | # |
619 | # LED devices | ||
620 | # | ||
621 | # CONFIG_NEW_LEDS is not set | ||
622 | |||
623 | # | ||
624 | # LED drivers | ||
625 | # | ||
626 | |||
627 | # | ||
628 | # LED Triggers | ||
629 | # | ||
630 | |||
631 | # | ||
616 | # InfiniBand support | 632 | # InfiniBand support |
617 | # | 633 | # |
618 | 634 | ||
619 | # | 635 | # |
620 | # SN Devices | 636 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
637 | # | ||
638 | |||
639 | # | ||
640 | # Real Time Clock | ||
621 | # | 641 | # |
642 | # CONFIG_RTC_CLASS is not set | ||
622 | 643 | ||
623 | # | 644 | # |
624 | # File systems | 645 | # File systems |
@@ -663,7 +684,6 @@ CONFIG_SYSFS=y | |||
663 | # CONFIG_TMPFS is not set | 684 | # CONFIG_TMPFS is not set |
664 | # CONFIG_HUGETLB_PAGE is not set | 685 | # CONFIG_HUGETLB_PAGE is not set |
665 | CONFIG_RAMFS=y | 686 | CONFIG_RAMFS=y |
666 | CONFIG_RELAYFS_FS=y | ||
667 | # CONFIG_CONFIGFS_FS is not set | 687 | # CONFIG_CONFIGFS_FS is not set |
668 | 688 | ||
669 | # | 689 | # |
@@ -730,6 +750,8 @@ CONFIG_MSDOS_PARTITION=y | |||
730 | # CONFIG_MAGIC_SYSRQ is not set | 750 | # CONFIG_MAGIC_SYSRQ is not set |
731 | # CONFIG_DEBUG_KERNEL is not set | 751 | # CONFIG_DEBUG_KERNEL is not set |
732 | CONFIG_LOG_BUF_SHIFT=14 | 752 | CONFIG_LOG_BUF_SHIFT=14 |
753 | # CONFIG_DEBUG_FS is not set | ||
754 | # CONFIG_UNWIND_INFO is not set | ||
733 | CONFIG_CROSSCOMPILE=y | 755 | CONFIG_CROSSCOMPILE=y |
734 | CONFIG_CMDLINE="" | 756 | CONFIG_CMDLINE="" |
735 | 757 | ||
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig index c0f508d180c4..b48bdee2411f 100644 --- a/arch/mips/configs/ocelot_g_defconfig +++ b/arch/mips/configs/ocelot_g_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:21 2006 | 4 | # Mon Apr 24 14:51:11 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MOMENCO_OCELOT_G=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -142,7 +144,6 @@ CONFIG_PREEMPT_NONE=y | |||
142 | # Code maturity level options | 144 | # Code maturity level options |
143 | # | 145 | # |
144 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
145 | CONFIG_CLEAN_COMPILE=y | ||
146 | CONFIG_BROKEN_ON_SMP=y | 147 | CONFIG_BROKEN_ON_SMP=y |
147 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
148 | 149 | ||
@@ -158,6 +159,7 @@ CONFIG_SYSVIPC=y | |||
158 | CONFIG_SYSCTL=y | 159 | CONFIG_SYSCTL=y |
159 | # CONFIG_AUDIT is not set | 160 | # CONFIG_AUDIT is not set |
160 | # CONFIG_IKCONFIG is not set | 161 | # CONFIG_IKCONFIG is not set |
162 | CONFIG_RELAY=y | ||
161 | CONFIG_INITRAMFS_SOURCE="" | 163 | CONFIG_INITRAMFS_SOURCE="" |
162 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 164 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
163 | CONFIG_EMBEDDED=y | 165 | CONFIG_EMBEDDED=y |
@@ -171,10 +173,6 @@ CONFIG_BASE_FULL=y | |||
171 | CONFIG_FUTEX=y | 173 | CONFIG_FUTEX=y |
172 | CONFIG_EPOLL=y | 174 | CONFIG_EPOLL=y |
173 | CONFIG_SHMEM=y | 175 | CONFIG_SHMEM=y |
174 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
175 | CONFIG_CC_ALIGN_LABELS=0 | ||
176 | CONFIG_CC_ALIGN_LOOPS=0 | ||
177 | CONFIG_CC_ALIGN_JUMPS=0 | ||
178 | CONFIG_SLAB=y | 176 | CONFIG_SLAB=y |
179 | # CONFIG_TINY_SHMEM is not set | 177 | # CONFIG_TINY_SHMEM is not set |
180 | CONFIG_BASE_SMALL=0 | 178 | CONFIG_BASE_SMALL=0 |
@@ -188,6 +186,7 @@ CONFIG_BASE_SMALL=0 | |||
188 | # | 186 | # |
189 | # Block layer | 187 | # Block layer |
190 | # | 188 | # |
189 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
191 | 190 | ||
192 | # | 191 | # |
193 | # IO Schedulers | 192 | # IO Schedulers |
@@ -207,7 +206,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
207 | # | 206 | # |
208 | CONFIG_HW_HAS_PCI=y | 207 | CONFIG_HW_HAS_PCI=y |
209 | CONFIG_PCI=y | 208 | CONFIG_PCI=y |
210 | CONFIG_PCI_LEGACY_PROC=y | ||
211 | CONFIG_MMU=y | 209 | CONFIG_MMU=y |
212 | 210 | ||
213 | # | 211 | # |
@@ -225,6 +223,7 @@ CONFIG_MMU=y | |||
225 | # | 223 | # |
226 | CONFIG_BINFMT_ELF=y | 224 | CONFIG_BINFMT_ELF=y |
227 | # CONFIG_BINFMT_MISC is not set | 225 | # CONFIG_BINFMT_MISC is not set |
226 | # CONFIG_BUILD_ELF64 is not set | ||
228 | CONFIG_MIPS32_COMPAT=y | 227 | CONFIG_MIPS32_COMPAT=y |
229 | CONFIG_COMPAT=y | 228 | CONFIG_COMPAT=y |
230 | CONFIG_MIPS32_O32=y | 229 | CONFIG_MIPS32_O32=y |
@@ -239,6 +238,7 @@ CONFIG_NET=y | |||
239 | # | 238 | # |
240 | # Networking options | 239 | # Networking options |
241 | # | 240 | # |
241 | # CONFIG_NETDEBUG is not set | ||
242 | # CONFIG_PACKET is not set | 242 | # CONFIG_PACKET is not set |
243 | CONFIG_UNIX=y | 243 | CONFIG_UNIX=y |
244 | CONFIG_XFRM=y | 244 | CONFIG_XFRM=y |
@@ -259,12 +259,15 @@ CONFIG_IP_PNP_DHCP=y | |||
259 | # CONFIG_INET_AH is not set | 259 | # CONFIG_INET_AH is not set |
260 | # CONFIG_INET_ESP is not set | 260 | # CONFIG_INET_ESP is not set |
261 | # CONFIG_INET_IPCOMP is not set | 261 | # CONFIG_INET_IPCOMP is not set |
262 | CONFIG_INET_TUNNEL=y | 262 | # CONFIG_INET_XFRM_TUNNEL is not set |
263 | # CONFIG_INET_TUNNEL is not set | ||
263 | CONFIG_INET_DIAG=y | 264 | CONFIG_INET_DIAG=y |
264 | CONFIG_INET_TCP_DIAG=y | 265 | CONFIG_INET_TCP_DIAG=y |
265 | # CONFIG_TCP_CONG_ADVANCED is not set | 266 | # CONFIG_TCP_CONG_ADVANCED is not set |
266 | CONFIG_TCP_CONG_BIC=y | 267 | CONFIG_TCP_CONG_BIC=y |
267 | # CONFIG_IPV6 is not set | 268 | # CONFIG_IPV6 is not set |
269 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
270 | # CONFIG_INET6_TUNNEL is not set | ||
268 | # CONFIG_NETFILTER is not set | 271 | # CONFIG_NETFILTER is not set |
269 | 272 | ||
270 | # | 273 | # |
@@ -276,6 +279,11 @@ CONFIG_TCP_CONG_BIC=y | |||
276 | # SCTP Configuration (EXPERIMENTAL) | 279 | # SCTP Configuration (EXPERIMENTAL) |
277 | # | 280 | # |
278 | # CONFIG_IP_SCTP is not set | 281 | # CONFIG_IP_SCTP is not set |
282 | |||
283 | # | ||
284 | # TIPC Configuration (EXPERIMENTAL) | ||
285 | # | ||
286 | # CONFIG_TIPC is not set | ||
279 | # CONFIG_ATM is not set | 287 | # CONFIG_ATM is not set |
280 | # CONFIG_BRIDGE is not set | 288 | # CONFIG_BRIDGE is not set |
281 | # CONFIG_VLAN_8021Q is not set | 289 | # CONFIG_VLAN_8021Q is not set |
@@ -285,11 +293,6 @@ CONFIG_TCP_CONG_BIC=y | |||
285 | # CONFIG_ATALK is not set | 293 | # CONFIG_ATALK is not set |
286 | # CONFIG_X25 is not set | 294 | # CONFIG_X25 is not set |
287 | # CONFIG_LAPB is not set | 295 | # CONFIG_LAPB is not set |
288 | |||
289 | # | ||
290 | # TIPC Configuration (EXPERIMENTAL) | ||
291 | # | ||
292 | # CONFIG_TIPC is not set | ||
293 | # CONFIG_NET_DIVERT is not set | 296 | # CONFIG_NET_DIVERT is not set |
294 | # CONFIG_ECONET is not set | 297 | # CONFIG_ECONET is not set |
295 | # CONFIG_WAN_ROUTER is not set | 298 | # CONFIG_WAN_ROUTER is not set |
@@ -310,6 +313,9 @@ CONFIG_IEEE80211=y | |||
310 | # CONFIG_IEEE80211_DEBUG is not set | 313 | # CONFIG_IEEE80211_DEBUG is not set |
311 | CONFIG_IEEE80211_CRYPT_WEP=y | 314 | CONFIG_IEEE80211_CRYPT_WEP=y |
312 | CONFIG_IEEE80211_CRYPT_CCMP=y | 315 | CONFIG_IEEE80211_CRYPT_CCMP=y |
316 | CONFIG_IEEE80211_SOFTMAC=y | ||
317 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
318 | CONFIG_WIRELESS_EXT=y | ||
313 | 319 | ||
314 | # | 320 | # |
315 | # Device Drivers | 321 | # Device Drivers |
@@ -354,7 +360,7 @@ CONFIG_PROC_EVENTS=y | |||
354 | # CONFIG_BLK_DEV_NBD is not set | 360 | # CONFIG_BLK_DEV_NBD is not set |
355 | # CONFIG_BLK_DEV_SX8 is not set | 361 | # CONFIG_BLK_DEV_SX8 is not set |
356 | # CONFIG_BLK_DEV_RAM is not set | 362 | # CONFIG_BLK_DEV_RAM is not set |
357 | CONFIG_BLK_DEV_RAM_COUNT=16 | 363 | # CONFIG_BLK_DEV_INITRD is not set |
358 | CONFIG_CDROM_PKTCDVD=y | 364 | CONFIG_CDROM_PKTCDVD=y |
359 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 365 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
360 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 366 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -545,6 +551,7 @@ CONFIG_HW_CONSOLE=y | |||
545 | # | 551 | # |
546 | CONFIG_SERIAL_8250=y | 552 | CONFIG_SERIAL_8250=y |
547 | CONFIG_SERIAL_8250_CONSOLE=y | 553 | CONFIG_SERIAL_8250_CONSOLE=y |
554 | CONFIG_SERIAL_8250_PCI=y | ||
548 | CONFIG_SERIAL_8250_NR_UARTS=4 | 555 | CONFIG_SERIAL_8250_NR_UARTS=4 |
549 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 556 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
550 | # CONFIG_SERIAL_8250_EXTENDED is not set | 557 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -554,6 +561,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
554 | # | 561 | # |
555 | CONFIG_SERIAL_CORE=y | 562 | CONFIG_SERIAL_CORE=y |
556 | CONFIG_SERIAL_CORE_CONSOLE=y | 563 | CONFIG_SERIAL_CORE_CONSOLE=y |
564 | # CONFIG_SERIAL_JSM is not set | ||
557 | CONFIG_UNIX98_PTYS=y | 565 | CONFIG_UNIX98_PTYS=y |
558 | CONFIG_LEGACY_PTYS=y | 566 | CONFIG_LEGACY_PTYS=y |
559 | CONFIG_LEGACY_PTY_COUNT=256 | 567 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -612,10 +620,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
612 | # | 620 | # |
613 | 621 | ||
614 | # | 622 | # |
615 | # Multimedia Capabilities Port drivers | ||
616 | # | ||
617 | |||
618 | # | ||
619 | # Multimedia devices | 623 | # Multimedia devices |
620 | # | 624 | # |
621 | # CONFIG_VIDEO_DEV is not set | 625 | # CONFIG_VIDEO_DEV is not set |
@@ -646,6 +650,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
646 | # | 650 | # |
647 | CONFIG_USB_ARCH_HAS_HCD=y | 651 | CONFIG_USB_ARCH_HAS_HCD=y |
648 | CONFIG_USB_ARCH_HAS_OHCI=y | 652 | CONFIG_USB_ARCH_HAS_OHCI=y |
653 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
649 | # CONFIG_USB is not set | 654 | # CONFIG_USB is not set |
650 | 655 | ||
651 | # | 656 | # |
@@ -663,13 +668,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
663 | # CONFIG_MMC is not set | 668 | # CONFIG_MMC is not set |
664 | 669 | ||
665 | # | 670 | # |
671 | # LED devices | ||
672 | # | ||
673 | # CONFIG_NEW_LEDS is not set | ||
674 | |||
675 | # | ||
676 | # LED drivers | ||
677 | # | ||
678 | |||
679 | # | ||
680 | # LED Triggers | ||
681 | # | ||
682 | |||
683 | # | ||
666 | # InfiniBand support | 684 | # InfiniBand support |
667 | # | 685 | # |
668 | # CONFIG_INFINIBAND is not set | 686 | # CONFIG_INFINIBAND is not set |
669 | 687 | ||
670 | # | 688 | # |
671 | # SN Devices | 689 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
690 | # | ||
691 | |||
692 | # | ||
693 | # Real Time Clock | ||
672 | # | 694 | # |
695 | # CONFIG_RTC_CLASS is not set | ||
673 | 696 | ||
674 | # | 697 | # |
675 | # File systems | 698 | # File systems |
@@ -714,7 +737,6 @@ CONFIG_SYSFS=y | |||
714 | # CONFIG_TMPFS is not set | 737 | # CONFIG_TMPFS is not set |
715 | # CONFIG_HUGETLB_PAGE is not set | 738 | # CONFIG_HUGETLB_PAGE is not set |
716 | CONFIG_RAMFS=y | 739 | CONFIG_RAMFS=y |
717 | CONFIG_RELAYFS_FS=y | ||
718 | # CONFIG_CONFIGFS_FS is not set | 740 | # CONFIG_CONFIGFS_FS is not set |
719 | 741 | ||
720 | # | 742 | # |
@@ -781,6 +803,8 @@ CONFIG_MSDOS_PARTITION=y | |||
781 | # CONFIG_MAGIC_SYSRQ is not set | 803 | # CONFIG_MAGIC_SYSRQ is not set |
782 | # CONFIG_DEBUG_KERNEL is not set | 804 | # CONFIG_DEBUG_KERNEL is not set |
783 | CONFIG_LOG_BUF_SHIFT=14 | 805 | CONFIG_LOG_BUF_SHIFT=14 |
806 | # CONFIG_DEBUG_FS is not set | ||
807 | # CONFIG_UNWIND_INFO is not set | ||
784 | CONFIG_CROSSCOMPILE=y | 808 | CONFIG_CROSSCOMPILE=y |
785 | CONFIG_CMDLINE="" | 809 | CONFIG_CMDLINE="" |
786 | 810 | ||
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig index 194b3c772bb7..01aac40634b4 100644 --- a/arch/mips/configs/pb1100_defconfig +++ b/arch/mips/configs/pb1100_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:22 2006 | 4 | # Mon Apr 24 14:51:12 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_PB1100=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -116,11 +118,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
116 | CONFIG_CPU_HAS_PREFETCH=y | 118 | CONFIG_CPU_HAS_PREFETCH=y |
117 | # CONFIG_MIPS_MT is not set | 119 | # CONFIG_MIPS_MT is not set |
118 | CONFIG_64BIT_PHYS_ADDR=y | 120 | CONFIG_64BIT_PHYS_ADDR=y |
119 | # CONFIG_CPU_ADVANCED is not set | ||
120 | CONFIG_CPU_HAS_LLSC=y | 121 | CONFIG_CPU_HAS_LLSC=y |
121 | CONFIG_CPU_HAS_SYNC=y | 122 | CONFIG_CPU_HAS_SYNC=y |
122 | CONFIG_GENERIC_HARDIRQS=y | 123 | CONFIG_GENERIC_HARDIRQS=y |
123 | CONFIG_GENERIC_IRQ_PROBE=y | 124 | CONFIG_GENERIC_IRQ_PROBE=y |
125 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
124 | CONFIG_ARCH_FLATMEM_ENABLE=y | 126 | CONFIG_ARCH_FLATMEM_ENABLE=y |
125 | CONFIG_SELECT_MEMORY_MODEL=y | 127 | CONFIG_SELECT_MEMORY_MODEL=y |
126 | CONFIG_FLATMEM_MANUAL=y | 128 | CONFIG_FLATMEM_MANUAL=y |
@@ -138,7 +140,6 @@ CONFIG_PREEMPT_NONE=y | |||
138 | # Code maturity level options | 140 | # Code maturity level options |
139 | # | 141 | # |
140 | CONFIG_EXPERIMENTAL=y | 142 | CONFIG_EXPERIMENTAL=y |
141 | CONFIG_CLEAN_COMPILE=y | ||
142 | CONFIG_BROKEN_ON_SMP=y | 143 | CONFIG_BROKEN_ON_SMP=y |
143 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 144 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
144 | 145 | ||
@@ -154,6 +155,7 @@ CONFIG_SYSVIPC=y | |||
154 | CONFIG_SYSCTL=y | 155 | CONFIG_SYSCTL=y |
155 | # CONFIG_AUDIT is not set | 156 | # CONFIG_AUDIT is not set |
156 | # CONFIG_IKCONFIG is not set | 157 | # CONFIG_IKCONFIG is not set |
158 | CONFIG_RELAY=y | ||
157 | CONFIG_INITRAMFS_SOURCE="" | 159 | CONFIG_INITRAMFS_SOURCE="" |
158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 160 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
159 | CONFIG_EMBEDDED=y | 161 | CONFIG_EMBEDDED=y |
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 169 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 170 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 171 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 172 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 173 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 174 | CONFIG_BASE_SMALL=0 |
@@ -183,7 +181,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
183 | CONFIG_MODULES=y | 181 | CONFIG_MODULES=y |
184 | CONFIG_MODULE_UNLOAD=y | 182 | CONFIG_MODULE_UNLOAD=y |
185 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 183 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
186 | CONFIG_OBSOLETE_MODPARM=y | ||
187 | CONFIG_MODVERSIONS=y | 184 | CONFIG_MODVERSIONS=y |
188 | CONFIG_MODULE_SRCVERSION_ALL=y | 185 | CONFIG_MODULE_SRCVERSION_ALL=y |
189 | CONFIG_KMOD=y | 186 | CONFIG_KMOD=y |
@@ -192,6 +189,8 @@ CONFIG_KMOD=y | |||
192 | # Block layer | 189 | # Block layer |
193 | # | 190 | # |
194 | # CONFIG_LBD is not set | 191 | # CONFIG_LBD is not set |
192 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
193 | # CONFIG_LSF is not set | ||
195 | 194 | ||
196 | # | 195 | # |
197 | # IO Schedulers | 196 | # IO Schedulers |
@@ -247,6 +246,7 @@ CONFIG_NET=y | |||
247 | # | 246 | # |
248 | # Networking options | 247 | # Networking options |
249 | # | 248 | # |
249 | # CONFIG_NETDEBUG is not set | ||
250 | CONFIG_PACKET=y | 250 | CONFIG_PACKET=y |
251 | # CONFIG_PACKET_MMAP is not set | 251 | # CONFIG_PACKET_MMAP is not set |
252 | CONFIG_UNIX=y | 252 | CONFIG_UNIX=y |
@@ -269,7 +269,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
269 | # CONFIG_INET_AH is not set | 269 | # CONFIG_INET_AH is not set |
270 | # CONFIG_INET_ESP is not set | 270 | # CONFIG_INET_ESP is not set |
271 | # CONFIG_INET_IPCOMP is not set | 271 | # CONFIG_INET_IPCOMP is not set |
272 | CONFIG_INET_TUNNEL=m | 272 | # CONFIG_INET_XFRM_TUNNEL is not set |
273 | # CONFIG_INET_TUNNEL is not set | ||
273 | CONFIG_INET_DIAG=y | 274 | CONFIG_INET_DIAG=y |
274 | CONFIG_INET_TCP_DIAG=y | 275 | CONFIG_INET_TCP_DIAG=y |
275 | # CONFIG_TCP_CONG_ADVANCED is not set | 276 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -280,6 +281,8 @@ CONFIG_TCP_CONG_BIC=y | |||
280 | # | 281 | # |
281 | # CONFIG_IP_VS is not set | 282 | # CONFIG_IP_VS is not set |
282 | # CONFIG_IPV6 is not set | 283 | # CONFIG_IPV6 is not set |
284 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
285 | # CONFIG_INET6_TUNNEL is not set | ||
283 | CONFIG_NETFILTER=y | 286 | CONFIG_NETFILTER=y |
284 | # CONFIG_NETFILTER_DEBUG is not set | 287 | # CONFIG_NETFILTER_DEBUG is not set |
285 | 288 | ||
@@ -296,10 +299,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
296 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 299 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
297 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 300 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
298 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 301 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
302 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
299 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 303 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
300 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 304 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
301 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 305 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
302 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 306 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
307 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
308 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
303 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 309 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
304 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 310 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
305 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 311 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -323,6 +329,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
323 | # SCTP Configuration (EXPERIMENTAL) | 329 | # SCTP Configuration (EXPERIMENTAL) |
324 | # | 330 | # |
325 | # CONFIG_IP_SCTP is not set | 331 | # CONFIG_IP_SCTP is not set |
332 | |||
333 | # | ||
334 | # TIPC Configuration (EXPERIMENTAL) | ||
335 | # | ||
336 | # CONFIG_TIPC is not set | ||
326 | # CONFIG_ATM is not set | 337 | # CONFIG_ATM is not set |
327 | # CONFIG_BRIDGE is not set | 338 | # CONFIG_BRIDGE is not set |
328 | # CONFIG_VLAN_8021Q is not set | 339 | # CONFIG_VLAN_8021Q is not set |
@@ -332,11 +343,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
332 | # CONFIG_ATALK is not set | 343 | # CONFIG_ATALK is not set |
333 | # CONFIG_X25 is not set | 344 | # CONFIG_X25 is not set |
334 | # CONFIG_LAPB is not set | 345 | # CONFIG_LAPB is not set |
335 | |||
336 | # | ||
337 | # TIPC Configuration (EXPERIMENTAL) | ||
338 | # | ||
339 | # CONFIG_TIPC is not set | ||
340 | # CONFIG_NET_DIVERT is not set | 346 | # CONFIG_NET_DIVERT is not set |
341 | # CONFIG_ECONET is not set | 347 | # CONFIG_ECONET is not set |
342 | # CONFIG_WAN_ROUTER is not set | 348 | # CONFIG_WAN_ROUTER is not set |
@@ -358,6 +364,9 @@ CONFIG_IEEE80211=m | |||
358 | # CONFIG_IEEE80211_DEBUG is not set | 364 | # CONFIG_IEEE80211_DEBUG is not set |
359 | CONFIG_IEEE80211_CRYPT_WEP=m | 365 | CONFIG_IEEE80211_CRYPT_WEP=m |
360 | CONFIG_IEEE80211_CRYPT_CCMP=m | 366 | CONFIG_IEEE80211_CRYPT_CCMP=m |
367 | CONFIG_IEEE80211_SOFTMAC=m | ||
368 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
369 | CONFIG_WIRELESS_EXT=y | ||
361 | 370 | ||
362 | # | 371 | # |
363 | # Device Drivers | 372 | # Device Drivers |
@@ -414,7 +423,6 @@ CONFIG_MTD_CFI_I2=y | |||
414 | # CONFIG_MTD_CFI_I8 is not set | 423 | # CONFIG_MTD_CFI_I8 is not set |
415 | # CONFIG_MTD_CFI_INTELEXT is not set | 424 | # CONFIG_MTD_CFI_INTELEXT is not set |
416 | CONFIG_MTD_CFI_AMDSTD=y | 425 | CONFIG_MTD_CFI_AMDSTD=y |
417 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
418 | # CONFIG_MTD_CFI_STAA is not set | 426 | # CONFIG_MTD_CFI_STAA is not set |
419 | CONFIG_MTD_CFI_UTIL=y | 427 | CONFIG_MTD_CFI_UTIL=y |
420 | # CONFIG_MTD_RAM is not set | 428 | # CONFIG_MTD_RAM is not set |
@@ -436,7 +444,6 @@ CONFIG_MTD_ALCHEMY=y | |||
436 | # CONFIG_MTD_SLRAM is not set | 444 | # CONFIG_MTD_SLRAM is not set |
437 | # CONFIG_MTD_PHRAM is not set | 445 | # CONFIG_MTD_PHRAM is not set |
438 | # CONFIG_MTD_MTDRAM is not set | 446 | # CONFIG_MTD_MTDRAM is not set |
439 | # CONFIG_MTD_BLKMTD is not set | ||
440 | # CONFIG_MTD_BLOCK2MTD is not set | 447 | # CONFIG_MTD_BLOCK2MTD is not set |
441 | 448 | ||
442 | # | 449 | # |
@@ -473,7 +480,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
473 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 480 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
474 | # CONFIG_BLK_DEV_NBD is not set | 481 | # CONFIG_BLK_DEV_NBD is not set |
475 | # CONFIG_BLK_DEV_RAM is not set | 482 | # CONFIG_BLK_DEV_RAM is not set |
476 | CONFIG_BLK_DEV_RAM_COUNT=16 | 483 | # CONFIG_BLK_DEV_INITRD is not set |
477 | CONFIG_CDROM_PKTCDVD=m | 484 | CONFIG_CDROM_PKTCDVD=m |
478 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 485 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
479 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 486 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -716,10 +723,6 @@ CONFIG_SYNCLINK_CS=m | |||
716 | # | 723 | # |
717 | 724 | ||
718 | # | 725 | # |
719 | # Multimedia Capabilities Port drivers | ||
720 | # | ||
721 | |||
722 | # | ||
723 | # Multimedia devices | 726 | # Multimedia devices |
724 | # | 727 | # |
725 | # CONFIG_VIDEO_DEV is not set | 728 | # CONFIG_VIDEO_DEV is not set |
@@ -750,6 +753,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
750 | # | 753 | # |
751 | CONFIG_USB_ARCH_HAS_HCD=y | 754 | CONFIG_USB_ARCH_HAS_HCD=y |
752 | CONFIG_USB_ARCH_HAS_OHCI=y | 755 | CONFIG_USB_ARCH_HAS_OHCI=y |
756 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
753 | # CONFIG_USB is not set | 757 | # CONFIG_USB is not set |
754 | 758 | ||
755 | # | 759 | # |
@@ -767,12 +771,30 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
767 | # CONFIG_MMC is not set | 771 | # CONFIG_MMC is not set |
768 | 772 | ||
769 | # | 773 | # |
774 | # LED devices | ||
775 | # | ||
776 | # CONFIG_NEW_LEDS is not set | ||
777 | |||
778 | # | ||
779 | # LED drivers | ||
780 | # | ||
781 | |||
782 | # | ||
783 | # LED Triggers | ||
784 | # | ||
785 | |||
786 | # | ||
770 | # InfiniBand support | 787 | # InfiniBand support |
771 | # | 788 | # |
772 | 789 | ||
773 | # | 790 | # |
774 | # SN Devices | 791 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
792 | # | ||
793 | |||
794 | # | ||
795 | # Real Time Clock | ||
775 | # | 796 | # |
797 | # CONFIG_RTC_CLASS is not set | ||
776 | 798 | ||
777 | # | 799 | # |
778 | # File systems | 800 | # File systems |
@@ -830,7 +852,6 @@ CONFIG_SYSFS=y | |||
830 | CONFIG_TMPFS=y | 852 | CONFIG_TMPFS=y |
831 | # CONFIG_HUGETLB_PAGE is not set | 853 | # CONFIG_HUGETLB_PAGE is not set |
832 | CONFIG_RAMFS=y | 854 | CONFIG_RAMFS=y |
833 | CONFIG_RELAYFS_FS=m | ||
834 | # CONFIG_CONFIGFS_FS is not set | 855 | # CONFIG_CONFIGFS_FS is not set |
835 | 856 | ||
836 | # | 857 | # |
@@ -939,6 +960,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
939 | # CONFIG_MAGIC_SYSRQ is not set | 960 | # CONFIG_MAGIC_SYSRQ is not set |
940 | # CONFIG_DEBUG_KERNEL is not set | 961 | # CONFIG_DEBUG_KERNEL is not set |
941 | CONFIG_LOG_BUF_SHIFT=14 | 962 | CONFIG_LOG_BUF_SHIFT=14 |
963 | # CONFIG_DEBUG_FS is not set | ||
942 | CONFIG_CROSSCOMPILE=y | 964 | CONFIG_CROSSCOMPILE=y |
943 | CONFIG_CMDLINE="" | 965 | CONFIG_CMDLINE="" |
944 | 966 | ||
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig index 8985725e6a98..398c3c265b9f 100644 --- a/arch/mips/configs/pb1500_defconfig +++ b/arch/mips/configs/pb1500_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:24 2006 | 4 | # Mon Apr 24 14:51:13 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_PB1500=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -115,11 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
115 | CONFIG_CPU_HAS_PREFETCH=y | 117 | CONFIG_CPU_HAS_PREFETCH=y |
116 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
117 | CONFIG_64BIT_PHYS_ADDR=y | 119 | CONFIG_64BIT_PHYS_ADDR=y |
118 | # CONFIG_CPU_ADVANCED is not set | ||
119 | CONFIG_CPU_HAS_LLSC=y | 120 | CONFIG_CPU_HAS_LLSC=y |
120 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 123 | CONFIG_GENERIC_IRQ_PROBE=y |
124 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
123 | CONFIG_ARCH_FLATMEM_ENABLE=y | 125 | CONFIG_ARCH_FLATMEM_ENABLE=y |
124 | CONFIG_SELECT_MEMORY_MODEL=y | 126 | CONFIG_SELECT_MEMORY_MODEL=y |
125 | CONFIG_FLATMEM_MANUAL=y | 127 | CONFIG_FLATMEM_MANUAL=y |
@@ -137,7 +139,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 139 | # Code maturity level options |
138 | # | 140 | # |
139 | CONFIG_EXPERIMENTAL=y | 141 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 142 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 143 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 144 | ||
@@ -153,6 +154,7 @@ CONFIG_SYSVIPC=y | |||
153 | CONFIG_SYSCTL=y | 154 | CONFIG_SYSCTL=y |
154 | # CONFIG_AUDIT is not set | 155 | # CONFIG_AUDIT is not set |
155 | # CONFIG_IKCONFIG is not set | 156 | # CONFIG_IKCONFIG is not set |
157 | CONFIG_RELAY=y | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
166 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
167 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
168 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
169 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
170 | CONFIG_CC_ALIGN_LABELS=0 | ||
171 | CONFIG_CC_ALIGN_LOOPS=0 | ||
172 | CONFIG_CC_ALIGN_JUMPS=0 | ||
173 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
174 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
175 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
182 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
183 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
184 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
185 | CONFIG_OBSOLETE_MODPARM=y | ||
186 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
187 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
188 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -191,6 +188,8 @@ CONFIG_KMOD=y | |||
191 | # Block layer | 188 | # Block layer |
192 | # | 189 | # |
193 | # CONFIG_LBD is not set | 190 | # CONFIG_LBD is not set |
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
194 | 193 | ||
195 | # | 194 | # |
196 | # IO Schedulers | 195 | # IO Schedulers |
@@ -210,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
210 | # | 209 | # |
211 | CONFIG_HW_HAS_PCI=y | 210 | CONFIG_HW_HAS_PCI=y |
212 | CONFIG_PCI=y | 211 | CONFIG_PCI=y |
213 | CONFIG_PCI_LEGACY_PROC=y | ||
214 | CONFIG_MMU=y | 212 | CONFIG_MMU=y |
215 | 213 | ||
216 | # | 214 | # |
@@ -253,6 +251,7 @@ CONFIG_NET=y | |||
253 | # | 251 | # |
254 | # Networking options | 252 | # Networking options |
255 | # | 253 | # |
254 | # CONFIG_NETDEBUG is not set | ||
256 | CONFIG_PACKET=y | 255 | CONFIG_PACKET=y |
257 | # CONFIG_PACKET_MMAP is not set | 256 | # CONFIG_PACKET_MMAP is not set |
258 | CONFIG_UNIX=y | 257 | CONFIG_UNIX=y |
@@ -275,7 +274,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
275 | # CONFIG_INET_AH is not set | 274 | # CONFIG_INET_AH is not set |
276 | # CONFIG_INET_ESP is not set | 275 | # CONFIG_INET_ESP is not set |
277 | # CONFIG_INET_IPCOMP is not set | 276 | # CONFIG_INET_IPCOMP is not set |
278 | CONFIG_INET_TUNNEL=m | 277 | # CONFIG_INET_XFRM_TUNNEL is not set |
278 | # CONFIG_INET_TUNNEL is not set | ||
279 | CONFIG_INET_DIAG=y | 279 | CONFIG_INET_DIAG=y |
280 | CONFIG_INET_TCP_DIAG=y | 280 | CONFIG_INET_TCP_DIAG=y |
281 | # CONFIG_TCP_CONG_ADVANCED is not set | 281 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -286,6 +286,8 @@ CONFIG_TCP_CONG_BIC=y | |||
286 | # | 286 | # |
287 | # CONFIG_IP_VS is not set | 287 | # CONFIG_IP_VS is not set |
288 | # CONFIG_IPV6 is not set | 288 | # CONFIG_IPV6 is not set |
289 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
290 | # CONFIG_INET6_TUNNEL is not set | ||
289 | CONFIG_NETFILTER=y | 291 | CONFIG_NETFILTER=y |
290 | # CONFIG_NETFILTER_DEBUG is not set | 292 | # CONFIG_NETFILTER_DEBUG is not set |
291 | 293 | ||
@@ -302,10 +304,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
302 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 304 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
303 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 305 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
304 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 306 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
307 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
305 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 308 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
306 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 309 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
307 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 310 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
308 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 311 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
312 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
313 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
309 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 314 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
310 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 315 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
311 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 316 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -329,6 +334,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
329 | # SCTP Configuration (EXPERIMENTAL) | 334 | # SCTP Configuration (EXPERIMENTAL) |
330 | # | 335 | # |
331 | # CONFIG_IP_SCTP is not set | 336 | # CONFIG_IP_SCTP is not set |
337 | |||
338 | # | ||
339 | # TIPC Configuration (EXPERIMENTAL) | ||
340 | # | ||
341 | # CONFIG_TIPC is not set | ||
332 | # CONFIG_ATM is not set | 342 | # CONFIG_ATM is not set |
333 | # CONFIG_BRIDGE is not set | 343 | # CONFIG_BRIDGE is not set |
334 | # CONFIG_VLAN_8021Q is not set | 344 | # CONFIG_VLAN_8021Q is not set |
@@ -338,11 +348,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
338 | # CONFIG_ATALK is not set | 348 | # CONFIG_ATALK is not set |
339 | # CONFIG_X25 is not set | 349 | # CONFIG_X25 is not set |
340 | # CONFIG_LAPB is not set | 350 | # CONFIG_LAPB is not set |
341 | |||
342 | # | ||
343 | # TIPC Configuration (EXPERIMENTAL) | ||
344 | # | ||
345 | # CONFIG_TIPC is not set | ||
346 | # CONFIG_NET_DIVERT is not set | 351 | # CONFIG_NET_DIVERT is not set |
347 | # CONFIG_ECONET is not set | 352 | # CONFIG_ECONET is not set |
348 | # CONFIG_WAN_ROUTER is not set | 353 | # CONFIG_WAN_ROUTER is not set |
@@ -364,6 +369,9 @@ CONFIG_IEEE80211=m | |||
364 | # CONFIG_IEEE80211_DEBUG is not set | 369 | # CONFIG_IEEE80211_DEBUG is not set |
365 | CONFIG_IEEE80211_CRYPT_WEP=m | 370 | CONFIG_IEEE80211_CRYPT_WEP=m |
366 | CONFIG_IEEE80211_CRYPT_CCMP=m | 371 | CONFIG_IEEE80211_CRYPT_CCMP=m |
372 | CONFIG_IEEE80211_SOFTMAC=m | ||
373 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
374 | CONFIG_WIRELESS_EXT=y | ||
367 | 375 | ||
368 | # | 376 | # |
369 | # Device Drivers | 377 | # Device Drivers |
@@ -420,7 +428,6 @@ CONFIG_MTD_CFI_I2=y | |||
420 | # CONFIG_MTD_CFI_I8 is not set | 428 | # CONFIG_MTD_CFI_I8 is not set |
421 | # CONFIG_MTD_CFI_INTELEXT is not set | 429 | # CONFIG_MTD_CFI_INTELEXT is not set |
422 | CONFIG_MTD_CFI_AMDSTD=y | 430 | CONFIG_MTD_CFI_AMDSTD=y |
423 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
424 | # CONFIG_MTD_CFI_STAA is not set | 431 | # CONFIG_MTD_CFI_STAA is not set |
425 | CONFIG_MTD_CFI_UTIL=y | 432 | CONFIG_MTD_CFI_UTIL=y |
426 | # CONFIG_MTD_RAM is not set | 433 | # CONFIG_MTD_RAM is not set |
@@ -443,7 +450,6 @@ CONFIG_MTD_ALCHEMY=y | |||
443 | # CONFIG_MTD_SLRAM is not set | 450 | # CONFIG_MTD_SLRAM is not set |
444 | # CONFIG_MTD_PHRAM is not set | 451 | # CONFIG_MTD_PHRAM is not set |
445 | # CONFIG_MTD_MTDRAM is not set | 452 | # CONFIG_MTD_MTDRAM is not set |
446 | # CONFIG_MTD_BLKMTD is not set | ||
447 | # CONFIG_MTD_BLOCK2MTD is not set | 453 | # CONFIG_MTD_BLOCK2MTD is not set |
448 | 454 | ||
449 | # | 455 | # |
@@ -485,7 +491,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
485 | # CONFIG_BLK_DEV_NBD is not set | 491 | # CONFIG_BLK_DEV_NBD is not set |
486 | # CONFIG_BLK_DEV_SX8 is not set | 492 | # CONFIG_BLK_DEV_SX8 is not set |
487 | # CONFIG_BLK_DEV_RAM is not set | 493 | # CONFIG_BLK_DEV_RAM is not set |
488 | CONFIG_BLK_DEV_RAM_COUNT=16 | 494 | # CONFIG_BLK_DEV_INITRD is not set |
489 | CONFIG_CDROM_PKTCDVD=m | 495 | CONFIG_CDROM_PKTCDVD=m |
490 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 496 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
491 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 497 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -750,6 +756,7 @@ CONFIG_SERIO_RAW=m | |||
750 | # | 756 | # |
751 | CONFIG_SERIAL_8250=y | 757 | CONFIG_SERIAL_8250=y |
752 | CONFIG_SERIAL_8250_CONSOLE=y | 758 | CONFIG_SERIAL_8250_CONSOLE=y |
759 | CONFIG_SERIAL_8250_PCI=y | ||
753 | # CONFIG_SERIAL_8250_CS is not set | 760 | # CONFIG_SERIAL_8250_CS is not set |
754 | CONFIG_SERIAL_8250_NR_UARTS=4 | 761 | CONFIG_SERIAL_8250_NR_UARTS=4 |
755 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 762 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
@@ -761,6 +768,7 @@ CONFIG_SERIAL_8250_AU1X00=y | |||
761 | # | 768 | # |
762 | CONFIG_SERIAL_CORE=y | 769 | CONFIG_SERIAL_CORE=y |
763 | CONFIG_SERIAL_CORE_CONSOLE=y | 770 | CONFIG_SERIAL_CORE_CONSOLE=y |
771 | # CONFIG_SERIAL_JSM is not set | ||
764 | CONFIG_UNIX98_PTYS=y | 772 | CONFIG_UNIX98_PTYS=y |
765 | CONFIG_LEGACY_PTYS=y | 773 | CONFIG_LEGACY_PTYS=y |
766 | CONFIG_LEGACY_PTY_COUNT=256 | 774 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -826,10 +834,6 @@ CONFIG_SYNCLINK_CS=m | |||
826 | # | 834 | # |
827 | 835 | ||
828 | # | 836 | # |
829 | # Multimedia Capabilities Port drivers | ||
830 | # | ||
831 | |||
832 | # | ||
833 | # Multimedia devices | 837 | # Multimedia devices |
834 | # | 838 | # |
835 | # CONFIG_VIDEO_DEV is not set | 839 | # CONFIG_VIDEO_DEV is not set |
@@ -854,6 +858,7 @@ CONFIG_SYNCLINK_CS=m | |||
854 | # | 858 | # |
855 | CONFIG_USB_ARCH_HAS_HCD=y | 859 | CONFIG_USB_ARCH_HAS_HCD=y |
856 | CONFIG_USB_ARCH_HAS_OHCI=y | 860 | CONFIG_USB_ARCH_HAS_OHCI=y |
861 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
857 | # CONFIG_USB is not set | 862 | # CONFIG_USB is not set |
858 | 863 | ||
859 | # | 864 | # |
@@ -871,13 +876,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
871 | # CONFIG_MMC is not set | 876 | # CONFIG_MMC is not set |
872 | 877 | ||
873 | # | 878 | # |
879 | # LED devices | ||
880 | # | ||
881 | # CONFIG_NEW_LEDS is not set | ||
882 | |||
883 | # | ||
884 | # LED drivers | ||
885 | # | ||
886 | |||
887 | # | ||
888 | # LED Triggers | ||
889 | # | ||
890 | |||
891 | # | ||
874 | # InfiniBand support | 892 | # InfiniBand support |
875 | # | 893 | # |
876 | # CONFIG_INFINIBAND is not set | 894 | # CONFIG_INFINIBAND is not set |
877 | 895 | ||
878 | # | 896 | # |
879 | # SN Devices | 897 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
898 | # | ||
899 | |||
900 | # | ||
901 | # Real Time Clock | ||
880 | # | 902 | # |
903 | # CONFIG_RTC_CLASS is not set | ||
881 | 904 | ||
882 | # | 905 | # |
883 | # File systems | 906 | # File systems |
@@ -935,7 +958,6 @@ CONFIG_SYSFS=y | |||
935 | CONFIG_TMPFS=y | 958 | CONFIG_TMPFS=y |
936 | # CONFIG_HUGETLB_PAGE is not set | 959 | # CONFIG_HUGETLB_PAGE is not set |
937 | CONFIG_RAMFS=y | 960 | CONFIG_RAMFS=y |
938 | CONFIG_RELAYFS_FS=m | ||
939 | # CONFIG_CONFIGFS_FS is not set | 961 | # CONFIG_CONFIGFS_FS is not set |
940 | 962 | ||
941 | # | 963 | # |
@@ -1044,6 +1066,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1044 | # CONFIG_MAGIC_SYSRQ is not set | 1066 | # CONFIG_MAGIC_SYSRQ is not set |
1045 | # CONFIG_DEBUG_KERNEL is not set | 1067 | # CONFIG_DEBUG_KERNEL is not set |
1046 | CONFIG_LOG_BUF_SHIFT=14 | 1068 | CONFIG_LOG_BUF_SHIFT=14 |
1069 | # CONFIG_DEBUG_FS is not set | ||
1047 | CONFIG_CROSSCOMPILE=y | 1070 | CONFIG_CROSSCOMPILE=y |
1048 | CONFIG_CMDLINE="" | 1071 | CONFIG_CMDLINE="" |
1049 | 1072 | ||
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig index adbf997b540e..ea282a53bb66 100644 --- a/arch/mips/configs/pb1550_defconfig +++ b/arch/mips/configs/pb1550_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:25 2006 | 4 | # Mon Apr 24 14:51:13 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_PB1550=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -115,11 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
115 | CONFIG_CPU_HAS_PREFETCH=y | 117 | CONFIG_CPU_HAS_PREFETCH=y |
116 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
117 | CONFIG_64BIT_PHYS_ADDR=y | 119 | CONFIG_64BIT_PHYS_ADDR=y |
118 | # CONFIG_CPU_ADVANCED is not set | ||
119 | CONFIG_CPU_HAS_LLSC=y | 120 | CONFIG_CPU_HAS_LLSC=y |
120 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 123 | CONFIG_GENERIC_IRQ_PROBE=y |
124 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
123 | CONFIG_ARCH_FLATMEM_ENABLE=y | 125 | CONFIG_ARCH_FLATMEM_ENABLE=y |
124 | CONFIG_SELECT_MEMORY_MODEL=y | 126 | CONFIG_SELECT_MEMORY_MODEL=y |
125 | CONFIG_FLATMEM_MANUAL=y | 127 | CONFIG_FLATMEM_MANUAL=y |
@@ -137,7 +139,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 139 | # Code maturity level options |
138 | # | 140 | # |
139 | CONFIG_EXPERIMENTAL=y | 141 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 142 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 143 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 144 | ||
@@ -153,6 +154,7 @@ CONFIG_SYSVIPC=y | |||
153 | CONFIG_SYSCTL=y | 154 | CONFIG_SYSCTL=y |
154 | # CONFIG_AUDIT is not set | 155 | # CONFIG_AUDIT is not set |
155 | # CONFIG_IKCONFIG is not set | 156 | # CONFIG_IKCONFIG is not set |
157 | CONFIG_RELAY=y | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -166,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
166 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
167 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
168 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
169 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
170 | CONFIG_CC_ALIGN_LABELS=0 | ||
171 | CONFIG_CC_ALIGN_LOOPS=0 | ||
172 | CONFIG_CC_ALIGN_JUMPS=0 | ||
173 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
174 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
175 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -182,7 +180,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
182 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
183 | CONFIG_MODULE_UNLOAD=y | 181 | CONFIG_MODULE_UNLOAD=y |
184 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 182 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
185 | CONFIG_OBSOLETE_MODPARM=y | ||
186 | CONFIG_MODVERSIONS=y | 183 | CONFIG_MODVERSIONS=y |
187 | CONFIG_MODULE_SRCVERSION_ALL=y | 184 | CONFIG_MODULE_SRCVERSION_ALL=y |
188 | CONFIG_KMOD=y | 185 | CONFIG_KMOD=y |
@@ -191,6 +188,8 @@ CONFIG_KMOD=y | |||
191 | # Block layer | 188 | # Block layer |
192 | # | 189 | # |
193 | # CONFIG_LBD is not set | 190 | # CONFIG_LBD is not set |
191 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
192 | # CONFIG_LSF is not set | ||
194 | 193 | ||
195 | # | 194 | # |
196 | # IO Schedulers | 195 | # IO Schedulers |
@@ -210,7 +209,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
210 | # | 209 | # |
211 | CONFIG_HW_HAS_PCI=y | 210 | CONFIG_HW_HAS_PCI=y |
212 | CONFIG_PCI=y | 211 | CONFIG_PCI=y |
213 | CONFIG_PCI_LEGACY_PROC=y | ||
214 | CONFIG_MMU=y | 212 | CONFIG_MMU=y |
215 | 213 | ||
216 | # | 214 | # |
@@ -253,6 +251,7 @@ CONFIG_NET=y | |||
253 | # | 251 | # |
254 | # Networking options | 252 | # Networking options |
255 | # | 253 | # |
254 | # CONFIG_NETDEBUG is not set | ||
256 | CONFIG_PACKET=y | 255 | CONFIG_PACKET=y |
257 | # CONFIG_PACKET_MMAP is not set | 256 | # CONFIG_PACKET_MMAP is not set |
258 | CONFIG_UNIX=y | 257 | CONFIG_UNIX=y |
@@ -275,7 +274,8 @@ CONFIG_IP_PNP_BOOTP=y | |||
275 | # CONFIG_INET_AH is not set | 274 | # CONFIG_INET_AH is not set |
276 | # CONFIG_INET_ESP is not set | 275 | # CONFIG_INET_ESP is not set |
277 | # CONFIG_INET_IPCOMP is not set | 276 | # CONFIG_INET_IPCOMP is not set |
278 | CONFIG_INET_TUNNEL=m | 277 | # CONFIG_INET_XFRM_TUNNEL is not set |
278 | # CONFIG_INET_TUNNEL is not set | ||
279 | CONFIG_INET_DIAG=y | 279 | CONFIG_INET_DIAG=y |
280 | CONFIG_INET_TCP_DIAG=y | 280 | CONFIG_INET_TCP_DIAG=y |
281 | # CONFIG_TCP_CONG_ADVANCED is not set | 281 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -286,6 +286,8 @@ CONFIG_TCP_CONG_BIC=y | |||
286 | # | 286 | # |
287 | # CONFIG_IP_VS is not set | 287 | # CONFIG_IP_VS is not set |
288 | # CONFIG_IPV6 is not set | 288 | # CONFIG_IPV6 is not set |
289 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
290 | # CONFIG_INET6_TUNNEL is not set | ||
289 | CONFIG_NETFILTER=y | 291 | CONFIG_NETFILTER=y |
290 | # CONFIG_NETFILTER_DEBUG is not set | 292 | # CONFIG_NETFILTER_DEBUG is not set |
291 | 293 | ||
@@ -302,10 +304,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
302 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 304 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
303 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 305 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
304 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 306 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
307 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
305 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 308 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
306 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 309 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
307 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 310 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
308 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 311 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
312 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
313 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
309 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 314 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
310 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 315 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
311 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 316 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -329,6 +334,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
329 | # SCTP Configuration (EXPERIMENTAL) | 334 | # SCTP Configuration (EXPERIMENTAL) |
330 | # | 335 | # |
331 | # CONFIG_IP_SCTP is not set | 336 | # CONFIG_IP_SCTP is not set |
337 | |||
338 | # | ||
339 | # TIPC Configuration (EXPERIMENTAL) | ||
340 | # | ||
341 | # CONFIG_TIPC is not set | ||
332 | # CONFIG_ATM is not set | 342 | # CONFIG_ATM is not set |
333 | # CONFIG_BRIDGE is not set | 343 | # CONFIG_BRIDGE is not set |
334 | # CONFIG_VLAN_8021Q is not set | 344 | # CONFIG_VLAN_8021Q is not set |
@@ -338,11 +348,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
338 | # CONFIG_ATALK is not set | 348 | # CONFIG_ATALK is not set |
339 | # CONFIG_X25 is not set | 349 | # CONFIG_X25 is not set |
340 | # CONFIG_LAPB is not set | 350 | # CONFIG_LAPB is not set |
341 | |||
342 | # | ||
343 | # TIPC Configuration (EXPERIMENTAL) | ||
344 | # | ||
345 | # CONFIG_TIPC is not set | ||
346 | # CONFIG_NET_DIVERT is not set | 351 | # CONFIG_NET_DIVERT is not set |
347 | # CONFIG_ECONET is not set | 352 | # CONFIG_ECONET is not set |
348 | # CONFIG_WAN_ROUTER is not set | 353 | # CONFIG_WAN_ROUTER is not set |
@@ -364,6 +369,9 @@ CONFIG_IEEE80211=m | |||
364 | # CONFIG_IEEE80211_DEBUG is not set | 369 | # CONFIG_IEEE80211_DEBUG is not set |
365 | CONFIG_IEEE80211_CRYPT_WEP=m | 370 | CONFIG_IEEE80211_CRYPT_WEP=m |
366 | CONFIG_IEEE80211_CRYPT_CCMP=m | 371 | CONFIG_IEEE80211_CRYPT_CCMP=m |
372 | CONFIG_IEEE80211_SOFTMAC=m | ||
373 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
374 | CONFIG_WIRELESS_EXT=y | ||
367 | 375 | ||
368 | # | 376 | # |
369 | # Device Drivers | 377 | # Device Drivers |
@@ -420,7 +428,6 @@ CONFIG_MTD_CFI_I2=y | |||
420 | # CONFIG_MTD_CFI_I8 is not set | 428 | # CONFIG_MTD_CFI_I8 is not set |
421 | # CONFIG_MTD_CFI_INTELEXT is not set | 429 | # CONFIG_MTD_CFI_INTELEXT is not set |
422 | CONFIG_MTD_CFI_AMDSTD=y | 430 | CONFIG_MTD_CFI_AMDSTD=y |
423 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
424 | # CONFIG_MTD_CFI_STAA is not set | 431 | # CONFIG_MTD_CFI_STAA is not set |
425 | CONFIG_MTD_CFI_UTIL=y | 432 | CONFIG_MTD_CFI_UTIL=y |
426 | # CONFIG_MTD_RAM is not set | 433 | # CONFIG_MTD_RAM is not set |
@@ -443,7 +450,6 @@ CONFIG_MTD_ALCHEMY=y | |||
443 | # CONFIG_MTD_SLRAM is not set | 450 | # CONFIG_MTD_SLRAM is not set |
444 | # CONFIG_MTD_PHRAM is not set | 451 | # CONFIG_MTD_PHRAM is not set |
445 | # CONFIG_MTD_MTDRAM is not set | 452 | # CONFIG_MTD_MTDRAM is not set |
446 | # CONFIG_MTD_BLKMTD is not set | ||
447 | # CONFIG_MTD_BLOCK2MTD is not set | 453 | # CONFIG_MTD_BLOCK2MTD is not set |
448 | 454 | ||
449 | # | 455 | # |
@@ -485,7 +491,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
485 | # CONFIG_BLK_DEV_NBD is not set | 491 | # CONFIG_BLK_DEV_NBD is not set |
486 | # CONFIG_BLK_DEV_SX8 is not set | 492 | # CONFIG_BLK_DEV_SX8 is not set |
487 | # CONFIG_BLK_DEV_RAM is not set | 493 | # CONFIG_BLK_DEV_RAM is not set |
488 | CONFIG_BLK_DEV_RAM_COUNT=16 | 494 | # CONFIG_BLK_DEV_INITRD is not set |
489 | CONFIG_CDROM_PKTCDVD=m | 495 | CONFIG_CDROM_PKTCDVD=m |
490 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 496 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
491 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 497 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -742,6 +748,7 @@ CONFIG_SERIO_RAW=m | |||
742 | # | 748 | # |
743 | CONFIG_SERIAL_8250=y | 749 | CONFIG_SERIAL_8250=y |
744 | CONFIG_SERIAL_8250_CONSOLE=y | 750 | CONFIG_SERIAL_8250_CONSOLE=y |
751 | CONFIG_SERIAL_8250_PCI=y | ||
745 | # CONFIG_SERIAL_8250_CS is not set | 752 | # CONFIG_SERIAL_8250_CS is not set |
746 | CONFIG_SERIAL_8250_NR_UARTS=4 | 753 | CONFIG_SERIAL_8250_NR_UARTS=4 |
747 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 754 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
@@ -753,6 +760,7 @@ CONFIG_SERIAL_8250_AU1X00=y | |||
753 | # | 760 | # |
754 | CONFIG_SERIAL_CORE=y | 761 | CONFIG_SERIAL_CORE=y |
755 | CONFIG_SERIAL_CORE_CONSOLE=y | 762 | CONFIG_SERIAL_CORE_CONSOLE=y |
763 | # CONFIG_SERIAL_JSM is not set | ||
756 | CONFIG_UNIX98_PTYS=y | 764 | CONFIG_UNIX98_PTYS=y |
757 | CONFIG_LEGACY_PTYS=y | 765 | CONFIG_LEGACY_PTYS=y |
758 | CONFIG_LEGACY_PTY_COUNT=256 | 766 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -818,10 +826,6 @@ CONFIG_SYNCLINK_CS=m | |||
818 | # | 826 | # |
819 | 827 | ||
820 | # | 828 | # |
821 | # Multimedia Capabilities Port drivers | ||
822 | # | ||
823 | |||
824 | # | ||
825 | # Multimedia devices | 829 | # Multimedia devices |
826 | # | 830 | # |
827 | # CONFIG_VIDEO_DEV is not set | 831 | # CONFIG_VIDEO_DEV is not set |
@@ -846,6 +850,7 @@ CONFIG_SYNCLINK_CS=m | |||
846 | # | 850 | # |
847 | CONFIG_USB_ARCH_HAS_HCD=y | 851 | CONFIG_USB_ARCH_HAS_HCD=y |
848 | CONFIG_USB_ARCH_HAS_OHCI=y | 852 | CONFIG_USB_ARCH_HAS_OHCI=y |
853 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
849 | # CONFIG_USB is not set | 854 | # CONFIG_USB is not set |
850 | 855 | ||
851 | # | 856 | # |
@@ -863,13 +868,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
863 | # CONFIG_MMC is not set | 868 | # CONFIG_MMC is not set |
864 | 869 | ||
865 | # | 870 | # |
871 | # LED devices | ||
872 | # | ||
873 | # CONFIG_NEW_LEDS is not set | ||
874 | |||
875 | # | ||
876 | # LED drivers | ||
877 | # | ||
878 | |||
879 | # | ||
880 | # LED Triggers | ||
881 | # | ||
882 | |||
883 | # | ||
866 | # InfiniBand support | 884 | # InfiniBand support |
867 | # | 885 | # |
868 | # CONFIG_INFINIBAND is not set | 886 | # CONFIG_INFINIBAND is not set |
869 | 887 | ||
870 | # | 888 | # |
871 | # SN Devices | 889 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
890 | # | ||
891 | |||
892 | # | ||
893 | # Real Time Clock | ||
872 | # | 894 | # |
895 | # CONFIG_RTC_CLASS is not set | ||
873 | 896 | ||
874 | # | 897 | # |
875 | # File systems | 898 | # File systems |
@@ -927,7 +950,6 @@ CONFIG_SYSFS=y | |||
927 | CONFIG_TMPFS=y | 950 | CONFIG_TMPFS=y |
928 | # CONFIG_HUGETLB_PAGE is not set | 951 | # CONFIG_HUGETLB_PAGE is not set |
929 | CONFIG_RAMFS=y | 952 | CONFIG_RAMFS=y |
930 | CONFIG_RELAYFS_FS=m | ||
931 | # CONFIG_CONFIGFS_FS is not set | 953 | # CONFIG_CONFIGFS_FS is not set |
932 | 954 | ||
933 | # | 955 | # |
@@ -1036,6 +1058,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1036 | # CONFIG_MAGIC_SYSRQ is not set | 1058 | # CONFIG_MAGIC_SYSRQ is not set |
1037 | # CONFIG_DEBUG_KERNEL is not set | 1059 | # CONFIG_DEBUG_KERNEL is not set |
1038 | CONFIG_LOG_BUF_SHIFT=14 | 1060 | CONFIG_LOG_BUF_SHIFT=14 |
1061 | # CONFIG_DEBUG_FS is not set | ||
1039 | CONFIG_CROSSCOMPILE=y | 1062 | CONFIG_CROSSCOMPILE=y |
1040 | CONFIG_CMDLINE="" | 1063 | CONFIG_CMDLINE="" |
1041 | 1064 | ||
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig index b5db700450ba..4c57e564db0b 100644 --- a/arch/mips/configs/pnx8550-jbs_defconfig +++ b/arch/mips/configs/pnx8550-jbs_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:26 2006 | 4 | # Mon Apr 24 14:51:14 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_PNX8550_JBS=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,11 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | CONFIG_CPU_HAS_PREFETCH=y | 116 | CONFIG_CPU_HAS_PREFETCH=y |
115 | # CONFIG_MIPS_MT is not set | 117 | # CONFIG_MIPS_MT is not set |
116 | # CONFIG_64BIT_PHYS_ADDR is not set | 118 | # CONFIG_64BIT_PHYS_ADDR is not set |
117 | # CONFIG_CPU_ADVANCED is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
121 | CONFIG_GENERIC_IRQ_PROBE=y | 122 | CONFIG_GENERIC_IRQ_PROBE=y |
123 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
122 | CONFIG_ARCH_FLATMEM_ENABLE=y | 124 | CONFIG_ARCH_FLATMEM_ENABLE=y |
123 | CONFIG_SELECT_MEMORY_MODEL=y | 125 | CONFIG_SELECT_MEMORY_MODEL=y |
124 | CONFIG_FLATMEM_MANUAL=y | 126 | CONFIG_FLATMEM_MANUAL=y |
@@ -136,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
136 | # Code maturity level options | 138 | # Code maturity level options |
137 | # | 139 | # |
138 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
139 | CONFIG_CLEAN_COMPILE=y | ||
140 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
141 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
142 | 143 | ||
@@ -153,6 +154,7 @@ CONFIG_SYSCTL=y | |||
153 | # CONFIG_AUDIT is not set | 154 | # CONFIG_AUDIT is not set |
154 | CONFIG_IKCONFIG=y | 155 | CONFIG_IKCONFIG=y |
155 | CONFIG_IKCONFIG_PROC=y | 156 | CONFIG_IKCONFIG_PROC=y |
157 | # CONFIG_RELAY is not set | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 169 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 170 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 171 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 172 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 173 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 174 | CONFIG_BASE_SMALL=0 |
@@ -181,7 +179,6 @@ CONFIG_BASE_SMALL=0 | |||
181 | # | 179 | # |
182 | CONFIG_MODULES=y | 180 | CONFIG_MODULES=y |
183 | # CONFIG_MODULE_UNLOAD is not set | 181 | # CONFIG_MODULE_UNLOAD is not set |
184 | CONFIG_OBSOLETE_MODPARM=y | ||
185 | # CONFIG_MODVERSIONS is not set | 182 | # CONFIG_MODVERSIONS is not set |
186 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 183 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
187 | CONFIG_KMOD=y | 184 | CONFIG_KMOD=y |
@@ -190,6 +187,8 @@ CONFIG_KMOD=y | |||
190 | # Block layer | 187 | # Block layer |
191 | # | 188 | # |
192 | # CONFIG_LBD is not set | 189 | # CONFIG_LBD is not set |
190 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
191 | # CONFIG_LSF is not set | ||
193 | 192 | ||
194 | # | 193 | # |
195 | # IO Schedulers | 194 | # IO Schedulers |
@@ -209,7 +208,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
209 | # | 208 | # |
210 | CONFIG_HW_HAS_PCI=y | 209 | CONFIG_HW_HAS_PCI=y |
211 | CONFIG_PCI=y | 210 | CONFIG_PCI=y |
212 | # CONFIG_PCI_LEGACY_PROC is not set | ||
213 | # CONFIG_PCI_DEBUG is not set | 211 | # CONFIG_PCI_DEBUG is not set |
214 | CONFIG_MMU=y | 212 | CONFIG_MMU=y |
215 | 213 | ||
@@ -238,6 +236,7 @@ CONFIG_NET=y | |||
238 | # | 236 | # |
239 | # Networking options | 237 | # Networking options |
240 | # | 238 | # |
239 | # CONFIG_NETDEBUG is not set | ||
241 | CONFIG_PACKET=y | 240 | CONFIG_PACKET=y |
242 | # CONFIG_PACKET_MMAP is not set | 241 | # CONFIG_PACKET_MMAP is not set |
243 | CONFIG_UNIX=y | 242 | CONFIG_UNIX=y |
@@ -257,12 +256,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
257 | # CONFIG_INET_AH is not set | 256 | # CONFIG_INET_AH is not set |
258 | # CONFIG_INET_ESP is not set | 257 | # CONFIG_INET_ESP is not set |
259 | # CONFIG_INET_IPCOMP is not set | 258 | # CONFIG_INET_IPCOMP is not set |
259 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
260 | # CONFIG_INET_TUNNEL is not set | 260 | # CONFIG_INET_TUNNEL is not set |
261 | CONFIG_INET_DIAG=y | 261 | CONFIG_INET_DIAG=y |
262 | CONFIG_INET_TCP_DIAG=y | 262 | CONFIG_INET_TCP_DIAG=y |
263 | # CONFIG_TCP_CONG_ADVANCED is not set | 263 | # CONFIG_TCP_CONG_ADVANCED is not set |
264 | CONFIG_TCP_CONG_BIC=y | 264 | CONFIG_TCP_CONG_BIC=y |
265 | # CONFIG_IPV6 is not set | 265 | # CONFIG_IPV6 is not set |
266 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
267 | # CONFIG_INET6_TUNNEL is not set | ||
266 | # CONFIG_NETFILTER is not set | 268 | # CONFIG_NETFILTER is not set |
267 | 269 | ||
268 | # | 270 | # |
@@ -274,6 +276,11 @@ CONFIG_TCP_CONG_BIC=y | |||
274 | # SCTP Configuration (EXPERIMENTAL) | 276 | # SCTP Configuration (EXPERIMENTAL) |
275 | # | 277 | # |
276 | # CONFIG_IP_SCTP is not set | 278 | # CONFIG_IP_SCTP is not set |
279 | |||
280 | # | ||
281 | # TIPC Configuration (EXPERIMENTAL) | ||
282 | # | ||
283 | # CONFIG_TIPC is not set | ||
277 | # CONFIG_ATM is not set | 284 | # CONFIG_ATM is not set |
278 | # CONFIG_BRIDGE is not set | 285 | # CONFIG_BRIDGE is not set |
279 | # CONFIG_VLAN_8021Q is not set | 286 | # CONFIG_VLAN_8021Q is not set |
@@ -283,11 +290,6 @@ CONFIG_TCP_CONG_BIC=y | |||
283 | # CONFIG_ATALK is not set | 290 | # CONFIG_ATALK is not set |
284 | # CONFIG_X25 is not set | 291 | # CONFIG_X25 is not set |
285 | # CONFIG_LAPB is not set | 292 | # CONFIG_LAPB is not set |
286 | |||
287 | # | ||
288 | # TIPC Configuration (EXPERIMENTAL) | ||
289 | # | ||
290 | # CONFIG_TIPC is not set | ||
291 | # CONFIG_NET_DIVERT is not set | 293 | # CONFIG_NET_DIVERT is not set |
292 | # CONFIG_ECONET is not set | 294 | # CONFIG_ECONET is not set |
293 | # CONFIG_WAN_ROUTER is not set | 295 | # CONFIG_WAN_ROUTER is not set |
@@ -469,7 +471,6 @@ CONFIG_ISCSI_TCP=m | |||
469 | # CONFIG_SCSI_INIA100 is not set | 471 | # CONFIG_SCSI_INIA100 is not set |
470 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 472 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
471 | # CONFIG_SCSI_IPR is not set | 473 | # CONFIG_SCSI_IPR is not set |
472 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
473 | # CONFIG_SCSI_QLOGIC_1280 is not set | 474 | # CONFIG_SCSI_QLOGIC_1280 is not set |
474 | # CONFIG_SCSI_QLA_FC is not set | 475 | # CONFIG_SCSI_QLA_FC is not set |
475 | # CONFIG_SCSI_LPFC is not set | 476 | # CONFIG_SCSI_LPFC is not set |
@@ -671,6 +672,7 @@ CONFIG_HW_CONSOLE=y | |||
671 | # Non-8250 serial port support | 672 | # Non-8250 serial port support |
672 | # | 673 | # |
673 | # CONFIG_SERIAL_IP3106 is not set | 674 | # CONFIG_SERIAL_IP3106 is not set |
675 | # CONFIG_SERIAL_JSM is not set | ||
674 | CONFIG_UNIX98_PTYS=y | 676 | CONFIG_UNIX98_PTYS=y |
675 | CONFIG_LEGACY_PTYS=y | 677 | CONFIG_LEGACY_PTYS=y |
676 | CONFIG_LEGACY_PTY_COUNT=256 | 678 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -723,6 +725,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
723 | # | 725 | # |
724 | CONFIG_HWMON=y | 726 | CONFIG_HWMON=y |
725 | # CONFIG_HWMON_VID is not set | 727 | # CONFIG_HWMON_VID is not set |
728 | # CONFIG_SENSORS_F71805F is not set | ||
726 | # CONFIG_HWMON_DEBUG_CHIP is not set | 729 | # CONFIG_HWMON_DEBUG_CHIP is not set |
727 | 730 | ||
728 | # | 731 | # |
@@ -730,10 +733,6 @@ CONFIG_HWMON=y | |||
730 | # | 733 | # |
731 | 734 | ||
732 | # | 735 | # |
733 | # Multimedia Capabilities Port drivers | ||
734 | # | ||
735 | |||
736 | # | ||
737 | # Multimedia devices | 736 | # Multimedia devices |
738 | # | 737 | # |
739 | # CONFIG_VIDEO_DEV is not set | 738 | # CONFIG_VIDEO_DEV is not set |
@@ -742,6 +741,7 @@ CONFIG_HWMON=y | |||
742 | # Digital Video Broadcasting Devices | 741 | # Digital Video Broadcasting Devices |
743 | # | 742 | # |
744 | # CONFIG_DVB is not set | 743 | # CONFIG_DVB is not set |
744 | # CONFIG_USB_DABUSB is not set | ||
745 | 745 | ||
746 | # | 746 | # |
747 | # Graphics support | 747 | # Graphics support |
@@ -764,6 +764,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
764 | # | 764 | # |
765 | CONFIG_USB_ARCH_HAS_HCD=y | 765 | CONFIG_USB_ARCH_HAS_HCD=y |
766 | CONFIG_USB_ARCH_HAS_OHCI=y | 766 | CONFIG_USB_ARCH_HAS_OHCI=y |
767 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
767 | CONFIG_USB=y | 768 | CONFIG_USB=y |
768 | # CONFIG_USB_DEBUG is not set | 769 | # CONFIG_USB_DEBUG is not set |
769 | 770 | ||
@@ -827,9 +828,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y | |||
827 | # CONFIG_USB_ACECAD is not set | 828 | # CONFIG_USB_ACECAD is not set |
828 | # CONFIG_USB_KBTAB is not set | 829 | # CONFIG_USB_KBTAB is not set |
829 | # CONFIG_USB_POWERMATE is not set | 830 | # CONFIG_USB_POWERMATE is not set |
830 | # CONFIG_USB_MTOUCH is not set | 831 | # CONFIG_USB_TOUCHSCREEN is not set |
831 | # CONFIG_USB_ITMTOUCH is not set | ||
832 | # CONFIG_USB_EGALAX is not set | ||
833 | # CONFIG_USB_YEALINK is not set | 832 | # CONFIG_USB_YEALINK is not set |
834 | # CONFIG_USB_XPAD is not set | 833 | # CONFIG_USB_XPAD is not set |
835 | # CONFIG_USB_ATI_REMOTE is not set | 834 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -844,15 +843,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y | |||
844 | # CONFIG_USB_MICROTEK is not set | 843 | # CONFIG_USB_MICROTEK is not set |
845 | 844 | ||
846 | # | 845 | # |
847 | # USB Multimedia devices | ||
848 | # | ||
849 | # CONFIG_USB_DABUSB is not set | ||
850 | |||
851 | # | ||
852 | # Video4Linux support is needed for USB Multimedia device support | ||
853 | # | ||
854 | |||
855 | # | ||
856 | # USB Network Adapters | 846 | # USB Network Adapters |
857 | # | 847 | # |
858 | # CONFIG_USB_CATC is not set | 848 | # CONFIG_USB_CATC is not set |
@@ -902,13 +892,31 @@ CONFIG_USB_MON=y | |||
902 | # CONFIG_MMC is not set | 892 | # CONFIG_MMC is not set |
903 | 893 | ||
904 | # | 894 | # |
895 | # LED devices | ||
896 | # | ||
897 | # CONFIG_NEW_LEDS is not set | ||
898 | |||
899 | # | ||
900 | # LED drivers | ||
901 | # | ||
902 | |||
903 | # | ||
904 | # LED Triggers | ||
905 | # | ||
906 | |||
907 | # | ||
905 | # InfiniBand support | 908 | # InfiniBand support |
906 | # | 909 | # |
907 | # CONFIG_INFINIBAND is not set | 910 | # CONFIG_INFINIBAND is not set |
908 | 911 | ||
909 | # | 912 | # |
910 | # SN Devices | 913 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
914 | # | ||
915 | |||
916 | # | ||
917 | # Real Time Clock | ||
911 | # | 918 | # |
919 | # CONFIG_RTC_CLASS is not set | ||
912 | 920 | ||
913 | # | 921 | # |
914 | # File systems | 922 | # File systems |
@@ -956,7 +964,6 @@ CONFIG_SYSFS=y | |||
956 | CONFIG_TMPFS=y | 964 | CONFIG_TMPFS=y |
957 | # CONFIG_HUGETLB_PAGE is not set | 965 | # CONFIG_HUGETLB_PAGE is not set |
958 | CONFIG_RAMFS=y | 966 | CONFIG_RAMFS=y |
959 | # CONFIG_RELAYFS_FS is not set | ||
960 | # CONFIG_CONFIGFS_FS is not set | 967 | # CONFIG_CONFIGFS_FS is not set |
961 | 968 | ||
962 | # | 969 | # |
@@ -1067,6 +1074,7 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
1067 | CONFIG_DETECT_SOFTLOCKUP=y | 1074 | CONFIG_DETECT_SOFTLOCKUP=y |
1068 | # CONFIG_SCHEDSTATS is not set | 1075 | # CONFIG_SCHEDSTATS is not set |
1069 | CONFIG_DEBUG_SLAB=y | 1076 | CONFIG_DEBUG_SLAB=y |
1077 | # CONFIG_DEBUG_SLAB_LEAK is not set | ||
1070 | CONFIG_DEBUG_MUTEXES=y | 1078 | CONFIG_DEBUG_MUTEXES=y |
1071 | # CONFIG_DEBUG_SPINLOCK is not set | 1079 | # CONFIG_DEBUG_SPINLOCK is not set |
1072 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1080 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
diff --git a/arch/mips/configs/pnx8550-v2pci_defconfig b/arch/mips/configs/pnx8550-v2pci_defconfig index 4187287f0763..3c8f35162fec 100644 --- a/arch/mips/configs/pnx8550-v2pci_defconfig +++ b/arch/mips/configs/pnx8550-v2pci_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:28 2006 | 4 | # Mon Apr 24 14:51:14 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_PNX8550_V2PCI=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -114,12 +116,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
114 | CONFIG_CPU_HAS_PREFETCH=y | 116 | CONFIG_CPU_HAS_PREFETCH=y |
115 | # CONFIG_MIPS_MT is not set | 117 | # CONFIG_MIPS_MT is not set |
116 | # CONFIG_64BIT_PHYS_ADDR is not set | 118 | # CONFIG_64BIT_PHYS_ADDR is not set |
117 | CONFIG_CPU_ADVANCED=y | ||
118 | CONFIG_CPU_HAS_LLSC=y | 119 | CONFIG_CPU_HAS_LLSC=y |
119 | # CONFIG_CPU_HAS_WB is not set | ||
120 | CONFIG_CPU_HAS_SYNC=y | 120 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 121 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 122 | CONFIG_GENERIC_IRQ_PROBE=y |
123 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
123 | CONFIG_ARCH_FLATMEM_ENABLE=y | 124 | CONFIG_ARCH_FLATMEM_ENABLE=y |
124 | CONFIG_SELECT_MEMORY_MODEL=y | 125 | CONFIG_SELECT_MEMORY_MODEL=y |
125 | CONFIG_FLATMEM_MANUAL=y | 126 | CONFIG_FLATMEM_MANUAL=y |
@@ -137,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 138 | # Code maturity level options |
138 | # | 139 | # |
139 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 143 | ||
@@ -154,6 +154,7 @@ CONFIG_SYSCTL=y | |||
154 | # CONFIG_AUDIT is not set | 154 | # CONFIG_AUDIT is not set |
155 | CONFIG_IKCONFIG=y | 155 | CONFIG_IKCONFIG=y |
156 | CONFIG_IKCONFIG_PROC=y | 156 | CONFIG_IKCONFIG_PROC=y |
157 | # CONFIG_RELAY is not set | ||
157 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 159 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
159 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
@@ -167,10 +168,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 168 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 169 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 170 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 171 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 172 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 173 | CONFIG_BASE_SMALL=0 |
@@ -181,7 +178,6 @@ CONFIG_BASE_SMALL=0 | |||
181 | # | 178 | # |
182 | CONFIG_MODULES=y | 179 | CONFIG_MODULES=y |
183 | # CONFIG_MODULE_UNLOAD is not set | 180 | # CONFIG_MODULE_UNLOAD is not set |
184 | CONFIG_OBSOLETE_MODPARM=y | ||
185 | # CONFIG_MODVERSIONS is not set | 181 | # CONFIG_MODVERSIONS is not set |
186 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 182 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
187 | CONFIG_KMOD=y | 183 | CONFIG_KMOD=y |
@@ -190,6 +186,8 @@ CONFIG_KMOD=y | |||
190 | # Block layer | 186 | # Block layer |
191 | # | 187 | # |
192 | # CONFIG_LBD is not set | 188 | # CONFIG_LBD is not set |
189 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
190 | # CONFIG_LSF is not set | ||
193 | 191 | ||
194 | # | 192 | # |
195 | # IO Schedulers | 193 | # IO Schedulers |
@@ -209,7 +207,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
209 | # | 207 | # |
210 | CONFIG_HW_HAS_PCI=y | 208 | CONFIG_HW_HAS_PCI=y |
211 | CONFIG_PCI=y | 209 | CONFIG_PCI=y |
212 | # CONFIG_PCI_LEGACY_PROC is not set | ||
213 | CONFIG_MMU=y | 210 | CONFIG_MMU=y |
214 | 211 | ||
215 | # | 212 | # |
@@ -237,6 +234,7 @@ CONFIG_NET=y | |||
237 | # | 234 | # |
238 | # Networking options | 235 | # Networking options |
239 | # | 236 | # |
237 | # CONFIG_NETDEBUG is not set | ||
240 | CONFIG_PACKET=y | 238 | CONFIG_PACKET=y |
241 | # CONFIG_PACKET_MMAP is not set | 239 | # CONFIG_PACKET_MMAP is not set |
242 | CONFIG_UNIX=y | 240 | CONFIG_UNIX=y |
@@ -256,6 +254,7 @@ CONFIG_IP_PNP=y | |||
256 | # CONFIG_INET_AH is not set | 254 | # CONFIG_INET_AH is not set |
257 | # CONFIG_INET_ESP is not set | 255 | # CONFIG_INET_ESP is not set |
258 | # CONFIG_INET_IPCOMP is not set | 256 | # CONFIG_INET_IPCOMP is not set |
257 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
259 | # CONFIG_INET_TUNNEL is not set | 258 | # CONFIG_INET_TUNNEL is not set |
260 | CONFIG_INET_DIAG=y | 259 | CONFIG_INET_DIAG=y |
261 | CONFIG_INET_TCP_DIAG=y | 260 | CONFIG_INET_TCP_DIAG=y |
@@ -268,9 +267,12 @@ CONFIG_TCP_CONG_BIC=y | |||
268 | # CONFIG_IP_VS is not set | 267 | # CONFIG_IP_VS is not set |
269 | CONFIG_IPV6=m | 268 | CONFIG_IPV6=m |
270 | # CONFIG_IPV6_PRIVACY is not set | 269 | # CONFIG_IPV6_PRIVACY is not set |
270 | CONFIG_IPV6_ROUTER_PREF=y | ||
271 | CONFIG_IPV6_ROUTE_INFO=y | ||
271 | # CONFIG_INET6_AH is not set | 272 | # CONFIG_INET6_AH is not set |
272 | # CONFIG_INET6_ESP is not set | 273 | # CONFIG_INET6_ESP is not set |
273 | # CONFIG_INET6_IPCOMP is not set | 274 | # CONFIG_INET6_IPCOMP is not set |
275 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
274 | # CONFIG_INET6_TUNNEL is not set | 276 | # CONFIG_INET6_TUNNEL is not set |
275 | # CONFIG_IPV6_TUNNEL is not set | 277 | # CONFIG_IPV6_TUNNEL is not set |
276 | CONFIG_NETFILTER=y | 278 | CONFIG_NETFILTER=y |
@@ -287,10 +289,12 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
287 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 289 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
288 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 290 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
289 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 291 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
292 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
290 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 293 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
291 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 294 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
292 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 295 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
293 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 296 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
297 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
294 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 298 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
295 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 299 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
296 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 300 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -320,6 +324,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
320 | # SCTP Configuration (EXPERIMENTAL) | 324 | # SCTP Configuration (EXPERIMENTAL) |
321 | # | 325 | # |
322 | # CONFIG_IP_SCTP is not set | 326 | # CONFIG_IP_SCTP is not set |
327 | |||
328 | # | ||
329 | # TIPC Configuration (EXPERIMENTAL) | ||
330 | # | ||
331 | # CONFIG_TIPC is not set | ||
323 | # CONFIG_ATM is not set | 332 | # CONFIG_ATM is not set |
324 | # CONFIG_BRIDGE is not set | 333 | # CONFIG_BRIDGE is not set |
325 | # CONFIG_VLAN_8021Q is not set | 334 | # CONFIG_VLAN_8021Q is not set |
@@ -329,11 +338,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
329 | # CONFIG_ATALK is not set | 338 | # CONFIG_ATALK is not set |
330 | # CONFIG_X25 is not set | 339 | # CONFIG_X25 is not set |
331 | # CONFIG_LAPB is not set | 340 | # CONFIG_LAPB is not set |
332 | |||
333 | # | ||
334 | # TIPC Configuration (EXPERIMENTAL) | ||
335 | # | ||
336 | # CONFIG_TIPC is not set | ||
337 | # CONFIG_NET_DIVERT is not set | 341 | # CONFIG_NET_DIVERT is not set |
338 | # CONFIG_ECONET is not set | 342 | # CONFIG_ECONET is not set |
339 | # CONFIG_WAN_ROUTER is not set | 343 | # CONFIG_WAN_ROUTER is not set |
@@ -521,7 +525,6 @@ CONFIG_AIC7XXX_DEBUG_MASK=0 | |||
521 | # CONFIG_SCSI_INIA100 is not set | 525 | # CONFIG_SCSI_INIA100 is not set |
522 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 526 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
523 | # CONFIG_SCSI_IPR is not set | 527 | # CONFIG_SCSI_IPR is not set |
524 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
525 | # CONFIG_SCSI_QLOGIC_1280 is not set | 528 | # CONFIG_SCSI_QLOGIC_1280 is not set |
526 | # CONFIG_SCSI_QLA_FC is not set | 529 | # CONFIG_SCSI_QLA_FC is not set |
527 | # CONFIG_SCSI_LPFC is not set | 530 | # CONFIG_SCSI_LPFC is not set |
@@ -757,6 +760,7 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
757 | # Non-8250 serial port support | 760 | # Non-8250 serial port support |
758 | # | 761 | # |
759 | # CONFIG_SERIAL_IP3106 is not set | 762 | # CONFIG_SERIAL_IP3106 is not set |
763 | # CONFIG_SERIAL_JSM is not set | ||
760 | CONFIG_UNIX98_PTYS=y | 764 | CONFIG_UNIX98_PTYS=y |
761 | CONFIG_LEGACY_PTYS=y | 765 | CONFIG_LEGACY_PTYS=y |
762 | CONFIG_LEGACY_PTY_COUNT=256 | 766 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -816,7 +820,6 @@ CONFIG_I2C_ALGOBIT=m | |||
816 | # CONFIG_I2C_PARPORT_LIGHT is not set | 820 | # CONFIG_I2C_PARPORT_LIGHT is not set |
817 | # CONFIG_I2C_PROSAVAGE is not set | 821 | # CONFIG_I2C_PROSAVAGE is not set |
818 | # CONFIG_I2C_SAVAGE4 is not set | 822 | # CONFIG_I2C_SAVAGE4 is not set |
819 | # CONFIG_SCx200_ACB is not set | ||
820 | # CONFIG_I2C_SIS5595 is not set | 823 | # CONFIG_I2C_SIS5595 is not set |
821 | # CONFIG_I2C_SIS630 is not set | 824 | # CONFIG_I2C_SIS630 is not set |
822 | # CONFIG_I2C_SIS96X is not set | 825 | # CONFIG_I2C_SIS96X is not set |
@@ -835,9 +838,7 @@ CONFIG_I2C_ALGOBIT=m | |||
835 | # CONFIG_SENSORS_PCF8574 is not set | 838 | # CONFIG_SENSORS_PCF8574 is not set |
836 | # CONFIG_SENSORS_PCA9539 is not set | 839 | # CONFIG_SENSORS_PCA9539 is not set |
837 | # CONFIG_SENSORS_PCF8591 is not set | 840 | # CONFIG_SENSORS_PCF8591 is not set |
838 | # CONFIG_SENSORS_RTC8564 is not set | ||
839 | # CONFIG_SENSORS_MAX6875 is not set | 841 | # CONFIG_SENSORS_MAX6875 is not set |
840 | # CONFIG_RTC_X1205_I2C is not set | ||
841 | # CONFIG_I2C_DEBUG_CORE is not set | 842 | # CONFIG_I2C_DEBUG_CORE is not set |
842 | # CONFIG_I2C_DEBUG_ALGO is not set | 843 | # CONFIG_I2C_DEBUG_ALGO is not set |
843 | # CONFIG_I2C_DEBUG_BUS is not set | 844 | # CONFIG_I2C_DEBUG_BUS is not set |
@@ -867,6 +868,7 @@ CONFIG_HWMON=y | |||
867 | # CONFIG_SENSORS_ASB100 is not set | 868 | # CONFIG_SENSORS_ASB100 is not set |
868 | # CONFIG_SENSORS_ATXP1 is not set | 869 | # CONFIG_SENSORS_ATXP1 is not set |
869 | # CONFIG_SENSORS_DS1621 is not set | 870 | # CONFIG_SENSORS_DS1621 is not set |
871 | # CONFIG_SENSORS_F71805F is not set | ||
870 | # CONFIG_SENSORS_FSCHER is not set | 872 | # CONFIG_SENSORS_FSCHER is not set |
871 | # CONFIG_SENSORS_FSCPOS is not set | 873 | # CONFIG_SENSORS_FSCPOS is not set |
872 | # CONFIG_SENSORS_GL518SM is not set | 874 | # CONFIG_SENSORS_GL518SM is not set |
@@ -901,10 +903,6 @@ CONFIG_HWMON=y | |||
901 | # | 903 | # |
902 | 904 | ||
903 | # | 905 | # |
904 | # Multimedia Capabilities Port drivers | ||
905 | # | ||
906 | |||
907 | # | ||
908 | # Multimedia devices | 906 | # Multimedia devices |
909 | # | 907 | # |
910 | # CONFIG_VIDEO_DEV is not set | 908 | # CONFIG_VIDEO_DEV is not set |
@@ -913,6 +911,7 @@ CONFIG_HWMON=y | |||
913 | # Digital Video Broadcasting Devices | 911 | # Digital Video Broadcasting Devices |
914 | # | 912 | # |
915 | # CONFIG_DVB is not set | 913 | # CONFIG_DVB is not set |
914 | # CONFIG_USB_DABUSB is not set | ||
916 | 915 | ||
917 | # | 916 | # |
918 | # Graphics support | 917 | # Graphics support |
@@ -922,6 +921,7 @@ CONFIG_FB=y | |||
922 | # CONFIG_FB_CFB_COPYAREA is not set | 921 | # CONFIG_FB_CFB_COPYAREA is not set |
923 | # CONFIG_FB_CFB_IMAGEBLIT is not set | 922 | # CONFIG_FB_CFB_IMAGEBLIT is not set |
924 | # CONFIG_FB_MACMODES is not set | 923 | # CONFIG_FB_MACMODES is not set |
924 | CONFIG_FB_FIRMWARE_EDID=y | ||
925 | # CONFIG_FB_MODE_HELPERS is not set | 925 | # CONFIG_FB_MODE_HELPERS is not set |
926 | # CONFIG_FB_TILEBLITTING is not set | 926 | # CONFIG_FB_TILEBLITTING is not set |
927 | # CONFIG_FB_CIRRUS is not set | 927 | # CONFIG_FB_CIRRUS is not set |
@@ -933,7 +933,6 @@ CONFIG_FB=y | |||
933 | # CONFIG_FB_NVIDIA is not set | 933 | # CONFIG_FB_NVIDIA is not set |
934 | # CONFIG_FB_RIVA is not set | 934 | # CONFIG_FB_RIVA is not set |
935 | # CONFIG_FB_MATROX is not set | 935 | # CONFIG_FB_MATROX is not set |
936 | # CONFIG_FB_RADEON_OLD is not set | ||
937 | # CONFIG_FB_RADEON is not set | 936 | # CONFIG_FB_RADEON is not set |
938 | # CONFIG_FB_ATY128 is not set | 937 | # CONFIG_FB_ATY128 is not set |
939 | # CONFIG_FB_ATY is not set | 938 | # CONFIG_FB_ATY is not set |
@@ -970,6 +969,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
970 | # | 969 | # |
971 | CONFIG_USB_ARCH_HAS_HCD=y | 970 | CONFIG_USB_ARCH_HAS_HCD=y |
972 | CONFIG_USB_ARCH_HAS_OHCI=y | 971 | CONFIG_USB_ARCH_HAS_OHCI=y |
972 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
973 | CONFIG_USB=y | 973 | CONFIG_USB=y |
974 | # CONFIG_USB_DEBUG is not set | 974 | # CONFIG_USB_DEBUG is not set |
975 | 975 | ||
@@ -1030,9 +1030,7 @@ CONFIG_USB_HIDDEV=y | |||
1030 | # CONFIG_USB_ACECAD is not set | 1030 | # CONFIG_USB_ACECAD is not set |
1031 | # CONFIG_USB_KBTAB is not set | 1031 | # CONFIG_USB_KBTAB is not set |
1032 | # CONFIG_USB_POWERMATE is not set | 1032 | # CONFIG_USB_POWERMATE is not set |
1033 | # CONFIG_USB_MTOUCH is not set | 1033 | # CONFIG_USB_TOUCHSCREEN is not set |
1034 | # CONFIG_USB_ITMTOUCH is not set | ||
1035 | # CONFIG_USB_EGALAX is not set | ||
1036 | # CONFIG_USB_YEALINK is not set | 1034 | # CONFIG_USB_YEALINK is not set |
1037 | # CONFIG_USB_XPAD is not set | 1035 | # CONFIG_USB_XPAD is not set |
1038 | # CONFIG_USB_ATI_REMOTE is not set | 1036 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -1047,15 +1045,6 @@ CONFIG_USB_HIDDEV=y | |||
1047 | # CONFIG_USB_MICROTEK is not set | 1045 | # CONFIG_USB_MICROTEK is not set |
1048 | 1046 | ||
1049 | # | 1047 | # |
1050 | # USB Multimedia devices | ||
1051 | # | ||
1052 | # CONFIG_USB_DABUSB is not set | ||
1053 | |||
1054 | # | ||
1055 | # Video4Linux support is needed for USB Multimedia device support | ||
1056 | # | ||
1057 | |||
1058 | # | ||
1059 | # USB Network Adapters | 1048 | # USB Network Adapters |
1060 | # | 1049 | # |
1061 | # CONFIG_USB_CATC is not set | 1050 | # CONFIG_USB_CATC is not set |
@@ -1106,13 +1095,31 @@ CONFIG_USB_MON=y | |||
1106 | # CONFIG_MMC is not set | 1095 | # CONFIG_MMC is not set |
1107 | 1096 | ||
1108 | # | 1097 | # |
1098 | # LED devices | ||
1099 | # | ||
1100 | # CONFIG_NEW_LEDS is not set | ||
1101 | |||
1102 | # | ||
1103 | # LED drivers | ||
1104 | # | ||
1105 | |||
1106 | # | ||
1107 | # LED Triggers | ||
1108 | # | ||
1109 | |||
1110 | # | ||
1109 | # InfiniBand support | 1111 | # InfiniBand support |
1110 | # | 1112 | # |
1111 | # CONFIG_INFINIBAND is not set | 1113 | # CONFIG_INFINIBAND is not set |
1112 | 1114 | ||
1113 | # | 1115 | # |
1114 | # SN Devices | 1116 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1117 | # | ||
1118 | |||
1119 | # | ||
1120 | # Real Time Clock | ||
1115 | # | 1121 | # |
1122 | # CONFIG_RTC_CLASS is not set | ||
1116 | 1123 | ||
1117 | # | 1124 | # |
1118 | # File systems | 1125 | # File systems |
@@ -1171,7 +1178,6 @@ CONFIG_SYSFS=y | |||
1171 | CONFIG_TMPFS=y | 1178 | CONFIG_TMPFS=y |
1172 | # CONFIG_HUGETLB_PAGE is not set | 1179 | # CONFIG_HUGETLB_PAGE is not set |
1173 | CONFIG_RAMFS=y | 1180 | CONFIG_RAMFS=y |
1174 | # CONFIG_RELAYFS_FS is not set | ||
1175 | # CONFIG_CONFIGFS_FS is not set | 1181 | # CONFIG_CONFIGFS_FS is not set |
1176 | 1182 | ||
1177 | # | 1183 | # |
@@ -1280,6 +1286,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1280 | # CONFIG_MAGIC_SYSRQ is not set | 1286 | # CONFIG_MAGIC_SYSRQ is not set |
1281 | # CONFIG_DEBUG_KERNEL is not set | 1287 | # CONFIG_DEBUG_KERNEL is not set |
1282 | CONFIG_LOG_BUF_SHIFT=14 | 1288 | CONFIG_LOG_BUF_SHIFT=14 |
1289 | # CONFIG_DEBUG_FS is not set | ||
1283 | CONFIG_CROSSCOMPILE=y | 1290 | CONFIG_CROSSCOMPILE=y |
1284 | CONFIG_CMDLINE="" | 1291 | CONFIG_CMDLINE="" |
1285 | 1292 | ||
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig index 31f5afabafa8..4bcc01dea041 100644 --- a/arch/mips/configs/qemu_defconfig +++ b/arch/mips/configs/qemu_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc2 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Sun Feb 12 19:18:55 2006 | 4 | # Mon Apr 24 14:51:15 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_QEMU=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_COHERENT=y | 70 | CONFIG_DMA_COHERENT=y |
69 | CONFIG_GENERIC_ISA_DMA=y | 71 | CONFIG_GENERIC_ISA_DMA=y |
@@ -115,16 +117,17 @@ CONFIG_PAGE_SIZE_4KB=y | |||
115 | CONFIG_CPU_HAS_PREFETCH=y | 117 | CONFIG_CPU_HAS_PREFETCH=y |
116 | # CONFIG_MIPS_MT is not set | 118 | # CONFIG_MIPS_MT is not set |
117 | # CONFIG_64BIT_PHYS_ADDR is not set | 119 | # CONFIG_64BIT_PHYS_ADDR is not set |
118 | # CONFIG_CPU_ADVANCED is not set | ||
119 | CONFIG_CPU_HAS_LLSC=y | 120 | CONFIG_CPU_HAS_LLSC=y |
120 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 123 | CONFIG_GENERIC_IRQ_PROBE=y |
124 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
123 | CONFIG_ARCH_FLATMEM_ENABLE=y | 125 | CONFIG_ARCH_FLATMEM_ENABLE=y |
124 | CONFIG_FLATMEM=y | 126 | CONFIG_FLATMEM=y |
125 | CONFIG_FLAT_NODE_MEM_MAP=y | 127 | CONFIG_FLAT_NODE_MEM_MAP=y |
126 | # CONFIG_SPARSEMEM_STATIC is not set | 128 | # CONFIG_SPARSEMEM_STATIC is not set |
127 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 129 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
130 | # CONFIG_SMP is not set | ||
128 | CONFIG_PREEMPT_NONE=y | 131 | CONFIG_PREEMPT_NONE=y |
129 | # CONFIG_PREEMPT_VOLUNTARY is not set | 132 | # CONFIG_PREEMPT_VOLUNTARY is not set |
130 | # CONFIG_PREEMPT is not set | 133 | # CONFIG_PREEMPT is not set |
@@ -147,6 +150,7 @@ CONFIG_LOCALVERSION_AUTO=y | |||
147 | CONFIG_SYSCTL=y | 150 | CONFIG_SYSCTL=y |
148 | # CONFIG_AUDIT is not set | 151 | # CONFIG_AUDIT is not set |
149 | # CONFIG_IKCONFIG is not set | 152 | # CONFIG_IKCONFIG is not set |
153 | CONFIG_RELAY=y | ||
150 | CONFIG_INITRAMFS_SOURCE="" | 154 | CONFIG_INITRAMFS_SOURCE="" |
151 | CONFIG_EMBEDDED=y | 155 | CONFIG_EMBEDDED=y |
152 | CONFIG_KALLSYMS=y | 156 | CONFIG_KALLSYMS=y |
@@ -159,10 +163,6 @@ CONFIG_ELF_CORE=y | |||
159 | # CONFIG_FUTEX is not set | 163 | # CONFIG_FUTEX is not set |
160 | # CONFIG_EPOLL is not set | 164 | # CONFIG_EPOLL is not set |
161 | # CONFIG_SHMEM is not set | 165 | # CONFIG_SHMEM is not set |
162 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
163 | CONFIG_CC_ALIGN_LABELS=0 | ||
164 | CONFIG_CC_ALIGN_LOOPS=0 | ||
165 | CONFIG_CC_ALIGN_JUMPS=0 | ||
166 | CONFIG_SLAB=y | 166 | CONFIG_SLAB=y |
167 | CONFIG_TINY_SHMEM=y | 167 | CONFIG_TINY_SHMEM=y |
168 | CONFIG_BASE_SMALL=1 | 168 | CONFIG_BASE_SMALL=1 |
@@ -177,6 +177,8 @@ CONFIG_BASE_SMALL=1 | |||
177 | # Block layer | 177 | # Block layer |
178 | # | 178 | # |
179 | # CONFIG_LBD is not set | 179 | # CONFIG_LBD is not set |
180 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
181 | # CONFIG_LSF is not set | ||
180 | 182 | ||
181 | # | 183 | # |
182 | # IO Schedulers | 184 | # IO Schedulers |
@@ -196,6 +198,7 @@ CONFIG_DEFAULT_IOSCHED="noop" | |||
196 | # | 198 | # |
197 | CONFIG_ISA=y | 199 | CONFIG_ISA=y |
198 | CONFIG_MMU=y | 200 | CONFIG_MMU=y |
201 | CONFIG_I8253=y | ||
199 | 202 | ||
200 | # | 203 | # |
201 | # PCCARD (PCMCIA/CardBus) support | 204 | # PCCARD (PCMCIA/CardBus) support |
@@ -241,12 +244,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
241 | # CONFIG_INET_AH is not set | 244 | # CONFIG_INET_AH is not set |
242 | # CONFIG_INET_ESP is not set | 245 | # CONFIG_INET_ESP is not set |
243 | # CONFIG_INET_IPCOMP is not set | 246 | # CONFIG_INET_IPCOMP is not set |
247 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
244 | # CONFIG_INET_TUNNEL is not set | 248 | # CONFIG_INET_TUNNEL is not set |
245 | CONFIG_INET_DIAG=y | 249 | CONFIG_INET_DIAG=y |
246 | CONFIG_INET_TCP_DIAG=y | 250 | CONFIG_INET_TCP_DIAG=y |
247 | # CONFIG_TCP_CONG_ADVANCED is not set | 251 | # CONFIG_TCP_CONG_ADVANCED is not set |
248 | CONFIG_TCP_CONG_BIC=y | 252 | CONFIG_TCP_CONG_BIC=y |
249 | # CONFIG_IPV6 is not set | 253 | # CONFIG_IPV6 is not set |
254 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
255 | # CONFIG_INET6_TUNNEL is not set | ||
250 | # CONFIG_NETFILTER is not set | 256 | # CONFIG_NETFILTER is not set |
251 | # CONFIG_BRIDGE is not set | 257 | # CONFIG_BRIDGE is not set |
252 | # CONFIG_VLAN_8021Q is not set | 258 | # CONFIG_VLAN_8021Q is not set |
@@ -308,7 +314,7 @@ CONFIG_PROC_EVENTS=y | |||
308 | # CONFIG_BLK_DEV_LOOP is not set | 314 | # CONFIG_BLK_DEV_LOOP is not set |
309 | # CONFIG_BLK_DEV_NBD is not set | 315 | # CONFIG_BLK_DEV_NBD is not set |
310 | # CONFIG_BLK_DEV_RAM is not set | 316 | # CONFIG_BLK_DEV_RAM is not set |
311 | CONFIG_BLK_DEV_RAM_COUNT=16 | 317 | # CONFIG_BLK_DEV_INITRD is not set |
312 | # CONFIG_CDROM_PKTCDVD is not set | 318 | # CONFIG_CDROM_PKTCDVD is not set |
313 | # CONFIG_ATA_OVER_ETH is not set | 319 | # CONFIG_ATA_OVER_ETH is not set |
314 | 320 | ||
@@ -530,10 +536,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
530 | # | 536 | # |
531 | 537 | ||
532 | # | 538 | # |
533 | # Multimedia Capabilities Port drivers | ||
534 | # | ||
535 | |||
536 | # | ||
537 | # Multimedia devices | 539 | # Multimedia devices |
538 | # | 540 | # |
539 | # CONFIG_VIDEO_DEV is not set | 541 | # CONFIG_VIDEO_DEV is not set |
@@ -552,6 +554,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
552 | # Console display driver support | 554 | # Console display driver support |
553 | # | 555 | # |
554 | CONFIG_VGA_CONSOLE=y | 556 | CONFIG_VGA_CONSOLE=y |
557 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
555 | # CONFIG_MDA_CONSOLE is not set | 558 | # CONFIG_MDA_CONSOLE is not set |
556 | CONFIG_DUMMY_CONSOLE=y | 559 | CONFIG_DUMMY_CONSOLE=y |
557 | 560 | ||
@@ -565,6 +568,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
565 | # | 568 | # |
566 | # CONFIG_USB_ARCH_HAS_HCD is not set | 569 | # CONFIG_USB_ARCH_HAS_HCD is not set |
567 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 570 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
571 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
568 | 572 | ||
569 | # | 573 | # |
570 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 574 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -581,15 +585,28 @@ CONFIG_DUMMY_CONSOLE=y | |||
581 | # CONFIG_MMC is not set | 585 | # CONFIG_MMC is not set |
582 | 586 | ||
583 | # | 587 | # |
588 | # LED devices | ||
589 | # | ||
590 | # CONFIG_NEW_LEDS is not set | ||
591 | |||
592 | # | ||
593 | # LED drivers | ||
594 | # | ||
595 | |||
596 | # | ||
597 | # LED Triggers | ||
598 | # | ||
599 | |||
600 | # | ||
584 | # InfiniBand support | 601 | # InfiniBand support |
585 | # | 602 | # |
586 | 603 | ||
587 | # | 604 | # |
588 | # SN Devices | 605 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
589 | # | 606 | # |
590 | 607 | ||
591 | # | 608 | # |
592 | # EDAC - error detection and reporting (RAS) | 609 | # Real Time Clock |
593 | # | 610 | # |
594 | 611 | ||
595 | # | 612 | # |
@@ -632,7 +649,6 @@ CONFIG_SYSFS=y | |||
632 | # CONFIG_TMPFS is not set | 649 | # CONFIG_TMPFS is not set |
633 | # CONFIG_HUGETLB_PAGE is not set | 650 | # CONFIG_HUGETLB_PAGE is not set |
634 | CONFIG_RAMFS=y | 651 | CONFIG_RAMFS=y |
635 | CONFIG_RELAYFS_FS=y | ||
636 | 652 | ||
637 | # | 653 | # |
638 | # Miscellaneous filesystems | 654 | # Miscellaneous filesystems |
@@ -680,6 +696,8 @@ CONFIG_MSDOS_PARTITION=y | |||
680 | # CONFIG_MAGIC_SYSRQ is not set | 696 | # CONFIG_MAGIC_SYSRQ is not set |
681 | # CONFIG_DEBUG_KERNEL is not set | 697 | # CONFIG_DEBUG_KERNEL is not set |
682 | CONFIG_LOG_BUF_SHIFT=14 | 698 | CONFIG_LOG_BUF_SHIFT=14 |
699 | # CONFIG_DEBUG_FS is not set | ||
700 | # CONFIG_UNWIND_INFO is not set | ||
683 | CONFIG_CROSSCOMPILE=y | 701 | CONFIG_CROSSCOMPILE=y |
684 | CONFIG_CMDLINE="" | 702 | CONFIG_CMDLINE="" |
685 | 703 | ||
diff --git a/arch/mips/configs/rbhma4500_defconfig b/arch/mips/configs/rbhma4500_defconfig index b126f763cf51..3d441932e43a 100644 --- a/arch/mips/configs/rbhma4500_defconfig +++ b/arch/mips/configs/rbhma4500_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:30 2006 | 4 | # Mon Apr 24 14:51:16 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -71,6 +71,8 @@ CONFIG_TOSHIBA_RBTX4938_MPLEX_PIO58_61=y | |||
71 | # CONFIG_TOSHIBA_RBTX4938_MPLEX_NAND is not set | 71 | # CONFIG_TOSHIBA_RBTX4938_MPLEX_NAND is not set |
72 | # CONFIG_TOSHIBA_RBTX4938_MPLEX_ATA is not set | 72 | # CONFIG_TOSHIBA_RBTX4938_MPLEX_ATA is not set |
73 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 73 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
74 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
75 | CONFIG_GENERIC_HWEIGHT=y | ||
74 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 76 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
75 | CONFIG_DMA_NONCOHERENT=y | 77 | CONFIG_DMA_NONCOHERENT=y |
76 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 78 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -121,10 +123,9 @@ CONFIG_PAGE_SIZE_4KB=y | |||
121 | # CONFIG_PAGE_SIZE_8KB is not set | 123 | # CONFIG_PAGE_SIZE_8KB is not set |
122 | # CONFIG_PAGE_SIZE_16KB is not set | 124 | # CONFIG_PAGE_SIZE_16KB is not set |
123 | # CONFIG_PAGE_SIZE_64KB is not set | 125 | # CONFIG_PAGE_SIZE_64KB is not set |
126 | CONFIG_CPU_HAS_PREFETCH=y | ||
124 | # CONFIG_MIPS_MT is not set | 127 | # CONFIG_MIPS_MT is not set |
125 | CONFIG_CPU_ADVANCED=y | ||
126 | CONFIG_CPU_HAS_LLSC=y | 128 | CONFIG_CPU_HAS_LLSC=y |
127 | CONFIG_CPU_HAS_WB=y | ||
128 | CONFIG_CPU_HAS_SYNC=y | 129 | CONFIG_CPU_HAS_SYNC=y |
129 | CONFIG_GENERIC_HARDIRQS=y | 130 | CONFIG_GENERIC_HARDIRQS=y |
130 | CONFIG_GENERIC_IRQ_PROBE=y | 131 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -145,7 +146,6 @@ CONFIG_PREEMPT_NONE=y | |||
145 | # Code maturity level options | 146 | # Code maturity level options |
146 | # | 147 | # |
147 | CONFIG_EXPERIMENTAL=y | 148 | CONFIG_EXPERIMENTAL=y |
148 | CONFIG_CLEAN_COMPILE=y | ||
149 | CONFIG_BROKEN_ON_SMP=y | 149 | CONFIG_BROKEN_ON_SMP=y |
150 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 150 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
151 | 151 | ||
@@ -162,6 +162,7 @@ CONFIG_SYSCTL=y | |||
162 | # CONFIG_AUDIT is not set | 162 | # CONFIG_AUDIT is not set |
163 | CONFIG_IKCONFIG=y | 163 | CONFIG_IKCONFIG=y |
164 | CONFIG_IKCONFIG_PROC=y | 164 | CONFIG_IKCONFIG_PROC=y |
165 | CONFIG_RELAY=y | ||
165 | CONFIG_INITRAMFS_SOURCE="" | 166 | CONFIG_INITRAMFS_SOURCE="" |
166 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 167 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
167 | CONFIG_EMBEDDED=y | 168 | CONFIG_EMBEDDED=y |
@@ -175,10 +176,6 @@ CONFIG_BASE_FULL=y | |||
175 | # CONFIG_FUTEX is not set | 176 | # CONFIG_FUTEX is not set |
176 | # CONFIG_EPOLL is not set | 177 | # CONFIG_EPOLL is not set |
177 | CONFIG_SHMEM=y | 178 | CONFIG_SHMEM=y |
178 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
179 | CONFIG_CC_ALIGN_LABELS=0 | ||
180 | CONFIG_CC_ALIGN_LOOPS=0 | ||
181 | CONFIG_CC_ALIGN_JUMPS=0 | ||
182 | CONFIG_SLAB=y | 179 | CONFIG_SLAB=y |
183 | # CONFIG_TINY_SHMEM is not set | 180 | # CONFIG_TINY_SHMEM is not set |
184 | CONFIG_BASE_SMALL=0 | 181 | CONFIG_BASE_SMALL=0 |
@@ -190,7 +187,6 @@ CONFIG_OBSOLETE_INTERMODULE=y | |||
190 | # | 187 | # |
191 | CONFIG_MODULES=y | 188 | CONFIG_MODULES=y |
192 | # CONFIG_MODULE_UNLOAD is not set | 189 | # CONFIG_MODULE_UNLOAD is not set |
193 | CONFIG_OBSOLETE_MODPARM=y | ||
194 | # CONFIG_MODVERSIONS is not set | 190 | # CONFIG_MODVERSIONS is not set |
195 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 191 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
196 | CONFIG_KMOD=y | 192 | CONFIG_KMOD=y |
@@ -199,6 +195,8 @@ CONFIG_KMOD=y | |||
199 | # Block layer | 195 | # Block layer |
200 | # | 196 | # |
201 | # CONFIG_LBD is not set | 197 | # CONFIG_LBD is not set |
198 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
199 | # CONFIG_LSF is not set | ||
202 | 200 | ||
203 | # | 201 | # |
204 | # IO Schedulers | 202 | # IO Schedulers |
@@ -218,7 +216,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
218 | # | 216 | # |
219 | CONFIG_HW_HAS_PCI=y | 217 | CONFIG_HW_HAS_PCI=y |
220 | CONFIG_PCI=y | 218 | CONFIG_PCI=y |
221 | # CONFIG_PCI_LEGACY_PROC is not set | ||
222 | CONFIG_ISA=y | 219 | CONFIG_ISA=y |
223 | CONFIG_MMU=y | 220 | CONFIG_MMU=y |
224 | 221 | ||
@@ -247,6 +244,7 @@ CONFIG_NET=y | |||
247 | # | 244 | # |
248 | # Networking options | 245 | # Networking options |
249 | # | 246 | # |
247 | # CONFIG_NETDEBUG is not set | ||
250 | CONFIG_PACKET=y | 248 | CONFIG_PACKET=y |
251 | # CONFIG_PACKET_MMAP is not set | 249 | # CONFIG_PACKET_MMAP is not set |
252 | CONFIG_UNIX=y | 250 | CONFIG_UNIX=y |
@@ -267,6 +265,7 @@ CONFIG_IP_PNP_BOOTP=y | |||
267 | # CONFIG_INET_AH is not set | 265 | # CONFIG_INET_AH is not set |
268 | # CONFIG_INET_ESP is not set | 266 | # CONFIG_INET_ESP is not set |
269 | # CONFIG_INET_IPCOMP is not set | 267 | # CONFIG_INET_IPCOMP is not set |
268 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
270 | # CONFIG_INET_TUNNEL is not set | 269 | # CONFIG_INET_TUNNEL is not set |
271 | CONFIG_INET_DIAG=y | 270 | CONFIG_INET_DIAG=y |
272 | CONFIG_INET_TCP_DIAG=y | 271 | CONFIG_INET_TCP_DIAG=y |
@@ -279,9 +278,12 @@ CONFIG_TCP_CONG_BIC=y | |||
279 | # CONFIG_IP_VS is not set | 278 | # CONFIG_IP_VS is not set |
280 | CONFIG_IPV6=m | 279 | CONFIG_IPV6=m |
281 | # CONFIG_IPV6_PRIVACY is not set | 280 | # CONFIG_IPV6_PRIVACY is not set |
281 | CONFIG_IPV6_ROUTER_PREF=y | ||
282 | CONFIG_IPV6_ROUTE_INFO=y | ||
282 | # CONFIG_INET6_AH is not set | 283 | # CONFIG_INET6_AH is not set |
283 | # CONFIG_INET6_ESP is not set | 284 | # CONFIG_INET6_ESP is not set |
284 | # CONFIG_INET6_IPCOMP is not set | 285 | # CONFIG_INET6_IPCOMP is not set |
286 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
285 | # CONFIG_INET6_TUNNEL is not set | 287 | # CONFIG_INET6_TUNNEL is not set |
286 | # CONFIG_IPV6_TUNNEL is not set | 288 | # CONFIG_IPV6_TUNNEL is not set |
287 | CONFIG_NETFILTER=y | 289 | CONFIG_NETFILTER=y |
@@ -300,10 +302,12 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
300 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 302 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
301 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 303 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
302 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 304 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
305 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
303 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 306 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
304 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 307 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
305 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 308 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
306 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 309 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
310 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
307 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 311 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
308 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 312 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
309 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 313 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -333,6 +337,11 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
333 | # SCTP Configuration (EXPERIMENTAL) | 337 | # SCTP Configuration (EXPERIMENTAL) |
334 | # | 338 | # |
335 | # CONFIG_IP_SCTP is not set | 339 | # CONFIG_IP_SCTP is not set |
340 | |||
341 | # | ||
342 | # TIPC Configuration (EXPERIMENTAL) | ||
343 | # | ||
344 | # CONFIG_TIPC is not set | ||
336 | # CONFIG_ATM is not set | 345 | # CONFIG_ATM is not set |
337 | # CONFIG_BRIDGE is not set | 346 | # CONFIG_BRIDGE is not set |
338 | # CONFIG_VLAN_8021Q is not set | 347 | # CONFIG_VLAN_8021Q is not set |
@@ -342,11 +351,6 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | |||
342 | # CONFIG_ATALK is not set | 351 | # CONFIG_ATALK is not set |
343 | # CONFIG_X25 is not set | 352 | # CONFIG_X25 is not set |
344 | # CONFIG_LAPB is not set | 353 | # CONFIG_LAPB is not set |
345 | |||
346 | # | ||
347 | # TIPC Configuration (EXPERIMENTAL) | ||
348 | # | ||
349 | # CONFIG_TIPC is not set | ||
350 | # CONFIG_NET_DIVERT is not set | 354 | # CONFIG_NET_DIVERT is not set |
351 | # CONFIG_ECONET is not set | 355 | # CONFIG_ECONET is not set |
352 | # CONFIG_WAN_ROUTER is not set | 356 | # CONFIG_WAN_ROUTER is not set |
@@ -369,6 +373,9 @@ CONFIG_IEEE80211=m | |||
369 | CONFIG_IEEE80211_CRYPT_WEP=m | 373 | CONFIG_IEEE80211_CRYPT_WEP=m |
370 | CONFIG_IEEE80211_CRYPT_CCMP=m | 374 | CONFIG_IEEE80211_CRYPT_CCMP=m |
371 | CONFIG_IEEE80211_CRYPT_TKIP=m | 375 | CONFIG_IEEE80211_CRYPT_TKIP=m |
376 | CONFIG_IEEE80211_SOFTMAC=m | ||
377 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
378 | CONFIG_WIRELESS_EXT=y | ||
372 | 379 | ||
373 | # | 380 | # |
374 | # Device Drivers | 381 | # Device Drivers |
@@ -425,7 +432,6 @@ CONFIG_MTD_CFI_I2=y | |||
425 | # CONFIG_MTD_CFI_I8 is not set | 432 | # CONFIG_MTD_CFI_I8 is not set |
426 | CONFIG_MTD_CFI_INTELEXT=y | 433 | CONFIG_MTD_CFI_INTELEXT=y |
427 | CONFIG_MTD_CFI_AMDSTD=y | 434 | CONFIG_MTD_CFI_AMDSTD=y |
428 | CONFIG_MTD_CFI_AMDSTD_RETRY=0 | ||
429 | # CONFIG_MTD_CFI_STAA is not set | 435 | # CONFIG_MTD_CFI_STAA is not set |
430 | CONFIG_MTD_CFI_UTIL=y | 436 | CONFIG_MTD_CFI_UTIL=y |
431 | # CONFIG_MTD_RAM is not set | 437 | # CONFIG_MTD_RAM is not set |
@@ -447,7 +453,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
447 | # CONFIG_MTD_SLRAM is not set | 453 | # CONFIG_MTD_SLRAM is not set |
448 | # CONFIG_MTD_PHRAM is not set | 454 | # CONFIG_MTD_PHRAM is not set |
449 | # CONFIG_MTD_MTDRAM is not set | 455 | # CONFIG_MTD_MTDRAM is not set |
450 | # CONFIG_MTD_BLKMTD is not set | ||
451 | # CONFIG_MTD_BLOCK2MTD is not set | 456 | # CONFIG_MTD_BLOCK2MTD is not set |
452 | 457 | ||
453 | # | 458 | # |
@@ -702,6 +707,7 @@ CONFIG_NET_PCI=y | |||
702 | # Wireless LAN (non-hamradio) | 707 | # Wireless LAN (non-hamradio) |
703 | # | 708 | # |
704 | CONFIG_NET_RADIO=y | 709 | CONFIG_NET_RADIO=y |
710 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
705 | 711 | ||
706 | # | 712 | # |
707 | # Obsolete Wireless cards support (pre-802.11) | 713 | # Obsolete Wireless cards support (pre-802.11) |
@@ -715,6 +721,8 @@ CONFIG_NET_RADIO=y | |||
715 | # | 721 | # |
716 | # CONFIG_IPW2100 is not set | 722 | # CONFIG_IPW2100 is not set |
717 | CONFIG_IPW2200=m | 723 | CONFIG_IPW2200=m |
724 | # CONFIG_IPW2200_MONITOR is not set | ||
725 | # CONFIG_IPW_QOS is not set | ||
718 | # CONFIG_IPW2200_DEBUG is not set | 726 | # CONFIG_IPW2200_DEBUG is not set |
719 | # CONFIG_HERMES is not set | 727 | # CONFIG_HERMES is not set |
720 | # CONFIG_ATMEL is not set | 728 | # CONFIG_ATMEL is not set |
@@ -724,6 +732,7 @@ CONFIG_IPW2200=m | |||
724 | # | 732 | # |
725 | # CONFIG_PRISM54 is not set | 733 | # CONFIG_PRISM54 is not set |
726 | # CONFIG_HOSTAP is not set | 734 | # CONFIG_HOSTAP is not set |
735 | # CONFIG_BCM43XX is not set | ||
727 | CONFIG_NET_WIRELESS=y | 736 | CONFIG_NET_WIRELESS=y |
728 | 737 | ||
729 | # | 738 | # |
@@ -821,7 +830,12 @@ CONFIG_HW_CONSOLE=y | |||
821 | # | 830 | # |
822 | # Non-8250 serial port support | 831 | # Non-8250 serial port support |
823 | # | 832 | # |
833 | CONFIG_SERIAL_CORE=y | ||
834 | CONFIG_SERIAL_TXX9=y | ||
824 | CONFIG_HAS_TXX9_SERIAL=y | 835 | CONFIG_HAS_TXX9_SERIAL=y |
836 | # CONFIG_SERIAL_TXX9_CONSOLE is not set | ||
837 | # CONFIG_SERIAL_TXX9_STDSERIAL is not set | ||
838 | # CONFIG_SERIAL_JSM is not set | ||
825 | CONFIG_UNIX98_PTYS=y | 839 | CONFIG_UNIX98_PTYS=y |
826 | CONFIG_LEGACY_PTYS=y | 840 | CONFIG_LEGACY_PTYS=y |
827 | CONFIG_LEGACY_PTY_COUNT=256 | 841 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -874,6 +888,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
874 | # | 888 | # |
875 | CONFIG_HWMON=y | 889 | CONFIG_HWMON=y |
876 | # CONFIG_HWMON_VID is not set | 890 | # CONFIG_HWMON_VID is not set |
891 | # CONFIG_SENSORS_F71805F is not set | ||
877 | # CONFIG_HWMON_DEBUG_CHIP is not set | 892 | # CONFIG_HWMON_DEBUG_CHIP is not set |
878 | 893 | ||
879 | # | 894 | # |
@@ -881,10 +896,6 @@ CONFIG_HWMON=y | |||
881 | # | 896 | # |
882 | 897 | ||
883 | # | 898 | # |
884 | # Multimedia Capabilities Port drivers | ||
885 | # | ||
886 | |||
887 | # | ||
888 | # Multimedia devices | 899 | # Multimedia devices |
889 | # | 900 | # |
890 | # CONFIG_VIDEO_DEV is not set | 901 | # CONFIG_VIDEO_DEV is not set |
@@ -893,6 +904,7 @@ CONFIG_HWMON=y | |||
893 | # Digital Video Broadcasting Devices | 904 | # Digital Video Broadcasting Devices |
894 | # | 905 | # |
895 | # CONFIG_DVB is not set | 906 | # CONFIG_DVB is not set |
907 | # CONFIG_USB_DABUSB is not set | ||
896 | 908 | ||
897 | # | 909 | # |
898 | # Graphics support | 910 | # Graphics support |
@@ -902,6 +914,7 @@ CONFIG_FB_CFB_FILLRECT=y | |||
902 | CONFIG_FB_CFB_COPYAREA=y | 914 | CONFIG_FB_CFB_COPYAREA=y |
903 | CONFIG_FB_CFB_IMAGEBLIT=y | 915 | CONFIG_FB_CFB_IMAGEBLIT=y |
904 | # CONFIG_FB_MACMODES is not set | 916 | # CONFIG_FB_MACMODES is not set |
917 | CONFIG_FB_FIRMWARE_EDID=y | ||
905 | # CONFIG_FB_MODE_HELPERS is not set | 918 | # CONFIG_FB_MODE_HELPERS is not set |
906 | # CONFIG_FB_TILEBLITTING is not set | 919 | # CONFIG_FB_TILEBLITTING is not set |
907 | # CONFIG_FB_CIRRUS is not set | 920 | # CONFIG_FB_CIRRUS is not set |
@@ -913,7 +926,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
913 | # CONFIG_FB_NVIDIA is not set | 926 | # CONFIG_FB_NVIDIA is not set |
914 | # CONFIG_FB_RIVA is not set | 927 | # CONFIG_FB_RIVA is not set |
915 | # CONFIG_FB_MATROX is not set | 928 | # CONFIG_FB_MATROX is not set |
916 | # CONFIG_FB_RADEON_OLD is not set | ||
917 | # CONFIG_FB_RADEON is not set | 929 | # CONFIG_FB_RADEON is not set |
918 | # CONFIG_FB_ATY128 is not set | 930 | # CONFIG_FB_ATY128 is not set |
919 | CONFIG_FB_ATY=y | 931 | CONFIG_FB_ATY=y |
@@ -934,6 +946,7 @@ CONFIG_FB_ATY_CT=y | |||
934 | # Console display driver support | 946 | # Console display driver support |
935 | # | 947 | # |
936 | CONFIG_VGA_CONSOLE=y | 948 | CONFIG_VGA_CONSOLE=y |
949 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
937 | # CONFIG_MDA_CONSOLE is not set | 950 | # CONFIG_MDA_CONSOLE is not set |
938 | CONFIG_DUMMY_CONSOLE=y | 951 | CONFIG_DUMMY_CONSOLE=y |
939 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | 952 | # CONFIG_FRAMEBUFFER_CONSOLE is not set |
@@ -954,6 +967,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
954 | # | 967 | # |
955 | CONFIG_USB_ARCH_HAS_HCD=y | 968 | CONFIG_USB_ARCH_HAS_HCD=y |
956 | CONFIG_USB_ARCH_HAS_OHCI=y | 969 | CONFIG_USB_ARCH_HAS_OHCI=y |
970 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
957 | CONFIG_USB=y | 971 | CONFIG_USB=y |
958 | # CONFIG_USB_DEBUG is not set | 972 | # CONFIG_USB_DEBUG is not set |
959 | 973 | ||
@@ -1003,9 +1017,7 @@ CONFIG_USB_HIDDEV=y | |||
1003 | # CONFIG_USB_ACECAD is not set | 1017 | # CONFIG_USB_ACECAD is not set |
1004 | # CONFIG_USB_KBTAB is not set | 1018 | # CONFIG_USB_KBTAB is not set |
1005 | # CONFIG_USB_POWERMATE is not set | 1019 | # CONFIG_USB_POWERMATE is not set |
1006 | # CONFIG_USB_MTOUCH is not set | 1020 | # CONFIG_USB_TOUCHSCREEN is not set |
1007 | # CONFIG_USB_ITMTOUCH is not set | ||
1008 | # CONFIG_USB_EGALAX is not set | ||
1009 | CONFIG_USB_YEALINK=m | 1021 | CONFIG_USB_YEALINK=m |
1010 | # CONFIG_USB_XPAD is not set | 1022 | # CONFIG_USB_XPAD is not set |
1011 | # CONFIG_USB_ATI_REMOTE is not set | 1023 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -1019,15 +1031,6 @@ CONFIG_USB_YEALINK=m | |||
1019 | # CONFIG_USB_MDC800 is not set | 1031 | # CONFIG_USB_MDC800 is not set |
1020 | 1032 | ||
1021 | # | 1033 | # |
1022 | # USB Multimedia devices | ||
1023 | # | ||
1024 | # CONFIG_USB_DABUSB is not set | ||
1025 | |||
1026 | # | ||
1027 | # Video4Linux support is needed for USB Multimedia device support | ||
1028 | # | ||
1029 | |||
1030 | # | ||
1031 | # USB Network Adapters | 1034 | # USB Network Adapters |
1032 | # | 1035 | # |
1033 | # CONFIG_USB_CATC is not set | 1036 | # CONFIG_USB_CATC is not set |
@@ -1078,13 +1081,31 @@ CONFIG_USB_MON=y | |||
1078 | # CONFIG_MMC is not set | 1081 | # CONFIG_MMC is not set |
1079 | 1082 | ||
1080 | # | 1083 | # |
1084 | # LED devices | ||
1085 | # | ||
1086 | # CONFIG_NEW_LEDS is not set | ||
1087 | |||
1088 | # | ||
1089 | # LED drivers | ||
1090 | # | ||
1091 | |||
1092 | # | ||
1093 | # LED Triggers | ||
1094 | # | ||
1095 | |||
1096 | # | ||
1081 | # InfiniBand support | 1097 | # InfiniBand support |
1082 | # | 1098 | # |
1083 | # CONFIG_INFINIBAND is not set | 1099 | # CONFIG_INFINIBAND is not set |
1084 | 1100 | ||
1085 | # | 1101 | # |
1086 | # SN Devices | 1102 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1103 | # | ||
1104 | |||
1105 | # | ||
1106 | # Real Time Clock | ||
1087 | # | 1107 | # |
1108 | # CONFIG_RTC_CLASS is not set | ||
1088 | 1109 | ||
1089 | # | 1110 | # |
1090 | # File systems | 1111 | # File systems |
@@ -1148,7 +1169,6 @@ CONFIG_SYSFS=y | |||
1148 | CONFIG_TMPFS=y | 1169 | CONFIG_TMPFS=y |
1149 | # CONFIG_HUGETLB_PAGE is not set | 1170 | # CONFIG_HUGETLB_PAGE is not set |
1150 | CONFIG_RAMFS=y | 1171 | CONFIG_RAMFS=y |
1151 | CONFIG_RELAYFS_FS=m | ||
1152 | # CONFIG_CONFIGFS_FS is not set | 1172 | # CONFIG_CONFIGFS_FS is not set |
1153 | 1173 | ||
1154 | # | 1174 | # |
@@ -1266,6 +1286,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1266 | # CONFIG_MAGIC_SYSRQ is not set | 1286 | # CONFIG_MAGIC_SYSRQ is not set |
1267 | # CONFIG_DEBUG_KERNEL is not set | 1287 | # CONFIG_DEBUG_KERNEL is not set |
1268 | CONFIG_LOG_BUF_SHIFT=14 | 1288 | CONFIG_LOG_BUF_SHIFT=14 |
1289 | # CONFIG_DEBUG_FS is not set | ||
1269 | CONFIG_CROSSCOMPILE=y | 1290 | CONFIG_CROSSCOMPILE=y |
1270 | CONFIG_CMDLINE="" | 1291 | CONFIG_CMDLINE="" |
1271 | 1292 | ||
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig index 463ed3dbf6ae..edfb9679a25a 100644 --- a/arch/mips/configs/rm200_defconfig +++ b/arch/mips/configs/rm200_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:31 2006 | 4 | # Mon Apr 24 14:51:16 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_SNI_RM200_PCI=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_ARC=y | 70 | CONFIG_ARC=y |
69 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 71 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
@@ -122,7 +124,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
122 | # CONFIG_PAGE_SIZE_64KB is not set | 124 | # CONFIG_PAGE_SIZE_64KB is not set |
123 | # CONFIG_MIPS_MT is not set | 125 | # CONFIG_MIPS_MT is not set |
124 | # CONFIG_64BIT_PHYS_ADDR is not set | 126 | # CONFIG_64BIT_PHYS_ADDR is not set |
125 | # CONFIG_CPU_ADVANCED is not set | ||
126 | CONFIG_CPU_HAS_LLSC=y | 127 | CONFIG_CPU_HAS_LLSC=y |
127 | CONFIG_CPU_HAS_SYNC=y | 128 | CONFIG_CPU_HAS_SYNC=y |
128 | CONFIG_GENERIC_HARDIRQS=y | 129 | CONFIG_GENERIC_HARDIRQS=y |
@@ -145,7 +146,6 @@ CONFIG_PREEMPT_VOLUNTARY=y | |||
145 | # Code maturity level options | 146 | # Code maturity level options |
146 | # | 147 | # |
147 | CONFIG_EXPERIMENTAL=y | 148 | CONFIG_EXPERIMENTAL=y |
148 | CONFIG_CLEAN_COMPILE=y | ||
149 | CONFIG_BROKEN_ON_SMP=y | 149 | CONFIG_BROKEN_ON_SMP=y |
150 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 150 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
151 | 151 | ||
@@ -163,6 +163,7 @@ CONFIG_SYSCTL=y | |||
163 | # CONFIG_AUDIT is not set | 163 | # CONFIG_AUDIT is not set |
164 | CONFIG_IKCONFIG=y | 164 | CONFIG_IKCONFIG=y |
165 | CONFIG_IKCONFIG_PROC=y | 165 | CONFIG_IKCONFIG_PROC=y |
166 | CONFIG_RELAY=y | ||
166 | CONFIG_INITRAMFS_SOURCE="" | 167 | CONFIG_INITRAMFS_SOURCE="" |
167 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 168 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
168 | CONFIG_EMBEDDED=y | 169 | CONFIG_EMBEDDED=y |
@@ -176,10 +177,6 @@ CONFIG_BASE_FULL=y | |||
176 | CONFIG_FUTEX=y | 177 | CONFIG_FUTEX=y |
177 | CONFIG_EPOLL=y | 178 | CONFIG_EPOLL=y |
178 | CONFIG_SHMEM=y | 179 | CONFIG_SHMEM=y |
179 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
180 | CONFIG_CC_ALIGN_LABELS=0 | ||
181 | CONFIG_CC_ALIGN_LOOPS=0 | ||
182 | CONFIG_CC_ALIGN_JUMPS=0 | ||
183 | CONFIG_SLAB=y | 180 | CONFIG_SLAB=y |
184 | # CONFIG_TINY_SHMEM is not set | 181 | # CONFIG_TINY_SHMEM is not set |
185 | CONFIG_BASE_SMALL=0 | 182 | CONFIG_BASE_SMALL=0 |
@@ -191,7 +188,6 @@ CONFIG_BASE_SMALL=0 | |||
191 | CONFIG_MODULES=y | 188 | CONFIG_MODULES=y |
192 | CONFIG_MODULE_UNLOAD=y | 189 | CONFIG_MODULE_UNLOAD=y |
193 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 190 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
194 | CONFIG_OBSOLETE_MODPARM=y | ||
195 | CONFIG_MODVERSIONS=y | 191 | CONFIG_MODVERSIONS=y |
196 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 192 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
197 | CONFIG_KMOD=y | 193 | CONFIG_KMOD=y |
@@ -200,6 +196,8 @@ CONFIG_KMOD=y | |||
200 | # Block layer | 196 | # Block layer |
201 | # | 197 | # |
202 | # CONFIG_LBD is not set | 198 | # CONFIG_LBD is not set |
199 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
200 | # CONFIG_LSF is not set | ||
203 | 201 | ||
204 | # | 202 | # |
205 | # IO Schedulers | 203 | # IO Schedulers |
@@ -220,10 +218,10 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
220 | CONFIG_HW_HAS_EISA=y | 218 | CONFIG_HW_HAS_EISA=y |
221 | CONFIG_HW_HAS_PCI=y | 219 | CONFIG_HW_HAS_PCI=y |
222 | CONFIG_PCI=y | 220 | CONFIG_PCI=y |
223 | CONFIG_PCI_LEGACY_PROC=y | ||
224 | CONFIG_ISA=y | 221 | CONFIG_ISA=y |
225 | # CONFIG_EISA is not set | 222 | # CONFIG_EISA is not set |
226 | CONFIG_MMU=y | 223 | CONFIG_MMU=y |
224 | CONFIG_I8253=y | ||
227 | 225 | ||
228 | # | 226 | # |
229 | # PCCARD (PCMCIA/CardBus) support | 227 | # PCCARD (PCMCIA/CardBus) support |
@@ -250,6 +248,7 @@ CONFIG_NET=y | |||
250 | # | 248 | # |
251 | # Networking options | 249 | # Networking options |
252 | # | 250 | # |
251 | # CONFIG_NETDEBUG is not set | ||
253 | CONFIG_PACKET=m | 252 | CONFIG_PACKET=m |
254 | CONFIG_PACKET_MMAP=y | 253 | CONFIG_PACKET_MMAP=y |
255 | CONFIG_UNIX=y | 254 | CONFIG_UNIX=y |
@@ -272,6 +271,7 @@ CONFIG_IP_PIMSM_V2=y | |||
272 | # CONFIG_INET_AH is not set | 271 | # CONFIG_INET_AH is not set |
273 | # CONFIG_INET_ESP is not set | 272 | # CONFIG_INET_ESP is not set |
274 | # CONFIG_INET_IPCOMP is not set | 273 | # CONFIG_INET_IPCOMP is not set |
274 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
275 | CONFIG_INET_TUNNEL=m | 275 | CONFIG_INET_TUNNEL=m |
276 | CONFIG_INET_DIAG=y | 276 | CONFIG_INET_DIAG=y |
277 | CONFIG_INET_TCP_DIAG=y | 277 | CONFIG_INET_TCP_DIAG=y |
@@ -284,9 +284,12 @@ CONFIG_TCP_CONG_BIC=y | |||
284 | # CONFIG_IP_VS is not set | 284 | # CONFIG_IP_VS is not set |
285 | CONFIG_IPV6=m | 285 | CONFIG_IPV6=m |
286 | CONFIG_IPV6_PRIVACY=y | 286 | CONFIG_IPV6_PRIVACY=y |
287 | CONFIG_IPV6_ROUTER_PREF=y | ||
288 | CONFIG_IPV6_ROUTE_INFO=y | ||
287 | CONFIG_INET6_AH=m | 289 | CONFIG_INET6_AH=m |
288 | CONFIG_INET6_ESP=m | 290 | CONFIG_INET6_ESP=m |
289 | CONFIG_INET6_IPCOMP=m | 291 | CONFIG_INET6_IPCOMP=m |
292 | CONFIG_INET6_XFRM_TUNNEL=m | ||
290 | CONFIG_INET6_TUNNEL=m | 293 | CONFIG_INET6_TUNNEL=m |
291 | CONFIG_IPV6_TUNNEL=m | 294 | CONFIG_IPV6_TUNNEL=m |
292 | CONFIG_NETFILTER=y | 295 | CONFIG_NETFILTER=y |
@@ -309,11 +312,14 @@ CONFIG_NETFILTER_XT_MATCH_COMMENT=m | |||
309 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 312 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
310 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 313 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
311 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 314 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
315 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
312 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 316 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
313 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 317 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
314 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 318 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
315 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 319 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
316 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 320 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
321 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
322 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
317 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m | 323 | CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m |
318 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 324 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
319 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 325 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
@@ -337,20 +343,19 @@ CONFIG_IP_NF_IRC=m | |||
337 | CONFIG_IP_NF_TFTP=m | 343 | CONFIG_IP_NF_TFTP=m |
338 | CONFIG_IP_NF_AMANDA=m | 344 | CONFIG_IP_NF_AMANDA=m |
339 | CONFIG_IP_NF_PPTP=m | 345 | CONFIG_IP_NF_PPTP=m |
346 | CONFIG_IP_NF_H323=m | ||
340 | CONFIG_IP_NF_QUEUE=m | 347 | CONFIG_IP_NF_QUEUE=m |
341 | CONFIG_IP_NF_IPTABLES=m | 348 | CONFIG_IP_NF_IPTABLES=m |
342 | CONFIG_IP_NF_MATCH_IPRANGE=m | 349 | CONFIG_IP_NF_MATCH_IPRANGE=m |
343 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
344 | CONFIG_IP_NF_MATCH_TOS=m | 350 | CONFIG_IP_NF_MATCH_TOS=m |
345 | CONFIG_IP_NF_MATCH_RECENT=m | 351 | CONFIG_IP_NF_MATCH_RECENT=m |
346 | CONFIG_IP_NF_MATCH_ECN=m | 352 | CONFIG_IP_NF_MATCH_ECN=m |
347 | CONFIG_IP_NF_MATCH_DSCP=m | 353 | CONFIG_IP_NF_MATCH_DSCP=m |
348 | CONFIG_IP_NF_MATCH_AH_ESP=m | 354 | CONFIG_IP_NF_MATCH_AH=m |
349 | CONFIG_IP_NF_MATCH_TTL=m | 355 | CONFIG_IP_NF_MATCH_TTL=m |
350 | CONFIG_IP_NF_MATCH_OWNER=m | 356 | CONFIG_IP_NF_MATCH_OWNER=m |
351 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 357 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
352 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 358 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
353 | CONFIG_IP_NF_MATCH_POLICY=m | ||
354 | CONFIG_IP_NF_FILTER=m | 359 | CONFIG_IP_NF_FILTER=m |
355 | CONFIG_IP_NF_TARGET_REJECT=m | 360 | CONFIG_IP_NF_TARGET_REJECT=m |
356 | CONFIG_IP_NF_TARGET_LOG=m | 361 | CONFIG_IP_NF_TARGET_LOG=m |
@@ -368,6 +373,7 @@ CONFIG_IP_NF_NAT_FTP=m | |||
368 | CONFIG_IP_NF_NAT_TFTP=m | 373 | CONFIG_IP_NF_NAT_TFTP=m |
369 | CONFIG_IP_NF_NAT_AMANDA=m | 374 | CONFIG_IP_NF_NAT_AMANDA=m |
370 | CONFIG_IP_NF_NAT_PPTP=m | 375 | CONFIG_IP_NF_NAT_PPTP=m |
376 | CONFIG_IP_NF_NAT_H323=m | ||
371 | CONFIG_IP_NF_MANGLE=m | 377 | CONFIG_IP_NF_MANGLE=m |
372 | CONFIG_IP_NF_TARGET_TOS=m | 378 | CONFIG_IP_NF_TARGET_TOS=m |
373 | CONFIG_IP_NF_TARGET_ECN=m | 379 | CONFIG_IP_NF_TARGET_ECN=m |
@@ -388,12 +394,10 @@ CONFIG_IP6_NF_MATCH_RT=m | |||
388 | CONFIG_IP6_NF_MATCH_OPTS=m | 394 | CONFIG_IP6_NF_MATCH_OPTS=m |
389 | CONFIG_IP6_NF_MATCH_FRAG=m | 395 | CONFIG_IP6_NF_MATCH_FRAG=m |
390 | CONFIG_IP6_NF_MATCH_HL=m | 396 | CONFIG_IP6_NF_MATCH_HL=m |
391 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
392 | CONFIG_IP6_NF_MATCH_OWNER=m | 397 | CONFIG_IP6_NF_MATCH_OWNER=m |
393 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 398 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
394 | CONFIG_IP6_NF_MATCH_AHESP=m | 399 | CONFIG_IP6_NF_MATCH_AH=m |
395 | CONFIG_IP6_NF_MATCH_EUI64=m | 400 | CONFIG_IP6_NF_MATCH_EUI64=m |
396 | CONFIG_IP6_NF_MATCH_POLICY=m | ||
397 | CONFIG_IP6_NF_FILTER=m | 401 | CONFIG_IP6_NF_FILTER=m |
398 | CONFIG_IP6_NF_TARGET_LOG=m | 402 | CONFIG_IP6_NF_TARGET_LOG=m |
399 | CONFIG_IP6_NF_TARGET_REJECT=m | 403 | CONFIG_IP6_NF_TARGET_REJECT=m |
@@ -439,21 +443,22 @@ CONFIG_BRIDGE_EBT_ULOG=m | |||
439 | # SCTP Configuration (EXPERIMENTAL) | 443 | # SCTP Configuration (EXPERIMENTAL) |
440 | # | 444 | # |
441 | # CONFIG_IP_SCTP is not set | 445 | # CONFIG_IP_SCTP is not set |
446 | |||
447 | # | ||
448 | # TIPC Configuration (EXPERIMENTAL) | ||
449 | # | ||
450 | # CONFIG_TIPC is not set | ||
442 | # CONFIG_ATM is not set | 451 | # CONFIG_ATM is not set |
443 | CONFIG_BRIDGE=m | 452 | CONFIG_BRIDGE=m |
444 | # CONFIG_VLAN_8021Q is not set | 453 | # CONFIG_VLAN_8021Q is not set |
445 | CONFIG_DECNET=m | 454 | CONFIG_DECNET=m |
446 | # CONFIG_DECNET_ROUTER is not set | 455 | # CONFIG_DECNET_ROUTER is not set |
456 | CONFIG_LLC=m | ||
447 | # CONFIG_LLC2 is not set | 457 | # CONFIG_LLC2 is not set |
448 | # CONFIG_IPX is not set | 458 | # CONFIG_IPX is not set |
449 | # CONFIG_ATALK is not set | 459 | # CONFIG_ATALK is not set |
450 | # CONFIG_X25 is not set | 460 | # CONFIG_X25 is not set |
451 | # CONFIG_LAPB is not set | 461 | # CONFIG_LAPB is not set |
452 | |||
453 | # | ||
454 | # TIPC Configuration (EXPERIMENTAL) | ||
455 | # | ||
456 | # CONFIG_TIPC is not set | ||
457 | # CONFIG_NET_DIVERT is not set | 462 | # CONFIG_NET_DIVERT is not set |
458 | # CONFIG_ECONET is not set | 463 | # CONFIG_ECONET is not set |
459 | # CONFIG_WAN_ROUTER is not set | 464 | # CONFIG_WAN_ROUTER is not set |
@@ -533,6 +538,9 @@ CONFIG_IEEE80211=m | |||
533 | # CONFIG_IEEE80211_DEBUG is not set | 538 | # CONFIG_IEEE80211_DEBUG is not set |
534 | CONFIG_IEEE80211_CRYPT_WEP=m | 539 | CONFIG_IEEE80211_CRYPT_WEP=m |
535 | CONFIG_IEEE80211_CRYPT_CCMP=m | 540 | CONFIG_IEEE80211_CRYPT_CCMP=m |
541 | CONFIG_IEEE80211_SOFTMAC=m | ||
542 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
543 | CONFIG_WIRELESS_EXT=y | ||
536 | 544 | ||
537 | # | 545 | # |
538 | # Device Drivers | 546 | # Device Drivers |
@@ -620,6 +628,7 @@ CONFIG_BLK_DEV_UB=m | |||
620 | CONFIG_BLK_DEV_RAM=m | 628 | CONFIG_BLK_DEV_RAM=m |
621 | CONFIG_BLK_DEV_RAM_COUNT=16 | 629 | CONFIG_BLK_DEV_RAM_COUNT=16 |
622 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 630 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
631 | # CONFIG_BLK_DEV_INITRD is not set | ||
623 | CONFIG_CDROM_PKTCDVD=m | 632 | CONFIG_CDROM_PKTCDVD=m |
624 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 633 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
625 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 634 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -700,12 +709,11 @@ CONFIG_SCSI_SYM53C8XX_2=y | |||
700 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 | 709 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 |
701 | CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | 710 | CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 |
702 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 711 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
703 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 712 | CONFIG_SCSI_SYM53C8XX_MMIO=y |
704 | # CONFIG_SCSI_IPR is not set | 713 | # CONFIG_SCSI_IPR is not set |
705 | # CONFIG_SCSI_PAS16 is not set | 714 | # CONFIG_SCSI_PAS16 is not set |
706 | # CONFIG_SCSI_PSI240I is not set | 715 | # CONFIG_SCSI_PSI240I is not set |
707 | # CONFIG_SCSI_QLOGIC_FAS is not set | 716 | # CONFIG_SCSI_QLOGIC_FAS is not set |
708 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
709 | # CONFIG_SCSI_QLOGIC_1280 is not set | 717 | # CONFIG_SCSI_QLOGIC_1280 is not set |
710 | # CONFIG_SCSI_QLA_FC is not set | 718 | # CONFIG_SCSI_QLA_FC is not set |
711 | # CONFIG_SCSI_LPFC is not set | 719 | # CONFIG_SCSI_LPFC is not set |
@@ -731,6 +739,7 @@ CONFIG_MD_RAID0=m | |||
731 | CONFIG_MD_RAID1=m | 739 | CONFIG_MD_RAID1=m |
732 | CONFIG_MD_RAID10=m | 740 | CONFIG_MD_RAID10=m |
733 | CONFIG_MD_RAID5=m | 741 | CONFIG_MD_RAID5=m |
742 | CONFIG_MD_RAID5_RESHAPE=y | ||
734 | # CONFIG_MD_RAID6 is not set | 743 | # CONFIG_MD_RAID6 is not set |
735 | CONFIG_MD_MULTIPATH=m | 744 | CONFIG_MD_MULTIPATH=m |
736 | CONFIG_MD_FAULTY=m | 745 | CONFIG_MD_FAULTY=m |
@@ -965,6 +974,7 @@ CONFIG_HW_CONSOLE=y | |||
965 | # Serial drivers | 974 | # Serial drivers |
966 | # | 975 | # |
967 | CONFIG_SERIAL_8250=m | 976 | CONFIG_SERIAL_8250=m |
977 | CONFIG_SERIAL_8250_PCI=m | ||
968 | CONFIG_SERIAL_8250_NR_UARTS=4 | 978 | CONFIG_SERIAL_8250_NR_UARTS=4 |
969 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 979 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
970 | CONFIG_SERIAL_8250_EXTENDED=y | 980 | CONFIG_SERIAL_8250_EXTENDED=y |
@@ -977,6 +987,7 @@ CONFIG_SERIAL_8250_RSA=y | |||
977 | # Non-8250 serial port support | 987 | # Non-8250 serial port support |
978 | # | 988 | # |
979 | CONFIG_SERIAL_CORE=m | 989 | CONFIG_SERIAL_CORE=m |
990 | # CONFIG_SERIAL_JSM is not set | ||
980 | CONFIG_UNIX98_PTYS=y | 991 | CONFIG_UNIX98_PTYS=y |
981 | CONFIG_LEGACY_PTYS=y | 992 | CONFIG_LEGACY_PTYS=y |
982 | CONFIG_LEGACY_PTY_COUNT=256 | 993 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -1027,12 +1038,19 @@ CONFIG_RTC=m | |||
1027 | # Dallas's 1-wire bus | 1038 | # Dallas's 1-wire bus |
1028 | # | 1039 | # |
1029 | CONFIG_W1=m | 1040 | CONFIG_W1=m |
1030 | CONFIG_W1_MATROX=m | 1041 | |
1031 | CONFIG_W1_DS9490=m | 1042 | # |
1032 | # CONFIG_W1_DS9490_BRIDGE is not set | 1043 | # 1-wire Bus Masters |
1033 | CONFIG_W1_THERM=m | 1044 | # |
1034 | CONFIG_W1_SMEM=m | 1045 | # CONFIG_W1_MASTER_MATROX is not set |
1035 | # CONFIG_W1_DS2433 is not set | 1046 | # CONFIG_W1_MASTER_DS9490 is not set |
1047 | |||
1048 | # | ||
1049 | # 1-wire Slaves | ||
1050 | # | ||
1051 | # CONFIG_W1_SLAVE_THERM is not set | ||
1052 | # CONFIG_W1_SLAVE_SMEM is not set | ||
1053 | # CONFIG_W1_SLAVE_DS2433 is not set | ||
1036 | 1054 | ||
1037 | # | 1055 | # |
1038 | # Hardware Monitoring support | 1056 | # Hardware Monitoring support |
@@ -1045,10 +1063,6 @@ CONFIG_W1_SMEM=m | |||
1045 | # | 1063 | # |
1046 | 1064 | ||
1047 | # | 1065 | # |
1048 | # Multimedia Capabilities Port drivers | ||
1049 | # | ||
1050 | |||
1051 | # | ||
1052 | # Multimedia devices | 1066 | # Multimedia devices |
1053 | # | 1067 | # |
1054 | # CONFIG_VIDEO_DEV is not set | 1068 | # CONFIG_VIDEO_DEV is not set |
@@ -1057,6 +1071,7 @@ CONFIG_W1_SMEM=m | |||
1057 | # Digital Video Broadcasting Devices | 1071 | # Digital Video Broadcasting Devices |
1058 | # | 1072 | # |
1059 | # CONFIG_DVB is not set | 1073 | # CONFIG_DVB is not set |
1074 | CONFIG_USB_DABUSB=m | ||
1060 | 1075 | ||
1061 | # | 1076 | # |
1062 | # Graphics support | 1077 | # Graphics support |
@@ -1067,6 +1082,7 @@ CONFIG_W1_SMEM=m | |||
1067 | # Console display driver support | 1082 | # Console display driver support |
1068 | # | 1083 | # |
1069 | CONFIG_VGA_CONSOLE=y | 1084 | CONFIG_VGA_CONSOLE=y |
1085 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
1070 | # CONFIG_MDA_CONSOLE is not set | 1086 | # CONFIG_MDA_CONSOLE is not set |
1071 | CONFIG_DUMMY_CONSOLE=y | 1087 | CONFIG_DUMMY_CONSOLE=y |
1072 | 1088 | ||
@@ -1080,6 +1096,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
1080 | # | 1096 | # |
1081 | CONFIG_USB_ARCH_HAS_HCD=y | 1097 | CONFIG_USB_ARCH_HAS_HCD=y |
1082 | CONFIG_USB_ARCH_HAS_OHCI=y | 1098 | CONFIG_USB_ARCH_HAS_OHCI=y |
1099 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
1083 | CONFIG_USB=m | 1100 | CONFIG_USB=m |
1084 | # CONFIG_USB_DEBUG is not set | 1101 | # CONFIG_USB_DEBUG is not set |
1085 | 1102 | ||
@@ -1151,9 +1168,7 @@ CONFIG_USB_WACOM=m | |||
1151 | # CONFIG_USB_ACECAD is not set | 1168 | # CONFIG_USB_ACECAD is not set |
1152 | CONFIG_USB_KBTAB=m | 1169 | CONFIG_USB_KBTAB=m |
1153 | CONFIG_USB_POWERMATE=m | 1170 | CONFIG_USB_POWERMATE=m |
1154 | # CONFIG_USB_MTOUCH is not set | 1171 | # CONFIG_USB_TOUCHSCREEN is not set |
1155 | # CONFIG_USB_ITMTOUCH is not set | ||
1156 | CONFIG_USB_EGALAX=m | ||
1157 | CONFIG_USB_YEALINK=m | 1172 | CONFIG_USB_YEALINK=m |
1158 | CONFIG_USB_XPAD=m | 1173 | CONFIG_USB_XPAD=m |
1159 | # CONFIG_USB_ATI_REMOTE is not set | 1174 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -1168,15 +1183,6 @@ CONFIG_USB_MDC800=m | |||
1168 | CONFIG_USB_MICROTEK=m | 1183 | CONFIG_USB_MICROTEK=m |
1169 | 1184 | ||
1170 | # | 1185 | # |
1171 | # USB Multimedia devices | ||
1172 | # | ||
1173 | CONFIG_USB_DABUSB=m | ||
1174 | |||
1175 | # | ||
1176 | # Video4Linux support is needed for USB Multimedia device support | ||
1177 | # | ||
1178 | |||
1179 | # | ||
1180 | # USB Network Adapters | 1186 | # USB Network Adapters |
1181 | # | 1187 | # |
1182 | CONFIG_USB_CATC=m | 1188 | CONFIG_USB_CATC=m |
@@ -1213,6 +1219,7 @@ CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | |||
1213 | CONFIG_USB_SERIAL_CYPRESS_M8=m | 1219 | CONFIG_USB_SERIAL_CYPRESS_M8=m |
1214 | CONFIG_USB_SERIAL_EMPEG=m | 1220 | CONFIG_USB_SERIAL_EMPEG=m |
1215 | CONFIG_USB_SERIAL_FTDI_SIO=m | 1221 | CONFIG_USB_SERIAL_FTDI_SIO=m |
1222 | # CONFIG_USB_SERIAL_FUNSOFT is not set | ||
1216 | CONFIG_USB_SERIAL_VISOR=m | 1223 | CONFIG_USB_SERIAL_VISOR=m |
1217 | CONFIG_USB_SERIAL_IPAQ=m | 1224 | CONFIG_USB_SERIAL_IPAQ=m |
1218 | CONFIG_USB_SERIAL_IR=m | 1225 | CONFIG_USB_SERIAL_IR=m |
@@ -1237,6 +1244,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y | |||
1237 | CONFIG_USB_SERIAL_KLSI=m | 1244 | CONFIG_USB_SERIAL_KLSI=m |
1238 | CONFIG_USB_SERIAL_KOBIL_SCT=m | 1245 | CONFIG_USB_SERIAL_KOBIL_SCT=m |
1239 | CONFIG_USB_SERIAL_MCT_U232=m | 1246 | CONFIG_USB_SERIAL_MCT_U232=m |
1247 | # CONFIG_USB_SERIAL_NAVMAN is not set | ||
1240 | CONFIG_USB_SERIAL_PL2303=m | 1248 | CONFIG_USB_SERIAL_PL2303=m |
1241 | CONFIG_USB_SERIAL_HP4X=m | 1249 | CONFIG_USB_SERIAL_HP4X=m |
1242 | CONFIG_USB_SERIAL_SAFE=m | 1250 | CONFIG_USB_SERIAL_SAFE=m |
@@ -1281,13 +1289,31 @@ CONFIG_USB_TEST=m | |||
1281 | # CONFIG_MMC is not set | 1289 | # CONFIG_MMC is not set |
1282 | 1290 | ||
1283 | # | 1291 | # |
1292 | # LED devices | ||
1293 | # | ||
1294 | # CONFIG_NEW_LEDS is not set | ||
1295 | |||
1296 | # | ||
1297 | # LED drivers | ||
1298 | # | ||
1299 | |||
1300 | # | ||
1301 | # LED Triggers | ||
1302 | # | ||
1303 | |||
1304 | # | ||
1284 | # InfiniBand support | 1305 | # InfiniBand support |
1285 | # | 1306 | # |
1286 | # CONFIG_INFINIBAND is not set | 1307 | # CONFIG_INFINIBAND is not set |
1287 | 1308 | ||
1288 | # | 1309 | # |
1289 | # SN Devices | 1310 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
1311 | # | ||
1312 | |||
1313 | # | ||
1314 | # Real Time Clock | ||
1290 | # | 1315 | # |
1316 | # CONFIG_RTC_CLASS is not set | ||
1291 | 1317 | ||
1292 | # | 1318 | # |
1293 | # File systems | 1319 | # File systems |
@@ -1358,7 +1384,6 @@ CONFIG_SYSFS=y | |||
1358 | # CONFIG_TMPFS is not set | 1384 | # CONFIG_TMPFS is not set |
1359 | # CONFIG_HUGETLB_PAGE is not set | 1385 | # CONFIG_HUGETLB_PAGE is not set |
1360 | CONFIG_RAMFS=y | 1386 | CONFIG_RAMFS=y |
1361 | CONFIG_RELAYFS_FS=m | ||
1362 | # CONFIG_CONFIGFS_FS is not set | 1387 | # CONFIG_CONFIGFS_FS is not set |
1363 | 1388 | ||
1364 | # | 1389 | # |
@@ -1379,7 +1404,6 @@ CONFIG_HPFS_FS=m | |||
1379 | CONFIG_QNX4FS_FS=m | 1404 | CONFIG_QNX4FS_FS=m |
1380 | CONFIG_SYSV_FS=m | 1405 | CONFIG_SYSV_FS=m |
1381 | CONFIG_UFS_FS=m | 1406 | CONFIG_UFS_FS=m |
1382 | # CONFIG_UFS_FS_WRITE is not set | ||
1383 | 1407 | ||
1384 | # | 1408 | # |
1385 | # Network File Systems | 1409 | # Network File Systems |
@@ -1500,6 +1524,7 @@ CONFIG_NLS_UTF8=m | |||
1500 | # CONFIG_MAGIC_SYSRQ is not set | 1524 | # CONFIG_MAGIC_SYSRQ is not set |
1501 | # CONFIG_DEBUG_KERNEL is not set | 1525 | # CONFIG_DEBUG_KERNEL is not set |
1502 | CONFIG_LOG_BUF_SHIFT=14 | 1526 | CONFIG_LOG_BUF_SHIFT=14 |
1527 | # CONFIG_DEBUG_FS is not set | ||
1503 | CONFIG_CROSSCOMPILE=y | 1528 | CONFIG_CROSSCOMPILE=y |
1504 | CONFIG_CMDLINE="" | 1529 | CONFIG_CMDLINE="" |
1505 | 1530 | ||
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig index da68c3f72050..e388a3dae0a9 100644 --- a/arch/mips/configs/sb1250-swarm_defconfig +++ b/arch/mips/configs/sb1250-swarm_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:32 2006 | 4 | # Mon Apr 24 14:51:17 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -81,6 +81,8 @@ CONFIG_SIBYTE_CFE=y | |||
81 | # CONFIG_SIBYTE_SB1250_PROF is not set | 81 | # CONFIG_SIBYTE_SB1250_PROF is not set |
82 | # CONFIG_SIBYTE_TBPROF is not set | 82 | # CONFIG_SIBYTE_TBPROF is not set |
83 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 83 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
84 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
85 | CONFIG_GENERIC_HWEIGHT=y | ||
84 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 86 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
85 | CONFIG_DMA_COHERENT=y | 87 | CONFIG_DMA_COHERENT=y |
86 | CONFIG_CPU_BIG_ENDIAN=y | 88 | CONFIG_CPU_BIG_ENDIAN=y |
@@ -158,7 +160,6 @@ CONFIG_PREEMPT_BKL=y | |||
158 | # Code maturity level options | 160 | # Code maturity level options |
159 | # | 161 | # |
160 | CONFIG_EXPERIMENTAL=y | 162 | CONFIG_EXPERIMENTAL=y |
161 | CONFIG_CLEAN_COMPILE=y | ||
162 | CONFIG_LOCK_KERNEL=y | 163 | CONFIG_LOCK_KERNEL=y |
163 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 164 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
164 | 165 | ||
@@ -175,6 +176,7 @@ CONFIG_SYSCTL=y | |||
175 | # CONFIG_AUDIT is not set | 176 | # CONFIG_AUDIT is not set |
176 | # CONFIG_IKCONFIG is not set | 177 | # CONFIG_IKCONFIG is not set |
177 | CONFIG_CPUSETS=y | 178 | CONFIG_CPUSETS=y |
179 | CONFIG_RELAY=y | ||
178 | CONFIG_INITRAMFS_SOURCE="" | 180 | CONFIG_INITRAMFS_SOURCE="" |
179 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 181 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
180 | CONFIG_EMBEDDED=y | 182 | CONFIG_EMBEDDED=y |
@@ -188,10 +190,6 @@ CONFIG_BASE_FULL=y | |||
188 | CONFIG_FUTEX=y | 190 | CONFIG_FUTEX=y |
189 | CONFIG_EPOLL=y | 191 | CONFIG_EPOLL=y |
190 | CONFIG_SHMEM=y | 192 | CONFIG_SHMEM=y |
191 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
192 | CONFIG_CC_ALIGN_LABELS=0 | ||
193 | CONFIG_CC_ALIGN_LOOPS=0 | ||
194 | CONFIG_CC_ALIGN_JUMPS=0 | ||
195 | CONFIG_SLAB=y | 193 | CONFIG_SLAB=y |
196 | # CONFIG_TINY_SHMEM is not set | 194 | # CONFIG_TINY_SHMEM is not set |
197 | CONFIG_BASE_SMALL=0 | 195 | CONFIG_BASE_SMALL=0 |
@@ -203,7 +201,6 @@ CONFIG_BASE_SMALL=0 | |||
203 | CONFIG_MODULES=y | 201 | CONFIG_MODULES=y |
204 | CONFIG_MODULE_UNLOAD=y | 202 | CONFIG_MODULE_UNLOAD=y |
205 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 203 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
206 | CONFIG_OBSOLETE_MODPARM=y | ||
207 | CONFIG_MODVERSIONS=y | 204 | CONFIG_MODVERSIONS=y |
208 | CONFIG_MODULE_SRCVERSION_ALL=y | 205 | CONFIG_MODULE_SRCVERSION_ALL=y |
209 | CONFIG_KMOD=y | 206 | CONFIG_KMOD=y |
@@ -212,6 +209,7 @@ CONFIG_STOP_MACHINE=y | |||
212 | # | 209 | # |
213 | # Block layer | 210 | # Block layer |
214 | # | 211 | # |
212 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
215 | 213 | ||
216 | # | 214 | # |
217 | # IO Schedulers | 215 | # IO Schedulers |
@@ -231,7 +229,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
231 | # | 229 | # |
232 | CONFIG_HW_HAS_PCI=y | 230 | CONFIG_HW_HAS_PCI=y |
233 | CONFIG_PCI=y | 231 | CONFIG_PCI=y |
234 | CONFIG_PCI_LEGACY_PROC=y | ||
235 | CONFIG_MMU=y | 232 | CONFIG_MMU=y |
236 | 233 | ||
237 | # | 234 | # |
@@ -249,6 +246,7 @@ CONFIG_MMU=y | |||
249 | # | 246 | # |
250 | CONFIG_BINFMT_ELF=y | 247 | CONFIG_BINFMT_ELF=y |
251 | # CONFIG_BINFMT_MISC is not set | 248 | # CONFIG_BINFMT_MISC is not set |
249 | # CONFIG_BUILD_ELF64 is not set | ||
252 | CONFIG_MIPS32_COMPAT=y | 250 | CONFIG_MIPS32_COMPAT=y |
253 | CONFIG_COMPAT=y | 251 | CONFIG_COMPAT=y |
254 | CONFIG_MIPS32_O32=y | 252 | CONFIG_MIPS32_O32=y |
@@ -263,6 +261,7 @@ CONFIG_NET=y | |||
263 | # | 261 | # |
264 | # Networking options | 262 | # Networking options |
265 | # | 263 | # |
264 | # CONFIG_NETDEBUG is not set | ||
266 | CONFIG_PACKET=y | 265 | CONFIG_PACKET=y |
267 | CONFIG_PACKET_MMAP=y | 266 | CONFIG_PACKET_MMAP=y |
268 | CONFIG_UNIX=y | 267 | CONFIG_UNIX=y |
@@ -284,12 +283,15 @@ CONFIG_IP_PNP_BOOTP=y | |||
284 | # CONFIG_INET_AH is not set | 283 | # CONFIG_INET_AH is not set |
285 | # CONFIG_INET_ESP is not set | 284 | # CONFIG_INET_ESP is not set |
286 | # CONFIG_INET_IPCOMP is not set | 285 | # CONFIG_INET_IPCOMP is not set |
287 | CONFIG_INET_TUNNEL=m | 286 | # CONFIG_INET_XFRM_TUNNEL is not set |
287 | # CONFIG_INET_TUNNEL is not set | ||
288 | CONFIG_INET_DIAG=y | 288 | CONFIG_INET_DIAG=y |
289 | CONFIG_INET_TCP_DIAG=y | 289 | CONFIG_INET_TCP_DIAG=y |
290 | # CONFIG_TCP_CONG_ADVANCED is not set | 290 | # CONFIG_TCP_CONG_ADVANCED is not set |
291 | CONFIG_TCP_CONG_BIC=y | 291 | CONFIG_TCP_CONG_BIC=y |
292 | # CONFIG_IPV6 is not set | 292 | # CONFIG_IPV6 is not set |
293 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
294 | # CONFIG_INET6_TUNNEL is not set | ||
293 | # CONFIG_NETFILTER is not set | 295 | # CONFIG_NETFILTER is not set |
294 | 296 | ||
295 | # | 297 | # |
@@ -301,6 +303,11 @@ CONFIG_TCP_CONG_BIC=y | |||
301 | # SCTP Configuration (EXPERIMENTAL) | 303 | # SCTP Configuration (EXPERIMENTAL) |
302 | # | 304 | # |
303 | # CONFIG_IP_SCTP is not set | 305 | # CONFIG_IP_SCTP is not set |
306 | |||
307 | # | ||
308 | # TIPC Configuration (EXPERIMENTAL) | ||
309 | # | ||
310 | # CONFIG_TIPC is not set | ||
304 | # CONFIG_ATM is not set | 311 | # CONFIG_ATM is not set |
305 | # CONFIG_BRIDGE is not set | 312 | # CONFIG_BRIDGE is not set |
306 | # CONFIG_VLAN_8021Q is not set | 313 | # CONFIG_VLAN_8021Q is not set |
@@ -310,11 +317,6 @@ CONFIG_TCP_CONG_BIC=y | |||
310 | # CONFIG_ATALK is not set | 317 | # CONFIG_ATALK is not set |
311 | # CONFIG_X25 is not set | 318 | # CONFIG_X25 is not set |
312 | # CONFIG_LAPB is not set | 319 | # CONFIG_LAPB is not set |
313 | |||
314 | # | ||
315 | # TIPC Configuration (EXPERIMENTAL) | ||
316 | # | ||
317 | # CONFIG_TIPC is not set | ||
318 | # CONFIG_NET_DIVERT is not set | 320 | # CONFIG_NET_DIVERT is not set |
319 | # CONFIG_ECONET is not set | 321 | # CONFIG_ECONET is not set |
320 | # CONFIG_WAN_ROUTER is not set | 322 | # CONFIG_WAN_ROUTER is not set |
@@ -335,6 +337,9 @@ CONFIG_IEEE80211=m | |||
335 | # CONFIG_IEEE80211_DEBUG is not set | 337 | # CONFIG_IEEE80211_DEBUG is not set |
336 | CONFIG_IEEE80211_CRYPT_WEP=m | 338 | CONFIG_IEEE80211_CRYPT_WEP=m |
337 | CONFIG_IEEE80211_CRYPT_CCMP=m | 339 | CONFIG_IEEE80211_CRYPT_CCMP=m |
340 | CONFIG_IEEE80211_SOFTMAC=m | ||
341 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
342 | CONFIG_WIRELESS_EXT=y | ||
338 | 343 | ||
339 | # | 344 | # |
340 | # Device Drivers | 345 | # Device Drivers |
@@ -589,6 +594,7 @@ CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y | |||
589 | # | 594 | # |
590 | # Non-8250 serial port support | 595 | # Non-8250 serial port support |
591 | # | 596 | # |
597 | # CONFIG_SERIAL_JSM is not set | ||
592 | CONFIG_UNIX98_PTYS=y | 598 | CONFIG_UNIX98_PTYS=y |
593 | CONFIG_LEGACY_PTYS=y | 599 | CONFIG_LEGACY_PTYS=y |
594 | CONFIG_LEGACY_PTY_COUNT=256 | 600 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -647,10 +653,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
647 | # | 653 | # |
648 | 654 | ||
649 | # | 655 | # |
650 | # Multimedia Capabilities Port drivers | ||
651 | # | ||
652 | |||
653 | # | ||
654 | # Multimedia devices | 656 | # Multimedia devices |
655 | # | 657 | # |
656 | # CONFIG_VIDEO_DEV is not set | 658 | # CONFIG_VIDEO_DEV is not set |
@@ -675,6 +677,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
675 | # | 677 | # |
676 | CONFIG_USB_ARCH_HAS_HCD=y | 678 | CONFIG_USB_ARCH_HAS_HCD=y |
677 | CONFIG_USB_ARCH_HAS_OHCI=y | 679 | CONFIG_USB_ARCH_HAS_OHCI=y |
680 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
678 | # CONFIG_USB is not set | 681 | # CONFIG_USB is not set |
679 | 682 | ||
680 | # | 683 | # |
@@ -692,13 +695,31 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
692 | # CONFIG_MMC is not set | 695 | # CONFIG_MMC is not set |
693 | 696 | ||
694 | # | 697 | # |
698 | # LED devices | ||
699 | # | ||
700 | # CONFIG_NEW_LEDS is not set | ||
701 | |||
702 | # | ||
703 | # LED drivers | ||
704 | # | ||
705 | |||
706 | # | ||
707 | # LED Triggers | ||
708 | # | ||
709 | |||
710 | # | ||
695 | # InfiniBand support | 711 | # InfiniBand support |
696 | # | 712 | # |
697 | # CONFIG_INFINIBAND is not set | 713 | # CONFIG_INFINIBAND is not set |
698 | 714 | ||
699 | # | 715 | # |
700 | # SN Devices | 716 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
717 | # | ||
718 | |||
719 | # | ||
720 | # Real Time Clock | ||
701 | # | 721 | # |
722 | # CONFIG_RTC_CLASS is not set | ||
702 | 723 | ||
703 | # | 724 | # |
704 | # File systems | 725 | # File systems |
@@ -746,7 +767,6 @@ CONFIG_SYSFS=y | |||
746 | # CONFIG_TMPFS is not set | 767 | # CONFIG_TMPFS is not set |
747 | # CONFIG_HUGETLB_PAGE is not set | 768 | # CONFIG_HUGETLB_PAGE is not set |
748 | CONFIG_RAMFS=y | 769 | CONFIG_RAMFS=y |
749 | CONFIG_RELAYFS_FS=m | ||
750 | # CONFIG_CONFIGFS_FS is not set | 770 | # CONFIG_CONFIGFS_FS is not set |
751 | 771 | ||
752 | # | 772 | # |
@@ -812,6 +832,7 @@ CONFIG_MSDOS_PARTITION=y | |||
812 | # CONFIG_MAGIC_SYSRQ is not set | 832 | # CONFIG_MAGIC_SYSRQ is not set |
813 | # CONFIG_DEBUG_KERNEL is not set | 833 | # CONFIG_DEBUG_KERNEL is not set |
814 | CONFIG_LOG_BUF_SHIFT=15 | 834 | CONFIG_LOG_BUF_SHIFT=15 |
835 | # CONFIG_DEBUG_FS is not set | ||
815 | CONFIG_CROSSCOMPILE=y | 836 | CONFIG_CROSSCOMPILE=y |
816 | CONFIG_CMDLINE="" | 837 | CONFIG_CMDLINE="" |
817 | # CONFIG_SB1XXX_CORELIS is not set | 838 | # CONFIG_SB1XXX_CORELIS is not set |
diff --git a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig index 9a936d7b7c0c..6b8a6a416a25 100644 --- a/arch/mips/configs/sead_defconfig +++ b/arch/mips/configs/sead_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:33 2006 | 4 | # Mon Apr 24 14:51:17 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_MIPS_SEAD=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_DMA_NONCOHERENT=y | 70 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 71 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -118,11 +120,11 @@ CONFIG_PAGE_SIZE_4KB=y | |||
118 | CONFIG_CPU_HAS_PREFETCH=y | 120 | CONFIG_CPU_HAS_PREFETCH=y |
119 | # CONFIG_MIPS_MT is not set | 121 | # CONFIG_MIPS_MT is not set |
120 | # CONFIG_64BIT_PHYS_ADDR is not set | 122 | # CONFIG_64BIT_PHYS_ADDR is not set |
121 | # CONFIG_CPU_ADVANCED is not set | ||
122 | CONFIG_CPU_HAS_LLSC=y | 123 | CONFIG_CPU_HAS_LLSC=y |
123 | CONFIG_CPU_HAS_SYNC=y | 124 | CONFIG_CPU_HAS_SYNC=y |
124 | CONFIG_GENERIC_HARDIRQS=y | 125 | CONFIG_GENERIC_HARDIRQS=y |
125 | CONFIG_GENERIC_IRQ_PROBE=y | 126 | CONFIG_GENERIC_IRQ_PROBE=y |
127 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | ||
126 | CONFIG_ARCH_FLATMEM_ENABLE=y | 128 | CONFIG_ARCH_FLATMEM_ENABLE=y |
127 | CONFIG_SELECT_MEMORY_MODEL=y | 129 | CONFIG_SELECT_MEMORY_MODEL=y |
128 | CONFIG_FLATMEM_MANUAL=y | 130 | CONFIG_FLATMEM_MANUAL=y |
@@ -140,7 +142,6 @@ CONFIG_PREEMPT_NONE=y | |||
140 | # Code maturity level options | 142 | # Code maturity level options |
141 | # | 143 | # |
142 | CONFIG_EXPERIMENTAL=y | 144 | CONFIG_EXPERIMENTAL=y |
143 | CONFIG_CLEAN_COMPILE=y | ||
144 | CONFIG_BROKEN_ON_SMP=y | 145 | CONFIG_BROKEN_ON_SMP=y |
145 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 146 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
146 | 147 | ||
@@ -154,6 +155,7 @@ CONFIG_SYSVIPC=y | |||
154 | # CONFIG_BSD_PROCESS_ACCT is not set | 155 | # CONFIG_BSD_PROCESS_ACCT is not set |
155 | CONFIG_SYSCTL=y | 156 | CONFIG_SYSCTL=y |
156 | # CONFIG_IKCONFIG is not set | 157 | # CONFIG_IKCONFIG is not set |
158 | CONFIG_RELAY=y | ||
157 | CONFIG_INITRAMFS_SOURCE="" | 159 | CONFIG_INITRAMFS_SOURCE="" |
158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 160 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
159 | CONFIG_EMBEDDED=y | 161 | CONFIG_EMBEDDED=y |
@@ -167,10 +169,6 @@ CONFIG_BASE_FULL=y | |||
167 | CONFIG_FUTEX=y | 169 | CONFIG_FUTEX=y |
168 | CONFIG_EPOLL=y | 170 | CONFIG_EPOLL=y |
169 | CONFIG_SHMEM=y | 171 | CONFIG_SHMEM=y |
170 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
171 | CONFIG_CC_ALIGN_LABELS=0 | ||
172 | CONFIG_CC_ALIGN_LOOPS=0 | ||
173 | CONFIG_CC_ALIGN_JUMPS=0 | ||
174 | CONFIG_SLAB=y | 172 | CONFIG_SLAB=y |
175 | # CONFIG_TINY_SHMEM is not set | 173 | # CONFIG_TINY_SHMEM is not set |
176 | CONFIG_BASE_SMALL=0 | 174 | CONFIG_BASE_SMALL=0 |
@@ -185,6 +183,8 @@ CONFIG_BASE_SMALL=0 | |||
185 | # Block layer | 183 | # Block layer |
186 | # | 184 | # |
187 | # CONFIG_LBD is not set | 185 | # CONFIG_LBD is not set |
186 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
187 | # CONFIG_LSF is not set | ||
188 | 188 | ||
189 | # | 189 | # |
190 | # IO Schedulers | 190 | # IO Schedulers |
@@ -296,12 +296,6 @@ CONFIG_RAID_ATTRS=y | |||
296 | # | 296 | # |
297 | 297 | ||
298 | # | 298 | # |
299 | # Network device support | ||
300 | # | ||
301 | # CONFIG_NETPOLL is not set | ||
302 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
303 | |||
304 | # | ||
305 | # ISDN subsystem | 299 | # ISDN subsystem |
306 | # | 300 | # |
307 | 301 | ||
@@ -397,10 +391,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
397 | # | 391 | # |
398 | 392 | ||
399 | # | 393 | # |
400 | # Multimedia Capabilities Port drivers | ||
401 | # | ||
402 | |||
403 | # | ||
404 | # Multimedia devices | 394 | # Multimedia devices |
405 | # | 395 | # |
406 | # CONFIG_VIDEO_DEV is not set | 396 | # CONFIG_VIDEO_DEV is not set |
@@ -424,6 +414,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
424 | # | 414 | # |
425 | # CONFIG_USB_ARCH_HAS_HCD is not set | 415 | # CONFIG_USB_ARCH_HAS_HCD is not set |
426 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 416 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
417 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
427 | 418 | ||
428 | # | 419 | # |
429 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 420 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -440,12 +431,30 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
440 | # CONFIG_MMC is not set | 431 | # CONFIG_MMC is not set |
441 | 432 | ||
442 | # | 433 | # |
434 | # LED devices | ||
435 | # | ||
436 | # CONFIG_NEW_LEDS is not set | ||
437 | |||
438 | # | ||
439 | # LED drivers | ||
440 | # | ||
441 | |||
442 | # | ||
443 | # LED Triggers | ||
444 | # | ||
445 | |||
446 | # | ||
443 | # InfiniBand support | 447 | # InfiniBand support |
444 | # | 448 | # |
445 | 449 | ||
446 | # | 450 | # |
447 | # SN Devices | 451 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
452 | # | ||
453 | |||
454 | # | ||
455 | # Real Time Clock | ||
448 | # | 456 | # |
457 | # CONFIG_RTC_CLASS is not set | ||
449 | 458 | ||
450 | # | 459 | # |
451 | # File systems | 460 | # File systems |
@@ -489,7 +498,6 @@ CONFIG_SYSFS=y | |||
489 | # CONFIG_TMPFS is not set | 498 | # CONFIG_TMPFS is not set |
490 | # CONFIG_HUGETLB_PAGE is not set | 499 | # CONFIG_HUGETLB_PAGE is not set |
491 | CONFIG_RAMFS=y | 500 | CONFIG_RAMFS=y |
492 | CONFIG_RELAYFS_FS=y | ||
493 | # CONFIG_CONFIGFS_FS is not set | 501 | # CONFIG_CONFIGFS_FS is not set |
494 | 502 | ||
495 | # | 503 | # |
@@ -543,6 +551,8 @@ CONFIG_PARTITION_ADVANCED=y | |||
543 | # CONFIG_MAGIC_SYSRQ is not set | 551 | # CONFIG_MAGIC_SYSRQ is not set |
544 | # CONFIG_DEBUG_KERNEL is not set | 552 | # CONFIG_DEBUG_KERNEL is not set |
545 | CONFIG_LOG_BUF_SHIFT=14 | 553 | CONFIG_LOG_BUF_SHIFT=14 |
554 | # CONFIG_DEBUG_FS is not set | ||
555 | # CONFIG_UNWIND_INFO is not set | ||
546 | CONFIG_CROSSCOMPILE=y | 556 | CONFIG_CROSSCOMPILE=y |
547 | CONFIG_CMDLINE="" | 557 | CONFIG_CMDLINE="" |
548 | 558 | ||
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig index c2dee0d1c72c..dba0bdcdcf29 100644 --- a/arch/mips/configs/tb0226_defconfig +++ b/arch/mips/configs/tb0226_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:34 2006 | 4 | # Tue Apr 25 00:08:41 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -68,12 +68,14 @@ CONFIG_MACH_VR41XX=y | |||
68 | # CONFIG_NEC_CMBVR4133 is not set | 68 | # CONFIG_NEC_CMBVR4133 is not set |
69 | CONFIG_TANBAC_TB022X=y | 69 | CONFIG_TANBAC_TB022X=y |
70 | CONFIG_TANBAC_TB0226=y | 70 | CONFIG_TANBAC_TB0226=y |
71 | CONFIG_TANBAC_TB0287=y | 71 | # CONFIG_TANBAC_TB0287 is not set |
72 | # CONFIG_VICTOR_MPC30X is not set | 72 | # CONFIG_VICTOR_MPC30X is not set |
73 | # CONFIG_ZAO_CAPCELLA is not set | 73 | # CONFIG_ZAO_CAPCELLA is not set |
74 | CONFIG_PCI_VR41XX=y | 74 | CONFIG_PCI_VR41XX=y |
75 | # CONFIG_VRC4173 is not set | 75 | # CONFIG_VRC4173 is not set |
76 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 76 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
77 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
78 | CONFIG_GENERIC_HWEIGHT=y | ||
77 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 79 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
78 | CONFIG_DMA_NONCOHERENT=y | 80 | CONFIG_DMA_NONCOHERENT=y |
79 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 81 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -92,7 +94,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
92 | # CONFIG_CPU_MIPS64_R2 is not set | 94 | # CONFIG_CPU_MIPS64_R2 is not set |
93 | # CONFIG_CPU_R3000 is not set | 95 | # CONFIG_CPU_R3000 is not set |
94 | # CONFIG_CPU_TX39XX is not set | 96 | # CONFIG_CPU_TX39XX is not set |
95 | # CONFIG_CPU_VR41XX is not set | 97 | CONFIG_CPU_VR41XX=y |
96 | # CONFIG_CPU_R4300 is not set | 98 | # CONFIG_CPU_R4300 is not set |
97 | # CONFIG_CPU_R4X00 is not set | 99 | # CONFIG_CPU_R4X00 is not set |
98 | # CONFIG_CPU_TX49XX is not set | 100 | # CONFIG_CPU_TX49XX is not set |
@@ -105,18 +107,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
105 | # CONFIG_CPU_RM7000 is not set | 107 | # CONFIG_CPU_RM7000 is not set |
106 | # CONFIG_CPU_RM9000 is not set | 108 | # CONFIG_CPU_RM9000 is not set |
107 | # CONFIG_CPU_SB1 is not set | 109 | # CONFIG_CPU_SB1 is not set |
110 | CONFIG_SYS_HAS_CPU_VR41XX=y | ||
111 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
112 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
113 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
108 | 114 | ||
109 | # | 115 | # |
110 | # Kernel type | 116 | # Kernel type |
111 | # | 117 | # |
112 | # CONFIG_32BIT is not set | 118 | CONFIG_32BIT=y |
113 | # CONFIG_64BIT is not set | 119 | # CONFIG_64BIT is not set |
114 | CONFIG_PAGE_SIZE_4KB=y | 120 | CONFIG_PAGE_SIZE_4KB=y |
115 | # CONFIG_PAGE_SIZE_8KB is not set | 121 | # CONFIG_PAGE_SIZE_8KB is not set |
116 | # CONFIG_PAGE_SIZE_16KB is not set | 122 | # CONFIG_PAGE_SIZE_16KB is not set |
117 | # CONFIG_PAGE_SIZE_64KB is not set | 123 | # CONFIG_PAGE_SIZE_64KB is not set |
118 | # CONFIG_MIPS_MT is not set | 124 | # CONFIG_MIPS_MT is not set |
119 | CONFIG_CPU_HAS_LLSC=y | ||
120 | CONFIG_CPU_HAS_SYNC=y | 125 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 126 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 127 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -137,7 +142,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 142 | # Code maturity level options |
138 | # | 143 | # |
139 | CONFIG_EXPERIMENTAL=y | 144 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 145 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 146 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 147 | ||
@@ -153,6 +157,7 @@ CONFIG_SYSVIPC=y | |||
153 | CONFIG_SYSCTL=y | 157 | CONFIG_SYSCTL=y |
154 | # CONFIG_AUDIT is not set | 158 | # CONFIG_AUDIT is not set |
155 | # CONFIG_IKCONFIG is not set | 159 | # CONFIG_IKCONFIG is not set |
160 | # CONFIG_RELAY is not set | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 161 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 162 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 163 | CONFIG_EMBEDDED=y |
@@ -166,10 +171,6 @@ CONFIG_BASE_FULL=y | |||
166 | CONFIG_FUTEX=y | 171 | CONFIG_FUTEX=y |
167 | CONFIG_EPOLL=y | 172 | CONFIG_EPOLL=y |
168 | CONFIG_SHMEM=y | 173 | CONFIG_SHMEM=y |
169 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
170 | CONFIG_CC_ALIGN_LABELS=0 | ||
171 | CONFIG_CC_ALIGN_LOOPS=0 | ||
172 | CONFIG_CC_ALIGN_JUMPS=0 | ||
173 | CONFIG_SLAB=y | 174 | CONFIG_SLAB=y |
174 | # CONFIG_TINY_SHMEM is not set | 175 | # CONFIG_TINY_SHMEM is not set |
175 | CONFIG_BASE_SMALL=0 | 176 | CONFIG_BASE_SMALL=0 |
@@ -181,7 +182,6 @@ CONFIG_BASE_SMALL=0 | |||
181 | CONFIG_MODULES=y | 182 | CONFIG_MODULES=y |
182 | CONFIG_MODULE_UNLOAD=y | 183 | CONFIG_MODULE_UNLOAD=y |
183 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 184 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
184 | CONFIG_OBSOLETE_MODPARM=y | ||
185 | CONFIG_MODVERSIONS=y | 185 | CONFIG_MODVERSIONS=y |
186 | CONFIG_MODULE_SRCVERSION_ALL=y | 186 | CONFIG_MODULE_SRCVERSION_ALL=y |
187 | CONFIG_KMOD=y | 187 | CONFIG_KMOD=y |
@@ -189,6 +189,9 @@ CONFIG_KMOD=y | |||
189 | # | 189 | # |
190 | # Block layer | 190 | # Block layer |
191 | # | 191 | # |
192 | # CONFIG_LBD is not set | ||
193 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
194 | # CONFIG_LSF is not set | ||
192 | 195 | ||
193 | # | 196 | # |
194 | # IO Schedulers | 197 | # IO Schedulers |
@@ -208,7 +211,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
208 | # | 211 | # |
209 | CONFIG_HW_HAS_PCI=y | 212 | CONFIG_HW_HAS_PCI=y |
210 | CONFIG_PCI=y | 213 | CONFIG_PCI=y |
211 | # CONFIG_PCI_LEGACY_PROC is not set | ||
212 | CONFIG_MMU=y | 214 | CONFIG_MMU=y |
213 | 215 | ||
214 | # | 216 | # |
@@ -226,6 +228,7 @@ CONFIG_MMU=y | |||
226 | # | 228 | # |
227 | CONFIG_BINFMT_ELF=y | 229 | CONFIG_BINFMT_ELF=y |
228 | # CONFIG_BINFMT_MISC is not set | 230 | # CONFIG_BINFMT_MISC is not set |
231 | CONFIG_TRAD_SIGNALS=y | ||
229 | 232 | ||
230 | # | 233 | # |
231 | # Networking | 234 | # Networking |
@@ -235,11 +238,10 @@ CONFIG_NET=y | |||
235 | # | 238 | # |
236 | # Networking options | 239 | # Networking options |
237 | # | 240 | # |
241 | # CONFIG_NETDEBUG is not set | ||
238 | CONFIG_PACKET=y | 242 | CONFIG_PACKET=y |
239 | # CONFIG_PACKET_MMAP is not set | 243 | # CONFIG_PACKET_MMAP is not set |
240 | CONFIG_UNIX=y | 244 | CONFIG_UNIX=y |
241 | CONFIG_XFRM=y | ||
242 | CONFIG_XFRM_USER=m | ||
243 | # CONFIG_NET_KEY is not set | 245 | # CONFIG_NET_KEY is not set |
244 | CONFIG_INET=y | 246 | CONFIG_INET=y |
245 | CONFIG_IP_MULTICAST=y | 247 | CONFIG_IP_MULTICAST=y |
@@ -263,12 +265,15 @@ CONFIG_SYN_COOKIES=y | |||
263 | # CONFIG_INET_AH is not set | 265 | # CONFIG_INET_AH is not set |
264 | # CONFIG_INET_ESP is not set | 266 | # CONFIG_INET_ESP is not set |
265 | # CONFIG_INET_IPCOMP is not set | 267 | # CONFIG_INET_IPCOMP is not set |
266 | CONFIG_INET_TUNNEL=m | 268 | # CONFIG_INET_XFRM_TUNNEL is not set |
269 | # CONFIG_INET_TUNNEL is not set | ||
267 | CONFIG_INET_DIAG=y | 270 | CONFIG_INET_DIAG=y |
268 | CONFIG_INET_TCP_DIAG=y | 271 | CONFIG_INET_TCP_DIAG=y |
269 | # CONFIG_TCP_CONG_ADVANCED is not set | 272 | # CONFIG_TCP_CONG_ADVANCED is not set |
270 | CONFIG_TCP_CONG_BIC=y | 273 | CONFIG_TCP_CONG_BIC=y |
271 | # CONFIG_IPV6 is not set | 274 | # CONFIG_IPV6 is not set |
275 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
276 | # CONFIG_INET6_TUNNEL is not set | ||
272 | # CONFIG_NETFILTER is not set | 277 | # CONFIG_NETFILTER is not set |
273 | 278 | ||
274 | # | 279 | # |
@@ -280,6 +285,11 @@ CONFIG_TCP_CONG_BIC=y | |||
280 | # SCTP Configuration (EXPERIMENTAL) | 285 | # SCTP Configuration (EXPERIMENTAL) |
281 | # | 286 | # |
282 | # CONFIG_IP_SCTP is not set | 287 | # CONFIG_IP_SCTP is not set |
288 | |||
289 | # | ||
290 | # TIPC Configuration (EXPERIMENTAL) | ||
291 | # | ||
292 | # CONFIG_TIPC is not set | ||
283 | # CONFIG_ATM is not set | 293 | # CONFIG_ATM is not set |
284 | # CONFIG_BRIDGE is not set | 294 | # CONFIG_BRIDGE is not set |
285 | # CONFIG_VLAN_8021Q is not set | 295 | # CONFIG_VLAN_8021Q is not set |
@@ -289,11 +299,6 @@ CONFIG_TCP_CONG_BIC=y | |||
289 | # CONFIG_ATALK is not set | 299 | # CONFIG_ATALK is not set |
290 | # CONFIG_X25 is not set | 300 | # CONFIG_X25 is not set |
291 | # CONFIG_LAPB is not set | 301 | # CONFIG_LAPB is not set |
292 | |||
293 | # | ||
294 | # TIPC Configuration (EXPERIMENTAL) | ||
295 | # | ||
296 | # CONFIG_TIPC is not set | ||
297 | # CONFIG_NET_DIVERT is not set | 302 | # CONFIG_NET_DIVERT is not set |
298 | # CONFIG_ECONET is not set | 303 | # CONFIG_ECONET is not set |
299 | # CONFIG_WAN_ROUTER is not set | 304 | # CONFIG_WAN_ROUTER is not set |
@@ -310,10 +315,7 @@ CONFIG_TCP_CONG_BIC=y | |||
310 | # CONFIG_HAMRADIO is not set | 315 | # CONFIG_HAMRADIO is not set |
311 | # CONFIG_IRDA is not set | 316 | # CONFIG_IRDA is not set |
312 | # CONFIG_BT is not set | 317 | # CONFIG_BT is not set |
313 | CONFIG_IEEE80211=m | 318 | # CONFIG_IEEE80211 is not set |
314 | # CONFIG_IEEE80211_DEBUG is not set | ||
315 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
316 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
317 | 319 | ||
318 | # | 320 | # |
319 | # Device Drivers | 321 | # Device Drivers |
@@ -358,11 +360,12 @@ CONFIG_BLK_DEV_LOOP=m | |||
358 | CONFIG_BLK_DEV_NBD=m | 360 | CONFIG_BLK_DEV_NBD=m |
359 | # CONFIG_BLK_DEV_SX8 is not set | 361 | # CONFIG_BLK_DEV_SX8 is not set |
360 | # CONFIG_BLK_DEV_UB is not set | 362 | # CONFIG_BLK_DEV_UB is not set |
361 | CONFIG_BLK_DEV_RAM=m | 363 | CONFIG_BLK_DEV_RAM=y |
362 | CONFIG_BLK_DEV_RAM_COUNT=16 | 364 | CONFIG_BLK_DEV_RAM_COUNT=16 |
363 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 365 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
366 | # CONFIG_BLK_DEV_INITRD is not set | ||
364 | # CONFIG_CDROM_PKTCDVD is not set | 367 | # CONFIG_CDROM_PKTCDVD is not set |
365 | CONFIG_ATA_OVER_ETH=m | 368 | # CONFIG_ATA_OVER_ETH is not set |
366 | 369 | ||
367 | # | 370 | # |
368 | # ATA/ATAPI/MFM/RLL support | 371 | # ATA/ATAPI/MFM/RLL support |
@@ -397,14 +400,14 @@ CONFIG_SCSI_MULTI_LUN=y | |||
397 | # SCSI Transport Attributes | 400 | # SCSI Transport Attributes |
398 | # | 401 | # |
399 | # CONFIG_SCSI_SPI_ATTRS is not set | 402 | # CONFIG_SCSI_SPI_ATTRS is not set |
400 | CONFIG_SCSI_FC_ATTRS=y | 403 | # CONFIG_SCSI_FC_ATTRS is not set |
401 | CONFIG_SCSI_ISCSI_ATTRS=m | 404 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
402 | # CONFIG_SCSI_SAS_ATTRS is not set | 405 | # CONFIG_SCSI_SAS_ATTRS is not set |
403 | 406 | ||
404 | # | 407 | # |
405 | # SCSI low-level drivers | 408 | # SCSI low-level drivers |
406 | # | 409 | # |
407 | CONFIG_ISCSI_TCP=m | 410 | # CONFIG_ISCSI_TCP is not set |
408 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 411 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
409 | # CONFIG_SCSI_3W_9XXX is not set | 412 | # CONFIG_SCSI_3W_9XXX is not set |
410 | # CONFIG_SCSI_ACARD is not set | 413 | # CONFIG_SCSI_ACARD is not set |
@@ -424,7 +427,6 @@ CONFIG_ISCSI_TCP=m | |||
424 | # CONFIG_SCSI_INIA100 is not set | 427 | # CONFIG_SCSI_INIA100 is not set |
425 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 428 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
426 | # CONFIG_SCSI_IPR is not set | 429 | # CONFIG_SCSI_IPR is not set |
427 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
428 | # CONFIG_SCSI_QLOGIC_1280 is not set | 430 | # CONFIG_SCSI_QLOGIC_1280 is not set |
429 | # CONFIG_SCSI_QLA_FC is not set | 431 | # CONFIG_SCSI_QLA_FC is not set |
430 | # CONFIG_SCSI_LPFC is not set | 432 | # CONFIG_SCSI_LPFC is not set |
@@ -507,8 +509,8 @@ CONFIG_NET_PCI=y | |||
507 | # CONFIG_B44 is not set | 509 | # CONFIG_B44 is not set |
508 | # CONFIG_FORCEDETH is not set | 510 | # CONFIG_FORCEDETH is not set |
509 | # CONFIG_DGRS is not set | 511 | # CONFIG_DGRS is not set |
510 | CONFIG_EEPRO100=y | 512 | # CONFIG_EEPRO100 is not set |
511 | # CONFIG_E100 is not set | 513 | CONFIG_E100=y |
512 | # CONFIG_FEALNX is not set | 514 | # CONFIG_FEALNX is not set |
513 | # CONFIG_NATSEMI is not set | 515 | # CONFIG_NATSEMI is not set |
514 | # CONFIG_NE2K_PCI is not set | 516 | # CONFIG_NE2K_PCI is not set |
@@ -625,6 +627,11 @@ CONFIG_HW_CONSOLE=y | |||
625 | # | 627 | # |
626 | # Non-8250 serial port support | 628 | # Non-8250 serial port support |
627 | # | 629 | # |
630 | CONFIG_SERIAL_CORE=y | ||
631 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
632 | CONFIG_SERIAL_VR41XX=y | ||
633 | CONFIG_SERIAL_VR41XX_CONSOLE=y | ||
634 | # CONFIG_SERIAL_JSM is not set | ||
628 | CONFIG_UNIX98_PTYS=y | 635 | CONFIG_UNIX98_PTYS=y |
629 | CONFIG_LEGACY_PTYS=y | 636 | CONFIG_LEGACY_PTYS=y |
630 | CONFIG_LEGACY_PTY_COUNT=256 | 637 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -685,10 +692,6 @@ CONFIG_GPIO_VR41XX=y | |||
685 | # | 692 | # |
686 | 693 | ||
687 | # | 694 | # |
688 | # Multimedia Capabilities Port drivers | ||
689 | # | ||
690 | |||
691 | # | ||
692 | # Multimedia devices | 695 | # Multimedia devices |
693 | # | 696 | # |
694 | # CONFIG_VIDEO_DEV is not set | 697 | # CONFIG_VIDEO_DEV is not set |
@@ -697,6 +700,7 @@ CONFIG_GPIO_VR41XX=y | |||
697 | # Digital Video Broadcasting Devices | 700 | # Digital Video Broadcasting Devices |
698 | # | 701 | # |
699 | # CONFIG_DVB is not set | 702 | # CONFIG_DVB is not set |
703 | # CONFIG_USB_DABUSB is not set | ||
700 | 704 | ||
701 | # | 705 | # |
702 | # Graphics support | 706 | # Graphics support |
@@ -719,6 +723,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
719 | # | 723 | # |
720 | CONFIG_USB_ARCH_HAS_HCD=y | 724 | CONFIG_USB_ARCH_HAS_HCD=y |
721 | CONFIG_USB_ARCH_HAS_OHCI=y | 725 | CONFIG_USB_ARCH_HAS_OHCI=y |
726 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
722 | CONFIG_USB=y | 727 | CONFIG_USB=y |
723 | # CONFIG_USB_DEBUG is not set | 728 | # CONFIG_USB_DEBUG is not set |
724 | 729 | ||
@@ -756,7 +761,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
756 | # | 761 | # |
757 | # may also be needed; see USB_STORAGE Help for more information | 762 | # may also be needed; see USB_STORAGE Help for more information |
758 | # | 763 | # |
759 | CONFIG_USB_STORAGE=m | 764 | CONFIG_USB_STORAGE=y |
760 | # CONFIG_USB_STORAGE_DEBUG is not set | 765 | # CONFIG_USB_STORAGE_DEBUG is not set |
761 | # CONFIG_USB_STORAGE_DATAFAB is not set | 766 | # CONFIG_USB_STORAGE_DATAFAB is not set |
762 | # CONFIG_USB_STORAGE_FREECOM is not set | 767 | # CONFIG_USB_STORAGE_FREECOM is not set |
@@ -783,9 +788,7 @@ CONFIG_USB_STORAGE=m | |||
783 | # CONFIG_USB_ACECAD is not set | 788 | # CONFIG_USB_ACECAD is not set |
784 | # CONFIG_USB_KBTAB is not set | 789 | # CONFIG_USB_KBTAB is not set |
785 | # CONFIG_USB_POWERMATE is not set | 790 | # CONFIG_USB_POWERMATE is not set |
786 | # CONFIG_USB_MTOUCH is not set | 791 | # CONFIG_USB_TOUCHSCREEN is not set |
787 | # CONFIG_USB_ITMTOUCH is not set | ||
788 | # CONFIG_USB_EGALAX is not set | ||
789 | # CONFIG_USB_YEALINK is not set | 792 | # CONFIG_USB_YEALINK is not set |
790 | # CONFIG_USB_XPAD is not set | 793 | # CONFIG_USB_XPAD is not set |
791 | # CONFIG_USB_ATI_REMOTE is not set | 794 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -800,15 +803,6 @@ CONFIG_USB_STORAGE=m | |||
800 | # CONFIG_USB_MICROTEK is not set | 803 | # CONFIG_USB_MICROTEK is not set |
801 | 804 | ||
802 | # | 805 | # |
803 | # USB Multimedia devices | ||
804 | # | ||
805 | # CONFIG_USB_DABUSB is not set | ||
806 | |||
807 | # | ||
808 | # Video4Linux support is needed for USB Multimedia device support | ||
809 | # | ||
810 | |||
811 | # | ||
812 | # USB Network Adapters | 806 | # USB Network Adapters |
813 | # | 807 | # |
814 | # CONFIG_USB_CATC is not set | 808 | # CONFIG_USB_CATC is not set |
@@ -816,7 +810,7 @@ CONFIG_USB_STORAGE=m | |||
816 | # CONFIG_USB_PEGASUS is not set | 810 | # CONFIG_USB_PEGASUS is not set |
817 | # CONFIG_USB_RTL8150 is not set | 811 | # CONFIG_USB_RTL8150 is not set |
818 | # CONFIG_USB_USBNET is not set | 812 | # CONFIG_USB_USBNET is not set |
819 | CONFIG_USB_MON=y | 813 | # CONFIG_USB_MON is not set |
820 | 814 | ||
821 | # | 815 | # |
822 | # USB port drivers | 816 | # USB port drivers |
@@ -860,13 +854,48 @@ CONFIG_USB_MON=y | |||
860 | # CONFIG_MMC is not set | 854 | # CONFIG_MMC is not set |
861 | 855 | ||
862 | # | 856 | # |
857 | # LED devices | ||
858 | # | ||
859 | # CONFIG_NEW_LEDS is not set | ||
860 | |||
861 | # | ||
862 | # LED drivers | ||
863 | # | ||
864 | |||
865 | # | ||
866 | # LED Triggers | ||
867 | # | ||
868 | |||
869 | # | ||
863 | # InfiniBand support | 870 | # InfiniBand support |
864 | # | 871 | # |
865 | # CONFIG_INFINIBAND is not set | 872 | # CONFIG_INFINIBAND is not set |
866 | 873 | ||
867 | # | 874 | # |
868 | # SN Devices | 875 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
876 | # | ||
877 | |||
878 | # | ||
879 | # Real Time Clock | ||
880 | # | ||
881 | CONFIG_RTC_LIB=y | ||
882 | CONFIG_RTC_CLASS=y | ||
883 | CONFIG_RTC_HCTOSYS=y | ||
884 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
885 | |||
886 | # | ||
887 | # RTC interfaces | ||
888 | # | ||
889 | CONFIG_RTC_INTF_SYSFS=y | ||
890 | CONFIG_RTC_INTF_PROC=y | ||
891 | CONFIG_RTC_INTF_DEV=y | ||
892 | |||
893 | # | ||
894 | # RTC drivers | ||
869 | # | 895 | # |
896 | # CONFIG_RTC_DRV_M48T86 is not set | ||
897 | CONFIG_RTC_DRV_VR41XX=y | ||
898 | # CONFIG_RTC_DRV_TEST is not set | ||
870 | 899 | ||
871 | # | 900 | # |
872 | # File systems | 901 | # File systems |
@@ -911,7 +940,6 @@ CONFIG_SYSFS=y | |||
911 | CONFIG_TMPFS=y | 940 | CONFIG_TMPFS=y |
912 | # CONFIG_HUGETLB_PAGE is not set | 941 | # CONFIG_HUGETLB_PAGE is not set |
913 | CONFIG_RAMFS=y | 942 | CONFIG_RAMFS=y |
914 | CONFIG_RELAYFS_FS=m | ||
915 | # CONFIG_CONFIGFS_FS is not set | 943 | # CONFIG_CONFIGFS_FS is not set |
916 | 944 | ||
917 | # | 945 | # |
@@ -952,9 +980,7 @@ CONFIG_NFS_COMMON=y | |||
952 | CONFIG_SUNRPC=y | 980 | CONFIG_SUNRPC=y |
953 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 981 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
954 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 982 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
955 | CONFIG_SMB_FS=m | 983 | # CONFIG_SMB_FS is not set |
956 | CONFIG_SMB_NLS_DEFAULT=y | ||
957 | CONFIG_SMB_NLS_REMOTE="cp932" | ||
958 | # CONFIG_CIFS is not set | 984 | # CONFIG_CIFS is not set |
959 | # CONFIG_NCP_FS is not set | 985 | # CONFIG_NCP_FS is not set |
960 | # CONFIG_CODA_FS is not set | 986 | # CONFIG_CODA_FS is not set |
@@ -970,46 +996,7 @@ CONFIG_MSDOS_PARTITION=y | |||
970 | # | 996 | # |
971 | # Native Language Support | 997 | # Native Language Support |
972 | # | 998 | # |
973 | CONFIG_NLS=y | 999 | # CONFIG_NLS is not set |
974 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
975 | CONFIG_NLS_CODEPAGE_437=m | ||
976 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
977 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
978 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
979 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
980 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
981 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
982 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
983 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
984 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
985 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
986 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
987 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
988 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
989 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
990 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
991 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
992 | CONFIG_NLS_CODEPAGE_932=m | ||
993 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
994 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
995 | # CONFIG_NLS_ISO8859_8 is not set | ||
996 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
997 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
998 | # CONFIG_NLS_ASCII is not set | ||
999 | CONFIG_NLS_ISO8859_1=m | ||
1000 | # CONFIG_NLS_ISO8859_2 is not set | ||
1001 | # CONFIG_NLS_ISO8859_3 is not set | ||
1002 | # CONFIG_NLS_ISO8859_4 is not set | ||
1003 | # CONFIG_NLS_ISO8859_5 is not set | ||
1004 | # CONFIG_NLS_ISO8859_6 is not set | ||
1005 | # CONFIG_NLS_ISO8859_7 is not set | ||
1006 | # CONFIG_NLS_ISO8859_9 is not set | ||
1007 | # CONFIG_NLS_ISO8859_13 is not set | ||
1008 | # CONFIG_NLS_ISO8859_14 is not set | ||
1009 | # CONFIG_NLS_ISO8859_15 is not set | ||
1010 | # CONFIG_NLS_KOI8_R is not set | ||
1011 | # CONFIG_NLS_KOI8_U is not set | ||
1012 | # CONFIG_NLS_UTF8 is not set | ||
1013 | 1000 | ||
1014 | # | 1001 | # |
1015 | # Profiling support | 1002 | # Profiling support |
@@ -1023,44 +1010,20 @@ CONFIG_NLS_ISO8859_1=m | |||
1023 | # CONFIG_MAGIC_SYSRQ is not set | 1010 | # CONFIG_MAGIC_SYSRQ is not set |
1024 | # CONFIG_DEBUG_KERNEL is not set | 1011 | # CONFIG_DEBUG_KERNEL is not set |
1025 | CONFIG_LOG_BUF_SHIFT=14 | 1012 | CONFIG_LOG_BUF_SHIFT=14 |
1013 | # CONFIG_DEBUG_FS is not set | ||
1026 | CONFIG_CROSSCOMPILE=y | 1014 | CONFIG_CROSSCOMPILE=y |
1027 | CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" | 1015 | CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" |
1028 | 1016 | ||
1029 | # | 1017 | # |
1030 | # Security options | 1018 | # Security options |
1031 | # | 1019 | # |
1032 | CONFIG_KEYS=y | 1020 | # CONFIG_KEYS is not set |
1033 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
1034 | # CONFIG_SECURITY is not set | 1021 | # CONFIG_SECURITY is not set |
1035 | 1022 | ||
1036 | # | 1023 | # |
1037 | # Cryptographic options | 1024 | # Cryptographic options |
1038 | # | 1025 | # |
1039 | CONFIG_CRYPTO=y | 1026 | # CONFIG_CRYPTO is not set |
1040 | CONFIG_CRYPTO_HMAC=y | ||
1041 | CONFIG_CRYPTO_NULL=m | ||
1042 | CONFIG_CRYPTO_MD4=m | ||
1043 | CONFIG_CRYPTO_MD5=m | ||
1044 | CONFIG_CRYPTO_SHA1=m | ||
1045 | CONFIG_CRYPTO_SHA256=m | ||
1046 | CONFIG_CRYPTO_SHA512=m | ||
1047 | CONFIG_CRYPTO_WP512=m | ||
1048 | CONFIG_CRYPTO_TGR192=m | ||
1049 | CONFIG_CRYPTO_DES=m | ||
1050 | CONFIG_CRYPTO_BLOWFISH=m | ||
1051 | CONFIG_CRYPTO_TWOFISH=m | ||
1052 | CONFIG_CRYPTO_SERPENT=m | ||
1053 | CONFIG_CRYPTO_AES=m | ||
1054 | CONFIG_CRYPTO_CAST5=m | ||
1055 | CONFIG_CRYPTO_CAST6=m | ||
1056 | CONFIG_CRYPTO_TEA=m | ||
1057 | CONFIG_CRYPTO_ARC4=m | ||
1058 | CONFIG_CRYPTO_KHAZAD=m | ||
1059 | CONFIG_CRYPTO_ANUBIS=m | ||
1060 | CONFIG_CRYPTO_DEFLATE=m | ||
1061 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1062 | CONFIG_CRYPTO_CRC32C=m | ||
1063 | # CONFIG_CRYPTO_TEST is not set | ||
1064 | 1027 | ||
1065 | # | 1028 | # |
1066 | # Hardware crypto devices | 1029 | # Hardware crypto devices |
@@ -1069,9 +1032,8 @@ CONFIG_CRYPTO_CRC32C=m | |||
1069 | # | 1032 | # |
1070 | # Library routines | 1033 | # Library routines |
1071 | # | 1034 | # |
1072 | CONFIG_CRC_CCITT=m | 1035 | # CONFIG_CRC_CCITT is not set |
1073 | CONFIG_CRC16=m | 1036 | # CONFIG_CRC16 is not set |
1074 | CONFIG_CRC32=m | 1037 | # CONFIG_CRC32 is not set |
1075 | CONFIG_LIBCRC32C=m | 1038 | # CONFIG_LIBCRC32C is not set |
1076 | CONFIG_ZLIB_INFLATE=m | 1039 | CONFIG_ZLIB_INFLATE=m |
1077 | CONFIG_ZLIB_DEFLATE=m | ||
diff --git a/arch/mips/configs/tb0229_defconfig b/arch/mips/configs/tb0229_defconfig index be99261d7997..5a924c1a5803 100644 --- a/arch/mips/configs/tb0229_defconfig +++ b/arch/mips/configs/tb0229_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:35 2006 | 4 | # Tue Apr 25 00:08:59 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -68,12 +68,14 @@ CONFIG_MACH_VR41XX=y | |||
68 | # CONFIG_NEC_CMBVR4133 is not set | 68 | # CONFIG_NEC_CMBVR4133 is not set |
69 | CONFIG_TANBAC_TB022X=y | 69 | CONFIG_TANBAC_TB022X=y |
70 | # CONFIG_TANBAC_TB0226 is not set | 70 | # CONFIG_TANBAC_TB0226 is not set |
71 | CONFIG_TANBAC_TB0287=y | 71 | # CONFIG_TANBAC_TB0287 is not set |
72 | # CONFIG_VICTOR_MPC30X is not set | 72 | # CONFIG_VICTOR_MPC30X is not set |
73 | # CONFIG_ZAO_CAPCELLA is not set | 73 | # CONFIG_ZAO_CAPCELLA is not set |
74 | CONFIG_PCI_VR41XX=y | 74 | CONFIG_PCI_VR41XX=y |
75 | # CONFIG_VRC4173 is not set | 75 | # CONFIG_VRC4173 is not set |
76 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 76 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
77 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
78 | CONFIG_GENERIC_HWEIGHT=y | ||
77 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 79 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
78 | CONFIG_DMA_NONCOHERENT=y | 80 | CONFIG_DMA_NONCOHERENT=y |
79 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 81 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -92,7 +94,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
92 | # CONFIG_CPU_MIPS64_R2 is not set | 94 | # CONFIG_CPU_MIPS64_R2 is not set |
93 | # CONFIG_CPU_R3000 is not set | 95 | # CONFIG_CPU_R3000 is not set |
94 | # CONFIG_CPU_TX39XX is not set | 96 | # CONFIG_CPU_TX39XX is not set |
95 | # CONFIG_CPU_VR41XX is not set | 97 | CONFIG_CPU_VR41XX=y |
96 | # CONFIG_CPU_R4300 is not set | 98 | # CONFIG_CPU_R4300 is not set |
97 | # CONFIG_CPU_R4X00 is not set | 99 | # CONFIG_CPU_R4X00 is not set |
98 | # CONFIG_CPU_TX49XX is not set | 100 | # CONFIG_CPU_TX49XX is not set |
@@ -105,18 +107,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
105 | # CONFIG_CPU_RM7000 is not set | 107 | # CONFIG_CPU_RM7000 is not set |
106 | # CONFIG_CPU_RM9000 is not set | 108 | # CONFIG_CPU_RM9000 is not set |
107 | # CONFIG_CPU_SB1 is not set | 109 | # CONFIG_CPU_SB1 is not set |
110 | CONFIG_SYS_HAS_CPU_VR41XX=y | ||
111 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
112 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
113 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
108 | 114 | ||
109 | # | 115 | # |
110 | # Kernel type | 116 | # Kernel type |
111 | # | 117 | # |
112 | # CONFIG_32BIT is not set | 118 | CONFIG_32BIT=y |
113 | # CONFIG_64BIT is not set | 119 | # CONFIG_64BIT is not set |
114 | CONFIG_PAGE_SIZE_4KB=y | 120 | CONFIG_PAGE_SIZE_4KB=y |
115 | # CONFIG_PAGE_SIZE_8KB is not set | 121 | # CONFIG_PAGE_SIZE_8KB is not set |
116 | # CONFIG_PAGE_SIZE_16KB is not set | 122 | # CONFIG_PAGE_SIZE_16KB is not set |
117 | # CONFIG_PAGE_SIZE_64KB is not set | 123 | # CONFIG_PAGE_SIZE_64KB is not set |
118 | # CONFIG_MIPS_MT is not set | 124 | # CONFIG_MIPS_MT is not set |
119 | CONFIG_CPU_HAS_LLSC=y | ||
120 | CONFIG_CPU_HAS_SYNC=y | 125 | CONFIG_CPU_HAS_SYNC=y |
121 | CONFIG_GENERIC_HARDIRQS=y | 126 | CONFIG_GENERIC_HARDIRQS=y |
122 | CONFIG_GENERIC_IRQ_PROBE=y | 127 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -137,7 +142,6 @@ CONFIG_PREEMPT_NONE=y | |||
137 | # Code maturity level options | 142 | # Code maturity level options |
138 | # | 143 | # |
139 | CONFIG_EXPERIMENTAL=y | 144 | CONFIG_EXPERIMENTAL=y |
140 | CONFIG_CLEAN_COMPILE=y | ||
141 | CONFIG_BROKEN_ON_SMP=y | 145 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 146 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | 147 | ||
@@ -153,6 +157,7 @@ CONFIG_SYSVIPC=y | |||
153 | CONFIG_SYSCTL=y | 157 | CONFIG_SYSCTL=y |
154 | # CONFIG_AUDIT is not set | 158 | # CONFIG_AUDIT is not set |
155 | # CONFIG_IKCONFIG is not set | 159 | # CONFIG_IKCONFIG is not set |
160 | # CONFIG_RELAY is not set | ||
156 | CONFIG_INITRAMFS_SOURCE="" | 161 | CONFIG_INITRAMFS_SOURCE="" |
157 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 162 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
158 | CONFIG_EMBEDDED=y | 163 | CONFIG_EMBEDDED=y |
@@ -166,10 +171,6 @@ CONFIG_BASE_FULL=y | |||
166 | CONFIG_FUTEX=y | 171 | CONFIG_FUTEX=y |
167 | CONFIG_EPOLL=y | 172 | CONFIG_EPOLL=y |
168 | CONFIG_SHMEM=y | 173 | CONFIG_SHMEM=y |
169 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
170 | CONFIG_CC_ALIGN_LABELS=0 | ||
171 | CONFIG_CC_ALIGN_LOOPS=0 | ||
172 | CONFIG_CC_ALIGN_JUMPS=0 | ||
173 | CONFIG_SLAB=y | 174 | CONFIG_SLAB=y |
174 | # CONFIG_TINY_SHMEM is not set | 175 | # CONFIG_TINY_SHMEM is not set |
175 | CONFIG_BASE_SMALL=0 | 176 | CONFIG_BASE_SMALL=0 |
@@ -181,7 +182,6 @@ CONFIG_BASE_SMALL=0 | |||
181 | CONFIG_MODULES=y | 182 | CONFIG_MODULES=y |
182 | CONFIG_MODULE_UNLOAD=y | 183 | CONFIG_MODULE_UNLOAD=y |
183 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 184 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
184 | CONFIG_OBSOLETE_MODPARM=y | ||
185 | CONFIG_MODVERSIONS=y | 185 | CONFIG_MODVERSIONS=y |
186 | CONFIG_MODULE_SRCVERSION_ALL=y | 186 | CONFIG_MODULE_SRCVERSION_ALL=y |
187 | CONFIG_KMOD=y | 187 | CONFIG_KMOD=y |
@@ -189,6 +189,9 @@ CONFIG_KMOD=y | |||
189 | # | 189 | # |
190 | # Block layer | 190 | # Block layer |
191 | # | 191 | # |
192 | # CONFIG_LBD is not set | ||
193 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
194 | # CONFIG_LSF is not set | ||
192 | 195 | ||
193 | # | 196 | # |
194 | # IO Schedulers | 197 | # IO Schedulers |
@@ -208,7 +211,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
208 | # | 211 | # |
209 | CONFIG_HW_HAS_PCI=y | 212 | CONFIG_HW_HAS_PCI=y |
210 | CONFIG_PCI=y | 213 | CONFIG_PCI=y |
211 | # CONFIG_PCI_LEGACY_PROC is not set | ||
212 | CONFIG_MMU=y | 214 | CONFIG_MMU=y |
213 | 215 | ||
214 | # | 216 | # |
@@ -226,6 +228,7 @@ CONFIG_MMU=y | |||
226 | # | 228 | # |
227 | CONFIG_BINFMT_ELF=y | 229 | CONFIG_BINFMT_ELF=y |
228 | # CONFIG_BINFMT_MISC is not set | 230 | # CONFIG_BINFMT_MISC is not set |
231 | CONFIG_TRAD_SIGNALS=y | ||
229 | 232 | ||
230 | # | 233 | # |
231 | # Networking | 234 | # Networking |
@@ -235,11 +238,10 @@ CONFIG_NET=y | |||
235 | # | 238 | # |
236 | # Networking options | 239 | # Networking options |
237 | # | 240 | # |
241 | # CONFIG_NETDEBUG is not set | ||
238 | CONFIG_PACKET=y | 242 | CONFIG_PACKET=y |
239 | # CONFIG_PACKET_MMAP is not set | 243 | # CONFIG_PACKET_MMAP is not set |
240 | CONFIG_UNIX=y | 244 | CONFIG_UNIX=y |
241 | CONFIG_XFRM=y | ||
242 | CONFIG_XFRM_USER=m | ||
243 | # CONFIG_NET_KEY is not set | 245 | # CONFIG_NET_KEY is not set |
244 | CONFIG_INET=y | 246 | CONFIG_INET=y |
245 | CONFIG_IP_MULTICAST=y | 247 | CONFIG_IP_MULTICAST=y |
@@ -264,12 +266,15 @@ CONFIG_SYN_COOKIES=y | |||
264 | # CONFIG_INET_AH is not set | 266 | # CONFIG_INET_AH is not set |
265 | # CONFIG_INET_ESP is not set | 267 | # CONFIG_INET_ESP is not set |
266 | # CONFIG_INET_IPCOMP is not set | 268 | # CONFIG_INET_IPCOMP is not set |
269 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
267 | CONFIG_INET_TUNNEL=m | 270 | CONFIG_INET_TUNNEL=m |
268 | CONFIG_INET_DIAG=y | 271 | CONFIG_INET_DIAG=y |
269 | CONFIG_INET_TCP_DIAG=y | 272 | CONFIG_INET_TCP_DIAG=y |
270 | # CONFIG_TCP_CONG_ADVANCED is not set | 273 | # CONFIG_TCP_CONG_ADVANCED is not set |
271 | CONFIG_TCP_CONG_BIC=y | 274 | CONFIG_TCP_CONG_BIC=y |
272 | # CONFIG_IPV6 is not set | 275 | # CONFIG_IPV6 is not set |
276 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
277 | # CONFIG_INET6_TUNNEL is not set | ||
273 | # CONFIG_NETFILTER is not set | 278 | # CONFIG_NETFILTER is not set |
274 | 279 | ||
275 | # | 280 | # |
@@ -281,6 +286,11 @@ CONFIG_TCP_CONG_BIC=y | |||
281 | # SCTP Configuration (EXPERIMENTAL) | 286 | # SCTP Configuration (EXPERIMENTAL) |
282 | # | 287 | # |
283 | # CONFIG_IP_SCTP is not set | 288 | # CONFIG_IP_SCTP is not set |
289 | |||
290 | # | ||
291 | # TIPC Configuration (EXPERIMENTAL) | ||
292 | # | ||
293 | # CONFIG_TIPC is not set | ||
284 | # CONFIG_ATM is not set | 294 | # CONFIG_ATM is not set |
285 | # CONFIG_BRIDGE is not set | 295 | # CONFIG_BRIDGE is not set |
286 | # CONFIG_VLAN_8021Q is not set | 296 | # CONFIG_VLAN_8021Q is not set |
@@ -290,11 +300,6 @@ CONFIG_TCP_CONG_BIC=y | |||
290 | # CONFIG_ATALK is not set | 300 | # CONFIG_ATALK is not set |
291 | # CONFIG_X25 is not set | 301 | # CONFIG_X25 is not set |
292 | # CONFIG_LAPB is not set | 302 | # CONFIG_LAPB is not set |
293 | |||
294 | # | ||
295 | # TIPC Configuration (EXPERIMENTAL) | ||
296 | # | ||
297 | # CONFIG_TIPC is not set | ||
298 | # CONFIG_NET_DIVERT is not set | 303 | # CONFIG_NET_DIVERT is not set |
299 | # CONFIG_ECONET is not set | 304 | # CONFIG_ECONET is not set |
300 | # CONFIG_WAN_ROUTER is not set | 305 | # CONFIG_WAN_ROUTER is not set |
@@ -311,10 +316,7 @@ CONFIG_TCP_CONG_BIC=y | |||
311 | # CONFIG_HAMRADIO is not set | 316 | # CONFIG_HAMRADIO is not set |
312 | # CONFIG_IRDA is not set | 317 | # CONFIG_IRDA is not set |
313 | # CONFIG_BT is not set | 318 | # CONFIG_BT is not set |
314 | CONFIG_IEEE80211=m | 319 | # CONFIG_IEEE80211 is not set |
315 | # CONFIG_IEEE80211_DEBUG is not set | ||
316 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
317 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
318 | 320 | ||
319 | # | 321 | # |
320 | # Device Drivers | 322 | # Device Drivers |
@@ -325,12 +327,12 @@ CONFIG_IEEE80211_CRYPT_CCMP=m | |||
325 | # | 327 | # |
326 | CONFIG_STANDALONE=y | 328 | CONFIG_STANDALONE=y |
327 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 329 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
328 | CONFIG_FW_LOADER=m | 330 | # CONFIG_FW_LOADER is not set |
329 | 331 | ||
330 | # | 332 | # |
331 | # Connector - unified userspace <-> kernelspace linker | 333 | # Connector - unified userspace <-> kernelspace linker |
332 | # | 334 | # |
333 | CONFIG_CONNECTOR=m | 335 | # CONFIG_CONNECTOR is not set |
334 | 336 | ||
335 | # | 337 | # |
336 | # Memory Technology Devices (MTD) | 338 | # Memory Technology Devices (MTD) |
@@ -363,10 +365,8 @@ CONFIG_BLK_DEV_RAM=y | |||
363 | CONFIG_BLK_DEV_RAM_COUNT=16 | 365 | CONFIG_BLK_DEV_RAM_COUNT=16 |
364 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 366 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
365 | # CONFIG_BLK_DEV_INITRD is not set | 367 | # CONFIG_BLK_DEV_INITRD is not set |
366 | CONFIG_CDROM_PKTCDVD=m | 368 | # CONFIG_CDROM_PKTCDVD is not set |
367 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 369 | # CONFIG_ATA_OVER_ETH is not set |
368 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
369 | CONFIG_ATA_OVER_ETH=m | ||
370 | 370 | ||
371 | # | 371 | # |
372 | # ATA/ATAPI/MFM/RLL support | 372 | # ATA/ATAPI/MFM/RLL support |
@@ -443,30 +443,7 @@ CONFIG_MII=y | |||
443 | # | 443 | # |
444 | # CONFIG_NET_TULIP is not set | 444 | # CONFIG_NET_TULIP is not set |
445 | # CONFIG_HP100 is not set | 445 | # CONFIG_HP100 is not set |
446 | CONFIG_NET_PCI=y | 446 | # CONFIG_NET_PCI is not set |
447 | # CONFIG_PCNET32 is not set | ||
448 | # CONFIG_AMD8111_ETH is not set | ||
449 | # CONFIG_ADAPTEC_STARFIRE is not set | ||
450 | # CONFIG_B44 is not set | ||
451 | # CONFIG_FORCEDETH is not set | ||
452 | # CONFIG_DGRS is not set | ||
453 | CONFIG_EEPRO100=y | ||
454 | # CONFIG_E100 is not set | ||
455 | # CONFIG_FEALNX is not set | ||
456 | # CONFIG_NATSEMI is not set | ||
457 | # CONFIG_NE2K_PCI is not set | ||
458 | # CONFIG_8139CP is not set | ||
459 | CONFIG_8139TOO=y | ||
460 | CONFIG_8139TOO_PIO=y | ||
461 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
462 | # CONFIG_8139TOO_8129 is not set | ||
463 | # CONFIG_8139_OLD_RX_RESET is not set | ||
464 | # CONFIG_SIS900 is not set | ||
465 | # CONFIG_EPIC100 is not set | ||
466 | # CONFIG_SUNDANCE is not set | ||
467 | # CONFIG_TLAN is not set | ||
468 | # CONFIG_VIA_RHINE is not set | ||
469 | # CONFIG_LAN_SAA9730 is not set | ||
470 | 447 | ||
471 | # | 448 | # |
472 | # Ethernet (1000 Mbit) | 449 | # Ethernet (1000 Mbit) |
@@ -483,7 +460,6 @@ CONFIG_R8169=y | |||
483 | # CONFIG_SKGE is not set | 460 | # CONFIG_SKGE is not set |
484 | # CONFIG_SKY2 is not set | 461 | # CONFIG_SKY2 is not set |
485 | # CONFIG_SK98LIN is not set | 462 | # CONFIG_SK98LIN is not set |
486 | # CONFIG_VIA_VELOCITY is not set | ||
487 | # CONFIG_TIGON3 is not set | 463 | # CONFIG_TIGON3 is not set |
488 | # CONFIG_BNX2 is not set | 464 | # CONFIG_BNX2 is not set |
489 | 465 | ||
@@ -510,19 +486,8 @@ CONFIG_R8169=y | |||
510 | # CONFIG_WAN is not set | 486 | # CONFIG_WAN is not set |
511 | # CONFIG_FDDI is not set | 487 | # CONFIG_FDDI is not set |
512 | # CONFIG_HIPPI is not set | 488 | # CONFIG_HIPPI is not set |
513 | CONFIG_PPP=m | 489 | # CONFIG_PPP is not set |
514 | CONFIG_PPP_MULTILINK=y | 490 | # CONFIG_SLIP is not set |
515 | CONFIG_PPP_FILTER=y | ||
516 | CONFIG_PPP_ASYNC=m | ||
517 | CONFIG_PPP_SYNC_TTY=m | ||
518 | CONFIG_PPP_DEFLATE=m | ||
519 | CONFIG_PPP_BSDCOMP=m | ||
520 | CONFIG_PPP_MPPE=m | ||
521 | CONFIG_PPPOE=m | ||
522 | CONFIG_SLIP=m | ||
523 | CONFIG_SLIP_COMPRESSED=y | ||
524 | CONFIG_SLIP_SMART=y | ||
525 | CONFIG_SLIP_MODE_SLIP6=y | ||
526 | # CONFIG_SHAPER is not set | 491 | # CONFIG_SHAPER is not set |
527 | # CONFIG_NETCONSOLE is not set | 492 | # CONFIG_NETCONSOLE is not set |
528 | # CONFIG_NETPOLL is not set | 493 | # CONFIG_NETPOLL is not set |
@@ -583,6 +548,11 @@ CONFIG_HW_CONSOLE=y | |||
583 | # | 548 | # |
584 | # Non-8250 serial port support | 549 | # Non-8250 serial port support |
585 | # | 550 | # |
551 | CONFIG_SERIAL_CORE=y | ||
552 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
553 | CONFIG_SERIAL_VR41XX=y | ||
554 | CONFIG_SERIAL_VR41XX_CONSOLE=y | ||
555 | # CONFIG_SERIAL_JSM is not set | ||
586 | CONFIG_UNIX98_PTYS=y | 556 | CONFIG_UNIX98_PTYS=y |
587 | CONFIG_LEGACY_PTYS=y | 557 | CONFIG_LEGACY_PTYS=y |
588 | CONFIG_LEGACY_PTY_COUNT=256 | 558 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -607,6 +577,7 @@ CONFIG_TANBAC_TB0219=y | |||
607 | # Ftape, the floppy tape device driver | 577 | # Ftape, the floppy tape device driver |
608 | # | 578 | # |
609 | # CONFIG_DRM is not set | 579 | # CONFIG_DRM is not set |
580 | CONFIG_GPIO_VR41XX=y | ||
610 | # CONFIG_RAW_DRIVER is not set | 581 | # CONFIG_RAW_DRIVER is not set |
611 | 582 | ||
612 | # | 583 | # |
@@ -642,10 +613,6 @@ CONFIG_TANBAC_TB0219=y | |||
642 | # | 613 | # |
643 | 614 | ||
644 | # | 615 | # |
645 | # Multimedia Capabilities Port drivers | ||
646 | # | ||
647 | |||
648 | # | ||
649 | # Multimedia devices | 616 | # Multimedia devices |
650 | # | 617 | # |
651 | # CONFIG_VIDEO_DEV is not set | 618 | # CONFIG_VIDEO_DEV is not set |
@@ -654,6 +621,7 @@ CONFIG_TANBAC_TB0219=y | |||
654 | # Digital Video Broadcasting Devices | 621 | # Digital Video Broadcasting Devices |
655 | # | 622 | # |
656 | # CONFIG_DVB is not set | 623 | # CONFIG_DVB is not set |
624 | # CONFIG_USB_DABUSB is not set | ||
657 | 625 | ||
658 | # | 626 | # |
659 | # Graphics support | 627 | # Graphics support |
@@ -676,6 +644,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
676 | # | 644 | # |
677 | CONFIG_USB_ARCH_HAS_HCD=y | 645 | CONFIG_USB_ARCH_HAS_HCD=y |
678 | CONFIG_USB_ARCH_HAS_OHCI=y | 646 | CONFIG_USB_ARCH_HAS_OHCI=y |
647 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
679 | CONFIG_USB=m | 648 | CONFIG_USB=m |
680 | # CONFIG_USB_DEBUG is not set | 649 | # CONFIG_USB_DEBUG is not set |
681 | 650 | ||
@@ -731,9 +700,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
731 | # CONFIG_USB_ACECAD is not set | 700 | # CONFIG_USB_ACECAD is not set |
732 | # CONFIG_USB_KBTAB is not set | 701 | # CONFIG_USB_KBTAB is not set |
733 | # CONFIG_USB_POWERMATE is not set | 702 | # CONFIG_USB_POWERMATE is not set |
734 | # CONFIG_USB_MTOUCH is not set | 703 | # CONFIG_USB_TOUCHSCREEN is not set |
735 | # CONFIG_USB_ITMTOUCH is not set | ||
736 | # CONFIG_USB_EGALAX is not set | ||
737 | # CONFIG_USB_YEALINK is not set | 704 | # CONFIG_USB_YEALINK is not set |
738 | # CONFIG_USB_XPAD is not set | 705 | # CONFIG_USB_XPAD is not set |
739 | # CONFIG_USB_ATI_REMOTE is not set | 706 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -747,15 +714,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
747 | # CONFIG_USB_MDC800 is not set | 714 | # CONFIG_USB_MDC800 is not set |
748 | 715 | ||
749 | # | 716 | # |
750 | # USB Multimedia devices | ||
751 | # | ||
752 | # CONFIG_USB_DABUSB is not set | ||
753 | |||
754 | # | ||
755 | # Video4Linux support is needed for USB Multimedia device support | ||
756 | # | ||
757 | |||
758 | # | ||
759 | # USB Network Adapters | 717 | # USB Network Adapters |
760 | # | 718 | # |
761 | # CONFIG_USB_CATC is not set | 719 | # CONFIG_USB_CATC is not set |
@@ -807,13 +765,48 @@ CONFIG_USB_MON=y | |||
807 | # CONFIG_MMC is not set | 765 | # CONFIG_MMC is not set |
808 | 766 | ||
809 | # | 767 | # |
768 | # LED devices | ||
769 | # | ||
770 | # CONFIG_NEW_LEDS is not set | ||
771 | |||
772 | # | ||
773 | # LED drivers | ||
774 | # | ||
775 | |||
776 | # | ||
777 | # LED Triggers | ||
778 | # | ||
779 | |||
780 | # | ||
810 | # InfiniBand support | 781 | # InfiniBand support |
811 | # | 782 | # |
812 | # CONFIG_INFINIBAND is not set | 783 | # CONFIG_INFINIBAND is not set |
813 | 784 | ||
814 | # | 785 | # |
815 | # SN Devices | 786 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
787 | # | ||
788 | |||
789 | # | ||
790 | # Real Time Clock | ||
791 | # | ||
792 | CONFIG_RTC_LIB=y | ||
793 | CONFIG_RTC_CLASS=y | ||
794 | CONFIG_RTC_HCTOSYS=y | ||
795 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
796 | |||
797 | # | ||
798 | # RTC interfaces | ||
799 | # | ||
800 | CONFIG_RTC_INTF_SYSFS=y | ||
801 | CONFIG_RTC_INTF_PROC=y | ||
802 | CONFIG_RTC_INTF_DEV=y | ||
803 | |||
804 | # | ||
805 | # RTC drivers | ||
816 | # | 806 | # |
807 | # CONFIG_RTC_DRV_M48T86 is not set | ||
808 | CONFIG_RTC_DRV_VR41XX=y | ||
809 | # CONFIG_RTC_DRV_TEST is not set | ||
817 | 810 | ||
818 | # | 811 | # |
819 | # File systems | 812 | # File systems |
@@ -821,32 +814,16 @@ CONFIG_USB_MON=y | |||
821 | CONFIG_EXT2_FS=y | 814 | CONFIG_EXT2_FS=y |
822 | # CONFIG_EXT2_FS_XATTR is not set | 815 | # CONFIG_EXT2_FS_XATTR is not set |
823 | # CONFIG_EXT2_FS_XIP is not set | 816 | # CONFIG_EXT2_FS_XIP is not set |
824 | CONFIG_EXT3_FS=m | 817 | # CONFIG_EXT3_FS is not set |
825 | CONFIG_EXT3_FS_XATTR=y | ||
826 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
827 | CONFIG_EXT3_FS_SECURITY=y | ||
828 | CONFIG_JBD=m | ||
829 | # CONFIG_JBD_DEBUG is not set | ||
830 | CONFIG_FS_MBCACHE=y | ||
831 | # CONFIG_REISERFS_FS is not set | 818 | # CONFIG_REISERFS_FS is not set |
832 | CONFIG_JFS_FS=m | 819 | # CONFIG_JFS_FS is not set |
833 | # CONFIG_JFS_POSIX_ACL is not set | ||
834 | # CONFIG_JFS_SECURITY is not set | ||
835 | # CONFIG_JFS_DEBUG is not set | ||
836 | # CONFIG_JFS_STATISTICS is not set | ||
837 | # CONFIG_FS_POSIX_ACL is not set | 820 | # CONFIG_FS_POSIX_ACL is not set |
838 | CONFIG_XFS_FS=y | 821 | # CONFIG_XFS_FS is not set |
839 | CONFIG_XFS_EXPORT=y | ||
840 | CONFIG_XFS_QUOTA=y | ||
841 | # CONFIG_XFS_SECURITY is not set | ||
842 | CONFIG_XFS_POSIX_ACL=y | ||
843 | # CONFIG_XFS_RT is not set | ||
844 | # CONFIG_OCFS2_FS is not set | 822 | # CONFIG_OCFS2_FS is not set |
845 | # CONFIG_MINIX_FS is not set | 823 | # CONFIG_MINIX_FS is not set |
846 | CONFIG_ROMFS_FS=m | 824 | CONFIG_ROMFS_FS=m |
847 | CONFIG_INOTIFY=y | 825 | CONFIG_INOTIFY=y |
848 | # CONFIG_QUOTA is not set | 826 | # CONFIG_QUOTA is not set |
849 | CONFIG_QUOTACTL=y | ||
850 | CONFIG_DNOTIFY=y | 827 | CONFIG_DNOTIFY=y |
851 | # CONFIG_AUTOFS_FS is not set | 828 | # CONFIG_AUTOFS_FS is not set |
852 | CONFIG_AUTOFS4_FS=y | 829 | CONFIG_AUTOFS4_FS=y |
@@ -855,20 +832,14 @@ CONFIG_FUSE_FS=m | |||
855 | # | 832 | # |
856 | # CD-ROM/DVD Filesystems | 833 | # CD-ROM/DVD Filesystems |
857 | # | 834 | # |
858 | CONFIG_ISO9660_FS=y | 835 | # CONFIG_ISO9660_FS is not set |
859 | CONFIG_JOLIET=y | ||
860 | CONFIG_ZISOFS=y | ||
861 | CONFIG_ZISOFS_FS=y | ||
862 | # CONFIG_UDF_FS is not set | 836 | # CONFIG_UDF_FS is not set |
863 | 837 | ||
864 | # | 838 | # |
865 | # DOS/FAT/NT Filesystems | 839 | # DOS/FAT/NT Filesystems |
866 | # | 840 | # |
867 | CONFIG_FAT_FS=m | 841 | # CONFIG_MSDOS_FS is not set |
868 | CONFIG_MSDOS_FS=m | 842 | # CONFIG_VFAT_FS is not set |
869 | CONFIG_VFAT_FS=m | ||
870 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
871 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
872 | # CONFIG_NTFS_FS is not set | 843 | # CONFIG_NTFS_FS is not set |
873 | 844 | ||
874 | # | 845 | # |
@@ -880,7 +851,6 @@ CONFIG_SYSFS=y | |||
880 | CONFIG_TMPFS=y | 851 | CONFIG_TMPFS=y |
881 | # CONFIG_HUGETLB_PAGE is not set | 852 | # CONFIG_HUGETLB_PAGE is not set |
882 | CONFIG_RAMFS=y | 853 | CONFIG_RAMFS=y |
883 | CONFIG_RELAYFS_FS=m | ||
884 | # CONFIG_CONFIGFS_FS is not set | 854 | # CONFIG_CONFIGFS_FS is not set |
885 | 855 | ||
886 | # | 856 | # |
@@ -921,9 +891,7 @@ CONFIG_NFS_COMMON=y | |||
921 | CONFIG_SUNRPC=y | 891 | CONFIG_SUNRPC=y |
922 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 892 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
923 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 893 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
924 | CONFIG_SMB_FS=m | 894 | # CONFIG_SMB_FS is not set |
925 | CONFIG_SMB_NLS_DEFAULT=y | ||
926 | CONFIG_SMB_NLS_REMOTE="cp932" | ||
927 | # CONFIG_CIFS is not set | 895 | # CONFIG_CIFS is not set |
928 | # CONFIG_NCP_FS is not set | 896 | # CONFIG_NCP_FS is not set |
929 | # CONFIG_CODA_FS is not set | 897 | # CONFIG_CODA_FS is not set |
@@ -939,46 +907,7 @@ CONFIG_MSDOS_PARTITION=y | |||
939 | # | 907 | # |
940 | # Native Language Support | 908 | # Native Language Support |
941 | # | 909 | # |
942 | CONFIG_NLS=y | 910 | # CONFIG_NLS is not set |
943 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
944 | CONFIG_NLS_CODEPAGE_437=m | ||
945 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
946 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
947 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
948 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
949 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
950 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
951 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
952 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
953 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
954 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
955 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
956 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
957 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
958 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
959 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
960 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
961 | CONFIG_NLS_CODEPAGE_932=m | ||
962 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
963 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
964 | # CONFIG_NLS_ISO8859_8 is not set | ||
965 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
966 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
967 | # CONFIG_NLS_ASCII is not set | ||
968 | CONFIG_NLS_ISO8859_1=m | ||
969 | # CONFIG_NLS_ISO8859_2 is not set | ||
970 | # CONFIG_NLS_ISO8859_3 is not set | ||
971 | # CONFIG_NLS_ISO8859_4 is not set | ||
972 | # CONFIG_NLS_ISO8859_5 is not set | ||
973 | # CONFIG_NLS_ISO8859_6 is not set | ||
974 | # CONFIG_NLS_ISO8859_7 is not set | ||
975 | # CONFIG_NLS_ISO8859_9 is not set | ||
976 | # CONFIG_NLS_ISO8859_13 is not set | ||
977 | # CONFIG_NLS_ISO8859_14 is not set | ||
978 | # CONFIG_NLS_ISO8859_15 is not set | ||
979 | # CONFIG_NLS_KOI8_R is not set | ||
980 | # CONFIG_NLS_KOI8_U is not set | ||
981 | # CONFIG_NLS_UTF8 is not set | ||
982 | 911 | ||
983 | # | 912 | # |
984 | # Profiling support | 913 | # Profiling support |
@@ -992,44 +921,20 @@ CONFIG_NLS_ISO8859_1=m | |||
992 | # CONFIG_MAGIC_SYSRQ is not set | 921 | # CONFIG_MAGIC_SYSRQ is not set |
993 | # CONFIG_DEBUG_KERNEL is not set | 922 | # CONFIG_DEBUG_KERNEL is not set |
994 | CONFIG_LOG_BUF_SHIFT=14 | 923 | CONFIG_LOG_BUF_SHIFT=14 |
924 | # CONFIG_DEBUG_FS is not set | ||
995 | CONFIG_CROSSCOMPILE=y | 925 | CONFIG_CROSSCOMPILE=y |
996 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" | 926 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" |
997 | 927 | ||
998 | # | 928 | # |
999 | # Security options | 929 | # Security options |
1000 | # | 930 | # |
1001 | CONFIG_KEYS=y | 931 | # CONFIG_KEYS is not set |
1002 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
1003 | # CONFIG_SECURITY is not set | 932 | # CONFIG_SECURITY is not set |
1004 | 933 | ||
1005 | # | 934 | # |
1006 | # Cryptographic options | 935 | # Cryptographic options |
1007 | # | 936 | # |
1008 | CONFIG_CRYPTO=y | 937 | # CONFIG_CRYPTO is not set |
1009 | CONFIG_CRYPTO_HMAC=y | ||
1010 | CONFIG_CRYPTO_NULL=m | ||
1011 | CONFIG_CRYPTO_MD4=m | ||
1012 | CONFIG_CRYPTO_MD5=m | ||
1013 | CONFIG_CRYPTO_SHA1=m | ||
1014 | CONFIG_CRYPTO_SHA256=m | ||
1015 | CONFIG_CRYPTO_SHA512=m | ||
1016 | CONFIG_CRYPTO_WP512=m | ||
1017 | CONFIG_CRYPTO_TGR192=m | ||
1018 | CONFIG_CRYPTO_DES=m | ||
1019 | CONFIG_CRYPTO_BLOWFISH=m | ||
1020 | CONFIG_CRYPTO_TWOFISH=m | ||
1021 | CONFIG_CRYPTO_SERPENT=m | ||
1022 | CONFIG_CRYPTO_AES=m | ||
1023 | CONFIG_CRYPTO_CAST5=m | ||
1024 | CONFIG_CRYPTO_CAST6=m | ||
1025 | CONFIG_CRYPTO_TEA=m | ||
1026 | CONFIG_CRYPTO_ARC4=m | ||
1027 | CONFIG_CRYPTO_KHAZAD=m | ||
1028 | CONFIG_CRYPTO_ANUBIS=m | ||
1029 | CONFIG_CRYPTO_DEFLATE=m | ||
1030 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1031 | CONFIG_CRYPTO_CRC32C=m | ||
1032 | # CONFIG_CRYPTO_TEST is not set | ||
1033 | 938 | ||
1034 | # | 939 | # |
1035 | # Hardware crypto devices | 940 | # Hardware crypto devices |
@@ -1038,9 +943,8 @@ CONFIG_CRYPTO_CRC32C=m | |||
1038 | # | 943 | # |
1039 | # Library routines | 944 | # Library routines |
1040 | # | 945 | # |
1041 | CONFIG_CRC_CCITT=m | 946 | # CONFIG_CRC_CCITT is not set |
1042 | CONFIG_CRC16=m | 947 | # CONFIG_CRC16 is not set |
1043 | CONFIG_CRC32=y | 948 | CONFIG_CRC32=y |
1044 | CONFIG_LIBCRC32C=m | 949 | # CONFIG_LIBCRC32C is not set |
1045 | CONFIG_ZLIB_INFLATE=y | 950 | CONFIG_ZLIB_INFLATE=m |
1046 | CONFIG_ZLIB_DEFLATE=m | ||
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig index 8a1e3ace0b2c..9f215ea350dc 100644 --- a/arch/mips/configs/tb0287_defconfig +++ b/arch/mips/configs/tb0287_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Wed Mar 22 11:07:34 2006 | 4 | # Tue Apr 25 00:09:17 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -74,7 +74,10 @@ CONFIG_TANBAC_TB0287=y | |||
74 | CONFIG_PCI_VR41XX=y | 74 | CONFIG_PCI_VR41XX=y |
75 | # CONFIG_VRC4173 is not set | 75 | # CONFIG_VRC4173 is not set |
76 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 76 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
77 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
78 | CONFIG_GENERIC_HWEIGHT=y | ||
77 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 79 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
80 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
78 | CONFIG_DMA_NONCOHERENT=y | 81 | CONFIG_DMA_NONCOHERENT=y |
79 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 82 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
80 | # CONFIG_CPU_BIG_ENDIAN is not set | 83 | # CONFIG_CPU_BIG_ENDIAN is not set |
@@ -107,7 +110,6 @@ CONFIG_CPU_VR41XX=y | |||
107 | # CONFIG_CPU_SB1 is not set | 110 | # CONFIG_CPU_SB1 is not set |
108 | CONFIG_SYS_HAS_CPU_VR41XX=y | 111 | CONFIG_SYS_HAS_CPU_VR41XX=y |
109 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 112 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
110 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
111 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 113 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
112 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 114 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
113 | 115 | ||
@@ -121,7 +123,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
121 | # CONFIG_PAGE_SIZE_16KB is not set | 123 | # CONFIG_PAGE_SIZE_16KB is not set |
122 | # CONFIG_PAGE_SIZE_64KB is not set | 124 | # CONFIG_PAGE_SIZE_64KB is not set |
123 | # CONFIG_MIPS_MT is not set | 125 | # CONFIG_MIPS_MT is not set |
124 | # CONFIG_CPU_ADVANCED is not set | ||
125 | CONFIG_CPU_HAS_SYNC=y | 126 | CONFIG_CPU_HAS_SYNC=y |
126 | CONFIG_GENERIC_HARDIRQS=y | 127 | CONFIG_GENERIC_HARDIRQS=y |
127 | CONFIG_GENERIC_IRQ_PROBE=y | 128 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -157,6 +158,7 @@ CONFIG_SYSVIPC=y | |||
157 | CONFIG_SYSCTL=y | 158 | CONFIG_SYSCTL=y |
158 | # CONFIG_AUDIT is not set | 159 | # CONFIG_AUDIT is not set |
159 | # CONFIG_IKCONFIG is not set | 160 | # CONFIG_IKCONFIG is not set |
161 | # CONFIG_RELAY is not set | ||
160 | CONFIG_INITRAMFS_SOURCE="" | 162 | CONFIG_INITRAMFS_SOURCE="" |
161 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 163 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
162 | CONFIG_EMBEDDED=y | 164 | CONFIG_EMBEDDED=y |
@@ -170,10 +172,6 @@ CONFIG_BASE_FULL=y | |||
170 | CONFIG_FUTEX=y | 172 | CONFIG_FUTEX=y |
171 | CONFIG_EPOLL=y | 173 | CONFIG_EPOLL=y |
172 | CONFIG_SHMEM=y | 174 | CONFIG_SHMEM=y |
173 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
174 | CONFIG_CC_ALIGN_LABELS=0 | ||
175 | CONFIG_CC_ALIGN_LOOPS=0 | ||
176 | CONFIG_CC_ALIGN_JUMPS=0 | ||
177 | CONFIG_SLAB=y | 175 | CONFIG_SLAB=y |
178 | # CONFIG_TINY_SHMEM is not set | 176 | # CONFIG_TINY_SHMEM is not set |
179 | CONFIG_BASE_SMALL=0 | 177 | CONFIG_BASE_SMALL=0 |
@@ -185,7 +183,6 @@ CONFIG_BASE_SMALL=0 | |||
185 | CONFIG_MODULES=y | 183 | CONFIG_MODULES=y |
186 | CONFIG_MODULE_UNLOAD=y | 184 | CONFIG_MODULE_UNLOAD=y |
187 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 185 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
188 | CONFIG_OBSOLETE_MODPARM=y | ||
189 | CONFIG_MODVERSIONS=y | 186 | CONFIG_MODVERSIONS=y |
190 | CONFIG_MODULE_SRCVERSION_ALL=y | 187 | CONFIG_MODULE_SRCVERSION_ALL=y |
191 | CONFIG_KMOD=y | 188 | CONFIG_KMOD=y |
@@ -194,6 +191,8 @@ CONFIG_KMOD=y | |||
194 | # Block layer | 191 | # Block layer |
195 | # | 192 | # |
196 | # CONFIG_LBD is not set | 193 | # CONFIG_LBD is not set |
194 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
195 | # CONFIG_LSF is not set | ||
197 | 196 | ||
198 | # | 197 | # |
199 | # IO Schedulers | 198 | # IO Schedulers |
@@ -213,7 +212,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
213 | # | 212 | # |
214 | CONFIG_HW_HAS_PCI=y | 213 | CONFIG_HW_HAS_PCI=y |
215 | CONFIG_PCI=y | 214 | CONFIG_PCI=y |
216 | # CONFIG_PCI_LEGACY_PROC is not set | ||
217 | CONFIG_MMU=y | 215 | CONFIG_MMU=y |
218 | 216 | ||
219 | # | 217 | # |
@@ -245,8 +243,6 @@ CONFIG_NET=y | |||
245 | CONFIG_PACKET=y | 243 | CONFIG_PACKET=y |
246 | # CONFIG_PACKET_MMAP is not set | 244 | # CONFIG_PACKET_MMAP is not set |
247 | CONFIG_UNIX=y | 245 | CONFIG_UNIX=y |
248 | CONFIG_XFRM=y | ||
249 | CONFIG_XFRM_USER=m | ||
250 | # CONFIG_NET_KEY is not set | 246 | # CONFIG_NET_KEY is not set |
251 | CONFIG_INET=y | 247 | CONFIG_INET=y |
252 | CONFIG_IP_MULTICAST=y | 248 | CONFIG_IP_MULTICAST=y |
@@ -271,6 +267,7 @@ CONFIG_SYN_COOKIES=y | |||
271 | # CONFIG_INET_AH is not set | 267 | # CONFIG_INET_AH is not set |
272 | # CONFIG_INET_ESP is not set | 268 | # CONFIG_INET_ESP is not set |
273 | # CONFIG_INET_IPCOMP is not set | 269 | # CONFIG_INET_IPCOMP is not set |
270 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
274 | CONFIG_INET_TUNNEL=m | 271 | CONFIG_INET_TUNNEL=m |
275 | CONFIG_INET_DIAG=y | 272 | CONFIG_INET_DIAG=y |
276 | CONFIG_INET_TCP_DIAG=y | 273 | CONFIG_INET_TCP_DIAG=y |
@@ -288,6 +285,8 @@ CONFIG_TCP_CONG_HTCP=m | |||
288 | # CONFIG_TCP_CONG_VEGAS is not set | 285 | # CONFIG_TCP_CONG_VEGAS is not set |
289 | # CONFIG_TCP_CONG_SCALABLE is not set | 286 | # CONFIG_TCP_CONG_SCALABLE is not set |
290 | # CONFIG_IPV6 is not set | 287 | # CONFIG_IPV6 is not set |
288 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
289 | # CONFIG_INET6_TUNNEL is not set | ||
291 | # CONFIG_NETFILTER is not set | 290 | # CONFIG_NETFILTER is not set |
292 | 291 | ||
293 | # | 292 | # |
@@ -493,7 +492,6 @@ CONFIG_BLK_DEV_SD=y | |||
493 | # CONFIG_SCSI_INIA100 is not set | 492 | # CONFIG_SCSI_INIA100 is not set |
494 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 493 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
495 | # CONFIG_SCSI_IPR is not set | 494 | # CONFIG_SCSI_IPR is not set |
496 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
497 | # CONFIG_SCSI_QLOGIC_1280 is not set | 495 | # CONFIG_SCSI_QLOGIC_1280 is not set |
498 | # CONFIG_SCSI_QLA_FC is not set | 496 | # CONFIG_SCSI_QLA_FC is not set |
499 | # CONFIG_SCSI_LPFC is not set | 497 | # CONFIG_SCSI_LPFC is not set |
@@ -714,7 +712,6 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
714 | # CONFIG_WATCHDOG is not set | 712 | # CONFIG_WATCHDOG is not set |
715 | # CONFIG_RTC is not set | 713 | # CONFIG_RTC is not set |
716 | # CONFIG_GEN_RTC is not set | 714 | # CONFIG_GEN_RTC is not set |
717 | # CONFIG_RTC_VR41XX is not set | ||
718 | # CONFIG_DTLK is not set | 715 | # CONFIG_DTLK is not set |
719 | # CONFIG_R3964 is not set | 716 | # CONFIG_R3964 is not set |
720 | # CONFIG_APPLICOM is not set | 717 | # CONFIG_APPLICOM is not set |
@@ -760,10 +757,6 @@ CONFIG_GPIO_VR41XX=y | |||
760 | # | 757 | # |
761 | 758 | ||
762 | # | 759 | # |
763 | # Multimedia Capabilities Port drivers | ||
764 | # | ||
765 | |||
766 | # | ||
767 | # Multimedia devices | 760 | # Multimedia devices |
768 | # | 761 | # |
769 | # CONFIG_VIDEO_DEV is not set | 762 | # CONFIG_VIDEO_DEV is not set |
@@ -772,17 +765,53 @@ CONFIG_GPIO_VR41XX=y | |||
772 | # Digital Video Broadcasting Devices | 765 | # Digital Video Broadcasting Devices |
773 | # | 766 | # |
774 | # CONFIG_DVB is not set | 767 | # CONFIG_DVB is not set |
768 | # CONFIG_USB_DABUSB is not set | ||
775 | 769 | ||
776 | # | 770 | # |
777 | # Graphics support | 771 | # Graphics support |
778 | # | 772 | # |
779 | # CONFIG_FB is not set | 773 | CONFIG_FB=y |
774 | CONFIG_FB_CFB_FILLRECT=y | ||
775 | CONFIG_FB_CFB_COPYAREA=y | ||
776 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
777 | # CONFIG_FB_MACMODES is not set | ||
778 | CONFIG_FB_FIRMWARE_EDID=y | ||
779 | # CONFIG_FB_MODE_HELPERS is not set | ||
780 | # CONFIG_FB_TILEBLITTING is not set | ||
781 | # CONFIG_FB_CIRRUS is not set | ||
782 | # CONFIG_FB_PM2 is not set | ||
783 | # CONFIG_FB_CYBER2000 is not set | ||
784 | # CONFIG_FB_ASILIANT is not set | ||
785 | # CONFIG_FB_IMSTT is not set | ||
786 | # CONFIG_FB_S1D13XXX is not set | ||
787 | # CONFIG_FB_NVIDIA is not set | ||
788 | # CONFIG_FB_RIVA is not set | ||
789 | # CONFIG_FB_MATROX is not set | ||
790 | # CONFIG_FB_RADEON is not set | ||
791 | # CONFIG_FB_ATY128 is not set | ||
792 | # CONFIG_FB_ATY is not set | ||
793 | # CONFIG_FB_SAVAGE is not set | ||
794 | # CONFIG_FB_SIS is not set | ||
795 | # CONFIG_FB_NEOMAGIC is not set | ||
796 | # CONFIG_FB_KYRO is not set | ||
797 | # CONFIG_FB_3DFX is not set | ||
798 | # CONFIG_FB_VOODOO1 is not set | ||
799 | CONFIG_FB_SMIVGX=y | ||
800 | # CONFIG_FB_TRIDENT is not set | ||
801 | # CONFIG_FB_VIRTUAL is not set | ||
780 | 802 | ||
781 | # | 803 | # |
782 | # Console display driver support | 804 | # Console display driver support |
783 | # | 805 | # |
784 | # CONFIG_VGA_CONSOLE is not set | 806 | # CONFIG_VGA_CONSOLE is not set |
785 | CONFIG_DUMMY_CONSOLE=y | 807 | CONFIG_DUMMY_CONSOLE=y |
808 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | ||
809 | |||
810 | # | ||
811 | # Logo configuration | ||
812 | # | ||
813 | # CONFIG_LOGO is not set | ||
814 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
786 | 815 | ||
787 | # | 816 | # |
788 | # Sound | 817 | # Sound |
@@ -794,6 +823,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
794 | # | 823 | # |
795 | CONFIG_USB_ARCH_HAS_HCD=y | 824 | CONFIG_USB_ARCH_HAS_HCD=y |
796 | CONFIG_USB_ARCH_HAS_OHCI=y | 825 | CONFIG_USB_ARCH_HAS_OHCI=y |
826 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
797 | CONFIG_USB=m | 827 | CONFIG_USB=m |
798 | # CONFIG_USB_DEBUG is not set | 828 | # CONFIG_USB_DEBUG is not set |
799 | 829 | ||
@@ -863,9 +893,7 @@ CONFIG_USB_HIDINPUT=y | |||
863 | # CONFIG_USB_ACECAD is not set | 893 | # CONFIG_USB_ACECAD is not set |
864 | # CONFIG_USB_KBTAB is not set | 894 | # CONFIG_USB_KBTAB is not set |
865 | # CONFIG_USB_POWERMATE is not set | 895 | # CONFIG_USB_POWERMATE is not set |
866 | # CONFIG_USB_MTOUCH is not set | 896 | # CONFIG_USB_TOUCHSCREEN is not set |
867 | # CONFIG_USB_ITMTOUCH is not set | ||
868 | # CONFIG_USB_EGALAX is not set | ||
869 | # CONFIG_USB_YEALINK is not set | 897 | # CONFIG_USB_YEALINK is not set |
870 | # CONFIG_USB_XPAD is not set | 898 | # CONFIG_USB_XPAD is not set |
871 | # CONFIG_USB_ATI_REMOTE is not set | 899 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -880,15 +908,6 @@ CONFIG_USB_HIDINPUT=y | |||
880 | # CONFIG_USB_MICROTEK is not set | 908 | # CONFIG_USB_MICROTEK is not set |
881 | 909 | ||
882 | # | 910 | # |
883 | # USB Multimedia devices | ||
884 | # | ||
885 | # CONFIG_USB_DABUSB is not set | ||
886 | |||
887 | # | ||
888 | # Video4Linux support is needed for USB Multimedia device support | ||
889 | # | ||
890 | |||
891 | # | ||
892 | # USB Network Adapters | 911 | # USB Network Adapters |
893 | # | 912 | # |
894 | # CONFIG_USB_CATC is not set | 913 | # CONFIG_USB_CATC is not set |
@@ -939,6 +958,19 @@ CONFIG_USB_MON=y | |||
939 | # CONFIG_MMC is not set | 958 | # CONFIG_MMC is not set |
940 | 959 | ||
941 | # | 960 | # |
961 | # LED devices | ||
962 | # | ||
963 | # CONFIG_NEW_LEDS is not set | ||
964 | |||
965 | # | ||
966 | # LED drivers | ||
967 | # | ||
968 | |||
969 | # | ||
970 | # LED Triggers | ||
971 | # | ||
972 | |||
973 | # | ||
942 | # InfiniBand support | 974 | # InfiniBand support |
943 | # | 975 | # |
944 | # CONFIG_INFINIBAND is not set | 976 | # CONFIG_INFINIBAND is not set |
@@ -948,6 +980,11 @@ CONFIG_USB_MON=y | |||
948 | # | 980 | # |
949 | 981 | ||
950 | # | 982 | # |
983 | # Real Time Clock | ||
984 | # | ||
985 | # CONFIG_RTC_CLASS is not set | ||
986 | |||
987 | # | ||
951 | # File systems | 988 | # File systems |
952 | # | 989 | # |
953 | CONFIG_EXT2_FS=y | 990 | CONFIG_EXT2_FS=y |
@@ -1001,7 +1038,6 @@ CONFIG_SYSFS=y | |||
1001 | CONFIG_TMPFS=y | 1038 | CONFIG_TMPFS=y |
1002 | # CONFIG_HUGETLB_PAGE is not set | 1039 | # CONFIG_HUGETLB_PAGE is not set |
1003 | CONFIG_RAMFS=y | 1040 | CONFIG_RAMFS=y |
1004 | # CONFIG_RELAYFS_FS is not set | ||
1005 | # CONFIG_CONFIGFS_FS is not set | 1041 | # CONFIG_CONFIGFS_FS is not set |
1006 | 1042 | ||
1007 | # | 1043 | # |
@@ -1067,14 +1103,14 @@ CONFIG_MSDOS_PARTITION=y | |||
1067 | # CONFIG_MAGIC_SYSRQ is not set | 1103 | # CONFIG_MAGIC_SYSRQ is not set |
1068 | # CONFIG_DEBUG_KERNEL is not set | 1104 | # CONFIG_DEBUG_KERNEL is not set |
1069 | CONFIG_LOG_BUF_SHIFT=14 | 1105 | CONFIG_LOG_BUF_SHIFT=14 |
1106 | # CONFIG_DEBUG_FS is not set | ||
1070 | CONFIG_CROSSCOMPILE=y | 1107 | CONFIG_CROSSCOMPILE=y |
1071 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" | 1108 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" |
1072 | 1109 | ||
1073 | # | 1110 | # |
1074 | # Security options | 1111 | # Security options |
1075 | # | 1112 | # |
1076 | CONFIG_KEYS=y | 1113 | # CONFIG_KEYS is not set |
1077 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
1078 | # CONFIG_SECURITY is not set | 1114 | # CONFIG_SECURITY is not set |
1079 | 1115 | ||
1080 | # | 1116 | # |
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig index 7132e296d40a..ac7765eb8da7 100644 --- a/arch/mips/configs/workpad_defconfig +++ b/arch/mips/configs/workpad_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:36 2006 | 4 | # Tue Apr 25 00:09:33 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -70,6 +70,8 @@ CONFIG_IBM_WORKPAD=y | |||
70 | # CONFIG_VICTOR_MPC30X is not set | 70 | # CONFIG_VICTOR_MPC30X is not set |
71 | # CONFIG_ZAO_CAPCELLA is not set | 71 | # CONFIG_ZAO_CAPCELLA is not set |
72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 72 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
73 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
74 | CONFIG_GENERIC_HWEIGHT=y | ||
73 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 75 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
74 | CONFIG_DMA_NONCOHERENT=y | 76 | CONFIG_DMA_NONCOHERENT=y |
75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 77 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
@@ -88,7 +90,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
88 | # CONFIG_CPU_MIPS64_R2 is not set | 90 | # CONFIG_CPU_MIPS64_R2 is not set |
89 | # CONFIG_CPU_R3000 is not set | 91 | # CONFIG_CPU_R3000 is not set |
90 | # CONFIG_CPU_TX39XX is not set | 92 | # CONFIG_CPU_TX39XX is not set |
91 | # CONFIG_CPU_VR41XX is not set | 93 | CONFIG_CPU_VR41XX=y |
92 | # CONFIG_CPU_R4300 is not set | 94 | # CONFIG_CPU_R4300 is not set |
93 | # CONFIG_CPU_R4X00 is not set | 95 | # CONFIG_CPU_R4X00 is not set |
94 | # CONFIG_CPU_TX49XX is not set | 96 | # CONFIG_CPU_TX49XX is not set |
@@ -101,18 +103,21 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
101 | # CONFIG_CPU_RM7000 is not set | 103 | # CONFIG_CPU_RM7000 is not set |
102 | # CONFIG_CPU_RM9000 is not set | 104 | # CONFIG_CPU_RM9000 is not set |
103 | # CONFIG_CPU_SB1 is not set | 105 | # CONFIG_CPU_SB1 is not set |
106 | CONFIG_SYS_HAS_CPU_VR41XX=y | ||
107 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | ||
108 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | ||
109 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||
104 | 110 | ||
105 | # | 111 | # |
106 | # Kernel type | 112 | # Kernel type |
107 | # | 113 | # |
108 | # CONFIG_32BIT is not set | 114 | CONFIG_32BIT=y |
109 | # CONFIG_64BIT is not set | 115 | # CONFIG_64BIT is not set |
110 | CONFIG_PAGE_SIZE_4KB=y | 116 | CONFIG_PAGE_SIZE_4KB=y |
111 | # CONFIG_PAGE_SIZE_8KB is not set | 117 | # CONFIG_PAGE_SIZE_8KB is not set |
112 | # CONFIG_PAGE_SIZE_16KB is not set | 118 | # CONFIG_PAGE_SIZE_16KB is not set |
113 | # CONFIG_PAGE_SIZE_64KB is not set | 119 | # CONFIG_PAGE_SIZE_64KB is not set |
114 | # CONFIG_MIPS_MT is not set | 120 | # CONFIG_MIPS_MT is not set |
115 | CONFIG_CPU_HAS_LLSC=y | ||
116 | CONFIG_CPU_HAS_SYNC=y | 121 | CONFIG_CPU_HAS_SYNC=y |
117 | CONFIG_GENERIC_HARDIRQS=y | 122 | CONFIG_GENERIC_HARDIRQS=y |
118 | CONFIG_GENERIC_IRQ_PROBE=y | 123 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -133,7 +138,6 @@ CONFIG_PREEMPT_NONE=y | |||
133 | # Code maturity level options | 138 | # Code maturity level options |
134 | # | 139 | # |
135 | CONFIG_EXPERIMENTAL=y | 140 | CONFIG_EXPERIMENTAL=y |
136 | CONFIG_CLEAN_COMPILE=y | ||
137 | CONFIG_BROKEN_ON_SMP=y | 141 | CONFIG_BROKEN_ON_SMP=y |
138 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 142 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
139 | 143 | ||
@@ -149,6 +153,7 @@ CONFIG_SYSVIPC=y | |||
149 | CONFIG_SYSCTL=y | 153 | CONFIG_SYSCTL=y |
150 | # CONFIG_AUDIT is not set | 154 | # CONFIG_AUDIT is not set |
151 | # CONFIG_IKCONFIG is not set | 155 | # CONFIG_IKCONFIG is not set |
156 | # CONFIG_RELAY is not set | ||
152 | CONFIG_INITRAMFS_SOURCE="" | 157 | CONFIG_INITRAMFS_SOURCE="" |
153 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 158 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
154 | CONFIG_EMBEDDED=y | 159 | CONFIG_EMBEDDED=y |
@@ -162,10 +167,6 @@ CONFIG_BASE_FULL=y | |||
162 | CONFIG_FUTEX=y | 167 | CONFIG_FUTEX=y |
163 | CONFIG_EPOLL=y | 168 | CONFIG_EPOLL=y |
164 | CONFIG_SHMEM=y | 169 | CONFIG_SHMEM=y |
165 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
166 | CONFIG_CC_ALIGN_LABELS=0 | ||
167 | CONFIG_CC_ALIGN_LOOPS=0 | ||
168 | CONFIG_CC_ALIGN_JUMPS=0 | ||
169 | CONFIG_SLAB=y | 170 | CONFIG_SLAB=y |
170 | # CONFIG_TINY_SHMEM is not set | 171 | # CONFIG_TINY_SHMEM is not set |
171 | CONFIG_BASE_SMALL=0 | 172 | CONFIG_BASE_SMALL=0 |
@@ -177,7 +178,6 @@ CONFIG_BASE_SMALL=0 | |||
177 | CONFIG_MODULES=y | 178 | CONFIG_MODULES=y |
178 | CONFIG_MODULE_UNLOAD=y | 179 | CONFIG_MODULE_UNLOAD=y |
179 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 180 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
180 | CONFIG_OBSOLETE_MODPARM=y | ||
181 | CONFIG_MODVERSIONS=y | 181 | CONFIG_MODVERSIONS=y |
182 | CONFIG_MODULE_SRCVERSION_ALL=y | 182 | CONFIG_MODULE_SRCVERSION_ALL=y |
183 | CONFIG_KMOD=y | 183 | CONFIG_KMOD=y |
@@ -185,6 +185,9 @@ CONFIG_KMOD=y | |||
185 | # | 185 | # |
186 | # Block layer | 186 | # Block layer |
187 | # | 187 | # |
188 | # CONFIG_LBD is not set | ||
189 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
190 | # CONFIG_LSF is not set | ||
188 | 191 | ||
189 | # | 192 | # |
190 | # IO Schedulers | 193 | # IO Schedulers |
@@ -220,6 +223,7 @@ CONFIG_PCMCIA_IOCTL=y | |||
220 | # CONFIG_I82365 is not set | 223 | # CONFIG_I82365 is not set |
221 | # CONFIG_TCIC is not set | 224 | # CONFIG_TCIC is not set |
222 | CONFIG_PCMCIA_PROBE=y | 225 | CONFIG_PCMCIA_PROBE=y |
226 | CONFIG_PCMCIA_VRC4171=y | ||
223 | 227 | ||
224 | # | 228 | # |
225 | # PCI Hotplug Support | 229 | # PCI Hotplug Support |
@@ -230,6 +234,7 @@ CONFIG_PCMCIA_PROBE=y | |||
230 | # | 234 | # |
231 | CONFIG_BINFMT_ELF=y | 235 | CONFIG_BINFMT_ELF=y |
232 | # CONFIG_BINFMT_MISC is not set | 236 | # CONFIG_BINFMT_MISC is not set |
237 | CONFIG_TRAD_SIGNALS=y | ||
233 | 238 | ||
234 | # | 239 | # |
235 | # Networking | 240 | # Networking |
@@ -239,6 +244,7 @@ CONFIG_NET=y | |||
239 | # | 244 | # |
240 | # Networking options | 245 | # Networking options |
241 | # | 246 | # |
247 | # CONFIG_NETDEBUG is not set | ||
242 | CONFIG_PACKET=y | 248 | CONFIG_PACKET=y |
243 | CONFIG_PACKET_MMAP=y | 249 | CONFIG_PACKET_MMAP=y |
244 | CONFIG_UNIX=y | 250 | CONFIG_UNIX=y |
@@ -258,12 +264,15 @@ CONFIG_IP_FIB_HASH=y | |||
258 | # CONFIG_INET_AH is not set | 264 | # CONFIG_INET_AH is not set |
259 | # CONFIG_INET_ESP is not set | 265 | # CONFIG_INET_ESP is not set |
260 | # CONFIG_INET_IPCOMP is not set | 266 | # CONFIG_INET_IPCOMP is not set |
261 | CONFIG_INET_TUNNEL=m | 267 | # CONFIG_INET_XFRM_TUNNEL is not set |
268 | # CONFIG_INET_TUNNEL is not set | ||
262 | CONFIG_INET_DIAG=y | 269 | CONFIG_INET_DIAG=y |
263 | CONFIG_INET_TCP_DIAG=y | 270 | CONFIG_INET_TCP_DIAG=y |
264 | # CONFIG_TCP_CONG_ADVANCED is not set | 271 | # CONFIG_TCP_CONG_ADVANCED is not set |
265 | CONFIG_TCP_CONG_BIC=y | 272 | CONFIG_TCP_CONG_BIC=y |
266 | # CONFIG_IPV6 is not set | 273 | # CONFIG_IPV6 is not set |
274 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
275 | # CONFIG_INET6_TUNNEL is not set | ||
267 | # CONFIG_NETFILTER is not set | 276 | # CONFIG_NETFILTER is not set |
268 | 277 | ||
269 | # | 278 | # |
@@ -275,6 +284,11 @@ CONFIG_TCP_CONG_BIC=y | |||
275 | # SCTP Configuration (EXPERIMENTAL) | 284 | # SCTP Configuration (EXPERIMENTAL) |
276 | # | 285 | # |
277 | # CONFIG_IP_SCTP is not set | 286 | # CONFIG_IP_SCTP is not set |
287 | |||
288 | # | ||
289 | # TIPC Configuration (EXPERIMENTAL) | ||
290 | # | ||
291 | # CONFIG_TIPC is not set | ||
278 | # CONFIG_ATM is not set | 292 | # CONFIG_ATM is not set |
279 | # CONFIG_BRIDGE is not set | 293 | # CONFIG_BRIDGE is not set |
280 | # CONFIG_VLAN_8021Q is not set | 294 | # CONFIG_VLAN_8021Q is not set |
@@ -284,11 +298,6 @@ CONFIG_TCP_CONG_BIC=y | |||
284 | # CONFIG_ATALK is not set | 298 | # CONFIG_ATALK is not set |
285 | # CONFIG_X25 is not set | 299 | # CONFIG_X25 is not set |
286 | # CONFIG_LAPB is not set | 300 | # CONFIG_LAPB is not set |
287 | |||
288 | # | ||
289 | # TIPC Configuration (EXPERIMENTAL) | ||
290 | # | ||
291 | # CONFIG_TIPC is not set | ||
292 | # CONFIG_NET_DIVERT is not set | 301 | # CONFIG_NET_DIVERT is not set |
293 | # CONFIG_ECONET is not set | 302 | # CONFIG_ECONET is not set |
294 | # CONFIG_WAN_ROUTER is not set | 303 | # CONFIG_WAN_ROUTER is not set |
@@ -305,10 +314,8 @@ CONFIG_TCP_CONG_BIC=y | |||
305 | # CONFIG_HAMRADIO is not set | 314 | # CONFIG_HAMRADIO is not set |
306 | # CONFIG_IRDA is not set | 315 | # CONFIG_IRDA is not set |
307 | # CONFIG_BT is not set | 316 | # CONFIG_BT is not set |
308 | CONFIG_IEEE80211=m | 317 | # CONFIG_IEEE80211 is not set |
309 | # CONFIG_IEEE80211_DEBUG is not set | 318 | CONFIG_WIRELESS_EXT=y |
310 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
311 | CONFIG_IEEE80211_CRYPT_CCMP=m | ||
312 | 319 | ||
313 | # | 320 | # |
314 | # Device Drivers | 321 | # Device Drivers |
@@ -347,10 +354,12 @@ CONFIG_CONNECTOR=m | |||
347 | # CONFIG_BLK_DEV_COW_COMMON is not set | 354 | # CONFIG_BLK_DEV_COW_COMMON is not set |
348 | # CONFIG_BLK_DEV_LOOP is not set | 355 | # CONFIG_BLK_DEV_LOOP is not set |
349 | # CONFIG_BLK_DEV_NBD is not set | 356 | # CONFIG_BLK_DEV_NBD is not set |
350 | # CONFIG_BLK_DEV_RAM is not set | 357 | CONFIG_BLK_DEV_RAM=m |
351 | CONFIG_BLK_DEV_RAM_COUNT=16 | 358 | CONFIG_BLK_DEV_RAM_COUNT=16 |
359 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
360 | # CONFIG_BLK_DEV_INITRD is not set | ||
352 | # CONFIG_CDROM_PKTCDVD is not set | 361 | # CONFIG_CDROM_PKTCDVD is not set |
353 | CONFIG_ATA_OVER_ETH=m | 362 | # CONFIG_ATA_OVER_ETH is not set |
354 | 363 | ||
355 | # | 364 | # |
356 | # ATA/ATAPI/MFM/RLL support | 365 | # ATA/ATAPI/MFM/RLL support |
@@ -468,7 +477,38 @@ CONFIG_MII=m | |||
468 | # | 477 | # |
469 | # Wireless LAN (non-hamradio) | 478 | # Wireless LAN (non-hamradio) |
470 | # | 479 | # |
471 | # CONFIG_NET_RADIO is not set | 480 | CONFIG_NET_RADIO=y |
481 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
482 | |||
483 | # | ||
484 | # Obsolete Wireless cards support (pre-802.11) | ||
485 | # | ||
486 | # CONFIG_STRIP is not set | ||
487 | # CONFIG_ARLAN is not set | ||
488 | # CONFIG_WAVELAN is not set | ||
489 | # CONFIG_PCMCIA_WAVELAN is not set | ||
490 | # CONFIG_PCMCIA_NETWAVE is not set | ||
491 | |||
492 | # | ||
493 | # Wireless 802.11 Frequency Hopping cards support | ||
494 | # | ||
495 | # CONFIG_PCMCIA_RAYCS is not set | ||
496 | |||
497 | # | ||
498 | # Wireless 802.11b ISA/PCI cards support | ||
499 | # | ||
500 | CONFIG_HERMES=m | ||
501 | # CONFIG_ATMEL is not set | ||
502 | |||
503 | # | ||
504 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
505 | # | ||
506 | CONFIG_PCMCIA_HERMES=m | ||
507 | # CONFIG_PCMCIA_SPECTRUM is not set | ||
508 | # CONFIG_AIRO_CS is not set | ||
509 | # CONFIG_PCMCIA_WL3501 is not set | ||
510 | # CONFIG_HOSTAP is not set | ||
511 | CONFIG_NET_WIRELESS=y | ||
472 | 512 | ||
473 | # | 513 | # |
474 | # PCMCIA network device support | 514 | # PCMCIA network device support |
@@ -512,10 +552,7 @@ CONFIG_INPUT=y | |||
512 | # | 552 | # |
513 | # Userland interfaces | 553 | # Userland interfaces |
514 | # | 554 | # |
515 | CONFIG_INPUT_MOUSEDEV=y | 555 | # CONFIG_INPUT_MOUSEDEV is not set |
516 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
517 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
518 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
519 | # CONFIG_INPUT_JOYDEV is not set | 556 | # CONFIG_INPUT_JOYDEV is not set |
520 | # CONFIG_INPUT_TSDEV is not set | 557 | # CONFIG_INPUT_TSDEV is not set |
521 | # CONFIG_INPUT_EVDEV is not set | 558 | # CONFIG_INPUT_EVDEV is not set |
@@ -533,11 +570,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
533 | # | 570 | # |
534 | # Hardware I/O ports | 571 | # Hardware I/O ports |
535 | # | 572 | # |
536 | CONFIG_SERIO=y | 573 | # CONFIG_SERIO is not set |
537 | # CONFIG_SERIO_I8042 is not set | ||
538 | CONFIG_SERIO_SERPORT=y | ||
539 | # CONFIG_SERIO_LIBPS2 is not set | ||
540 | CONFIG_SERIO_RAW=m | ||
541 | # CONFIG_GAMEPORT is not set | 574 | # CONFIG_GAMEPORT is not set |
542 | 575 | ||
543 | # | 576 | # |
@@ -556,6 +589,10 @@ CONFIG_HW_CONSOLE=y | |||
556 | # | 589 | # |
557 | # Non-8250 serial port support | 590 | # Non-8250 serial port support |
558 | # | 591 | # |
592 | CONFIG_SERIAL_CORE=y | ||
593 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
594 | CONFIG_SERIAL_VR41XX=y | ||
595 | CONFIG_SERIAL_VR41XX_CONSOLE=y | ||
559 | CONFIG_UNIX98_PTYS=y | 596 | CONFIG_UNIX98_PTYS=y |
560 | CONFIG_LEGACY_PTYS=y | 597 | CONFIG_LEGACY_PTYS=y |
561 | CONFIG_LEGACY_PTY_COUNT=256 | 598 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -568,20 +605,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
568 | # | 605 | # |
569 | # Watchdog Cards | 606 | # Watchdog Cards |
570 | # | 607 | # |
571 | CONFIG_WATCHDOG=y | 608 | # CONFIG_WATCHDOG is not set |
572 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
573 | |||
574 | # | ||
575 | # Watchdog Device Drivers | ||
576 | # | ||
577 | # CONFIG_SOFT_WATCHDOG is not set | ||
578 | |||
579 | # | ||
580 | # ISA-based Watchdog Cards | ||
581 | # | ||
582 | # CONFIG_PCWATCHDOG is not set | ||
583 | # CONFIG_MIXCOMWD is not set | ||
584 | # CONFIG_WDT is not set | ||
585 | # CONFIG_RTC is not set | 609 | # CONFIG_RTC is not set |
586 | # CONFIG_GEN_RTC is not set | 610 | # CONFIG_GEN_RTC is not set |
587 | # CONFIG_DTLK is not set | 611 | # CONFIG_DTLK is not set |
@@ -597,6 +621,7 @@ CONFIG_WATCHDOG=y | |||
597 | # CONFIG_SYNCLINK_CS is not set | 621 | # CONFIG_SYNCLINK_CS is not set |
598 | # CONFIG_CARDMAN_4000 is not set | 622 | # CONFIG_CARDMAN_4000 is not set |
599 | # CONFIG_CARDMAN_4040 is not set | 623 | # CONFIG_CARDMAN_4040 is not set |
624 | # CONFIG_GPIO_VR41XX is not set | ||
600 | # CONFIG_RAW_DRIVER is not set | 625 | # CONFIG_RAW_DRIVER is not set |
601 | 626 | ||
602 | # | 627 | # |
@@ -632,10 +657,6 @@ CONFIG_WATCHDOG=y | |||
632 | # | 657 | # |
633 | 658 | ||
634 | # | 659 | # |
635 | # Multimedia Capabilities Port drivers | ||
636 | # | ||
637 | |||
638 | # | ||
639 | # Multimedia devices | 660 | # Multimedia devices |
640 | # | 661 | # |
641 | # CONFIG_VIDEO_DEV is not set | 662 | # CONFIG_VIDEO_DEV is not set |
@@ -667,6 +688,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
667 | # | 688 | # |
668 | # CONFIG_USB_ARCH_HAS_HCD is not set | 689 | # CONFIG_USB_ARCH_HAS_HCD is not set |
669 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 690 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
691 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
670 | 692 | ||
671 | # | 693 | # |
672 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 694 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -683,12 +705,30 @@ CONFIG_DUMMY_CONSOLE=y | |||
683 | # CONFIG_MMC is not set | 705 | # CONFIG_MMC is not set |
684 | 706 | ||
685 | # | 707 | # |
708 | # LED devices | ||
709 | # | ||
710 | # CONFIG_NEW_LEDS is not set | ||
711 | |||
712 | # | ||
713 | # LED drivers | ||
714 | # | ||
715 | |||
716 | # | ||
717 | # LED Triggers | ||
718 | # | ||
719 | |||
720 | # | ||
686 | # InfiniBand support | 721 | # InfiniBand support |
687 | # | 722 | # |
688 | 723 | ||
689 | # | 724 | # |
690 | # SN Devices | 725 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
726 | # | ||
727 | |||
728 | # | ||
729 | # Real Time Clock | ||
691 | # | 730 | # |
731 | # CONFIG_RTC_CLASS is not set | ||
692 | 732 | ||
693 | # | 733 | # |
694 | # File systems | 734 | # File systems |
@@ -710,7 +750,7 @@ CONFIG_FS_POSIX_ACL=y | |||
710 | CONFIG_INOTIFY=y | 750 | CONFIG_INOTIFY=y |
711 | # CONFIG_QUOTA is not set | 751 | # CONFIG_QUOTA is not set |
712 | CONFIG_DNOTIFY=y | 752 | CONFIG_DNOTIFY=y |
713 | CONFIG_AUTOFS_FS=y | 753 | # CONFIG_AUTOFS_FS is not set |
714 | CONFIG_AUTOFS4_FS=y | 754 | CONFIG_AUTOFS4_FS=y |
715 | CONFIG_FUSE_FS=m | 755 | CONFIG_FUSE_FS=m |
716 | 756 | ||
@@ -733,10 +773,9 @@ CONFIG_FUSE_FS=m | |||
733 | CONFIG_PROC_FS=y | 773 | CONFIG_PROC_FS=y |
734 | CONFIG_PROC_KCORE=y | 774 | CONFIG_PROC_KCORE=y |
735 | CONFIG_SYSFS=y | 775 | CONFIG_SYSFS=y |
736 | # CONFIG_TMPFS is not set | 776 | CONFIG_TMPFS=y |
737 | # CONFIG_HUGETLB_PAGE is not set | 777 | # CONFIG_HUGETLB_PAGE is not set |
738 | CONFIG_RAMFS=y | 778 | CONFIG_RAMFS=y |
739 | CONFIG_RELAYFS_FS=m | ||
740 | # CONFIG_CONFIGFS_FS is not set | 779 | # CONFIG_CONFIGFS_FS is not set |
741 | 780 | ||
742 | # | 781 | # |
@@ -802,44 +841,20 @@ CONFIG_MSDOS_PARTITION=y | |||
802 | # CONFIG_MAGIC_SYSRQ is not set | 841 | # CONFIG_MAGIC_SYSRQ is not set |
803 | # CONFIG_DEBUG_KERNEL is not set | 842 | # CONFIG_DEBUG_KERNEL is not set |
804 | CONFIG_LOG_BUF_SHIFT=14 | 843 | CONFIG_LOG_BUF_SHIFT=14 |
844 | # CONFIG_DEBUG_FS is not set | ||
805 | CONFIG_CROSSCOMPILE=y | 845 | CONFIG_CROSSCOMPILE=y |
806 | CONFIG_CMDLINE="console=ttyVR0,19200 mem=16M" | 846 | CONFIG_CMDLINE="console=ttyVR0,19200 mem=16M" |
807 | 847 | ||
808 | # | 848 | # |
809 | # Security options | 849 | # Security options |
810 | # | 850 | # |
811 | CONFIG_KEYS=y | 851 | # CONFIG_KEYS is not set |
812 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
813 | # CONFIG_SECURITY is not set | 852 | # CONFIG_SECURITY is not set |
814 | 853 | ||
815 | # | 854 | # |
816 | # Cryptographic options | 855 | # Cryptographic options |
817 | # | 856 | # |
818 | CONFIG_CRYPTO=y | 857 | # CONFIG_CRYPTO is not set |
819 | CONFIG_CRYPTO_HMAC=y | ||
820 | CONFIG_CRYPTO_NULL=m | ||
821 | CONFIG_CRYPTO_MD4=m | ||
822 | CONFIG_CRYPTO_MD5=m | ||
823 | CONFIG_CRYPTO_SHA1=m | ||
824 | CONFIG_CRYPTO_SHA256=m | ||
825 | CONFIG_CRYPTO_SHA512=m | ||
826 | CONFIG_CRYPTO_WP512=m | ||
827 | CONFIG_CRYPTO_TGR192=m | ||
828 | CONFIG_CRYPTO_DES=m | ||
829 | CONFIG_CRYPTO_BLOWFISH=m | ||
830 | CONFIG_CRYPTO_TWOFISH=m | ||
831 | CONFIG_CRYPTO_SERPENT=m | ||
832 | CONFIG_CRYPTO_AES=m | ||
833 | CONFIG_CRYPTO_CAST5=m | ||
834 | CONFIG_CRYPTO_CAST6=m | ||
835 | CONFIG_CRYPTO_TEA=m | ||
836 | CONFIG_CRYPTO_ARC4=m | ||
837 | CONFIG_CRYPTO_KHAZAD=m | ||
838 | CONFIG_CRYPTO_ANUBIS=m | ||
839 | CONFIG_CRYPTO_DEFLATE=m | ||
840 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
841 | CONFIG_CRYPTO_CRC32C=m | ||
842 | # CONFIG_CRYPTO_TEST is not set | ||
843 | 858 | ||
844 | # | 859 | # |
845 | # Hardware crypto devices | 860 | # Hardware crypto devices |
@@ -849,8 +864,6 @@ CONFIG_CRYPTO_CRC32C=m | |||
849 | # Library routines | 864 | # Library routines |
850 | # | 865 | # |
851 | # CONFIG_CRC_CCITT is not set | 866 | # CONFIG_CRC_CCITT is not set |
852 | CONFIG_CRC16=m | 867 | # CONFIG_CRC16 is not set |
853 | CONFIG_CRC32=y | 868 | CONFIG_CRC32=y |
854 | CONFIG_LIBCRC32C=m | 869 | # CONFIG_LIBCRC32C is not set |
855 | CONFIG_ZLIB_INFLATE=m | ||
856 | CONFIG_ZLIB_DEFLATE=m | ||
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig index 67457850941d..b52d709de962 100644 --- a/arch/mips/configs/yosemite_defconfig +++ b/arch/mips/configs/yosemite_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:40:37 2006 | 4 | # Mon Apr 24 14:51:20 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -65,6 +65,8 @@ CONFIG_PMC_YOSEMITE=y | |||
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | # CONFIG_HYPERTRANSPORT is not set | 66 | # CONFIG_HYPERTRANSPORT is not set |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
69 | CONFIG_GENERIC_HWEIGHT=y | ||
68 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 70 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
69 | CONFIG_DMA_COHERENT=y | 71 | CONFIG_DMA_COHERENT=y |
70 | CONFIG_CPU_BIG_ENDIAN=y | 72 | CONFIG_CPU_BIG_ENDIAN=y |
@@ -116,7 +118,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
116 | CONFIG_CPU_HAS_PREFETCH=y | 118 | CONFIG_CPU_HAS_PREFETCH=y |
117 | # CONFIG_MIPS_MT is not set | 119 | # CONFIG_MIPS_MT is not set |
118 | # CONFIG_64BIT_PHYS_ADDR is not set | 120 | # CONFIG_64BIT_PHYS_ADDR is not set |
119 | # CONFIG_CPU_ADVANCED is not set | ||
120 | CONFIG_CPU_HAS_LLSC=y | 121 | CONFIG_CPU_HAS_LLSC=y |
121 | CONFIG_CPU_HAS_SYNC=y | 122 | CONFIG_CPU_HAS_SYNC=y |
122 | CONFIG_GENERIC_HARDIRQS=y | 123 | CONFIG_GENERIC_HARDIRQS=y |
@@ -140,7 +141,6 @@ CONFIG_PREEMPT_BKL=y | |||
140 | # Code maturity level options | 141 | # Code maturity level options |
141 | # | 142 | # |
142 | # CONFIG_EXPERIMENTAL is not set | 143 | # CONFIG_EXPERIMENTAL is not set |
143 | CONFIG_CLEAN_COMPILE=y | ||
144 | CONFIG_LOCK_KERNEL=y | 144 | CONFIG_LOCK_KERNEL=y |
145 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 145 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
146 | 146 | ||
@@ -157,6 +157,7 @@ CONFIG_SYSCTL=y | |||
157 | CONFIG_IKCONFIG=y | 157 | CONFIG_IKCONFIG=y |
158 | CONFIG_IKCONFIG_PROC=y | 158 | CONFIG_IKCONFIG_PROC=y |
159 | # CONFIG_CPUSETS is not set | 159 | # CONFIG_CPUSETS is not set |
160 | CONFIG_RELAY=y | ||
160 | CONFIG_INITRAMFS_SOURCE="" | 161 | CONFIG_INITRAMFS_SOURCE="" |
161 | CONFIG_EMBEDDED=y | 162 | CONFIG_EMBEDDED=y |
162 | CONFIG_KALLSYMS=y | 163 | CONFIG_KALLSYMS=y |
@@ -170,10 +171,6 @@ CONFIG_BASE_FULL=y | |||
170 | CONFIG_FUTEX=y | 171 | CONFIG_FUTEX=y |
171 | CONFIG_EPOLL=y | 172 | CONFIG_EPOLL=y |
172 | CONFIG_SHMEM=y | 173 | CONFIG_SHMEM=y |
173 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
174 | CONFIG_CC_ALIGN_LABELS=0 | ||
175 | CONFIG_CC_ALIGN_LOOPS=0 | ||
176 | CONFIG_CC_ALIGN_JUMPS=0 | ||
177 | CONFIG_SLAB=y | 174 | CONFIG_SLAB=y |
178 | # CONFIG_TINY_SHMEM is not set | 175 | # CONFIG_TINY_SHMEM is not set |
179 | CONFIG_BASE_SMALL=0 | 176 | CONFIG_BASE_SMALL=0 |
@@ -184,7 +181,6 @@ CONFIG_BASE_SMALL=0 | |||
184 | # | 181 | # |
185 | CONFIG_MODULES=y | 182 | CONFIG_MODULES=y |
186 | CONFIG_MODULE_UNLOAD=y | 183 | CONFIG_MODULE_UNLOAD=y |
187 | CONFIG_OBSOLETE_MODPARM=y | ||
188 | # CONFIG_MODVERSIONS is not set | 184 | # CONFIG_MODVERSIONS is not set |
189 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 185 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
190 | CONFIG_KMOD=y | 186 | CONFIG_KMOD=y |
@@ -194,6 +190,8 @@ CONFIG_STOP_MACHINE=y | |||
194 | # Block layer | 190 | # Block layer |
195 | # | 191 | # |
196 | # CONFIG_LBD is not set | 192 | # CONFIG_LBD is not set |
193 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
194 | # CONFIG_LSF is not set | ||
197 | 195 | ||
198 | # | 196 | # |
199 | # IO Schedulers | 197 | # IO Schedulers |
@@ -213,7 +211,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
213 | # | 211 | # |
214 | CONFIG_HW_HAS_PCI=y | 212 | CONFIG_HW_HAS_PCI=y |
215 | CONFIG_PCI=y | 213 | CONFIG_PCI=y |
216 | CONFIG_PCI_LEGACY_PROC=y | ||
217 | # CONFIG_PCI_DEBUG is not set | 214 | # CONFIG_PCI_DEBUG is not set |
218 | CONFIG_MMU=y | 215 | CONFIG_MMU=y |
219 | 216 | ||
@@ -241,6 +238,7 @@ CONFIG_NET=y | |||
241 | # | 238 | # |
242 | # Networking options | 239 | # Networking options |
243 | # | 240 | # |
241 | # CONFIG_NETDEBUG is not set | ||
244 | CONFIG_PACKET=m | 242 | CONFIG_PACKET=m |
245 | CONFIG_PACKET_MMAP=y | 243 | CONFIG_PACKET_MMAP=y |
246 | CONFIG_UNIX=y | 244 | CONFIG_UNIX=y |
@@ -261,16 +259,19 @@ CONFIG_IP_PNP_BOOTP=y | |||
261 | # CONFIG_INET_AH is not set | 259 | # CONFIG_INET_AH is not set |
262 | # CONFIG_INET_ESP is not set | 260 | # CONFIG_INET_ESP is not set |
263 | # CONFIG_INET_IPCOMP is not set | 261 | # CONFIG_INET_IPCOMP is not set |
264 | CONFIG_INET_TUNNEL=m | 262 | # CONFIG_INET_XFRM_TUNNEL is not set |
263 | # CONFIG_INET_TUNNEL is not set | ||
265 | CONFIG_INET_DIAG=y | 264 | CONFIG_INET_DIAG=y |
266 | CONFIG_INET_TCP_DIAG=y | 265 | CONFIG_INET_TCP_DIAG=y |
267 | # CONFIG_TCP_CONG_ADVANCED is not set | 266 | # CONFIG_TCP_CONG_ADVANCED is not set |
268 | CONFIG_TCP_CONG_BIC=y | 267 | CONFIG_TCP_CONG_BIC=y |
269 | CONFIG_IPV6=m | 268 | CONFIG_IPV6=m |
270 | CONFIG_IPV6_PRIVACY=y | 269 | CONFIG_IPV6_PRIVACY=y |
270 | CONFIG_IPV6_ROUTER_PREF=y | ||
271 | CONFIG_INET6_AH=m | 271 | CONFIG_INET6_AH=m |
272 | CONFIG_INET6_ESP=m | 272 | CONFIG_INET6_ESP=m |
273 | CONFIG_INET6_IPCOMP=m | 273 | CONFIG_INET6_IPCOMP=m |
274 | CONFIG_INET6_XFRM_TUNNEL=m | ||
274 | CONFIG_INET6_TUNNEL=m | 275 | CONFIG_INET6_TUNNEL=m |
275 | CONFIG_IPV6_TUNNEL=m | 276 | CONFIG_IPV6_TUNNEL=m |
276 | # CONFIG_NETFILTER is not set | 277 | # CONFIG_NETFILTER is not set |
@@ -340,10 +341,9 @@ CONFIG_CONNECTOR=m | |||
340 | # CONFIG_BLK_DEV_NBD is not set | 341 | # CONFIG_BLK_DEV_NBD is not set |
341 | # CONFIG_BLK_DEV_SX8 is not set | 342 | # CONFIG_BLK_DEV_SX8 is not set |
342 | # CONFIG_BLK_DEV_RAM is not set | 343 | # CONFIG_BLK_DEV_RAM is not set |
343 | CONFIG_BLK_DEV_RAM_COUNT=16 | 344 | # CONFIG_BLK_DEV_INITRD is not set |
344 | CONFIG_CDROM_PKTCDVD=m | 345 | CONFIG_CDROM_PKTCDVD=m |
345 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 346 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
346 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | ||
347 | CONFIG_ATA_OVER_ETH=m | 347 | CONFIG_ATA_OVER_ETH=m |
348 | 348 | ||
349 | # | 349 | # |
@@ -433,6 +433,7 @@ CONFIG_MII=y | |||
433 | # CONFIG_HAMACHI is not set | 433 | # CONFIG_HAMACHI is not set |
434 | # CONFIG_R8169 is not set | 434 | # CONFIG_R8169 is not set |
435 | # CONFIG_SIS190 is not set | 435 | # CONFIG_SIS190 is not set |
436 | # CONFIG_SKGE is not set | ||
436 | # CONFIG_SK98LIN is not set | 437 | # CONFIG_SK98LIN is not set |
437 | # CONFIG_TIGON3 is not set | 438 | # CONFIG_TIGON3 is not set |
438 | # CONFIG_BNX2 is not set | 439 | # CONFIG_BNX2 is not set |
@@ -497,6 +498,7 @@ CONFIG_TITAN_GE=y | |||
497 | # | 498 | # |
498 | CONFIG_SERIAL_8250=y | 499 | CONFIG_SERIAL_8250=y |
499 | CONFIG_SERIAL_8250_CONSOLE=y | 500 | CONFIG_SERIAL_8250_CONSOLE=y |
501 | CONFIG_SERIAL_8250_PCI=y | ||
500 | CONFIG_SERIAL_8250_NR_UARTS=4 | 502 | CONFIG_SERIAL_8250_NR_UARTS=4 |
501 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 503 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
502 | # CONFIG_SERIAL_8250_EXTENDED is not set | 504 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -506,6 +508,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
506 | # | 508 | # |
507 | CONFIG_SERIAL_CORE=y | 509 | CONFIG_SERIAL_CORE=y |
508 | CONFIG_SERIAL_CORE_CONSOLE=y | 510 | CONFIG_SERIAL_CORE_CONSOLE=y |
511 | # CONFIG_SERIAL_JSM is not set | ||
509 | CONFIG_UNIX98_PTYS=y | 512 | CONFIG_UNIX98_PTYS=y |
510 | CONFIG_LEGACY_PTYS=y | 513 | CONFIG_LEGACY_PTYS=y |
511 | CONFIG_LEGACY_PTY_COUNT=256 | 514 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -563,10 +566,6 @@ CONFIG_GEN_RTC_X=y | |||
563 | # | 566 | # |
564 | 567 | ||
565 | # | 568 | # |
566 | # Multimedia Capabilities Port drivers | ||
567 | # | ||
568 | |||
569 | # | ||
570 | # Multimedia devices | 569 | # Multimedia devices |
571 | # | 570 | # |
572 | # CONFIG_VIDEO_DEV is not set | 571 | # CONFIG_VIDEO_DEV is not set |
@@ -591,6 +590,7 @@ CONFIG_GEN_RTC_X=y | |||
591 | # | 590 | # |
592 | CONFIG_USB_ARCH_HAS_HCD=y | 591 | CONFIG_USB_ARCH_HAS_HCD=y |
593 | CONFIG_USB_ARCH_HAS_OHCI=y | 592 | CONFIG_USB_ARCH_HAS_OHCI=y |
593 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
594 | # CONFIG_USB is not set | 594 | # CONFIG_USB is not set |
595 | 595 | ||
596 | # | 596 | # |
@@ -608,12 +608,29 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
608 | # CONFIG_MMC is not set | 608 | # CONFIG_MMC is not set |
609 | 609 | ||
610 | # | 610 | # |
611 | # LED devices | ||
612 | # | ||
613 | # CONFIG_NEW_LEDS is not set | ||
614 | |||
615 | # | ||
616 | # LED drivers | ||
617 | # | ||
618 | |||
619 | # | ||
620 | # LED Triggers | ||
621 | # | ||
622 | |||
623 | # | ||
611 | # InfiniBand support | 624 | # InfiniBand support |
612 | # | 625 | # |
613 | # CONFIG_INFINIBAND is not set | 626 | # CONFIG_INFINIBAND is not set |
614 | 627 | ||
615 | # | 628 | # |
616 | # SN Devices | 629 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
630 | # | ||
631 | |||
632 | # | ||
633 | # Real Time Clock | ||
617 | # | 634 | # |
618 | 635 | ||
619 | # | 636 | # |
@@ -656,7 +673,6 @@ CONFIG_SYSFS=y | |||
656 | CONFIG_TMPFS=y | 673 | CONFIG_TMPFS=y |
657 | # CONFIG_HUGETLB_PAGE is not set | 674 | # CONFIG_HUGETLB_PAGE is not set |
658 | CONFIG_RAMFS=y | 675 | CONFIG_RAMFS=y |
659 | CONFIG_RELAYFS_FS=m | ||
660 | 676 | ||
661 | # | 677 | # |
662 | # Miscellaneous filesystems | 678 | # Miscellaneous filesystems |
diff --git a/arch/mips/defconfig b/arch/mips/defconfig index 42d5cd7927cb..607e2985ffe3 100644 --- a/arch/mips/defconfig +++ b/arch/mips/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.16-rc1 | 3 | # Linux kernel version: 2.6.17-rc2 |
4 | # Fri Jan 27 15:39:51 2006 | 4 | # Mon Apr 24 14:50:54 2006 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -64,6 +64,8 @@ CONFIG_SGI_IP22=y | |||
64 | # CONFIG_TOSHIBA_RBTX4927 is not set | 64 | # CONFIG_TOSHIBA_RBTX4927 is not set |
65 | # CONFIG_TOSHIBA_RBTX4938 is not set | 65 | # CONFIG_TOSHIBA_RBTX4938 is not set |
66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 66 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
67 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
68 | CONFIG_GENERIC_HWEIGHT=y | ||
67 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 69 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
68 | CONFIG_ARC=y | 70 | CONFIG_ARC=y |
69 | CONFIG_DMA_NONCOHERENT=y | 71 | CONFIG_DMA_NONCOHERENT=y |
@@ -121,7 +123,6 @@ CONFIG_BOARD_SCACHE=y | |||
121 | CONFIG_IP22_CPU_SCACHE=y | 123 | CONFIG_IP22_CPU_SCACHE=y |
122 | # CONFIG_MIPS_MT is not set | 124 | # CONFIG_MIPS_MT is not set |
123 | # CONFIG_64BIT_PHYS_ADDR is not set | 125 | # CONFIG_64BIT_PHYS_ADDR is not set |
124 | # CONFIG_CPU_ADVANCED is not set | ||
125 | CONFIG_CPU_HAS_LLSC=y | 126 | CONFIG_CPU_HAS_LLSC=y |
126 | CONFIG_CPU_HAS_SYNC=y | 127 | CONFIG_CPU_HAS_SYNC=y |
127 | CONFIG_GENERIC_HARDIRQS=y | 128 | CONFIG_GENERIC_HARDIRQS=y |
@@ -143,7 +144,6 @@ CONFIG_PREEMPT_VOLUNTARY=y | |||
143 | # Code maturity level options | 144 | # Code maturity level options |
144 | # | 145 | # |
145 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
146 | CONFIG_CLEAN_COMPILE=y | ||
147 | CONFIG_BROKEN_ON_SMP=y | 147 | CONFIG_BROKEN_ON_SMP=y |
148 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
149 | 149 | ||
@@ -160,6 +160,7 @@ CONFIG_SYSCTL=y | |||
160 | # CONFIG_AUDIT is not set | 160 | # CONFIG_AUDIT is not set |
161 | CONFIG_IKCONFIG=y | 161 | CONFIG_IKCONFIG=y |
162 | CONFIG_IKCONFIG_PROC=y | 162 | CONFIG_IKCONFIG_PROC=y |
163 | CONFIG_RELAY=y | ||
163 | CONFIG_INITRAMFS_SOURCE="" | 164 | CONFIG_INITRAMFS_SOURCE="" |
164 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
165 | CONFIG_EMBEDDED=y | 166 | CONFIG_EMBEDDED=y |
@@ -173,10 +174,6 @@ CONFIG_BASE_FULL=y | |||
173 | CONFIG_FUTEX=y | 174 | CONFIG_FUTEX=y |
174 | CONFIG_EPOLL=y | 175 | CONFIG_EPOLL=y |
175 | CONFIG_SHMEM=y | 176 | CONFIG_SHMEM=y |
176 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
177 | CONFIG_CC_ALIGN_LABELS=0 | ||
178 | CONFIG_CC_ALIGN_LOOPS=0 | ||
179 | CONFIG_CC_ALIGN_JUMPS=0 | ||
180 | CONFIG_SLAB=y | 177 | CONFIG_SLAB=y |
181 | # CONFIG_TINY_SHMEM is not set | 178 | # CONFIG_TINY_SHMEM is not set |
182 | CONFIG_BASE_SMALL=0 | 179 | CONFIG_BASE_SMALL=0 |
@@ -188,7 +185,6 @@ CONFIG_BASE_SMALL=0 | |||
188 | CONFIG_MODULES=y | 185 | CONFIG_MODULES=y |
189 | CONFIG_MODULE_UNLOAD=y | 186 | CONFIG_MODULE_UNLOAD=y |
190 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 187 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
191 | CONFIG_OBSOLETE_MODPARM=y | ||
192 | CONFIG_MODVERSIONS=y | 188 | CONFIG_MODVERSIONS=y |
193 | CONFIG_MODULE_SRCVERSION_ALL=y | 189 | CONFIG_MODULE_SRCVERSION_ALL=y |
194 | CONFIG_KMOD=y | 190 | CONFIG_KMOD=y |
@@ -197,6 +193,8 @@ CONFIG_KMOD=y | |||
197 | # Block layer | 193 | # Block layer |
198 | # | 194 | # |
199 | # CONFIG_LBD is not set | 195 | # CONFIG_LBD is not set |
196 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
197 | # CONFIG_LSF is not set | ||
200 | 198 | ||
201 | # | 199 | # |
202 | # IO Schedulers | 200 | # IO Schedulers |
@@ -242,6 +240,7 @@ CONFIG_NET=y | |||
242 | # | 240 | # |
243 | # Networking options | 241 | # Networking options |
244 | # | 242 | # |
243 | # CONFIG_NETDEBUG is not set | ||
245 | CONFIG_PACKET=y | 244 | CONFIG_PACKET=y |
246 | CONFIG_PACKET_MMAP=y | 245 | CONFIG_PACKET_MMAP=y |
247 | CONFIG_UNIX=y | 246 | CONFIG_UNIX=y |
@@ -264,6 +263,7 @@ CONFIG_IP_PNP_BOOTP=y | |||
264 | CONFIG_INET_AH=m | 263 | CONFIG_INET_AH=m |
265 | CONFIG_INET_ESP=m | 264 | CONFIG_INET_ESP=m |
266 | CONFIG_INET_IPCOMP=m | 265 | CONFIG_INET_IPCOMP=m |
266 | CONFIG_INET_XFRM_TUNNEL=m | ||
267 | CONFIG_INET_TUNNEL=m | 267 | CONFIG_INET_TUNNEL=m |
268 | CONFIG_INET_DIAG=y | 268 | CONFIG_INET_DIAG=y |
269 | CONFIG_INET_TCP_DIAG=y | 269 | CONFIG_INET_TCP_DIAG=y |
@@ -305,9 +305,12 @@ CONFIG_IP_VS_NQ=m | |||
305 | CONFIG_IP_VS_FTP=m | 305 | CONFIG_IP_VS_FTP=m |
306 | CONFIG_IPV6=m | 306 | CONFIG_IPV6=m |
307 | CONFIG_IPV6_PRIVACY=y | 307 | CONFIG_IPV6_PRIVACY=y |
308 | CONFIG_IPV6_ROUTER_PREF=y | ||
309 | CONFIG_IPV6_ROUTE_INFO=y | ||
308 | CONFIG_INET6_AH=m | 310 | CONFIG_INET6_AH=m |
309 | CONFIG_INET6_ESP=m | 311 | CONFIG_INET6_ESP=m |
310 | CONFIG_INET6_IPCOMP=m | 312 | CONFIG_INET6_IPCOMP=m |
313 | CONFIG_INET6_XFRM_TUNNEL=m | ||
311 | CONFIG_INET6_TUNNEL=m | 314 | CONFIG_INET6_TUNNEL=m |
312 | CONFIG_IPV6_TUNNEL=m | 315 | CONFIG_IPV6_TUNNEL=m |
313 | CONFIG_NETFILTER=y | 316 | CONFIG_NETFILTER=y |
@@ -330,11 +333,14 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | |||
330 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 333 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
331 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 334 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
332 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 335 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
336 | CONFIG_NETFILTER_XT_MATCH_ESP=m | ||
333 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 337 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
334 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 338 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
335 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 339 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
336 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 340 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
337 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 341 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
342 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | ||
343 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | ||
338 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 344 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
339 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 345 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
340 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 346 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
@@ -357,20 +363,19 @@ CONFIG_IP_NF_IRC=m | |||
357 | CONFIG_IP_NF_TFTP=m | 363 | CONFIG_IP_NF_TFTP=m |
358 | CONFIG_IP_NF_AMANDA=m | 364 | CONFIG_IP_NF_AMANDA=m |
359 | CONFIG_IP_NF_PPTP=m | 365 | CONFIG_IP_NF_PPTP=m |
366 | CONFIG_IP_NF_H323=m | ||
360 | CONFIG_IP_NF_QUEUE=m | 367 | CONFIG_IP_NF_QUEUE=m |
361 | CONFIG_IP_NF_IPTABLES=m | 368 | CONFIG_IP_NF_IPTABLES=m |
362 | CONFIG_IP_NF_MATCH_IPRANGE=m | 369 | CONFIG_IP_NF_MATCH_IPRANGE=m |
363 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
364 | CONFIG_IP_NF_MATCH_TOS=m | 370 | CONFIG_IP_NF_MATCH_TOS=m |
365 | CONFIG_IP_NF_MATCH_RECENT=m | 371 | CONFIG_IP_NF_MATCH_RECENT=m |
366 | CONFIG_IP_NF_MATCH_ECN=m | 372 | CONFIG_IP_NF_MATCH_ECN=m |
367 | CONFIG_IP_NF_MATCH_DSCP=m | 373 | CONFIG_IP_NF_MATCH_DSCP=m |
368 | CONFIG_IP_NF_MATCH_AH_ESP=m | 374 | CONFIG_IP_NF_MATCH_AH=m |
369 | CONFIG_IP_NF_MATCH_TTL=m | 375 | CONFIG_IP_NF_MATCH_TTL=m |
370 | CONFIG_IP_NF_MATCH_OWNER=m | 376 | CONFIG_IP_NF_MATCH_OWNER=m |
371 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 377 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
372 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 378 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
373 | CONFIG_IP_NF_MATCH_POLICY=m | ||
374 | CONFIG_IP_NF_FILTER=m | 379 | CONFIG_IP_NF_FILTER=m |
375 | CONFIG_IP_NF_TARGET_REJECT=m | 380 | CONFIG_IP_NF_TARGET_REJECT=m |
376 | CONFIG_IP_NF_TARGET_LOG=m | 381 | CONFIG_IP_NF_TARGET_LOG=m |
@@ -388,6 +393,7 @@ CONFIG_IP_NF_NAT_FTP=m | |||
388 | CONFIG_IP_NF_NAT_TFTP=m | 393 | CONFIG_IP_NF_NAT_TFTP=m |
389 | CONFIG_IP_NF_NAT_AMANDA=m | 394 | CONFIG_IP_NF_NAT_AMANDA=m |
390 | CONFIG_IP_NF_NAT_PPTP=m | 395 | CONFIG_IP_NF_NAT_PPTP=m |
396 | CONFIG_IP_NF_NAT_H323=m | ||
391 | CONFIG_IP_NF_MANGLE=m | 397 | CONFIG_IP_NF_MANGLE=m |
392 | CONFIG_IP_NF_TARGET_TOS=m | 398 | CONFIG_IP_NF_TARGET_TOS=m |
393 | CONFIG_IP_NF_TARGET_ECN=m | 399 | CONFIG_IP_NF_TARGET_ECN=m |
@@ -408,12 +414,10 @@ CONFIG_IP6_NF_MATCH_RT=m | |||
408 | CONFIG_IP6_NF_MATCH_OPTS=m | 414 | CONFIG_IP6_NF_MATCH_OPTS=m |
409 | CONFIG_IP6_NF_MATCH_FRAG=m | 415 | CONFIG_IP6_NF_MATCH_FRAG=m |
410 | CONFIG_IP6_NF_MATCH_HL=m | 416 | CONFIG_IP6_NF_MATCH_HL=m |
411 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
412 | CONFIG_IP6_NF_MATCH_OWNER=m | 417 | CONFIG_IP6_NF_MATCH_OWNER=m |
413 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | 418 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m |
414 | CONFIG_IP6_NF_MATCH_AHESP=m | 419 | CONFIG_IP6_NF_MATCH_AH=m |
415 | CONFIG_IP6_NF_MATCH_EUI64=m | 420 | CONFIG_IP6_NF_MATCH_EUI64=m |
416 | CONFIG_IP6_NF_MATCH_POLICY=m | ||
417 | CONFIG_IP6_NF_FILTER=m | 421 | CONFIG_IP6_NF_FILTER=m |
418 | CONFIG_IP6_NF_TARGET_LOG=m | 422 | CONFIG_IP6_NF_TARGET_LOG=m |
419 | CONFIG_IP6_NF_TARGET_REJECT=m | 423 | CONFIG_IP6_NF_TARGET_REJECT=m |
@@ -435,6 +439,11 @@ CONFIG_IP_SCTP=m | |||
435 | # CONFIG_SCTP_HMAC_NONE is not set | 439 | # CONFIG_SCTP_HMAC_NONE is not set |
436 | # CONFIG_SCTP_HMAC_SHA1 is not set | 440 | # CONFIG_SCTP_HMAC_SHA1 is not set |
437 | CONFIG_SCTP_HMAC_MD5=y | 441 | CONFIG_SCTP_HMAC_MD5=y |
442 | |||
443 | # | ||
444 | # TIPC Configuration (EXPERIMENTAL) | ||
445 | # | ||
446 | # CONFIG_TIPC is not set | ||
438 | # CONFIG_ATM is not set | 447 | # CONFIG_ATM is not set |
439 | # CONFIG_BRIDGE is not set | 448 | # CONFIG_BRIDGE is not set |
440 | # CONFIG_VLAN_8021Q is not set | 449 | # CONFIG_VLAN_8021Q is not set |
@@ -444,11 +453,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
444 | # CONFIG_ATALK is not set | 453 | # CONFIG_ATALK is not set |
445 | # CONFIG_X25 is not set | 454 | # CONFIG_X25 is not set |
446 | # CONFIG_LAPB is not set | 455 | # CONFIG_LAPB is not set |
447 | |||
448 | # | ||
449 | # TIPC Configuration (EXPERIMENTAL) | ||
450 | # | ||
451 | # CONFIG_TIPC is not set | ||
452 | CONFIG_NET_DIVERT=y | 456 | CONFIG_NET_DIVERT=y |
453 | # CONFIG_ECONET is not set | 457 | # CONFIG_ECONET is not set |
454 | # CONFIG_WAN_ROUTER is not set | 458 | # CONFIG_WAN_ROUTER is not set |
@@ -508,6 +512,9 @@ CONFIG_IEEE80211=m | |||
508 | # CONFIG_IEEE80211_DEBUG is not set | 512 | # CONFIG_IEEE80211_DEBUG is not set |
509 | CONFIG_IEEE80211_CRYPT_WEP=m | 513 | CONFIG_IEEE80211_CRYPT_WEP=m |
510 | CONFIG_IEEE80211_CRYPT_CCMP=m | 514 | CONFIG_IEEE80211_CRYPT_CCMP=m |
515 | CONFIG_IEEE80211_SOFTMAC=m | ||
516 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | ||
517 | CONFIG_WIRELESS_EXT=y | ||
511 | 518 | ||
512 | # | 519 | # |
513 | # Device Drivers | 520 | # Device Drivers |
@@ -546,7 +553,7 @@ CONFIG_CONNECTOR=m | |||
546 | # CONFIG_BLK_DEV_LOOP is not set | 553 | # CONFIG_BLK_DEV_LOOP is not set |
547 | # CONFIG_BLK_DEV_NBD is not set | 554 | # CONFIG_BLK_DEV_NBD is not set |
548 | # CONFIG_BLK_DEV_RAM is not set | 555 | # CONFIG_BLK_DEV_RAM is not set |
549 | CONFIG_BLK_DEV_RAM_COUNT=16 | 556 | # CONFIG_BLK_DEV_INITRD is not set |
550 | CONFIG_CDROM_PKTCDVD=m | 557 | CONFIG_CDROM_PKTCDVD=m |
551 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 558 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
552 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 559 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -812,10 +819,6 @@ CONFIG_MAX_RAW_DEVS=256 | |||
812 | # | 819 | # |
813 | 820 | ||
814 | # | 821 | # |
815 | # Multimedia Capabilities Port drivers | ||
816 | # | ||
817 | |||
818 | # | ||
819 | # Multimedia devices | 822 | # Multimedia devices |
820 | # | 823 | # |
821 | # CONFIG_VIDEO_DEV is not set | 824 | # CONFIG_VIDEO_DEV is not set |
@@ -857,6 +860,7 @@ CONFIG_LOGO_SGI_CLUT224=y | |||
857 | # | 860 | # |
858 | # CONFIG_USB_ARCH_HAS_HCD is not set | 861 | # CONFIG_USB_ARCH_HAS_HCD is not set |
859 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 862 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
863 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
860 | 864 | ||
861 | # | 865 | # |
862 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 866 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -873,12 +877,30 @@ CONFIG_LOGO_SGI_CLUT224=y | |||
873 | # CONFIG_MMC is not set | 877 | # CONFIG_MMC is not set |
874 | 878 | ||
875 | # | 879 | # |
880 | # LED devices | ||
881 | # | ||
882 | # CONFIG_NEW_LEDS is not set | ||
883 | |||
884 | # | ||
885 | # LED drivers | ||
886 | # | ||
887 | |||
888 | # | ||
889 | # LED Triggers | ||
890 | # | ||
891 | |||
892 | # | ||
876 | # InfiniBand support | 893 | # InfiniBand support |
877 | # | 894 | # |
878 | 895 | ||
879 | # | 896 | # |
880 | # SN Devices | 897 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
898 | # | ||
899 | |||
900 | # | ||
901 | # Real Time Clock | ||
881 | # | 902 | # |
903 | # CONFIG_RTC_CLASS is not set | ||
882 | 904 | ||
883 | # | 905 | # |
884 | # File systems | 906 | # File systems |
@@ -944,7 +966,6 @@ CONFIG_SYSFS=y | |||
944 | # CONFIG_TMPFS is not set | 966 | # CONFIG_TMPFS is not set |
945 | # CONFIG_HUGETLB_PAGE is not set | 967 | # CONFIG_HUGETLB_PAGE is not set |
946 | CONFIG_RAMFS=y | 968 | CONFIG_RAMFS=y |
947 | CONFIG_RELAYFS_FS=m | ||
948 | # CONFIG_CONFIGFS_FS is not set | 969 | # CONFIG_CONFIGFS_FS is not set |
949 | 970 | ||
950 | # | 971 | # |
@@ -963,7 +984,6 @@ CONFIG_EFS_FS=m | |||
963 | # CONFIG_QNX4FS_FS is not set | 984 | # CONFIG_QNX4FS_FS is not set |
964 | # CONFIG_SYSV_FS is not set | 985 | # CONFIG_SYSV_FS is not set |
965 | CONFIG_UFS_FS=m | 986 | CONFIG_UFS_FS=m |
966 | # CONFIG_UFS_FS_WRITE is not set | ||
967 | 987 | ||
968 | # | 988 | # |
969 | # Network File Systems | 989 | # Network File Systems |
@@ -1078,6 +1098,7 @@ CONFIG_NLS_UTF8=m | |||
1078 | # CONFIG_MAGIC_SYSRQ is not set | 1098 | # CONFIG_MAGIC_SYSRQ is not set |
1079 | # CONFIG_DEBUG_KERNEL is not set | 1099 | # CONFIG_DEBUG_KERNEL is not set |
1080 | CONFIG_LOG_BUF_SHIFT=14 | 1100 | CONFIG_LOG_BUF_SHIFT=14 |
1101 | # CONFIG_DEBUG_FS is not set | ||
1081 | CONFIG_CROSSCOMPILE=y | 1102 | CONFIG_CROSSCOMPILE=y |
1082 | CONFIG_CMDLINE="" | 1103 | CONFIG_CMDLINE="" |
1083 | 1104 | ||
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c index 374de839558d..b6232d9033cb 100644 --- a/arch/mips/kernel/branch.c +++ b/arch/mips/kernel/branch.c | |||
@@ -184,7 +184,7 @@ int __compute_return_epc(struct pt_regs *regs) | |||
184 | bit = (insn.i_format.rt >> 2); | 184 | bit = (insn.i_format.rt >> 2); |
185 | bit += (bit != 0); | 185 | bit += (bit != 0); |
186 | bit += 23; | 186 | bit += 23; |
187 | switch (insn.i_format.rt) { | 187 | switch (insn.i_format.rt & 3) { |
188 | case 0: /* bc1f */ | 188 | case 0: /* bc1f */ |
189 | case 2: /* bc1fl */ | 189 | case 2: /* bc1fl */ |
190 | if (~fcr31 & (1 << bit)) | 190 | if (~fcr31 & (1 << bit)) |
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index 7c953bcc5f6a..a7d2bb3cf835 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c | |||
@@ -356,73 +356,13 @@ asmlinkage int sys32_llseek(unsigned int fd, unsigned int offset_high, | |||
356 | asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, | 356 | asmlinkage ssize_t sys32_pread(unsigned int fd, char __user * buf, |
357 | size_t count, u32 unused, u64 a4, u64 a5) | 357 | size_t count, u32 unused, u64 a4, u64 a5) |
358 | { | 358 | { |
359 | ssize_t ret; | 359 | return sys_pread64(fd, buf, count, merge_64(a4, a5)); |
360 | struct file * file; | ||
361 | ssize_t (*read)(struct file *, char __user *, size_t, loff_t *); | ||
362 | loff_t pos; | ||
363 | |||
364 | ret = -EBADF; | ||
365 | file = fget(fd); | ||
366 | if (!file) | ||
367 | goto bad_file; | ||
368 | if (!(file->f_mode & FMODE_READ)) | ||
369 | goto out; | ||
370 | pos = merge_64(a4, a5); | ||
371 | ret = rw_verify_area(READ, file, &pos, count); | ||
372 | if (ret < 0) | ||
373 | goto out; | ||
374 | ret = -EINVAL; | ||
375 | if (!file->f_op || !(read = file->f_op->read)) | ||
376 | goto out; | ||
377 | if (pos < 0) | ||
378 | goto out; | ||
379 | ret = -ESPIPE; | ||
380 | if (!(file->f_mode & FMODE_PREAD)) | ||
381 | goto out; | ||
382 | ret = read(file, buf, count, &pos); | ||
383 | if (ret > 0) | ||
384 | dnotify_parent(file->f_dentry, DN_ACCESS); | ||
385 | out: | ||
386 | fput(file); | ||
387 | bad_file: | ||
388 | return ret; | ||
389 | } | 360 | } |
390 | 361 | ||
391 | asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, | 362 | asmlinkage ssize_t sys32_pwrite(unsigned int fd, const char __user * buf, |
392 | size_t count, u32 unused, u64 a4, u64 a5) | 363 | size_t count, u32 unused, u64 a4, u64 a5) |
393 | { | 364 | { |
394 | ssize_t ret; | 365 | return sys_pwrite64(fd, buf, count, merge_64(a4, a5)); |
395 | struct file * file; | ||
396 | ssize_t (*write)(struct file *, const char __user *, size_t, loff_t *); | ||
397 | loff_t pos; | ||
398 | |||
399 | ret = -EBADF; | ||
400 | file = fget(fd); | ||
401 | if (!file) | ||
402 | goto bad_file; | ||
403 | if (!(file->f_mode & FMODE_WRITE)) | ||
404 | goto out; | ||
405 | pos = merge_64(a4, a5); | ||
406 | ret = rw_verify_area(WRITE, file, &pos, count); | ||
407 | if (ret < 0) | ||
408 | goto out; | ||
409 | ret = -EINVAL; | ||
410 | if (!file->f_op || !(write = file->f_op->write)) | ||
411 | goto out; | ||
412 | if (pos < 0) | ||
413 | goto out; | ||
414 | |||
415 | ret = -ESPIPE; | ||
416 | if (!(file->f_mode & FMODE_PWRITE)) | ||
417 | goto out; | ||
418 | |||
419 | ret = write(file, buf, count, &pos); | ||
420 | if (ret > 0) | ||
421 | dnotify_parent(file->f_dentry, DN_MODIFY); | ||
422 | out: | ||
423 | fput(file); | ||
424 | bad_file: | ||
425 | return ret; | ||
426 | } | 366 | } |
427 | 367 | ||
428 | asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, | 368 | asmlinkage int sys32_sched_rr_get_interval(compat_pid_t pid, |
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c index f3106d0771b0..9b4733c12395 100644 --- a/arch/mips/kernel/ptrace.c +++ b/arch/mips/kernel/ptrace.c | |||
@@ -483,7 +483,7 @@ static inline int audit_arch(void) | |||
483 | asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit) | 483 | asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit) |
484 | { | 484 | { |
485 | if (unlikely(current->audit_context) && entryexit) | 485 | if (unlikely(current->audit_context) && entryexit) |
486 | audit_syscall_exit(current, AUDITSC_RESULT(regs->regs[2]), | 486 | audit_syscall_exit(AUDITSC_RESULT(regs->regs[2]), |
487 | regs->regs[2]); | 487 | regs->regs[2]); |
488 | 488 | ||
489 | if (!(current->ptrace & PT_PTRACED)) | 489 | if (!(current->ptrace & PT_PTRACED)) |
@@ -507,7 +507,7 @@ asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit) | |||
507 | } | 507 | } |
508 | out: | 508 | out: |
509 | if (unlikely(current->audit_context) && !entryexit) | 509 | if (unlikely(current->audit_context) && !entryexit) |
510 | audit_syscall_entry(current, audit_arch(), regs->regs[2], | 510 | audit_syscall_entry(audit_arch(), regs->regs[2], |
511 | regs->regs[4], regs->regs[5], | 511 | regs->regs[4], regs->regs[5], |
512 | regs->regs[6], regs->regs[7]); | 512 | regs->regs[6], regs->regs[7]); |
513 | } | 513 | } |
diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c index 6179805af9f0..caf777f83289 100644 --- a/arch/mips/kernel/rtlx.c +++ b/arch/mips/kernel/rtlx.c | |||
@@ -398,15 +398,14 @@ ssize_t rtlx_write(int index, void *buffer, size_t count, int user) | |||
398 | 398 | ||
399 | static int file_open(struct inode *inode, struct file *filp) | 399 | static int file_open(struct inode *inode, struct file *filp) |
400 | { | 400 | { |
401 | int minor = MINOR(inode->i_rdev); | 401 | int minor = iminor(inode); |
402 | 402 | ||
403 | return rtlx_open(minor, (filp->f_flags & O_NONBLOCK) ? 0 : 1); | 403 | return rtlx_open(minor, (filp->f_flags & O_NONBLOCK) ? 0 : 1); |
404 | } | 404 | } |
405 | 405 | ||
406 | static int file_release(struct inode *inode, struct file *filp) | 406 | static int file_release(struct inode *inode, struct file *filp) |
407 | { | 407 | { |
408 | int minor; | 408 | int minor = iminor(inode); |
409 | minor = MINOR(inode->i_rdev); | ||
410 | 409 | ||
411 | return rtlx_release(minor); | 410 | return rtlx_release(minor); |
412 | } | 411 | } |
@@ -416,7 +415,7 @@ static unsigned int file_poll(struct file *file, poll_table * wait) | |||
416 | int minor; | 415 | int minor; |
417 | unsigned int mask = 0; | 416 | unsigned int mask = 0; |
418 | 417 | ||
419 | minor = MINOR(file->f_dentry->d_inode->i_rdev); | 418 | minor = iminor(file->f_dentry->d_inode); |
420 | 419 | ||
421 | poll_wait(file, &channel_wqs[minor].rt_queue, wait); | 420 | poll_wait(file, &channel_wqs[minor].rt_queue, wait); |
422 | poll_wait(file, &channel_wqs[minor].lx_queue, wait); | 421 | poll_wait(file, &channel_wqs[minor].lx_queue, wait); |
@@ -438,7 +437,7 @@ static unsigned int file_poll(struct file *file, poll_table * wait) | |||
438 | static ssize_t file_read(struct file *file, char __user * buffer, size_t count, | 437 | static ssize_t file_read(struct file *file, char __user * buffer, size_t count, |
439 | loff_t * ppos) | 438 | loff_t * ppos) |
440 | { | 439 | { |
441 | int minor = MINOR(file->f_dentry->d_inode->i_rdev); | 440 | int minor = iminor(file->f_dentry->d_inode); |
442 | 441 | ||
443 | /* data available? */ | 442 | /* data available? */ |
444 | if (!rtlx_read_poll(minor, (file->f_flags & O_NONBLOCK) ? 0 : 1)) { | 443 | if (!rtlx_read_poll(minor, (file->f_flags & O_NONBLOCK) ? 0 : 1)) { |
@@ -455,7 +454,7 @@ static ssize_t file_write(struct file *file, const char __user * buffer, | |||
455 | struct rtlx_channel *rt; | 454 | struct rtlx_channel *rt; |
456 | DECLARE_WAITQUEUE(wait, current); | 455 | DECLARE_WAITQUEUE(wait, current); |
457 | 456 | ||
458 | minor = MINOR(file->f_dentry->d_inode->i_rdev); | 457 | minor = iminor(file->f_dentry->d_inode); |
459 | rt = &rtlx->channel[minor]; | 458 | rt = &rtlx->channel[minor]; |
460 | 459 | ||
461 | /* any space left... */ | 460 | /* any space left... */ |
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index 80ffaa6d50ad..85d7df7b18e1 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c | |||
@@ -1072,7 +1072,7 @@ static int vpe_open(struct inode *inode, struct file *filp) | |||
1072 | struct vpe_notifications *not; | 1072 | struct vpe_notifications *not; |
1073 | 1073 | ||
1074 | /* assume only 1 device at the mo. */ | 1074 | /* assume only 1 device at the mo. */ |
1075 | if ((minor = MINOR(inode->i_rdev)) != 1) { | 1075 | if ((minor = iminor(inode)) != 1) { |
1076 | printk(KERN_WARNING "VPE loader: only vpe1 is supported\n"); | 1076 | printk(KERN_WARNING "VPE loader: only vpe1 is supported\n"); |
1077 | return -ENODEV; | 1077 | return -ENODEV; |
1078 | } | 1078 | } |
@@ -1133,7 +1133,7 @@ static int vpe_release(struct inode *inode, struct file *filp) | |||
1133 | struct vpe *v; | 1133 | struct vpe *v; |
1134 | Elf_Ehdr *hdr; | 1134 | Elf_Ehdr *hdr; |
1135 | 1135 | ||
1136 | minor = MINOR(inode->i_rdev); | 1136 | minor = iminor(inode); |
1137 | if ((v = get_vpe(minor)) == NULL) | 1137 | if ((v = get_vpe(minor)) == NULL) |
1138 | return -ENODEV; | 1138 | return -ENODEV; |
1139 | 1139 | ||
@@ -1174,7 +1174,7 @@ static ssize_t vpe_write(struct file *file, const char __user * buffer, | |||
1174 | size_t ret = count; | 1174 | size_t ret = count; |
1175 | struct vpe *v; | 1175 | struct vpe *v; |
1176 | 1176 | ||
1177 | minor = MINOR(file->f_dentry->d_inode->i_rdev); | 1177 | minor = iminor(file->f_dentry->d_inode); |
1178 | if ((v = get_vpe(minor)) == NULL) | 1178 | if ((v = get_vpe(minor)) == NULL) |
1179 | return -ENODEV; | 1179 | return -ENODEV; |
1180 | 1180 | ||
diff --git a/arch/mips/mips-boards/generic/init.c b/arch/mips/mips-boards/generic/init.c index 17dfe6a8cab9..df4e94735604 100644 --- a/arch/mips/mips-boards/generic/init.c +++ b/arch/mips/mips-boards/generic/init.c | |||
@@ -337,6 +337,7 @@ void __init prom_init(void) | |||
337 | case MIPS_REVISION_CORID_CORE_MSC: | 337 | case MIPS_REVISION_CORID_CORE_MSC: |
338 | case MIPS_REVISION_CORID_CORE_FPGA2: | 338 | case MIPS_REVISION_CORID_CORE_FPGA2: |
339 | case MIPS_REVISION_CORID_CORE_FPGA3: | 339 | case MIPS_REVISION_CORID_CORE_FPGA3: |
340 | case MIPS_REVISION_CORID_CORE_24K: | ||
340 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: | 341 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: |
341 | _pcictrl_msc = (unsigned long)ioremap(MIPS_MSC01_PCI_REG_BASE, 0x2000); | 342 | _pcictrl_msc = (unsigned long)ioremap(MIPS_MSC01_PCI_REG_BASE, 0x2000); |
342 | 343 | ||
diff --git a/arch/mips/mips-boards/generic/pci.c b/arch/mips/mips-boards/generic/pci.c index 1f6f9df74ab2..9337f6c8873a 100644 --- a/arch/mips/mips-boards/generic/pci.c +++ b/arch/mips/mips-boards/generic/pci.c | |||
@@ -198,6 +198,7 @@ void __init mips_pcibios_init(void) | |||
198 | case MIPS_REVISION_CORID_CORE_MSC: | 198 | case MIPS_REVISION_CORID_CORE_MSC: |
199 | case MIPS_REVISION_CORID_CORE_FPGA2: | 199 | case MIPS_REVISION_CORID_CORE_FPGA2: |
200 | case MIPS_REVISION_CORID_CORE_FPGA3: | 200 | case MIPS_REVISION_CORID_CORE_FPGA3: |
201 | case MIPS_REVISION_CORID_CORE_24K: | ||
201 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: | 202 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: |
202 | /* Set up resource ranges from the controller's registers. */ | 203 | /* Set up resource ranges from the controller's registers. */ |
203 | MSC_READ(MSC01_PCI_SC2PMBASL, start); | 204 | MSC_READ(MSC01_PCI_SC2PMBASL, start); |
diff --git a/arch/mips/mips-boards/malta/malta_int.c b/arch/mips/mips-boards/malta/malta_int.c index 64db07d4dbe5..7cc0ba4f553a 100644 --- a/arch/mips/mips-boards/malta/malta_int.c +++ b/arch/mips/mips-boards/malta/malta_int.c | |||
@@ -57,6 +57,7 @@ static inline int mips_pcibios_iack(void) | |||
57 | case MIPS_REVISION_CORID_CORE_MSC: | 57 | case MIPS_REVISION_CORID_CORE_MSC: |
58 | case MIPS_REVISION_CORID_CORE_FPGA2: | 58 | case MIPS_REVISION_CORID_CORE_FPGA2: |
59 | case MIPS_REVISION_CORID_CORE_FPGA3: | 59 | case MIPS_REVISION_CORID_CORE_FPGA3: |
60 | case MIPS_REVISION_CORID_CORE_24K: | ||
60 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: | 61 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: |
61 | MSC_READ(MSC01_PCI_IACK, irq); | 62 | MSC_READ(MSC01_PCI_IACK, irq); |
62 | irq &= 0xff; | 63 | irq &= 0xff; |
@@ -143,6 +144,7 @@ void corehi_irqdispatch(struct pt_regs *regs) | |||
143 | case MIPS_REVISION_CORID_CORE_MSC: | 144 | case MIPS_REVISION_CORID_CORE_MSC: |
144 | case MIPS_REVISION_CORID_CORE_FPGA2: | 145 | case MIPS_REVISION_CORID_CORE_FPGA2: |
145 | case MIPS_REVISION_CORID_CORE_FPGA3: | 146 | case MIPS_REVISION_CORID_CORE_FPGA3: |
147 | case MIPS_REVISION_CORID_CORE_24K: | ||
146 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: | 148 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: |
147 | ll_msc_irq(regs); | 149 | ll_msc_irq(regs); |
148 | break; | 150 | break; |
@@ -309,6 +311,7 @@ void __init arch_init_irq(void) | |||
309 | case MIPS_REVISION_CORID_CORE_MSC: | 311 | case MIPS_REVISION_CORID_CORE_MSC: |
310 | case MIPS_REVISION_CORID_CORE_FPGA2: | 312 | case MIPS_REVISION_CORID_CORE_FPGA2: |
311 | case MIPS_REVISION_CORID_CORE_FPGA3: | 313 | case MIPS_REVISION_CORID_CORE_FPGA3: |
314 | case MIPS_REVISION_CORID_CORE_24K: | ||
312 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: | 315 | case MIPS_REVISION_CORID_CORE_EMUL_MSC: |
313 | if (cpu_has_veic) | 316 | if (cpu_has_veic) |
314 | init_msc_irqs (MSC01E_INT_BASE, msc_eicirqmap, msc_nr_eicirqs); | 317 | init_msc_irqs (MSC01E_INT_BASE, msc_eicirqmap, msc_nr_eicirqs); |
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c index 935dd851f480..f2b4862aaae5 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c | |||
@@ -27,7 +27,7 @@ static int op_mips_setup(void) | |||
27 | model->reg_setup(ctr); | 27 | model->reg_setup(ctr); |
28 | 28 | ||
29 | /* Configure the registers on all cpus. */ | 29 | /* Configure the registers on all cpus. */ |
30 | on_each_cpu(model->cpu_setup, 0, 0, 1); | 30 | on_each_cpu(model->cpu_setup, NULL, 0, 1); |
31 | 31 | ||
32 | return 0; | 32 | return 0; |
33 | } | 33 | } |
@@ -114,5 +114,6 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) | |||
114 | 114 | ||
115 | void oprofile_arch_exit(void) | 115 | void oprofile_arch_exit(void) |
116 | { | 116 | { |
117 | model->exit(); | 117 | if (model) |
118 | model->exit(); | ||
118 | } | 119 | } |
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c index cddf1cedf007..36b662e27b6e 100644 --- a/arch/mips/sgi-ip27/ip27-timer.c +++ b/arch/mips/sgi-ip27/ip27-timer.c | |||
@@ -122,7 +122,7 @@ again: | |||
122 | xtime.tv_sec > last_rtc_update + 660 && | 122 | xtime.tv_sec > last_rtc_update + 660 && |
123 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | 123 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && |
124 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { | 124 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { |
125 | if (rtc_set_time(xtime.tv_sec) == 0) { | 125 | if (rtc_mips_set_time(xtime.tv_sec) == 0) { |
126 | last_rtc_update = xtime.tv_sec; | 126 | last_rtc_update = xtime.tv_sec; |
127 | } else { | 127 | } else { |
128 | last_rtc_update = xtime.tv_sec - 600; | 128 | last_rtc_update = xtime.tv_sec - 600; |
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c index 22a6df94b4a1..de01c9815bdd 100644 --- a/arch/mips/sgi-ip32/ip32-irq.c +++ b/arch/mips/sgi-ip32/ip32-irq.c | |||
@@ -507,13 +507,14 @@ static void ip32_irq0(struct pt_regs *regs) | |||
507 | int irq = 0; | 507 | int irq = 0; |
508 | 508 | ||
509 | crime_int = crime->istat & crime_mask; | 509 | crime_int = crime->istat & crime_mask; |
510 | irq = ffs(crime_int); | 510 | irq = __ffs(crime_int); |
511 | crime_int = 1 << (irq - 1); | 511 | crime_int = 1 << irq; |
512 | 512 | ||
513 | if (crime_int & CRIME_MACEISA_INT_MASK) { | 513 | if (crime_int & CRIME_MACEISA_INT_MASK) { |
514 | unsigned long mace_int = mace->perif.ctrl.istat; | 514 | unsigned long mace_int = mace->perif.ctrl.istat; |
515 | irq = ffs(mace_int & maceisa_mask) + 32; | 515 | irq = __ffs(mace_int & maceisa_mask) + 32; |
516 | } | 516 | } |
517 | irq++; | ||
517 | DBG("*irq %u*\n", irq); | 518 | DBG("*irq %u*\n", irq); |
518 | do_IRQ(irq, regs); | 519 | do_IRQ(irq, regs); |
519 | } | 520 | } |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index fe22e54ab2b0..dbe421dc3c11 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
@@ -9,6 +9,7 @@ CONFIG_PPC_MERGE=y | |||
9 | CONFIG_MMU=y | 9 | CONFIG_MMU=y |
10 | CONFIG_GENERIC_HARDIRQS=y | 10 | CONFIG_GENERIC_HARDIRQS=y |
11 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 11 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
12 | CONFIG_GENERIC_HWEIGHT=y | ||
12 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 13 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
13 | CONFIG_PPC=y | 14 | CONFIG_PPC=y |
14 | CONFIG_EARLY_PRINTK=y | 15 | CONFIG_EARLY_PRINTK=y |
@@ -55,6 +56,7 @@ CONFIG_SYSCTL=y | |||
55 | CONFIG_IKCONFIG=y | 56 | CONFIG_IKCONFIG=y |
56 | CONFIG_IKCONFIG_PROC=y | 57 | CONFIG_IKCONFIG_PROC=y |
57 | # CONFIG_CPUSETS is not set | 58 | # CONFIG_CPUSETS is not set |
59 | # CONFIG_RELAY is not set | ||
58 | CONFIG_INITRAMFS_SOURCE="" | 60 | CONFIG_INITRAMFS_SOURCE="" |
59 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 61 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
60 | # CONFIG_EMBEDDED is not set | 62 | # CONFIG_EMBEDDED is not set |
@@ -69,10 +71,6 @@ CONFIG_BASE_FULL=y | |||
69 | CONFIG_FUTEX=y | 71 | CONFIG_FUTEX=y |
70 | CONFIG_EPOLL=y | 72 | CONFIG_EPOLL=y |
71 | CONFIG_SHMEM=y | 73 | CONFIG_SHMEM=y |
72 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
73 | CONFIG_CC_ALIGN_LABELS=0 | ||
74 | CONFIG_CC_ALIGN_LOOPS=0 | ||
75 | CONFIG_CC_ALIGN_JUMPS=0 | ||
76 | CONFIG_SLAB=y | 74 | CONFIG_SLAB=y |
77 | # CONFIG_TINY_SHMEM is not set | 75 | # CONFIG_TINY_SHMEM is not set |
78 | CONFIG_BASE_SMALL=0 | 76 | CONFIG_BASE_SMALL=0 |
@@ -84,7 +82,6 @@ CONFIG_BASE_SMALL=0 | |||
84 | CONFIG_MODULES=y | 82 | CONFIG_MODULES=y |
85 | CONFIG_MODULE_UNLOAD=y | 83 | CONFIG_MODULE_UNLOAD=y |
86 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 84 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
87 | CONFIG_OBSOLETE_MODPARM=y | ||
88 | # CONFIG_MODVERSIONS is not set | 85 | # CONFIG_MODVERSIONS is not set |
89 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 86 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
90 | CONFIG_KMOD=y | 87 | CONFIG_KMOD=y |
@@ -93,6 +90,7 @@ CONFIG_STOP_MACHINE=y | |||
93 | # | 90 | # |
94 | # Block layer | 91 | # Block layer |
95 | # | 92 | # |
93 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
96 | 94 | ||
97 | # | 95 | # |
98 | # IO Schedulers | 96 | # IO Schedulers |
@@ -126,6 +124,7 @@ CONFIG_RTAS_FLASH=y | |||
126 | CONFIG_MMIO_NVRAM=y | 124 | CONFIG_MMIO_NVRAM=y |
127 | CONFIG_CELL_IIC=y | 125 | CONFIG_CELL_IIC=y |
128 | # CONFIG_PPC_MPC106 is not set | 126 | # CONFIG_PPC_MPC106 is not set |
127 | # CONFIG_PPC_970_NAP is not set | ||
129 | # CONFIG_CPU_FREQ is not set | 128 | # CONFIG_CPU_FREQ is not set |
130 | # CONFIG_WANT_EARLY_SERIAL is not set | 129 | # CONFIG_WANT_EARLY_SERIAL is not set |
131 | 130 | ||
@@ -167,7 +166,6 @@ CONFIG_HAVE_MEMORY_PRESENT=y | |||
167 | CONFIG_SPARSEMEM_EXTREME=y | 166 | CONFIG_SPARSEMEM_EXTREME=y |
168 | # CONFIG_MEMORY_HOTPLUG is not set | 167 | # CONFIG_MEMORY_HOTPLUG is not set |
169 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 168 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
170 | CONFIG_MIGRATION=y | ||
171 | # CONFIG_PPC_64K_PAGES is not set | 169 | # CONFIG_PPC_64K_PAGES is not set |
172 | CONFIG_SCHED_SMT=y | 170 | CONFIG_SCHED_SMT=y |
173 | CONFIG_PROC_DEVICETREE=y | 171 | CONFIG_PROC_DEVICETREE=y |
@@ -184,7 +182,6 @@ CONFIG_GENERIC_ISA_DMA=y | |||
184 | # CONFIG_PPC_INDIRECT_PCI is not set | 182 | # CONFIG_PPC_INDIRECT_PCI is not set |
185 | CONFIG_PCI=y | 183 | CONFIG_PCI=y |
186 | CONFIG_PCI_DOMAINS=y | 184 | CONFIG_PCI_DOMAINS=y |
187 | CONFIG_PCI_LEGACY_PROC=y | ||
188 | # CONFIG_PCI_DEBUG is not set | 185 | # CONFIG_PCI_DEBUG is not set |
189 | 186 | ||
190 | # | 187 | # |
@@ -226,6 +223,7 @@ CONFIG_SYN_COOKIES=y | |||
226 | # CONFIG_INET_AH is not set | 223 | # CONFIG_INET_AH is not set |
227 | # CONFIG_INET_ESP is not set | 224 | # CONFIG_INET_ESP is not set |
228 | # CONFIG_INET_IPCOMP is not set | 225 | # CONFIG_INET_IPCOMP is not set |
226 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
229 | CONFIG_INET_TUNNEL=y | 227 | CONFIG_INET_TUNNEL=y |
230 | CONFIG_INET_DIAG=y | 228 | CONFIG_INET_DIAG=y |
231 | CONFIG_INET_TCP_DIAG=y | 229 | CONFIG_INET_TCP_DIAG=y |
@@ -242,6 +240,7 @@ CONFIG_IPV6=y | |||
242 | CONFIG_INET6_AH=m | 240 | CONFIG_INET6_AH=m |
243 | CONFIG_INET6_ESP=m | 241 | CONFIG_INET6_ESP=m |
244 | CONFIG_INET6_IPCOMP=m | 242 | CONFIG_INET6_IPCOMP=m |
243 | CONFIG_INET6_XFRM_TUNNEL=m | ||
245 | CONFIG_INET6_TUNNEL=m | 244 | CONFIG_INET6_TUNNEL=m |
246 | CONFIG_IPV6_TUNNEL=m | 245 | CONFIG_IPV6_TUNNEL=m |
247 | CONFIG_NETFILTER=y | 246 | CONFIG_NETFILTER=y |
@@ -632,6 +631,7 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
632 | # | 631 | # |
633 | CONFIG_SERIAL_8250=y | 632 | CONFIG_SERIAL_8250=y |
634 | CONFIG_SERIAL_8250_CONSOLE=y | 633 | CONFIG_SERIAL_8250_CONSOLE=y |
634 | CONFIG_SERIAL_8250_PCI=y | ||
635 | CONFIG_SERIAL_8250_NR_UARTS=4 | 635 | CONFIG_SERIAL_8250_NR_UARTS=4 |
636 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 636 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
637 | # CONFIG_SERIAL_8250_EXTENDED is not set | 637 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -717,7 +717,6 @@ CONFIG_I2C_ALGOBIT=y | |||
717 | # CONFIG_I2C_PARPORT_LIGHT is not set | 717 | # CONFIG_I2C_PARPORT_LIGHT is not set |
718 | # CONFIG_I2C_PROSAVAGE is not set | 718 | # CONFIG_I2C_PROSAVAGE is not set |
719 | # CONFIG_I2C_SAVAGE4 is not set | 719 | # CONFIG_I2C_SAVAGE4 is not set |
720 | # CONFIG_SCx200_ACB is not set | ||
721 | # CONFIG_I2C_SIS5595 is not set | 720 | # CONFIG_I2C_SIS5595 is not set |
722 | # CONFIG_I2C_SIS630 is not set | 721 | # CONFIG_I2C_SIS630 is not set |
723 | # CONFIG_I2C_SIS96X is not set | 722 | # CONFIG_I2C_SIS96X is not set |
@@ -736,9 +735,7 @@ CONFIG_I2C_ALGOBIT=y | |||
736 | # CONFIG_SENSORS_PCF8574 is not set | 735 | # CONFIG_SENSORS_PCF8574 is not set |
737 | # CONFIG_SENSORS_PCA9539 is not set | 736 | # CONFIG_SENSORS_PCA9539 is not set |
738 | # CONFIG_SENSORS_PCF8591 is not set | 737 | # CONFIG_SENSORS_PCF8591 is not set |
739 | # CONFIG_SENSORS_RTC8564 is not set | ||
740 | # CONFIG_SENSORS_MAX6875 is not set | 738 | # CONFIG_SENSORS_MAX6875 is not set |
741 | # CONFIG_RTC_X1205_I2C is not set | ||
742 | # CONFIG_I2C_DEBUG_CORE is not set | 739 | # CONFIG_I2C_DEBUG_CORE is not set |
743 | # CONFIG_I2C_DEBUG_ALGO is not set | 740 | # CONFIG_I2C_DEBUG_ALGO is not set |
744 | # CONFIG_I2C_DEBUG_BUS is not set | 741 | # CONFIG_I2C_DEBUG_BUS is not set |
@@ -766,10 +763,6 @@ CONFIG_I2C_ALGOBIT=y | |||
766 | # | 763 | # |
767 | 764 | ||
768 | # | 765 | # |
769 | # Multimedia Capabilities Port drivers | ||
770 | # | ||
771 | |||
772 | # | ||
773 | # Multimedia devices | 766 | # Multimedia devices |
774 | # | 767 | # |
775 | # CONFIG_VIDEO_DEV is not set | 768 | # CONFIG_VIDEO_DEV is not set |
@@ -818,6 +811,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
818 | # CONFIG_MMC is not set | 811 | # CONFIG_MMC is not set |
819 | 812 | ||
820 | # | 813 | # |
814 | # LED devices | ||
815 | # | ||
816 | # CONFIG_NEW_LEDS is not set | ||
817 | |||
818 | # | ||
819 | # LED drivers | ||
820 | # | ||
821 | |||
822 | # | ||
823 | # LED Triggers | ||
824 | # | ||
825 | |||
826 | # | ||
821 | # InfiniBand support | 827 | # InfiniBand support |
822 | # | 828 | # |
823 | CONFIG_INFINIBAND=y | 829 | CONFIG_INFINIBAND=y |
@@ -834,6 +840,11 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y | |||
834 | # | 840 | # |
835 | 841 | ||
836 | # | 842 | # |
843 | # Real Time Clock | ||
844 | # | ||
845 | # CONFIG_RTC_CLASS is not set | ||
846 | |||
847 | # | ||
837 | # File systems | 848 | # File systems |
838 | # | 849 | # |
839 | CONFIG_EXT2_FS=y | 850 | CONFIG_EXT2_FS=y |
@@ -889,7 +900,6 @@ CONFIG_TMPFS=y | |||
889 | CONFIG_HUGETLBFS=y | 900 | CONFIG_HUGETLBFS=y |
890 | CONFIG_HUGETLB_PAGE=y | 901 | CONFIG_HUGETLB_PAGE=y |
891 | CONFIG_RAMFS=y | 902 | CONFIG_RAMFS=y |
892 | # CONFIG_RELAYFS_FS is not set | ||
893 | # CONFIG_CONFIGFS_FS is not set | 903 | # CONFIG_CONFIGFS_FS is not set |
894 | 904 | ||
895 | # | 905 | # |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 39e348a3ade2..3f7182db9ed5 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -57,6 +57,8 @@ extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); | |||
57 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) | 57 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) |
58 | #define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\ | 58 | #define COMMON_USER_POWER5_PLUS (COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\ |
59 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) | 59 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) |
60 | #define COMMON_USER_POWER6 (COMMON_USER_PPC64 | PPC_FEATURE_ARCH_2_05 |\ | ||
61 | PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP) | ||
60 | #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ | 62 | #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ |
61 | PPC_FEATURE_BOOKE) | 63 | PPC_FEATURE_BOOKE) |
62 | 64 | ||
@@ -263,6 +265,20 @@ struct cpu_spec cpu_specs[] = { | |||
263 | .oprofile_type = PPC_OPROFILE_POWER4, | 265 | .oprofile_type = PPC_OPROFILE_POWER4, |
264 | .platform = "power5+", | 266 | .platform = "power5+", |
265 | }, | 267 | }, |
268 | { /* Power6 */ | ||
269 | .pvr_mask = 0xffff0000, | ||
270 | .pvr_value = 0x003e0000, | ||
271 | .cpu_name = "POWER6", | ||
272 | .cpu_features = CPU_FTRS_POWER6, | ||
273 | .cpu_user_features = COMMON_USER_POWER6, | ||
274 | .icache_bsize = 128, | ||
275 | .dcache_bsize = 128, | ||
276 | .num_pmcs = 6, | ||
277 | .cpu_setup = __setup_cpu_power4, | ||
278 | .oprofile_cpu_type = "ppc64/power6", | ||
279 | .oprofile_type = PPC_OPROFILE_POWER4, | ||
280 | .platform = "power6", | ||
281 | }, | ||
266 | { /* Cell Broadband Engine */ | 282 | { /* Cell Broadband Engine */ |
267 | .pvr_mask = 0xffff0000, | 283 | .pvr_mask = 0xffff0000, |
268 | .pvr_value = 0x00700000, | 284 | .pvr_value = 0x00700000, |
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index 856ef1a832b9..f78866367b70 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c | |||
@@ -90,15 +90,15 @@ void __kprobes arch_remove_kprobe(struct kprobe *p) | |||
90 | 90 | ||
91 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 91 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
92 | { | 92 | { |
93 | kprobe_opcode_t insn = *p->ainsn.insn; | ||
94 | |||
95 | regs->msr |= MSR_SE; | 93 | regs->msr |= MSR_SE; |
96 | 94 | ||
97 | /* single step inline if it is a trap variant */ | 95 | /* |
98 | if (is_trap(insn)) | 96 | * On powerpc we should single step on the original |
99 | regs->nip = (unsigned long)p->addr; | 97 | * instruction even if the probed insn is a trap |
100 | else | 98 | * variant as values in regs could play a part in |
101 | regs->nip = (unsigned long)p->ainsn.insn; | 99 | * if the trap is taken or not |
100 | */ | ||
101 | regs->nip = (unsigned long)p->ainsn.insn; | ||
102 | } | 102 | } |
103 | 103 | ||
104 | static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) | 104 | static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) |
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c index 928b8581fcb0..ba34001fca8e 100644 --- a/arch/powerpc/kernel/module_64.c +++ b/arch/powerpc/kernel/module_64.c | |||
@@ -191,11 +191,19 @@ int module_frob_arch_sections(Elf64_Ehdr *hdr, | |||
191 | (void *)hdr | 191 | (void *)hdr |
192 | + sechdrs[sechdrs[i].sh_link].sh_offset); | 192 | + sechdrs[sechdrs[i].sh_link].sh_offset); |
193 | } | 193 | } |
194 | if (!me->arch.stubs_section || !me->arch.toc_section) { | 194 | |
195 | printk("%s: doesn't contain .toc or .stubs.\n", me->name); | 195 | if (!me->arch.stubs_section) { |
196 | printk("%s: doesn't contain .stubs.\n", me->name); | ||
196 | return -ENOEXEC; | 197 | return -ENOEXEC; |
197 | } | 198 | } |
198 | 199 | ||
200 | /* If we don't have a .toc, just use .stubs. We need to set r2 | ||
201 | to some reasonable value in case the module calls out to | ||
202 | other functions via a stub, or if a function pointer escapes | ||
203 | the module by some means. */ | ||
204 | if (!me->arch.toc_section) | ||
205 | me->arch.toc_section = me->arch.stubs_section; | ||
206 | |||
199 | /* Override the stubs size */ | 207 | /* Override the stubs size */ |
200 | sechdrs[me->arch.stubs_section].sh_size = get_stubs_size(hdr, sechdrs); | 208 | sechdrs[me->arch.stubs_section].sh_size = get_stubs_size(hdr, sechdrs); |
201 | return 0; | 209 | return 0; |
@@ -342,7 +350,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, | |||
342 | break; | 350 | break; |
343 | 351 | ||
344 | case R_PPC64_TOC16: | 352 | case R_PPC64_TOC16: |
345 | /* Subtact TOC pointer */ | 353 | /* Subtract TOC pointer */ |
346 | value -= my_r2(sechdrs, me); | 354 | value -= my_r2(sechdrs, me); |
347 | if (value + 0x8000 > 0xffff) { | 355 | if (value + 0x8000 > 0xffff) { |
348 | printk("%s: bad TOC16 relocation (%lu)\n", | 356 | printk("%s: bad TOC16 relocation (%lu)\n", |
@@ -355,7 +363,7 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, | |||
355 | break; | 363 | break; |
356 | 364 | ||
357 | case R_PPC64_TOC16_DS: | 365 | case R_PPC64_TOC16_DS: |
358 | /* Subtact TOC pointer */ | 366 | /* Subtract TOC pointer */ |
359 | value -= my_r2(sechdrs, me); | 367 | value -= my_r2(sechdrs, me); |
360 | if ((value & 3) != 0 || value + 0x8000 > 0xffff) { | 368 | if ((value & 3) != 0 || value + 0x8000 > 0xffff) { |
361 | printk("%s: bad TOC16_DS relocation (%lu)\n", | 369 | printk("%s: bad TOC16_DS relocation (%lu)\n", |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 1cb69e8fb0b1..9a07f97f0712 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -885,6 +885,74 @@ void __init unflatten_device_tree(void) | |||
885 | DBG(" <- unflatten_device_tree()\n"); | 885 | DBG(" <- unflatten_device_tree()\n"); |
886 | } | 886 | } |
887 | 887 | ||
888 | /* | ||
889 | * ibm,pa-features is a per-cpu property that contains a string of | ||
890 | * attribute descriptors, each of which has a 2 byte header plus up | ||
891 | * to 254 bytes worth of processor attribute bits. First header | ||
892 | * byte specifies the number of bytes following the header. | ||
893 | * Second header byte is an "attribute-specifier" type, of which | ||
894 | * zero is the only currently-defined value. | ||
895 | * Implementation: Pass in the byte and bit offset for the feature | ||
896 | * that we are interested in. The function will return -1 if the | ||
897 | * pa-features property is missing, or a 1/0 to indicate if the feature | ||
898 | * is supported/not supported. Note that the bit numbers are | ||
899 | * big-endian to match the definition in PAPR. | ||
900 | */ | ||
901 | static struct ibm_pa_feature { | ||
902 | unsigned long cpu_features; /* CPU_FTR_xxx bit */ | ||
903 | unsigned int cpu_user_ftrs; /* PPC_FEATURE_xxx bit */ | ||
904 | unsigned char pabyte; /* byte number in ibm,pa-features */ | ||
905 | unsigned char pabit; /* bit number (big-endian) */ | ||
906 | unsigned char invert; /* if 1, pa bit set => clear feature */ | ||
907 | } ibm_pa_features[] __initdata = { | ||
908 | {0, PPC_FEATURE_HAS_MMU, 0, 0, 0}, | ||
909 | {0, PPC_FEATURE_HAS_FPU, 0, 1, 0}, | ||
910 | {CPU_FTR_SLB, 0, 0, 2, 0}, | ||
911 | {CPU_FTR_CTRL, 0, 0, 3, 0}, | ||
912 | {CPU_FTR_NOEXECUTE, 0, 0, 6, 0}, | ||
913 | {CPU_FTR_NODSISRALIGN, 0, 1, 1, 1}, | ||
914 | {CPU_FTR_CI_LARGE_PAGE, 0, 1, 2, 0}, | ||
915 | }; | ||
916 | |||
917 | static void __init check_cpu_pa_features(unsigned long node) | ||
918 | { | ||
919 | unsigned char *pa_ftrs; | ||
920 | unsigned long len, tablelen, i, bit; | ||
921 | |||
922 | pa_ftrs = of_get_flat_dt_prop(node, "ibm,pa-features", &tablelen); | ||
923 | if (pa_ftrs == NULL) | ||
924 | return; | ||
925 | |||
926 | /* find descriptor with type == 0 */ | ||
927 | for (;;) { | ||
928 | if (tablelen < 3) | ||
929 | return; | ||
930 | len = 2 + pa_ftrs[0]; | ||
931 | if (tablelen < len) | ||
932 | return; /* descriptor 0 not found */ | ||
933 | if (pa_ftrs[1] == 0) | ||
934 | break; | ||
935 | tablelen -= len; | ||
936 | pa_ftrs += len; | ||
937 | } | ||
938 | |||
939 | /* loop over bits we know about */ | ||
940 | for (i = 0; i < ARRAY_SIZE(ibm_pa_features); ++i) { | ||
941 | struct ibm_pa_feature *fp = &ibm_pa_features[i]; | ||
942 | |||
943 | if (fp->pabyte >= pa_ftrs[0]) | ||
944 | continue; | ||
945 | bit = (pa_ftrs[2 + fp->pabyte] >> (7 - fp->pabit)) & 1; | ||
946 | if (bit ^ fp->invert) { | ||
947 | cur_cpu_spec->cpu_features |= fp->cpu_features; | ||
948 | cur_cpu_spec->cpu_user_features |= fp->cpu_user_ftrs; | ||
949 | } else { | ||
950 | cur_cpu_spec->cpu_features &= ~fp->cpu_features; | ||
951 | cur_cpu_spec->cpu_user_features &= ~fp->cpu_user_ftrs; | ||
952 | } | ||
953 | } | ||
954 | } | ||
955 | |||
888 | static int __init early_init_dt_scan_cpus(unsigned long node, | 956 | static int __init early_init_dt_scan_cpus(unsigned long node, |
889 | const char *uname, int depth, | 957 | const char *uname, int depth, |
890 | void *data) | 958 | void *data) |
@@ -969,6 +1037,8 @@ static int __init early_init_dt_scan_cpus(unsigned long node, | |||
969 | } | 1037 | } |
970 | #endif /* CONFIG_ALTIVEC */ | 1038 | #endif /* CONFIG_ALTIVEC */ |
971 | 1039 | ||
1040 | check_cpu_pa_features(node); | ||
1041 | |||
972 | #ifdef CONFIG_PPC_PSERIES | 1042 | #ifdef CONFIG_PPC_PSERIES |
973 | if (nthreads > 1) | 1043 | if (nthreads > 1) |
974 | cur_cpu_spec->cpu_features |= CPU_FTR_SMT; | 1044 | cur_cpu_spec->cpu_features |= CPU_FTR_SMT; |
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index 7e4d54821a07..078fb5533541 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -636,10 +636,96 @@ static void __init early_cmdline_parse(void) | |||
636 | 636 | ||
637 | #ifdef CONFIG_PPC_PSERIES | 637 | #ifdef CONFIG_PPC_PSERIES |
638 | /* | 638 | /* |
639 | * To tell the firmware what our capabilities are, we have to pass | 639 | * There are two methods for telling firmware what our capabilities are. |
640 | * it a fake 32-bit ELF header containing a couple of PT_NOTE sections | 640 | * Newer machines have an "ibm,client-architecture-support" method on the |
641 | * that contain structures that contain the actual values. | 641 | * root node. For older machines, we have to call the "process-elf-header" |
642 | * method in the /packages/elf-loader node, passing it a fake 32-bit | ||
643 | * ELF header containing a couple of PT_NOTE sections that contain | ||
644 | * structures that contain various information. | ||
642 | */ | 645 | */ |
646 | |||
647 | /* | ||
648 | * New method - extensible architecture description vector. | ||
649 | * | ||
650 | * Because the description vector contains a mix of byte and word | ||
651 | * values, we declare it as an unsigned char array, and use this | ||
652 | * macro to put word values in. | ||
653 | */ | ||
654 | #define W(x) ((x) >> 24) & 0xff, ((x) >> 16) & 0xff, \ | ||
655 | ((x) >> 8) & 0xff, (x) & 0xff | ||
656 | |||
657 | /* Option vector bits - generic bits in byte 1 */ | ||
658 | #define OV_IGNORE 0x80 /* ignore this vector */ | ||
659 | #define OV_CESSATION_POLICY 0x40 /* halt if unsupported option present*/ | ||
660 | |||
661 | /* Option vector 1: processor architectures supported */ | ||
662 | #define OV1_PPC_2_00 0x80 /* set if we support PowerPC 2.00 */ | ||
663 | #define OV1_PPC_2_01 0x40 /* set if we support PowerPC 2.01 */ | ||
664 | #define OV1_PPC_2_02 0x20 /* set if we support PowerPC 2.02 */ | ||
665 | #define OV1_PPC_2_03 0x10 /* set if we support PowerPC 2.03 */ | ||
666 | #define OV1_PPC_2_04 0x08 /* set if we support PowerPC 2.04 */ | ||
667 | #define OV1_PPC_2_05 0x04 /* set if we support PowerPC 2.05 */ | ||
668 | |||
669 | /* Option vector 2: Open Firmware options supported */ | ||
670 | #define OV2_REAL_MODE 0x20 /* set if we want OF in real mode */ | ||
671 | |||
672 | /* Option vector 3: processor options supported */ | ||
673 | #define OV3_FP 0x80 /* floating point */ | ||
674 | #define OV3_VMX 0x40 /* VMX/Altivec */ | ||
675 | |||
676 | /* Option vector 5: PAPR/OF options supported */ | ||
677 | #define OV5_LPAR 0x80 /* logical partitioning supported */ | ||
678 | #define OV5_SPLPAR 0x40 /* shared-processor LPAR supported */ | ||
679 | /* ibm,dynamic-reconfiguration-memory property supported */ | ||
680 | #define OV5_DRCONF_MEMORY 0x20 | ||
681 | #define OV5_LARGE_PAGES 0x10 /* large pages supported */ | ||
682 | |||
683 | /* | ||
684 | * The architecture vector has an array of PVR mask/value pairs, | ||
685 | * followed by # option vectors - 1, followed by the option vectors. | ||
686 | */ | ||
687 | static unsigned char ibm_architecture_vec[] = { | ||
688 | W(0xfffe0000), W(0x003a0000), /* POWER5/POWER5+ */ | ||
689 | W(0xffff0000), W(0x003e0000), /* POWER6 */ | ||
690 | W(0xfffffffe), W(0x0f000001), /* all 2.04-compliant and earlier */ | ||
691 | 5 - 1, /* 5 option vectors */ | ||
692 | |||
693 | /* option vector 1: processor architectures supported */ | ||
694 | 3 - 1, /* length */ | ||
695 | 0, /* don't ignore, don't halt */ | ||
696 | OV1_PPC_2_00 | OV1_PPC_2_01 | OV1_PPC_2_02 | OV1_PPC_2_03 | | ||
697 | OV1_PPC_2_04 | OV1_PPC_2_05, | ||
698 | |||
699 | /* option vector 2: Open Firmware options supported */ | ||
700 | 34 - 1, /* length */ | ||
701 | OV2_REAL_MODE, | ||
702 | 0, 0, | ||
703 | W(0xffffffff), /* real_base */ | ||
704 | W(0xffffffff), /* real_size */ | ||
705 | W(0xffffffff), /* virt_base */ | ||
706 | W(0xffffffff), /* virt_size */ | ||
707 | W(0xffffffff), /* load_base */ | ||
708 | W(64), /* 128MB min RMA */ | ||
709 | W(0xffffffff), /* full client load */ | ||
710 | 0, /* min RMA percentage of total RAM */ | ||
711 | 48, /* max log_2(hash table size) */ | ||
712 | |||
713 | /* option vector 3: processor options supported */ | ||
714 | 3 - 1, /* length */ | ||
715 | 0, /* don't ignore, don't halt */ | ||
716 | OV3_FP | OV3_VMX, | ||
717 | |||
718 | /* option vector 4: IBM PAPR implementation */ | ||
719 | 2 - 1, /* length */ | ||
720 | 0, /* don't halt */ | ||
721 | |||
722 | /* option vector 5: PAPR/OF options */ | ||
723 | 3 - 1, /* length */ | ||
724 | 0, /* don't ignore, don't halt */ | ||
725 | OV5_LPAR | OV5_SPLPAR | OV5_LARGE_PAGES, | ||
726 | }; | ||
727 | |||
728 | /* Old method - ELF header with PT_NOTE sections */ | ||
643 | static struct fake_elf { | 729 | static struct fake_elf { |
644 | Elf32_Ehdr elfhdr; | 730 | Elf32_Ehdr elfhdr; |
645 | Elf32_Phdr phdr[2]; | 731 | Elf32_Phdr phdr[2]; |
@@ -728,8 +814,26 @@ static struct fake_elf { | |||
728 | 814 | ||
729 | static void __init prom_send_capabilities(void) | 815 | static void __init prom_send_capabilities(void) |
730 | { | 816 | { |
731 | ihandle elfloader; | 817 | ihandle elfloader, root; |
818 | prom_arg_t ret; | ||
819 | |||
820 | root = call_prom("open", 1, 1, ADDR("/")); | ||
821 | if (root != 0) { | ||
822 | /* try calling the ibm,client-architecture-support method */ | ||
823 | if (call_prom_ret("call-method", 3, 2, &ret, | ||
824 | ADDR("ibm,client-architecture-support"), | ||
825 | ADDR(ibm_architecture_vec)) == 0) { | ||
826 | /* the call exists... */ | ||
827 | if (ret) | ||
828 | prom_printf("WARNING: ibm,client-architecture" | ||
829 | "-support call FAILED!\n"); | ||
830 | call_prom("close", 1, 0, root); | ||
831 | return; | ||
832 | } | ||
833 | call_prom("close", 1, 0, root); | ||
834 | } | ||
732 | 835 | ||
836 | /* no ibm,client-architecture-support call, try the old way */ | ||
733 | elfloader = call_prom("open", 1, 1, ADDR("/packages/elf-loader")); | 837 | elfloader = call_prom("open", 1, 1, ADDR("/packages/elf-loader")); |
734 | if (elfloader == 0) { | 838 | if (elfloader == 0) { |
735 | prom_printf("couldn't open /packages/elf-loader\n"); | 839 | prom_printf("couldn't open /packages/elf-loader\n"); |
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index bcb83574335b..4a677d1bd4ef 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -538,7 +538,7 @@ void do_syscall_trace_enter(struct pt_regs *regs) | |||
538 | do_syscall_trace(); | 538 | do_syscall_trace(); |
539 | 539 | ||
540 | if (unlikely(current->audit_context)) | 540 | if (unlikely(current->audit_context)) |
541 | audit_syscall_entry(current, | 541 | audit_syscall_entry( |
542 | #ifdef CONFIG_PPC32 | 542 | #ifdef CONFIG_PPC32 |
543 | AUDIT_ARCH_PPC, | 543 | AUDIT_ARCH_PPC, |
544 | #else | 544 | #else |
@@ -556,8 +556,7 @@ void do_syscall_trace_leave(struct pt_regs *regs) | |||
556 | #endif | 556 | #endif |
557 | 557 | ||
558 | if (unlikely(current->audit_context)) | 558 | if (unlikely(current->audit_context)) |
559 | audit_syscall_exit(current, | 559 | audit_syscall_exit((regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS, |
560 | (regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS, | ||
561 | regs->result); | 560 | regs->result); |
562 | 561 | ||
563 | if ((test_thread_flag(TIF_SYSCALL_TRACE) | 562 | if ((test_thread_flag(TIF_SYSCALL_TRACE) |
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index 1d93e73a7003..684ab1d49c65 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -516,3 +516,11 @@ void probe_machine(void) | |||
516 | 516 | ||
517 | printk(KERN_INFO "Using %s machine description\n", ppc_md.name); | 517 | printk(KERN_INFO "Using %s machine description\n", ppc_md.name); |
518 | } | 518 | } |
519 | |||
520 | int check_legacy_ioport(unsigned long base_port) | ||
521 | { | ||
522 | if (ppc_md.check_legacy_ioport == NULL) | ||
523 | return 0; | ||
524 | return ppc_md.check_legacy_ioport(base_port); | ||
525 | } | ||
526 | EXPORT_SYMBOL(check_legacy_ioport); | ||
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index 13e91c4d70a8..4467c49903b6 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
@@ -594,14 +594,6 @@ void ppc64_terminate_msg(unsigned int src, const char *msg) | |||
594 | printk("[terminate]%04x %s\n", src, msg); | 594 | printk("[terminate]%04x %s\n", src, msg); |
595 | } | 595 | } |
596 | 596 | ||
597 | int check_legacy_ioport(unsigned long base_port) | ||
598 | { | ||
599 | if (ppc_md.check_legacy_ioport == NULL) | ||
600 | return 0; | ||
601 | return ppc_md.check_legacy_ioport(base_port); | ||
602 | } | ||
603 | EXPORT_SYMBOL(check_legacy_ioport); | ||
604 | |||
605 | void cpu_die(void) | 597 | void cpu_die(void) |
606 | { | 598 | { |
607 | if (ppc_md.cpu_die) | 599 | if (ppc_md.cpu_die) |
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c index 73560ef6f802..5bc2585c8036 100644 --- a/arch/powerpc/kernel/sysfs.c +++ b/arch/powerpc/kernel/sysfs.c | |||
@@ -279,7 +279,7 @@ static void unregister_cpu_online(unsigned int cpu) | |||
279 | } | 279 | } |
280 | #endif /* CONFIG_HOTPLUG_CPU */ | 280 | #endif /* CONFIG_HOTPLUG_CPU */ |
281 | 281 | ||
282 | static int __devinit sysfs_cpu_notify(struct notifier_block *self, | 282 | static int sysfs_cpu_notify(struct notifier_block *self, |
283 | unsigned long action, void *hcpu) | 283 | unsigned long action, void *hcpu) |
284 | { | 284 | { |
285 | unsigned int cpu = (unsigned int)(long)hcpu; | 285 | unsigned int cpu = (unsigned int)(long)hcpu; |
@@ -297,7 +297,7 @@ static int __devinit sysfs_cpu_notify(struct notifier_block *self, | |||
297 | return NOTIFY_OK; | 297 | return NOTIFY_OK; |
298 | } | 298 | } |
299 | 299 | ||
300 | static struct notifier_block __devinitdata sysfs_cpu_nb = { | 300 | static struct notifier_block sysfs_cpu_nb = { |
301 | .notifier_call = sysfs_cpu_notify, | 301 | .notifier_call = sysfs_cpu_notify, |
302 | }; | 302 | }; |
303 | 303 | ||
@@ -322,13 +322,31 @@ static void register_nodes(void) | |||
322 | } | 322 | } |
323 | } | 323 | } |
324 | } | 324 | } |
325 | |||
326 | int sysfs_add_device_to_node(struct sys_device *dev, int nid) | ||
327 | { | ||
328 | struct node *node = &node_devices[nid]; | ||
329 | return sysfs_create_link(&node->sysdev.kobj, &dev->kobj, | ||
330 | kobject_name(&dev->kobj)); | ||
331 | } | ||
332 | |||
333 | void sysfs_remove_device_from_node(struct sys_device *dev, int nid) | ||
334 | { | ||
335 | struct node *node = &node_devices[nid]; | ||
336 | sysfs_remove_link(&node->sysdev.kobj, kobject_name(&dev->kobj)); | ||
337 | } | ||
338 | |||
325 | #else | 339 | #else |
326 | static void register_nodes(void) | 340 | static void register_nodes(void) |
327 | { | 341 | { |
328 | return; | 342 | return; |
329 | } | 343 | } |
344 | |||
330 | #endif | 345 | #endif |
331 | 346 | ||
347 | EXPORT_SYMBOL_GPL(sysfs_add_device_to_node); | ||
348 | EXPORT_SYMBOL_GPL(sysfs_remove_device_from_node); | ||
349 | |||
332 | /* Only valid if CPU is present. */ | 350 | /* Only valid if CPU is present. */ |
333 | static ssize_t show_physical_id(struct sys_device *dev, char *buf) | 351 | static ssize_t show_physical_id(struct sys_device *dev, char *buf) |
334 | { | 352 | { |
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S index 8d1522690501..cf56a1d499ff 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.S | |||
@@ -324,6 +324,20 @@ COMPAT_SYS(ppoll) | |||
324 | SYSCALL(unshare) | 324 | SYSCALL(unshare) |
325 | SYSCALL(splice) | 325 | SYSCALL(splice) |
326 | SYSCALL(tee) | 326 | SYSCALL(tee) |
327 | SYSCALL(vmsplice) | ||
328 | COMPAT_SYS(openat) | ||
329 | SYSCALL(mkdirat) | ||
330 | SYSCALL(mknodat) | ||
331 | SYSCALL(fchownat) | ||
332 | COMPAT_SYS(futimesat) | ||
333 | SYSX(sys_newfstatat, sys_fstatat64, sys_fstatat64) | ||
334 | SYSCALL(unlinkat) | ||
335 | SYSCALL(renameat) | ||
336 | SYSCALL(linkat) | ||
337 | SYSCALL(symlinkat) | ||
338 | SYSCALL(readlinkat) | ||
339 | SYSCALL(fchmodat) | ||
340 | SYSCALL(faccessat) | ||
327 | 341 | ||
328 | /* | 342 | /* |
329 | * please add new calls to arch/powerpc/platforms/cell/spu_callbacks.c | 343 | * please add new calls to arch/powerpc/platforms/cell/spu_callbacks.c |
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c index 7370f9f33e29..266b8b2ceac9 100644 --- a/arch/powerpc/mm/hugetlbpage.c +++ b/arch/powerpc/mm/hugetlbpage.c | |||
@@ -30,13 +30,66 @@ | |||
30 | #define NUM_LOW_AREAS (0x100000000UL >> SID_SHIFT) | 30 | #define NUM_LOW_AREAS (0x100000000UL >> SID_SHIFT) |
31 | #define NUM_HIGH_AREAS (PGTABLE_RANGE >> HTLB_AREA_SHIFT) | 31 | #define NUM_HIGH_AREAS (PGTABLE_RANGE >> HTLB_AREA_SHIFT) |
32 | 32 | ||
33 | #ifdef CONFIG_PPC_64K_PAGES | ||
34 | #define HUGEPTE_INDEX_SIZE (PMD_SHIFT-HPAGE_SHIFT) | ||
35 | #else | ||
36 | #define HUGEPTE_INDEX_SIZE (PUD_SHIFT-HPAGE_SHIFT) | ||
37 | #endif | ||
38 | #define PTRS_PER_HUGEPTE (1 << HUGEPTE_INDEX_SIZE) | ||
39 | #define HUGEPTE_TABLE_SIZE (sizeof(pte_t) << HUGEPTE_INDEX_SIZE) | ||
40 | |||
41 | #define HUGEPD_SHIFT (HPAGE_SHIFT + HUGEPTE_INDEX_SIZE) | ||
42 | #define HUGEPD_SIZE (1UL << HUGEPD_SHIFT) | ||
43 | #define HUGEPD_MASK (~(HUGEPD_SIZE-1)) | ||
44 | |||
45 | #define huge_pgtable_cache (pgtable_cache[HUGEPTE_CACHE_NUM]) | ||
46 | |||
47 | /* Flag to mark huge PD pointers. This means pmd_bad() and pud_bad() | ||
48 | * will choke on pointers to hugepte tables, which is handy for | ||
49 | * catching screwups early. */ | ||
50 | #define HUGEPD_OK 0x1 | ||
51 | |||
52 | typedef struct { unsigned long pd; } hugepd_t; | ||
53 | |||
54 | #define hugepd_none(hpd) ((hpd).pd == 0) | ||
55 | |||
56 | static inline pte_t *hugepd_page(hugepd_t hpd) | ||
57 | { | ||
58 | BUG_ON(!(hpd.pd & HUGEPD_OK)); | ||
59 | return (pte_t *)(hpd.pd & ~HUGEPD_OK); | ||
60 | } | ||
61 | |||
62 | static inline pte_t *hugepte_offset(hugepd_t *hpdp, unsigned long addr) | ||
63 | { | ||
64 | unsigned long idx = ((addr >> HPAGE_SHIFT) & (PTRS_PER_HUGEPTE-1)); | ||
65 | pte_t *dir = hugepd_page(*hpdp); | ||
66 | |||
67 | return dir + idx; | ||
68 | } | ||
69 | |||
70 | static int __hugepte_alloc(struct mm_struct *mm, hugepd_t *hpdp, | ||
71 | unsigned long address) | ||
72 | { | ||
73 | pte_t *new = kmem_cache_alloc(huge_pgtable_cache, | ||
74 | GFP_KERNEL|__GFP_REPEAT); | ||
75 | |||
76 | if (! new) | ||
77 | return -ENOMEM; | ||
78 | |||
79 | spin_lock(&mm->page_table_lock); | ||
80 | if (!hugepd_none(*hpdp)) | ||
81 | kmem_cache_free(huge_pgtable_cache, new); | ||
82 | else | ||
83 | hpdp->pd = (unsigned long)new | HUGEPD_OK; | ||
84 | spin_unlock(&mm->page_table_lock); | ||
85 | return 0; | ||
86 | } | ||
87 | |||
33 | /* Modelled after find_linux_pte() */ | 88 | /* Modelled after find_linux_pte() */ |
34 | pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr) | 89 | pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr) |
35 | { | 90 | { |
36 | pgd_t *pg; | 91 | pgd_t *pg; |
37 | pud_t *pu; | 92 | pud_t *pu; |
38 | pmd_t *pm; | ||
39 | pte_t *pt; | ||
40 | 93 | ||
41 | BUG_ON(! in_hugepage_area(mm->context, addr)); | 94 | BUG_ON(! in_hugepage_area(mm->context, addr)); |
42 | 95 | ||
@@ -46,26 +99,14 @@ pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr) | |||
46 | if (!pgd_none(*pg)) { | 99 | if (!pgd_none(*pg)) { |
47 | pu = pud_offset(pg, addr); | 100 | pu = pud_offset(pg, addr); |
48 | if (!pud_none(*pu)) { | 101 | if (!pud_none(*pu)) { |
49 | pm = pmd_offset(pu, addr); | ||
50 | #ifdef CONFIG_PPC_64K_PAGES | 102 | #ifdef CONFIG_PPC_64K_PAGES |
51 | /* Currently, we use the normal PTE offset within full | 103 | pmd_t *pm; |
52 | * size PTE pages, thus our huge PTEs are scattered in | 104 | pm = pmd_offset(pu, addr); |
53 | * the PTE page and we do waste some. We may change | 105 | if (!pmd_none(*pm)) |
54 | * that in the future, but the current mecanism keeps | 106 | return hugepte_offset((hugepd_t *)pm, addr); |
55 | * things much simpler | 107 | #else |
56 | */ | 108 | return hugepte_offset((hugepd_t *)pu, addr); |
57 | if (!pmd_none(*pm)) { | 109 | #endif |
58 | /* Note: pte_offset_* are all equivalent on | ||
59 | * ppc64 as we don't have HIGHMEM | ||
60 | */ | ||
61 | pt = pte_offset_kernel(pm, addr); | ||
62 | return pt; | ||
63 | } | ||
64 | #else /* CONFIG_PPC_64K_PAGES */ | ||
65 | /* On 4k pages, we put huge PTEs in the PMD page */ | ||
66 | pt = (pte_t *)pm; | ||
67 | return pt; | ||
68 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
69 | } | 110 | } |
70 | } | 111 | } |
71 | 112 | ||
@@ -76,8 +117,7 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr) | |||
76 | { | 117 | { |
77 | pgd_t *pg; | 118 | pgd_t *pg; |
78 | pud_t *pu; | 119 | pud_t *pu; |
79 | pmd_t *pm; | 120 | hugepd_t *hpdp = NULL; |
80 | pte_t *pt; | ||
81 | 121 | ||
82 | BUG_ON(! in_hugepage_area(mm->context, addr)); | 122 | BUG_ON(! in_hugepage_area(mm->context, addr)); |
83 | 123 | ||
@@ -87,23 +127,182 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr) | |||
87 | pu = pud_alloc(mm, pg, addr); | 127 | pu = pud_alloc(mm, pg, addr); |
88 | 128 | ||
89 | if (pu) { | 129 | if (pu) { |
130 | #ifdef CONFIG_PPC_64K_PAGES | ||
131 | pmd_t *pm; | ||
90 | pm = pmd_alloc(mm, pu, addr); | 132 | pm = pmd_alloc(mm, pu, addr); |
91 | if (pm) { | 133 | if (pm) |
134 | hpdp = (hugepd_t *)pm; | ||
135 | #else | ||
136 | hpdp = (hugepd_t *)pu; | ||
137 | #endif | ||
138 | } | ||
139 | |||
140 | if (! hpdp) | ||
141 | return NULL; | ||
142 | |||
143 | if (hugepd_none(*hpdp) && __hugepte_alloc(mm, hpdp, addr)) | ||
144 | return NULL; | ||
145 | |||
146 | return hugepte_offset(hpdp, addr); | ||
147 | } | ||
148 | |||
149 | static void free_hugepte_range(struct mmu_gather *tlb, hugepd_t *hpdp) | ||
150 | { | ||
151 | pte_t *hugepte = hugepd_page(*hpdp); | ||
152 | |||
153 | hpdp->pd = 0; | ||
154 | tlb->need_flush = 1; | ||
155 | pgtable_free_tlb(tlb, pgtable_free_cache(hugepte, HUGEPTE_CACHE_NUM, | ||
156 | HUGEPTE_TABLE_SIZE-1)); | ||
157 | } | ||
158 | |||
92 | #ifdef CONFIG_PPC_64K_PAGES | 159 | #ifdef CONFIG_PPC_64K_PAGES |
93 | /* See comment in huge_pte_offset. Note that if we ever | 160 | static void hugetlb_free_pmd_range(struct mmu_gather *tlb, pud_t *pud, |
94 | * want to put the page size in the PMD, we would have | 161 | unsigned long addr, unsigned long end, |
95 | * to open code our own pte_alloc* function in order | 162 | unsigned long floor, unsigned long ceiling) |
96 | * to populate and set the size atomically | 163 | { |
97 | */ | 164 | pmd_t *pmd; |
98 | pt = pte_alloc_map(mm, pm, addr); | 165 | unsigned long next; |
99 | #else /* CONFIG_PPC_64K_PAGES */ | 166 | unsigned long start; |
100 | pt = (pte_t *)pm; | 167 | |
101 | #endif /* CONFIG_PPC_64K_PAGES */ | 168 | start = addr; |
102 | return pt; | 169 | pmd = pmd_offset(pud, addr); |
103 | } | 170 | do { |
171 | next = pmd_addr_end(addr, end); | ||
172 | if (pmd_none(*pmd)) | ||
173 | continue; | ||
174 | free_hugepte_range(tlb, (hugepd_t *)pmd); | ||
175 | } while (pmd++, addr = next, addr != end); | ||
176 | |||
177 | start &= PUD_MASK; | ||
178 | if (start < floor) | ||
179 | return; | ||
180 | if (ceiling) { | ||
181 | ceiling &= PUD_MASK; | ||
182 | if (!ceiling) | ||
183 | return; | ||
104 | } | 184 | } |
185 | if (end - 1 > ceiling - 1) | ||
186 | return; | ||
105 | 187 | ||
106 | return NULL; | 188 | pmd = pmd_offset(pud, start); |
189 | pud_clear(pud); | ||
190 | pmd_free_tlb(tlb, pmd); | ||
191 | } | ||
192 | #endif | ||
193 | |||
194 | static void hugetlb_free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, | ||
195 | unsigned long addr, unsigned long end, | ||
196 | unsigned long floor, unsigned long ceiling) | ||
197 | { | ||
198 | pud_t *pud; | ||
199 | unsigned long next; | ||
200 | unsigned long start; | ||
201 | |||
202 | start = addr; | ||
203 | pud = pud_offset(pgd, addr); | ||
204 | do { | ||
205 | next = pud_addr_end(addr, end); | ||
206 | #ifdef CONFIG_PPC_64K_PAGES | ||
207 | if (pud_none_or_clear_bad(pud)) | ||
208 | continue; | ||
209 | hugetlb_free_pmd_range(tlb, pud, addr, next, floor, ceiling); | ||
210 | #else | ||
211 | if (pud_none(*pud)) | ||
212 | continue; | ||
213 | free_hugepte_range(tlb, (hugepd_t *)pud); | ||
214 | #endif | ||
215 | } while (pud++, addr = next, addr != end); | ||
216 | |||
217 | start &= PGDIR_MASK; | ||
218 | if (start < floor) | ||
219 | return; | ||
220 | if (ceiling) { | ||
221 | ceiling &= PGDIR_MASK; | ||
222 | if (!ceiling) | ||
223 | return; | ||
224 | } | ||
225 | if (end - 1 > ceiling - 1) | ||
226 | return; | ||
227 | |||
228 | pud = pud_offset(pgd, start); | ||
229 | pgd_clear(pgd); | ||
230 | pud_free_tlb(tlb, pud); | ||
231 | } | ||
232 | |||
233 | /* | ||
234 | * This function frees user-level page tables of a process. | ||
235 | * | ||
236 | * Must be called with pagetable lock held. | ||
237 | */ | ||
238 | void hugetlb_free_pgd_range(struct mmu_gather **tlb, | ||
239 | unsigned long addr, unsigned long end, | ||
240 | unsigned long floor, unsigned long ceiling) | ||
241 | { | ||
242 | pgd_t *pgd; | ||
243 | unsigned long next; | ||
244 | unsigned long start; | ||
245 | |||
246 | /* | ||
247 | * Comments below take from the normal free_pgd_range(). They | ||
248 | * apply here too. The tests against HUGEPD_MASK below are | ||
249 | * essential, because we *don't* test for this at the bottom | ||
250 | * level. Without them we'll attempt to free a hugepte table | ||
251 | * when we unmap just part of it, even if there are other | ||
252 | * active mappings using it. | ||
253 | * | ||
254 | * The next few lines have given us lots of grief... | ||
255 | * | ||
256 | * Why are we testing HUGEPD* at this top level? Because | ||
257 | * often there will be no work to do at all, and we'd prefer | ||
258 | * not to go all the way down to the bottom just to discover | ||
259 | * that. | ||
260 | * | ||
261 | * Why all these "- 1"s? Because 0 represents both the bottom | ||
262 | * of the address space and the top of it (using -1 for the | ||
263 | * top wouldn't help much: the masks would do the wrong thing). | ||
264 | * The rule is that addr 0 and floor 0 refer to the bottom of | ||
265 | * the address space, but end 0 and ceiling 0 refer to the top | ||
266 | * Comparisons need to use "end - 1" and "ceiling - 1" (though | ||
267 | * that end 0 case should be mythical). | ||
268 | * | ||
269 | * Wherever addr is brought up or ceiling brought down, we | ||
270 | * must be careful to reject "the opposite 0" before it | ||
271 | * confuses the subsequent tests. But what about where end is | ||
272 | * brought down by HUGEPD_SIZE below? no, end can't go down to | ||
273 | * 0 there. | ||
274 | * | ||
275 | * Whereas we round start (addr) and ceiling down, by different | ||
276 | * masks at different levels, in order to test whether a table | ||
277 | * now has no other vmas using it, so can be freed, we don't | ||
278 | * bother to round floor or end up - the tests don't need that. | ||
279 | */ | ||
280 | |||
281 | addr &= HUGEPD_MASK; | ||
282 | if (addr < floor) { | ||
283 | addr += HUGEPD_SIZE; | ||
284 | if (!addr) | ||
285 | return; | ||
286 | } | ||
287 | if (ceiling) { | ||
288 | ceiling &= HUGEPD_MASK; | ||
289 | if (!ceiling) | ||
290 | return; | ||
291 | } | ||
292 | if (end - 1 > ceiling - 1) | ||
293 | end -= HUGEPD_SIZE; | ||
294 | if (addr > end - 1) | ||
295 | return; | ||
296 | |||
297 | start = addr; | ||
298 | pgd = pgd_offset((*tlb)->mm, addr); | ||
299 | do { | ||
300 | BUG_ON(! in_hugepage_area((*tlb)->mm->context, addr)); | ||
301 | next = pgd_addr_end(addr, end); | ||
302 | if (pgd_none_or_clear_bad(pgd)) | ||
303 | continue; | ||
304 | hugetlb_free_pud_range(*tlb, pgd, addr, next, floor, ceiling); | ||
305 | } while (pgd++, addr = next, addr != end); | ||
107 | } | 306 | } |
108 | 307 | ||
109 | void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, | 308 | void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, |
@@ -841,3 +1040,27 @@ repeat: | |||
841 | out: | 1040 | out: |
842 | return err; | 1041 | return err; |
843 | } | 1042 | } |
1043 | |||
1044 | static void zero_ctor(void *addr, kmem_cache_t *cache, unsigned long flags) | ||
1045 | { | ||
1046 | memset(addr, 0, kmem_cache_size(cache)); | ||
1047 | } | ||
1048 | |||
1049 | static int __init hugetlbpage_init(void) | ||
1050 | { | ||
1051 | if (!cpu_has_feature(CPU_FTR_16M_PAGE)) | ||
1052 | return -ENODEV; | ||
1053 | |||
1054 | huge_pgtable_cache = kmem_cache_create("hugepte_cache", | ||
1055 | HUGEPTE_TABLE_SIZE, | ||
1056 | HUGEPTE_TABLE_SIZE, | ||
1057 | SLAB_HWCACHE_ALIGN | | ||
1058 | SLAB_MUST_HWCACHE_ALIGN, | ||
1059 | zero_ctor, NULL); | ||
1060 | if (! huge_pgtable_cache) | ||
1061 | panic("hugetlbpage_init(): could not create hugepte cache\n"); | ||
1062 | |||
1063 | return 0; | ||
1064 | } | ||
1065 | |||
1066 | module_init(hugetlbpage_init); | ||
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c index babebd15bdc4..9e30f968c184 100644 --- a/arch/powerpc/mm/init_64.c +++ b/arch/powerpc/mm/init_64.c | |||
@@ -162,7 +162,14 @@ static const char *pgtable_cache_name[ARRAY_SIZE(pgtable_cache_size)] = { | |||
162 | }; | 162 | }; |
163 | #endif /* CONFIG_PPC_64K_PAGES */ | 163 | #endif /* CONFIG_PPC_64K_PAGES */ |
164 | 164 | ||
165 | #ifdef CONFIG_HUGETLB_PAGE | ||
166 | /* Hugepages need one extra cache, initialized in hugetlbpage.c. We | ||
167 | * can't put into the tables above, because HPAGE_SHIFT is not compile | ||
168 | * time constant. */ | ||
169 | kmem_cache_t *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)+1]; | ||
170 | #else | ||
165 | kmem_cache_t *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)]; | 171 | kmem_cache_t *pgtable_cache[ARRAY_SIZE(pgtable_cache_size)]; |
172 | #endif | ||
166 | 173 | ||
167 | void pgtable_cache_init(void) | 174 | void pgtable_cache_init(void) |
168 | { | 175 | { |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 0a335f34974c..092355f37399 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -194,7 +194,7 @@ static int *of_get_associativity(struct device_node *dev) | |||
194 | /* Returns nid in the range [0..MAX_NUMNODES-1], or -1 if no useful numa | 194 | /* Returns nid in the range [0..MAX_NUMNODES-1], or -1 if no useful numa |
195 | * info is found. | 195 | * info is found. |
196 | */ | 196 | */ |
197 | static int of_node_to_nid(struct device_node *device) | 197 | static int of_node_to_nid_single(struct device_node *device) |
198 | { | 198 | { |
199 | int nid = -1; | 199 | int nid = -1; |
200 | unsigned int *tmp; | 200 | unsigned int *tmp; |
@@ -216,6 +216,28 @@ out: | |||
216 | return nid; | 216 | return nid; |
217 | } | 217 | } |
218 | 218 | ||
219 | /* Walk the device tree upwards, looking for an associativity id */ | ||
220 | int of_node_to_nid(struct device_node *device) | ||
221 | { | ||
222 | struct device_node *tmp; | ||
223 | int nid = -1; | ||
224 | |||
225 | of_node_get(device); | ||
226 | while (device) { | ||
227 | nid = of_node_to_nid_single(device); | ||
228 | if (nid != -1) | ||
229 | break; | ||
230 | |||
231 | tmp = device; | ||
232 | device = of_get_parent(tmp); | ||
233 | of_node_put(tmp); | ||
234 | } | ||
235 | of_node_put(device); | ||
236 | |||
237 | return nid; | ||
238 | } | ||
239 | EXPORT_SYMBOL_GPL(of_node_to_nid); | ||
240 | |||
219 | /* | 241 | /* |
220 | * In theory, the "ibm,associativity" property may contain multiple | 242 | * In theory, the "ibm,associativity" property may contain multiple |
221 | * associativity lists because a resource may be multiply connected | 243 | * associativity lists because a resource may be multiply connected |
@@ -300,7 +322,7 @@ static int __cpuinit numa_setup_cpu(unsigned long lcpu) | |||
300 | goto out; | 322 | goto out; |
301 | } | 323 | } |
302 | 324 | ||
303 | nid = of_node_to_nid(cpu); | 325 | nid = of_node_to_nid_single(cpu); |
304 | 326 | ||
305 | if (nid < 0 || !node_online(nid)) | 327 | if (nid < 0 || !node_online(nid)) |
306 | nid = any_online_node(NODE_MASK_ALL); | 328 | nid = any_online_node(NODE_MASK_ALL); |
@@ -393,7 +415,7 @@ static int __init parse_numa_properties(void) | |||
393 | 415 | ||
394 | cpu = find_cpu_node(i); | 416 | cpu = find_cpu_node(i); |
395 | BUG_ON(!cpu); | 417 | BUG_ON(!cpu); |
396 | nid = of_node_to_nid(cpu); | 418 | nid = of_node_to_nid_single(cpu); |
397 | of_node_put(cpu); | 419 | of_node_put(cpu); |
398 | 420 | ||
399 | /* | 421 | /* |
@@ -437,7 +459,7 @@ new_range: | |||
437 | * have associativity properties. If none, then | 459 | * have associativity properties. If none, then |
438 | * everything goes to default_nid. | 460 | * everything goes to default_nid. |
439 | */ | 461 | */ |
440 | nid = of_node_to_nid(memory); | 462 | nid = of_node_to_nid_single(memory); |
441 | if (nid < 0) | 463 | if (nid < 0) |
442 | nid = default_nid; | 464 | nid = default_nid; |
443 | node_set_online(nid); | 465 | node_set_online(nid); |
@@ -776,7 +798,7 @@ int hot_add_scn_to_nid(unsigned long scn_addr) | |||
776 | ha_new_range: | 798 | ha_new_range: |
777 | start = read_n_cells(n_mem_addr_cells, &memcell_buf); | 799 | start = read_n_cells(n_mem_addr_cells, &memcell_buf); |
778 | size = read_n_cells(n_mem_size_cells, &memcell_buf); | 800 | size = read_n_cells(n_mem_size_cells, &memcell_buf); |
779 | nid = of_node_to_nid(memory); | 801 | nid = of_node_to_nid_single(memory); |
780 | 802 | ||
781 | /* Domains not present at boot default to 0 */ | 803 | /* Domains not present at boot default to 0 */ |
782 | if (nid < 0 || !node_online(nid)) | 804 | if (nid < 0 || !node_online(nid)) |
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig index c2a3db8edb0c..6a02d51086c8 100644 --- a/arch/powerpc/platforms/cell/Kconfig +++ b/arch/powerpc/platforms/cell/Kconfig | |||
@@ -12,7 +12,8 @@ config SPU_FS | |||
12 | 12 | ||
13 | config SPUFS_MMAP | 13 | config SPUFS_MMAP |
14 | bool | 14 | bool |
15 | depends on SPU_FS && SPARSEMEM && !PPC_64K_PAGES | 15 | depends on SPU_FS && SPARSEMEM |
16 | select MEMORY_HOTPLUG | ||
16 | default y | 17 | default y |
17 | 18 | ||
18 | endmenu | 19 | endmenu |
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index dac5d0365fde..6574b22b3cf3 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
@@ -29,6 +29,8 @@ | |||
29 | #include <linux/seq_file.h> | 29 | #include <linux/seq_file.h> |
30 | #include <linux/root_dev.h> | 30 | #include <linux/root_dev.h> |
31 | #include <linux/console.h> | 31 | #include <linux/console.h> |
32 | #include <linux/mutex.h> | ||
33 | #include <linux/memory_hotplug.h> | ||
32 | 34 | ||
33 | #include <asm/mmu.h> | 35 | #include <asm/mmu.h> |
34 | #include <asm/processor.h> | 36 | #include <asm/processor.h> |
@@ -46,6 +48,7 @@ | |||
46 | #include <asm/cputable.h> | 48 | #include <asm/cputable.h> |
47 | #include <asm/ppc-pci.h> | 49 | #include <asm/ppc-pci.h> |
48 | #include <asm/irq.h> | 50 | #include <asm/irq.h> |
51 | #include <asm/spu.h> | ||
49 | 52 | ||
50 | #include "interrupt.h" | 53 | #include "interrupt.h" |
51 | #include "iommu.h" | 54 | #include "iommu.h" |
@@ -69,77 +72,6 @@ static void cell_show_cpuinfo(struct seq_file *m) | |||
69 | of_node_put(root); | 72 | of_node_put(root); |
70 | } | 73 | } |
71 | 74 | ||
72 | #ifdef CONFIG_SPARSEMEM | ||
73 | static int __init find_spu_node_id(struct device_node *spe) | ||
74 | { | ||
75 | unsigned int *id; | ||
76 | #ifdef CONFIG_NUMA | ||
77 | struct device_node *cpu; | ||
78 | cpu = spe->parent->parent; | ||
79 | id = (unsigned int *)get_property(cpu, "node-id", NULL); | ||
80 | #else | ||
81 | id = NULL; | ||
82 | #endif | ||
83 | return id ? *id : 0; | ||
84 | } | ||
85 | |||
86 | static void __init cell_spuprop_present(struct device_node *spe, | ||
87 | const char *prop, int early) | ||
88 | { | ||
89 | struct address_prop { | ||
90 | unsigned long address; | ||
91 | unsigned int len; | ||
92 | } __attribute__((packed)) *p; | ||
93 | int proplen; | ||
94 | |||
95 | unsigned long start_pfn, end_pfn, pfn; | ||
96 | int node_id; | ||
97 | |||
98 | p = (void*)get_property(spe, prop, &proplen); | ||
99 | WARN_ON(proplen != sizeof (*p)); | ||
100 | |||
101 | node_id = find_spu_node_id(spe); | ||
102 | |||
103 | start_pfn = p->address >> PAGE_SHIFT; | ||
104 | end_pfn = (p->address + p->len + PAGE_SIZE - 1) >> PAGE_SHIFT; | ||
105 | |||
106 | /* We need to call memory_present *before* the call to sparse_init, | ||
107 | but we can initialize the page structs only *after* that call. | ||
108 | Thus, we're being called twice. */ | ||
109 | if (early) | ||
110 | memory_present(node_id, start_pfn, end_pfn); | ||
111 | else { | ||
112 | /* As the pages backing SPU LS and I/O are outside the range | ||
113 | of regular memory, their page structs were not initialized | ||
114 | by free_area_init. Do it here instead. */ | ||
115 | for (pfn = start_pfn; pfn < end_pfn; pfn++) { | ||
116 | struct page *page = pfn_to_page(pfn); | ||
117 | set_page_links(page, ZONE_DMA, node_id, pfn); | ||
118 | init_page_count(page); | ||
119 | reset_page_mapcount(page); | ||
120 | SetPageReserved(page); | ||
121 | INIT_LIST_HEAD(&page->lru); | ||
122 | } | ||
123 | } | ||
124 | } | ||
125 | |||
126 | static void __init cell_spumem_init(int early) | ||
127 | { | ||
128 | struct device_node *node; | ||
129 | for (node = of_find_node_by_type(NULL, "spe"); | ||
130 | node; node = of_find_node_by_type(node, "spe")) { | ||
131 | cell_spuprop_present(node, "local-store", early); | ||
132 | cell_spuprop_present(node, "problem", early); | ||
133 | cell_spuprop_present(node, "priv1", early); | ||
134 | cell_spuprop_present(node, "priv2", early); | ||
135 | } | ||
136 | } | ||
137 | #else | ||
138 | static void __init cell_spumem_init(int early) | ||
139 | { | ||
140 | } | ||
141 | #endif | ||
142 | |||
143 | static void cell_progress(char *s, unsigned short hex) | 75 | static void cell_progress(char *s, unsigned short hex) |
144 | { | 76 | { |
145 | printk("*** %04x : %s\n", hex, s ? s : ""); | 77 | printk("*** %04x : %s\n", hex, s ? s : ""); |
@@ -172,8 +104,6 @@ static void __init cell_setup_arch(void) | |||
172 | #endif | 104 | #endif |
173 | 105 | ||
174 | mmio_nvram_init(); | 106 | mmio_nvram_init(); |
175 | |||
176 | cell_spumem_init(0); | ||
177 | } | 107 | } |
178 | 108 | ||
179 | /* | 109 | /* |
@@ -189,8 +119,6 @@ static void __init cell_init_early(void) | |||
189 | 119 | ||
190 | ppc64_interrupt_controller = IC_CELL_PIC; | 120 | ppc64_interrupt_controller = IC_CELL_PIC; |
191 | 121 | ||
192 | cell_spumem_init(1); | ||
193 | |||
194 | DBG(" <- cell_init_early()\n"); | 122 | DBG(" <- cell_init_early()\n"); |
195 | } | 123 | } |
196 | 124 | ||
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index 269dda4fd0b4..ad141fe8d52d 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
@@ -306,19 +306,19 @@ spu_request_irqs(struct spu *spu) | |||
306 | 306 | ||
307 | snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", spu->number); | 307 | snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", spu->number); |
308 | ret = request_irq(irq_base + spu->isrc, | 308 | ret = request_irq(irq_base + spu->isrc, |
309 | spu_irq_class_0, 0, spu->irq_c0, spu); | 309 | spu_irq_class_0, SA_INTERRUPT, spu->irq_c0, spu); |
310 | if (ret) | 310 | if (ret) |
311 | goto out; | 311 | goto out; |
312 | 312 | ||
313 | snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", spu->number); | 313 | snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", spu->number); |
314 | ret = request_irq(irq_base + IIC_CLASS_STRIDE + spu->isrc, | 314 | ret = request_irq(irq_base + IIC_CLASS_STRIDE + spu->isrc, |
315 | spu_irq_class_1, 0, spu->irq_c1, spu); | 315 | spu_irq_class_1, SA_INTERRUPT, spu->irq_c1, spu); |
316 | if (ret) | 316 | if (ret) |
317 | goto out1; | 317 | goto out1; |
318 | 318 | ||
319 | snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", spu->number); | 319 | snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", spu->number); |
320 | ret = request_irq(irq_base + 2*IIC_CLASS_STRIDE + spu->isrc, | 320 | ret = request_irq(irq_base + 2*IIC_CLASS_STRIDE + spu->isrc, |
321 | spu_irq_class_2, 0, spu->irq_c2, spu); | 321 | spu_irq_class_2, SA_INTERRUPT, spu->irq_c2, spu); |
322 | if (ret) | 322 | if (ret) |
323 | goto out2; | 323 | goto out2; |
324 | goto out; | 324 | goto out; |
@@ -487,10 +487,14 @@ int spu_irq_class_1_bottom(struct spu *spu) | |||
487 | ea = spu->dar; | 487 | ea = spu->dar; |
488 | dsisr = spu->dsisr; | 488 | dsisr = spu->dsisr; |
489 | if (dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED)) { | 489 | if (dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED)) { |
490 | u64 flags; | ||
491 | |||
490 | access = (_PAGE_PRESENT | _PAGE_USER); | 492 | access = (_PAGE_PRESENT | _PAGE_USER); |
491 | access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_RW : 0UL; | 493 | access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_RW : 0UL; |
494 | local_irq_save(flags); | ||
492 | if (hash_page(ea, access, 0x300) != 0) | 495 | if (hash_page(ea, access, 0x300) != 0) |
493 | error |= CLASS1_ENABLE_STORAGE_FAULT_INTR; | 496 | error |= CLASS1_ENABLE_STORAGE_FAULT_INTR; |
497 | local_irq_restore(flags); | ||
494 | } | 498 | } |
495 | if (error & CLASS1_ENABLE_STORAGE_FAULT_INTR) { | 499 | if (error & CLASS1_ENABLE_STORAGE_FAULT_INTR) { |
496 | if ((ret = spu_handle_mm_fault(spu)) != 0) | 500 | if ((ret = spu_handle_mm_fault(spu)) != 0) |
@@ -516,8 +520,50 @@ void spu_irq_setaffinity(struct spu *spu, int cpu) | |||
516 | } | 520 | } |
517 | EXPORT_SYMBOL_GPL(spu_irq_setaffinity); | 521 | EXPORT_SYMBOL_GPL(spu_irq_setaffinity); |
518 | 522 | ||
519 | static void __iomem * __init map_spe_prop(struct device_node *n, | 523 | static int __init find_spu_node_id(struct device_node *spe) |
520 | const char *name) | 524 | { |
525 | unsigned int *id; | ||
526 | struct device_node *cpu; | ||
527 | cpu = spe->parent->parent; | ||
528 | id = (unsigned int *)get_property(cpu, "node-id", NULL); | ||
529 | return id ? *id : 0; | ||
530 | } | ||
531 | |||
532 | static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe, | ||
533 | const char *prop) | ||
534 | { | ||
535 | static DEFINE_MUTEX(add_spumem_mutex); | ||
536 | |||
537 | struct address_prop { | ||
538 | unsigned long address; | ||
539 | unsigned int len; | ||
540 | } __attribute__((packed)) *p; | ||
541 | int proplen; | ||
542 | |||
543 | unsigned long start_pfn, nr_pages; | ||
544 | struct pglist_data *pgdata; | ||
545 | struct zone *zone; | ||
546 | int ret; | ||
547 | |||
548 | p = (void*)get_property(spe, prop, &proplen); | ||
549 | WARN_ON(proplen != sizeof (*p)); | ||
550 | |||
551 | start_pfn = p->address >> PAGE_SHIFT; | ||
552 | nr_pages = ((unsigned long)p->len + PAGE_SIZE - 1) >> PAGE_SHIFT; | ||
553 | |||
554 | pgdata = NODE_DATA(spu->nid); | ||
555 | zone = pgdata->node_zones; | ||
556 | |||
557 | /* XXX rethink locking here */ | ||
558 | mutex_lock(&add_spumem_mutex); | ||
559 | ret = __add_pages(zone, start_pfn, nr_pages); | ||
560 | mutex_unlock(&add_spumem_mutex); | ||
561 | |||
562 | return ret; | ||
563 | } | ||
564 | |||
565 | static void __iomem * __init map_spe_prop(struct spu *spu, | ||
566 | struct device_node *n, const char *name) | ||
521 | { | 567 | { |
522 | struct address_prop { | 568 | struct address_prop { |
523 | unsigned long address; | 569 | unsigned long address; |
@@ -526,6 +572,8 @@ static void __iomem * __init map_spe_prop(struct device_node *n, | |||
526 | 572 | ||
527 | void *p; | 573 | void *p; |
528 | int proplen; | 574 | int proplen; |
575 | void* ret = NULL; | ||
576 | int err = 0; | ||
529 | 577 | ||
530 | p = get_property(n, name, &proplen); | 578 | p = get_property(n, name, &proplen); |
531 | if (proplen != sizeof (struct address_prop)) | 579 | if (proplen != sizeof (struct address_prop)) |
@@ -533,7 +581,14 @@ static void __iomem * __init map_spe_prop(struct device_node *n, | |||
533 | 581 | ||
534 | prop = p; | 582 | prop = p; |
535 | 583 | ||
536 | return ioremap(prop->address, prop->len); | 584 | err = cell_spuprop_present(spu, n, name); |
585 | if (err && (err != -EEXIST)) | ||
586 | goto out; | ||
587 | |||
588 | ret = ioremap(prop->address, prop->len); | ||
589 | |||
590 | out: | ||
591 | return ret; | ||
537 | } | 592 | } |
538 | 593 | ||
539 | static void spu_unmap(struct spu *spu) | 594 | static void spu_unmap(struct spu *spu) |
@@ -544,44 +599,45 @@ static void spu_unmap(struct spu *spu) | |||
544 | iounmap((u8 __iomem *)spu->local_store); | 599 | iounmap((u8 __iomem *)spu->local_store); |
545 | } | 600 | } |
546 | 601 | ||
547 | static int __init spu_map_device(struct spu *spu, struct device_node *spe) | 602 | static int __init spu_map_device(struct spu *spu, struct device_node *node) |
548 | { | 603 | { |
549 | char *prop; | 604 | char *prop; |
550 | int ret; | 605 | int ret; |
551 | 606 | ||
552 | ret = -ENODEV; | 607 | ret = -ENODEV; |
553 | prop = get_property(spe, "isrc", NULL); | 608 | prop = get_property(node, "isrc", NULL); |
554 | if (!prop) | 609 | if (!prop) |
555 | goto out; | 610 | goto out; |
556 | spu->isrc = *(unsigned int *)prop; | 611 | spu->isrc = *(unsigned int *)prop; |
557 | 612 | ||
558 | spu->name = get_property(spe, "name", NULL); | 613 | spu->name = get_property(node, "name", NULL); |
559 | if (!spu->name) | 614 | if (!spu->name) |
560 | goto out; | 615 | goto out; |
561 | 616 | ||
562 | prop = get_property(spe, "local-store", NULL); | 617 | prop = get_property(node, "local-store", NULL); |
563 | if (!prop) | 618 | if (!prop) |
564 | goto out; | 619 | goto out; |
565 | spu->local_store_phys = *(unsigned long *)prop; | 620 | spu->local_store_phys = *(unsigned long *)prop; |
566 | 621 | ||
567 | /* we use local store as ram, not io memory */ | 622 | /* we use local store as ram, not io memory */ |
568 | spu->local_store = (void __force *)map_spe_prop(spe, "local-store"); | 623 | spu->local_store = (void __force *) |
624 | map_spe_prop(spu, node, "local-store"); | ||
569 | if (!spu->local_store) | 625 | if (!spu->local_store) |
570 | goto out; | 626 | goto out; |
571 | 627 | ||
572 | prop = get_property(spe, "problem", NULL); | 628 | prop = get_property(node, "problem", NULL); |
573 | if (!prop) | 629 | if (!prop) |
574 | goto out_unmap; | 630 | goto out_unmap; |
575 | spu->problem_phys = *(unsigned long *)prop; | 631 | spu->problem_phys = *(unsigned long *)prop; |
576 | 632 | ||
577 | spu->problem= map_spe_prop(spe, "problem"); | 633 | spu->problem= map_spe_prop(spu, node, "problem"); |
578 | if (!spu->problem) | 634 | if (!spu->problem) |
579 | goto out_unmap; | 635 | goto out_unmap; |
580 | 636 | ||
581 | spu->priv1= map_spe_prop(spe, "priv1"); | 637 | spu->priv1= map_spe_prop(spu, node, "priv1"); |
582 | /* priv1 is not available on a hypervisor */ | 638 | /* priv1 is not available on a hypervisor */ |
583 | 639 | ||
584 | spu->priv2= map_spe_prop(spe, "priv2"); | 640 | spu->priv2= map_spe_prop(spu, node, "priv2"); |
585 | if (!spu->priv2) | 641 | if (!spu->priv2) |
586 | goto out_unmap; | 642 | goto out_unmap; |
587 | ret = 0; | 643 | ret = 0; |
@@ -593,17 +649,6 @@ out: | |||
593 | return ret; | 649 | return ret; |
594 | } | 650 | } |
595 | 651 | ||
596 | static int __init find_spu_node_id(struct device_node *spe) | ||
597 | { | ||
598 | unsigned int *id; | ||
599 | struct device_node *cpu; | ||
600 | |||
601 | cpu = spe->parent->parent; | ||
602 | id = (unsigned int *)get_property(cpu, "node-id", NULL); | ||
603 | |||
604 | return id ? *id : 0; | ||
605 | } | ||
606 | |||
607 | static int __init create_spu(struct device_node *spe) | 652 | static int __init create_spu(struct device_node *spe) |
608 | { | 653 | { |
609 | struct spu *spu; | 654 | struct spu *spu; |
@@ -620,6 +665,10 @@ static int __init create_spu(struct device_node *spe) | |||
620 | goto out_free; | 665 | goto out_free; |
621 | 666 | ||
622 | spu->node = find_spu_node_id(spe); | 667 | spu->node = find_spu_node_id(spe); |
668 | spu->nid = of_node_to_nid(spe); | ||
669 | if (spu->nid == -1) | ||
670 | spu->nid = 0; | ||
671 | |||
623 | spu->stop_code = 0; | 672 | spu->stop_code = 0; |
624 | spu->slb_replace = 0; | 673 | spu->slb_replace = 0; |
625 | spu->mm = NULL; | 674 | spu->mm = NULL; |
diff --git a/arch/powerpc/platforms/cell/spu_callbacks.c b/arch/powerpc/platforms/cell/spu_callbacks.c index deb3afb94484..95b36430aa0f 100644 --- a/arch/powerpc/platforms/cell/spu_callbacks.c +++ b/arch/powerpc/platforms/cell/spu_callbacks.c | |||
@@ -318,6 +318,20 @@ void *spu_syscall_table[] = { | |||
318 | [__NR_unshare] sys_unshare, | 318 | [__NR_unshare] sys_unshare, |
319 | [__NR_splice] sys_splice, | 319 | [__NR_splice] sys_splice, |
320 | [__NR_tee] sys_tee, | 320 | [__NR_tee] sys_tee, |
321 | [__NR_vmsplice] sys_vmsplice, | ||
322 | [__NR_openat] sys_openat, | ||
323 | [__NR_mkdirat] sys_mkdirat, | ||
324 | [__NR_mknodat] sys_mknodat, | ||
325 | [__NR_fchownat] sys_fchownat, | ||
326 | [__NR_futimesat] sys_futimesat, | ||
327 | [__NR_newfstatat] sys_newfstatat, | ||
328 | [__NR_unlinkat] sys_unlinkat, | ||
329 | [__NR_renameat] sys_renameat, | ||
330 | [__NR_linkat] sys_linkat, | ||
331 | [__NR_symlinkat] sys_symlinkat, | ||
332 | [__NR_readlinkat] sys_readlinkat, | ||
333 | [__NR_fchmodat] sys_fchmodat, | ||
334 | [__NR_faccessat] sys_faccessat, | ||
321 | }; | 335 | }; |
322 | 336 | ||
323 | long spu_sys_callback(struct spu_syscall_block *s) | 337 | long spu_sys_callback(struct spu_syscall_block *s) |
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c index f5d8d15d74fa..ea179afea632 100644 --- a/arch/powerpc/platforms/powermac/pci.c +++ b/arch/powerpc/platforms/powermac/pci.c | |||
@@ -1097,7 +1097,7 @@ pmac_pci_enable_device_hook(struct pci_dev *dev, int initial) | |||
1097 | * (iBook second controller) | 1097 | * (iBook second controller) |
1098 | */ | 1098 | */ |
1099 | if (dev->vendor == PCI_VENDOR_ID_APPLE | 1099 | if (dev->vendor == PCI_VENDOR_ID_APPLE |
1100 | && (dev->class == ((PCI_CLASS_SERIAL_USB << 8) | 0x10)) | 1100 | && dev->class == PCI_CLASS_SERIAL_USB_OHCI |
1101 | && !node) { | 1101 | && !node) { |
1102 | printk(KERN_INFO "Apple USB OHCI %s disabled by firmware\n", | 1102 | printk(KERN_INFO "Apple USB OHCI %s disabled by firmware\n", |
1103 | pci_name(dev)); | 1103 | pci_name(dev)); |
diff --git a/arch/powerpc/platforms/pseries/eeh_event.c b/arch/powerpc/platforms/pseries/eeh_event.c index a1bda6f96fd1..40020c65c89e 100644 --- a/arch/powerpc/platforms/pseries/eeh_event.c +++ b/arch/powerpc/platforms/pseries/eeh_event.c | |||
@@ -118,7 +118,15 @@ int eeh_send_failure_event (struct device_node *dn, | |||
118 | { | 118 | { |
119 | unsigned long flags; | 119 | unsigned long flags; |
120 | struct eeh_event *event; | 120 | struct eeh_event *event; |
121 | char *location; | ||
121 | 122 | ||
123 | if (!mem_init_done) { | ||
124 | printk(KERN_ERR "EEH: event during early boot not handled\n"); | ||
125 | location = (char *) get_property(dn, "ibm,loc-code", NULL); | ||
126 | printk(KERN_ERR "EEH: device node = %s\n", dn->full_name); | ||
127 | printk(KERN_ERR "EEH: PCI location = %s\n", location); | ||
128 | return 1; | ||
129 | } | ||
122 | event = kmalloc(sizeof(*event), GFP_ATOMIC); | 130 | event = kmalloc(sizeof(*event), GFP_ATOMIC); |
123 | if (event == NULL) { | 131 | if (event == NULL) { |
124 | printk (KERN_ERR "EEH: out of memory, event not handled\n"); | 132 | printk (KERN_ERR "EEH: out of memory, event not handled\n"); |
diff --git a/arch/ppc/platforms/4xx/ocotea.c b/arch/ppc/platforms/4xx/ocotea.c index f841972f1fa9..554776d4b8ac 100644 --- a/arch/ppc/platforms/4xx/ocotea.c +++ b/arch/ppc/platforms/4xx/ocotea.c | |||
@@ -331,7 +331,7 @@ static void __init ocotea_init(void) | |||
331 | void __init platform_init(unsigned long r3, unsigned long r4, | 331 | void __init platform_init(unsigned long r3, unsigned long r4, |
332 | unsigned long r5, unsigned long r6, unsigned long r7) | 332 | unsigned long r5, unsigned long r6, unsigned long r7) |
333 | { | 333 | { |
334 | ibm44x_platform_init(r3, r4, r5, r6, r7); | 334 | ibm440gx_platform_init(r3, r4, r5, r6, r7); |
335 | 335 | ||
336 | ppc_md.setup_arch = ocotea_setup_arch; | 336 | ppc_md.setup_arch = ocotea_setup_arch; |
337 | ppc_md.show_cpuinfo = ocotea_show_cpuinfo; | 337 | ppc_md.show_cpuinfo = ocotea_show_cpuinfo; |
diff --git a/arch/ppc/platforms/mpc8272ads_setup.c b/arch/ppc/platforms/mpc8272ads_setup.c index bc9b94f77e39..e62b75707f7a 100644 --- a/arch/ppc/platforms/mpc8272ads_setup.c +++ b/arch/ppc/platforms/mpc8272ads_setup.c | |||
@@ -26,11 +26,35 @@ | |||
26 | #include <asm/irq.h> | 26 | #include <asm/irq.h> |
27 | #include <asm/ppc_sys.h> | 27 | #include <asm/ppc_sys.h> |
28 | #include <asm/ppcboot.h> | 28 | #include <asm/ppcboot.h> |
29 | #include <linux/fs_uart_pd.h> | ||
29 | 30 | ||
30 | #include "pq2ads_pd.h" | 31 | #include "pq2ads_pd.h" |
31 | 32 | ||
32 | static void init_fcc1_ioports(void); | 33 | static void init_fcc1_ioports(void); |
33 | static void init_fcc2_ioports(void); | 34 | static void init_fcc2_ioports(void); |
35 | static void init_scc1_uart_ioports(void); | ||
36 | static void init_scc4_uart_ioports(void); | ||
37 | |||
38 | static struct fs_uart_platform_info mpc8272_uart_pdata[] = { | ||
39 | [fsid_scc1_uart] = { | ||
40 | .init_ioports = init_scc1_uart_ioports, | ||
41 | .fs_no = fsid_scc1_uart, | ||
42 | .brg = 1, | ||
43 | .tx_num_fifo = 4, | ||
44 | .tx_buf_size = 32, | ||
45 | .rx_num_fifo = 4, | ||
46 | .rx_buf_size = 32, | ||
47 | }, | ||
48 | [fsid_scc4_uart] = { | ||
49 | .init_ioports = init_scc4_uart_ioports, | ||
50 | .fs_no = fsid_scc4_uart, | ||
51 | .brg = 4, | ||
52 | .tx_num_fifo = 4, | ||
53 | .tx_buf_size = 32, | ||
54 | .rx_num_fifo = 4, | ||
55 | .rx_buf_size = 32, | ||
56 | }, | ||
57 | }; | ||
34 | 58 | ||
35 | static struct fs_mii_bus_info mii_bus_info = { | 59 | static struct fs_mii_bus_info mii_bus_info = { |
36 | .method = fsmii_bitbang, | 60 | .method = fsmii_bitbang, |
@@ -201,6 +225,55 @@ static void __init mpc8272ads_fixup_enet_pdata(struct platform_device *pdev, | |||
201 | } | 225 | } |
202 | } | 226 | } |
203 | 227 | ||
228 | static void mpc8272ads_fixup_uart_pdata(struct platform_device *pdev, | ||
229 | int idx) | ||
230 | { | ||
231 | bd_t *bd = (bd_t *) __res; | ||
232 | struct fs_uart_platform_info *pinfo; | ||
233 | int num = ARRAY_SIZE(mpc8272_uart_pdata); | ||
234 | int id = fs_uart_id_scc2fsid(idx); | ||
235 | |||
236 | /* no need to alter anything if console */ | ||
237 | if ((id <= num) && (!pdev->dev.platform_data)) { | ||
238 | pinfo = &mpc8272_uart_pdata[id]; | ||
239 | pinfo->uart_clk = bd->bi_intfreq; | ||
240 | pdev->dev.platform_data = pinfo; | ||
241 | } | ||
242 | } | ||
243 | |||
244 | static void init_scc1_uart_ioports(void) | ||
245 | { | ||
246 | cpm2_map_t* immap = ioremap(CPM_MAP_ADDR, sizeof(cpm2_map_t)); | ||
247 | |||
248 | /* SCC1 is only on port D */ | ||
249 | setbits32(&immap->im_ioport.iop_ppard,0x00000003); | ||
250 | clrbits32(&immap->im_ioport.iop_psord,0x00000001); | ||
251 | setbits32(&immap->im_ioport.iop_psord,0x00000002); | ||
252 | clrbits32(&immap->im_ioport.iop_pdird,0x00000001); | ||
253 | setbits32(&immap->im_ioport.iop_pdird,0x00000002); | ||
254 | |||
255 | /* Wire BRG1 to SCC1 */ | ||
256 | clrbits32(&immap->im_cpmux.cmx_scr,0x00ffffff); | ||
257 | |||
258 | iounmap(immap); | ||
259 | } | ||
260 | |||
261 | static void init_scc4_uart_ioports(void) | ||
262 | { | ||
263 | cpm2_map_t* immap = ioremap(CPM_MAP_ADDR, sizeof(cpm2_map_t)); | ||
264 | |||
265 | setbits32(&immap->im_ioport.iop_ppard,0x00000600); | ||
266 | clrbits32(&immap->im_ioport.iop_psord,0x00000600); | ||
267 | clrbits32(&immap->im_ioport.iop_pdird,0x00000200); | ||
268 | setbits32(&immap->im_ioport.iop_pdird,0x00000400); | ||
269 | |||
270 | /* Wire BRG4 to SCC4 */ | ||
271 | clrbits32(&immap->im_cpmux.cmx_scr,0x000000ff); | ||
272 | setbits32(&immap->im_cpmux.cmx_scr,0x0000001b); | ||
273 | |||
274 | iounmap(immap); | ||
275 | } | ||
276 | |||
204 | static int mpc8272ads_platform_notify(struct device *dev) | 277 | static int mpc8272ads_platform_notify(struct device *dev) |
205 | { | 278 | { |
206 | static const struct platform_notify_dev_map dev_map[] = { | 279 | static const struct platform_notify_dev_map dev_map[] = { |
@@ -209,6 +282,10 @@ static int mpc8272ads_platform_notify(struct device *dev) | |||
209 | .rtn = mpc8272ads_fixup_enet_pdata | 282 | .rtn = mpc8272ads_fixup_enet_pdata |
210 | }, | 283 | }, |
211 | { | 284 | { |
285 | .bus_id = "fsl-cpm-scc:uart", | ||
286 | .rtn = mpc | ||
287 | }, | ||
288 | { | ||
212 | .bus_id = NULL | 289 | .bus_id = NULL |
213 | } | 290 | } |
214 | }; | 291 | }; |
@@ -230,7 +307,44 @@ int __init mpc8272ads_init(void) | |||
230 | ppc_sys_device_enable(MPC82xx_CPM_FCC1); | 307 | ppc_sys_device_enable(MPC82xx_CPM_FCC1); |
231 | ppc_sys_device_enable(MPC82xx_CPM_FCC2); | 308 | ppc_sys_device_enable(MPC82xx_CPM_FCC2); |
232 | 309 | ||
310 | /* to be ready for console, let's attach pdata here */ | ||
311 | #ifdef CONFIG_SERIAL_CPM_SCC1 | ||
312 | ppc_sys_device_setfunc(MPC82xx_CPM_SCC1, PPC_SYS_FUNC_UART); | ||
313 | ppc_sys_device_enable(MPC82xx_CPM_SCC1); | ||
314 | |||
315 | #endif | ||
316 | |||
317 | #ifdef CONFIG_SERIAL_CPM_SCC4 | ||
318 | ppc_sys_device_setfunc(MPC82xx_CPM_SCC4, PPC_SYS_FUNC_UART); | ||
319 | ppc_sys_device_enable(MPC82xx_CPM_SCC4); | ||
320 | #endif | ||
321 | |||
322 | |||
233 | return 0; | 323 | return 0; |
234 | } | 324 | } |
235 | 325 | ||
326 | /* | ||
327 | To prevent confusion, console selection is gross: | ||
328 | by 0 assumed SCC1 and by 1 assumed SCC4 | ||
329 | */ | ||
330 | struct platform_device* early_uart_get_pdev(int index) | ||
331 | { | ||
332 | bd_t *bd = (bd_t *) __res; | ||
333 | struct fs_uart_platform_info *pinfo; | ||
334 | |||
335 | struct platform_device* pdev = NULL; | ||
336 | if(index) { /*assume SCC4 here*/ | ||
337 | pdev = &ppc_sys_platform_devices[MPC82xx_CPM_SCC4]; | ||
338 | pinfo = &mpc8272<F12>_uart_pdata[1]; | ||
339 | } else { /*over SCC1*/ | ||
340 | pdev = &ppc_sys_platform_devices[MPC82xx_CPM_SCC1]; | ||
341 | pinfo = &mpc8272_uart_pdata[0]; | ||
342 | } | ||
343 | |||
344 | pinfo->uart_clk = bd->bi_intfreq; | ||
345 | pdev->dev.platform_data = pinfo; | ||
346 | ppc_sys_fixup_mem_resource(pdev, IMAP_ADDR); | ||
347 | return NULL; | ||
348 | } | ||
349 | |||
236 | arch_initcall(mpc8272ads_init); | 350 | arch_initcall(mpc8272ads_init); |
diff --git a/arch/ppc/platforms/mpc866ads_setup.c b/arch/ppc/platforms/mpc866ads_setup.c index ac8fcc68afeb..d919dab61347 100644 --- a/arch/ppc/platforms/mpc866ads_setup.c +++ b/arch/ppc/platforms/mpc866ads_setup.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/device.h> | 20 | #include <linux/device.h> |
21 | 21 | ||
22 | #include <linux/fs_enet_pd.h> | 22 | #include <linux/fs_enet_pd.h> |
23 | #include <linux/fs_uart_pd.h> | ||
23 | #include <linux/mii.h> | 24 | #include <linux/mii.h> |
24 | 25 | ||
25 | #include <asm/delay.h> | 26 | #include <asm/delay.h> |
@@ -37,6 +38,11 @@ | |||
37 | 38 | ||
38 | extern unsigned char __res[]; | 39 | extern unsigned char __res[]; |
39 | 40 | ||
41 | static void setup_fec1_ioports(void); | ||
42 | static void setup_scc1_ioports(void); | ||
43 | static void setup_smc1_ioports(void); | ||
44 | static void setup_smc2_ioports(void); | ||
45 | |||
40 | static struct fs_mii_bus_info fec_mii_bus_info = { | 46 | static struct fs_mii_bus_info fec_mii_bus_info = { |
41 | .method = fsmii_fec, | 47 | .method = fsmii_fec, |
42 | .id = 0, | 48 | .id = 0, |
@@ -79,6 +85,28 @@ static struct fs_platform_info mpc8xx_scc_pdata = { | |||
79 | .phy_irq = -1, | 85 | .phy_irq = -1, |
80 | 86 | ||
81 | .bus_info = &scc_mii_bus_info, | 87 | .bus_info = &scc_mii_bus_info, |
88 | |||
89 | }; | ||
90 | |||
91 | static struct fs_uart_platform_info mpc866_uart_pdata[] = { | ||
92 | [fsid_smc1_uart] = { | ||
93 | .brg = 1, | ||
94 | .fs_no = fsid_smc1_uart, | ||
95 | .init_ioports = setup_smc1_ioports, | ||
96 | .tx_num_fifo = 4, | ||
97 | .tx_buf_size = 32, | ||
98 | .rx_num_fifo = 4, | ||
99 | .rx_buf_size = 32, | ||
100 | }, | ||
101 | [fsid_smc2_uart] = { | ||
102 | .brg = 2, | ||
103 | .fs_no = fsid_smc2_uart, | ||
104 | .init_ioports = setup_smc2_ioports, | ||
105 | .tx_num_fifo = 4, | ||
106 | .tx_buf_size = 32, | ||
107 | .rx_num_fifo = 4, | ||
108 | .rx_buf_size = 32, | ||
109 | }, | ||
82 | }; | 110 | }; |
83 | 111 | ||
84 | void __init board_init(void) | 112 | void __init board_init(void) |
@@ -92,9 +120,12 @@ void __init board_init(void) | |||
92 | printk(KERN_CRIT "Could not remap BCSR1\n"); | 120 | printk(KERN_CRIT "Could not remap BCSR1\n"); |
93 | return; | 121 | return; |
94 | } | 122 | } |
123 | |||
95 | #ifdef CONFIG_SERIAL_CPM_SMC1 | 124 | #ifdef CONFIG_SERIAL_CPM_SMC1 |
96 | cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */ | 125 | cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */ |
97 | clrbits32(bcsr_io,(0x80000000 >> 7)); | 126 | clrbits32(bcsr_io,(0x80000000 >> 7)); |
127 | cp->cp_smc[0].smc_smcm |= (SMCM_RX | SMCM_TX); | ||
128 | cp->cp_smc[0].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
98 | #else | 129 | #else |
99 | setbits32(bcsr_io,(0x80000000 >> 7)); | 130 | setbits32(bcsr_io,(0x80000000 >> 7)); |
100 | 131 | ||
@@ -108,6 +139,8 @@ void __init board_init(void) | |||
108 | cp->cp_simode &= ~(0xe0000000 >> 1); | 139 | cp->cp_simode &= ~(0xe0000000 >> 1); |
109 | cp->cp_simode |= (0x20000000 >> 1); /* brg2 */ | 140 | cp->cp_simode |= (0x20000000 >> 1); /* brg2 */ |
110 | clrbits32(bcsr_io,(0x80000000 >> 13)); | 141 | clrbits32(bcsr_io,(0x80000000 >> 13)); |
142 | cp->cp_smc[1].smc_smcm |= (SMCM_RX | SMCM_TX); | ||
143 | cp->cp_smc[1].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
111 | #else | 144 | #else |
112 | clrbits32(bcsr_io,(0x80000000 >> 13)); | 145 | clrbits32(bcsr_io,(0x80000000 >> 13)); |
113 | cp->cp_pbpar &= ~(0x00000c00); | 146 | cp->cp_pbpar &= ~(0x00000c00); |
@@ -232,6 +265,74 @@ static void mpc866ads_fixup_scc_enet_pdata(struct platform_device *pdev, | |||
232 | mpc866ads_fixup_enet_pdata(pdev, fsid_scc1 + pdev->id - 1); | 265 | mpc866ads_fixup_enet_pdata(pdev, fsid_scc1 + pdev->id - 1); |
233 | } | 266 | } |
234 | 267 | ||
268 | static void setup_smc1_ioports(void) | ||
269 | { | ||
270 | immap_t *immap = (immap_t *) IMAP_ADDR; | ||
271 | unsigned *bcsr_io; | ||
272 | unsigned int iobits = 0x000000c0; | ||
273 | |||
274 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
275 | |||
276 | if (bcsr_io == NULL) { | ||
277 | printk(KERN_CRIT "Could not remap BCSR1\n"); | ||
278 | return; | ||
279 | } | ||
280 | |||
281 | clrbits32(bcsr_io,BCSR1_RS232EN_1); | ||
282 | iounmap(bcsr_io); | ||
283 | |||
284 | setbits32(&immap->im_cpm.cp_pbpar, iobits); | ||
285 | clrbits32(&immap->im_cpm.cp_pbdir, iobits); | ||
286 | clrbits16(&immap->im_cpm.cp_pbodr, iobits); | ||
287 | |||
288 | } | ||
289 | |||
290 | static void setup_smc2_ioports(void) | ||
291 | { | ||
292 | immap_t *immap = (immap_t *) IMAP_ADDR; | ||
293 | unsigned *bcsr_io; | ||
294 | unsigned int iobits = 0x00000c00; | ||
295 | |||
296 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
297 | |||
298 | if (bcsr_io == NULL) { | ||
299 | printk(KERN_CRIT "Could not remap BCSR1\n"); | ||
300 | return; | ||
301 | } | ||
302 | |||
303 | clrbits32(bcsr_io,BCSR1_RS232EN_2); | ||
304 | |||
305 | iounmap(bcsr_io); | ||
306 | |||
307 | #ifndef CONFIG_SERIAL_CPM_ALT_SMC2 | ||
308 | setbits32(&immap->im_cpm.cp_pbpar, iobits); | ||
309 | clrbits32(&immap->im_cpm.cp_pbdir, iobits); | ||
310 | clrbits16(&immap->im_cpm.cp_pbodr, iobits); | ||
311 | #else | ||
312 | setbits16(&immap->im_ioport.iop_papar, iobits); | ||
313 | clrbits16(&immap->im_ioport.iop_padir, iobits); | ||
314 | clrbits16(&immap->im_ioport.iop_paodr, iobits); | ||
315 | #endif | ||
316 | |||
317 | } | ||
318 | |||
319 | static void __init mpc866ads_fixup_uart_pdata(struct platform_device *pdev, | ||
320 | int idx) | ||
321 | { | ||
322 | bd_t *bd = (bd_t *) __res; | ||
323 | struct fs_uart_platform_info *pinfo; | ||
324 | int num = ARRAY_SIZE(mpc866_uart_pdata); | ||
325 | |||
326 | int id = fs_uart_id_smc2fsid(idx); | ||
327 | |||
328 | /* no need to alter anything if console */ | ||
329 | if ((id <= num) && (!pdev->dev.platform_data)) { | ||
330 | pinfo = &mpc866_uart_pdata[id]; | ||
331 | pinfo->uart_clk = bd->bi_intfreq; | ||
332 | pdev->dev.platform_data = pinfo; | ||
333 | } | ||
334 | } | ||
335 | |||
235 | static int mpc866ads_platform_notify(struct device *dev) | 336 | static int mpc866ads_platform_notify(struct device *dev) |
236 | { | 337 | { |
237 | static const struct platform_notify_dev_map dev_map[] = { | 338 | static const struct platform_notify_dev_map dev_map[] = { |
@@ -244,6 +345,10 @@ static int mpc866ads_platform_notify(struct device *dev) | |||
244 | .rtn = mpc866ads_fixup_scc_enet_pdata, | 345 | .rtn = mpc866ads_fixup_scc_enet_pdata, |
245 | }, | 346 | }, |
246 | { | 347 | { |
348 | .bus_id = "fsl-cpm-smc:uart", | ||
349 | .rtn = mpc866ads_fixup_uart_pdata | ||
350 | }, | ||
351 | { | ||
247 | .bus_id = NULL | 352 | .bus_id = NULL |
248 | } | 353 | } |
249 | }; | 354 | }; |
@@ -267,7 +372,42 @@ int __init mpc866ads_init(void) | |||
267 | #endif | 372 | #endif |
268 | ppc_sys_device_enable(MPC8xx_CPM_FEC1); | 373 | ppc_sys_device_enable(MPC8xx_CPM_FEC1); |
269 | 374 | ||
375 | /* Since either of the uarts could be used as console, they need to ready */ | ||
376 | #ifdef CONFIG_SERIAL_CPM_SMC1 | ||
377 | ppc_sys_device_enable(MPC8xx_CPM_SMC1); | ||
378 | ppc_sys_device_setfunc(MPC8xx_CPM_SMC1, PPC_SYS_FUNC_UART); | ||
379 | #endif | ||
380 | |||
381 | #ifdef CONFIG_SERIAL_CPM_SMC | ||
382 | ppc_sys_device_enable(MPC8xx_CPM_SMC2); | ||
383 | ppc_sys_device_setfunc(MPC8xx_CPM_SMC2, PPC_SYS_FUNC_UART); | ||
384 | #endif | ||
385 | |||
270 | return 0; | 386 | return 0; |
271 | } | 387 | } |
272 | 388 | ||
389 | /* | ||
390 | To prevent confusion, console selection is gross: | ||
391 | by 0 assumed SMC1 and by 1 assumed SMC2 | ||
392 | */ | ||
393 | struct platform_device* early_uart_get_pdev(int index) | ||
394 | { | ||
395 | bd_t *bd = (bd_t *) __res; | ||
396 | struct fs_uart_platform_info *pinfo; | ||
397 | |||
398 | struct platform_device* pdev = NULL; | ||
399 | if(index) { /*assume SMC2 here*/ | ||
400 | pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC2]; | ||
401 | pinfo = &mpc866_uart_pdata[1]; | ||
402 | } else { /*over SMC1*/ | ||
403 | pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC1]; | ||
404 | pinfo = &mpc866_uart_pdata[0]; | ||
405 | } | ||
406 | |||
407 | pinfo->uart_clk = bd->bi_intfreq; | ||
408 | pdev->dev.platform_data = pinfo; | ||
409 | ppc_sys_fixup_mem_resource(pdev, IMAP_ADDR); | ||
410 | return NULL; | ||
411 | } | ||
412 | |||
273 | arch_initcall(mpc866ads_init); | 413 | arch_initcall(mpc866ads_init); |
diff --git a/arch/ppc/platforms/mpc885ads_setup.c b/arch/ppc/platforms/mpc885ads_setup.c index 50a99e5f7c68..4b88679cd31c 100644 --- a/arch/ppc/platforms/mpc885ads_setup.c +++ b/arch/ppc/platforms/mpc885ads_setup.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/device.h> | 20 | #include <linux/device.h> |
21 | 21 | ||
22 | #include <linux/fs_enet_pd.h> | 22 | #include <linux/fs_enet_pd.h> |
23 | #include <linux/fs_uart_pd.h> | ||
23 | #include <linux/mii.h> | 24 | #include <linux/mii.h> |
24 | 25 | ||
25 | #include <asm/delay.h> | 26 | #include <asm/delay.h> |
@@ -35,9 +36,32 @@ | |||
35 | #include <asm/ppc_sys.h> | 36 | #include <asm/ppc_sys.h> |
36 | 37 | ||
37 | extern unsigned char __res[]; | 38 | extern unsigned char __res[]; |
39 | static void setup_smc1_ioports(void); | ||
40 | static void setup_smc2_ioports(void); | ||
38 | 41 | ||
39 | static void __init mpc885ads_scc_phy_init(char); | 42 | static void __init mpc885ads_scc_phy_init(char); |
40 | 43 | ||
44 | static struct fs_uart_platform_info mpc885_uart_pdata[] = { | ||
45 | [fsid_smc1_uart] = { | ||
46 | .brg = 1, | ||
47 | .fs_no = fsid_smc1_uart, | ||
48 | .init_ioports = setup_smc1_ioports, | ||
49 | .tx_num_fifo = 4, | ||
50 | .tx_buf_size = 32, | ||
51 | .rx_num_fifo = 4, | ||
52 | .rx_buf_size = 32, | ||
53 | }, | ||
54 | [fsid_smc2_uart] = { | ||
55 | .brg = 2, | ||
56 | .fs_no = fsid_smc2_uart, | ||
57 | .init_ioports = setup_smc2_ioports, | ||
58 | .tx_num_fifo = 4, | ||
59 | .tx_buf_size = 32, | ||
60 | .rx_num_fifo = 4, | ||
61 | .rx_buf_size = 32, | ||
62 | }, | ||
63 | }; | ||
64 | |||
41 | static struct fs_mii_bus_info fec_mii_bus_info = { | 65 | static struct fs_mii_bus_info fec_mii_bus_info = { |
42 | .method = fsmii_fec, | 66 | .method = fsmii_fec, |
43 | .id = 0, | 67 | .id = 0, |
@@ -116,6 +140,8 @@ void __init board_init(void) | |||
116 | #ifdef CONFIG_SERIAL_CPM_SMC1 | 140 | #ifdef CONFIG_SERIAL_CPM_SMC1 |
117 | cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */ | 141 | cp->cp_simode &= ~(0xe0000000 >> 17); /* brg1 */ |
118 | clrbits32(bcsr_io, BCSR1_RS232EN_1); | 142 | clrbits32(bcsr_io, BCSR1_RS232EN_1); |
143 | cp->cp_smc[0].smc_smcm |= (SMCM_RX | SMCM_TX); | ||
144 | cp->cp_smc[0].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
119 | #else | 145 | #else |
120 | setbits32(bcsr_io,BCSR1_RS232EN_1); | 146 | setbits32(bcsr_io,BCSR1_RS232EN_1); |
121 | cp->cp_smc[0].smc_smcmr = 0; | 147 | cp->cp_smc[0].smc_smcmr = 0; |
@@ -126,6 +152,8 @@ void __init board_init(void) | |||
126 | cp->cp_simode &= ~(0xe0000000 >> 1); | 152 | cp->cp_simode &= ~(0xe0000000 >> 1); |
127 | cp->cp_simode |= (0x20000000 >> 1); /* brg2 */ | 153 | cp->cp_simode |= (0x20000000 >> 1); /* brg2 */ |
128 | clrbits32(bcsr_io,BCSR1_RS232EN_2); | 154 | clrbits32(bcsr_io,BCSR1_RS232EN_2); |
155 | cp->cp_smc[1].smc_smcm |= (SMCM_RX | SMCM_TX); | ||
156 | cp->cp_smc[1].smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
129 | #else | 157 | #else |
130 | setbits32(bcsr_io,BCSR1_RS232EN_2); | 158 | setbits32(bcsr_io,BCSR1_RS232EN_2); |
131 | cp->cp_smc[1].smc_smcmr = 0; | 159 | cp->cp_smc[1].smc_smcmr = 0; |
@@ -343,6 +371,70 @@ static void mpc885ads_scc_phy_init(char phy_addr) | |||
343 | out_be32(&fecp->fec_mii_speed, 0); | 371 | out_be32(&fecp->fec_mii_speed, 0); |
344 | } | 372 | } |
345 | 373 | ||
374 | static void setup_smc1_ioports(void) | ||
375 | { | ||
376 | immap_t *immap = (immap_t *) IMAP_ADDR; | ||
377 | unsigned *bcsr_io; | ||
378 | unsigned int iobits = 0x000000c0; | ||
379 | |||
380 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
381 | |||
382 | if (bcsr_io == NULL) { | ||
383 | printk(KERN_CRIT "Could not remap BCSR1\n"); | ||
384 | return; | ||
385 | } | ||
386 | clrbits32(bcsr_io,BCSR1_RS232EN_1); | ||
387 | iounmap(bcsr_io); | ||
388 | |||
389 | setbits32(&immap->im_cpm.cp_pbpar, iobits); | ||
390 | clrbits32(&immap->im_cpm.cp_pbdir, iobits); | ||
391 | clrbits16(&immap->im_cpm.cp_pbodr, iobits); | ||
392 | } | ||
393 | |||
394 | static void setup_smc2_ioports(void) | ||
395 | { | ||
396 | immap_t *immap = (immap_t *) IMAP_ADDR; | ||
397 | unsigned *bcsr_io; | ||
398 | unsigned int iobits = 0x00000c00; | ||
399 | |||
400 | bcsr_io = ioremap(BCSR1, sizeof(unsigned long)); | ||
401 | |||
402 | if (bcsr_io == NULL) { | ||
403 | printk(KERN_CRIT "Could not remap BCSR1\n"); | ||
404 | return; | ||
405 | } | ||
406 | clrbits32(bcsr_io,BCSR1_RS232EN_2); | ||
407 | iounmap(bcsr_io); | ||
408 | |||
409 | #ifndef CONFIG_SERIAL_CPM_ALT_SMC2 | ||
410 | setbits32(&immap->im_cpm.cp_pbpar, iobits); | ||
411 | clrbits32(&immap->im_cpm.cp_pbdir, iobits); | ||
412 | clrbits16(&immap->im_cpm.cp_pbodr, iobits); | ||
413 | #else | ||
414 | setbits16(&immap->im_ioport.iop_papar, iobits); | ||
415 | clrbits16(&immap->im_ioport.iop_padir, iobits); | ||
416 | clrbits16(&immap->im_ioport.iop_paodr, iobits); | ||
417 | #endif | ||
418 | } | ||
419 | |||
420 | static void __init mpc885ads_fixup_uart_pdata(struct platform_device *pdev, | ||
421 | int idx) | ||
422 | { | ||
423 | bd_t *bd = (bd_t *) __res; | ||
424 | struct fs_uart_platform_info *pinfo; | ||
425 | int num = ARRAY_SIZE(mpc885_uart_pdata); | ||
426 | |||
427 | int id = fs_uart_id_smc2fsid(idx); | ||
428 | |||
429 | /* no need to alter anything if console */ | ||
430 | if ((id <= num) && (!pdev->dev.platform_data)) { | ||
431 | pinfo = &mpc885_uart_pdata[id]; | ||
432 | pinfo->uart_clk = bd->bi_intfreq; | ||
433 | pdev->dev.platform_data = pinfo; | ||
434 | } | ||
435 | } | ||
436 | |||
437 | |||
346 | static int mpc885ads_platform_notify(struct device *dev) | 438 | static int mpc885ads_platform_notify(struct device *dev) |
347 | { | 439 | { |
348 | 440 | ||
@@ -356,12 +448,17 @@ static int mpc885ads_platform_notify(struct device *dev) | |||
356 | .rtn = mpc885ads_fixup_scc_enet_pdata, | 448 | .rtn = mpc885ads_fixup_scc_enet_pdata, |
357 | }, | 449 | }, |
358 | { | 450 | { |
451 | .bus_id = "fsl-cpm-smc:uart", | ||
452 | .rtn = mpc885ads_fixup_uart_pdata | ||
453 | }, | ||
454 | { | ||
359 | .bus_id = NULL | 455 | .bus_id = NULL |
360 | } | 456 | } |
361 | }; | 457 | }; |
362 | 458 | ||
363 | platform_notify_map(dev_map,dev); | 459 | platform_notify_map(dev_map,dev); |
364 | 460 | ||
461 | return 0; | ||
365 | } | 462 | } |
366 | 463 | ||
367 | int __init mpc885ads_init(void) | 464 | int __init mpc885ads_init(void) |
@@ -383,7 +480,41 @@ int __init mpc885ads_init(void) | |||
383 | ppc_sys_device_enable(MPC8xx_CPM_FEC2); | 480 | ppc_sys_device_enable(MPC8xx_CPM_FEC2); |
384 | #endif | 481 | #endif |
385 | 482 | ||
483 | #ifdef CONFIG_SERIAL_CPM_SMC1 | ||
484 | ppc_sys_device_enable(MPC8xx_CPM_SMC1); | ||
485 | ppc_sys_device_setfunc(MPC8xx_CPM_SMC1, PPC_SYS_FUNC_UART); | ||
486 | #endif | ||
487 | |||
488 | #ifdef CONFIG_SERIAL_CPM_SMC2 | ||
489 | ppc_sys_device_enable(MPC8xx_CPM_SMC2); | ||
490 | ppc_sys_device_setfunc(MPC8xx_CPM_SMC2, PPC_SYS_FUNC_UART); | ||
491 | #endif | ||
386 | return 0; | 492 | return 0; |
387 | } | 493 | } |
388 | 494 | ||
389 | arch_initcall(mpc885ads_init); | 495 | arch_initcall(mpc885ads_init); |
496 | |||
497 | /* | ||
498 | To prevent confusion, console selection is gross: | ||
499 | by 0 assumed SMC1 and by 1 assumed SMC2 | ||
500 | */ | ||
501 | struct platform_device* early_uart_get_pdev(int index) | ||
502 | { | ||
503 | bd_t *bd = (bd_t *) __res; | ||
504 | struct fs_uart_platform_info *pinfo; | ||
505 | |||
506 | struct platform_device* pdev = NULL; | ||
507 | if(index) { /*assume SMC2 here*/ | ||
508 | pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC2]; | ||
509 | pinfo = &mpc885_uart_pdata[1]; | ||
510 | } else { /*over SMC1*/ | ||
511 | pdev = &ppc_sys_platform_devices[MPC8xx_CPM_SMC1]; | ||
512 | pinfo = &mpc885_uart_pdata[0]; | ||
513 | } | ||
514 | |||
515 | pinfo->uart_clk = bd->bi_intfreq; | ||
516 | pdev->dev.platform_data = pinfo; | ||
517 | ppc_sys_fixup_mem_resource(pdev, IMAP_ADDR); | ||
518 | return NULL; | ||
519 | } | ||
520 | |||
diff --git a/arch/ppc/platforms/pq2ads.c b/arch/ppc/platforms/pq2ads.c index 3365fd788a7a..7fc2e02f5246 100644 --- a/arch/ppc/platforms/pq2ads.c +++ b/arch/ppc/platforms/pq2ads.c | |||
@@ -14,11 +14,40 @@ | |||
14 | 14 | ||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | 16 | ||
17 | #include <asm/io.h> | ||
17 | #include <asm/mpc8260.h> | 18 | #include <asm/mpc8260.h> |
19 | #include <asm/cpm2.h> | ||
20 | #include <asm/immap_cpm2.h> | ||
18 | 21 | ||
19 | void __init | 22 | void __init |
20 | m82xx_board_setup(void) | 23 | m82xx_board_setup(void) |
21 | { | 24 | { |
25 | cpm2_map_t* immap = ioremap(CPM_MAP_ADDR, sizeof(cpm2_map_t)); | ||
26 | u32 *bcsr = ioremap(BCSR_ADDR+4, sizeof(u32)); | ||
27 | |||
22 | /* Enable the 2nd UART port */ | 28 | /* Enable the 2nd UART port */ |
23 | *(volatile uint *)(BCSR_ADDR + 4) &= ~BCSR1_RS232_EN2; | 29 | clrbits32(bcsr, BCSR1_RS232_EN2); |
30 | |||
31 | #ifdef CONFIG_SERIAL_CPM_SCC1 | ||
32 | clrbits32((u32*)&immap->im_scc[0].scc_sccm, UART_SCCM_TX | UART_SCCM_RX); | ||
33 | clrbits32((u32*)&immap->im_scc[0].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
34 | #endif | ||
35 | |||
36 | #ifdef CONFIG_SERIAL_CPM_SCC2 | ||
37 | clrbits32((u32*)&immap->im_scc[1].scc_sccm, UART_SCCM_TX | UART_SCCM_RX); | ||
38 | clrbits32((u32*)&immap->im_scc[1].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
39 | #endif | ||
40 | |||
41 | #ifdef CONFIG_SERIAL_CPM_SCC3 | ||
42 | clrbits32((u32*)&immap->im_scc[2].scc_sccm, UART_SCCM_TX | UART_SCCM_RX); | ||
43 | clrbits32((u32*)&immap->im_scc[2].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
44 | #endif | ||
45 | |||
46 | #ifdef CONFIG_SERIAL_CPM_SCC4 | ||
47 | clrbits32((u32*)&immap->im_scc[3].scc_sccm, UART_SCCM_TX | UART_SCCM_RX); | ||
48 | clrbits32((u32*)&immap->im_scc[3].scc_gsmrl, SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
49 | #endif | ||
50 | |||
51 | iounmap(bcsr); | ||
52 | iounmap(immap); | ||
24 | } | 53 | } |
diff --git a/arch/ppc/syslib/ibm440gx_common.c b/arch/ppc/syslib/ibm440gx_common.c index a7dd55f1c63e..f6cc16888527 100644 --- a/arch/ppc/syslib/ibm440gx_common.c +++ b/arch/ppc/syslib/ibm440gx_common.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * PPC440GX system library | 2 | * PPC440GX system library |
3 | * | 3 | * |
4 | * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> | 4 | * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> |
5 | * Copyright (c) 2003, 2004 Zultys Technologies | 5 | * Copyright (c) 2003 - 2006 Zultys Technologies |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify it | 7 | * This program is free software; you can redistribute it and/or modify it |
8 | * under the terms of the GNU General Public License as published by the | 8 | * under the terms of the GNU General Public License as published by the |
@@ -282,3 +282,14 @@ int ibm440gx_show_cpuinfo(struct seq_file *m){ | |||
282 | return 0; | 282 | return 0; |
283 | } | 283 | } |
284 | 284 | ||
285 | void __init ibm440gx_platform_init(unsigned long r3, unsigned long r4, | ||
286 | unsigned long r5, unsigned long r6, | ||
287 | unsigned long r7) | ||
288 | { | ||
289 | /* Erratum 440_43 workaround, disable L1 cache parity checking */ | ||
290 | if (!strcmp(cur_cpu_spec->cpu_name, "440GX Rev. C") || | ||
291 | !strcmp(cur_cpu_spec->cpu_name, "440GX Rev. F")) | ||
292 | mtspr(SPRN_CCR1, mfspr(SPRN_CCR1) | CCR1_DPC); | ||
293 | |||
294 | ibm44x_platform_init(r3, r4, r5, r6, r7); | ||
295 | } | ||
diff --git a/arch/ppc/syslib/ibm440gx_common.h b/arch/ppc/syslib/ibm440gx_common.h index a2ab9fab8e34..a03ec6022e8f 100644 --- a/arch/ppc/syslib/ibm440gx_common.h +++ b/arch/ppc/syslib/ibm440gx_common.h | |||
@@ -29,6 +29,10 @@ | |||
29 | void ibm440gx_get_clocks(struct ibm44x_clocks*, unsigned int sys_clk, | 29 | void ibm440gx_get_clocks(struct ibm44x_clocks*, unsigned int sys_clk, |
30 | unsigned int ser_clk) __init; | 30 | unsigned int ser_clk) __init; |
31 | 31 | ||
32 | /* common 440GX platform init */ | ||
33 | void ibm440gx_platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | ||
34 | unsigned long r6, unsigned long r7) __init; | ||
35 | |||
32 | /* Enable L2 cache */ | 36 | /* Enable L2 cache */ |
33 | void ibm440gx_l2c_enable(void) __init; | 37 | void ibm440gx_l2c_enable(void) __init; |
34 | 38 | ||
diff --git a/arch/ppc/syslib/mpc8xx_devices.c b/arch/ppc/syslib/mpc8xx_devices.c index bd41ed83beb3..6f536383866e 100644 --- a/arch/ppc/syslib/mpc8xx_devices.c +++ b/arch/ppc/syslib/mpc8xx_devices.c | |||
@@ -170,12 +170,18 @@ struct platform_device ppc_sys_platform_devices[] = { | |||
170 | [MPC8xx_CPM_SMC1] = { | 170 | [MPC8xx_CPM_SMC1] = { |
171 | .name = "fsl-cpm-smc", | 171 | .name = "fsl-cpm-smc", |
172 | .id = 1, | 172 | .id = 1, |
173 | .num_resources = 2, | 173 | .num_resources = 3, |
174 | .resource = (struct resource[]) { | 174 | .resource = (struct resource[]) { |
175 | { | 175 | { |
176 | .name = "regs", | 176 | .name = "regs", |
177 | .start = 0xa82, | 177 | .start = 0xa80, |
178 | .end = 0xa91, | 178 | .end = 0xa8f, |
179 | .flags = IORESOURCE_MEM, | ||
180 | }, | ||
181 | { | ||
182 | .name = "pram", | ||
183 | .start = 0x3e80, | ||
184 | .end = 0x3ebf, | ||
179 | .flags = IORESOURCE_MEM, | 185 | .flags = IORESOURCE_MEM, |
180 | }, | 186 | }, |
181 | { | 187 | { |
@@ -189,15 +195,22 @@ struct platform_device ppc_sys_platform_devices[] = { | |||
189 | [MPC8xx_CPM_SMC2] = { | 195 | [MPC8xx_CPM_SMC2] = { |
190 | .name = "fsl-cpm-smc", | 196 | .name = "fsl-cpm-smc", |
191 | .id = 2, | 197 | .id = 2, |
192 | .num_resources = 2, | 198 | .num_resources = 3, |
193 | .resource = (struct resource[]) { | 199 | .resource = (struct resource[]) { |
194 | { | 200 | { |
195 | .name = "regs", | 201 | .name = "regs", |
196 | .start = 0xa92, | 202 | .start = 0xa90, |
197 | .end = 0xaa1, | 203 | .end = 0xa9f, |
198 | .flags = IORESOURCE_MEM, | 204 | .flags = IORESOURCE_MEM, |
199 | }, | 205 | }, |
200 | { | 206 | { |
207 | .name = "pram", | ||
208 | .start = 0x3f80, | ||
209 | .end = 0x3fbf, | ||
210 | .flags = IORESOURCE_MEM, | ||
211 | |||
212 | }, | ||
213 | { | ||
201 | .name = "interrupt", | 214 | .name = "interrupt", |
202 | .start = MPC8xx_INT_SMC2, | 215 | .start = MPC8xx_INT_SMC2, |
203 | .end = MPC8xx_INT_SMC2, | 216 | .end = MPC8xx_INT_SMC2, |
diff --git a/arch/ppc/syslib/ppc_sys.c b/arch/ppc/syslib/ppc_sys.c index 7662c4e6e7d6..2d48018b71d9 100644 --- a/arch/ppc/syslib/ppc_sys.c +++ b/arch/ppc/syslib/ppc_sys.c | |||
@@ -109,9 +109,11 @@ ppc_sys_fixup_mem_resource(struct platform_device *pdev, phys_addr_t paddr) | |||
109 | int i; | 109 | int i; |
110 | for (i = 0; i < pdev->num_resources; i++) { | 110 | for (i = 0; i < pdev->num_resources; i++) { |
111 | struct resource *r = &pdev->resource[i]; | 111 | struct resource *r = &pdev->resource[i]; |
112 | if ((r->flags & IORESOURCE_MEM) == IORESOURCE_MEM) { | 112 | if (((r->flags & IORESOURCE_MEM) == IORESOURCE_MEM) && |
113 | ((r->flags & PPC_SYS_IORESOURCE_FIXUPPED) != PPC_SYS_IORESOURCE_FIXUPPED)) { | ||
113 | r->start += paddr; | 114 | r->start += paddr; |
114 | r->end += paddr; | 115 | r->end += paddr; |
116 | r->flags |= PPC_SYS_IORESOURCE_FIXUPPED; | ||
115 | } | 117 | } |
116 | } | 118 | } |
117 | } | 119 | } |
diff --git a/arch/ppc/syslib/pq2_sys.c b/arch/ppc/syslib/pq2_sys.c index 75e64f1c144d..433b0fa203e1 100644 --- a/arch/ppc/syslib/pq2_sys.c +++ b/arch/ppc/syslib/pq2_sys.c | |||
@@ -113,13 +113,13 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
113 | .ppc_sys_name = "8248", | 113 | .ppc_sys_name = "8248", |
114 | .mask = 0x0000ff00, | 114 | .mask = 0x0000ff00, |
115 | .value = 0x00000c00, | 115 | .value = 0x00000c00, |
116 | .num_devices = 11, | 116 | .num_devices = 12, |
117 | .device_list = (enum ppc_sys_devices[]) | 117 | .device_list = (enum ppc_sys_devices[]) |
118 | { | 118 | { |
119 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, | 119 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, |
120 | MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SMC1, | 120 | MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4, |
121 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 121 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
122 | MPC82xx_CPM_USB, MPC82xx_SEC1, | 122 | MPC82xx_CPM_I2C, MPC82xx_CPM_USB, MPC82xx_SEC1, |
123 | }, | 123 | }, |
124 | }, | 124 | }, |
125 | { | 125 | { |
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c index 54d35c130907..9a22434a580c 100644 --- a/arch/s390/appldata/appldata_base.c +++ b/arch/s390/appldata/appldata_base.c | |||
@@ -652,7 +652,7 @@ appldata_cpu_notify(struct notifier_block *self, | |||
652 | return NOTIFY_OK; | 652 | return NOTIFY_OK; |
653 | } | 653 | } |
654 | 654 | ||
655 | static struct notifier_block __devinitdata appldata_nb = { | 655 | static struct notifier_block appldata_nb = { |
656 | .notifier_call = appldata_cpu_notify, | 656 | .notifier_call = appldata_cpu_notify, |
657 | }; | 657 | }; |
658 | 658 | ||
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 5291b5f8788d..b4c815d8ef75 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -430,7 +430,7 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
430 | 430 | ||
431 | /* This is the X/Open sanctioned signal stack switching. */ | 431 | /* This is the X/Open sanctioned signal stack switching. */ |
432 | if (ka->sa.sa_flags & SA_ONSTACK) { | 432 | if (ka->sa.sa_flags & SA_ONSTACK) { |
433 | if (! on_sig_stack(sp)) | 433 | if (! sas_ss_flags(sp)) |
434 | sp = current->sas_ss_sp + current->sas_ss_size; | 434 | sp = current->sas_ss_sp + current->sas_ss_size; |
435 | } | 435 | } |
436 | 436 | ||
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 199da68bd7be..ef5b9c44b86b 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1608,3 +1608,45 @@ compat_sys_ppoll_wrapper: | |||
1608 | sys_unshare_wrapper: | 1608 | sys_unshare_wrapper: |
1609 | llgfr %r2,%r2 # unsigned long | 1609 | llgfr %r2,%r2 # unsigned long |
1610 | jg sys_unshare | 1610 | jg sys_unshare |
1611 | |||
1612 | .globl compat_sys_set_robust_list_wrapper | ||
1613 | compat_sys_set_robust_list_wrapper: | ||
1614 | llgtr %r2,%r2 # struct compat_robust_list_head * | ||
1615 | llgfr %r3,%r3 # size_t | ||
1616 | jg compat_sys_set_robust_list | ||
1617 | |||
1618 | .globl compat_sys_get_robust_list_wrapper | ||
1619 | compat_sys_get_robust_list_wrapper: | ||
1620 | lgfr %r2,%r2 # int | ||
1621 | llgtr %r3,%r3 # compat_uptr_t_t * | ||
1622 | llgtr %r4,%r4 # compat_size_t * | ||
1623 | jg compat_sys_get_robust_list | ||
1624 | |||
1625 | .globl sys_splice_wrapper | ||
1626 | sys_splice_wrapper: | ||
1627 | lgfr %r2,%r2 # int | ||
1628 | llgtr %r3,%r3 # loff_t * | ||
1629 | lgfr %r4,%r4 # int | ||
1630 | llgtr %r5,%r5 # loff_t * | ||
1631 | llgfr %r6,%r6 # size_t | ||
1632 | llgf %r0,164(%r15) # unsigned int | ||
1633 | stg %r0,160(%r15) | ||
1634 | jg sys_splice | ||
1635 | |||
1636 | .globl sys_sync_file_range_wrapper | ||
1637 | sys_sync_file_range_wrapper: | ||
1638 | lgfr %r2,%r2 # int | ||
1639 | sllg %r3,%r3,32 # get high word of 64bit loff_t | ||
1640 | or %r3,%r4 # get low word of 64bit loff_t | ||
1641 | sllg %r4,%r5,32 # get high word of 64bit loff_t | ||
1642 | or %r4,%r6 # get low word of 64bit loff_t | ||
1643 | llgf %r5,164(%r15) # unsigned int | ||
1644 | jg sys_sync_file_range | ||
1645 | |||
1646 | .globl sys_tee_wrapper | ||
1647 | sys_tee_wrapper: | ||
1648 | lgfr %r2,%r2 # int | ||
1649 | lgfr %r3,%r3 # int | ||
1650 | llgfr %r4,%r4 # size_t | ||
1651 | llgfr %r5,%r5 # unsigned int | ||
1652 | jg sys_tee | ||
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 37dfe33dab73..8f36504075ed 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -734,7 +734,7 @@ asmlinkage void | |||
734 | syscall_trace(struct pt_regs *regs, int entryexit) | 734 | syscall_trace(struct pt_regs *regs, int entryexit) |
735 | { | 735 | { |
736 | if (unlikely(current->audit_context) && entryexit) | 736 | if (unlikely(current->audit_context) && entryexit) |
737 | audit_syscall_exit(current, AUDITSC_RESULT(regs->gprs[2]), regs->gprs[2]); | 737 | audit_syscall_exit(AUDITSC_RESULT(regs->gprs[2]), regs->gprs[2]); |
738 | 738 | ||
739 | if (!test_thread_flag(TIF_SYSCALL_TRACE)) | 739 | if (!test_thread_flag(TIF_SYSCALL_TRACE)) |
740 | goto out; | 740 | goto out; |
@@ -761,8 +761,7 @@ syscall_trace(struct pt_regs *regs, int entryexit) | |||
761 | } | 761 | } |
762 | out: | 762 | out: |
763 | if (unlikely(current->audit_context) && !entryexit) | 763 | if (unlikely(current->audit_context) && !entryexit) |
764 | audit_syscall_entry(current, | 764 | audit_syscall_entry(test_thread_flag(TIF_31BIT)?AUDIT_ARCH_S390:AUDIT_ARCH_S390X, |
765 | test_thread_flag(TIF_31BIT)?AUDIT_ARCH_S390:AUDIT_ARCH_S390X, | ||
766 | regs->gprs[2], regs->orig_gpr2, regs->gprs[3], | 765 | regs->gprs[2], regs->orig_gpr2, regs->gprs[3], |
767 | regs->gprs[4], regs->gprs[5]); | 766 | regs->gprs[4], regs->gprs[5]); |
768 | } | 767 | } |
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index ae1927e48cfb..d48cfc726b68 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -358,8 +358,9 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
358 | } else { | 358 | } else { |
359 | regs->gprs[14] = (unsigned long) | 359 | regs->gprs[14] = (unsigned long) |
360 | frame->retcode | PSW_ADDR_AMODE; | 360 | frame->retcode | PSW_ADDR_AMODE; |
361 | err |= __put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn, | 361 | if (__put_user(S390_SYSCALL_OPCODE | __NR_rt_sigreturn, |
362 | (u16 __user *)(frame->retcode)); | 362 | (u16 __user *)(frame->retcode))) |
363 | goto give_sigsegv; | ||
363 | } | 364 | } |
364 | 365 | ||
365 | /* Set up backchain. */ | 366 | /* Set up backchain. */ |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 2f56654da821..fc2c0767202b 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -312,3 +312,8 @@ SYSCALL(sys_faccessat,sys_faccessat,sys_faccessat_wrapper) /* 300 */ | |||
312 | SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper) | 312 | SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper) |
313 | SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper) | 313 | SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper) |
314 | SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper) | 314 | SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper) |
315 | SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list_wrapper) | ||
316 | SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list_wrapper) | ||
317 | SYSCALL(sys_splice,sys_splice,sys_splice_wrapper) | ||
318 | SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper) | ||
319 | SYSCALL(sys_tee,sys_tee,sys_tee_wrapper) | ||
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 9289face3027..9f34bb54c051 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -58,9 +58,11 @@ SECTIONS | |||
58 | . = ALIGN(4096); | 58 | . = ALIGN(4096); |
59 | .data.page_aligned : { *(.data.idt) } | 59 | .data.page_aligned : { *(.data.idt) } |
60 | 60 | ||
61 | . = ALIGN(32); | 61 | . = ALIGN(256); |
62 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } | 62 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } |
63 | 63 | ||
64 | . = ALIGN(256); | ||
65 | .data.read_mostly : { *(.data.read_mostly) } | ||
64 | _edata = .; /* End of data section */ | 66 | _edata = .; /* End of data section */ |
65 | 67 | ||
66 | . = ALIGN(8192); /* init_task */ | 68 | . = ALIGN(8192); /* init_task */ |
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c index a9566bcab682..9b11e3e20903 100644 --- a/arch/s390/mm/extmem.c +++ b/arch/s390/mm/extmem.c | |||
@@ -192,6 +192,7 @@ query_segment_type (struct dcss_segment *seg) | |||
192 | diag_cc = dcss_diag (DCSS_SEGEXT, qin, &dummy, &vmrc); | 192 | diag_cc = dcss_diag (DCSS_SEGEXT, qin, &dummy, &vmrc); |
193 | 193 | ||
194 | if (diag_cc > 1) { | 194 | if (diag_cc > 1) { |
195 | PRINT_WARN ("segment_type: diag returned error %ld\n", vmrc); | ||
195 | rc = dcss_diag_translate_rc (vmrc); | 196 | rc = dcss_diag_translate_rc (vmrc); |
196 | goto out_free; | 197 | goto out_free; |
197 | } | 198 | } |
@@ -553,7 +554,7 @@ segment_save(char *name) | |||
553 | int endpfn = 0; | 554 | int endpfn = 0; |
554 | char cmd1[160]; | 555 | char cmd1[160]; |
555 | char cmd2[80]; | 556 | char cmd2[80]; |
556 | int i; | 557 | int i, response; |
557 | 558 | ||
558 | if (!MACHINE_IS_VM) | 559 | if (!MACHINE_IS_VM) |
559 | return; | 560 | return; |
@@ -576,8 +577,20 @@ segment_save(char *name) | |||
576 | segtype_string[seg->range[i].start & 0xff]); | 577 | segtype_string[seg->range[i].start & 0xff]); |
577 | } | 578 | } |
578 | sprintf(cmd2, "SAVESEG %s", name); | 579 | sprintf(cmd2, "SAVESEG %s", name); |
579 | cpcmd(cmd1, NULL, 0, NULL); | 580 | response = 0; |
580 | cpcmd(cmd2, NULL, 0, NULL); | 581 | cpcmd(cmd1, NULL, 0, &response); |
582 | if (response) { | ||
583 | PRINT_ERR("segment_save: DEFSEG failed with response code %i\n", | ||
584 | response); | ||
585 | goto out; | ||
586 | } | ||
587 | cpcmd(cmd2, NULL, 0, &response); | ||
588 | if (response) { | ||
589 | PRINT_ERR("segment_save: SAVESEG failed with response code %i\n", | ||
590 | response); | ||
591 | goto out; | ||
592 | } | ||
593 | out: | ||
581 | spin_unlock(&dcss_lock); | 594 | spin_unlock(&dcss_lock); |
582 | } | 595 | } |
583 | 596 | ||
diff --git a/arch/sparc/kernel/systbls.S b/arch/sparc/kernel/systbls.S index db8faa75f94d..6e1135cc03b0 100644 --- a/arch/sparc/kernel/systbls.S +++ b/arch/sparc/kernel/systbls.S | |||
@@ -23,7 +23,7 @@ sys_call_table: | |||
23 | /*10*/ .long sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod | 23 | /*10*/ .long sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys_mknod |
24 | /*15*/ .long sys_chmod, sys_lchown16, sparc_brk, sys_nis_syscall, sys_lseek | 24 | /*15*/ .long sys_chmod, sys_lchown16, sparc_brk, sys_nis_syscall, sys_lseek |
25 | /*20*/ .long sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 | 25 | /*20*/ .long sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 |
26 | /*25*/ .long sys_time, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause | 26 | /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause |
27 | /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice | 27 | /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice |
28 | /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile | 28 | /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile |
29 | /*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid | 29 | /*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid |
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c index 49e6dedd027d..d31975e6d6f6 100644 --- a/arch/sparc64/kernel/ptrace.c +++ b/arch/sparc64/kernel/ptrace.c | |||
@@ -653,7 +653,7 @@ asmlinkage void syscall_trace(struct pt_regs *regs, int syscall_exit_p) | |||
653 | if (unlikely(tstate & (TSTATE_XCARRY | TSTATE_ICARRY))) | 653 | if (unlikely(tstate & (TSTATE_XCARRY | TSTATE_ICARRY))) |
654 | result = AUDITSC_FAILURE; | 654 | result = AUDITSC_FAILURE; |
655 | 655 | ||
656 | audit_syscall_exit(current, result, regs->u_regs[UREG_I0]); | 656 | audit_syscall_exit(result, regs->u_regs[UREG_I0]); |
657 | } | 657 | } |
658 | 658 | ||
659 | if (!(current->ptrace & PT_PTRACED)) | 659 | if (!(current->ptrace & PT_PTRACED)) |
@@ -677,8 +677,7 @@ asmlinkage void syscall_trace(struct pt_regs *regs, int syscall_exit_p) | |||
677 | 677 | ||
678 | out: | 678 | out: |
679 | if (unlikely(current->audit_context) && !syscall_exit_p) | 679 | if (unlikely(current->audit_context) && !syscall_exit_p) |
680 | audit_syscall_entry(current, | 680 | audit_syscall_entry((test_thread_flag(TIF_32BIT) ? |
681 | (test_thread_flag(TIF_32BIT) ? | ||
682 | AUDIT_ARCH_SPARC : | 681 | AUDIT_ARCH_SPARC : |
683 | AUDIT_ARCH_SPARC64), | 682 | AUDIT_ARCH_SPARC64), |
684 | regs->u_regs[UREG_G1], | 683 | regs->u_regs[UREG_G1], |
diff --git a/arch/sparc64/kernel/sys32.S b/arch/sparc64/kernel/sys32.S index f9b75760163c..bdf1f4d02e3f 100644 --- a/arch/sparc64/kernel/sys32.S +++ b/arch/sparc64/kernel/sys32.S | |||
@@ -139,6 +139,7 @@ SIGN3(sys32_ioprio_set, sys_ioprio_set, %o0, %o1, %o2) | |||
139 | SIGN2(sys32_splice, sys_splice, %o0, %o1) | 139 | SIGN2(sys32_splice, sys_splice, %o0, %o1) |
140 | SIGN2(sys32_sync_file_range, compat_sync_file_range, %o0, %o5) | 140 | SIGN2(sys32_sync_file_range, compat_sync_file_range, %o0, %o5) |
141 | SIGN2(sys32_tee, sys_tee, %o0, %o1) | 141 | SIGN2(sys32_tee, sys_tee, %o0, %o1) |
142 | SIGN1(sys32_vmsplice, compat_sys_vmsplice, %o0) | ||
142 | 143 | ||
143 | .globl sys32_mmap2 | 144 | .globl sys32_mmap2 |
144 | sys32_mmap2: | 145 | sys32_mmap2: |
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S index 62672cd92eca..d4b39cd30310 100644 --- a/arch/sparc64/kernel/systbls.S +++ b/arch/sparc64/kernel/systbls.S | |||
@@ -25,7 +25,7 @@ sys_call_table32: | |||
25 | /*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys32_chown16, sys32_mknod | 25 | /*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys32_chown16, sys32_mknod |
26 | /*15*/ .word sys_chmod, sys32_lchown16, sparc_brk, sys32_perfctr, sys32_lseek | 26 | /*15*/ .word sys_chmod, sys32_lchown16, sparc_brk, sys32_perfctr, sys32_lseek |
27 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16 | 27 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16 |
28 | /*25*/ .word compat_sys_time, sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause | 28 | /*25*/ .word sys32_vmsplice, sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause |
29 | /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice | 29 | /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice |
30 | .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile | 30 | .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile |
31 | /*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid | 31 | /*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid |
@@ -94,7 +94,7 @@ sys_call_table: | |||
94 | /*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod | 94 | /*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod |
95 | /*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek | 95 | /*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek |
96 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid | 96 | /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid |
97 | /*25*/ .word sys_nis_syscall, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall | 97 | /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall |
98 | /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice | 98 | /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice |
99 | .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 | 99 | .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 |
100 | /*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall | 100 | /*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall |
diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c index a079cf42505e..3f10fc921b00 100644 --- a/arch/sparc64/mm/tlb.c +++ b/arch/sparc64/mm/tlb.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/percpu.h> | 8 | #include <linux/percpu.h> |
9 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
10 | #include <linux/swap.h> | 10 | #include <linux/swap.h> |
11 | #include <linux/preempt.h> | ||
11 | 12 | ||
12 | #include <asm/pgtable.h> | 13 | #include <asm/pgtable.h> |
13 | #include <asm/pgalloc.h> | 14 | #include <asm/pgalloc.h> |
@@ -24,6 +25,8 @@ void flush_tlb_pending(void) | |||
24 | { | 25 | { |
25 | struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); | 26 | struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); |
26 | 27 | ||
28 | preempt_disable(); | ||
29 | |||
27 | if (mp->tlb_nr) { | 30 | if (mp->tlb_nr) { |
28 | flush_tsb_user(mp); | 31 | flush_tsb_user(mp); |
29 | 32 | ||
@@ -38,6 +41,8 @@ void flush_tlb_pending(void) | |||
38 | } | 41 | } |
39 | mp->tlb_nr = 0; | 42 | mp->tlb_nr = 0; |
40 | } | 43 | } |
44 | |||
45 | preempt_enable(); | ||
41 | } | 46 | } |
42 | 47 | ||
43 | void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig) | 48 | void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig) |
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 05fbb20636cb..76e85bbaea55 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig | |||
@@ -57,20 +57,6 @@ config STATIC_LINK | |||
57 | chroot, and you disable CONFIG_MODE_TT, you probably want to say Y | 57 | chroot, and you disable CONFIG_MODE_TT, you probably want to say Y |
58 | here. | 58 | here. |
59 | 59 | ||
60 | config HOST_2G_2G | ||
61 | bool "2G/2G host address space split" | ||
62 | default n | ||
63 | depends on MODE_TT | ||
64 | help | ||
65 | This is needed when the host on which you run has a 2G/2G memory | ||
66 | split, instead of the customary 3G/1G. | ||
67 | |||
68 | Note that to enable such a host | ||
69 | configuration, which makes sense only in some cases, you need special | ||
70 | host patches. | ||
71 | |||
72 | So, if you do not know what to do here, say 'N'. | ||
73 | |||
74 | config KERNEL_HALF_GIGS | 60 | config KERNEL_HALF_GIGS |
75 | int "Kernel address space size (in .5G units)" | 61 | int "Kernel address space size (in .5G units)" |
76 | default "1" | 62 | default "1" |
diff --git a/arch/um/Kconfig.i386 b/arch/um/Kconfig.i386 index 85e6a55b3b59..f6eb72d117b9 100644 --- a/arch/um/Kconfig.i386 +++ b/arch/um/Kconfig.i386 | |||
@@ -16,6 +16,19 @@ config SEMAPHORE_SLEEPERS | |||
16 | bool | 16 | bool |
17 | default y | 17 | default y |
18 | 18 | ||
19 | config HOST_2G_2G | ||
20 | bool "2G/2G host address space split" | ||
21 | default n | ||
22 | help | ||
23 | This is needed when the host on which you run has a 2G/2G memory | ||
24 | split, instead of the customary 3G/1G. | ||
25 | |||
26 | Note that to enable such a host | ||
27 | configuration, which makes sense only in some cases, you need special | ||
28 | host patches. | ||
29 | |||
30 | So, if you do not know what to do here, say 'N'. | ||
31 | |||
19 | config TOP_ADDR | 32 | config TOP_ADDR |
20 | hex | 33 | hex |
21 | default 0xc0000000 if !HOST_2G_2G | 34 | default 0xc0000000 if !HOST_2G_2G |
@@ -35,11 +48,13 @@ config 3_LEVEL_PGTABLES | |||
35 | 48 | ||
36 | config STUB_CODE | 49 | config STUB_CODE |
37 | hex | 50 | hex |
38 | default 0xbfffe000 | 51 | default 0xbfffe000 if !HOST_2G_2G |
52 | default 0x7fffe000 if HOST_2G_2G | ||
39 | 53 | ||
40 | config STUB_DATA | 54 | config STUB_DATA |
41 | hex | 55 | hex |
42 | default 0xbffff000 | 56 | default 0xbffff000 if !HOST_2G_2G |
57 | default 0x7ffff000 if HOST_2G_2G | ||
43 | 58 | ||
44 | config STUB_START | 59 | config STUB_START |
45 | hex | 60 | hex |
diff --git a/arch/um/Makefile b/arch/um/Makefile index a508e7a02891..f6ad832faf13 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -96,7 +96,8 @@ PHONY += linux | |||
96 | all: linux | 96 | all: linux |
97 | 97 | ||
98 | linux: vmlinux | 98 | linux: vmlinux |
99 | ln -f $< $@ | 99 | @echo ' LINK $@' |
100 | $(Q)ln -f $< $@ | ||
100 | 101 | ||
101 | define archhelp | 102 | define archhelp |
102 | echo '* linux - Binary kernel image (./linux) - for backward' | 103 | echo '* linux - Binary kernel image (./linux) - for backward' |
@@ -117,6 +118,10 @@ prepare: $(ARCH_DIR)/include/kern_constants.h | |||
117 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static | 118 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static |
118 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib | 119 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib |
119 | 120 | ||
121 | CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \ | ||
122 | $(call cc-option, -fno-stack-protector,) \ | ||
123 | $(call cc-option, -fno-stack-protector-all,) | ||
124 | |||
120 | CPP_MODE-$(CONFIG_MODE_TT) := -DMODE_TT | 125 | CPP_MODE-$(CONFIG_MODE_TT) := -DMODE_TT |
121 | CONFIG_KERNEL_STACK_ORDER ?= 2 | 126 | CONFIG_KERNEL_STACK_ORDER ?= 2 |
122 | STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] ) | 127 | STACK_SIZE := $(shell echo $$[ 4096 * (1 << $(CONFIG_KERNEL_STACK_ORDER)) ] ) |
@@ -203,8 +208,8 @@ endef | |||
203 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h | 208 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h |
204 | $(call filechk,umlconfig) | 209 | $(call filechk,umlconfig) |
205 | 210 | ||
206 | $(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c | 211 | $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s: FORCE |
207 | $(CC) $(USER_CFLAGS) -S -o $@ $< | 212 | $(Q)$(MAKE) $(build)=$(ARCH_DIR)/sys-$(SUBARCH) $@ |
208 | 213 | ||
209 | define filechk_gen-asm-offsets | 214 | define filechk_gen-asm-offsets |
210 | (set -e; \ | 215 | (set -e; \ |
@@ -219,13 +224,11 @@ define filechk_gen-asm-offsets | |||
219 | echo ""; ) | 224 | echo ""; ) |
220 | endef | 225 | endef |
221 | 226 | ||
222 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s | 227 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s |
223 | $(call filechk,gen-asm-offsets) | 228 | $(call filechk,gen-asm-offsets) |
224 | 229 | ||
225 | CLEAN_FILES += $(ARCH_DIR)/user-offsets.s | ||
226 | |||
227 | $(ARCH_DIR)/include/kern_constants.h: $(objtree)/$(ARCH_DIR)/include | 230 | $(ARCH_DIR)/include/kern_constants.h: $(objtree)/$(ARCH_DIR)/include |
228 | @echo ' SYMLINK $@' | 231 | @echo ' SYMLINK $@' |
229 | $(Q) ln -sf ../../../include/asm-um/asm-offsets.h $@ | 232 | $(Q)ln -sf ../../../include/asm-um/asm-offsets.h $@ |
230 | 233 | ||
231 | export SUBARCH USER_CFLAGS OS | 234 | export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS |
diff --git a/arch/um/defconfig b/arch/um/defconfig index 80d30d19d750..402a74dc5026 100644 --- a/arch/um/defconfig +++ b/arch/um/defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.12-rc6-mm1 | 3 | # Linux kernel version: 2.6.17-rc3 |
4 | # Tue Jun 14 18:22:21 2005 | 4 | # Fri Apr 28 09:31:20 2006 |
5 | # | 5 | # |
6 | CONFIG_GENERIC_HARDIRQS=y | 6 | CONFIG_GENERIC_HARDIRQS=y |
7 | CONFIG_UML=y | 7 | CONFIG_UML=y |
8 | CONFIG_MMU=y | 8 | CONFIG_MMU=y |
9 | CONFIG_UID16=y | ||
10 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
11 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_IRQ_RELEASE_METHOD=y | ||
12 | 11 | ||
13 | # | 12 | # |
14 | # UML-specific options | 13 | # UML-specific options |
@@ -16,8 +15,50 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y | |||
16 | # CONFIG_MODE_TT is not set | 15 | # CONFIG_MODE_TT is not set |
17 | # CONFIG_STATIC_LINK is not set | 16 | # CONFIG_STATIC_LINK is not set |
18 | CONFIG_MODE_SKAS=y | 17 | CONFIG_MODE_SKAS=y |
18 | |||
19 | # | ||
20 | # Host processor type and features | ||
21 | # | ||
22 | # CONFIG_M386 is not set | ||
23 | # CONFIG_M486 is not set | ||
24 | # CONFIG_M586 is not set | ||
25 | # CONFIG_M586TSC is not set | ||
26 | # CONFIG_M586MMX is not set | ||
27 | CONFIG_M686=y | ||
28 | # CONFIG_MPENTIUMII is not set | ||
29 | # CONFIG_MPENTIUMIII is not set | ||
30 | # CONFIG_MPENTIUMM is not set | ||
31 | # CONFIG_MPENTIUM4 is not set | ||
32 | # CONFIG_MK6 is not set | ||
33 | # CONFIG_MK7 is not set | ||
34 | # CONFIG_MK8 is not set | ||
35 | # CONFIG_MCRUSOE is not set | ||
36 | # CONFIG_MEFFICEON is not set | ||
37 | # CONFIG_MWINCHIPC6 is not set | ||
38 | # CONFIG_MWINCHIP2 is not set | ||
39 | # CONFIG_MWINCHIP3D is not set | ||
40 | # CONFIG_MGEODEGX1 is not set | ||
41 | # CONFIG_MGEODE_LX is not set | ||
42 | # CONFIG_MCYRIXIII is not set | ||
43 | # CONFIG_MVIAC3_2 is not set | ||
44 | # CONFIG_X86_GENERIC is not set | ||
45 | CONFIG_X86_CMPXCHG=y | ||
46 | CONFIG_X86_XADD=y | ||
47 | CONFIG_X86_L1_CACHE_SHIFT=5 | ||
48 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
49 | CONFIG_X86_PPRO_FENCE=y | ||
50 | CONFIG_X86_WP_WORKS_OK=y | ||
51 | CONFIG_X86_INVLPG=y | ||
52 | CONFIG_X86_BSWAP=y | ||
53 | CONFIG_X86_POPAD_OK=y | ||
54 | CONFIG_X86_CMPXCHG64=y | ||
55 | CONFIG_X86_GOOD_APIC=y | ||
56 | CONFIG_X86_USE_PPRO_CHECKSUM=y | ||
57 | CONFIG_X86_TSC=y | ||
19 | CONFIG_UML_X86=y | 58 | CONFIG_UML_X86=y |
20 | # CONFIG_64BIT is not set | 59 | # CONFIG_64BIT is not set |
60 | CONFIG_SEMAPHORE_SLEEPERS=y | ||
61 | # CONFIG_HOST_2G_2G is not set | ||
21 | CONFIG_TOP_ADDR=0xc0000000 | 62 | CONFIG_TOP_ADDR=0xc0000000 |
22 | # CONFIG_3_LEVEL_PGTABLES is not set | 63 | # CONFIG_3_LEVEL_PGTABLES is not set |
23 | CONFIG_STUB_CODE=0xbfffe000 | 64 | CONFIG_STUB_CODE=0xbfffe000 |
@@ -25,22 +66,24 @@ CONFIG_STUB_DATA=0xbffff000 | |||
25 | CONFIG_STUB_START=0xbfffe000 | 66 | CONFIG_STUB_START=0xbfffe000 |
26 | CONFIG_ARCH_HAS_SC_SIGNALS=y | 67 | CONFIG_ARCH_HAS_SC_SIGNALS=y |
27 | CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA=y | 68 | CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA=y |
69 | CONFIG_GENERIC_HWEIGHT=y | ||
28 | CONFIG_SELECT_MEMORY_MODEL=y | 70 | CONFIG_SELECT_MEMORY_MODEL=y |
29 | CONFIG_FLATMEM_MANUAL=y | 71 | CONFIG_FLATMEM_MANUAL=y |
30 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 72 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
31 | # CONFIG_SPARSEMEM_MANUAL is not set | 73 | # CONFIG_SPARSEMEM_MANUAL is not set |
32 | CONFIG_FLATMEM=y | 74 | CONFIG_FLATMEM=y |
33 | CONFIG_FLAT_NODE_MEM_MAP=y | 75 | CONFIG_FLAT_NODE_MEM_MAP=y |
76 | # CONFIG_SPARSEMEM_STATIC is not set | ||
77 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
34 | CONFIG_LD_SCRIPT_DYN=y | 78 | CONFIG_LD_SCRIPT_DYN=y |
35 | CONFIG_NET=y | 79 | CONFIG_NET=y |
36 | CONFIG_BINFMT_ELF=y | 80 | CONFIG_BINFMT_ELF=y |
37 | CONFIG_BINFMT_MISC=m | 81 | CONFIG_BINFMT_MISC=m |
38 | # CONFIG_HOSTFS is not set | 82 | # CONFIG_HOSTFS is not set |
83 | # CONFIG_HPPFS is not set | ||
39 | CONFIG_MCONSOLE=y | 84 | CONFIG_MCONSOLE=y |
40 | # CONFIG_MAGIC_SYSRQ is not set | 85 | # CONFIG_MAGIC_SYSRQ is not set |
41 | # CONFIG_HOST_2G_2G is not set | ||
42 | CONFIG_NEST_LEVEL=0 | 86 | CONFIG_NEST_LEVEL=0 |
43 | CONFIG_KERNEL_HALF_GIGS=1 | ||
44 | # CONFIG_HIGHMEM is not set | 87 | # CONFIG_HIGHMEM is not set |
45 | CONFIG_KERNEL_STACK_ORDER=2 | 88 | CONFIG_KERNEL_STACK_ORDER=2 |
46 | CONFIG_UML_REAL_TIME_CLOCK=y | 89 | CONFIG_UML_REAL_TIME_CLOCK=y |
@@ -49,7 +92,6 @@ CONFIG_UML_REAL_TIME_CLOCK=y | |||
49 | # Code maturity level options | 92 | # Code maturity level options |
50 | # | 93 | # |
51 | CONFIG_EXPERIMENTAL=y | 94 | CONFIG_EXPERIMENTAL=y |
52 | CONFIG_CLEAN_COMPILE=y | ||
53 | CONFIG_BROKEN_ON_SMP=y | 95 | CONFIG_BROKEN_ON_SMP=y |
54 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 96 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
55 | 97 | ||
@@ -57,6 +99,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
57 | # General setup | 99 | # General setup |
58 | # | 100 | # |
59 | CONFIG_LOCALVERSION="" | 101 | CONFIG_LOCALVERSION="" |
102 | CONFIG_LOCALVERSION_AUTO=y | ||
60 | CONFIG_SWAP=y | 103 | CONFIG_SWAP=y |
61 | CONFIG_SYSVIPC=y | 104 | CONFIG_SYSVIPC=y |
62 | CONFIG_POSIX_MQUEUE=y | 105 | CONFIG_POSIX_MQUEUE=y |
@@ -64,26 +107,28 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
64 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | 107 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set |
65 | CONFIG_SYSCTL=y | 108 | CONFIG_SYSCTL=y |
66 | # CONFIG_AUDIT is not set | 109 | # CONFIG_AUDIT is not set |
67 | # CONFIG_HOTPLUG is not set | ||
68 | CONFIG_KOBJECT_UEVENT=y | ||
69 | CONFIG_IKCONFIG=y | 110 | CONFIG_IKCONFIG=y |
70 | CONFIG_IKCONFIG_PROC=y | 111 | CONFIG_IKCONFIG_PROC=y |
112 | # CONFIG_RELAY is not set | ||
113 | CONFIG_INITRAMFS_SOURCE="" | ||
114 | CONFIG_UID16=y | ||
115 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
71 | # CONFIG_EMBEDDED is not set | 116 | # CONFIG_EMBEDDED is not set |
72 | CONFIG_KALLSYMS=y | 117 | CONFIG_KALLSYMS=y |
73 | # CONFIG_KALLSYMS_ALL is not set | 118 | # CONFIG_KALLSYMS_ALL is not set |
74 | CONFIG_KALLSYMS_EXTRA_PASS=y | 119 | CONFIG_KALLSYMS_EXTRA_PASS=y |
120 | CONFIG_HOTPLUG=y | ||
75 | CONFIG_PRINTK=y | 121 | CONFIG_PRINTK=y |
76 | CONFIG_BUG=y | 122 | CONFIG_BUG=y |
123 | CONFIG_ELF_CORE=y | ||
77 | CONFIG_BASE_FULL=y | 124 | CONFIG_BASE_FULL=y |
78 | CONFIG_FUTEX=y | 125 | CONFIG_FUTEX=y |
79 | CONFIG_EPOLL=y | 126 | CONFIG_EPOLL=y |
80 | CONFIG_SHMEM=y | 127 | CONFIG_SHMEM=y |
81 | CONFIG_CC_ALIGN_FUNCTIONS=0 | 128 | CONFIG_SLAB=y |
82 | CONFIG_CC_ALIGN_LABELS=0 | ||
83 | CONFIG_CC_ALIGN_LOOPS=0 | ||
84 | CONFIG_CC_ALIGN_JUMPS=0 | ||
85 | # CONFIG_TINY_SHMEM is not set | 129 | # CONFIG_TINY_SHMEM is not set |
86 | CONFIG_BASE_SMALL=0 | 130 | CONFIG_BASE_SMALL=0 |
131 | # CONFIG_SLOB is not set | ||
87 | 132 | ||
88 | # | 133 | # |
89 | # Loadable module support | 134 | # Loadable module support |
@@ -91,18 +136,43 @@ CONFIG_BASE_SMALL=0 | |||
91 | CONFIG_MODULES=y | 136 | CONFIG_MODULES=y |
92 | CONFIG_MODULE_UNLOAD=y | 137 | CONFIG_MODULE_UNLOAD=y |
93 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 138 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
94 | CONFIG_OBSOLETE_MODPARM=y | ||
95 | # CONFIG_MODVERSIONS is not set | 139 | # CONFIG_MODVERSIONS is not set |
96 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 140 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
97 | CONFIG_KMOD=y | 141 | CONFIG_KMOD=y |
98 | 142 | ||
99 | # | 143 | # |
100 | # Generic Driver Options | 144 | # Block layer |
101 | # | 145 | # |
102 | CONFIG_STANDALONE=y | 146 | # CONFIG_LBD is not set |
103 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 147 | # CONFIG_BLK_DEV_IO_TRACE is not set |
104 | # CONFIG_FW_LOADER is not set | 148 | # CONFIG_LSF is not set |
105 | # CONFIG_DEBUG_DRIVER is not set | 149 | |
150 | # | ||
151 | # IO Schedulers | ||
152 | # | ||
153 | CONFIG_IOSCHED_NOOP=y | ||
154 | CONFIG_IOSCHED_AS=y | ||
155 | CONFIG_IOSCHED_DEADLINE=y | ||
156 | CONFIG_IOSCHED_CFQ=y | ||
157 | CONFIG_DEFAULT_AS=y | ||
158 | # CONFIG_DEFAULT_DEADLINE is not set | ||
159 | # CONFIG_DEFAULT_CFQ is not set | ||
160 | # CONFIG_DEFAULT_NOOP is not set | ||
161 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
162 | |||
163 | # | ||
164 | # Block devices | ||
165 | # | ||
166 | CONFIG_BLK_DEV_UBD=y | ||
167 | # CONFIG_BLK_DEV_UBD_SYNC is not set | ||
168 | CONFIG_BLK_DEV_COW_COMMON=y | ||
169 | # CONFIG_MMAPPER is not set | ||
170 | CONFIG_BLK_DEV_LOOP=m | ||
171 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
172 | CONFIG_BLK_DEV_NBD=m | ||
173 | # CONFIG_BLK_DEV_RAM is not set | ||
174 | # CONFIG_BLK_DEV_INITRD is not set | ||
175 | # CONFIG_ATA_OVER_ETH is not set | ||
106 | 176 | ||
107 | # | 177 | # |
108 | # Character Devices | 178 | # Character Devices |
@@ -127,50 +197,23 @@ CONFIG_UML_SOUND=m | |||
127 | CONFIG_SOUND=m | 197 | CONFIG_SOUND=m |
128 | CONFIG_HOSTAUDIO=m | 198 | CONFIG_HOSTAUDIO=m |
129 | CONFIG_UML_RANDOM=y | 199 | CONFIG_UML_RANDOM=y |
130 | # CONFIG_MMAPPER is not set | ||
131 | |||
132 | # | ||
133 | # Block devices | ||
134 | # | ||
135 | CONFIG_BLK_DEV_UBD=y | ||
136 | CONFIG_BLK_DEV_UBD_SYNC=y | ||
137 | CONFIG_BLK_DEV_COW_COMMON=y | ||
138 | CONFIG_BLK_DEV_LOOP=m | ||
139 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
140 | CONFIG_BLK_DEV_NBD=m | ||
141 | # CONFIG_BLK_DEV_RAM is not set | ||
142 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
143 | CONFIG_INITRAMFS_SOURCE="" | ||
144 | # CONFIG_LBD is not set | ||
145 | |||
146 | # | ||
147 | # IO Schedulers | ||
148 | # | ||
149 | CONFIG_IOSCHED_NOOP=y | ||
150 | CONFIG_IOSCHED_AS=y | ||
151 | CONFIG_IOSCHED_DEADLINE=y | ||
152 | CONFIG_IOSCHED_CFQ=y | ||
153 | # CONFIG_ATA_OVER_ETH is not set | ||
154 | CONFIG_NETDEVICES=y | ||
155 | 200 | ||
156 | # | 201 | # |
157 | # UML Network Devices | 202 | # Generic Driver Options |
158 | # | 203 | # |
159 | CONFIG_UML_NET=y | 204 | CONFIG_STANDALONE=y |
160 | CONFIG_UML_NET_ETHERTAP=y | 205 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
161 | CONFIG_UML_NET_TUNTAP=y | 206 | # CONFIG_FW_LOADER is not set |
162 | CONFIG_UML_NET_SLIP=y | 207 | # CONFIG_DEBUG_DRIVER is not set |
163 | CONFIG_UML_NET_DAEMON=y | ||
164 | CONFIG_UML_NET_MCAST=y | ||
165 | CONFIG_UML_NET_SLIRP=y | ||
166 | 208 | ||
167 | # | 209 | # |
168 | # Networking support | 210 | # Networking |
169 | # | 211 | # |
170 | 212 | ||
171 | # | 213 | # |
172 | # Networking options | 214 | # Networking options |
173 | # | 215 | # |
216 | # CONFIG_NETDEBUG is not set | ||
174 | CONFIG_PACKET=y | 217 | CONFIG_PACKET=y |
175 | CONFIG_PACKET_MMAP=y | 218 | CONFIG_PACKET_MMAP=y |
176 | CONFIG_UNIX=y | 219 | CONFIG_UNIX=y |
@@ -178,6 +221,7 @@ CONFIG_UNIX=y | |||
178 | CONFIG_INET=y | 221 | CONFIG_INET=y |
179 | # CONFIG_IP_MULTICAST is not set | 222 | # CONFIG_IP_MULTICAST is not set |
180 | # CONFIG_IP_ADVANCED_ROUTER is not set | 223 | # CONFIG_IP_ADVANCED_ROUTER is not set |
224 | CONFIG_IP_FIB_HASH=y | ||
181 | # CONFIG_IP_PNP is not set | 225 | # CONFIG_IP_PNP is not set |
182 | # CONFIG_NET_IPIP is not set | 226 | # CONFIG_NET_IPIP is not set |
183 | # CONFIG_NET_IPGRE is not set | 227 | # CONFIG_NET_IPGRE is not set |
@@ -186,27 +230,31 @@ CONFIG_INET=y | |||
186 | # CONFIG_INET_AH is not set | 230 | # CONFIG_INET_AH is not set |
187 | # CONFIG_INET_ESP is not set | 231 | # CONFIG_INET_ESP is not set |
188 | # CONFIG_INET_IPCOMP is not set | 232 | # CONFIG_INET_IPCOMP is not set |
233 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
189 | # CONFIG_INET_TUNNEL is not set | 234 | # CONFIG_INET_TUNNEL is not set |
190 | CONFIG_IP_TCPDIAG=y | 235 | CONFIG_INET_DIAG=y |
191 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 236 | CONFIG_INET_TCP_DIAG=y |
192 | 237 | # CONFIG_TCP_CONG_ADVANCED is not set | |
193 | # | ||
194 | # TCP congestion control | ||
195 | # | ||
196 | CONFIG_TCP_CONG_BIC=y | 238 | CONFIG_TCP_CONG_BIC=y |
197 | CONFIG_TCP_CONG_WESTWOOD=y | ||
198 | CONFIG_TCP_CONG_HTCP=y | ||
199 | # CONFIG_TCP_CONG_HSTCP is not set | ||
200 | # CONFIG_TCP_CONG_HYBLA is not set | ||
201 | # CONFIG_TCP_CONG_VEGAS is not set | ||
202 | # CONFIG_TCP_CONG_SCALABLE is not set | ||
203 | # CONFIG_IPV6 is not set | 239 | # CONFIG_IPV6 is not set |
240 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
241 | # CONFIG_INET6_TUNNEL is not set | ||
204 | # CONFIG_NETFILTER is not set | 242 | # CONFIG_NETFILTER is not set |
205 | 243 | ||
206 | # | 244 | # |
245 | # DCCP Configuration (EXPERIMENTAL) | ||
246 | # | ||
247 | # CONFIG_IP_DCCP is not set | ||
248 | |||
249 | # | ||
207 | # SCTP Configuration (EXPERIMENTAL) | 250 | # SCTP Configuration (EXPERIMENTAL) |
208 | # | 251 | # |
209 | # CONFIG_IP_SCTP is not set | 252 | # CONFIG_IP_SCTP is not set |
253 | |||
254 | # | ||
255 | # TIPC Configuration (EXPERIMENTAL) | ||
256 | # | ||
257 | # CONFIG_TIPC is not set | ||
210 | # CONFIG_ATM is not set | 258 | # CONFIG_ATM is not set |
211 | # CONFIG_BRIDGE is not set | 259 | # CONFIG_BRIDGE is not set |
212 | # CONFIG_VLAN_8021Q is not set | 260 | # CONFIG_VLAN_8021Q is not set |
@@ -224,27 +272,47 @@ CONFIG_TCP_CONG_HTCP=y | |||
224 | # QoS and/or fair queueing | 272 | # QoS and/or fair queueing |
225 | # | 273 | # |
226 | # CONFIG_NET_SCHED is not set | 274 | # CONFIG_NET_SCHED is not set |
227 | # CONFIG_NET_CLS_ROUTE is not set | ||
228 | 275 | ||
229 | # | 276 | # |
230 | # Network testing | 277 | # Network testing |
231 | # | 278 | # |
232 | # CONFIG_NET_PKTGEN is not set | 279 | # CONFIG_NET_PKTGEN is not set |
233 | # CONFIG_KGDBOE is not set | ||
234 | # CONFIG_NETPOLL is not set | ||
235 | # CONFIG_NETPOLL_RX is not set | ||
236 | # CONFIG_NETPOLL_TRAP is not set | ||
237 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
238 | # CONFIG_HAMRADIO is not set | 280 | # CONFIG_HAMRADIO is not set |
239 | # CONFIG_IRDA is not set | 281 | # CONFIG_IRDA is not set |
240 | # CONFIG_BT is not set | 282 | # CONFIG_BT is not set |
241 | # CONFIG_IEEE80211 is not set | 283 | # CONFIG_IEEE80211 is not set |
284 | |||
285 | # | ||
286 | # UML Network Devices | ||
287 | # | ||
288 | CONFIG_UML_NET=y | ||
289 | CONFIG_UML_NET_ETHERTAP=y | ||
290 | CONFIG_UML_NET_TUNTAP=y | ||
291 | CONFIG_UML_NET_SLIP=y | ||
292 | CONFIG_UML_NET_DAEMON=y | ||
293 | CONFIG_UML_NET_MCAST=y | ||
294 | # CONFIG_UML_NET_PCAP is not set | ||
295 | CONFIG_UML_NET_SLIRP=y | ||
296 | |||
297 | # | ||
298 | # Network device support | ||
299 | # | ||
300 | CONFIG_NETDEVICES=y | ||
242 | CONFIG_DUMMY=m | 301 | CONFIG_DUMMY=m |
243 | # CONFIG_BONDING is not set | 302 | # CONFIG_BONDING is not set |
244 | # CONFIG_EQUALIZER is not set | 303 | # CONFIG_EQUALIZER is not set |
245 | CONFIG_TUN=m | 304 | CONFIG_TUN=m |
246 | 305 | ||
247 | # | 306 | # |
307 | # PHY device support | ||
308 | # | ||
309 | |||
310 | # | ||
311 | # Wireless LAN (non-hamradio) | ||
312 | # | ||
313 | # CONFIG_NET_RADIO is not set | ||
314 | |||
315 | # | ||
248 | # Wan interfaces | 316 | # Wan interfaces |
249 | # | 317 | # |
250 | # CONFIG_WAN is not set | 318 | # CONFIG_WAN is not set |
@@ -263,6 +331,13 @@ CONFIG_SLIP=m | |||
263 | # CONFIG_SLIP_MODE_SLIP6 is not set | 331 | # CONFIG_SLIP_MODE_SLIP6 is not set |
264 | # CONFIG_SHAPER is not set | 332 | # CONFIG_SHAPER is not set |
265 | # CONFIG_NETCONSOLE is not set | 333 | # CONFIG_NETCONSOLE is not set |
334 | # CONFIG_NETPOLL is not set | ||
335 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
336 | |||
337 | # | ||
338 | # Connector - unified userspace <-> kernelspace linker | ||
339 | # | ||
340 | # CONFIG_CONNECTOR is not set | ||
266 | 341 | ||
267 | # | 342 | # |
268 | # File systems | 343 | # File systems |
@@ -274,17 +349,14 @@ CONFIG_EXT3_FS=y | |||
274 | # CONFIG_EXT3_FS_XATTR is not set | 349 | # CONFIG_EXT3_FS_XATTR is not set |
275 | CONFIG_JBD=y | 350 | CONFIG_JBD=y |
276 | # CONFIG_JBD_DEBUG is not set | 351 | # CONFIG_JBD_DEBUG is not set |
277 | # CONFIG_REISER4_FS is not set | ||
278 | CONFIG_REISERFS_FS=y | 352 | CONFIG_REISERFS_FS=y |
279 | # CONFIG_REISERFS_CHECK is not set | 353 | # CONFIG_REISERFS_CHECK is not set |
280 | # CONFIG_REISERFS_PROC_INFO is not set | 354 | # CONFIG_REISERFS_PROC_INFO is not set |
281 | # CONFIG_REISERFS_FS_XATTR is not set | 355 | # CONFIG_REISERFS_FS_XATTR is not set |
282 | # CONFIG_JFS_FS is not set | 356 | # CONFIG_JFS_FS is not set |
283 | 357 | # CONFIG_FS_POSIX_ACL is not set | |
284 | # | ||
285 | # XFS support | ||
286 | # | ||
287 | # CONFIG_XFS_FS is not set | 358 | # CONFIG_XFS_FS is not set |
359 | # CONFIG_OCFS2_FS is not set | ||
288 | # CONFIG_MINIX_FS is not set | 360 | # CONFIG_MINIX_FS is not set |
289 | # CONFIG_ROMFS_FS is not set | 361 | # CONFIG_ROMFS_FS is not set |
290 | CONFIG_INOTIFY=y | 362 | CONFIG_INOTIFY=y |
@@ -295,11 +367,6 @@ CONFIG_QUOTACTL=y | |||
295 | CONFIG_DNOTIFY=y | 367 | CONFIG_DNOTIFY=y |
296 | CONFIG_AUTOFS_FS=m | 368 | CONFIG_AUTOFS_FS=m |
297 | CONFIG_AUTOFS4_FS=m | 369 | CONFIG_AUTOFS4_FS=m |
298 | |||
299 | # | ||
300 | # Caches | ||
301 | # | ||
302 | # CONFIG_FSCACHE is not set | ||
303 | # CONFIG_FUSE_FS is not set | 370 | # CONFIG_FUSE_FS is not set |
304 | 371 | ||
305 | # | 372 | # |
@@ -323,14 +390,10 @@ CONFIG_JOLIET=y | |||
323 | CONFIG_PROC_FS=y | 390 | CONFIG_PROC_FS=y |
324 | CONFIG_PROC_KCORE=y | 391 | CONFIG_PROC_KCORE=y |
325 | CONFIG_SYSFS=y | 392 | CONFIG_SYSFS=y |
326 | # CONFIG_DEVFS_FS is not set | ||
327 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
328 | CONFIG_TMPFS=y | 393 | CONFIG_TMPFS=y |
329 | # CONFIG_TMPFS_XATTR is not set | ||
330 | # CONFIG_HUGETLB_PAGE is not set | 394 | # CONFIG_HUGETLB_PAGE is not set |
331 | CONFIG_RAMFS=y | 395 | CONFIG_RAMFS=y |
332 | # CONFIG_CONFIGFS_FS is not set | 396 | # CONFIG_CONFIGFS_FS is not set |
333 | # CONFIG_RELAYFS_FS is not set | ||
334 | 397 | ||
335 | # | 398 | # |
336 | # Miscellaneous filesystems | 399 | # Miscellaneous filesystems |
@@ -430,6 +493,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
430 | # Library routines | 493 | # Library routines |
431 | # | 494 | # |
432 | # CONFIG_CRC_CCITT is not set | 495 | # CONFIG_CRC_CCITT is not set |
496 | # CONFIG_CRC16 is not set | ||
433 | CONFIG_CRC32=m | 497 | CONFIG_CRC32=m |
434 | # CONFIG_LIBCRC32C is not set | 498 | # CONFIG_LIBCRC32C is not set |
435 | 499 | ||
@@ -448,12 +512,18 @@ CONFIG_LOG_BUF_SHIFT=14 | |||
448 | CONFIG_DETECT_SOFTLOCKUP=y | 512 | CONFIG_DETECT_SOFTLOCKUP=y |
449 | # CONFIG_SCHEDSTATS is not set | 513 | # CONFIG_SCHEDSTATS is not set |
450 | CONFIG_DEBUG_SLAB=y | 514 | CONFIG_DEBUG_SLAB=y |
515 | # CONFIG_DEBUG_SLAB_LEAK is not set | ||
516 | # CONFIG_DEBUG_MUTEXES is not set | ||
451 | # CONFIG_DEBUG_SPINLOCK is not set | 517 | # CONFIG_DEBUG_SPINLOCK is not set |
452 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 518 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
453 | # CONFIG_DEBUG_KOBJECT is not set | 519 | # CONFIG_DEBUG_KOBJECT is not set |
454 | CONFIG_DEBUG_INFO=y | 520 | CONFIG_DEBUG_INFO=y |
455 | # CONFIG_DEBUG_FS is not set | 521 | # CONFIG_DEBUG_FS is not set |
522 | # CONFIG_DEBUG_VM is not set | ||
456 | CONFIG_FRAME_POINTER=y | 523 | CONFIG_FRAME_POINTER=y |
524 | # CONFIG_UNWIND_INFO is not set | ||
525 | CONFIG_FORCED_INLINING=y | ||
526 | # CONFIG_RCU_TORTURE_TEST is not set | ||
457 | # CONFIG_GPROF is not set | 527 | # CONFIG_GPROF is not set |
458 | # CONFIG_GCOV is not set | 528 | # CONFIG_GCOV is not set |
459 | # CONFIG_SYSCALL_DEBUG is not set | 529 | # CONFIG_SYSCALL_DEBUG is not set |
diff --git a/arch/um/drivers/cow_user.c b/arch/um/drivers/cow_user.c index 6ab852bfcd3a..0ec4052db9c5 100644 --- a/arch/um/drivers/cow_user.c +++ b/arch/um/drivers/cow_user.c | |||
@@ -100,7 +100,7 @@ struct cow_header_v3_broken { | |||
100 | __u32 alignment; | 100 | __u32 alignment; |
101 | __u32 cow_format; | 101 | __u32 cow_format; |
102 | char backing_file[PATH_LEN_V3]; | 102 | char backing_file[PATH_LEN_V3]; |
103 | } __attribute__((packed)); | 103 | }; |
104 | 104 | ||
105 | /* COW format definitions - for now, we have only the usual COW bitmap */ | 105 | /* COW format definitions - for now, we have only the usual COW bitmap */ |
106 | #define COW_BITMAP 0 | 106 | #define COW_BITMAP 0 |
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index c39ea3abeda4..2ffda012385e 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
@@ -89,16 +89,18 @@ void sigio_handler(int sig, union uml_pt_regs *regs) | |||
89 | struct irq_fd *irq_fd; | 89 | struct irq_fd *irq_fd; |
90 | int n; | 90 | int n; |
91 | 91 | ||
92 | if(smp_sigio_handler()) return; | 92 | if (smp_sigio_handler()) |
93 | while(1){ | 93 | return; |
94 | |||
95 | while (1) { | ||
94 | n = os_waiting_for_events(active_fds); | 96 | n = os_waiting_for_events(active_fds); |
95 | if (n <= 0) { | 97 | if (n <= 0) { |
96 | if(n == -EINTR) continue; | 98 | if(n == -EINTR) continue; |
97 | else break; | 99 | else break; |
98 | } | 100 | } |
99 | 101 | ||
100 | for(irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next){ | 102 | for (irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next) { |
101 | if(irq_fd->current_events != 0){ | 103 | if (irq_fd->current_events != 0) { |
102 | irq_fd->current_events = 0; | 104 | irq_fd->current_events = 0; |
103 | do_IRQ(irq_fd->irq, regs); | 105 | do_IRQ(irq_fd->irq, regs); |
104 | } | 106 | } |
@@ -110,19 +112,17 @@ void sigio_handler(int sig, union uml_pt_regs *regs) | |||
110 | 112 | ||
111 | static void maybe_sigio_broken(int fd, int type) | 113 | static void maybe_sigio_broken(int fd, int type) |
112 | { | 114 | { |
113 | if(os_isatty(fd)){ | 115 | if (os_isatty(fd)) { |
114 | if((type == IRQ_WRITE) && !pty_output_sigio){ | 116 | if ((type == IRQ_WRITE) && !pty_output_sigio) { |
115 | write_sigio_workaround(); | 117 | write_sigio_workaround(); |
116 | add_sigio_fd(fd, 0); | 118 | add_sigio_fd(fd, 0); |
117 | } | 119 | } else if ((type == IRQ_READ) && !pty_close_sigio) { |
118 | else if((type == IRQ_READ) && !pty_close_sigio){ | ||
119 | write_sigio_workaround(); | 120 | write_sigio_workaround(); |
120 | add_sigio_fd(fd, 1); | 121 | add_sigio_fd(fd, 1); |
121 | } | 122 | } |
122 | } | 123 | } |
123 | } | 124 | } |
124 | 125 | ||
125 | |||
126 | int activate_fd(int irq, int fd, int type, void *dev_id) | 126 | int activate_fd(int irq, int fd, int type, void *dev_id) |
127 | { | 127 | { |
128 | struct pollfd *tmp_pfd; | 128 | struct pollfd *tmp_pfd; |
@@ -132,16 +132,18 @@ int activate_fd(int irq, int fd, int type, void *dev_id) | |||
132 | 132 | ||
133 | pid = os_getpid(); | 133 | pid = os_getpid(); |
134 | err = os_set_fd_async(fd, pid); | 134 | err = os_set_fd_async(fd, pid); |
135 | if(err < 0) | 135 | if (err < 0) |
136 | goto out; | 136 | goto out; |
137 | 137 | ||
138 | new_fd = um_kmalloc(sizeof(*new_fd)); | 138 | new_fd = um_kmalloc(sizeof(*new_fd)); |
139 | err = -ENOMEM; | 139 | err = -ENOMEM; |
140 | if(new_fd == NULL) | 140 | if (new_fd == NULL) |
141 | goto out; | 141 | goto out; |
142 | 142 | ||
143 | if(type == IRQ_READ) events = UM_POLLIN | UM_POLLPRI; | 143 | if (type == IRQ_READ) |
144 | else events = UM_POLLOUT; | 144 | events = UM_POLLIN | UM_POLLPRI; |
145 | else | ||
146 | events = UM_POLLOUT; | ||
145 | *new_fd = ((struct irq_fd) { .next = NULL, | 147 | *new_fd = ((struct irq_fd) { .next = NULL, |
146 | .id = dev_id, | 148 | .id = dev_id, |
147 | .fd = fd, | 149 | .fd = fd, |
@@ -165,8 +167,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id) | |||
165 | * a semaphore. | 167 | * a semaphore. |
166 | */ | 168 | */ |
167 | flags = irq_lock(); | 169 | flags = irq_lock(); |
168 | for(irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next){ | 170 | for (irq_fd = active_fds; irq_fd != NULL; irq_fd = irq_fd->next) { |
169 | if((irq_fd->fd == fd) && (irq_fd->type == type)){ | 171 | if ((irq_fd->fd == fd) && (irq_fd->type == type)) { |
170 | printk("Registering fd %d twice\n", fd); | 172 | printk("Registering fd %d twice\n", fd); |
171 | printk("Irqs : %d, %d\n", irq_fd->irq, irq); | 173 | printk("Irqs : %d, %d\n", irq_fd->irq, irq); |
172 | printk("Ids : 0x%p, 0x%p\n", irq_fd->id, dev_id); | 174 | printk("Ids : 0x%p, 0x%p\n", irq_fd->id, dev_id); |
@@ -175,13 +177,13 @@ int activate_fd(int irq, int fd, int type, void *dev_id) | |||
175 | } | 177 | } |
176 | 178 | ||
177 | /*-------------*/ | 179 | /*-------------*/ |
178 | if(type == IRQ_WRITE) | 180 | if (type == IRQ_WRITE) |
179 | fd = -1; | 181 | fd = -1; |
180 | 182 | ||
181 | tmp_pfd = NULL; | 183 | tmp_pfd = NULL; |
182 | n = 0; | 184 | n = 0; |
183 | 185 | ||
184 | while(1){ | 186 | while (1) { |
185 | n = os_create_pollfd(fd, events, tmp_pfd, n); | 187 | n = os_create_pollfd(fd, events, tmp_pfd, n); |
186 | if (n == 0) | 188 | if (n == 0) |
187 | break; | 189 | break; |
@@ -198,10 +200,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id) | |||
198 | * then we free the buffer tmp_fds and try again. | 200 | * then we free the buffer tmp_fds and try again. |
199 | */ | 201 | */ |
200 | irq_unlock(flags); | 202 | irq_unlock(flags); |
201 | if (tmp_pfd != NULL) { | 203 | kfree(tmp_pfd); |
202 | kfree(tmp_pfd); | 204 | tmp_pfd = NULL; |
203 | tmp_pfd = NULL; | ||
204 | } | ||
205 | 205 | ||
206 | tmp_pfd = um_kmalloc(n); | 206 | tmp_pfd = um_kmalloc(n); |
207 | if (tmp_pfd == NULL) | 207 | if (tmp_pfd == NULL) |
@@ -249,7 +249,7 @@ static int same_irq_and_dev(struct irq_fd *irq, void *d) | |||
249 | { | 249 | { |
250 | struct irq_and_dev *data = d; | 250 | struct irq_and_dev *data = d; |
251 | 251 | ||
252 | return((irq->irq == data->irq) && (irq->id == data->dev)); | 252 | return ((irq->irq == data->irq) && (irq->id == data->dev)); |
253 | } | 253 | } |
254 | 254 | ||
255 | void free_irq_by_irq_and_dev(unsigned int irq, void *dev) | 255 | void free_irq_by_irq_and_dev(unsigned int irq, void *dev) |
@@ -262,7 +262,7 @@ void free_irq_by_irq_and_dev(unsigned int irq, void *dev) | |||
262 | 262 | ||
263 | static int same_fd(struct irq_fd *irq, void *fd) | 263 | static int same_fd(struct irq_fd *irq, void *fd) |
264 | { | 264 | { |
265 | return(irq->fd == *((int *) fd)); | 265 | return (irq->fd == *((int *)fd)); |
266 | } | 266 | } |
267 | 267 | ||
268 | void free_irq_by_fd(int fd) | 268 | void free_irq_by_fd(int fd) |
@@ -276,16 +276,17 @@ static struct irq_fd *find_irq_by_fd(int fd, int irqnum, int *index_out) | |||
276 | int i = 0; | 276 | int i = 0; |
277 | int fdi; | 277 | int fdi; |
278 | 278 | ||
279 | for(irq=active_fds; irq != NULL; irq = irq->next){ | 279 | for (irq = active_fds; irq != NULL; irq = irq->next) { |
280 | if((irq->fd == fd) && (irq->irq == irqnum)) break; | 280 | if ((irq->fd == fd) && (irq->irq == irqnum)) |
281 | break; | ||
281 | i++; | 282 | i++; |
282 | } | 283 | } |
283 | if(irq == NULL){ | 284 | if (irq == NULL) { |
284 | printk("find_irq_by_fd doesn't have descriptor %d\n", fd); | 285 | printk("find_irq_by_fd doesn't have descriptor %d\n", fd); |
285 | goto out; | 286 | goto out; |
286 | } | 287 | } |
287 | fdi = os_get_pollfd(i); | 288 | fdi = os_get_pollfd(i); |
288 | if((fdi != -1) && (fdi != fd)){ | 289 | if ((fdi != -1) && (fdi != fd)) { |
289 | printk("find_irq_by_fd - mismatch between active_fds and " | 290 | printk("find_irq_by_fd - mismatch between active_fds and " |
290 | "pollfds, fd %d vs %d, need %d\n", irq->fd, | 291 | "pollfds, fd %d vs %d, need %d\n", irq->fd, |
291 | fdi, fd); | 292 | fdi, fd); |
@@ -294,7 +295,7 @@ static struct irq_fd *find_irq_by_fd(int fd, int irqnum, int *index_out) | |||
294 | } | 295 | } |
295 | *index_out = i; | 296 | *index_out = i; |
296 | out: | 297 | out: |
297 | return(irq); | 298 | return irq; |
298 | } | 299 | } |
299 | 300 | ||
300 | void reactivate_fd(int fd, int irqnum) | 301 | void reactivate_fd(int fd, int irqnum) |
@@ -305,7 +306,7 @@ void reactivate_fd(int fd, int irqnum) | |||
305 | 306 | ||
306 | flags = irq_lock(); | 307 | flags = irq_lock(); |
307 | irq = find_irq_by_fd(fd, irqnum, &i); | 308 | irq = find_irq_by_fd(fd, irqnum, &i); |
308 | if(irq == NULL){ | 309 | if (irq == NULL) { |
309 | irq_unlock(flags); | 310 | irq_unlock(flags); |
310 | return; | 311 | return; |
311 | } | 312 | } |
@@ -326,7 +327,7 @@ void deactivate_fd(int fd, int irqnum) | |||
326 | 327 | ||
327 | flags = irq_lock(); | 328 | flags = irq_lock(); |
328 | irq = find_irq_by_fd(fd, irqnum, &i); | 329 | irq = find_irq_by_fd(fd, irqnum, &i); |
329 | if(irq == NULL) | 330 | if (irq == NULL) |
330 | goto out; | 331 | goto out; |
331 | os_set_pollfd(i, -1); | 332 | os_set_pollfd(i, -1); |
332 | out: | 333 | out: |
@@ -338,15 +339,15 @@ int deactivate_all_fds(void) | |||
338 | struct irq_fd *irq; | 339 | struct irq_fd *irq; |
339 | int err; | 340 | int err; |
340 | 341 | ||
341 | for(irq=active_fds;irq != NULL;irq = irq->next){ | 342 | for (irq = active_fds; irq != NULL; irq = irq->next) { |
342 | err = os_clear_fd_async(irq->fd); | 343 | err = os_clear_fd_async(irq->fd); |
343 | if(err) | 344 | if (err) |
344 | return(err); | 345 | return err; |
345 | } | 346 | } |
346 | /* If there is a signal already queued, after unblocking ignore it */ | 347 | /* If there is a signal already queued, after unblocking ignore it */ |
347 | os_set_ioignore(); | 348 | os_set_ioignore(); |
348 | 349 | ||
349 | return(0); | 350 | return 0; |
350 | } | 351 | } |
351 | 352 | ||
352 | void forward_interrupts(int pid) | 353 | void forward_interrupts(int pid) |
@@ -356,9 +357,9 @@ void forward_interrupts(int pid) | |||
356 | int err; | 357 | int err; |
357 | 358 | ||
358 | flags = irq_lock(); | 359 | flags = irq_lock(); |
359 | for(irq=active_fds;irq != NULL;irq = irq->next){ | 360 | for (irq = active_fds; irq != NULL; irq = irq->next) { |
360 | err = os_set_owner(irq->fd, pid); | 361 | err = os_set_owner(irq->fd, pid); |
361 | if(err < 0){ | 362 | if (err < 0) { |
362 | /* XXX Just remove the irq rather than | 363 | /* XXX Just remove the irq rather than |
363 | * print out an infinite stream of these | 364 | * print out an infinite stream of these |
364 | */ | 365 | */ |
@@ -379,7 +380,7 @@ void forward_interrupts(int pid) | |||
379 | unsigned int do_IRQ(int irq, union uml_pt_regs *regs) | 380 | unsigned int do_IRQ(int irq, union uml_pt_regs *regs) |
380 | { | 381 | { |
381 | irq_enter(); | 382 | irq_enter(); |
382 | __do_IRQ(irq, (struct pt_regs *) regs); | 383 | __do_IRQ(irq, (struct pt_regs *)regs); |
383 | irq_exit(); | 384 | irq_exit(); |
384 | return 1; | 385 | return 1; |
385 | } | 386 | } |
@@ -392,12 +393,12 @@ int um_request_irq(unsigned int irq, int fd, int type, | |||
392 | int err; | 393 | int err; |
393 | 394 | ||
394 | err = request_irq(irq, handler, irqflags, devname, dev_id); | 395 | err = request_irq(irq, handler, irqflags, devname, dev_id); |
395 | if(err) | 396 | if (err) |
396 | return(err); | 397 | return err; |
397 | 398 | ||
398 | if(fd != -1) | 399 | if (fd != -1) |
399 | err = activate_fd(irq, fd, type, dev_id); | 400 | err = activate_fd(irq, fd, type, dev_id); |
400 | return(err); | 401 | return err; |
401 | } | 402 | } |
402 | EXPORT_SYMBOL(um_request_irq); | 403 | EXPORT_SYMBOL(um_request_irq); |
403 | EXPORT_SYMBOL(reactivate_fd); | 404 | EXPORT_SYMBOL(reactivate_fd); |
@@ -409,7 +410,7 @@ unsigned long irq_lock(void) | |||
409 | unsigned long flags; | 410 | unsigned long flags; |
410 | 411 | ||
411 | spin_lock_irqsave(&irq_spinlock, flags); | 412 | spin_lock_irqsave(&irq_spinlock, flags); |
412 | return(flags); | 413 | return flags; |
413 | } | 414 | } |
414 | 415 | ||
415 | void irq_unlock(unsigned long flags) | 416 | void irq_unlock(unsigned long flags) |
@@ -452,7 +453,7 @@ void __init init_IRQ(void) | |||
452 | irq_desc[TIMER_IRQ].depth = 1; | 453 | irq_desc[TIMER_IRQ].depth = 1; |
453 | irq_desc[TIMER_IRQ].handler = &SIGVTALRM_irq_type; | 454 | irq_desc[TIMER_IRQ].handler = &SIGVTALRM_irq_type; |
454 | enable_irq(TIMER_IRQ); | 455 | enable_irq(TIMER_IRQ); |
455 | for(i=1;i<NR_IRQS;i++){ | 456 | for (i = 1; i < NR_IRQS; i++) { |
456 | irq_desc[i].status = IRQ_DISABLED; | 457 | irq_desc[i].status = IRQ_DISABLED; |
457 | irq_desc[i].action = NULL; | 458 | irq_desc[i].action = NULL; |
458 | irq_desc[i].depth = 1; | 459 | irq_desc[i].depth = 1; |
@@ -467,7 +468,7 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *, | |||
467 | int fds[2], err; | 468 | int fds[2], err; |
468 | 469 | ||
469 | err = os_pipe(fds, 1, 1); | 470 | err = os_pipe(fds, 1, 1); |
470 | if(err){ | 471 | if (err) { |
471 | printk("init_aio_irq - os_pipe failed, err = %d\n", -err); | 472 | printk("init_aio_irq - os_pipe failed, err = %d\n", -err); |
472 | goto out; | 473 | goto out; |
473 | } | 474 | } |
@@ -475,7 +476,7 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *, | |||
475 | err = um_request_irq(irq, fds[0], IRQ_READ, handler, | 476 | err = um_request_irq(irq, fds[0], IRQ_READ, handler, |
476 | SA_INTERRUPT | SA_SAMPLE_RANDOM, name, | 477 | SA_INTERRUPT | SA_SAMPLE_RANDOM, name, |
477 | (void *) (long) fds[0]); | 478 | (void *) (long) fds[0]); |
478 | if(err){ | 479 | if (err) { |
479 | printk("init_aio_irq - : um_request_irq failed, err = %d\n", | 480 | printk("init_aio_irq - : um_request_irq failed, err = %d\n", |
480 | err); | 481 | err); |
481 | goto out_close; | 482 | goto out_close; |
@@ -488,5 +489,5 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *, | |||
488 | os_close_file(fds[0]); | 489 | os_close_file(fds[0]); |
489 | os_close_file(fds[1]); | 490 | os_close_file(fds[1]); |
490 | out: | 491 | out: |
491 | return(err); | 492 | return err; |
492 | } | 493 | } |
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c index 0500800df1c1..fc0f0b085ca7 100644 --- a/arch/um/kernel/physmem.c +++ b/arch/um/kernel/physmem.c | |||
@@ -407,6 +407,8 @@ unsigned long find_iomem(char *driver, unsigned long *len_out) | |||
407 | *len_out = region->size; | 407 | *len_out = region->size; |
408 | return(region->virt); | 408 | return(region->virt); |
409 | } | 409 | } |
410 | |||
411 | region = region->next; | ||
410 | } | 412 | } |
411 | 413 | ||
412 | return(0); | 414 | return(0); |
diff --git a/arch/um/kernel/ptrace.c b/arch/um/kernel/ptrace.c index 60d2eda995c1..9a77fb3c269d 100644 --- a/arch/um/kernel/ptrace.c +++ b/arch/um/kernel/ptrace.c | |||
@@ -275,15 +275,13 @@ void syscall_trace(union uml_pt_regs *regs, int entryexit) | |||
275 | 275 | ||
276 | if (unlikely(current->audit_context)) { | 276 | if (unlikely(current->audit_context)) { |
277 | if (!entryexit) | 277 | if (!entryexit) |
278 | audit_syscall_entry(current, | 278 | audit_syscall_entry(HOST_AUDIT_ARCH, |
279 | HOST_AUDIT_ARCH, | ||
280 | UPT_SYSCALL_NR(regs), | 279 | UPT_SYSCALL_NR(regs), |
281 | UPT_SYSCALL_ARG1(regs), | 280 | UPT_SYSCALL_ARG1(regs), |
282 | UPT_SYSCALL_ARG2(regs), | 281 | UPT_SYSCALL_ARG2(regs), |
283 | UPT_SYSCALL_ARG3(regs), | 282 | UPT_SYSCALL_ARG3(regs), |
284 | UPT_SYSCALL_ARG4(regs)); | 283 | UPT_SYSCALL_ARG4(regs)); |
285 | else audit_syscall_exit(current, | 284 | else audit_syscall_exit(AUDITSC_RESULT(UPT_SYSCALL_RET(regs)), |
286 | AUDITSC_RESULT(UPT_SYSCALL_RET(regs)), | ||
287 | UPT_SYSCALL_RET(regs)); | 285 | UPT_SYSCALL_RET(regs)); |
288 | } | 286 | } |
289 | 287 | ||
diff --git a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile index 57181a920d48..ea3a8e409a6e 100644 --- a/arch/um/kernel/skas/Makefile +++ b/arch/um/kernel/skas/Makefile | |||
@@ -6,9 +6,11 @@ | |||
6 | obj-y := clone.o exec_kern.o mem.o mmu.o process_kern.o \ | 6 | obj-y := clone.o exec_kern.o mem.o mmu.o process_kern.o \ |
7 | syscall.o tlb.o uaccess.o | 7 | syscall.o tlb.o uaccess.o |
8 | 8 | ||
9 | USER_OBJS := clone.o | 9 | # clone.o is in the stub, so it can't be built with profiling |
10 | # GCC hardened also auto-enables -fpic, but we need %ebx so it can't work -> | ||
11 | # disable it | ||
10 | 12 | ||
11 | include arch/um/scripts/Makefile.rules | 13 | CFLAGS_clone.o := $(CFLAGS_NO_HARDENING) |
14 | UNPROFILE_OBJS := clone.o | ||
12 | 15 | ||
13 | # clone.o is in the stub, so it can't be built with profiling | 16 | include arch/um/scripts/Makefile.rules |
14 | $(obj)/clone.o : c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS)) | ||
diff --git a/arch/um/kernel/time_kern.c b/arch/um/kernel/time_kern.c index 3c7626cdba4b..528cf623f8b4 100644 --- a/arch/um/kernel/time_kern.c +++ b/arch/um/kernel/time_kern.c | |||
@@ -209,4 +209,4 @@ int __init timer_init(void) | |||
209 | return(0); | 209 | return(0); |
210 | } | 210 | } |
211 | 211 | ||
212 | __initcall(timer_init); | 212 | arch_initcall(timer_init); |
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c index 3bd10deea280..09251338d99e 100644 --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c | |||
@@ -171,7 +171,7 @@ int os_sigio_async(int master, int slave) | |||
171 | 171 | ||
172 | flags = fcntl(master, F_GETFL); | 172 | flags = fcntl(master, F_GETFL); |
173 | if(flags < 0) | 173 | if(flags < 0) |
174 | return errno; | 174 | return -errno; |
175 | 175 | ||
176 | if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) || | 176 | if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) || |
177 | (fcntl(master, F_SETOWN, os_getpid()) < 0)) | 177 | (fcntl(master, F_SETOWN, os_getpid()) < 0)) |
diff --git a/arch/um/os-Linux/irq.c b/arch/um/os-Linux/irq.c index e599be423da1..3788d4568d33 100644 --- a/arch/um/os-Linux/irq.c +++ b/arch/um/os-Linux/irq.c | |||
@@ -29,21 +29,21 @@ int os_waiting_for_events(struct irq_fd *active_fds) | |||
29 | int i, n, err; | 29 | int i, n, err; |
30 | 30 | ||
31 | n = poll(pollfds, pollfds_num, 0); | 31 | n = poll(pollfds, pollfds_num, 0); |
32 | if(n < 0){ | 32 | if (n < 0) { |
33 | err = -errno; | 33 | err = -errno; |
34 | if(errno != EINTR) | 34 | if (errno != EINTR) |
35 | printk("sigio_handler: os_waiting_for_events:" | 35 | printk("sigio_handler: os_waiting_for_events:" |
36 | " poll returned %d, errno = %d\n", n, errno); | 36 | " poll returned %d, errno = %d\n", n, errno); |
37 | return err; | 37 | return err; |
38 | } | 38 | } |
39 | 39 | ||
40 | if(n == 0) | 40 | if (n == 0) |
41 | return 0; | 41 | return 0; |
42 | 42 | ||
43 | irq_fd = active_fds; | 43 | irq_fd = active_fds; |
44 | 44 | ||
45 | for(i = 0; i < pollfds_num; i++){ | 45 | for (i = 0; i < pollfds_num; i++) { |
46 | if(pollfds[i].revents != 0){ | 46 | if (pollfds[i].revents != 0) { |
47 | irq_fd->current_events = pollfds[i].revents; | 47 | irq_fd->current_events = pollfds[i].revents; |
48 | pollfds[i].fd = -1; | 48 | pollfds[i].fd = -1; |
49 | } | 49 | } |
@@ -54,7 +54,7 @@ int os_waiting_for_events(struct irq_fd *active_fds) | |||
54 | 54 | ||
55 | int os_isatty(int fd) | 55 | int os_isatty(int fd) |
56 | { | 56 | { |
57 | return(isatty(fd)); | 57 | return isatty(fd); |
58 | } | 58 | } |
59 | 59 | ||
60 | int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds) | 60 | int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds) |
@@ -65,7 +65,7 @@ int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds) | |||
65 | return((pollfds_size + 1) * sizeof(pollfds[0])); | 65 | return((pollfds_size + 1) * sizeof(pollfds[0])); |
66 | } | 66 | } |
67 | 67 | ||
68 | if(pollfds != NULL){ | 68 | if (pollfds != NULL) { |
69 | memcpy(tmp_pfd, pollfds, | 69 | memcpy(tmp_pfd, pollfds, |
70 | sizeof(pollfds[0]) * pollfds_size); | 70 | sizeof(pollfds[0]) * pollfds_size); |
71 | /* remove old pollfds */ | 71 | /* remove old pollfds */ |
@@ -73,18 +73,15 @@ int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds) | |||
73 | } | 73 | } |
74 | pollfds = tmp_pfd; | 74 | pollfds = tmp_pfd; |
75 | pollfds_size++; | 75 | pollfds_size++; |
76 | } else { | 76 | } else |
77 | /* remove not used tmp_pfd */ | 77 | kfree(tmp_pfd); /* remove not used tmp_pfd */ |
78 | if (tmp_pfd != NULL) | ||
79 | kfree(tmp_pfd); | ||
80 | } | ||
81 | 78 | ||
82 | pollfds[pollfds_num] = ((struct pollfd) { .fd = fd, | 79 | pollfds[pollfds_num] = ((struct pollfd) { .fd = fd, |
83 | .events = events, | 80 | .events = events, |
84 | .revents = 0 }); | 81 | .revents = 0 }); |
85 | pollfds_num++; | 82 | pollfds_num++; |
86 | 83 | ||
87 | return(0); | 84 | return 0; |
88 | } | 85 | } |
89 | 86 | ||
90 | void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg, | 87 | void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg, |
@@ -94,11 +91,11 @@ void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg, | |||
94 | int i = 0; | 91 | int i = 0; |
95 | 92 | ||
96 | prev = &active_fds; | 93 | prev = &active_fds; |
97 | while(*prev != NULL){ | 94 | while (*prev != NULL) { |
98 | if((*test)(*prev, arg)){ | 95 | if ((*test)(*prev, arg)) { |
99 | struct irq_fd *old_fd = *prev; | 96 | struct irq_fd *old_fd = *prev; |
100 | if((pollfds[i].fd != -1) && | 97 | if ((pollfds[i].fd != -1) && |
101 | (pollfds[i].fd != (*prev)->fd)){ | 98 | (pollfds[i].fd != (*prev)->fd)) { |
102 | printk("os_free_irq_by_cb - mismatch between " | 99 | printk("os_free_irq_by_cb - mismatch between " |
103 | "active_fds and pollfds, fd %d vs %d\n", | 100 | "active_fds and pollfds, fd %d vs %d\n", |
104 | (*prev)->fd, pollfds[i].fd); | 101 | (*prev)->fd, pollfds[i].fd); |
@@ -110,7 +107,6 @@ void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg, | |||
110 | /* This moves the *whole* array after pollfds[i] | 107 | /* This moves the *whole* array after pollfds[i] |
111 | * (though it doesn't spot as such)! | 108 | * (though it doesn't spot as such)! |
112 | */ | 109 | */ |
113 | |||
114 | memmove(&pollfds[i], &pollfds[i + 1], | 110 | memmove(&pollfds[i], &pollfds[i + 1], |
115 | (pollfds_num - i) * sizeof(pollfds[0])); | 111 | (pollfds_num - i) * sizeof(pollfds[0])); |
116 | if(*last_irq_ptr2 == &old_fd->next) | 112 | if(*last_irq_ptr2 == &old_fd->next) |
@@ -129,10 +125,9 @@ void os_free_irq_by_cb(int (*test)(struct irq_fd *, void *), void *arg, | |||
129 | return; | 125 | return; |
130 | } | 126 | } |
131 | 127 | ||
132 | |||
133 | int os_get_pollfd(int i) | 128 | int os_get_pollfd(int i) |
134 | { | 129 | { |
135 | return(pollfds[i].fd); | 130 | return pollfds[i].fd; |
136 | } | 131 | } |
137 | 132 | ||
138 | void os_set_pollfd(int i, int fd) | 133 | void os_set_pollfd(int i, int fd) |
@@ -151,8 +146,10 @@ void init_irq_signals(int on_sigstack) | |||
151 | int flags; | 146 | int flags; |
152 | 147 | ||
153 | flags = on_sigstack ? SA_ONSTACK : 0; | 148 | flags = on_sigstack ? SA_ONSTACK : 0; |
154 | if(timer_irq_inited) h = (__sighandler_t) alarm_handler; | 149 | if (timer_irq_inited) |
155 | else h = boot_timer_handler; | 150 | h = (__sighandler_t)alarm_handler; |
151 | else | ||
152 | h = boot_timer_handler; | ||
156 | 153 | ||
157 | set_handler(SIGVTALRM, h, flags | SA_RESTART, | 154 | set_handler(SIGVTALRM, h, flags | SA_RESTART, |
158 | SIGUSR1, SIGIO, SIGWINCH, SIGALRM, -1); | 155 | SIGUSR1, SIGIO, SIGWINCH, SIGALRM, -1); |
diff --git a/arch/um/os-Linux/main.c b/arch/um/os-Linux/main.c index 2878e89a674f..3a0ac38e978b 100644 --- a/arch/um/os-Linux/main.c +++ b/arch/um/os-Linux/main.c | |||
@@ -74,6 +74,34 @@ static void last_ditch_exit(int sig) | |||
74 | exit(1); | 74 | exit(1); |
75 | } | 75 | } |
76 | 76 | ||
77 | #define UML_LIB_PATH ":/usr/lib/uml" | ||
78 | |||
79 | static void setup_env_path(void) | ||
80 | { | ||
81 | char *new_path = NULL; | ||
82 | char *old_path = NULL; | ||
83 | int path_len = 0; | ||
84 | |||
85 | old_path = getenv("PATH"); | ||
86 | /* if no PATH variable is set or it has an empty value | ||
87 | * just use the default + /usr/lib/uml | ||
88 | */ | ||
89 | if (!old_path || (path_len = strlen(old_path)) == 0) { | ||
90 | putenv("PATH=:/bin:/usr/bin/" UML_LIB_PATH); | ||
91 | return; | ||
92 | } | ||
93 | |||
94 | /* append /usr/lib/uml to the existing path */ | ||
95 | path_len += strlen("PATH=" UML_LIB_PATH) + 1; | ||
96 | new_path = malloc(path_len); | ||
97 | if (!new_path) { | ||
98 | perror("coudn't malloc to set a new PATH"); | ||
99 | return; | ||
100 | } | ||
101 | snprintf(new_path, path_len, "PATH=%s" UML_LIB_PATH, old_path); | ||
102 | putenv(new_path); | ||
103 | } | ||
104 | |||
77 | extern int uml_exitcode; | 105 | extern int uml_exitcode; |
78 | 106 | ||
79 | extern void scan_elf_aux( char **envp); | 107 | extern void scan_elf_aux( char **envp); |
@@ -114,6 +142,8 @@ int main(int argc, char **argv, char **envp) | |||
114 | 142 | ||
115 | set_stklim(); | 143 | set_stklim(); |
116 | 144 | ||
145 | setup_env_path(); | ||
146 | |||
117 | new_argv = malloc((argc + 1) * sizeof(char *)); | 147 | new_argv = malloc((argc + 1) * sizeof(char *)); |
118 | if(new_argv == NULL){ | 148 | if(new_argv == NULL){ |
119 | perror("Mallocing argv"); | 149 | perror("Mallocing argv"); |
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c index 3505f44f8a25..233be2f4f8cb 100644 --- a/arch/um/os-Linux/process.c +++ b/arch/um/os-Linux/process.c | |||
@@ -206,29 +206,36 @@ int os_drop_memory(void *addr, int length) | |||
206 | int can_drop_memory(void) | 206 | int can_drop_memory(void) |
207 | { | 207 | { |
208 | void *addr; | 208 | void *addr; |
209 | int fd; | 209 | int fd, ok = 0; |
210 | 210 | ||
211 | printk("Checking host MADV_REMOVE support..."); | 211 | printk("Checking host MADV_REMOVE support..."); |
212 | fd = create_mem_file(UM_KERN_PAGE_SIZE); | 212 | fd = create_mem_file(UM_KERN_PAGE_SIZE); |
213 | if(fd < 0){ | 213 | if(fd < 0){ |
214 | printk("Creating test memory file failed, err = %d\n", -fd); | 214 | printk("Creating test memory file failed, err = %d\n", -fd); |
215 | return 0; | 215 | goto out; |
216 | } | 216 | } |
217 | 217 | ||
218 | addr = mmap64(NULL, UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE, | 218 | addr = mmap64(NULL, UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE, |
219 | MAP_SHARED, fd, 0); | 219 | MAP_SHARED, fd, 0); |
220 | if(addr == MAP_FAILED){ | 220 | if(addr == MAP_FAILED){ |
221 | printk("Mapping test memory file failed, err = %d\n", -errno); | 221 | printk("Mapping test memory file failed, err = %d\n", -errno); |
222 | return 0; | 222 | goto out_close; |
223 | } | 223 | } |
224 | 224 | ||
225 | if(madvise(addr, UM_KERN_PAGE_SIZE, MADV_REMOVE) != 0){ | 225 | if(madvise(addr, UM_KERN_PAGE_SIZE, MADV_REMOVE) != 0){ |
226 | printk("MADV_REMOVE failed, err = %d\n", -errno); | 226 | printk("MADV_REMOVE failed, err = %d\n", -errno); |
227 | return 0; | 227 | goto out_unmap; |
228 | } | 228 | } |
229 | 229 | ||
230 | printk("OK\n"); | 230 | printk("OK\n"); |
231 | return 1; | 231 | ok = 1; |
232 | |||
233 | out_unmap: | ||
234 | munmap(addr, UM_KERN_PAGE_SIZE); | ||
235 | out_close: | ||
236 | close(fd); | ||
237 | out: | ||
238 | return ok; | ||
232 | } | 239 | } |
233 | 240 | ||
234 | void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)) | 241 | void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int)) |
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index 0776bc18ca85..bd89c6b99d5d 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c | |||
@@ -344,12 +344,12 @@ int copy_context_skas0(unsigned long new_stack, int pid) | |||
344 | err = ptrace_setregs(pid, regs); | 344 | err = ptrace_setregs(pid, regs); |
345 | if(err < 0) | 345 | if(err < 0) |
346 | panic("copy_context_skas0 : PTRACE_SETREGS failed, " | 346 | panic("copy_context_skas0 : PTRACE_SETREGS failed, " |
347 | "pid = %d, errno = %d\n", pid, errno); | 347 | "pid = %d, errno = %d\n", pid, -err); |
348 | 348 | ||
349 | err = ptrace_setfpregs(pid, fp_regs); | 349 | err = ptrace_setfpregs(pid, fp_regs); |
350 | if(err < 0) | 350 | if(err < 0) |
351 | panic("copy_context_skas0 : PTRACE_SETFPREGS failed, " | 351 | panic("copy_context_skas0 : PTRACE_SETFPREGS failed, " |
352 | "pid = %d, errno = %d\n", pid, errno); | 352 | "pid = %d, errno = %d\n", pid, -err); |
353 | 353 | ||
354 | /* set a well known return code for detection of child write failure */ | 354 | /* set a well known return code for detection of child write failure */ |
355 | child_data->err = 12345678; | 355 | child_data->err = 12345678; |
@@ -362,7 +362,7 @@ int copy_context_skas0(unsigned long new_stack, int pid) | |||
362 | pid = data->err; | 362 | pid = data->err; |
363 | if(pid < 0) | 363 | if(pid < 0) |
364 | panic("copy_context_skas0 - stub-parent reports error %d\n", | 364 | panic("copy_context_skas0 - stub-parent reports error %d\n", |
365 | pid); | 365 | -pid); |
366 | 366 | ||
367 | /* Wait, until child has finished too: read child's result from | 367 | /* Wait, until child has finished too: read child's result from |
368 | * child's stack and check it. | 368 | * child's stack and check it. |
diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c index 7a6f6b99ceff..516f66dd87e3 100644 --- a/arch/um/os-Linux/sys-i386/registers.c +++ b/arch/um/os-Linux/sys-i386/registers.c | |||
@@ -104,7 +104,7 @@ void init_registers(int pid) | |||
104 | err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); | 104 | err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); |
105 | if(err) | 105 | if(err) |
106 | panic("check_ptrace : PTRACE_GETREGS failed, errno = %d", | 106 | panic("check_ptrace : PTRACE_GETREGS failed, errno = %d", |
107 | err); | 107 | errno); |
108 | 108 | ||
109 | errno = 0; | 109 | errno = 0; |
110 | err = ptrace(PTRACE_GETFPXREGS, pid, 0, exec_fpx_regs); | 110 | err = ptrace(PTRACE_GETFPXREGS, pid, 0, exec_fpx_regs); |
@@ -119,7 +119,7 @@ void init_registers(int pid) | |||
119 | err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs); | 119 | err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs); |
120 | if(err) | 120 | if(err) |
121 | panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d", | 121 | panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d", |
122 | err); | 122 | errno); |
123 | } | 123 | } |
124 | 124 | ||
125 | void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) | 125 | void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) |
diff --git a/arch/um/os-Linux/sys-x86_64/registers.c b/arch/um/os-Linux/sys-x86_64/registers.c index 001941fa1a1e..becd898d9398 100644 --- a/arch/um/os-Linux/sys-x86_64/registers.c +++ b/arch/um/os-Linux/sys-x86_64/registers.c | |||
@@ -62,12 +62,12 @@ void init_registers(int pid) | |||
62 | err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); | 62 | err = ptrace(PTRACE_GETREGS, pid, 0, exec_regs); |
63 | if(err) | 63 | if(err) |
64 | panic("check_ptrace : PTRACE_GETREGS failed, errno = %d", | 64 | panic("check_ptrace : PTRACE_GETREGS failed, errno = %d", |
65 | err); | 65 | errno); |
66 | 66 | ||
67 | err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs); | 67 | err = ptrace(PTRACE_GETFPREGS, pid, 0, exec_fp_regs); |
68 | if(err) | 68 | if(err) |
69 | panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d", | 69 | panic("check_ptrace : PTRACE_GETFPREGS failed, errno = %d", |
70 | err); | 70 | errno); |
71 | } | 71 | } |
72 | 72 | ||
73 | void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) | 73 | void get_safe_registers(unsigned long *regs, unsigned long *fp_regs) |
diff --git a/arch/um/os-Linux/umid.c b/arch/um/os-Linux/umid.c index 34bfc1bb9e38..362db059fe30 100644 --- a/arch/um/os-Linux/umid.c +++ b/arch/um/os-Linux/umid.c | |||
@@ -178,14 +178,14 @@ static void __init create_pid_file(void) | |||
178 | fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644); | 178 | fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644); |
179 | if(fd < 0){ | 179 | if(fd < 0){ |
180 | printk("Open of machine pid file \"%s\" failed: %s\n", | 180 | printk("Open of machine pid file \"%s\" failed: %s\n", |
181 | file, strerror(-fd)); | 181 | file, strerror(errno)); |
182 | return; | 182 | return; |
183 | } | 183 | } |
184 | 184 | ||
185 | snprintf(pid, sizeof(pid), "%d\n", getpid()); | 185 | snprintf(pid, sizeof(pid), "%d\n", getpid()); |
186 | n = write(fd, pid, strlen(pid)); | 186 | n = write(fd, pid, strlen(pid)); |
187 | if(n != strlen(pid)) | 187 | if(n != strlen(pid)) |
188 | printk("Write of pid file failed - err = %d\n", -n); | 188 | printk("Write of pid file failed - err = %d\n", errno); |
189 | 189 | ||
190 | close(fd); | 190 | close(fd); |
191 | } | 191 | } |
diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c index 2598158e1f53..3f33165ada68 100644 --- a/arch/um/os-Linux/user_syms.c +++ b/arch/um/os-Linux/user_syms.c | |||
@@ -96,6 +96,13 @@ EXPORT_SYMBOL_PROTO(getuid); | |||
96 | EXPORT_SYMBOL_PROTO(fsync); | 96 | EXPORT_SYMBOL_PROTO(fsync); |
97 | EXPORT_SYMBOL_PROTO(fdatasync); | 97 | EXPORT_SYMBOL_PROTO(fdatasync); |
98 | 98 | ||
99 | /* Export symbols used by GCC for the stack protector. */ | ||
100 | extern void __stack_smash_handler(void *) __attribute__((weak)); | ||
101 | EXPORT_SYMBOL(__stack_smash_handler); | ||
102 | |||
103 | extern long __guard __attribute__((weak)); | ||
104 | EXPORT_SYMBOL(__guard); | ||
105 | |||
99 | /* | 106 | /* |
100 | * Overrides for Emacs so that we follow Linus's tabbing style. | 107 | * Overrides for Emacs so that we follow Linus's tabbing style. |
101 | * Emacs will notice this stuff at the end of the file and automatically | 108 | * Emacs will notice this stuff at the end of the file and automatically |
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules index 5e7a9c310aa5..1347dc6d5218 100644 --- a/arch/um/scripts/Makefile.rules +++ b/arch/um/scripts/Makefile.rules | |||
@@ -7,11 +7,19 @@ USER_SINGLE_OBJS := \ | |||
7 | USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) | 7 | USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) |
8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) | 8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) |
9 | 9 | ||
10 | $(USER_OBJS) $(USER_OBJS:.o=.i) $(USER_OBJS:.o=.s) $(USER_OBJS:.o=.lst): \ | 10 | $(USER_OBJS:.o=.%): \ |
11 | c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(notdir $@)) | 11 | c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(*F).o) |
12 | $(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ | 12 | $(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ |
13 | -Dunix -D__unix__ -D__$(SUBARCH)__ | 13 | -Dunix -D__unix__ -D__$(SUBARCH)__ |
14 | 14 | ||
15 | # These are like USER_OBJS but filter USER_CFLAGS through unprofile instead of | ||
16 | # using it directly. | ||
17 | UNPROFILE_OBJS := $(foreach file,$(UNPROFILE_OBJS),$(obj)/$(file)) | ||
18 | |||
19 | $(UNPROFILE_OBJS:.o=.%): \ | ||
20 | c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS)) $(CFLAGS_$(*F).o) | ||
21 | $(UNPROFILE_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ | ||
22 | -Dunix -D__unix__ -D__$(SUBARCH)__ | ||
15 | 23 | ||
16 | # The stubs and unmap.o can't try to call mcount or update basic block data | 24 | # The stubs and unmap.o can't try to call mcount or update basic block data |
17 | define unprofile | 25 | define unprofile |
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile index 98b20b7bba4f..374d61a19439 100644 --- a/arch/um/sys-i386/Makefile +++ b/arch/um/sys-i386/Makefile | |||
@@ -8,11 +8,16 @@ subarch-obj-y = lib/bitops.o kernel/semaphore.o | |||
8 | subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o | 8 | subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o |
9 | subarch-obj-$(CONFIG_MODULES) += kernel/module.o | 9 | subarch-obj-$(CONFIG_MODULES) += kernel/module.o |
10 | 10 | ||
11 | USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o stub_segv.o | 11 | USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o |
12 | 12 | ||
13 | include arch/um/scripts/Makefile.rules | 13 | USER_OBJS += user-offsets.s |
14 | extra-y += user-offsets.s | ||
14 | 15 | ||
15 | extra-$(CONFIG_MODE_TT) += unmap.o | 16 | extra-$(CONFIG_MODE_TT) += unmap.o |
16 | 17 | ||
17 | $(obj)/stub_segv.o $(obj)/unmap.o: \ | 18 | UNPROFILE_OBJS := stub_segv.o |
18 | _c_flags = $(call unprofile,$(CFLAGS)) | 19 | CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) |
20 | |||
21 | include arch/um/scripts/Makefile.rules | ||
22 | |||
23 | $(obj)/unmap.%: _c_flags = $(call unprofile,$(CFLAGS)) | ||
diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile index b5fc22babddf..c19794d435d6 100644 --- a/arch/um/sys-x86_64/Makefile +++ b/arch/um/sys-x86_64/Makefile | |||
@@ -16,11 +16,16 @@ subarch-obj-$(CONFIG_MODULES) += kernel/module.o | |||
16 | 16 | ||
17 | ldt-y = ../sys-i386/ldt.o | 17 | ldt-y = ../sys-i386/ldt.o |
18 | 18 | ||
19 | USER_OBJS := ptrace_user.o sigcontext.o stub_segv.o | 19 | USER_OBJS := ptrace_user.o sigcontext.o |
20 | 20 | ||
21 | include arch/um/scripts/Makefile.rules | 21 | USER_OBJS += user-offsets.s |
22 | extra-y += user-offsets.s | ||
22 | 23 | ||
23 | extra-$(CONFIG_MODE_TT) += unmap.o | 24 | extra-$(CONFIG_MODE_TT) += unmap.o |
24 | 25 | ||
25 | $(obj)/stub_segv.o $(obj)/unmap.o: \ | 26 | UNPROFILE_OBJS := stub_segv.o |
26 | _c_flags = $(call unprofile,$(CFLAGS)) | 27 | CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) |
28 | |||
29 | include arch/um/scripts/Makefile.rules | ||
30 | |||
31 | $(obj)/unmap.%: _c_flags = $(call unprofile,$(CFLAGS)) | ||
diff --git a/arch/x86_64/ia32/ia32entry.S b/arch/x86_64/ia32/ia32entry.S index 57fc37e0fb9c..5a92fed2d1d5 100644 --- a/arch/x86_64/ia32/ia32entry.S +++ b/arch/x86_64/ia32/ia32entry.S | |||
@@ -695,4 +695,5 @@ ia32_sys_call_table: | |||
695 | .quad sys_splice | 695 | .quad sys_splice |
696 | .quad sys_sync_file_range | 696 | .quad sys_sync_file_range |
697 | .quad sys_tee | 697 | .quad sys_tee |
698 | .quad compat_sys_vmsplice | ||
698 | ia32_syscall_end: | 699 | ia32_syscall_end: |
diff --git a/arch/x86_64/kernel/mce.c b/arch/x86_64/kernel/mce.c index 6f0790e8b6d3..c69fc43cee7b 100644 --- a/arch/x86_64/kernel/mce.c +++ b/arch/x86_64/kernel/mce.c | |||
@@ -629,7 +629,7 @@ static __cpuinit void mce_remove_device(unsigned int cpu) | |||
629 | #endif | 629 | #endif |
630 | 630 | ||
631 | /* Get notified when a cpu comes on/off. Be hotplug friendly. */ | 631 | /* Get notified when a cpu comes on/off. Be hotplug friendly. */ |
632 | static __cpuinit int | 632 | static int |
633 | mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | 633 | mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) |
634 | { | 634 | { |
635 | unsigned int cpu = (unsigned long)hcpu; | 635 | unsigned int cpu = (unsigned long)hcpu; |
diff --git a/arch/x86_64/kernel/mce_amd.c b/arch/x86_64/kernel/mce_amd.c index d3ad7d81266d..d13b241ad094 100644 --- a/arch/x86_64/kernel/mce_amd.c +++ b/arch/x86_64/kernel/mce_amd.c | |||
@@ -482,7 +482,7 @@ static void threshold_remove_device(unsigned int cpu) | |||
482 | #endif | 482 | #endif |
483 | 483 | ||
484 | /* get notified when a cpu comes on/off */ | 484 | /* get notified when a cpu comes on/off */ |
485 | static __cpuinit int threshold_cpu_callback(struct notifier_block *nfb, | 485 | static int threshold_cpu_callback(struct notifier_block *nfb, |
486 | unsigned long action, void *hcpu) | 486 | unsigned long action, void *hcpu) |
487 | { | 487 | { |
488 | /* cpu was unsigned int to begin with */ | 488 | /* cpu was unsigned int to begin with */ |
diff --git a/arch/x86_64/kernel/ptrace.c b/arch/x86_64/kernel/ptrace.c index da8e7903d817..2d50024c9f30 100644 --- a/arch/x86_64/kernel/ptrace.c +++ b/arch/x86_64/kernel/ptrace.c | |||
@@ -600,12 +600,12 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs) | |||
600 | 600 | ||
601 | if (unlikely(current->audit_context)) { | 601 | if (unlikely(current->audit_context)) { |
602 | if (test_thread_flag(TIF_IA32)) { | 602 | if (test_thread_flag(TIF_IA32)) { |
603 | audit_syscall_entry(current, AUDIT_ARCH_I386, | 603 | audit_syscall_entry(AUDIT_ARCH_I386, |
604 | regs->orig_rax, | 604 | regs->orig_rax, |
605 | regs->rbx, regs->rcx, | 605 | regs->rbx, regs->rcx, |
606 | regs->rdx, regs->rsi); | 606 | regs->rdx, regs->rsi); |
607 | } else { | 607 | } else { |
608 | audit_syscall_entry(current, AUDIT_ARCH_X86_64, | 608 | audit_syscall_entry(AUDIT_ARCH_X86_64, |
609 | regs->orig_rax, | 609 | regs->orig_rax, |
610 | regs->rdi, regs->rsi, | 610 | regs->rdi, regs->rsi, |
611 | regs->rdx, regs->r10); | 611 | regs->rdx, regs->r10); |
@@ -616,7 +616,7 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs) | |||
616 | asmlinkage void syscall_trace_leave(struct pt_regs *regs) | 616 | asmlinkage void syscall_trace_leave(struct pt_regs *regs) |
617 | { | 617 | { |
618 | if (unlikely(current->audit_context)) | 618 | if (unlikely(current->audit_context)) |
619 | audit_syscall_exit(current, AUDITSC_RESULT(regs->rax), regs->rax); | 619 | audit_syscall_exit(AUDITSC_RESULT(regs->rax), regs->rax); |
620 | 620 | ||
621 | if ((test_thread_flag(TIF_SYSCALL_TRACE) | 621 | if ((test_thread_flag(TIF_SYSCALL_TRACE) |
622 | || test_thread_flag(TIF_SINGLESTEP)) | 622 | || test_thread_flag(TIF_SINGLESTEP)) |
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index 759070c82751..ebc3c33b1c6c 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
@@ -1426,3 +1426,22 @@ struct seq_operations cpuinfo_op = { | |||
1426 | .show = show_cpuinfo, | 1426 | .show = show_cpuinfo, |
1427 | }; | 1427 | }; |
1428 | 1428 | ||
1429 | #ifdef CONFIG_INPUT_PCSPKR | ||
1430 | #include <linux/platform_device.h> | ||
1431 | static __init int add_pcspkr(void) | ||
1432 | { | ||
1433 | struct platform_device *pd; | ||
1434 | int ret; | ||
1435 | |||
1436 | pd = platform_device_alloc("pcspkr", -1); | ||
1437 | if (!pd) | ||
1438 | return -ENOMEM; | ||
1439 | |||
1440 | ret = platform_device_add(pd); | ||
1441 | if (ret) | ||
1442 | platform_device_put(pd); | ||
1443 | |||
1444 | return ret; | ||
1445 | } | ||
1446 | device_initcall(add_pcspkr); | ||
1447 | #endif | ||
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 1755c053fd68..e5041a02e21f 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -3385,7 +3385,7 @@ static int blk_cpu_notify(struct notifier_block *self, unsigned long action, | |||
3385 | } | 3385 | } |
3386 | 3386 | ||
3387 | 3387 | ||
3388 | static struct notifier_block __devinitdata blk_cpu_notifier = { | 3388 | static struct notifier_block blk_cpu_notifier = { |
3389 | .notifier_call = blk_cpu_notify, | 3389 | .notifier_call = blk_cpu_notify, |
3390 | }; | 3390 | }; |
3391 | 3391 | ||
diff --git a/drivers/Kconfig b/drivers/Kconfig index 5c91d6afb117..aeb5ab2391e4 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig | |||
@@ -68,8 +68,6 @@ source "drivers/leds/Kconfig" | |||
68 | 68 | ||
69 | source "drivers/infiniband/Kconfig" | 69 | source "drivers/infiniband/Kconfig" |
70 | 70 | ||
71 | source "drivers/sn/Kconfig" | ||
72 | |||
73 | source "drivers/edac/Kconfig" | 71 | source "drivers/edac/Kconfig" |
74 | 72 | ||
75 | source "drivers/rtc/Kconfig" | 73 | source "drivers/rtc/Kconfig" |
diff --git a/drivers/base/topology.c b/drivers/base/topology.c index 915810f6237e..8c52421cbc54 100644 --- a/drivers/base/topology.c +++ b/drivers/base/topology.c | |||
@@ -107,7 +107,7 @@ static int __cpuinit topology_remove_dev(struct sys_device * sys_dev) | |||
107 | return 0; | 107 | return 0; |
108 | } | 108 | } |
109 | 109 | ||
110 | static int __cpuinit topology_cpu_callback(struct notifier_block *nfb, | 110 | static int topology_cpu_callback(struct notifier_block *nfb, |
111 | unsigned long action, void *hcpu) | 111 | unsigned long action, void *hcpu) |
112 | { | 112 | { |
113 | unsigned int cpu = (unsigned long)hcpu; | 113 | unsigned int cpu = (unsigned long)hcpu; |
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index bedb689b051f..dff1e67b1dd4 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c | |||
@@ -4301,7 +4301,7 @@ static int __init floppy_init(void) | |||
4301 | } | 4301 | } |
4302 | 4302 | ||
4303 | use_virtual_dma = can_use_virtual_dma & 1; | 4303 | use_virtual_dma = can_use_virtual_dma & 1; |
4304 | #if defined(CONFIG_PPC64) | 4304 | #if defined(CONFIG_PPC_MERGE) |
4305 | if (check_legacy_ioport(FDC1)) { | 4305 | if (check_legacy_ioport(FDC1)) { |
4306 | del_timer(&fd_timeout); | 4306 | del_timer(&fd_timeout); |
4307 | err = -ENODEV; | 4307 | err = -ENODEV; |
diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c index d3a2bc36129b..588fca542a98 100644 --- a/drivers/char/genrtc.c +++ b/drivers/char/genrtc.c | |||
@@ -200,13 +200,13 @@ static ssize_t gen_rtc_read(struct file *file, char __user *buf, | |||
200 | /* first test allows optimizer to nuke this case for 32-bit machines */ | 200 | /* first test allows optimizer to nuke this case for 32-bit machines */ |
201 | if (sizeof (int) != sizeof (long) && count == sizeof (unsigned int)) { | 201 | if (sizeof (int) != sizeof (long) && count == sizeof (unsigned int)) { |
202 | unsigned int uidata = data; | 202 | unsigned int uidata = data; |
203 | retval = put_user(uidata, (unsigned long __user *)buf); | 203 | retval = put_user(uidata, (unsigned int __user *)buf) ?: |
204 | sizeof(unsigned int); | ||
204 | } | 205 | } |
205 | else { | 206 | else { |
206 | retval = put_user(data, (unsigned long __user *)buf); | 207 | retval = put_user(data, (unsigned long __user *)buf) ?: |
208 | sizeof(unsigned long); | ||
207 | } | 209 | } |
208 | if (!retval) | ||
209 | retval = sizeof(unsigned long); | ||
210 | out: | 210 | out: |
211 | current->state = TASK_RUNNING; | 211 | current->state = TASK_RUNNING; |
212 | remove_wait_queue(&gen_rtc_wait, &wait); | 212 | remove_wait_queue(&gen_rtc_wait, &wait); |
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c index 935670a3cd98..5755b7e5f187 100644 --- a/drivers/char/keyboard.c +++ b/drivers/char/keyboard.c | |||
@@ -860,9 +860,32 @@ static void k_slock(struct vc_data *vc, unsigned char value, char up_flag, struc | |||
860 | } | 860 | } |
861 | 861 | ||
862 | /* by default, 300ms interval for combination release */ | 862 | /* by default, 300ms interval for combination release */ |
863 | static long brl_timeout = 300; | 863 | static unsigned brl_timeout = 300; |
864 | MODULE_PARM_DESC(brl_timeout, "Braille keys release delay in ms (0 for combination on first release, < 0 for dead characters)"); | 864 | MODULE_PARM_DESC(brl_timeout, "Braille keys release delay in ms (0 for commit on first key release)"); |
865 | module_param(brl_timeout, long, 0644); | 865 | module_param(brl_timeout, uint, 0644); |
866 | |||
867 | static unsigned brl_nbchords = 1; | ||
868 | MODULE_PARM_DESC(brl_nbchords, "Number of chords that produce a braille pattern (0 for dead chords)"); | ||
869 | module_param(brl_nbchords, uint, 0644); | ||
870 | |||
871 | static void k_brlcommit(struct vc_data *vc, unsigned int pattern, char up_flag, struct pt_regs *regs) | ||
872 | { | ||
873 | static unsigned long chords; | ||
874 | static unsigned committed; | ||
875 | |||
876 | if (!brl_nbchords) | ||
877 | k_deadunicode(vc, BRL_UC_ROW | pattern, up_flag, regs); | ||
878 | else { | ||
879 | committed |= pattern; | ||
880 | chords++; | ||
881 | if (chords == brl_nbchords) { | ||
882 | k_unicode(vc, BRL_UC_ROW | committed, up_flag, regs); | ||
883 | chords = 0; | ||
884 | committed = 0; | ||
885 | } | ||
886 | } | ||
887 | } | ||
888 | |||
866 | static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) | 889 | static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) |
867 | { | 890 | { |
868 | static unsigned pressed,committing; | 891 | static unsigned pressed,committing; |
@@ -882,11 +905,6 @@ static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct | |||
882 | if (value > 8) | 905 | if (value > 8) |
883 | return; | 906 | return; |
884 | 907 | ||
885 | if (brl_timeout < 0) { | ||
886 | k_deadunicode(vc, BRL_UC_ROW | (1 << (value - 1)), up_flag, regs); | ||
887 | return; | ||
888 | } | ||
889 | |||
890 | if (up_flag) { | 908 | if (up_flag) { |
891 | if (brl_timeout) { | 909 | if (brl_timeout) { |
892 | if (!committing || | 910 | if (!committing || |
@@ -897,13 +915,13 @@ static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct | |||
897 | pressed &= ~(1 << (value - 1)); | 915 | pressed &= ~(1 << (value - 1)); |
898 | if (!pressed) { | 916 | if (!pressed) { |
899 | if (committing) { | 917 | if (committing) { |
900 | k_unicode(vc, BRL_UC_ROW | committing, 0, regs); | 918 | k_brlcommit(vc, committing, 0, regs); |
901 | committing = 0; | 919 | committing = 0; |
902 | } | 920 | } |
903 | } | 921 | } |
904 | } else { | 922 | } else { |
905 | if (committing) { | 923 | if (committing) { |
906 | k_unicode(vc, BRL_UC_ROW | committing, 0, regs); | 924 | k_brlcommit(vc, committing, 0, regs); |
907 | committing = 0; | 925 | committing = 0; |
908 | } | 926 | } |
909 | pressed &= ~(1 << (value - 1)); | 927 | pressed &= ~(1 << (value - 1)); |
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 66719f9d294c..1fa9fa157c12 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/crash_dump.h> | 27 | #include <linux/crash_dump.h> |
28 | #include <linux/backing-dev.h> | 28 | #include <linux/backing-dev.h> |
29 | #include <linux/bootmem.h> | 29 | #include <linux/bootmem.h> |
30 | #include <linux/pipe_fs_i.h> | ||
30 | 31 | ||
31 | #include <asm/uaccess.h> | 32 | #include <asm/uaccess.h> |
32 | #include <asm/io.h> | 33 | #include <asm/io.h> |
@@ -578,6 +579,18 @@ static ssize_t write_null(struct file * file, const char __user * buf, | |||
578 | return count; | 579 | return count; |
579 | } | 580 | } |
580 | 581 | ||
582 | static int pipe_to_null(struct pipe_inode_info *info, struct pipe_buffer *buf, | ||
583 | struct splice_desc *sd) | ||
584 | { | ||
585 | return sd->len; | ||
586 | } | ||
587 | |||
588 | static ssize_t splice_write_null(struct pipe_inode_info *pipe,struct file *out, | ||
589 | loff_t *ppos, size_t len, unsigned int flags) | ||
590 | { | ||
591 | return splice_from_pipe(pipe, out, ppos, len, flags, pipe_to_null); | ||
592 | } | ||
593 | |||
581 | #ifdef CONFIG_MMU | 594 | #ifdef CONFIG_MMU |
582 | /* | 595 | /* |
583 | * For fun, we are using the MMU for this. | 596 | * For fun, we are using the MMU for this. |
@@ -785,6 +798,7 @@ static struct file_operations null_fops = { | |||
785 | .llseek = null_lseek, | 798 | .llseek = null_lseek, |
786 | .read = read_null, | 799 | .read = read_null, |
787 | .write = write_null, | 800 | .write = write_null, |
801 | .splice_write = splice_write_null, | ||
788 | }; | 802 | }; |
789 | 803 | ||
790 | #if defined(CONFIG_ISA) || !defined(__mc68000__) | 804 | #if defined(CONFIG_ISA) || !defined(__mc68000__) |
diff --git a/drivers/char/mwave/mwavedd.c b/drivers/char/mwave/mwavedd.c index 8666171e187b..d3ba2f860ef0 100644 --- a/drivers/char/mwave/mwavedd.c +++ b/drivers/char/mwave/mwavedd.c | |||
@@ -271,7 +271,7 @@ static int mwave_ioctl(struct inode *inode, struct file *file, | |||
271 | ipcnum, | 271 | ipcnum, |
272 | pDrvData->IPCs[ipcnum].usIntCount); | 272 | pDrvData->IPCs[ipcnum].usIntCount); |
273 | 273 | ||
274 | if (ipcnum > ARRAY_SIZE(pDrvData->IPCs)) { | 274 | if (ipcnum >= ARRAY_SIZE(pDrvData->IPCs)) { |
275 | PRINTK_ERROR(KERN_ERR_MWAVE | 275 | PRINTK_ERROR(KERN_ERR_MWAVE |
276 | "mwavedd::mwave_ioctl:" | 276 | "mwavedd::mwave_ioctl:" |
277 | " IOCTL_MW_REGISTER_IPC:" | 277 | " IOCTL_MW_REGISTER_IPC:" |
diff --git a/drivers/char/tipar.c b/drivers/char/tipar.c index eb2eb3e12d6a..079db5a935a1 100644 --- a/drivers/char/tipar.c +++ b/drivers/char/tipar.c | |||
@@ -515,7 +515,7 @@ tipar_init_module(void) | |||
515 | err = PTR_ERR(tipar_class); | 515 | err = PTR_ERR(tipar_class); |
516 | goto out_chrdev; | 516 | goto out_chrdev; |
517 | } | 517 | } |
518 | if (parport_register_driver(&tipar_driver) || tp_count == 0) { | 518 | if (parport_register_driver(&tipar_driver)) { |
519 | printk(KERN_ERR "tipar: unable to register with parport\n"); | 519 | printk(KERN_ERR "tipar: unable to register with parport\n"); |
520 | err = -EIO; | 520 | err = -EIO; |
521 | goto out_class; | 521 | goto out_class; |
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 9759d05b1972..29b2fa5534ae 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -1497,7 +1497,7 @@ int cpufreq_update_policy(unsigned int cpu) | |||
1497 | } | 1497 | } |
1498 | EXPORT_SYMBOL(cpufreq_update_policy); | 1498 | EXPORT_SYMBOL(cpufreq_update_policy); |
1499 | 1499 | ||
1500 | static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb, | 1500 | static int cpufreq_cpu_callback(struct notifier_block *nfb, |
1501 | unsigned long action, void *hcpu) | 1501 | unsigned long action, void *hcpu) |
1502 | { | 1502 | { |
1503 | unsigned int cpu = (unsigned long)hcpu; | 1503 | unsigned int cpu = (unsigned long)hcpu; |
diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c index 66572c5323ad..fce31936e6d7 100644 --- a/drivers/edac/e752x_edac.c +++ b/drivers/edac/e752x_edac.c | |||
@@ -25,6 +25,8 @@ | |||
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include "edac_mc.h" | 26 | #include "edac_mc.h" |
27 | 27 | ||
28 | static int force_function_unhide; | ||
29 | |||
28 | #define e752x_printk(level, fmt, arg...) \ | 30 | #define e752x_printk(level, fmt, arg...) \ |
29 | edac_printk(level, "e752x", fmt, ##arg) | 31 | edac_printk(level, "e752x", fmt, ##arg) |
30 | 32 | ||
@@ -782,8 +784,16 @@ static int e752x_probe1(struct pci_dev *pdev, int dev_idx) | |||
782 | debugf0("%s(): mci\n", __func__); | 784 | debugf0("%s(): mci\n", __func__); |
783 | debugf0("Starting Probe1\n"); | 785 | debugf0("Starting Probe1\n"); |
784 | 786 | ||
785 | /* enable device 0 function 1 */ | 787 | /* check to see if device 0 function 1 is enabled; if it isn't, we |
788 | * assume the BIOS has reserved it for a reason and is expecting | ||
789 | * exclusive access, we take care not to violate that assumption and | ||
790 | * fail the probe. */ | ||
786 | pci_read_config_byte(pdev, E752X_DEVPRES1, &stat8); | 791 | pci_read_config_byte(pdev, E752X_DEVPRES1, &stat8); |
792 | if (!force_function_unhide && !(stat8 & (1 << 5))) { | ||
793 | printk(KERN_INFO "Contact your BIOS vendor to see if the " | ||
794 | "E752x error registers can be safely un-hidden\n"); | ||
795 | goto fail; | ||
796 | } | ||
787 | stat8 |= (1 << 5); | 797 | stat8 |= (1 << 5); |
788 | pci_write_config_byte(pdev, E752X_DEVPRES1, stat8); | 798 | pci_write_config_byte(pdev, E752X_DEVPRES1, stat8); |
789 | 799 | ||
@@ -1063,3 +1073,8 @@ module_exit(e752x_exit); | |||
1063 | MODULE_LICENSE("GPL"); | 1073 | MODULE_LICENSE("GPL"); |
1064 | MODULE_AUTHOR("Linux Networx (http://lnxi.com) Tom Zimmerman\n"); | 1074 | MODULE_AUTHOR("Linux Networx (http://lnxi.com) Tom Zimmerman\n"); |
1065 | MODULE_DESCRIPTION("MC support for Intel e752x memory controllers"); | 1075 | MODULE_DESCRIPTION("MC support for Intel e752x memory controllers"); |
1076 | |||
1077 | module_param(force_function_unhide, int, 0444); | ||
1078 | MODULE_PARM_DESC(force_function_unhide, "if BIOS sets Dev0:Fun1 up as hidden:" | ||
1079 | " 1=force unhide and hope BIOS doesn't fight driver for Dev0:Fun1 access"); | ||
1080 | |||
diff --git a/drivers/infiniband/hw/ipath/ipath_debug.h b/drivers/infiniband/hw/ipath/ipath_debug.h index 593e28969c69..46762387f5f8 100644 --- a/drivers/infiniband/hw/ipath/ipath_debug.h +++ b/drivers/infiniband/hw/ipath/ipath_debug.h | |||
@@ -60,11 +60,11 @@ | |||
60 | #define __IPATH_KERNEL_SEND 0x2000 /* use kernel mode send */ | 60 | #define __IPATH_KERNEL_SEND 0x2000 /* use kernel mode send */ |
61 | #define __IPATH_EPKTDBG 0x4000 /* print ethernet packet data */ | 61 | #define __IPATH_EPKTDBG 0x4000 /* print ethernet packet data */ |
62 | #define __IPATH_SMADBG 0x8000 /* sma packet debug */ | 62 | #define __IPATH_SMADBG 0x8000 /* sma packet debug */ |
63 | #define __IPATH_IPATHDBG 0x10000 /* Ethernet (IPATH) general debug on */ | 63 | #define __IPATH_IPATHDBG 0x10000 /* Ethernet (IPATH) gen debug */ |
64 | #define __IPATH_IPATHWARN 0x20000 /* Ethernet (IPATH) warnings on */ | 64 | #define __IPATH_IPATHWARN 0x20000 /* Ethernet (IPATH) warnings */ |
65 | #define __IPATH_IPATHERR 0x40000 /* Ethernet (IPATH) errors on */ | 65 | #define __IPATH_IPATHERR 0x40000 /* Ethernet (IPATH) errors */ |
66 | #define __IPATH_IPATHPD 0x80000 /* Ethernet (IPATH) packet dump on */ | 66 | #define __IPATH_IPATHPD 0x80000 /* Ethernet (IPATH) packet dump */ |
67 | #define __IPATH_IPATHTABLE 0x100000 /* Ethernet (IPATH) table dump on */ | 67 | #define __IPATH_IPATHTABLE 0x100000 /* Ethernet (IPATH) table dump */ |
68 | 68 | ||
69 | #else /* _IPATH_DEBUGGING */ | 69 | #else /* _IPATH_DEBUGGING */ |
70 | 70 | ||
@@ -79,11 +79,12 @@ | |||
79 | #define __IPATH_TRSAMPLE 0x0 /* generate trace buffer sample entries */ | 79 | #define __IPATH_TRSAMPLE 0x0 /* generate trace buffer sample entries */ |
80 | #define __IPATH_VERBDBG 0x0 /* very verbose debug */ | 80 | #define __IPATH_VERBDBG 0x0 /* very verbose debug */ |
81 | #define __IPATH_PKTDBG 0x0 /* print packet data */ | 81 | #define __IPATH_PKTDBG 0x0 /* print packet data */ |
82 | #define __IPATH_PROCDBG 0x0 /* print process startup (init)/exit messages */ | 82 | #define __IPATH_PROCDBG 0x0 /* process startup (init)/exit messages */ |
83 | /* print mmap/nopage stuff, not using VDBG any more */ | 83 | /* print mmap/nopage stuff, not using VDBG any more */ |
84 | #define __IPATH_MMDBG 0x0 | 84 | #define __IPATH_MMDBG 0x0 |
85 | #define __IPATH_EPKTDBG 0x0 /* print ethernet packet data */ | 85 | #define __IPATH_EPKTDBG 0x0 /* print ethernet packet data */ |
86 | #define __IPATH_SMADBG 0x0 /* print process startup (init)/exit messages */#define __IPATH_IPATHDBG 0x0 /* Ethernet (IPATH) table dump on */ | 86 | #define __IPATH_SMADBG 0x0 /* process startup (init)/exit messages */ |
87 | #define __IPATH_IPATHDBG 0x0 /* Ethernet (IPATH) table dump on */ | ||
87 | #define __IPATH_IPATHWARN 0x0 /* Ethernet (IPATH) warnings on */ | 88 | #define __IPATH_IPATHWARN 0x0 /* Ethernet (IPATH) warnings on */ |
88 | #define __IPATH_IPATHERR 0x0 /* Ethernet (IPATH) errors on */ | 89 | #define __IPATH_IPATHERR 0x0 /* Ethernet (IPATH) errors on */ |
89 | #define __IPATH_IPATHPD 0x0 /* Ethernet (IPATH) packet dump on */ | 90 | #define __IPATH_IPATHPD 0x0 /* Ethernet (IPATH) packet dump on */ |
diff --git a/drivers/infiniband/hw/ipath/ipath_diag.c b/drivers/infiniband/hw/ipath/ipath_diag.c index 7d3fb6996b41..28ddceb260e8 100644 --- a/drivers/infiniband/hw/ipath/ipath_diag.c +++ b/drivers/infiniband/hw/ipath/ipath_diag.c | |||
@@ -277,13 +277,14 @@ static int ipath_diag_open(struct inode *in, struct file *fp) | |||
277 | 277 | ||
278 | bail: | 278 | bail: |
279 | spin_unlock_irqrestore(&ipath_devs_lock, flags); | 279 | spin_unlock_irqrestore(&ipath_devs_lock, flags); |
280 | mutex_unlock(&ipath_mutex); | ||
281 | 280 | ||
282 | /* Only expose a way to reset the device if we | 281 | /* Only expose a way to reset the device if we |
283 | make it into diag mode. */ | 282 | make it into diag mode. */ |
284 | if (ret == 0) | 283 | if (ret == 0) |
285 | ipath_expose_reset(&dd->pcidev->dev); | 284 | ipath_expose_reset(&dd->pcidev->dev); |
286 | 285 | ||
286 | mutex_unlock(&ipath_mutex); | ||
287 | |||
287 | return ret; | 288 | return ret; |
288 | } | 289 | } |
289 | 290 | ||
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c index e7617c3982ea..398add4d4cb1 100644 --- a/drivers/infiniband/hw/ipath/ipath_driver.c +++ b/drivers/infiniband/hw/ipath/ipath_driver.c | |||
@@ -418,9 +418,19 @@ static int __devinit ipath_init_one(struct pci_dev *pdev, | |||
418 | 418 | ||
419 | ret = pci_set_dma_mask(pdev, DMA_64BIT_MASK); | 419 | ret = pci_set_dma_mask(pdev, DMA_64BIT_MASK); |
420 | if (ret) { | 420 | if (ret) { |
421 | dev_info(&pdev->dev, "pci_set_dma_mask unit %u " | 421 | /* |
422 | "fails: %d\n", dd->ipath_unit, ret); | 422 | * if the 64 bit setup fails, try 32 bit. Some systems |
423 | goto bail_regions; | 423 | * do not setup 64 bit maps on systems with 2GB or less |
424 | * memory installed. | ||
425 | */ | ||
426 | ret = pci_set_dma_mask(pdev, DMA_32BIT_MASK); | ||
427 | if (ret) { | ||
428 | dev_info(&pdev->dev, "pci_set_dma_mask unit %u " | ||
429 | "fails: %d\n", dd->ipath_unit, ret); | ||
430 | goto bail_regions; | ||
431 | } | ||
432 | else | ||
433 | ipath_dbg("No 64bit DMA mask, used 32 bit mask\n"); | ||
424 | } | 434 | } |
425 | 435 | ||
426 | pci_set_master(pdev); | 436 | pci_set_master(pdev); |
@@ -1949,7 +1959,7 @@ int ipath_reset_device(int unit) | |||
1949 | } | 1959 | } |
1950 | 1960 | ||
1951 | if (dd->ipath_pd) | 1961 | if (dd->ipath_pd) |
1952 | for (i = 1; i < dd->ipath_portcnt; i++) { | 1962 | for (i = 1; i < dd->ipath_cfgports; i++) { |
1953 | if (dd->ipath_pd[i] && dd->ipath_pd[i]->port_cnt) { | 1963 | if (dd->ipath_pd[i] && dd->ipath_pd[i]->port_cnt) { |
1954 | ipath_dbg("unit %u port %d is in use " | 1964 | ipath_dbg("unit %u port %d is in use " |
1955 | "(PID %u cmd %s), can't reset\n", | 1965 | "(PID %u cmd %s), can't reset\n", |
diff --git a/drivers/infiniband/hw/ipath/ipath_init_chip.c b/drivers/infiniband/hw/ipath/ipath_init_chip.c index 2823ff9c0c62..16f640e1c16e 100644 --- a/drivers/infiniband/hw/ipath/ipath_init_chip.c +++ b/drivers/infiniband/hw/ipath/ipath_init_chip.c | |||
@@ -53,13 +53,19 @@ MODULE_PARM_DESC(cfgports, "Set max number of ports to use"); | |||
53 | 53 | ||
54 | /* | 54 | /* |
55 | * Number of buffers reserved for driver (layered drivers and SMA | 55 | * Number of buffers reserved for driver (layered drivers and SMA |
56 | * send). Reserved at end of buffer list. | 56 | * send). Reserved at end of buffer list. Initialized based on |
57 | * number of PIO buffers if not set via module interface. | ||
58 | * The problem with this is that it's global, but we'll use different | ||
59 | * numbers for different chip types. So the default value is not | ||
60 | * very useful. I've redefined it for the 1.3 release so that it's | ||
61 | * zero unless set by the user to something else, in which case we | ||
62 | * try to respect it. | ||
57 | */ | 63 | */ |
58 | static ushort ipath_kpiobufs = 32; | 64 | static ushort ipath_kpiobufs; |
59 | 65 | ||
60 | static int ipath_set_kpiobufs(const char *val, struct kernel_param *kp); | 66 | static int ipath_set_kpiobufs(const char *val, struct kernel_param *kp); |
61 | 67 | ||
62 | module_param_call(kpiobufs, ipath_set_kpiobufs, param_get_uint, | 68 | module_param_call(kpiobufs, ipath_set_kpiobufs, param_get_ushort, |
63 | &ipath_kpiobufs, S_IWUSR | S_IRUGO); | 69 | &ipath_kpiobufs, S_IWUSR | S_IRUGO); |
64 | MODULE_PARM_DESC(kpiobufs, "Set number of PIO buffers for driver"); | 70 | MODULE_PARM_DESC(kpiobufs, "Set number of PIO buffers for driver"); |
65 | 71 | ||
@@ -531,8 +537,11 @@ static int init_housekeeping(struct ipath_devdata *dd, | |||
531 | * Don't clear ipath_flags as 8bit mode was set before | 537 | * Don't clear ipath_flags as 8bit mode was set before |
532 | * entering this func. However, we do set the linkstate to | 538 | * entering this func. However, we do set the linkstate to |
533 | * unknown, so we can watch for a transition. | 539 | * unknown, so we can watch for a transition. |
540 | * PRESENT is set because we want register reads to work, | ||
541 | * and the kernel infrastructure saw it in config space; | ||
542 | * We clear it if we have failures. | ||
534 | */ | 543 | */ |
535 | dd->ipath_flags |= IPATH_LINKUNK; | 544 | dd->ipath_flags |= IPATH_LINKUNK | IPATH_PRESENT; |
536 | dd->ipath_flags &= ~(IPATH_LINKACTIVE | IPATH_LINKARMED | | 545 | dd->ipath_flags &= ~(IPATH_LINKACTIVE | IPATH_LINKARMED | |
537 | IPATH_LINKDOWN | IPATH_LINKINIT); | 546 | IPATH_LINKDOWN | IPATH_LINKINIT); |
538 | 547 | ||
@@ -560,6 +569,7 @@ static int init_housekeeping(struct ipath_devdata *dd, | |||
560 | || (dd->ipath_uregbase & 0xffffffff) == 0xffffffff) { | 569 | || (dd->ipath_uregbase & 0xffffffff) == 0xffffffff) { |
561 | ipath_dev_err(dd, "Register read failures from chip, " | 570 | ipath_dev_err(dd, "Register read failures from chip, " |
562 | "giving up initialization\n"); | 571 | "giving up initialization\n"); |
572 | dd->ipath_flags &= ~IPATH_PRESENT; | ||
563 | ret = -ENODEV; | 573 | ret = -ENODEV; |
564 | goto done; | 574 | goto done; |
565 | } | 575 | } |
@@ -682,16 +692,14 @@ int ipath_init_chip(struct ipath_devdata *dd, int reinit) | |||
682 | */ | 692 | */ |
683 | dd->ipath_pioavregs = ALIGN(val, sizeof(u64) * BITS_PER_BYTE / 2) | 693 | dd->ipath_pioavregs = ALIGN(val, sizeof(u64) * BITS_PER_BYTE / 2) |
684 | / (sizeof(u64) * BITS_PER_BYTE / 2); | 694 | / (sizeof(u64) * BITS_PER_BYTE / 2); |
685 | if (!ipath_kpiobufs) /* have to have at least 1, for SMA */ | 695 | if (ipath_kpiobufs == 0) { |
686 | kpiobufs = ipath_kpiobufs = 1; | 696 | /* not set by user, or set explictly to default */ |
687 | else if ((dd->ipath_piobcnt2k + dd->ipath_piobcnt4k) < | 697 | if ((dd->ipath_piobcnt2k + dd->ipath_piobcnt4k) > 128) |
688 | (dd->ipath_cfgports * IPATH_MIN_USER_PORT_BUFCNT)) { | 698 | kpiobufs = 32; |
689 | dev_info(&dd->pcidev->dev, "Too few PIO buffers (%u) " | 699 | else |
690 | "for %u ports to have %u each!\n", | 700 | kpiobufs = 16; |
691 | dd->ipath_piobcnt2k + dd->ipath_piobcnt4k, | 701 | } |
692 | dd->ipath_cfgports, IPATH_MIN_USER_PORT_BUFCNT); | 702 | else |
693 | kpiobufs = 1; /* reserve just the minimum for SMA/ether */ | ||
694 | } else | ||
695 | kpiobufs = ipath_kpiobufs; | 703 | kpiobufs = ipath_kpiobufs; |
696 | 704 | ||
697 | if (kpiobufs > | 705 | if (kpiobufs > |
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c index 0bcb428041f3..3e72a1fe3d73 100644 --- a/drivers/infiniband/hw/ipath/ipath_intr.c +++ b/drivers/infiniband/hw/ipath/ipath_intr.c | |||
@@ -665,14 +665,14 @@ static void handle_layer_pioavail(struct ipath_devdata *dd) | |||
665 | 665 | ||
666 | ret = __ipath_layer_intr(dd, IPATH_LAYER_INT_SEND_CONTINUE); | 666 | ret = __ipath_layer_intr(dd, IPATH_LAYER_INT_SEND_CONTINUE); |
667 | if (ret > 0) | 667 | if (ret > 0) |
668 | goto clear; | 668 | goto set; |
669 | 669 | ||
670 | ret = __ipath_verbs_piobufavail(dd); | 670 | ret = __ipath_verbs_piobufavail(dd); |
671 | if (ret > 0) | 671 | if (ret > 0) |
672 | goto clear; | 672 | goto set; |
673 | 673 | ||
674 | return; | 674 | return; |
675 | clear: | 675 | set: |
676 | set_bit(IPATH_S_PIOINTBUFAVAIL, &dd->ipath_sendctrl); | 676 | set_bit(IPATH_S_PIOINTBUFAVAIL, &dd->ipath_sendctrl); |
677 | ipath_write_kreg(dd, dd->ipath_kregs->kr_sendctrl, | 677 | ipath_write_kreg(dd, dd->ipath_kregs->kr_sendctrl, |
678 | dd->ipath_sendctrl); | 678 | dd->ipath_sendctrl); |
@@ -719,11 +719,24 @@ static void handle_rcv(struct ipath_devdata *dd, u32 istat) | |||
719 | irqreturn_t ipath_intr(int irq, void *data, struct pt_regs *regs) | 719 | irqreturn_t ipath_intr(int irq, void *data, struct pt_regs *regs) |
720 | { | 720 | { |
721 | struct ipath_devdata *dd = data; | 721 | struct ipath_devdata *dd = data; |
722 | u32 istat = ipath_read_kreg32(dd, dd->ipath_kregs->kr_intstatus); | 722 | u32 istat; |
723 | ipath_err_t estat = 0; | 723 | ipath_err_t estat = 0; |
724 | static unsigned unexpected = 0; | 724 | static unsigned unexpected = 0; |
725 | irqreturn_t ret; | 725 | irqreturn_t ret; |
726 | 726 | ||
727 | if(!(dd->ipath_flags & IPATH_PRESENT)) { | ||
728 | /* this is mostly so we don't try to touch the chip while | ||
729 | * it is being reset */ | ||
730 | /* | ||
731 | * This return value is perhaps odd, but we do not want the | ||
732 | * interrupt core code to remove our interrupt handler | ||
733 | * because we don't appear to be handling an interrupt | ||
734 | * during a chip reset. | ||
735 | */ | ||
736 | return IRQ_HANDLED; | ||
737 | } | ||
738 | |||
739 | istat = ipath_read_kreg32(dd, dd->ipath_kregs->kr_intstatus); | ||
727 | if (unlikely(!istat)) { | 740 | if (unlikely(!istat)) { |
728 | ipath_stats.sps_nullintr++; | 741 | ipath_stats.sps_nullintr++; |
729 | ret = IRQ_NONE; /* not our interrupt, or already handled */ | 742 | ret = IRQ_NONE; /* not our interrupt, or already handled */ |
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h index 0ce5f19c9d62..e6507f8115bc 100644 --- a/drivers/infiniband/hw/ipath/ipath_kernel.h +++ b/drivers/infiniband/hw/ipath/ipath_kernel.h | |||
@@ -731,7 +731,7 @@ u64 ipath_read_kreg64_port(const struct ipath_devdata *, ipath_kreg, | |||
731 | static inline u32 ipath_read_ureg32(const struct ipath_devdata *dd, | 731 | static inline u32 ipath_read_ureg32(const struct ipath_devdata *dd, |
732 | ipath_ureg regno, int port) | 732 | ipath_ureg regno, int port) |
733 | { | 733 | { |
734 | if (!dd->ipath_kregbase) | 734 | if (!dd->ipath_kregbase || !(dd->ipath_flags & IPATH_PRESENT)) |
735 | return 0; | 735 | return 0; |
736 | 736 | ||
737 | return readl(regno + (u64 __iomem *) | 737 | return readl(regno + (u64 __iomem *) |
@@ -762,7 +762,7 @@ static inline void ipath_write_ureg(const struct ipath_devdata *dd, | |||
762 | static inline u32 ipath_read_kreg32(const struct ipath_devdata *dd, | 762 | static inline u32 ipath_read_kreg32(const struct ipath_devdata *dd, |
763 | ipath_kreg regno) | 763 | ipath_kreg regno) |
764 | { | 764 | { |
765 | if (!dd->ipath_kregbase) | 765 | if (!dd->ipath_kregbase || !(dd->ipath_flags & IPATH_PRESENT)) |
766 | return -1; | 766 | return -1; |
767 | return readl((u32 __iomem *) & dd->ipath_kregbase[regno]); | 767 | return readl((u32 __iomem *) & dd->ipath_kregbase[regno]); |
768 | } | 768 | } |
@@ -770,7 +770,7 @@ static inline u32 ipath_read_kreg32(const struct ipath_devdata *dd, | |||
770 | static inline u64 ipath_read_kreg64(const struct ipath_devdata *dd, | 770 | static inline u64 ipath_read_kreg64(const struct ipath_devdata *dd, |
771 | ipath_kreg regno) | 771 | ipath_kreg regno) |
772 | { | 772 | { |
773 | if (!dd->ipath_kregbase) | 773 | if (!dd->ipath_kregbase || !(dd->ipath_flags & IPATH_PRESENT)) |
774 | return -1; | 774 | return -1; |
775 | 775 | ||
776 | return readq(&dd->ipath_kregbase[regno]); | 776 | return readq(&dd->ipath_kregbase[regno]); |
@@ -786,7 +786,7 @@ static inline void ipath_write_kreg(const struct ipath_devdata *dd, | |||
786 | static inline u64 ipath_read_creg(const struct ipath_devdata *dd, | 786 | static inline u64 ipath_read_creg(const struct ipath_devdata *dd, |
787 | ipath_sreg regno) | 787 | ipath_sreg regno) |
788 | { | 788 | { |
789 | if (!dd->ipath_kregbase) | 789 | if (!dd->ipath_kregbase || !(dd->ipath_flags & IPATH_PRESENT)) |
790 | return 0; | 790 | return 0; |
791 | 791 | ||
792 | return readq(regno + (u64 __iomem *) | 792 | return readq(regno + (u64 __iomem *) |
@@ -797,7 +797,7 @@ static inline u64 ipath_read_creg(const struct ipath_devdata *dd, | |||
797 | static inline u32 ipath_read_creg32(const struct ipath_devdata *dd, | 797 | static inline u32 ipath_read_creg32(const struct ipath_devdata *dd, |
798 | ipath_sreg regno) | 798 | ipath_sreg regno) |
799 | { | 799 | { |
800 | if (!dd->ipath_kregbase) | 800 | if (!dd->ipath_kregbase || !(dd->ipath_flags & IPATH_PRESENT)) |
801 | return 0; | 801 | return 0; |
802 | return readl(regno + (u64 __iomem *) | 802 | return readl(regno + (u64 __iomem *) |
803 | (dd->ipath_cregbase + | 803 | (dd->ipath_cregbase + |
diff --git a/drivers/infiniband/hw/ipath/ipath_layer.c b/drivers/infiniband/hw/ipath/ipath_layer.c index 69ed1100701a..9cb5258ffed9 100644 --- a/drivers/infiniband/hw/ipath/ipath_layer.c +++ b/drivers/infiniband/hw/ipath/ipath_layer.c | |||
@@ -46,13 +46,15 @@ | |||
46 | /* Acquire before ipath_devs_lock. */ | 46 | /* Acquire before ipath_devs_lock. */ |
47 | static DEFINE_MUTEX(ipath_layer_mutex); | 47 | static DEFINE_MUTEX(ipath_layer_mutex); |
48 | 48 | ||
49 | static int ipath_verbs_registered; | ||
50 | |||
49 | u16 ipath_layer_rcv_opcode; | 51 | u16 ipath_layer_rcv_opcode; |
52 | |||
50 | static int (*layer_intr)(void *, u32); | 53 | static int (*layer_intr)(void *, u32); |
51 | static int (*layer_rcv)(void *, void *, struct sk_buff *); | 54 | static int (*layer_rcv)(void *, void *, struct sk_buff *); |
52 | static int (*layer_rcv_lid)(void *, void *); | 55 | static int (*layer_rcv_lid)(void *, void *); |
53 | static int (*verbs_piobufavail)(void *); | 56 | static int (*verbs_piobufavail)(void *); |
54 | static void (*verbs_rcv)(void *, void *, void *, u32); | 57 | static void (*verbs_rcv)(void *, void *, void *, u32); |
55 | static int ipath_verbs_registered; | ||
56 | 58 | ||
57 | static void *(*layer_add_one)(int, struct ipath_devdata *); | 59 | static void *(*layer_add_one)(int, struct ipath_devdata *); |
58 | static void (*layer_remove_one)(void *); | 60 | static void (*layer_remove_one)(void *); |
@@ -586,6 +588,8 @@ void ipath_verbs_unregister(void) | |||
586 | verbs_rcv = NULL; | 588 | verbs_rcv = NULL; |
587 | verbs_timer_cb = NULL; | 589 | verbs_timer_cb = NULL; |
588 | 590 | ||
591 | ipath_verbs_registered = 0; | ||
592 | |||
589 | mutex_unlock(&ipath_layer_mutex); | 593 | mutex_unlock(&ipath_layer_mutex); |
590 | } | 594 | } |
591 | 595 | ||
diff --git a/drivers/infiniband/hw/ipath/ipath_pe800.c b/drivers/infiniband/hw/ipath/ipath_pe800.c index e1dc4f757062..6318067ab5ec 100644 --- a/drivers/infiniband/hw/ipath/ipath_pe800.c +++ b/drivers/infiniband/hw/ipath/ipath_pe800.c | |||
@@ -972,6 +972,8 @@ static int ipath_setup_pe_reset(struct ipath_devdata *dd) | |||
972 | /* Use ERROR so it shows up in logs, etc. */ | 972 | /* Use ERROR so it shows up in logs, etc. */ |
973 | ipath_dev_err(dd, "Resetting PE-800 unit %u\n", | 973 | ipath_dev_err(dd, "Resetting PE-800 unit %u\n", |
974 | dd->ipath_unit); | 974 | dd->ipath_unit); |
975 | /* keep chip from being accessed in a few places */ | ||
976 | dd->ipath_flags &= ~(IPATH_INITTED|IPATH_PRESENT); | ||
975 | val = dd->ipath_control | INFINIPATH_C_RESET; | 977 | val = dd->ipath_control | INFINIPATH_C_RESET; |
976 | ipath_write_kreg(dd, dd->ipath_kregs->kr_control, val); | 978 | ipath_write_kreg(dd, dd->ipath_kregs->kr_control, val); |
977 | mb(); | 979 | mb(); |
@@ -997,6 +999,8 @@ static int ipath_setup_pe_reset(struct ipath_devdata *dd) | |||
997 | if ((r = pci_enable_device(dd->pcidev))) | 999 | if ((r = pci_enable_device(dd->pcidev))) |
998 | ipath_dev_err(dd, "pci_enable_device failed after " | 1000 | ipath_dev_err(dd, "pci_enable_device failed after " |
999 | "reset: %d\n", r); | 1001 | "reset: %d\n", r); |
1002 | /* whether it worked or not, mark as present, again */ | ||
1003 | dd->ipath_flags |= IPATH_PRESENT; | ||
1000 | val = ipath_read_kreg64(dd, dd->ipath_kregs->kr_revision); | 1004 | val = ipath_read_kreg64(dd, dd->ipath_kregs->kr_revision); |
1001 | if (val == dd->ipath_revision) { | 1005 | if (val == dd->ipath_revision) { |
1002 | ipath_cdbg(VERBOSE, "Got matching revision " | 1006 | ipath_cdbg(VERBOSE, "Got matching revision " |
diff --git a/drivers/infiniband/hw/ipath/ipath_registers.h b/drivers/infiniband/hw/ipath/ipath_registers.h index 1e59750c5f63..402126eb79c9 100644 --- a/drivers/infiniband/hw/ipath/ipath_registers.h +++ b/drivers/infiniband/hw/ipath/ipath_registers.h | |||
@@ -34,8 +34,9 @@ | |||
34 | #define _IPATH_REGISTERS_H | 34 | #define _IPATH_REGISTERS_H |
35 | 35 | ||
36 | /* | 36 | /* |
37 | * This file should only be included by kernel source, and by the diags. | 37 | * This file should only be included by kernel source, and by the diags. It |
38 | * It defines the registers, and their contents, for the InfiniPath HT-400 chip | 38 | * defines the registers, and their contents, for the InfiniPath HT-400 |
39 | * chip. | ||
39 | */ | 40 | */ |
40 | 41 | ||
41 | /* | 42 | /* |
@@ -156,8 +157,10 @@ | |||
156 | #define INFINIPATH_IBCC_FLOWCTRLWATERMARK_SHIFT 8 | 157 | #define INFINIPATH_IBCC_FLOWCTRLWATERMARK_SHIFT 8 |
157 | #define INFINIPATH_IBCC_LINKINITCMD_MASK 0x3ULL | 158 | #define INFINIPATH_IBCC_LINKINITCMD_MASK 0x3ULL |
158 | #define INFINIPATH_IBCC_LINKINITCMD_DISABLE 1 | 159 | #define INFINIPATH_IBCC_LINKINITCMD_DISABLE 1 |
159 | #define INFINIPATH_IBCC_LINKINITCMD_POLL 2 /* cycle through TS1/TS2 till OK */ | 160 | /* cycle through TS1/TS2 till OK */ |
160 | #define INFINIPATH_IBCC_LINKINITCMD_SLEEP 3 /* wait for TS1, then go on */ | 161 | #define INFINIPATH_IBCC_LINKINITCMD_POLL 2 |
162 | /* wait for TS1, then go on */ | ||
163 | #define INFINIPATH_IBCC_LINKINITCMD_SLEEP 3 | ||
161 | #define INFINIPATH_IBCC_LINKINITCMD_SHIFT 16 | 164 | #define INFINIPATH_IBCC_LINKINITCMD_SHIFT 16 |
162 | #define INFINIPATH_IBCC_LINKCMD_MASK 0x3ULL | 165 | #define INFINIPATH_IBCC_LINKCMD_MASK 0x3ULL |
163 | #define INFINIPATH_IBCC_LINKCMD_INIT 1 /* move to 0x11 */ | 166 | #define INFINIPATH_IBCC_LINKCMD_INIT 1 /* move to 0x11 */ |
@@ -182,7 +185,8 @@ | |||
182 | #define INFINIPATH_IBCS_LINKSTATE_SHIFT 4 | 185 | #define INFINIPATH_IBCS_LINKSTATE_SHIFT 4 |
183 | #define INFINIPATH_IBCS_TXREADY 0x40000000 | 186 | #define INFINIPATH_IBCS_TXREADY 0x40000000 |
184 | #define INFINIPATH_IBCS_TXCREDITOK 0x80000000 | 187 | #define INFINIPATH_IBCS_TXCREDITOK 0x80000000 |
185 | /* link training states (shift by INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) */ | 188 | /* link training states (shift by |
189 | INFINIPATH_IBCS_LINKTRAININGSTATE_SHIFT) */ | ||
186 | #define INFINIPATH_IBCS_LT_STATE_DISABLED 0x00 | 190 | #define INFINIPATH_IBCS_LT_STATE_DISABLED 0x00 |
187 | #define INFINIPATH_IBCS_LT_STATE_LINKUP 0x01 | 191 | #define INFINIPATH_IBCS_LT_STATE_LINKUP 0x01 |
188 | #define INFINIPATH_IBCS_LT_STATE_POLLACTIVE 0x02 | 192 | #define INFINIPATH_IBCS_LT_STATE_POLLACTIVE 0x02 |
@@ -267,10 +271,12 @@ | |||
267 | /* kr_serdesconfig0 bits */ | 271 | /* kr_serdesconfig0 bits */ |
268 | #define INFINIPATH_SERDC0_RESET_MASK 0xfULL /* overal reset bits */ | 272 | #define INFINIPATH_SERDC0_RESET_MASK 0xfULL /* overal reset bits */ |
269 | #define INFINIPATH_SERDC0_RESET_PLL 0x10000000ULL /* pll reset */ | 273 | #define INFINIPATH_SERDC0_RESET_PLL 0x10000000ULL /* pll reset */ |
270 | #define INFINIPATH_SERDC0_TXIDLE 0xF000ULL /* tx idle enables (per lane) */ | 274 | /* tx idle enables (per lane) */ |
271 | #define INFINIPATH_SERDC0_RXDETECT_EN 0xF0000ULL /* rx detect enables (per lane) */ | 275 | #define INFINIPATH_SERDC0_TXIDLE 0xF000ULL |
272 | #define INFINIPATH_SERDC0_L1PWR_DN 0xF0ULL /* L1 Power down; use with RXDETECT, | 276 | /* rx detect enables (per lane) */ |
273 | Otherwise not used on IB side */ | 277 | #define INFINIPATH_SERDC0_RXDETECT_EN 0xF0000ULL |
278 | /* L1 Power down; use with RXDETECT, Otherwise not used on IB side */ | ||
279 | #define INFINIPATH_SERDC0_L1PWR_DN 0xF0ULL | ||
274 | 280 | ||
275 | /* kr_xgxsconfig bits */ | 281 | /* kr_xgxsconfig bits */ |
276 | #define INFINIPATH_XGXS_RESET 0x7ULL | 282 | #define INFINIPATH_XGXS_RESET 0x7ULL |
@@ -390,12 +396,13 @@ struct ipath_kregs { | |||
390 | ipath_kreg kr_txintmemsize; | 396 | ipath_kreg kr_txintmemsize; |
391 | ipath_kreg kr_xgxsconfig; | 397 | ipath_kreg kr_xgxsconfig; |
392 | ipath_kreg kr_ibpllcfg; | 398 | ipath_kreg kr_ibpllcfg; |
393 | /* use these two (and the following N ports) only with ipath_k*_kreg64_port(); | 399 | /* use these two (and the following N ports) only with |
394 | * not *kreg64() */ | 400 | * ipath_k*_kreg64_port(); not *kreg64() */ |
395 | ipath_kreg kr_rcvhdraddr; | 401 | ipath_kreg kr_rcvhdraddr; |
396 | ipath_kreg kr_rcvhdrtailaddr; | 402 | ipath_kreg kr_rcvhdrtailaddr; |
397 | 403 | ||
398 | /* remaining registers are not present on all types of infinipath chips */ | 404 | /* remaining registers are not present on all types of infinipath |
405 | chips */ | ||
399 | ipath_kreg kr_rcvpktledcnt; | 406 | ipath_kreg kr_rcvpktledcnt; |
400 | ipath_kreg kr_pcierbuftestreg0; | 407 | ipath_kreg kr_pcierbuftestreg0; |
401 | ipath_kreg kr_pcierbuftestreg1; | 408 | ipath_kreg kr_pcierbuftestreg1; |
diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c index f232e77b78ee..eb81424b3c5b 100644 --- a/drivers/infiniband/hw/ipath/ipath_ruc.c +++ b/drivers/infiniband/hw/ipath/ipath_ruc.c | |||
@@ -531,19 +531,12 @@ int ipath_post_rc_send(struct ipath_qp *qp, struct ib_send_wr *wr) | |||
531 | } | 531 | } |
532 | wqe->wr.num_sge = j; | 532 | wqe->wr.num_sge = j; |
533 | qp->s_head = next; | 533 | qp->s_head = next; |
534 | /* | ||
535 | * Wake up the send tasklet if the QP is not waiting | ||
536 | * for an RNR timeout. | ||
537 | */ | ||
538 | next = qp->s_rnr_timeout; | ||
539 | spin_unlock_irqrestore(&qp->s_lock, flags); | 534 | spin_unlock_irqrestore(&qp->s_lock, flags); |
540 | 535 | ||
541 | if (next == 0) { | 536 | if (qp->ibqp.qp_type == IB_QPT_UC) |
542 | if (qp->ibqp.qp_type == IB_QPT_UC) | 537 | ipath_do_uc_send((unsigned long) qp); |
543 | ipath_do_uc_send((unsigned long) qp); | 538 | else |
544 | else | 539 | ipath_do_rc_send((unsigned long) qp); |
545 | ipath_do_rc_send((unsigned long) qp); | ||
546 | } | ||
547 | 540 | ||
548 | ret = 0; | 541 | ret = 0; |
549 | 542 | ||
diff --git a/drivers/infiniband/hw/ipath/ipath_sysfs.c b/drivers/infiniband/hw/ipath/ipath_sysfs.c index 32acd8048b49..f323791cc495 100644 --- a/drivers/infiniband/hw/ipath/ipath_sysfs.c +++ b/drivers/infiniband/hw/ipath/ipath_sysfs.c | |||
@@ -711,10 +711,22 @@ static struct attribute_group dev_attr_group = { | |||
711 | * enters diag mode. A device reset is quite likely to crash the | 711 | * enters diag mode. A device reset is quite likely to crash the |
712 | * machine entirely, so we don't want to normally make it | 712 | * machine entirely, so we don't want to normally make it |
713 | * available. | 713 | * available. |
714 | * | ||
715 | * Called with ipath_mutex held. | ||
714 | */ | 716 | */ |
715 | int ipath_expose_reset(struct device *dev) | 717 | int ipath_expose_reset(struct device *dev) |
716 | { | 718 | { |
717 | return device_create_file(dev, &dev_attr_reset); | 719 | static int exposed; |
720 | int ret; | ||
721 | |||
722 | if (!exposed) { | ||
723 | ret = device_create_file(dev, &dev_attr_reset); | ||
724 | exposed = 1; | ||
725 | } | ||
726 | else | ||
727 | ret = 0; | ||
728 | |||
729 | return ret; | ||
718 | } | 730 | } |
719 | 731 | ||
720 | int ipath_driver_create_group(struct device_driver *drv) | 732 | int ipath_driver_create_group(struct device_driver *drv) |
diff --git a/drivers/infiniband/hw/ipath/ipath_ud.c b/drivers/infiniband/hw/ipath/ipath_ud.c index 01cfb30ee160..e606daf83210 100644 --- a/drivers/infiniband/hw/ipath/ipath_ud.c +++ b/drivers/infiniband/hw/ipath/ipath_ud.c | |||
@@ -46,8 +46,10 @@ | |||
46 | * This is called from ipath_post_ud_send() to forward a WQE addressed | 46 | * This is called from ipath_post_ud_send() to forward a WQE addressed |
47 | * to the same HCA. | 47 | * to the same HCA. |
48 | */ | 48 | */ |
49 | static void ipath_ud_loopback(struct ipath_qp *sqp, struct ipath_sge_state *ss, | 49 | static void ipath_ud_loopback(struct ipath_qp *sqp, |
50 | u32 length, struct ib_send_wr *wr, struct ib_wc *wc) | 50 | struct ipath_sge_state *ss, |
51 | u32 length, struct ib_send_wr *wr, | ||
52 | struct ib_wc *wc) | ||
51 | { | 53 | { |
52 | struct ipath_ibdev *dev = to_idev(sqp->ibqp.device); | 54 | struct ipath_ibdev *dev = to_idev(sqp->ibqp.device); |
53 | struct ipath_qp *qp; | 55 | struct ipath_qp *qp; |
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c index 8d2558a01f35..cb9e387c301f 100644 --- a/drivers/infiniband/hw/ipath/ipath_verbs.c +++ b/drivers/infiniband/hw/ipath/ipath_verbs.c | |||
@@ -449,7 +449,6 @@ static void ipath_ib_timer(void *arg) | |||
449 | { | 449 | { |
450 | struct ipath_ibdev *dev = (struct ipath_ibdev *) arg; | 450 | struct ipath_ibdev *dev = (struct ipath_ibdev *) arg; |
451 | struct ipath_qp *resend = NULL; | 451 | struct ipath_qp *resend = NULL; |
452 | struct ipath_qp *rnr = NULL; | ||
453 | struct list_head *last; | 452 | struct list_head *last; |
454 | struct ipath_qp *qp; | 453 | struct ipath_qp *qp; |
455 | unsigned long flags; | 454 | unsigned long flags; |
@@ -465,32 +464,18 @@ static void ipath_ib_timer(void *arg) | |||
465 | last = &dev->pending[dev->pending_index]; | 464 | last = &dev->pending[dev->pending_index]; |
466 | while (!list_empty(last)) { | 465 | while (!list_empty(last)) { |
467 | qp = list_entry(last->next, struct ipath_qp, timerwait); | 466 | qp = list_entry(last->next, struct ipath_qp, timerwait); |
468 | if (last->next == LIST_POISON1 || | 467 | list_del(&qp->timerwait); |
469 | last->next != &qp->timerwait || | 468 | qp->timer_next = resend; |
470 | qp->timerwait.prev != last) { | 469 | resend = qp; |
471 | INIT_LIST_HEAD(last); | 470 | atomic_inc(&qp->refcount); |
472 | } else { | ||
473 | list_del(&qp->timerwait); | ||
474 | qp->timerwait.prev = (struct list_head *) resend; | ||
475 | resend = qp; | ||
476 | atomic_inc(&qp->refcount); | ||
477 | } | ||
478 | } | 471 | } |
479 | last = &dev->rnrwait; | 472 | last = &dev->rnrwait; |
480 | if (!list_empty(last)) { | 473 | if (!list_empty(last)) { |
481 | qp = list_entry(last->next, struct ipath_qp, timerwait); | 474 | qp = list_entry(last->next, struct ipath_qp, timerwait); |
482 | if (--qp->s_rnr_timeout == 0) { | 475 | if (--qp->s_rnr_timeout == 0) { |
483 | do { | 476 | do { |
484 | if (last->next == LIST_POISON1 || | ||
485 | last->next != &qp->timerwait || | ||
486 | qp->timerwait.prev != last) { | ||
487 | INIT_LIST_HEAD(last); | ||
488 | break; | ||
489 | } | ||
490 | list_del(&qp->timerwait); | 477 | list_del(&qp->timerwait); |
491 | qp->timerwait.prev = | 478 | tasklet_hi_schedule(&qp->s_task); |
492 | (struct list_head *) rnr; | ||
493 | rnr = qp; | ||
494 | if (list_empty(last)) | 479 | if (list_empty(last)) |
495 | break; | 480 | break; |
496 | qp = list_entry(last->next, struct ipath_qp, | 481 | qp = list_entry(last->next, struct ipath_qp, |
@@ -530,8 +515,7 @@ static void ipath_ib_timer(void *arg) | |||
530 | spin_unlock_irqrestore(&dev->pending_lock, flags); | 515 | spin_unlock_irqrestore(&dev->pending_lock, flags); |
531 | 516 | ||
532 | /* XXX What if timer fires again while this is running? */ | 517 | /* XXX What if timer fires again while this is running? */ |
533 | for (qp = resend; qp != NULL; | 518 | for (qp = resend; qp != NULL; qp = qp->timer_next) { |
534 | qp = (struct ipath_qp *) qp->timerwait.prev) { | ||
535 | struct ib_wc wc; | 519 | struct ib_wc wc; |
536 | 520 | ||
537 | spin_lock_irqsave(&qp->s_lock, flags); | 521 | spin_lock_irqsave(&qp->s_lock, flags); |
@@ -545,9 +529,6 @@ static void ipath_ib_timer(void *arg) | |||
545 | if (atomic_dec_and_test(&qp->refcount)) | 529 | if (atomic_dec_and_test(&qp->refcount)) |
546 | wake_up(&qp->wait); | 530 | wake_up(&qp->wait); |
547 | } | 531 | } |
548 | for (qp = rnr; qp != NULL; | ||
549 | qp = (struct ipath_qp *) qp->timerwait.prev) | ||
550 | tasklet_hi_schedule(&qp->s_task); | ||
551 | } | 532 | } |
552 | 533 | ||
553 | /** | 534 | /** |
@@ -556,9 +537,9 @@ static void ipath_ib_timer(void *arg) | |||
556 | * | 537 | * |
557 | * This is called from ipath_intr() at interrupt level when a PIO buffer is | 538 | * This is called from ipath_intr() at interrupt level when a PIO buffer is |
558 | * available after ipath_verbs_send() returned an error that no buffers were | 539 | * available after ipath_verbs_send() returned an error that no buffers were |
559 | * available. Return 0 if we consumed all the PIO buffers and we still have | 540 | * available. Return 1 if we consumed all the PIO buffers and we still have |
560 | * QPs waiting for buffers (for now, just do a tasklet_hi_schedule and | 541 | * QPs waiting for buffers (for now, just do a tasklet_hi_schedule and |
561 | * return one). | 542 | * return zero). |
562 | */ | 543 | */ |
563 | static int ipath_ib_piobufavail(void *arg) | 544 | static int ipath_ib_piobufavail(void *arg) |
564 | { | 545 | { |
@@ -579,7 +560,7 @@ static int ipath_ib_piobufavail(void *arg) | |||
579 | spin_unlock_irqrestore(&dev->pending_lock, flags); | 560 | spin_unlock_irqrestore(&dev->pending_lock, flags); |
580 | 561 | ||
581 | bail: | 562 | bail: |
582 | return 1; | 563 | return 0; |
583 | } | 564 | } |
584 | 565 | ||
585 | static int ipath_query_device(struct ib_device *ibdev, | 566 | static int ipath_query_device(struct ib_device *ibdev, |
@@ -1159,7 +1140,7 @@ static ssize_t show_stats(struct class_device *cdev, char *buf) | |||
1159 | 1140 | ||
1160 | len = sprintf(buf, | 1141 | len = sprintf(buf, |
1161 | "RC resends %d\n" | 1142 | "RC resends %d\n" |
1162 | "RC QACKs %d\n" | 1143 | "RC no QACK %d\n" |
1163 | "RC ACKs %d\n" | 1144 | "RC ACKs %d\n" |
1164 | "RC SEQ NAKs %d\n" | 1145 | "RC SEQ NAKs %d\n" |
1165 | "RC RDMA seq %d\n" | 1146 | "RC RDMA seq %d\n" |
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.h b/drivers/infiniband/hw/ipath/ipath_verbs.h index fcafbc7c9e71..4f8d59300e9b 100644 --- a/drivers/infiniband/hw/ipath/ipath_verbs.h +++ b/drivers/infiniband/hw/ipath/ipath_verbs.h | |||
@@ -282,7 +282,8 @@ struct ipath_srq { | |||
282 | */ | 282 | */ |
283 | struct ipath_qp { | 283 | struct ipath_qp { |
284 | struct ib_qp ibqp; | 284 | struct ib_qp ibqp; |
285 | struct ipath_qp *next; /* link list for QPN hash table */ | 285 | struct ipath_qp *next; /* link list for QPN hash table */ |
286 | struct ipath_qp *timer_next; /* link list for ipath_ib_timer() */ | ||
286 | struct list_head piowait; /* link for wait PIO buf */ | 287 | struct list_head piowait; /* link for wait PIO buf */ |
287 | struct list_head timerwait; /* link for waiting for timeouts */ | 288 | struct list_head timerwait; /* link for waiting for timeouts */ |
288 | struct ib_ah_attr remote_ah_attr; | 289 | struct ib_ah_attr remote_ah_attr; |
diff --git a/drivers/infiniband/hw/ipath/ips_common.h b/drivers/infiniband/hw/ipath/ips_common.h index 410a764dfcef..ab7cbbbfd03a 100644 --- a/drivers/infiniband/hw/ipath/ips_common.h +++ b/drivers/infiniband/hw/ipath/ips_common.h | |||
@@ -95,7 +95,7 @@ struct ether_header { | |||
95 | __u8 seq_num; | 95 | __u8 seq_num; |
96 | __le32 len; | 96 | __le32 len; |
97 | /* MUST be of word size due to PIO write requirements */ | 97 | /* MUST be of word size due to PIO write requirements */ |
98 | __u32 csum; | 98 | __le32 csum; |
99 | __le16 csum_offset; | 99 | __le16 csum_offset; |
100 | __le16 flags; | 100 | __le16 flags; |
101 | __u16 first_2_bytes; | 101 | __u16 first_2_bytes; |
diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c index 565a24b1756f..a2eae8a30167 100644 --- a/drivers/infiniband/hw/mthca/mthca_provider.c +++ b/drivers/infiniband/hw/mthca/mthca_provider.c | |||
@@ -306,7 +306,7 @@ static int mthca_query_gid(struct ib_device *ibdev, u8 port, | |||
306 | goto out; | 306 | goto out; |
307 | } | 307 | } |
308 | 308 | ||
309 | memcpy(gid->raw + 8, out_mad->data + (index % 8) * 16, 8); | 309 | memcpy(gid->raw + 8, out_mad->data + (index % 8) * 8, 8); |
310 | 310 | ||
311 | out: | 311 | out: |
312 | kfree(in_mad); | 312 | kfree(in_mad); |
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index a34e3d91d9ed..ba325f16d077 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
@@ -403,6 +403,27 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd, | |||
403 | case EVIOCGID: | 403 | case EVIOCGID: |
404 | if (copy_to_user(p, &dev->id, sizeof(struct input_id))) | 404 | if (copy_to_user(p, &dev->id, sizeof(struct input_id))) |
405 | return -EFAULT; | 405 | return -EFAULT; |
406 | return 0; | ||
407 | |||
408 | case EVIOCGREP: | ||
409 | if (!test_bit(EV_REP, dev->evbit)) | ||
410 | return -ENOSYS; | ||
411 | if (put_user(dev->rep[REP_DELAY], ip)) | ||
412 | return -EFAULT; | ||
413 | if (put_user(dev->rep[REP_PERIOD], ip + 1)) | ||
414 | return -EFAULT; | ||
415 | return 0; | ||
416 | |||
417 | case EVIOCSREP: | ||
418 | if (!test_bit(EV_REP, dev->evbit)) | ||
419 | return -ENOSYS; | ||
420 | if (get_user(u, ip)) | ||
421 | return -EFAULT; | ||
422 | if (get_user(v, ip + 1)) | ||
423 | return -EFAULT; | ||
424 | |||
425 | input_event(dev, EV_REP, REP_DELAY, u); | ||
426 | input_event(dev, EV_REP, REP_PERIOD, v); | ||
406 | 427 | ||
407 | return 0; | 428 | return 0; |
408 | 429 | ||
diff --git a/drivers/input/input.c b/drivers/input/input.c index a935abeffffc..3038c268917d 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c | |||
@@ -155,6 +155,9 @@ void input_event(struct input_dev *dev, unsigned int type, unsigned int code, in | |||
155 | if (code > SND_MAX || !test_bit(code, dev->sndbit)) | 155 | if (code > SND_MAX || !test_bit(code, dev->sndbit)) |
156 | return; | 156 | return; |
157 | 157 | ||
158 | if (!!test_bit(code, dev->snd) != !!value) | ||
159 | change_bit(code, dev->snd); | ||
160 | |||
158 | if (dev->event) dev->event(dev, type, code, value); | 161 | if (dev->event) dev->event(dev, type, code, value); |
159 | 162 | ||
160 | break; | 163 | break; |
@@ -286,19 +289,19 @@ static struct input_device_id *input_match_device(struct input_device_id *id, st | |||
286 | for (; id->flags || id->driver_info; id++) { | 289 | for (; id->flags || id->driver_info; id++) { |
287 | 290 | ||
288 | if (id->flags & INPUT_DEVICE_ID_MATCH_BUS) | 291 | if (id->flags & INPUT_DEVICE_ID_MATCH_BUS) |
289 | if (id->id.bustype != dev->id.bustype) | 292 | if (id->bustype != dev->id.bustype) |
290 | continue; | 293 | continue; |
291 | 294 | ||
292 | if (id->flags & INPUT_DEVICE_ID_MATCH_VENDOR) | 295 | if (id->flags & INPUT_DEVICE_ID_MATCH_VENDOR) |
293 | if (id->id.vendor != dev->id.vendor) | 296 | if (id->vendor != dev->id.vendor) |
294 | continue; | 297 | continue; |
295 | 298 | ||
296 | if (id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT) | 299 | if (id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT) |
297 | if (id->id.product != dev->id.product) | 300 | if (id->product != dev->id.product) |
298 | continue; | 301 | continue; |
299 | 302 | ||
300 | if (id->flags & INPUT_DEVICE_ID_MATCH_VERSION) | 303 | if (id->flags & INPUT_DEVICE_ID_MATCH_VERSION) |
301 | if (id->id.version != dev->id.version) | 304 | if (id->version != dev->id.version) |
302 | continue; | 305 | continue; |
303 | 306 | ||
304 | MATCH_BIT(evbit, EV_MAX); | 307 | MATCH_BIT(evbit, EV_MAX); |
diff --git a/drivers/input/keyboard/spitzkbd.c b/drivers/input/keyboard/spitzkbd.c index bc61cf8cfc65..1d238a9d52d6 100644 --- a/drivers/input/keyboard/spitzkbd.c +++ b/drivers/input/keyboard/spitzkbd.c | |||
@@ -53,8 +53,8 @@ static unsigned char spitzkbd_keycode[NR_SCANCODES] = { | |||
53 | KEY_LEFTCTRL, KEY_1, KEY_3, KEY_5, KEY_6, KEY_7, KEY_9, KEY_0, KEY_BACKSPACE, SPITZ_KEY_EXOK, SPITZ_KEY_EXCANCEL, 0, 0, 0, 0, 0, /* 1-16 */ | 53 | KEY_LEFTCTRL, KEY_1, KEY_3, KEY_5, KEY_6, KEY_7, KEY_9, KEY_0, KEY_BACKSPACE, SPITZ_KEY_EXOK, SPITZ_KEY_EXCANCEL, 0, 0, 0, 0, 0, /* 1-16 */ |
54 | 0, KEY_2, KEY_4, KEY_R, KEY_Y, KEY_8, KEY_I, KEY_O, KEY_P, SPITZ_KEY_EXJOGDOWN, SPITZ_KEY_EXJOGUP, 0, 0, 0, 0, 0, /* 17-32 */ | 54 | 0, KEY_2, KEY_4, KEY_R, KEY_Y, KEY_8, KEY_I, KEY_O, KEY_P, SPITZ_KEY_EXJOGDOWN, SPITZ_KEY_EXJOGUP, 0, 0, 0, 0, 0, /* 17-32 */ |
55 | KEY_TAB, KEY_Q, KEY_E, KEY_T, KEY_G, KEY_U, KEY_J, KEY_K, 0, 0, 0, 0, 0, 0, 0, 0, /* 33-48 */ | 55 | KEY_TAB, KEY_Q, KEY_E, KEY_T, KEY_G, KEY_U, KEY_J, KEY_K, 0, 0, 0, 0, 0, 0, 0, 0, /* 33-48 */ |
56 | SPITZ_KEY_CALENDER, KEY_W, KEY_S, KEY_F, KEY_V, KEY_H, KEY_M, KEY_L, 0, KEY_RIGHTSHIFT, 0, 0, 0, 0, 0, 0, /* 49-64 */ | 56 | SPITZ_KEY_ADDRESS, KEY_W, KEY_S, KEY_F, KEY_V, KEY_H, KEY_M, KEY_L, 0, KEY_RIGHTSHIFT, 0, 0, 0, 0, 0, 0, /* 49-64 */ |
57 | SPITZ_KEY_ADDRESS, KEY_A, KEY_D, KEY_C, KEY_B, KEY_N, KEY_DOT, 0, KEY_ENTER, KEY_LEFTSHIFT, 0, 0, 0, 0, 0, 0, /* 65-80 */ | 57 | SPITZ_KEY_CALENDER, KEY_A, KEY_D, KEY_C, KEY_B, KEY_N, KEY_DOT, 0, KEY_ENTER, KEY_LEFTSHIFT, 0, 0, 0, 0, 0, 0, /* 65-80 */ |
58 | SPITZ_KEY_MAIL, KEY_Z, KEY_X, KEY_MINUS, KEY_SPACE, KEY_COMMA, 0, KEY_UP, 0, 0, SPITZ_KEY_FN, 0, 0, 0, 0, 0, /* 81-96 */ | 58 | SPITZ_KEY_MAIL, KEY_Z, KEY_X, KEY_MINUS, KEY_SPACE, KEY_COMMA, 0, KEY_UP, 0, 0, SPITZ_KEY_FN, 0, 0, 0, 0, 0, /* 81-96 */ |
59 | KEY_SYSRQ, SPITZ_KEY_JAP1, SPITZ_KEY_JAP2, SPITZ_KEY_CANCEL, SPITZ_KEY_OK, SPITZ_KEY_MENU, KEY_LEFT, KEY_DOWN, KEY_RIGHT, 0, 0, 0, 0, 0, 0, 0 /* 97-112 */ | 59 | KEY_SYSRQ, SPITZ_KEY_JAP1, SPITZ_KEY_JAP2, SPITZ_KEY_CANCEL, SPITZ_KEY_OK, SPITZ_KEY_MENU, KEY_LEFT, KEY_DOWN, KEY_RIGHT, 0, 0, 0, 0, 0, 0, 0 /* 97-112 */ |
60 | }; | 60 | }; |
diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c index 4b415d9b0123..36cd2e07fce8 100644 --- a/drivers/input/misc/wistron_btns.c +++ b/drivers/input/misc/wistron_btns.c | |||
@@ -273,6 +273,18 @@ static struct key_entry keymap_fs_amilo_pro_v2000[] = { | |||
273 | { KE_END, 0 } | 273 | { KE_END, 0 } |
274 | }; | 274 | }; |
275 | 275 | ||
276 | static struct key_entry keymap_fujitsu_n3510[] = { | ||
277 | { KE_KEY, 0x11, KEY_PROG1 }, | ||
278 | { KE_KEY, 0x12, KEY_PROG2 }, | ||
279 | { KE_KEY, 0x36, KEY_WWW }, | ||
280 | { KE_KEY, 0x31, KEY_MAIL }, | ||
281 | { KE_KEY, 0x71, KEY_STOPCD }, | ||
282 | { KE_KEY, 0x72, KEY_PLAYPAUSE }, | ||
283 | { KE_KEY, 0x74, KEY_REWIND }, | ||
284 | { KE_KEY, 0x78, KEY_FORWARD }, | ||
285 | { KE_END, 0 } | ||
286 | }; | ||
287 | |||
276 | static struct key_entry keymap_wistron_ms2141[] = { | 288 | static struct key_entry keymap_wistron_ms2141[] = { |
277 | { KE_KEY, 0x11, KEY_PROG1 }, | 289 | { KE_KEY, 0x11, KEY_PROG1 }, |
278 | { KE_KEY, 0x12, KEY_PROG2 }, | 290 | { KE_KEY, 0x12, KEY_PROG2 }, |
@@ -323,6 +335,24 @@ static struct dmi_system_id dmi_ids[] = { | |||
323 | }, | 335 | }, |
324 | { | 336 | { |
325 | .callback = dmi_matched, | 337 | .callback = dmi_matched, |
338 | .ident = "Fujitsu-Siemens Amilo M7400", | ||
339 | .matches = { | ||
340 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
341 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO M "), | ||
342 | }, | ||
343 | .driver_data = keymap_fs_amilo_pro_v2000 | ||
344 | }, | ||
345 | { | ||
346 | .callback = dmi_matched, | ||
347 | .ident = "Fujitsu N3510", | ||
348 | .matches = { | ||
349 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | ||
350 | DMI_MATCH(DMI_PRODUCT_NAME, "N3510"), | ||
351 | }, | ||
352 | .driver_data = keymap_fujitsu_n3510 | ||
353 | }, | ||
354 | { | ||
355 | .callback = dmi_matched, | ||
326 | .ident = "Acer Aspire 1500", | 356 | .ident = "Acer Aspire 1500", |
327 | .matches = { | 357 | .matches = { |
328 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | 358 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), |
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 32d70ed8f41d..136321a2cfdb 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
@@ -302,8 +302,10 @@ static irqreturn_t psmouse_interrupt(struct serio *serio, | |||
302 | * Check if this is a new device announcement (0xAA 0x00) | 302 | * Check if this is a new device announcement (0xAA 0x00) |
303 | */ | 303 | */ |
304 | if (unlikely(psmouse->packet[0] == PSMOUSE_RET_BAT && psmouse->pktcnt <= 2)) { | 304 | if (unlikely(psmouse->packet[0] == PSMOUSE_RET_BAT && psmouse->pktcnt <= 2)) { |
305 | if (psmouse->pktcnt == 1) | 305 | if (psmouse->pktcnt == 1) { |
306 | psmouse->last = jiffies; | ||
306 | goto out; | 307 | goto out; |
308 | } | ||
307 | 309 | ||
308 | if (psmouse->packet[1] == PSMOUSE_RET_ID) { | 310 | if (psmouse->packet[1] == PSMOUSE_RET_ID) { |
309 | __psmouse_set_state(psmouse, PSMOUSE_IGNORE); | 311 | __psmouse_set_state(psmouse, PSMOUSE_IGNORE); |
diff --git a/drivers/input/serio/i8042-io.h b/drivers/input/serio/i8042-io.h index 9a9221644250..cc21914fbc72 100644 --- a/drivers/input/serio/i8042-io.h +++ b/drivers/input/serio/i8042-io.h | |||
@@ -67,14 +67,14 @@ static inline int i8042_platform_init(void) | |||
67 | * On some platforms touching the i8042 data register region can do really | 67 | * On some platforms touching the i8042 data register region can do really |
68 | * bad things. Because of this the region is always reserved on such boxes. | 68 | * bad things. Because of this the region is always reserved on such boxes. |
69 | */ | 69 | */ |
70 | #if !defined(__sh__) && !defined(__alpha__) && !defined(__mips__) && !defined(CONFIG_PPC64) | 70 | #if !defined(__sh__) && !defined(__alpha__) && !defined(__mips__) && !defined(CONFIG_PPC_MERGE) |
71 | if (!request_region(I8042_DATA_REG, 16, "i8042")) | 71 | if (!request_region(I8042_DATA_REG, 16, "i8042")) |
72 | return -EBUSY; | 72 | return -EBUSY; |
73 | #endif | 73 | #endif |
74 | 74 | ||
75 | i8042_reset = 1; | 75 | i8042_reset = 1; |
76 | 76 | ||
77 | #if defined(CONFIG_PPC64) | 77 | #if defined(CONFIG_PPC_MERGE) |
78 | if (check_legacy_ioport(I8042_DATA_REG)) | 78 | if (check_legacy_ioport(I8042_DATA_REG)) |
79 | return -EBUSY; | 79 | return -EBUSY; |
80 | if (!request_region(I8042_DATA_REG, 16, "i8042")) | 80 | if (!request_region(I8042_DATA_REG, 16, "i8042")) |
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index 46d1fec2cfd8..1494175ac6fe 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c | |||
@@ -2,6 +2,8 @@ | |||
2 | * ADS7846 based touchscreen and sensor driver | 2 | * ADS7846 based touchscreen and sensor driver |
3 | * | 3 | * |
4 | * Copyright (c) 2005 David Brownell | 4 | * Copyright (c) 2005 David Brownell |
5 | * Copyright (c) 2006 Nokia Corporation | ||
6 | * Various changes: Imre Deak <imre.deak@nokia.com> | ||
5 | * | 7 | * |
6 | * Using code from: | 8 | * Using code from: |
7 | * - corgi_ts.c | 9 | * - corgi_ts.c |
@@ -34,17 +36,25 @@ | |||
34 | 36 | ||
35 | 37 | ||
36 | /* | 38 | /* |
37 | * This code has been lightly tested on an ads7846. | 39 | * This code has been tested on an ads7846 / N770 device. |
38 | * Support for ads7843 and ads7845 has only been stubbed in. | 40 | * Support for ads7843 and ads7845 has only been stubbed in. |
39 | * | 41 | * |
40 | * Not yet done: investigate the values reported. Are x/y/pressure | 42 | * Not yet done: How accurate are the temperature and voltage |
41 | * event values sane enough for X11? How accurate are the temperature | 43 | * readings? (System-specific calibration should support |
42 | * and voltage readings? (System-specific calibration should support | ||
43 | * accuracy of 0.3 degrees C; otherwise it's 2.0 degrees.) | 44 | * accuracy of 0.3 degrees C; otherwise it's 2.0 degrees.) |
44 | * | 45 | * |
46 | * IRQ handling needs a workaround because of a shortcoming in handling | ||
47 | * edge triggered IRQs on some platforms like the OMAP1/2. These | ||
48 | * platforms don't handle the ARM lazy IRQ disabling properly, thus we | ||
49 | * have to maintain our own SW IRQ disabled status. This should be | ||
50 | * removed as soon as the affected platform's IRQ handling is fixed. | ||
51 | * | ||
45 | * app note sbaa036 talks in more detail about accurate sampling... | 52 | * app note sbaa036 talks in more detail about accurate sampling... |
46 | * that ought to help in situations like LCDs inducing noise (which | 53 | * that ought to help in situations like LCDs inducing noise (which |
47 | * can also be helped by using synch signals) and more generally. | 54 | * can also be helped by using synch signals) and more generally. |
55 | * This driver tries to utilize the measures described in the app | ||
56 | * note. The strength of filtering can be set in the board-* specific | ||
57 | * files. | ||
48 | */ | 58 | */ |
49 | 59 | ||
50 | #define TS_POLL_PERIOD msecs_to_jiffies(10) | 60 | #define TS_POLL_PERIOD msecs_to_jiffies(10) |
@@ -61,6 +71,7 @@ struct ts_event { | |||
61 | __be16 x; | 71 | __be16 x; |
62 | __be16 y; | 72 | __be16 y; |
63 | __be16 z1, z2; | 73 | __be16 z1, z2; |
74 | int ignore; | ||
64 | }; | 75 | }; |
65 | 76 | ||
66 | struct ads7846 { | 77 | struct ads7846 { |
@@ -71,12 +82,23 @@ struct ads7846 { | |||
71 | u16 model; | 82 | u16 model; |
72 | u16 vref_delay_usecs; | 83 | u16 vref_delay_usecs; |
73 | u16 x_plate_ohms; | 84 | u16 x_plate_ohms; |
85 | u16 pressure_max; | ||
74 | 86 | ||
75 | u8 read_x, read_y, read_z1, read_z2; | 87 | u8 read_x, read_y, read_z1, read_z2, pwrdown; |
88 | u16 dummy; /* for the pwrdown read */ | ||
76 | struct ts_event tc; | 89 | struct ts_event tc; |
77 | 90 | ||
78 | struct spi_transfer xfer[8]; | 91 | struct spi_transfer xfer[10]; |
79 | struct spi_message msg; | 92 | struct spi_message msg[5]; |
93 | struct spi_message *last_msg; | ||
94 | int msg_idx; | ||
95 | int read_cnt; | ||
96 | int read_rep; | ||
97 | int last_read; | ||
98 | |||
99 | u16 debounce_max; | ||
100 | u16 debounce_tol; | ||
101 | u16 debounce_rep; | ||
80 | 102 | ||
81 | spinlock_t lock; | 103 | spinlock_t lock; |
82 | struct timer_list timer; /* P: lock */ | 104 | struct timer_list timer; /* P: lock */ |
@@ -84,6 +106,9 @@ struct ads7846 { | |||
84 | unsigned pending:1; /* P: lock */ | 106 | unsigned pending:1; /* P: lock */ |
85 | // FIXME remove "irq_disabled" | 107 | // FIXME remove "irq_disabled" |
86 | unsigned irq_disabled:1; /* P: lock */ | 108 | unsigned irq_disabled:1; /* P: lock */ |
109 | unsigned disabled:1; | ||
110 | |||
111 | int (*get_pendown_state)(void); | ||
87 | }; | 112 | }; |
88 | 113 | ||
89 | /* leave chip selected when we're done, for quicker re-select? */ | 114 | /* leave chip selected when we're done, for quicker re-select? */ |
@@ -125,7 +150,9 @@ struct ads7846 { | |||
125 | #define READ_Y (READ_12BIT_DFR(y) | ADS_PD10_ADC_ON) | 150 | #define READ_Y (READ_12BIT_DFR(y) | ADS_PD10_ADC_ON) |
126 | #define READ_Z1 (READ_12BIT_DFR(z1) | ADS_PD10_ADC_ON) | 151 | #define READ_Z1 (READ_12BIT_DFR(z1) | ADS_PD10_ADC_ON) |
127 | #define READ_Z2 (READ_12BIT_DFR(z2) | ADS_PD10_ADC_ON) | 152 | #define READ_Z2 (READ_12BIT_DFR(z2) | ADS_PD10_ADC_ON) |
128 | #define READ_X (READ_12BIT_DFR(x) | ADS_PD10_PDOWN) /* LAST */ | 153 | |
154 | #define READ_X (READ_12BIT_DFR(x) | ADS_PD10_ADC_ON) | ||
155 | #define PWRDOWN (READ_12BIT_DFR(y) | ADS_PD10_PDOWN) /* LAST */ | ||
129 | 156 | ||
130 | /* single-ended samples need to first power up reference voltage; | 157 | /* single-ended samples need to first power up reference voltage; |
131 | * we leave both ADC and VREF powered | 158 | * we leave both ADC and VREF powered |
@@ -152,6 +179,15 @@ struct ser_req { | |||
152 | struct spi_transfer xfer[6]; | 179 | struct spi_transfer xfer[6]; |
153 | }; | 180 | }; |
154 | 181 | ||
182 | static void ads7846_enable(struct ads7846 *ts); | ||
183 | static void ads7846_disable(struct ads7846 *ts); | ||
184 | |||
185 | static int device_suspended(struct device *dev) | ||
186 | { | ||
187 | struct ads7846 *ts = dev_get_drvdata(dev); | ||
188 | return dev->power.power_state.event != PM_EVENT_ON || ts->disabled; | ||
189 | } | ||
190 | |||
155 | static int ads7846_read12_ser(struct device *dev, unsigned command) | 191 | static int ads7846_read12_ser(struct device *dev, unsigned command) |
156 | { | 192 | { |
157 | struct spi_device *spi = to_spi_device(dev); | 193 | struct spi_device *spi = to_spi_device(dev); |
@@ -164,7 +200,7 @@ static int ads7846_read12_ser(struct device *dev, unsigned command) | |||
164 | if (!req) | 200 | if (!req) |
165 | return -ENOMEM; | 201 | return -ENOMEM; |
166 | 202 | ||
167 | INIT_LIST_HEAD(&req->msg.transfers); | 203 | spi_message_init(&req->msg); |
168 | 204 | ||
169 | /* activate reference, so it has time to settle; */ | 205 | /* activate reference, so it has time to settle; */ |
170 | req->ref_on = REF_ON; | 206 | req->ref_on = REF_ON; |
@@ -204,8 +240,10 @@ static int ads7846_read12_ser(struct device *dev, unsigned command) | |||
204 | for (i = 0; i < 6; i++) | 240 | for (i = 0; i < 6; i++) |
205 | spi_message_add_tail(&req->xfer[i], &req->msg); | 241 | spi_message_add_tail(&req->xfer[i], &req->msg); |
206 | 242 | ||
243 | ts->irq_disabled = 1; | ||
207 | disable_irq(spi->irq); | 244 | disable_irq(spi->irq); |
208 | status = spi_sync(spi, &req->msg); | 245 | status = spi_sync(spi, &req->msg); |
246 | ts->irq_disabled = 0; | ||
209 | enable_irq(spi->irq); | 247 | enable_irq(spi->irq); |
210 | 248 | ||
211 | if (req->msg.status) | 249 | if (req->msg.status) |
@@ -233,6 +271,52 @@ SHOW(temp1) | |||
233 | SHOW(vaux) | 271 | SHOW(vaux) |
234 | SHOW(vbatt) | 272 | SHOW(vbatt) |
235 | 273 | ||
274 | static int is_pen_down(struct device *dev) | ||
275 | { | ||
276 | struct ads7846 *ts = dev_get_drvdata(dev); | ||
277 | |||
278 | return ts->pendown; | ||
279 | } | ||
280 | |||
281 | static ssize_t ads7846_pen_down_show(struct device *dev, | ||
282 | struct device_attribute *attr, char *buf) | ||
283 | { | ||
284 | return sprintf(buf, "%u\n", is_pen_down(dev)); | ||
285 | } | ||
286 | |||
287 | static DEVICE_ATTR(pen_down, S_IRUGO, ads7846_pen_down_show, NULL); | ||
288 | |||
289 | static ssize_t ads7846_disable_show(struct device *dev, | ||
290 | struct device_attribute *attr, char *buf) | ||
291 | { | ||
292 | struct ads7846 *ts = dev_get_drvdata(dev); | ||
293 | |||
294 | return sprintf(buf, "%u\n", ts->disabled); | ||
295 | } | ||
296 | |||
297 | static ssize_t ads7846_disable_store(struct device *dev, | ||
298 | struct device_attribute *attr, | ||
299 | const char *buf, size_t count) | ||
300 | { | ||
301 | struct ads7846 *ts = dev_get_drvdata(dev); | ||
302 | char *endp; | ||
303 | int i; | ||
304 | |||
305 | i = simple_strtoul(buf, &endp, 10); | ||
306 | spin_lock_irq(&ts->lock); | ||
307 | |||
308 | if (i) | ||
309 | ads7846_disable(ts); | ||
310 | else | ||
311 | ads7846_enable(ts); | ||
312 | |||
313 | spin_unlock_irq(&ts->lock); | ||
314 | |||
315 | return count; | ||
316 | } | ||
317 | |||
318 | static DEVICE_ATTR(disable, 0664, ads7846_disable_show, ads7846_disable_store); | ||
319 | |||
236 | /*--------------------------------------------------------------------------*/ | 320 | /*--------------------------------------------------------------------------*/ |
237 | 321 | ||
238 | /* | 322 | /* |
@@ -264,7 +348,7 @@ static void ads7846_rx(void *ads) | |||
264 | if (x == MAX_12BIT) | 348 | if (x == MAX_12BIT) |
265 | x = 0; | 349 | x = 0; |
266 | 350 | ||
267 | if (x && z1 && ts->spi->dev.power.power_state.event == PM_EVENT_ON) { | 351 | if (likely(x && z1 && !device_suspended(&ts->spi->dev))) { |
268 | /* compute touch pressure resistance using equation #2 */ | 352 | /* compute touch pressure resistance using equation #2 */ |
269 | Rt = z2; | 353 | Rt = z2; |
270 | Rt -= z1; | 354 | Rt -= z1; |
@@ -275,6 +359,14 @@ static void ads7846_rx(void *ads) | |||
275 | } else | 359 | } else |
276 | Rt = 0; | 360 | Rt = 0; |
277 | 361 | ||
362 | /* Sample found inconsistent by debouncing or pressure is beyond | ||
363 | * the maximum. Don't report it to user space, repeat at least | ||
364 | * once more the measurement */ | ||
365 | if (ts->tc.ignore || Rt > ts->pressure_max) { | ||
366 | mod_timer(&ts->timer, jiffies + TS_POLL_PERIOD); | ||
367 | return; | ||
368 | } | ||
369 | |||
278 | /* NOTE: "pendown" is inferred from pressure; we don't rely on | 370 | /* NOTE: "pendown" is inferred from pressure; we don't rely on |
279 | * being able to check nPENIRQ status, or "friendly" trigger modes | 371 | * being able to check nPENIRQ status, or "friendly" trigger modes |
280 | * (both-edges is much better than just-falling or low-level). | 372 | * (both-edges is much better than just-falling or low-level). |
@@ -296,11 +388,13 @@ static void ads7846_rx(void *ads) | |||
296 | if (Rt) { | 388 | if (Rt) { |
297 | input_report_abs(input_dev, ABS_X, x); | 389 | input_report_abs(input_dev, ABS_X, x); |
298 | input_report_abs(input_dev, ABS_Y, y); | 390 | input_report_abs(input_dev, ABS_Y, y); |
299 | input_report_abs(input_dev, ABS_PRESSURE, Rt); | ||
300 | sync = 1; | 391 | sync = 1; |
301 | } | 392 | } |
302 | if (sync) | 393 | |
394 | if (sync) { | ||
395 | input_report_abs(input_dev, ABS_PRESSURE, Rt); | ||
303 | input_sync(input_dev); | 396 | input_sync(input_dev); |
397 | } | ||
304 | 398 | ||
305 | #ifdef VERBOSE | 399 | #ifdef VERBOSE |
306 | if (Rt || ts->pendown) | 400 | if (Rt || ts->pendown) |
@@ -308,80 +402,138 @@ static void ads7846_rx(void *ads) | |||
308 | x, y, Rt, Rt ? "" : " UP"); | 402 | x, y, Rt, Rt ? "" : " UP"); |
309 | #endif | 403 | #endif |
310 | 404 | ||
311 | /* don't retrigger while we're suspended */ | ||
312 | spin_lock_irqsave(&ts->lock, flags); | 405 | spin_lock_irqsave(&ts->lock, flags); |
313 | 406 | ||
314 | ts->pendown = (Rt != 0); | 407 | ts->pendown = (Rt != 0); |
315 | ts->pending = 0; | 408 | mod_timer(&ts->timer, jiffies + TS_POLL_PERIOD); |
316 | 409 | ||
317 | if (ts->spi->dev.power.power_state.event == PM_EVENT_ON) { | 410 | spin_unlock_irqrestore(&ts->lock, flags); |
318 | if (ts->pendown) | 411 | } |
319 | mod_timer(&ts->timer, jiffies + TS_POLL_PERIOD); | 412 | |
320 | else if (ts->irq_disabled) { | 413 | static void ads7846_debounce(void *ads) |
321 | ts->irq_disabled = 0; | 414 | { |
322 | enable_irq(ts->spi->irq); | 415 | struct ads7846 *ts = ads; |
416 | struct spi_message *m; | ||
417 | struct spi_transfer *t; | ||
418 | int val; | ||
419 | int status; | ||
420 | |||
421 | m = &ts->msg[ts->msg_idx]; | ||
422 | t = list_entry(m->transfers.prev, struct spi_transfer, transfer_list); | ||
423 | val = (*(u16 *)t->rx_buf) >> 3; | ||
424 | if (!ts->read_cnt || (abs(ts->last_read - val) > ts->debounce_tol)) { | ||
425 | /* Repeat it, if this was the first read or the read | ||
426 | * wasn't consistent enough. */ | ||
427 | if (ts->read_cnt < ts->debounce_max) { | ||
428 | ts->last_read = val; | ||
429 | ts->read_cnt++; | ||
430 | } else { | ||
431 | /* Maximum number of debouncing reached and still | ||
432 | * not enough number of consistent readings. Abort | ||
433 | * the whole sample, repeat it in the next sampling | ||
434 | * period. | ||
435 | */ | ||
436 | ts->tc.ignore = 1; | ||
437 | ts->read_cnt = 0; | ||
438 | /* Last message will contain ads7846_rx() as the | ||
439 | * completion function. | ||
440 | */ | ||
441 | m = ts->last_msg; | ||
323 | } | 442 | } |
443 | /* Start over collecting consistent readings. */ | ||
444 | ts->read_rep = 0; | ||
445 | } else { | ||
446 | if (++ts->read_rep > ts->debounce_rep) { | ||
447 | /* Got a good reading for this coordinate, | ||
448 | * go for the next one. */ | ||
449 | ts->tc.ignore = 0; | ||
450 | ts->msg_idx++; | ||
451 | ts->read_cnt = 0; | ||
452 | ts->read_rep = 0; | ||
453 | m++; | ||
454 | } else | ||
455 | /* Read more values that are consistent. */ | ||
456 | ts->read_cnt++; | ||
324 | } | 457 | } |
325 | 458 | status = spi_async(ts->spi, m); | |
326 | spin_unlock_irqrestore(&ts->lock, flags); | 459 | if (status) |
460 | dev_err(&ts->spi->dev, "spi_async --> %d\n", | ||
461 | status); | ||
327 | } | 462 | } |
328 | 463 | ||
329 | static void ads7846_timer(unsigned long handle) | 464 | static void ads7846_timer(unsigned long handle) |
330 | { | 465 | { |
331 | struct ads7846 *ts = (void *)handle; | 466 | struct ads7846 *ts = (void *)handle; |
332 | int status = 0; | 467 | int status = 0; |
333 | unsigned long flags; | 468 | |
469 | spin_lock_irq(&ts->lock); | ||
470 | |||
471 | if (unlikely(ts->msg_idx && !ts->pendown)) { | ||
472 | /* measurment cycle ended */ | ||
473 | if (!device_suspended(&ts->spi->dev)) { | ||
474 | ts->irq_disabled = 0; | ||
475 | enable_irq(ts->spi->irq); | ||
476 | } | ||
477 | ts->pending = 0; | ||
478 | ts->msg_idx = 0; | ||
479 | } else { | ||
480 | /* pen is still down, continue with the measurement */ | ||
481 | ts->msg_idx = 0; | ||
482 | status = spi_async(ts->spi, &ts->msg[0]); | ||
483 | if (status) | ||
484 | dev_err(&ts->spi->dev, "spi_async --> %d\n", status); | ||
485 | } | ||
486 | |||
487 | spin_unlock_irq(&ts->lock); | ||
488 | } | ||
489 | |||
490 | static irqreturn_t ads7846_irq(int irq, void *handle, struct pt_regs *regs) | ||
491 | { | ||
492 | struct ads7846 *ts = handle; | ||
493 | unsigned long flags; | ||
334 | 494 | ||
335 | spin_lock_irqsave(&ts->lock, flags); | 495 | spin_lock_irqsave(&ts->lock, flags); |
336 | if (!ts->pending) { | 496 | if (likely(ts->get_pendown_state())) { |
337 | ts->pending = 1; | ||
338 | if (!ts->irq_disabled) { | 497 | if (!ts->irq_disabled) { |
498 | /* REVISIT irq logic for many ARM chips has cloned a | ||
499 | * bug wherein disabling an irq in its handler won't | ||
500 | * work;(it's disabled lazily, and too late to work. | ||
501 | * until all their irq logic is fixed, we must shadow | ||
502 | * that state here. | ||
503 | */ | ||
339 | ts->irq_disabled = 1; | 504 | ts->irq_disabled = 1; |
340 | disable_irq(ts->spi->irq); | 505 | disable_irq(ts->spi->irq); |
506 | ts->pending = 1; | ||
507 | mod_timer(&ts->timer, jiffies); | ||
341 | } | 508 | } |
342 | status = spi_async(ts->spi, &ts->msg); | ||
343 | if (status) | ||
344 | dev_err(&ts->spi->dev, "spi_async --> %d\n", | ||
345 | status); | ||
346 | } | 509 | } |
347 | spin_unlock_irqrestore(&ts->lock, flags); | 510 | spin_unlock_irqrestore(&ts->lock, flags); |
348 | } | ||
349 | 511 | ||
350 | static irqreturn_t ads7846_irq(int irq, void *handle, struct pt_regs *regs) | ||
351 | { | ||
352 | ads7846_timer((unsigned long) handle); | ||
353 | return IRQ_HANDLED; | 512 | return IRQ_HANDLED; |
354 | } | 513 | } |
355 | 514 | ||
356 | /*--------------------------------------------------------------------------*/ | 515 | /*--------------------------------------------------------------------------*/ |
357 | 516 | ||
358 | static int | 517 | /* Must be called with ts->lock held */ |
359 | ads7846_suspend(struct spi_device *spi, pm_message_t message) | 518 | static void ads7846_disable(struct ads7846 *ts) |
360 | { | 519 | { |
361 | struct ads7846 *ts = dev_get_drvdata(&spi->dev); | 520 | if (ts->disabled) |
362 | unsigned long flags; | 521 | return; |
363 | 522 | ||
364 | spin_lock_irqsave(&ts->lock, flags); | 523 | ts->disabled = 1; |
365 | |||
366 | spi->dev.power.power_state = message; | ||
367 | 524 | ||
368 | /* are we waiting for IRQ, or polling? */ | 525 | /* are we waiting for IRQ, or polling? */ |
369 | if (!ts->pendown) { | 526 | if (!ts->pending) { |
370 | if (!ts->irq_disabled) { | 527 | ts->irq_disabled = 1; |
371 | ts->irq_disabled = 1; | 528 | disable_irq(ts->spi->irq); |
372 | disable_irq(ts->spi->irq); | ||
373 | } | ||
374 | } else { | 529 | } else { |
375 | /* polling; force a final SPI completion; | 530 | /* the timer will run at least once more, and |
376 | * that will clean things up neatly | 531 | * leave everything in a clean state, IRQ disabled |
377 | */ | 532 | */ |
378 | if (!ts->pending) | 533 | while (ts->pending) { |
379 | mod_timer(&ts->timer, jiffies); | 534 | spin_unlock_irq(&ts->lock); |
380 | 535 | msleep(1); | |
381 | while (ts->pendown || ts->pending) { | 536 | spin_lock_irq(&ts->lock); |
382 | spin_unlock_irqrestore(&ts->lock, flags); | ||
383 | udelay(10); | ||
384 | spin_lock_irqsave(&ts->lock, flags); | ||
385 | } | 537 | } |
386 | } | 538 | } |
387 | 539 | ||
@@ -389,17 +541,45 @@ ads7846_suspend(struct spi_device *spi, pm_message_t message) | |||
389 | * leave it that way after every request | 541 | * leave it that way after every request |
390 | */ | 542 | */ |
391 | 543 | ||
392 | spin_unlock_irqrestore(&ts->lock, flags); | 544 | } |
545 | |||
546 | /* Must be called with ts->lock held */ | ||
547 | static void ads7846_enable(struct ads7846 *ts) | ||
548 | { | ||
549 | if (!ts->disabled) | ||
550 | return; | ||
551 | |||
552 | ts->disabled = 0; | ||
553 | ts->irq_disabled = 0; | ||
554 | enable_irq(ts->spi->irq); | ||
555 | } | ||
556 | |||
557 | static int ads7846_suspend(struct spi_device *spi, pm_message_t message) | ||
558 | { | ||
559 | struct ads7846 *ts = dev_get_drvdata(&spi->dev); | ||
560 | |||
561 | spin_lock_irq(&ts->lock); | ||
562 | |||
563 | spi->dev.power.power_state = message; | ||
564 | ads7846_disable(ts); | ||
565 | |||
566 | spin_unlock_irq(&ts->lock); | ||
567 | |||
393 | return 0; | 568 | return 0; |
569 | |||
394 | } | 570 | } |
395 | 571 | ||
396 | static int ads7846_resume(struct spi_device *spi) | 572 | static int ads7846_resume(struct spi_device *spi) |
397 | { | 573 | { |
398 | struct ads7846 *ts = dev_get_drvdata(&spi->dev); | 574 | struct ads7846 *ts = dev_get_drvdata(&spi->dev); |
399 | 575 | ||
400 | ts->irq_disabled = 0; | 576 | spin_lock_irq(&ts->lock); |
401 | enable_irq(ts->spi->irq); | 577 | |
402 | spi->dev.power.power_state = PMSG_ON; | 578 | spi->dev.power.power_state = PMSG_ON; |
579 | ads7846_enable(ts); | ||
580 | |||
581 | spin_unlock_irq(&ts->lock); | ||
582 | |||
403 | return 0; | 583 | return 0; |
404 | } | 584 | } |
405 | 585 | ||
@@ -408,6 +588,7 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
408 | struct ads7846 *ts; | 588 | struct ads7846 *ts; |
409 | struct input_dev *input_dev; | 589 | struct input_dev *input_dev; |
410 | struct ads7846_platform_data *pdata = spi->dev.platform_data; | 590 | struct ads7846_platform_data *pdata = spi->dev.platform_data; |
591 | struct spi_message *m; | ||
411 | struct spi_transfer *x; | 592 | struct spi_transfer *x; |
412 | int err; | 593 | int err; |
413 | 594 | ||
@@ -428,6 +609,11 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
428 | return -EINVAL; | 609 | return -EINVAL; |
429 | } | 610 | } |
430 | 611 | ||
612 | if (pdata->get_pendown_state == NULL) { | ||
613 | dev_dbg(&spi->dev, "no get_pendown_state function?\n"); | ||
614 | return -EINVAL; | ||
615 | } | ||
616 | |||
431 | /* We'd set the wordsize to 12 bits ... except that some controllers | 617 | /* We'd set the wordsize to 12 bits ... except that some controllers |
432 | * will then treat the 8 bit command words as 12 bits (and drop the | 618 | * will then treat the 8 bit command words as 12 bits (and drop the |
433 | * four MSBs of the 12 bit result). Result: inputs must be shifted | 619 | * four MSBs of the 12 bit result). Result: inputs must be shifted |
@@ -451,9 +637,21 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
451 | ts->timer.data = (unsigned long) ts; | 637 | ts->timer.data = (unsigned long) ts; |
452 | ts->timer.function = ads7846_timer; | 638 | ts->timer.function = ads7846_timer; |
453 | 639 | ||
640 | spin_lock_init(&ts->lock); | ||
641 | |||
454 | ts->model = pdata->model ? : 7846; | 642 | ts->model = pdata->model ? : 7846; |
455 | ts->vref_delay_usecs = pdata->vref_delay_usecs ? : 100; | 643 | ts->vref_delay_usecs = pdata->vref_delay_usecs ? : 100; |
456 | ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; | 644 | ts->x_plate_ohms = pdata->x_plate_ohms ? : 400; |
645 | ts->pressure_max = pdata->pressure_max ? : ~0; | ||
646 | if (pdata->debounce_max) { | ||
647 | ts->debounce_max = pdata->debounce_max; | ||
648 | ts->debounce_tol = pdata->debounce_tol; | ||
649 | ts->debounce_rep = pdata->debounce_rep; | ||
650 | if (ts->debounce_rep > ts->debounce_max + 1) | ||
651 | ts->debounce_rep = ts->debounce_max - 1; | ||
652 | } else | ||
653 | ts->debounce_tol = ~0; | ||
654 | ts->get_pendown_state = pdata->get_pendown_state; | ||
457 | 655 | ||
458 | snprintf(ts->phys, sizeof(ts->phys), "%s/input0", spi->dev.bus_id); | 656 | snprintf(ts->phys, sizeof(ts->phys), "%s/input0", spi->dev.bus_id); |
459 | 657 | ||
@@ -477,60 +675,100 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
477 | /* set up the transfers to read touchscreen state; this assumes we | 675 | /* set up the transfers to read touchscreen state; this assumes we |
478 | * use formula #2 for pressure, not #3. | 676 | * use formula #2 for pressure, not #3. |
479 | */ | 677 | */ |
480 | INIT_LIST_HEAD(&ts->msg.transfers); | 678 | m = &ts->msg[0]; |
481 | x = ts->xfer; | 679 | x = ts->xfer; |
482 | 680 | ||
681 | spi_message_init(m); | ||
682 | |||
483 | /* y- still on; turn on only y+ (and ADC) */ | 683 | /* y- still on; turn on only y+ (and ADC) */ |
484 | ts->read_y = READ_Y; | 684 | ts->read_y = READ_Y; |
485 | x->tx_buf = &ts->read_y; | 685 | x->tx_buf = &ts->read_y; |
486 | x->len = 1; | 686 | x->len = 1; |
487 | spi_message_add_tail(x, &ts->msg); | 687 | spi_message_add_tail(x, m); |
488 | 688 | ||
489 | x++; | 689 | x++; |
490 | x->rx_buf = &ts->tc.y; | 690 | x->rx_buf = &ts->tc.y; |
491 | x->len = 2; | 691 | x->len = 2; |
492 | spi_message_add_tail(x, &ts->msg); | 692 | spi_message_add_tail(x, m); |
693 | |||
694 | m->complete = ads7846_debounce; | ||
695 | m->context = ts; | ||
696 | |||
697 | m++; | ||
698 | spi_message_init(m); | ||
699 | |||
700 | /* turn y- off, x+ on, then leave in lowpower */ | ||
701 | x++; | ||
702 | ts->read_x = READ_X; | ||
703 | x->tx_buf = &ts->read_x; | ||
704 | x->len = 1; | ||
705 | spi_message_add_tail(x, m); | ||
706 | |||
707 | x++; | ||
708 | x->rx_buf = &ts->tc.x; | ||
709 | x->len = 2; | ||
710 | spi_message_add_tail(x, m); | ||
711 | |||
712 | m->complete = ads7846_debounce; | ||
713 | m->context = ts; | ||
493 | 714 | ||
494 | /* turn y+ off, x- on; we'll use formula #2 */ | 715 | /* turn y+ off, x- on; we'll use formula #2 */ |
495 | if (ts->model == 7846) { | 716 | if (ts->model == 7846) { |
717 | m++; | ||
718 | spi_message_init(m); | ||
719 | |||
496 | x++; | 720 | x++; |
497 | ts->read_z1 = READ_Z1; | 721 | ts->read_z1 = READ_Z1; |
498 | x->tx_buf = &ts->read_z1; | 722 | x->tx_buf = &ts->read_z1; |
499 | x->len = 1; | 723 | x->len = 1; |
500 | spi_message_add_tail(x, &ts->msg); | 724 | spi_message_add_tail(x, m); |
501 | 725 | ||
502 | x++; | 726 | x++; |
503 | x->rx_buf = &ts->tc.z1; | 727 | x->rx_buf = &ts->tc.z1; |
504 | x->len = 2; | 728 | x->len = 2; |
505 | spi_message_add_tail(x, &ts->msg); | 729 | spi_message_add_tail(x, m); |
730 | |||
731 | m->complete = ads7846_debounce; | ||
732 | m->context = ts; | ||
733 | |||
734 | m++; | ||
735 | spi_message_init(m); | ||
506 | 736 | ||
507 | x++; | 737 | x++; |
508 | ts->read_z2 = READ_Z2; | 738 | ts->read_z2 = READ_Z2; |
509 | x->tx_buf = &ts->read_z2; | 739 | x->tx_buf = &ts->read_z2; |
510 | x->len = 1; | 740 | x->len = 1; |
511 | spi_message_add_tail(x, &ts->msg); | 741 | spi_message_add_tail(x, m); |
512 | 742 | ||
513 | x++; | 743 | x++; |
514 | x->rx_buf = &ts->tc.z2; | 744 | x->rx_buf = &ts->tc.z2; |
515 | x->len = 2; | 745 | x->len = 2; |
516 | spi_message_add_tail(x, &ts->msg); | 746 | spi_message_add_tail(x, m); |
747 | |||
748 | m->complete = ads7846_debounce; | ||
749 | m->context = ts; | ||
517 | } | 750 | } |
518 | 751 | ||
519 | /* turn y- off, x+ on, then leave in lowpower */ | 752 | /* power down */ |
753 | m++; | ||
754 | spi_message_init(m); | ||
755 | |||
520 | x++; | 756 | x++; |
521 | ts->read_x = READ_X; | 757 | ts->pwrdown = PWRDOWN; |
522 | x->tx_buf = &ts->read_x; | 758 | x->tx_buf = &ts->pwrdown; |
523 | x->len = 1; | 759 | x->len = 1; |
524 | spi_message_add_tail(x, &ts->msg); | 760 | spi_message_add_tail(x, m); |
525 | 761 | ||
526 | x++; | 762 | x++; |
527 | x->rx_buf = &ts->tc.x; | 763 | x->rx_buf = &ts->dummy; |
528 | x->len = 2; | 764 | x->len = 2; |
529 | CS_CHANGE(*x); | 765 | CS_CHANGE(*x); |
530 | spi_message_add_tail(x, &ts->msg); | 766 | spi_message_add_tail(x, m); |
531 | 767 | ||
532 | ts->msg.complete = ads7846_rx; | 768 | m->complete = ads7846_rx; |
533 | ts->msg.context = ts; | 769 | m->context = ts; |
770 | |||
771 | ts->last_msg = m; | ||
534 | 772 | ||
535 | if (request_irq(spi->irq, ads7846_irq, | 773 | if (request_irq(spi->irq, ads7846_irq, |
536 | SA_SAMPLE_RANDOM | SA_TRIGGER_FALLING, | 774 | SA_SAMPLE_RANDOM | SA_TRIGGER_FALLING, |
@@ -559,13 +797,27 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
559 | device_create_file(&spi->dev, &dev_attr_vbatt); | 797 | device_create_file(&spi->dev, &dev_attr_vbatt); |
560 | device_create_file(&spi->dev, &dev_attr_vaux); | 798 | device_create_file(&spi->dev, &dev_attr_vaux); |
561 | 799 | ||
800 | device_create_file(&spi->dev, &dev_attr_pen_down); | ||
801 | |||
802 | device_create_file(&spi->dev, &dev_attr_disable); | ||
803 | |||
562 | err = input_register_device(input_dev); | 804 | err = input_register_device(input_dev); |
563 | if (err) | 805 | if (err) |
564 | goto err_free_irq; | 806 | goto err_remove_attr; |
565 | 807 | ||
566 | return 0; | 808 | return 0; |
567 | 809 | ||
568 | err_free_irq: | 810 | err_remove_attr: |
811 | device_remove_file(&spi->dev, &dev_attr_disable); | ||
812 | device_remove_file(&spi->dev, &dev_attr_pen_down); | ||
813 | if (ts->model == 7846) { | ||
814 | device_remove_file(&spi->dev, &dev_attr_temp1); | ||
815 | device_remove_file(&spi->dev, &dev_attr_temp0); | ||
816 | } | ||
817 | if (ts->model != 7845) | ||
818 | device_remove_file(&spi->dev, &dev_attr_vbatt); | ||
819 | device_remove_file(&spi->dev, &dev_attr_vaux); | ||
820 | |||
569 | free_irq(spi->irq, ts); | 821 | free_irq(spi->irq, ts); |
570 | err_free_mem: | 822 | err_free_mem: |
571 | input_free_device(input_dev); | 823 | input_free_device(input_dev); |
@@ -577,20 +829,24 @@ static int __devexit ads7846_remove(struct spi_device *spi) | |||
577 | { | 829 | { |
578 | struct ads7846 *ts = dev_get_drvdata(&spi->dev); | 830 | struct ads7846 *ts = dev_get_drvdata(&spi->dev); |
579 | 831 | ||
832 | input_unregister_device(ts->input); | ||
833 | |||
580 | ads7846_suspend(spi, PMSG_SUSPEND); | 834 | ads7846_suspend(spi, PMSG_SUSPEND); |
581 | free_irq(ts->spi->irq, ts); | ||
582 | if (ts->irq_disabled) | ||
583 | enable_irq(ts->spi->irq); | ||
584 | 835 | ||
836 | device_remove_file(&spi->dev, &dev_attr_disable); | ||
837 | device_remove_file(&spi->dev, &dev_attr_pen_down); | ||
585 | if (ts->model == 7846) { | 838 | if (ts->model == 7846) { |
586 | device_remove_file(&spi->dev, &dev_attr_temp0); | ||
587 | device_remove_file(&spi->dev, &dev_attr_temp1); | 839 | device_remove_file(&spi->dev, &dev_attr_temp1); |
840 | device_remove_file(&spi->dev, &dev_attr_temp0); | ||
588 | } | 841 | } |
589 | if (ts->model != 7845) | 842 | if (ts->model != 7845) |
590 | device_remove_file(&spi->dev, &dev_attr_vbatt); | 843 | device_remove_file(&spi->dev, &dev_attr_vbatt); |
591 | device_remove_file(&spi->dev, &dev_attr_vaux); | 844 | device_remove_file(&spi->dev, &dev_attr_vaux); |
592 | 845 | ||
593 | input_unregister_device(ts->input); | 846 | free_irq(ts->spi->irq, ts); |
847 | /* suspend left the IRQ disabled */ | ||
848 | enable_irq(ts->spi->irq); | ||
849 | |||
594 | kfree(ts); | 850 | kfree(ts); |
595 | 851 | ||
596 | dev_dbg(&spi->dev, "unregistered touchscreen\n"); | 852 | dev_dbg(&spi->dev, "unregistered touchscreen\n"); |
diff --git a/drivers/input/touchscreen/corgi_ts.c b/drivers/input/touchscreen/corgi_ts.c index 1042987856f7..5013703db0e6 100644 --- a/drivers/input/touchscreen/corgi_ts.c +++ b/drivers/input/touchscreen/corgi_ts.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/slab.h> | 19 | #include <linux/slab.h> |
20 | #include <asm/irq.h> | 20 | //#include <asm/irq.h> |
21 | 21 | ||
22 | #include <asm/arch/sharpsl.h> | 22 | #include <asm/arch/sharpsl.h> |
23 | #include <asm/arch/hardware.h> | 23 | #include <asm/arch/hardware.h> |
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 6081941de1b3..4070eff6f0f8 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -315,10 +315,11 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
315 | if (r1_bio->bios[mirror] == bio) | 315 | if (r1_bio->bios[mirror] == bio) |
316 | break; | 316 | break; |
317 | 317 | ||
318 | if (error == -ENOTSUPP && test_bit(R1BIO_Barrier, &r1_bio->state)) { | 318 | if (error == -EOPNOTSUPP && test_bit(R1BIO_Barrier, &r1_bio->state)) { |
319 | set_bit(BarriersNotsupp, &conf->mirrors[mirror].rdev->flags); | 319 | set_bit(BarriersNotsupp, &conf->mirrors[mirror].rdev->flags); |
320 | set_bit(R1BIO_BarrierRetry, &r1_bio->state); | 320 | set_bit(R1BIO_BarrierRetry, &r1_bio->state); |
321 | r1_bio->mddev->barriers_work = 0; | 321 | r1_bio->mddev->barriers_work = 0; |
322 | /* Don't rdev_dec_pending in this branch - keep it for the retry */ | ||
322 | } else { | 323 | } else { |
323 | /* | 324 | /* |
324 | * this branch is our 'one mirror IO has finished' event handler: | 325 | * this branch is our 'one mirror IO has finished' event handler: |
@@ -365,6 +366,7 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
365 | } | 366 | } |
366 | } | 367 | } |
367 | } | 368 | } |
369 | rdev_dec_pending(conf->mirrors[mirror].rdev, conf->mddev); | ||
368 | } | 370 | } |
369 | /* | 371 | /* |
370 | * | 372 | * |
@@ -374,11 +376,9 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
374 | if (atomic_dec_and_test(&r1_bio->remaining)) { | 376 | if (atomic_dec_and_test(&r1_bio->remaining)) { |
375 | if (test_bit(R1BIO_BarrierRetry, &r1_bio->state)) { | 377 | if (test_bit(R1BIO_BarrierRetry, &r1_bio->state)) { |
376 | reschedule_retry(r1_bio); | 378 | reschedule_retry(r1_bio); |
377 | /* Don't dec_pending yet, we want to hold | ||
378 | * the reference over the retry | ||
379 | */ | ||
380 | goto out; | 379 | goto out; |
381 | } | 380 | } |
381 | /* it really is the end of this request */ | ||
382 | if (test_bit(R1BIO_BehindIO, &r1_bio->state)) { | 382 | if (test_bit(R1BIO_BehindIO, &r1_bio->state)) { |
383 | /* free extra copy of the data pages */ | 383 | /* free extra copy of the data pages */ |
384 | int i = bio->bi_vcnt; | 384 | int i = bio->bi_vcnt; |
@@ -393,8 +393,6 @@ static int raid1_end_write_request(struct bio *bio, unsigned int bytes_done, int | |||
393 | md_write_end(r1_bio->mddev); | 393 | md_write_end(r1_bio->mddev); |
394 | raid_end_bio_io(r1_bio); | 394 | raid_end_bio_io(r1_bio); |
395 | } | 395 | } |
396 | |||
397 | rdev_dec_pending(conf->mirrors[mirror].rdev, conf->mddev); | ||
398 | out: | 396 | out: |
399 | if (to_put) | 397 | if (to_put) |
400 | bio_put(to_put); | 398 | bio_put(to_put); |
@@ -753,18 +751,24 @@ static int make_request(request_queue_t *q, struct bio * bio) | |||
753 | const int rw = bio_data_dir(bio); | 751 | const int rw = bio_data_dir(bio); |
754 | int do_barriers; | 752 | int do_barriers; |
755 | 753 | ||
756 | if (unlikely(!mddev->barriers_work && bio_barrier(bio))) { | ||
757 | bio_endio(bio, bio->bi_size, -EOPNOTSUPP); | ||
758 | return 0; | ||
759 | } | ||
760 | |||
761 | /* | 754 | /* |
762 | * Register the new request and wait if the reconstruction | 755 | * Register the new request and wait if the reconstruction |
763 | * thread has put up a bar for new requests. | 756 | * thread has put up a bar for new requests. |
764 | * Continue immediately if no resync is active currently. | 757 | * Continue immediately if no resync is active currently. |
758 | * We test barriers_work *after* md_write_start as md_write_start | ||
759 | * may cause the first superblock write, and that will check out | ||
760 | * if barriers work. | ||
765 | */ | 761 | */ |
762 | |||
766 | md_write_start(mddev, bio); /* wait on superblock update early */ | 763 | md_write_start(mddev, bio); /* wait on superblock update early */ |
767 | 764 | ||
765 | if (unlikely(!mddev->barriers_work && bio_barrier(bio))) { | ||
766 | if (rw == WRITE) | ||
767 | md_write_end(mddev); | ||
768 | bio_endio(bio, bio->bi_size, -EOPNOTSUPP); | ||
769 | return 0; | ||
770 | } | ||
771 | |||
768 | wait_barrier(conf); | 772 | wait_barrier(conf); |
769 | 773 | ||
770 | disk_stat_inc(mddev->gendisk, ios[rw]); | 774 | disk_stat_inc(mddev->gendisk, ios[rw]); |
@@ -1404,10 +1408,11 @@ static void raid1d(mddev_t *mddev) | |||
1404 | unplug = 1; | 1408 | unplug = 1; |
1405 | } else if (test_bit(R1BIO_BarrierRetry, &r1_bio->state)) { | 1409 | } else if (test_bit(R1BIO_BarrierRetry, &r1_bio->state)) { |
1406 | /* some requests in the r1bio were BIO_RW_BARRIER | 1410 | /* some requests in the r1bio were BIO_RW_BARRIER |
1407 | * requests which failed with -ENOTSUPP. Hohumm.. | 1411 | * requests which failed with -EOPNOTSUPP. Hohumm.. |
1408 | * Better resubmit without the barrier. | 1412 | * Better resubmit without the barrier. |
1409 | * We know which devices to resubmit for, because | 1413 | * We know which devices to resubmit for, because |
1410 | * all others have had their bios[] entry cleared. | 1414 | * all others have had their bios[] entry cleared. |
1415 | * We already have a nr_pending reference on these rdevs. | ||
1411 | */ | 1416 | */ |
1412 | int i; | 1417 | int i; |
1413 | clear_bit(R1BIO_BarrierRetry, &r1_bio->state); | 1418 | clear_bit(R1BIO_BarrierRetry, &r1_bio->state); |
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 617012bc107a..1440935414e6 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -1407,43 +1407,54 @@ static void raid10d(mddev_t *mddev) | |||
1407 | if (s > (PAGE_SIZE>>9)) | 1407 | if (s > (PAGE_SIZE>>9)) |
1408 | s = PAGE_SIZE >> 9; | 1408 | s = PAGE_SIZE >> 9; |
1409 | 1409 | ||
1410 | rcu_read_lock(); | ||
1410 | do { | 1411 | do { |
1411 | int d = r10_bio->devs[sl].devnum; | 1412 | int d = r10_bio->devs[sl].devnum; |
1412 | rdev = conf->mirrors[d].rdev; | 1413 | rdev = rcu_dereference(conf->mirrors[d].rdev); |
1413 | if (rdev && | 1414 | if (rdev && |
1414 | test_bit(In_sync, &rdev->flags) && | 1415 | test_bit(In_sync, &rdev->flags)) { |
1415 | sync_page_io(rdev->bdev, | 1416 | atomic_inc(&rdev->nr_pending); |
1416 | r10_bio->devs[sl].addr + | 1417 | rcu_read_unlock(); |
1417 | sect + rdev->data_offset, | 1418 | success = sync_page_io(rdev->bdev, |
1418 | s<<9, | 1419 | r10_bio->devs[sl].addr + |
1419 | conf->tmppage, READ)) | 1420 | sect + rdev->data_offset, |
1420 | success = 1; | 1421 | s<<9, |
1421 | else { | 1422 | conf->tmppage, READ); |
1422 | sl++; | 1423 | rdev_dec_pending(rdev, mddev); |
1423 | if (sl == conf->copies) | 1424 | rcu_read_lock(); |
1424 | sl = 0; | 1425 | if (success) |
1426 | break; | ||
1425 | } | 1427 | } |
1428 | sl++; | ||
1429 | if (sl == conf->copies) | ||
1430 | sl = 0; | ||
1426 | } while (!success && sl != r10_bio->read_slot); | 1431 | } while (!success && sl != r10_bio->read_slot); |
1432 | rcu_read_unlock(); | ||
1427 | 1433 | ||
1428 | if (success) { | 1434 | if (success) { |
1429 | int start = sl; | 1435 | int start = sl; |
1430 | /* write it back and re-read */ | 1436 | /* write it back and re-read */ |
1437 | rcu_read_lock(); | ||
1431 | while (sl != r10_bio->read_slot) { | 1438 | while (sl != r10_bio->read_slot) { |
1432 | int d; | 1439 | int d; |
1433 | if (sl==0) | 1440 | if (sl==0) |
1434 | sl = conf->copies; | 1441 | sl = conf->copies; |
1435 | sl--; | 1442 | sl--; |
1436 | d = r10_bio->devs[sl].devnum; | 1443 | d = r10_bio->devs[sl].devnum; |
1437 | rdev = conf->mirrors[d].rdev; | 1444 | rdev = rcu_dereference(conf->mirrors[d].rdev); |
1438 | atomic_add(s, &rdev->corrected_errors); | ||
1439 | if (rdev && | 1445 | if (rdev && |
1440 | test_bit(In_sync, &rdev->flags)) { | 1446 | test_bit(In_sync, &rdev->flags)) { |
1447 | atomic_inc(&rdev->nr_pending); | ||
1448 | rcu_read_unlock(); | ||
1449 | atomic_add(s, &rdev->corrected_errors); | ||
1441 | if (sync_page_io(rdev->bdev, | 1450 | if (sync_page_io(rdev->bdev, |
1442 | r10_bio->devs[sl].addr + | 1451 | r10_bio->devs[sl].addr + |
1443 | sect + rdev->data_offset, | 1452 | sect + rdev->data_offset, |
1444 | s<<9, conf->tmppage, WRITE) == 0) | 1453 | s<<9, conf->tmppage, WRITE) == 0) |
1445 | /* Well, this device is dead */ | 1454 | /* Well, this device is dead */ |
1446 | md_error(mddev, rdev); | 1455 | md_error(mddev, rdev); |
1456 | rdev_dec_pending(rdev, mddev); | ||
1457 | rcu_read_lock(); | ||
1447 | } | 1458 | } |
1448 | } | 1459 | } |
1449 | sl = start; | 1460 | sl = start; |
@@ -1453,17 +1464,22 @@ static void raid10d(mddev_t *mddev) | |||
1453 | sl = conf->copies; | 1464 | sl = conf->copies; |
1454 | sl--; | 1465 | sl--; |
1455 | d = r10_bio->devs[sl].devnum; | 1466 | d = r10_bio->devs[sl].devnum; |
1456 | rdev = conf->mirrors[d].rdev; | 1467 | rdev = rcu_dereference(conf->mirrors[d].rdev); |
1457 | if (rdev && | 1468 | if (rdev && |
1458 | test_bit(In_sync, &rdev->flags)) { | 1469 | test_bit(In_sync, &rdev->flags)) { |
1470 | atomic_inc(&rdev->nr_pending); | ||
1471 | rcu_read_unlock(); | ||
1459 | if (sync_page_io(rdev->bdev, | 1472 | if (sync_page_io(rdev->bdev, |
1460 | r10_bio->devs[sl].addr + | 1473 | r10_bio->devs[sl].addr + |
1461 | sect + rdev->data_offset, | 1474 | sect + rdev->data_offset, |
1462 | s<<9, conf->tmppage, READ) == 0) | 1475 | s<<9, conf->tmppage, READ) == 0) |
1463 | /* Well, this device is dead */ | 1476 | /* Well, this device is dead */ |
1464 | md_error(mddev, rdev); | 1477 | md_error(mddev, rdev); |
1478 | rdev_dec_pending(rdev, mddev); | ||
1479 | rcu_read_lock(); | ||
1465 | } | 1480 | } |
1466 | } | 1481 | } |
1482 | rcu_read_unlock(); | ||
1467 | } else { | 1483 | } else { |
1468 | /* Cannot read from anywhere -- bye bye array */ | 1484 | /* Cannot read from anywhere -- bye bye array */ |
1469 | md_error(mddev, conf->mirrors[r10_bio->devs[r10_bio->read_slot].devnum].rdev); | 1485 | md_error(mddev, conf->mirrors[r10_bio->devs[r10_bio->read_slot].devnum].rdev); |
diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c index f9d87b86492c..320b3d9384ba 100644 --- a/drivers/media/video/cx88/cx88-alsa.c +++ b/drivers/media/video/cx88/cx88-alsa.c | |||
@@ -616,7 +616,7 @@ static struct snd_kcontrol_new snd_cx88_capture_volume = { | |||
616 | * Only boards with eeprom and byte 1 at eeprom=1 have it | 616 | * Only boards with eeprom and byte 1 at eeprom=1 have it |
617 | */ | 617 | */ |
618 | 618 | ||
619 | static struct pci_device_id cx88_audio_pci_tbl[] = { | 619 | static struct pci_device_id cx88_audio_pci_tbl[] __devinitdata = { |
620 | {0x14f1,0x8801,PCI_ANY_ID,PCI_ANY_ID,0,0,0}, | 620 | {0x14f1,0x8801,PCI_ANY_ID,PCI_ANY_ID,0,0,0}, |
621 | {0x14f1,0x8811,PCI_ANY_ID,PCI_ANY_ID,0,0,0}, | 621 | {0x14f1,0x8811,PCI_ANY_ID,PCI_ANY_ID,0,0,0}, |
622 | {0, } | 622 | {0, } |
diff --git a/drivers/mmc/at91_mci.c b/drivers/mmc/at91_mci.c index 6061c2d101a0..88f0eef9cf33 100644 --- a/drivers/mmc/at91_mci.c +++ b/drivers/mmc/at91_mci.c | |||
@@ -621,9 +621,6 @@ static void at91_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
621 | struct at91mci_host *host = mmc_priv(mmc); | 621 | struct at91mci_host *host = mmc_priv(mmc); |
622 | unsigned long at91_master_clock = clk_get_rate(mci_clk); | 622 | unsigned long at91_master_clock = clk_get_rate(mci_clk); |
623 | 623 | ||
624 | DBG("Clock %uHz, busmode %u, powermode %u, Vdd %u\n", | ||
625 | ios->clock, ios->bus_mode, ios->power_mode, ios->vdd); | ||
626 | |||
627 | if (host) | 624 | if (host) |
628 | host->bus_mode = ios->bus_mode; | 625 | host->bus_mode = ios->bus_mode; |
629 | else | 626 | else |
diff --git a/drivers/mmc/au1xmmc.c b/drivers/mmc/au1xmmc.c index c0326bbc5f28..914d62b24064 100644 --- a/drivers/mmc/au1xmmc.c +++ b/drivers/mmc/au1xmmc.c | |||
@@ -720,10 +720,6 @@ static void au1xmmc_set_ios(struct mmc_host* mmc, struct mmc_ios* ios) | |||
720 | { | 720 | { |
721 | struct au1xmmc_host *host = mmc_priv(mmc); | 721 | struct au1xmmc_host *host = mmc_priv(mmc); |
722 | 722 | ||
723 | DBG("set_ios (power=%u, clock=%uHz, vdd=%u, mode=%u)\n", | ||
724 | host->id, ios->power_mode, ios->clock, ios->vdd, | ||
725 | ios->bus_mode); | ||
726 | |||
727 | if (ios->power_mode == MMC_POWER_OFF) | 723 | if (ios->power_mode == MMC_POWER_OFF) |
728 | au1xmmc_set_power(host, 0); | 724 | au1xmmc_set_power(host, 0); |
729 | else if (ios->power_mode == MMC_POWER_ON) { | 725 | else if (ios->power_mode == MMC_POWER_ON) { |
diff --git a/drivers/mmc/imxmmc.c b/drivers/mmc/imxmmc.c index ffb7f55d3467..79358e223f57 100644 --- a/drivers/mmc/imxmmc.c +++ b/drivers/mmc/imxmmc.c | |||
@@ -102,6 +102,7 @@ struct imxmci_host { | |||
102 | #define IMXMCI_PEND_CPU_DATA_b 5 | 102 | #define IMXMCI_PEND_CPU_DATA_b 5 |
103 | #define IMXMCI_PEND_CARD_XCHG_b 6 | 103 | #define IMXMCI_PEND_CARD_XCHG_b 6 |
104 | #define IMXMCI_PEND_SET_INIT_b 7 | 104 | #define IMXMCI_PEND_SET_INIT_b 7 |
105 | #define IMXMCI_PEND_STARTED_b 8 | ||
105 | 106 | ||
106 | #define IMXMCI_PEND_IRQ_m (1 << IMXMCI_PEND_IRQ_b) | 107 | #define IMXMCI_PEND_IRQ_m (1 << IMXMCI_PEND_IRQ_b) |
107 | #define IMXMCI_PEND_DMA_END_m (1 << IMXMCI_PEND_DMA_END_b) | 108 | #define IMXMCI_PEND_DMA_END_m (1 << IMXMCI_PEND_DMA_END_b) |
@@ -111,6 +112,7 @@ struct imxmci_host { | |||
111 | #define IMXMCI_PEND_CPU_DATA_m (1 << IMXMCI_PEND_CPU_DATA_b) | 112 | #define IMXMCI_PEND_CPU_DATA_m (1 << IMXMCI_PEND_CPU_DATA_b) |
112 | #define IMXMCI_PEND_CARD_XCHG_m (1 << IMXMCI_PEND_CARD_XCHG_b) | 113 | #define IMXMCI_PEND_CARD_XCHG_m (1 << IMXMCI_PEND_CARD_XCHG_b) |
113 | #define IMXMCI_PEND_SET_INIT_m (1 << IMXMCI_PEND_SET_INIT_b) | 114 | #define IMXMCI_PEND_SET_INIT_m (1 << IMXMCI_PEND_SET_INIT_b) |
115 | #define IMXMCI_PEND_STARTED_m (1 << IMXMCI_PEND_STARTED_b) | ||
114 | 116 | ||
115 | static void imxmci_stop_clock(struct imxmci_host *host) | 117 | static void imxmci_stop_clock(struct imxmci_host *host) |
116 | { | 118 | { |
@@ -131,23 +133,52 @@ static void imxmci_stop_clock(struct imxmci_host *host) | |||
131 | dev_dbg(mmc_dev(host->mmc), "imxmci_stop_clock blocked, no luck\n"); | 133 | dev_dbg(mmc_dev(host->mmc), "imxmci_stop_clock blocked, no luck\n"); |
132 | } | 134 | } |
133 | 135 | ||
134 | static void imxmci_start_clock(struct imxmci_host *host) | 136 | static int imxmci_start_clock(struct imxmci_host *host) |
135 | { | 137 | { |
136 | int i = 0; | 138 | unsigned int trials = 0; |
139 | unsigned int delay_limit = 128; | ||
140 | unsigned long flags; | ||
141 | |||
137 | MMC_STR_STP_CLK &= ~STR_STP_CLK_STOP_CLK; | 142 | MMC_STR_STP_CLK &= ~STR_STP_CLK_STOP_CLK; |
138 | while(i < 0x1000) { | ||
139 | if(!(i & 0x7f)) | ||
140 | MMC_STR_STP_CLK |= STR_STP_CLK_START_CLK; | ||
141 | 143 | ||
142 | if(MMC_STATUS & STATUS_CARD_BUS_CLK_RUN) { | 144 | clear_bit(IMXMCI_PEND_STARTED_b, &host->pending_events); |
143 | /* Check twice before cut */ | 145 | |
146 | /* | ||
147 | * Command start of the clock, this usually succeeds in less | ||
148 | * then 6 delay loops, but during card detection (low clockrate) | ||
149 | * it takes up to 5000 delay loops and sometimes fails for the first time | ||
150 | */ | ||
151 | MMC_STR_STP_CLK |= STR_STP_CLK_START_CLK; | ||
152 | |||
153 | do { | ||
154 | unsigned int delay = delay_limit; | ||
155 | |||
156 | while(delay--){ | ||
144 | if(MMC_STATUS & STATUS_CARD_BUS_CLK_RUN) | 157 | if(MMC_STATUS & STATUS_CARD_BUS_CLK_RUN) |
145 | return; | 158 | /* Check twice before cut */ |
159 | if(MMC_STATUS & STATUS_CARD_BUS_CLK_RUN) | ||
160 | return 0; | ||
161 | |||
162 | if(test_bit(IMXMCI_PEND_STARTED_b, &host->pending_events)) | ||
163 | return 0; | ||
146 | } | 164 | } |
147 | 165 | ||
148 | i++; | 166 | local_irq_save(flags); |
149 | } | 167 | /* |
150 | dev_dbg(mmc_dev(host->mmc), "imxmci_start_clock blocked, no luck\n"); | 168 | * Ensure, that request is not doubled under all possible circumstances. |
169 | * It is possible, that cock running state is missed, because some other | ||
170 | * IRQ or schedule delays this function execution and the clocks has | ||
171 | * been already stopped by other means (response processing, SDHC HW) | ||
172 | */ | ||
173 | if(!test_bit(IMXMCI_PEND_STARTED_b, &host->pending_events)) | ||
174 | MMC_STR_STP_CLK |= STR_STP_CLK_START_CLK; | ||
175 | local_irq_restore(flags); | ||
176 | |||
177 | } while(++trials<256); | ||
178 | |||
179 | dev_err(mmc_dev(host->mmc), "imxmci_start_clock blocked, no luck\n"); | ||
180 | |||
181 | return -1; | ||
151 | } | 182 | } |
152 | 183 | ||
153 | static void imxmci_softreset(void) | 184 | static void imxmci_softreset(void) |
@@ -498,7 +529,7 @@ static int imxmci_data_done(struct imxmci_host *host, unsigned int stat) | |||
498 | 529 | ||
499 | data_error = imxmci_finish_data(host, stat); | 530 | data_error = imxmci_finish_data(host, stat); |
500 | 531 | ||
501 | if (host->req->stop && (data_error == MMC_ERR_NONE)) { | 532 | if (host->req->stop) { |
502 | imxmci_stop_clock(host); | 533 | imxmci_stop_clock(host); |
503 | imxmci_start_cmd(host, host->req->stop, 0); | 534 | imxmci_start_cmd(host, host->req->stop, 0); |
504 | } else { | 535 | } else { |
@@ -622,6 +653,7 @@ static irqreturn_t imxmci_irq(int irq, void *devid, struct pt_regs *regs) | |||
622 | atomic_set(&host->stuck_timeout, 0); | 653 | atomic_set(&host->stuck_timeout, 0); |
623 | host->status_reg = stat; | 654 | host->status_reg = stat; |
624 | set_bit(IMXMCI_PEND_IRQ_b, &host->pending_events); | 655 | set_bit(IMXMCI_PEND_IRQ_b, &host->pending_events); |
656 | set_bit(IMXMCI_PEND_STARTED_b, &host->pending_events); | ||
625 | tasklet_schedule(&host->tasklet); | 657 | tasklet_schedule(&host->tasklet); |
626 | 658 | ||
627 | return IRQ_RETVAL(handled);; | 659 | return IRQ_RETVAL(handled);; |
@@ -775,10 +807,6 @@ static void imxmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
775 | struct imxmci_host *host = mmc_priv(mmc); | 807 | struct imxmci_host *host = mmc_priv(mmc); |
776 | int prescaler; | 808 | int prescaler; |
777 | 809 | ||
778 | dev_dbg(mmc_dev(host->mmc), "clock %u power %u vdd %u width %u\n", | ||
779 | ios->clock, ios->power_mode, ios->vdd, | ||
780 | (ios->bus_width==MMC_BUS_WIDTH_4)?4:1); | ||
781 | |||
782 | if( ios->bus_width==MMC_BUS_WIDTH_4 ) { | 810 | if( ios->bus_width==MMC_BUS_WIDTH_4 ) { |
783 | host->actual_bus_width = MMC_BUS_WIDTH_4; | 811 | host->actual_bus_width = MMC_BUS_WIDTH_4; |
784 | imx_gpio_mode(PB11_PF_SD_DAT3); | 812 | imx_gpio_mode(PB11_PF_SD_DAT3); |
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index da6ddd910fc5..1ca2c8b9c9b5 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c | |||
@@ -59,21 +59,23 @@ static const unsigned int tacc_mant[] = { | |||
59 | 59 | ||
60 | 60 | ||
61 | /** | 61 | /** |
62 | * mmc_request_done - finish processing an MMC command | 62 | * mmc_request_done - finish processing an MMC request |
63 | * @host: MMC host which completed command | 63 | * @host: MMC host which completed request |
64 | * @mrq: MMC request which completed | 64 | * @mrq: MMC request which request |
65 | * | 65 | * |
66 | * MMC drivers should call this function when they have completed | 66 | * MMC drivers should call this function when they have completed |
67 | * their processing of a command. This should be called before the | 67 | * their processing of a request. |
68 | * data part of the command has completed. | ||
69 | */ | 68 | */ |
70 | void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq) | 69 | void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq) |
71 | { | 70 | { |
72 | struct mmc_command *cmd = mrq->cmd; | 71 | struct mmc_command *cmd = mrq->cmd; |
73 | int err = mrq->cmd->error; | 72 | int err = cmd->error; |
74 | pr_debug("MMC: req done (%02x): %d: %08x %08x %08x %08x\n", | 73 | |
75 | cmd->opcode, err, cmd->resp[0], cmd->resp[1], | 74 | pr_debug("%s: req done (CMD%u): %d/%d/%d: %08x %08x %08x %08x\n", |
76 | cmd->resp[2], cmd->resp[3]); | 75 | mmc_hostname(host), cmd->opcode, err, |
76 | mrq->data ? mrq->data->error : 0, | ||
77 | mrq->stop ? mrq->stop->error : 0, | ||
78 | cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3]); | ||
77 | 79 | ||
78 | if (err && cmd->retries) { | 80 | if (err && cmd->retries) { |
79 | cmd->retries--; | 81 | cmd->retries--; |
@@ -97,8 +99,9 @@ EXPORT_SYMBOL(mmc_request_done); | |||
97 | void | 99 | void |
98 | mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) | 100 | mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) |
99 | { | 101 | { |
100 | pr_debug("MMC: starting cmd %02x arg %08x flags %08x\n", | 102 | pr_debug("%s: starting CMD%u arg %08x flags %08x\n", |
101 | mrq->cmd->opcode, mrq->cmd->arg, mrq->cmd->flags); | 103 | mmc_hostname(host), mrq->cmd->opcode, |
104 | mrq->cmd->arg, mrq->cmd->flags); | ||
102 | 105 | ||
103 | WARN_ON(host->card_busy == NULL); | 106 | WARN_ON(host->card_busy == NULL); |
104 | 107 | ||
@@ -312,6 +315,18 @@ void mmc_release_host(struct mmc_host *host) | |||
312 | 315 | ||
313 | EXPORT_SYMBOL(mmc_release_host); | 316 | EXPORT_SYMBOL(mmc_release_host); |
314 | 317 | ||
318 | static inline void mmc_set_ios(struct mmc_host *host) | ||
319 | { | ||
320 | struct mmc_ios *ios = &host->ios; | ||
321 | |||
322 | pr_debug("%s: clock %uHz busmode %u powermode %u cs %u Vdd %u width %u\n", | ||
323 | mmc_hostname(host), ios->clock, ios->bus_mode, | ||
324 | ios->power_mode, ios->chip_select, ios->vdd, | ||
325 | ios->bus_width); | ||
326 | |||
327 | host->ops->set_ios(host, ios); | ||
328 | } | ||
329 | |||
315 | static int mmc_select_card(struct mmc_host *host, struct mmc_card *card) | 330 | static int mmc_select_card(struct mmc_host *host, struct mmc_card *card) |
316 | { | 331 | { |
317 | int err; | 332 | int err; |
@@ -364,7 +379,7 @@ static int mmc_select_card(struct mmc_host *host, struct mmc_card *card) | |||
364 | } | 379 | } |
365 | } | 380 | } |
366 | 381 | ||
367 | host->ops->set_ios(host, &host->ios); | 382 | mmc_set_ios(host); |
368 | 383 | ||
369 | return MMC_ERR_NONE; | 384 | return MMC_ERR_NONE; |
370 | } | 385 | } |
@@ -415,7 +430,7 @@ static u32 mmc_select_voltage(struct mmc_host *host, u32 ocr) | |||
415 | ocr = 3 << bit; | 430 | ocr = 3 << bit; |
416 | 431 | ||
417 | host->ios.vdd = bit; | 432 | host->ios.vdd = bit; |
418 | host->ops->set_ios(host, &host->ios); | 433 | mmc_set_ios(host); |
419 | } else { | 434 | } else { |
420 | ocr = 0; | 435 | ocr = 0; |
421 | } | 436 | } |
@@ -549,6 +564,7 @@ static void mmc_decode_csd(struct mmc_card *card) | |||
549 | csd->read_partial = UNSTUFF_BITS(resp, 79, 1); | 564 | csd->read_partial = UNSTUFF_BITS(resp, 79, 1); |
550 | csd->write_misalign = UNSTUFF_BITS(resp, 78, 1); | 565 | csd->write_misalign = UNSTUFF_BITS(resp, 78, 1); |
551 | csd->read_misalign = UNSTUFF_BITS(resp, 77, 1); | 566 | csd->read_misalign = UNSTUFF_BITS(resp, 77, 1); |
567 | csd->r2w_factor = UNSTUFF_BITS(resp, 26, 3); | ||
552 | csd->write_blkbits = UNSTUFF_BITS(resp, 22, 4); | 568 | csd->write_blkbits = UNSTUFF_BITS(resp, 22, 4); |
553 | csd->write_partial = UNSTUFF_BITS(resp, 21, 1); | 569 | csd->write_partial = UNSTUFF_BITS(resp, 21, 1); |
554 | } else { | 570 | } else { |
@@ -583,6 +599,7 @@ static void mmc_decode_csd(struct mmc_card *card) | |||
583 | csd->read_partial = UNSTUFF_BITS(resp, 79, 1); | 599 | csd->read_partial = UNSTUFF_BITS(resp, 79, 1); |
584 | csd->write_misalign = UNSTUFF_BITS(resp, 78, 1); | 600 | csd->write_misalign = UNSTUFF_BITS(resp, 78, 1); |
585 | csd->read_misalign = UNSTUFF_BITS(resp, 77, 1); | 601 | csd->read_misalign = UNSTUFF_BITS(resp, 77, 1); |
602 | csd->r2w_factor = UNSTUFF_BITS(resp, 26, 3); | ||
586 | csd->write_blkbits = UNSTUFF_BITS(resp, 22, 4); | 603 | csd->write_blkbits = UNSTUFF_BITS(resp, 22, 4); |
587 | csd->write_partial = UNSTUFF_BITS(resp, 21, 1); | 604 | csd->write_partial = UNSTUFF_BITS(resp, 21, 1); |
588 | } | 605 | } |
@@ -666,7 +683,7 @@ static void mmc_idle_cards(struct mmc_host *host) | |||
666 | struct mmc_command cmd; | 683 | struct mmc_command cmd; |
667 | 684 | ||
668 | host->ios.chip_select = MMC_CS_HIGH; | 685 | host->ios.chip_select = MMC_CS_HIGH; |
669 | host->ops->set_ios(host, &host->ios); | 686 | mmc_set_ios(host); |
670 | 687 | ||
671 | mmc_delay(1); | 688 | mmc_delay(1); |
672 | 689 | ||
@@ -679,7 +696,7 @@ static void mmc_idle_cards(struct mmc_host *host) | |||
679 | mmc_delay(1); | 696 | mmc_delay(1); |
680 | 697 | ||
681 | host->ios.chip_select = MMC_CS_DONTCARE; | 698 | host->ios.chip_select = MMC_CS_DONTCARE; |
682 | host->ops->set_ios(host, &host->ios); | 699 | mmc_set_ios(host); |
683 | 700 | ||
684 | mmc_delay(1); | 701 | mmc_delay(1); |
685 | } | 702 | } |
@@ -704,13 +721,13 @@ static void mmc_power_up(struct mmc_host *host) | |||
704 | host->ios.chip_select = MMC_CS_DONTCARE; | 721 | host->ios.chip_select = MMC_CS_DONTCARE; |
705 | host->ios.power_mode = MMC_POWER_UP; | 722 | host->ios.power_mode = MMC_POWER_UP; |
706 | host->ios.bus_width = MMC_BUS_WIDTH_1; | 723 | host->ios.bus_width = MMC_BUS_WIDTH_1; |
707 | host->ops->set_ios(host, &host->ios); | 724 | mmc_set_ios(host); |
708 | 725 | ||
709 | mmc_delay(1); | 726 | mmc_delay(1); |
710 | 727 | ||
711 | host->ios.clock = host->f_min; | 728 | host->ios.clock = host->f_min; |
712 | host->ios.power_mode = MMC_POWER_ON; | 729 | host->ios.power_mode = MMC_POWER_ON; |
713 | host->ops->set_ios(host, &host->ios); | 730 | mmc_set_ios(host); |
714 | 731 | ||
715 | mmc_delay(2); | 732 | mmc_delay(2); |
716 | } | 733 | } |
@@ -723,7 +740,7 @@ static void mmc_power_off(struct mmc_host *host) | |||
723 | host->ios.chip_select = MMC_CS_DONTCARE; | 740 | host->ios.chip_select = MMC_CS_DONTCARE; |
724 | host->ios.power_mode = MMC_POWER_OFF; | 741 | host->ios.power_mode = MMC_POWER_OFF; |
725 | host->ios.bus_width = MMC_BUS_WIDTH_1; | 742 | host->ios.bus_width = MMC_BUS_WIDTH_1; |
726 | host->ops->set_ios(host, &host->ios); | 743 | mmc_set_ios(host); |
727 | } | 744 | } |
728 | 745 | ||
729 | static int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr) | 746 | static int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr) |
@@ -971,7 +988,8 @@ static unsigned int mmc_calculate_clock(struct mmc_host *host) | |||
971 | if (!mmc_card_dead(card) && max_dtr > card->csd.max_dtr) | 988 | if (!mmc_card_dead(card) && max_dtr > card->csd.max_dtr) |
972 | max_dtr = card->csd.max_dtr; | 989 | max_dtr = card->csd.max_dtr; |
973 | 990 | ||
974 | pr_debug("MMC: selected %d.%03dMHz transfer rate\n", | 991 | pr_debug("%s: selected %d.%03dMHz transfer rate\n", |
992 | mmc_hostname(host), | ||
975 | max_dtr / 1000000, (max_dtr / 1000) % 1000); | 993 | max_dtr / 1000000, (max_dtr / 1000) % 1000); |
976 | 994 | ||
977 | return max_dtr; | 995 | return max_dtr; |
@@ -1046,7 +1064,7 @@ static void mmc_setup(struct mmc_host *host) | |||
1046 | } else { | 1064 | } else { |
1047 | host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN; | 1065 | host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN; |
1048 | host->ios.clock = host->f_min; | 1066 | host->ios.clock = host->f_min; |
1049 | host->ops->set_ios(host, &host->ios); | 1067 | mmc_set_ios(host); |
1050 | 1068 | ||
1051 | /* | 1069 | /* |
1052 | * We should remember the OCR mask from the existing | 1070 | * We should remember the OCR mask from the existing |
@@ -1082,7 +1100,7 @@ static void mmc_setup(struct mmc_host *host) | |||
1082 | * Ok, now switch to push-pull mode. | 1100 | * Ok, now switch to push-pull mode. |
1083 | */ | 1101 | */ |
1084 | host->ios.bus_mode = MMC_BUSMODE_PUSHPULL; | 1102 | host->ios.bus_mode = MMC_BUSMODE_PUSHPULL; |
1085 | host->ops->set_ios(host, &host->ios); | 1103 | mmc_set_ios(host); |
1086 | 1104 | ||
1087 | mmc_read_csds(host); | 1105 | mmc_read_csds(host); |
1088 | 1106 | ||
@@ -1128,7 +1146,7 @@ static void mmc_rescan(void *data) | |||
1128 | * attached cards and the host support. | 1146 | * attached cards and the host support. |
1129 | */ | 1147 | */ |
1130 | host->ios.clock = mmc_calculate_clock(host); | 1148 | host->ios.clock = mmc_calculate_clock(host); |
1131 | host->ops->set_ios(host, &host->ios); | 1149 | mmc_set_ios(host); |
1132 | } | 1150 | } |
1133 | 1151 | ||
1134 | mmc_release_host(host); | 1152 | mmc_release_host(host); |
diff --git a/drivers/mmc/mmc_block.c b/drivers/mmc/mmc_block.c index 8eb2a2ede64b..06bd1f4cb9b1 100644 --- a/drivers/mmc/mmc_block.c +++ b/drivers/mmc/mmc_block.c | |||
@@ -187,6 +187,12 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req) | |||
187 | brq.cmd.opcode = MMC_WRITE_BLOCK; | 187 | brq.cmd.opcode = MMC_WRITE_BLOCK; |
188 | brq.data.flags |= MMC_DATA_WRITE; | 188 | brq.data.flags |= MMC_DATA_WRITE; |
189 | brq.data.blocks = 1; | 189 | brq.data.blocks = 1; |
190 | |||
191 | /* | ||
192 | * Scale up the timeout by the r2w factor | ||
193 | */ | ||
194 | brq.data.timeout_ns <<= card->csd.r2w_factor; | ||
195 | brq.data.timeout_clks <<= card->csd.r2w_factor; | ||
190 | } | 196 | } |
191 | 197 | ||
192 | if (brq.data.blocks > 1) { | 198 | if (brq.data.blocks > 1) { |
diff --git a/drivers/mmc/mmci.c b/drivers/mmc/mmci.c index df7e861e2fc7..da8e4d7339cc 100644 --- a/drivers/mmc/mmci.c +++ b/drivers/mmc/mmci.c | |||
@@ -402,9 +402,6 @@ static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
402 | struct mmci_host *host = mmc_priv(mmc); | 402 | struct mmci_host *host = mmc_priv(mmc); |
403 | u32 clk = 0, pwr = 0; | 403 | u32 clk = 0, pwr = 0; |
404 | 404 | ||
405 | DBG(host, "clock %uHz busmode %u powermode %u Vdd %u\n", | ||
406 | ios->clock, ios->bus_mode, ios->power_mode, ios->vdd); | ||
407 | |||
408 | if (ios->clock) { | 405 | if (ios->clock) { |
409 | if (ios->clock >= host->mclk) { | 406 | if (ios->clock >= host->mclk) { |
410 | clk = MCI_CLK_BYPASS; | 407 | clk = MCI_CLK_BYPASS; |
diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c index eb9a8826e9b5..f97b472085cb 100644 --- a/drivers/mmc/pxamci.c +++ b/drivers/mmc/pxamci.c | |||
@@ -65,11 +65,6 @@ struct pxamci_host { | |||
65 | unsigned int dma_dir; | 65 | unsigned int dma_dir; |
66 | }; | 66 | }; |
67 | 67 | ||
68 | static inline unsigned int ns_to_clocks(unsigned int ns) | ||
69 | { | ||
70 | return (ns * (CLOCKRATE / 1000000) + 999) / 1000; | ||
71 | } | ||
72 | |||
73 | static void pxamci_stop_clock(struct pxamci_host *host) | 68 | static void pxamci_stop_clock(struct pxamci_host *host) |
74 | { | 69 | { |
75 | if (readl(host->base + MMC_STAT) & STAT_CLK_EN) { | 70 | if (readl(host->base + MMC_STAT) & STAT_CLK_EN) { |
@@ -113,6 +108,7 @@ static void pxamci_disable_irq(struct pxamci_host *host, unsigned int mask) | |||
113 | static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) | 108 | static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) |
114 | { | 109 | { |
115 | unsigned int nob = data->blocks; | 110 | unsigned int nob = data->blocks; |
111 | unsigned long long clks; | ||
116 | unsigned int timeout; | 112 | unsigned int timeout; |
117 | u32 dcmd; | 113 | u32 dcmd; |
118 | int i; | 114 | int i; |
@@ -125,7 +121,9 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) | |||
125 | writel(nob, host->base + MMC_NOB); | 121 | writel(nob, host->base + MMC_NOB); |
126 | writel(1 << data->blksz_bits, host->base + MMC_BLKLEN); | 122 | writel(1 << data->blksz_bits, host->base + MMC_BLKLEN); |
127 | 123 | ||
128 | timeout = ns_to_clocks(data->timeout_ns) + data->timeout_clks; | 124 | clks = (unsigned long long)data->timeout_ns * CLOCKRATE; |
125 | do_div(clks, 1000000000UL); | ||
126 | timeout = (unsigned int)clks + (data->timeout_clks << host->clkrt); | ||
129 | writel((timeout + 255) / 256, host->base + MMC_RDTO); | 127 | writel((timeout + 255) / 256, host->base + MMC_RDTO); |
130 | 128 | ||
131 | if (data->flags & MMC_DATA_READ) { | 129 | if (data->flags & MMC_DATA_READ) { |
@@ -200,7 +198,6 @@ static void pxamci_start_cmd(struct pxamci_host *host, struct mmc_command *cmd, | |||
200 | 198 | ||
201 | static void pxamci_finish_request(struct pxamci_host *host, struct mmc_request *mrq) | 199 | static void pxamci_finish_request(struct pxamci_host *host, struct mmc_request *mrq) |
202 | { | 200 | { |
203 | pr_debug("PXAMCI: request done\n"); | ||
204 | host->mrq = NULL; | 201 | host->mrq = NULL; |
205 | host->cmd = NULL; | 202 | host->cmd = NULL; |
206 | host->data = NULL; | 203 | host->data = NULL; |
@@ -293,7 +290,7 @@ static int pxamci_data_done(struct pxamci_host *host, unsigned int stat) | |||
293 | pxamci_disable_irq(host, DATA_TRAN_DONE); | 290 | pxamci_disable_irq(host, DATA_TRAN_DONE); |
294 | 291 | ||
295 | host->data = NULL; | 292 | host->data = NULL; |
296 | if (host->mrq->stop && data->error == MMC_ERR_NONE) { | 293 | if (host->mrq->stop) { |
297 | pxamci_stop_clock(host); | 294 | pxamci_stop_clock(host); |
298 | pxamci_start_cmd(host, host->mrq->stop, 0); | 295 | pxamci_start_cmd(host, host->mrq->stop, 0); |
299 | } else { | 296 | } else { |
@@ -311,12 +308,10 @@ static irqreturn_t pxamci_irq(int irq, void *devid, struct pt_regs *regs) | |||
311 | 308 | ||
312 | ireg = readl(host->base + MMC_I_REG); | 309 | ireg = readl(host->base + MMC_I_REG); |
313 | 310 | ||
314 | pr_debug("PXAMCI: irq %08x\n", ireg); | ||
315 | |||
316 | if (ireg) { | 311 | if (ireg) { |
317 | unsigned stat = readl(host->base + MMC_STAT); | 312 | unsigned stat = readl(host->base + MMC_STAT); |
318 | 313 | ||
319 | pr_debug("PXAMCI: stat %08x\n", stat); | 314 | pr_debug("PXAMCI: irq %08x stat %08x\n", ireg, stat); |
320 | 315 | ||
321 | if (ireg & END_CMD_RES) | 316 | if (ireg & END_CMD_RES) |
322 | handled |= pxamci_cmd_done(host, stat); | 317 | handled |= pxamci_cmd_done(host, stat); |
@@ -370,10 +365,6 @@ static void pxamci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
370 | { | 365 | { |
371 | struct pxamci_host *host = mmc_priv(mmc); | 366 | struct pxamci_host *host = mmc_priv(mmc); |
372 | 367 | ||
373 | pr_debug("pxamci_set_ios: clock %u power %u vdd %u.%02u\n", | ||
374 | ios->clock, ios->power_mode, ios->vdd / 100, | ||
375 | ios->vdd % 100); | ||
376 | |||
377 | if (ios->clock) { | 368 | if (ios->clock) { |
378 | unsigned int clk = CLOCKRATE / ios->clock; | 369 | unsigned int clk = CLOCKRATE / ios->clock; |
379 | if (CLOCKRATE / clk > ios->clock) | 370 | if (CLOCKRATE / clk > ios->clock) |
@@ -399,7 +390,7 @@ static void pxamci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
399 | host->cmdat |= CMDAT_INIT; | 390 | host->cmdat |= CMDAT_INIT; |
400 | } | 391 | } |
401 | 392 | ||
402 | pr_debug("pxamci_set_ios: clkrt = %x cmdat = %x\n", | 393 | pr_debug("PXAMCI: clkrt = %x cmdat = %x\n", |
403 | host->clkrt, host->cmdat); | 394 | host->clkrt, host->cmdat); |
404 | } | 395 | } |
405 | 396 | ||
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index bdbfca050029..b0053280ff2d 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c | |||
@@ -570,10 +570,6 @@ static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
570 | 570 | ||
571 | spin_lock_irqsave(&host->lock, flags); | 571 | spin_lock_irqsave(&host->lock, flags); |
572 | 572 | ||
573 | DBG("clock %uHz busmode %u powermode %u cs %u Vdd %u width %u\n", | ||
574 | ios->clock, ios->bus_mode, ios->power_mode, ios->chip_select, | ||
575 | ios->vdd, ios->bus_width); | ||
576 | |||
577 | /* | 573 | /* |
578 | * Reset the chip on each power off. | 574 | * Reset the chip on each power off. |
579 | * Should clear out any weird states. | 575 | * Should clear out any weird states. |
diff --git a/drivers/mmc/wbsd.c b/drivers/mmc/wbsd.c index 511f7b0b31d2..39b3d97f891e 100644 --- a/drivers/mmc/wbsd.c +++ b/drivers/mmc/wbsd.c | |||
@@ -931,10 +931,6 @@ static void wbsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
931 | struct wbsd_host *host = mmc_priv(mmc); | 931 | struct wbsd_host *host = mmc_priv(mmc); |
932 | u8 clk, setup, pwr; | 932 | u8 clk, setup, pwr; |
933 | 933 | ||
934 | DBGF("clock %uHz busmode %u powermode %u cs %u Vdd %u width %u\n", | ||
935 | ios->clock, ios->bus_mode, ios->power_mode, ios->chip_select, | ||
936 | ios->vdd, ios->bus_width); | ||
937 | |||
938 | spin_lock_bh(&host->lock); | 934 | spin_lock_bh(&host->lock); |
939 | 935 | ||
940 | /* | 936 | /* |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index add8dc4aa7b0..c99e87838f92 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -3768,6 +3768,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, | |||
3768 | ps_page->ps_page[j] = NULL; | 3768 | ps_page->ps_page[j] = NULL; |
3769 | skb->len += length; | 3769 | skb->len += length; |
3770 | skb->data_len += length; | 3770 | skb->data_len += length; |
3771 | skb->truesize += length; | ||
3771 | } | 3772 | } |
3772 | 3773 | ||
3773 | copydone: | 3774 | copydone: |
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 7627a75f4f7c..f7235c9bc421 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -105,6 +105,8 @@ | |||
105 | * 0.50: 20 Jan 2006: Add 8021pq tagging support. | 105 | * 0.50: 20 Jan 2006: Add 8021pq tagging support. |
106 | * 0.51: 20 Jan 2006: Add 64bit consistent memory allocation for rings. | 106 | * 0.51: 20 Jan 2006: Add 64bit consistent memory allocation for rings. |
107 | * 0.52: 20 Jan 2006: Add MSI/MSIX support. | 107 | * 0.52: 20 Jan 2006: Add MSI/MSIX support. |
108 | * 0.53: 19 Mar 2006: Fix init from low power mode and add hw reset. | ||
109 | * 0.54: 21 Mar 2006: Fix spin locks for multi irqs and cleanup. | ||
108 | * | 110 | * |
109 | * Known bugs: | 111 | * Known bugs: |
110 | * We suspect that on some hardware no TX done interrupts are generated. | 112 | * We suspect that on some hardware no TX done interrupts are generated. |
@@ -116,7 +118,7 @@ | |||
116 | * DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few | 118 | * DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few |
117 | * superfluous timer interrupts from the nic. | 119 | * superfluous timer interrupts from the nic. |
118 | */ | 120 | */ |
119 | #define FORCEDETH_VERSION "0.52" | 121 | #define FORCEDETH_VERSION "0.54" |
120 | #define DRV_NAME "forcedeth" | 122 | #define DRV_NAME "forcedeth" |
121 | 123 | ||
122 | #include <linux/module.h> | 124 | #include <linux/module.h> |
@@ -160,6 +162,7 @@ | |||
160 | #define DEV_HAS_VLAN 0x0020 /* device supports vlan tagging and striping */ | 162 | #define DEV_HAS_VLAN 0x0020 /* device supports vlan tagging and striping */ |
161 | #define DEV_HAS_MSI 0x0040 /* device supports MSI */ | 163 | #define DEV_HAS_MSI 0x0040 /* device supports MSI */ |
162 | #define DEV_HAS_MSI_X 0x0080 /* device supports MSI-X */ | 164 | #define DEV_HAS_MSI_X 0x0080 /* device supports MSI-X */ |
165 | #define DEV_HAS_POWER_CNTRL 0x0100 /* device supports power savings */ | ||
163 | 166 | ||
164 | enum { | 167 | enum { |
165 | NvRegIrqStatus = 0x000, | 168 | NvRegIrqStatus = 0x000, |
@@ -203,6 +206,8 @@ enum { | |||
203 | #define NVREG_MISC1_HD 0x02 | 206 | #define NVREG_MISC1_HD 0x02 |
204 | #define NVREG_MISC1_FORCE 0x3b0f3c | 207 | #define NVREG_MISC1_FORCE 0x3b0f3c |
205 | 208 | ||
209 | NvRegMacReset = 0x3c, | ||
210 | #define NVREG_MAC_RESET_ASSERT 0x0F3 | ||
206 | NvRegTransmitterControl = 0x084, | 211 | NvRegTransmitterControl = 0x084, |
207 | #define NVREG_XMITCTL_START 0x01 | 212 | #define NVREG_XMITCTL_START 0x01 |
208 | NvRegTransmitterStatus = 0x088, | 213 | NvRegTransmitterStatus = 0x088, |
@@ -326,6 +331,10 @@ enum { | |||
326 | NvRegMSIXMap0 = 0x3e0, | 331 | NvRegMSIXMap0 = 0x3e0, |
327 | NvRegMSIXMap1 = 0x3e4, | 332 | NvRegMSIXMap1 = 0x3e4, |
328 | NvRegMSIXIrqStatus = 0x3f0, | 333 | NvRegMSIXIrqStatus = 0x3f0, |
334 | |||
335 | NvRegPowerState2 = 0x600, | ||
336 | #define NVREG_POWERSTATE2_POWERUP_MASK 0x0F11 | ||
337 | #define NVREG_POWERSTATE2_POWERUP_REV_A3 0x0001 | ||
329 | }; | 338 | }; |
330 | 339 | ||
331 | /* Big endian: should work, but is untested */ | 340 | /* Big endian: should work, but is untested */ |
@@ -414,7 +423,8 @@ typedef union _ring_type { | |||
414 | #define NV_RX3_VLAN_TAG_MASK (0x0000FFFF) | 423 | #define NV_RX3_VLAN_TAG_MASK (0x0000FFFF) |
415 | 424 | ||
416 | /* Miscelaneous hardware related defines: */ | 425 | /* Miscelaneous hardware related defines: */ |
417 | #define NV_PCI_REGSZ 0x270 | 426 | #define NV_PCI_REGSZ_VER1 0x270 |
427 | #define NV_PCI_REGSZ_VER2 0x604 | ||
418 | 428 | ||
419 | /* various timeout delays: all in usec */ | 429 | /* various timeout delays: all in usec */ |
420 | #define NV_TXRX_RESET_DELAY 4 | 430 | #define NV_TXRX_RESET_DELAY 4 |
@@ -431,6 +441,7 @@ typedef union _ring_type { | |||
431 | #define NV_MIIBUSY_DELAY 50 | 441 | #define NV_MIIBUSY_DELAY 50 |
432 | #define NV_MIIPHY_DELAY 10 | 442 | #define NV_MIIPHY_DELAY 10 |
433 | #define NV_MIIPHY_DELAYMAX 10000 | 443 | #define NV_MIIPHY_DELAYMAX 10000 |
444 | #define NV_MAC_RESET_DELAY 64 | ||
434 | 445 | ||
435 | #define NV_WAKEUPPATTERNS 5 | 446 | #define NV_WAKEUPPATTERNS 5 |
436 | #define NV_WAKEUPMASKENTRIES 4 | 447 | #define NV_WAKEUPMASKENTRIES 4 |
@@ -552,6 +563,8 @@ struct fe_priv { | |||
552 | u32 desc_ver; | 563 | u32 desc_ver; |
553 | u32 txrxctl_bits; | 564 | u32 txrxctl_bits; |
554 | u32 vlanctl_bits; | 565 | u32 vlanctl_bits; |
566 | u32 driver_data; | ||
567 | u32 register_size; | ||
555 | 568 | ||
556 | void __iomem *base; | 569 | void __iomem *base; |
557 | 570 | ||
@@ -698,6 +711,72 @@ static void setup_hw_rings(struct net_device *dev, int rxtx_flags) | |||
698 | } | 711 | } |
699 | } | 712 | } |
700 | 713 | ||
714 | static int using_multi_irqs(struct net_device *dev) | ||
715 | { | ||
716 | struct fe_priv *np = get_nvpriv(dev); | ||
717 | |||
718 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | ||
719 | ((np->msi_flags & NV_MSI_X_ENABLED) && | ||
720 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) | ||
721 | return 0; | ||
722 | else | ||
723 | return 1; | ||
724 | } | ||
725 | |||
726 | static void nv_enable_irq(struct net_device *dev) | ||
727 | { | ||
728 | struct fe_priv *np = get_nvpriv(dev); | ||
729 | |||
730 | if (!using_multi_irqs(dev)) { | ||
731 | if (np->msi_flags & NV_MSI_X_ENABLED) | ||
732 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); | ||
733 | else | ||
734 | enable_irq(dev->irq); | ||
735 | } else { | ||
736 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); | ||
737 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); | ||
738 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); | ||
739 | } | ||
740 | } | ||
741 | |||
742 | static void nv_disable_irq(struct net_device *dev) | ||
743 | { | ||
744 | struct fe_priv *np = get_nvpriv(dev); | ||
745 | |||
746 | if (!using_multi_irqs(dev)) { | ||
747 | if (np->msi_flags & NV_MSI_X_ENABLED) | ||
748 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); | ||
749 | else | ||
750 | disable_irq(dev->irq); | ||
751 | } else { | ||
752 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); | ||
753 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); | ||
754 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); | ||
755 | } | ||
756 | } | ||
757 | |||
758 | /* In MSIX mode, a write to irqmask behaves as XOR */ | ||
759 | static void nv_enable_hw_interrupts(struct net_device *dev, u32 mask) | ||
760 | { | ||
761 | u8 __iomem *base = get_hwbase(dev); | ||
762 | |||
763 | writel(mask, base + NvRegIrqMask); | ||
764 | } | ||
765 | |||
766 | static void nv_disable_hw_interrupts(struct net_device *dev, u32 mask) | ||
767 | { | ||
768 | struct fe_priv *np = get_nvpriv(dev); | ||
769 | u8 __iomem *base = get_hwbase(dev); | ||
770 | |||
771 | if (np->msi_flags & NV_MSI_X_ENABLED) { | ||
772 | writel(mask, base + NvRegIrqMask); | ||
773 | } else { | ||
774 | if (np->msi_flags & NV_MSI_ENABLED) | ||
775 | writel(0, base + NvRegMSIIrqMask); | ||
776 | writel(0, base + NvRegIrqMask); | ||
777 | } | ||
778 | } | ||
779 | |||
701 | #define MII_READ (-1) | 780 | #define MII_READ (-1) |
702 | /* mii_rw: read/write a register on the PHY. | 781 | /* mii_rw: read/write a register on the PHY. |
703 | * | 782 | * |
@@ -919,6 +998,24 @@ static void nv_txrx_reset(struct net_device *dev) | |||
919 | pci_push(base); | 998 | pci_push(base); |
920 | } | 999 | } |
921 | 1000 | ||
1001 | static void nv_mac_reset(struct net_device *dev) | ||
1002 | { | ||
1003 | struct fe_priv *np = netdev_priv(dev); | ||
1004 | u8 __iomem *base = get_hwbase(dev); | ||
1005 | |||
1006 | dprintk(KERN_DEBUG "%s: nv_mac_reset\n", dev->name); | ||
1007 | writel(NVREG_TXRXCTL_BIT2 | NVREG_TXRXCTL_RESET | np->txrxctl_bits, base + NvRegTxRxControl); | ||
1008 | pci_push(base); | ||
1009 | writel(NVREG_MAC_RESET_ASSERT, base + NvRegMacReset); | ||
1010 | pci_push(base); | ||
1011 | udelay(NV_MAC_RESET_DELAY); | ||
1012 | writel(0, base + NvRegMacReset); | ||
1013 | pci_push(base); | ||
1014 | udelay(NV_MAC_RESET_DELAY); | ||
1015 | writel(NVREG_TXRXCTL_BIT2 | np->txrxctl_bits, base + NvRegTxRxControl); | ||
1016 | pci_push(base); | ||
1017 | } | ||
1018 | |||
922 | /* | 1019 | /* |
923 | * nv_get_stats: dev->get_stats function | 1020 | * nv_get_stats: dev->get_stats function |
924 | * Get latest stats value from the nic. | 1021 | * Get latest stats value from the nic. |
@@ -989,24 +1086,25 @@ static void nv_do_rx_refill(unsigned long data) | |||
989 | struct net_device *dev = (struct net_device *) data; | 1086 | struct net_device *dev = (struct net_device *) data; |
990 | struct fe_priv *np = netdev_priv(dev); | 1087 | struct fe_priv *np = netdev_priv(dev); |
991 | 1088 | ||
992 | 1089 | if (!using_multi_irqs(dev)) { | |
993 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | 1090 | if (np->msi_flags & NV_MSI_X_ENABLED) |
994 | ((np->msi_flags & NV_MSI_X_ENABLED) && | 1091 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); |
995 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) { | 1092 | else |
996 | disable_irq(dev->irq); | 1093 | disable_irq(dev->irq); |
997 | } else { | 1094 | } else { |
998 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); | 1095 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); |
999 | } | 1096 | } |
1000 | if (nv_alloc_rx(dev)) { | 1097 | if (nv_alloc_rx(dev)) { |
1001 | spin_lock(&np->lock); | 1098 | spin_lock_irq(&np->lock); |
1002 | if (!np->in_shutdown) | 1099 | if (!np->in_shutdown) |
1003 | mod_timer(&np->oom_kick, jiffies + OOM_REFILL); | 1100 | mod_timer(&np->oom_kick, jiffies + OOM_REFILL); |
1004 | spin_unlock(&np->lock); | 1101 | spin_unlock_irq(&np->lock); |
1005 | } | 1102 | } |
1006 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | 1103 | if (!using_multi_irqs(dev)) { |
1007 | ((np->msi_flags & NV_MSI_X_ENABLED) && | 1104 | if (np->msi_flags & NV_MSI_X_ENABLED) |
1008 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) { | 1105 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); |
1009 | enable_irq(dev->irq); | 1106 | else |
1107 | enable_irq(dev->irq); | ||
1010 | } else { | 1108 | } else { |
1011 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); | 1109 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); |
1012 | } | 1110 | } |
@@ -1331,7 +1429,7 @@ static void nv_tx_timeout(struct net_device *dev) | |||
1331 | dev->name, (unsigned long)np->ring_addr, | 1429 | dev->name, (unsigned long)np->ring_addr, |
1332 | np->next_tx, np->nic_tx); | 1430 | np->next_tx, np->nic_tx); |
1333 | printk(KERN_INFO "%s: Dumping tx registers\n", dev->name); | 1431 | printk(KERN_INFO "%s: Dumping tx registers\n", dev->name); |
1334 | for (i=0;i<0x400;i+= 32) { | 1432 | for (i=0;i<=np->register_size;i+= 32) { |
1335 | printk(KERN_INFO "%3x: %08x %08x %08x %08x %08x %08x %08x %08x\n", | 1433 | printk(KERN_INFO "%3x: %08x %08x %08x %08x %08x %08x %08x %08x\n", |
1336 | i, | 1434 | i, |
1337 | readl(base + i + 0), readl(base + i + 4), | 1435 | readl(base + i + 0), readl(base + i + 4), |
@@ -1638,15 +1736,7 @@ static int nv_change_mtu(struct net_device *dev, int new_mtu) | |||
1638 | * guessed, there is probably a simpler approach. | 1736 | * guessed, there is probably a simpler approach. |
1639 | * Changing the MTU is a rare event, it shouldn't matter. | 1737 | * Changing the MTU is a rare event, it shouldn't matter. |
1640 | */ | 1738 | */ |
1641 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | 1739 | nv_disable_irq(dev); |
1642 | ((np->msi_flags & NV_MSI_X_ENABLED) && | ||
1643 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) { | ||
1644 | disable_irq(dev->irq); | ||
1645 | } else { | ||
1646 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); | ||
1647 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); | ||
1648 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); | ||
1649 | } | ||
1650 | spin_lock_bh(&dev->xmit_lock); | 1740 | spin_lock_bh(&dev->xmit_lock); |
1651 | spin_lock(&np->lock); | 1741 | spin_lock(&np->lock); |
1652 | /* stop engines */ | 1742 | /* stop engines */ |
@@ -1679,15 +1769,7 @@ static int nv_change_mtu(struct net_device *dev, int new_mtu) | |||
1679 | nv_start_tx(dev); | 1769 | nv_start_tx(dev); |
1680 | spin_unlock(&np->lock); | 1770 | spin_unlock(&np->lock); |
1681 | spin_unlock_bh(&dev->xmit_lock); | 1771 | spin_unlock_bh(&dev->xmit_lock); |
1682 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | 1772 | nv_enable_irq(dev); |
1683 | ((np->msi_flags & NV_MSI_X_ENABLED) && | ||
1684 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) { | ||
1685 | enable_irq(dev->irq); | ||
1686 | } else { | ||
1687 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); | ||
1688 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); | ||
1689 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); | ||
1690 | } | ||
1691 | } | 1773 | } |
1692 | return 0; | 1774 | return 0; |
1693 | } | 1775 | } |
@@ -2078,16 +2160,16 @@ static irqreturn_t nv_nic_irq_tx(int foo, void *data, struct pt_regs *regs) | |||
2078 | if (!(events & np->irqmask)) | 2160 | if (!(events & np->irqmask)) |
2079 | break; | 2161 | break; |
2080 | 2162 | ||
2081 | spin_lock(&np->lock); | 2163 | spin_lock_irq(&np->lock); |
2082 | nv_tx_done(dev); | 2164 | nv_tx_done(dev); |
2083 | spin_unlock(&np->lock); | 2165 | spin_unlock_irq(&np->lock); |
2084 | 2166 | ||
2085 | if (events & (NVREG_IRQ_TX_ERR)) { | 2167 | if (events & (NVREG_IRQ_TX_ERR)) { |
2086 | dprintk(KERN_DEBUG "%s: received irq with events 0x%x. Probably TX fail.\n", | 2168 | dprintk(KERN_DEBUG "%s: received irq with events 0x%x. Probably TX fail.\n", |
2087 | dev->name, events); | 2169 | dev->name, events); |
2088 | } | 2170 | } |
2089 | if (i > max_interrupt_work) { | 2171 | if (i > max_interrupt_work) { |
2090 | spin_lock(&np->lock); | 2172 | spin_lock_irq(&np->lock); |
2091 | /* disable interrupts on the nic */ | 2173 | /* disable interrupts on the nic */ |
2092 | writel(NVREG_IRQ_TX_ALL, base + NvRegIrqMask); | 2174 | writel(NVREG_IRQ_TX_ALL, base + NvRegIrqMask); |
2093 | pci_push(base); | 2175 | pci_push(base); |
@@ -2097,7 +2179,7 @@ static irqreturn_t nv_nic_irq_tx(int foo, void *data, struct pt_regs *regs) | |||
2097 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 2179 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
2098 | } | 2180 | } |
2099 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_tx.\n", dev->name, i); | 2181 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_tx.\n", dev->name, i); |
2100 | spin_unlock(&np->lock); | 2182 | spin_unlock_irq(&np->lock); |
2101 | break; | 2183 | break; |
2102 | } | 2184 | } |
2103 | 2185 | ||
@@ -2127,14 +2209,14 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) | |||
2127 | 2209 | ||
2128 | nv_rx_process(dev); | 2210 | nv_rx_process(dev); |
2129 | if (nv_alloc_rx(dev)) { | 2211 | if (nv_alloc_rx(dev)) { |
2130 | spin_lock(&np->lock); | 2212 | spin_lock_irq(&np->lock); |
2131 | if (!np->in_shutdown) | 2213 | if (!np->in_shutdown) |
2132 | mod_timer(&np->oom_kick, jiffies + OOM_REFILL); | 2214 | mod_timer(&np->oom_kick, jiffies + OOM_REFILL); |
2133 | spin_unlock(&np->lock); | 2215 | spin_unlock_irq(&np->lock); |
2134 | } | 2216 | } |
2135 | 2217 | ||
2136 | if (i > max_interrupt_work) { | 2218 | if (i > max_interrupt_work) { |
2137 | spin_lock(&np->lock); | 2219 | spin_lock_irq(&np->lock); |
2138 | /* disable interrupts on the nic */ | 2220 | /* disable interrupts on the nic */ |
2139 | writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); | 2221 | writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); |
2140 | pci_push(base); | 2222 | pci_push(base); |
@@ -2144,7 +2226,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) | |||
2144 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 2226 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
2145 | } | 2227 | } |
2146 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_rx.\n", dev->name, i); | 2228 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_rx.\n", dev->name, i); |
2147 | spin_unlock(&np->lock); | 2229 | spin_unlock_irq(&np->lock); |
2148 | break; | 2230 | break; |
2149 | } | 2231 | } |
2150 | 2232 | ||
@@ -2173,14 +2255,14 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) | |||
2173 | break; | 2255 | break; |
2174 | 2256 | ||
2175 | if (events & NVREG_IRQ_LINK) { | 2257 | if (events & NVREG_IRQ_LINK) { |
2176 | spin_lock(&np->lock); | 2258 | spin_lock_irq(&np->lock); |
2177 | nv_link_irq(dev); | 2259 | nv_link_irq(dev); |
2178 | spin_unlock(&np->lock); | 2260 | spin_unlock_irq(&np->lock); |
2179 | } | 2261 | } |
2180 | if (np->need_linktimer && time_after(jiffies, np->link_timeout)) { | 2262 | if (np->need_linktimer && time_after(jiffies, np->link_timeout)) { |
2181 | spin_lock(&np->lock); | 2263 | spin_lock_irq(&np->lock); |
2182 | nv_linkchange(dev); | 2264 | nv_linkchange(dev); |
2183 | spin_unlock(&np->lock); | 2265 | spin_unlock_irq(&np->lock); |
2184 | np->link_timeout = jiffies + LINK_TIMEOUT; | 2266 | np->link_timeout = jiffies + LINK_TIMEOUT; |
2185 | } | 2267 | } |
2186 | if (events & (NVREG_IRQ_UNKNOWN)) { | 2268 | if (events & (NVREG_IRQ_UNKNOWN)) { |
@@ -2188,7 +2270,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) | |||
2188 | dev->name, events); | 2270 | dev->name, events); |
2189 | } | 2271 | } |
2190 | if (i > max_interrupt_work) { | 2272 | if (i > max_interrupt_work) { |
2191 | spin_lock(&np->lock); | 2273 | spin_lock_irq(&np->lock); |
2192 | /* disable interrupts on the nic */ | 2274 | /* disable interrupts on the nic */ |
2193 | writel(NVREG_IRQ_OTHER, base + NvRegIrqMask); | 2275 | writel(NVREG_IRQ_OTHER, base + NvRegIrqMask); |
2194 | pci_push(base); | 2276 | pci_push(base); |
@@ -2198,7 +2280,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) | |||
2198 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 2280 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
2199 | } | 2281 | } |
2200 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_other.\n", dev->name, i); | 2282 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_other.\n", dev->name, i); |
2201 | spin_unlock(&np->lock); | 2283 | spin_unlock_irq(&np->lock); |
2202 | break; | 2284 | break; |
2203 | } | 2285 | } |
2204 | 2286 | ||
@@ -2221,10 +2303,11 @@ static void nv_do_nic_poll(unsigned long data) | |||
2221 | * nv_nic_irq because that may decide to do otherwise | 2303 | * nv_nic_irq because that may decide to do otherwise |
2222 | */ | 2304 | */ |
2223 | 2305 | ||
2224 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | 2306 | if (!using_multi_irqs(dev)) { |
2225 | ((np->msi_flags & NV_MSI_X_ENABLED) && | 2307 | if (np->msi_flags & NV_MSI_X_ENABLED) |
2226 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) { | 2308 | disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); |
2227 | disable_irq(dev->irq); | 2309 | else |
2310 | disable_irq(dev->irq); | ||
2228 | mask = np->irqmask; | 2311 | mask = np->irqmask; |
2229 | } else { | 2312 | } else { |
2230 | if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { | 2313 | if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { |
@@ -2247,11 +2330,12 @@ static void nv_do_nic_poll(unsigned long data) | |||
2247 | writel(mask, base + NvRegIrqMask); | 2330 | writel(mask, base + NvRegIrqMask); |
2248 | pci_push(base); | 2331 | pci_push(base); |
2249 | 2332 | ||
2250 | if (!(np->msi_flags & NV_MSI_X_ENABLED) || | 2333 | if (!using_multi_irqs(dev)) { |
2251 | ((np->msi_flags & NV_MSI_X_ENABLED) && | ||
2252 | ((np->msi_flags & NV_MSI_X_VECTORS_MASK) == 0x1))) { | ||
2253 | nv_nic_irq((int) 0, (void *) data, (struct pt_regs *) NULL); | 2334 | nv_nic_irq((int) 0, (void *) data, (struct pt_regs *) NULL); |
2254 | enable_irq(dev->irq); | 2335 | if (np->msi_flags & NV_MSI_X_ENABLED) |
2336 | enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); | ||
2337 | else | ||
2338 | enable_irq(dev->irq); | ||
2255 | } else { | 2339 | } else { |
2256 | if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { | 2340 | if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { |
2257 | nv_nic_irq_rx((int) 0, (void *) data, (struct pt_regs *) NULL); | 2341 | nv_nic_irq_rx((int) 0, (void *) data, (struct pt_regs *) NULL); |
@@ -2488,11 +2572,11 @@ static int nv_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd) | |||
2488 | } | 2572 | } |
2489 | 2573 | ||
2490 | #define FORCEDETH_REGS_VER 1 | 2574 | #define FORCEDETH_REGS_VER 1 |
2491 | #define FORCEDETH_REGS_SIZE 0x400 /* 256 32-bit registers */ | ||
2492 | 2575 | ||
2493 | static int nv_get_regs_len(struct net_device *dev) | 2576 | static int nv_get_regs_len(struct net_device *dev) |
2494 | { | 2577 | { |
2495 | return FORCEDETH_REGS_SIZE; | 2578 | struct fe_priv *np = netdev_priv(dev); |
2579 | return np->register_size; | ||
2496 | } | 2580 | } |
2497 | 2581 | ||
2498 | static void nv_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *buf) | 2582 | static void nv_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *buf) |
@@ -2504,7 +2588,7 @@ static void nv_get_regs(struct net_device *dev, struct ethtool_regs *regs, void | |||
2504 | 2588 | ||
2505 | regs->version = FORCEDETH_REGS_VER; | 2589 | regs->version = FORCEDETH_REGS_VER; |
2506 | spin_lock_irq(&np->lock); | 2590 | spin_lock_irq(&np->lock); |
2507 | for (i=0;i<FORCEDETH_REGS_SIZE/sizeof(u32);i++) | 2591 | for (i = 0;i <= np->register_size/sizeof(u32); i++) |
2508 | rbuf[i] = readl(base + i*sizeof(u32)); | 2592 | rbuf[i] = readl(base + i*sizeof(u32)); |
2509 | spin_unlock_irq(&np->lock); | 2593 | spin_unlock_irq(&np->lock); |
2510 | } | 2594 | } |
@@ -2598,6 +2682,113 @@ static void set_msix_vector_map(struct net_device *dev, u32 vector, u32 irqmask) | |||
2598 | writel(readl(base + NvRegMSIXMap1) | msixmap, base + NvRegMSIXMap1); | 2682 | writel(readl(base + NvRegMSIXMap1) | msixmap, base + NvRegMSIXMap1); |
2599 | } | 2683 | } |
2600 | 2684 | ||
2685 | static int nv_request_irq(struct net_device *dev) | ||
2686 | { | ||
2687 | struct fe_priv *np = get_nvpriv(dev); | ||
2688 | u8 __iomem *base = get_hwbase(dev); | ||
2689 | int ret = 1; | ||
2690 | int i; | ||
2691 | |||
2692 | if (np->msi_flags & NV_MSI_X_CAPABLE) { | ||
2693 | for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { | ||
2694 | np->msi_x_entry[i].entry = i; | ||
2695 | } | ||
2696 | if ((ret = pci_enable_msix(np->pci_dev, np->msi_x_entry, (np->msi_flags & NV_MSI_X_VECTORS_MASK))) == 0) { | ||
2697 | np->msi_flags |= NV_MSI_X_ENABLED; | ||
2698 | if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT) { | ||
2699 | /* Request irq for rx handling */ | ||
2700 | if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector, &nv_nic_irq_rx, SA_SHIRQ, dev->name, dev) != 0) { | ||
2701 | printk(KERN_INFO "forcedeth: request_irq failed for rx %d\n", ret); | ||
2702 | pci_disable_msix(np->pci_dev); | ||
2703 | np->msi_flags &= ~NV_MSI_X_ENABLED; | ||
2704 | goto out_err; | ||
2705 | } | ||
2706 | /* Request irq for tx handling */ | ||
2707 | if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector, &nv_nic_irq_tx, SA_SHIRQ, dev->name, dev) != 0) { | ||
2708 | printk(KERN_INFO "forcedeth: request_irq failed for tx %d\n", ret); | ||
2709 | pci_disable_msix(np->pci_dev); | ||
2710 | np->msi_flags &= ~NV_MSI_X_ENABLED; | ||
2711 | goto out_free_rx; | ||
2712 | } | ||
2713 | /* Request irq for link and timer handling */ | ||
2714 | if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector, &nv_nic_irq_other, SA_SHIRQ, dev->name, dev) != 0) { | ||
2715 | printk(KERN_INFO "forcedeth: request_irq failed for link %d\n", ret); | ||
2716 | pci_disable_msix(np->pci_dev); | ||
2717 | np->msi_flags &= ~NV_MSI_X_ENABLED; | ||
2718 | goto out_free_tx; | ||
2719 | } | ||
2720 | /* map interrupts to their respective vector */ | ||
2721 | writel(0, base + NvRegMSIXMap0); | ||
2722 | writel(0, base + NvRegMSIXMap1); | ||
2723 | set_msix_vector_map(dev, NV_MSI_X_VECTOR_RX, NVREG_IRQ_RX_ALL); | ||
2724 | set_msix_vector_map(dev, NV_MSI_X_VECTOR_TX, NVREG_IRQ_TX_ALL); | ||
2725 | set_msix_vector_map(dev, NV_MSI_X_VECTOR_OTHER, NVREG_IRQ_OTHER); | ||
2726 | } else { | ||
2727 | /* Request irq for all interrupts */ | ||
2728 | if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector, &nv_nic_irq, SA_SHIRQ, dev->name, dev) != 0) { | ||
2729 | printk(KERN_INFO "forcedeth: request_irq failed %d\n", ret); | ||
2730 | pci_disable_msix(np->pci_dev); | ||
2731 | np->msi_flags &= ~NV_MSI_X_ENABLED; | ||
2732 | goto out_err; | ||
2733 | } | ||
2734 | |||
2735 | /* map interrupts to vector 0 */ | ||
2736 | writel(0, base + NvRegMSIXMap0); | ||
2737 | writel(0, base + NvRegMSIXMap1); | ||
2738 | } | ||
2739 | } | ||
2740 | } | ||
2741 | if (ret != 0 && np->msi_flags & NV_MSI_CAPABLE) { | ||
2742 | if ((ret = pci_enable_msi(np->pci_dev)) == 0) { | ||
2743 | np->msi_flags |= NV_MSI_ENABLED; | ||
2744 | if (request_irq(np->pci_dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev) != 0) { | ||
2745 | printk(KERN_INFO "forcedeth: request_irq failed %d\n", ret); | ||
2746 | pci_disable_msi(np->pci_dev); | ||
2747 | np->msi_flags &= ~NV_MSI_ENABLED; | ||
2748 | goto out_err; | ||
2749 | } | ||
2750 | |||
2751 | /* map interrupts to vector 0 */ | ||
2752 | writel(0, base + NvRegMSIMap0); | ||
2753 | writel(0, base + NvRegMSIMap1); | ||
2754 | /* enable msi vector 0 */ | ||
2755 | writel(NVREG_MSI_VECTOR_0_ENABLED, base + NvRegMSIIrqMask); | ||
2756 | } | ||
2757 | } | ||
2758 | if (ret != 0) { | ||
2759 | if (request_irq(np->pci_dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev) != 0) | ||
2760 | goto out_err; | ||
2761 | } | ||
2762 | |||
2763 | return 0; | ||
2764 | out_free_tx: | ||
2765 | free_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector, dev); | ||
2766 | out_free_rx: | ||
2767 | free_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector, dev); | ||
2768 | out_err: | ||
2769 | return 1; | ||
2770 | } | ||
2771 | |||
2772 | static void nv_free_irq(struct net_device *dev) | ||
2773 | { | ||
2774 | struct fe_priv *np = get_nvpriv(dev); | ||
2775 | int i; | ||
2776 | |||
2777 | if (np->msi_flags & NV_MSI_X_ENABLED) { | ||
2778 | for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { | ||
2779 | free_irq(np->msi_x_entry[i].vector, dev); | ||
2780 | } | ||
2781 | pci_disable_msix(np->pci_dev); | ||
2782 | np->msi_flags &= ~NV_MSI_X_ENABLED; | ||
2783 | } else { | ||
2784 | free_irq(np->pci_dev->irq, dev); | ||
2785 | if (np->msi_flags & NV_MSI_ENABLED) { | ||
2786 | pci_disable_msi(np->pci_dev); | ||
2787 | np->msi_flags &= ~NV_MSI_ENABLED; | ||
2788 | } | ||
2789 | } | ||
2790 | } | ||
2791 | |||
2601 | static int nv_open(struct net_device *dev) | 2792 | static int nv_open(struct net_device *dev) |
2602 | { | 2793 | { |
2603 | struct fe_priv *np = netdev_priv(dev); | 2794 | struct fe_priv *np = netdev_priv(dev); |
@@ -2608,6 +2799,8 @@ static int nv_open(struct net_device *dev) | |||
2608 | dprintk(KERN_DEBUG "nv_open: begin\n"); | 2799 | dprintk(KERN_DEBUG "nv_open: begin\n"); |
2609 | 2800 | ||
2610 | /* 1) erase previous misconfiguration */ | 2801 | /* 1) erase previous misconfiguration */ |
2802 | if (np->driver_data & DEV_HAS_POWER_CNTRL) | ||
2803 | nv_mac_reset(dev); | ||
2611 | /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */ | 2804 | /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */ |
2612 | writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA); | 2805 | writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA); |
2613 | writel(0, base + NvRegMulticastAddrB); | 2806 | writel(0, base + NvRegMulticastAddrB); |
@@ -2688,12 +2881,16 @@ static int nv_open(struct net_device *dev) | |||
2688 | udelay(10); | 2881 | udelay(10); |
2689 | writel(readl(base + NvRegPowerState) | NVREG_POWERSTATE_VALID, base + NvRegPowerState); | 2882 | writel(readl(base + NvRegPowerState) | NVREG_POWERSTATE_VALID, base + NvRegPowerState); |
2690 | 2883 | ||
2691 | writel(0, base + NvRegIrqMask); | 2884 | nv_disable_hw_interrupts(dev, np->irqmask); |
2692 | pci_push(base); | 2885 | pci_push(base); |
2693 | writel(NVREG_MIISTAT_MASK2, base + NvRegMIIStatus); | 2886 | writel(NVREG_MIISTAT_MASK2, base + NvRegMIIStatus); |
2694 | writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); | 2887 | writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); |
2695 | pci_push(base); | 2888 | pci_push(base); |
2696 | 2889 | ||
2890 | if (nv_request_irq(dev)) { | ||
2891 | goto out_drain; | ||
2892 | } | ||
2893 | |||
2697 | if (np->msi_flags & NV_MSI_X_CAPABLE) { | 2894 | if (np->msi_flags & NV_MSI_X_CAPABLE) { |
2698 | for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { | 2895 | for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { |
2699 | np->msi_x_entry[i].entry = i; | 2896 | np->msi_x_entry[i].entry = i; |
@@ -2767,7 +2964,7 @@ static int nv_open(struct net_device *dev) | |||
2767 | } | 2964 | } |
2768 | 2965 | ||
2769 | /* ask for interrupts */ | 2966 | /* ask for interrupts */ |
2770 | writel(np->irqmask, base + NvRegIrqMask); | 2967 | nv_enable_hw_interrupts(dev, np->irqmask); |
2771 | 2968 | ||
2772 | spin_lock_irq(&np->lock); | 2969 | spin_lock_irq(&np->lock); |
2773 | writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA); | 2970 | writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA); |
@@ -2811,7 +3008,6 @@ static int nv_close(struct net_device *dev) | |||
2811 | { | 3008 | { |
2812 | struct fe_priv *np = netdev_priv(dev); | 3009 | struct fe_priv *np = netdev_priv(dev); |
2813 | u8 __iomem *base; | 3010 | u8 __iomem *base; |
2814 | int i; | ||
2815 | 3011 | ||
2816 | spin_lock_irq(&np->lock); | 3012 | spin_lock_irq(&np->lock); |
2817 | np->in_shutdown = 1; | 3013 | np->in_shutdown = 1; |
@@ -2829,31 +3025,13 @@ static int nv_close(struct net_device *dev) | |||
2829 | 3025 | ||
2830 | /* disable interrupts on the nic or we will lock up */ | 3026 | /* disable interrupts on the nic or we will lock up */ |
2831 | base = get_hwbase(dev); | 3027 | base = get_hwbase(dev); |
2832 | if (np->msi_flags & NV_MSI_X_ENABLED) { | 3028 | nv_disable_hw_interrupts(dev, np->irqmask); |
2833 | writel(np->irqmask, base + NvRegIrqMask); | ||
2834 | } else { | ||
2835 | if (np->msi_flags & NV_MSI_ENABLED) | ||
2836 | writel(0, base + NvRegMSIIrqMask); | ||
2837 | writel(0, base + NvRegIrqMask); | ||
2838 | } | ||
2839 | pci_push(base); | 3029 | pci_push(base); |
2840 | dprintk(KERN_INFO "%s: Irqmask is zero again\n", dev->name); | 3030 | dprintk(KERN_INFO "%s: Irqmask is zero again\n", dev->name); |
2841 | 3031 | ||
2842 | spin_unlock_irq(&np->lock); | 3032 | spin_unlock_irq(&np->lock); |
2843 | 3033 | ||
2844 | if (np->msi_flags & NV_MSI_X_ENABLED) { | 3034 | nv_free_irq(dev); |
2845 | for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { | ||
2846 | free_irq(np->msi_x_entry[i].vector, dev); | ||
2847 | } | ||
2848 | pci_disable_msix(np->pci_dev); | ||
2849 | np->msi_flags &= ~NV_MSI_X_ENABLED; | ||
2850 | } else { | ||
2851 | free_irq(np->pci_dev->irq, dev); | ||
2852 | if (np->msi_flags & NV_MSI_ENABLED) { | ||
2853 | pci_disable_msi(np->pci_dev); | ||
2854 | np->msi_flags &= ~NV_MSI_ENABLED; | ||
2855 | } | ||
2856 | } | ||
2857 | 3035 | ||
2858 | drain_ring(dev); | 3036 | drain_ring(dev); |
2859 | 3037 | ||
@@ -2878,6 +3056,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
2878 | unsigned long addr; | 3056 | unsigned long addr; |
2879 | u8 __iomem *base; | 3057 | u8 __iomem *base; |
2880 | int err, i; | 3058 | int err, i; |
3059 | u32 powerstate; | ||
2881 | 3060 | ||
2882 | dev = alloc_etherdev(sizeof(struct fe_priv)); | 3061 | dev = alloc_etherdev(sizeof(struct fe_priv)); |
2883 | err = -ENOMEM; | 3062 | err = -ENOMEM; |
@@ -2910,6 +3089,11 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
2910 | if (err < 0) | 3089 | if (err < 0) |
2911 | goto out_disable; | 3090 | goto out_disable; |
2912 | 3091 | ||
3092 | if (id->driver_data & (DEV_HAS_VLAN|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL)) | ||
3093 | np->register_size = NV_PCI_REGSZ_VER2; | ||
3094 | else | ||
3095 | np->register_size = NV_PCI_REGSZ_VER1; | ||
3096 | |||
2913 | err = -EINVAL; | 3097 | err = -EINVAL; |
2914 | addr = 0; | 3098 | addr = 0; |
2915 | for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { | 3099 | for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { |
@@ -2918,7 +3102,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
2918 | pci_resource_len(pci_dev, i), | 3102 | pci_resource_len(pci_dev, i), |
2919 | pci_resource_flags(pci_dev, i)); | 3103 | pci_resource_flags(pci_dev, i)); |
2920 | if (pci_resource_flags(pci_dev, i) & IORESOURCE_MEM && | 3104 | if (pci_resource_flags(pci_dev, i) & IORESOURCE_MEM && |
2921 | pci_resource_len(pci_dev, i) >= NV_PCI_REGSZ) { | 3105 | pci_resource_len(pci_dev, i) >= np->register_size) { |
2922 | addr = pci_resource_start(pci_dev, i); | 3106 | addr = pci_resource_start(pci_dev, i); |
2923 | break; | 3107 | break; |
2924 | } | 3108 | } |
@@ -2929,24 +3113,25 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
2929 | goto out_relreg; | 3113 | goto out_relreg; |
2930 | } | 3114 | } |
2931 | 3115 | ||
3116 | /* copy of driver data */ | ||
3117 | np->driver_data = id->driver_data; | ||
3118 | |||
2932 | /* handle different descriptor versions */ | 3119 | /* handle different descriptor versions */ |
2933 | if (id->driver_data & DEV_HAS_HIGH_DMA) { | 3120 | if (id->driver_data & DEV_HAS_HIGH_DMA) { |
2934 | /* packet format 3: supports 40-bit addressing */ | 3121 | /* packet format 3: supports 40-bit addressing */ |
2935 | np->desc_ver = DESC_VER_3; | 3122 | np->desc_ver = DESC_VER_3; |
3123 | np->txrxctl_bits = NVREG_TXRXCTL_DESC_3; | ||
2936 | if (pci_set_dma_mask(pci_dev, DMA_39BIT_MASK)) { | 3124 | if (pci_set_dma_mask(pci_dev, DMA_39BIT_MASK)) { |
2937 | printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit addressing for device %s.\n", | 3125 | printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit addressing for device %s.\n", |
2938 | pci_name(pci_dev)); | 3126 | pci_name(pci_dev)); |
2939 | } else { | 3127 | } else { |
2940 | if (pci_set_consistent_dma_mask(pci_dev, 0x0000007fffffffffULL)) { | 3128 | dev->features |= NETIF_F_HIGHDMA; |
2941 | printk(KERN_INFO "forcedeth: 64-bit DMA (consistent) failed for device %s.\n", | 3129 | printk(KERN_INFO "forcedeth: using HIGHDMA\n"); |
2942 | pci_name(pci_dev)); | 3130 | } |
2943 | goto out_relreg; | 3131 | if (pci_set_consistent_dma_mask(pci_dev, 0x0000007fffffffffULL)) { |
2944 | } else { | 3132 | printk(KERN_INFO "forcedeth: 64-bit DMA (consistent) failed for device %s.\n", |
2945 | dev->features |= NETIF_F_HIGHDMA; | 3133 | pci_name(pci_dev)); |
2946 | printk(KERN_INFO "forcedeth: using HIGHDMA\n"); | ||
2947 | } | ||
2948 | } | 3134 | } |
2949 | np->txrxctl_bits = NVREG_TXRXCTL_DESC_3; | ||
2950 | } else if (id->driver_data & DEV_HAS_LARGEDESC) { | 3135 | } else if (id->driver_data & DEV_HAS_LARGEDESC) { |
2951 | /* packet format 2: supports jumbo frames */ | 3136 | /* packet format 2: supports jumbo frames */ |
2952 | np->desc_ver = DESC_VER_2; | 3137 | np->desc_ver = DESC_VER_2; |
@@ -2986,7 +3171,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
2986 | } | 3171 | } |
2987 | 3172 | ||
2988 | err = -ENOMEM; | 3173 | err = -ENOMEM; |
2989 | np->base = ioremap(addr, NV_PCI_REGSZ); | 3174 | np->base = ioremap(addr, np->register_size); |
2990 | if (!np->base) | 3175 | if (!np->base) |
2991 | goto out_relreg; | 3176 | goto out_relreg; |
2992 | dev->base_addr = (unsigned long)np->base; | 3177 | dev->base_addr = (unsigned long)np->base; |
@@ -3062,6 +3247,20 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
3062 | writel(0, base + NvRegWakeUpFlags); | 3247 | writel(0, base + NvRegWakeUpFlags); |
3063 | np->wolenabled = 0; | 3248 | np->wolenabled = 0; |
3064 | 3249 | ||
3250 | if (id->driver_data & DEV_HAS_POWER_CNTRL) { | ||
3251 | u8 revision_id; | ||
3252 | pci_read_config_byte(pci_dev, PCI_REVISION_ID, &revision_id); | ||
3253 | |||
3254 | /* take phy and nic out of low power mode */ | ||
3255 | powerstate = readl(base + NvRegPowerState2); | ||
3256 | powerstate &= ~NVREG_POWERSTATE2_POWERUP_MASK; | ||
3257 | if ((id->device == PCI_DEVICE_ID_NVIDIA_NVENET_12 || | ||
3258 | id->device == PCI_DEVICE_ID_NVIDIA_NVENET_13) && | ||
3259 | revision_id >= 0xA3) | ||
3260 | powerstate |= NVREG_POWERSTATE2_POWERUP_REV_A3; | ||
3261 | writel(powerstate, base + NvRegPowerState2); | ||
3262 | } | ||
3263 | |||
3065 | if (np->desc_ver == DESC_VER_1) { | 3264 | if (np->desc_ver == DESC_VER_1) { |
3066 | np->tx_flags = NV_TX_VALID; | 3265 | np->tx_flags = NV_TX_VALID; |
3067 | } else { | 3266 | } else { |
@@ -3223,19 +3422,19 @@ static struct pci_device_id pci_tbl[] = { | |||
3223 | }, | 3422 | }, |
3224 | { /* MCP51 Ethernet Controller */ | 3423 | { /* MCP51 Ethernet Controller */ |
3225 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_12), | 3424 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_12), |
3226 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA, | 3425 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL, |
3227 | }, | 3426 | }, |
3228 | { /* MCP51 Ethernet Controller */ | 3427 | { /* MCP51 Ethernet Controller */ |
3229 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_13), | 3428 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_13), |
3230 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA, | 3429 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL, |
3231 | }, | 3430 | }, |
3232 | { /* MCP55 Ethernet Controller */ | 3431 | { /* MCP55 Ethernet Controller */ |
3233 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_14), | 3432 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_14), |
3234 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X, | 3433 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL, |
3235 | }, | 3434 | }, |
3236 | { /* MCP55 Ethernet Controller */ | 3435 | { /* MCP55 Ethernet Controller */ |
3237 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15), | 3436 | PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15), |
3238 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X, | 3437 | .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL, |
3239 | }, | 3438 | }, |
3240 | {0,}, | 3439 | {0,}, |
3241 | }; | 3440 | }; |
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 771e25d8c417..218d31764c52 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
@@ -210,7 +210,8 @@ static int gfar_probe(struct platform_device *pdev) | |||
210 | goto regs_fail; | 210 | goto regs_fail; |
211 | } | 211 | } |
212 | 212 | ||
213 | spin_lock_init(&priv->lock); | 213 | spin_lock_init(&priv->txlock); |
214 | spin_lock_init(&priv->rxlock); | ||
214 | 215 | ||
215 | platform_set_drvdata(pdev, dev); | 216 | platform_set_drvdata(pdev, dev); |
216 | 217 | ||
@@ -515,11 +516,13 @@ void stop_gfar(struct net_device *dev) | |||
515 | phy_stop(priv->phydev); | 516 | phy_stop(priv->phydev); |
516 | 517 | ||
517 | /* Lock it down */ | 518 | /* Lock it down */ |
518 | spin_lock_irqsave(&priv->lock, flags); | 519 | spin_lock_irqsave(&priv->txlock, flags); |
520 | spin_lock(&priv->rxlock); | ||
519 | 521 | ||
520 | gfar_halt(dev); | 522 | gfar_halt(dev); |
521 | 523 | ||
522 | spin_unlock_irqrestore(&priv->lock, flags); | 524 | spin_unlock(&priv->rxlock); |
525 | spin_unlock_irqrestore(&priv->txlock, flags); | ||
523 | 526 | ||
524 | /* Free the IRQs */ | 527 | /* Free the IRQs */ |
525 | if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_MULTI_INTR) { | 528 | if (priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_MULTI_INTR) { |
@@ -605,14 +608,15 @@ void gfar_start(struct net_device *dev) | |||
605 | tempval |= DMACTRL_INIT_SETTINGS; | 608 | tempval |= DMACTRL_INIT_SETTINGS; |
606 | gfar_write(&priv->regs->dmactrl, tempval); | 609 | gfar_write(&priv->regs->dmactrl, tempval); |
607 | 610 | ||
608 | /* Clear THLT, so that the DMA starts polling now */ | ||
609 | gfar_write(®s->tstat, TSTAT_CLEAR_THALT); | ||
610 | |||
611 | /* Make sure we aren't stopped */ | 611 | /* Make sure we aren't stopped */ |
612 | tempval = gfar_read(&priv->regs->dmactrl); | 612 | tempval = gfar_read(&priv->regs->dmactrl); |
613 | tempval &= ~(DMACTRL_GRS | DMACTRL_GTS); | 613 | tempval &= ~(DMACTRL_GRS | DMACTRL_GTS); |
614 | gfar_write(&priv->regs->dmactrl, tempval); | 614 | gfar_write(&priv->regs->dmactrl, tempval); |
615 | 615 | ||
616 | /* Clear THLT/RHLT, so that the DMA starts polling now */ | ||
617 | gfar_write(®s->tstat, TSTAT_CLEAR_THALT); | ||
618 | gfar_write(®s->rstat, RSTAT_CLEAR_RHALT); | ||
619 | |||
616 | /* Unmask the interrupts we look for */ | 620 | /* Unmask the interrupts we look for */ |
617 | gfar_write(®s->imask, IMASK_DEFAULT); | 621 | gfar_write(®s->imask, IMASK_DEFAULT); |
618 | } | 622 | } |
@@ -928,12 +932,13 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
928 | struct txfcb *fcb = NULL; | 932 | struct txfcb *fcb = NULL; |
929 | struct txbd8 *txbdp; | 933 | struct txbd8 *txbdp; |
930 | u16 status; | 934 | u16 status; |
935 | unsigned long flags; | ||
931 | 936 | ||
932 | /* Update transmit stats */ | 937 | /* Update transmit stats */ |
933 | priv->stats.tx_bytes += skb->len; | 938 | priv->stats.tx_bytes += skb->len; |
934 | 939 | ||
935 | /* Lock priv now */ | 940 | /* Lock priv now */ |
936 | spin_lock_irq(&priv->lock); | 941 | spin_lock_irqsave(&priv->txlock, flags); |
937 | 942 | ||
938 | /* Point at the first free tx descriptor */ | 943 | /* Point at the first free tx descriptor */ |
939 | txbdp = priv->cur_tx; | 944 | txbdp = priv->cur_tx; |
@@ -1004,7 +1009,7 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1004 | gfar_write(&priv->regs->tstat, TSTAT_CLEAR_THALT); | 1009 | gfar_write(&priv->regs->tstat, TSTAT_CLEAR_THALT); |
1005 | 1010 | ||
1006 | /* Unlock priv */ | 1011 | /* Unlock priv */ |
1007 | spin_unlock_irq(&priv->lock); | 1012 | spin_unlock_irqrestore(&priv->txlock, flags); |
1008 | 1013 | ||
1009 | return 0; | 1014 | return 0; |
1010 | } | 1015 | } |
@@ -1049,7 +1054,7 @@ static void gfar_vlan_rx_register(struct net_device *dev, | |||
1049 | unsigned long flags; | 1054 | unsigned long flags; |
1050 | u32 tempval; | 1055 | u32 tempval; |
1051 | 1056 | ||
1052 | spin_lock_irqsave(&priv->lock, flags); | 1057 | spin_lock_irqsave(&priv->rxlock, flags); |
1053 | 1058 | ||
1054 | priv->vlgrp = grp; | 1059 | priv->vlgrp = grp; |
1055 | 1060 | ||
@@ -1076,7 +1081,7 @@ static void gfar_vlan_rx_register(struct net_device *dev, | |||
1076 | gfar_write(&priv->regs->rctrl, tempval); | 1081 | gfar_write(&priv->regs->rctrl, tempval); |
1077 | } | 1082 | } |
1078 | 1083 | ||
1079 | spin_unlock_irqrestore(&priv->lock, flags); | 1084 | spin_unlock_irqrestore(&priv->rxlock, flags); |
1080 | } | 1085 | } |
1081 | 1086 | ||
1082 | 1087 | ||
@@ -1085,12 +1090,12 @@ static void gfar_vlan_rx_kill_vid(struct net_device *dev, uint16_t vid) | |||
1085 | struct gfar_private *priv = netdev_priv(dev); | 1090 | struct gfar_private *priv = netdev_priv(dev); |
1086 | unsigned long flags; | 1091 | unsigned long flags; |
1087 | 1092 | ||
1088 | spin_lock_irqsave(&priv->lock, flags); | 1093 | spin_lock_irqsave(&priv->rxlock, flags); |
1089 | 1094 | ||
1090 | if (priv->vlgrp) | 1095 | if (priv->vlgrp) |
1091 | priv->vlgrp->vlan_devices[vid] = NULL; | 1096 | priv->vlgrp->vlan_devices[vid] = NULL; |
1092 | 1097 | ||
1093 | spin_unlock_irqrestore(&priv->lock, flags); | 1098 | spin_unlock_irqrestore(&priv->rxlock, flags); |
1094 | } | 1099 | } |
1095 | 1100 | ||
1096 | 1101 | ||
@@ -1179,7 +1184,7 @@ static irqreturn_t gfar_transmit(int irq, void *dev_id, struct pt_regs *regs) | |||
1179 | gfar_write(&priv->regs->ievent, IEVENT_TX_MASK); | 1184 | gfar_write(&priv->regs->ievent, IEVENT_TX_MASK); |
1180 | 1185 | ||
1181 | /* Lock priv */ | 1186 | /* Lock priv */ |
1182 | spin_lock(&priv->lock); | 1187 | spin_lock(&priv->txlock); |
1183 | bdp = priv->dirty_tx; | 1188 | bdp = priv->dirty_tx; |
1184 | while ((bdp->status & TXBD_READY) == 0) { | 1189 | while ((bdp->status & TXBD_READY) == 0) { |
1185 | /* If dirty_tx and cur_tx are the same, then either the */ | 1190 | /* If dirty_tx and cur_tx are the same, then either the */ |
@@ -1224,7 +1229,7 @@ static irqreturn_t gfar_transmit(int irq, void *dev_id, struct pt_regs *regs) | |||
1224 | else | 1229 | else |
1225 | gfar_write(&priv->regs->txic, 0); | 1230 | gfar_write(&priv->regs->txic, 0); |
1226 | 1231 | ||
1227 | spin_unlock(&priv->lock); | 1232 | spin_unlock(&priv->txlock); |
1228 | 1233 | ||
1229 | return IRQ_HANDLED; | 1234 | return IRQ_HANDLED; |
1230 | } | 1235 | } |
@@ -1305,9 +1310,10 @@ irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs) | |||
1305 | { | 1310 | { |
1306 | struct net_device *dev = (struct net_device *) dev_id; | 1311 | struct net_device *dev = (struct net_device *) dev_id; |
1307 | struct gfar_private *priv = netdev_priv(dev); | 1312 | struct gfar_private *priv = netdev_priv(dev); |
1308 | |||
1309 | #ifdef CONFIG_GFAR_NAPI | 1313 | #ifdef CONFIG_GFAR_NAPI |
1310 | u32 tempval; | 1314 | u32 tempval; |
1315 | #else | ||
1316 | unsigned long flags; | ||
1311 | #endif | 1317 | #endif |
1312 | 1318 | ||
1313 | /* Clear IEVENT, so rx interrupt isn't called again | 1319 | /* Clear IEVENT, so rx interrupt isn't called again |
@@ -1330,7 +1336,7 @@ irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs) | |||
1330 | } | 1336 | } |
1331 | #else | 1337 | #else |
1332 | 1338 | ||
1333 | spin_lock(&priv->lock); | 1339 | spin_lock_irqsave(&priv->rxlock, flags); |
1334 | gfar_clean_rx_ring(dev, priv->rx_ring_size); | 1340 | gfar_clean_rx_ring(dev, priv->rx_ring_size); |
1335 | 1341 | ||
1336 | /* If we are coalescing interrupts, update the timer */ | 1342 | /* If we are coalescing interrupts, update the timer */ |
@@ -1341,7 +1347,7 @@ irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs) | |||
1341 | else | 1347 | else |
1342 | gfar_write(&priv->regs->rxic, 0); | 1348 | gfar_write(&priv->regs->rxic, 0); |
1343 | 1349 | ||
1344 | spin_unlock(&priv->lock); | 1350 | spin_unlock_irqrestore(&priv->rxlock, flags); |
1345 | #endif | 1351 | #endif |
1346 | 1352 | ||
1347 | return IRQ_HANDLED; | 1353 | return IRQ_HANDLED; |
@@ -1490,13 +1496,6 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit) | |||
1490 | /* Update the current rxbd pointer to be the next one */ | 1496 | /* Update the current rxbd pointer to be the next one */ |
1491 | priv->cur_rx = bdp; | 1497 | priv->cur_rx = bdp; |
1492 | 1498 | ||
1493 | /* If no packets have arrived since the | ||
1494 | * last one we processed, clear the IEVENT RX and | ||
1495 | * BSY bits so that another interrupt won't be | ||
1496 | * generated when we set IMASK */ | ||
1497 | if (bdp->status & RXBD_EMPTY) | ||
1498 | gfar_write(&priv->regs->ievent, IEVENT_RX_MASK); | ||
1499 | |||
1500 | return howmany; | 1499 | return howmany; |
1501 | } | 1500 | } |
1502 | 1501 | ||
@@ -1516,7 +1515,7 @@ static int gfar_poll(struct net_device *dev, int *budget) | |||
1516 | rx_work_limit -= howmany; | 1515 | rx_work_limit -= howmany; |
1517 | *budget -= howmany; | 1516 | *budget -= howmany; |
1518 | 1517 | ||
1519 | if (rx_work_limit >= 0) { | 1518 | if (rx_work_limit > 0) { |
1520 | netif_rx_complete(dev); | 1519 | netif_rx_complete(dev); |
1521 | 1520 | ||
1522 | /* Clear the halt bit in RSTAT */ | 1521 | /* Clear the halt bit in RSTAT */ |
@@ -1533,7 +1532,8 @@ static int gfar_poll(struct net_device *dev, int *budget) | |||
1533 | gfar_write(&priv->regs->rxic, 0); | 1532 | gfar_write(&priv->regs->rxic, 0); |
1534 | } | 1533 | } |
1535 | 1534 | ||
1536 | return (rx_work_limit < 0) ? 1 : 0; | 1535 | /* Return 1 if there's more work to do */ |
1536 | return (rx_work_limit > 0) ? 0 : 1; | ||
1537 | } | 1537 | } |
1538 | #endif | 1538 | #endif |
1539 | 1539 | ||
@@ -1629,7 +1629,7 @@ static void adjust_link(struct net_device *dev) | |||
1629 | struct phy_device *phydev = priv->phydev; | 1629 | struct phy_device *phydev = priv->phydev; |
1630 | int new_state = 0; | 1630 | int new_state = 0; |
1631 | 1631 | ||
1632 | spin_lock_irqsave(&priv->lock, flags); | 1632 | spin_lock_irqsave(&priv->txlock, flags); |
1633 | if (phydev->link) { | 1633 | if (phydev->link) { |
1634 | u32 tempval = gfar_read(®s->maccfg2); | 1634 | u32 tempval = gfar_read(®s->maccfg2); |
1635 | u32 ecntrl = gfar_read(®s->ecntrl); | 1635 | u32 ecntrl = gfar_read(®s->ecntrl); |
@@ -1694,7 +1694,7 @@ static void adjust_link(struct net_device *dev) | |||
1694 | if (new_state && netif_msg_link(priv)) | 1694 | if (new_state && netif_msg_link(priv)) |
1695 | phy_print_status(phydev); | 1695 | phy_print_status(phydev); |
1696 | 1696 | ||
1697 | spin_unlock_irqrestore(&priv->lock, flags); | 1697 | spin_unlock_irqrestore(&priv->txlock, flags); |
1698 | } | 1698 | } |
1699 | 1699 | ||
1700 | /* Update the hash table based on the current list of multicast | 1700 | /* Update the hash table based on the current list of multicast |
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h index d37d5401be6e..127c98cf3336 100644 --- a/drivers/net/gianfar.h +++ b/drivers/net/gianfar.h | |||
@@ -656,43 +656,62 @@ struct gfar { | |||
656 | * the buffer descriptor determines the actual condition. | 656 | * the buffer descriptor determines the actual condition. |
657 | */ | 657 | */ |
658 | struct gfar_private { | 658 | struct gfar_private { |
659 | /* pointers to arrays of skbuffs for tx and rx */ | 659 | /* Fields controlled by TX lock */ |
660 | spinlock_t txlock; | ||
661 | |||
662 | /* Pointer to the array of skbuffs */ | ||
660 | struct sk_buff ** tx_skbuff; | 663 | struct sk_buff ** tx_skbuff; |
661 | struct sk_buff ** rx_skbuff; | ||
662 | 664 | ||
663 | /* indices pointing to the next free sbk in skb arrays */ | 665 | /* next free skb in the array */ |
664 | u16 skb_curtx; | 666 | u16 skb_curtx; |
665 | u16 skb_currx; | ||
666 | 667 | ||
667 | /* index of the first skb which hasn't been transmitted | 668 | /* First skb in line to be transmitted */ |
668 | * yet. */ | ||
669 | u16 skb_dirtytx; | 669 | u16 skb_dirtytx; |
670 | 670 | ||
671 | /* Configuration info for the coalescing features */ | 671 | /* Configuration info for the coalescing features */ |
672 | unsigned char txcoalescing; | 672 | unsigned char txcoalescing; |
673 | unsigned short txcount; | 673 | unsigned short txcount; |
674 | unsigned short txtime; | 674 | unsigned short txtime; |
675 | |||
676 | /* Buffer descriptor pointers */ | ||
677 | struct txbd8 *tx_bd_base; /* First tx buffer descriptor */ | ||
678 | struct txbd8 *cur_tx; /* Next free ring entry */ | ||
679 | struct txbd8 *dirty_tx; /* First buffer in line | ||
680 | to be transmitted */ | ||
681 | unsigned int tx_ring_size; | ||
682 | |||
683 | /* RX Locked fields */ | ||
684 | spinlock_t rxlock; | ||
685 | |||
686 | /* skb array and index */ | ||
687 | struct sk_buff ** rx_skbuff; | ||
688 | u16 skb_currx; | ||
689 | |||
690 | /* RX Coalescing values */ | ||
675 | unsigned char rxcoalescing; | 691 | unsigned char rxcoalescing; |
676 | unsigned short rxcount; | 692 | unsigned short rxcount; |
677 | unsigned short rxtime; | 693 | unsigned short rxtime; |
678 | 694 | ||
679 | /* GFAR addresses */ | 695 | struct rxbd8 *rx_bd_base; /* First Rx buffers */ |
680 | struct rxbd8 *rx_bd_base; /* Base addresses of Rx and Tx Buffers */ | ||
681 | struct txbd8 *tx_bd_base; | ||
682 | struct rxbd8 *cur_rx; /* Next free rx ring entry */ | 696 | struct rxbd8 *cur_rx; /* Next free rx ring entry */ |
683 | struct txbd8 *cur_tx; /* Next free ring entry */ | 697 | |
684 | struct txbd8 *dirty_tx; /* The Ring entry to be freed. */ | 698 | /* RX parameters */ |
685 | struct gfar __iomem *regs; /* Pointer to the GFAR memory mapped Registers */ | 699 | unsigned int rx_ring_size; |
686 | u32 __iomem *hash_regs[16]; | ||
687 | int hash_width; | ||
688 | struct net_device_stats stats; /* linux network statistics */ | ||
689 | struct gfar_extra_stats extra_stats; | ||
690 | spinlock_t lock; | ||
691 | unsigned int rx_buffer_size; | 700 | unsigned int rx_buffer_size; |
692 | unsigned int rx_stash_size; | 701 | unsigned int rx_stash_size; |
693 | unsigned int rx_stash_index; | 702 | unsigned int rx_stash_index; |
694 | unsigned int tx_ring_size; | 703 | |
695 | unsigned int rx_ring_size; | 704 | struct vlan_group *vlgrp; |
705 | |||
706 | /* Unprotected fields */ | ||
707 | /* Pointer to the GFAR memory mapped Registers */ | ||
708 | struct gfar __iomem *regs; | ||
709 | |||
710 | /* Hash registers and their width */ | ||
711 | u32 __iomem *hash_regs[16]; | ||
712 | int hash_width; | ||
713 | |||
714 | /* global parameters */ | ||
696 | unsigned int fifo_threshold; | 715 | unsigned int fifo_threshold; |
697 | unsigned int fifo_starve; | 716 | unsigned int fifo_starve; |
698 | unsigned int fifo_starve_off; | 717 | unsigned int fifo_starve_off; |
@@ -702,13 +721,15 @@ struct gfar_private { | |||
702 | extended_hash:1, | 721 | extended_hash:1, |
703 | bd_stash_en:1; | 722 | bd_stash_en:1; |
704 | unsigned short padding; | 723 | unsigned short padding; |
705 | struct vlan_group *vlgrp; | 724 | |
706 | /* Info structure initialized by board setup code */ | ||
707 | unsigned int interruptTransmit; | 725 | unsigned int interruptTransmit; |
708 | unsigned int interruptReceive; | 726 | unsigned int interruptReceive; |
709 | unsigned int interruptError; | 727 | unsigned int interruptError; |
728 | |||
729 | /* info structure initialized by platform code */ | ||
710 | struct gianfar_platform_data *einfo; | 730 | struct gianfar_platform_data *einfo; |
711 | 731 | ||
732 | /* PHY stuff */ | ||
712 | struct phy_device *phydev; | 733 | struct phy_device *phydev; |
713 | struct mii_bus *mii_bus; | 734 | struct mii_bus *mii_bus; |
714 | int oldspeed; | 735 | int oldspeed; |
@@ -716,6 +737,10 @@ struct gfar_private { | |||
716 | int oldlink; | 737 | int oldlink; |
717 | 738 | ||
718 | uint32_t msg_enable; | 739 | uint32_t msg_enable; |
740 | |||
741 | /* Network Statistics */ | ||
742 | struct net_device_stats stats; | ||
743 | struct gfar_extra_stats extra_stats; | ||
719 | }; | 744 | }; |
720 | 745 | ||
721 | static inline u32 gfar_read(volatile unsigned __iomem *addr) | 746 | static inline u32 gfar_read(volatile unsigned __iomem *addr) |
diff --git a/drivers/net/gianfar_ethtool.c b/drivers/net/gianfar_ethtool.c index 5de7b2e259dc..d69698c695ef 100644 --- a/drivers/net/gianfar_ethtool.c +++ b/drivers/net/gianfar_ethtool.c | |||
@@ -455,10 +455,14 @@ static int gfar_sringparam(struct net_device *dev, struct ethtool_ringparam *rva | |||
455 | 455 | ||
456 | /* Halt TX and RX, and process the frames which | 456 | /* Halt TX and RX, and process the frames which |
457 | * have already been received */ | 457 | * have already been received */ |
458 | spin_lock_irqsave(&priv->lock, flags); | 458 | spin_lock_irqsave(&priv->txlock, flags); |
459 | spin_lock(&priv->rxlock); | ||
460 | |||
459 | gfar_halt(dev); | 461 | gfar_halt(dev); |
460 | gfar_clean_rx_ring(dev, priv->rx_ring_size); | 462 | gfar_clean_rx_ring(dev, priv->rx_ring_size); |
461 | spin_unlock_irqrestore(&priv->lock, flags); | 463 | |
464 | spin_unlock(&priv->rxlock); | ||
465 | spin_unlock_irqrestore(&priv->txlock, flags); | ||
462 | 466 | ||
463 | /* Now we take down the rings to rebuild them */ | 467 | /* Now we take down the rings to rebuild them */ |
464 | stop_gfar(dev); | 468 | stop_gfar(dev); |
@@ -488,10 +492,14 @@ static int gfar_set_rx_csum(struct net_device *dev, uint32_t data) | |||
488 | 492 | ||
489 | /* Halt TX and RX, and process the frames which | 493 | /* Halt TX and RX, and process the frames which |
490 | * have already been received */ | 494 | * have already been received */ |
491 | spin_lock_irqsave(&priv->lock, flags); | 495 | spin_lock_irqsave(&priv->txlock, flags); |
496 | spin_lock(&priv->rxlock); | ||
497 | |||
492 | gfar_halt(dev); | 498 | gfar_halt(dev); |
493 | gfar_clean_rx_ring(dev, priv->rx_ring_size); | 499 | gfar_clean_rx_ring(dev, priv->rx_ring_size); |
494 | spin_unlock_irqrestore(&priv->lock, flags); | 500 | |
501 | spin_unlock(&priv->rxlock); | ||
502 | spin_unlock_irqrestore(&priv->txlock, flags); | ||
495 | 503 | ||
496 | /* Now we take down the rings to rebuild them */ | 504 | /* Now we take down the rings to rebuild them */ |
497 | stop_gfar(dev); | 505 | stop_gfar(dev); |
@@ -523,7 +531,7 @@ static int gfar_set_tx_csum(struct net_device *dev, uint32_t data) | |||
523 | if (!(priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_CSUM)) | 531 | if (!(priv->einfo->device_flags & FSL_GIANFAR_DEV_HAS_CSUM)) |
524 | return -EOPNOTSUPP; | 532 | return -EOPNOTSUPP; |
525 | 533 | ||
526 | spin_lock_irqsave(&priv->lock, flags); | 534 | spin_lock_irqsave(&priv->txlock, flags); |
527 | gfar_halt(dev); | 535 | gfar_halt(dev); |
528 | 536 | ||
529 | if (data) | 537 | if (data) |
@@ -532,7 +540,7 @@ static int gfar_set_tx_csum(struct net_device *dev, uint32_t data) | |||
532 | dev->features &= ~NETIF_F_IP_CSUM; | 540 | dev->features &= ~NETIF_F_IP_CSUM; |
533 | 541 | ||
534 | gfar_start(dev); | 542 | gfar_start(dev); |
535 | spin_unlock_irqrestore(&priv->lock, flags); | 543 | spin_unlock_irqrestore(&priv->txlock, flags); |
536 | 544 | ||
537 | return 0; | 545 | return 0; |
538 | } | 546 | } |
diff --git a/drivers/net/gianfar_sysfs.c b/drivers/net/gianfar_sysfs.c index 51ef181b1368..a6d5c43199cb 100644 --- a/drivers/net/gianfar_sysfs.c +++ b/drivers/net/gianfar_sysfs.c | |||
@@ -82,7 +82,7 @@ static ssize_t gfar_set_bd_stash(struct class_device *cdev, | |||
82 | else | 82 | else |
83 | return count; | 83 | return count; |
84 | 84 | ||
85 | spin_lock_irqsave(&priv->lock, flags); | 85 | spin_lock_irqsave(&priv->rxlock, flags); |
86 | 86 | ||
87 | /* Set the new stashing value */ | 87 | /* Set the new stashing value */ |
88 | priv->bd_stash_en = new_setting; | 88 | priv->bd_stash_en = new_setting; |
@@ -96,7 +96,7 @@ static ssize_t gfar_set_bd_stash(struct class_device *cdev, | |||
96 | 96 | ||
97 | gfar_write(&priv->regs->attr, temp); | 97 | gfar_write(&priv->regs->attr, temp); |
98 | 98 | ||
99 | spin_unlock_irqrestore(&priv->lock, flags); | 99 | spin_unlock_irqrestore(&priv->rxlock, flags); |
100 | 100 | ||
101 | return count; | 101 | return count; |
102 | } | 102 | } |
@@ -118,7 +118,7 @@ static ssize_t gfar_set_rx_stash_size(struct class_device *cdev, | |||
118 | u32 temp; | 118 | u32 temp; |
119 | unsigned long flags; | 119 | unsigned long flags; |
120 | 120 | ||
121 | spin_lock_irqsave(&priv->lock, flags); | 121 | spin_lock_irqsave(&priv->rxlock, flags); |
122 | if (length > priv->rx_buffer_size) | 122 | if (length > priv->rx_buffer_size) |
123 | return count; | 123 | return count; |
124 | 124 | ||
@@ -142,7 +142,7 @@ static ssize_t gfar_set_rx_stash_size(struct class_device *cdev, | |||
142 | 142 | ||
143 | gfar_write(&priv->regs->attr, temp); | 143 | gfar_write(&priv->regs->attr, temp); |
144 | 144 | ||
145 | spin_unlock_irqrestore(&priv->lock, flags); | 145 | spin_unlock_irqrestore(&priv->rxlock, flags); |
146 | 146 | ||
147 | return count; | 147 | return count; |
148 | } | 148 | } |
@@ -166,7 +166,7 @@ static ssize_t gfar_set_rx_stash_index(struct class_device *cdev, | |||
166 | u32 temp; | 166 | u32 temp; |
167 | unsigned long flags; | 167 | unsigned long flags; |
168 | 168 | ||
169 | spin_lock_irqsave(&priv->lock, flags); | 169 | spin_lock_irqsave(&priv->rxlock, flags); |
170 | if (index > priv->rx_stash_size) | 170 | if (index > priv->rx_stash_size) |
171 | return count; | 171 | return count; |
172 | 172 | ||
@@ -180,7 +180,7 @@ static ssize_t gfar_set_rx_stash_index(struct class_device *cdev, | |||
180 | temp |= ATTRELI_EI(index); | 180 | temp |= ATTRELI_EI(index); |
181 | gfar_write(&priv->regs->attreli, flags); | 181 | gfar_write(&priv->regs->attreli, flags); |
182 | 182 | ||
183 | spin_unlock_irqrestore(&priv->lock, flags); | 183 | spin_unlock_irqrestore(&priv->rxlock, flags); |
184 | 184 | ||
185 | return count; | 185 | return count; |
186 | } | 186 | } |
@@ -205,7 +205,7 @@ static ssize_t gfar_set_fifo_threshold(struct class_device *cdev, | |||
205 | if (length > GFAR_MAX_FIFO_THRESHOLD) | 205 | if (length > GFAR_MAX_FIFO_THRESHOLD) |
206 | return count; | 206 | return count; |
207 | 207 | ||
208 | spin_lock_irqsave(&priv->lock, flags); | 208 | spin_lock_irqsave(&priv->txlock, flags); |
209 | 209 | ||
210 | priv->fifo_threshold = length; | 210 | priv->fifo_threshold = length; |
211 | 211 | ||
@@ -214,7 +214,7 @@ static ssize_t gfar_set_fifo_threshold(struct class_device *cdev, | |||
214 | temp |= length; | 214 | temp |= length; |
215 | gfar_write(&priv->regs->fifo_tx_thr, temp); | 215 | gfar_write(&priv->regs->fifo_tx_thr, temp); |
216 | 216 | ||
217 | spin_unlock_irqrestore(&priv->lock, flags); | 217 | spin_unlock_irqrestore(&priv->txlock, flags); |
218 | 218 | ||
219 | return count; | 219 | return count; |
220 | } | 220 | } |
@@ -240,7 +240,7 @@ static ssize_t gfar_set_fifo_starve(struct class_device *cdev, | |||
240 | if (num > GFAR_MAX_FIFO_STARVE) | 240 | if (num > GFAR_MAX_FIFO_STARVE) |
241 | return count; | 241 | return count; |
242 | 242 | ||
243 | spin_lock_irqsave(&priv->lock, flags); | 243 | spin_lock_irqsave(&priv->txlock, flags); |
244 | 244 | ||
245 | priv->fifo_starve = num; | 245 | priv->fifo_starve = num; |
246 | 246 | ||
@@ -249,7 +249,7 @@ static ssize_t gfar_set_fifo_starve(struct class_device *cdev, | |||
249 | temp |= num; | 249 | temp |= num; |
250 | gfar_write(&priv->regs->fifo_tx_starve, temp); | 250 | gfar_write(&priv->regs->fifo_tx_starve, temp); |
251 | 251 | ||
252 | spin_unlock_irqrestore(&priv->lock, flags); | 252 | spin_unlock_irqrestore(&priv->txlock, flags); |
253 | 253 | ||
254 | return count; | 254 | return count; |
255 | } | 255 | } |
@@ -274,7 +274,7 @@ static ssize_t gfar_set_fifo_starve_off(struct class_device *cdev, | |||
274 | if (num > GFAR_MAX_FIFO_STARVE_OFF) | 274 | if (num > GFAR_MAX_FIFO_STARVE_OFF) |
275 | return count; | 275 | return count; |
276 | 276 | ||
277 | spin_lock_irqsave(&priv->lock, flags); | 277 | spin_lock_irqsave(&priv->txlock, flags); |
278 | 278 | ||
279 | priv->fifo_starve_off = num; | 279 | priv->fifo_starve_off = num; |
280 | 280 | ||
@@ -283,7 +283,7 @@ static ssize_t gfar_set_fifo_starve_off(struct class_device *cdev, | |||
283 | temp |= num; | 283 | temp |= num; |
284 | gfar_write(&priv->regs->fifo_tx_starve_shutoff, temp); | 284 | gfar_write(&priv->regs->fifo_tx_starve_shutoff, temp); |
285 | 285 | ||
286 | spin_unlock_irqrestore(&priv->lock, flags); | 286 | spin_unlock_irqrestore(&priv->txlock, flags); |
287 | 287 | ||
288 | return count; | 288 | return count; |
289 | } | 289 | } |
diff --git a/drivers/net/hamradio/dmascc.c b/drivers/net/hamradio/dmascc.c index 79a8fbcf5f93..0d5fccc984bb 100644 --- a/drivers/net/hamradio/dmascc.c +++ b/drivers/net/hamradio/dmascc.c | |||
@@ -582,7 +582,6 @@ static int __init setup_adapter(int card_base, int type, int n) | |||
582 | INIT_WORK(&priv->rx_work, rx_bh, priv); | 582 | INIT_WORK(&priv->rx_work, rx_bh, priv); |
583 | dev->priv = priv; | 583 | dev->priv = priv; |
584 | sprintf(dev->name, "dmascc%i", 2 * n + i); | 584 | sprintf(dev->name, "dmascc%i", 2 * n + i); |
585 | SET_MODULE_OWNER(dev); | ||
586 | dev->base_addr = card_base; | 585 | dev->base_addr = card_base; |
587 | dev->irq = irq; | 586 | dev->irq = irq; |
588 | dev->open = scc_open; | 587 | dev->open = scc_open; |
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c index 6ace0e914fd1..5927784df3f9 100644 --- a/drivers/net/hamradio/scc.c +++ b/drivers/net/hamradio/scc.c | |||
@@ -1550,7 +1550,6 @@ static unsigned char ax25_nocall[AX25_ADDR_LEN] = | |||
1550 | 1550 | ||
1551 | static void scc_net_setup(struct net_device *dev) | 1551 | static void scc_net_setup(struct net_device *dev) |
1552 | { | 1552 | { |
1553 | SET_MODULE_OWNER(dev); | ||
1554 | dev->tx_queue_len = 16; /* should be enough... */ | 1553 | dev->tx_queue_len = 16; /* should be enough... */ |
1555 | 1554 | ||
1556 | dev->open = scc_net_open; | 1555 | dev->open = scc_net_open; |
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index fe22479eb202..b49884048caa 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c | |||
@@ -1098,7 +1098,6 @@ static void yam_setup(struct net_device *dev) | |||
1098 | 1098 | ||
1099 | dev->base_addr = yp->iobase; | 1099 | dev->base_addr = yp->iobase; |
1100 | dev->irq = yp->irq; | 1100 | dev->irq = yp->irq; |
1101 | SET_MODULE_OWNER(dev); | ||
1102 | 1101 | ||
1103 | dev->open = yam_open; | 1102 | dev->open = yam_open; |
1104 | dev->stop = yam_close; | 1103 | dev->stop = yam_close; |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index ea62a3e7d586..411f4d809c47 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1419,6 +1419,8 @@ static int mv643xx_eth_probe(struct platform_device *pdev) | |||
1419 | mv643xx_eth_update_pscr(dev, &cmd); | 1419 | mv643xx_eth_update_pscr(dev, &cmd); |
1420 | mv643xx_set_settings(dev, &cmd); | 1420 | mv643xx_set_settings(dev, &cmd); |
1421 | 1421 | ||
1422 | SET_MODULE_OWNER(dev); | ||
1423 | SET_NETDEV_DEV(dev, &pdev->dev); | ||
1422 | err = register_netdev(dev); | 1424 | err = register_netdev(dev); |
1423 | if (err) | 1425 | if (err) |
1424 | goto out; | 1426 | goto out; |
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 67b0eab16589..227df9876a2c 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -51,7 +51,7 @@ | |||
51 | #include "sky2.h" | 51 | #include "sky2.h" |
52 | 52 | ||
53 | #define DRV_NAME "sky2" | 53 | #define DRV_NAME "sky2" |
54 | #define DRV_VERSION "1.1" | 54 | #define DRV_VERSION "1.2" |
55 | #define PFX DRV_NAME " " | 55 | #define PFX DRV_NAME " " |
56 | 56 | ||
57 | /* | 57 | /* |
@@ -925,8 +925,7 @@ static inline struct sk_buff *sky2_alloc_skb(unsigned int size, gfp_t gfp_mask) | |||
925 | skb = alloc_skb(size + RX_SKB_ALIGN, gfp_mask); | 925 | skb = alloc_skb(size + RX_SKB_ALIGN, gfp_mask); |
926 | if (likely(skb)) { | 926 | if (likely(skb)) { |
927 | unsigned long p = (unsigned long) skb->data; | 927 | unsigned long p = (unsigned long) skb->data; |
928 | skb_reserve(skb, | 928 | skb_reserve(skb, ALIGN(p, RX_SKB_ALIGN) - p); |
929 | ((p + RX_SKB_ALIGN - 1) & ~(RX_SKB_ALIGN - 1)) - p); | ||
930 | } | 929 | } |
931 | 930 | ||
932 | return skb; | 931 | return skb; |
@@ -1686,13 +1685,12 @@ static void sky2_tx_timeout(struct net_device *dev) | |||
1686 | } | 1685 | } |
1687 | 1686 | ||
1688 | 1687 | ||
1689 | #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) | ||
1690 | /* Want receive buffer size to be multiple of 64 bits | 1688 | /* Want receive buffer size to be multiple of 64 bits |
1691 | * and incl room for vlan and truncation | 1689 | * and incl room for vlan and truncation |
1692 | */ | 1690 | */ |
1693 | static inline unsigned sky2_buf_size(int mtu) | 1691 | static inline unsigned sky2_buf_size(int mtu) |
1694 | { | 1692 | { |
1695 | return roundup(mtu + ETH_HLEN + VLAN_HLEN, 8) + 8; | 1693 | return ALIGN(mtu + ETH_HLEN + VLAN_HLEN, 8) + 8; |
1696 | } | 1694 | } |
1697 | 1695 | ||
1698 | static int sky2_change_mtu(struct net_device *dev, int new_mtu) | 1696 | static int sky2_change_mtu(struct net_device *dev, int new_mtu) |
@@ -2086,6 +2084,20 @@ static void sky2_descriptor_error(struct sky2_hw *hw, unsigned port, | |||
2086 | } | 2084 | } |
2087 | } | 2085 | } |
2088 | 2086 | ||
2087 | /* If idle then force a fake soft NAPI poll once a second | ||
2088 | * to work around cases where sharing an edge triggered interrupt. | ||
2089 | */ | ||
2090 | static void sky2_idle(unsigned long arg) | ||
2091 | { | ||
2092 | struct net_device *dev = (struct net_device *) arg; | ||
2093 | |||
2094 | local_irq_disable(); | ||
2095 | if (__netif_rx_schedule_prep(dev)) | ||
2096 | __netif_rx_schedule(dev); | ||
2097 | local_irq_enable(); | ||
2098 | } | ||
2099 | |||
2100 | |||
2089 | static int sky2_poll(struct net_device *dev0, int *budget) | 2101 | static int sky2_poll(struct net_device *dev0, int *budget) |
2090 | { | 2102 | { |
2091 | struct sky2_hw *hw = ((struct sky2_port *) netdev_priv(dev0))->hw; | 2103 | struct sky2_hw *hw = ((struct sky2_port *) netdev_priv(dev0))->hw; |
@@ -2093,6 +2105,7 @@ static int sky2_poll(struct net_device *dev0, int *budget) | |||
2093 | int work_done = 0; | 2105 | int work_done = 0; |
2094 | u32 status = sky2_read32(hw, B0_Y2_SP_EISR); | 2106 | u32 status = sky2_read32(hw, B0_Y2_SP_EISR); |
2095 | 2107 | ||
2108 | restart_poll: | ||
2096 | if (unlikely(status & ~Y2_IS_STAT_BMU)) { | 2109 | if (unlikely(status & ~Y2_IS_STAT_BMU)) { |
2097 | if (status & Y2_IS_HW_ERR) | 2110 | if (status & Y2_IS_HW_ERR) |
2098 | sky2_hw_intr(hw); | 2111 | sky2_hw_intr(hw); |
@@ -2123,7 +2136,7 @@ static int sky2_poll(struct net_device *dev0, int *budget) | |||
2123 | } | 2136 | } |
2124 | 2137 | ||
2125 | if (status & Y2_IS_STAT_BMU) { | 2138 | if (status & Y2_IS_STAT_BMU) { |
2126 | work_done = sky2_status_intr(hw, work_limit); | 2139 | work_done += sky2_status_intr(hw, work_limit - work_done); |
2127 | *budget -= work_done; | 2140 | *budget -= work_done; |
2128 | dev0->quota -= work_done; | 2141 | dev0->quota -= work_done; |
2129 | 2142 | ||
@@ -2133,9 +2146,24 @@ static int sky2_poll(struct net_device *dev0, int *budget) | |||
2133 | sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ); | 2146 | sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ); |
2134 | } | 2147 | } |
2135 | 2148 | ||
2136 | netif_rx_complete(dev0); | 2149 | mod_timer(&hw->idle_timer, jiffies + HZ); |
2150 | |||
2151 | local_irq_disable(); | ||
2152 | __netif_rx_complete(dev0); | ||
2137 | 2153 | ||
2138 | status = sky2_read32(hw, B0_Y2_SP_LISR); | 2154 | status = sky2_read32(hw, B0_Y2_SP_LISR); |
2155 | |||
2156 | if (unlikely(status)) { | ||
2157 | /* More work pending, try and keep going */ | ||
2158 | if (__netif_rx_schedule_prep(dev0)) { | ||
2159 | __netif_rx_reschedule(dev0, work_done); | ||
2160 | status = sky2_read32(hw, B0_Y2_SP_EISR); | ||
2161 | local_irq_enable(); | ||
2162 | goto restart_poll; | ||
2163 | } | ||
2164 | } | ||
2165 | |||
2166 | local_irq_enable(); | ||
2139 | return 0; | 2167 | return 0; |
2140 | } | 2168 | } |
2141 | 2169 | ||
@@ -2153,8 +2181,6 @@ static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs) | |||
2153 | prefetch(&hw->st_le[hw->st_idx]); | 2181 | prefetch(&hw->st_le[hw->st_idx]); |
2154 | if (likely(__netif_rx_schedule_prep(dev0))) | 2182 | if (likely(__netif_rx_schedule_prep(dev0))) |
2155 | __netif_rx_schedule(dev0); | 2183 | __netif_rx_schedule(dev0); |
2156 | else | ||
2157 | printk(KERN_DEBUG PFX "irq race detected\n"); | ||
2158 | 2184 | ||
2159 | return IRQ_HANDLED; | 2185 | return IRQ_HANDLED; |
2160 | } | 2186 | } |
@@ -2193,7 +2219,7 @@ static inline u32 sky2_clk2us(const struct sky2_hw *hw, u32 clk) | |||
2193 | } | 2219 | } |
2194 | 2220 | ||
2195 | 2221 | ||
2196 | static int sky2_reset(struct sky2_hw *hw) | 2222 | static int __devinit sky2_reset(struct sky2_hw *hw) |
2197 | { | 2223 | { |
2198 | u16 status; | 2224 | u16 status; |
2199 | u8 t8, pmd_type; | 2225 | u8 t8, pmd_type; |
@@ -3276,6 +3302,8 @@ static int __devinit sky2_probe(struct pci_dev *pdev, | |||
3276 | 3302 | ||
3277 | sky2_write32(hw, B0_IMSK, Y2_IS_BASE); | 3303 | sky2_write32(hw, B0_IMSK, Y2_IS_BASE); |
3278 | 3304 | ||
3305 | setup_timer(&hw->idle_timer, sky2_idle, (unsigned long) dev); | ||
3306 | |||
3279 | pci_set_drvdata(pdev, hw); | 3307 | pci_set_drvdata(pdev, hw); |
3280 | 3308 | ||
3281 | return 0; | 3309 | return 0; |
@@ -3311,13 +3339,15 @@ static void __devexit sky2_remove(struct pci_dev *pdev) | |||
3311 | if (!hw) | 3339 | if (!hw) |
3312 | return; | 3340 | return; |
3313 | 3341 | ||
3342 | del_timer_sync(&hw->idle_timer); | ||
3343 | |||
3344 | sky2_write32(hw, B0_IMSK, 0); | ||
3314 | dev0 = hw->dev[0]; | 3345 | dev0 = hw->dev[0]; |
3315 | dev1 = hw->dev[1]; | 3346 | dev1 = hw->dev[1]; |
3316 | if (dev1) | 3347 | if (dev1) |
3317 | unregister_netdev(dev1); | 3348 | unregister_netdev(dev1); |
3318 | unregister_netdev(dev0); | 3349 | unregister_netdev(dev0); |
3319 | 3350 | ||
3320 | sky2_write32(hw, B0_IMSK, 0); | ||
3321 | sky2_set_power_state(hw, PCI_D3hot); | 3351 | sky2_set_power_state(hw, PCI_D3hot); |
3322 | sky2_write16(hw, B0_Y2LED, LED_STAT_OFF); | 3352 | sky2_write16(hw, B0_Y2LED, LED_STAT_OFF); |
3323 | sky2_write8(hw, B0_CTST, CS_RST_SET); | 3353 | sky2_write8(hw, B0_CTST, CS_RST_SET); |
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h index 89dd18cd12f0..b026f5653f04 100644 --- a/drivers/net/sky2.h +++ b/drivers/net/sky2.h | |||
@@ -1880,6 +1880,8 @@ struct sky2_hw { | |||
1880 | struct sky2_status_le *st_le; | 1880 | struct sky2_status_le *st_le; |
1881 | u32 st_idx; | 1881 | u32 st_idx; |
1882 | dma_addr_t st_dma; | 1882 | dma_addr_t st_dma; |
1883 | |||
1884 | struct timer_list idle_timer; | ||
1883 | int msi_detected; | 1885 | int msi_detected; |
1884 | wait_queue_head_t msi_wait; | 1886 | wait_queue_head_t msi_wait; |
1885 | }; | 1887 | }; |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 73e271e59c6a..beeb612be98f 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -69,8 +69,8 @@ | |||
69 | 69 | ||
70 | #define DRV_MODULE_NAME "tg3" | 70 | #define DRV_MODULE_NAME "tg3" |
71 | #define PFX DRV_MODULE_NAME ": " | 71 | #define PFX DRV_MODULE_NAME ": " |
72 | #define DRV_MODULE_VERSION "3.56" | 72 | #define DRV_MODULE_VERSION "3.57" |
73 | #define DRV_MODULE_RELDATE "Apr 1, 2006" | 73 | #define DRV_MODULE_RELDATE "Apr 28, 2006" |
74 | 74 | ||
75 | #define TG3_DEF_MAC_MODE 0 | 75 | #define TG3_DEF_MAC_MODE 0 |
76 | #define TG3_DEF_RX_MODE 0 | 76 | #define TG3_DEF_RX_MODE 0 |
@@ -974,6 +974,8 @@ static int tg3_phy_reset_5703_4_5(struct tg3 *tp) | |||
974 | return err; | 974 | return err; |
975 | } | 975 | } |
976 | 976 | ||
977 | static void tg3_link_report(struct tg3 *); | ||
978 | |||
977 | /* This will reset the tigon3 PHY if there is no valid | 979 | /* This will reset the tigon3 PHY if there is no valid |
978 | * link unless the FORCE argument is non-zero. | 980 | * link unless the FORCE argument is non-zero. |
979 | */ | 981 | */ |
@@ -987,6 +989,11 @@ static int tg3_phy_reset(struct tg3 *tp) | |||
987 | if (err != 0) | 989 | if (err != 0) |
988 | return -EBUSY; | 990 | return -EBUSY; |
989 | 991 | ||
992 | if (netif_running(tp->dev) && netif_carrier_ok(tp->dev)) { | ||
993 | netif_carrier_off(tp->dev); | ||
994 | tg3_link_report(tp); | ||
995 | } | ||
996 | |||
990 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || | 997 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5703 || |
991 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || | 998 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 || |
992 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { | 999 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { |
@@ -1023,6 +1030,12 @@ out: | |||
1023 | tg3_writephy(tp, MII_TG3_DSP_RW_PORT, 0x14e2); | 1030 | tg3_writephy(tp, MII_TG3_DSP_RW_PORT, 0x14e2); |
1024 | tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x0400); | 1031 | tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x0400); |
1025 | } | 1032 | } |
1033 | else if (tp->tg3_flags2 & TG3_FLG2_PHY_JITTER_BUG) { | ||
1034 | tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x0c00); | ||
1035 | tg3_writephy(tp, MII_TG3_DSP_ADDRESS, 0x000a); | ||
1036 | tg3_writephy(tp, MII_TG3_DSP_RW_PORT, 0x010b); | ||
1037 | tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x0400); | ||
1038 | } | ||
1026 | /* Set Extended packet length bit (bit 14) on all chips that */ | 1039 | /* Set Extended packet length bit (bit 14) on all chips that */ |
1027 | /* support jumbo frames */ | 1040 | /* support jumbo frames */ |
1028 | if ((tp->phy_id & PHY_ID_MASK) == PHY_ID_BCM5401) { | 1041 | if ((tp->phy_id & PHY_ID_MASK) == PHY_ID_BCM5401) { |
@@ -3531,7 +3544,7 @@ static irqreturn_t tg3_test_isr(int irq, void *dev_id, | |||
3531 | return IRQ_RETVAL(0); | 3544 | return IRQ_RETVAL(0); |
3532 | } | 3545 | } |
3533 | 3546 | ||
3534 | static int tg3_init_hw(struct tg3 *); | 3547 | static int tg3_init_hw(struct tg3 *, int); |
3535 | static int tg3_halt(struct tg3 *, int, int); | 3548 | static int tg3_halt(struct tg3 *, int, int); |
3536 | 3549 | ||
3537 | #ifdef CONFIG_NET_POLL_CONTROLLER | 3550 | #ifdef CONFIG_NET_POLL_CONTROLLER |
@@ -3567,7 +3580,7 @@ static void tg3_reset_task(void *_data) | |||
3567 | tp->tg3_flags2 &= ~TG3_FLG2_RESTART_TIMER; | 3580 | tp->tg3_flags2 &= ~TG3_FLG2_RESTART_TIMER; |
3568 | 3581 | ||
3569 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 0); | 3582 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 0); |
3570 | tg3_init_hw(tp); | 3583 | tg3_init_hw(tp, 1); |
3571 | 3584 | ||
3572 | tg3_netif_start(tp); | 3585 | tg3_netif_start(tp); |
3573 | 3586 | ||
@@ -4042,7 +4055,7 @@ static int tg3_change_mtu(struct net_device *dev, int new_mtu) | |||
4042 | 4055 | ||
4043 | tg3_set_mtu(dev, tp, new_mtu); | 4056 | tg3_set_mtu(dev, tp, new_mtu); |
4044 | 4057 | ||
4045 | tg3_init_hw(tp); | 4058 | tg3_init_hw(tp, 0); |
4046 | 4059 | ||
4047 | tg3_netif_start(tp); | 4060 | tg3_netif_start(tp); |
4048 | 4061 | ||
@@ -5719,9 +5732,23 @@ static int tg3_set_mac_addr(struct net_device *dev, void *p) | |||
5719 | if (!netif_running(dev)) | 5732 | if (!netif_running(dev)) |
5720 | return 0; | 5733 | return 0; |
5721 | 5734 | ||
5722 | spin_lock_bh(&tp->lock); | 5735 | if (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) { |
5723 | __tg3_set_mac_addr(tp); | 5736 | /* Reset chip so that ASF can re-init any MAC addresses it |
5724 | spin_unlock_bh(&tp->lock); | 5737 | * needs. |
5738 | */ | ||
5739 | tg3_netif_stop(tp); | ||
5740 | tg3_full_lock(tp, 1); | ||
5741 | |||
5742 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | ||
5743 | tg3_init_hw(tp, 0); | ||
5744 | |||
5745 | tg3_netif_start(tp); | ||
5746 | tg3_full_unlock(tp); | ||
5747 | } else { | ||
5748 | spin_lock_bh(&tp->lock); | ||
5749 | __tg3_set_mac_addr(tp); | ||
5750 | spin_unlock_bh(&tp->lock); | ||
5751 | } | ||
5725 | 5752 | ||
5726 | return 0; | 5753 | return 0; |
5727 | } | 5754 | } |
@@ -5771,7 +5798,7 @@ static void __tg3_set_coalesce(struct tg3 *tp, struct ethtool_coalesce *ec) | |||
5771 | } | 5798 | } |
5772 | 5799 | ||
5773 | /* tp->lock is held. */ | 5800 | /* tp->lock is held. */ |
5774 | static int tg3_reset_hw(struct tg3 *tp) | 5801 | static int tg3_reset_hw(struct tg3 *tp, int reset_phy) |
5775 | { | 5802 | { |
5776 | u32 val, rdmac_mode; | 5803 | u32 val, rdmac_mode; |
5777 | int i, err, limit; | 5804 | int i, err, limit; |
@@ -5786,7 +5813,7 @@ static int tg3_reset_hw(struct tg3 *tp) | |||
5786 | tg3_abort_hw(tp, 1); | 5813 | tg3_abort_hw(tp, 1); |
5787 | } | 5814 | } |
5788 | 5815 | ||
5789 | if (tp->tg3_flags2 & TG3_FLG2_MII_SERDES) | 5816 | if ((tp->tg3_flags2 & TG3_FLG2_MII_SERDES) && reset_phy) |
5790 | tg3_phy_reset(tp); | 5817 | tg3_phy_reset(tp); |
5791 | 5818 | ||
5792 | err = tg3_chip_reset(tp); | 5819 | err = tg3_chip_reset(tp); |
@@ -6327,7 +6354,7 @@ static int tg3_reset_hw(struct tg3 *tp) | |||
6327 | tw32(GRC_LOCAL_CTRL, tp->grc_local_ctrl); | 6354 | tw32(GRC_LOCAL_CTRL, tp->grc_local_ctrl); |
6328 | } | 6355 | } |
6329 | 6356 | ||
6330 | err = tg3_setup_phy(tp, 1); | 6357 | err = tg3_setup_phy(tp, reset_phy); |
6331 | if (err) | 6358 | if (err) |
6332 | return err; | 6359 | return err; |
6333 | 6360 | ||
@@ -6400,7 +6427,7 @@ static int tg3_reset_hw(struct tg3 *tp) | |||
6400 | /* Called at device open time to get the chip ready for | 6427 | /* Called at device open time to get the chip ready for |
6401 | * packet processing. Invoked with tp->lock held. | 6428 | * packet processing. Invoked with tp->lock held. |
6402 | */ | 6429 | */ |
6403 | static int tg3_init_hw(struct tg3 *tp) | 6430 | static int tg3_init_hw(struct tg3 *tp, int reset_phy) |
6404 | { | 6431 | { |
6405 | int err; | 6432 | int err; |
6406 | 6433 | ||
@@ -6413,7 +6440,7 @@ static int tg3_init_hw(struct tg3 *tp) | |||
6413 | 6440 | ||
6414 | tw32(TG3PCI_MEM_WIN_BASE_ADDR, 0); | 6441 | tw32(TG3PCI_MEM_WIN_BASE_ADDR, 0); |
6415 | 6442 | ||
6416 | err = tg3_reset_hw(tp); | 6443 | err = tg3_reset_hw(tp, reset_phy); |
6417 | 6444 | ||
6418 | out: | 6445 | out: |
6419 | return err; | 6446 | return err; |
@@ -6683,7 +6710,7 @@ static int tg3_test_msi(struct tg3 *tp) | |||
6683 | tg3_full_lock(tp, 1); | 6710 | tg3_full_lock(tp, 1); |
6684 | 6711 | ||
6685 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | 6712 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); |
6686 | err = tg3_init_hw(tp); | 6713 | err = tg3_init_hw(tp, 1); |
6687 | 6714 | ||
6688 | tg3_full_unlock(tp); | 6715 | tg3_full_unlock(tp); |
6689 | 6716 | ||
@@ -6748,7 +6775,7 @@ static int tg3_open(struct net_device *dev) | |||
6748 | 6775 | ||
6749 | tg3_full_lock(tp, 0); | 6776 | tg3_full_lock(tp, 0); |
6750 | 6777 | ||
6751 | err = tg3_init_hw(tp); | 6778 | err = tg3_init_hw(tp, 1); |
6752 | if (err) { | 6779 | if (err) { |
6753 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | 6780 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); |
6754 | tg3_free_rings(tp); | 6781 | tg3_free_rings(tp); |
@@ -7839,7 +7866,7 @@ static int tg3_set_ringparam(struct net_device *dev, struct ethtool_ringparam *e | |||
7839 | 7866 | ||
7840 | if (netif_running(dev)) { | 7867 | if (netif_running(dev)) { |
7841 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | 7868 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); |
7842 | tg3_init_hw(tp); | 7869 | tg3_init_hw(tp, 1); |
7843 | tg3_netif_start(tp); | 7870 | tg3_netif_start(tp); |
7844 | } | 7871 | } |
7845 | 7872 | ||
@@ -7884,7 +7911,7 @@ static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam | |||
7884 | 7911 | ||
7885 | if (netif_running(dev)) { | 7912 | if (netif_running(dev)) { |
7886 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | 7913 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); |
7887 | tg3_init_hw(tp); | 7914 | tg3_init_hw(tp, 1); |
7888 | tg3_netif_start(tp); | 7915 | tg3_netif_start(tp); |
7889 | } | 7916 | } |
7890 | 7917 | ||
@@ -8522,7 +8549,7 @@ static int tg3_test_loopback(struct tg3 *tp) | |||
8522 | if (!netif_running(tp->dev)) | 8549 | if (!netif_running(tp->dev)) |
8523 | return TG3_LOOPBACK_FAILED; | 8550 | return TG3_LOOPBACK_FAILED; |
8524 | 8551 | ||
8525 | tg3_reset_hw(tp); | 8552 | tg3_reset_hw(tp, 1); |
8526 | 8553 | ||
8527 | if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK)) | 8554 | if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK)) |
8528 | err |= TG3_MAC_LOOPBACK_FAILED; | 8555 | err |= TG3_MAC_LOOPBACK_FAILED; |
@@ -8596,7 +8623,7 @@ static void tg3_self_test(struct net_device *dev, struct ethtool_test *etest, | |||
8596 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); | 8623 | tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); |
8597 | if (netif_running(dev)) { | 8624 | if (netif_running(dev)) { |
8598 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; | 8625 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; |
8599 | tg3_init_hw(tp); | 8626 | tg3_init_hw(tp, 1); |
8600 | tg3_netif_start(tp); | 8627 | tg3_netif_start(tp); |
8601 | } | 8628 | } |
8602 | 8629 | ||
@@ -9377,7 +9404,7 @@ static int tg3_nvram_write_block_buffered(struct tg3 *tp, u32 offset, u32 len, | |||
9377 | 9404 | ||
9378 | if ((page_off == 0) || (i == 0)) | 9405 | if ((page_off == 0) || (i == 0)) |
9379 | nvram_cmd |= NVRAM_CMD_FIRST; | 9406 | nvram_cmd |= NVRAM_CMD_FIRST; |
9380 | else if (page_off == (tp->nvram_pagesize - 4)) | 9407 | if (page_off == (tp->nvram_pagesize - 4)) |
9381 | nvram_cmd |= NVRAM_CMD_LAST; | 9408 | nvram_cmd |= NVRAM_CMD_LAST; |
9382 | 9409 | ||
9383 | if (i == (len - 4)) | 9410 | if (i == (len - 4)) |
@@ -10353,10 +10380,13 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) | |||
10353 | if (tp->pci_chip_rev_id == CHIPREV_ID_5704_A0) | 10380 | if (tp->pci_chip_rev_id == CHIPREV_ID_5704_A0) |
10354 | tp->tg3_flags2 |= TG3_FLG2_PHY_5704_A0_BUG; | 10381 | tp->tg3_flags2 |= TG3_FLG2_PHY_5704_A0_BUG; |
10355 | 10382 | ||
10356 | if ((tp->tg3_flags2 & TG3_FLG2_5705_PLUS) && | 10383 | if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) { |
10357 | (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5755) && | 10384 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || |
10358 | (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5787)) | 10385 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) |
10359 | tp->tg3_flags2 |= TG3_FLG2_PHY_BER_BUG; | 10386 | tp->tg3_flags2 |= TG3_FLG2_PHY_JITTER_BUG; |
10387 | else | ||
10388 | tp->tg3_flags2 |= TG3_FLG2_PHY_BER_BUG; | ||
10389 | } | ||
10360 | 10390 | ||
10361 | tp->coalesce_mode = 0; | 10391 | tp->coalesce_mode = 0; |
10362 | if (GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_AX && | 10392 | if (GET_CHIP_REV(tp->pci_chip_rev_id) != CHIPREV_5700_AX && |
@@ -11569,7 +11599,7 @@ static int tg3_suspend(struct pci_dev *pdev, pm_message_t state) | |||
11569 | tg3_full_lock(tp, 0); | 11599 | tg3_full_lock(tp, 0); |
11570 | 11600 | ||
11571 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; | 11601 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; |
11572 | tg3_init_hw(tp); | 11602 | tg3_init_hw(tp, 1); |
11573 | 11603 | ||
11574 | tp->timer.expires = jiffies + tp->timer_offset; | 11604 | tp->timer.expires = jiffies + tp->timer_offset; |
11575 | add_timer(&tp->timer); | 11605 | add_timer(&tp->timer); |
@@ -11603,7 +11633,7 @@ static int tg3_resume(struct pci_dev *pdev) | |||
11603 | tg3_full_lock(tp, 0); | 11633 | tg3_full_lock(tp, 0); |
11604 | 11634 | ||
11605 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; | 11635 | tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; |
11606 | tg3_init_hw(tp); | 11636 | tg3_init_hw(tp, 1); |
11607 | 11637 | ||
11608 | tp->timer.expires = jiffies + tp->timer_offset; | 11638 | tp->timer.expires = jiffies + tp->timer_offset; |
11609 | add_timer(&tp->timer); | 11639 | add_timer(&tp->timer); |
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index 8c8b987d1250..0e29b885d449 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -2215,6 +2215,7 @@ struct tg3 { | |||
2215 | #define TG3_FLG2_HW_TSO_2 0x08000000 | 2215 | #define TG3_FLG2_HW_TSO_2 0x08000000 |
2216 | #define TG3_FLG2_HW_TSO (TG3_FLG2_HW_TSO_1 | TG3_FLG2_HW_TSO_2) | 2216 | #define TG3_FLG2_HW_TSO (TG3_FLG2_HW_TSO_1 | TG3_FLG2_HW_TSO_2) |
2217 | #define TG3_FLG2_1SHOT_MSI 0x10000000 | 2217 | #define TG3_FLG2_1SHOT_MSI 0x10000000 |
2218 | #define TG3_FLG2_PHY_JITTER_BUG 0x20000000 | ||
2218 | 2219 | ||
2219 | u32 split_mode_max_reqs; | 2220 | u32 split_mode_max_reqs; |
2220 | #define SPLIT_MODE_5704_MAX_REQ 3 | 2221 | #define SPLIT_MODE_5704_MAX_REQ 3 |
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c index 6a23964c1317..a6dc53b4250d 100644 --- a/drivers/net/via-rhine.c +++ b/drivers/net/via-rhine.c | |||
@@ -129,6 +129,7 @@ | |||
129 | - Massive clean-up | 129 | - Massive clean-up |
130 | - Rewrite PHY, media handling (remove options, full_duplex, backoff) | 130 | - Rewrite PHY, media handling (remove options, full_duplex, backoff) |
131 | - Fix Tx engine race for good | 131 | - Fix Tx engine race for good |
132 | - Craig Brind: Zero padded aligned buffers for short packets. | ||
132 | 133 | ||
133 | */ | 134 | */ |
134 | 135 | ||
@@ -1326,7 +1327,12 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev) | |||
1326 | rp->stats.tx_dropped++; | 1327 | rp->stats.tx_dropped++; |
1327 | return 0; | 1328 | return 0; |
1328 | } | 1329 | } |
1330 | |||
1331 | /* Padding is not copied and so must be redone. */ | ||
1329 | skb_copy_and_csum_dev(skb, rp->tx_buf[entry]); | 1332 | skb_copy_and_csum_dev(skb, rp->tx_buf[entry]); |
1333 | if (skb->len < ETH_ZLEN) | ||
1334 | memset(rp->tx_buf[entry] + skb->len, 0, | ||
1335 | ETH_ZLEN - skb->len); | ||
1330 | rp->tx_skbuff_dma[entry] = 0; | 1336 | rp->tx_skbuff_dma[entry] = 0; |
1331 | rp->tx_ring[entry].addr = cpu_to_le32(rp->tx_bufs_dma + | 1337 | rp->tx_ring[entry].addr = cpu_to_le32(rp->tx_bufs_dma + |
1332 | (rp->tx_buf[entry] - | 1338 | (rp->tx_buf[entry] - |
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 2087a397ef16..9855c4c920b8 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -793,8 +793,10 @@ static int msix_capability_init(struct pci_dev *dev, | |||
793 | if (!entry) | 793 | if (!entry) |
794 | break; | 794 | break; |
795 | vector = get_msi_vector(dev); | 795 | vector = get_msi_vector(dev); |
796 | if (vector < 0) | 796 | if (vector < 0) { |
797 | kmem_cache_free(msi_cachep, entry); | ||
797 | break; | 798 | break; |
799 | } | ||
798 | 800 | ||
799 | j = entries[i].entry; | 801 | j = entries[i].entry; |
800 | entries[i].vector = vector; | 802 | entries[i].vector = vector; |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c42ae2cf8d64..19e2b174d33c 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -642,13 +642,15 @@ static void quirk_via_irq(struct pci_dev *dev) | |||
642 | new_irq = dev->irq & 0xf; | 642 | new_irq = dev->irq & 0xf; |
643 | pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); | 643 | pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); |
644 | if (new_irq != irq) { | 644 | if (new_irq != irq) { |
645 | printk(KERN_INFO "PCI: Via IRQ fixup for %s, from %d to %d\n", | 645 | printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n", |
646 | pci_name(dev), irq, new_irq); | 646 | pci_name(dev), irq, new_irq); |
647 | udelay(15); /* unknown if delay really needed */ | 647 | udelay(15); /* unknown if delay really needed */ |
648 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq); | 648 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq); |
649 | } | 649 | } |
650 | } | 650 | } |
651 | DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq); | 651 | DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_irq); |
652 | DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_irq); | ||
653 | DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irq); | ||
652 | 654 | ||
653 | /* | 655 | /* |
654 | * VIA VT82C598 has its device ID settable and many BIOSes | 656 | * VIA VT82C598 has its device ID settable and many BIOSes |
diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c index bd0308e89815..a2f05f485156 100644 --- a/drivers/pcmcia/i82365.c +++ b/drivers/pcmcia/i82365.c | |||
@@ -509,7 +509,8 @@ static irqreturn_t i365_count_irq(int irq, void *dev, struct pt_regs *regs) | |||
509 | static u_int __init test_irq(u_short sock, int irq) | 509 | static u_int __init test_irq(u_short sock, int irq) |
510 | { | 510 | { |
511 | debug(2, " testing ISA irq %d\n", irq); | 511 | debug(2, " testing ISA irq %d\n", irq); |
512 | if (request_irq(irq, i365_count_irq, 0, "scan", i365_count_irq) != 0) | 512 | if (request_irq(irq, i365_count_irq, SA_PROBEIRQ, "scan", |
513 | i365_count_irq) != 0) | ||
513 | return 1; | 514 | return 1; |
514 | irq_hits = 0; irq_sock = sock; | 515 | irq_hits = 0; irq_sock = sock; |
515 | msleep(10); | 516 | msleep(10); |
@@ -561,7 +562,7 @@ static u_int __init isa_scan(u_short sock, u_int mask0) | |||
561 | } else { | 562 | } else { |
562 | /* Fallback: just find interrupts that aren't in use */ | 563 | /* Fallback: just find interrupts that aren't in use */ |
563 | for (i = 0; i < 16; i++) | 564 | for (i = 0; i < 16; i++) |
564 | if ((mask0 & (1 << i)) && (_check_irq(i, 0) == 0)) | 565 | if ((mask0 & (1 << i)) && (_check_irq(i, SA_PROBEIRQ) == 0)) |
565 | mask1 |= (1 << i); | 566 | mask1 |= (1 << i); |
566 | printk("default"); | 567 | printk("default"); |
567 | /* If scan failed, default to polled status */ | 568 | /* If scan failed, default to polled status */ |
@@ -725,7 +726,7 @@ static void __init add_pcic(int ns, int type) | |||
725 | u_int cs_mask = mask & ((cs_irq) ? (1<<cs_irq) : ~(1<<12)); | 726 | u_int cs_mask = mask & ((cs_irq) ? (1<<cs_irq) : ~(1<<12)); |
726 | for (cs_irq = 15; cs_irq > 0; cs_irq--) | 727 | for (cs_irq = 15; cs_irq > 0; cs_irq--) |
727 | if ((cs_mask & (1 << cs_irq)) && | 728 | if ((cs_mask & (1 << cs_irq)) && |
728 | (_check_irq(cs_irq, 0) == 0)) | 729 | (_check_irq(cs_irq, SA_PROBEIRQ) == 0)) |
729 | break; | 730 | break; |
730 | if (cs_irq) { | 731 | if (cs_irq) { |
731 | grab_irq = 1; | 732 | grab_irq = 1; |
diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index b1e3e6179e56..6c9ad92747fd 100644 --- a/drivers/rtc/rtc-dev.c +++ b/drivers/rtc/rtc-dev.c | |||
@@ -58,7 +58,7 @@ rtc_dev_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) | |||
58 | unsigned long data; | 58 | unsigned long data; |
59 | ssize_t ret; | 59 | ssize_t ret; |
60 | 60 | ||
61 | if (count < sizeof(unsigned long)) | 61 | if (count != sizeof(unsigned int) && count < sizeof(unsigned long)) |
62 | return -EINVAL; | 62 | return -EINVAL; |
63 | 63 | ||
64 | add_wait_queue(&rtc->irq_queue, &wait); | 64 | add_wait_queue(&rtc->irq_queue, &wait); |
@@ -90,11 +90,16 @@ rtc_dev_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) | |||
90 | if (ret == 0) { | 90 | if (ret == 0) { |
91 | /* Check for any data updates */ | 91 | /* Check for any data updates */ |
92 | if (rtc->ops->read_callback) | 92 | if (rtc->ops->read_callback) |
93 | data = rtc->ops->read_callback(rtc->class_dev.dev, data); | 93 | data = rtc->ops->read_callback(rtc->class_dev.dev, |
94 | 94 | data); | |
95 | ret = put_user(data, (unsigned long __user *)buf); | 95 | |
96 | if (ret == 0) | 96 | if (sizeof(int) != sizeof(long) && |
97 | ret = sizeof(unsigned long); | 97 | count == sizeof(unsigned int)) |
98 | ret = put_user(data, (unsigned int __user *)buf) ?: | ||
99 | sizeof(unsigned int); | ||
100 | else | ||
101 | ret = put_user(data, (unsigned long __user *)buf) ?: | ||
102 | sizeof(unsigned long); | ||
98 | } | 103 | } |
99 | return ret; | 104 | return ret; |
100 | } | 105 | } |
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index a3bfebcf31ef..cfb1fff3787c 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -315,6 +315,11 @@ dasd_increase_state(struct dasd_device *device) | |||
315 | rc = dasd_state_basic_to_ready(device); | 315 | rc = dasd_state_basic_to_ready(device); |
316 | 316 | ||
317 | if (!rc && | 317 | if (!rc && |
318 | device->state == DASD_STATE_UNFMT && | ||
319 | device->target > DASD_STATE_UNFMT) | ||
320 | rc = -EPERM; | ||
321 | |||
322 | if (!rc && | ||
318 | device->state == DASD_STATE_READY && | 323 | device->state == DASD_STATE_READY && |
319 | device->target >= DASD_STATE_ONLINE) | 324 | device->target >= DASD_STATE_ONLINE) |
320 | rc = dasd_state_ready_to_online(device); | 325 | rc = dasd_state_ready_to_online(device); |
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index c1c6f1381150..216bc4fba199 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
@@ -45,6 +45,7 @@ struct dasd_devmap { | |||
45 | unsigned int devindex; | 45 | unsigned int devindex; |
46 | unsigned short features; | 46 | unsigned short features; |
47 | struct dasd_device *device; | 47 | struct dasd_device *device; |
48 | struct dasd_uid uid; | ||
48 | }; | 49 | }; |
49 | 50 | ||
50 | /* | 51 | /* |
@@ -716,6 +717,68 @@ dasd_discipline_show(struct device *dev, struct device_attribute *attr, char *bu | |||
716 | 717 | ||
717 | static DEVICE_ATTR(discipline, 0444, dasd_discipline_show, NULL); | 718 | static DEVICE_ATTR(discipline, 0444, dasd_discipline_show, NULL); |
718 | 719 | ||
720 | static ssize_t | ||
721 | dasd_alias_show(struct device *dev, struct device_attribute *attr, char *buf) | ||
722 | { | ||
723 | struct dasd_devmap *devmap; | ||
724 | int alias; | ||
725 | |||
726 | devmap = dasd_find_busid(dev->bus_id); | ||
727 | spin_lock(&dasd_devmap_lock); | ||
728 | if (!IS_ERR(devmap)) | ||
729 | alias = devmap->uid.alias; | ||
730 | else | ||
731 | alias = 0; | ||
732 | spin_unlock(&dasd_devmap_lock); | ||
733 | |||
734 | return sprintf(buf, alias ? "1\n" : "0\n"); | ||
735 | } | ||
736 | |||
737 | static DEVICE_ATTR(alias, 0444, dasd_alias_show, NULL); | ||
738 | |||
739 | static ssize_t | ||
740 | dasd_vendor_show(struct device *dev, struct device_attribute *attr, char *buf) | ||
741 | { | ||
742 | struct dasd_devmap *devmap; | ||
743 | char *vendor; | ||
744 | |||
745 | devmap = dasd_find_busid(dev->bus_id); | ||
746 | spin_lock(&dasd_devmap_lock); | ||
747 | if (!IS_ERR(devmap) && strlen(devmap->uid.vendor) > 0) | ||
748 | vendor = devmap->uid.vendor; | ||
749 | else | ||
750 | vendor = ""; | ||
751 | spin_unlock(&dasd_devmap_lock); | ||
752 | |||
753 | return snprintf(buf, PAGE_SIZE, "%s\n", vendor); | ||
754 | } | ||
755 | |||
756 | static DEVICE_ATTR(vendor, 0444, dasd_vendor_show, NULL); | ||
757 | |||
758 | #define UID_STRLEN ( /* vendor */ 3 + 1 + /* serial */ 14 + 1 +\ | ||
759 | /* SSID */ 4 + 1 + /* unit addr */ 2 + 1) | ||
760 | |||
761 | static ssize_t | ||
762 | dasd_uid_show(struct device *dev, struct device_attribute *attr, char *buf) | ||
763 | { | ||
764 | struct dasd_devmap *devmap; | ||
765 | char uid[UID_STRLEN]; | ||
766 | |||
767 | devmap = dasd_find_busid(dev->bus_id); | ||
768 | spin_lock(&dasd_devmap_lock); | ||
769 | if (!IS_ERR(devmap) && strlen(devmap->uid.vendor) > 0) | ||
770 | snprintf(uid, sizeof(uid), "%s.%s.%04x.%02x", | ||
771 | devmap->uid.vendor, devmap->uid.serial, | ||
772 | devmap->uid.ssid, devmap->uid.unit_addr); | ||
773 | else | ||
774 | uid[0] = 0; | ||
775 | spin_unlock(&dasd_devmap_lock); | ||
776 | |||
777 | return snprintf(buf, PAGE_SIZE, "%s\n", uid); | ||
778 | } | ||
779 | |||
780 | static DEVICE_ATTR(uid, 0444, dasd_uid_show, NULL); | ||
781 | |||
719 | /* | 782 | /* |
720 | * extended error-reporting | 783 | * extended error-reporting |
721 | */ | 784 | */ |
@@ -759,6 +822,9 @@ static DEVICE_ATTR(eer_enabled, 0644, dasd_eer_show, dasd_eer_store); | |||
759 | static struct attribute * dasd_attrs[] = { | 822 | static struct attribute * dasd_attrs[] = { |
760 | &dev_attr_readonly.attr, | 823 | &dev_attr_readonly.attr, |
761 | &dev_attr_discipline.attr, | 824 | &dev_attr_discipline.attr, |
825 | &dev_attr_alias.attr, | ||
826 | &dev_attr_vendor.attr, | ||
827 | &dev_attr_uid.attr, | ||
762 | &dev_attr_use_diag.attr, | 828 | &dev_attr_use_diag.attr, |
763 | &dev_attr_eer_enabled.attr, | 829 | &dev_attr_eer_enabled.attr, |
764 | NULL, | 830 | NULL, |
@@ -768,6 +834,42 @@ static struct attribute_group dasd_attr_group = { | |||
768 | .attrs = dasd_attrs, | 834 | .attrs = dasd_attrs, |
769 | }; | 835 | }; |
770 | 836 | ||
837 | |||
838 | /* | ||
839 | * Return copy of the device unique identifier. | ||
840 | */ | ||
841 | int | ||
842 | dasd_get_uid(struct ccw_device *cdev, struct dasd_uid *uid) | ||
843 | { | ||
844 | struct dasd_devmap *devmap; | ||
845 | |||
846 | devmap = dasd_find_busid(cdev->dev.bus_id); | ||
847 | if (IS_ERR(devmap)) | ||
848 | return PTR_ERR(devmap); | ||
849 | spin_lock(&dasd_devmap_lock); | ||
850 | *uid = devmap->uid; | ||
851 | spin_unlock(&dasd_devmap_lock); | ||
852 | return 0; | ||
853 | } | ||
854 | |||
855 | /* | ||
856 | * Register the given device unique identifier into devmap struct. | ||
857 | */ | ||
858 | int | ||
859 | dasd_set_uid(struct ccw_device *cdev, struct dasd_uid *uid) | ||
860 | { | ||
861 | struct dasd_devmap *devmap; | ||
862 | |||
863 | devmap = dasd_find_busid(cdev->dev.bus_id); | ||
864 | if (IS_ERR(devmap)) | ||
865 | return PTR_ERR(devmap); | ||
866 | spin_lock(&dasd_devmap_lock); | ||
867 | devmap->uid = *uid; | ||
868 | spin_unlock(&dasd_devmap_lock); | ||
869 | return 0; | ||
870 | } | ||
871 | EXPORT_SYMBOL(dasd_set_uid); | ||
872 | |||
771 | /* | 873 | /* |
772 | * Return value of the specified feature. | 874 | * Return value of the specified feature. |
773 | */ | 875 | */ |
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index ee09ef33d08d..7d5a6cee4bd8 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -446,6 +446,39 @@ dasd_eckd_cdl_reclen(int recid) | |||
446 | return LABEL_SIZE; | 446 | return LABEL_SIZE; |
447 | } | 447 | } |
448 | 448 | ||
449 | /* | ||
450 | * Generate device unique id that specifies the physical device. | ||
451 | */ | ||
452 | static int | ||
453 | dasd_eckd_generate_uid(struct dasd_device *device, struct dasd_uid *uid) | ||
454 | { | ||
455 | struct dasd_eckd_private *private; | ||
456 | struct dasd_eckd_confdata *confdata; | ||
457 | |||
458 | private = (struct dasd_eckd_private *) device->private; | ||
459 | if (!private) | ||
460 | return -ENODEV; | ||
461 | confdata = &private->conf_data; | ||
462 | if (!confdata) | ||
463 | return -ENODEV; | ||
464 | |||
465 | memset(uid, 0, sizeof(struct dasd_uid)); | ||
466 | strncpy(uid->vendor, confdata->ned1.HDA_manufacturer, | ||
467 | sizeof(uid->vendor) - 1); | ||
468 | EBCASC(uid->vendor, sizeof(uid->vendor) - 1); | ||
469 | strncpy(uid->serial, confdata->ned1.HDA_location, | ||
470 | sizeof(uid->serial) - 1); | ||
471 | EBCASC(uid->serial, sizeof(uid->serial) - 1); | ||
472 | uid->ssid = confdata->neq.subsystemID; | ||
473 | if (confdata->ned2.sneq.flags == 0x40) { | ||
474 | uid->alias = 1; | ||
475 | uid->unit_addr = confdata->ned2.sneq.base_unit_addr; | ||
476 | } else | ||
477 | uid->unit_addr = confdata->ned1.unit_addr; | ||
478 | |||
479 | return 0; | ||
480 | } | ||
481 | |||
449 | static int | 482 | static int |
450 | dasd_eckd_read_conf(struct dasd_device *device) | 483 | dasd_eckd_read_conf(struct dasd_device *device) |
451 | { | 484 | { |
@@ -507,11 +540,15 @@ dasd_eckd_read_conf(struct dasd_device *device) | |||
507 | return 0; | 540 | return 0; |
508 | } | 541 | } |
509 | 542 | ||
510 | 543 | /* | |
544 | * Check device characteristics. | ||
545 | * If the device is accessible using ECKD discipline, the device is enabled. | ||
546 | */ | ||
511 | static int | 547 | static int |
512 | dasd_eckd_check_characteristics(struct dasd_device *device) | 548 | dasd_eckd_check_characteristics(struct dasd_device *device) |
513 | { | 549 | { |
514 | struct dasd_eckd_private *private; | 550 | struct dasd_eckd_private *private; |
551 | struct dasd_uid uid; | ||
515 | void *rdc_data; | 552 | void *rdc_data; |
516 | int rc; | 553 | int rc; |
517 | 554 | ||
@@ -536,6 +573,7 @@ dasd_eckd_check_characteristics(struct dasd_device *device) | |||
536 | 573 | ||
537 | /* Read Device Characteristics */ | 574 | /* Read Device Characteristics */ |
538 | rdc_data = (void *) &(private->rdc_data); | 575 | rdc_data = (void *) &(private->rdc_data); |
576 | memset(rdc_data, 0, sizeof(rdc_data)); | ||
539 | rc = read_dev_chars(device->cdev, &rdc_data, 64); | 577 | rc = read_dev_chars(device->cdev, &rdc_data, 64); |
540 | if (rc) { | 578 | if (rc) { |
541 | DEV_MESSAGE(KERN_WARNING, device, | 579 | DEV_MESSAGE(KERN_WARNING, device, |
@@ -556,8 +594,17 @@ dasd_eckd_check_characteristics(struct dasd_device *device) | |||
556 | 594 | ||
557 | /* Read Configuration Data */ | 595 | /* Read Configuration Data */ |
558 | rc = dasd_eckd_read_conf (device); | 596 | rc = dasd_eckd_read_conf (device); |
559 | return rc; | 597 | if (rc) |
598 | return rc; | ||
599 | |||
600 | /* Generate device unique id and register in devmap */ | ||
601 | rc = dasd_eckd_generate_uid(device, &uid); | ||
602 | if (rc) | ||
603 | return rc; | ||
560 | 604 | ||
605 | rc = dasd_set_uid(device->cdev, &uid); | ||
606 | |||
607 | return rc; | ||
561 | } | 608 | } |
562 | 609 | ||
563 | static struct dasd_ccw_req * | 610 | static struct dasd_ccw_req * |
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h index ad8524bb7bb3..d5734e976e1c 100644 --- a/drivers/s390/block/dasd_eckd.h +++ b/drivers/s390/block/dasd_eckd.h | |||
@@ -228,26 +228,36 @@ struct dasd_eckd_confdata { | |||
228 | unsigned char HDA_manufacturer[3]; | 228 | unsigned char HDA_manufacturer[3]; |
229 | unsigned char HDA_location[2]; | 229 | unsigned char HDA_location[2]; |
230 | unsigned char HDA_seqno[12]; | 230 | unsigned char HDA_seqno[12]; |
231 | __u16 ID; | 231 | __u8 ID; |
232 | __u8 unit_addr; | ||
232 | } __attribute__ ((packed)) ned1; | 233 | } __attribute__ ((packed)) ned1; |
233 | struct { | 234 | union { |
234 | struct { | 235 | struct { |
235 | unsigned char identifier:2; | 236 | struct { |
236 | unsigned char token_id:1; | 237 | unsigned char identifier:2; |
237 | unsigned char sno_valid:1; | 238 | unsigned char token_id:1; |
238 | unsigned char subst_sno:1; | 239 | unsigned char sno_valid:1; |
239 | unsigned char recNED:1; | 240 | unsigned char subst_sno:1; |
240 | unsigned char emuNED:1; | 241 | unsigned char recNED:1; |
241 | unsigned char reserved:1; | 242 | unsigned char emuNED:1; |
242 | } __attribute__ ((packed)) flags; | 243 | unsigned char reserved:1; |
243 | __u8 descriptor; | 244 | } __attribute__ ((packed)) flags; |
244 | __u8 reserved[2]; | 245 | __u8 descriptor; |
245 | unsigned char dev_type[6]; | 246 | __u8 reserved[2]; |
246 | unsigned char dev_model[3]; | 247 | unsigned char dev_type[6]; |
247 | unsigned char DASD_manufacturer[3]; | 248 | unsigned char dev_model[3]; |
248 | unsigned char DASD_location[2]; | 249 | unsigned char DASD_manufacturer[3]; |
249 | unsigned char DASD_seqno[12]; | 250 | unsigned char DASD_location[2]; |
250 | __u16 ID; | 251 | unsigned char DASD_seqno[12]; |
252 | __u16 ID; | ||
253 | } __attribute__ ((packed)) ned; | ||
254 | struct { | ||
255 | unsigned char flags; /* byte 0 */ | ||
256 | unsigned char res2[7]; /* byte 1- 7 */ | ||
257 | unsigned char sua_flags; /* byte 8 */ | ||
258 | __u8 base_unit_addr; /* byte 9 */ | ||
259 | unsigned char res3[22]; /* byte 10-31 */ | ||
260 | } __attribute__ ((packed)) sneq; | ||
251 | } __attribute__ ((packed)) ned2; | 261 | } __attribute__ ((packed)) ned2; |
252 | struct { | 262 | struct { |
253 | struct { | 263 | struct { |
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index 4293ba827523..d4b13e300a76 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h | |||
@@ -268,6 +268,16 @@ struct dasd_discipline { | |||
268 | 268 | ||
269 | extern struct dasd_discipline *dasd_diag_discipline_pointer; | 269 | extern struct dasd_discipline *dasd_diag_discipline_pointer; |
270 | 270 | ||
271 | /* | ||
272 | * Unique identifier for dasd device. | ||
273 | */ | ||
274 | struct dasd_uid { | ||
275 | __u8 alias; | ||
276 | char vendor[4]; | ||
277 | char serial[15]; | ||
278 | __u16 ssid; | ||
279 | __u8 unit_addr; | ||
280 | }; | ||
271 | 281 | ||
272 | /* | 282 | /* |
273 | * Notification numbers for extended error reporting notifications: | 283 | * Notification numbers for extended error reporting notifications: |
@@ -516,6 +526,8 @@ void dasd_devmap_exit(void); | |||
516 | struct dasd_device *dasd_create_device(struct ccw_device *); | 526 | struct dasd_device *dasd_create_device(struct ccw_device *); |
517 | void dasd_delete_device(struct dasd_device *); | 527 | void dasd_delete_device(struct dasd_device *); |
518 | 528 | ||
529 | int dasd_get_uid(struct ccw_device *, struct dasd_uid *); | ||
530 | int dasd_set_uid(struct ccw_device *, struct dasd_uid *); | ||
519 | int dasd_get_feature(struct ccw_device *, int); | 531 | int dasd_get_feature(struct ccw_device *, int); |
520 | int dasd_set_feature(struct ccw_device *, int, int); | 532 | int dasd_set_feature(struct ccw_device *, int, int); |
521 | 533 | ||
diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c index c3915f60a3aa..d71ef1adea59 100644 --- a/drivers/s390/char/tape_3590.c +++ b/drivers/s390/char/tape_3590.c | |||
@@ -230,14 +230,16 @@ tape_3590_read_attmsg(struct tape_device *device) | |||
230 | * These functions are used to schedule follow-up actions from within an | 230 | * These functions are used to schedule follow-up actions from within an |
231 | * interrupt context (like unsolicited interrupts). | 231 | * interrupt context (like unsolicited interrupts). |
232 | */ | 232 | */ |
233 | struct work_handler_data { | ||
234 | struct tape_device *device; | ||
235 | enum tape_op op; | ||
236 | struct work_struct work; | ||
237 | }; | ||
238 | |||
233 | static void | 239 | static void |
234 | tape_3590_work_handler(void *data) | 240 | tape_3590_work_handler(void *data) |
235 | { | 241 | { |
236 | struct { | 242 | struct work_handler_data *p = data; |
237 | struct tape_device *device; | ||
238 | enum tape_op op; | ||
239 | struct work_struct work; | ||
240 | } *p = data; | ||
241 | 243 | ||
242 | switch (p->op) { | 244 | switch (p->op) { |
243 | case TO_MSEN: | 245 | case TO_MSEN: |
@@ -257,11 +259,7 @@ tape_3590_work_handler(void *data) | |||
257 | static int | 259 | static int |
258 | tape_3590_schedule_work(struct tape_device *device, enum tape_op op) | 260 | tape_3590_schedule_work(struct tape_device *device, enum tape_op op) |
259 | { | 261 | { |
260 | struct { | 262 | struct work_handler_data *p; |
261 | struct tape_device *device; | ||
262 | enum tape_op op; | ||
263 | struct work_struct work; | ||
264 | } *p; | ||
265 | 263 | ||
266 | if ((p = kzalloc(sizeof(*p), GFP_ATOMIC)) == NULL) | 264 | if ((p = kzalloc(sizeof(*p), GFP_ATOMIC)) == NULL) |
267 | return -ENOMEM; | 265 | return -ENOMEM; |
@@ -316,7 +314,7 @@ tape_3590_bread(struct tape_device *device, struct request *req) | |||
316 | 314 | ||
317 | rq_for_each_bio(bio, req) { | 315 | rq_for_each_bio(bio, req) { |
318 | bio_for_each_segment(bv, bio, i) { | 316 | bio_for_each_segment(bv, bio, i) { |
319 | dst = kmap(bv->bv_page) + bv->bv_offset; | 317 | dst = page_address(bv->bv_page) + bv->bv_offset; |
320 | for (off = 0; off < bv->bv_len; | 318 | for (off = 0; off < bv->bv_len; |
321 | off += TAPEBLOCK_HSEC_SIZE) { | 319 | off += TAPEBLOCK_HSEC_SIZE) { |
322 | ccw->flags = CCW_FLAG_CC; | 320 | ccw->flags = CCW_FLAG_CC; |
@@ -1168,6 +1166,7 @@ tape_3590_setup_device(struct tape_device *device) | |||
1168 | static void | 1166 | static void |
1169 | tape_3590_cleanup_device(struct tape_device *device) | 1167 | tape_3590_cleanup_device(struct tape_device *device) |
1170 | { | 1168 | { |
1169 | flush_scheduled_work(); | ||
1171 | tape_std_unassign(device); | 1170 | tape_std_unassign(device); |
1172 | 1171 | ||
1173 | kfree(device->discdata); | 1172 | kfree(device->discdata); |
@@ -1234,6 +1233,7 @@ static struct tape_discipline tape_discipline_3590 = { | |||
1234 | 1233 | ||
1235 | static struct ccw_device_id tape_3590_ids[] = { | 1234 | static struct ccw_device_id tape_3590_ids[] = { |
1236 | {CCW_DEVICE_DEVTYPE(0x3590, 0, 0x3590, 0), .driver_info = tape_3590}, | 1235 | {CCW_DEVICE_DEVTYPE(0x3590, 0, 0x3590, 0), .driver_info = tape_3590}, |
1236 | {CCW_DEVICE_DEVTYPE(0x3592, 0, 0x3592, 0), .driver_info = tape_3592}, | ||
1237 | { /* end of list */ } | 1237 | { /* end of list */ } |
1238 | }; | 1238 | }; |
1239 | 1239 | ||
diff --git a/drivers/s390/char/tape_std.h b/drivers/s390/char/tape_std.h index 2d311798edf4..1fc952359341 100644 --- a/drivers/s390/char/tape_std.h +++ b/drivers/s390/char/tape_std.h | |||
@@ -153,6 +153,7 @@ enum s390_tape_type { | |||
153 | tape_3480, | 153 | tape_3480, |
154 | tape_3490, | 154 | tape_3490, |
155 | tape_3590, | 155 | tape_3590, |
156 | tape_3592, | ||
156 | }; | 157 | }; |
157 | 158 | ||
158 | #endif // _TAPE_STD_H | 159 | #endif // _TAPE_STD_H |
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index 6412b2c3edd3..72187e54dcac 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -242,28 +242,10 @@ s390_subchannel_remove_chpid(struct device *dev, void *data) | |||
242 | if (sch->vpm == mask) | 242 | if (sch->vpm == mask) |
243 | goto out_unreg; | 243 | goto out_unreg; |
244 | 244 | ||
245 | if ((sch->schib.scsw.actl & (SCSW_ACTL_CLEAR_PEND | | 245 | if ((sch->schib.scsw.actl & SCSW_ACTL_DEVACT) && |
246 | SCSW_ACTL_HALT_PEND | | 246 | (sch->schib.scsw.actl & SCSW_ACTL_SCHACT) && |
247 | SCSW_ACTL_START_PEND | | 247 | (sch->schib.pmcw.lpum == mask) && |
248 | SCSW_ACTL_RESUME_PEND)) && | 248 | (sch->vpm == 0)) { |
249 | (sch->schib.pmcw.lpum == mask)) { | ||
250 | int cc = cio_cancel(sch); | ||
251 | |||
252 | if (cc == -ENODEV) | ||
253 | goto out_unreg; | ||
254 | |||
255 | if (cc == -EINVAL) { | ||
256 | cc = cio_clear(sch); | ||
257 | if (cc == -ENODEV) | ||
258 | goto out_unreg; | ||
259 | /* Call handler. */ | ||
260 | if (sch->driver && sch->driver->termination) | ||
261 | sch->driver->termination(&sch->dev); | ||
262 | goto out_unlock; | ||
263 | } | ||
264 | } else if ((sch->schib.scsw.actl & SCSW_ACTL_DEVACT) && | ||
265 | (sch->schib.scsw.actl & SCSW_ACTL_SCHACT) && | ||
266 | (sch->schib.pmcw.lpum == mask)) { | ||
267 | int cc; | 249 | int cc; |
268 | 250 | ||
269 | cc = cio_clear(sch); | 251 | cc = cio_clear(sch); |
@@ -653,13 +635,13 @@ __chp_add(struct subchannel_id schid, void *data) | |||
653 | if (sch->schib.pmcw.chpid[i] == chp->id) { | 635 | if (sch->schib.pmcw.chpid[i] == chp->id) { |
654 | if (stsch(sch->schid, &sch->schib) != 0) { | 636 | if (stsch(sch->schid, &sch->schib) != 0) { |
655 | /* Endgame. */ | 637 | /* Endgame. */ |
656 | spin_unlock(&sch->lock); | 638 | spin_unlock_irq(&sch->lock); |
657 | return -ENXIO; | 639 | return -ENXIO; |
658 | } | 640 | } |
659 | break; | 641 | break; |
660 | } | 642 | } |
661 | if (i==8) { | 643 | if (i==8) { |
662 | spin_unlock(&sch->lock); | 644 | spin_unlock_irq(&sch->lock); |
663 | return 0; | 645 | return 0; |
664 | } | 646 | } |
665 | sch->lpm = ((sch->schib.pmcw.pim & | 647 | sch->lpm = ((sch->schib.pmcw.pim & |
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 814f9258ce00..96f519281d92 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
39 | #include <linux/proc_fs.h> | 39 | #include <linux/proc_fs.h> |
40 | #include <linux/timer.h> | 40 | #include <linux/timer.h> |
41 | #include <linux/mempool.h> | ||
41 | 42 | ||
42 | #include <asm/ccwdev.h> | 43 | #include <asm/ccwdev.h> |
43 | #include <asm/io.h> | 44 | #include <asm/io.h> |
@@ -80,6 +81,8 @@ static int indicator_used[INDICATORS_PER_CACHELINE]; | |||
80 | static __u32 * volatile indicators; | 81 | static __u32 * volatile indicators; |
81 | static __u32 volatile spare_indicator; | 82 | static __u32 volatile spare_indicator; |
82 | static atomic_t spare_indicator_usecount; | 83 | static atomic_t spare_indicator_usecount; |
84 | #define QDIO_MEMPOOL_SCSSC_ELEMENTS 2 | ||
85 | static mempool_t *qdio_mempool_scssc; | ||
83 | 86 | ||
84 | static debug_info_t *qdio_dbf_setup; | 87 | static debug_info_t *qdio_dbf_setup; |
85 | static debug_info_t *qdio_dbf_sbal; | 88 | static debug_info_t *qdio_dbf_sbal; |
@@ -1637,7 +1640,7 @@ next: | |||
1637 | 1640 | ||
1638 | } | 1641 | } |
1639 | kfree(irq_ptr->qdr); | 1642 | kfree(irq_ptr->qdr); |
1640 | kfree(irq_ptr); | 1643 | free_page((unsigned long) irq_ptr); |
1641 | } | 1644 | } |
1642 | 1645 | ||
1643 | static void | 1646 | static void |
@@ -2304,7 +2307,7 @@ qdio_get_ssqd_information(struct qdio_irq *irq_ptr) | |||
2304 | 2307 | ||
2305 | QDIO_DBF_TEXT0(0,setup,"getssqd"); | 2308 | QDIO_DBF_TEXT0(0,setup,"getssqd"); |
2306 | qdioac = 0; | 2309 | qdioac = 0; |
2307 | ssqd_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 2310 | ssqd_area = mempool_alloc(qdio_mempool_scssc, GFP_ATOMIC); |
2308 | if (!ssqd_area) { | 2311 | if (!ssqd_area) { |
2309 | QDIO_PRINT_WARN("Could not get memory for chsc. Using all " \ | 2312 | QDIO_PRINT_WARN("Could not get memory for chsc. Using all " \ |
2310 | "SIGAs for sch x%x.\n", irq_ptr->schid.sch_no); | 2313 | "SIGAs for sch x%x.\n", irq_ptr->schid.sch_no); |
@@ -2364,7 +2367,7 @@ qdio_get_ssqd_information(struct qdio_irq *irq_ptr) | |||
2364 | out: | 2367 | out: |
2365 | qdio_check_subchannel_qebsm(irq_ptr, qdioac, | 2368 | qdio_check_subchannel_qebsm(irq_ptr, qdioac, |
2366 | ssqd_area->sch_token); | 2369 | ssqd_area->sch_token); |
2367 | free_page ((unsigned long) ssqd_area); | 2370 | mempool_free(ssqd_area, qdio_mempool_scssc); |
2368 | irq_ptr->qdioac = qdioac; | 2371 | irq_ptr->qdioac = qdioac; |
2369 | } | 2372 | } |
2370 | 2373 | ||
@@ -2458,7 +2461,7 @@ tiqdio_set_subchannel_ind(struct qdio_irq *irq_ptr, int reset_to_zero) | |||
2458 | virt_to_phys((volatile void *)irq_ptr->dev_st_chg_ind); | 2461 | virt_to_phys((volatile void *)irq_ptr->dev_st_chg_ind); |
2459 | } | 2462 | } |
2460 | 2463 | ||
2461 | scssc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 2464 | scssc_area = mempool_alloc(qdio_mempool_scssc, GFP_ATOMIC); |
2462 | if (!scssc_area) { | 2465 | if (!scssc_area) { |
2463 | QDIO_PRINT_WARN("No memory for setting indicators on " \ | 2466 | QDIO_PRINT_WARN("No memory for setting indicators on " \ |
2464 | "subchannel 0.%x.%x.\n", | 2467 | "subchannel 0.%x.%x.\n", |
@@ -2514,7 +2517,7 @@ tiqdio_set_subchannel_ind(struct qdio_irq *irq_ptr, int reset_to_zero) | |||
2514 | QDIO_DBF_HEX2(0,setup,&real_addr_dev_st_chg_ind,sizeof(unsigned long)); | 2517 | QDIO_DBF_HEX2(0,setup,&real_addr_dev_st_chg_ind,sizeof(unsigned long)); |
2515 | result = 0; | 2518 | result = 0; |
2516 | out: | 2519 | out: |
2517 | free_page ((unsigned long) scssc_area); | 2520 | mempool_free(scssc_area, qdio_mempool_scssc); |
2518 | return result; | 2521 | return result; |
2519 | 2522 | ||
2520 | } | 2523 | } |
@@ -2543,7 +2546,7 @@ tiqdio_set_delay_target(struct qdio_irq *irq_ptr, unsigned long delay_target) | |||
2543 | if (!irq_ptr->is_thinint_irq) | 2546 | if (!irq_ptr->is_thinint_irq) |
2544 | return -ENODEV; | 2547 | return -ENODEV; |
2545 | 2548 | ||
2546 | scsscf_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 2549 | scsscf_area = mempool_alloc(qdio_mempool_scssc, GFP_ATOMIC); |
2547 | if (!scsscf_area) { | 2550 | if (!scsscf_area) { |
2548 | QDIO_PRINT_WARN("No memory for setting delay target on " \ | 2551 | QDIO_PRINT_WARN("No memory for setting delay target on " \ |
2549 | "subchannel 0.%x.%x.\n", | 2552 | "subchannel 0.%x.%x.\n", |
@@ -2581,7 +2584,7 @@ tiqdio_set_delay_target(struct qdio_irq *irq_ptr, unsigned long delay_target) | |||
2581 | QDIO_DBF_HEX2(0,trace,&delay_target,sizeof(unsigned long)); | 2584 | QDIO_DBF_HEX2(0,trace,&delay_target,sizeof(unsigned long)); |
2582 | result = 0; /* not critical */ | 2585 | result = 0; /* not critical */ |
2583 | out: | 2586 | out: |
2584 | free_page ((unsigned long) scsscf_area); | 2587 | mempool_free(scsscf_area, qdio_mempool_scssc); |
2585 | return result; | 2588 | return result; |
2586 | } | 2589 | } |
2587 | 2590 | ||
@@ -2980,7 +2983,7 @@ qdio_allocate(struct qdio_initialize *init_data) | |||
2980 | qdio_allocate_do_dbf(init_data); | 2983 | qdio_allocate_do_dbf(init_data); |
2981 | 2984 | ||
2982 | /* create irq */ | 2985 | /* create irq */ |
2983 | irq_ptr = kzalloc(sizeof(struct qdio_irq), GFP_KERNEL | GFP_DMA); | 2986 | irq_ptr = (void *) get_zeroed_page(GFP_KERNEL | GFP_DMA); |
2984 | 2987 | ||
2985 | QDIO_DBF_TEXT0(0,setup,"irq_ptr:"); | 2988 | QDIO_DBF_TEXT0(0,setup,"irq_ptr:"); |
2986 | QDIO_DBF_HEX0(0,setup,&irq_ptr,sizeof(void*)); | 2989 | QDIO_DBF_HEX0(0,setup,&irq_ptr,sizeof(void*)); |
@@ -2995,7 +2998,7 @@ qdio_allocate(struct qdio_initialize *init_data) | |||
2995 | /* QDR must be in DMA area since CCW data address is only 32 bit */ | 2998 | /* QDR must be in DMA area since CCW data address is only 32 bit */ |
2996 | irq_ptr->qdr=kmalloc(sizeof(struct qdr), GFP_KERNEL | GFP_DMA); | 2999 | irq_ptr->qdr=kmalloc(sizeof(struct qdr), GFP_KERNEL | GFP_DMA); |
2997 | if (!(irq_ptr->qdr)) { | 3000 | if (!(irq_ptr->qdr)) { |
2998 | kfree(irq_ptr); | 3001 | free_page((unsigned long) irq_ptr); |
2999 | QDIO_PRINT_ERR("kmalloc of irq_ptr->qdr failed!\n"); | 3002 | QDIO_PRINT_ERR("kmalloc of irq_ptr->qdr failed!\n"); |
3000 | return -ENOMEM; | 3003 | return -ENOMEM; |
3001 | } | 3004 | } |
@@ -3780,6 +3783,16 @@ oom: | |||
3780 | return -ENOMEM; | 3783 | return -ENOMEM; |
3781 | } | 3784 | } |
3782 | 3785 | ||
3786 | static void *qdio_mempool_alloc(gfp_t gfp_mask, void *size) | ||
3787 | { | ||
3788 | return (void *) get_zeroed_page(gfp_mask|GFP_DMA); | ||
3789 | } | ||
3790 | |||
3791 | static void qdio_mempool_free(void *element, void *size) | ||
3792 | { | ||
3793 | free_page((unsigned long) element); | ||
3794 | } | ||
3795 | |||
3783 | static int __init | 3796 | static int __init |
3784 | init_QDIO(void) | 3797 | init_QDIO(void) |
3785 | { | 3798 | { |
@@ -3809,6 +3822,10 @@ init_QDIO(void) | |||
3809 | 3822 | ||
3810 | qdio_add_procfs_entry(); | 3823 | qdio_add_procfs_entry(); |
3811 | 3824 | ||
3825 | qdio_mempool_scssc = mempool_create(QDIO_MEMPOOL_SCSSC_ELEMENTS, | ||
3826 | qdio_mempool_alloc, | ||
3827 | qdio_mempool_free, NULL); | ||
3828 | |||
3812 | if (tiqdio_check_chsc_availability()) | 3829 | if (tiqdio_check_chsc_availability()) |
3813 | QDIO_PRINT_ERR("Not all CHSCs supported. Continuing.\n"); | 3830 | QDIO_PRINT_ERR("Not all CHSCs supported. Continuing.\n"); |
3814 | 3831 | ||
@@ -3824,6 +3841,7 @@ cleanup_QDIO(void) | |||
3824 | qdio_remove_procfs_entry(); | 3841 | qdio_remove_procfs_entry(); |
3825 | qdio_release_qdio_memory(); | 3842 | qdio_release_qdio_memory(); |
3826 | qdio_unregister_dbf_views(); | 3843 | qdio_unregister_dbf_views(); |
3844 | mempool_destroy(qdio_mempool_scssc); | ||
3827 | 3845 | ||
3828 | printk("qdio: %s: module removed\n",version); | 3846 | printk("qdio: %s: module removed\n",version); |
3829 | } | 3847 | } |
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c index b3c6e7907790..cb14642d97aa 100644 --- a/drivers/s390/net/qeth_main.c +++ b/drivers/s390/net/qeth_main.c | |||
@@ -8014,7 +8014,6 @@ static int (*qeth_old_arp_constructor) (struct neighbour *); | |||
8014 | 8014 | ||
8015 | static struct neigh_ops arp_direct_ops_template = { | 8015 | static struct neigh_ops arp_direct_ops_template = { |
8016 | .family = AF_INET, | 8016 | .family = AF_INET, |
8017 | .destructor = NULL, | ||
8018 | .solicit = NULL, | 8017 | .solicit = NULL, |
8019 | .error_report = NULL, | 8018 | .error_report = NULL, |
8020 | .output = dev_queue_xmit, | 8019 | .output = dev_queue_xmit, |
diff --git a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c index 3bf466603512..f99e55308b32 100644 --- a/drivers/s390/s390mach.c +++ b/drivers/s390/s390mach.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | #include <linux/workqueue.h> | 15 | #include <linux/workqueue.h> |
16 | #include <linux/time.h> | ||
16 | 17 | ||
17 | #include <asm/lowcore.h> | 18 | #include <asm/lowcore.h> |
18 | 19 | ||
@@ -362,12 +363,19 @@ s390_revalidate_registers(struct mci *mci) | |||
362 | return kill_task; | 363 | return kill_task; |
363 | } | 364 | } |
364 | 365 | ||
366 | #define MAX_IPD_COUNT 29 | ||
367 | #define MAX_IPD_TIME (5 * 60 * USEC_PER_SEC) /* 5 minutes */ | ||
368 | |||
365 | /* | 369 | /* |
366 | * machine check handler. | 370 | * machine check handler. |
367 | */ | 371 | */ |
368 | void | 372 | void |
369 | s390_do_machine_check(struct pt_regs *regs) | 373 | s390_do_machine_check(struct pt_regs *regs) |
370 | { | 374 | { |
375 | static DEFINE_SPINLOCK(ipd_lock); | ||
376 | static unsigned long long last_ipd; | ||
377 | static int ipd_count; | ||
378 | unsigned long long tmp; | ||
371 | struct mci *mci; | 379 | struct mci *mci; |
372 | struct mcck_struct *mcck; | 380 | struct mcck_struct *mcck; |
373 | int umode; | 381 | int umode; |
@@ -404,11 +412,27 @@ s390_do_machine_check(struct pt_regs *regs) | |||
404 | s390_handle_damage("processing backup machine " | 412 | s390_handle_damage("processing backup machine " |
405 | "check with damage."); | 413 | "check with damage."); |
406 | } | 414 | } |
407 | if (!umode) | 415 | |
408 | s390_handle_damage("processing backup machine " | 416 | /* |
409 | "check in kernel mode."); | 417 | * Nullifying exigent condition, therefore we might |
410 | mcck->kill_task = 1; | 418 | * retry this instruction. |
411 | mcck->mcck_code = *(unsigned long long *) mci; | 419 | */ |
420 | |||
421 | spin_lock(&ipd_lock); | ||
422 | |||
423 | tmp = get_clock(); | ||
424 | |||
425 | if (((tmp - last_ipd) >> 12) < MAX_IPD_TIME) | ||
426 | ipd_count++; | ||
427 | else | ||
428 | ipd_count = 1; | ||
429 | |||
430 | last_ipd = tmp; | ||
431 | |||
432 | if (ipd_count == MAX_IPD_COUNT) | ||
433 | s390_handle_damage("too many ipd retries."); | ||
434 | |||
435 | spin_unlock(&ipd_lock); | ||
412 | } | 436 | } |
413 | else { | 437 | else { |
414 | /* Processing damage -> stopping machine */ | 438 | /* Processing damage -> stopping machine */ |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 3e7302692dbe..a480a3742d47 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -446,7 +446,9 @@ config SCSI_DPT_I2O | |||
446 | 446 | ||
447 | config SCSI_ADVANSYS | 447 | config SCSI_ADVANSYS |
448 | tristate "AdvanSys SCSI support" | 448 | tristate "AdvanSys SCSI support" |
449 | depends on (ISA || EISA || PCI) && SCSI && BROKEN | 449 | depends on SCSI |
450 | depends on ISA || EISA || PCI | ||
451 | depends on BROKEN || X86_32 | ||
450 | help | 452 | help |
451 | This is a driver for all SCSI host adapters manufactured by | 453 | This is a driver for all SCSI host adapters manufactured by |
452 | AdvanSys. It is documented in the kernel source in | 454 | AdvanSys. It is documented in the kernel source in |
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 28b93057b607..2a419634b256 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c | |||
@@ -2051,7 +2051,7 @@ STATIC ASC_DCNT AscGetMaxDmaCount(ushort); | |||
2051 | #define ADV_VADDR_TO_U32 virt_to_bus | 2051 | #define ADV_VADDR_TO_U32 virt_to_bus |
2052 | #define ADV_U32_TO_VADDR bus_to_virt | 2052 | #define ADV_U32_TO_VADDR bus_to_virt |
2053 | 2053 | ||
2054 | #define AdvPortAddr ulong /* Virtual memory address size */ | 2054 | #define AdvPortAddr void __iomem * /* Virtual memory address size */ |
2055 | 2055 | ||
2056 | /* | 2056 | /* |
2057 | * Define Adv Library required memory access macros. | 2057 | * Define Adv Library required memory access macros. |
diff --git a/drivers/serial/cpm_uart/cpm_uart.h b/drivers/serial/cpm_uart/cpm_uart.h index 73c8a088c160..3b35cb779539 100644 --- a/drivers/serial/cpm_uart/cpm_uart.h +++ b/drivers/serial/cpm_uart/cpm_uart.h | |||
@@ -5,11 +5,20 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 6 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
7 | * | 7 | * |
8 | * 2006 (c) MontaVista Software, Inc. | ||
9 | * Vitaly Bordug <vbordug@ru.mvista.com> | ||
10 | * | ||
11 | * This file is licensed under the terms of the GNU General Public License | ||
12 | * version 2. This program is licensed "as is" without any warranty of any | ||
13 | * kind, whether express or implied. | ||
14 | * | ||
8 | */ | 15 | */ |
9 | #ifndef CPM_UART_H | 16 | #ifndef CPM_UART_H |
10 | #define CPM_UART_H | 17 | #define CPM_UART_H |
11 | 18 | ||
12 | #include <linux/config.h> | 19 | #include <linux/config.h> |
20 | #include <linux/platform_device.h> | ||
21 | #include <linux/fs_uart_pd.h> | ||
13 | 22 | ||
14 | #if defined(CONFIG_CPM2) | 23 | #if defined(CONFIG_CPM2) |
15 | #include "cpm_uart_cpm2.h" | 24 | #include "cpm_uart_cpm2.h" |
@@ -26,14 +35,14 @@ | |||
26 | #define FLAG_SMC 0x00000002 | 35 | #define FLAG_SMC 0x00000002 |
27 | #define FLAG_CONSOLE 0x00000001 | 36 | #define FLAG_CONSOLE 0x00000001 |
28 | 37 | ||
29 | #define UART_SMC1 0 | 38 | #define UART_SMC1 fsid_smc1_uart |
30 | #define UART_SMC2 1 | 39 | #define UART_SMC2 fsid_smc2_uart |
31 | #define UART_SCC1 2 | 40 | #define UART_SCC1 fsid_scc1_uart |
32 | #define UART_SCC2 3 | 41 | #define UART_SCC2 fsid_scc2_uart |
33 | #define UART_SCC3 4 | 42 | #define UART_SCC3 fsid_scc3_uart |
34 | #define UART_SCC4 5 | 43 | #define UART_SCC4 fsid_scc4_uart |
35 | 44 | ||
36 | #define UART_NR 6 | 45 | #define UART_NR fs_uart_nr |
37 | 46 | ||
38 | #define RX_NUM_FIFO 4 | 47 | #define RX_NUM_FIFO 4 |
39 | #define RX_BUF_SIZE 32 | 48 | #define RX_BUF_SIZE 32 |
@@ -64,6 +73,7 @@ struct uart_cpm_port { | |||
64 | uint dp_addr; | 73 | uint dp_addr; |
65 | void *mem_addr; | 74 | void *mem_addr; |
66 | dma_addr_t dma_addr; | 75 | dma_addr_t dma_addr; |
76 | u32 mem_size; | ||
67 | /* helpers */ | 77 | /* helpers */ |
68 | int baud; | 78 | int baud; |
69 | int bits; | 79 | int bits; |
@@ -90,4 +100,38 @@ void scc2_lineif(struct uart_cpm_port *pinfo); | |||
90 | void scc3_lineif(struct uart_cpm_port *pinfo); | 100 | void scc3_lineif(struct uart_cpm_port *pinfo); |
91 | void scc4_lineif(struct uart_cpm_port *pinfo); | 101 | void scc4_lineif(struct uart_cpm_port *pinfo); |
92 | 102 | ||
103 | /* | ||
104 | virtual to phys transtalion | ||
105 | */ | ||
106 | static inline unsigned long cpu2cpm_addr(void* addr, struct uart_cpm_port *pinfo) | ||
107 | { | ||
108 | int offset; | ||
109 | u32 val = (u32)addr; | ||
110 | /* sane check */ | ||
111 | if (likely((val >= (u32)pinfo->mem_addr)) && | ||
112 | (val<((u32)pinfo->mem_addr + pinfo->mem_size))) { | ||
113 | offset = val - (u32)pinfo->mem_addr; | ||
114 | return pinfo->dma_addr+offset; | ||
115 | } | ||
116 | /* something nasty happened */ | ||
117 | BUG(); | ||
118 | return 0; | ||
119 | } | ||
120 | |||
121 | static inline void *cpm2cpu_addr(unsigned long addr, struct uart_cpm_port *pinfo) | ||
122 | { | ||
123 | int offset; | ||
124 | u32 val = addr; | ||
125 | /* sane check */ | ||
126 | if (likely((val >= pinfo->dma_addr) && | ||
127 | (val<(pinfo->dma_addr + pinfo->mem_size)))) { | ||
128 | offset = val - (u32)pinfo->dma_addr; | ||
129 | return (void*)(pinfo->mem_addr+offset); | ||
130 | } | ||
131 | /* something nasty happened */ | ||
132 | BUG(); | ||
133 | return 0; | ||
134 | } | ||
135 | |||
136 | |||
93 | #endif /* CPM_UART_H */ | 137 | #endif /* CPM_UART_H */ |
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm_uart/cpm_uart_core.c index b7bf4c698a47..969f94900431 100644 --- a/drivers/serial/cpm_uart/cpm_uart_core.c +++ b/drivers/serial/cpm_uart/cpm_uart_core.c | |||
@@ -12,7 +12,8 @@ | |||
12 | * | 12 | * |
13 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 13 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
14 | * (C) 2004 Intracom, S.A. | 14 | * (C) 2004 Intracom, S.A. |
15 | * (C) 2005 MontaVista Software, Inc. by Vitaly Bordug <vbordug@ru.mvista.com> | 15 | * (C) 2005-2006 MontaVista Software, Inc. |
16 | * Vitaly Bordug <vbordug@ru.mvista.com> | ||
16 | * | 17 | * |
17 | * This program is free software; you can redistribute it and/or modify | 18 | * This program is free software; you can redistribute it and/or modify |
18 | * it under the terms of the GNU General Public License as published by | 19 | * it under the terms of the GNU General Public License as published by |
@@ -41,6 +42,7 @@ | |||
41 | #include <linux/device.h> | 42 | #include <linux/device.h> |
42 | #include <linux/bootmem.h> | 43 | #include <linux/bootmem.h> |
43 | #include <linux/dma-mapping.h> | 44 | #include <linux/dma-mapping.h> |
45 | #include <linux/fs_uart_pd.h> | ||
44 | 46 | ||
45 | #include <asm/io.h> | 47 | #include <asm/io.h> |
46 | #include <asm/irq.h> | 48 | #include <asm/irq.h> |
@@ -60,7 +62,7 @@ | |||
60 | /* Track which ports are configured as uarts */ | 62 | /* Track which ports are configured as uarts */ |
61 | int cpm_uart_port_map[UART_NR]; | 63 | int cpm_uart_port_map[UART_NR]; |
62 | /* How many ports did we config as uarts */ | 64 | /* How many ports did we config as uarts */ |
63 | int cpm_uart_nr; | 65 | int cpm_uart_nr = 0; |
64 | 66 | ||
65 | /**************************************************************/ | 67 | /**************************************************************/ |
66 | 68 | ||
@@ -71,18 +73,51 @@ static void cpm_uart_initbd(struct uart_cpm_port *pinfo); | |||
71 | 73 | ||
72 | /**************************************************************/ | 74 | /**************************************************************/ |
73 | 75 | ||
74 | static inline unsigned long cpu2cpm_addr(void *addr) | 76 | |
77 | /* Place-holder for board-specific stuff */ | ||
78 | struct platform_device* __attribute__ ((weak)) __init | ||
79 | early_uart_get_pdev(int index) | ||
80 | { | ||
81 | return NULL; | ||
82 | } | ||
83 | |||
84 | |||
85 | static void cpm_uart_count(void) | ||
75 | { | 86 | { |
76 | if ((unsigned long)addr >= CPM_ADDR) | 87 | cpm_uart_nr = 0; |
77 | return (unsigned long)addr; | 88 | #ifdef CONFIG_SERIAL_CPM_SMC1 |
78 | return virt_to_bus(addr); | 89 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC1; |
90 | #endif | ||
91 | #ifdef CONFIG_SERIAL_CPM_SMC2 | ||
92 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC2; | ||
93 | #endif | ||
94 | #ifdef CONFIG_SERIAL_CPM_SCC1 | ||
95 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC1; | ||
96 | #endif | ||
97 | #ifdef CONFIG_SERIAL_CPM_SCC2 | ||
98 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC2; | ||
99 | #endif | ||
100 | #ifdef CONFIG_SERIAL_CPM_SCC3 | ||
101 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC3; | ||
102 | #endif | ||
103 | #ifdef CONFIG_SERIAL_CPM_SCC4 | ||
104 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC4; | ||
105 | #endif | ||
79 | } | 106 | } |
80 | 107 | ||
81 | static inline void *cpm2cpu_addr(unsigned long addr) | 108 | /* Get UART number by its id */ |
109 | static int cpm_uart_id2nr(int id) | ||
82 | { | 110 | { |
83 | if (addr >= CPM_ADDR) | 111 | int i; |
84 | return (void *)addr; | 112 | if (id < UART_NR) { |
85 | return bus_to_virt(addr); | 113 | for (i=0; i<UART_NR; i++) { |
114 | if (cpm_uart_port_map[i] == id) | ||
115 | return i; | ||
116 | } | ||
117 | } | ||
118 | |||
119 | /* not found or invalid argument */ | ||
120 | return -1; | ||
86 | } | 121 | } |
87 | 122 | ||
88 | /* | 123 | /* |
@@ -258,7 +293,7 @@ static void cpm_uart_int_rx(struct uart_port *port, struct pt_regs *regs) | |||
258 | } | 293 | } |
259 | 294 | ||
260 | /* get pointer */ | 295 | /* get pointer */ |
261 | cp = cpm2cpu_addr(bdp->cbd_bufaddr); | 296 | cp = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); |
262 | 297 | ||
263 | /* loop through the buffer */ | 298 | /* loop through the buffer */ |
264 | while (i-- > 0) { | 299 | while (i-- > 0) { |
@@ -438,7 +473,11 @@ static void cpm_uart_shutdown(struct uart_port *port) | |||
438 | } | 473 | } |
439 | 474 | ||
440 | /* Shut them really down and reinit buffer descriptors */ | 475 | /* Shut them really down and reinit buffer descriptors */ |
441 | cpm_line_cr_cmd(line, CPM_CR_STOP_TX); | 476 | if (IS_SMC(pinfo)) |
477 | cpm_line_cr_cmd(line, CPM_CR_STOP_TX); | ||
478 | else | ||
479 | cpm_line_cr_cmd(line, CPM_CR_GRA_STOP_TX); | ||
480 | |||
442 | cpm_uart_initbd(pinfo); | 481 | cpm_uart_initbd(pinfo); |
443 | } | 482 | } |
444 | } | 483 | } |
@@ -601,7 +640,7 @@ static int cpm_uart_tx_pump(struct uart_port *port) | |||
601 | /* Pick next descriptor and fill from buffer */ | 640 | /* Pick next descriptor and fill from buffer */ |
602 | bdp = pinfo->tx_cur; | 641 | bdp = pinfo->tx_cur; |
603 | 642 | ||
604 | p = cpm2cpu_addr(bdp->cbd_bufaddr); | 643 | p = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); |
605 | 644 | ||
606 | *p++ = port->x_char; | 645 | *p++ = port->x_char; |
607 | bdp->cbd_datlen = 1; | 646 | bdp->cbd_datlen = 1; |
@@ -628,7 +667,7 @@ static int cpm_uart_tx_pump(struct uart_port *port) | |||
628 | 667 | ||
629 | while (!(bdp->cbd_sc & BD_SC_READY) && (xmit->tail != xmit->head)) { | 668 | while (!(bdp->cbd_sc & BD_SC_READY) && (xmit->tail != xmit->head)) { |
630 | count = 0; | 669 | count = 0; |
631 | p = cpm2cpu_addr(bdp->cbd_bufaddr); | 670 | p = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); |
632 | while (count < pinfo->tx_fifosize) { | 671 | while (count < pinfo->tx_fifosize) { |
633 | *p++ = xmit->buf[xmit->tail]; | 672 | *p++ = xmit->buf[xmit->tail]; |
634 | xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); | 673 | xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); |
@@ -677,12 +716,12 @@ static void cpm_uart_initbd(struct uart_cpm_port *pinfo) | |||
677 | mem_addr = pinfo->mem_addr; | 716 | mem_addr = pinfo->mem_addr; |
678 | bdp = pinfo->rx_cur = pinfo->rx_bd_base; | 717 | bdp = pinfo->rx_cur = pinfo->rx_bd_base; |
679 | for (i = 0; i < (pinfo->rx_nrfifos - 1); i++, bdp++) { | 718 | for (i = 0; i < (pinfo->rx_nrfifos - 1); i++, bdp++) { |
680 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr); | 719 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr, pinfo); |
681 | bdp->cbd_sc = BD_SC_EMPTY | BD_SC_INTRPT; | 720 | bdp->cbd_sc = BD_SC_EMPTY | BD_SC_INTRPT; |
682 | mem_addr += pinfo->rx_fifosize; | 721 | mem_addr += pinfo->rx_fifosize; |
683 | } | 722 | } |
684 | 723 | ||
685 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr); | 724 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr, pinfo); |
686 | bdp->cbd_sc = BD_SC_WRAP | BD_SC_EMPTY | BD_SC_INTRPT; | 725 | bdp->cbd_sc = BD_SC_WRAP | BD_SC_EMPTY | BD_SC_INTRPT; |
687 | 726 | ||
688 | /* Set the physical address of the host memory | 727 | /* Set the physical address of the host memory |
@@ -692,12 +731,12 @@ static void cpm_uart_initbd(struct uart_cpm_port *pinfo) | |||
692 | mem_addr = pinfo->mem_addr + L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize); | 731 | mem_addr = pinfo->mem_addr + L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize); |
693 | bdp = pinfo->tx_cur = pinfo->tx_bd_base; | 732 | bdp = pinfo->tx_cur = pinfo->tx_bd_base; |
694 | for (i = 0; i < (pinfo->tx_nrfifos - 1); i++, bdp++) { | 733 | for (i = 0; i < (pinfo->tx_nrfifos - 1); i++, bdp++) { |
695 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr); | 734 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr, pinfo); |
696 | bdp->cbd_sc = BD_SC_INTRPT; | 735 | bdp->cbd_sc = BD_SC_INTRPT; |
697 | mem_addr += pinfo->tx_fifosize; | 736 | mem_addr += pinfo->tx_fifosize; |
698 | } | 737 | } |
699 | 738 | ||
700 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr); | 739 | bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr, pinfo); |
701 | bdp->cbd_sc = BD_SC_WRAP | BD_SC_INTRPT; | 740 | bdp->cbd_sc = BD_SC_WRAP | BD_SC_INTRPT; |
702 | } | 741 | } |
703 | 742 | ||
@@ -829,14 +868,6 @@ static int cpm_uart_request_port(struct uart_port *port) | |||
829 | if (pinfo->flags & FLAG_CONSOLE) | 868 | if (pinfo->flags & FLAG_CONSOLE) |
830 | return 0; | 869 | return 0; |
831 | 870 | ||
832 | /* | ||
833 | * Setup any port IO, connect any baud rate generators, | ||
834 | * etc. This is expected to be handled by board | ||
835 | * dependant code | ||
836 | */ | ||
837 | if (pinfo->set_lineif) | ||
838 | pinfo->set_lineif(pinfo); | ||
839 | |||
840 | if (IS_SMC(pinfo)) { | 871 | if (IS_SMC(pinfo)) { |
841 | pinfo->smcp->smc_smcm &= ~(SMCM_RX | SMCM_TX); | 872 | pinfo->smcp->smc_smcm &= ~(SMCM_RX | SMCM_TX); |
842 | pinfo->smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | 873 | pinfo->smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); |
@@ -988,6 +1019,58 @@ struct uart_cpm_port cpm_uart_ports[UART_NR] = { | |||
988 | }, | 1019 | }, |
989 | }; | 1020 | }; |
990 | 1021 | ||
1022 | int cpm_uart_drv_get_platform_data(struct platform_device *pdev, int is_con) | ||
1023 | { | ||
1024 | struct resource *r; | ||
1025 | struct fs_uart_platform_info *pdata = pdev->dev.platform_data; | ||
1026 | int idx = pdata->fs_no; /* It is UART_SMCx or UART_SCCx index */ | ||
1027 | struct uart_cpm_port *pinfo; | ||
1028 | int line; | ||
1029 | u32 mem, pram; | ||
1030 | |||
1031 | line = cpm_uart_id2nr(idx); | ||
1032 | if(line < 0) { | ||
1033 | printk(KERN_ERR"%s(): port %d is not registered", __FUNCTION__, idx); | ||
1034 | return -1; | ||
1035 | } | ||
1036 | |||
1037 | pinfo = (struct uart_cpm_port *) &cpm_uart_ports[idx]; | ||
1038 | |||
1039 | pinfo->brg = pdata->brg; | ||
1040 | |||
1041 | if (!is_con) { | ||
1042 | pinfo->port.line = line; | ||
1043 | pinfo->port.flags = UPF_BOOT_AUTOCONF; | ||
1044 | } | ||
1045 | |||
1046 | if (!(r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs"))) | ||
1047 | return -EINVAL; | ||
1048 | mem = r->start; | ||
1049 | |||
1050 | if (!(r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pram"))) | ||
1051 | return -EINVAL; | ||
1052 | pram = r->start; | ||
1053 | |||
1054 | if(idx > fsid_smc2_uart) { | ||
1055 | pinfo->sccp = (scc_t *)mem; | ||
1056 | pinfo->sccup = (scc_uart_t *)pram; | ||
1057 | } else { | ||
1058 | pinfo->smcp = (smc_t *)mem; | ||
1059 | pinfo->smcup = (smc_uart_t *)pram; | ||
1060 | } | ||
1061 | pinfo->tx_nrfifos = pdata->tx_num_fifo; | ||
1062 | pinfo->tx_fifosize = pdata->tx_buf_size; | ||
1063 | |||
1064 | pinfo->rx_nrfifos = pdata->rx_num_fifo; | ||
1065 | pinfo->rx_fifosize = pdata->rx_buf_size; | ||
1066 | |||
1067 | pinfo->port.uartclk = pdata->uart_clk; | ||
1068 | pinfo->port.mapbase = (unsigned long)mem; | ||
1069 | pinfo->port.irq = platform_get_irq(pdev, 0); | ||
1070 | |||
1071 | return 0; | ||
1072 | } | ||
1073 | |||
991 | #ifdef CONFIG_SERIAL_CPM_CONSOLE | 1074 | #ifdef CONFIG_SERIAL_CPM_CONSOLE |
992 | /* | 1075 | /* |
993 | * Print a string to the serial port trying not to disturb | 1076 | * Print a string to the serial port trying not to disturb |
@@ -1027,7 +1110,7 @@ static void cpm_uart_console_write(struct console *co, const char *s, | |||
1027 | * If the buffer address is in the CPM DPRAM, don't | 1110 | * If the buffer address is in the CPM DPRAM, don't |
1028 | * convert it. | 1111 | * convert it. |
1029 | */ | 1112 | */ |
1030 | cp = cpm2cpu_addr(bdp->cbd_bufaddr); | 1113 | cp = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); |
1031 | 1114 | ||
1032 | *cp = *s; | 1115 | *cp = *s; |
1033 | 1116 | ||
@@ -1044,7 +1127,7 @@ static void cpm_uart_console_write(struct console *co, const char *s, | |||
1044 | while ((bdp->cbd_sc & BD_SC_READY) != 0) | 1127 | while ((bdp->cbd_sc & BD_SC_READY) != 0) |
1045 | ; | 1128 | ; |
1046 | 1129 | ||
1047 | cp = cpm2cpu_addr(bdp->cbd_bufaddr); | 1130 | cp = cpm2cpu_addr(bdp->cbd_bufaddr, pinfo); |
1048 | 1131 | ||
1049 | *cp = 13; | 1132 | *cp = 13; |
1050 | bdp->cbd_datlen = 1; | 1133 | bdp->cbd_datlen = 1; |
@@ -1067,9 +1150,7 @@ static void cpm_uart_console_write(struct console *co, const char *s, | |||
1067 | pinfo->tx_cur = (volatile cbd_t *) bdp; | 1150 | pinfo->tx_cur = (volatile cbd_t *) bdp; |
1068 | } | 1151 | } |
1069 | 1152 | ||
1070 | /* | 1153 | |
1071 | * Setup console. Be careful is called early ! | ||
1072 | */ | ||
1073 | static int __init cpm_uart_console_setup(struct console *co, char *options) | 1154 | static int __init cpm_uart_console_setup(struct console *co, char *options) |
1074 | { | 1155 | { |
1075 | struct uart_port *port; | 1156 | struct uart_port *port; |
@@ -1080,9 +1161,27 @@ static int __init cpm_uart_console_setup(struct console *co, char *options) | |||
1080 | int flow = 'n'; | 1161 | int flow = 'n'; |
1081 | int ret; | 1162 | int ret; |
1082 | 1163 | ||
1164 | struct fs_uart_platform_info *pdata; | ||
1165 | struct platform_device* pdev = early_uart_get_pdev(co->index); | ||
1166 | |||
1083 | port = | 1167 | port = |
1084 | (struct uart_port *)&cpm_uart_ports[cpm_uart_port_map[co->index]]; | 1168 | (struct uart_port *)&cpm_uart_ports[cpm_uart_port_map[co->index]]; |
1085 | pinfo = (struct uart_cpm_port *)port; | 1169 | pinfo = (struct uart_cpm_port *)port; |
1170 | if (!pdev) { | ||
1171 | pr_info("cpm_uart: console: compat mode\n"); | ||
1172 | /* compatibility - will be cleaned up */ | ||
1173 | cpm_uart_init_portdesc(); | ||
1174 | |||
1175 | if (pinfo->set_lineif) | ||
1176 | pinfo->set_lineif(pinfo); | ||
1177 | } else { | ||
1178 | pdata = pdev->dev.platform_data; | ||
1179 | if (pdata) | ||
1180 | if (pdata->init_ioports) | ||
1181 | pdata->init_ioports(); | ||
1182 | |||
1183 | cpm_uart_drv_get_platform_data(pdev, 1); | ||
1184 | } | ||
1086 | 1185 | ||
1087 | pinfo->flags |= FLAG_CONSOLE; | 1186 | pinfo->flags |= FLAG_CONSOLE; |
1088 | 1187 | ||
@@ -1097,14 +1196,6 @@ static int __init cpm_uart_console_setup(struct console *co, char *options) | |||
1097 | baud = 9600; | 1196 | baud = 9600; |
1098 | } | 1197 | } |
1099 | 1198 | ||
1100 | /* | ||
1101 | * Setup any port IO, connect any baud rate generators, | ||
1102 | * etc. This is expected to be handled by board | ||
1103 | * dependant code | ||
1104 | */ | ||
1105 | if (pinfo->set_lineif) | ||
1106 | pinfo->set_lineif(pinfo); | ||
1107 | |||
1108 | if (IS_SMC(pinfo)) { | 1199 | if (IS_SMC(pinfo)) { |
1109 | pinfo->smcp->smc_smcm &= ~(SMCM_RX | SMCM_TX); | 1200 | pinfo->smcp->smc_smcm &= ~(SMCM_RX | SMCM_TX); |
1110 | pinfo->smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | 1201 | pinfo->smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); |
@@ -1143,11 +1234,8 @@ static struct console cpm_scc_uart_console = { | |||
1143 | 1234 | ||
1144 | int __init cpm_uart_console_init(void) | 1235 | int __init cpm_uart_console_init(void) |
1145 | { | 1236 | { |
1146 | int ret = cpm_uart_init_portdesc(); | 1237 | register_console(&cpm_scc_uart_console); |
1147 | 1238 | return 0; | |
1148 | if (!ret) | ||
1149 | register_console(&cpm_scc_uart_console); | ||
1150 | return ret; | ||
1151 | } | 1239 | } |
1152 | 1240 | ||
1153 | console_initcall(cpm_uart_console_init); | 1241 | console_initcall(cpm_uart_console_init); |
@@ -1165,44 +1253,129 @@ static struct uart_driver cpm_reg = { | |||
1165 | .minor = SERIAL_CPM_MINOR, | 1253 | .minor = SERIAL_CPM_MINOR, |
1166 | .cons = CPM_UART_CONSOLE, | 1254 | .cons = CPM_UART_CONSOLE, |
1167 | }; | 1255 | }; |
1168 | 1256 | static int cpm_uart_drv_probe(struct device *dev) | |
1169 | static int __init cpm_uart_init(void) | ||
1170 | { | 1257 | { |
1171 | int ret, i; | 1258 | struct platform_device *pdev = to_platform_device(dev); |
1172 | 1259 | struct fs_uart_platform_info *pdata; | |
1173 | printk(KERN_INFO "Serial: CPM driver $Revision: 0.01 $\n"); | 1260 | int ret = -ENODEV; |
1174 | 1261 | ||
1175 | #ifndef CONFIG_SERIAL_CPM_CONSOLE | 1262 | if(!pdev) { |
1176 | ret = cpm_uart_init_portdesc(); | 1263 | printk(KERN_ERR"CPM UART: platform data missing!\n"); |
1177 | if (ret) | ||
1178 | return ret; | 1264 | return ret; |
1179 | #endif | 1265 | } |
1180 | 1266 | ||
1181 | cpm_reg.nr = cpm_uart_nr; | 1267 | pdata = pdev->dev.platform_data; |
1182 | ret = uart_register_driver(&cpm_reg); | 1268 | pr_debug("cpm_uart_drv_probe: Adding CPM UART %d\n", cpm_uart_id2nr(pdata->fs_no)); |
1183 | 1269 | ||
1184 | if (ret) | 1270 | if ((ret = cpm_uart_drv_get_platform_data(pdev, 0))) |
1185 | return ret; | 1271 | return ret; |
1186 | 1272 | ||
1187 | for (i = 0; i < cpm_uart_nr; i++) { | 1273 | if (pdata->init_ioports) |
1188 | int con = cpm_uart_port_map[i]; | 1274 | pdata->init_ioports(); |
1189 | cpm_uart_ports[con].port.line = i; | ||
1190 | cpm_uart_ports[con].port.flags = UPF_BOOT_AUTOCONF; | ||
1191 | uart_add_one_port(&cpm_reg, &cpm_uart_ports[con].port); | ||
1192 | } | ||
1193 | 1275 | ||
1194 | return ret; | 1276 | ret = uart_add_one_port(&cpm_reg, &cpm_uart_ports[pdata->fs_no].port); |
1277 | |||
1278 | return ret; | ||
1195 | } | 1279 | } |
1196 | 1280 | ||
1197 | static void __exit cpm_uart_exit(void) | 1281 | static int cpm_uart_drv_remove(struct device *dev) |
1198 | { | 1282 | { |
1283 | struct platform_device *pdev = to_platform_device(dev); | ||
1284 | struct fs_uart_platform_info *pdata = pdev->dev.platform_data; | ||
1285 | |||
1286 | pr_debug("cpm_uart_drv_remove: Removing CPM UART %d\n", | ||
1287 | cpm_uart_id2nr(pdata->fs_no)); | ||
1288 | |||
1289 | uart_remove_one_port(&cpm_reg, &cpm_uart_ports[pdata->fs_no].port); | ||
1290 | return 0; | ||
1291 | } | ||
1292 | |||
1293 | static struct device_driver cpm_smc_uart_driver = { | ||
1294 | .name = "fsl-cpm-smc:uart", | ||
1295 | .bus = &platform_bus_type, | ||
1296 | .probe = cpm_uart_drv_probe, | ||
1297 | .remove = cpm_uart_drv_remove, | ||
1298 | }; | ||
1299 | |||
1300 | static struct device_driver cpm_scc_uart_driver = { | ||
1301 | .name = "fsl-cpm-scc:uart", | ||
1302 | .bus = &platform_bus_type, | ||
1303 | .probe = cpm_uart_drv_probe, | ||
1304 | .remove = cpm_uart_drv_remove, | ||
1305 | }; | ||
1306 | |||
1307 | /* | ||
1308 | This is supposed to match uart devices on platform bus, | ||
1309 | */ | ||
1310 | static int match_is_uart (struct device* dev, void* data) | ||
1311 | { | ||
1312 | struct platform_device* pdev = container_of(dev, struct platform_device, dev); | ||
1313 | int ret = 0; | ||
1314 | /* this was setfunc as uart */ | ||
1315 | if(strstr(pdev->name,":uart")) { | ||
1316 | ret = 1; | ||
1317 | } | ||
1318 | return ret; | ||
1319 | } | ||
1320 | |||
1321 | |||
1322 | static int cpm_uart_init(void) { | ||
1323 | |||
1324 | int ret; | ||
1199 | int i; | 1325 | int i; |
1326 | struct device *dev; | ||
1327 | printk(KERN_INFO "Serial: CPM driver $Revision: 0.02 $\n"); | ||
1328 | |||
1329 | /* lookup the bus for uart devices */ | ||
1330 | dev = bus_find_device(&platform_bus_type, NULL, 0, match_is_uart); | ||
1331 | |||
1332 | /* There are devices on the bus - all should be OK */ | ||
1333 | if (dev) { | ||
1334 | cpm_uart_count(); | ||
1335 | cpm_reg.nr = cpm_uart_nr; | ||
1336 | |||
1337 | if (!(ret = uart_register_driver(&cpm_reg))) { | ||
1338 | if ((ret = driver_register(&cpm_smc_uart_driver))) { | ||
1339 | uart_unregister_driver(&cpm_reg); | ||
1340 | return ret; | ||
1341 | } | ||
1342 | if ((ret = driver_register(&cpm_scc_uart_driver))) { | ||
1343 | driver_unregister(&cpm_scc_uart_driver); | ||
1344 | uart_unregister_driver(&cpm_reg); | ||
1345 | } | ||
1346 | } | ||
1347 | } else { | ||
1348 | /* No capable platform devices found - falling back to legacy mode */ | ||
1349 | pr_info("cpm_uart: WARNING: no UART devices found on platform bus!\n"); | ||
1350 | pr_info( | ||
1351 | "cpm_uart: the driver will guess configuration, but this mode is no longer supported.\n"); | ||
1352 | #ifndef CONFIG_SERIAL_CPM_CONSOLE | ||
1353 | ret = cpm_uart_init_portdesc(); | ||
1354 | if (ret) | ||
1355 | return ret; | ||
1356 | #endif | ||
1357 | |||
1358 | cpm_reg.nr = cpm_uart_nr; | ||
1359 | ret = uart_register_driver(&cpm_reg); | ||
1360 | |||
1361 | if (ret) | ||
1362 | return ret; | ||
1363 | |||
1364 | for (i = 0; i < cpm_uart_nr; i++) { | ||
1365 | int con = cpm_uart_port_map[i]; | ||
1366 | cpm_uart_ports[con].port.line = i; | ||
1367 | cpm_uart_ports[con].port.flags = UPF_BOOT_AUTOCONF; | ||
1368 | uart_add_one_port(&cpm_reg, &cpm_uart_ports[con].port); | ||
1369 | } | ||
1200 | 1370 | ||
1201 | for (i = 0; i < cpm_uart_nr; i++) { | ||
1202 | int con = cpm_uart_port_map[i]; | ||
1203 | uart_remove_one_port(&cpm_reg, &cpm_uart_ports[con].port); | ||
1204 | } | 1371 | } |
1372 | return ret; | ||
1373 | } | ||
1205 | 1374 | ||
1375 | static void __exit cpm_uart_exit(void) | ||
1376 | { | ||
1377 | driver_unregister(&cpm_scc_uart_driver); | ||
1378 | driver_unregister(&cpm_smc_uart_driver); | ||
1206 | uart_unregister_driver(&cpm_reg); | 1379 | uart_unregister_driver(&cpm_reg); |
1207 | } | 1380 | } |
1208 | 1381 | ||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm1.c b/drivers/serial/cpm_uart/cpm_uart_cpm1.c index d789ee55cbb7..17406a05ce1f 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm1.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm1.c | |||
@@ -8,6 +8,8 @@ | |||
8 | * | 8 | * |
9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
10 | * (C) 2004 Intracom, S.A. | 10 | * (C) 2004 Intracom, S.A. |
11 | * (C) 2006 MontaVista Software, Inc. | ||
12 | * Vitaly Bordug <vbordug@ru.mvista.com> | ||
11 | * | 13 | * |
12 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
13 | * it under the terms of the GNU General Public License as published by | 15 | * it under the terms of the GNU General Public License as published by |
@@ -81,58 +83,11 @@ void cpm_line_cr_cmd(int line, int cmd) | |||
81 | 83 | ||
82 | void smc1_lineif(struct uart_cpm_port *pinfo) | 84 | void smc1_lineif(struct uart_cpm_port *pinfo) |
83 | { | 85 | { |
84 | volatile cpm8xx_t *cp = cpmp; | ||
85 | |||
86 | (void)cp; /* fix warning */ | ||
87 | #if defined (CONFIG_MPC885ADS) | ||
88 | /* Enable SMC1 transceivers */ | ||
89 | { | ||
90 | cp->cp_pepar |= 0x000000c0; | ||
91 | cp->cp_pedir &= ~0x000000c0; | ||
92 | cp->cp_peso &= ~0x00000040; | ||
93 | cp->cp_peso |= 0x00000080; | ||
94 | } | ||
95 | #elif defined (CONFIG_MPC86XADS) | ||
96 | unsigned int iobits = 0x000000c0; | ||
97 | |||
98 | if (!pinfo->is_portb) { | ||
99 | cp->cp_pbpar |= iobits; | ||
100 | cp->cp_pbdir &= ~iobits; | ||
101 | cp->cp_pbodr &= ~iobits; | ||
102 | } else { | ||
103 | ((immap_t *)IMAP_ADDR)->im_ioport.iop_papar |= iobits; | ||
104 | ((immap_t *)IMAP_ADDR)->im_ioport.iop_padir &= ~iobits; | ||
105 | ((immap_t *)IMAP_ADDR)->im_ioport.iop_paodr &= ~iobits; | ||
106 | } | ||
107 | #endif | ||
108 | pinfo->brg = 1; | 86 | pinfo->brg = 1; |
109 | } | 87 | } |
110 | 88 | ||
111 | void smc2_lineif(struct uart_cpm_port *pinfo) | 89 | void smc2_lineif(struct uart_cpm_port *pinfo) |
112 | { | 90 | { |
113 | volatile cpm8xx_t *cp = cpmp; | ||
114 | |||
115 | (void)cp; /* fix warning */ | ||
116 | #if defined (CONFIG_MPC885ADS) | ||
117 | cp->cp_pepar |= 0x00000c00; | ||
118 | cp->cp_pedir &= ~0x00000c00; | ||
119 | cp->cp_peso &= ~0x00000400; | ||
120 | cp->cp_peso |= 0x00000800; | ||
121 | #elif defined (CONFIG_MPC86XADS) | ||
122 | unsigned int iobits = 0x00000c00; | ||
123 | |||
124 | if (!pinfo->is_portb) { | ||
125 | cp->cp_pbpar |= iobits; | ||
126 | cp->cp_pbdir &= ~iobits; | ||
127 | cp->cp_pbodr &= ~iobits; | ||
128 | } else { | ||
129 | ((immap_t *)IMAP_ADDR)->im_ioport.iop_papar |= iobits; | ||
130 | ((immap_t *)IMAP_ADDR)->im_ioport.iop_padir &= ~iobits; | ||
131 | ((immap_t *)IMAP_ADDR)->im_ioport.iop_paodr &= ~iobits; | ||
132 | } | ||
133 | |||
134 | #endif | ||
135 | |||
136 | pinfo->brg = 2; | 91 | pinfo->brg = 2; |
137 | } | 92 | } |
138 | 93 | ||
@@ -191,7 +146,7 @@ int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) | |||
191 | /* was hostalloc but changed cause it blows away the */ | 146 | /* was hostalloc but changed cause it blows away the */ |
192 | /* large tlb mapping when pinning the kernel area */ | 147 | /* large tlb mapping when pinning the kernel area */ |
193 | mem_addr = (u8 *) cpm_dpram_addr(cpm_dpalloc(memsz, 8)); | 148 | mem_addr = (u8 *) cpm_dpram_addr(cpm_dpalloc(memsz, 8)); |
194 | dma_addr = 0; | 149 | dma_addr = (u32)mem_addr; |
195 | } else | 150 | } else |
196 | mem_addr = dma_alloc_coherent(NULL, memsz, &dma_addr, | 151 | mem_addr = dma_alloc_coherent(NULL, memsz, &dma_addr, |
197 | GFP_KERNEL); | 152 | GFP_KERNEL); |
@@ -204,8 +159,9 @@ int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) | |||
204 | } | 159 | } |
205 | 160 | ||
206 | pinfo->dp_addr = dp_offset; | 161 | pinfo->dp_addr = dp_offset; |
207 | pinfo->mem_addr = mem_addr; | 162 | pinfo->mem_addr = mem_addr; /* virtual address*/ |
208 | pinfo->dma_addr = dma_addr; | 163 | pinfo->dma_addr = dma_addr; /* physical address*/ |
164 | pinfo->mem_size = memsz; | ||
209 | 165 | ||
210 | pinfo->rx_buf = mem_addr; | 166 | pinfo->rx_buf = mem_addr; |
211 | pinfo->tx_buf = pinfo->rx_buf + L1_CACHE_ALIGN(pinfo->rx_nrfifos | 167 | pinfo->tx_buf = pinfo->rx_buf + L1_CACHE_ALIGN(pinfo->rx_nrfifos |
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/serial/cpm_uart/cpm_uart_cpm2.c index fd9e53ed3feb..4b2de08f46d0 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c | |||
@@ -8,6 +8,8 @@ | |||
8 | * | 8 | * |
9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
10 | * (C) 2004 Intracom, S.A. | 10 | * (C) 2004 Intracom, S.A. |
11 | * (C) 2006 MontaVista Software, Inc. | ||
12 | * Vitaly Bordug <vbordug@ru.mvista.com> | ||
11 | * | 13 | * |
12 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
13 | * it under the terms of the GNU General Public License as published by | 15 | * it under the terms of the GNU General Public License as published by |
@@ -142,14 +144,6 @@ void scc2_lineif(struct uart_cpm_port *pinfo) | |||
142 | * be supported in a sane fashion. | 144 | * be supported in a sane fashion. |
143 | */ | 145 | */ |
144 | #ifndef CONFIG_STX_GP3 | 146 | #ifndef CONFIG_STX_GP3 |
145 | #ifdef CONFIG_MPC8560_ADS | ||
146 | volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; | ||
147 | io->iop_ppard |= 0x00000018; | ||
148 | io->iop_psord &= ~0x00000008; /* Rx */ | ||
149 | io->iop_psord &= ~0x00000010; /* Tx */ | ||
150 | io->iop_pdird &= ~0x00000008; /* Rx */ | ||
151 | io->iop_pdird |= 0x00000010; /* Tx */ | ||
152 | #else | ||
153 | volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; | 147 | volatile iop_cpm2_t *io = &cpm2_immr->im_ioport; |
154 | io->iop_pparb |= 0x008b0000; | 148 | io->iop_pparb |= 0x008b0000; |
155 | io->iop_pdirb |= 0x00880000; | 149 | io->iop_pdirb |= 0x00880000; |
@@ -157,7 +151,6 @@ void scc2_lineif(struct uart_cpm_port *pinfo) | |||
157 | io->iop_pdirb &= ~0x00030000; | 151 | io->iop_pdirb &= ~0x00030000; |
158 | io->iop_psorb &= ~0x00030000; | 152 | io->iop_psorb &= ~0x00030000; |
159 | #endif | 153 | #endif |
160 | #endif | ||
161 | cpm2_immr->im_cpmux.cmx_scr &= 0xff00ffff; | 154 | cpm2_immr->im_cpmux.cmx_scr &= 0xff00ffff; |
162 | cpm2_immr->im_cpmux.cmx_scr |= 0x00090000; | 155 | cpm2_immr->im_cpmux.cmx_scr |= 0x00090000; |
163 | pinfo->brg = 2; | 156 | pinfo->brg = 2; |
@@ -218,8 +211,10 @@ int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) | |||
218 | 211 | ||
219 | memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + | 212 | memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + |
220 | L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); | 213 | L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); |
221 | if (is_con) | 214 | if (is_con) { |
222 | mem_addr = alloc_bootmem(memsz); | 215 | mem_addr = alloc_bootmem(memsz); |
216 | dma_addr = mem_addr; | ||
217 | } | ||
223 | else | 218 | else |
224 | mem_addr = dma_alloc_coherent(NULL, memsz, &dma_addr, | 219 | mem_addr = dma_alloc_coherent(NULL, memsz, &dma_addr, |
225 | GFP_KERNEL); | 220 | GFP_KERNEL); |
@@ -234,6 +229,7 @@ int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) | |||
234 | pinfo->dp_addr = dp_offset; | 229 | pinfo->dp_addr = dp_offset; |
235 | pinfo->mem_addr = mem_addr; | 230 | pinfo->mem_addr = mem_addr; |
236 | pinfo->dma_addr = dma_addr; | 231 | pinfo->dma_addr = dma_addr; |
232 | pinfo->mem_size = memsz; | ||
237 | 233 | ||
238 | pinfo->rx_buf = mem_addr; | 234 | pinfo->rx_buf = mem_addr; |
239 | pinfo->tx_buf = pinfo->rx_buf + L1_CACHE_ALIGN(pinfo->rx_nrfifos | 235 | pinfo->tx_buf = pinfo->rx_buf + L1_CACHE_ALIGN(pinfo->rx_nrfifos |
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index c3b7a6673e9c..d202eb4f3848 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <asm/io.h> | 45 | #include <asm/io.h> |
46 | #include <asm/irq.h> | 46 | #include <asm/irq.h> |
47 | #include <asm/hardware.h> | 47 | #include <asm/hardware.h> |
48 | #include <asm/arch/imx-uart.h> | ||
48 | 49 | ||
49 | /* We've been assigned a range on the "Low-density serial ports" major */ | 50 | /* We've been assigned a range on the "Low-density serial ports" major */ |
50 | #define SERIAL_IMX_MAJOR 204 | 51 | #define SERIAL_IMX_MAJOR 204 |
@@ -73,7 +74,8 @@ struct imx_port { | |||
73 | struct uart_port port; | 74 | struct uart_port port; |
74 | struct timer_list timer; | 75 | struct timer_list timer; |
75 | unsigned int old_status; | 76 | unsigned int old_status; |
76 | int txirq,rxirq,rtsirq; | 77 | int txirq,rxirq,rtsirq; |
78 | int have_rtscts:1; | ||
77 | }; | 79 | }; |
78 | 80 | ||
79 | /* | 81 | /* |
@@ -491,8 +493,12 @@ imx_set_termios(struct uart_port *port, struct termios *termios, | |||
491 | ucr2 = UCR2_SRST | UCR2_IRTS; | 493 | ucr2 = UCR2_SRST | UCR2_IRTS; |
492 | 494 | ||
493 | if (termios->c_cflag & CRTSCTS) { | 495 | if (termios->c_cflag & CRTSCTS) { |
494 | ucr2 &= ~UCR2_IRTS; | 496 | if( sport->have_rtscts ) { |
495 | ucr2 |= UCR2_CTSC; | 497 | ucr2 &= ~UCR2_IRTS; |
498 | ucr2 |= UCR2_CTSC; | ||
499 | } else { | ||
500 | termios->c_cflag &= ~CRTSCTS; | ||
501 | } | ||
496 | } | 502 | } |
497 | 503 | ||
498 | if (termios->c_cflag & CSTOPB) | 504 | if (termios->c_cflag & CSTOPB) |
@@ -719,27 +725,6 @@ static void __init imx_init_ports(void) | |||
719 | imx_ports[i].timer.function = imx_timeout; | 725 | imx_ports[i].timer.function = imx_timeout; |
720 | imx_ports[i].timer.data = (unsigned long)&imx_ports[i]; | 726 | imx_ports[i].timer.data = (unsigned long)&imx_ports[i]; |
721 | } | 727 | } |
722 | |||
723 | imx_gpio_mode(PC9_PF_UART1_CTS); | ||
724 | imx_gpio_mode(PC10_PF_UART1_RTS); | ||
725 | imx_gpio_mode(PC11_PF_UART1_TXD); | ||
726 | imx_gpio_mode(PC12_PF_UART1_RXD); | ||
727 | imx_gpio_mode(PB28_PF_UART2_CTS); | ||
728 | imx_gpio_mode(PB29_PF_UART2_RTS); | ||
729 | |||
730 | imx_gpio_mode(PB30_PF_UART2_TXD); | ||
731 | imx_gpio_mode(PB31_PF_UART2_RXD); | ||
732 | |||
733 | #if 0 /* We don't need these, on the mx1 the _modem_ side of the uart | ||
734 | * is implemented. | ||
735 | */ | ||
736 | imx_gpio_mode(PD7_AF_UART2_DTR); | ||
737 | imx_gpio_mode(PD8_AF_UART2_DCD); | ||
738 | imx_gpio_mode(PD9_AF_UART2_RI); | ||
739 | imx_gpio_mode(PD10_AF_UART2_DSR); | ||
740 | #endif | ||
741 | |||
742 | |||
743 | } | 728 | } |
744 | 729 | ||
745 | #ifdef CONFIG_SERIAL_IMX_CONSOLE | 730 | #ifdef CONFIG_SERIAL_IMX_CONSOLE |
@@ -932,7 +917,14 @@ static int serial_imx_resume(struct platform_device *dev) | |||
932 | 917 | ||
933 | static int serial_imx_probe(struct platform_device *dev) | 918 | static int serial_imx_probe(struct platform_device *dev) |
934 | { | 919 | { |
920 | struct imxuart_platform_data *pdata; | ||
921 | |||
935 | imx_ports[dev->id].port.dev = &dev->dev; | 922 | imx_ports[dev->id].port.dev = &dev->dev; |
923 | |||
924 | pdata = (struct imxuart_platform_data *)dev->dev.platform_data; | ||
925 | if(pdata && (pdata->flags & IMXUART_HAVE_RTSCTS)) | ||
926 | imx_ports[dev->id].have_rtscts = 1; | ||
927 | |||
936 | uart_add_one_port(&imx_reg, &imx_ports[dev->id].port); | 928 | uart_add_one_port(&imx_reg, &imx_ports[dev->id].port); |
937 | platform_set_drvdata(dev, &imx_ports[dev->id]); | 929 | platform_set_drvdata(dev, &imx_ports[dev->id]); |
938 | return 0; | 930 | return 0; |
diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c index 0b49ff78efc1..501316b198e5 100644 --- a/drivers/sn/ioc3.c +++ b/drivers/sn/ioc3.c | |||
@@ -678,7 +678,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) | |||
678 | /* Track PCI-device specific data */ | 678 | /* Track PCI-device specific data */ |
679 | pci_set_drvdata(pdev, idd); | 679 | pci_set_drvdata(pdev, idd); |
680 | down_write(&ioc3_devices_rwsem); | 680 | down_write(&ioc3_devices_rwsem); |
681 | list_add(&idd->list, &ioc3_devices); | 681 | list_add_tail(&idd->list, &ioc3_devices); |
682 | idd->id = ioc3_counter++; | 682 | idd->id = ioc3_counter++; |
683 | up_write(&ioc3_devices_rwsem); | 683 | up_write(&ioc3_devices_rwsem); |
684 | 684 | ||
diff --git a/drivers/sn/ioc4.c b/drivers/sn/ioc4.c index 67140a5804f5..cdeff909403e 100644 --- a/drivers/sn/ioc4.c +++ b/drivers/sn/ioc4.c | |||
@@ -310,7 +310,7 @@ ioc4_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) | |||
310 | pci_set_drvdata(idd->idd_pdev, idd); | 310 | pci_set_drvdata(idd->idd_pdev, idd); |
311 | 311 | ||
312 | mutex_lock(&ioc4_mutex); | 312 | mutex_lock(&ioc4_mutex); |
313 | list_add(&idd->idd_list, &ioc4_devices); | 313 | list_add_tail(&idd->idd_list, &ioc4_devices); |
314 | 314 | ||
315 | /* Add this IOC4 to all submodules */ | 315 | /* Add this IOC4 to all submodules */ |
316 | list_for_each_entry(is, &ioc4_submodules, is_list) { | 316 | list_for_each_entry(is, &ioc4_submodules, is_list) { |
diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c index 42b457030b03..0eb010a3f5bc 100644 --- a/drivers/usb/gadget/inode.c +++ b/drivers/usb/gadget/inode.c | |||
@@ -1614,6 +1614,7 @@ static int activate_ep_files (struct dev_data *dev) | |||
1614 | data, &ep_config_operations, | 1614 | data, &ep_config_operations, |
1615 | &data->dentry); | 1615 | &data->dentry); |
1616 | if (!data->inode) { | 1616 | if (!data->inode) { |
1617 | usb_ep_free_request(ep, data->req); | ||
1617 | kfree (data); | 1618 | kfree (data); |
1618 | goto enomem; | 1619 | goto enomem; |
1619 | } | 1620 | } |
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c index 6a4b93ad1082..0b9293493957 100644 --- a/drivers/usb/gadget/net2280.c +++ b/drivers/usb/gadget/net2280.c | |||
@@ -2166,7 +2166,7 @@ static void handle_ep_small (struct net2280_ep *ep) | |||
2166 | ep->stopped = 1; | 2166 | ep->stopped = 1; |
2167 | set_halt (ep); | 2167 | set_halt (ep); |
2168 | mode = 2; | 2168 | mode = 2; |
2169 | } else if (!req && ep->stopped) | 2169 | } else if (!req && !ep->stopped) |
2170 | write_fifo (ep, NULL); | 2170 | write_fifo (ep, NULL); |
2171 | } | 2171 | } |
2172 | } else { | 2172 | } else { |
@@ -2280,9 +2280,7 @@ static void handle_ep_small (struct net2280_ep *ep) | |||
2280 | /* if we wrote it all, we're usually done */ | 2280 | /* if we wrote it all, we're usually done */ |
2281 | if (req->req.actual == req->req.length) { | 2281 | if (req->req.actual == req->req.length) { |
2282 | if (ep->num == 0) { | 2282 | if (ep->num == 0) { |
2283 | /* wait for control status */ | 2283 | /* send zlps until the status stage */ |
2284 | if (mode != 2) | ||
2285 | req = NULL; | ||
2286 | } else if (!req->req.zero || len != ep->ep.maxpacket) | 2284 | } else if (!req->req.zero || len != ep->ep.maxpacket) |
2287 | mode = 2; | 2285 | mode = 2; |
2288 | } | 2286 | } |
@@ -2744,6 +2742,10 @@ static irqreturn_t net2280_irq (int irq, void *_dev, struct pt_regs * r) | |||
2744 | { | 2742 | { |
2745 | struct net2280 *dev = _dev; | 2743 | struct net2280 *dev = _dev; |
2746 | 2744 | ||
2745 | /* shared interrupt, not ours */ | ||
2746 | if (!(readl(&dev->regs->irqstat0) & (1 << INTA_ASSERTED))) | ||
2747 | return IRQ_NONE; | ||
2748 | |||
2747 | spin_lock (&dev->lock); | 2749 | spin_lock (&dev->lock); |
2748 | 2750 | ||
2749 | /* handle disconnect, dma, and more */ | 2751 | /* handle disconnect, dma, and more */ |
@@ -2831,13 +2833,13 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id) | |||
2831 | } | 2833 | } |
2832 | 2834 | ||
2833 | /* alloc, and start init */ | 2835 | /* alloc, and start init */ |
2834 | dev = kmalloc (sizeof *dev, SLAB_KERNEL); | 2836 | dev = kzalloc (sizeof *dev, SLAB_KERNEL); |
2835 | if (dev == NULL){ | 2837 | if (dev == NULL){ |
2836 | retval = -ENOMEM; | 2838 | retval = -ENOMEM; |
2837 | goto done; | 2839 | goto done; |
2838 | } | 2840 | } |
2839 | 2841 | ||
2840 | memset (dev, 0, sizeof *dev); | 2842 | pci_set_drvdata (pdev, dev); |
2841 | spin_lock_init (&dev->lock); | 2843 | spin_lock_init (&dev->lock); |
2842 | dev->pdev = pdev; | 2844 | dev->pdev = pdev; |
2843 | dev->gadget.ops = &net2280_ops; | 2845 | dev->gadget.ops = &net2280_ops; |
@@ -2950,7 +2952,6 @@ static int net2280_probe (struct pci_dev *pdev, const struct pci_device_id *id) | |||
2950 | dev->chiprev = get_idx_reg (dev->regs, REG_CHIPREV) & 0xffff; | 2952 | dev->chiprev = get_idx_reg (dev->regs, REG_CHIPREV) & 0xffff; |
2951 | 2953 | ||
2952 | /* done */ | 2954 | /* done */ |
2953 | pci_set_drvdata (pdev, dev); | ||
2954 | INFO (dev, "%s\n", driver_desc); | 2955 | INFO (dev, "%s\n", driver_desc); |
2955 | INFO (dev, "irq %s, pci mem %p, chip rev %04x\n", | 2956 | INFO (dev, "irq %s, pci mem %p, chip rev %04x\n", |
2956 | bufp, base, dev->chiprev); | 2957 | bufp, base, dev->chiprev); |
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c index 1e03f1a5a5fd..a1bd2bea6deb 100644 --- a/drivers/usb/host/ehci-pci.c +++ b/drivers/usb/host/ehci-pci.c | |||
@@ -350,7 +350,7 @@ static const struct hc_driver ehci_pci_hc_driver = { | |||
350 | /* PCI driver selection metadata; PCI hotplugging uses this */ | 350 | /* PCI driver selection metadata; PCI hotplugging uses this */ |
351 | static const struct pci_device_id pci_ids [] = { { | 351 | static const struct pci_device_id pci_ids [] = { { |
352 | /* handle any USB 2.0 EHCI controller */ | 352 | /* handle any USB 2.0 EHCI controller */ |
353 | PCI_DEVICE_CLASS(((PCI_CLASS_SERIAL_USB << 8) | 0x20), ~0), | 353 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_EHCI, ~0), |
354 | .driver_data = (unsigned long) &ehci_pci_hc_driver, | 354 | .driver_data = (unsigned long) &ehci_pci_hc_driver, |
355 | }, | 355 | }, |
356 | { /* end: all zeroes */ } | 356 | { /* end: all zeroes */ } |
diff --git a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c index 1bfe96f4d045..b268537e389e 100644 --- a/drivers/usb/host/ohci-pci.c +++ b/drivers/usb/host/ohci-pci.c | |||
@@ -206,7 +206,7 @@ static const struct hc_driver ohci_pci_hc_driver = { | |||
206 | 206 | ||
207 | static const struct pci_device_id pci_ids [] = { { | 207 | static const struct pci_device_id pci_ids [] = { { |
208 | /* handle any USB OHCI controller */ | 208 | /* handle any USB OHCI controller */ |
209 | PCI_DEVICE_CLASS((PCI_CLASS_SERIAL_USB << 8) | 0x10, ~0), | 209 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_OHCI, ~0), |
210 | .driver_data = (unsigned long) &ohci_pci_hc_driver, | 210 | .driver_data = (unsigned long) &ohci_pci_hc_driver, |
211 | }, { /* end: all zeroes */ } | 211 | }, { /* end: all zeroes */ } |
212 | }; | 212 | }; |
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c index c0c4db78b590..d225e11f4055 100644 --- a/drivers/usb/host/uhci-hcd.c +++ b/drivers/usb/host/uhci-hcd.c | |||
@@ -858,7 +858,7 @@ static const struct hc_driver uhci_driver = { | |||
858 | 858 | ||
859 | static const struct pci_device_id uhci_pci_ids[] = { { | 859 | static const struct pci_device_id uhci_pci_ids[] = { { |
860 | /* handle any USB UHCI controller */ | 860 | /* handle any USB UHCI controller */ |
861 | PCI_DEVICE_CLASS(((PCI_CLASS_SERIAL_USB << 8) | 0x00), ~0), | 861 | PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_UHCI, ~0), |
862 | .driver_data = (unsigned long) &uhci_driver, | 862 | .driver_data = (unsigned long) &uhci_driver, |
863 | }, { /* end: all zeroes */ } | 863 | }, { /* end: all zeroes */ } |
864 | }; | 864 | }; |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index f5851db67f5b..82151207d814 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -308,6 +308,7 @@ static struct ftdi_sio_quirk ftdi_HE_TIRA1_quirk = { | |||
308 | 308 | ||
309 | static struct usb_device_id id_table_combined [] = { | 309 | static struct usb_device_id id_table_combined [] = { |
310 | { USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) }, | 310 | { USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) }, |
311 | { USB_DEVICE(FTDI_VID, FTDI_IPLUS_PID) }, | ||
311 | { USB_DEVICE(FTDI_VID, FTDI_SIO_PID) }, | 312 | { USB_DEVICE(FTDI_VID, FTDI_SIO_PID) }, |
312 | { USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) }, | 313 | { USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) }, |
313 | { USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) }, | 314 | { USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) }, |
@@ -493,6 +494,8 @@ static struct usb_device_id id_table_combined [] = { | |||
493 | { USB_DEVICE(FTDI_VID, FTDI_WESTREX_MODEL_777_PID) }, | 494 | { USB_DEVICE(FTDI_VID, FTDI_WESTREX_MODEL_777_PID) }, |
494 | { USB_DEVICE(FTDI_VID, FTDI_WESTREX_MODEL_8900F_PID) }, | 495 | { USB_DEVICE(FTDI_VID, FTDI_WESTREX_MODEL_8900F_PID) }, |
495 | { USB_DEVICE(FTDI_VID, FTDI_PCDJ_DAC2_PID) }, | 496 | { USB_DEVICE(FTDI_VID, FTDI_PCDJ_DAC2_PID) }, |
497 | { USB_DEVICE(FTDI_VID, FTDI_RRCIRKITS_LOCOBUFFER_PID) }, | ||
498 | { USB_DEVICE(FTDI_VID, FTDI_ASK_RDR400_PID) }, | ||
496 | { USB_DEVICE(ICOM_ID1_VID, ICOM_ID1_PID) }, | 499 | { USB_DEVICE(ICOM_ID1_VID, ICOM_ID1_PID) }, |
497 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) }, | 500 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) }, |
498 | { }, /* Optional parameter entry */ | 501 | { }, /* Optional parameter entry */ |
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h index 2155f0e4a378..2c55a5ea9c99 100644 --- a/drivers/usb/serial/ftdi_sio.h +++ b/drivers/usb/serial/ftdi_sio.h | |||
@@ -39,6 +39,9 @@ | |||
39 | /* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ | 39 | /* www.thoughttechnology.com/ TT-USB provide with procomp use ftdi_sio */ |
40 | #define FTDI_TTUSB_PID 0xFF20 /* Product Id */ | 40 | #define FTDI_TTUSB_PID 0xFF20 /* Product Id */ |
41 | 41 | ||
42 | /* iPlus device */ | ||
43 | #define FTDI_IPLUS_PID 0xD070 /* Product Id */ | ||
44 | |||
42 | /* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ | 45 | /* www.crystalfontz.com devices - thanx for providing free devices for evaluation ! */ |
43 | /* they use the ftdi chipset for the USB interface and the vendor id is the same */ | 46 | /* they use the ftdi chipset for the USB interface and the vendor id is the same */ |
44 | #define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ | 47 | #define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */ |
@@ -153,6 +156,11 @@ | |||
153 | #define ICOM_ID1_PID 0x0004 | 156 | #define ICOM_ID1_PID 0x0004 |
154 | 157 | ||
155 | /* | 158 | /* |
159 | * ASK.fr devices | ||
160 | */ | ||
161 | #define FTDI_ASK_RDR400_PID 0xC991 /* ASK RDR 400 series card reader */ | ||
162 | |||
163 | /* | ||
156 | * DSS-20 Sync Station for Sony Ericsson P800 | 164 | * DSS-20 Sync Station for Sony Ericsson P800 |
157 | */ | 165 | */ |
158 | 166 | ||
@@ -400,6 +408,11 @@ | |||
400 | #define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ | 408 | #define FTDI_WESTREX_MODEL_8900F_PID 0xDC01 /* Model 8900F */ |
401 | 409 | ||
402 | /* | 410 | /* |
411 | * RR-CirKits LocoBuffer USB (http://www.rr-cirkits.com) | ||
412 | */ | ||
413 | #define FTDI_RRCIRKITS_LOCOBUFFER_PID 0xc7d0 /* LocoBuffer USB */ | ||
414 | |||
415 | /* | ||
403 | * Eclo (http://www.eclo.pt/) product IDs. | 416 | * Eclo (http://www.eclo.pt/) product IDs. |
404 | * PID 0xEA90 submitted by Martin Grill. | 417 | * PID 0xEA90 submitted by Martin Grill. |
405 | */ | 418 | */ |
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index ccf746b27d4e..c96714bb1cb8 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c | |||
@@ -61,6 +61,7 @@ static struct usb_device_id id_table [] = { | |||
61 | { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) }, | 61 | { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID) }, |
62 | { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID_UCSGT) }, | 62 | { USB_DEVICE(ELCOM_VENDOR_ID, ELCOM_PRODUCT_ID_UCSGT) }, |
63 | { USB_DEVICE(ITEGNO_VENDOR_ID, ITEGNO_PRODUCT_ID) }, | 63 | { USB_DEVICE(ITEGNO_VENDOR_ID, ITEGNO_PRODUCT_ID) }, |
64 | { USB_DEVICE(ITEGNO_VENDOR_ID, ITEGNO_PRODUCT_ID_2080) }, | ||
64 | { USB_DEVICE(MA620_VENDOR_ID, MA620_PRODUCT_ID) }, | 65 | { USB_DEVICE(MA620_VENDOR_ID, MA620_PRODUCT_ID) }, |
65 | { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID) }, | 66 | { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID) }, |
66 | { USB_DEVICE(TRIPP_VENDOR_ID, TRIPP_PRODUCT_ID) }, | 67 | { USB_DEVICE(TRIPP_VENDOR_ID, TRIPP_PRODUCT_ID) }, |
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h index 09f379b19e98..7f29e81d3e35 100644 --- a/drivers/usb/serial/pl2303.h +++ b/drivers/usb/serial/pl2303.h | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | #define ITEGNO_VENDOR_ID 0x0eba | 27 | #define ITEGNO_VENDOR_ID 0x0eba |
28 | #define ITEGNO_PRODUCT_ID 0x1080 | 28 | #define ITEGNO_PRODUCT_ID 0x1080 |
29 | #define ITEGNO_PRODUCT_ID_2080 0x2080 | ||
29 | 30 | ||
30 | #define MA620_VENDOR_ID 0x0df7 | 31 | #define MA620_VENDOR_ID 0x0df7 |
31 | #define MA620_PRODUCT_ID 0x0620 | 32 | #define MA620_PRODUCT_ID 0x0620 |
diff --git a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c index 557411c6e7c7..f806553cd9a4 100644 --- a/drivers/usb/serial/whiteheat.c +++ b/drivers/usb/serial/whiteheat.c | |||
@@ -508,6 +508,7 @@ no_firmware: | |||
508 | err("%s: Unable to retrieve firmware version, try replugging\n", serial->type->description); | 508 | err("%s: Unable to retrieve firmware version, try replugging\n", serial->type->description); |
509 | err("%s: If the firmware is not running (status led not blinking)\n", serial->type->description); | 509 | err("%s: If the firmware is not running (status led not blinking)\n", serial->type->description); |
510 | err("%s: please contact support@connecttech.com\n", serial->type->description); | 510 | err("%s: please contact support@connecttech.com\n", serial->type->description); |
511 | kfree(result); | ||
511 | return -ENODEV; | 512 | return -ENODEV; |
512 | 513 | ||
513 | no_command_private: | 514 | no_command_private: |
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index c4a9dcff5f2b..aec5ea8682d5 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h | |||
@@ -411,7 +411,7 @@ UNUSUAL_DEV( 0x050d, 0x0115, 0x0133, 0x0133, | |||
411 | UNUSUAL_DEV( 0x0525, 0xa140, 0x0100, 0x0100, | 411 | UNUSUAL_DEV( 0x0525, 0xa140, 0x0100, 0x0100, |
412 | "Iomega", | 412 | "Iomega", |
413 | "USB Clik! 40", | 413 | "USB Clik! 40", |
414 | US_SC_8070, US_PR_BULK, NULL, | 414 | US_SC_8070, US_PR_DEVICE, NULL, |
415 | US_FL_FIX_INQUIRY ), | 415 | US_FL_FIX_INQUIRY ), |
416 | 416 | ||
417 | /* Yakumo Mega Image 37 | 417 | /* Yakumo Mega Image 37 |
@@ -773,6 +773,13 @@ UNUSUAL_DEV( 0x069b, 0x3004, 0x0001, 0x0001, | |||
773 | US_SC_DEVICE, US_PR_DEVICE, NULL, | 773 | US_SC_DEVICE, US_PR_DEVICE, NULL, |
774 | US_FL_FIX_CAPACITY ), | 774 | US_FL_FIX_CAPACITY ), |
775 | 775 | ||
776 | /* Reported by Olivier Blondeau <zeitoun@gmail.com> */ | ||
777 | UNUSUAL_DEV( 0x0727, 0x0306, 0x0100, 0x0100, | ||
778 | "ATMEL", | ||
779 | "SND1 Storage", | ||
780 | US_SC_DEVICE, US_PR_DEVICE, NULL, | ||
781 | US_FL_IGNORE_RESIDUE), | ||
782 | |||
776 | /* Submitted by Roman Hodek <roman@hodek.net> */ | 783 | /* Submitted by Roman Hodek <roman@hodek.net> */ |
777 | UNUSUAL_DEV( 0x0781, 0x0001, 0x0200, 0x0200, | 784 | UNUSUAL_DEV( 0x0781, 0x0001, 0x0200, 0x0200, |
778 | "Sandisk", | 785 | "Sandisk", |
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 9060e7137441..4587087d777a 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -400,6 +400,8 @@ config FB_ASILIANT | |||
400 | select FB_CFB_FILLRECT | 400 | select FB_CFB_FILLRECT |
401 | select FB_CFB_COPYAREA | 401 | select FB_CFB_COPYAREA |
402 | select FB_CFB_IMAGEBLIT | 402 | select FB_CFB_IMAGEBLIT |
403 | help | ||
404 | This is the frame buffer device driver for the Asiliant 69030 chipset | ||
403 | 405 | ||
404 | config FB_IMSTT | 406 | config FB_IMSTT |
405 | bool "IMS Twin Turbo display support" | 407 | bool "IMS Twin Turbo display support" |
diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c index b367de30b98c..600d3e0e08b7 100644 --- a/drivers/video/au1200fb.c +++ b/drivers/video/au1200fb.c | |||
@@ -1920,1925 +1920,3 @@ module_exit(au1200fb_cleanup); | |||
1920 | 1920 | ||
1921 | MODULE_DESCRIPTION(DRIVER_DESC); | 1921 | MODULE_DESCRIPTION(DRIVER_DESC); |
1922 | MODULE_LICENSE("GPL"); | 1922 | MODULE_LICENSE("GPL"); |
1923 | /* | ||
1924 | * BRIEF MODULE DESCRIPTION | ||
1925 | * Au1200 LCD Driver. | ||
1926 | * | ||
1927 | * Copyright 2004-2005 AMD | ||
1928 | * Author: AMD | ||
1929 | * | ||
1930 | * Based on: | ||
1931 | * linux/drivers/video/skeletonfb.c -- Skeleton for a frame buffer device | ||
1932 | * Created 28 Dec 1997 by Geert Uytterhoeven | ||
1933 | * | ||
1934 | * This program is free software; you can redistribute it and/or modify it | ||
1935 | * under the terms of the GNU General Public License as published by the | ||
1936 | * Free Software Foundation; either version 2 of the License, or (at your | ||
1937 | * option) any later version. | ||
1938 | * | ||
1939 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
1940 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
1941 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
1942 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
1943 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
1944 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
1945 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
1946 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
1947 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
1948 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
1949 | * | ||
1950 | * You should have received a copy of the GNU General Public License along | ||
1951 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
1952 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
1953 | */ | ||
1954 | |||
1955 | #include <linux/module.h> | ||
1956 | #include <linux/platform_device.h> | ||
1957 | #include <linux/kernel.h> | ||
1958 | #include <linux/errno.h> | ||
1959 | #include <linux/string.h> | ||
1960 | #include <linux/mm.h> | ||
1961 | #include <linux/fb.h> | ||
1962 | #include <linux/init.h> | ||
1963 | #include <linux/interrupt.h> | ||
1964 | #include <linux/ctype.h> | ||
1965 | #include <linux/dma-mapping.h> | ||
1966 | |||
1967 | #include <asm/mach-au1x00/au1000.h> | ||
1968 | #include "au1200fb.h" | ||
1969 | |||
1970 | #ifdef CONFIG_PM | ||
1971 | #include <asm/mach-au1x00/au1xxx_pm.h> | ||
1972 | #endif | ||
1973 | |||
1974 | #ifndef CONFIG_FB_AU1200_DEVS | ||
1975 | #define CONFIG_FB_AU1200_DEVS 4 | ||
1976 | #endif | ||
1977 | |||
1978 | #define DRIVER_NAME "au1200fb" | ||
1979 | #define DRIVER_DESC "LCD controller driver for AU1200 processors" | ||
1980 | |||
1981 | #define DEBUG 1 | ||
1982 | |||
1983 | #define print_err(f, arg...) printk(KERN_ERR DRIVER_NAME ": " f "\n", ## arg) | ||
1984 | #define print_warn(f, arg...) printk(KERN_WARNING DRIVER_NAME ": " f "\n", ## arg) | ||
1985 | #define print_info(f, arg...) printk(KERN_INFO DRIVER_NAME ": " f "\n", ## arg) | ||
1986 | |||
1987 | #if DEBUG | ||
1988 | #define print_dbg(f, arg...) printk(KERN_DEBUG __FILE__ ": " f "\n", ## arg) | ||
1989 | #else | ||
1990 | #define print_dbg(f, arg...) do {} while (0) | ||
1991 | #endif | ||
1992 | |||
1993 | |||
1994 | #define AU1200_LCD_FB_IOCTL 0x46FF | ||
1995 | |||
1996 | #define AU1200_LCD_SET_SCREEN 1 | ||
1997 | #define AU1200_LCD_GET_SCREEN 2 | ||
1998 | #define AU1200_LCD_SET_WINDOW 3 | ||
1999 | #define AU1200_LCD_GET_WINDOW 4 | ||
2000 | #define AU1200_LCD_SET_PANEL 5 | ||
2001 | #define AU1200_LCD_GET_PANEL 6 | ||
2002 | |||
2003 | #define SCREEN_SIZE (1<< 1) | ||
2004 | #define SCREEN_BACKCOLOR (1<< 2) | ||
2005 | #define SCREEN_BRIGHTNESS (1<< 3) | ||
2006 | #define SCREEN_COLORKEY (1<< 4) | ||
2007 | #define SCREEN_MASK (1<< 5) | ||
2008 | |||
2009 | struct au1200_lcd_global_regs_t { | ||
2010 | unsigned int flags; | ||
2011 | unsigned int xsize; | ||
2012 | unsigned int ysize; | ||
2013 | unsigned int backcolor; | ||
2014 | unsigned int brightness; | ||
2015 | unsigned int colorkey; | ||
2016 | unsigned int mask; | ||
2017 | unsigned int panel_choice; | ||
2018 | char panel_desc[80]; | ||
2019 | |||
2020 | }; | ||
2021 | |||
2022 | #define WIN_POSITION (1<< 0) | ||
2023 | #define WIN_ALPHA_COLOR (1<< 1) | ||
2024 | #define WIN_ALPHA_MODE (1<< 2) | ||
2025 | #define WIN_PRIORITY (1<< 3) | ||
2026 | #define WIN_CHANNEL (1<< 4) | ||
2027 | #define WIN_BUFFER_FORMAT (1<< 5) | ||
2028 | #define WIN_COLOR_ORDER (1<< 6) | ||
2029 | #define WIN_PIXEL_ORDER (1<< 7) | ||
2030 | #define WIN_SIZE (1<< 8) | ||
2031 | #define WIN_COLORKEY_MODE (1<< 9) | ||
2032 | #define WIN_DOUBLE_BUFFER_MODE (1<< 10) | ||
2033 | #define WIN_RAM_ARRAY_MODE (1<< 11) | ||
2034 | #define WIN_BUFFER_SCALE (1<< 12) | ||
2035 | #define WIN_ENABLE (1<< 13) | ||
2036 | |||
2037 | struct au1200_lcd_window_regs_t { | ||
2038 | unsigned int flags; | ||
2039 | unsigned int xpos; | ||
2040 | unsigned int ypos; | ||
2041 | unsigned int alpha_color; | ||
2042 | unsigned int alpha_mode; | ||
2043 | unsigned int priority; | ||
2044 | unsigned int channel; | ||
2045 | unsigned int buffer_format; | ||
2046 | unsigned int color_order; | ||
2047 | unsigned int pixel_order; | ||
2048 | unsigned int xsize; | ||
2049 | unsigned int ysize; | ||
2050 | unsigned int colorkey_mode; | ||
2051 | unsigned int double_buffer_mode; | ||
2052 | unsigned int ram_array_mode; | ||
2053 | unsigned int xscale; | ||
2054 | unsigned int yscale; | ||
2055 | unsigned int enable; | ||
2056 | }; | ||
2057 | |||
2058 | |||
2059 | struct au1200_lcd_iodata_t { | ||
2060 | unsigned int subcmd; | ||
2061 | struct au1200_lcd_global_regs_t global; | ||
2062 | struct au1200_lcd_window_regs_t window; | ||
2063 | }; | ||
2064 | |||
2065 | #if defined(__BIG_ENDIAN) | ||
2066 | #define LCD_CONTROL_DEFAULT_PO LCD_CONTROL_PO_11 | ||
2067 | #else | ||
2068 | #define LCD_CONTROL_DEFAULT_PO LCD_CONTROL_PO_00 | ||
2069 | #endif | ||
2070 | #define LCD_CONTROL_DEFAULT_SBPPF LCD_CONTROL_SBPPF_565 | ||
2071 | |||
2072 | /* Private, per-framebuffer management information (independent of the panel itself) */ | ||
2073 | struct au1200fb_device { | ||
2074 | struct fb_info fb_info; /* FB driver info record */ | ||
2075 | |||
2076 | int plane; | ||
2077 | unsigned char* fb_mem; /* FrameBuffer memory map */ | ||
2078 | unsigned int fb_len; | ||
2079 | dma_addr_t fb_phys; | ||
2080 | }; | ||
2081 | |||
2082 | static struct au1200fb_device _au1200fb_devices[CONFIG_FB_AU1200_DEVS]; | ||
2083 | /********************************************************************/ | ||
2084 | |||
2085 | /* LCD controller restrictions */ | ||
2086 | #define AU1200_LCD_MAX_XRES 1280 | ||
2087 | #define AU1200_LCD_MAX_YRES 1024 | ||
2088 | #define AU1200_LCD_MAX_BPP 32 | ||
2089 | #define AU1200_LCD_MAX_CLK 96000000 /* fixme: this needs to go away ? */ | ||
2090 | #define AU1200_LCD_NBR_PALETTE_ENTRIES 256 | ||
2091 | |||
2092 | /* Default number of visible screen buffer to allocate */ | ||
2093 | #define AU1200FB_NBR_VIDEO_BUFFERS 1 | ||
2094 | |||
2095 | /********************************************************************/ | ||
2096 | |||
2097 | static struct au1200_lcd *lcd = (struct au1200_lcd *) AU1200_LCD_ADDR; | ||
2098 | static int window_index = 2; /* default is zero */ | ||
2099 | static int panel_index = 2; /* default is zero */ | ||
2100 | static struct window_settings *win; | ||
2101 | static struct panel_settings *panel; | ||
2102 | static int noblanking = 1; | ||
2103 | static int nohwcursor = 0; | ||
2104 | |||
2105 | struct window_settings { | ||
2106 | unsigned char name[64]; | ||
2107 | uint32 mode_backcolor; | ||
2108 | uint32 mode_colorkey; | ||
2109 | uint32 mode_colorkeymsk; | ||
2110 | struct { | ||
2111 | int xres; | ||
2112 | int yres; | ||
2113 | int xpos; | ||
2114 | int ypos; | ||
2115 | uint32 mode_winctrl1; /* winctrl1[FRM,CCO,PO,PIPE] */ | ||
2116 | uint32 mode_winenable; | ||
2117 | } w[4]; | ||
2118 | }; | ||
2119 | |||
2120 | #if defined(__BIG_ENDIAN) | ||
2121 | #define LCD_WINCTRL1_PO_16BPP LCD_WINCTRL1_PO_00 | ||
2122 | #else | ||
2123 | #define LCD_WINCTRL1_PO_16BPP LCD_WINCTRL1_PO_01 | ||
2124 | #endif | ||
2125 | |||
2126 | extern int board_au1200fb_panel_init (void); | ||
2127 | extern int board_au1200fb_panel_shutdown (void); | ||
2128 | |||
2129 | #ifdef CONFIG_PM | ||
2130 | int au1200fb_pm_callback(au1xxx_power_dev_t *dev, | ||
2131 | au1xxx_request_t request, void *data); | ||
2132 | au1xxx_power_dev_t *LCD_pm_dev; | ||
2133 | #endif | ||
2134 | |||
2135 | /* | ||
2136 | * Default window configurations | ||
2137 | */ | ||
2138 | static struct window_settings windows[] = { | ||
2139 | { /* Index 0 */ | ||
2140 | "0-FS gfx, 1-video, 2-ovly gfx, 3-ovly gfx", | ||
2141 | /* mode_backcolor */ 0x006600ff, | ||
2142 | /* mode_colorkey,msk*/ 0, 0, | ||
2143 | { | ||
2144 | { | ||
2145 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2146 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2147 | LCD_WINCTRL1_PO_16BPP, | ||
2148 | /* mode_winenable*/ LCD_WINENABLE_WEN0, | ||
2149 | }, | ||
2150 | { | ||
2151 | /* xres, yres, xpos, ypos */ 100, 100, 100, 100, | ||
2152 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2153 | LCD_WINCTRL1_PO_16BPP | | ||
2154 | LCD_WINCTRL1_PIPE, | ||
2155 | /* mode_winenable*/ LCD_WINENABLE_WEN1, | ||
2156 | }, | ||
2157 | { | ||
2158 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2159 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2160 | LCD_WINCTRL1_PO_16BPP, | ||
2161 | /* mode_winenable*/ 0, | ||
2162 | }, | ||
2163 | { | ||
2164 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2165 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2166 | LCD_WINCTRL1_PO_16BPP | | ||
2167 | LCD_WINCTRL1_PIPE, | ||
2168 | /* mode_winenable*/ 0, | ||
2169 | }, | ||
2170 | }, | ||
2171 | }, | ||
2172 | |||
2173 | { /* Index 1 */ | ||
2174 | "0-FS gfx, 1-video, 2-ovly gfx, 3-ovly gfx", | ||
2175 | /* mode_backcolor */ 0x006600ff, | ||
2176 | /* mode_colorkey,msk*/ 0, 0, | ||
2177 | { | ||
2178 | { | ||
2179 | /* xres, yres, xpos, ypos */ 320, 240, 5, 5, | ||
2180 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_24BPP | | ||
2181 | LCD_WINCTRL1_PO_00, | ||
2182 | /* mode_winenable*/ LCD_WINENABLE_WEN0, | ||
2183 | }, | ||
2184 | { | ||
2185 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2186 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | ||
2187 | | LCD_WINCTRL1_PO_16BPP, | ||
2188 | /* mode_winenable*/ 0, | ||
2189 | }, | ||
2190 | { | ||
2191 | /* xres, yres, xpos, ypos */ 100, 100, 0, 0, | ||
2192 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2193 | LCD_WINCTRL1_PO_16BPP | | ||
2194 | LCD_WINCTRL1_PIPE, | ||
2195 | /* mode_winenable*/ 0/*LCD_WINENABLE_WEN2*/, | ||
2196 | }, | ||
2197 | { | ||
2198 | /* xres, yres, xpos, ypos */ 200, 25, 0, 0, | ||
2199 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2200 | LCD_WINCTRL1_PO_16BPP | | ||
2201 | LCD_WINCTRL1_PIPE, | ||
2202 | /* mode_winenable*/ 0, | ||
2203 | }, | ||
2204 | }, | ||
2205 | }, | ||
2206 | { /* Index 2 */ | ||
2207 | "0-FS gfx, 1-video, 2-ovly gfx, 3-ovly gfx", | ||
2208 | /* mode_backcolor */ 0x006600ff, | ||
2209 | /* mode_colorkey,msk*/ 0, 0, | ||
2210 | { | ||
2211 | { | ||
2212 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2213 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2214 | LCD_WINCTRL1_PO_16BPP, | ||
2215 | /* mode_winenable*/ LCD_WINENABLE_WEN0, | ||
2216 | }, | ||
2217 | { | ||
2218 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2219 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2220 | LCD_WINCTRL1_PO_16BPP, | ||
2221 | /* mode_winenable*/ 0, | ||
2222 | }, | ||
2223 | { | ||
2224 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2225 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_32BPP | | ||
2226 | LCD_WINCTRL1_PO_00|LCD_WINCTRL1_PIPE, | ||
2227 | /* mode_winenable*/ 0/*LCD_WINENABLE_WEN2*/, | ||
2228 | }, | ||
2229 | { | ||
2230 | /* xres, yres, xpos, ypos */ 0, 0, 0, 0, | ||
2231 | /* mode_winctrl1 */ LCD_WINCTRL1_FRM_16BPP565 | | ||
2232 | LCD_WINCTRL1_PO_16BPP | | ||
2233 | LCD_WINCTRL1_PIPE, | ||
2234 | /* mode_winenable*/ 0, | ||
2235 | }, | ||
2236 | }, | ||
2237 | }, | ||
2238 | /* Need VGA 640 @ 24bpp, @ 32bpp */ | ||
2239 | /* Need VGA 800 @ 24bpp, @ 32bpp */ | ||
2240 | /* Need VGA 1024 @ 24bpp, @ 32bpp */ | ||
2241 | }; | ||
2242 | |||
2243 | /* | ||
2244 | * Controller configurations for various panels. | ||
2245 | */ | ||
2246 | |||
2247 | struct panel_settings | ||
2248 | { | ||
2249 | const char name[25]; /* Full name <vendor>_<model> */ | ||
2250 | |||
2251 | struct fb_monspecs monspecs; /* FB monitor specs */ | ||
2252 | |||
2253 | /* panel timings */ | ||
2254 | uint32 mode_screen; | ||
2255 | uint32 mode_horztiming; | ||
2256 | uint32 mode_verttiming; | ||
2257 | uint32 mode_clkcontrol; | ||
2258 | uint32 mode_pwmdiv; | ||
2259 | uint32 mode_pwmhi; | ||
2260 | uint32 mode_outmask; | ||
2261 | uint32 mode_fifoctrl; | ||
2262 | uint32 mode_toyclksrc; | ||
2263 | uint32 mode_backlight; | ||
2264 | uint32 mode_auxpll; | ||
2265 | int (*device_init)(void); | ||
2266 | int (*device_shutdown)(void); | ||
2267 | #define Xres min_xres | ||
2268 | #define Yres min_yres | ||
2269 | u32 min_xres; /* Minimum horizontal resolution */ | ||
2270 | u32 max_xres; /* Maximum horizontal resolution */ | ||
2271 | u32 min_yres; /* Minimum vertical resolution */ | ||
2272 | u32 max_yres; /* Maximum vertical resolution */ | ||
2273 | }; | ||
2274 | |||
2275 | /********************************************************************/ | ||
2276 | /* fixme: Maybe a modedb for the CRT ? otherwise panels should be as-is */ | ||
2277 | |||
2278 | /* List of panels known to work with the AU1200 LCD controller. | ||
2279 | * To add a new panel, enter the same specifications as the | ||
2280 | * Generic_TFT one, and MAKE SURE that it doesn't conflicts | ||
2281 | * with the controller restrictions. Restrictions are: | ||
2282 | * | ||
2283 | * STN color panels: max_bpp <= 12 | ||
2284 | * STN mono panels: max_bpp <= 4 | ||
2285 | * TFT panels: max_bpp <= 16 | ||
2286 | * max_xres <= 800 | ||
2287 | * max_yres <= 600 | ||
2288 | */ | ||
2289 | static struct panel_settings known_lcd_panels[] = | ||
2290 | { | ||
2291 | [0] = { /* QVGA 320x240 H:33.3kHz V:110Hz */ | ||
2292 | .name = "QVGA_320x240", | ||
2293 | .monspecs = { | ||
2294 | .modedb = NULL, | ||
2295 | .modedb_len = 0, | ||
2296 | .hfmin = 30000, | ||
2297 | .hfmax = 70000, | ||
2298 | .vfmin = 60, | ||
2299 | .vfmax = 60, | ||
2300 | .dclkmin = 6000000, | ||
2301 | .dclkmax = 28000000, | ||
2302 | .input = FB_DISP_RGB, | ||
2303 | }, | ||
2304 | .mode_screen = LCD_SCREEN_SX_N(320) | | ||
2305 | LCD_SCREEN_SY_N(240), | ||
2306 | .mode_horztiming = 0x00c4623b, | ||
2307 | .mode_verttiming = 0x00502814, | ||
2308 | .mode_clkcontrol = 0x00020002, /* /4=24Mhz */ | ||
2309 | .mode_pwmdiv = 0x00000000, | ||
2310 | .mode_pwmhi = 0x00000000, | ||
2311 | .mode_outmask = 0x00FFFFFF, | ||
2312 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2313 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2314 | .mode_backlight = 0x00000000, | ||
2315 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2316 | .device_init = NULL, | ||
2317 | .device_shutdown = NULL, | ||
2318 | 320, 320, | ||
2319 | 240, 240, | ||
2320 | }, | ||
2321 | |||
2322 | [1] = { /* VGA 640x480 H:30.3kHz V:58Hz */ | ||
2323 | .name = "VGA_640x480", | ||
2324 | .monspecs = { | ||
2325 | .modedb = NULL, | ||
2326 | .modedb_len = 0, | ||
2327 | .hfmin = 30000, | ||
2328 | .hfmax = 70000, | ||
2329 | .vfmin = 60, | ||
2330 | .vfmax = 60, | ||
2331 | .dclkmin = 6000000, | ||
2332 | .dclkmax = 28000000, | ||
2333 | .input = FB_DISP_RGB, | ||
2334 | }, | ||
2335 | .mode_screen = 0x13f9df80, | ||
2336 | .mode_horztiming = 0x003c5859, | ||
2337 | .mode_verttiming = 0x00741201, | ||
2338 | .mode_clkcontrol = 0x00020001, /* /4=24Mhz */ | ||
2339 | .mode_pwmdiv = 0x00000000, | ||
2340 | .mode_pwmhi = 0x00000000, | ||
2341 | .mode_outmask = 0x00FFFFFF, | ||
2342 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2343 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2344 | .mode_backlight = 0x00000000, | ||
2345 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2346 | .device_init = NULL, | ||
2347 | .device_shutdown = NULL, | ||
2348 | 640, 480, | ||
2349 | 640, 480, | ||
2350 | }, | ||
2351 | |||
2352 | [2] = { /* SVGA 800x600 H:46.1kHz V:69Hz */ | ||
2353 | .name = "SVGA_800x600", | ||
2354 | .monspecs = { | ||
2355 | .modedb = NULL, | ||
2356 | .modedb_len = 0, | ||
2357 | .hfmin = 30000, | ||
2358 | .hfmax = 70000, | ||
2359 | .vfmin = 60, | ||
2360 | .vfmax = 60, | ||
2361 | .dclkmin = 6000000, | ||
2362 | .dclkmax = 28000000, | ||
2363 | .input = FB_DISP_RGB, | ||
2364 | }, | ||
2365 | .mode_screen = 0x18fa5780, | ||
2366 | .mode_horztiming = 0x00dc7e77, | ||
2367 | .mode_verttiming = 0x00584805, | ||
2368 | .mode_clkcontrol = 0x00020000, /* /2=48Mhz */ | ||
2369 | .mode_pwmdiv = 0x00000000, | ||
2370 | .mode_pwmhi = 0x00000000, | ||
2371 | .mode_outmask = 0x00FFFFFF, | ||
2372 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2373 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2374 | .mode_backlight = 0x00000000, | ||
2375 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2376 | .device_init = NULL, | ||
2377 | .device_shutdown = NULL, | ||
2378 | 800, 800, | ||
2379 | 600, 600, | ||
2380 | }, | ||
2381 | |||
2382 | [3] = { /* XVGA 1024x768 H:56.2kHz V:70Hz */ | ||
2383 | .name = "XVGA_1024x768", | ||
2384 | .monspecs = { | ||
2385 | .modedb = NULL, | ||
2386 | .modedb_len = 0, | ||
2387 | .hfmin = 30000, | ||
2388 | .hfmax = 70000, | ||
2389 | .vfmin = 60, | ||
2390 | .vfmax = 60, | ||
2391 | .dclkmin = 6000000, | ||
2392 | .dclkmax = 28000000, | ||
2393 | .input = FB_DISP_RGB, | ||
2394 | }, | ||
2395 | .mode_screen = 0x1ffaff80, | ||
2396 | .mode_horztiming = 0x007d0e57, | ||
2397 | .mode_verttiming = 0x00740a01, | ||
2398 | .mode_clkcontrol = 0x000A0000, /* /1 */ | ||
2399 | .mode_pwmdiv = 0x00000000, | ||
2400 | .mode_pwmhi = 0x00000000, | ||
2401 | .mode_outmask = 0x00FFFFFF, | ||
2402 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2403 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2404 | .mode_backlight = 0x00000000, | ||
2405 | .mode_auxpll = 6, /* 72MHz AUXPLL */ | ||
2406 | .device_init = NULL, | ||
2407 | .device_shutdown = NULL, | ||
2408 | 1024, 1024, | ||
2409 | 768, 768, | ||
2410 | }, | ||
2411 | |||
2412 | [4] = { /* XVGA XVGA 1280x1024 H:68.5kHz V:65Hz */ | ||
2413 | .name = "XVGA_1280x1024", | ||
2414 | .monspecs = { | ||
2415 | .modedb = NULL, | ||
2416 | .modedb_len = 0, | ||
2417 | .hfmin = 30000, | ||
2418 | .hfmax = 70000, | ||
2419 | .vfmin = 60, | ||
2420 | .vfmax = 60, | ||
2421 | .dclkmin = 6000000, | ||
2422 | .dclkmax = 28000000, | ||
2423 | .input = FB_DISP_RGB, | ||
2424 | }, | ||
2425 | .mode_screen = 0x27fbff80, | ||
2426 | .mode_horztiming = 0x00cdb2c7, | ||
2427 | .mode_verttiming = 0x00600002, | ||
2428 | .mode_clkcontrol = 0x000A0000, /* /1 */ | ||
2429 | .mode_pwmdiv = 0x00000000, | ||
2430 | .mode_pwmhi = 0x00000000, | ||
2431 | .mode_outmask = 0x00FFFFFF, | ||
2432 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2433 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2434 | .mode_backlight = 0x00000000, | ||
2435 | .mode_auxpll = 10, /* 120MHz AUXPLL */ | ||
2436 | .device_init = NULL, | ||
2437 | .device_shutdown = NULL, | ||
2438 | 1280, 1280, | ||
2439 | 1024, 1024, | ||
2440 | }, | ||
2441 | |||
2442 | [5] = { /* Samsung 1024x768 TFT */ | ||
2443 | .name = "Samsung_1024x768_TFT", | ||
2444 | .monspecs = { | ||
2445 | .modedb = NULL, | ||
2446 | .modedb_len = 0, | ||
2447 | .hfmin = 30000, | ||
2448 | .hfmax = 70000, | ||
2449 | .vfmin = 60, | ||
2450 | .vfmax = 60, | ||
2451 | .dclkmin = 6000000, | ||
2452 | .dclkmax = 28000000, | ||
2453 | .input = FB_DISP_RGB, | ||
2454 | }, | ||
2455 | .mode_screen = 0x1ffaff80, | ||
2456 | .mode_horztiming = 0x018cc677, | ||
2457 | .mode_verttiming = 0x00241217, | ||
2458 | .mode_clkcontrol = 0x00000000, /* SCB 0x1 /4=24Mhz */ | ||
2459 | .mode_pwmdiv = 0x8000063f, /* SCB 0x0 */ | ||
2460 | .mode_pwmhi = 0x03400000, /* SCB 0x0 */ | ||
2461 | .mode_outmask = 0x00FFFFFF, | ||
2462 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2463 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2464 | .mode_backlight = 0x00000000, | ||
2465 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2466 | .device_init = board_au1200fb_panel_init, | ||
2467 | .device_shutdown = board_au1200fb_panel_shutdown, | ||
2468 | 1024, 1024, | ||
2469 | 768, 768, | ||
2470 | }, | ||
2471 | |||
2472 | [6] = { /* Toshiba 640x480 TFT */ | ||
2473 | .name = "Toshiba_640x480_TFT", | ||
2474 | .monspecs = { | ||
2475 | .modedb = NULL, | ||
2476 | .modedb_len = 0, | ||
2477 | .hfmin = 30000, | ||
2478 | .hfmax = 70000, | ||
2479 | .vfmin = 60, | ||
2480 | .vfmax = 60, | ||
2481 | .dclkmin = 6000000, | ||
2482 | .dclkmax = 28000000, | ||
2483 | .input = FB_DISP_RGB, | ||
2484 | }, | ||
2485 | .mode_screen = LCD_SCREEN_SX_N(640) | | ||
2486 | LCD_SCREEN_SY_N(480), | ||
2487 | .mode_horztiming = LCD_HORZTIMING_HPW_N(96) | | ||
2488 | LCD_HORZTIMING_HND1_N(13) | LCD_HORZTIMING_HND2_N(51), | ||
2489 | .mode_verttiming = LCD_VERTTIMING_VPW_N(2) | | ||
2490 | LCD_VERTTIMING_VND1_N(11) | LCD_VERTTIMING_VND2_N(32), | ||
2491 | .mode_clkcontrol = 0x00000000, /* /4=24Mhz */ | ||
2492 | .mode_pwmdiv = 0x8000063f, | ||
2493 | .mode_pwmhi = 0x03400000, | ||
2494 | .mode_outmask = 0x00fcfcfc, | ||
2495 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2496 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2497 | .mode_backlight = 0x00000000, | ||
2498 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2499 | .device_init = board_au1200fb_panel_init, | ||
2500 | .device_shutdown = board_au1200fb_panel_shutdown, | ||
2501 | 640, 480, | ||
2502 | 640, 480, | ||
2503 | }, | ||
2504 | |||
2505 | [7] = { /* Sharp 320x240 TFT */ | ||
2506 | .name = "Sharp_320x240_TFT", | ||
2507 | .monspecs = { | ||
2508 | .modedb = NULL, | ||
2509 | .modedb_len = 0, | ||
2510 | .hfmin = 12500, | ||
2511 | .hfmax = 20000, | ||
2512 | .vfmin = 38, | ||
2513 | .vfmax = 81, | ||
2514 | .dclkmin = 4500000, | ||
2515 | .dclkmax = 6800000, | ||
2516 | .input = FB_DISP_RGB, | ||
2517 | }, | ||
2518 | .mode_screen = LCD_SCREEN_SX_N(320) | | ||
2519 | LCD_SCREEN_SY_N(240), | ||
2520 | .mode_horztiming = LCD_HORZTIMING_HPW_N(60) | | ||
2521 | LCD_HORZTIMING_HND1_N(13) | LCD_HORZTIMING_HND2_N(2), | ||
2522 | .mode_verttiming = LCD_VERTTIMING_VPW_N(2) | | ||
2523 | LCD_VERTTIMING_VND1_N(2) | LCD_VERTTIMING_VND2_N(5), | ||
2524 | .mode_clkcontrol = LCD_CLKCONTROL_PCD_N(7), /*16=6Mhz*/ | ||
2525 | .mode_pwmdiv = 0x8000063f, | ||
2526 | .mode_pwmhi = 0x03400000, | ||
2527 | .mode_outmask = 0x00fcfcfc, | ||
2528 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2529 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2530 | .mode_backlight = 0x00000000, | ||
2531 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2532 | .device_init = board_au1200fb_panel_init, | ||
2533 | .device_shutdown = board_au1200fb_panel_shutdown, | ||
2534 | 320, 320, | ||
2535 | 240, 240, | ||
2536 | }, | ||
2537 | |||
2538 | [8] = { /* Toppoly TD070WGCB2 7" 856x480 TFT */ | ||
2539 | .name = "Toppoly_TD070WGCB2", | ||
2540 | .monspecs = { | ||
2541 | .modedb = NULL, | ||
2542 | .modedb_len = 0, | ||
2543 | .hfmin = 30000, | ||
2544 | .hfmax = 70000, | ||
2545 | .vfmin = 60, | ||
2546 | .vfmax = 60, | ||
2547 | .dclkmin = 6000000, | ||
2548 | .dclkmax = 28000000, | ||
2549 | .input = FB_DISP_RGB, | ||
2550 | }, | ||
2551 | .mode_screen = LCD_SCREEN_SX_N(856) | | ||
2552 | LCD_SCREEN_SY_N(480), | ||
2553 | .mode_horztiming = LCD_HORZTIMING_HND2_N(43) | | ||
2554 | LCD_HORZTIMING_HND1_N(43) | LCD_HORZTIMING_HPW_N(114), | ||
2555 | .mode_verttiming = LCD_VERTTIMING_VND2_N(20) | | ||
2556 | LCD_VERTTIMING_VND1_N(21) | LCD_VERTTIMING_VPW_N(4), | ||
2557 | .mode_clkcontrol = 0x00020001, /* /4=24Mhz */ | ||
2558 | .mode_pwmdiv = 0x8000063f, | ||
2559 | .mode_pwmhi = 0x03400000, | ||
2560 | .mode_outmask = 0x00fcfcfc, | ||
2561 | .mode_fifoctrl = 0x2f2f2f2f, | ||
2562 | .mode_toyclksrc = 0x00000004, /* AUXPLL directly */ | ||
2563 | .mode_backlight = 0x00000000, | ||
2564 | .mode_auxpll = 8, /* 96MHz AUXPLL */ | ||
2565 | .device_init = board_au1200fb_panel_init, | ||
2566 | .device_shutdown = board_au1200fb_panel_shutdown, | ||
2567 | 856, 856, | ||
2568 | 480, 480, | ||
2569 | }, | ||
2570 | }; | ||
2571 | |||
2572 | #define NUM_PANELS (ARRAY_SIZE(known_lcd_panels)) | ||
2573 | |||
2574 | /********************************************************************/ | ||
2575 | |||
2576 | #ifdef CONFIG_PM | ||
2577 | static int set_brightness(unsigned int brightness) | ||
2578 | { | ||
2579 | unsigned int hi1, divider; | ||
2580 | |||
2581 | /* limit brightness pwm duty to >= 30/1600 */ | ||
2582 | if (brightness < 30) { | ||
2583 | brightness = 30; | ||
2584 | } | ||
2585 | divider = (lcd->pwmdiv & 0x3FFFF) + 1; | ||
2586 | hi1 = (lcd->pwmhi >> 16) + 1; | ||
2587 | hi1 = (((brightness & 0xFF) + 1) * divider >> 8); | ||
2588 | lcd->pwmhi &= 0xFFFF; | ||
2589 | lcd->pwmhi |= (hi1 << 16); | ||
2590 | |||
2591 | return brightness; | ||
2592 | } | ||
2593 | #endif /* CONFIG_PM */ | ||
2594 | |||
2595 | static int winbpp (unsigned int winctrl1) | ||
2596 | { | ||
2597 | int bits = 0; | ||
2598 | |||
2599 | /* how many bits are needed for each pixel format */ | ||
2600 | switch (winctrl1 & LCD_WINCTRL1_FRM) { | ||
2601 | case LCD_WINCTRL1_FRM_1BPP: | ||
2602 | bits = 1; | ||
2603 | break; | ||
2604 | case LCD_WINCTRL1_FRM_2BPP: | ||
2605 | bits = 2; | ||
2606 | break; | ||
2607 | case LCD_WINCTRL1_FRM_4BPP: | ||
2608 | bits = 4; | ||
2609 | break; | ||
2610 | case LCD_WINCTRL1_FRM_8BPP: | ||
2611 | bits = 8; | ||
2612 | break; | ||
2613 | case LCD_WINCTRL1_FRM_12BPP: | ||
2614 | case LCD_WINCTRL1_FRM_16BPP655: | ||
2615 | case LCD_WINCTRL1_FRM_16BPP565: | ||
2616 | case LCD_WINCTRL1_FRM_16BPP556: | ||
2617 | case LCD_WINCTRL1_FRM_16BPPI1555: | ||
2618 | case LCD_WINCTRL1_FRM_16BPPI5551: | ||
2619 | case LCD_WINCTRL1_FRM_16BPPA1555: | ||
2620 | case LCD_WINCTRL1_FRM_16BPPA5551: | ||
2621 | bits = 16; | ||
2622 | break; | ||
2623 | case LCD_WINCTRL1_FRM_24BPP: | ||
2624 | case LCD_WINCTRL1_FRM_32BPP: | ||
2625 | bits = 32; | ||
2626 | break; | ||
2627 | } | ||
2628 | |||
2629 | return bits; | ||
2630 | } | ||
2631 | |||
2632 | static int fbinfo2index (struct fb_info *fb_info) | ||
2633 | { | ||
2634 | int i; | ||
2635 | |||
2636 | for (i = 0; i < CONFIG_FB_AU1200_DEVS; ++i) { | ||
2637 | if (fb_info == (struct fb_info *)(&_au1200fb_devices[i].fb_info)) | ||
2638 | return i; | ||
2639 | } | ||
2640 | printk("au1200fb: ERROR: fbinfo2index failed!\n"); | ||
2641 | return -1; | ||
2642 | } | ||
2643 | |||
2644 | static int au1200_setlocation (struct au1200fb_device *fbdev, int plane, | ||
2645 | int xpos, int ypos) | ||
2646 | { | ||
2647 | uint32 winctrl0, winctrl1, winenable, fb_offset = 0; | ||
2648 | int xsz, ysz; | ||
2649 | |||
2650 | /* FIX!!! NOT CHECKING FOR COMPLETE OFFSCREEN YET */ | ||
2651 | |||
2652 | winctrl0 = lcd->window[plane].winctrl0; | ||
2653 | winctrl1 = lcd->window[plane].winctrl1; | ||
2654 | winctrl0 &= (LCD_WINCTRL0_A | LCD_WINCTRL0_AEN); | ||
2655 | winctrl1 &= ~(LCD_WINCTRL1_SZX | LCD_WINCTRL1_SZY); | ||
2656 | |||
2657 | /* Check for off-screen adjustments */ | ||
2658 | xsz = win->w[plane].xres; | ||
2659 | ysz = win->w[plane].yres; | ||
2660 | if ((xpos + win->w[plane].xres) > panel->Xres) { | ||
2661 | /* Off-screen to the right */ | ||
2662 | xsz = panel->Xres - xpos; /* off by 1 ??? */ | ||
2663 | /*printk("off screen right\n");*/ | ||
2664 | } | ||
2665 | |||
2666 | if ((ypos + win->w[plane].yres) > panel->Yres) { | ||
2667 | /* Off-screen to the bottom */ | ||
2668 | ysz = panel->Yres - ypos; /* off by 1 ??? */ | ||
2669 | /*printk("off screen bottom\n");*/ | ||
2670 | } | ||
2671 | |||
2672 | if (xpos < 0) { | ||
2673 | /* Off-screen to the left */ | ||
2674 | xsz = win->w[plane].xres + xpos; | ||
2675 | fb_offset += (((0 - xpos) * winbpp(lcd->window[plane].winctrl1))/8); | ||
2676 | xpos = 0; | ||
2677 | /*printk("off screen left\n");*/ | ||
2678 | } | ||
2679 | |||
2680 | if (ypos < 0) { | ||
2681 | /* Off-screen to the top */ | ||
2682 | ysz = win->w[plane].yres + ypos; | ||
2683 | /* fixme: fb_offset += ((0-ypos)*fb_pars[plane].line_length); */ | ||
2684 | ypos = 0; | ||
2685 | /*printk("off screen top\n");*/ | ||
2686 | } | ||
2687 | |||
2688 | /* record settings */ | ||
2689 | win->w[plane].xpos = xpos; | ||
2690 | win->w[plane].ypos = ypos; | ||
2691 | |||
2692 | xsz -= 1; | ||
2693 | ysz -= 1; | ||
2694 | winctrl0 |= (xpos << 21); | ||
2695 | winctrl0 |= (ypos << 10); | ||
2696 | winctrl1 |= (xsz << 11); | ||
2697 | winctrl1 |= (ysz << 0); | ||
2698 | |||
2699 | /* Disable the window while making changes, then restore WINEN */ | ||
2700 | winenable = lcd->winenable & (1 << plane); | ||
2701 | au_sync(); | ||
2702 | lcd->winenable &= ~(1 << plane); | ||
2703 | lcd->window[plane].winctrl0 = winctrl0; | ||
2704 | lcd->window[plane].winctrl1 = winctrl1; | ||
2705 | lcd->window[plane].winbuf0 = | ||
2706 | lcd->window[plane].winbuf1 = fbdev->fb_phys; | ||
2707 | lcd->window[plane].winbufctrl = 0; /* select winbuf0 */ | ||
2708 | lcd->winenable |= winenable; | ||
2709 | au_sync(); | ||
2710 | |||
2711 | return 0; | ||
2712 | } | ||
2713 | |||
2714 | static void au1200_setpanel (struct panel_settings *newpanel) | ||
2715 | { | ||
2716 | /* | ||
2717 | * Perform global setup/init of LCD controller | ||
2718 | */ | ||
2719 | uint32 winenable; | ||
2720 | |||
2721 | /* Make sure all windows disabled */ | ||
2722 | winenable = lcd->winenable; | ||
2723 | lcd->winenable = 0; | ||
2724 | au_sync(); | ||
2725 | /* | ||
2726 | * Ensure everything is disabled before reconfiguring | ||
2727 | */ | ||
2728 | if (lcd->screen & LCD_SCREEN_SEN) { | ||
2729 | /* Wait for vertical sync period */ | ||
2730 | lcd->intstatus = LCD_INT_SS; | ||
2731 | while ((lcd->intstatus & LCD_INT_SS) == 0) { | ||
2732 | au_sync(); | ||
2733 | } | ||
2734 | |||
2735 | lcd->screen &= ~LCD_SCREEN_SEN; /*disable the controller*/ | ||
2736 | |||
2737 | do { | ||
2738 | lcd->intstatus = lcd->intstatus; /*clear interrupts*/ | ||
2739 | au_sync(); | ||
2740 | /*wait for controller to shut down*/ | ||
2741 | } while ((lcd->intstatus & LCD_INT_SD) == 0); | ||
2742 | |||
2743 | /* Call shutdown of current panel (if up) */ | ||
2744 | /* this must occur last, because if an external clock is driving | ||
2745 | the controller, the clock cannot be turned off before first | ||
2746 | shutting down the controller. | ||
2747 | */ | ||
2748 | if (panel->device_shutdown != NULL) | ||
2749 | panel->device_shutdown(); | ||
2750 | } | ||
2751 | |||
2752 | /* Newpanel == NULL indicates a shutdown operation only */ | ||
2753 | if (newpanel == NULL) | ||
2754 | return; | ||
2755 | |||
2756 | panel = newpanel; | ||
2757 | |||
2758 | printk("Panel(%s), %dx%d\n", panel->name, panel->Xres, panel->Yres); | ||
2759 | |||
2760 | /* | ||
2761 | * Setup clocking if internal LCD clock source (assumes sys_auxpll valid) | ||
2762 | */ | ||
2763 | if (!(panel->mode_clkcontrol & LCD_CLKCONTROL_EXT)) | ||
2764 | { | ||
2765 | uint32 sys_clksrc; | ||
2766 | au_writel(panel->mode_auxpll, SYS_AUXPLL); | ||
2767 | sys_clksrc = au_readl(SYS_CLKSRC) & ~0x0000001f; | ||
2768 | sys_clksrc |= panel->mode_toyclksrc; | ||
2769 | au_writel(sys_clksrc, SYS_CLKSRC); | ||
2770 | } | ||
2771 | |||
2772 | /* | ||
2773 | * Configure panel timings | ||
2774 | */ | ||
2775 | lcd->screen = panel->mode_screen; | ||
2776 | lcd->horztiming = panel->mode_horztiming; | ||
2777 | lcd->verttiming = panel->mode_verttiming; | ||
2778 | lcd->clkcontrol = panel->mode_clkcontrol; | ||
2779 | lcd->pwmdiv = panel->mode_pwmdiv; | ||
2780 | lcd->pwmhi = panel->mode_pwmhi; | ||
2781 | lcd->outmask = panel->mode_outmask; | ||
2782 | lcd->fifoctrl = panel->mode_fifoctrl; | ||
2783 | au_sync(); | ||
2784 | |||
2785 | /* fixme: Check window settings to make sure still valid | ||
2786 | * for new geometry */ | ||
2787 | #if 0 | ||
2788 | au1200_setlocation(fbdev, 0, win->w[0].xpos, win->w[0].ypos); | ||
2789 | au1200_setlocation(fbdev, 1, win->w[1].xpos, win->w[1].ypos); | ||
2790 | au1200_setlocation(fbdev, 2, win->w[2].xpos, win->w[2].ypos); | ||
2791 | au1200_setlocation(fbdev, 3, win->w[3].xpos, win->w[3].ypos); | ||
2792 | #endif | ||
2793 | lcd->winenable = winenable; | ||
2794 | |||
2795 | /* | ||
2796 | * Re-enable screen now that it is configured | ||
2797 | */ | ||
2798 | lcd->screen |= LCD_SCREEN_SEN; | ||
2799 | au_sync(); | ||
2800 | |||
2801 | /* Call init of panel */ | ||
2802 | if (panel->device_init != NULL) panel->device_init(); | ||
2803 | |||
2804 | /* FIX!!!! not appropriate on panel change!!! Global setup/init */ | ||
2805 | lcd->intenable = 0; | ||
2806 | lcd->intstatus = ~0; | ||
2807 | lcd->backcolor = win->mode_backcolor; | ||
2808 | |||
2809 | /* Setup Color Key - FIX!!! */ | ||
2810 | lcd->colorkey = win->mode_colorkey; | ||
2811 | lcd->colorkeymsk = win->mode_colorkeymsk; | ||
2812 | |||
2813 | /* Setup HWCursor - FIX!!! Need to support this eventually */ | ||
2814 | lcd->hwc.cursorctrl = 0; | ||
2815 | lcd->hwc.cursorpos = 0; | ||
2816 | lcd->hwc.cursorcolor0 = 0; | ||
2817 | lcd->hwc.cursorcolor1 = 0; | ||
2818 | lcd->hwc.cursorcolor2 = 0; | ||
2819 | lcd->hwc.cursorcolor3 = 0; | ||
2820 | |||
2821 | |||
2822 | #if 0 | ||
2823 | #define D(X) printk("%25s: %08X\n", #X, X) | ||
2824 | D(lcd->screen); | ||
2825 | D(lcd->horztiming); | ||
2826 | D(lcd->verttiming); | ||
2827 | D(lcd->clkcontrol); | ||
2828 | D(lcd->pwmdiv); | ||
2829 | D(lcd->pwmhi); | ||
2830 | D(lcd->outmask); | ||
2831 | D(lcd->fifoctrl); | ||
2832 | D(lcd->window[0].winctrl0); | ||
2833 | D(lcd->window[0].winctrl1); | ||
2834 | D(lcd->window[0].winctrl2); | ||
2835 | D(lcd->window[0].winbuf0); | ||
2836 | D(lcd->window[0].winbuf1); | ||
2837 | D(lcd->window[0].winbufctrl); | ||
2838 | D(lcd->window[1].winctrl0); | ||
2839 | D(lcd->window[1].winctrl1); | ||
2840 | D(lcd->window[1].winctrl2); | ||
2841 | D(lcd->window[1].winbuf0); | ||
2842 | D(lcd->window[1].winbuf1); | ||
2843 | D(lcd->window[1].winbufctrl); | ||
2844 | D(lcd->window[2].winctrl0); | ||
2845 | D(lcd->window[2].winctrl1); | ||
2846 | D(lcd->window[2].winctrl2); | ||
2847 | D(lcd->window[2].winbuf0); | ||
2848 | D(lcd->window[2].winbuf1); | ||
2849 | D(lcd->window[2].winbufctrl); | ||
2850 | D(lcd->window[3].winctrl0); | ||
2851 | D(lcd->window[3].winctrl1); | ||
2852 | D(lcd->window[3].winctrl2); | ||
2853 | D(lcd->window[3].winbuf0); | ||
2854 | D(lcd->window[3].winbuf1); | ||
2855 | D(lcd->window[3].winbufctrl); | ||
2856 | D(lcd->winenable); | ||
2857 | D(lcd->intenable); | ||
2858 | D(lcd->intstatus); | ||
2859 | D(lcd->backcolor); | ||
2860 | D(lcd->winenable); | ||
2861 | D(lcd->colorkey); | ||
2862 | D(lcd->colorkeymsk); | ||
2863 | D(lcd->hwc.cursorctrl); | ||
2864 | D(lcd->hwc.cursorpos); | ||
2865 | D(lcd->hwc.cursorcolor0); | ||
2866 | D(lcd->hwc.cursorcolor1); | ||
2867 | D(lcd->hwc.cursorcolor2); | ||
2868 | D(lcd->hwc.cursorcolor3); | ||
2869 | #endif | ||
2870 | } | ||
2871 | |||
2872 | static void au1200_setmode(struct au1200fb_device *fbdev) | ||
2873 | { | ||
2874 | int plane = fbdev->plane; | ||
2875 | /* Window/plane setup */ | ||
2876 | lcd->window[plane].winctrl1 = ( 0 | ||
2877 | | LCD_WINCTRL1_PRI_N(plane) | ||
2878 | | win->w[plane].mode_winctrl1 /* FRM,CCO,PO,PIPE */ | ||
2879 | ) ; | ||
2880 | |||
2881 | au1200_setlocation(fbdev, plane, win->w[plane].xpos, win->w[plane].ypos); | ||
2882 | |||
2883 | lcd->window[plane].winctrl2 = ( 0 | ||
2884 | | LCD_WINCTRL2_CKMODE_00 | ||
2885 | | LCD_WINCTRL2_DBM | ||
2886 | | LCD_WINCTRL2_BX_N( fbdev->fb_info.fix.line_length) | ||
2887 | | LCD_WINCTRL2_SCX_1 | ||
2888 | | LCD_WINCTRL2_SCY_1 | ||
2889 | ) ; | ||
2890 | lcd->winenable |= win->w[plane].mode_winenable; | ||
2891 | au_sync(); | ||
2892 | } | ||
2893 | |||
2894 | |||
2895 | /* Inline helpers */ | ||
2896 | |||
2897 | /*#define panel_is_dual(panel) ((panel->mode_screen & LCD_SCREEN_PT) == LCD_SCREEN_PT_010)*/ | ||
2898 | /*#define panel_is_active(panel)((panel->mode_screen & LCD_SCREEN_PT) == LCD_SCREEN_PT_010)*/ | ||
2899 | |||
2900 | #define panel_is_color(panel) ((panel->mode_screen & LCD_SCREEN_PT) <= LCD_SCREEN_PT_CDSTN) | ||
2901 | |||
2902 | /* Bitfields format supported by the controller. */ | ||
2903 | static struct fb_bitfield rgb_bitfields[][4] = { | ||
2904 | /* Red, Green, Blue, Transp */ | ||
2905 | [LCD_WINCTRL1_FRM_16BPP655 >> 25] = | ||
2906 | { { 10, 6, 0 }, { 5, 5, 0 }, { 0, 5, 0 }, { 0, 0, 0 } }, | ||
2907 | |||
2908 | [LCD_WINCTRL1_FRM_16BPP565 >> 25] = | ||
2909 | { { 11, 5, 0 }, { 5, 6, 0 }, { 0, 5, 0 }, { 0, 0, 0 } }, | ||
2910 | |||
2911 | [LCD_WINCTRL1_FRM_16BPP556 >> 25] = | ||
2912 | { { 11, 5, 0 }, { 6, 5, 0 }, { 0, 6, 0 }, { 0, 0, 0 } }, | ||
2913 | |||
2914 | [LCD_WINCTRL1_FRM_16BPPI1555 >> 25] = | ||
2915 | { { 10, 5, 0 }, { 5, 5, 0 }, { 0, 5, 0 }, { 0, 0, 0 } }, | ||
2916 | |||
2917 | [LCD_WINCTRL1_FRM_16BPPI5551 >> 25] = | ||
2918 | { { 11, 5, 0 }, { 6, 5, 0 }, { 1, 5, 0 }, { 0, 0, 0 } }, | ||
2919 | |||
2920 | [LCD_WINCTRL1_FRM_16BPPA1555 >> 25] = | ||
2921 | { { 10, 5, 0 }, { 5, 5, 0 }, { 0, 5, 0 }, { 15, 1, 0 } }, | ||
2922 | |||
2923 | [LCD_WINCTRL1_FRM_16BPPA5551 >> 25] = | ||
2924 | { { 11, 5, 0 }, { 6, 5, 0 }, { 1, 5, 0 }, { 0, 1, 0 } }, | ||
2925 | |||
2926 | [LCD_WINCTRL1_FRM_24BPP >> 25] = | ||
2927 | { { 16, 8, 0 }, { 8, 8, 0 }, { 0, 8, 0 }, { 0, 0, 0 } }, | ||
2928 | |||
2929 | [LCD_WINCTRL1_FRM_32BPP >> 25] = | ||
2930 | { { 16, 8, 0 }, { 8, 8, 0 }, { 0, 8, 0 }, { 24, 0, 0 } }, | ||
2931 | }; | ||
2932 | |||
2933 | /*-------------------------------------------------------------------------*/ | ||
2934 | |||
2935 | /* Helpers */ | ||
2936 | |||
2937 | static void au1200fb_update_fbinfo(struct fb_info *fbi) | ||
2938 | { | ||
2939 | /* FIX!!!! This also needs to take the window pixel format into account!!! */ | ||
2940 | |||
2941 | /* Update var-dependent FB info */ | ||
2942 | if (panel_is_color(panel)) { | ||
2943 | if (fbi->var.bits_per_pixel <= 8) { | ||
2944 | /* palettized */ | ||
2945 | fbi->fix.visual = FB_VISUAL_PSEUDOCOLOR; | ||
2946 | fbi->fix.line_length = fbi->var.xres_virtual / | ||
2947 | (8/fbi->var.bits_per_pixel); | ||
2948 | } else { | ||
2949 | /* non-palettized */ | ||
2950 | fbi->fix.visual = FB_VISUAL_TRUECOLOR; | ||
2951 | fbi->fix.line_length = fbi->var.xres_virtual * (fbi->var.bits_per_pixel / 8); | ||
2952 | } | ||
2953 | } else { | ||
2954 | /* mono FIX!!! mono 8 and 4 bits */ | ||
2955 | fbi->fix.visual = FB_VISUAL_MONO10; | ||
2956 | fbi->fix.line_length = fbi->var.xres_virtual / 8; | ||
2957 | } | ||
2958 | |||
2959 | fbi->screen_size = fbi->fix.line_length * fbi->var.yres_virtual; | ||
2960 | print_dbg("line length: %d\n", fbi->fix.line_length); | ||
2961 | print_dbg("bits_per_pixel: %d\n", fbi->var.bits_per_pixel); | ||
2962 | } | ||
2963 | |||
2964 | /*-------------------------------------------------------------------------*/ | ||
2965 | |||
2966 | /* AU1200 framebuffer driver */ | ||
2967 | |||
2968 | /* fb_check_var | ||
2969 | * Validate var settings with hardware restrictions and modify it if necessary | ||
2970 | */ | ||
2971 | static int au1200fb_fb_check_var(struct fb_var_screeninfo *var, | ||
2972 | struct fb_info *fbi) | ||
2973 | { | ||
2974 | struct au1200fb_device *fbdev = (struct au1200fb_device *)fbi; | ||
2975 | u32 pixclock; | ||
2976 | int screen_size, plane; | ||
2977 | |||
2978 | plane = fbdev->plane; | ||
2979 | |||
2980 | /* Make sure that the mode respect all LCD controller and | ||
2981 | * panel restrictions. */ | ||
2982 | var->xres = win->w[plane].xres; | ||
2983 | var->yres = win->w[plane].yres; | ||
2984 | |||
2985 | /* No need for virtual resolution support */ | ||
2986 | var->xres_virtual = var->xres; | ||
2987 | var->yres_virtual = var->yres; | ||
2988 | |||
2989 | var->bits_per_pixel = winbpp(win->w[plane].mode_winctrl1); | ||
2990 | |||
2991 | screen_size = var->xres_virtual * var->yres_virtual; | ||
2992 | if (var->bits_per_pixel > 8) screen_size *= (var->bits_per_pixel / 8); | ||
2993 | else screen_size /= (8/var->bits_per_pixel); | ||
2994 | |||
2995 | if (fbdev->fb_len < screen_size) | ||
2996 | return -EINVAL; /* Virtual screen is to big, abort */ | ||
2997 | |||
2998 | /* FIX!!!! what are the implicaitons of ignoring this for windows ??? */ | ||
2999 | /* The max LCD clock is fixed to 48MHz (value of AUX_CLK). The pixel | ||
3000 | * clock can only be obtain by dividing this value by an even integer. | ||
3001 | * Fallback to a slower pixel clock if necessary. */ | ||
3002 | pixclock = max((u32)(PICOS2KHZ(var->pixclock) * 1000), fbi->monspecs.dclkmin); | ||
3003 | pixclock = min(pixclock, min(fbi->monspecs.dclkmax, (u32)AU1200_LCD_MAX_CLK/2)); | ||
3004 | |||
3005 | if (AU1200_LCD_MAX_CLK % pixclock) { | ||
3006 | int diff = AU1200_LCD_MAX_CLK % pixclock; | ||
3007 | pixclock -= diff; | ||
3008 | } | ||
3009 | |||
3010 | var->pixclock = KHZ2PICOS(pixclock/1000); | ||
3011 | #if 0 | ||
3012 | if (!panel_is_active(panel)) { | ||
3013 | int pcd = AU1200_LCD_MAX_CLK / (pixclock * 2) - 1; | ||
3014 | |||
3015 | if (!panel_is_color(panel) | ||
3016 | && (panel->control_base & LCD_CONTROL_MPI) && (pcd < 3)) { | ||
3017 | /* STN 8bit mono panel support is up to 6MHz pixclock */ | ||
3018 | var->pixclock = KHZ2PICOS(6000); | ||
3019 | } else if (!pcd) { | ||
3020 | /* Other STN panel support is up to 12MHz */ | ||
3021 | var->pixclock = KHZ2PICOS(12000); | ||
3022 | } | ||
3023 | } | ||
3024 | #endif | ||
3025 | /* Set bitfield accordingly */ | ||
3026 | switch (var->bits_per_pixel) { | ||
3027 | case 16: | ||
3028 | { | ||
3029 | /* 16bpp True color. | ||
3030 | * These must be set to MATCH WINCTRL[FORM] */ | ||
3031 | int idx; | ||
3032 | idx = (win->w[0].mode_winctrl1 & LCD_WINCTRL1_FRM) >> 25; | ||
3033 | var->red = rgb_bitfields[idx][0]; | ||
3034 | var->green = rgb_bitfields[idx][1]; | ||
3035 | var->blue = rgb_bitfields[idx][2]; | ||
3036 | var->transp = rgb_bitfields[idx][3]; | ||
3037 | break; | ||
3038 | } | ||
3039 | |||
3040 | case 32: | ||
3041 | { | ||
3042 | /* 32bpp True color. | ||
3043 | * These must be set to MATCH WINCTRL[FORM] */ | ||
3044 | int idx; | ||
3045 | idx = (win->w[0].mode_winctrl1 & LCD_WINCTRL1_FRM) >> 25; | ||
3046 | var->red = rgb_bitfields[idx][0]; | ||
3047 | var->green = rgb_bitfields[idx][1]; | ||
3048 | var->blue = rgb_bitfields[idx][2]; | ||
3049 | var->transp = rgb_bitfields[idx][3]; | ||
3050 | break; | ||
3051 | } | ||
3052 | default: | ||
3053 | print_dbg("Unsupported depth %dbpp", var->bits_per_pixel); | ||
3054 | return -EINVAL; | ||
3055 | } | ||
3056 | |||
3057 | return 0; | ||
3058 | } | ||
3059 | |||
3060 | /* fb_set_par | ||
3061 | * Set hardware with var settings. This will enable the controller with a | ||
3062 | * specific mode, normally validated with the fb_check_var method | ||
3063 | */ | ||
3064 | static int au1200fb_fb_set_par(struct fb_info *fbi) | ||
3065 | { | ||
3066 | struct au1200fb_device *fbdev = (struct au1200fb_device *)fbi; | ||
3067 | |||
3068 | au1200fb_update_fbinfo(fbi); | ||
3069 | au1200_setmode(fbdev); | ||
3070 | |||
3071 | return 0; | ||
3072 | } | ||
3073 | |||
3074 | /* fb_setcolreg | ||
3075 | * Set color in LCD palette. | ||
3076 | */ | ||
3077 | static int au1200fb_fb_setcolreg(unsigned regno, unsigned red, unsigned green, | ||
3078 | unsigned blue, unsigned transp, struct fb_info *fbi) | ||
3079 | { | ||
3080 | volatile u32 *palette = lcd->palette; | ||
3081 | u32 value; | ||
3082 | |||
3083 | if (regno > (AU1200_LCD_NBR_PALETTE_ENTRIES - 1)) | ||
3084 | return -EINVAL; | ||
3085 | |||
3086 | if (fbi->var.grayscale) { | ||
3087 | /* Convert color to grayscale */ | ||
3088 | red = green = blue = | ||
3089 | (19595 * red + 38470 * green + 7471 * blue) >> 16; | ||
3090 | } | ||
3091 | |||
3092 | if (fbi->fix.visual == FB_VISUAL_TRUECOLOR) { | ||
3093 | /* Place color in the pseudopalette */ | ||
3094 | if (regno > 16) | ||
3095 | return -EINVAL; | ||
3096 | |||
3097 | palette = (u32*) fbi->pseudo_palette; | ||
3098 | |||
3099 | red >>= (16 - fbi->var.red.length); | ||
3100 | green >>= (16 - fbi->var.green.length); | ||
3101 | blue >>= (16 - fbi->var.blue.length); | ||
3102 | |||
3103 | value = (red << fbi->var.red.offset) | | ||
3104 | (green << fbi->var.green.offset)| | ||
3105 | (blue << fbi->var.blue.offset); | ||
3106 | value &= 0xFFFF; | ||
3107 | |||
3108 | } else if (1 /*FIX!!! panel_is_active(fbdev->panel)*/) { | ||
3109 | /* COLOR TFT PALLETTIZED (use RGB 565) */ | ||
3110 | value = (red & 0xF800)|((green >> 5) & | ||
3111 | 0x07E0)|((blue >> 11) & 0x001F); | ||
3112 | value &= 0xFFFF; | ||
3113 | |||
3114 | } else if (0 /*panel_is_color(fbdev->panel)*/) { | ||
3115 | /* COLOR STN MODE */ | ||
3116 | value = 0x1234; | ||
3117 | value &= 0xFFF; | ||
3118 | } else { | ||
3119 | /* MONOCHROME MODE */ | ||
3120 | value = (green >> 12) & 0x000F; | ||
3121 | value &= 0xF; | ||
3122 | } | ||
3123 | |||
3124 | palette[regno] = value; | ||
3125 | |||
3126 | return 0; | ||
3127 | } | ||
3128 | |||
3129 | /* fb_blank | ||
3130 | * Blank the screen. Depending on the mode, the screen will be | ||
3131 | * activated with the backlight color, or desactivated | ||
3132 | */ | ||
3133 | static int au1200fb_fb_blank(int blank_mode, struct fb_info *fbi) | ||
3134 | { | ||
3135 | /* Short-circuit screen blanking */ | ||
3136 | if (noblanking) | ||
3137 | return 0; | ||
3138 | |||
3139 | switch (blank_mode) { | ||
3140 | |||
3141 | case FB_BLANK_UNBLANK: | ||
3142 | case FB_BLANK_NORMAL: | ||
3143 | /* printk("turn on panel\n"); */ | ||
3144 | au1200_setpanel(panel); | ||
3145 | break; | ||
3146 | case FB_BLANK_VSYNC_SUSPEND: | ||
3147 | case FB_BLANK_HSYNC_SUSPEND: | ||
3148 | case FB_BLANK_POWERDOWN: | ||
3149 | /* printk("turn off panel\n"); */ | ||
3150 | au1200_setpanel(NULL); | ||
3151 | break; | ||
3152 | default: | ||
3153 | break; | ||
3154 | |||
3155 | } | ||
3156 | |||
3157 | /* FB_BLANK_NORMAL is a soft blank */ | ||
3158 | return (blank_mode == FB_BLANK_NORMAL) ? -EINVAL : 0; | ||
3159 | } | ||
3160 | |||
3161 | /* fb_mmap | ||
3162 | * Map video memory in user space. We don't use the generic fb_mmap | ||
3163 | * method mainly to allow the use of the TLB streaming flag (CCA=6) | ||
3164 | */ | ||
3165 | static int au1200fb_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) | ||
3166 | |||
3167 | { | ||
3168 | unsigned int len; | ||
3169 | unsigned long start=0, off; | ||
3170 | struct au1200fb_device *fbdev = (struct au1200fb_device *) info; | ||
3171 | |||
3172 | #ifdef CONFIG_PM | ||
3173 | au1xxx_pm_access(LCD_pm_dev); | ||
3174 | #endif | ||
3175 | |||
3176 | if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) { | ||
3177 | return -EINVAL; | ||
3178 | } | ||
3179 | |||
3180 | start = fbdev->fb_phys & PAGE_MASK; | ||
3181 | len = PAGE_ALIGN((start & ~PAGE_MASK) + fbdev->fb_len); | ||
3182 | |||
3183 | off = vma->vm_pgoff << PAGE_SHIFT; | ||
3184 | |||
3185 | if ((vma->vm_end - vma->vm_start + off) > len) { | ||
3186 | return -EINVAL; | ||
3187 | } | ||
3188 | |||
3189 | off += start; | ||
3190 | vma->vm_pgoff = off >> PAGE_SHIFT; | ||
3191 | |||
3192 | vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); | ||
3193 | pgprot_val(vma->vm_page_prot) |= _CACHE_MASK; /* CCA=7 */ | ||
3194 | |||
3195 | vma->vm_flags |= VM_IO; | ||
3196 | |||
3197 | return io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT, | ||
3198 | vma->vm_end - vma->vm_start, | ||
3199 | vma->vm_page_prot); | ||
3200 | |||
3201 | return 0; | ||
3202 | } | ||
3203 | |||
3204 | static void set_global(u_int cmd, struct au1200_lcd_global_regs_t *pdata) | ||
3205 | { | ||
3206 | |||
3207 | unsigned int hi1, divider; | ||
3208 | |||
3209 | /* SCREEN_SIZE: user cannot reset size, must switch panel choice */ | ||
3210 | |||
3211 | if (pdata->flags & SCREEN_BACKCOLOR) | ||
3212 | lcd->backcolor = pdata->backcolor; | ||
3213 | |||
3214 | if (pdata->flags & SCREEN_BRIGHTNESS) { | ||
3215 | |||
3216 | // limit brightness pwm duty to >= 30/1600 | ||
3217 | if (pdata->brightness < 30) { | ||
3218 | pdata->brightness = 30; | ||
3219 | } | ||
3220 | divider = (lcd->pwmdiv & 0x3FFFF) + 1; | ||
3221 | hi1 = (lcd->pwmhi >> 16) + 1; | ||
3222 | hi1 = (((pdata->brightness & 0xFF)+1) * divider >> 8); | ||
3223 | lcd->pwmhi &= 0xFFFF; | ||
3224 | lcd->pwmhi |= (hi1 << 16); | ||
3225 | } | ||
3226 | |||
3227 | if (pdata->flags & SCREEN_COLORKEY) | ||
3228 | lcd->colorkey = pdata->colorkey; | ||
3229 | |||
3230 | if (pdata->flags & SCREEN_MASK) | ||
3231 | lcd->colorkeymsk = pdata->mask; | ||
3232 | au_sync(); | ||
3233 | } | ||
3234 | |||
3235 | static void get_global(u_int cmd, struct au1200_lcd_global_regs_t *pdata) | ||
3236 | { | ||
3237 | unsigned int hi1, divider; | ||
3238 | |||
3239 | pdata->xsize = ((lcd->screen & LCD_SCREEN_SX) >> 19) + 1; | ||
3240 | pdata->ysize = ((lcd->screen & LCD_SCREEN_SY) >> 8) + 1; | ||
3241 | |||
3242 | pdata->backcolor = lcd->backcolor; | ||
3243 | pdata->colorkey = lcd->colorkey; | ||
3244 | pdata->mask = lcd->colorkeymsk; | ||
3245 | |||
3246 | // brightness | ||
3247 | hi1 = (lcd->pwmhi >> 16) + 1; | ||
3248 | divider = (lcd->pwmdiv & 0x3FFFF) + 1; | ||
3249 | pdata->brightness = ((hi1 << 8) / divider) - 1; | ||
3250 | au_sync(); | ||
3251 | } | ||
3252 | |||
3253 | static void set_window(unsigned int plane, | ||
3254 | struct au1200_lcd_window_regs_t *pdata) | ||
3255 | { | ||
3256 | unsigned int val, bpp; | ||
3257 | |||
3258 | /* Window control register 0 */ | ||
3259 | if (pdata->flags & WIN_POSITION) { | ||
3260 | val = lcd->window[plane].winctrl0 & ~(LCD_WINCTRL0_OX | | ||
3261 | LCD_WINCTRL0_OY); | ||
3262 | val |= ((pdata->xpos << 21) & LCD_WINCTRL0_OX); | ||
3263 | val |= ((pdata->ypos << 10) & LCD_WINCTRL0_OY); | ||
3264 | lcd->window[plane].winctrl0 = val; | ||
3265 | } | ||
3266 | if (pdata->flags & WIN_ALPHA_COLOR) { | ||
3267 | val = lcd->window[plane].winctrl0 & ~(LCD_WINCTRL0_A); | ||
3268 | val |= ((pdata->alpha_color << 2) & LCD_WINCTRL0_A); | ||
3269 | lcd->window[plane].winctrl0 = val; | ||
3270 | } | ||
3271 | if (pdata->flags & WIN_ALPHA_MODE) { | ||
3272 | val = lcd->window[plane].winctrl0 & ~(LCD_WINCTRL0_AEN); | ||
3273 | val |= ((pdata->alpha_mode << 1) & LCD_WINCTRL0_AEN); | ||
3274 | lcd->window[plane].winctrl0 = val; | ||
3275 | } | ||
3276 | |||
3277 | /* Window control register 1 */ | ||
3278 | if (pdata->flags & WIN_PRIORITY) { | ||
3279 | val = lcd->window[plane].winctrl1 & ~(LCD_WINCTRL1_PRI); | ||
3280 | val |= ((pdata->priority << 30) & LCD_WINCTRL1_PRI); | ||
3281 | lcd->window[plane].winctrl1 = val; | ||
3282 | } | ||
3283 | if (pdata->flags & WIN_CHANNEL) { | ||
3284 | val = lcd->window[plane].winctrl1 & ~(LCD_WINCTRL1_PIPE); | ||
3285 | val |= ((pdata->channel << 29) & LCD_WINCTRL1_PIPE); | ||
3286 | lcd->window[plane].winctrl1 = val; | ||
3287 | } | ||
3288 | if (pdata->flags & WIN_BUFFER_FORMAT) { | ||
3289 | val = lcd->window[plane].winctrl1 & ~(LCD_WINCTRL1_FRM); | ||
3290 | val |= ((pdata->buffer_format << 25) & LCD_WINCTRL1_FRM); | ||
3291 | lcd->window[plane].winctrl1 = val; | ||
3292 | } | ||
3293 | if (pdata->flags & WIN_COLOR_ORDER) { | ||
3294 | val = lcd->window[plane].winctrl1 & ~(LCD_WINCTRL1_CCO); | ||
3295 | val |= ((pdata->color_order << 24) & LCD_WINCTRL1_CCO); | ||
3296 | lcd->window[plane].winctrl1 = val; | ||
3297 | } | ||
3298 | if (pdata->flags & WIN_PIXEL_ORDER) { | ||
3299 | val = lcd->window[plane].winctrl1 & ~(LCD_WINCTRL1_PO); | ||
3300 | val |= ((pdata->pixel_order << 22) & LCD_WINCTRL1_PO); | ||
3301 | lcd->window[plane].winctrl1 = val; | ||
3302 | } | ||
3303 | if (pdata->flags & WIN_SIZE) { | ||
3304 | val = lcd->window[plane].winctrl1 & ~(LCD_WINCTRL1_SZX | | ||
3305 | LCD_WINCTRL1_SZY); | ||
3306 | val |= (((pdata->xsize << 11) - 1) & LCD_WINCTRL1_SZX); | ||
3307 | val |= (((pdata->ysize) - 1) & LCD_WINCTRL1_SZY); | ||
3308 | lcd->window[plane].winctrl1 = val; | ||
3309 | /* program buffer line width */ | ||
3310 | bpp = winbpp(val) / 8; | ||
3311 | val = lcd->window[plane].winctrl2 & ~(LCD_WINCTRL2_BX); | ||
3312 | val |= (((pdata->xsize * bpp) << 8) & LCD_WINCTRL2_BX); | ||
3313 | lcd->window[plane].winctrl2 = val; | ||
3314 | } | ||
3315 | |||
3316 | /* Window control register 2 */ | ||
3317 | if (pdata->flags & WIN_COLORKEY_MODE) { | ||
3318 | val = lcd->window[plane].winctrl2 & ~(LCD_WINCTRL2_CKMODE); | ||
3319 | val |= ((pdata->colorkey_mode << 24) & LCD_WINCTRL2_CKMODE); | ||
3320 | lcd->window[plane].winctrl2 = val; | ||
3321 | } | ||
3322 | if (pdata->flags & WIN_DOUBLE_BUFFER_MODE) { | ||
3323 | val = lcd->window[plane].winctrl2 & ~(LCD_WINCTRL2_DBM); | ||
3324 | val |= ((pdata->double_buffer_mode << 23) & LCD_WINCTRL2_DBM); | ||
3325 | lcd->window[plane].winctrl2 = val; | ||
3326 | } | ||
3327 | if (pdata->flags & WIN_RAM_ARRAY_MODE) { | ||
3328 | val = lcd->window[plane].winctrl2 & ~(LCD_WINCTRL2_RAM); | ||
3329 | val |= ((pdata->ram_array_mode << 21) & LCD_WINCTRL2_RAM); | ||
3330 | lcd->window[plane].winctrl2 = val; | ||
3331 | } | ||
3332 | |||
3333 | /* Buffer line width programmed with WIN_SIZE */ | ||
3334 | |||
3335 | if (pdata->flags & WIN_BUFFER_SCALE) { | ||
3336 | val = lcd->window[plane].winctrl2 & ~(LCD_WINCTRL2_SCX | | ||
3337 | LCD_WINCTRL2_SCY); | ||
3338 | val |= ((pdata->xsize << 11) & LCD_WINCTRL2_SCX); | ||
3339 | val |= ((pdata->ysize) & LCD_WINCTRL2_SCY); | ||
3340 | lcd->window[plane].winctrl2 = val; | ||
3341 | } | ||
3342 | |||
3343 | if (pdata->flags & WIN_ENABLE) { | ||
3344 | val = lcd->winenable; | ||
3345 | val &= ~(1<<plane); | ||
3346 | val |= (pdata->enable & 1) << plane; | ||
3347 | lcd->winenable = val; | ||
3348 | } | ||
3349 | au_sync(); | ||
3350 | } | ||
3351 | |||
3352 | static void get_window(unsigned int plane, | ||
3353 | struct au1200_lcd_window_regs_t *pdata) | ||
3354 | { | ||
3355 | /* Window control register 0 */ | ||
3356 | pdata->xpos = (lcd->window[plane].winctrl0 & LCD_WINCTRL0_OX) >> 21; | ||
3357 | pdata->ypos = (lcd->window[plane].winctrl0 & LCD_WINCTRL0_OY) >> 10; | ||
3358 | pdata->alpha_color = (lcd->window[plane].winctrl0 & LCD_WINCTRL0_A) >> 2; | ||
3359 | pdata->alpha_mode = (lcd->window[plane].winctrl0 & LCD_WINCTRL0_AEN) >> 1; | ||
3360 | |||
3361 | /* Window control register 1 */ | ||
3362 | pdata->priority = (lcd->window[plane].winctrl1& LCD_WINCTRL1_PRI) >> 30; | ||
3363 | pdata->channel = (lcd->window[plane].winctrl1 & LCD_WINCTRL1_PIPE) >> 29; | ||
3364 | pdata->buffer_format = (lcd->window[plane].winctrl1 & LCD_WINCTRL1_FRM) >> 25; | ||
3365 | pdata->color_order = (lcd->window[plane].winctrl1 & LCD_WINCTRL1_CCO) >> 24; | ||
3366 | pdata->pixel_order = (lcd->window[plane].winctrl1 & LCD_WINCTRL1_PO) >> 22; | ||
3367 | pdata->xsize = ((lcd->window[plane].winctrl1 & LCD_WINCTRL1_SZX) >> 11) + 1; | ||
3368 | pdata->ysize = (lcd->window[plane].winctrl1 & LCD_WINCTRL1_SZY) + 1; | ||
3369 | |||
3370 | /* Window control register 2 */ | ||
3371 | pdata->colorkey_mode = (lcd->window[plane].winctrl2 & LCD_WINCTRL2_CKMODE) >> 24; | ||
3372 | pdata->double_buffer_mode = (lcd->window[plane].winctrl2 & LCD_WINCTRL2_DBM) >> 23; | ||
3373 | pdata->ram_array_mode = (lcd->window[plane].winctrl2 & LCD_WINCTRL2_RAM) >> 21; | ||
3374 | |||
3375 | pdata->enable = (lcd->winenable >> plane) & 1; | ||
3376 | au_sync(); | ||
3377 | } | ||
3378 | |||
3379 | static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd, | ||
3380 | unsigned long arg) | ||
3381 | { | ||
3382 | int plane; | ||
3383 | int val; | ||
3384 | |||
3385 | #ifdef CONFIG_PM | ||
3386 | au1xxx_pm_access(LCD_pm_dev); | ||
3387 | #endif | ||
3388 | |||
3389 | plane = fbinfo2index(info); | ||
3390 | print_dbg("au1200fb: ioctl %d on plane %d\n", cmd, plane); | ||
3391 | |||
3392 | if (cmd == AU1200_LCD_FB_IOCTL) { | ||
3393 | struct au1200_lcd_iodata_t iodata; | ||
3394 | |||
3395 | if (copy_from_user(&iodata, (void __user *) arg, sizeof(iodata))) | ||
3396 | return -EFAULT; | ||
3397 | |||
3398 | print_dbg("FB IOCTL called\n"); | ||
3399 | |||
3400 | switch (iodata.subcmd) { | ||
3401 | case AU1200_LCD_SET_SCREEN: | ||
3402 | print_dbg("AU1200_LCD_SET_SCREEN\n"); | ||
3403 | set_global(cmd, &iodata.global); | ||
3404 | break; | ||
3405 | |||
3406 | case AU1200_LCD_GET_SCREEN: | ||
3407 | print_dbg("AU1200_LCD_GET_SCREEN\n"); | ||
3408 | get_global(cmd, &iodata.global); | ||
3409 | break; | ||
3410 | |||
3411 | case AU1200_LCD_SET_WINDOW: | ||
3412 | print_dbg("AU1200_LCD_SET_WINDOW\n"); | ||
3413 | set_window(plane, &iodata.window); | ||
3414 | break; | ||
3415 | |||
3416 | case AU1200_LCD_GET_WINDOW: | ||
3417 | print_dbg("AU1200_LCD_GET_WINDOW\n"); | ||
3418 | get_window(plane, &iodata.window); | ||
3419 | break; | ||
3420 | |||
3421 | case AU1200_LCD_SET_PANEL: | ||
3422 | print_dbg("AU1200_LCD_SET_PANEL\n"); | ||
3423 | if ((iodata.global.panel_choice >= 0) && | ||
3424 | (iodata.global.panel_choice < | ||
3425 | NUM_PANELS)) | ||
3426 | { | ||
3427 | struct panel_settings *newpanel; | ||
3428 | panel_index = iodata.global.panel_choice; | ||
3429 | newpanel = &known_lcd_panels[panel_index]; | ||
3430 | au1200_setpanel(newpanel); | ||
3431 | } | ||
3432 | break; | ||
3433 | |||
3434 | case AU1200_LCD_GET_PANEL: | ||
3435 | print_dbg("AU1200_LCD_GET_PANEL\n"); | ||
3436 | iodata.global.panel_choice = panel_index; | ||
3437 | break; | ||
3438 | |||
3439 | default: | ||
3440 | return -EINVAL; | ||
3441 | } | ||
3442 | |||
3443 | val = copy_to_user((void __user *) arg, &iodata, sizeof(iodata)); | ||
3444 | if (val) { | ||
3445 | print_dbg("error: could not copy %d bytes\n", val); | ||
3446 | return -EFAULT; | ||
3447 | } | ||
3448 | } | ||
3449 | |||
3450 | return 0; | ||
3451 | } | ||
3452 | |||
3453 | |||
3454 | static struct fb_ops au1200fb_fb_ops = { | ||
3455 | .owner = THIS_MODULE, | ||
3456 | .fb_check_var = au1200fb_fb_check_var, | ||
3457 | .fb_set_par = au1200fb_fb_set_par, | ||
3458 | .fb_setcolreg = au1200fb_fb_setcolreg, | ||
3459 | .fb_blank = au1200fb_fb_blank, | ||
3460 | .fb_fillrect = cfb_fillrect, | ||
3461 | .fb_copyarea = cfb_copyarea, | ||
3462 | .fb_imageblit = cfb_imageblit, | ||
3463 | .fb_sync = NULL, | ||
3464 | .fb_ioctl = au1200fb_ioctl, | ||
3465 | .fb_mmap = au1200fb_fb_mmap, | ||
3466 | }; | ||
3467 | |||
3468 | /*-------------------------------------------------------------------------*/ | ||
3469 | |||
3470 | static irqreturn_t au1200fb_handle_irq(int irq, void* dev_id, struct pt_regs *regs) | ||
3471 | { | ||
3472 | /* Nothing to do for now, just clear any pending interrupt */ | ||
3473 | lcd->intstatus = lcd->intstatus; | ||
3474 | au_sync(); | ||
3475 | |||
3476 | return IRQ_HANDLED; | ||
3477 | } | ||
3478 | |||
3479 | /*-------------------------------------------------------------------------*/ | ||
3480 | |||
3481 | /* AU1200 LCD device probe helpers */ | ||
3482 | |||
3483 | static int au1200fb_init_fbinfo(struct au1200fb_device *fbdev) | ||
3484 | { | ||
3485 | struct fb_info *fbi = &fbdev->fb_info; | ||
3486 | int bpp; | ||
3487 | |||
3488 | memset(fbi, 0, sizeof(struct fb_info)); | ||
3489 | fbi->fbops = &au1200fb_fb_ops; | ||
3490 | |||
3491 | bpp = winbpp(win->w[fbdev->plane].mode_winctrl1); | ||
3492 | |||
3493 | /* Copy monitor specs from panel data */ | ||
3494 | /* fixme: we're setting up LCD controller windows, so these dont give a | ||
3495 | damn as to what the monitor specs are (the panel itself does, but that | ||
3496 | isnt done here...so maybe need a generic catchall monitor setting??? */ | ||
3497 | memcpy(&fbi->monspecs, &panel->monspecs, sizeof(struct fb_monspecs)); | ||
3498 | |||
3499 | /* We first try the user mode passed in argument. If that failed, | ||
3500 | * or if no one has been specified, we default to the first mode of the | ||
3501 | * panel list. Note that after this call, var data will be set */ | ||
3502 | if (!fb_find_mode(&fbi->var, | ||
3503 | fbi, | ||
3504 | NULL, /* drv_info.opt_mode, */ | ||
3505 | fbi->monspecs.modedb, | ||
3506 | fbi->monspecs.modedb_len, | ||
3507 | fbi->monspecs.modedb, | ||
3508 | bpp)) { | ||
3509 | |||
3510 | print_err("Cannot find valid mode for panel %s", panel->name); | ||
3511 | return -EFAULT; | ||
3512 | } | ||
3513 | |||
3514 | fbi->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); | ||
3515 | if (!fbi->pseudo_palette) { | ||
3516 | return -ENOMEM; | ||
3517 | } | ||
3518 | memset(fbi->pseudo_palette, 0, sizeof(u32) * 16); | ||
3519 | |||
3520 | if (fb_alloc_cmap(&fbi->cmap, AU1200_LCD_NBR_PALETTE_ENTRIES, 0) < 0) { | ||
3521 | print_err("Fail to allocate colormap (%d entries)", | ||
3522 | AU1200_LCD_NBR_PALETTE_ENTRIES); | ||
3523 | kfree(fbi->pseudo_palette); | ||
3524 | return -EFAULT; | ||
3525 | } | ||
3526 | |||
3527 | strncpy(fbi->fix.id, "AU1200", sizeof(fbi->fix.id)); | ||
3528 | fbi->fix.smem_start = fbdev->fb_phys; | ||
3529 | fbi->fix.smem_len = fbdev->fb_len; | ||
3530 | fbi->fix.type = FB_TYPE_PACKED_PIXELS; | ||
3531 | fbi->fix.xpanstep = 0; | ||
3532 | fbi->fix.ypanstep = 0; | ||
3533 | fbi->fix.mmio_start = 0; | ||
3534 | fbi->fix.mmio_len = 0; | ||
3535 | fbi->fix.accel = FB_ACCEL_NONE; | ||
3536 | |||
3537 | fbi->screen_base = (char __iomem *) fbdev->fb_mem; | ||
3538 | |||
3539 | au1200fb_update_fbinfo(fbi); | ||
3540 | |||
3541 | return 0; | ||
3542 | } | ||
3543 | |||
3544 | /*-------------------------------------------------------------------------*/ | ||
3545 | |||
3546 | /* AU1200 LCD controller device driver */ | ||
3547 | |||
3548 | static int au1200fb_drv_probe(struct device *dev) | ||
3549 | { | ||
3550 | struct au1200fb_device *fbdev; | ||
3551 | unsigned long page; | ||
3552 | int bpp, plane, ret; | ||
3553 | |||
3554 | if (!dev) | ||
3555 | return -EINVAL; | ||
3556 | |||
3557 | for (plane = 0; plane < CONFIG_FB_AU1200_DEVS; ++plane) { | ||
3558 | bpp = winbpp(win->w[plane].mode_winctrl1); | ||
3559 | if (win->w[plane].xres == 0) | ||
3560 | win->w[plane].xres = panel->Xres; | ||
3561 | if (win->w[plane].yres == 0) | ||
3562 | win->w[plane].yres = panel->Yres; | ||
3563 | |||
3564 | fbdev = &_au1200fb_devices[plane]; | ||
3565 | memset(fbdev, 0, sizeof(struct au1200fb_device)); | ||
3566 | fbdev->plane = plane; | ||
3567 | |||
3568 | /* Allocate the framebuffer to the maximum screen size */ | ||
3569 | fbdev->fb_len = (win->w[plane].xres * win->w[plane].yres * bpp) / 8; | ||
3570 | |||
3571 | fbdev->fb_mem = dma_alloc_noncoherent(dev, | ||
3572 | PAGE_ALIGN(fbdev->fb_len), | ||
3573 | &fbdev->fb_phys, GFP_KERNEL); | ||
3574 | if (!fbdev->fb_mem) { | ||
3575 | print_err("fail to allocate frambuffer (size: %dK))", | ||
3576 | fbdev->fb_len / 1024); | ||
3577 | return -ENOMEM; | ||
3578 | } | ||
3579 | |||
3580 | /* | ||
3581 | * Set page reserved so that mmap will work. This is necessary | ||
3582 | * since we'll be remapping normal memory. | ||
3583 | */ | ||
3584 | for (page = (unsigned long)fbdev->fb_phys; | ||
3585 | page < PAGE_ALIGN((unsigned long)fbdev->fb_phys + | ||
3586 | fbdev->fb_len); | ||
3587 | page += PAGE_SIZE) { | ||
3588 | SetPageReserved(pfn_to_page(page >> PAGE_SHIFT)); /* LCD DMA is NOT coherent on Au1200 */ | ||
3589 | } | ||
3590 | print_dbg("Framebuffer memory map at %p", fbdev->fb_mem); | ||
3591 | print_dbg("phys=0x%08x, size=%dK", fbdev->fb_phys, fbdev->fb_len / 1024); | ||
3592 | |||
3593 | /* Init FB data */ | ||
3594 | if ((ret = au1200fb_init_fbinfo(fbdev)) < 0) | ||
3595 | goto failed; | ||
3596 | |||
3597 | /* Register new framebuffer */ | ||
3598 | if ((ret = register_framebuffer(&fbdev->fb_info)) < 0) { | ||
3599 | print_err("cannot register new framebuffer"); | ||
3600 | goto failed; | ||
3601 | } | ||
3602 | |||
3603 | au1200fb_fb_set_par(&fbdev->fb_info); | ||
3604 | |||
3605 | #if !defined(CONFIG_FRAMEBUFFER_CONSOLE) && defined(CONFIG_LOGO) | ||
3606 | if (plane == 0) | ||
3607 | if (fb_prepare_logo(&fbdev->fb_info, FB_ROTATE_UR)) { | ||
3608 | /* Start display and show logo on boot */ | ||
3609 | fb_set_cmap(&fbdev->fb_info.cmap, | ||
3610 | &fbdev->fb_info); | ||
3611 | |||
3612 | fb_show_logo(&fbdev->fb_info, FB_ROTATE_UR); | ||
3613 | } | ||
3614 | #endif | ||
3615 | } | ||
3616 | |||
3617 | /* Now hook interrupt too */ | ||
3618 | if ((ret = request_irq(AU1200_LCD_INT, au1200fb_handle_irq, | ||
3619 | SA_INTERRUPT | SA_SHIRQ, "lcd", (void *)dev)) < 0) { | ||
3620 | print_err("fail to request interrupt line %d (err: %d)", | ||
3621 | AU1200_LCD_INT, ret); | ||
3622 | goto failed; | ||
3623 | } | ||
3624 | |||
3625 | return 0; | ||
3626 | |||
3627 | failed: | ||
3628 | /* NOTE: This only does the current plane/window that failed; others are still active */ | ||
3629 | if (fbdev->fb_mem) | ||
3630 | dma_free_noncoherent(dev, PAGE_ALIGN(fbdev->fb_len), | ||
3631 | fbdev->fb_mem, fbdev->fb_phys); | ||
3632 | if (fbdev->fb_info.cmap.len != 0) | ||
3633 | fb_dealloc_cmap(&fbdev->fb_info.cmap); | ||
3634 | if (fbdev->fb_info.pseudo_palette) | ||
3635 | kfree(fbdev->fb_info.pseudo_palette); | ||
3636 | if (plane == 0) | ||
3637 | free_irq(AU1200_LCD_INT, (void*)dev); | ||
3638 | return ret; | ||
3639 | } | ||
3640 | |||
3641 | static int au1200fb_drv_remove(struct device *dev) | ||
3642 | { | ||
3643 | struct au1200fb_device *fbdev; | ||
3644 | int plane; | ||
3645 | |||
3646 | if (!dev) | ||
3647 | return -ENODEV; | ||
3648 | |||
3649 | /* Turn off the panel */ | ||
3650 | au1200_setpanel(NULL); | ||
3651 | |||
3652 | for (plane = 0; plane < CONFIG_FB_AU1200_DEVS; ++plane) | ||
3653 | { | ||
3654 | fbdev = &_au1200fb_devices[plane]; | ||
3655 | |||
3656 | /* Clean up all probe data */ | ||
3657 | unregister_framebuffer(&fbdev->fb_info); | ||
3658 | if (fbdev->fb_mem) | ||
3659 | dma_free_noncoherent(dev, PAGE_ALIGN(fbdev->fb_len), | ||
3660 | fbdev->fb_mem, fbdev->fb_phys); | ||
3661 | if (fbdev->fb_info.cmap.len != 0) | ||
3662 | fb_dealloc_cmap(&fbdev->fb_info.cmap); | ||
3663 | if (fbdev->fb_info.pseudo_palette) | ||
3664 | kfree(fbdev->fb_info.pseudo_palette); | ||
3665 | } | ||
3666 | |||
3667 | free_irq(AU1200_LCD_INT, (void *)dev); | ||
3668 | |||
3669 | return 0; | ||
3670 | } | ||
3671 | |||
3672 | #ifdef CONFIG_PM | ||
3673 | static int au1200fb_drv_suspend(struct device *dev, u32 state, u32 level) | ||
3674 | { | ||
3675 | /* TODO */ | ||
3676 | return 0; | ||
3677 | } | ||
3678 | |||
3679 | static int au1200fb_drv_resume(struct device *dev, u32 level) | ||
3680 | { | ||
3681 | /* TODO */ | ||
3682 | return 0; | ||
3683 | } | ||
3684 | #endif /* CONFIG_PM */ | ||
3685 | |||
3686 | static struct device_driver au1200fb_driver = { | ||
3687 | .name = "au1200-lcd", | ||
3688 | .bus = &platform_bus_type, | ||
3689 | .probe = au1200fb_drv_probe, | ||
3690 | .remove = au1200fb_drv_remove, | ||
3691 | #ifdef CONFIG_PM | ||
3692 | .suspend = au1200fb_drv_suspend, | ||
3693 | .resume = au1200fb_drv_resume, | ||
3694 | #endif | ||
3695 | }; | ||
3696 | |||
3697 | /*-------------------------------------------------------------------------*/ | ||
3698 | |||
3699 | /* Kernel driver */ | ||
3700 | |||
3701 | static void au1200fb_setup(void) | ||
3702 | { | ||
3703 | char* options = NULL; | ||
3704 | char* this_opt; | ||
3705 | int num_panels = ARRAY_SIZE(known_lcd_panels); | ||
3706 | int panel_idx = -1; | ||
3707 | |||
3708 | fb_get_options(DRIVER_NAME, &options); | ||
3709 | |||
3710 | if (options) { | ||
3711 | while ((this_opt = strsep(&options,",")) != NULL) { | ||
3712 | /* Panel option - can be panel name, | ||
3713 | * "bs" for board-switch, or number/index */ | ||
3714 | if (!strncmp(this_opt, "panel:", 6)) { | ||
3715 | int i; | ||
3716 | long int li; | ||
3717 | char *endptr; | ||
3718 | this_opt += 6; | ||
3719 | /* First check for index, which allows | ||
3720 | * to short circuit this mess */ | ||
3721 | li = simple_strtol(this_opt, &endptr, 0); | ||
3722 | if (*endptr == '\0') { | ||
3723 | panel_idx = (int)li; | ||
3724 | } | ||
3725 | else if (strcmp(this_opt, "bs") == 0) { | ||
3726 | extern int board_au1200fb_panel(void); | ||
3727 | panel_idx = board_au1200fb_panel(); | ||
3728 | } | ||
3729 | |||
3730 | else | ||
3731 | for (i = 0; i < num_panels; i++) { | ||
3732 | if (!strcmp(this_opt, known_lcd_panels[i].name)) { | ||
3733 | panel_idx = i; | ||
3734 | break; | ||
3735 | } | ||
3736 | } | ||
3737 | |||
3738 | if ((panel_idx < 0) || (panel_idx >= num_panels)) { | ||
3739 | print_warn("Panel %s not supported!", this_opt); | ||
3740 | } | ||
3741 | else | ||
3742 | panel_index = panel_idx; | ||
3743 | } | ||
3744 | |||
3745 | else if (strncmp(this_opt, "nohwcursor", 10) == 0) { | ||
3746 | nohwcursor = 1; | ||
3747 | } | ||
3748 | |||
3749 | /* Unsupported option */ | ||
3750 | else { | ||
3751 | print_warn("Unsupported option \"%s\"", this_opt); | ||
3752 | } | ||
3753 | } | ||
3754 | } | ||
3755 | } | ||
3756 | |||
3757 | #ifdef CONFIG_PM | ||
3758 | static int au1200fb_pm_callback(au1xxx_power_dev_t *dev, | ||
3759 | au1xxx_request_t request, void *data) { | ||
3760 | int retval = -1; | ||
3761 | unsigned int d = 0; | ||
3762 | unsigned int brightness = 0; | ||
3763 | |||
3764 | if (request == AU1XXX_PM_SLEEP) { | ||
3765 | board_au1200fb_panel_shutdown(); | ||
3766 | } | ||
3767 | else if (request == AU1XXX_PM_WAKEUP) { | ||
3768 | if(dev->prev_state == SLEEP_STATE) | ||
3769 | { | ||
3770 | int plane; | ||
3771 | au1200_setpanel(panel); | ||
3772 | for (plane = 0; plane < CONFIG_FB_AU1200_DEVS; ++plane) { | ||
3773 | struct au1200fb_device *fbdev; | ||
3774 | fbdev = &_au1200fb_devices[plane]; | ||
3775 | au1200fb_fb_set_par(&fbdev->fb_info); | ||
3776 | } | ||
3777 | } | ||
3778 | |||
3779 | d = *((unsigned int*)data); | ||
3780 | if(d <=10) brightness = 26; | ||
3781 | else if(d<=20) brightness = 51; | ||
3782 | else if(d<=30) brightness = 77; | ||
3783 | else if(d<=40) brightness = 102; | ||
3784 | else if(d<=50) brightness = 128; | ||
3785 | else if(d<=60) brightness = 153; | ||
3786 | else if(d<=70) brightness = 179; | ||
3787 | else if(d<=80) brightness = 204; | ||
3788 | else if(d<=90) brightness = 230; | ||
3789 | else brightness = 255; | ||
3790 | set_brightness(brightness); | ||
3791 | } else if (request == AU1XXX_PM_GETSTATUS) { | ||
3792 | return dev->cur_state; | ||
3793 | } else if (request == AU1XXX_PM_ACCESS) { | ||
3794 | if (dev->cur_state != SLEEP_STATE) | ||
3795 | return retval; | ||
3796 | else { | ||
3797 | au1200_setpanel(panel); | ||
3798 | } | ||
3799 | } else if (request == AU1XXX_PM_IDLE) { | ||
3800 | } else if (request == AU1XXX_PM_CLEANUP) { | ||
3801 | } | ||
3802 | |||
3803 | return retval; | ||
3804 | } | ||
3805 | #endif | ||
3806 | |||
3807 | static int __init au1200fb_init(void) | ||
3808 | { | ||
3809 | print_info("" DRIVER_DESC ""); | ||
3810 | |||
3811 | /* Setup driver with options */ | ||
3812 | au1200fb_setup(); | ||
3813 | |||
3814 | /* Point to the panel selected */ | ||
3815 | panel = &known_lcd_panels[panel_index]; | ||
3816 | win = &windows[window_index]; | ||
3817 | |||
3818 | printk(DRIVER_NAME ": Panel %d %s\n", panel_index, panel->name); | ||
3819 | printk(DRIVER_NAME ": Win %d %s\n", window_index, win->name); | ||
3820 | |||
3821 | /* Kickstart the panel, the framebuffers/windows come soon enough */ | ||
3822 | au1200_setpanel(panel); | ||
3823 | |||
3824 | #ifdef CONFIG_PM | ||
3825 | LCD_pm_dev = new_au1xxx_power_device("LCD", &au1200fb_pm_callback, NULL); | ||
3826 | if ( LCD_pm_dev == NULL) | ||
3827 | printk(KERN_INFO "Unable to create a power management device entry for the au1200fb.\n"); | ||
3828 | else | ||
3829 | printk(KERN_INFO "Power management device entry for the au1200fb loaded.\n"); | ||
3830 | #endif | ||
3831 | |||
3832 | return driver_register(&au1200fb_driver); | ||
3833 | } | ||
3834 | |||
3835 | static void __exit au1200fb_cleanup(void) | ||
3836 | { | ||
3837 | driver_unregister(&au1200fb_driver); | ||
3838 | } | ||
3839 | |||
3840 | module_init(au1200fb_init); | ||
3841 | module_exit(au1200fb_cleanup); | ||
3842 | |||
3843 | MODULE_DESCRIPTION(DRIVER_DESC); | ||
3844 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/video/fbsysfs.c b/drivers/video/fbsysfs.c index b72b05250a9d..34e07399756b 100644 --- a/drivers/video/fbsysfs.c +++ b/drivers/video/fbsysfs.c | |||
@@ -305,94 +305,6 @@ static ssize_t show_stride(struct class_device *class_device, char *buf) | |||
305 | return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->fix.line_length); | 305 | return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->fix.line_length); |
306 | } | 306 | } |
307 | 307 | ||
308 | /* Format for cmap is "%02x%c%4x%4x%4x\n" */ | ||
309 | /* %02x entry %c transp %4x red %4x blue %4x green \n */ | ||
310 | /* 256 rows at 16 chars equals 4096, the normal page size */ | ||
311 | /* the code will automatically adjust for different page sizes */ | ||
312 | static ssize_t store_cmap(struct class_device *class_device, const char *buf, | ||
313 | size_t count) | ||
314 | { | ||
315 | struct fb_info *fb_info = class_get_devdata(class_device); | ||
316 | int rc, i, start, length, transp = 0; | ||
317 | |||
318 | if ((count > PAGE_SIZE) || ((count % 16) != 0)) | ||
319 | return -EINVAL; | ||
320 | |||
321 | if (!fb_info->fbops->fb_setcolreg && !fb_info->fbops->fb_setcmap) | ||
322 | return -EINVAL; | ||
323 | |||
324 | sscanf(buf, "%02x", &start); | ||
325 | length = count / 16; | ||
326 | |||
327 | for (i = 0; i < length; i++) | ||
328 | if (buf[i * 16 + 2] != ' ') | ||
329 | transp = 1; | ||
330 | |||
331 | /* If we can batch, do it */ | ||
332 | if (fb_info->fbops->fb_setcmap && length > 1) { | ||
333 | struct fb_cmap umap; | ||
334 | |||
335 | memset(&umap, 0, sizeof(umap)); | ||
336 | if ((rc = fb_alloc_cmap(&umap, length, transp))) | ||
337 | return rc; | ||
338 | |||
339 | umap.start = start; | ||
340 | for (i = 0; i < length; i++) { | ||
341 | sscanf(&buf[i * 16 + 3], "%4hx", &umap.red[i]); | ||
342 | sscanf(&buf[i * 16 + 7], "%4hx", &umap.blue[i]); | ||
343 | sscanf(&buf[i * 16 + 11], "%4hx", &umap.green[i]); | ||
344 | if (transp) | ||
345 | umap.transp[i] = (buf[i * 16 + 2] != ' '); | ||
346 | } | ||
347 | rc = fb_info->fbops->fb_setcmap(&umap, fb_info); | ||
348 | fb_copy_cmap(&umap, &fb_info->cmap); | ||
349 | fb_dealloc_cmap(&umap); | ||
350 | |||
351 | return rc ?: count; | ||
352 | } | ||
353 | for (i = 0; i < length; i++) { | ||
354 | u16 red, blue, green, tsp; | ||
355 | |||
356 | sscanf(&buf[i * 16 + 3], "%4hx", &red); | ||
357 | sscanf(&buf[i * 16 + 7], "%4hx", &blue); | ||
358 | sscanf(&buf[i * 16 + 11], "%4hx", &green); | ||
359 | tsp = (buf[i * 16 + 2] != ' '); | ||
360 | if ((rc = fb_info->fbops->fb_setcolreg(start++, | ||
361 | red, green, blue, tsp, fb_info))) | ||
362 | return rc; | ||
363 | |||
364 | fb_info->cmap.red[i] = red; | ||
365 | fb_info->cmap.blue[i] = blue; | ||
366 | fb_info->cmap.green[i] = green; | ||
367 | if (transp) | ||
368 | fb_info->cmap.transp[i] = tsp; | ||
369 | } | ||
370 | return count; | ||
371 | } | ||
372 | |||
373 | static ssize_t show_cmap(struct class_device *class_device, char *buf) | ||
374 | { | ||
375 | struct fb_info *fb_info = class_get_devdata(class_device); | ||
376 | unsigned int i; | ||
377 | |||
378 | if (!fb_info->cmap.red || !fb_info->cmap.blue || | ||
379 | !fb_info->cmap.green) | ||
380 | return -EINVAL; | ||
381 | |||
382 | if (fb_info->cmap.len > PAGE_SIZE / 16) | ||
383 | return -EINVAL; | ||
384 | |||
385 | /* don't mess with the format, the buffer is PAGE_SIZE */ | ||
386 | /* 256 entries at 16 chars per line equals 4096 = PAGE_SIZE */ | ||
387 | for (i = 0; i < fb_info->cmap.len; i++) { | ||
388 | snprintf(&buf[ i * 16], PAGE_SIZE - i * 16, "%02x%c%4x%4x%4x\n", i + fb_info->cmap.start, | ||
389 | ((fb_info->cmap.transp && fb_info->cmap.transp[i]) ? '*' : ' '), | ||
390 | fb_info->cmap.red[i], fb_info->cmap.blue[i], | ||
391 | fb_info->cmap.green[i]); | ||
392 | } | ||
393 | return 16 * fb_info->cmap.len; | ||
394 | } | ||
395 | |||
396 | static ssize_t store_blank(struct class_device *class_device, const char * buf, | 308 | static ssize_t store_blank(struct class_device *class_device, const char * buf, |
397 | size_t count) | 309 | size_t count) |
398 | { | 310 | { |
@@ -502,10 +414,12 @@ static ssize_t show_fbstate(struct class_device *class_device, char *buf) | |||
502 | return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->state); | 414 | return snprintf(buf, PAGE_SIZE, "%d\n", fb_info->state); |
503 | } | 415 | } |
504 | 416 | ||
417 | /* When cmap is added back in it should be a binary attribute | ||
418 | * not a text one. Consideration should also be given to converting | ||
419 | * fbdev to use configfs instead of sysfs */ | ||
505 | static struct class_device_attribute class_device_attrs[] = { | 420 | static struct class_device_attribute class_device_attrs[] = { |
506 | __ATTR(bits_per_pixel, S_IRUGO|S_IWUSR, show_bpp, store_bpp), | 421 | __ATTR(bits_per_pixel, S_IRUGO|S_IWUSR, show_bpp, store_bpp), |
507 | __ATTR(blank, S_IRUGO|S_IWUSR, show_blank, store_blank), | 422 | __ATTR(blank, S_IRUGO|S_IWUSR, show_blank, store_blank), |
508 | __ATTR(color_map, S_IRUGO|S_IWUSR, show_cmap, store_cmap), | ||
509 | __ATTR(console, S_IRUGO|S_IWUSR, show_console, store_console), | 423 | __ATTR(console, S_IRUGO|S_IWUSR, show_console, store_console), |
510 | __ATTR(cursor, S_IRUGO|S_IWUSR, show_cursor, store_cursor), | 424 | __ATTR(cursor, S_IRUGO|S_IWUSR, show_cursor, store_cursor), |
511 | __ATTR(mode, S_IRUGO|S_IWUSR, show_mode, store_mode), | 425 | __ATTR(mode, S_IRUGO|S_IWUSR, show_mode, store_mode), |
diff --git a/fs/block_dev.c b/fs/block_dev.c index af88c43043d5..f5958f413bd1 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -1104,6 +1104,8 @@ const struct file_operations def_blk_fops = { | |||
1104 | .readv = generic_file_readv, | 1104 | .readv = generic_file_readv, |
1105 | .writev = generic_file_write_nolock, | 1105 | .writev = generic_file_write_nolock, |
1106 | .sendfile = generic_file_sendfile, | 1106 | .sendfile = generic_file_sendfile, |
1107 | .splice_read = generic_file_splice_read, | ||
1108 | .splice_write = generic_file_splice_write, | ||
1107 | }; | 1109 | }; |
1108 | 1110 | ||
1109 | int ioctl_by_bdev(struct block_device *bdev, unsigned cmd, unsigned long arg) | 1111 | int ioctl_by_bdev(struct block_device *bdev, unsigned cmd, unsigned long arg) |
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index aaf151cb5822..d2ec806a4f32 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -3447,10 +3447,13 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo, | |||
3447 | pSesInfo->server->secMode, | 3447 | pSesInfo->server->secMode, |
3448 | pSesInfo->server->capabilities, | 3448 | pSesInfo->server->capabilities, |
3449 | pSesInfo->server->timeZone)); | 3449 | pSesInfo->server->timeZone)); |
3450 | #ifdef CONFIG_CIFS_EXPERIMENTAL | ||
3450 | if(experimEnabled > 1) | 3451 | if(experimEnabled > 1) |
3451 | rc = CIFS_SessSetup(xid, pSesInfo, CIFS_NTLM /* type */, | 3452 | rc = CIFS_SessSetup(xid, pSesInfo, CIFS_NTLM /* type */, |
3452 | &ntlmv2_flag, nls_info); | 3453 | &ntlmv2_flag, nls_info); |
3453 | else if (extended_security | 3454 | else |
3455 | #endif | ||
3456 | if (extended_security | ||
3454 | && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY) | 3457 | && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY) |
3455 | && (pSesInfo->server->secType == NTLMSSP)) { | 3458 | && (pSesInfo->server->secType == NTLMSSP)) { |
3456 | cFYI(1, ("New style sesssetup")); | 3459 | cFYI(1, ("New style sesssetup")); |
diff --git a/fs/compat.c b/fs/compat.c index 7f8e26ea427c..970888aad843 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -1217,6 +1217,10 @@ static ssize_t compat_do_readv_writev(int type, struct file *file, | |||
1217 | if (ret < 0) | 1217 | if (ret < 0) |
1218 | goto out; | 1218 | goto out; |
1219 | 1219 | ||
1220 | ret = security_file_permission(file, type == READ ? MAY_READ:MAY_WRITE); | ||
1221 | if (ret) | ||
1222 | goto out; | ||
1223 | |||
1220 | fnv = NULL; | 1224 | fnv = NULL; |
1221 | if (type == READ) { | 1225 | if (type == READ) { |
1222 | fn = file->f_op->read; | 1226 | fn = file->f_op->read; |
@@ -1313,6 +1317,26 @@ out: | |||
1313 | return ret; | 1317 | return ret; |
1314 | } | 1318 | } |
1315 | 1319 | ||
1320 | asmlinkage long | ||
1321 | compat_sys_vmsplice(int fd, const struct compat_iovec __user *iov32, | ||
1322 | unsigned int nr_segs, unsigned int flags) | ||
1323 | { | ||
1324 | unsigned i; | ||
1325 | struct iovec *iov; | ||
1326 | if (nr_segs > UIO_MAXIOV) | ||
1327 | return -EINVAL; | ||
1328 | iov = compat_alloc_user_space(nr_segs * sizeof(struct iovec)); | ||
1329 | for (i = 0; i < nr_segs; i++) { | ||
1330 | struct compat_iovec v; | ||
1331 | if (get_user(v.iov_base, &iov32[i].iov_base) || | ||
1332 | get_user(v.iov_len, &iov32[i].iov_len) || | ||
1333 | put_user(compat_ptr(v.iov_base), &iov[i].iov_base) || | ||
1334 | put_user(v.iov_len, &iov[i].iov_len)) | ||
1335 | return -EFAULT; | ||
1336 | } | ||
1337 | return sys_vmsplice(fd, iov, nr_segs, flags); | ||
1338 | } | ||
1339 | |||
1316 | /* | 1340 | /* |
1317 | * Exactly like fs/open.c:sys_open(), except that it doesn't set the | 1341 | * Exactly like fs/open.c:sys_open(), except that it doesn't set the |
1318 | * O_LARGEFILE flag. | 1342 | * O_LARGEFILE flag. |
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index 48ae0339af17..2edd7eec88fd 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c | |||
@@ -711,7 +711,7 @@ static int ext3_splice_branch(handle_t *handle, struct inode *inode, | |||
711 | * direct blocks blocks | 711 | * direct blocks blocks |
712 | */ | 712 | */ |
713 | if (num == 0 && blks > 1) { | 713 | if (num == 0 && blks > 1) { |
714 | current_block = le32_to_cpu(where->key + 1); | 714 | current_block = le32_to_cpu(where->key) + 1; |
715 | for (i = 1; i < blks; i++) | 715 | for (i = 1; i < blks; i++) |
716 | *(where->p + i ) = cpu_to_le32(current_block++); | 716 | *(where->p + i ) = cpu_to_le32(current_block++); |
717 | } | 717 | } |
@@ -724,7 +724,7 @@ static int ext3_splice_branch(handle_t *handle, struct inode *inode, | |||
724 | if (block_i) { | 724 | if (block_i) { |
725 | block_i->last_alloc_logical_block = block + blks - 1; | 725 | block_i->last_alloc_logical_block = block + blks - 1; |
726 | block_i->last_alloc_physical_block = | 726 | block_i->last_alloc_physical_block = |
727 | le32_to_cpu(where[num].key + blks - 1); | 727 | le32_to_cpu(where[num].key) + blks - 1; |
728 | } | 728 | } |
729 | 729 | ||
730 | /* We are done with atomic stuff, now do the rest of housekeeping */ | 730 | /* We are done with atomic stuff, now do the rest of housekeeping */ |
@@ -814,11 +814,13 @@ int ext3_get_blocks_handle(handle_t *handle, struct inode *inode, | |||
814 | 814 | ||
815 | /* Simplest case - block found, no allocation needed */ | 815 | /* Simplest case - block found, no allocation needed */ |
816 | if (!partial) { | 816 | if (!partial) { |
817 | first_block = chain[depth - 1].key; | 817 | first_block = le32_to_cpu(chain[depth - 1].key); |
818 | clear_buffer_new(bh_result); | 818 | clear_buffer_new(bh_result); |
819 | count++; | 819 | count++; |
820 | /*map more blocks*/ | 820 | /*map more blocks*/ |
821 | while (count < maxblocks && count <= blocks_to_boundary) { | 821 | while (count < maxblocks && count <= blocks_to_boundary) { |
822 | unsigned long blk; | ||
823 | |||
822 | if (!verify_chain(chain, partial)) { | 824 | if (!verify_chain(chain, partial)) { |
823 | /* | 825 | /* |
824 | * Indirect block might be removed by | 826 | * Indirect block might be removed by |
@@ -831,8 +833,9 @@ int ext3_get_blocks_handle(handle_t *handle, struct inode *inode, | |||
831 | count = 0; | 833 | count = 0; |
832 | break; | 834 | break; |
833 | } | 835 | } |
834 | if (le32_to_cpu(*(chain[depth-1].p+count) == | 836 | blk = le32_to_cpu(*(chain[depth-1].p + count)); |
835 | (first_block + count))) | 837 | |
838 | if (blk == first_block + count) | ||
836 | count++; | 839 | count++; |
837 | else | 840 | else |
838 | break; | 841 | break; |
diff --git a/fs/ext3/ioctl.c b/fs/ext3/ioctl.c index aaf1da17b6d4..8c22aa9a7fbb 100644 --- a/fs/ext3/ioctl.c +++ b/fs/ext3/ioctl.c | |||
@@ -48,6 +48,7 @@ int ext3_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
48 | if (!S_ISDIR(inode->i_mode)) | 48 | if (!S_ISDIR(inode->i_mode)) |
49 | flags &= ~EXT3_DIRSYNC_FL; | 49 | flags &= ~EXT3_DIRSYNC_FL; |
50 | 50 | ||
51 | mutex_lock(&inode->i_mutex); | ||
51 | oldflags = ei->i_flags; | 52 | oldflags = ei->i_flags; |
52 | 53 | ||
53 | /* The JOURNAL_DATA flag is modifiable only by root */ | 54 | /* The JOURNAL_DATA flag is modifiable only by root */ |
@@ -60,8 +61,10 @@ int ext3_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
60 | * This test looks nicer. Thanks to Pauline Middelink | 61 | * This test looks nicer. Thanks to Pauline Middelink |
61 | */ | 62 | */ |
62 | if ((flags ^ oldflags) & (EXT3_APPEND_FL | EXT3_IMMUTABLE_FL)) { | 63 | if ((flags ^ oldflags) & (EXT3_APPEND_FL | EXT3_IMMUTABLE_FL)) { |
63 | if (!capable(CAP_LINUX_IMMUTABLE)) | 64 | if (!capable(CAP_LINUX_IMMUTABLE)) { |
65 | mutex_unlock(&inode->i_mutex); | ||
64 | return -EPERM; | 66 | return -EPERM; |
67 | } | ||
65 | } | 68 | } |
66 | 69 | ||
67 | /* | 70 | /* |
@@ -69,14 +72,18 @@ int ext3_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
69 | * the relevant capability. | 72 | * the relevant capability. |
70 | */ | 73 | */ |
71 | if ((jflag ^ oldflags) & (EXT3_JOURNAL_DATA_FL)) { | 74 | if ((jflag ^ oldflags) & (EXT3_JOURNAL_DATA_FL)) { |
72 | if (!capable(CAP_SYS_RESOURCE)) | 75 | if (!capable(CAP_SYS_RESOURCE)) { |
76 | mutex_unlock(&inode->i_mutex); | ||
73 | return -EPERM; | 77 | return -EPERM; |
78 | } | ||
74 | } | 79 | } |
75 | 80 | ||
76 | 81 | ||
77 | handle = ext3_journal_start(inode, 1); | 82 | handle = ext3_journal_start(inode, 1); |
78 | if (IS_ERR(handle)) | 83 | if (IS_ERR(handle)) { |
84 | mutex_unlock(&inode->i_mutex); | ||
79 | return PTR_ERR(handle); | 85 | return PTR_ERR(handle); |
86 | } | ||
80 | if (IS_SYNC(inode)) | 87 | if (IS_SYNC(inode)) |
81 | handle->h_sync = 1; | 88 | handle->h_sync = 1; |
82 | err = ext3_reserve_inode_write(handle, inode, &iloc); | 89 | err = ext3_reserve_inode_write(handle, inode, &iloc); |
@@ -93,11 +100,14 @@ int ext3_ioctl (struct inode * inode, struct file * filp, unsigned int cmd, | |||
93 | err = ext3_mark_iloc_dirty(handle, inode, &iloc); | 100 | err = ext3_mark_iloc_dirty(handle, inode, &iloc); |
94 | flags_err: | 101 | flags_err: |
95 | ext3_journal_stop(handle); | 102 | ext3_journal_stop(handle); |
96 | if (err) | 103 | if (err) { |
104 | mutex_unlock(&inode->i_mutex); | ||
97 | return err; | 105 | return err; |
106 | } | ||
98 | 107 | ||
99 | if ((jflag ^ oldflags) & (EXT3_JOURNAL_DATA_FL)) | 108 | if ((jflag ^ oldflags) & (EXT3_JOURNAL_DATA_FL)) |
100 | err = ext3_change_inode_journal_flag(inode, jflag); | 109 | err = ext3_change_inode_journal_flag(inode, jflag); |
110 | mutex_unlock(&inode->i_mutex); | ||
101 | return err; | 111 | return err; |
102 | } | 112 | } |
103 | case EXT3_IOC_GETVERSION: | 113 | case EXT3_IOC_GETVERSION: |
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c index c5ffa8523968..8aac5334680d 100644 --- a/fs/ext3/resize.c +++ b/fs/ext3/resize.c | |||
@@ -213,7 +213,7 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
213 | goto exit_bh; | 213 | goto exit_bh; |
214 | } | 214 | } |
215 | lock_buffer(bh); | 215 | lock_buffer(bh); |
216 | memcpy(gdb->b_data, sbi->s_group_desc[i], bh->b_size); | 216 | memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, bh->b_size); |
217 | set_buffer_uptodate(gdb); | 217 | set_buffer_uptodate(gdb); |
218 | unlock_buffer(bh); | 218 | unlock_buffer(bh); |
219 | ext3_journal_dirty_metadata(handle, gdb); | 219 | ext3_journal_dirty_metadata(handle, gdb); |
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index cc750c68fe70..104a62dadb94 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c | |||
@@ -128,14 +128,24 @@ void fuse_put_request(struct fuse_conn *fc, struct fuse_req *req) | |||
128 | } | 128 | } |
129 | } | 129 | } |
130 | 130 | ||
131 | void fuse_remove_background(struct fuse_conn *fc, struct fuse_req *req) | 131 | /* |
132 | * Called with sbput_sem held for read (request_end) or write | ||
133 | * (fuse_put_super). By the time fuse_put_super() is finished, all | ||
134 | * inodes belonging to background requests must be released, so the | ||
135 | * iputs have to be done within the locked region. | ||
136 | */ | ||
137 | void fuse_release_background(struct fuse_conn *fc, struct fuse_req *req) | ||
132 | { | 138 | { |
133 | list_del_init(&req->bg_entry); | 139 | iput(req->inode); |
140 | iput(req->inode2); | ||
141 | spin_lock(&fc->lock); | ||
142 | list_del(&req->bg_entry); | ||
134 | if (fc->num_background == FUSE_MAX_BACKGROUND) { | 143 | if (fc->num_background == FUSE_MAX_BACKGROUND) { |
135 | fc->blocked = 0; | 144 | fc->blocked = 0; |
136 | wake_up_all(&fc->blocked_waitq); | 145 | wake_up_all(&fc->blocked_waitq); |
137 | } | 146 | } |
138 | fc->num_background--; | 147 | fc->num_background--; |
148 | spin_unlock(&fc->lock); | ||
139 | } | 149 | } |
140 | 150 | ||
141 | /* | 151 | /* |
@@ -165,27 +175,22 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req) | |||
165 | wake_up(&req->waitq); | 175 | wake_up(&req->waitq); |
166 | fuse_put_request(fc, req); | 176 | fuse_put_request(fc, req); |
167 | } else { | 177 | } else { |
168 | struct inode *inode = req->inode; | ||
169 | struct inode *inode2 = req->inode2; | ||
170 | struct file *file = req->file; | ||
171 | void (*end) (struct fuse_conn *, struct fuse_req *) = req->end; | 178 | void (*end) (struct fuse_conn *, struct fuse_req *) = req->end; |
172 | req->end = NULL; | 179 | req->end = NULL; |
173 | req->inode = NULL; | ||
174 | req->inode2 = NULL; | ||
175 | req->file = NULL; | ||
176 | if (!list_empty(&req->bg_entry)) | ||
177 | fuse_remove_background(fc, req); | ||
178 | spin_unlock(&fc->lock); | 180 | spin_unlock(&fc->lock); |
181 | down_read(&fc->sbput_sem); | ||
182 | if (fc->mounted) | ||
183 | fuse_release_background(fc, req); | ||
184 | up_read(&fc->sbput_sem); | ||
185 | |||
186 | /* fput must go outside sbput_sem, otherwise it can deadlock */ | ||
187 | if (req->file) | ||
188 | fput(req->file); | ||
179 | 189 | ||
180 | if (end) | 190 | if (end) |
181 | end(fc, req); | 191 | end(fc, req); |
182 | else | 192 | else |
183 | fuse_put_request(fc, req); | 193 | fuse_put_request(fc, req); |
184 | |||
185 | if (file) | ||
186 | fput(file); | ||
187 | iput(inode); | ||
188 | iput(inode2); | ||
189 | } | 194 | } |
190 | } | 195 | } |
191 | 196 | ||
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 59661c481d9d..0474202cb5dc 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -258,9 +258,15 @@ struct fuse_conn { | |||
258 | /** waitq for blocked connection */ | 258 | /** waitq for blocked connection */ |
259 | wait_queue_head_t blocked_waitq; | 259 | wait_queue_head_t blocked_waitq; |
260 | 260 | ||
261 | /** RW semaphore for exclusion with fuse_put_super() */ | ||
262 | struct rw_semaphore sbput_sem; | ||
263 | |||
261 | /** The next unique request id */ | 264 | /** The next unique request id */ |
262 | u64 reqctr; | 265 | u64 reqctr; |
263 | 266 | ||
267 | /** Mount is active */ | ||
268 | unsigned mounted; | ||
269 | |||
264 | /** Connection established, cleared on umount, connection | 270 | /** Connection established, cleared on umount, connection |
265 | abort and device release */ | 271 | abort and device release */ |
266 | unsigned connected; | 272 | unsigned connected; |
@@ -471,11 +477,11 @@ void request_send_noreply(struct fuse_conn *fc, struct fuse_req *req); | |||
471 | void request_send_background(struct fuse_conn *fc, struct fuse_req *req); | 477 | void request_send_background(struct fuse_conn *fc, struct fuse_req *req); |
472 | 478 | ||
473 | /** | 479 | /** |
474 | * Remove request from the the background list | 480 | * Release inodes and file associated with background request |
475 | */ | 481 | */ |
476 | void fuse_remove_background(struct fuse_conn *fc, struct fuse_req *req); | 482 | void fuse_release_background(struct fuse_conn *fc, struct fuse_req *req); |
477 | 483 | ||
478 | /** Abort all requests */ | 484 | /* Abort all requests */ |
479 | void fuse_abort_conn(struct fuse_conn *fc); | 485 | void fuse_abort_conn(struct fuse_conn *fc); |
480 | 486 | ||
481 | /** | 487 | /** |
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 43a6fc0db8a7..7627022446b2 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
@@ -204,26 +204,17 @@ static void fuse_put_super(struct super_block *sb) | |||
204 | { | 204 | { |
205 | struct fuse_conn *fc = get_fuse_conn_super(sb); | 205 | struct fuse_conn *fc = get_fuse_conn_super(sb); |
206 | 206 | ||
207 | down_write(&fc->sbput_sem); | ||
208 | while (!list_empty(&fc->background)) | ||
209 | fuse_release_background(fc, | ||
210 | list_entry(fc->background.next, | ||
211 | struct fuse_req, bg_entry)); | ||
212 | |||
207 | spin_lock(&fc->lock); | 213 | spin_lock(&fc->lock); |
214 | fc->mounted = 0; | ||
208 | fc->connected = 0; | 215 | fc->connected = 0; |
209 | while (!list_empty(&fc->background)) { | ||
210 | struct fuse_req *req = list_entry(fc->background.next, | ||
211 | struct fuse_req, bg_entry); | ||
212 | struct inode *inode = req->inode; | ||
213 | struct inode *inode2 = req->inode2; | ||
214 | |||
215 | /* File would hold a reference to vfsmount */ | ||
216 | BUG_ON(req->file); | ||
217 | req->inode = NULL; | ||
218 | req->inode2 = NULL; | ||
219 | fuse_remove_background(fc, req); | ||
220 | |||
221 | spin_unlock(&fc->lock); | ||
222 | iput(inode); | ||
223 | iput(inode2); | ||
224 | spin_lock(&fc->lock); | ||
225 | } | ||
226 | spin_unlock(&fc->lock); | 216 | spin_unlock(&fc->lock); |
217 | up_write(&fc->sbput_sem); | ||
227 | /* Flush all readers on this fs */ | 218 | /* Flush all readers on this fs */ |
228 | kill_fasync(&fc->fasync, SIGIO, POLL_IN); | 219 | kill_fasync(&fc->fasync, SIGIO, POLL_IN); |
229 | wake_up_all(&fc->waitq); | 220 | wake_up_all(&fc->waitq); |
@@ -395,6 +386,7 @@ static struct fuse_conn *new_conn(void) | |||
395 | INIT_LIST_HEAD(&fc->processing); | 386 | INIT_LIST_HEAD(&fc->processing); |
396 | INIT_LIST_HEAD(&fc->io); | 387 | INIT_LIST_HEAD(&fc->io); |
397 | INIT_LIST_HEAD(&fc->background); | 388 | INIT_LIST_HEAD(&fc->background); |
389 | init_rwsem(&fc->sbput_sem); | ||
398 | kobj_set_kset_s(fc, connections_subsys); | 390 | kobj_set_kset_s(fc, connections_subsys); |
399 | kobject_init(&fc->kobj); | 391 | kobject_init(&fc->kobj); |
400 | atomic_set(&fc->num_waiting, 0); | 392 | atomic_set(&fc->num_waiting, 0); |
@@ -508,11 +500,6 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) | |||
508 | if (file->f_op != &fuse_dev_operations) | 500 | if (file->f_op != &fuse_dev_operations) |
509 | return -EINVAL; | 501 | return -EINVAL; |
510 | 502 | ||
511 | /* Setting file->private_data can't race with other mount() | ||
512 | instances, since BKL is held for ->get_sb() */ | ||
513 | if (file->private_data) | ||
514 | return -EINVAL; | ||
515 | |||
516 | fc = new_conn(); | 503 | fc = new_conn(); |
517 | if (!fc) | 504 | if (!fc) |
518 | return -ENOMEM; | 505 | return -ENOMEM; |
@@ -548,7 +535,14 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) | |||
548 | if (err) | 535 | if (err) |
549 | goto err_free_req; | 536 | goto err_free_req; |
550 | 537 | ||
538 | /* Setting file->private_data can't race with other mount() | ||
539 | instances, since BKL is held for ->get_sb() */ | ||
540 | err = -EINVAL; | ||
541 | if (file->private_data) | ||
542 | goto err_kobject_del; | ||
543 | |||
551 | sb->s_root = root_dentry; | 544 | sb->s_root = root_dentry; |
545 | fc->mounted = 1; | ||
552 | fc->connected = 1; | 546 | fc->connected = 1; |
553 | kobject_get(&fc->kobj); | 547 | kobject_get(&fc->kobj); |
554 | file->private_data = fc; | 548 | file->private_data = fc; |
@@ -563,6 +557,8 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) | |||
563 | 557 | ||
564 | return 0; | 558 | return 0; |
565 | 559 | ||
560 | err_kobject_del: | ||
561 | kobject_del(&fc->kobj); | ||
566 | err_free_req: | 562 | err_free_req: |
567 | fuse_request_free(init_req); | 563 | fuse_request_free(init_req); |
568 | err_put_root: | 564 | err_put_root: |
@@ -55,7 +55,8 @@ void pipe_wait(struct pipe_inode_info *pipe) | |||
55 | } | 55 | } |
56 | 56 | ||
57 | static int | 57 | static int |
58 | pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len) | 58 | pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len, |
59 | int atomic) | ||
59 | { | 60 | { |
60 | unsigned long copy; | 61 | unsigned long copy; |
61 | 62 | ||
@@ -64,8 +65,13 @@ pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len) | |||
64 | iov++; | 65 | iov++; |
65 | copy = min_t(unsigned long, len, iov->iov_len); | 66 | copy = min_t(unsigned long, len, iov->iov_len); |
66 | 67 | ||
67 | if (copy_from_user(to, iov->iov_base, copy)) | 68 | if (atomic) { |
68 | return -EFAULT; | 69 | if (__copy_from_user_inatomic(to, iov->iov_base, copy)) |
70 | return -EFAULT; | ||
71 | } else { | ||
72 | if (copy_from_user(to, iov->iov_base, copy)) | ||
73 | return -EFAULT; | ||
74 | } | ||
69 | to += copy; | 75 | to += copy; |
70 | len -= copy; | 76 | len -= copy; |
71 | iov->iov_base += copy; | 77 | iov->iov_base += copy; |
@@ -75,7 +81,8 @@ pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len) | |||
75 | } | 81 | } |
76 | 82 | ||
77 | static int | 83 | static int |
78 | pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len) | 84 | pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len, |
85 | int atomic) | ||
79 | { | 86 | { |
80 | unsigned long copy; | 87 | unsigned long copy; |
81 | 88 | ||
@@ -84,8 +91,13 @@ pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len) | |||
84 | iov++; | 91 | iov++; |
85 | copy = min_t(unsigned long, len, iov->iov_len); | 92 | copy = min_t(unsigned long, len, iov->iov_len); |
86 | 93 | ||
87 | if (copy_to_user(iov->iov_base, from, copy)) | 94 | if (atomic) { |
88 | return -EFAULT; | 95 | if (__copy_to_user_inatomic(iov->iov_base, from, copy)) |
96 | return -EFAULT; | ||
97 | } else { | ||
98 | if (copy_to_user(iov->iov_base, from, copy)) | ||
99 | return -EFAULT; | ||
100 | } | ||
89 | from += copy; | 101 | from += copy; |
90 | len -= copy; | 102 | len -= copy; |
91 | iov->iov_base += copy; | 103 | iov->iov_base += copy; |
@@ -94,13 +106,52 @@ pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len) | |||
94 | return 0; | 106 | return 0; |
95 | } | 107 | } |
96 | 108 | ||
109 | /* | ||
110 | * Attempt to pre-fault in the user memory, so we can use atomic copies. | ||
111 | * Returns the number of bytes not faulted in. | ||
112 | */ | ||
113 | static int iov_fault_in_pages_write(struct iovec *iov, unsigned long len) | ||
114 | { | ||
115 | while (!iov->iov_len) | ||
116 | iov++; | ||
117 | |||
118 | while (len > 0) { | ||
119 | unsigned long this_len; | ||
120 | |||
121 | this_len = min_t(unsigned long, len, iov->iov_len); | ||
122 | if (fault_in_pages_writeable(iov->iov_base, this_len)) | ||
123 | break; | ||
124 | |||
125 | len -= this_len; | ||
126 | iov++; | ||
127 | } | ||
128 | |||
129 | return len; | ||
130 | } | ||
131 | |||
132 | /* | ||
133 | * Pre-fault in the user memory, so we can use atomic copies. | ||
134 | */ | ||
135 | static void iov_fault_in_pages_read(struct iovec *iov, unsigned long len) | ||
136 | { | ||
137 | while (!iov->iov_len) | ||
138 | iov++; | ||
139 | |||
140 | while (len > 0) { | ||
141 | unsigned long this_len; | ||
142 | |||
143 | this_len = min_t(unsigned long, len, iov->iov_len); | ||
144 | fault_in_pages_readable(iov->iov_base, this_len); | ||
145 | len -= this_len; | ||
146 | iov++; | ||
147 | } | ||
148 | } | ||
149 | |||
97 | static void anon_pipe_buf_release(struct pipe_inode_info *pipe, | 150 | static void anon_pipe_buf_release(struct pipe_inode_info *pipe, |
98 | struct pipe_buffer *buf) | 151 | struct pipe_buffer *buf) |
99 | { | 152 | { |
100 | struct page *page = buf->page; | 153 | struct page *page = buf->page; |
101 | 154 | ||
102 | buf->flags &= ~PIPE_BUF_FLAG_STOLEN; | ||
103 | |||
104 | /* | 155 | /* |
105 | * If nobody else uses this page, and we don't already have a | 156 | * If nobody else uses this page, and we don't already have a |
106 | * temporary page, let's keep track of it as a one-deep | 157 | * temporary page, let's keep track of it as a one-deep |
@@ -112,38 +163,58 @@ static void anon_pipe_buf_release(struct pipe_inode_info *pipe, | |||
112 | page_cache_release(page); | 163 | page_cache_release(page); |
113 | } | 164 | } |
114 | 165 | ||
115 | static void * anon_pipe_buf_map(struct file *file, struct pipe_inode_info *pipe, | 166 | void *generic_pipe_buf_map(struct pipe_inode_info *pipe, |
116 | struct pipe_buffer *buf) | 167 | struct pipe_buffer *buf, int atomic) |
117 | { | 168 | { |
169 | if (atomic) { | ||
170 | buf->flags |= PIPE_BUF_FLAG_ATOMIC; | ||
171 | return kmap_atomic(buf->page, KM_USER0); | ||
172 | } | ||
173 | |||
118 | return kmap(buf->page); | 174 | return kmap(buf->page); |
119 | } | 175 | } |
120 | 176 | ||
121 | static void anon_pipe_buf_unmap(struct pipe_inode_info *pipe, | 177 | void generic_pipe_buf_unmap(struct pipe_inode_info *pipe, |
122 | struct pipe_buffer *buf) | 178 | struct pipe_buffer *buf, void *map_data) |
123 | { | 179 | { |
124 | kunmap(buf->page); | 180 | if (buf->flags & PIPE_BUF_FLAG_ATOMIC) { |
181 | buf->flags &= ~PIPE_BUF_FLAG_ATOMIC; | ||
182 | kunmap_atomic(map_data, KM_USER0); | ||
183 | } else | ||
184 | kunmap(buf->page); | ||
125 | } | 185 | } |
126 | 186 | ||
127 | static int anon_pipe_buf_steal(struct pipe_inode_info *pipe, | 187 | int generic_pipe_buf_steal(struct pipe_inode_info *pipe, |
128 | struct pipe_buffer *buf) | 188 | struct pipe_buffer *buf) |
129 | { | 189 | { |
130 | buf->flags |= PIPE_BUF_FLAG_STOLEN; | 190 | struct page *page = buf->page; |
131 | return 0; | 191 | |
192 | if (page_count(page) == 1) { | ||
193 | lock_page(page); | ||
194 | return 0; | ||
195 | } | ||
196 | |||
197 | return 1; | ||
132 | } | 198 | } |
133 | 199 | ||
134 | static void anon_pipe_buf_get(struct pipe_inode_info *info, | 200 | void generic_pipe_buf_get(struct pipe_inode_info *info, struct pipe_buffer *buf) |
135 | struct pipe_buffer *buf) | ||
136 | { | 201 | { |
137 | page_cache_get(buf->page); | 202 | page_cache_get(buf->page); |
138 | } | 203 | } |
139 | 204 | ||
205 | int generic_pipe_buf_pin(struct pipe_inode_info *info, struct pipe_buffer *buf) | ||
206 | { | ||
207 | return 0; | ||
208 | } | ||
209 | |||
140 | static struct pipe_buf_operations anon_pipe_buf_ops = { | 210 | static struct pipe_buf_operations anon_pipe_buf_ops = { |
141 | .can_merge = 1, | 211 | .can_merge = 1, |
142 | .map = anon_pipe_buf_map, | 212 | .map = generic_pipe_buf_map, |
143 | .unmap = anon_pipe_buf_unmap, | 213 | .unmap = generic_pipe_buf_unmap, |
214 | .pin = generic_pipe_buf_pin, | ||
144 | .release = anon_pipe_buf_release, | 215 | .release = anon_pipe_buf_release, |
145 | .steal = anon_pipe_buf_steal, | 216 | .steal = generic_pipe_buf_steal, |
146 | .get = anon_pipe_buf_get, | 217 | .get = generic_pipe_buf_get, |
147 | }; | 218 | }; |
148 | 219 | ||
149 | static ssize_t | 220 | static ssize_t |
@@ -174,22 +245,33 @@ pipe_readv(struct file *filp, const struct iovec *_iov, | |||
174 | struct pipe_buf_operations *ops = buf->ops; | 245 | struct pipe_buf_operations *ops = buf->ops; |
175 | void *addr; | 246 | void *addr; |
176 | size_t chars = buf->len; | 247 | size_t chars = buf->len; |
177 | int error; | 248 | int error, atomic; |
178 | 249 | ||
179 | if (chars > total_len) | 250 | if (chars > total_len) |
180 | chars = total_len; | 251 | chars = total_len; |
181 | 252 | ||
182 | addr = ops->map(filp, pipe, buf); | 253 | error = ops->pin(pipe, buf); |
183 | if (IS_ERR(addr)) { | 254 | if (error) { |
184 | if (!ret) | 255 | if (!ret) |
185 | ret = PTR_ERR(addr); | 256 | error = ret; |
186 | break; | 257 | break; |
187 | } | 258 | } |
188 | error = pipe_iov_copy_to_user(iov, addr + buf->offset, chars); | 259 | |
189 | ops->unmap(pipe, buf); | 260 | atomic = !iov_fault_in_pages_write(iov, chars); |
261 | redo: | ||
262 | addr = ops->map(pipe, buf, atomic); | ||
263 | error = pipe_iov_copy_to_user(iov, addr + buf->offset, chars, atomic); | ||
264 | ops->unmap(pipe, buf, addr); | ||
190 | if (unlikely(error)) { | 265 | if (unlikely(error)) { |
266 | /* | ||
267 | * Just retry with the slow path if we failed. | ||
268 | */ | ||
269 | if (atomic) { | ||
270 | atomic = 0; | ||
271 | goto redo; | ||
272 | } | ||
191 | if (!ret) | 273 | if (!ret) |
192 | ret = -EFAULT; | 274 | ret = error; |
193 | break; | 275 | break; |
194 | } | 276 | } |
195 | ret += chars; | 277 | ret += chars; |
@@ -293,21 +375,28 @@ pipe_writev(struct file *filp, const struct iovec *_iov, | |||
293 | int offset = buf->offset + buf->len; | 375 | int offset = buf->offset + buf->len; |
294 | 376 | ||
295 | if (ops->can_merge && offset + chars <= PAGE_SIZE) { | 377 | if (ops->can_merge && offset + chars <= PAGE_SIZE) { |
378 | int error, atomic = 1; | ||
296 | void *addr; | 379 | void *addr; |
297 | int error; | ||
298 | 380 | ||
299 | addr = ops->map(filp, pipe, buf); | 381 | error = ops->pin(pipe, buf); |
300 | if (IS_ERR(addr)) { | 382 | if (error) |
301 | error = PTR_ERR(addr); | ||
302 | goto out; | 383 | goto out; |
303 | } | 384 | |
385 | iov_fault_in_pages_read(iov, chars); | ||
386 | redo1: | ||
387 | addr = ops->map(pipe, buf, atomic); | ||
304 | error = pipe_iov_copy_from_user(offset + addr, iov, | 388 | error = pipe_iov_copy_from_user(offset + addr, iov, |
305 | chars); | 389 | chars, atomic); |
306 | ops->unmap(pipe, buf); | 390 | ops->unmap(pipe, buf, addr); |
307 | ret = error; | 391 | ret = error; |
308 | do_wakeup = 1; | 392 | do_wakeup = 1; |
309 | if (error) | 393 | if (error) { |
394 | if (atomic) { | ||
395 | atomic = 0; | ||
396 | goto redo1; | ||
397 | } | ||
310 | goto out; | 398 | goto out; |
399 | } | ||
311 | buf->len += chars; | 400 | buf->len += chars; |
312 | total_len -= chars; | 401 | total_len -= chars; |
313 | ret = chars; | 402 | ret = chars; |
@@ -330,7 +419,8 @@ pipe_writev(struct file *filp, const struct iovec *_iov, | |||
330 | int newbuf = (pipe->curbuf + bufs) & (PIPE_BUFFERS-1); | 419 | int newbuf = (pipe->curbuf + bufs) & (PIPE_BUFFERS-1); |
331 | struct pipe_buffer *buf = pipe->bufs + newbuf; | 420 | struct pipe_buffer *buf = pipe->bufs + newbuf; |
332 | struct page *page = pipe->tmp_page; | 421 | struct page *page = pipe->tmp_page; |
333 | int error; | 422 | char *src; |
423 | int error, atomic = 1; | ||
334 | 424 | ||
335 | if (!page) { | 425 | if (!page) { |
336 | page = alloc_page(GFP_HIGHUSER); | 426 | page = alloc_page(GFP_HIGHUSER); |
@@ -350,11 +440,27 @@ pipe_writev(struct file *filp, const struct iovec *_iov, | |||
350 | if (chars > total_len) | 440 | if (chars > total_len) |
351 | chars = total_len; | 441 | chars = total_len; |
352 | 442 | ||
353 | error = pipe_iov_copy_from_user(kmap(page), iov, chars); | 443 | iov_fault_in_pages_read(iov, chars); |
354 | kunmap(page); | 444 | redo2: |
445 | if (atomic) | ||
446 | src = kmap_atomic(page, KM_USER0); | ||
447 | else | ||
448 | src = kmap(page); | ||
449 | |||
450 | error = pipe_iov_copy_from_user(src, iov, chars, | ||
451 | atomic); | ||
452 | if (atomic) | ||
453 | kunmap_atomic(src, KM_USER0); | ||
454 | else | ||
455 | kunmap(page); | ||
456 | |||
355 | if (unlikely(error)) { | 457 | if (unlikely(error)) { |
458 | if (atomic) { | ||
459 | atomic = 0; | ||
460 | goto redo2; | ||
461 | } | ||
356 | if (!ret) | 462 | if (!ret) |
357 | ret = -EFAULT; | 463 | ret = error; |
358 | break; | 464 | break; |
359 | } | 465 | } |
360 | ret += chars; | 466 | ret += chars; |
diff --git a/fs/splice.c b/fs/splice.c index 0559e7577a04..a285fd746dc0 100644 --- a/fs/splice.c +++ b/fs/splice.c | |||
@@ -27,15 +27,22 @@ | |||
27 | #include <linux/buffer_head.h> | 27 | #include <linux/buffer_head.h> |
28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
29 | #include <linux/syscalls.h> | 29 | #include <linux/syscalls.h> |
30 | #include <linux/uio.h> | ||
31 | |||
32 | struct partial_page { | ||
33 | unsigned int offset; | ||
34 | unsigned int len; | ||
35 | }; | ||
30 | 36 | ||
31 | /* | 37 | /* |
32 | * Passed to the actors | 38 | * Passed to splice_to_pipe |
33 | */ | 39 | */ |
34 | struct splice_desc { | 40 | struct splice_pipe_desc { |
35 | unsigned int len, total_len; /* current and remaining length */ | 41 | struct page **pages; /* page map */ |
42 | struct partial_page *partial; /* pages[] may not be contig */ | ||
43 | int nr_pages; /* number of pages in map */ | ||
36 | unsigned int flags; /* splice flags */ | 44 | unsigned int flags; /* splice flags */ |
37 | struct file *file; /* file to read/write */ | 45 | struct pipe_buf_operations *ops;/* ops associated with output pipe */ |
38 | loff_t pos; /* file position */ | ||
39 | }; | 46 | }; |
40 | 47 | ||
41 | /* | 48 | /* |
@@ -44,7 +51,7 @@ struct splice_desc { | |||
44 | * addition of remove_mapping(). If success is returned, the caller may | 51 | * addition of remove_mapping(). If success is returned, the caller may |
45 | * attempt to reuse this page for another destination. | 52 | * attempt to reuse this page for another destination. |
46 | */ | 53 | */ |
47 | static int page_cache_pipe_buf_steal(struct pipe_inode_info *info, | 54 | static int page_cache_pipe_buf_steal(struct pipe_inode_info *pipe, |
48 | struct pipe_buffer *buf) | 55 | struct pipe_buffer *buf) |
49 | { | 56 | { |
50 | struct page *page = buf->page; | 57 | struct page *page = buf->page; |
@@ -71,21 +78,19 @@ static int page_cache_pipe_buf_steal(struct pipe_inode_info *info, | |||
71 | return 1; | 78 | return 1; |
72 | } | 79 | } |
73 | 80 | ||
74 | buf->flags |= PIPE_BUF_FLAG_STOLEN | PIPE_BUF_FLAG_LRU; | 81 | buf->flags |= PIPE_BUF_FLAG_LRU; |
75 | return 0; | 82 | return 0; |
76 | } | 83 | } |
77 | 84 | ||
78 | static void page_cache_pipe_buf_release(struct pipe_inode_info *info, | 85 | static void page_cache_pipe_buf_release(struct pipe_inode_info *pipe, |
79 | struct pipe_buffer *buf) | 86 | struct pipe_buffer *buf) |
80 | { | 87 | { |
81 | page_cache_release(buf->page); | 88 | page_cache_release(buf->page); |
82 | buf->page = NULL; | 89 | buf->flags &= ~PIPE_BUF_FLAG_LRU; |
83 | buf->flags &= ~(PIPE_BUF_FLAG_STOLEN | PIPE_BUF_FLAG_LRU); | ||
84 | } | 90 | } |
85 | 91 | ||
86 | static void *page_cache_pipe_buf_map(struct file *file, | 92 | static int page_cache_pipe_buf_pin(struct pipe_inode_info *pipe, |
87 | struct pipe_inode_info *info, | 93 | struct pipe_buffer *buf) |
88 | struct pipe_buffer *buf) | ||
89 | { | 94 | { |
90 | struct page *page = buf->page; | 95 | struct page *page = buf->page; |
91 | int err; | 96 | int err; |
@@ -111,51 +116,59 @@ static void *page_cache_pipe_buf_map(struct file *file, | |||
111 | } | 116 | } |
112 | 117 | ||
113 | /* | 118 | /* |
114 | * Page is ok afterall, fall through to mapping. | 119 | * Page is ok afterall, we are done. |
115 | */ | 120 | */ |
116 | unlock_page(page); | 121 | unlock_page(page); |
117 | } | 122 | } |
118 | 123 | ||
119 | return kmap(page); | 124 | return 0; |
120 | error: | 125 | error: |
121 | unlock_page(page); | 126 | unlock_page(page); |
122 | return ERR_PTR(err); | 127 | return err; |
123 | } | 128 | } |
124 | 129 | ||
125 | static void page_cache_pipe_buf_unmap(struct pipe_inode_info *info, | 130 | static struct pipe_buf_operations page_cache_pipe_buf_ops = { |
126 | struct pipe_buffer *buf) | 131 | .can_merge = 0, |
127 | { | 132 | .map = generic_pipe_buf_map, |
128 | kunmap(buf->page); | 133 | .unmap = generic_pipe_buf_unmap, |
129 | } | 134 | .pin = page_cache_pipe_buf_pin, |
135 | .release = page_cache_pipe_buf_release, | ||
136 | .steal = page_cache_pipe_buf_steal, | ||
137 | .get = generic_pipe_buf_get, | ||
138 | }; | ||
130 | 139 | ||
131 | static void page_cache_pipe_buf_get(struct pipe_inode_info *info, | 140 | static int user_page_pipe_buf_steal(struct pipe_inode_info *pipe, |
132 | struct pipe_buffer *buf) | 141 | struct pipe_buffer *buf) |
133 | { | 142 | { |
134 | page_cache_get(buf->page); | 143 | if (!(buf->flags & PIPE_BUF_FLAG_GIFT)) |
144 | return 1; | ||
145 | |||
146 | buf->flags |= PIPE_BUF_FLAG_LRU; | ||
147 | return generic_pipe_buf_steal(pipe, buf); | ||
135 | } | 148 | } |
136 | 149 | ||
137 | static struct pipe_buf_operations page_cache_pipe_buf_ops = { | 150 | static struct pipe_buf_operations user_page_pipe_buf_ops = { |
138 | .can_merge = 0, | 151 | .can_merge = 0, |
139 | .map = page_cache_pipe_buf_map, | 152 | .map = generic_pipe_buf_map, |
140 | .unmap = page_cache_pipe_buf_unmap, | 153 | .unmap = generic_pipe_buf_unmap, |
154 | .pin = generic_pipe_buf_pin, | ||
141 | .release = page_cache_pipe_buf_release, | 155 | .release = page_cache_pipe_buf_release, |
142 | .steal = page_cache_pipe_buf_steal, | 156 | .steal = user_page_pipe_buf_steal, |
143 | .get = page_cache_pipe_buf_get, | 157 | .get = generic_pipe_buf_get, |
144 | }; | 158 | }; |
145 | 159 | ||
146 | /* | 160 | /* |
147 | * Pipe output worker. This sets up our pipe format with the page cache | 161 | * Pipe output worker. This sets up our pipe format with the page cache |
148 | * pipe buffer operations. Otherwise very similar to the regular pipe_writev(). | 162 | * pipe buffer operations. Otherwise very similar to the regular pipe_writev(). |
149 | */ | 163 | */ |
150 | static ssize_t move_to_pipe(struct pipe_inode_info *pipe, struct page **pages, | 164 | static ssize_t splice_to_pipe(struct pipe_inode_info *pipe, |
151 | int nr_pages, unsigned long len, | 165 | struct splice_pipe_desc *spd) |
152 | unsigned int offset, unsigned int flags) | ||
153 | { | 166 | { |
154 | int ret, do_wakeup, i; | 167 | int ret, do_wakeup, page_nr; |
155 | 168 | ||
156 | ret = 0; | 169 | ret = 0; |
157 | do_wakeup = 0; | 170 | do_wakeup = 0; |
158 | i = 0; | 171 | page_nr = 0; |
159 | 172 | ||
160 | if (pipe->inode) | 173 | if (pipe->inode) |
161 | mutex_lock(&pipe->inode->i_mutex); | 174 | mutex_lock(&pipe->inode->i_mutex); |
@@ -171,27 +184,22 @@ static ssize_t move_to_pipe(struct pipe_inode_info *pipe, struct page **pages, | |||
171 | if (pipe->nrbufs < PIPE_BUFFERS) { | 184 | if (pipe->nrbufs < PIPE_BUFFERS) { |
172 | int newbuf = (pipe->curbuf + pipe->nrbufs) & (PIPE_BUFFERS - 1); | 185 | int newbuf = (pipe->curbuf + pipe->nrbufs) & (PIPE_BUFFERS - 1); |
173 | struct pipe_buffer *buf = pipe->bufs + newbuf; | 186 | struct pipe_buffer *buf = pipe->bufs + newbuf; |
174 | struct page *page = pages[i++]; | ||
175 | unsigned long this_len; | ||
176 | 187 | ||
177 | this_len = PAGE_CACHE_SIZE - offset; | 188 | buf->page = spd->pages[page_nr]; |
178 | if (this_len > len) | 189 | buf->offset = spd->partial[page_nr].offset; |
179 | this_len = len; | 190 | buf->len = spd->partial[page_nr].len; |
191 | buf->ops = spd->ops; | ||
192 | if (spd->flags & SPLICE_F_GIFT) | ||
193 | buf->flags |= PIPE_BUF_FLAG_GIFT; | ||
180 | 194 | ||
181 | buf->page = page; | ||
182 | buf->offset = offset; | ||
183 | buf->len = this_len; | ||
184 | buf->ops = &page_cache_pipe_buf_ops; | ||
185 | pipe->nrbufs++; | 195 | pipe->nrbufs++; |
196 | page_nr++; | ||
197 | ret += buf->len; | ||
198 | |||
186 | if (pipe->inode) | 199 | if (pipe->inode) |
187 | do_wakeup = 1; | 200 | do_wakeup = 1; |
188 | 201 | ||
189 | ret += this_len; | 202 | if (!--spd->nr_pages) |
190 | len -= this_len; | ||
191 | offset = 0; | ||
192 | if (!--nr_pages) | ||
193 | break; | ||
194 | if (!len) | ||
195 | break; | 203 | break; |
196 | if (pipe->nrbufs < PIPE_BUFFERS) | 204 | if (pipe->nrbufs < PIPE_BUFFERS) |
197 | continue; | 205 | continue; |
@@ -199,7 +207,7 @@ static ssize_t move_to_pipe(struct pipe_inode_info *pipe, struct page **pages, | |||
199 | break; | 207 | break; |
200 | } | 208 | } |
201 | 209 | ||
202 | if (flags & SPLICE_F_NONBLOCK) { | 210 | if (spd->flags & SPLICE_F_NONBLOCK) { |
203 | if (!ret) | 211 | if (!ret) |
204 | ret = -EAGAIN; | 212 | ret = -EAGAIN; |
205 | break; | 213 | break; |
@@ -234,8 +242,8 @@ static ssize_t move_to_pipe(struct pipe_inode_info *pipe, struct page **pages, | |||
234 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); | 242 | kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); |
235 | } | 243 | } |
236 | 244 | ||
237 | while (i < nr_pages) | 245 | while (page_nr < spd->nr_pages) |
238 | page_cache_release(pages[i++]); | 246 | page_cache_release(spd->pages[page_nr++]); |
239 | 247 | ||
240 | return ret; | 248 | return ret; |
241 | } | 249 | } |
@@ -246,17 +254,24 @@ __generic_file_splice_read(struct file *in, loff_t *ppos, | |||
246 | unsigned int flags) | 254 | unsigned int flags) |
247 | { | 255 | { |
248 | struct address_space *mapping = in->f_mapping; | 256 | struct address_space *mapping = in->f_mapping; |
249 | unsigned int loff, offset, nr_pages; | 257 | unsigned int loff, nr_pages; |
250 | struct page *pages[PIPE_BUFFERS]; | 258 | struct page *pages[PIPE_BUFFERS]; |
259 | struct partial_page partial[PIPE_BUFFERS]; | ||
251 | struct page *page; | 260 | struct page *page; |
252 | pgoff_t index, end_index; | 261 | pgoff_t index, end_index; |
253 | loff_t isize; | 262 | loff_t isize; |
254 | size_t bytes; | 263 | size_t total_len; |
255 | int i, error; | 264 | int error, page_nr; |
265 | struct splice_pipe_desc spd = { | ||
266 | .pages = pages, | ||
267 | .partial = partial, | ||
268 | .flags = flags, | ||
269 | .ops = &page_cache_pipe_buf_ops, | ||
270 | }; | ||
256 | 271 | ||
257 | index = *ppos >> PAGE_CACHE_SHIFT; | 272 | index = *ppos >> PAGE_CACHE_SHIFT; |
258 | loff = offset = *ppos & ~PAGE_CACHE_MASK; | 273 | loff = *ppos & ~PAGE_CACHE_MASK; |
259 | nr_pages = (len + offset + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; | 274 | nr_pages = (len + loff + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; |
260 | 275 | ||
261 | if (nr_pages > PIPE_BUFFERS) | 276 | if (nr_pages > PIPE_BUFFERS) |
262 | nr_pages = PIPE_BUFFERS; | 277 | nr_pages = PIPE_BUFFERS; |
@@ -266,47 +281,83 @@ __generic_file_splice_read(struct file *in, loff_t *ppos, | |||
266 | * read-ahead if this is a non-zero offset (we are likely doing small | 281 | * read-ahead if this is a non-zero offset (we are likely doing small |
267 | * chunk splice and the page is already there) for a single page. | 282 | * chunk splice and the page is already there) for a single page. |
268 | */ | 283 | */ |
269 | if (!offset || nr_pages > 1) | 284 | if (!loff || nr_pages > 1) |
270 | do_page_cache_readahead(mapping, in, index, nr_pages); | 285 | page_cache_readahead(mapping, &in->f_ra, in, index, nr_pages); |
271 | 286 | ||
272 | /* | 287 | /* |
273 | * Now fill in the holes: | 288 | * Now fill in the holes: |
274 | */ | 289 | */ |
275 | error = 0; | 290 | error = 0; |
276 | bytes = 0; | 291 | total_len = 0; |
277 | for (i = 0; i < nr_pages; i++, index++) { | ||
278 | unsigned int this_len; | ||
279 | 292 | ||
280 | if (!len) | 293 | /* |
281 | break; | 294 | * Lookup the (hopefully) full range of pages we need. |
295 | */ | ||
296 | spd.nr_pages = find_get_pages_contig(mapping, index, nr_pages, pages); | ||
282 | 297 | ||
298 | /* | ||
299 | * If find_get_pages_contig() returned fewer pages than we needed, | ||
300 | * allocate the rest. | ||
301 | */ | ||
302 | index += spd.nr_pages; | ||
303 | while (spd.nr_pages < nr_pages) { | ||
283 | /* | 304 | /* |
284 | * this_len is the max we'll use from this page | 305 | * Page could be there, find_get_pages_contig() breaks on |
285 | */ | 306 | * the first hole. |
286 | this_len = min(len, PAGE_CACHE_SIZE - loff); | ||
287 | find_page: | ||
288 | /* | ||
289 | * lookup the page for this index | ||
290 | */ | 307 | */ |
291 | page = find_get_page(mapping, index); | 308 | page = find_get_page(mapping, index); |
292 | if (!page) { | 309 | if (!page) { |
293 | /* | 310 | /* |
294 | * page didn't exist, allocate one | 311 | * Make sure the read-ahead engine is notified |
312 | * about this failure. | ||
313 | */ | ||
314 | handle_ra_miss(mapping, &in->f_ra, index); | ||
315 | |||
316 | /* | ||
317 | * page didn't exist, allocate one. | ||
295 | */ | 318 | */ |
296 | page = page_cache_alloc_cold(mapping); | 319 | page = page_cache_alloc_cold(mapping); |
297 | if (!page) | 320 | if (!page) |
298 | break; | 321 | break; |
299 | 322 | ||
300 | error = add_to_page_cache_lru(page, mapping, index, | 323 | error = add_to_page_cache_lru(page, mapping, index, |
301 | mapping_gfp_mask(mapping)); | 324 | mapping_gfp_mask(mapping)); |
302 | if (unlikely(error)) { | 325 | if (unlikely(error)) { |
303 | page_cache_release(page); | 326 | page_cache_release(page); |
327 | if (error == -EEXIST) | ||
328 | continue; | ||
304 | break; | 329 | break; |
305 | } | 330 | } |
306 | 331 | /* | |
307 | goto readpage; | 332 | * add_to_page_cache() locks the page, unlock it |
333 | * to avoid convoluting the logic below even more. | ||
334 | */ | ||
335 | unlock_page(page); | ||
308 | } | 336 | } |
309 | 337 | ||
338 | pages[spd.nr_pages++] = page; | ||
339 | index++; | ||
340 | } | ||
341 | |||
342 | /* | ||
343 | * Now loop over the map and see if we need to start IO on any | ||
344 | * pages, fill in the partial map, etc. | ||
345 | */ | ||
346 | index = *ppos >> PAGE_CACHE_SHIFT; | ||
347 | nr_pages = spd.nr_pages; | ||
348 | spd.nr_pages = 0; | ||
349 | for (page_nr = 0; page_nr < nr_pages; page_nr++) { | ||
350 | unsigned int this_len; | ||
351 | |||
352 | if (!len) | ||
353 | break; | ||
354 | |||
355 | /* | ||
356 | * this_len is the max we'll use from this page | ||
357 | */ | ||
358 | this_len = min_t(unsigned long, len, PAGE_CACHE_SIZE - loff); | ||
359 | page = pages[page_nr]; | ||
360 | |||
310 | /* | 361 | /* |
311 | * If the page isn't uptodate, we may need to start io on it | 362 | * If the page isn't uptodate, we may need to start io on it |
312 | */ | 363 | */ |
@@ -327,7 +378,6 @@ find_page: | |||
327 | */ | 378 | */ |
328 | if (!page->mapping) { | 379 | if (!page->mapping) { |
329 | unlock_page(page); | 380 | unlock_page(page); |
330 | page_cache_release(page); | ||
331 | break; | 381 | break; |
332 | } | 382 | } |
333 | /* | 383 | /* |
@@ -338,16 +388,20 @@ find_page: | |||
338 | goto fill_it; | 388 | goto fill_it; |
339 | } | 389 | } |
340 | 390 | ||
341 | readpage: | ||
342 | /* | 391 | /* |
343 | * need to read in the page | 392 | * need to read in the page |
344 | */ | 393 | */ |
345 | error = mapping->a_ops->readpage(in, page); | 394 | error = mapping->a_ops->readpage(in, page); |
346 | |||
347 | if (unlikely(error)) { | 395 | if (unlikely(error)) { |
348 | page_cache_release(page); | 396 | /* |
397 | * We really should re-lookup the page here, | ||
398 | * but it complicates things a lot. Instead | ||
399 | * lets just do what we already stored, and | ||
400 | * we'll get it the next time we are called. | ||
401 | */ | ||
349 | if (error == AOP_TRUNCATED_PAGE) | 402 | if (error == AOP_TRUNCATED_PAGE) |
350 | goto find_page; | 403 | error = 0; |
404 | |||
351 | break; | 405 | break; |
352 | } | 406 | } |
353 | 407 | ||
@@ -356,10 +410,8 @@ readpage: | |||
356 | */ | 410 | */ |
357 | isize = i_size_read(mapping->host); | 411 | isize = i_size_read(mapping->host); |
358 | end_index = (isize - 1) >> PAGE_CACHE_SHIFT; | 412 | end_index = (isize - 1) >> PAGE_CACHE_SHIFT; |
359 | if (unlikely(!isize || index > end_index)) { | 413 | if (unlikely(!isize || index > end_index)) |
360 | page_cache_release(page); | ||
361 | break; | 414 | break; |
362 | } | ||
363 | 415 | ||
364 | /* | 416 | /* |
365 | * if this is the last page, see if we need to shrink | 417 | * if this is the last page, see if we need to shrink |
@@ -367,26 +419,35 @@ readpage: | |||
367 | */ | 419 | */ |
368 | if (end_index == index) { | 420 | if (end_index == index) { |
369 | loff = PAGE_CACHE_SIZE - (isize & ~PAGE_CACHE_MASK); | 421 | loff = PAGE_CACHE_SIZE - (isize & ~PAGE_CACHE_MASK); |
370 | if (bytes + loff > isize) { | 422 | if (total_len + loff > isize) |
371 | page_cache_release(page); | ||
372 | break; | 423 | break; |
373 | } | ||
374 | /* | 424 | /* |
375 | * force quit after adding this page | 425 | * force quit after adding this page |
376 | */ | 426 | */ |
377 | nr_pages = i; | 427 | len = this_len; |
378 | this_len = min(this_len, loff); | 428 | this_len = min(this_len, loff); |
429 | loff = 0; | ||
379 | } | 430 | } |
380 | } | 431 | } |
381 | fill_it: | 432 | fill_it: |
382 | pages[i] = page; | 433 | partial[page_nr].offset = loff; |
383 | bytes += this_len; | 434 | partial[page_nr].len = this_len; |
384 | len -= this_len; | 435 | len -= this_len; |
436 | total_len += this_len; | ||
385 | loff = 0; | 437 | loff = 0; |
438 | spd.nr_pages++; | ||
439 | index++; | ||
386 | } | 440 | } |
387 | 441 | ||
388 | if (i) | 442 | /* |
389 | return move_to_pipe(pipe, pages, i, bytes, offset, flags); | 443 | * Release any pages at the end, if we quit early. 'i' is how far |
444 | * we got, 'nr_pages' is how many pages are in the map. | ||
445 | */ | ||
446 | while (page_nr < nr_pages) | ||
447 | page_cache_release(pages[page_nr++]); | ||
448 | |||
449 | if (spd.nr_pages) | ||
450 | return splice_to_pipe(pipe, &spd); | ||
390 | 451 | ||
391 | return error; | 452 | return error; |
392 | } | 453 | } |
@@ -439,38 +500,24 @@ EXPORT_SYMBOL(generic_file_splice_read); | |||
439 | 500 | ||
440 | /* | 501 | /* |
441 | * Send 'sd->len' bytes to socket from 'sd->file' at position 'sd->pos' | 502 | * Send 'sd->len' bytes to socket from 'sd->file' at position 'sd->pos' |
442 | * using sendpage(). | 503 | * using sendpage(). Return the number of bytes sent. |
443 | */ | 504 | */ |
444 | static int pipe_to_sendpage(struct pipe_inode_info *info, | 505 | static int pipe_to_sendpage(struct pipe_inode_info *pipe, |
445 | struct pipe_buffer *buf, struct splice_desc *sd) | 506 | struct pipe_buffer *buf, struct splice_desc *sd) |
446 | { | 507 | { |
447 | struct file *file = sd->file; | 508 | struct file *file = sd->file; |
448 | loff_t pos = sd->pos; | 509 | loff_t pos = sd->pos; |
449 | unsigned int offset; | 510 | int ret, more; |
450 | ssize_t ret; | ||
451 | void *ptr; | ||
452 | int more; | ||
453 | 511 | ||
454 | /* | 512 | ret = buf->ops->pin(pipe, buf); |
455 | * Sub-optimal, but we are limited by the pipe ->map. We don't | 513 | if (!ret) { |
456 | * need a kmap'ed buffer here, we just want to make sure we | 514 | more = (sd->flags & SPLICE_F_MORE) || sd->len < sd->total_len; |
457 | * have the page pinned if the pipe page originates from the | ||
458 | * page cache. | ||
459 | */ | ||
460 | ptr = buf->ops->map(file, info, buf); | ||
461 | if (IS_ERR(ptr)) | ||
462 | return PTR_ERR(ptr); | ||
463 | |||
464 | offset = pos & ~PAGE_CACHE_MASK; | ||
465 | more = (sd->flags & SPLICE_F_MORE) || sd->len < sd->total_len; | ||
466 | 515 | ||
467 | ret = file->f_op->sendpage(file, buf->page, offset, sd->len, &pos,more); | 516 | ret = file->f_op->sendpage(file, buf->page, buf->offset, |
468 | 517 | sd->len, &pos, more); | |
469 | buf->ops->unmap(info, buf); | 518 | } |
470 | if (ret == sd->len) | ||
471 | return 0; | ||
472 | 519 | ||
473 | return -EIO; | 520 | return ret; |
474 | } | 521 | } |
475 | 522 | ||
476 | /* | 523 | /* |
@@ -493,43 +540,51 @@ static int pipe_to_sendpage(struct pipe_inode_info *info, | |||
493 | * SPLICE_F_MOVE isn't set, or we cannot move the page, we simply create | 540 | * SPLICE_F_MOVE isn't set, or we cannot move the page, we simply create |
494 | * a new page in the output file page cache and fill/dirty that. | 541 | * a new page in the output file page cache and fill/dirty that. |
495 | */ | 542 | */ |
496 | static int pipe_to_file(struct pipe_inode_info *info, struct pipe_buffer *buf, | 543 | static int pipe_to_file(struct pipe_inode_info *pipe, struct pipe_buffer *buf, |
497 | struct splice_desc *sd) | 544 | struct splice_desc *sd) |
498 | { | 545 | { |
499 | struct file *file = sd->file; | 546 | struct file *file = sd->file; |
500 | struct address_space *mapping = file->f_mapping; | 547 | struct address_space *mapping = file->f_mapping; |
501 | gfp_t gfp_mask = mapping_gfp_mask(mapping); | 548 | gfp_t gfp_mask = mapping_gfp_mask(mapping); |
502 | unsigned int offset; | 549 | unsigned int offset, this_len; |
503 | struct page *page; | 550 | struct page *page; |
504 | pgoff_t index; | 551 | pgoff_t index; |
505 | char *src; | ||
506 | int ret; | 552 | int ret; |
507 | 553 | ||
508 | /* | 554 | /* |
509 | * make sure the data in this buffer is uptodate | 555 | * make sure the data in this buffer is uptodate |
510 | */ | 556 | */ |
511 | src = buf->ops->map(file, info, buf); | 557 | ret = buf->ops->pin(pipe, buf); |
512 | if (IS_ERR(src)) | 558 | if (unlikely(ret)) |
513 | return PTR_ERR(src); | 559 | return ret; |
514 | 560 | ||
515 | index = sd->pos >> PAGE_CACHE_SHIFT; | 561 | index = sd->pos >> PAGE_CACHE_SHIFT; |
516 | offset = sd->pos & ~PAGE_CACHE_MASK; | 562 | offset = sd->pos & ~PAGE_CACHE_MASK; |
517 | 563 | ||
564 | this_len = sd->len; | ||
565 | if (this_len + offset > PAGE_CACHE_SIZE) | ||
566 | this_len = PAGE_CACHE_SIZE - offset; | ||
567 | |||
518 | /* | 568 | /* |
519 | * Reuse buf page, if SPLICE_F_MOVE is set. | 569 | * Reuse buf page, if SPLICE_F_MOVE is set and we are doing a full |
570 | * page. | ||
520 | */ | 571 | */ |
521 | if (sd->flags & SPLICE_F_MOVE) { | 572 | if ((sd->flags & SPLICE_F_MOVE) && this_len == PAGE_CACHE_SIZE) { |
522 | /* | 573 | /* |
523 | * If steal succeeds, buf->page is now pruned from the vm | 574 | * If steal succeeds, buf->page is now pruned from the |
524 | * side (LRU and page cache) and we can reuse it. The page | 575 | * pagecache and we can reuse it. The page will also be |
525 | * will also be looked on successful return. | 576 | * locked on successful return. |
526 | */ | 577 | */ |
527 | if (buf->ops->steal(info, buf)) | 578 | if (buf->ops->steal(pipe, buf)) |
528 | goto find_page; | 579 | goto find_page; |
529 | 580 | ||
530 | page = buf->page; | 581 | page = buf->page; |
531 | if (add_to_page_cache(page, mapping, index, gfp_mask)) | 582 | if (add_to_page_cache(page, mapping, index, gfp_mask)) { |
583 | unlock_page(page); | ||
532 | goto find_page; | 584 | goto find_page; |
585 | } | ||
586 | |||
587 | page_cache_get(page); | ||
533 | 588 | ||
534 | if (!(buf->flags & PIPE_BUF_FLAG_LRU)) | 589 | if (!(buf->flags & PIPE_BUF_FLAG_LRU)) |
535 | lru_cache_add(page); | 590 | lru_cache_add(page); |
@@ -558,7 +613,7 @@ find_page: | |||
558 | * the full page. | 613 | * the full page. |
559 | */ | 614 | */ |
560 | if (!PageUptodate(page)) { | 615 | if (!PageUptodate(page)) { |
561 | if (sd->len < PAGE_CACHE_SIZE) { | 616 | if (this_len < PAGE_CACHE_SIZE) { |
562 | ret = mapping->a_ops->readpage(file, page); | 617 | ret = mapping->a_ops->readpage(file, page); |
563 | if (unlikely(ret)) | 618 | if (unlikely(ret)) |
564 | goto out; | 619 | goto out; |
@@ -582,51 +637,67 @@ find_page: | |||
582 | } | 637 | } |
583 | } | 638 | } |
584 | 639 | ||
585 | ret = mapping->a_ops->prepare_write(file, page, 0, sd->len); | 640 | ret = mapping->a_ops->prepare_write(file, page, offset, offset+this_len); |
586 | if (ret == AOP_TRUNCATED_PAGE) { | 641 | if (unlikely(ret)) { |
642 | loff_t isize = i_size_read(mapping->host); | ||
643 | |||
644 | if (ret != AOP_TRUNCATED_PAGE) | ||
645 | unlock_page(page); | ||
587 | page_cache_release(page); | 646 | page_cache_release(page); |
588 | goto find_page; | 647 | if (ret == AOP_TRUNCATED_PAGE) |
589 | } else if (ret) | 648 | goto find_page; |
649 | |||
650 | /* | ||
651 | * prepare_write() may have instantiated a few blocks | ||
652 | * outside i_size. Trim these off again. | ||
653 | */ | ||
654 | if (sd->pos + this_len > isize) | ||
655 | vmtruncate(mapping->host, isize); | ||
656 | |||
590 | goto out; | 657 | goto out; |
658 | } | ||
591 | 659 | ||
592 | if (!(buf->flags & PIPE_BUF_FLAG_STOLEN)) { | 660 | if (buf->page != page) { |
593 | char *dst = kmap_atomic(page, KM_USER0); | 661 | /* |
662 | * Careful, ->map() uses KM_USER0! | ||
663 | */ | ||
664 | char *src = buf->ops->map(pipe, buf, 1); | ||
665 | char *dst = kmap_atomic(page, KM_USER1); | ||
594 | 666 | ||
595 | memcpy(dst + offset, src + buf->offset, sd->len); | 667 | memcpy(dst + offset, src + buf->offset, this_len); |
596 | flush_dcache_page(page); | 668 | flush_dcache_page(page); |
597 | kunmap_atomic(dst, KM_USER0); | 669 | kunmap_atomic(dst, KM_USER1); |
670 | buf->ops->unmap(pipe, buf, src); | ||
598 | } | 671 | } |
599 | 672 | ||
600 | ret = mapping->a_ops->commit_write(file, page, 0, sd->len); | 673 | ret = mapping->a_ops->commit_write(file, page, offset, offset+this_len); |
601 | if (ret == AOP_TRUNCATED_PAGE) { | 674 | if (!ret) { |
675 | /* | ||
676 | * Return the number of bytes written and mark page as | ||
677 | * accessed, we are now done! | ||
678 | */ | ||
679 | ret = this_len; | ||
680 | mark_page_accessed(page); | ||
681 | balance_dirty_pages_ratelimited(mapping); | ||
682 | } else if (ret == AOP_TRUNCATED_PAGE) { | ||
602 | page_cache_release(page); | 683 | page_cache_release(page); |
603 | goto find_page; | 684 | goto find_page; |
604 | } else if (ret) | 685 | } |
605 | goto out; | ||
606 | |||
607 | mark_page_accessed(page); | ||
608 | balance_dirty_pages_ratelimited(mapping); | ||
609 | out: | 686 | out: |
610 | if (!(buf->flags & PIPE_BUF_FLAG_STOLEN)) | 687 | page_cache_release(page); |
611 | page_cache_release(page); | ||
612 | |||
613 | unlock_page(page); | 688 | unlock_page(page); |
614 | out_nomem: | 689 | out_nomem: |
615 | buf->ops->unmap(info, buf); | ||
616 | return ret; | 690 | return ret; |
617 | } | 691 | } |
618 | 692 | ||
619 | typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *, | ||
620 | struct splice_desc *); | ||
621 | |||
622 | /* | 693 | /* |
623 | * Pipe input worker. Most of this logic works like a regular pipe, the | 694 | * Pipe input worker. Most of this logic works like a regular pipe, the |
624 | * key here is the 'actor' worker passed in that actually moves the data | 695 | * key here is the 'actor' worker passed in that actually moves the data |
625 | * to the wanted destination. See pipe_to_file/pipe_to_sendpage above. | 696 | * to the wanted destination. See pipe_to_file/pipe_to_sendpage above. |
626 | */ | 697 | */ |
627 | static ssize_t move_from_pipe(struct pipe_inode_info *pipe, struct file *out, | 698 | ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out, |
628 | loff_t *ppos, size_t len, unsigned int flags, | 699 | loff_t *ppos, size_t len, unsigned int flags, |
629 | splice_actor *actor) | 700 | splice_actor *actor) |
630 | { | 701 | { |
631 | int ret, do_wakeup, err; | 702 | int ret, do_wakeup, err; |
632 | struct splice_desc sd; | 703 | struct splice_desc sd; |
@@ -652,16 +723,22 @@ static ssize_t move_from_pipe(struct pipe_inode_info *pipe, struct file *out, | |||
652 | sd.len = sd.total_len; | 723 | sd.len = sd.total_len; |
653 | 724 | ||
654 | err = actor(pipe, buf, &sd); | 725 | err = actor(pipe, buf, &sd); |
655 | if (err) { | 726 | if (err <= 0) { |
656 | if (!ret && err != -ENODATA) | 727 | if (!ret && err != -ENODATA) |
657 | ret = err; | 728 | ret = err; |
658 | 729 | ||
659 | break; | 730 | break; |
660 | } | 731 | } |
661 | 732 | ||
662 | ret += sd.len; | 733 | ret += err; |
663 | buf->offset += sd.len; | 734 | buf->offset += err; |
664 | buf->len -= sd.len; | 735 | buf->len -= err; |
736 | |||
737 | sd.len -= err; | ||
738 | sd.pos += err; | ||
739 | sd.total_len -= err; | ||
740 | if (sd.len) | ||
741 | continue; | ||
665 | 742 | ||
666 | if (!buf->len) { | 743 | if (!buf->len) { |
667 | buf->ops = NULL; | 744 | buf->ops = NULL; |
@@ -672,8 +749,6 @@ static ssize_t move_from_pipe(struct pipe_inode_info *pipe, struct file *out, | |||
672 | do_wakeup = 1; | 749 | do_wakeup = 1; |
673 | } | 750 | } |
674 | 751 | ||
675 | sd.pos += sd.len; | ||
676 | sd.total_len -= sd.len; | ||
677 | if (!sd.total_len) | 752 | if (!sd.total_len) |
678 | break; | 753 | break; |
679 | } | 754 | } |
@@ -741,7 +816,7 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, | |||
741 | struct address_space *mapping = out->f_mapping; | 816 | struct address_space *mapping = out->f_mapping; |
742 | ssize_t ret; | 817 | ssize_t ret; |
743 | 818 | ||
744 | ret = move_from_pipe(pipe, out, ppos, len, flags, pipe_to_file); | 819 | ret = splice_from_pipe(pipe, out, ppos, len, flags, pipe_to_file); |
745 | if (ret > 0) { | 820 | if (ret > 0) { |
746 | struct inode *inode = mapping->host; | 821 | struct inode *inode = mapping->host; |
747 | 822 | ||
@@ -783,7 +858,7 @@ EXPORT_SYMBOL(generic_file_splice_write); | |||
783 | ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out, | 858 | ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out, |
784 | loff_t *ppos, size_t len, unsigned int flags) | 859 | loff_t *ppos, size_t len, unsigned int flags) |
785 | { | 860 | { |
786 | return move_from_pipe(pipe, out, ppos, len, flags, pipe_to_sendpage); | 861 | return splice_from_pipe(pipe, out, ppos, len, flags, pipe_to_sendpage); |
787 | } | 862 | } |
788 | 863 | ||
789 | EXPORT_SYMBOL(generic_splice_sendpage); | 864 | EXPORT_SYMBOL(generic_splice_sendpage); |
@@ -870,7 +945,7 @@ long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, | |||
870 | 945 | ||
871 | /* | 946 | /* |
872 | * We don't have an immediate reader, but we'll read the stuff | 947 | * We don't have an immediate reader, but we'll read the stuff |
873 | * out of the pipe right after the move_to_pipe(). So set | 948 | * out of the pipe right after the splice_to_pipe(). So set |
874 | * PIPE_READERS appropriately. | 949 | * PIPE_READERS appropriately. |
875 | */ | 950 | */ |
876 | pipe->readers = 1; | 951 | pipe->readers = 1; |
@@ -1010,6 +1085,184 @@ static long do_splice(struct file *in, loff_t __user *off_in, | |||
1010 | return -EINVAL; | 1085 | return -EINVAL; |
1011 | } | 1086 | } |
1012 | 1087 | ||
1088 | /* | ||
1089 | * Map an iov into an array of pages and offset/length tupples. With the | ||
1090 | * partial_page structure, we can map several non-contiguous ranges into | ||
1091 | * our ones pages[] map instead of splitting that operation into pieces. | ||
1092 | * Could easily be exported as a generic helper for other users, in which | ||
1093 | * case one would probably want to add a 'max_nr_pages' parameter as well. | ||
1094 | */ | ||
1095 | static int get_iovec_page_array(const struct iovec __user *iov, | ||
1096 | unsigned int nr_vecs, struct page **pages, | ||
1097 | struct partial_page *partial, int aligned) | ||
1098 | { | ||
1099 | int buffers = 0, error = 0; | ||
1100 | |||
1101 | /* | ||
1102 | * It's ok to take the mmap_sem for reading, even | ||
1103 | * across a "get_user()". | ||
1104 | */ | ||
1105 | down_read(¤t->mm->mmap_sem); | ||
1106 | |||
1107 | while (nr_vecs) { | ||
1108 | unsigned long off, npages; | ||
1109 | void __user *base; | ||
1110 | size_t len; | ||
1111 | int i; | ||
1112 | |||
1113 | /* | ||
1114 | * Get user address base and length for this iovec. | ||
1115 | */ | ||
1116 | error = get_user(base, &iov->iov_base); | ||
1117 | if (unlikely(error)) | ||
1118 | break; | ||
1119 | error = get_user(len, &iov->iov_len); | ||
1120 | if (unlikely(error)) | ||
1121 | break; | ||
1122 | |||
1123 | /* | ||
1124 | * Sanity check this iovec. 0 read succeeds. | ||
1125 | */ | ||
1126 | if (unlikely(!len)) | ||
1127 | break; | ||
1128 | error = -EFAULT; | ||
1129 | if (unlikely(!base)) | ||
1130 | break; | ||
1131 | |||
1132 | /* | ||
1133 | * Get this base offset and number of pages, then map | ||
1134 | * in the user pages. | ||
1135 | */ | ||
1136 | off = (unsigned long) base & ~PAGE_MASK; | ||
1137 | |||
1138 | /* | ||
1139 | * If asked for alignment, the offset must be zero and the | ||
1140 | * length a multiple of the PAGE_SIZE. | ||
1141 | */ | ||
1142 | error = -EINVAL; | ||
1143 | if (aligned && (off || len & ~PAGE_MASK)) | ||
1144 | break; | ||
1145 | |||
1146 | npages = (off + len + PAGE_SIZE - 1) >> PAGE_SHIFT; | ||
1147 | if (npages > PIPE_BUFFERS - buffers) | ||
1148 | npages = PIPE_BUFFERS - buffers; | ||
1149 | |||
1150 | error = get_user_pages(current, current->mm, | ||
1151 | (unsigned long) base, npages, 0, 0, | ||
1152 | &pages[buffers], NULL); | ||
1153 | |||
1154 | if (unlikely(error <= 0)) | ||
1155 | break; | ||
1156 | |||
1157 | /* | ||
1158 | * Fill this contiguous range into the partial page map. | ||
1159 | */ | ||
1160 | for (i = 0; i < error; i++) { | ||
1161 | const int plen = min_t(size_t, len, PAGE_SIZE - off); | ||
1162 | |||
1163 | partial[buffers].offset = off; | ||
1164 | partial[buffers].len = plen; | ||
1165 | |||
1166 | off = 0; | ||
1167 | len -= plen; | ||
1168 | buffers++; | ||
1169 | } | ||
1170 | |||
1171 | /* | ||
1172 | * We didn't complete this iov, stop here since it probably | ||
1173 | * means we have to move some of this into a pipe to | ||
1174 | * be able to continue. | ||
1175 | */ | ||
1176 | if (len) | ||
1177 | break; | ||
1178 | |||
1179 | /* | ||
1180 | * Don't continue if we mapped fewer pages than we asked for, | ||
1181 | * or if we mapped the max number of pages that we have | ||
1182 | * room for. | ||
1183 | */ | ||
1184 | if (error < npages || buffers == PIPE_BUFFERS) | ||
1185 | break; | ||
1186 | |||
1187 | nr_vecs--; | ||
1188 | iov++; | ||
1189 | } | ||
1190 | |||
1191 | up_read(¤t->mm->mmap_sem); | ||
1192 | |||
1193 | if (buffers) | ||
1194 | return buffers; | ||
1195 | |||
1196 | return error; | ||
1197 | } | ||
1198 | |||
1199 | /* | ||
1200 | * vmsplice splices a user address range into a pipe. It can be thought of | ||
1201 | * as splice-from-memory, where the regular splice is splice-from-file (or | ||
1202 | * to file). In both cases the output is a pipe, naturally. | ||
1203 | * | ||
1204 | * Note that vmsplice only supports splicing _from_ user memory to a pipe, | ||
1205 | * not the other way around. Splicing from user memory is a simple operation | ||
1206 | * that can be supported without any funky alignment restrictions or nasty | ||
1207 | * vm tricks. We simply map in the user memory and fill them into a pipe. | ||
1208 | * The reverse isn't quite as easy, though. There are two possible solutions | ||
1209 | * for that: | ||
1210 | * | ||
1211 | * - memcpy() the data internally, at which point we might as well just | ||
1212 | * do a regular read() on the buffer anyway. | ||
1213 | * - Lots of nasty vm tricks, that are neither fast nor flexible (it | ||
1214 | * has restriction limitations on both ends of the pipe). | ||
1215 | * | ||
1216 | * Alas, it isn't here. | ||
1217 | * | ||
1218 | */ | ||
1219 | static long do_vmsplice(struct file *file, const struct iovec __user *iov, | ||
1220 | unsigned long nr_segs, unsigned int flags) | ||
1221 | { | ||
1222 | struct pipe_inode_info *pipe = file->f_dentry->d_inode->i_pipe; | ||
1223 | struct page *pages[PIPE_BUFFERS]; | ||
1224 | struct partial_page partial[PIPE_BUFFERS]; | ||
1225 | struct splice_pipe_desc spd = { | ||
1226 | .pages = pages, | ||
1227 | .partial = partial, | ||
1228 | .flags = flags, | ||
1229 | .ops = &user_page_pipe_buf_ops, | ||
1230 | }; | ||
1231 | |||
1232 | if (unlikely(!pipe)) | ||
1233 | return -EBADF; | ||
1234 | if (unlikely(nr_segs > UIO_MAXIOV)) | ||
1235 | return -EINVAL; | ||
1236 | else if (unlikely(!nr_segs)) | ||
1237 | return 0; | ||
1238 | |||
1239 | spd.nr_pages = get_iovec_page_array(iov, nr_segs, pages, partial, | ||
1240 | flags & SPLICE_F_GIFT); | ||
1241 | if (spd.nr_pages <= 0) | ||
1242 | return spd.nr_pages; | ||
1243 | |||
1244 | return splice_to_pipe(pipe, &spd); | ||
1245 | } | ||
1246 | |||
1247 | asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov, | ||
1248 | unsigned long nr_segs, unsigned int flags) | ||
1249 | { | ||
1250 | struct file *file; | ||
1251 | long error; | ||
1252 | int fput; | ||
1253 | |||
1254 | error = -EBADF; | ||
1255 | file = fget_light(fd, &fput); | ||
1256 | if (file) { | ||
1257 | if (file->f_mode & FMODE_WRITE) | ||
1258 | error = do_vmsplice(file, iov, nr_segs, flags); | ||
1259 | |||
1260 | fput_light(file, fput); | ||
1261 | } | ||
1262 | |||
1263 | return error; | ||
1264 | } | ||
1265 | |||
1013 | asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, | 1266 | asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, |
1014 | int fd_out, loff_t __user *off_out, | 1267 | int fd_out, loff_t __user *off_out, |
1015 | size_t len, unsigned int flags) | 1268 | size_t len, unsigned int flags) |
@@ -1092,6 +1345,12 @@ static int link_pipe(struct pipe_inode_info *ipipe, | |||
1092 | obuf = opipe->bufs + nbuf; | 1345 | obuf = opipe->bufs + nbuf; |
1093 | *obuf = *ibuf; | 1346 | *obuf = *ibuf; |
1094 | 1347 | ||
1348 | /* | ||
1349 | * Don't inherit the gift flag, we need to | ||
1350 | * prevent multiple steals of this page. | ||
1351 | */ | ||
1352 | obuf->flags &= ~PIPE_BUF_FLAG_GIFT; | ||
1353 | |||
1095 | if (obuf->len > len) | 1354 | if (obuf->len > len) |
1096 | obuf->len = len; | 1355 | obuf->len = len; |
1097 | 1356 | ||
@@ -261,7 +261,7 @@ asmlinkage long sys_newlstat(char __user *filename, struct stat __user *statbuf) | |||
261 | return error; | 261 | return error; |
262 | } | 262 | } |
263 | 263 | ||
264 | #ifndef __ARCH_WANT_STAT64 | 264 | #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) |
265 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, | 265 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, |
266 | struct stat __user *statbuf, int flag) | 266 | struct stat __user *statbuf, int flag) |
267 | { | 267 | { |
diff --git a/include/asm-arm/arch-imx/imx-uart.h b/include/asm-arm/arch-imx/imx-uart.h new file mode 100644 index 000000000000..3a685e1780ea --- /dev/null +++ b/include/asm-arm/arch-imx/imx-uart.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef ASMARM_ARCH_UART_H | ||
2 | #define ASMARM_ARCH_UART_H | ||
3 | |||
4 | #define IMXUART_HAVE_RTSCTS (1<<0) | ||
5 | |||
6 | struct imxuart_platform_data { | ||
7 | unsigned int flags; | ||
8 | }; | ||
9 | |||
10 | #endif | ||
diff --git a/include/asm-arm/arch-ixp4xx/io.h b/include/asm-arm/arch-ixp4xx/io.h index 942b622455bc..b59520e56fc7 100644 --- a/include/asm-arm/arch-ixp4xx/io.h +++ b/include/asm-arm/arch-ixp4xx/io.h | |||
@@ -260,6 +260,12 @@ out: | |||
260 | 260 | ||
261 | #endif | 261 | #endif |
262 | 262 | ||
263 | #ifndef CONFIG_PCI | ||
264 | |||
265 | #define __io(v) v | ||
266 | |||
267 | #else | ||
268 | |||
263 | /* | 269 | /* |
264 | * IXP4xx does not have a transparent cpu -> PCI I/O translation | 270 | * IXP4xx does not have a transparent cpu -> PCI I/O translation |
265 | * window. Instead, it has a set of registers that must be tweaked | 271 | * window. Instead, it has a set of registers that must be tweaked |
@@ -578,6 +584,7 @@ __ixp4xx_iowrite32_rep(void __iomem *addr, const void *vaddr, u32 count) | |||
578 | 584 | ||
579 | #define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET)) | 585 | #define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET)) |
580 | #define ioport_unmap(addr) | 586 | #define ioport_unmap(addr) |
587 | #endif // !CONFIG_PCI | ||
581 | 588 | ||
582 | #endif // __ASM_ARM_ARCH_IO_H | 589 | #endif // __ASM_ARM_ARCH_IO_H |
583 | 590 | ||
diff --git a/include/asm-arm/arch-ixp4xx/memory.h b/include/asm-arm/arch-ixp4xx/memory.h index ee211d28a3ef..af9667b57ab3 100644 --- a/include/asm-arm/arch-ixp4xx/memory.h +++ b/include/asm-arm/arch-ixp4xx/memory.h | |||
@@ -14,7 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | #define PHYS_OFFSET UL(0x00000000) | 15 | #define PHYS_OFFSET UL(0x00000000) |
16 | 16 | ||
17 | #ifndef __ASSEMBLY__ | 17 | #if !defined(__ASSEMBLY__) && defined(CONFIG_PCI) |
18 | 18 | ||
19 | void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes); | 19 | void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes); |
20 | 20 | ||
diff --git a/include/asm-arm/unistd.h b/include/asm-arm/unistd.h index ee8dfea549bc..26f2f4828e03 100644 --- a/include/asm-arm/unistd.h +++ b/include/asm-arm/unistd.h | |||
@@ -410,7 +410,8 @@ type name(void) { \ | |||
410 | __asm__ __volatile__ ( \ | 410 | __asm__ __volatile__ ( \ |
411 | __syscall(name) \ | 411 | __syscall(name) \ |
412 | : "=r" (__res_r0) \ | 412 | : "=r" (__res_r0) \ |
413 | : __SYS_REG_LIST() ); \ | 413 | : __SYS_REG_LIST() \ |
414 | : "memory" ); \ | ||
414 | __res = __res_r0; \ | 415 | __res = __res_r0; \ |
415 | __syscall_return(type,__res); \ | 416 | __syscall_return(type,__res); \ |
416 | } | 417 | } |
@@ -424,7 +425,8 @@ type name(type1 arg1) { \ | |||
424 | __asm__ __volatile__ ( \ | 425 | __asm__ __volatile__ ( \ |
425 | __syscall(name) \ | 426 | __syscall(name) \ |
426 | : "=r" (__res_r0) \ | 427 | : "=r" (__res_r0) \ |
427 | : __SYS_REG_LIST( "0" (__r0) ) ); \ | 428 | : __SYS_REG_LIST( "0" (__r0) ) \ |
429 | : "memory" ); \ | ||
428 | __res = __res_r0; \ | 430 | __res = __res_r0; \ |
429 | __syscall_return(type,__res); \ | 431 | __syscall_return(type,__res); \ |
430 | } | 432 | } |
@@ -439,7 +441,8 @@ type name(type1 arg1,type2 arg2) { \ | |||
439 | __asm__ __volatile__ ( \ | 441 | __asm__ __volatile__ ( \ |
440 | __syscall(name) \ | 442 | __syscall(name) \ |
441 | : "=r" (__res_r0) \ | 443 | : "=r" (__res_r0) \ |
442 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) ); \ | 444 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) \ |
445 | : "memory" ); \ | ||
443 | __res = __res_r0; \ | 446 | __res = __res_r0; \ |
444 | __syscall_return(type,__res); \ | 447 | __syscall_return(type,__res); \ |
445 | } | 448 | } |
@@ -456,7 +459,8 @@ type name(type1 arg1,type2 arg2,type3 arg3) { \ | |||
456 | __asm__ __volatile__ ( \ | 459 | __asm__ __volatile__ ( \ |
457 | __syscall(name) \ | 460 | __syscall(name) \ |
458 | : "=r" (__res_r0) \ | 461 | : "=r" (__res_r0) \ |
459 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) ); \ | 462 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) \ |
463 | : "memory" ); \ | ||
460 | __res = __res_r0; \ | 464 | __res = __res_r0; \ |
461 | __syscall_return(type,__res); \ | 465 | __syscall_return(type,__res); \ |
462 | } | 466 | } |
@@ -474,7 +478,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ | |||
474 | __asm__ __volatile__ ( \ | 478 | __asm__ __volatile__ ( \ |
475 | __syscall(name) \ | 479 | __syscall(name) \ |
476 | : "=r" (__res_r0) \ | 480 | : "=r" (__res_r0) \ |
477 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) ); \ | 481 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) \ |
482 | : "memory" ); \ | ||
478 | __res = __res_r0; \ | 483 | __res = __res_r0; \ |
479 | __syscall_return(type,__res); \ | 484 | __syscall_return(type,__res); \ |
480 | } | 485 | } |
@@ -494,7 +499,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \ | |||
494 | __syscall(name) \ | 499 | __syscall(name) \ |
495 | : "=r" (__res_r0) \ | 500 | : "=r" (__res_r0) \ |
496 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ | 501 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ |
497 | "r" (__r3), "r" (__r4) ) ); \ | 502 | "r" (__r3), "r" (__r4) ) \ |
503 | : "memory" ); \ | ||
498 | __res = __res_r0; \ | 504 | __res = __res_r0; \ |
499 | __syscall_return(type,__res); \ | 505 | __syscall_return(type,__res); \ |
500 | } | 506 | } |
@@ -514,7 +520,8 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6 | |||
514 | __syscall(name) \ | 520 | __syscall(name) \ |
515 | : "=r" (__res_r0) \ | 521 | : "=r" (__res_r0) \ |
516 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ | 522 | : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ |
517 | "r" (__r3), "r" (__r4), "r" (__r5) ) ); \ | 523 | "r" (__r3), "r" (__r4), "r" (__r5) ) \ |
524 | : "memory" ); \ | ||
518 | __res = __res_r0; \ | 525 | __res = __res_r0; \ |
519 | __syscall_return(type,__res); \ | 526 | __syscall_return(type,__res); \ |
520 | } | 527 | } |
diff --git a/include/asm-i386/i387.h b/include/asm-i386/i387.h index 7b1f01191e70..bc1d6edae1ed 100644 --- a/include/asm-i386/i387.h +++ b/include/asm-i386/i387.h | |||
@@ -58,13 +58,13 @@ static inline void __save_init_fpu( struct task_struct *tsk ) | |||
58 | alternative_input( | 58 | alternative_input( |
59 | "fnsave %[fx] ;fwait;" GENERIC_NOP8 GENERIC_NOP4, | 59 | "fnsave %[fx] ;fwait;" GENERIC_NOP8 GENERIC_NOP4, |
60 | "fxsave %[fx]\n" | 60 | "fxsave %[fx]\n" |
61 | "bt $7,%[fsw] ; jc 1f ; fnclex\n1:", | 61 | "bt $7,%[fsw] ; jnc 1f ; fnclex\n1:", |
62 | X86_FEATURE_FXSR, | 62 | X86_FEATURE_FXSR, |
63 | [fx] "m" (tsk->thread.i387.fxsave), | 63 | [fx] "m" (tsk->thread.i387.fxsave), |
64 | [fsw] "m" (tsk->thread.i387.fxsave.swd) : "memory"); | 64 | [fsw] "m" (tsk->thread.i387.fxsave.swd) : "memory"); |
65 | /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception | 65 | /* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception |
66 | is pending. Clear the x87 state here by setting it to fixed | 66 | is pending. Clear the x87 state here by setting it to fixed |
67 | values. __per_cpu_offset[0] is a random variable that should be in L1 */ | 67 | values. safe_address is a random variable that should be in L1 */ |
68 | alternative_input( | 68 | alternative_input( |
69 | GENERIC_NOP8 GENERIC_NOP2, | 69 | GENERIC_NOP8 GENERIC_NOP2, |
70 | "emms\n\t" /* clear stack tags */ | 70 | "emms\n\t" /* clear stack tags */ |
diff --git a/include/asm-i386/pgtable-2level.h b/include/asm-i386/pgtable-2level.h index 27bde973abc7..2756d4b04c27 100644 --- a/include/asm-i386/pgtable-2level.h +++ b/include/asm-i386/pgtable-2level.h | |||
@@ -18,6 +18,9 @@ | |||
18 | #define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval) | 18 | #define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval) |
19 | #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) | 19 | #define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval)) |
20 | 20 | ||
21 | #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) | ||
22 | #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) | ||
23 | |||
21 | #define ptep_get_and_clear(mm,addr,xp) __pte(xchg(&(xp)->pte_low, 0)) | 24 | #define ptep_get_and_clear(mm,addr,xp) __pte(xchg(&(xp)->pte_low, 0)) |
22 | #define pte_same(a, b) ((a).pte_low == (b).pte_low) | 25 | #define pte_same(a, b) ((a).pte_low == (b).pte_low) |
23 | #define pte_page(x) pfn_to_page(pte_pfn(x)) | 26 | #define pte_page(x) pfn_to_page(pte_pfn(x)) |
diff --git a/include/asm-i386/pgtable-3level.h b/include/asm-i386/pgtable-3level.h index 36a5aa63cbbf..dccb1b3337ad 100644 --- a/include/asm-i386/pgtable-3level.h +++ b/include/asm-i386/pgtable-3level.h | |||
@@ -85,6 +85,26 @@ static inline void pud_clear (pud_t * pud) { } | |||
85 | #define pmd_offset(pud, address) ((pmd_t *) pud_page(*(pud)) + \ | 85 | #define pmd_offset(pud, address) ((pmd_t *) pud_page(*(pud)) + \ |
86 | pmd_index(address)) | 86 | pmd_index(address)) |
87 | 87 | ||
88 | /* | ||
89 | * For PTEs and PDEs, we must clear the P-bit first when clearing a page table | ||
90 | * entry, so clear the bottom half first and enforce ordering with a compiler | ||
91 | * barrier. | ||
92 | */ | ||
93 | static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | ||
94 | { | ||
95 | ptep->pte_low = 0; | ||
96 | smp_wmb(); | ||
97 | ptep->pte_high = 0; | ||
98 | } | ||
99 | |||
100 | static inline void pmd_clear(pmd_t *pmd) | ||
101 | { | ||
102 | u32 *tmp = (u32 *)pmd; | ||
103 | *tmp = 0; | ||
104 | smp_wmb(); | ||
105 | *(tmp + 1) = 0; | ||
106 | } | ||
107 | |||
88 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 108 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
89 | { | 109 | { |
90 | pte_t res; | 110 | pte_t res; |
diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h index ee056c41a9fb..672c3f76b9df 100644 --- a/include/asm-i386/pgtable.h +++ b/include/asm-i386/pgtable.h | |||
@@ -204,12 +204,10 @@ extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC; | |||
204 | extern unsigned long pg0[]; | 204 | extern unsigned long pg0[]; |
205 | 205 | ||
206 | #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) | 206 | #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) |
207 | #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) | ||
208 | 207 | ||
209 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ | 208 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ |
210 | #define pmd_none(x) (!(unsigned long)pmd_val(x)) | 209 | #define pmd_none(x) (!(unsigned long)pmd_val(x)) |
211 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) | 210 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) |
212 | #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) | ||
213 | #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) | 211 | #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) |
214 | 212 | ||
215 | 213 | ||
@@ -268,7 +266,7 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long | |||
268 | pte_t pte; | 266 | pte_t pte; |
269 | if (full) { | 267 | if (full) { |
270 | pte = *ptep; | 268 | pte = *ptep; |
271 | *ptep = __pte(0); | 269 | pte_clear(mm, addr, ptep); |
272 | } else { | 270 | } else { |
273 | pte = ptep_get_and_clear(mm, addr, ptep); | 271 | pte = ptep_get_and_clear(mm, addr, ptep); |
274 | } | 272 | } |
diff --git a/include/asm-i386/unistd.h b/include/asm-i386/unistd.h index d81d6cfc1bb4..eb4b152c82fc 100644 --- a/include/asm-i386/unistd.h +++ b/include/asm-i386/unistd.h | |||
@@ -321,8 +321,9 @@ | |||
321 | #define __NR_splice 313 | 321 | #define __NR_splice 313 |
322 | #define __NR_sync_file_range 314 | 322 | #define __NR_sync_file_range 314 |
323 | #define __NR_tee 315 | 323 | #define __NR_tee 315 |
324 | #define __NR_vmsplice 316 | ||
324 | 325 | ||
325 | #define NR_syscalls 316 | 326 | #define NR_syscalls 317 |
326 | 327 | ||
327 | /* | 328 | /* |
328 | * user-visible error numbers are in the range -1 - -128: see | 329 | * user-visible error numbers are in the range -1 - -128: see |
diff --git a/include/asm-ia64/acpi.h b/include/asm-ia64/acpi.h index d734585a23cf..09a5dd0e44a8 100644 --- a/include/asm-ia64/acpi.h +++ b/include/asm-ia64/acpi.h | |||
@@ -110,9 +110,8 @@ extern void prefill_possible_map(void); | |||
110 | extern int additional_cpus; | 110 | extern int additional_cpus; |
111 | 111 | ||
112 | #ifdef CONFIG_ACPI_NUMA | 112 | #ifdef CONFIG_ACPI_NUMA |
113 | /* Proximity bitmap length; _PXM is at most 255 (8 bit)*/ | 113 | #if MAX_NUMNODES > 256 |
114 | #ifdef CONFIG_IA64_NR_NODES | 114 | #define MAX_PXM_DOMAINS MAX_NUMNODES |
115 | #define MAX_PXM_DOMAINS CONFIG_IA64_NR_NODES | ||
116 | #else | 115 | #else |
117 | #define MAX_PXM_DOMAINS (256) | 116 | #define MAX_PXM_DOMAINS (256) |
118 | #endif | 117 | #endif |
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h index c3e4ed8a3e17..a9c995a86c21 100644 --- a/include/asm-ia64/machvec.h +++ b/include/asm-ia64/machvec.h | |||
@@ -347,9 +347,11 @@ extern ia64_mv_dma_supported swiotlb_dma_supported; | |||
347 | #endif | 347 | #endif |
348 | #ifndef platform_pci_legacy_read | 348 | #ifndef platform_pci_legacy_read |
349 | # define platform_pci_legacy_read ia64_pci_legacy_read | 349 | # define platform_pci_legacy_read ia64_pci_legacy_read |
350 | extern int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size); | ||
350 | #endif | 351 | #endif |
351 | #ifndef platform_pci_legacy_write | 352 | #ifndef platform_pci_legacy_write |
352 | # define platform_pci_legacy_write ia64_pci_legacy_write | 353 | # define platform_pci_legacy_write ia64_pci_legacy_write |
354 | extern int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size); | ||
353 | #endif | 355 | #endif |
354 | #ifndef platform_inb | 356 | #ifndef platform_inb |
355 | # define platform_inb __ia64_inb | 357 | # define platform_inb __ia64_inb |
diff --git a/include/asm-ia64/sn/sn2/sn_hwperf.h b/include/asm-ia64/sn/sn2/sn_hwperf.h index 291ef3d69da2..e61ebac38cdd 100644 --- a/include/asm-ia64/sn/sn2/sn_hwperf.h +++ b/include/asm-ia64/sn/sn2/sn_hwperf.h | |||
@@ -45,8 +45,12 @@ struct sn_hwperf_object_info { | |||
45 | #define SN_HWPERF_IS_NODE(x) ((x) && strstr((x)->name, "SHub")) | 45 | #define SN_HWPERF_IS_NODE(x) ((x) && strstr((x)->name, "SHub")) |
46 | #define SN_HWPERF_IS_NODE_SHUB2(x) ((x) && strstr((x)->name, "SHub 2.")) | 46 | #define SN_HWPERF_IS_NODE_SHUB2(x) ((x) && strstr((x)->name, "SHub 2.")) |
47 | #define SN_HWPERF_IS_IONODE(x) ((x) && strstr((x)->name, "TIO")) | 47 | #define SN_HWPERF_IS_IONODE(x) ((x) && strstr((x)->name, "TIO")) |
48 | #define SN_HWPERF_IS_ROUTER(x) ((x) && strstr((x)->name, "Router")) | ||
49 | #define SN_HWPERF_IS_NL3ROUTER(x) ((x) && strstr((x)->name, "NL3Router")) | 48 | #define SN_HWPERF_IS_NL3ROUTER(x) ((x) && strstr((x)->name, "NL3Router")) |
49 | #define SN_HWPERF_IS_NL4ROUTER(x) ((x) && strstr((x)->name, "NL4Router")) | ||
50 | #define SN_HWPERF_IS_OLDROUTER(x) ((x) && strstr((x)->name, "Router")) | ||
51 | #define SN_HWPERF_IS_ROUTER(x) (SN_HWPERF_IS_NL3ROUTER(x) || \ | ||
52 | SN_HWPERF_IS_NL4ROUTER(x) || \ | ||
53 | SN_HWPERF_IS_OLDROUTER(x)) | ||
50 | #define SN_HWPERF_FOREIGN(x) ((x) && !(x)->sn_hwp_this_part && !(x)->sn_hwp_is_shared) | 54 | #define SN_HWPERF_FOREIGN(x) ((x) && !(x)->sn_hwp_this_part && !(x)->sn_hwp_is_shared) |
51 | #define SN_HWPERF_SAME_OBJTYPE(x,y) ((SN_HWPERF_IS_NODE(x) && SN_HWPERF_IS_NODE(y)) ||\ | 55 | #define SN_HWPERF_SAME_OBJTYPE(x,y) ((SN_HWPERF_IS_NODE(x) && SN_HWPERF_IS_NODE(y)) ||\ |
52 | (SN_HWPERF_IS_IONODE(x) && SN_HWPERF_IS_IONODE(y)) ||\ | 56 | (SN_HWPERF_IS_IONODE(x) && SN_HWPERF_IS_IONODE(y)) ||\ |
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index bf4cc867a698..51aca022cf39 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
@@ -8,7 +8,7 @@ | |||
8 | * License. See the file "COPYING" in the main directory of this archive | 8 | * License. See the file "COPYING" in the main directory of this archive |
9 | * for more details. | 9 | * for more details. |
10 | * | 10 | * |
11 | * Copyright (c) 2000-2005 Silicon Graphics, Inc. All rights reserved. | 11 | * Copyright (c) 2000-2006 Silicon Graphics, Inc. All rights reserved. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | 14 | ||
@@ -85,6 +85,7 @@ | |||
85 | 85 | ||
86 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 | 86 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 |
87 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 | 87 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 |
88 | #define SN_SAL_INJECT_ERROR 0x02000067 | ||
88 | 89 | ||
89 | /* | 90 | /* |
90 | * Service-specific constants | 91 | * Service-specific constants |
@@ -705,10 +706,8 @@ static inline int | |||
705 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) | 706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) |
706 | { | 707 | { |
707 | struct ia64_sal_retval ret_stuff; | 708 | struct ia64_sal_retval ret_stuff; |
708 | int cnodeid; | ||
709 | unsigned long irq_flags; | 709 | unsigned long irq_flags; |
710 | 710 | ||
711 | cnodeid = nasid_to_cnodeid(get_node_number(paddr)); | ||
712 | local_irq_save(irq_flags); | 711 | local_irq_save(irq_flags); |
713 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, | 712 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, |
714 | (u64)nasid_array, perms, 0, 0, 0); | 713 | (u64)nasid_array, perms, 0, 0, 0); |
@@ -1140,4 +1139,16 @@ ia64_sn_set_os_feature(int feature) | |||
1140 | return rv.status; | 1139 | return rv.status; |
1141 | } | 1140 | } |
1142 | 1141 | ||
1142 | static inline int | ||
1143 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) | ||
1144 | { | ||
1145 | struct ia64_sal_retval ret_stuff; | ||
1146 | unsigned long irq_flags; | ||
1147 | |||
1148 | local_irq_save(irq_flags); | ||
1149 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, | ||
1150 | (u64)ecc, 0, 0, 0, 0); | ||
1151 | local_irq_restore(irq_flags); | ||
1152 | return ret_stuff.status; | ||
1153 | } | ||
1143 | #endif /* _ASM_IA64_SN_SN_SAL_H */ | 1154 | #endif /* _ASM_IA64_SN_SN_SAL_H */ |
diff --git a/include/asm-ia64/thread_info.h b/include/asm-ia64/thread_info.h index 56394a2c7055..e5392c4d30c6 100644 --- a/include/asm-ia64/thread_info.h +++ b/include/asm-ia64/thread_info.h | |||
@@ -67,7 +67,7 @@ struct thread_info { | |||
67 | #define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET) | 67 | #define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET) |
68 | 68 | ||
69 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR | 69 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR |
70 | #define alloc_task_struct() ((task_t *)__get_free_pages(GFP_KERNEL, KERNEL_STACK_SIZE_ORDER)) | 70 | #define alloc_task_struct() ((task_t *)__get_free_pages(GFP_KERNEL | __GFP_COMP, KERNEL_STACK_SIZE_ORDER)) |
71 | #define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER) | 71 | #define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER) |
72 | 72 | ||
73 | #endif /* !__ASSEMBLY */ | 73 | #endif /* !__ASSEMBLY */ |
diff --git a/include/asm-ia64/topology.h b/include/asm-ia64/topology.h index 3ee19dfa46df..616b5ed2aa72 100644 --- a/include/asm-ia64/topology.h +++ b/include/asm-ia64/topology.h | |||
@@ -23,6 +23,11 @@ | |||
23 | #define PENALTY_FOR_NODE_WITH_CPUS 255 | 23 | #define PENALTY_FOR_NODE_WITH_CPUS 255 |
24 | 24 | ||
25 | /* | 25 | /* |
26 | * Distance above which we begin to use zone reclaim | ||
27 | */ | ||
28 | #define RECLAIM_DISTANCE 15 | ||
29 | |||
30 | /* | ||
26 | * Returns the number of the node containing CPU 'cpu' | 31 | * Returns the number of the node containing CPU 'cpu' |
27 | */ | 32 | */ |
28 | #define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu]) | 33 | #define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu]) |
diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h index a40ebec6aeeb..7107763168bf 100644 --- a/include/asm-ia64/unistd.h +++ b/include/asm-ia64/unistd.h | |||
@@ -290,12 +290,13 @@ | |||
290 | #define __NR_get_robust_list 1299 | 290 | #define __NR_get_robust_list 1299 |
291 | #define __NR_sync_file_range 1300 | 291 | #define __NR_sync_file_range 1300 |
292 | #define __NR_tee 1301 | 292 | #define __NR_tee 1301 |
293 | #define __NR_vmsplice 1302 | ||
293 | 294 | ||
294 | #ifdef __KERNEL__ | 295 | #ifdef __KERNEL__ |
295 | 296 | ||
296 | #include <linux/config.h> | 297 | #include <linux/config.h> |
297 | 298 | ||
298 | #define NR_syscalls 278 /* length of syscall table */ | 299 | #define NR_syscalls 279 /* length of syscall table */ |
299 | 300 | ||
300 | #define __ARCH_WANT_SYS_RT_SIGACTION | 301 | #define __ARCH_WANT_SYS_RT_SIGACTION |
301 | 302 | ||
diff --git a/include/asm-mips/bitops.h b/include/asm-mips/bitops.h index a1728f8c0705..d2f444537e4b 100644 --- a/include/asm-mips/bitops.h +++ b/include/asm-mips/bitops.h | |||
@@ -467,64 +467,56 @@ static inline unsigned long __ffs(unsigned long word) | |||
467 | } | 467 | } |
468 | 468 | ||
469 | /* | 469 | /* |
470 | * ffs - find first bit set. | 470 | * fls - find last bit set. |
471 | * @word: The word to search | 471 | * @word: The word to search |
472 | * | 472 | * |
473 | * Returns 1..SZLONG | 473 | * This is defined the same way as ffs. |
474 | * Returns 0 if no bit exists | 474 | * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. |
475 | */ | 475 | */ |
476 | 476 | static inline int fls(int word) | |
477 | static inline unsigned long ffs(unsigned long word) | ||
478 | { | 477 | { |
479 | if (!word) | 478 | __asm__ ("clz %0, %1" : "=r" (word) : "r" (word)); |
480 | return 0; | ||
481 | 479 | ||
482 | return __ffs(word) + 1; | 480 | return 32 - word; |
483 | } | 481 | } |
484 | 482 | ||
485 | /* | 483 | #if defined(CONFIG_64BIT) && defined(CONFIG_CPU_MIPS64) |
486 | * ffz - find first zero in word. | 484 | static inline int fls64(__u64 word) |
487 | * @word: The word to search | ||
488 | * | ||
489 | * Undefined if no zero exists, so code should check against ~0UL first. | ||
490 | */ | ||
491 | static inline unsigned long ffz(unsigned long word) | ||
492 | { | 485 | { |
493 | return __ffs (~word); | 486 | __asm__ ("dclz %0, %1" : "=r" (word) : "r" (word)); |
487 | |||
488 | return 64 - word; | ||
494 | } | 489 | } |
490 | #else | ||
491 | #include <asm-generic/bitops/fls64.h> | ||
492 | #endif | ||
495 | 493 | ||
496 | /* | 494 | /* |
497 | * fls - find last bit set. | 495 | * ffs - find first bit set. |
498 | * @word: The word to search | 496 | * @word: The word to search |
499 | * | 497 | * |
500 | * Returns 1..SZLONG | 498 | * This is defined the same way as |
501 | * Returns 0 if no bit exists | 499 | * the libc and compiler builtin ffs routines, therefore |
500 | * differs in spirit from the above ffz (man ffs). | ||
502 | */ | 501 | */ |
503 | static inline unsigned long fls(unsigned long word) | 502 | static inline int ffs(int word) |
504 | { | 503 | { |
505 | #ifdef CONFIG_CPU_MIPS32 | 504 | if (!word) |
506 | __asm__ ("clz %0, %1" : "=r" (word) : "r" (word)); | 505 | return 0; |
507 | |||
508 | return 32 - word; | ||
509 | #endif | ||
510 | |||
511 | #ifdef CONFIG_CPU_MIPS64 | ||
512 | __asm__ ("dclz %0, %1" : "=r" (word) : "r" (word)); | ||
513 | 506 | ||
514 | return 64 - word; | 507 | return fls(word & -word); |
515 | #endif | ||
516 | } | 508 | } |
517 | 509 | ||
518 | #else | 510 | #else |
519 | 511 | ||
520 | #include <asm-generic/bitops/__ffs.h> | 512 | #include <asm-generic/bitops/__ffs.h> |
521 | #include <asm-generic/bitops/ffs.h> | 513 | #include <asm-generic/bitops/ffs.h> |
522 | #include <asm-generic/bitops/ffz.h> | ||
523 | #include <asm-generic/bitops/fls.h> | 514 | #include <asm-generic/bitops/fls.h> |
515 | #include <asm-generic/bitops/fls64.h> | ||
524 | 516 | ||
525 | #endif /*defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64) */ | 517 | #endif /*defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64) */ |
526 | 518 | ||
527 | #include <asm-generic/bitops/fls64.h> | 519 | #include <asm-generic/bitops/ffz.h> |
528 | #include <asm-generic/bitops/find.h> | 520 | #include <asm-generic/bitops/find.h> |
529 | 521 | ||
530 | #ifdef __KERNEL__ | 522 | #ifdef __KERNEL__ |
diff --git a/include/asm-mips/mips-boards/generic.h b/include/asm-mips/mips-boards/generic.h index 25b6ffc26623..fa8b913cc3e0 100644 --- a/include/asm-mips/mips-boards/generic.h +++ b/include/asm-mips/mips-boards/generic.h | |||
@@ -67,6 +67,7 @@ | |||
67 | #define MIPS_REVISION_CORID_CORE_FPGA2 7 | 67 | #define MIPS_REVISION_CORID_CORE_FPGA2 7 |
68 | #define MIPS_REVISION_CORID_CORE_FPGAR2 8 | 68 | #define MIPS_REVISION_CORID_CORE_FPGAR2 8 |
69 | #define MIPS_REVISION_CORID_CORE_FPGA3 9 | 69 | #define MIPS_REVISION_CORID_CORE_FPGA3 9 |
70 | #define MIPS_REVISION_CORID_CORE_24K 10 | ||
70 | 71 | ||
71 | /**** Artificial corid defines ****/ | 72 | /**** Artificial corid defines ****/ |
72 | /* | 73 | /* |
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 4321483cce51..9fcf0162d859 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #define PPC_FEATURE_BOOKE 0x00008000 | 22 | #define PPC_FEATURE_BOOKE 0x00008000 |
23 | #define PPC_FEATURE_SMT 0x00004000 | 23 | #define PPC_FEATURE_SMT 0x00004000 |
24 | #define PPC_FEATURE_ICACHE_SNOOP 0x00002000 | 24 | #define PPC_FEATURE_ICACHE_SNOOP 0x00002000 |
25 | #define PPC_FEATURE_ARCH_2_05 0x00001000 | ||
25 | 26 | ||
26 | #ifdef __KERNEL__ | 27 | #ifdef __KERNEL__ |
27 | #ifndef __ASSEMBLY__ | 28 | #ifndef __ASSEMBLY__ |
@@ -320,6 +321,11 @@ extern void do_cpu_ftr_fixups(unsigned long offset); | |||
320 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | 321 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
321 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ | 322 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ |
322 | CPU_FTR_MMCRA_SIHV | CPU_FTR_PURR) | 323 | CPU_FTR_MMCRA_SIHV | CPU_FTR_PURR) |
324 | #define CPU_FTRS_POWER6 (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ | ||
325 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | \ | ||
326 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | ||
327 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ | ||
328 | CPU_FTR_PURR | CPU_FTR_CI_LARGE_PAGE) | ||
323 | #define CPU_FTRS_CELL (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ | 329 | #define CPU_FTRS_CELL (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ |
324 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | \ | 330 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | \ |
325 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | 331 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
@@ -331,8 +337,8 @@ extern void do_cpu_ftr_fixups(unsigned long offset); | |||
331 | #ifdef __powerpc64__ | 337 | #ifdef __powerpc64__ |
332 | #define CPU_FTRS_POSSIBLE \ | 338 | #define CPU_FTRS_POSSIBLE \ |
333 | (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ | 339 | (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ |
334 | CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_CELL | \ | 340 | CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \ |
335 | CPU_FTR_CI_LARGE_PAGE) | 341 | CPU_FTRS_CELL | CPU_FTR_CI_LARGE_PAGE) |
336 | #else | 342 | #else |
337 | enum { | 343 | enum { |
338 | CPU_FTRS_POSSIBLE = | 344 | CPU_FTRS_POSSIBLE = |
@@ -376,8 +382,8 @@ enum { | |||
376 | #ifdef __powerpc64__ | 382 | #ifdef __powerpc64__ |
377 | #define CPU_FTRS_ALWAYS \ | 383 | #define CPU_FTRS_ALWAYS \ |
378 | (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \ | 384 | (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \ |
379 | CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & CPU_FTRS_CELL & \ | 385 | CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & CPU_FTRS_POWER6 & \ |
380 | CPU_FTRS_POSSIBLE) | 386 | CPU_FTRS_CELL & CPU_FTRS_POSSIBLE) |
381 | #else | 387 | #else |
382 | enum { | 388 | enum { |
383 | CPU_FTRS_ALWAYS = | 389 | CPU_FTRS_ALWAYS = |
diff --git a/include/asm-powerpc/io.h b/include/asm-powerpc/io.h index 68efbea379c9..f1c2469b8844 100644 --- a/include/asm-powerpc/io.h +++ b/include/asm-powerpc/io.h | |||
@@ -9,6 +9,9 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /* Check of existence of legacy devices */ | ||
13 | extern int check_legacy_ioport(unsigned long base_port); | ||
14 | |||
12 | #ifndef CONFIG_PPC64 | 15 | #ifndef CONFIG_PPC64 |
13 | #include <asm-ppc/io.h> | 16 | #include <asm-ppc/io.h> |
14 | #else | 17 | #else |
@@ -437,9 +440,6 @@ out: | |||
437 | #define dma_cache_wback(_start,_size) do { } while (0) | 440 | #define dma_cache_wback(_start,_size) do { } while (0) |
438 | #define dma_cache_wback_inv(_start,_size) do { } while (0) | 441 | #define dma_cache_wback_inv(_start,_size) do { } while (0) |
439 | 442 | ||
440 | /* Check of existence of legacy devices */ | ||
441 | extern int check_legacy_ioport(unsigned long base_port); | ||
442 | |||
443 | 443 | ||
444 | /* | 444 | /* |
445 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | 445 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem |
diff --git a/include/asm-powerpc/page_64.h b/include/asm-powerpc/page_64.h index 3fb061bab9ec..eab779c21995 100644 --- a/include/asm-powerpc/page_64.h +++ b/include/asm-powerpc/page_64.h | |||
@@ -101,6 +101,7 @@ extern unsigned int HPAGE_SHIFT; | |||
101 | - (1U << GET_HTLB_AREA(addr))) & 0xffff) | 101 | - (1U << GET_HTLB_AREA(addr))) & 0xffff) |
102 | 102 | ||
103 | #define ARCH_HAS_HUGEPAGE_ONLY_RANGE | 103 | #define ARCH_HAS_HUGEPAGE_ONLY_RANGE |
104 | #define ARCH_HAS_HUGETLB_FREE_PGD_RANGE | ||
104 | #define ARCH_HAS_PREPARE_HUGEPAGE_RANGE | 105 | #define ARCH_HAS_PREPARE_HUGEPAGE_RANGE |
105 | #define ARCH_HAS_SETCLEAR_HUGE_PTE | 106 | #define ARCH_HAS_SETCLEAR_HUGE_PTE |
106 | 107 | ||
diff --git a/include/asm-powerpc/pgalloc.h b/include/asm-powerpc/pgalloc.h index a00ee002cd11..9f0917c68659 100644 --- a/include/asm-powerpc/pgalloc.h +++ b/include/asm-powerpc/pgalloc.h | |||
@@ -17,11 +17,13 @@ extern kmem_cache_t *pgtable_cache[]; | |||
17 | #define PTE_CACHE_NUM 0 | 17 | #define PTE_CACHE_NUM 0 |
18 | #define PMD_CACHE_NUM 1 | 18 | #define PMD_CACHE_NUM 1 |
19 | #define PGD_CACHE_NUM 2 | 19 | #define PGD_CACHE_NUM 2 |
20 | #define HUGEPTE_CACHE_NUM 3 | ||
20 | #else | 21 | #else |
21 | #define PTE_CACHE_NUM 0 | 22 | #define PTE_CACHE_NUM 0 |
22 | #define PMD_CACHE_NUM 1 | 23 | #define PMD_CACHE_NUM 1 |
23 | #define PUD_CACHE_NUM 1 | 24 | #define PUD_CACHE_NUM 1 |
24 | #define PGD_CACHE_NUM 0 | 25 | #define PGD_CACHE_NUM 0 |
26 | #define HUGEPTE_CACHE_NUM 2 | ||
25 | #endif | 27 | #endif |
26 | 28 | ||
27 | /* | 29 | /* |
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h index f431d8b0b651..7cfcff3ef027 100644 --- a/include/asm-powerpc/spu.h +++ b/include/asm-powerpc/spu.h | |||
@@ -117,6 +117,7 @@ struct spu { | |||
117 | struct list_head list; | 117 | struct list_head list; |
118 | struct list_head sched_list; | 118 | struct list_head sched_list; |
119 | int number; | 119 | int number; |
120 | int nid; | ||
120 | u32 isrc; | 121 | u32 isrc; |
121 | u32 node; | 122 | u32 node; |
122 | u64 flags; | 123 | u64 flags; |
diff --git a/include/asm-powerpc/topology.h b/include/asm-powerpc/topology.h index 1e19cd00af25..87362a05542b 100644 --- a/include/asm-powerpc/topology.h +++ b/include/asm-powerpc/topology.h | |||
@@ -4,6 +4,9 @@ | |||
4 | 4 | ||
5 | #include <linux/config.h> | 5 | #include <linux/config.h> |
6 | 6 | ||
7 | struct sys_device; | ||
8 | struct device_node; | ||
9 | |||
7 | #ifdef CONFIG_NUMA | 10 | #ifdef CONFIG_NUMA |
8 | 11 | ||
9 | #include <asm/mmzone.h> | 12 | #include <asm/mmzone.h> |
@@ -27,6 +30,8 @@ static inline int node_to_first_cpu(int node) | |||
27 | return first_cpu(tmp); | 30 | return first_cpu(tmp); |
28 | } | 31 | } |
29 | 32 | ||
33 | int of_node_to_nid(struct device_node *device); | ||
34 | |||
30 | #define pcibus_to_node(node) (-1) | 35 | #define pcibus_to_node(node) (-1) |
31 | #define pcibus_to_cpumask(bus) (cpu_online_map) | 36 | #define pcibus_to_cpumask(bus) (cpu_online_map) |
32 | 37 | ||
@@ -57,10 +62,29 @@ static inline int node_to_first_cpu(int node) | |||
57 | 62 | ||
58 | extern void __init dump_numa_cpu_topology(void); | 63 | extern void __init dump_numa_cpu_topology(void); |
59 | 64 | ||
65 | extern int sysfs_add_device_to_node(struct sys_device *dev, int nid); | ||
66 | extern void sysfs_remove_device_from_node(struct sys_device *dev, int nid); | ||
67 | |||
60 | #else | 68 | #else |
61 | 69 | ||
70 | static inline int of_node_to_nid(struct device_node *device) | ||
71 | { | ||
72 | return 0; | ||
73 | } | ||
74 | |||
62 | static inline void dump_numa_cpu_topology(void) {} | 75 | static inline void dump_numa_cpu_topology(void) {} |
63 | 76 | ||
77 | static inline int sysfs_add_device_to_node(struct sys_device *dev, int nid) | ||
78 | { | ||
79 | return 0; | ||
80 | } | ||
81 | |||
82 | static inline void sysfs_remove_device_from_node(struct sys_device *dev, | ||
83 | int nid) | ||
84 | { | ||
85 | } | ||
86 | |||
87 | |||
64 | #include <asm-generic/topology.h> | 88 | #include <asm-generic/topology.h> |
65 | 89 | ||
66 | #endif /* CONFIG_NUMA */ | 90 | #endif /* CONFIG_NUMA */ |
diff --git a/include/asm-powerpc/uaccess.h b/include/asm-powerpc/uaccess.h index 3872e924cdd6..d83fc29c2bbf 100644 --- a/include/asm-powerpc/uaccess.h +++ b/include/asm-powerpc/uaccess.h | |||
@@ -7,6 +7,7 @@ | |||
7 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
8 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
9 | #include <asm/processor.h> | 9 | #include <asm/processor.h> |
10 | #include <asm/page.h> | ||
10 | 11 | ||
11 | #define VERIFY_READ 0 | 12 | #define VERIFY_READ 0 |
12 | #define VERIFY_WRITE 1 | 13 | #define VERIFY_WRITE 1 |
@@ -179,9 +180,11 @@ do { \ | |||
179 | #define __put_user_nocheck(x, ptr, size) \ | 180 | #define __put_user_nocheck(x, ptr, size) \ |
180 | ({ \ | 181 | ({ \ |
181 | long __pu_err; \ | 182 | long __pu_err; \ |
182 | might_sleep(); \ | 183 | __typeof__(*(ptr)) __user *__pu_addr = (ptr); \ |
184 | if (!is_kernel_addr((unsigned long)__pu_addr)) \ | ||
185 | might_sleep(); \ | ||
183 | __chk_user_ptr(ptr); \ | 186 | __chk_user_ptr(ptr); \ |
184 | __put_user_size((x), (ptr), (size), __pu_err); \ | 187 | __put_user_size((x), __pu_addr, (size), __pu_err); \ |
185 | __pu_err; \ | 188 | __pu_err; \ |
186 | }) | 189 | }) |
187 | 190 | ||
@@ -258,9 +261,11 @@ do { \ | |||
258 | ({ \ | 261 | ({ \ |
259 | long __gu_err; \ | 262 | long __gu_err; \ |
260 | unsigned long __gu_val; \ | 263 | unsigned long __gu_val; \ |
264 | const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \ | ||
261 | __chk_user_ptr(ptr); \ | 265 | __chk_user_ptr(ptr); \ |
262 | might_sleep(); \ | 266 | if (!is_kernel_addr((unsigned long)__gu_addr)) \ |
263 | __get_user_size(__gu_val, (ptr), (size), __gu_err); \ | 267 | might_sleep(); \ |
268 | __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \ | ||
264 | (x) = (__typeof__(*(ptr)))__gu_val; \ | 269 | (x) = (__typeof__(*(ptr)))__gu_val; \ |
265 | __gu_err; \ | 270 | __gu_err; \ |
266 | }) | 271 | }) |
@@ -270,9 +275,11 @@ do { \ | |||
270 | ({ \ | 275 | ({ \ |
271 | long __gu_err; \ | 276 | long __gu_err; \ |
272 | long long __gu_val; \ | 277 | long long __gu_val; \ |
278 | const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \ | ||
273 | __chk_user_ptr(ptr); \ | 279 | __chk_user_ptr(ptr); \ |
274 | might_sleep(); \ | 280 | if (!is_kernel_addr((unsigned long)__gu_addr)) \ |
275 | __get_user_size(__gu_val, (ptr), (size), __gu_err); \ | 281 | might_sleep(); \ |
282 | __get_user_size(__gu_val, __gu_addr, (size), __gu_err); \ | ||
276 | (x) = (__typeof__(*(ptr)))__gu_val; \ | 283 | (x) = (__typeof__(*(ptr)))__gu_val; \ |
277 | __gu_err; \ | 284 | __gu_err; \ |
278 | }) | 285 | }) |
diff --git a/include/asm-powerpc/unistd.h b/include/asm-powerpc/unistd.h index c612f1a62772..908acb44cb8a 100644 --- a/include/asm-powerpc/unistd.h +++ b/include/asm-powerpc/unistd.h | |||
@@ -303,8 +303,26 @@ | |||
303 | #define __NR_unshare 282 | 303 | #define __NR_unshare 282 |
304 | #define __NR_splice 283 | 304 | #define __NR_splice 283 |
305 | #define __NR_tee 284 | 305 | #define __NR_tee 284 |
306 | #define __NR_vmsplice 285 | ||
307 | #define __NR_openat 286 | ||
308 | #define __NR_mkdirat 287 | ||
309 | #define __NR_mknodat 288 | ||
310 | #define __NR_fchownat 289 | ||
311 | #define __NR_futimesat 290 | ||
312 | #ifdef __powerpc64__ | ||
313 | #define __NR_newfstatat 291 | ||
314 | #else | ||
315 | #define __NR_fstatat64 291 | ||
316 | #endif | ||
317 | #define __NR_unlinkat 292 | ||
318 | #define __NR_renameat 293 | ||
319 | #define __NR_linkat 294 | ||
320 | #define __NR_symlinkat 295 | ||
321 | #define __NR_readlinkat 296 | ||
322 | #define __NR_fchmodat 297 | ||
323 | #define __NR_faccessat 298 | ||
306 | 324 | ||
307 | #define __NR_syscalls 285 | 325 | #define __NR_syscalls 299 |
308 | 326 | ||
309 | #ifdef __KERNEL__ | 327 | #ifdef __KERNEL__ |
310 | #define __NR__exit __NR_exit | 328 | #define __NR__exit __NR_exit |
@@ -457,6 +475,7 @@ type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6 | |||
457 | #ifdef CONFIG_PPC64 | 475 | #ifdef CONFIG_PPC64 |
458 | #define __ARCH_WANT_COMPAT_SYS_TIME | 476 | #define __ARCH_WANT_COMPAT_SYS_TIME |
459 | #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND | 477 | #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND |
478 | #define __ARCH_WANT_SYS_NEWFSTATAT | ||
460 | #endif | 479 | #endif |
461 | 480 | ||
462 | /* | 481 | /* |
diff --git a/include/asm-ppc/commproc.h b/include/asm-ppc/commproc.h index 973e60908234..31f362966a58 100644 --- a/include/asm-ppc/commproc.h +++ b/include/asm-ppc/commproc.h | |||
@@ -35,6 +35,7 @@ | |||
35 | #define CPM_CR_INIT_TX ((ushort)0x0002) | 35 | #define CPM_CR_INIT_TX ((ushort)0x0002) |
36 | #define CPM_CR_HUNT_MODE ((ushort)0x0003) | 36 | #define CPM_CR_HUNT_MODE ((ushort)0x0003) |
37 | #define CPM_CR_STOP_TX ((ushort)0x0004) | 37 | #define CPM_CR_STOP_TX ((ushort)0x0004) |
38 | #define CPM_CR_GRA_STOP_TX ((ushort)0x0005) | ||
38 | #define CPM_CR_RESTART_TX ((ushort)0x0006) | 39 | #define CPM_CR_RESTART_TX ((ushort)0x0006) |
39 | #define CPM_CR_CLOSE_RX_BD ((ushort)0x0007) | 40 | #define CPM_CR_CLOSE_RX_BD ((ushort)0x0007) |
40 | #define CPM_CR_SET_GADDR ((ushort)0x0008) | 41 | #define CPM_CR_SET_GADDR ((ushort)0x0008) |
diff --git a/include/asm-ppc/cpm2.h b/include/asm-ppc/cpm2.h index b638b87cebe3..c70344b91049 100644 --- a/include/asm-ppc/cpm2.h +++ b/include/asm-ppc/cpm2.h | |||
@@ -69,7 +69,7 @@ | |||
69 | #define CPM_CR_INIT_TX ((ushort)0x0002) | 69 | #define CPM_CR_INIT_TX ((ushort)0x0002) |
70 | #define CPM_CR_HUNT_MODE ((ushort)0x0003) | 70 | #define CPM_CR_HUNT_MODE ((ushort)0x0003) |
71 | #define CPM_CR_STOP_TX ((ushort)0x0004) | 71 | #define CPM_CR_STOP_TX ((ushort)0x0004) |
72 | #define CPM_CR_GRA_STOP_TX ((ushort)0x0005) | 72 | #define CPM_CR_GRA_STOP_TX ((ushort)0x0005) |
73 | #define CPM_CR_RESTART_TX ((ushort)0x0006) | 73 | #define CPM_CR_RESTART_TX ((ushort)0x0006) |
74 | #define CPM_CR_SET_GADDR ((ushort)0x0008) | 74 | #define CPM_CR_SET_GADDR ((ushort)0x0008) |
75 | #define CPM_CR_START_IDMA ((ushort)0x0009) | 75 | #define CPM_CR_START_IDMA ((ushort)0x0009) |
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h index 4b94f7059ebe..40f197af6508 100644 --- a/include/asm-ppc/ppc_sys.h +++ b/include/asm-ppc/ppc_sys.h | |||
@@ -39,6 +39,8 @@ | |||
39 | #error "need definition of ppc_sys_devices" | 39 | #error "need definition of ppc_sys_devices" |
40 | #endif | 40 | #endif |
41 | 41 | ||
42 | #define PPC_SYS_IORESOURCE_FIXUPPED 0x00000001 | ||
43 | |||
42 | struct ppc_sys_spec { | 44 | struct ppc_sys_spec { |
43 | /* PPC sys is matched via (ID & mask) == value, id could be | 45 | /* PPC sys is matched via (ID & mask) == value, id could be |
44 | * PVR, SVR, IMMR, * etc. */ | 46 | * PVR, SVR, IMMR, * etc. */ |
diff --git a/include/asm-ppc/reg_booke.h b/include/asm-ppc/reg_booke.h index 00ad9c754c78..4944c0fb8bea 100644 --- a/include/asm-ppc/reg_booke.h +++ b/include/asm-ppc/reg_booke.h | |||
@@ -237,6 +237,7 @@ do { \ | |||
237 | #endif | 237 | #endif |
238 | 238 | ||
239 | /* Bit definitions for CCR1. */ | 239 | /* Bit definitions for CCR1. */ |
240 | #define CCR1_DPC 0x00000100 /* Disable L1 I-Cache/D-Cache parity checking */ | ||
240 | #define CCR1_TCS 0x00000080 /* Timer Clock Select */ | 241 | #define CCR1_TCS 0x00000080 /* Timer Clock Select */ |
241 | 242 | ||
242 | /* Bit definitions for the MCSR. */ | 243 | /* Bit definitions for the MCSR. */ |
diff --git a/include/asm-s390/cache.h b/include/asm-s390/cache.h index e20cdd9074db..cdf431b061bb 100644 --- a/include/asm-s390/cache.h +++ b/include/asm-s390/cache.h | |||
@@ -16,4 +16,6 @@ | |||
16 | 16 | ||
17 | #define ARCH_KMALLOC_MINALIGN 8 | 17 | #define ARCH_KMALLOC_MINALIGN 8 |
18 | 18 | ||
19 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | ||
20 | |||
19 | #endif | 21 | #endif |
diff --git a/include/asm-s390/futex.h b/include/asm-s390/futex.h index 6a332a9f099c..40c25e166a9b 100644 --- a/include/asm-s390/futex.h +++ b/include/asm-s390/futex.h | |||
@@ -1,6 +1,121 @@ | |||
1 | #ifndef _ASM_FUTEX_H | 1 | #ifndef _ASM_S390_FUTEX_H |
2 | #define _ASM_FUTEX_H | 2 | #define _ASM_S390_FUTEX_H |
3 | 3 | ||
4 | #include <asm-generic/futex.h> | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #endif | 6 | #include <linux/futex.h> |
7 | #include <asm/errno.h> | ||
8 | #include <asm/uaccess.h> | ||
9 | |||
10 | #ifndef __s390x__ | ||
11 | #define __futex_atomic_fixup \ | ||
12 | ".section __ex_table,\"a\"\n" \ | ||
13 | " .align 4\n" \ | ||
14 | " .long 0b,2b,1b,2b\n" \ | ||
15 | ".previous" | ||
16 | #else /* __s390x__ */ | ||
17 | #define __futex_atomic_fixup \ | ||
18 | ".section __ex_table,\"a\"\n" \ | ||
19 | " .align 8\n" \ | ||
20 | " .quad 0b,2b,1b,2b\n" \ | ||
21 | ".previous" | ||
22 | #endif /* __s390x__ */ | ||
23 | |||
24 | #define __futex_atomic_op(insn, ret, oldval, newval, uaddr, oparg) \ | ||
25 | asm volatile(" l %1,0(%6)\n" \ | ||
26 | "0: " insn \ | ||
27 | " cs %1,%2,0(%6)\n" \ | ||
28 | "1: jl 0b\n" \ | ||
29 | " lhi %0,0\n" \ | ||
30 | "2:\n" \ | ||
31 | __futex_atomic_fixup \ | ||
32 | : "=d" (ret), "=&d" (oldval), "=&d" (newval), \ | ||
33 | "=m" (*uaddr) \ | ||
34 | : "0" (-EFAULT), "d" (oparg), "a" (uaddr), \ | ||
35 | "m" (*uaddr) : "cc" ); | ||
36 | |||
37 | static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | ||
38 | { | ||
39 | int op = (encoded_op >> 28) & 7; | ||
40 | int cmp = (encoded_op >> 24) & 15; | ||
41 | int oparg = (encoded_op << 8) >> 20; | ||
42 | int cmparg = (encoded_op << 20) >> 20; | ||
43 | int oldval = 0, newval, ret; | ||
44 | if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) | ||
45 | oparg = 1 << oparg; | ||
46 | |||
47 | if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) | ||
48 | return -EFAULT; | ||
49 | |||
50 | inc_preempt_count(); | ||
51 | |||
52 | switch (op) { | ||
53 | case FUTEX_OP_SET: | ||
54 | __futex_atomic_op("lr %2,%5\n", | ||
55 | ret, oldval, newval, uaddr, oparg); | ||
56 | break; | ||
57 | case FUTEX_OP_ADD: | ||
58 | __futex_atomic_op("lr %2,%1\nar %2,%5\n", | ||
59 | ret, oldval, newval, uaddr, oparg); | ||
60 | break; | ||
61 | case FUTEX_OP_OR: | ||
62 | __futex_atomic_op("lr %2,%1\nor %2,%5\n", | ||
63 | ret, oldval, newval, uaddr, oparg); | ||
64 | break; | ||
65 | case FUTEX_OP_ANDN: | ||
66 | __futex_atomic_op("lr %2,%1\nnr %2,%5\n", | ||
67 | ret, oldval, newval, uaddr, oparg); | ||
68 | break; | ||
69 | case FUTEX_OP_XOR: | ||
70 | __futex_atomic_op("lr %2,%1\nxr %2,%5\n", | ||
71 | ret, oldval, newval, uaddr, oparg); | ||
72 | break; | ||
73 | default: | ||
74 | ret = -ENOSYS; | ||
75 | } | ||
76 | |||
77 | dec_preempt_count(); | ||
78 | |||
79 | if (!ret) { | ||
80 | switch (cmp) { | ||
81 | case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break; | ||
82 | case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break; | ||
83 | case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break; | ||
84 | case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break; | ||
85 | case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break; | ||
86 | case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break; | ||
87 | default: ret = -ENOSYS; | ||
88 | } | ||
89 | } | ||
90 | return ret; | ||
91 | } | ||
92 | |||
93 | static inline int | ||
94 | futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | ||
95 | { | ||
96 | int ret; | ||
97 | |||
98 | if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) | ||
99 | return -EFAULT; | ||
100 | asm volatile(" cs %1,%4,0(%5)\n" | ||
101 | "0: lr %0,%1\n" | ||
102 | "1:\n" | ||
103 | #ifndef __s390x__ | ||
104 | ".section __ex_table,\"a\"\n" | ||
105 | " .align 4\n" | ||
106 | " .long 0b,1b\n" | ||
107 | ".previous" | ||
108 | #else /* __s390x__ */ | ||
109 | ".section __ex_table,\"a\"\n" | ||
110 | " .align 8\n" | ||
111 | " .quad 0b,1b\n" | ||
112 | ".previous" | ||
113 | #endif /* __s390x__ */ | ||
114 | : "=d" (ret), "+d" (oldval), "=m" (*uaddr) | ||
115 | : "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr) | ||
116 | : "cc", "memory" ); | ||
117 | return oldval; | ||
118 | } | ||
119 | |||
120 | #endif /* __KERNEL__ */ | ||
121 | #endif /* _ASM_S390_FUTEX_H */ | ||
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h index 45feff893b8e..f5611a721fbd 100644 --- a/include/asm-sparc/unistd.h +++ b/include/asm-sparc/unistd.h | |||
@@ -41,7 +41,7 @@ | |||
41 | #define __NR_capset 22 /* Linux Specific */ | 41 | #define __NR_capset 22 /* Linux Specific */ |
42 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ | 42 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ |
43 | #define __NR_getuid 24 /* Common */ | 43 | #define __NR_getuid 24 /* Common */ |
44 | /* #define __NR_time alias 25 ENOSYS under SunOS */ | 44 | #define __NR_vmsplice 25 /* ENOSYS under SunOS */ |
45 | #define __NR_ptrace 26 /* Common */ | 45 | #define __NR_ptrace 26 /* Common */ |
46 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ | 46 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ |
47 | #define __NR_sigaltstack 28 /* Common */ | 47 | #define __NR_sigaltstack 28 /* Common */ |
@@ -271,7 +271,7 @@ | |||
271 | #define __NR_getsid 252 | 271 | #define __NR_getsid 252 |
272 | #define __NR_fdatasync 253 | 272 | #define __NR_fdatasync 253 |
273 | #define __NR_nfsservctl 254 | 273 | #define __NR_nfsservctl 254 |
274 | #define __NR_sys_sync_file_range 255 | 274 | #define __NR_sync_file_range 255 |
275 | #define __NR_clock_settime 256 | 275 | #define __NR_clock_settime 256 |
276 | #define __NR_clock_gettime 257 | 276 | #define __NR_clock_gettime 257 |
277 | #define __NR_clock_getres 258 | 277 | #define __NR_clock_getres 258 |
diff --git a/include/asm-sparc64/tlbflush.h b/include/asm-sparc64/tlbflush.h index 9ad5d9c51d42..e3a7c453b500 100644 --- a/include/asm-sparc64/tlbflush.h +++ b/include/asm-sparc64/tlbflush.h | |||
@@ -22,8 +22,6 @@ extern void flush_tlb_pending(void); | |||
22 | /* Local cpu only. */ | 22 | /* Local cpu only. */ |
23 | extern void __flush_tlb_all(void); | 23 | extern void __flush_tlb_all(void); |
24 | 24 | ||
25 | extern void __flush_tlb_page(unsigned long context, unsigned long page, unsigned long r); | ||
26 | |||
27 | extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end); | 25 | extern void __flush_tlb_kernel_range(unsigned long start, unsigned long end); |
28 | 26 | ||
29 | #ifndef CONFIG_SMP | 27 | #ifndef CONFIG_SMP |
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h index 597f6923a46e..68705748bec0 100644 --- a/include/asm-sparc64/unistd.h +++ b/include/asm-sparc64/unistd.h | |||
@@ -41,7 +41,7 @@ | |||
41 | #define __NR_capset 22 /* Linux Specific */ | 41 | #define __NR_capset 22 /* Linux Specific */ |
42 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ | 42 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ |
43 | #define __NR_getuid 24 /* Common */ | 43 | #define __NR_getuid 24 /* Common */ |
44 | /* #define __NR_time alias 25 ENOSYS under SunOS */ | 44 | #define __NR_vmsplice 25 /* ENOSYS under SunOS */ |
45 | #define __NR_ptrace 26 /* Common */ | 45 | #define __NR_ptrace 26 /* Common */ |
46 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ | 46 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ |
47 | #define __NR_sigaltstack 28 /* Common */ | 47 | #define __NR_sigaltstack 28 /* Common */ |
@@ -273,7 +273,7 @@ | |||
273 | #define __NR_getsid 252 | 273 | #define __NR_getsid 252 |
274 | #define __NR_fdatasync 253 | 274 | #define __NR_fdatasync 253 |
275 | #define __NR_nfsservctl 254 | 275 | #define __NR_nfsservctl 254 |
276 | #define __NR_sys_sync_file_range 255 | 276 | #define __NR_sync_file_range 255 |
277 | #define __NR_clock_settime 256 | 277 | #define __NR_clock_settime 256 |
278 | #define __NR_clock_gettime 257 | 278 | #define __NR_clock_gettime 257 |
279 | #define __NR_clock_getres 258 | 279 | #define __NR_clock_getres 258 |
diff --git a/include/asm-x86_64/unistd.h b/include/asm-x86_64/unistd.h index 98c36eae567c..feb77cb8c044 100644 --- a/include/asm-x86_64/unistd.h +++ b/include/asm-x86_64/unistd.h | |||
@@ -615,8 +615,10 @@ __SYSCALL(__NR_splice, sys_splice) | |||
615 | __SYSCALL(__NR_tee, sys_tee) | 615 | __SYSCALL(__NR_tee, sys_tee) |
616 | #define __NR_sync_file_range 277 | 616 | #define __NR_sync_file_range 277 |
617 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) | 617 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) |
618 | #define __NR_vmsplice 278 | ||
619 | __SYSCALL(__NR_vmsplice, sys_vmsplice) | ||
618 | 620 | ||
619 | #define __NR_syscall_max __NR_sync_file_range | 621 | #define __NR_syscall_max __NR_vmsplice |
620 | 622 | ||
621 | #ifndef __NO_STUBS | 623 | #ifndef __NO_STUBS |
622 | 624 | ||
diff --git a/include/asm-xtensa/signal.h b/include/asm-xtensa/signal.h index 5d6fc9cdf58d..a99c9aec64ec 100644 --- a/include/asm-xtensa/signal.h +++ b/include/asm-xtensa/signal.h | |||
@@ -118,9 +118,9 @@ typedef struct { | |||
118 | * SA_INTERRUPT is also used by the irq handling routines. | 118 | * SA_INTERRUPT is also used by the irq handling routines. |
119 | * SA_SHIRQ is for shared interrupt support on PCI and EISA. | 119 | * SA_SHIRQ is for shared interrupt support on PCI and EISA. |
120 | */ | 120 | */ |
121 | #define SA_PROBE SA_ONESHOT | ||
122 | #define SA_SAMPLE_RANDOM SA_RESTART | 121 | #define SA_SAMPLE_RANDOM SA_RESTART |
123 | #define SA_SHIRQ 0x04000000 | 122 | #define SA_SHIRQ 0x04000000 |
123 | #define SA_PROBEIRQ 0x08000000 | ||
124 | #endif | 124 | #endif |
125 | 125 | ||
126 | #define SIG_BLOCK 0 /* for blocking signals */ | 126 | #define SIG_BLOCK 0 /* for blocking signals */ |
diff --git a/include/linux/audit.h b/include/linux/audit.h index 1c47c59058c1..b74c148f14e3 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -83,6 +83,7 @@ | |||
83 | #define AUDIT_CONFIG_CHANGE 1305 /* Audit system configuration change */ | 83 | #define AUDIT_CONFIG_CHANGE 1305 /* Audit system configuration change */ |
84 | #define AUDIT_SOCKADDR 1306 /* sockaddr copied as syscall arg */ | 84 | #define AUDIT_SOCKADDR 1306 /* sockaddr copied as syscall arg */ |
85 | #define AUDIT_CWD 1307 /* Current working directory */ | 85 | #define AUDIT_CWD 1307 /* Current working directory */ |
86 | #define AUDIT_IPC_SET_PERM 1311 /* IPC new permissions record type */ | ||
86 | 87 | ||
87 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ | 88 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ |
88 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ | 89 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ |
@@ -145,6 +146,11 @@ | |||
145 | #define AUDIT_PERS 10 | 146 | #define AUDIT_PERS 10 |
146 | #define AUDIT_ARCH 11 | 147 | #define AUDIT_ARCH 11 |
147 | #define AUDIT_MSGTYPE 12 | 148 | #define AUDIT_MSGTYPE 12 |
149 | #define AUDIT_SE_USER 13 /* security label user */ | ||
150 | #define AUDIT_SE_ROLE 14 /* security label role */ | ||
151 | #define AUDIT_SE_TYPE 15 /* security label type */ | ||
152 | #define AUDIT_SE_SEN 16 /* security label sensitivity label */ | ||
153 | #define AUDIT_SE_CLR 17 /* security label clearance label */ | ||
148 | 154 | ||
149 | /* These are ONLY useful when checking | 155 | /* These are ONLY useful when checking |
150 | * at syscall exit time (AUDIT_AT_EXIT). */ | 156 | * at syscall exit time (AUDIT_AT_EXIT). */ |
@@ -287,10 +293,10 @@ struct netlink_skb_parms; | |||
287 | /* Public API */ | 293 | /* Public API */ |
288 | extern int audit_alloc(struct task_struct *task); | 294 | extern int audit_alloc(struct task_struct *task); |
289 | extern void audit_free(struct task_struct *task); | 295 | extern void audit_free(struct task_struct *task); |
290 | extern void audit_syscall_entry(struct task_struct *task, int arch, | 296 | extern void audit_syscall_entry(int arch, |
291 | int major, unsigned long a0, unsigned long a1, | 297 | int major, unsigned long a0, unsigned long a1, |
292 | unsigned long a2, unsigned long a3); | 298 | unsigned long a2, unsigned long a3); |
293 | extern void audit_syscall_exit(struct task_struct *task, int failed, long return_code); | 299 | extern void audit_syscall_exit(int failed, long return_code); |
294 | extern void audit_getname(const char *name); | 300 | extern void audit_getname(const char *name); |
295 | extern void audit_putname(const char *name); | 301 | extern void audit_putname(const char *name); |
296 | extern void __audit_inode(const char *name, const struct inode *inode, unsigned flags); | 302 | extern void __audit_inode(const char *name, const struct inode *inode, unsigned flags); |
@@ -314,7 +320,8 @@ extern void auditsc_get_stamp(struct audit_context *ctx, | |||
314 | struct timespec *t, unsigned int *serial); | 320 | struct timespec *t, unsigned int *serial); |
315 | extern int audit_set_loginuid(struct task_struct *task, uid_t loginuid); | 321 | extern int audit_set_loginuid(struct task_struct *task, uid_t loginuid); |
316 | extern uid_t audit_get_loginuid(struct audit_context *ctx); | 322 | extern uid_t audit_get_loginuid(struct audit_context *ctx); |
317 | extern int audit_ipc_perms(unsigned long qbytes, uid_t uid, gid_t gid, mode_t mode, struct kern_ipc_perm *ipcp); | 323 | extern int audit_ipc_obj(struct kern_ipc_perm *ipcp); |
324 | extern int audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, mode_t mode, struct kern_ipc_perm *ipcp); | ||
318 | extern int audit_socketcall(int nargs, unsigned long *args); | 325 | extern int audit_socketcall(int nargs, unsigned long *args); |
319 | extern int audit_sockaddr(int len, void *addr); | 326 | extern int audit_sockaddr(int len, void *addr); |
320 | extern int audit_avc_path(struct dentry *dentry, struct vfsmount *mnt); | 327 | extern int audit_avc_path(struct dentry *dentry, struct vfsmount *mnt); |
@@ -323,8 +330,8 @@ extern int audit_set_macxattr(const char *name); | |||
323 | #else | 330 | #else |
324 | #define audit_alloc(t) ({ 0; }) | 331 | #define audit_alloc(t) ({ 0; }) |
325 | #define audit_free(t) do { ; } while (0) | 332 | #define audit_free(t) do { ; } while (0) |
326 | #define audit_syscall_entry(t,ta,a,b,c,d,e) do { ; } while (0) | 333 | #define audit_syscall_entry(ta,a,b,c,d,e) do { ; } while (0) |
327 | #define audit_syscall_exit(t,f,r) do { ; } while (0) | 334 | #define audit_syscall_exit(f,r) do { ; } while (0) |
328 | #define audit_getname(n) do { ; } while (0) | 335 | #define audit_getname(n) do { ; } while (0) |
329 | #define audit_putname(n) do { ; } while (0) | 336 | #define audit_putname(n) do { ; } while (0) |
330 | #define __audit_inode(n,i,f) do { ; } while (0) | 337 | #define __audit_inode(n,i,f) do { ; } while (0) |
@@ -333,7 +340,8 @@ extern int audit_set_macxattr(const char *name); | |||
333 | #define audit_inode_child(d,i,p) do { ; } while (0) | 340 | #define audit_inode_child(d,i,p) do { ; } while (0) |
334 | #define auditsc_get_stamp(c,t,s) do { BUG(); } while (0) | 341 | #define auditsc_get_stamp(c,t,s) do { BUG(); } while (0) |
335 | #define audit_get_loginuid(c) ({ -1; }) | 342 | #define audit_get_loginuid(c) ({ -1; }) |
336 | #define audit_ipc_perms(q,u,g,m,i) ({ 0; }) | 343 | #define audit_ipc_obj(i) ({ 0; }) |
344 | #define audit_ipc_set_perm(q,u,g,m,i) ({ 0; }) | ||
337 | #define audit_socketcall(n,a) ({ 0; }) | 345 | #define audit_socketcall(n,a) ({ 0; }) |
338 | #define audit_sockaddr(len, addr) ({ 0; }) | 346 | #define audit_sockaddr(len, addr) ({ 0; }) |
339 | #define audit_avc_path(dentry, mnt) ({ 0; }) | 347 | #define audit_avc_path(dentry, mnt) ({ 0; }) |
@@ -366,7 +374,7 @@ extern void audit_log_d_path(struct audit_buffer *ab, | |||
366 | extern int audit_filter_user(struct netlink_skb_parms *cb, int type); | 374 | extern int audit_filter_user(struct netlink_skb_parms *cb, int type); |
367 | extern int audit_filter_type(int type); | 375 | extern int audit_filter_type(int type); |
368 | extern int audit_receive_filter(int type, int pid, int uid, int seq, | 376 | extern int audit_receive_filter(int type, int pid, int uid, int seq, |
369 | void *data, size_t datasz, uid_t loginuid); | 377 | void *data, size_t datasz, uid_t loginuid, u32 sid); |
370 | #else | 378 | #else |
371 | #define audit_log(c,g,t,f,...) do { ; } while (0) | 379 | #define audit_log(c,g,t,f,...) do { ; } while (0) |
372 | #define audit_log_start(c,g,t) ({ NULL; }) | 380 | #define audit_log_start(c,g,t) ({ NULL; }) |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index 176e2d371577..047567d34ca7 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
@@ -58,9 +58,8 @@ struct dentry *debugfs_create_blob(const char *name, mode_t mode, | |||
58 | */ | 58 | */ |
59 | 59 | ||
60 | static inline struct dentry *debugfs_create_file(const char *name, mode_t mode, | 60 | static inline struct dentry *debugfs_create_file(const char *name, mode_t mode, |
61 | struct dentry *parent, | 61 | struct dentry *parent, void *data, |
62 | void *data, | 62 | const struct file_operations *fops) |
63 | struct file_operations *fops) | ||
64 | { | 63 | { |
65 | return ERR_PTR(-ENODEV); | 64 | return ERR_PTR(-ENODEV); |
66 | } | 65 | } |
diff --git a/include/linux/fs_uart_pd.h b/include/linux/fs_uart_pd.h new file mode 100644 index 000000000000..f5975126b712 --- /dev/null +++ b/include/linux/fs_uart_pd.h | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * Platform information definitions for the CPM Uart driver. | ||
3 | * | ||
4 | * 2006 (c) MontaVista Software, Inc. | ||
5 | * Vitaly Bordug <vbordug@ru.mvista.com> | ||
6 | * | ||
7 | * This file is licensed under the terms of the GNU General Public License | ||
8 | * version 2. This program is licensed "as is" without any warranty of any | ||
9 | * kind, whether express or implied. | ||
10 | */ | ||
11 | |||
12 | #ifndef FS_UART_PD_H | ||
13 | #define FS_UART_PD_H | ||
14 | |||
15 | #include <linux/version.h> | ||
16 | #include <asm/types.h> | ||
17 | |||
18 | enum fs_uart_id { | ||
19 | fsid_smc1_uart, | ||
20 | fsid_smc2_uart, | ||
21 | fsid_scc1_uart, | ||
22 | fsid_scc2_uart, | ||
23 | fsid_scc3_uart, | ||
24 | fsid_scc4_uart, | ||
25 | fs_uart_nr, | ||
26 | }; | ||
27 | |||
28 | static inline int fs_uart_id_scc2fsid(int id) | ||
29 | { | ||
30 | return fsid_scc1_uart + id - 1; | ||
31 | } | ||
32 | |||
33 | static inline int fs_uart_id_fsid2scc(int id) | ||
34 | { | ||
35 | return id - fsid_scc1_uart + 1; | ||
36 | } | ||
37 | |||
38 | static inline int fs_uart_id_smc2fsid(int id) | ||
39 | { | ||
40 | return fsid_smc1_uart + id - 1; | ||
41 | } | ||
42 | |||
43 | static inline int fs_uart_id_fsid2smc(int id) | ||
44 | { | ||
45 | return id - fsid_smc1_uart + 1; | ||
46 | } | ||
47 | |||
48 | struct fs_uart_platform_info { | ||
49 | void(*init_ioports)(void); | ||
50 | /* device specific information */ | ||
51 | int fs_no; /* controller index */ | ||
52 | u32 uart_clk; | ||
53 | u8 tx_num_fifo; | ||
54 | u8 tx_buf_size; | ||
55 | u8 rx_num_fifo; | ||
56 | u8 rx_buf_size; | ||
57 | u8 brg; | ||
58 | }; | ||
59 | |||
60 | #endif | ||
diff --git a/include/linux/input.h b/include/linux/input.h index b0e612dda0cf..50e338d2ffda 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -12,8 +12,6 @@ | |||
12 | #ifdef __KERNEL__ | 12 | #ifdef __KERNEL__ |
13 | #include <linux/time.h> | 13 | #include <linux/time.h> |
14 | #include <linux/list.h> | 14 | #include <linux/list.h> |
15 | #include <linux/device.h> | ||
16 | #include <linux/mod_devicetable.h> | ||
17 | #else | 15 | #else |
18 | #include <sys/time.h> | 16 | #include <sys/time.h> |
19 | #include <sys/ioctl.h> | 17 | #include <sys/ioctl.h> |
@@ -58,6 +56,8 @@ struct input_absinfo { | |||
58 | 56 | ||
59 | #define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ | 57 | #define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ |
60 | #define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ | 58 | #define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ |
59 | #define EVIOCGREP _IOR('E', 0x03, int[2]) /* get repeat settings */ | ||
60 | #define EVIOCSREP _IOW('E', 0x03, int[2]) /* set repeat settings */ | ||
61 | #define EVIOCGKEYCODE _IOR('E', 0x04, int[2]) /* get keycode */ | 61 | #define EVIOCGKEYCODE _IOR('E', 0x04, int[2]) /* get keycode */ |
62 | #define EVIOCSKEYCODE _IOW('E', 0x04, int[2]) /* set keycode */ | 62 | #define EVIOCSKEYCODE _IOW('E', 0x04, int[2]) /* set keycode */ |
63 | 63 | ||
@@ -577,15 +577,15 @@ struct input_absinfo { | |||
577 | * Switch events | 577 | * Switch events |
578 | */ | 578 | */ |
579 | 579 | ||
580 | #define SW_0 0x00 | 580 | #define SW_0 0x00 |
581 | #define SW_1 0x01 | 581 | #define SW_1 0x01 |
582 | #define SW_2 0x02 | 582 | #define SW_2 0x02 |
583 | #define SW_3 0x03 | 583 | #define SW_3 0x03 |
584 | #define SW_4 0x04 | 584 | #define SW_4 0x04 |
585 | #define SW_5 0x05 | 585 | #define SW_5 0x05 |
586 | #define SW_6 0x06 | 586 | #define SW_6 0x06 |
587 | #define SW_7 0x07 | 587 | #define SW_7 0x07 |
588 | #define SW_MAX 0x0f | 588 | #define SW_MAX 0x0f |
589 | 589 | ||
590 | /* | 590 | /* |
591 | * Misc events | 591 | * Misc events |
@@ -805,52 +805,16 @@ struct ff_effect { | |||
805 | 805 | ||
806 | #define FF_MAX 0x7f | 806 | #define FF_MAX 0x7f |
807 | 807 | ||
808 | struct input_device_id { | ||
809 | |||
810 | kernel_ulong_t flags; | ||
811 | |||
812 | struct input_id id; | ||
813 | |||
814 | kernel_ulong_t evbit[EV_MAX/BITS_PER_LONG+1]; | ||
815 | kernel_ulong_t keybit[KEY_MAX/BITS_PER_LONG+1]; | ||
816 | kernel_ulong_t relbit[REL_MAX/BITS_PER_LONG+1]; | ||
817 | kernel_ulong_t absbit[ABS_MAX/BITS_PER_LONG+1]; | ||
818 | kernel_ulong_t mscbit[MSC_MAX/BITS_PER_LONG+1]; | ||
819 | kernel_ulong_t ledbit[LED_MAX/BITS_PER_LONG+1]; | ||
820 | kernel_ulong_t sndbit[SND_MAX/BITS_PER_LONG+1]; | ||
821 | kernel_ulong_t ffbit[FF_MAX/BITS_PER_LONG+1]; | ||
822 | kernel_ulong_t swbit[SW_MAX/BITS_PER_LONG+1]; | ||
823 | |||
824 | kernel_ulong_t driver_info; | ||
825 | }; | ||
826 | |||
827 | /* | ||
828 | * Structure for hotplug & device<->driver matching. | ||
829 | */ | ||
830 | |||
831 | #define INPUT_DEVICE_ID_MATCH_BUS 1 | ||
832 | #define INPUT_DEVICE_ID_MATCH_VENDOR 2 | ||
833 | #define INPUT_DEVICE_ID_MATCH_PRODUCT 4 | ||
834 | #define INPUT_DEVICE_ID_MATCH_VERSION 8 | ||
835 | |||
836 | #define INPUT_DEVICE_ID_MATCH_EVBIT 0x010 | ||
837 | #define INPUT_DEVICE_ID_MATCH_KEYBIT 0x020 | ||
838 | #define INPUT_DEVICE_ID_MATCH_RELBIT 0x040 | ||
839 | #define INPUT_DEVICE_ID_MATCH_ABSBIT 0x080 | ||
840 | #define INPUT_DEVICE_ID_MATCH_MSCIT 0x100 | ||
841 | #define INPUT_DEVICE_ID_MATCH_LEDBIT 0x200 | ||
842 | #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x400 | ||
843 | #define INPUT_DEVICE_ID_MATCH_FFBIT 0x800 | ||
844 | #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 | ||
845 | |||
846 | #ifdef __KERNEL__ | 808 | #ifdef __KERNEL__ |
847 | 809 | ||
848 | /* | 810 | /* |
849 | * In-kernel definitions. | 811 | * In-kernel definitions. |
850 | */ | 812 | */ |
851 | 813 | ||
814 | #include <linux/device.h> | ||
852 | #include <linux/fs.h> | 815 | #include <linux/fs.h> |
853 | #include <linux/timer.h> | 816 | #include <linux/timer.h> |
817 | #include <linux/mod_devicetable.h> | ||
854 | 818 | ||
855 | #define NBITS(x) (((x)/BITS_PER_LONG)+1) | 819 | #define NBITS(x) (((x)/BITS_PER_LONG)+1) |
856 | #define BIT(x) (1UL<<((x)%BITS_PER_LONG)) | 820 | #define BIT(x) (1UL<<((x)%BITS_PER_LONG)) |
@@ -951,9 +915,49 @@ struct input_dev { | |||
951 | }; | 915 | }; |
952 | #define to_input_dev(d) container_of(d, struct input_dev, cdev) | 916 | #define to_input_dev(d) container_of(d, struct input_dev, cdev) |
953 | 917 | ||
954 | #define INPUT_DEVICE_ID_MATCH_DEVICE\ | 918 | /* |
919 | * Verify that we are in sync with input_device_id mod_devicetable.h #defines | ||
920 | */ | ||
921 | |||
922 | #if EV_MAX != INPUT_DEVICE_ID_EV_MAX | ||
923 | #error "EV_MAX and INPUT_DEVICE_ID_EV_MAX do not match" | ||
924 | #endif | ||
925 | |||
926 | #if KEY_MAX != INPUT_DEVICE_ID_KEY_MAX | ||
927 | #error "KEY_MAX and INPUT_DEVICE_ID_KEY_MAX do not match" | ||
928 | #endif | ||
929 | |||
930 | #if REL_MAX != INPUT_DEVICE_ID_REL_MAX | ||
931 | #error "REL_MAX and INPUT_DEVICE_ID_REL_MAX do not match" | ||
932 | #endif | ||
933 | |||
934 | #if ABS_MAX != INPUT_DEVICE_ID_ABS_MAX | ||
935 | #error "ABS_MAX and INPUT_DEVICE_ID_ABS_MAX do not match" | ||
936 | #endif | ||
937 | |||
938 | #if MSC_MAX != INPUT_DEVICE_ID_MSC_MAX | ||
939 | #error "MSC_MAX and INPUT_DEVICE_ID_MSC_MAX do not match" | ||
940 | #endif | ||
941 | |||
942 | #if LED_MAX != INPUT_DEVICE_ID_LED_MAX | ||
943 | #error "LED_MAX and INPUT_DEVICE_ID_LED_MAX do not match" | ||
944 | #endif | ||
945 | |||
946 | #if SND_MAX != INPUT_DEVICE_ID_SND_MAX | ||
947 | #error "SND_MAX and INPUT_DEVICE_ID_SND_MAX do not match" | ||
948 | #endif | ||
949 | |||
950 | #if FF_MAX != INPUT_DEVICE_ID_FF_MAX | ||
951 | #error "FF_MAX and INPUT_DEVICE_ID_FF_MAX do not match" | ||
952 | #endif | ||
953 | |||
954 | #if SW_MAX != INPUT_DEVICE_ID_SW_MAX | ||
955 | #error "SW_MAX and INPUT_DEVICE_ID_SW_MAX do not match" | ||
956 | #endif | ||
957 | |||
958 | #define INPUT_DEVICE_ID_MATCH_DEVICE \ | ||
955 | (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT) | 959 | (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT) |
956 | #define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION\ | 960 | #define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION \ |
957 | (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION) | 961 | (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION) |
958 | 962 | ||
959 | struct input_handle; | 963 | struct input_handle; |
@@ -1016,7 +1020,8 @@ static inline void input_put_device(struct input_dev *dev) | |||
1016 | 1020 | ||
1017 | static inline void input_free_device(struct input_dev *dev) | 1021 | static inline void input_free_device(struct input_dev *dev) |
1018 | { | 1022 | { |
1019 | input_put_device(dev); | 1023 | if (dev) |
1024 | input_put_device(dev); | ||
1020 | } | 1025 | } |
1021 | 1026 | ||
1022 | int input_register_device(struct input_dev *); | 1027 | int input_register_device(struct input_dev *); |
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index dcd0623be892..c187c53cecd0 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -257,9 +257,8 @@ struct subsys_attribute { | |||
257 | }; | 257 | }; |
258 | 258 | ||
259 | extern int subsys_create_file(struct subsystem * , struct subsys_attribute *); | 259 | extern int subsys_create_file(struct subsystem * , struct subsys_attribute *); |
260 | extern void subsys_remove_file(struct subsystem * , struct subsys_attribute *); | ||
261 | 260 | ||
262 | #if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET) | 261 | #if defined(CONFIG_HOTPLUG) |
263 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); | 262 | void kobject_uevent(struct kobject *kobj, enum kobject_action action); |
264 | 263 | ||
265 | int add_uevent_var(char **envp, int num_envp, int *cur_index, | 264 | int add_uevent_var(char **envp, int num_envp, int *cur_index, |
diff --git a/include/linux/list.h b/include/linux/list.h index 67258b47e9ca..76f05718342c 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
@@ -619,7 +619,7 @@ static inline void hlist_del_rcu(struct hlist_node *n) | |||
619 | 619 | ||
620 | static inline void hlist_del_init(struct hlist_node *n) | 620 | static inline void hlist_del_init(struct hlist_node *n) |
621 | { | 621 | { |
622 | if (n->pprev) { | 622 | if (!hlist_unhashed(n)) { |
623 | __hlist_del(n); | 623 | __hlist_del(n); |
624 | INIT_HLIST_NODE(n); | 624 | INIT_HLIST_NODE(n); |
625 | } | 625 | } |
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 30dd978c1ec8..991a37382a22 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
@@ -28,6 +28,7 @@ struct mmc_csd { | |||
28 | unsigned short cmdclass; | 28 | unsigned short cmdclass; |
29 | unsigned short tacc_clks; | 29 | unsigned short tacc_clks; |
30 | unsigned int tacc_ns; | 30 | unsigned int tacc_ns; |
31 | unsigned int r2w_factor; | ||
31 | unsigned int max_dtr; | 32 | unsigned int max_dtr; |
32 | unsigned int read_blkbits; | 33 | unsigned int read_blkbits; |
33 | unsigned int write_blkbits; | 34 | unsigned int write_blkbits; |
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 7b08c11ec4cc..f6977708585c 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
@@ -249,4 +249,52 @@ struct i2c_device_id { | |||
249 | __u16 id; | 249 | __u16 id; |
250 | }; | 250 | }; |
251 | 251 | ||
252 | /* Input */ | ||
253 | #define INPUT_DEVICE_ID_EV_MAX 0x1f | ||
254 | #define INPUT_DEVICE_ID_KEY_MAX 0x1ff | ||
255 | #define INPUT_DEVICE_ID_REL_MAX 0x0f | ||
256 | #define INPUT_DEVICE_ID_ABS_MAX 0x3f | ||
257 | #define INPUT_DEVICE_ID_MSC_MAX 0x07 | ||
258 | #define INPUT_DEVICE_ID_LED_MAX 0x0f | ||
259 | #define INPUT_DEVICE_ID_SND_MAX 0x07 | ||
260 | #define INPUT_DEVICE_ID_FF_MAX 0x7f | ||
261 | #define INPUT_DEVICE_ID_SW_MAX 0x0f | ||
262 | |||
263 | #define INPUT_DEVICE_ID_MATCH_BUS 1 | ||
264 | #define INPUT_DEVICE_ID_MATCH_VENDOR 2 | ||
265 | #define INPUT_DEVICE_ID_MATCH_PRODUCT 4 | ||
266 | #define INPUT_DEVICE_ID_MATCH_VERSION 8 | ||
267 | |||
268 | #define INPUT_DEVICE_ID_MATCH_EVBIT 0x0010 | ||
269 | #define INPUT_DEVICE_ID_MATCH_KEYBIT 0x0020 | ||
270 | #define INPUT_DEVICE_ID_MATCH_RELBIT 0x0040 | ||
271 | #define INPUT_DEVICE_ID_MATCH_ABSBIT 0x0080 | ||
272 | #define INPUT_DEVICE_ID_MATCH_MSCIT 0x0100 | ||
273 | #define INPUT_DEVICE_ID_MATCH_LEDBIT 0x0200 | ||
274 | #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x0400 | ||
275 | #define INPUT_DEVICE_ID_MATCH_FFBIT 0x0800 | ||
276 | #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 | ||
277 | |||
278 | struct input_device_id { | ||
279 | |||
280 | kernel_ulong_t flags; | ||
281 | |||
282 | __u16 bustype; | ||
283 | __u16 vendor; | ||
284 | __u16 product; | ||
285 | __u16 version; | ||
286 | |||
287 | kernel_ulong_t evbit[INPUT_DEVICE_ID_EV_MAX / BITS_PER_LONG + 1]; | ||
288 | kernel_ulong_t keybit[INPUT_DEVICE_ID_KEY_MAX / BITS_PER_LONG + 1]; | ||
289 | kernel_ulong_t relbit[INPUT_DEVICE_ID_REL_MAX / BITS_PER_LONG + 1]; | ||
290 | kernel_ulong_t absbit[INPUT_DEVICE_ID_ABS_MAX / BITS_PER_LONG + 1]; | ||
291 | kernel_ulong_t mscbit[INPUT_DEVICE_ID_MSC_MAX / BITS_PER_LONG + 1]; | ||
292 | kernel_ulong_t ledbit[INPUT_DEVICE_ID_LED_MAX / BITS_PER_LONG + 1]; | ||
293 | kernel_ulong_t sndbit[INPUT_DEVICE_ID_SND_MAX / BITS_PER_LONG + 1]; | ||
294 | kernel_ulong_t ffbit[INPUT_DEVICE_ID_FF_MAX / BITS_PER_LONG + 1]; | ||
295 | kernel_ulong_t swbit[INPUT_DEVICE_ID_SW_MAX / BITS_PER_LONG + 1]; | ||
296 | |||
297 | kernel_ulong_t driver_info; | ||
298 | }; | ||
299 | |||
252 | #endif /* LINUX_MOD_DEVICETABLE_H */ | 300 | #endif /* LINUX_MOD_DEVICETABLE_H */ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 40ccf8cc4239..01db7b88a2b1 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -829,19 +829,21 @@ static inline void netif_rx_schedule(struct net_device *dev) | |||
829 | __netif_rx_schedule(dev); | 829 | __netif_rx_schedule(dev); |
830 | } | 830 | } |
831 | 831 | ||
832 | /* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). | 832 | |
833 | * Do not inline this? | 833 | static inline void __netif_rx_reschedule(struct net_device *dev, int undo) |
834 | */ | 834 | { |
835 | dev->quota += undo; | ||
836 | list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list); | ||
837 | __raise_softirq_irqoff(NET_RX_SOFTIRQ); | ||
838 | } | ||
839 | |||
840 | /* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */ | ||
835 | static inline int netif_rx_reschedule(struct net_device *dev, int undo) | 841 | static inline int netif_rx_reschedule(struct net_device *dev, int undo) |
836 | { | 842 | { |
837 | if (netif_rx_schedule_prep(dev)) { | 843 | if (netif_rx_schedule_prep(dev)) { |
838 | unsigned long flags; | 844 | unsigned long flags; |
839 | |||
840 | dev->quota += undo; | ||
841 | |||
842 | local_irq_save(flags); | 845 | local_irq_save(flags); |
843 | list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list); | 846 | __netif_rx_reschedule(dev, undo); |
844 | __raise_softirq_irqoff(NET_RX_SOFTIRQ); | ||
845 | local_irq_restore(flags); | 847 | local_irq_restore(flags); |
846 | return 1; | 848 | return 1; |
847 | } | 849 | } |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index f6bdef82a322..48cc32d83f77 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
@@ -337,6 +337,10 @@ struct compat_xt_entry_match | |||
337 | char name[XT_FUNCTION_MAXNAMELEN - 1]; | 337 | char name[XT_FUNCTION_MAXNAMELEN - 1]; |
338 | u_int8_t revision; | 338 | u_int8_t revision; |
339 | } user; | 339 | } user; |
340 | struct { | ||
341 | u_int16_t match_size; | ||
342 | compat_uptr_t match; | ||
343 | } kernel; | ||
340 | u_int16_t match_size; | 344 | u_int16_t match_size; |
341 | } u; | 345 | } u; |
342 | unsigned char data[0]; | 346 | unsigned char data[0]; |
@@ -350,6 +354,10 @@ struct compat_xt_entry_target | |||
350 | char name[XT_FUNCTION_MAXNAMELEN - 1]; | 354 | char name[XT_FUNCTION_MAXNAMELEN - 1]; |
351 | u_int8_t revision; | 355 | u_int8_t revision; |
352 | } user; | 356 | } user; |
357 | struct { | ||
358 | u_int16_t target_size; | ||
359 | compat_uptr_t target; | ||
360 | } kernel; | ||
353 | u_int16_t target_size; | 361 | u_int16_t target_size; |
354 | } u; | 362 | } u; |
355 | unsigned char data[0]; | 363 | unsigned char data[0]; |
@@ -361,7 +369,11 @@ struct compat_xt_entry_target | |||
361 | 369 | ||
362 | struct compat_xt_counters | 370 | struct compat_xt_counters |
363 | { | 371 | { |
372 | #if defined(CONFIG_X86_64) || defined(CONFIG_IA64) | ||
364 | u_int32_t cnt[4]; | 373 | u_int32_t cnt[4]; |
374 | #else | ||
375 | u_int64_t cnt[2]; | ||
376 | #endif | ||
365 | }; | 377 | }; |
366 | 378 | ||
367 | struct compat_xt_counters_info | 379 | struct compat_xt_counters_info |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h index 0bd828081c0c..c6e9a0b6d30b 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h +++ b/include/linux/netfilter_ipv4/ip_conntrack_helper_h323_asn1.h | |||
@@ -2,7 +2,7 @@ | |||
2 | * ip_conntrack_helper_h323_asn1.h - BER and PER decoding library for H.323 | 2 | * ip_conntrack_helper_h323_asn1.h - BER and PER decoding library for H.323 |
3 | * conntrack/NAT module. | 3 | * conntrack/NAT module. |
4 | * | 4 | * |
5 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@hotmail.com> | 5 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@users.sourceforge.net> |
6 | * | 6 | * |
7 | * This source code is licensed under General Public License version 2. | 7 | * This source code is licensed under General Public License version 2. |
8 | * | 8 | * |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index f8f3d1c927f8..87b8a5703ebc 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -143,6 +143,7 @@ struct netlink_skb_parms | |||
143 | __u32 dst_group; | 143 | __u32 dst_group; |
144 | kernel_cap_t eff_cap; | 144 | kernel_cap_t eff_cap; |
145 | __u32 loginuid; /* Login (audit) uid */ | 145 | __u32 loginuid; /* Login (audit) uid */ |
146 | __u32 sid; /* SELinux security id */ | ||
146 | }; | 147 | }; |
147 | 148 | ||
148 | #define NETLINK_CB(skb) (*(struct netlink_skb_parms*)&((skb)->cb)) | 149 | #define NETLINK_CB(skb) (*(struct netlink_skb_parms*)&((skb)->cb)) |
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 9539efd4f7e6..7a1af574dedf 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -78,6 +78,8 @@ extern struct page * find_or_create_page(struct address_space *mapping, | |||
78 | unsigned long index, gfp_t gfp_mask); | 78 | unsigned long index, gfp_t gfp_mask); |
79 | unsigned find_get_pages(struct address_space *mapping, pgoff_t start, | 79 | unsigned find_get_pages(struct address_space *mapping, pgoff_t start, |
80 | unsigned int nr_pages, struct page **pages); | 80 | unsigned int nr_pages, struct page **pages); |
81 | unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t start, | ||
82 | unsigned int nr_pages, struct page **pages); | ||
81 | unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index, | 83 | unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index, |
82 | int tag, unsigned int nr_pages, struct page **pages); | 84 | int tag, unsigned int nr_pages, struct page **pages); |
83 | 85 | ||
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index ef7f33c0be19..ea4f7cd7bfd8 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
@@ -5,8 +5,9 @@ | |||
5 | 5 | ||
6 | #define PIPE_BUFFERS (16) | 6 | #define PIPE_BUFFERS (16) |
7 | 7 | ||
8 | #define PIPE_BUF_FLAG_STOLEN 0x01 | 8 | #define PIPE_BUF_FLAG_LRU 0x01 /* page is on the LRU */ |
9 | #define PIPE_BUF_FLAG_LRU 0x02 | 9 | #define PIPE_BUF_FLAG_ATOMIC 0x02 /* was atomically mapped */ |
10 | #define PIPE_BUF_FLAG_GIFT 0x04 /* page is a gift */ | ||
10 | 11 | ||
11 | struct pipe_buffer { | 12 | struct pipe_buffer { |
12 | struct page *page; | 13 | struct page *page; |
@@ -15,10 +16,23 @@ struct pipe_buffer { | |||
15 | unsigned int flags; | 16 | unsigned int flags; |
16 | }; | 17 | }; |
17 | 18 | ||
19 | /* | ||
20 | * Note on the nesting of these functions: | ||
21 | * | ||
22 | * ->pin() | ||
23 | * ->steal() | ||
24 | * ... | ||
25 | * ->map() | ||
26 | * ... | ||
27 | * ->unmap() | ||
28 | * | ||
29 | * That is, ->map() must be called on a pinned buffer, same goes for ->steal(). | ||
30 | */ | ||
18 | struct pipe_buf_operations { | 31 | struct pipe_buf_operations { |
19 | int can_merge; | 32 | int can_merge; |
20 | void * (*map)(struct file *, struct pipe_inode_info *, struct pipe_buffer *); | 33 | void * (*map)(struct pipe_inode_info *, struct pipe_buffer *, int); |
21 | void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *); | 34 | void (*unmap)(struct pipe_inode_info *, struct pipe_buffer *, void *); |
35 | int (*pin)(struct pipe_inode_info *, struct pipe_buffer *); | ||
22 | void (*release)(struct pipe_inode_info *, struct pipe_buffer *); | 36 | void (*release)(struct pipe_inode_info *, struct pipe_buffer *); |
23 | int (*steal)(struct pipe_inode_info *, struct pipe_buffer *); | 37 | int (*steal)(struct pipe_inode_info *, struct pipe_buffer *); |
24 | void (*get)(struct pipe_inode_info *, struct pipe_buffer *); | 38 | void (*get)(struct pipe_inode_info *, struct pipe_buffer *); |
@@ -51,6 +65,13 @@ struct pipe_inode_info * alloc_pipe_info(struct inode * inode); | |||
51 | void free_pipe_info(struct inode * inode); | 65 | void free_pipe_info(struct inode * inode); |
52 | void __free_pipe_info(struct pipe_inode_info *); | 66 | void __free_pipe_info(struct pipe_inode_info *); |
53 | 67 | ||
68 | /* Generic pipe buffer ops functions */ | ||
69 | void *generic_pipe_buf_map(struct pipe_inode_info *, struct pipe_buffer *, int); | ||
70 | void generic_pipe_buf_unmap(struct pipe_inode_info *, struct pipe_buffer *, void *); | ||
71 | void generic_pipe_buf_get(struct pipe_inode_info *, struct pipe_buffer *); | ||
72 | int generic_pipe_buf_pin(struct pipe_inode_info *, struct pipe_buffer *); | ||
73 | int generic_pipe_buf_steal(struct pipe_inode_info *, struct pipe_buffer *); | ||
74 | |||
54 | /* | 75 | /* |
55 | * splice is tied to pipes as a transport (at least for now), so we'll just | 76 | * splice is tied to pipes as a transport (at least for now), so we'll just |
56 | * add the splice flags here. | 77 | * add the splice flags here. |
@@ -60,5 +81,23 @@ void __free_pipe_info(struct pipe_inode_info *); | |||
60 | /* we may still block on the fd we splice */ | 81 | /* we may still block on the fd we splice */ |
61 | /* from/to, of course */ | 82 | /* from/to, of course */ |
62 | #define SPLICE_F_MORE (0x04) /* expect more data */ | 83 | #define SPLICE_F_MORE (0x04) /* expect more data */ |
84 | #define SPLICE_F_GIFT (0x08) /* pages passed in are a gift */ | ||
85 | |||
86 | /* | ||
87 | * Passed to the actors | ||
88 | */ | ||
89 | struct splice_desc { | ||
90 | unsigned int len, total_len; /* current and remaining length */ | ||
91 | unsigned int flags; /* splice flags */ | ||
92 | struct file *file; /* file to read/write */ | ||
93 | loff_t pos; /* file position */ | ||
94 | }; | ||
95 | |||
96 | typedef int (splice_actor)(struct pipe_inode_info *, struct pipe_buffer *, | ||
97 | struct splice_desc *); | ||
98 | |||
99 | extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *, | ||
100 | loff_t *, size_t, unsigned int, | ||
101 | splice_actor *); | ||
63 | 102 | ||
64 | #endif | 103 | #endif |
diff --git a/include/linux/security.h b/include/linux/security.h index aaa0a5cdbf75..1bab48f6aeac 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
@@ -869,11 +869,6 @@ struct swap_info_struct; | |||
869 | * @ipcp contains the kernel IPC permission structure | 869 | * @ipcp contains the kernel IPC permission structure |
870 | * @flag contains the desired (requested) permission set | 870 | * @flag contains the desired (requested) permission set |
871 | * Return 0 if permission is granted. | 871 | * Return 0 if permission is granted. |
872 | * @ipc_getsecurity: | ||
873 | * Copy the security label associated with the ipc object into | ||
874 | * @buffer. @buffer may be NULL to request the size of the buffer | ||
875 | * required. @size indicates the size of @buffer in bytes. Return | ||
876 | * number of bytes used/required on success. | ||
877 | * | 872 | * |
878 | * Security hooks for individual messages held in System V IPC message queues | 873 | * Security hooks for individual messages held in System V IPC message queues |
879 | * @msg_msg_alloc_security: | 874 | * @msg_msg_alloc_security: |
@@ -1223,7 +1218,6 @@ struct security_operations { | |||
1223 | void (*task_to_inode)(struct task_struct *p, struct inode *inode); | 1218 | void (*task_to_inode)(struct task_struct *p, struct inode *inode); |
1224 | 1219 | ||
1225 | int (*ipc_permission) (struct kern_ipc_perm * ipcp, short flag); | 1220 | int (*ipc_permission) (struct kern_ipc_perm * ipcp, short flag); |
1226 | int (*ipc_getsecurity)(struct kern_ipc_perm *ipcp, void *buffer, size_t size); | ||
1227 | 1221 | ||
1228 | int (*msg_msg_alloc_security) (struct msg_msg * msg); | 1222 | int (*msg_msg_alloc_security) (struct msg_msg * msg); |
1229 | void (*msg_msg_free_security) (struct msg_msg * msg); | 1223 | void (*msg_msg_free_security) (struct msg_msg * msg); |
@@ -1887,11 +1881,6 @@ static inline int security_ipc_permission (struct kern_ipc_perm *ipcp, | |||
1887 | return security_ops->ipc_permission (ipcp, flag); | 1881 | return security_ops->ipc_permission (ipcp, flag); |
1888 | } | 1882 | } |
1889 | 1883 | ||
1890 | static inline int security_ipc_getsecurity(struct kern_ipc_perm *ipcp, void *buffer, size_t size) | ||
1891 | { | ||
1892 | return security_ops->ipc_getsecurity(ipcp, buffer, size); | ||
1893 | } | ||
1894 | |||
1895 | static inline int security_msg_msg_alloc (struct msg_msg * msg) | 1884 | static inline int security_msg_msg_alloc (struct msg_msg * msg) |
1896 | { | 1885 | { |
1897 | return security_ops->msg_msg_alloc_security (msg); | 1886 | return security_ops->msg_msg_alloc_security (msg); |
@@ -2532,11 +2521,6 @@ static inline int security_ipc_permission (struct kern_ipc_perm *ipcp, | |||
2532 | return 0; | 2521 | return 0; |
2533 | } | 2522 | } |
2534 | 2523 | ||
2535 | static inline int security_ipc_getsecurity(struct kern_ipc_perm *ipcp, void *buffer, size_t size) | ||
2536 | { | ||
2537 | return -EOPNOTSUPP; | ||
2538 | } | ||
2539 | |||
2540 | static inline int security_msg_msg_alloc (struct msg_msg * msg) | 2524 | static inline int security_msg_msg_alloc (struct msg_msg * msg) |
2541 | { | 2525 | { |
2542 | return 0; | 2526 | return 0; |
diff --git a/include/linux/selinux.h b/include/linux/selinux.h new file mode 100644 index 000000000000..4047bcde4484 --- /dev/null +++ b/include/linux/selinux.h | |||
@@ -0,0 +1,177 @@ | |||
1 | /* | ||
2 | * SELinux services exported to the rest of the kernel. | ||
3 | * | ||
4 | * Author: James Morris <jmorris@redhat.com> | ||
5 | * | ||
6 | * Copyright (C) 2005 Red Hat, Inc., James Morris <jmorris@redhat.com> | ||
7 | * Copyright (C) 2006 Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com> | ||
8 | * Copyright (C) 2006 IBM Corporation, Timothy R. Chavez <tinytim@us.ibm.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2, | ||
12 | * as published by the Free Software Foundation. | ||
13 | */ | ||
14 | #ifndef _LINUX_SELINUX_H | ||
15 | #define _LINUX_SELINUX_H | ||
16 | |||
17 | struct selinux_audit_rule; | ||
18 | struct audit_context; | ||
19 | struct inode; | ||
20 | struct kern_ipc_perm; | ||
21 | |||
22 | #ifdef CONFIG_SECURITY_SELINUX | ||
23 | |||
24 | /** | ||
25 | * selinux_audit_rule_init - alloc/init an selinux audit rule structure. | ||
26 | * @field: the field this rule refers to | ||
27 | * @op: the operater the rule uses | ||
28 | * @rulestr: the text "target" of the rule | ||
29 | * @rule: pointer to the new rule structure returned via this | ||
30 | * | ||
31 | * Returns 0 if successful, -errno if not. On success, the rule structure | ||
32 | * will be allocated internally. The caller must free this structure with | ||
33 | * selinux_audit_rule_free() after use. | ||
34 | */ | ||
35 | int selinux_audit_rule_init(u32 field, u32 op, char *rulestr, | ||
36 | struct selinux_audit_rule **rule); | ||
37 | |||
38 | /** | ||
39 | * selinux_audit_rule_free - free an selinux audit rule structure. | ||
40 | * @rule: pointer to the audit rule to be freed | ||
41 | * | ||
42 | * This will free all memory associated with the given rule. | ||
43 | * If @rule is NULL, no operation is performed. | ||
44 | */ | ||
45 | void selinux_audit_rule_free(struct selinux_audit_rule *rule); | ||
46 | |||
47 | /** | ||
48 | * selinux_audit_rule_match - determine if a context ID matches a rule. | ||
49 | * @ctxid: the context ID to check | ||
50 | * @field: the field this rule refers to | ||
51 | * @op: the operater the rule uses | ||
52 | * @rule: pointer to the audit rule to check against | ||
53 | * @actx: the audit context (can be NULL) associated with the check | ||
54 | * | ||
55 | * Returns 1 if the context id matches the rule, 0 if it does not, and | ||
56 | * -errno on failure. | ||
57 | */ | ||
58 | int selinux_audit_rule_match(u32 ctxid, u32 field, u32 op, | ||
59 | struct selinux_audit_rule *rule, | ||
60 | struct audit_context *actx); | ||
61 | |||
62 | /** | ||
63 | * selinux_audit_set_callback - set the callback for policy reloads. | ||
64 | * @callback: the function to call when the policy is reloaded | ||
65 | * | ||
66 | * This sets the function callback function that will update the rules | ||
67 | * upon policy reloads. This callback should rebuild all existing rules | ||
68 | * using selinux_audit_rule_init(). | ||
69 | */ | ||
70 | void selinux_audit_set_callback(int (*callback)(void)); | ||
71 | |||
72 | /** | ||
73 | * selinux_task_ctxid - determine a context ID for a process. | ||
74 | * @tsk: the task object | ||
75 | * @ctxid: ID value returned via this | ||
76 | * | ||
77 | * On return, ctxid will contain an ID for the context. This value | ||
78 | * should only be used opaquely. | ||
79 | */ | ||
80 | void selinux_task_ctxid(struct task_struct *tsk, u32 *ctxid); | ||
81 | |||
82 | /** | ||
83 | * selinux_ctxid_to_string - map a security context ID to a string | ||
84 | * @ctxid: security context ID to be converted. | ||
85 | * @ctx: address of context string to be returned | ||
86 | * @ctxlen: length of returned context string. | ||
87 | * | ||
88 | * Returns 0 if successful, -errno if not. On success, the context | ||
89 | * string will be allocated internally, and the caller must call | ||
90 | * kfree() on it after use. | ||
91 | */ | ||
92 | int selinux_ctxid_to_string(u32 ctxid, char **ctx, u32 *ctxlen); | ||
93 | |||
94 | /** | ||
95 | * selinux_get_inode_sid - get the inode's security context ID | ||
96 | * @inode: inode structure to get the sid from. | ||
97 | * @sid: pointer to security context ID to be filled in. | ||
98 | * | ||
99 | * Returns nothing | ||
100 | */ | ||
101 | void selinux_get_inode_sid(const struct inode *inode, u32 *sid); | ||
102 | |||
103 | /** | ||
104 | * selinux_get_ipc_sid - get the ipc security context ID | ||
105 | * @ipcp: ipc structure to get the sid from. | ||
106 | * @sid: pointer to security context ID to be filled in. | ||
107 | * | ||
108 | * Returns nothing | ||
109 | */ | ||
110 | void selinux_get_ipc_sid(const struct kern_ipc_perm *ipcp, u32 *sid); | ||
111 | |||
112 | /** | ||
113 | * selinux_get_task_sid - return the SID of task | ||
114 | * @tsk: the task whose SID will be returned | ||
115 | * @sid: pointer to security context ID to be filled in. | ||
116 | * | ||
117 | * Returns nothing | ||
118 | */ | ||
119 | void selinux_get_task_sid(struct task_struct *tsk, u32 *sid); | ||
120 | |||
121 | |||
122 | #else | ||
123 | |||
124 | static inline int selinux_audit_rule_init(u32 field, u32 op, | ||
125 | char *rulestr, | ||
126 | struct selinux_audit_rule **rule) | ||
127 | { | ||
128 | return -ENOTSUPP; | ||
129 | } | ||
130 | |||
131 | static inline void selinux_audit_rule_free(struct selinux_audit_rule *rule) | ||
132 | { | ||
133 | return; | ||
134 | } | ||
135 | |||
136 | static inline int selinux_audit_rule_match(u32 ctxid, u32 field, u32 op, | ||
137 | struct selinux_audit_rule *rule, | ||
138 | struct audit_context *actx) | ||
139 | { | ||
140 | return 0; | ||
141 | } | ||
142 | |||
143 | static inline void selinux_audit_set_callback(int (*callback)(void)) | ||
144 | { | ||
145 | return; | ||
146 | } | ||
147 | |||
148 | static inline void selinux_task_ctxid(struct task_struct *tsk, u32 *ctxid) | ||
149 | { | ||
150 | *ctxid = 0; | ||
151 | } | ||
152 | |||
153 | static inline int selinux_ctxid_to_string(u32 ctxid, char **ctx, u32 *ctxlen) | ||
154 | { | ||
155 | *ctx = NULL; | ||
156 | *ctxlen = 0; | ||
157 | return 0; | ||
158 | } | ||
159 | |||
160 | static inline void selinux_get_inode_sid(const struct inode *inode, u32 *sid) | ||
161 | { | ||
162 | *sid = 0; | ||
163 | } | ||
164 | |||
165 | static inline void selinux_get_ipc_sid(const struct kern_ipc_perm *ipcp, u32 *sid) | ||
166 | { | ||
167 | *sid = 0; | ||
168 | } | ||
169 | |||
170 | static inline void selinux_get_task_sid(struct task_struct *tsk, u32 *sid) | ||
171 | { | ||
172 | *sid = 0; | ||
173 | } | ||
174 | |||
175 | #endif /* CONFIG_SECURITY_SELINUX */ | ||
176 | |||
177 | #endif /* _LINUX_SELINUX_H */ | ||
diff --git a/include/linux/signal.h b/include/linux/signal.h index 162a8fd10b29..70739f51a09f 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -14,10 +14,12 @@ | |||
14 | * | 14 | * |
15 | * SA_INTERRUPT is also used by the irq handling routines. | 15 | * SA_INTERRUPT is also used by the irq handling routines. |
16 | * SA_SHIRQ is for shared interrupt support on PCI and EISA. | 16 | * SA_SHIRQ is for shared interrupt support on PCI and EISA. |
17 | * SA_PROBEIRQ is set by callers when they expect sharing mismatches to occur | ||
17 | */ | 18 | */ |
18 | #define SA_PROBE SA_ONESHOT | ||
19 | #define SA_SAMPLE_RANDOM SA_RESTART | 19 | #define SA_SAMPLE_RANDOM SA_RESTART |
20 | #define SA_SHIRQ 0x04000000 | 20 | #define SA_SHIRQ 0x04000000 |
21 | #define SA_PROBEIRQ 0x08000000 | ||
22 | |||
21 | /* | 23 | /* |
22 | * As above, these correspond to the IORESOURCE_IRQ_* defines in | 24 | * As above, these correspond to the IORESOURCE_IRQ_* defines in |
23 | * linux/ioport.h to select the interrupt line behaviour. When | 25 | * linux/ioport.h to select the interrupt line behaviour. When |
diff --git a/include/linux/spi/ads7846.h b/include/linux/spi/ads7846.h index 72261e0f2ac1..adb3dafd33e9 100644 --- a/include/linux/spi/ads7846.h +++ b/include/linux/spi/ads7846.h | |||
@@ -14,5 +14,12 @@ struct ads7846_platform_data { | |||
14 | u16 x_min, x_max; | 14 | u16 x_min, x_max; |
15 | u16 y_min, y_max; | 15 | u16 y_min, y_max; |
16 | u16 pressure_min, pressure_max; | 16 | u16 pressure_min, pressure_max; |
17 | |||
18 | u16 debounce_max; /* max number of additional readings | ||
19 | * per sample */ | ||
20 | u16 debounce_tol; /* tolerance used for filtering */ | ||
21 | u16 debounce_rep; /* additional consecutive good readings | ||
22 | * required after the first two */ | ||
23 | int (*get_pendown_state)(void); | ||
17 | }; | 24 | }; |
18 | 25 | ||
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index d3ebc0e68b2b..3996960fc565 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -574,6 +574,9 @@ asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, | |||
574 | int fd_out, loff_t __user *off_out, | 574 | int fd_out, loff_t __user *off_out, |
575 | size_t len, unsigned int flags); | 575 | size_t len, unsigned int flags); |
576 | 576 | ||
577 | asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov, | ||
578 | unsigned long nr_segs, unsigned int flags); | ||
579 | |||
577 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); | 580 | asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags); |
578 | 581 | ||
579 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, | 582 | asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, |
diff --git a/include/net/ax25.h b/include/net/ax25.h index d052b221dbcd..5bd997487054 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h | |||
@@ -145,14 +145,14 @@ enum { | |||
145 | #define AX25_DEF_CONMODE 2 /* Connected mode allowed */ | 145 | #define AX25_DEF_CONMODE 2 /* Connected mode allowed */ |
146 | #define AX25_DEF_WINDOW 2 /* Window=2 */ | 146 | #define AX25_DEF_WINDOW 2 /* Window=2 */ |
147 | #define AX25_DEF_EWINDOW 32 /* Module-128 Window=32 */ | 147 | #define AX25_DEF_EWINDOW 32 /* Module-128 Window=32 */ |
148 | #define AX25_DEF_T1 (10 * HZ) /* T1=10s */ | 148 | #define AX25_DEF_T1 10000 /* T1=10s */ |
149 | #define AX25_DEF_T2 (3 * HZ) /* T2=3s */ | 149 | #define AX25_DEF_T2 3000 /* T2=3s */ |
150 | #define AX25_DEF_T3 (300 * HZ) /* T3=300s */ | 150 | #define AX25_DEF_T3 300000 /* T3=300s */ |
151 | #define AX25_DEF_N2 10 /* N2=10 */ | 151 | #define AX25_DEF_N2 10 /* N2=10 */ |
152 | #define AX25_DEF_IDLE (0 * 60 * HZ) /* Idle=None */ | 152 | #define AX25_DEF_IDLE 0 /* Idle=None */ |
153 | #define AX25_DEF_PACLEN 256 /* Paclen=256 */ | 153 | #define AX25_DEF_PACLEN 256 /* Paclen=256 */ |
154 | #define AX25_DEF_PROTOCOL AX25_PROTO_STD_SIMPLEX /* Standard AX.25 */ | 154 | #define AX25_DEF_PROTOCOL AX25_PROTO_STD_SIMPLEX /* Standard AX.25 */ |
155 | #define AX25_DEF_DS_TIMEOUT (3 * 60 * HZ) /* DAMA timeout 3 minutes */ | 155 | #define AX25_DEF_DS_TIMEOUT 180000 /* DAMA timeout 3 minutes */ |
156 | 156 | ||
157 | typedef struct ax25_uid_assoc { | 157 | typedef struct ax25_uid_assoc { |
158 | struct hlist_node uid_node; | 158 | struct hlist_node uid_node; |
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index 1da294c47522..e837f98fdb50 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h | |||
@@ -150,7 +150,7 @@ static inline void inet_twsk_add_bind_node(struct inet_timewait_sock *tw, | |||
150 | 150 | ||
151 | static inline int inet_twsk_dead_hashed(const struct inet_timewait_sock *tw) | 151 | static inline int inet_twsk_dead_hashed(const struct inet_timewait_sock *tw) |
152 | { | 152 | { |
153 | return tw->tw_death_node.pprev != NULL; | 153 | return !hlist_unhashed(&tw->tw_death_node); |
154 | } | 154 | } |
155 | 155 | ||
156 | static inline void inet_twsk_dead_node_init(struct inet_timewait_sock *tw) | 156 | static inline void inet_twsk_dead_node_init(struct inet_timewait_sock *tw) |
diff --git a/include/net/netrom.h b/include/net/netrom.h index a5ee53bce62f..e0ca112024a3 100644 --- a/include/net/netrom.h +++ b/include/net/netrom.h | |||
@@ -42,11 +42,11 @@ enum { | |||
42 | #define NR_COND_PEER_RX_BUSY 0x04 | 42 | #define NR_COND_PEER_RX_BUSY 0x04 |
43 | #define NR_COND_OWN_RX_BUSY 0x08 | 43 | #define NR_COND_OWN_RX_BUSY 0x08 |
44 | 44 | ||
45 | #define NR_DEFAULT_T1 (120 * HZ) /* Outstanding frames - 120 seconds */ | 45 | #define NR_DEFAULT_T1 120000 /* Outstanding frames - 120 seconds */ |
46 | #define NR_DEFAULT_T2 (5 * HZ) /* Response delay - 5 seconds */ | 46 | #define NR_DEFAULT_T2 5000 /* Response delay - 5 seconds */ |
47 | #define NR_DEFAULT_N2 3 /* Number of Retries - 3 */ | 47 | #define NR_DEFAULT_N2 3 /* Number of Retries - 3 */ |
48 | #define NR_DEFAULT_T4 (180 * HZ) /* Busy Delay - 180 seconds */ | 48 | #define NR_DEFAULT_T4 180000 /* Busy Delay - 180 seconds */ |
49 | #define NR_DEFAULT_IDLE (0 * 60 * HZ) /* No Activity Timeout - none */ | 49 | #define NR_DEFAULT_IDLE 0 /* No Activity Timeout - none */ |
50 | #define NR_DEFAULT_WINDOW 4 /* Default Window Size - 4 */ | 50 | #define NR_DEFAULT_WINDOW 4 /* Default Window Size - 4 */ |
51 | #define NR_DEFAULT_OBS 6 /* Default Obsolescence Count - 6 */ | 51 | #define NR_DEFAULT_OBS 6 /* Default Obsolescence Count - 6 */ |
52 | #define NR_DEFAULT_QUAL 10 /* Default Neighbour Quality - 10 */ | 52 | #define NR_DEFAULT_QUAL 10 /* Default Neighbour Quality - 10 */ |
diff --git a/include/net/rose.h b/include/net/rose.h index 3249b979605a..012b09ed2401 100644 --- a/include/net/rose.h +++ b/include/net/rose.h | |||
@@ -49,14 +49,14 @@ enum { | |||
49 | ROSE_STATE_5 /* Deferred Call Acceptance */ | 49 | ROSE_STATE_5 /* Deferred Call Acceptance */ |
50 | }; | 50 | }; |
51 | 51 | ||
52 | #define ROSE_DEFAULT_T0 (180 * HZ) /* Default T10 T20 value */ | 52 | #define ROSE_DEFAULT_T0 180000 /* Default T10 T20 value */ |
53 | #define ROSE_DEFAULT_T1 (200 * HZ) /* Default T11 T21 value */ | 53 | #define ROSE_DEFAULT_T1 200000 /* Default T11 T21 value */ |
54 | #define ROSE_DEFAULT_T2 (180 * HZ) /* Default T12 T22 value */ | 54 | #define ROSE_DEFAULT_T2 180000 /* Default T12 T22 value */ |
55 | #define ROSE_DEFAULT_T3 (180 * HZ) /* Default T13 T23 value */ | 55 | #define ROSE_DEFAULT_T3 180000 /* Default T13 T23 value */ |
56 | #define ROSE_DEFAULT_HB (5 * HZ) /* Default Holdback value */ | 56 | #define ROSE_DEFAULT_HB 5000 /* Default Holdback value */ |
57 | #define ROSE_DEFAULT_IDLE (0 * 60 * HZ) /* No Activity Timeout - none */ | 57 | #define ROSE_DEFAULT_IDLE 0 /* No Activity Timeout - none */ |
58 | #define ROSE_DEFAULT_ROUTING 1 /* Default routing flag */ | 58 | #define ROSE_DEFAULT_ROUTING 1 /* Default routing flag */ |
59 | #define ROSE_DEFAULT_FAIL_TIMEOUT (120 * HZ) /* Time until link considered usable */ | 59 | #define ROSE_DEFAULT_FAIL_TIMEOUT 120000 /* Time until link considered usable */ |
60 | #define ROSE_DEFAULT_MAXVC 50 /* Maximum number of VCs per neighbour */ | 60 | #define ROSE_DEFAULT_MAXVC 50 /* Maximum number of VCs per neighbour */ |
61 | #define ROSE_DEFAULT_WINDOW_SIZE 7 /* Default window size */ | 61 | #define ROSE_DEFAULT_WINDOW_SIZE 7 /* Default window size */ |
62 | 62 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index ff8b0dad7b0f..c9fad6fb629b 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -279,7 +279,7 @@ static inline int sk_unhashed(const struct sock *sk) | |||
279 | 279 | ||
280 | static inline int sk_hashed(const struct sock *sk) | 280 | static inline int sk_hashed(const struct sock *sk) |
281 | { | 281 | { |
282 | return sk->sk_node.pprev != NULL; | 282 | return !sk_unhashed(sk); |
283 | } | 283 | } |
284 | 284 | ||
285 | static __inline__ void sk_node_init(struct hlist_node *node) | 285 | static __inline__ void sk_node_init(struct hlist_node *node) |
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index df70e7592ab5..373425895faa 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
@@ -374,12 +374,14 @@ struct snd_pcm_substream { | |||
374 | /* -- OSS things -- */ | 374 | /* -- OSS things -- */ |
375 | struct snd_pcm_oss_substream oss; | 375 | struct snd_pcm_oss_substream oss; |
376 | #endif | 376 | #endif |
377 | #ifdef CONFIG_SND_VERBOSE_PROCFS | ||
377 | struct snd_info_entry *proc_root; | 378 | struct snd_info_entry *proc_root; |
378 | struct snd_info_entry *proc_info_entry; | 379 | struct snd_info_entry *proc_info_entry; |
379 | struct snd_info_entry *proc_hw_params_entry; | 380 | struct snd_info_entry *proc_hw_params_entry; |
380 | struct snd_info_entry *proc_sw_params_entry; | 381 | struct snd_info_entry *proc_sw_params_entry; |
381 | struct snd_info_entry *proc_status_entry; | 382 | struct snd_info_entry *proc_status_entry; |
382 | struct snd_info_entry *proc_prealloc_entry; | 383 | struct snd_info_entry *proc_prealloc_entry; |
384 | #endif | ||
383 | /* misc flags */ | 385 | /* misc flags */ |
384 | unsigned int no_mmap_ctrl: 1; | 386 | unsigned int no_mmap_ctrl: 1; |
385 | unsigned int hw_opened: 1; | 387 | unsigned int hw_opened: 1; |
@@ -400,12 +402,14 @@ struct snd_pcm_str { | |||
400 | struct snd_pcm_oss_stream oss; | 402 | struct snd_pcm_oss_stream oss; |
401 | #endif | 403 | #endif |
402 | struct snd_pcm_file *files; | 404 | struct snd_pcm_file *files; |
405 | #ifdef CONFIG_SND_VERBOSE_PROCFS | ||
403 | struct snd_info_entry *proc_root; | 406 | struct snd_info_entry *proc_root; |
404 | struct snd_info_entry *proc_info_entry; | 407 | struct snd_info_entry *proc_info_entry; |
405 | #ifdef CONFIG_SND_DEBUG | 408 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
406 | unsigned int xrun_debug; /* 0 = disabled, 1 = verbose, 2 = stacktrace */ | 409 | unsigned int xrun_debug; /* 0 = disabled, 1 = verbose, 2 = stacktrace */ |
407 | struct snd_info_entry *proc_xrun_debug_entry; | 410 | struct snd_info_entry *proc_xrun_debug_entry; |
408 | #endif | 411 | #endif |
412 | #endif | ||
409 | }; | 413 | }; |
410 | 414 | ||
411 | struct snd_pcm { | 415 | struct snd_pcm { |
diff --git a/include/sound/pcm_oss.h b/include/sound/pcm_oss.h index 39df2baca18a..c854647b6f3c 100644 --- a/include/sound/pcm_oss.h +++ b/include/sound/pcm_oss.h | |||
@@ -75,7 +75,9 @@ struct snd_pcm_oss_substream { | |||
75 | struct snd_pcm_oss_stream { | 75 | struct snd_pcm_oss_stream { |
76 | struct snd_pcm_oss_setup *setup_list; /* setup list */ | 76 | struct snd_pcm_oss_setup *setup_list; /* setup list */ |
77 | struct mutex setup_mutex; | 77 | struct mutex setup_mutex; |
78 | #ifdef CONFIG_SND_VERBOSE_PROCFS | ||
78 | struct snd_info_entry *proc_entry; | 79 | struct snd_info_entry *proc_entry; |
80 | #endif | ||
79 | }; | 81 | }; |
80 | 82 | ||
81 | struct snd_pcm_oss { | 83 | struct snd_pcm_oss { |
diff --git a/init/main.c b/init/main.c index 4a2f0898dda1..f715b9b89753 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -582,7 +582,7 @@ static void __init do_initcalls(void) | |||
582 | 582 | ||
583 | result = (*call)(); | 583 | result = (*call)(); |
584 | 584 | ||
585 | if (result && (result != -ENODEV || initcall_debug)) { | 585 | if (result && result != -ENODEV && initcall_debug) { |
586 | sprintf(msgbuf, "error code %d", result); | 586 | sprintf(msgbuf, "error code %d", result); |
587 | msg = msgbuf; | 587 | msg = msgbuf; |
588 | } | 588 | } |
@@ -13,6 +13,9 @@ | |||
13 | * mostly rewritten, threaded and wake-one semantics added | 13 | * mostly rewritten, threaded and wake-one semantics added |
14 | * MSGMAX limit removed, sysctl's added | 14 | * MSGMAX limit removed, sysctl's added |
15 | * (c) 1999 Manfred Spraul <manfred@colorfullife.com> | 15 | * (c) 1999 Manfred Spraul <manfred@colorfullife.com> |
16 | * | ||
17 | * support for audit of ipc object properties and permission changes | ||
18 | * Dustin Kirkland <dustin.kirkland@us.ibm.com> | ||
16 | */ | 19 | */ |
17 | 20 | ||
18 | #include <linux/capability.h> | 21 | #include <linux/capability.h> |
@@ -447,6 +450,11 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf) | |||
447 | if (msg_checkid(msq,msqid)) | 450 | if (msg_checkid(msq,msqid)) |
448 | goto out_unlock_up; | 451 | goto out_unlock_up; |
449 | ipcp = &msq->q_perm; | 452 | ipcp = &msq->q_perm; |
453 | |||
454 | err = audit_ipc_obj(ipcp); | ||
455 | if (err) | ||
456 | goto out_unlock_up; | ||
457 | |||
450 | err = -EPERM; | 458 | err = -EPERM; |
451 | if (current->euid != ipcp->cuid && | 459 | if (current->euid != ipcp->cuid && |
452 | current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) | 460 | current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) |
@@ -460,7 +468,8 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf) | |||
460 | switch (cmd) { | 468 | switch (cmd) { |
461 | case IPC_SET: | 469 | case IPC_SET: |
462 | { | 470 | { |
463 | if ((err = audit_ipc_perms(setbuf.qbytes, setbuf.uid, setbuf.gid, setbuf.mode, ipcp))) | 471 | err = audit_ipc_set_perm(setbuf.qbytes, setbuf.uid, setbuf.gid, setbuf.mode, ipcp); |
472 | if (err) | ||
464 | goto out_unlock_up; | 473 | goto out_unlock_up; |
465 | 474 | ||
466 | err = -EPERM; | 475 | err = -EPERM; |
@@ -61,6 +61,9 @@ | |||
61 | * (c) 2001 Red Hat Inc <alan@redhat.com> | 61 | * (c) 2001 Red Hat Inc <alan@redhat.com> |
62 | * Lockless wakeup | 62 | * Lockless wakeup |
63 | * (c) 2003 Manfred Spraul <manfred@colorfullife.com> | 63 | * (c) 2003 Manfred Spraul <manfred@colorfullife.com> |
64 | * | ||
65 | * support for audit of ipc object properties and permission changes | ||
66 | * Dustin Kirkland <dustin.kirkland@us.ibm.com> | ||
64 | */ | 67 | */ |
65 | 68 | ||
66 | #include <linux/config.h> | 69 | #include <linux/config.h> |
@@ -820,6 +823,11 @@ static int semctl_down(int semid, int semnum, int cmd, int version, union semun | |||
820 | goto out_unlock; | 823 | goto out_unlock; |
821 | } | 824 | } |
822 | ipcp = &sma->sem_perm; | 825 | ipcp = &sma->sem_perm; |
826 | |||
827 | err = audit_ipc_obj(ipcp); | ||
828 | if (err) | ||
829 | goto out_unlock; | ||
830 | |||
823 | if (current->euid != ipcp->cuid && | 831 | if (current->euid != ipcp->cuid && |
824 | current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) { | 832 | current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) { |
825 | err=-EPERM; | 833 | err=-EPERM; |
@@ -836,7 +844,8 @@ static int semctl_down(int semid, int semnum, int cmd, int version, union semun | |||
836 | err = 0; | 844 | err = 0; |
837 | break; | 845 | break; |
838 | case IPC_SET: | 846 | case IPC_SET: |
839 | if ((err = audit_ipc_perms(0, setbuf.uid, setbuf.gid, setbuf.mode, ipcp))) | 847 | err = audit_ipc_set_perm(0, setbuf.uid, setbuf.gid, setbuf.mode, ipcp); |
848 | if (err) | ||
840 | goto out_unlock; | 849 | goto out_unlock; |
841 | ipcp->uid = setbuf.uid; | 850 | ipcp->uid = setbuf.uid; |
842 | ipcp->gid = setbuf.gid; | 851 | ipcp->gid = setbuf.gid; |
@@ -13,6 +13,8 @@ | |||
13 | * Shared /dev/zero support, Kanoj Sarcar <kanoj@sgi.com> | 13 | * Shared /dev/zero support, Kanoj Sarcar <kanoj@sgi.com> |
14 | * Move the mm functionality over to mm/shmem.c, Christoph Rohland <cr@sap.com> | 14 | * Move the mm functionality over to mm/shmem.c, Christoph Rohland <cr@sap.com> |
15 | * | 15 | * |
16 | * support for audit of ipc object properties and permission changes | ||
17 | * Dustin Kirkland <dustin.kirkland@us.ibm.com> | ||
16 | */ | 18 | */ |
17 | 19 | ||
18 | #include <linux/config.h> | 20 | #include <linux/config.h> |
@@ -542,6 +544,10 @@ asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf) | |||
542 | if(err) | 544 | if(err) |
543 | goto out_unlock; | 545 | goto out_unlock; |
544 | 546 | ||
547 | err = audit_ipc_obj(&(shp->shm_perm)); | ||
548 | if (err) | ||
549 | goto out_unlock; | ||
550 | |||
545 | if (!capable(CAP_IPC_LOCK)) { | 551 | if (!capable(CAP_IPC_LOCK)) { |
546 | err = -EPERM; | 552 | err = -EPERM; |
547 | if (current->euid != shp->shm_perm.uid && | 553 | if (current->euid != shp->shm_perm.uid && |
@@ -594,6 +600,10 @@ asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf) | |||
594 | if(err) | 600 | if(err) |
595 | goto out_unlock_up; | 601 | goto out_unlock_up; |
596 | 602 | ||
603 | err = audit_ipc_obj(&(shp->shm_perm)); | ||
604 | if (err) | ||
605 | goto out_unlock_up; | ||
606 | |||
597 | if (current->euid != shp->shm_perm.uid && | 607 | if (current->euid != shp->shm_perm.uid && |
598 | current->euid != shp->shm_perm.cuid && | 608 | current->euid != shp->shm_perm.cuid && |
599 | !capable(CAP_SYS_ADMIN)) { | 609 | !capable(CAP_SYS_ADMIN)) { |
@@ -627,12 +637,15 @@ asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf) | |||
627 | err=-EINVAL; | 637 | err=-EINVAL; |
628 | if(shp==NULL) | 638 | if(shp==NULL) |
629 | goto out_up; | 639 | goto out_up; |
630 | if ((err = audit_ipc_perms(0, setbuf.uid, setbuf.gid, | ||
631 | setbuf.mode, &(shp->shm_perm)))) | ||
632 | goto out_unlock_up; | ||
633 | err = shm_checkid(shp,shmid); | 640 | err = shm_checkid(shp,shmid); |
634 | if(err) | 641 | if(err) |
635 | goto out_unlock_up; | 642 | goto out_unlock_up; |
643 | err = audit_ipc_obj(&(shp->shm_perm)); | ||
644 | if (err) | ||
645 | goto out_unlock_up; | ||
646 | err = audit_ipc_set_perm(0, setbuf.uid, setbuf.gid, setbuf.mode, &(shp->shm_perm)); | ||
647 | if (err) | ||
648 | goto out_unlock_up; | ||
636 | err=-EPERM; | 649 | err=-EPERM; |
637 | if (current->euid != shp->shm_perm.uid && | 650 | if (current->euid != shp->shm_perm.uid && |
638 | current->euid != shp->shm_perm.cuid && | 651 | current->euid != shp->shm_perm.cuid && |
diff --git a/ipc/util.c b/ipc/util.c index b3dcfad3b4f7..8193299f45f6 100644 --- a/ipc/util.c +++ b/ipc/util.c | |||
@@ -10,6 +10,8 @@ | |||
10 | * Manfred Spraul <manfred@colorfullife.com> | 10 | * Manfred Spraul <manfred@colorfullife.com> |
11 | * Oct 2002 - One lock per IPC id. RCU ipc_free for lock-free grow_ary(). | 11 | * Oct 2002 - One lock per IPC id. RCU ipc_free for lock-free grow_ary(). |
12 | * Mingming Cao <cmm@us.ibm.com> | 12 | * Mingming Cao <cmm@us.ibm.com> |
13 | * Mar 2006 - support for audit of ipc object properties | ||
14 | * Dustin Kirkland <dustin.kirkland@us.ibm.com> | ||
13 | */ | 15 | */ |
14 | 16 | ||
15 | #include <linux/config.h> | 17 | #include <linux/config.h> |
@@ -27,6 +29,7 @@ | |||
27 | #include <linux/workqueue.h> | 29 | #include <linux/workqueue.h> |
28 | #include <linux/seq_file.h> | 30 | #include <linux/seq_file.h> |
29 | #include <linux/proc_fs.h> | 31 | #include <linux/proc_fs.h> |
32 | #include <linux/audit.h> | ||
30 | 33 | ||
31 | #include <asm/unistd.h> | 34 | #include <asm/unistd.h> |
32 | 35 | ||
@@ -464,8 +467,10 @@ void ipc_rcu_putref(void *ptr) | |||
464 | 467 | ||
465 | int ipcperms (struct kern_ipc_perm *ipcp, short flag) | 468 | int ipcperms (struct kern_ipc_perm *ipcp, short flag) |
466 | { /* flag will most probably be 0 or S_...UGO from <linux/stat.h> */ | 469 | { /* flag will most probably be 0 or S_...UGO from <linux/stat.h> */ |
467 | int requested_mode, granted_mode; | 470 | int requested_mode, granted_mode, err; |
468 | 471 | ||
472 | if (unlikely((err = audit_ipc_obj(ipcp)))) | ||
473 | return err; | ||
469 | requested_mode = (flag >> 6) | (flag >> 3) | flag; | 474 | requested_mode = (flag >> 6) | (flag >> 3) | flag; |
470 | granted_mode = ipcp->mode; | 475 | granted_mode = ipcp->mode; |
471 | if (current->euid == ipcp->cuid || current->euid == ipcp->uid) | 476 | if (current->euid == ipcp->cuid || current->euid == ipcp->uid) |
diff --git a/kernel/audit.c b/kernel/audit.c index c8ccbd09048f..df57b493e1cb 100644 --- a/kernel/audit.c +++ b/kernel/audit.c | |||
@@ -55,6 +55,9 @@ | |||
55 | #include <net/netlink.h> | 55 | #include <net/netlink.h> |
56 | #include <linux/skbuff.h> | 56 | #include <linux/skbuff.h> |
57 | #include <linux/netlink.h> | 57 | #include <linux/netlink.h> |
58 | #include <linux/selinux.h> | ||
59 | |||
60 | #include "audit.h" | ||
58 | 61 | ||
59 | /* No auditing will take place until audit_initialized != 0. | 62 | /* No auditing will take place until audit_initialized != 0. |
60 | * (Initialization happens after skb_init is called.) */ | 63 | * (Initialization happens after skb_init is called.) */ |
@@ -227,49 +230,103 @@ void audit_log_lost(const char *message) | |||
227 | } | 230 | } |
228 | } | 231 | } |
229 | 232 | ||
230 | static int audit_set_rate_limit(int limit, uid_t loginuid) | 233 | static int audit_set_rate_limit(int limit, uid_t loginuid, u32 sid) |
231 | { | 234 | { |
232 | int old = audit_rate_limit; | 235 | int old = audit_rate_limit; |
233 | audit_rate_limit = limit; | 236 | |
234 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | 237 | if (sid) { |
238 | char *ctx = NULL; | ||
239 | u32 len; | ||
240 | int rc; | ||
241 | if ((rc = selinux_ctxid_to_string(sid, &ctx, &len))) | ||
242 | return rc; | ||
243 | else | ||
244 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
245 | "audit_rate_limit=%d old=%d by auid=%u subj=%s", | ||
246 | limit, old, loginuid, ctx); | ||
247 | kfree(ctx); | ||
248 | } else | ||
249 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
235 | "audit_rate_limit=%d old=%d by auid=%u", | 250 | "audit_rate_limit=%d old=%d by auid=%u", |
236 | audit_rate_limit, old, loginuid); | 251 | limit, old, loginuid); |
252 | audit_rate_limit = limit; | ||
237 | return old; | 253 | return old; |
238 | } | 254 | } |
239 | 255 | ||
240 | static int audit_set_backlog_limit(int limit, uid_t loginuid) | 256 | static int audit_set_backlog_limit(int limit, uid_t loginuid, u32 sid) |
241 | { | 257 | { |
242 | int old = audit_backlog_limit; | 258 | int old = audit_backlog_limit; |
243 | audit_backlog_limit = limit; | 259 | |
244 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | 260 | if (sid) { |
261 | char *ctx = NULL; | ||
262 | u32 len; | ||
263 | int rc; | ||
264 | if ((rc = selinux_ctxid_to_string(sid, &ctx, &len))) | ||
265 | return rc; | ||
266 | else | ||
267 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
268 | "audit_backlog_limit=%d old=%d by auid=%u subj=%s", | ||
269 | limit, old, loginuid, ctx); | ||
270 | kfree(ctx); | ||
271 | } else | ||
272 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
245 | "audit_backlog_limit=%d old=%d by auid=%u", | 273 | "audit_backlog_limit=%d old=%d by auid=%u", |
246 | audit_backlog_limit, old, loginuid); | 274 | limit, old, loginuid); |
275 | audit_backlog_limit = limit; | ||
247 | return old; | 276 | return old; |
248 | } | 277 | } |
249 | 278 | ||
250 | static int audit_set_enabled(int state, uid_t loginuid) | 279 | static int audit_set_enabled(int state, uid_t loginuid, u32 sid) |
251 | { | 280 | { |
252 | int old = audit_enabled; | 281 | int old = audit_enabled; |
282 | |||
253 | if (state != 0 && state != 1) | 283 | if (state != 0 && state != 1) |
254 | return -EINVAL; | 284 | return -EINVAL; |
255 | audit_enabled = state; | 285 | |
256 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | 286 | if (sid) { |
287 | char *ctx = NULL; | ||
288 | u32 len; | ||
289 | int rc; | ||
290 | if ((rc = selinux_ctxid_to_string(sid, &ctx, &len))) | ||
291 | return rc; | ||
292 | else | ||
293 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
294 | "audit_enabled=%d old=%d by auid=%u subj=%s", | ||
295 | state, old, loginuid, ctx); | ||
296 | kfree(ctx); | ||
297 | } else | ||
298 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
257 | "audit_enabled=%d old=%d by auid=%u", | 299 | "audit_enabled=%d old=%d by auid=%u", |
258 | audit_enabled, old, loginuid); | 300 | state, old, loginuid); |
301 | audit_enabled = state; | ||
259 | return old; | 302 | return old; |
260 | } | 303 | } |
261 | 304 | ||
262 | static int audit_set_failure(int state, uid_t loginuid) | 305 | static int audit_set_failure(int state, uid_t loginuid, u32 sid) |
263 | { | 306 | { |
264 | int old = audit_failure; | 307 | int old = audit_failure; |
308 | |||
265 | if (state != AUDIT_FAIL_SILENT | 309 | if (state != AUDIT_FAIL_SILENT |
266 | && state != AUDIT_FAIL_PRINTK | 310 | && state != AUDIT_FAIL_PRINTK |
267 | && state != AUDIT_FAIL_PANIC) | 311 | && state != AUDIT_FAIL_PANIC) |
268 | return -EINVAL; | 312 | return -EINVAL; |
269 | audit_failure = state; | 313 | |
270 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | 314 | if (sid) { |
315 | char *ctx = NULL; | ||
316 | u32 len; | ||
317 | int rc; | ||
318 | if ((rc = selinux_ctxid_to_string(sid, &ctx, &len))) | ||
319 | return rc; | ||
320 | else | ||
321 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
322 | "audit_failure=%d old=%d by auid=%u subj=%s", | ||
323 | state, old, loginuid, ctx); | ||
324 | kfree(ctx); | ||
325 | } else | ||
326 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
271 | "audit_failure=%d old=%d by auid=%u", | 327 | "audit_failure=%d old=%d by auid=%u", |
272 | audit_failure, old, loginuid); | 328 | state, old, loginuid); |
329 | audit_failure = state; | ||
273 | return old; | 330 | return old; |
274 | } | 331 | } |
275 | 332 | ||
@@ -387,7 +444,7 @@ static int audit_netlink_ok(kernel_cap_t eff_cap, u16 msg_type) | |||
387 | 444 | ||
388 | static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | 445 | static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) |
389 | { | 446 | { |
390 | u32 uid, pid, seq; | 447 | u32 uid, pid, seq, sid; |
391 | void *data; | 448 | void *data; |
392 | struct audit_status *status_get, status_set; | 449 | struct audit_status *status_get, status_set; |
393 | int err; | 450 | int err; |
@@ -413,6 +470,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
413 | pid = NETLINK_CREDS(skb)->pid; | 470 | pid = NETLINK_CREDS(skb)->pid; |
414 | uid = NETLINK_CREDS(skb)->uid; | 471 | uid = NETLINK_CREDS(skb)->uid; |
415 | loginuid = NETLINK_CB(skb).loginuid; | 472 | loginuid = NETLINK_CB(skb).loginuid; |
473 | sid = NETLINK_CB(skb).sid; | ||
416 | seq = nlh->nlmsg_seq; | 474 | seq = nlh->nlmsg_seq; |
417 | data = NLMSG_DATA(nlh); | 475 | data = NLMSG_DATA(nlh); |
418 | 476 | ||
@@ -433,25 +491,43 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
433 | return -EINVAL; | 491 | return -EINVAL; |
434 | status_get = (struct audit_status *)data; | 492 | status_get = (struct audit_status *)data; |
435 | if (status_get->mask & AUDIT_STATUS_ENABLED) { | 493 | if (status_get->mask & AUDIT_STATUS_ENABLED) { |
436 | err = audit_set_enabled(status_get->enabled, loginuid); | 494 | err = audit_set_enabled(status_get->enabled, |
495 | loginuid, sid); | ||
437 | if (err < 0) return err; | 496 | if (err < 0) return err; |
438 | } | 497 | } |
439 | if (status_get->mask & AUDIT_STATUS_FAILURE) { | 498 | if (status_get->mask & AUDIT_STATUS_FAILURE) { |
440 | err = audit_set_failure(status_get->failure, loginuid); | 499 | err = audit_set_failure(status_get->failure, |
500 | loginuid, sid); | ||
441 | if (err < 0) return err; | 501 | if (err < 0) return err; |
442 | } | 502 | } |
443 | if (status_get->mask & AUDIT_STATUS_PID) { | 503 | if (status_get->mask & AUDIT_STATUS_PID) { |
444 | int old = audit_pid; | 504 | int old = audit_pid; |
505 | if (sid) { | ||
506 | char *ctx = NULL; | ||
507 | u32 len; | ||
508 | int rc; | ||
509 | if ((rc = selinux_ctxid_to_string( | ||
510 | sid, &ctx, &len))) | ||
511 | return rc; | ||
512 | else | ||
513 | audit_log(NULL, GFP_KERNEL, | ||
514 | AUDIT_CONFIG_CHANGE, | ||
515 | "audit_pid=%d old=%d by auid=%u subj=%s", | ||
516 | status_get->pid, old, | ||
517 | loginuid, ctx); | ||
518 | kfree(ctx); | ||
519 | } else | ||
520 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
521 | "audit_pid=%d old=%d by auid=%u", | ||
522 | status_get->pid, old, loginuid); | ||
445 | audit_pid = status_get->pid; | 523 | audit_pid = status_get->pid; |
446 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
447 | "audit_pid=%d old=%d by auid=%u", | ||
448 | audit_pid, old, loginuid); | ||
449 | } | 524 | } |
450 | if (status_get->mask & AUDIT_STATUS_RATE_LIMIT) | 525 | if (status_get->mask & AUDIT_STATUS_RATE_LIMIT) |
451 | audit_set_rate_limit(status_get->rate_limit, loginuid); | 526 | audit_set_rate_limit(status_get->rate_limit, |
527 | loginuid, sid); | ||
452 | if (status_get->mask & AUDIT_STATUS_BACKLOG_LIMIT) | 528 | if (status_get->mask & AUDIT_STATUS_BACKLOG_LIMIT) |
453 | audit_set_backlog_limit(status_get->backlog_limit, | 529 | audit_set_backlog_limit(status_get->backlog_limit, |
454 | loginuid); | 530 | loginuid, sid); |
455 | break; | 531 | break; |
456 | case AUDIT_USER: | 532 | case AUDIT_USER: |
457 | case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG: | 533 | case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG: |
@@ -465,8 +541,23 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
465 | ab = audit_log_start(NULL, GFP_KERNEL, msg_type); | 541 | ab = audit_log_start(NULL, GFP_KERNEL, msg_type); |
466 | if (ab) { | 542 | if (ab) { |
467 | audit_log_format(ab, | 543 | audit_log_format(ab, |
468 | "user pid=%d uid=%u auid=%u msg='%.1024s'", | 544 | "user pid=%d uid=%u auid=%u", |
469 | pid, uid, loginuid, (char *)data); | 545 | pid, uid, loginuid); |
546 | if (sid) { | ||
547 | char *ctx = NULL; | ||
548 | u32 len; | ||
549 | if (selinux_ctxid_to_string( | ||
550 | sid, &ctx, &len)) { | ||
551 | audit_log_format(ab, | ||
552 | " ssid=%u", sid); | ||
553 | /* Maybe call audit_panic? */ | ||
554 | } else | ||
555 | audit_log_format(ab, | ||
556 | " subj=%s", ctx); | ||
557 | kfree(ctx); | ||
558 | } | ||
559 | audit_log_format(ab, " msg='%.1024s'", | ||
560 | (char *)data); | ||
470 | audit_set_pid(ab, pid); | 561 | audit_set_pid(ab, pid); |
471 | audit_log_end(ab); | 562 | audit_log_end(ab); |
472 | } | 563 | } |
@@ -480,7 +571,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
480 | case AUDIT_LIST: | 571 | case AUDIT_LIST: |
481 | err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, | 572 | err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, |
482 | uid, seq, data, nlmsg_len(nlh), | 573 | uid, seq, data, nlmsg_len(nlh), |
483 | loginuid); | 574 | loginuid, sid); |
484 | break; | 575 | break; |
485 | case AUDIT_ADD_RULE: | 576 | case AUDIT_ADD_RULE: |
486 | case AUDIT_DEL_RULE: | 577 | case AUDIT_DEL_RULE: |
@@ -490,7 +581,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
490 | case AUDIT_LIST_RULES: | 581 | case AUDIT_LIST_RULES: |
491 | err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, | 582 | err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, |
492 | uid, seq, data, nlmsg_len(nlh), | 583 | uid, seq, data, nlmsg_len(nlh), |
493 | loginuid); | 584 | loginuid, sid); |
494 | break; | 585 | break; |
495 | case AUDIT_SIGNAL_INFO: | 586 | case AUDIT_SIGNAL_INFO: |
496 | sig_data.uid = audit_sig_uid; | 587 | sig_data.uid = audit_sig_uid; |
@@ -564,6 +655,11 @@ static int __init audit_init(void) | |||
564 | skb_queue_head_init(&audit_skb_queue); | 655 | skb_queue_head_init(&audit_skb_queue); |
565 | audit_initialized = 1; | 656 | audit_initialized = 1; |
566 | audit_enabled = audit_default; | 657 | audit_enabled = audit_default; |
658 | |||
659 | /* Register the callback with selinux. This callback will be invoked | ||
660 | * when a new policy is loaded. */ | ||
661 | selinux_audit_set_callback(&selinux_audit_rule_update); | ||
662 | |||
567 | audit_log(NULL, GFP_KERNEL, AUDIT_KERNEL, "initialized"); | 663 | audit_log(NULL, GFP_KERNEL, AUDIT_KERNEL, "initialized"); |
568 | return 0; | 664 | return 0; |
569 | } | 665 | } |
diff --git a/kernel/audit.h b/kernel/audit.h index bc5392076e2b..6f733920fd32 100644 --- a/kernel/audit.h +++ b/kernel/audit.h | |||
@@ -54,9 +54,11 @@ enum audit_state { | |||
54 | 54 | ||
55 | /* Rule lists */ | 55 | /* Rule lists */ |
56 | struct audit_field { | 56 | struct audit_field { |
57 | u32 type; | 57 | u32 type; |
58 | u32 val; | 58 | u32 val; |
59 | u32 op; | 59 | u32 op; |
60 | char *se_str; | ||
61 | struct selinux_audit_rule *se_rule; | ||
60 | }; | 62 | }; |
61 | 63 | ||
62 | struct audit_krule { | 64 | struct audit_krule { |
@@ -86,3 +88,5 @@ extern void audit_send_reply(int pid, int seq, int type, | |||
86 | extern void audit_log_lost(const char *message); | 88 | extern void audit_log_lost(const char *message); |
87 | extern void audit_panic(const char *message); | 89 | extern void audit_panic(const char *message); |
88 | extern struct mutex audit_netlink_mutex; | 90 | extern struct mutex audit_netlink_mutex; |
91 | |||
92 | extern int selinux_audit_rule_update(void); | ||
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c index d3a8539f3a83..7c134906d689 100644 --- a/kernel/auditfilter.c +++ b/kernel/auditfilter.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/audit.h> | 23 | #include <linux/audit.h> |
24 | #include <linux/kthread.h> | 24 | #include <linux/kthread.h> |
25 | #include <linux/netlink.h> | 25 | #include <linux/netlink.h> |
26 | #include <linux/selinux.h> | ||
26 | #include "audit.h" | 27 | #include "audit.h" |
27 | 28 | ||
28 | /* There are three lists of rules -- one to search at task creation | 29 | /* There are three lists of rules -- one to search at task creation |
@@ -42,6 +43,13 @@ struct list_head audit_filter_list[AUDIT_NR_FILTERS] = { | |||
42 | 43 | ||
43 | static inline void audit_free_rule(struct audit_entry *e) | 44 | static inline void audit_free_rule(struct audit_entry *e) |
44 | { | 45 | { |
46 | int i; | ||
47 | if (e->rule.fields) | ||
48 | for (i = 0; i < e->rule.field_count; i++) { | ||
49 | struct audit_field *f = &e->rule.fields[i]; | ||
50 | kfree(f->se_str); | ||
51 | selinux_audit_rule_free(f->se_rule); | ||
52 | } | ||
45 | kfree(e->rule.fields); | 53 | kfree(e->rule.fields); |
46 | kfree(e); | 54 | kfree(e); |
47 | } | 55 | } |
@@ -52,9 +60,29 @@ static inline void audit_free_rule_rcu(struct rcu_head *head) | |||
52 | audit_free_rule(e); | 60 | audit_free_rule(e); |
53 | } | 61 | } |
54 | 62 | ||
63 | /* Initialize an audit filterlist entry. */ | ||
64 | static inline struct audit_entry *audit_init_entry(u32 field_count) | ||
65 | { | ||
66 | struct audit_entry *entry; | ||
67 | struct audit_field *fields; | ||
68 | |||
69 | entry = kzalloc(sizeof(*entry), GFP_KERNEL); | ||
70 | if (unlikely(!entry)) | ||
71 | return NULL; | ||
72 | |||
73 | fields = kzalloc(sizeof(*fields) * field_count, GFP_KERNEL); | ||
74 | if (unlikely(!fields)) { | ||
75 | kfree(entry); | ||
76 | return NULL; | ||
77 | } | ||
78 | entry->rule.fields = fields; | ||
79 | |||
80 | return entry; | ||
81 | } | ||
82 | |||
55 | /* Unpack a filter field's string representation from user-space | 83 | /* Unpack a filter field's string representation from user-space |
56 | * buffer. */ | 84 | * buffer. */ |
57 | static __attribute__((unused)) char *audit_unpack_string(void **bufp, size_t *remain, size_t len) | 85 | static char *audit_unpack_string(void **bufp, size_t *remain, size_t len) |
58 | { | 86 | { |
59 | char *str; | 87 | char *str; |
60 | 88 | ||
@@ -84,7 +112,6 @@ static inline struct audit_entry *audit_to_entry_common(struct audit_rule *rule) | |||
84 | { | 112 | { |
85 | unsigned listnr; | 113 | unsigned listnr; |
86 | struct audit_entry *entry; | 114 | struct audit_entry *entry; |
87 | struct audit_field *fields; | ||
88 | int i, err; | 115 | int i, err; |
89 | 116 | ||
90 | err = -EINVAL; | 117 | err = -EINVAL; |
@@ -108,23 +135,14 @@ static inline struct audit_entry *audit_to_entry_common(struct audit_rule *rule) | |||
108 | goto exit_err; | 135 | goto exit_err; |
109 | 136 | ||
110 | err = -ENOMEM; | 137 | err = -ENOMEM; |
111 | entry = kmalloc(sizeof(*entry), GFP_KERNEL); | 138 | entry = audit_init_entry(rule->field_count); |
112 | if (unlikely(!entry)) | 139 | if (!entry) |
113 | goto exit_err; | ||
114 | fields = kmalloc(sizeof(*fields) * rule->field_count, GFP_KERNEL); | ||
115 | if (unlikely(!fields)) { | ||
116 | kfree(entry); | ||
117 | goto exit_err; | 140 | goto exit_err; |
118 | } | ||
119 | |||
120 | memset(&entry->rule, 0, sizeof(struct audit_krule)); | ||
121 | memset(fields, 0, sizeof(struct audit_field)); | ||
122 | 141 | ||
123 | entry->rule.flags = rule->flags & AUDIT_FILTER_PREPEND; | 142 | entry->rule.flags = rule->flags & AUDIT_FILTER_PREPEND; |
124 | entry->rule.listnr = listnr; | 143 | entry->rule.listnr = listnr; |
125 | entry->rule.action = rule->action; | 144 | entry->rule.action = rule->action; |
126 | entry->rule.field_count = rule->field_count; | 145 | entry->rule.field_count = rule->field_count; |
127 | entry->rule.fields = fields; | ||
128 | 146 | ||
129 | for (i = 0; i < AUDIT_BITMASK_SIZE; i++) | 147 | for (i = 0; i < AUDIT_BITMASK_SIZE; i++) |
130 | entry->rule.mask[i] = rule->mask[i]; | 148 | entry->rule.mask[i] = rule->mask[i]; |
@@ -150,15 +168,20 @@ static struct audit_entry *audit_rule_to_entry(struct audit_rule *rule) | |||
150 | for (i = 0; i < rule->field_count; i++) { | 168 | for (i = 0; i < rule->field_count; i++) { |
151 | struct audit_field *f = &entry->rule.fields[i]; | 169 | struct audit_field *f = &entry->rule.fields[i]; |
152 | 170 | ||
153 | if (rule->fields[i] & AUDIT_UNUSED_BITS) { | ||
154 | err = -EINVAL; | ||
155 | goto exit_free; | ||
156 | } | ||
157 | |||
158 | f->op = rule->fields[i] & (AUDIT_NEGATE|AUDIT_OPERATORS); | 171 | f->op = rule->fields[i] & (AUDIT_NEGATE|AUDIT_OPERATORS); |
159 | f->type = rule->fields[i] & ~(AUDIT_NEGATE|AUDIT_OPERATORS); | 172 | f->type = rule->fields[i] & ~(AUDIT_NEGATE|AUDIT_OPERATORS); |
160 | f->val = rule->values[i]; | 173 | f->val = rule->values[i]; |
161 | 174 | ||
175 | if (f->type & AUDIT_UNUSED_BITS || | ||
176 | f->type == AUDIT_SE_USER || | ||
177 | f->type == AUDIT_SE_ROLE || | ||
178 | f->type == AUDIT_SE_TYPE || | ||
179 | f->type == AUDIT_SE_SEN || | ||
180 | f->type == AUDIT_SE_CLR) { | ||
181 | err = -EINVAL; | ||
182 | goto exit_free; | ||
183 | } | ||
184 | |||
162 | entry->rule.vers_ops = (f->op & AUDIT_OPERATORS) ? 2 : 1; | 185 | entry->rule.vers_ops = (f->op & AUDIT_OPERATORS) ? 2 : 1; |
163 | 186 | ||
164 | /* Support for legacy operators where | 187 | /* Support for legacy operators where |
@@ -188,8 +211,9 @@ static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data, | |||
188 | int err = 0; | 211 | int err = 0; |
189 | struct audit_entry *entry; | 212 | struct audit_entry *entry; |
190 | void *bufp; | 213 | void *bufp; |
191 | /* size_t remain = datasz - sizeof(struct audit_rule_data); */ | 214 | size_t remain = datasz - sizeof(struct audit_rule_data); |
192 | int i; | 215 | int i; |
216 | char *str; | ||
193 | 217 | ||
194 | entry = audit_to_entry_common((struct audit_rule *)data); | 218 | entry = audit_to_entry_common((struct audit_rule *)data); |
195 | if (IS_ERR(entry)) | 219 | if (IS_ERR(entry)) |
@@ -207,10 +231,35 @@ static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data, | |||
207 | 231 | ||
208 | f->op = data->fieldflags[i] & AUDIT_OPERATORS; | 232 | f->op = data->fieldflags[i] & AUDIT_OPERATORS; |
209 | f->type = data->fields[i]; | 233 | f->type = data->fields[i]; |
234 | f->val = data->values[i]; | ||
235 | f->se_str = NULL; | ||
236 | f->se_rule = NULL; | ||
210 | switch(f->type) { | 237 | switch(f->type) { |
211 | /* call type-specific conversion routines here */ | 238 | case AUDIT_SE_USER: |
212 | default: | 239 | case AUDIT_SE_ROLE: |
213 | f->val = data->values[i]; | 240 | case AUDIT_SE_TYPE: |
241 | case AUDIT_SE_SEN: | ||
242 | case AUDIT_SE_CLR: | ||
243 | str = audit_unpack_string(&bufp, &remain, f->val); | ||
244 | if (IS_ERR(str)) | ||
245 | goto exit_free; | ||
246 | entry->rule.buflen += f->val; | ||
247 | |||
248 | err = selinux_audit_rule_init(f->type, f->op, str, | ||
249 | &f->se_rule); | ||
250 | /* Keep currently invalid fields around in case they | ||
251 | * become valid after a policy reload. */ | ||
252 | if (err == -EINVAL) { | ||
253 | printk(KERN_WARNING "audit rule for selinux " | ||
254 | "\'%s\' is invalid\n", str); | ||
255 | err = 0; | ||
256 | } | ||
257 | if (err) { | ||
258 | kfree(str); | ||
259 | goto exit_free; | ||
260 | } else | ||
261 | f->se_str = str; | ||
262 | break; | ||
214 | } | 263 | } |
215 | } | 264 | } |
216 | 265 | ||
@@ -286,7 +335,14 @@ static struct audit_rule_data *audit_krule_to_data(struct audit_krule *krule) | |||
286 | data->fields[i] = f->type; | 335 | data->fields[i] = f->type; |
287 | data->fieldflags[i] = f->op; | 336 | data->fieldflags[i] = f->op; |
288 | switch(f->type) { | 337 | switch(f->type) { |
289 | /* call type-specific conversion routines here */ | 338 | case AUDIT_SE_USER: |
339 | case AUDIT_SE_ROLE: | ||
340 | case AUDIT_SE_TYPE: | ||
341 | case AUDIT_SE_SEN: | ||
342 | case AUDIT_SE_CLR: | ||
343 | data->buflen += data->values[i] = | ||
344 | audit_pack_string(&bufp, f->se_str); | ||
345 | break; | ||
290 | default: | 346 | default: |
291 | data->values[i] = f->val; | 347 | data->values[i] = f->val; |
292 | } | 348 | } |
@@ -314,7 +370,14 @@ static int audit_compare_rule(struct audit_krule *a, struct audit_krule *b) | |||
314 | return 1; | 370 | return 1; |
315 | 371 | ||
316 | switch(a->fields[i].type) { | 372 | switch(a->fields[i].type) { |
317 | /* call type-specific comparison routines here */ | 373 | case AUDIT_SE_USER: |
374 | case AUDIT_SE_ROLE: | ||
375 | case AUDIT_SE_TYPE: | ||
376 | case AUDIT_SE_SEN: | ||
377 | case AUDIT_SE_CLR: | ||
378 | if (strcmp(a->fields[i].se_str, b->fields[i].se_str)) | ||
379 | return 1; | ||
380 | break; | ||
318 | default: | 381 | default: |
319 | if (a->fields[i].val != b->fields[i].val) | 382 | if (a->fields[i].val != b->fields[i].val) |
320 | return 1; | 383 | return 1; |
@@ -328,6 +391,81 @@ static int audit_compare_rule(struct audit_krule *a, struct audit_krule *b) | |||
328 | return 0; | 391 | return 0; |
329 | } | 392 | } |
330 | 393 | ||
394 | /* Duplicate selinux field information. The se_rule is opaque, so must be | ||
395 | * re-initialized. */ | ||
396 | static inline int audit_dupe_selinux_field(struct audit_field *df, | ||
397 | struct audit_field *sf) | ||
398 | { | ||
399 | int ret = 0; | ||
400 | char *se_str; | ||
401 | |||
402 | /* our own copy of se_str */ | ||
403 | se_str = kstrdup(sf->se_str, GFP_KERNEL); | ||
404 | if (unlikely(IS_ERR(se_str))) | ||
405 | return -ENOMEM; | ||
406 | df->se_str = se_str; | ||
407 | |||
408 | /* our own (refreshed) copy of se_rule */ | ||
409 | ret = selinux_audit_rule_init(df->type, df->op, df->se_str, | ||
410 | &df->se_rule); | ||
411 | /* Keep currently invalid fields around in case they | ||
412 | * become valid after a policy reload. */ | ||
413 | if (ret == -EINVAL) { | ||
414 | printk(KERN_WARNING "audit rule for selinux \'%s\' is " | ||
415 | "invalid\n", df->se_str); | ||
416 | ret = 0; | ||
417 | } | ||
418 | |||
419 | return ret; | ||
420 | } | ||
421 | |||
422 | /* Duplicate an audit rule. This will be a deep copy with the exception | ||
423 | * of the watch - that pointer is carried over. The selinux specific fields | ||
424 | * will be updated in the copy. The point is to be able to replace the old | ||
425 | * rule with the new rule in the filterlist, then free the old rule. */ | ||
426 | static struct audit_entry *audit_dupe_rule(struct audit_krule *old) | ||
427 | { | ||
428 | u32 fcount = old->field_count; | ||
429 | struct audit_entry *entry; | ||
430 | struct audit_krule *new; | ||
431 | int i, err = 0; | ||
432 | |||
433 | entry = audit_init_entry(fcount); | ||
434 | if (unlikely(!entry)) | ||
435 | return ERR_PTR(-ENOMEM); | ||
436 | |||
437 | new = &entry->rule; | ||
438 | new->vers_ops = old->vers_ops; | ||
439 | new->flags = old->flags; | ||
440 | new->listnr = old->listnr; | ||
441 | new->action = old->action; | ||
442 | for (i = 0; i < AUDIT_BITMASK_SIZE; i++) | ||
443 | new->mask[i] = old->mask[i]; | ||
444 | new->buflen = old->buflen; | ||
445 | new->field_count = old->field_count; | ||
446 | memcpy(new->fields, old->fields, sizeof(struct audit_field) * fcount); | ||
447 | |||
448 | /* deep copy this information, updating the se_rule fields, because | ||
449 | * the originals will all be freed when the old rule is freed. */ | ||
450 | for (i = 0; i < fcount; i++) { | ||
451 | switch (new->fields[i].type) { | ||
452 | case AUDIT_SE_USER: | ||
453 | case AUDIT_SE_ROLE: | ||
454 | case AUDIT_SE_TYPE: | ||
455 | case AUDIT_SE_SEN: | ||
456 | case AUDIT_SE_CLR: | ||
457 | err = audit_dupe_selinux_field(&new->fields[i], | ||
458 | &old->fields[i]); | ||
459 | } | ||
460 | if (err) { | ||
461 | audit_free_rule(entry); | ||
462 | return ERR_PTR(err); | ||
463 | } | ||
464 | } | ||
465 | |||
466 | return entry; | ||
467 | } | ||
468 | |||
331 | /* Add rule to given filterlist if not a duplicate. Protected by | 469 | /* Add rule to given filterlist if not a duplicate. Protected by |
332 | * audit_netlink_mutex. */ | 470 | * audit_netlink_mutex. */ |
333 | static inline int audit_add_rule(struct audit_entry *entry, | 471 | static inline int audit_add_rule(struct audit_entry *entry, |
@@ -448,9 +586,10 @@ static int audit_list_rules(void *_dest) | |||
448 | * @data: payload data | 586 | * @data: payload data |
449 | * @datasz: size of payload data | 587 | * @datasz: size of payload data |
450 | * @loginuid: loginuid of sender | 588 | * @loginuid: loginuid of sender |
589 | * @sid: SE Linux Security ID of sender | ||
451 | */ | 590 | */ |
452 | int audit_receive_filter(int type, int pid, int uid, int seq, void *data, | 591 | int audit_receive_filter(int type, int pid, int uid, int seq, void *data, |
453 | size_t datasz, uid_t loginuid) | 592 | size_t datasz, uid_t loginuid, u32 sid) |
454 | { | 593 | { |
455 | struct task_struct *tsk; | 594 | struct task_struct *tsk; |
456 | int *dest; | 595 | int *dest; |
@@ -493,9 +632,23 @@ int audit_receive_filter(int type, int pid, int uid, int seq, void *data, | |||
493 | 632 | ||
494 | err = audit_add_rule(entry, | 633 | err = audit_add_rule(entry, |
495 | &audit_filter_list[entry->rule.listnr]); | 634 | &audit_filter_list[entry->rule.listnr]); |
496 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | 635 | if (sid) { |
497 | "auid=%u add rule to list=%d res=%d\n", | 636 | char *ctx = NULL; |
498 | loginuid, entry->rule.listnr, !err); | 637 | u32 len; |
638 | if (selinux_ctxid_to_string(sid, &ctx, &len)) { | ||
639 | /* Maybe call audit_panic? */ | ||
640 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
641 | "auid=%u ssid=%u add rule to list=%d res=%d", | ||
642 | loginuid, sid, entry->rule.listnr, !err); | ||
643 | } else | ||
644 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
645 | "auid=%u subj=%s add rule to list=%d res=%d", | ||
646 | loginuid, ctx, entry->rule.listnr, !err); | ||
647 | kfree(ctx); | ||
648 | } else | ||
649 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
650 | "auid=%u add rule to list=%d res=%d", | ||
651 | loginuid, entry->rule.listnr, !err); | ||
499 | 652 | ||
500 | if (err) | 653 | if (err) |
501 | audit_free_rule(entry); | 654 | audit_free_rule(entry); |
@@ -511,9 +664,24 @@ int audit_receive_filter(int type, int pid, int uid, int seq, void *data, | |||
511 | 664 | ||
512 | err = audit_del_rule(entry, | 665 | err = audit_del_rule(entry, |
513 | &audit_filter_list[entry->rule.listnr]); | 666 | &audit_filter_list[entry->rule.listnr]); |
514 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | 667 | |
515 | "auid=%u remove rule from list=%d res=%d\n", | 668 | if (sid) { |
516 | loginuid, entry->rule.listnr, !err); | 669 | char *ctx = NULL; |
670 | u32 len; | ||
671 | if (selinux_ctxid_to_string(sid, &ctx, &len)) { | ||
672 | /* Maybe call audit_panic? */ | ||
673 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
674 | "auid=%u ssid=%u remove rule from list=%d res=%d", | ||
675 | loginuid, sid, entry->rule.listnr, !err); | ||
676 | } else | ||
677 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
678 | "auid=%u subj=%s remove rule from list=%d res=%d", | ||
679 | loginuid, ctx, entry->rule.listnr, !err); | ||
680 | kfree(ctx); | ||
681 | } else | ||
682 | audit_log(NULL, GFP_KERNEL, AUDIT_CONFIG_CHANGE, | ||
683 | "auid=%u remove rule from list=%d res=%d", | ||
684 | loginuid, entry->rule.listnr, !err); | ||
517 | 685 | ||
518 | audit_free_rule(entry); | 686 | audit_free_rule(entry); |
519 | break; | 687 | break; |
@@ -628,3 +796,62 @@ unlock_and_return: | |||
628 | rcu_read_unlock(); | 796 | rcu_read_unlock(); |
629 | return result; | 797 | return result; |
630 | } | 798 | } |
799 | |||
800 | /* Check to see if the rule contains any selinux fields. Returns 1 if there | ||
801 | are selinux fields specified in the rule, 0 otherwise. */ | ||
802 | static inline int audit_rule_has_selinux(struct audit_krule *rule) | ||
803 | { | ||
804 | int i; | ||
805 | |||
806 | for (i = 0; i < rule->field_count; i++) { | ||
807 | struct audit_field *f = &rule->fields[i]; | ||
808 | switch (f->type) { | ||
809 | case AUDIT_SE_USER: | ||
810 | case AUDIT_SE_ROLE: | ||
811 | case AUDIT_SE_TYPE: | ||
812 | case AUDIT_SE_SEN: | ||
813 | case AUDIT_SE_CLR: | ||
814 | return 1; | ||
815 | } | ||
816 | } | ||
817 | |||
818 | return 0; | ||
819 | } | ||
820 | |||
821 | /* This function will re-initialize the se_rule field of all applicable rules. | ||
822 | * It will traverse the filter lists serarching for rules that contain selinux | ||
823 | * specific filter fields. When such a rule is found, it is copied, the | ||
824 | * selinux field is re-initialized, and the old rule is replaced with the | ||
825 | * updated rule. */ | ||
826 | int selinux_audit_rule_update(void) | ||
827 | { | ||
828 | struct audit_entry *entry, *n, *nentry; | ||
829 | int i, err = 0; | ||
830 | |||
831 | /* audit_netlink_mutex synchronizes the writers */ | ||
832 | mutex_lock(&audit_netlink_mutex); | ||
833 | |||
834 | for (i = 0; i < AUDIT_NR_FILTERS; i++) { | ||
835 | list_for_each_entry_safe(entry, n, &audit_filter_list[i], list) { | ||
836 | if (!audit_rule_has_selinux(&entry->rule)) | ||
837 | continue; | ||
838 | |||
839 | nentry = audit_dupe_rule(&entry->rule); | ||
840 | if (unlikely(IS_ERR(nentry))) { | ||
841 | /* save the first error encountered for the | ||
842 | * return value */ | ||
843 | if (!err) | ||
844 | err = PTR_ERR(nentry); | ||
845 | audit_panic("error updating selinux filters"); | ||
846 | list_del_rcu(&entry->list); | ||
847 | } else { | ||
848 | list_replace_rcu(&entry->list, &nentry->list); | ||
849 | } | ||
850 | call_rcu(&entry->rcu, audit_free_rule_rcu); | ||
851 | } | ||
852 | } | ||
853 | |||
854 | mutex_unlock(&audit_netlink_mutex); | ||
855 | |||
856 | return err; | ||
857 | } | ||
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 7f160df21a23..1c03a4ed1b27 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -58,6 +58,7 @@ | |||
58 | #include <linux/security.h> | 58 | #include <linux/security.h> |
59 | #include <linux/list.h> | 59 | #include <linux/list.h> |
60 | #include <linux/tty.h> | 60 | #include <linux/tty.h> |
61 | #include <linux/selinux.h> | ||
61 | 62 | ||
62 | #include "audit.h" | 63 | #include "audit.h" |
63 | 64 | ||
@@ -89,7 +90,7 @@ struct audit_names { | |||
89 | uid_t uid; | 90 | uid_t uid; |
90 | gid_t gid; | 91 | gid_t gid; |
91 | dev_t rdev; | 92 | dev_t rdev; |
92 | char *ctx; | 93 | u32 osid; |
93 | }; | 94 | }; |
94 | 95 | ||
95 | struct audit_aux_data { | 96 | struct audit_aux_data { |
@@ -106,7 +107,7 @@ struct audit_aux_data_ipcctl { | |||
106 | uid_t uid; | 107 | uid_t uid; |
107 | gid_t gid; | 108 | gid_t gid; |
108 | mode_t mode; | 109 | mode_t mode; |
109 | char *ctx; | 110 | u32 osid; |
110 | }; | 111 | }; |
111 | 112 | ||
112 | struct audit_aux_data_socketcall { | 113 | struct audit_aux_data_socketcall { |
@@ -167,7 +168,8 @@ static int audit_filter_rules(struct task_struct *tsk, | |||
167 | struct audit_context *ctx, | 168 | struct audit_context *ctx, |
168 | enum audit_state *state) | 169 | enum audit_state *state) |
169 | { | 170 | { |
170 | int i, j; | 171 | int i, j, need_sid = 1; |
172 | u32 sid; | ||
171 | 173 | ||
172 | for (i = 0; i < rule->field_count; i++) { | 174 | for (i = 0; i < rule->field_count; i++) { |
173 | struct audit_field *f = &rule->fields[i]; | 175 | struct audit_field *f = &rule->fields[i]; |
@@ -257,6 +259,27 @@ static int audit_filter_rules(struct task_struct *tsk, | |||
257 | if (ctx) | 259 | if (ctx) |
258 | result = audit_comparator(ctx->loginuid, f->op, f->val); | 260 | result = audit_comparator(ctx->loginuid, f->op, f->val); |
259 | break; | 261 | break; |
262 | case AUDIT_SE_USER: | ||
263 | case AUDIT_SE_ROLE: | ||
264 | case AUDIT_SE_TYPE: | ||
265 | case AUDIT_SE_SEN: | ||
266 | case AUDIT_SE_CLR: | ||
267 | /* NOTE: this may return negative values indicating | ||
268 | a temporary error. We simply treat this as a | ||
269 | match for now to avoid losing information that | ||
270 | may be wanted. An error message will also be | ||
271 | logged upon error */ | ||
272 | if (f->se_rule) { | ||
273 | if (need_sid) { | ||
274 | selinux_task_ctxid(tsk, &sid); | ||
275 | need_sid = 0; | ||
276 | } | ||
277 | result = selinux_audit_rule_match(sid, f->type, | ||
278 | f->op, | ||
279 | f->se_rule, | ||
280 | ctx); | ||
281 | } | ||
282 | break; | ||
260 | case AUDIT_ARG0: | 283 | case AUDIT_ARG0: |
261 | case AUDIT_ARG1: | 284 | case AUDIT_ARG1: |
262 | case AUDIT_ARG2: | 285 | case AUDIT_ARG2: |
@@ -329,7 +352,6 @@ static enum audit_state audit_filter_syscall(struct task_struct *tsk, | |||
329 | return AUDIT_BUILD_CONTEXT; | 352 | return AUDIT_BUILD_CONTEXT; |
330 | } | 353 | } |
331 | 354 | ||
332 | /* This should be called with task_lock() held. */ | ||
333 | static inline struct audit_context *audit_get_context(struct task_struct *tsk, | 355 | static inline struct audit_context *audit_get_context(struct task_struct *tsk, |
334 | int return_valid, | 356 | int return_valid, |
335 | int return_code) | 357 | int return_code) |
@@ -391,9 +413,6 @@ static inline void audit_free_names(struct audit_context *context) | |||
391 | #endif | 413 | #endif |
392 | 414 | ||
393 | for (i = 0; i < context->name_count; i++) { | 415 | for (i = 0; i < context->name_count; i++) { |
394 | char *p = context->names[i].ctx; | ||
395 | context->names[i].ctx = NULL; | ||
396 | kfree(p); | ||
397 | if (context->names[i].name) | 416 | if (context->names[i].name) |
398 | __putname(context->names[i].name); | 417 | __putname(context->names[i].name); |
399 | } | 418 | } |
@@ -416,11 +435,6 @@ static inline void audit_free_aux(struct audit_context *context) | |||
416 | dput(axi->dentry); | 435 | dput(axi->dentry); |
417 | mntput(axi->mnt); | 436 | mntput(axi->mnt); |
418 | } | 437 | } |
419 | if ( aux->type == AUDIT_IPC ) { | ||
420 | struct audit_aux_data_ipcctl *axi = (void *)aux; | ||
421 | if (axi->ctx) | ||
422 | kfree(axi->ctx); | ||
423 | } | ||
424 | 438 | ||
425 | context->aux = aux->next; | 439 | context->aux = aux->next; |
426 | kfree(aux); | 440 | kfree(aux); |
@@ -506,7 +520,7 @@ static inline void audit_free_context(struct audit_context *context) | |||
506 | printk(KERN_ERR "audit: freed %d contexts\n", count); | 520 | printk(KERN_ERR "audit: freed %d contexts\n", count); |
507 | } | 521 | } |
508 | 522 | ||
509 | static void audit_log_task_context(struct audit_buffer *ab, gfp_t gfp_mask) | 523 | static void audit_log_task_context(struct audit_buffer *ab) |
510 | { | 524 | { |
511 | char *ctx = NULL; | 525 | char *ctx = NULL; |
512 | ssize_t len = 0; | 526 | ssize_t len = 0; |
@@ -518,7 +532,7 @@ static void audit_log_task_context(struct audit_buffer *ab, gfp_t gfp_mask) | |||
518 | return; | 532 | return; |
519 | } | 533 | } |
520 | 534 | ||
521 | ctx = kmalloc(len, gfp_mask); | 535 | ctx = kmalloc(len, GFP_KERNEL); |
522 | if (!ctx) | 536 | if (!ctx) |
523 | goto error_path; | 537 | goto error_path; |
524 | 538 | ||
@@ -536,47 +550,46 @@ error_path: | |||
536 | return; | 550 | return; |
537 | } | 551 | } |
538 | 552 | ||
539 | static void audit_log_task_info(struct audit_buffer *ab, gfp_t gfp_mask) | 553 | static void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk) |
540 | { | 554 | { |
541 | char name[sizeof(current->comm)]; | 555 | char name[sizeof(tsk->comm)]; |
542 | struct mm_struct *mm = current->mm; | 556 | struct mm_struct *mm = tsk->mm; |
543 | struct vm_area_struct *vma; | 557 | struct vm_area_struct *vma; |
544 | 558 | ||
545 | get_task_comm(name, current); | 559 | /* tsk == current */ |
560 | |||
561 | get_task_comm(name, tsk); | ||
546 | audit_log_format(ab, " comm="); | 562 | audit_log_format(ab, " comm="); |
547 | audit_log_untrustedstring(ab, name); | 563 | audit_log_untrustedstring(ab, name); |
548 | 564 | ||
549 | if (!mm) | 565 | if (mm) { |
550 | return; | 566 | down_read(&mm->mmap_sem); |
551 | 567 | vma = mm->mmap; | |
552 | /* | 568 | while (vma) { |
553 | * this is brittle; all callers that pass GFP_ATOMIC will have | 569 | if ((vma->vm_flags & VM_EXECUTABLE) && |
554 | * NULL current->mm and we won't get here. | 570 | vma->vm_file) { |
555 | */ | 571 | audit_log_d_path(ab, "exe=", |
556 | down_read(&mm->mmap_sem); | 572 | vma->vm_file->f_dentry, |
557 | vma = mm->mmap; | 573 | vma->vm_file->f_vfsmnt); |
558 | while (vma) { | 574 | break; |
559 | if ((vma->vm_flags & VM_EXECUTABLE) && | 575 | } |
560 | vma->vm_file) { | 576 | vma = vma->vm_next; |
561 | audit_log_d_path(ab, "exe=", | ||
562 | vma->vm_file->f_dentry, | ||
563 | vma->vm_file->f_vfsmnt); | ||
564 | break; | ||
565 | } | 577 | } |
566 | vma = vma->vm_next; | 578 | up_read(&mm->mmap_sem); |
567 | } | 579 | } |
568 | up_read(&mm->mmap_sem); | 580 | audit_log_task_context(ab); |
569 | audit_log_task_context(ab, gfp_mask); | ||
570 | } | 581 | } |
571 | 582 | ||
572 | static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | 583 | static void audit_log_exit(struct audit_context *context, struct task_struct *tsk) |
573 | { | 584 | { |
574 | int i; | 585 | int i, call_panic = 0; |
575 | struct audit_buffer *ab; | 586 | struct audit_buffer *ab; |
576 | struct audit_aux_data *aux; | 587 | struct audit_aux_data *aux; |
577 | const char *tty; | 588 | const char *tty; |
578 | 589 | ||
579 | ab = audit_log_start(context, gfp_mask, AUDIT_SYSCALL); | 590 | /* tsk == current */ |
591 | |||
592 | ab = audit_log_start(context, GFP_KERNEL, AUDIT_SYSCALL); | ||
580 | if (!ab) | 593 | if (!ab) |
581 | return; /* audit_panic has been called */ | 594 | return; /* audit_panic has been called */ |
582 | audit_log_format(ab, "arch=%x syscall=%d", | 595 | audit_log_format(ab, "arch=%x syscall=%d", |
@@ -587,8 +600,8 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | |||
587 | audit_log_format(ab, " success=%s exit=%ld", | 600 | audit_log_format(ab, " success=%s exit=%ld", |
588 | (context->return_valid==AUDITSC_SUCCESS)?"yes":"no", | 601 | (context->return_valid==AUDITSC_SUCCESS)?"yes":"no", |
589 | context->return_code); | 602 | context->return_code); |
590 | if (current->signal->tty && current->signal->tty->name) | 603 | if (tsk->signal && tsk->signal->tty && tsk->signal->tty->name) |
591 | tty = current->signal->tty->name; | 604 | tty = tsk->signal->tty->name; |
592 | else | 605 | else |
593 | tty = "(none)"; | 606 | tty = "(none)"; |
594 | audit_log_format(ab, | 607 | audit_log_format(ab, |
@@ -607,12 +620,12 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | |||
607 | context->gid, | 620 | context->gid, |
608 | context->euid, context->suid, context->fsuid, | 621 | context->euid, context->suid, context->fsuid, |
609 | context->egid, context->sgid, context->fsgid, tty); | 622 | context->egid, context->sgid, context->fsgid, tty); |
610 | audit_log_task_info(ab, gfp_mask); | 623 | audit_log_task_info(ab, tsk); |
611 | audit_log_end(ab); | 624 | audit_log_end(ab); |
612 | 625 | ||
613 | for (aux = context->aux; aux; aux = aux->next) { | 626 | for (aux = context->aux; aux; aux = aux->next) { |
614 | 627 | ||
615 | ab = audit_log_start(context, gfp_mask, aux->type); | 628 | ab = audit_log_start(context, GFP_KERNEL, aux->type); |
616 | if (!ab) | 629 | if (!ab) |
617 | continue; /* audit_panic has been called */ | 630 | continue; /* audit_panic has been called */ |
618 | 631 | ||
@@ -620,8 +633,39 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | |||
620 | case AUDIT_IPC: { | 633 | case AUDIT_IPC: { |
621 | struct audit_aux_data_ipcctl *axi = (void *)aux; | 634 | struct audit_aux_data_ipcctl *axi = (void *)aux; |
622 | audit_log_format(ab, | 635 | audit_log_format(ab, |
623 | " qbytes=%lx iuid=%u igid=%u mode=%x obj=%s", | 636 | " qbytes=%lx iuid=%u igid=%u mode=%x", |
624 | axi->qbytes, axi->uid, axi->gid, axi->mode, axi->ctx); | 637 | axi->qbytes, axi->uid, axi->gid, axi->mode); |
638 | if (axi->osid != 0) { | ||
639 | char *ctx = NULL; | ||
640 | u32 len; | ||
641 | if (selinux_ctxid_to_string( | ||
642 | axi->osid, &ctx, &len)) { | ||
643 | audit_log_format(ab, " osid=%u", | ||
644 | axi->osid); | ||
645 | call_panic = 1; | ||
646 | } else | ||
647 | audit_log_format(ab, " obj=%s", ctx); | ||
648 | kfree(ctx); | ||
649 | } | ||
650 | break; } | ||
651 | |||
652 | case AUDIT_IPC_SET_PERM: { | ||
653 | struct audit_aux_data_ipcctl *axi = (void *)aux; | ||
654 | audit_log_format(ab, | ||
655 | " new qbytes=%lx new iuid=%u new igid=%u new mode=%x", | ||
656 | axi->qbytes, axi->uid, axi->gid, axi->mode); | ||
657 | if (axi->osid != 0) { | ||
658 | char *ctx = NULL; | ||
659 | u32 len; | ||
660 | if (selinux_ctxid_to_string( | ||
661 | axi->osid, &ctx, &len)) { | ||
662 | audit_log_format(ab, " osid=%u", | ||
663 | axi->osid); | ||
664 | call_panic = 1; | ||
665 | } else | ||
666 | audit_log_format(ab, " obj=%s", ctx); | ||
667 | kfree(ctx); | ||
668 | } | ||
625 | break; } | 669 | break; } |
626 | 670 | ||
627 | case AUDIT_SOCKETCALL: { | 671 | case AUDIT_SOCKETCALL: { |
@@ -649,7 +693,7 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | |||
649 | } | 693 | } |
650 | 694 | ||
651 | if (context->pwd && context->pwdmnt) { | 695 | if (context->pwd && context->pwdmnt) { |
652 | ab = audit_log_start(context, gfp_mask, AUDIT_CWD); | 696 | ab = audit_log_start(context, GFP_KERNEL, AUDIT_CWD); |
653 | if (ab) { | 697 | if (ab) { |
654 | audit_log_d_path(ab, "cwd=", context->pwd, context->pwdmnt); | 698 | audit_log_d_path(ab, "cwd=", context->pwd, context->pwdmnt); |
655 | audit_log_end(ab); | 699 | audit_log_end(ab); |
@@ -659,7 +703,7 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | |||
659 | unsigned long ino = context->names[i].ino; | 703 | unsigned long ino = context->names[i].ino; |
660 | unsigned long pino = context->names[i].pino; | 704 | unsigned long pino = context->names[i].pino; |
661 | 705 | ||
662 | ab = audit_log_start(context, gfp_mask, AUDIT_PATH); | 706 | ab = audit_log_start(context, GFP_KERNEL, AUDIT_PATH); |
663 | if (!ab) | 707 | if (!ab) |
664 | continue; /* audit_panic has been called */ | 708 | continue; /* audit_panic has been called */ |
665 | 709 | ||
@@ -685,32 +729,35 @@ static void audit_log_exit(struct audit_context *context, gfp_t gfp_mask) | |||
685 | context->names[i].gid, | 729 | context->names[i].gid, |
686 | MAJOR(context->names[i].rdev), | 730 | MAJOR(context->names[i].rdev), |
687 | MINOR(context->names[i].rdev)); | 731 | MINOR(context->names[i].rdev)); |
688 | if (context->names[i].ctx) { | 732 | if (context->names[i].osid != 0) { |
689 | audit_log_format(ab, " obj=%s", | 733 | char *ctx = NULL; |
690 | context->names[i].ctx); | 734 | u32 len; |
735 | if (selinux_ctxid_to_string( | ||
736 | context->names[i].osid, &ctx, &len)) { | ||
737 | audit_log_format(ab, " osid=%u", | ||
738 | context->names[i].osid); | ||
739 | call_panic = 2; | ||
740 | } else | ||
741 | audit_log_format(ab, " obj=%s", ctx); | ||
742 | kfree(ctx); | ||
691 | } | 743 | } |
692 | 744 | ||
693 | audit_log_end(ab); | 745 | audit_log_end(ab); |
694 | } | 746 | } |
747 | if (call_panic) | ||
748 | audit_panic("error converting sid to string"); | ||
695 | } | 749 | } |
696 | 750 | ||
697 | /** | 751 | /** |
698 | * audit_free - free a per-task audit context | 752 | * audit_free - free a per-task audit context |
699 | * @tsk: task whose audit context block to free | 753 | * @tsk: task whose audit context block to free |
700 | * | 754 | * |
701 | * Called from copy_process and __put_task_struct. | 755 | * Called from copy_process and do_exit |
702 | */ | 756 | */ |
703 | void audit_free(struct task_struct *tsk) | 757 | void audit_free(struct task_struct *tsk) |
704 | { | 758 | { |
705 | struct audit_context *context; | 759 | struct audit_context *context; |
706 | 760 | ||
707 | /* | ||
708 | * No need to lock the task - when we execute audit_free() | ||
709 | * then the task has no external references anymore, and | ||
710 | * we are tearing it down. (The locking also confuses | ||
711 | * DEBUG_LOCKDEP - this freeing may occur in softirq | ||
712 | * contexts as well, via RCU.) | ||
713 | */ | ||
714 | context = audit_get_context(tsk, 0, 0); | 761 | context = audit_get_context(tsk, 0, 0); |
715 | if (likely(!context)) | 762 | if (likely(!context)) |
716 | return; | 763 | return; |
@@ -719,8 +766,9 @@ void audit_free(struct task_struct *tsk) | |||
719 | * function (e.g., exit_group), then free context block. | 766 | * function (e.g., exit_group), then free context block. |
720 | * We use GFP_ATOMIC here because we might be doing this | 767 | * We use GFP_ATOMIC here because we might be doing this |
721 | * in the context of the idle thread */ | 768 | * in the context of the idle thread */ |
769 | /* that can happen only if we are called from do_exit() */ | ||
722 | if (context->in_syscall && context->auditable) | 770 | if (context->in_syscall && context->auditable) |
723 | audit_log_exit(context, GFP_ATOMIC); | 771 | audit_log_exit(context, tsk); |
724 | 772 | ||
725 | audit_free_context(context); | 773 | audit_free_context(context); |
726 | } | 774 | } |
@@ -743,10 +791,11 @@ void audit_free(struct task_struct *tsk) | |||
743 | * will only be written if another part of the kernel requests that it | 791 | * will only be written if another part of the kernel requests that it |
744 | * be written). | 792 | * be written). |
745 | */ | 793 | */ |
746 | void audit_syscall_entry(struct task_struct *tsk, int arch, int major, | 794 | void audit_syscall_entry(int arch, int major, |
747 | unsigned long a1, unsigned long a2, | 795 | unsigned long a1, unsigned long a2, |
748 | unsigned long a3, unsigned long a4) | 796 | unsigned long a3, unsigned long a4) |
749 | { | 797 | { |
798 | struct task_struct *tsk = current; | ||
750 | struct audit_context *context = tsk->audit_context; | 799 | struct audit_context *context = tsk->audit_context; |
751 | enum audit_state state; | 800 | enum audit_state state; |
752 | 801 | ||
@@ -824,22 +873,18 @@ void audit_syscall_entry(struct task_struct *tsk, int arch, int major, | |||
824 | * message), then write out the syscall information. In call cases, | 873 | * message), then write out the syscall information. In call cases, |
825 | * free the names stored from getname(). | 874 | * free the names stored from getname(). |
826 | */ | 875 | */ |
827 | void audit_syscall_exit(struct task_struct *tsk, int valid, long return_code) | 876 | void audit_syscall_exit(int valid, long return_code) |
828 | { | 877 | { |
878 | struct task_struct *tsk = current; | ||
829 | struct audit_context *context; | 879 | struct audit_context *context; |
830 | 880 | ||
831 | get_task_struct(tsk); | ||
832 | task_lock(tsk); | ||
833 | context = audit_get_context(tsk, valid, return_code); | 881 | context = audit_get_context(tsk, valid, return_code); |
834 | task_unlock(tsk); | ||
835 | 882 | ||
836 | /* Not having a context here is ok, since the parent may have | ||
837 | * called __put_task_struct. */ | ||
838 | if (likely(!context)) | 883 | if (likely(!context)) |
839 | goto out; | 884 | return; |
840 | 885 | ||
841 | if (context->in_syscall && context->auditable) | 886 | if (context->in_syscall && context->auditable) |
842 | audit_log_exit(context, GFP_KERNEL); | 887 | audit_log_exit(context, tsk); |
843 | 888 | ||
844 | context->in_syscall = 0; | 889 | context->in_syscall = 0; |
845 | context->auditable = 0; | 890 | context->auditable = 0; |
@@ -854,8 +899,6 @@ void audit_syscall_exit(struct task_struct *tsk, int valid, long return_code) | |||
854 | audit_free_aux(context); | 899 | audit_free_aux(context); |
855 | tsk->audit_context = context; | 900 | tsk->audit_context = context; |
856 | } | 901 | } |
857 | out: | ||
858 | put_task_struct(tsk); | ||
859 | } | 902 | } |
860 | 903 | ||
861 | /** | 904 | /** |
@@ -936,40 +979,11 @@ void audit_putname(const char *name) | |||
936 | #endif | 979 | #endif |
937 | } | 980 | } |
938 | 981 | ||
939 | void audit_inode_context(int idx, const struct inode *inode) | 982 | static void audit_inode_context(int idx, const struct inode *inode) |
940 | { | 983 | { |
941 | struct audit_context *context = current->audit_context; | 984 | struct audit_context *context = current->audit_context; |
942 | const char *suffix = security_inode_xattr_getsuffix(); | ||
943 | char *ctx = NULL; | ||
944 | int len = 0; | ||
945 | |||
946 | if (!suffix) | ||
947 | goto ret; | ||
948 | |||
949 | len = security_inode_getsecurity(inode, suffix, NULL, 0, 0); | ||
950 | if (len == -EOPNOTSUPP) | ||
951 | goto ret; | ||
952 | if (len < 0) | ||
953 | goto error_path; | ||
954 | |||
955 | ctx = kmalloc(len, GFP_KERNEL); | ||
956 | if (!ctx) | ||
957 | goto error_path; | ||
958 | 985 | ||
959 | len = security_inode_getsecurity(inode, suffix, ctx, len, 0); | 986 | selinux_get_inode_sid(inode, &context->names[idx].osid); |
960 | if (len < 0) | ||
961 | goto error_path; | ||
962 | |||
963 | kfree(context->names[idx].ctx); | ||
964 | context->names[idx].ctx = ctx; | ||
965 | goto ret; | ||
966 | |||
967 | error_path: | ||
968 | if (ctx) | ||
969 | kfree(ctx); | ||
970 | audit_panic("error in audit_inode_context"); | ||
971 | ret: | ||
972 | return; | ||
973 | } | 987 | } |
974 | 988 | ||
975 | 989 | ||
@@ -1155,40 +1169,37 @@ uid_t audit_get_loginuid(struct audit_context *ctx) | |||
1155 | return ctx ? ctx->loginuid : -1; | 1169 | return ctx ? ctx->loginuid : -1; |
1156 | } | 1170 | } |
1157 | 1171 | ||
1158 | static char *audit_ipc_context(struct kern_ipc_perm *ipcp) | 1172 | /** |
1173 | * audit_ipc_obj - record audit data for ipc object | ||
1174 | * @ipcp: ipc permissions | ||
1175 | * | ||
1176 | * Returns 0 for success or NULL context or < 0 on error. | ||
1177 | */ | ||
1178 | int audit_ipc_obj(struct kern_ipc_perm *ipcp) | ||
1159 | { | 1179 | { |
1180 | struct audit_aux_data_ipcctl *ax; | ||
1160 | struct audit_context *context = current->audit_context; | 1181 | struct audit_context *context = current->audit_context; |
1161 | char *ctx = NULL; | ||
1162 | int len = 0; | ||
1163 | 1182 | ||
1164 | if (likely(!context)) | 1183 | if (likely(!context)) |
1165 | return NULL; | 1184 | return 0; |
1166 | |||
1167 | len = security_ipc_getsecurity(ipcp, NULL, 0); | ||
1168 | if (len == -EOPNOTSUPP) | ||
1169 | goto ret; | ||
1170 | if (len < 0) | ||
1171 | goto error_path; | ||
1172 | |||
1173 | ctx = kmalloc(len, GFP_ATOMIC); | ||
1174 | if (!ctx) | ||
1175 | goto error_path; | ||
1176 | 1185 | ||
1177 | len = security_ipc_getsecurity(ipcp, ctx, len); | 1186 | ax = kmalloc(sizeof(*ax), GFP_ATOMIC); |
1178 | if (len < 0) | 1187 | if (!ax) |
1179 | goto error_path; | 1188 | return -ENOMEM; |
1180 | 1189 | ||
1181 | return ctx; | 1190 | ax->uid = ipcp->uid; |
1191 | ax->gid = ipcp->gid; | ||
1192 | ax->mode = ipcp->mode; | ||
1193 | selinux_get_ipc_sid(ipcp, &ax->osid); | ||
1182 | 1194 | ||
1183 | error_path: | 1195 | ax->d.type = AUDIT_IPC; |
1184 | kfree(ctx); | 1196 | ax->d.next = context->aux; |
1185 | audit_panic("error in audit_ipc_context"); | 1197 | context->aux = (void *)ax; |
1186 | ret: | 1198 | return 0; |
1187 | return NULL; | ||
1188 | } | 1199 | } |
1189 | 1200 | ||
1190 | /** | 1201 | /** |
1191 | * audit_ipc_perms - record audit data for ipc | 1202 | * audit_ipc_set_perm - record audit data for new ipc permissions |
1192 | * @qbytes: msgq bytes | 1203 | * @qbytes: msgq bytes |
1193 | * @uid: msgq user id | 1204 | * @uid: msgq user id |
1194 | * @gid: msgq group id | 1205 | * @gid: msgq group id |
@@ -1196,7 +1207,7 @@ ret: | |||
1196 | * | 1207 | * |
1197 | * Returns 0 for success or NULL context or < 0 on error. | 1208 | * Returns 0 for success or NULL context or < 0 on error. |
1198 | */ | 1209 | */ |
1199 | int audit_ipc_perms(unsigned long qbytes, uid_t uid, gid_t gid, mode_t mode, struct kern_ipc_perm *ipcp) | 1210 | int audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, mode_t mode, struct kern_ipc_perm *ipcp) |
1200 | { | 1211 | { |
1201 | struct audit_aux_data_ipcctl *ax; | 1212 | struct audit_aux_data_ipcctl *ax; |
1202 | struct audit_context *context = current->audit_context; | 1213 | struct audit_context *context = current->audit_context; |
@@ -1212,9 +1223,9 @@ int audit_ipc_perms(unsigned long qbytes, uid_t uid, gid_t gid, mode_t mode, str | |||
1212 | ax->uid = uid; | 1223 | ax->uid = uid; |
1213 | ax->gid = gid; | 1224 | ax->gid = gid; |
1214 | ax->mode = mode; | 1225 | ax->mode = mode; |
1215 | ax->ctx = audit_ipc_context(ipcp); | 1226 | selinux_get_ipc_sid(ipcp, &ax->osid); |
1216 | 1227 | ||
1217 | ax->d.type = AUDIT_IPC; | 1228 | ax->d.type = AUDIT_IPC_SET_PERM; |
1218 | ax->d.next = context->aux; | 1229 | ax->d.next = context->aux; |
1219 | context->aux = (void *)ax; | 1230 | context->aux = (void *)ax; |
1220 | return 0; | 1231 | return 0; |
diff --git a/kernel/exit.c b/kernel/exit.c index f86434d7b3d1..e95b93282210 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/futex.h> | 35 | #include <linux/futex.h> |
36 | #include <linux/compat.h> | 36 | #include <linux/compat.h> |
37 | #include <linux/pipe_fs_i.h> | 37 | #include <linux/pipe_fs_i.h> |
38 | #include <linux/audit.h> /* for audit_free() */ | ||
38 | 39 | ||
39 | #include <asm/uaccess.h> | 40 | #include <asm/uaccess.h> |
40 | #include <asm/unistd.h> | 41 | #include <asm/unistd.h> |
@@ -910,6 +911,8 @@ fastcall NORET_TYPE void do_exit(long code) | |||
910 | if (unlikely(tsk->compat_robust_list)) | 911 | if (unlikely(tsk->compat_robust_list)) |
911 | compat_exit_robust_list(tsk); | 912 | compat_exit_robust_list(tsk); |
912 | #endif | 913 | #endif |
914 | if (unlikely(tsk->audit_context)) | ||
915 | audit_free(tsk); | ||
913 | exit_mm(tsk); | 916 | exit_mm(tsk); |
914 | 917 | ||
915 | exit_sem(tsk); | 918 | exit_sem(tsk); |
diff --git a/kernel/fork.c b/kernel/fork.c index d2fa57d480d4..ac8100e3088a 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -114,8 +114,6 @@ void __put_task_struct(struct task_struct *tsk) | |||
114 | WARN_ON(atomic_read(&tsk->usage)); | 114 | WARN_ON(atomic_read(&tsk->usage)); |
115 | WARN_ON(tsk == current); | 115 | WARN_ON(tsk == current); |
116 | 116 | ||
117 | if (unlikely(tsk->audit_context)) | ||
118 | audit_free(tsk); | ||
119 | security_task_free(tsk); | 117 | security_task_free(tsk); |
120 | free_uid(tsk->user); | 118 | free_uid(tsk->user); |
121 | put_group_info(tsk->group_info); | 119 | put_group_info(tsk->group_info); |
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index d2a7296c8251..b7f0388bd71c 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -836,7 +836,7 @@ static void migrate_hrtimers(int cpu) | |||
836 | } | 836 | } |
837 | #endif /* CONFIG_HOTPLUG_CPU */ | 837 | #endif /* CONFIG_HOTPLUG_CPU */ |
838 | 838 | ||
839 | static int __devinit hrtimer_cpu_notify(struct notifier_block *self, | 839 | static int hrtimer_cpu_notify(struct notifier_block *self, |
840 | unsigned long action, void *hcpu) | 840 | unsigned long action, void *hcpu) |
841 | { | 841 | { |
842 | long cpu = (long)hcpu; | 842 | long cpu = (long)hcpu; |
@@ -860,7 +860,7 @@ static int __devinit hrtimer_cpu_notify(struct notifier_block *self, | |||
860 | return NOTIFY_OK; | 860 | return NOTIFY_OK; |
861 | } | 861 | } |
862 | 862 | ||
863 | static struct notifier_block __devinitdata hrtimers_nb = { | 863 | static struct notifier_block hrtimers_nb = { |
864 | .notifier_call = hrtimer_cpu_notify, | 864 | .notifier_call = hrtimer_cpu_notify, |
865 | }; | 865 | }; |
866 | 866 | ||
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index ac766ad573e8..1279e3499534 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -246,8 +246,10 @@ int setup_irq(unsigned int irq, struct irqaction * new) | |||
246 | 246 | ||
247 | mismatch: | 247 | mismatch: |
248 | spin_unlock_irqrestore(&desc->lock, flags); | 248 | spin_unlock_irqrestore(&desc->lock, flags); |
249 | printk(KERN_ERR "%s: irq handler mismatch\n", __FUNCTION__); | 249 | if (!(new->flags & SA_PROBEIRQ)) { |
250 | dump_stack(); | 250 | printk(KERN_ERR "%s: irq handler mismatch\n", __FUNCTION__); |
251 | dump_stack(); | ||
252 | } | ||
251 | return -EBUSY; | 253 | return -EBUSY; |
252 | } | 254 | } |
253 | 255 | ||
diff --git a/kernel/power/main.c b/kernel/power/main.c index ee371f50ccaa..a6d9ef46009e 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
@@ -272,7 +272,7 @@ static ssize_t state_store(struct subsystem * subsys, const char * buf, size_t n | |||
272 | if (*s && !strncmp(buf, *s, len)) | 272 | if (*s && !strncmp(buf, *s, len)) |
273 | break; | 273 | break; |
274 | } | 274 | } |
275 | if (*s) | 275 | if (state < PM_SUSPEND_MAX && *s) |
276 | error = enter_state(state); | 276 | error = enter_state(state); |
277 | else | 277 | else |
278 | error = -EINVAL; | 278 | error = -EINVAL; |
diff --git a/kernel/profile.c b/kernel/profile.c index 5a730fdb1a2c..68afe121e507 100644 --- a/kernel/profile.c +++ b/kernel/profile.c | |||
@@ -299,7 +299,7 @@ out: | |||
299 | } | 299 | } |
300 | 300 | ||
301 | #ifdef CONFIG_HOTPLUG_CPU | 301 | #ifdef CONFIG_HOTPLUG_CPU |
302 | static int __devinit profile_cpu_callback(struct notifier_block *info, | 302 | static int profile_cpu_callback(struct notifier_block *info, |
303 | unsigned long action, void *__cpu) | 303 | unsigned long action, void *__cpu) |
304 | { | 304 | { |
305 | int node, cpu = (unsigned long)__cpu; | 305 | int node, cpu = (unsigned long)__cpu; |
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 13458bbaa1be..6d32ff26f948 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c | |||
@@ -520,7 +520,7 @@ static void __devinit rcu_online_cpu(int cpu) | |||
520 | tasklet_init(&per_cpu(rcu_tasklet, cpu), rcu_process_callbacks, 0UL); | 520 | tasklet_init(&per_cpu(rcu_tasklet, cpu), rcu_process_callbacks, 0UL); |
521 | } | 521 | } |
522 | 522 | ||
523 | static int __devinit rcu_cpu_notify(struct notifier_block *self, | 523 | static int rcu_cpu_notify(struct notifier_block *self, |
524 | unsigned long action, void *hcpu) | 524 | unsigned long action, void *hcpu) |
525 | { | 525 | { |
526 | long cpu = (long)hcpu; | 526 | long cpu = (long)hcpu; |
@@ -537,7 +537,7 @@ static int __devinit rcu_cpu_notify(struct notifier_block *self, | |||
537 | return NOTIFY_OK; | 537 | return NOTIFY_OK; |
538 | } | 538 | } |
539 | 539 | ||
540 | static struct notifier_block __devinitdata rcu_nb = { | 540 | static struct notifier_block rcu_nb = { |
541 | .notifier_call = rcu_cpu_notify, | 541 | .notifier_call = rcu_cpu_notify, |
542 | }; | 542 | }; |
543 | 543 | ||
diff --git a/kernel/sched.c b/kernel/sched.c index 365f0b90b4de..4c64f85698ae 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -4814,7 +4814,7 @@ static int migration_call(struct notifier_block *nfb, unsigned long action, | |||
4814 | /* Register at highest priority so that task migration (migrate_all_tasks) | 4814 | /* Register at highest priority so that task migration (migrate_all_tasks) |
4815 | * happens before everything else. | 4815 | * happens before everything else. |
4816 | */ | 4816 | */ |
4817 | static struct notifier_block __devinitdata migration_notifier = { | 4817 | static struct notifier_block migration_notifier = { |
4818 | .notifier_call = migration_call, | 4818 | .notifier_call = migration_call, |
4819 | .priority = 10 | 4819 | .priority = 10 |
4820 | }; | 4820 | }; |
diff --git a/kernel/softirq.c b/kernel/softirq.c index ec8fed42a86f..336f92d64e2e 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -446,7 +446,7 @@ static void takeover_tasklets(unsigned int cpu) | |||
446 | } | 446 | } |
447 | #endif /* CONFIG_HOTPLUG_CPU */ | 447 | #endif /* CONFIG_HOTPLUG_CPU */ |
448 | 448 | ||
449 | static int __devinit cpu_callback(struct notifier_block *nfb, | 449 | static int cpu_callback(struct notifier_block *nfb, |
450 | unsigned long action, | 450 | unsigned long action, |
451 | void *hcpu) | 451 | void *hcpu) |
452 | { | 452 | { |
@@ -484,7 +484,7 @@ static int __devinit cpu_callback(struct notifier_block *nfb, | |||
484 | return NOTIFY_OK; | 484 | return NOTIFY_OK; |
485 | } | 485 | } |
486 | 486 | ||
487 | static struct notifier_block __devinitdata cpu_nfb = { | 487 | static struct notifier_block cpu_nfb = { |
488 | .notifier_call = cpu_callback | 488 | .notifier_call = cpu_callback |
489 | }; | 489 | }; |
490 | 490 | ||
diff --git a/kernel/softlockup.c b/kernel/softlockup.c index ced91e1ff564..14c7faf02909 100644 --- a/kernel/softlockup.c +++ b/kernel/softlockup.c | |||
@@ -104,7 +104,7 @@ static int watchdog(void * __bind_cpu) | |||
104 | /* | 104 | /* |
105 | * Create/destroy watchdog threads as CPUs come and go: | 105 | * Create/destroy watchdog threads as CPUs come and go: |
106 | */ | 106 | */ |
107 | static int __devinit | 107 | static int |
108 | cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | 108 | cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) |
109 | { | 109 | { |
110 | int hotcpu = (unsigned long)hcpu; | 110 | int hotcpu = (unsigned long)hcpu; |
@@ -140,7 +140,7 @@ cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
140 | return NOTIFY_OK; | 140 | return NOTIFY_OK; |
141 | } | 141 | } |
142 | 142 | ||
143 | static struct notifier_block __devinitdata cpu_nfb = { | 143 | static struct notifier_block cpu_nfb = { |
144 | .notifier_call = cpu_callback | 144 | .notifier_call = cpu_callback |
145 | }; | 145 | }; |
146 | 146 | ||
diff --git a/kernel/timer.c b/kernel/timer.c index 883773788836..67eaf0f54096 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
@@ -1314,7 +1314,7 @@ static void __devinit migrate_timers(int cpu) | |||
1314 | } | 1314 | } |
1315 | #endif /* CONFIG_HOTPLUG_CPU */ | 1315 | #endif /* CONFIG_HOTPLUG_CPU */ |
1316 | 1316 | ||
1317 | static int __devinit timer_cpu_notify(struct notifier_block *self, | 1317 | static int timer_cpu_notify(struct notifier_block *self, |
1318 | unsigned long action, void *hcpu) | 1318 | unsigned long action, void *hcpu) |
1319 | { | 1319 | { |
1320 | long cpu = (long)hcpu; | 1320 | long cpu = (long)hcpu; |
@@ -1334,7 +1334,7 @@ static int __devinit timer_cpu_notify(struct notifier_block *self, | |||
1334 | return NOTIFY_OK; | 1334 | return NOTIFY_OK; |
1335 | } | 1335 | } |
1336 | 1336 | ||
1337 | static struct notifier_block __devinitdata timers_nb = { | 1337 | static struct notifier_block timers_nb = { |
1338 | .notifier_call = timer_cpu_notify, | 1338 | .notifier_call = timer_cpu_notify, |
1339 | }; | 1339 | }; |
1340 | 1340 | ||
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index e9e464a90376..880fb415a8f6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -547,7 +547,7 @@ static void take_over_work(struct workqueue_struct *wq, unsigned int cpu) | |||
547 | } | 547 | } |
548 | 548 | ||
549 | /* We're holding the cpucontrol mutex here */ | 549 | /* We're holding the cpucontrol mutex here */ |
550 | static int __devinit workqueue_cpu_callback(struct notifier_block *nfb, | 550 | static int workqueue_cpu_callback(struct notifier_block *nfb, |
551 | unsigned long action, | 551 | unsigned long action, |
552 | void *hcpu) | 552 | void *hcpu) |
553 | { | 553 | { |
diff --git a/lib/kobject.c b/lib/kobject.c index 01d957513940..b46350c27837 100644 --- a/lib/kobject.c +++ b/lib/kobject.c | |||
@@ -422,7 +422,6 @@ struct kobject *kobject_add_dir(struct kobject *parent, const char *name) | |||
422 | 422 | ||
423 | return k; | 423 | return k; |
424 | } | 424 | } |
425 | EXPORT_SYMBOL_GPL(kobject_add_dir); | ||
426 | 425 | ||
427 | /** | 426 | /** |
428 | * kset_init - initialize a kset for use | 427 | * kset_init - initialize a kset for use |
@@ -569,7 +568,7 @@ int subsys_create_file(struct subsystem * s, struct subsys_attribute * a) | |||
569 | * @s: subsystem. | 568 | * @s: subsystem. |
570 | * @a: attribute desciptor. | 569 | * @a: attribute desciptor. |
571 | */ | 570 | */ |
572 | 571 | #if 0 | |
573 | void subsys_remove_file(struct subsystem * s, struct subsys_attribute * a) | 572 | void subsys_remove_file(struct subsystem * s, struct subsys_attribute * a) |
574 | { | 573 | { |
575 | if (subsys_get(s)) { | 574 | if (subsys_get(s)) { |
@@ -577,6 +576,7 @@ void subsys_remove_file(struct subsystem * s, struct subsys_attribute * a) | |||
577 | subsys_put(s); | 576 | subsys_put(s); |
578 | } | 577 | } |
579 | } | 578 | } |
579 | #endif /* 0 */ | ||
580 | 580 | ||
581 | EXPORT_SYMBOL(kobject_init); | 581 | EXPORT_SYMBOL(kobject_init); |
582 | EXPORT_SYMBOL(kobject_register); | 582 | EXPORT_SYMBOL(kobject_register); |
@@ -588,10 +588,7 @@ EXPORT_SYMBOL(kobject_del); | |||
588 | 588 | ||
589 | EXPORT_SYMBOL(kset_register); | 589 | EXPORT_SYMBOL(kset_register); |
590 | EXPORT_SYMBOL(kset_unregister); | 590 | EXPORT_SYMBOL(kset_unregister); |
591 | EXPORT_SYMBOL(kset_find_obj); | ||
592 | 591 | ||
593 | EXPORT_SYMBOL(subsystem_init); | ||
594 | EXPORT_SYMBOL(subsystem_register); | 592 | EXPORT_SYMBOL(subsystem_register); |
595 | EXPORT_SYMBOL(subsystem_unregister); | 593 | EXPORT_SYMBOL(subsystem_unregister); |
596 | EXPORT_SYMBOL(subsys_create_file); | 594 | EXPORT_SYMBOL(subsys_create_file); |
597 | EXPORT_SYMBOL(subsys_remove_file); | ||
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index 982226daf939..7f20e7b857cb 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c | |||
@@ -25,11 +25,13 @@ | |||
25 | #define BUFFER_SIZE 2048 /* buffer for the variables */ | 25 | #define BUFFER_SIZE 2048 /* buffer for the variables */ |
26 | #define NUM_ENVP 32 /* number of env pointers */ | 26 | #define NUM_ENVP 32 /* number of env pointers */ |
27 | 27 | ||
28 | #if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET) | 28 | #if defined(CONFIG_HOTPLUG) |
29 | u64 uevent_seqnum; | 29 | u64 uevent_seqnum; |
30 | char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug"; | 30 | char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug"; |
31 | static DEFINE_SPINLOCK(sequence_lock); | 31 | static DEFINE_SPINLOCK(sequence_lock); |
32 | #if defined(CONFIG_NET) | ||
32 | static struct sock *uevent_sock; | 33 | static struct sock *uevent_sock; |
34 | #endif | ||
33 | 35 | ||
34 | static char *action_to_string(enum kobject_action action) | 36 | static char *action_to_string(enum kobject_action action) |
35 | { | 37 | { |
@@ -155,6 +157,7 @@ void kobject_uevent(struct kobject *kobj, enum kobject_action action) | |||
155 | spin_unlock(&sequence_lock); | 157 | spin_unlock(&sequence_lock); |
156 | sprintf(seq_buff, "SEQNUM=%llu", (unsigned long long)seq); | 158 | sprintf(seq_buff, "SEQNUM=%llu", (unsigned long long)seq); |
157 | 159 | ||
160 | #if defined(CONFIG_NET) | ||
158 | /* send netlink message */ | 161 | /* send netlink message */ |
159 | if (uevent_sock) { | 162 | if (uevent_sock) { |
160 | struct sk_buff *skb; | 163 | struct sk_buff *skb; |
@@ -179,6 +182,7 @@ void kobject_uevent(struct kobject *kobj, enum kobject_action action) | |||
179 | netlink_broadcast(uevent_sock, skb, 0, 1, GFP_KERNEL); | 182 | netlink_broadcast(uevent_sock, skb, 0, 1, GFP_KERNEL); |
180 | } | 183 | } |
181 | } | 184 | } |
185 | #endif | ||
182 | 186 | ||
183 | /* call uevent_helper, usually only enabled during early boot */ | 187 | /* call uevent_helper, usually only enabled during early boot */ |
184 | if (uevent_helper[0]) { | 188 | if (uevent_helper[0]) { |
@@ -249,6 +253,7 @@ int add_uevent_var(char **envp, int num_envp, int *cur_index, | |||
249 | } | 253 | } |
250 | EXPORT_SYMBOL_GPL(add_uevent_var); | 254 | EXPORT_SYMBOL_GPL(add_uevent_var); |
251 | 255 | ||
256 | #if defined(CONFIG_NET) | ||
252 | static int __init kobject_uevent_init(void) | 257 | static int __init kobject_uevent_init(void) |
253 | { | 258 | { |
254 | uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL, | 259 | uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL, |
@@ -264,5 +269,6 @@ static int __init kobject_uevent_init(void) | |||
264 | } | 269 | } |
265 | 270 | ||
266 | postcore_initcall(kobject_uevent_init); | 271 | postcore_initcall(kobject_uevent_init); |
272 | #endif | ||
267 | 273 | ||
268 | #endif /* CONFIG_HOTPLUG */ | 274 | #endif /* CONFIG_HOTPLUG */ |
diff --git a/mm/filemap.c b/mm/filemap.c index 3ef20739e725..fd57442186cb 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -697,6 +697,38 @@ unsigned find_get_pages(struct address_space *mapping, pgoff_t start, | |||
697 | return ret; | 697 | return ret; |
698 | } | 698 | } |
699 | 699 | ||
700 | /** | ||
701 | * find_get_pages_contig - gang contiguous pagecache lookup | ||
702 | * @mapping: The address_space to search | ||
703 | * @index: The starting page index | ||
704 | * @nr_pages: The maximum number of pages | ||
705 | * @pages: Where the resulting pages are placed | ||
706 | * | ||
707 | * find_get_pages_contig() works exactly like find_get_pages(), except | ||
708 | * that the returned number of pages are guaranteed to be contiguous. | ||
709 | * | ||
710 | * find_get_pages_contig() returns the number of pages which were found. | ||
711 | */ | ||
712 | unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index, | ||
713 | unsigned int nr_pages, struct page **pages) | ||
714 | { | ||
715 | unsigned int i; | ||
716 | unsigned int ret; | ||
717 | |||
718 | read_lock_irq(&mapping->tree_lock); | ||
719 | ret = radix_tree_gang_lookup(&mapping->page_tree, | ||
720 | (void **)pages, index, nr_pages); | ||
721 | for (i = 0; i < ret; i++) { | ||
722 | if (pages[i]->mapping == NULL || pages[i]->index != index) | ||
723 | break; | ||
724 | |||
725 | page_cache_get(pages[i]); | ||
726 | index++; | ||
727 | } | ||
728 | read_unlock_irq(&mapping->tree_lock); | ||
729 | return i; | ||
730 | } | ||
731 | |||
700 | /* | 732 | /* |
701 | * Like find_get_pages, except we only return pages which are tagged with | 733 | * Like find_get_pages, except we only return pages which are tagged with |
702 | * `tag'. We update *index to index the next page for the traversal. | 734 | * `tag'. We update *index to index the next page for the traversal. |
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 1fe76d963ac2..1ae2b2cc3a54 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c | |||
@@ -69,12 +69,16 @@ int __add_pages(struct zone *zone, unsigned long phys_start_pfn, | |||
69 | for (i = 0; i < nr_pages; i += PAGES_PER_SECTION) { | 69 | for (i = 0; i < nr_pages; i += PAGES_PER_SECTION) { |
70 | err = __add_section(zone, phys_start_pfn + i); | 70 | err = __add_section(zone, phys_start_pfn + i); |
71 | 71 | ||
72 | if (err) | 72 | /* We want to keep adding the rest of the |
73 | * sections if the first ones already exist | ||
74 | */ | ||
75 | if (err && (err != -EEXIST)) | ||
73 | break; | 76 | break; |
74 | } | 77 | } |
75 | 78 | ||
76 | return err; | 79 | return err; |
77 | } | 80 | } |
81 | EXPORT_SYMBOL_GPL(__add_pages); | ||
78 | 82 | ||
79 | static void grow_zone_span(struct zone *zone, | 83 | static void grow_zone_span(struct zone *zone, |
80 | unsigned long start_pfn, unsigned long end_pfn) | 84 | unsigned long start_pfn, unsigned long end_pfn) |
diff --git a/mm/migrate.c b/mm/migrate.c index d444229f2599..1c25040693d2 100644 --- a/mm/migrate.c +++ b/mm/migrate.c | |||
@@ -439,6 +439,17 @@ redo: | |||
439 | goto unlock_both; | 439 | goto unlock_both; |
440 | } | 440 | } |
441 | 441 | ||
442 | /* Make sure the dirty bit is up to date */ | ||
443 | if (try_to_unmap(page, 1) == SWAP_FAIL) { | ||
444 | rc = -EPERM; | ||
445 | goto unlock_both; | ||
446 | } | ||
447 | |||
448 | if (page_mapcount(page)) { | ||
449 | rc = -EAGAIN; | ||
450 | goto unlock_both; | ||
451 | } | ||
452 | |||
442 | /* | 453 | /* |
443 | * Default handling if a filesystem does not provide | 454 | * Default handling if a filesystem does not provide |
444 | * a migration function. We can only migrate clean | 455 | * a migration function. We can only migrate clean |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 123c60586740..ea77c999047e 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -1962,7 +1962,7 @@ static inline void free_zone_pagesets(int cpu) | |||
1962 | } | 1962 | } |
1963 | } | 1963 | } |
1964 | 1964 | ||
1965 | static int __cpuinit pageset_cpuup_callback(struct notifier_block *nfb, | 1965 | static int pageset_cpuup_callback(struct notifier_block *nfb, |
1966 | unsigned long action, | 1966 | unsigned long action, |
1967 | void *hcpu) | 1967 | void *hcpu) |
1968 | { | 1968 | { |
@@ -979,7 +979,8 @@ static void __drain_alien_cache(struct kmem_cache *cachep, | |||
979 | * That way we could avoid the overhead of putting the objects | 979 | * That way we could avoid the overhead of putting the objects |
980 | * into the free lists and getting them back later. | 980 | * into the free lists and getting them back later. |
981 | */ | 981 | */ |
982 | transfer_objects(rl3->shared, ac, ac->limit); | 982 | if (rl3->shared) |
983 | transfer_objects(rl3->shared, ac, ac->limit); | ||
983 | 984 | ||
984 | free_block(cachep, ac->entry, ac->avail, node); | 985 | free_block(cachep, ac->entry, ac->avail, node); |
985 | ac->avail = 0; | 986 | ac->avail = 0; |
@@ -1036,7 +1037,7 @@ static inline void free_alien_cache(struct array_cache **ac_ptr) | |||
1036 | 1037 | ||
1037 | #endif | 1038 | #endif |
1038 | 1039 | ||
1039 | static int __devinit cpuup_callback(struct notifier_block *nfb, | 1040 | static int cpuup_callback(struct notifier_block *nfb, |
1040 | unsigned long action, void *hcpu) | 1041 | unsigned long action, void *hcpu) |
1041 | { | 1042 | { |
1042 | long cpu = (long)hcpu; | 1043 | long cpu = (long)hcpu; |
diff --git a/mm/sparse.c b/mm/sparse.c index 0a51f36ba3a1..d7c32de99ee8 100644 --- a/mm/sparse.c +++ b/mm/sparse.c | |||
@@ -32,7 +32,10 @@ static struct mem_section *sparse_index_alloc(int nid) | |||
32 | unsigned long array_size = SECTIONS_PER_ROOT * | 32 | unsigned long array_size = SECTIONS_PER_ROOT * |
33 | sizeof(struct mem_section); | 33 | sizeof(struct mem_section); |
34 | 34 | ||
35 | section = alloc_bootmem_node(NODE_DATA(nid), array_size); | 35 | if (system_state == SYSTEM_RUNNING) |
36 | section = kmalloc_node(array_size, GFP_KERNEL, nid); | ||
37 | else | ||
38 | section = alloc_bootmem_node(NODE_DATA(nid), array_size); | ||
36 | 39 | ||
37 | if (section) | 40 | if (section) |
38 | memset(section, 0, array_size); | 41 | memset(section, 0, array_size); |
@@ -281,9 +284,9 @@ int sparse_add_one_section(struct zone *zone, unsigned long start_pfn, | |||
281 | 284 | ||
282 | ret = sparse_init_one_section(ms, section_nr, memmap); | 285 | ret = sparse_init_one_section(ms, section_nr, memmap); |
283 | 286 | ||
284 | if (ret <= 0) | ||
285 | __kfree_section_memmap(memmap, nr_pages); | ||
286 | out: | 287 | out: |
287 | pgdat_resize_unlock(pgdat, &flags); | 288 | pgdat_resize_unlock(pgdat, &flags); |
289 | if (ret <= 0) | ||
290 | __kfree_section_memmap(memmap, nr_pages); | ||
288 | return ret; | 291 | return ret; |
289 | } | 292 | } |
diff --git a/mm/vmscan.c b/mm/vmscan.c index acdf001d6941..4649a63a8cb6 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1328,7 +1328,7 @@ repeat: | |||
1328 | not required for correctness. So if the last cpu in a node goes | 1328 | not required for correctness. So if the last cpu in a node goes |
1329 | away, we get changed to run anywhere: as the first one comes back, | 1329 | away, we get changed to run anywhere: as the first one comes back, |
1330 | restore their cpu bindings. */ | 1330 | restore their cpu bindings. */ |
1331 | static int __devinit cpu_callback(struct notifier_block *nfb, | 1331 | static int cpu_callback(struct notifier_block *nfb, |
1332 | unsigned long action, void *hcpu) | 1332 | unsigned long action, void *hcpu) |
1333 | { | 1333 | { |
1334 | pg_data_t *pgdat; | 1334 | pg_data_t *pgdat; |
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index dbf9b47681f7..a2e0dd047e9f 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c | |||
@@ -228,6 +228,8 @@ ax25_cb *ax25_find_cb(ax25_address *src_addr, ax25_address *dest_addr, | |||
228 | return NULL; | 228 | return NULL; |
229 | } | 229 | } |
230 | 230 | ||
231 | EXPORT_SYMBOL(ax25_find_cb); | ||
232 | |||
231 | void ax25_send_to_raw(ax25_address *addr, struct sk_buff *skb, int proto) | 233 | void ax25_send_to_raw(ax25_address *addr, struct sk_buff *skb, int proto) |
232 | { | 234 | { |
233 | ax25_cb *s; | 235 | ax25_cb *s; |
@@ -424,6 +426,26 @@ static int ax25_ctl_ioctl(const unsigned int cmd, void __user *arg) | |||
424 | return 0; | 426 | return 0; |
425 | } | 427 | } |
426 | 428 | ||
429 | static void ax25_fillin_cb_from_dev(ax25_cb *ax25, ax25_dev *ax25_dev) | ||
430 | { | ||
431 | ax25->rtt = msecs_to_jiffies(ax25_dev->values[AX25_VALUES_T1]) / 2; | ||
432 | ax25->t1 = msecs_to_jiffies(ax25_dev->values[AX25_VALUES_T1]); | ||
433 | ax25->t2 = msecs_to_jiffies(ax25_dev->values[AX25_VALUES_T2]); | ||
434 | ax25->t3 = msecs_to_jiffies(ax25_dev->values[AX25_VALUES_T3]); | ||
435 | ax25->n2 = ax25_dev->values[AX25_VALUES_N2]; | ||
436 | ax25->paclen = ax25_dev->values[AX25_VALUES_PACLEN]; | ||
437 | ax25->idle = msecs_to_jiffies(ax25_dev->values[AX25_VALUES_IDLE]); | ||
438 | ax25->backoff = ax25_dev->values[AX25_VALUES_BACKOFF]; | ||
439 | |||
440 | if (ax25_dev->values[AX25_VALUES_AXDEFMODE]) { | ||
441 | ax25->modulus = AX25_EMODULUS; | ||
442 | ax25->window = ax25_dev->values[AX25_VALUES_EWINDOW]; | ||
443 | } else { | ||
444 | ax25->modulus = AX25_MODULUS; | ||
445 | ax25->window = ax25_dev->values[AX25_VALUES_WINDOW]; | ||
446 | } | ||
447 | } | ||
448 | |||
427 | /* | 449 | /* |
428 | * Fill in a created AX.25 created control block with the default | 450 | * Fill in a created AX.25 created control block with the default |
429 | * values for a particular device. | 451 | * values for a particular device. |
@@ -433,39 +455,28 @@ void ax25_fillin_cb(ax25_cb *ax25, ax25_dev *ax25_dev) | |||
433 | ax25->ax25_dev = ax25_dev; | 455 | ax25->ax25_dev = ax25_dev; |
434 | 456 | ||
435 | if (ax25->ax25_dev != NULL) { | 457 | if (ax25->ax25_dev != NULL) { |
436 | ax25->rtt = ax25_dev->values[AX25_VALUES_T1] / 2; | 458 | ax25_fillin_cb_from_dev(ax25, ax25_dev); |
437 | ax25->t1 = ax25_dev->values[AX25_VALUES_T1]; | 459 | return; |
438 | ax25->t2 = ax25_dev->values[AX25_VALUES_T2]; | 460 | } |
439 | ax25->t3 = ax25_dev->values[AX25_VALUES_T3]; | 461 | |
440 | ax25->n2 = ax25_dev->values[AX25_VALUES_N2]; | 462 | /* |
441 | ax25->paclen = ax25_dev->values[AX25_VALUES_PACLEN]; | 463 | * No device, use kernel / AX.25 spec default values |
442 | ax25->idle = ax25_dev->values[AX25_VALUES_IDLE]; | 464 | */ |
443 | ax25->backoff = ax25_dev->values[AX25_VALUES_BACKOFF]; | 465 | ax25->rtt = msecs_to_jiffies(AX25_DEF_T1) / 2; |
444 | 466 | ax25->t1 = msecs_to_jiffies(AX25_DEF_T1); | |
445 | if (ax25_dev->values[AX25_VALUES_AXDEFMODE]) { | 467 | ax25->t2 = msecs_to_jiffies(AX25_DEF_T2); |
446 | ax25->modulus = AX25_EMODULUS; | 468 | ax25->t3 = msecs_to_jiffies(AX25_DEF_T3); |
447 | ax25->window = ax25_dev->values[AX25_VALUES_EWINDOW]; | 469 | ax25->n2 = AX25_DEF_N2; |
448 | } else { | 470 | ax25->paclen = AX25_DEF_PACLEN; |
449 | ax25->modulus = AX25_MODULUS; | 471 | ax25->idle = msecs_to_jiffies(AX25_DEF_IDLE); |
450 | ax25->window = ax25_dev->values[AX25_VALUES_WINDOW]; | 472 | ax25->backoff = AX25_DEF_BACKOFF; |
451 | } | 473 | |
474 | if (AX25_DEF_AXDEFMODE) { | ||
475 | ax25->modulus = AX25_EMODULUS; | ||
476 | ax25->window = AX25_DEF_EWINDOW; | ||
452 | } else { | 477 | } else { |
453 | ax25->rtt = AX25_DEF_T1 / 2; | 478 | ax25->modulus = AX25_MODULUS; |
454 | ax25->t1 = AX25_DEF_T1; | 479 | ax25->window = AX25_DEF_WINDOW; |
455 | ax25->t2 = AX25_DEF_T2; | ||
456 | ax25->t3 = AX25_DEF_T3; | ||
457 | ax25->n2 = AX25_DEF_N2; | ||
458 | ax25->paclen = AX25_DEF_PACLEN; | ||
459 | ax25->idle = AX25_DEF_IDLE; | ||
460 | ax25->backoff = AX25_DEF_BACKOFF; | ||
461 | |||
462 | if (AX25_DEF_AXDEFMODE) { | ||
463 | ax25->modulus = AX25_EMODULUS; | ||
464 | ax25->window = AX25_DEF_EWINDOW; | ||
465 | } else { | ||
466 | ax25->modulus = AX25_MODULUS; | ||
467 | ax25->window = AX25_DEF_WINDOW; | ||
468 | } | ||
469 | } | 480 | } |
470 | } | 481 | } |
471 | 482 | ||
@@ -1979,24 +1990,6 @@ static struct notifier_block ax25_dev_notifier = { | |||
1979 | .notifier_call =ax25_device_event, | 1990 | .notifier_call =ax25_device_event, |
1980 | }; | 1991 | }; |
1981 | 1992 | ||
1982 | EXPORT_SYMBOL(ax25_hard_header); | ||
1983 | EXPORT_SYMBOL(ax25_rebuild_header); | ||
1984 | EXPORT_SYMBOL(ax25_findbyuid); | ||
1985 | EXPORT_SYMBOL(ax25_find_cb); | ||
1986 | EXPORT_SYMBOL(ax25_linkfail_register); | ||
1987 | EXPORT_SYMBOL(ax25_linkfail_release); | ||
1988 | EXPORT_SYMBOL(ax25_listen_register); | ||
1989 | EXPORT_SYMBOL(ax25_listen_release); | ||
1990 | EXPORT_SYMBOL(ax25_protocol_register); | ||
1991 | EXPORT_SYMBOL(ax25_protocol_release); | ||
1992 | EXPORT_SYMBOL(ax25_send_frame); | ||
1993 | EXPORT_SYMBOL(ax25_uid_policy); | ||
1994 | EXPORT_SYMBOL(ax25cmp); | ||
1995 | EXPORT_SYMBOL(ax2asc); | ||
1996 | EXPORT_SYMBOL(asc2ax); | ||
1997 | EXPORT_SYMBOL(null_ax25_address); | ||
1998 | EXPORT_SYMBOL(ax25_display_timer); | ||
1999 | |||
2000 | static int __init ax25_init(void) | 1993 | static int __init ax25_init(void) |
2001 | { | 1994 | { |
2002 | int rc = proto_register(&ax25_proto, 0); | 1995 | int rc = proto_register(&ax25_proto, 0); |
diff --git a/net/ax25/ax25_addr.c b/net/ax25/ax25_addr.c index 0164a155b8c4..5f0896ad0042 100644 --- a/net/ax25/ax25_addr.c +++ b/net/ax25/ax25_addr.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/socket.h> | 11 | #include <linux/socket.h> |
12 | #include <linux/in.h> | 12 | #include <linux/in.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/module.h> | ||
14 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
15 | #include <linux/timer.h> | 16 | #include <linux/timer.h> |
16 | #include <linux/string.h> | 17 | #include <linux/string.h> |
@@ -33,6 +34,8 @@ | |||
33 | */ | 34 | */ |
34 | ax25_address null_ax25_address = {{0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00}}; | 35 | ax25_address null_ax25_address = {{0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00}}; |
35 | 36 | ||
37 | EXPORT_SYMBOL(null_ax25_address); | ||
38 | |||
36 | /* | 39 | /* |
37 | * ax25 -> ascii conversion | 40 | * ax25 -> ascii conversion |
38 | */ | 41 | */ |
@@ -64,6 +67,8 @@ char *ax2asc(char *buf, ax25_address *a) | |||
64 | 67 | ||
65 | } | 68 | } |
66 | 69 | ||
70 | EXPORT_SYMBOL(ax2asc); | ||
71 | |||
67 | /* | 72 | /* |
68 | * ascii -> ax25 conversion | 73 | * ascii -> ax25 conversion |
69 | */ | 74 | */ |
@@ -97,6 +102,8 @@ void asc2ax(ax25_address *addr, char *callsign) | |||
97 | addr->ax25_call[6] &= 0x1E; | 102 | addr->ax25_call[6] &= 0x1E; |
98 | } | 103 | } |
99 | 104 | ||
105 | EXPORT_SYMBOL(asc2ax); | ||
106 | |||
100 | /* | 107 | /* |
101 | * Compare two ax.25 addresses | 108 | * Compare two ax.25 addresses |
102 | */ | 109 | */ |
@@ -116,6 +123,8 @@ int ax25cmp(ax25_address *a, ax25_address *b) | |||
116 | return 2; /* Partial match */ | 123 | return 2; /* Partial match */ |
117 | } | 124 | } |
118 | 125 | ||
126 | EXPORT_SYMBOL(ax25cmp); | ||
127 | |||
119 | /* | 128 | /* |
120 | * Compare two AX.25 digipeater paths. | 129 | * Compare two AX.25 digipeater paths. |
121 | */ | 130 | */ |
diff --git a/net/ax25/ax25_ds_timer.c b/net/ax25/ax25_ds_timer.c index 061083efc1dc..5961459935eb 100644 --- a/net/ax25/ax25_ds_timer.c +++ b/net/ax25/ax25_ds_timer.c | |||
@@ -61,7 +61,8 @@ void ax25_ds_set_timer(ax25_dev *ax25_dev) | |||
61 | return; | 61 | return; |
62 | 62 | ||
63 | del_timer(&ax25_dev->dama.slave_timer); | 63 | del_timer(&ax25_dev->dama.slave_timer); |
64 | ax25_dev->dama.slave_timeout = ax25_dev->values[AX25_VALUES_DS_TIMEOUT] / 10; | 64 | ax25_dev->dama.slave_timeout = |
65 | msecs_to_jiffies(ax25_dev->values[AX25_VALUES_DS_TIMEOUT]) / 10; | ||
65 | ax25_ds_add_timer(ax25_dev); | 66 | ax25_ds_add_timer(ax25_dev); |
66 | } | 67 | } |
67 | 68 | ||
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c index d68aff100729..3bb152710b77 100644 --- a/net/ax25/ax25_iface.c +++ b/net/ax25/ax25_iface.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/socket.h> | 12 | #include <linux/socket.h> |
13 | #include <linux/in.h> | 13 | #include <linux/in.h> |
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/module.h> | ||
15 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
16 | #include <linux/spinlock.h> | 17 | #include <linux/spinlock.h> |
17 | #include <linux/timer.h> | 18 | #include <linux/timer.h> |
@@ -74,6 +75,8 @@ int ax25_protocol_register(unsigned int pid, | |||
74 | return 1; | 75 | return 1; |
75 | } | 76 | } |
76 | 77 | ||
78 | EXPORT_SYMBOL(ax25_protocol_register); | ||
79 | |||
77 | void ax25_protocol_release(unsigned int pid) | 80 | void ax25_protocol_release(unsigned int pid) |
78 | { | 81 | { |
79 | struct protocol_struct *s, *protocol; | 82 | struct protocol_struct *s, *protocol; |
@@ -106,6 +109,8 @@ void ax25_protocol_release(unsigned int pid) | |||
106 | write_unlock(&protocol_list_lock); | 109 | write_unlock(&protocol_list_lock); |
107 | } | 110 | } |
108 | 111 | ||
112 | EXPORT_SYMBOL(ax25_protocol_release); | ||
113 | |||
109 | int ax25_linkfail_register(void (*func)(ax25_cb *, int)) | 114 | int ax25_linkfail_register(void (*func)(ax25_cb *, int)) |
110 | { | 115 | { |
111 | struct linkfail_struct *linkfail; | 116 | struct linkfail_struct *linkfail; |
@@ -123,6 +128,8 @@ int ax25_linkfail_register(void (*func)(ax25_cb *, int)) | |||
123 | return 1; | 128 | return 1; |
124 | } | 129 | } |
125 | 130 | ||
131 | EXPORT_SYMBOL(ax25_linkfail_register); | ||
132 | |||
126 | void ax25_linkfail_release(void (*func)(ax25_cb *, int)) | 133 | void ax25_linkfail_release(void (*func)(ax25_cb *, int)) |
127 | { | 134 | { |
128 | struct linkfail_struct *s, *linkfail; | 135 | struct linkfail_struct *s, *linkfail; |
@@ -155,6 +162,8 @@ void ax25_linkfail_release(void (*func)(ax25_cb *, int)) | |||
155 | spin_unlock_bh(&linkfail_lock); | 162 | spin_unlock_bh(&linkfail_lock); |
156 | } | 163 | } |
157 | 164 | ||
165 | EXPORT_SYMBOL(ax25_linkfail_release); | ||
166 | |||
158 | int ax25_listen_register(ax25_address *callsign, struct net_device *dev) | 167 | int ax25_listen_register(ax25_address *callsign, struct net_device *dev) |
159 | { | 168 | { |
160 | struct listen_struct *listen; | 169 | struct listen_struct *listen; |
@@ -176,6 +185,8 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev) | |||
176 | return 1; | 185 | return 1; |
177 | } | 186 | } |
178 | 187 | ||
188 | EXPORT_SYMBOL(ax25_listen_register); | ||
189 | |||
179 | void ax25_listen_release(ax25_address *callsign, struct net_device *dev) | 190 | void ax25_listen_release(ax25_address *callsign, struct net_device *dev) |
180 | { | 191 | { |
181 | struct listen_struct *s, *listen; | 192 | struct listen_struct *s, *listen; |
@@ -208,6 +219,8 @@ void ax25_listen_release(ax25_address *callsign, struct net_device *dev) | |||
208 | spin_unlock_bh(&listen_lock); | 219 | spin_unlock_bh(&listen_lock); |
209 | } | 220 | } |
210 | 221 | ||
222 | EXPORT_SYMBOL(ax25_listen_release); | ||
223 | |||
211 | int (*ax25_protocol_function(unsigned int pid))(struct sk_buff *, ax25_cb *) | 224 | int (*ax25_protocol_function(unsigned int pid))(struct sk_buff *, ax25_cb *) |
212 | { | 225 | { |
213 | int (*res)(struct sk_buff *, ax25_cb *) = NULL; | 226 | int (*res)(struct sk_buff *, ax25_cb *) = NULL; |
diff --git a/net/ax25/ax25_ip.c b/net/ax25/ax25_ip.c index d643dac3eccc..a0b534f80f17 100644 --- a/net/ax25/ax25_ip.c +++ b/net/ax25/ax25_ip.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/socket.h> | 12 | #include <linux/socket.h> |
13 | #include <linux/in.h> | 13 | #include <linux/in.h> |
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/module.h> | ||
15 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
16 | #include <linux/timer.h> | 17 | #include <linux/timer.h> |
17 | #include <linux/string.h> | 18 | #include <linux/string.h> |
@@ -221,3 +222,5 @@ int ax25_rebuild_header(struct sk_buff *skb) | |||
221 | 222 | ||
222 | #endif | 223 | #endif |
223 | 224 | ||
225 | EXPORT_SYMBOL(ax25_hard_header); | ||
226 | EXPORT_SYMBOL(ax25_rebuild_header); | ||
diff --git a/net/ax25/ax25_out.c b/net/ax25/ax25_out.c index 5fc048dcd39a..5d99852b239c 100644 --- a/net/ax25/ax25_out.c +++ b/net/ax25/ax25_out.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/socket.h> | 14 | #include <linux/socket.h> |
15 | #include <linux/in.h> | 15 | #include <linux/in.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | ||
17 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
18 | #include <linux/timer.h> | 19 | #include <linux/timer.h> |
19 | #include <linux/string.h> | 20 | #include <linux/string.h> |
@@ -104,6 +105,8 @@ ax25_cb *ax25_send_frame(struct sk_buff *skb, int paclen, ax25_address *src, ax2 | |||
104 | return ax25; /* We had to create it */ | 105 | return ax25; /* We had to create it */ |
105 | } | 106 | } |
106 | 107 | ||
108 | EXPORT_SYMBOL(ax25_send_frame); | ||
109 | |||
107 | /* | 110 | /* |
108 | * All outgoing AX.25 I frames pass via this routine. Therefore this is | 111 | * All outgoing AX.25 I frames pass via this routine. Therefore this is |
109 | * where the fragmentation of frames takes place. If fragment is set to | 112 | * where the fragmentation of frames takes place. If fragment is set to |
diff --git a/net/ax25/ax25_route.c b/net/ax25/ax25_route.c index f04f8630fd28..5ac98250797b 100644 --- a/net/ax25/ax25_route.c +++ b/net/ax25/ax25_route.c | |||
@@ -360,7 +360,7 @@ struct file_operations ax25_route_fops = { | |||
360 | /* | 360 | /* |
361 | * Find AX.25 route | 361 | * Find AX.25 route |
362 | * | 362 | * |
363 | * Only routes with a refernce rout of zero can be destroyed. | 363 | * Only routes with a reference count of zero can be destroyed. |
364 | */ | 364 | */ |
365 | static ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev) | 365 | static ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev) |
366 | { | 366 | { |
diff --git a/net/ax25/ax25_timer.c b/net/ax25/ax25_timer.c index 7a6b50a14554..ec254057f212 100644 --- a/net/ax25/ax25_timer.c +++ b/net/ax25/ax25_timer.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/socket.h> | 18 | #include <linux/socket.h> |
19 | #include <linux/in.h> | 19 | #include <linux/in.h> |
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/module.h> | ||
21 | #include <linux/jiffies.h> | 22 | #include <linux/jiffies.h> |
22 | #include <linux/timer.h> | 23 | #include <linux/timer.h> |
23 | #include <linux/string.h> | 24 | #include <linux/string.h> |
@@ -137,6 +138,8 @@ unsigned long ax25_display_timer(struct timer_list *timer) | |||
137 | return timer->expires - jiffies; | 138 | return timer->expires - jiffies; |
138 | } | 139 | } |
139 | 140 | ||
141 | EXPORT_SYMBOL(ax25_display_timer); | ||
142 | |||
140 | static void ax25_heartbeat_expiry(unsigned long param) | 143 | static void ax25_heartbeat_expiry(unsigned long param) |
141 | { | 144 | { |
142 | int proto = AX25_PROTO_STD_SIMPLEX; | 145 | int proto = AX25_PROTO_STD_SIMPLEX; |
diff --git a/net/ax25/ax25_uid.c b/net/ax25/ax25_uid.c index b8b5854bce9a..5e9a81e8b214 100644 --- a/net/ax25/ax25_uid.c +++ b/net/ax25/ax25_uid.c | |||
@@ -49,6 +49,8 @@ static DEFINE_RWLOCK(ax25_uid_lock); | |||
49 | 49 | ||
50 | int ax25_uid_policy = 0; | 50 | int ax25_uid_policy = 0; |
51 | 51 | ||
52 | EXPORT_SYMBOL(ax25_uid_policy); | ||
53 | |||
52 | ax25_uid_assoc *ax25_findbyuid(uid_t uid) | 54 | ax25_uid_assoc *ax25_findbyuid(uid_t uid) |
53 | { | 55 | { |
54 | ax25_uid_assoc *ax25_uid, *res = NULL; | 56 | ax25_uid_assoc *ax25_uid, *res = NULL; |
@@ -67,6 +69,8 @@ ax25_uid_assoc *ax25_findbyuid(uid_t uid) | |||
67 | return res; | 69 | return res; |
68 | } | 70 | } |
69 | 71 | ||
72 | EXPORT_SYMBOL(ax25_findbyuid); | ||
73 | |||
70 | int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax) | 74 | int ax25_uid_ioctl(int cmd, struct sockaddr_ax25 *sax) |
71 | { | 75 | { |
72 | ax25_uid_assoc *ax25_uid; | 76 | ax25_uid_assoc *ax25_uid; |
diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c index 894a22558d9d..bdb64c36df12 100644 --- a/net/ax25/sysctl_net_ax25.c +++ b/net/ax25/sysctl_net_ax25.c | |||
@@ -18,14 +18,14 @@ static int min_backoff[1], max_backoff[] = {2}; | |||
18 | static int min_conmode[1], max_conmode[] = {2}; | 18 | static int min_conmode[1], max_conmode[] = {2}; |
19 | static int min_window[] = {1}, max_window[] = {7}; | 19 | static int min_window[] = {1}, max_window[] = {7}; |
20 | static int min_ewindow[] = {1}, max_ewindow[] = {63}; | 20 | static int min_ewindow[] = {1}, max_ewindow[] = {63}; |
21 | static int min_t1[] = {1}, max_t1[] = {30 * HZ}; | 21 | static int min_t1[] = {1}, max_t1[] = {30000}; |
22 | static int min_t2[] = {1}, max_t2[] = {20 * HZ}; | 22 | static int min_t2[] = {1}, max_t2[] = {20000}; |
23 | static int min_t3[1], max_t3[] = {3600 * HZ}; | 23 | static int min_t3[1], max_t3[] = {3600000}; |
24 | static int min_idle[1], max_idle[] = {65535 * HZ}; | 24 | static int min_idle[1], max_idle[] = {65535000}; |
25 | static int min_n2[] = {1}, max_n2[] = {31}; | 25 | static int min_n2[] = {1}, max_n2[] = {31}; |
26 | static int min_paclen[] = {1}, max_paclen[] = {512}; | 26 | static int min_paclen[] = {1}, max_paclen[] = {512}; |
27 | static int min_proto[1], max_proto[] = { AX25_PROTO_MAX }; | 27 | static int min_proto[1], max_proto[] = { AX25_PROTO_MAX }; |
28 | static int min_ds_timeout[1], max_ds_timeout[] = {65535 * HZ}; | 28 | static int min_ds_timeout[1], max_ds_timeout[] = {65535000}; |
29 | 29 | ||
30 | static struct ctl_table_header *ax25_table_header; | 30 | static struct ctl_table_header *ax25_table_header; |
31 | 31 | ||
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c index 2d24fb400e0c..56f3aa47e758 100644 --- a/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/netdevice.h> | 17 | #include <linux/netdevice.h> |
18 | #include <linux/skbuff.h> | 18 | #include <linux/skbuff.h> |
19 | #include <linux/if_vlan.h> | ||
19 | #include <linux/netfilter_bridge.h> | 20 | #include <linux/netfilter_bridge.h> |
20 | #include "br_private.h" | 21 | #include "br_private.h" |
21 | 22 | ||
@@ -29,10 +30,15 @@ static inline int should_deliver(const struct net_bridge_port *p, | |||
29 | return 1; | 30 | return 1; |
30 | } | 31 | } |
31 | 32 | ||
33 | static inline unsigned packet_length(const struct sk_buff *skb) | ||
34 | { | ||
35 | return skb->len - (skb->protocol == htons(ETH_P_8021Q) ? VLAN_HLEN : 0); | ||
36 | } | ||
37 | |||
32 | int br_dev_queue_push_xmit(struct sk_buff *skb) | 38 | int br_dev_queue_push_xmit(struct sk_buff *skb) |
33 | { | 39 | { |
34 | /* drop mtu oversized packets except tso */ | 40 | /* drop mtu oversized packets except tso */ |
35 | if (skb->len > skb->dev->mtu && !skb_shinfo(skb)->tso_size) | 41 | if (packet_length(skb) > skb->dev->mtu && !skb_shinfo(skb)->tso_size) |
36 | kfree_skb(skb); | 42 | kfree_skb(skb); |
37 | else { | 43 | else { |
38 | #ifdef CONFIG_BRIDGE_NETFILTER | 44 | #ifdef CONFIG_BRIDGE_NETFILTER |
diff --git a/net/decnet/dn_neigh.c b/net/decnet/dn_neigh.c index 7c8692c26bfe..66e230c3b328 100644 --- a/net/decnet/dn_neigh.c +++ b/net/decnet/dn_neigh.c | |||
@@ -493,7 +493,6 @@ struct elist_cb_state { | |||
493 | static void neigh_elist_cb(struct neighbour *neigh, void *_info) | 493 | static void neigh_elist_cb(struct neighbour *neigh, void *_info) |
494 | { | 494 | { |
495 | struct elist_cb_state *s = _info; | 495 | struct elist_cb_state *s = _info; |
496 | struct dn_dev *dn_db; | ||
497 | struct dn_neigh *dn; | 496 | struct dn_neigh *dn; |
498 | 497 | ||
499 | if (neigh->dev != s->dev) | 498 | if (neigh->dev != s->dev) |
@@ -503,10 +502,6 @@ static void neigh_elist_cb(struct neighbour *neigh, void *_info) | |||
503 | if (!(dn->flags & (DN_NDFLAG_R1|DN_NDFLAG_R2))) | 502 | if (!(dn->flags & (DN_NDFLAG_R1|DN_NDFLAG_R2))) |
504 | return; | 503 | return; |
505 | 504 | ||
506 | dn_db = (struct dn_dev *) s->dev->dn_ptr; | ||
507 | if (dn_db->parms.forwarding == 1 && (dn->flags & DN_NDFLAG_R2)) | ||
508 | return; | ||
509 | |||
510 | if (s->t == s->n) | 505 | if (s->t == s->n) |
511 | s->rs = dn_find_slot(s->ptr, s->n, dn->priority); | 506 | s->rs = dn_find_slot(s->ptr, s->n, dn->priority); |
512 | else | 507 | else |
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index dc206f1f914f..0a277453526b 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -1257,7 +1257,7 @@ out_unregister_udp_proto: | |||
1257 | goto out; | 1257 | goto out; |
1258 | } | 1258 | } |
1259 | 1259 | ||
1260 | module_init(inet_init); | 1260 | fs_initcall(inet_init); |
1261 | 1261 | ||
1262 | /* ------------------------------------------------------------------------ */ | 1262 | /* ------------------------------------------------------------------------ */ |
1263 | 1263 | ||
diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig index c60fd5c4ea1e..3d560dec63ab 100644 --- a/net/ipv4/netfilter/Kconfig +++ b/net/ipv4/netfilter/Kconfig | |||
@@ -345,7 +345,7 @@ config IP_NF_TARGET_LOG | |||
345 | To compile it as a module, choose M here. If unsure, say N. | 345 | To compile it as a module, choose M here. If unsure, say N. |
346 | 346 | ||
347 | config IP_NF_TARGET_ULOG | 347 | config IP_NF_TARGET_ULOG |
348 | tristate "ULOG target support (OBSOLETE)" | 348 | tristate "ULOG target support" |
349 | depends on IP_NF_IPTABLES | 349 | depends on IP_NF_IPTABLES |
350 | ---help--- | 350 | ---help--- |
351 | 351 | ||
diff --git a/net/ipv4/netfilter/ip_conntrack_helper_h323.c b/net/ipv4/netfilter/ip_conntrack_helper_h323.c index 2c2fb700d835..518f581d39ec 100644 --- a/net/ipv4/netfilter/ip_conntrack_helper_h323.c +++ b/net/ipv4/netfilter/ip_conntrack_helper_h323.c | |||
@@ -162,6 +162,8 @@ static int get_tpkt_data(struct sk_buff **pskb, struct ip_conntrack *ct, | |||
162 | 162 | ||
163 | /* Validate TPKT length */ | 163 | /* Validate TPKT length */ |
164 | tpktlen = tpkt[2] * 256 + tpkt[3]; | 164 | tpktlen = tpkt[2] * 256 + tpkt[3]; |
165 | if (tpktlen < 4) | ||
166 | goto clear_out; | ||
165 | if (tpktlen > tcpdatalen) { | 167 | if (tpktlen > tcpdatalen) { |
166 | if (tcpdatalen == 4) { /* Separate TPKT header */ | 168 | if (tcpdatalen == 4) { /* Separate TPKT header */ |
167 | /* Netmeeting sends TPKT header and data separately */ | 169 | /* Netmeeting sends TPKT header and data separately */ |
diff --git a/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c b/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c index 48078002e450..355a53a5b6cd 100644 --- a/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c +++ b/net/ipv4/netfilter/ip_conntrack_helper_h323_asn1.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * ip_conntrack_helper_h323_asn1.c - BER and PER decoding library for H.323 | 2 | * ip_conntrack_helper_h323_asn1.c - BER and PER decoding library for H.323 |
3 | * conntrack/NAT module. | 3 | * conntrack/NAT module. |
4 | * | 4 | * |
5 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@hotmail.com> | 5 | * Copyright (c) 2006 by Jing Min Zhao <zhaojingmin@users.sourceforge.net> |
6 | * | 6 | * |
7 | * This source code is licensed under General Public License version 2. | 7 | * This source code is licensed under General Public License version 2. |
8 | * | 8 | * |
@@ -703,6 +703,10 @@ int decode_choice(bitstr_t * bs, field_t * f, char *base, int level) | |||
703 | type = get_bits(bs, f->sz); | 703 | type = get_bits(bs, f->sz); |
704 | } | 704 | } |
705 | 705 | ||
706 | /* Write Type */ | ||
707 | if (base) | ||
708 | *(unsigned *) base = type; | ||
709 | |||
706 | /* Check Range */ | 710 | /* Check Range */ |
707 | if (type >= f->ub) { /* Newer version? */ | 711 | if (type >= f->ub) { /* Newer version? */ |
708 | BYTE_ALIGN(bs); | 712 | BYTE_ALIGN(bs); |
@@ -712,10 +716,6 @@ int decode_choice(bitstr_t * bs, field_t * f, char *base, int level) | |||
712 | return H323_ERROR_NONE; | 716 | return H323_ERROR_NONE; |
713 | } | 717 | } |
714 | 718 | ||
715 | /* Write Type */ | ||
716 | if (base) | ||
717 | *(unsigned *) base = type; | ||
718 | |||
719 | /* Transfer to son level */ | 719 | /* Transfer to son level */ |
720 | son = &f->fields[type]; | 720 | son = &f->fields[type]; |
721 | if (son->attr & STOP) { | 721 | if (son->attr & STOP) { |
diff --git a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c index 5259abd0fb42..0416073c5600 100644 --- a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c +++ b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c | |||
@@ -235,12 +235,15 @@ static int do_basic_checks(struct ip_conntrack *conntrack, | |||
235 | flag = 1; | 235 | flag = 1; |
236 | } | 236 | } |
237 | 237 | ||
238 | /* Cookie Ack/Echo chunks not the first OR | 238 | /* |
239 | Init / Init Ack / Shutdown compl chunks not the only chunks */ | 239 | * Cookie Ack/Echo chunks not the first OR |
240 | if ((sch->type == SCTP_CID_COOKIE_ACK | 240 | * Init / Init Ack / Shutdown compl chunks not the only chunks |
241 | * OR zero-length. | ||
242 | */ | ||
243 | if (((sch->type == SCTP_CID_COOKIE_ACK | ||
241 | || sch->type == SCTP_CID_COOKIE_ECHO | 244 | || sch->type == SCTP_CID_COOKIE_ECHO |
242 | || flag) | 245 | || flag) |
243 | && count !=0 ) { | 246 | && count !=0) || !sch->length) { |
244 | DEBUGP("Basic checks failed\n"); | 247 | DEBUGP("Basic checks failed\n"); |
245 | return 1; | 248 | return 1; |
246 | } | 249 | } |
diff --git a/net/ipv4/netfilter/ip_nat_standalone.c b/net/ipv4/netfilter/ip_nat_standalone.c index 8f760b28617e..67e676783da9 100644 --- a/net/ipv4/netfilter/ip_nat_standalone.c +++ b/net/ipv4/netfilter/ip_nat_standalone.c | |||
@@ -219,8 +219,10 @@ ip_nat_out(unsigned int hooknum, | |||
219 | const struct net_device *out, | 219 | const struct net_device *out, |
220 | int (*okfn)(struct sk_buff *)) | 220 | int (*okfn)(struct sk_buff *)) |
221 | { | 221 | { |
222 | #ifdef CONFIG_XFRM | ||
222 | struct ip_conntrack *ct; | 223 | struct ip_conntrack *ct; |
223 | enum ip_conntrack_info ctinfo; | 224 | enum ip_conntrack_info ctinfo; |
225 | #endif | ||
224 | unsigned int ret; | 226 | unsigned int ret; |
225 | 227 | ||
226 | /* root is playing with raw sockets. */ | 228 | /* root is playing with raw sockets. */ |
diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c index d25ac8ba6eba..cee3397ec277 100644 --- a/net/ipv4/netfilter/ip_tables.c +++ b/net/ipv4/netfilter/ip_tables.c | |||
@@ -956,15 +956,16 @@ struct compat_ipt_standard_target | |||
956 | compat_int_t verdict; | 956 | compat_int_t verdict; |
957 | }; | 957 | }; |
958 | 958 | ||
959 | #define IPT_ST_OFFSET (sizeof(struct ipt_standard_target) - \ | ||
960 | sizeof(struct compat_ipt_standard_target)) | ||
961 | |||
962 | struct compat_ipt_standard | 959 | struct compat_ipt_standard |
963 | { | 960 | { |
964 | struct compat_ipt_entry entry; | 961 | struct compat_ipt_entry entry; |
965 | struct compat_ipt_standard_target target; | 962 | struct compat_ipt_standard_target target; |
966 | }; | 963 | }; |
967 | 964 | ||
965 | #define IPT_ST_LEN XT_ALIGN(sizeof(struct ipt_standard_target)) | ||
966 | #define IPT_ST_COMPAT_LEN COMPAT_XT_ALIGN(sizeof(struct compat_ipt_standard_target)) | ||
967 | #define IPT_ST_OFFSET (IPT_ST_LEN - IPT_ST_COMPAT_LEN) | ||
968 | |||
968 | static int compat_ipt_standard_fn(void *target, | 969 | static int compat_ipt_standard_fn(void *target, |
969 | void **dstptr, int *size, int convert) | 970 | void **dstptr, int *size, int convert) |
970 | { | 971 | { |
@@ -975,35 +976,29 @@ static int compat_ipt_standard_fn(void *target, | |||
975 | ret = 0; | 976 | ret = 0; |
976 | switch (convert) { | 977 | switch (convert) { |
977 | case COMPAT_TO_USER: | 978 | case COMPAT_TO_USER: |
978 | pst = (struct ipt_standard_target *)target; | 979 | pst = target; |
979 | memcpy(&compat_st.target, &pst->target, | 980 | memcpy(&compat_st.target, &pst->target, |
980 | sizeof(struct ipt_entry_target)); | 981 | sizeof(compat_st.target)); |
981 | compat_st.verdict = pst->verdict; | 982 | compat_st.verdict = pst->verdict; |
982 | if (compat_st.verdict > 0) | 983 | if (compat_st.verdict > 0) |
983 | compat_st.verdict -= | 984 | compat_st.verdict -= |
984 | compat_calc_jump(compat_st.verdict); | 985 | compat_calc_jump(compat_st.verdict); |
985 | compat_st.target.u.user.target_size = | 986 | compat_st.target.u.user.target_size = IPT_ST_COMPAT_LEN; |
986 | sizeof(struct compat_ipt_standard_target); | 987 | if (copy_to_user(*dstptr, &compat_st, IPT_ST_COMPAT_LEN)) |
987 | if (__copy_to_user(*dstptr, &compat_st, | ||
988 | sizeof(struct compat_ipt_standard_target))) | ||
989 | ret = -EFAULT; | 988 | ret = -EFAULT; |
990 | *size -= IPT_ST_OFFSET; | 989 | *size -= IPT_ST_OFFSET; |
991 | *dstptr += sizeof(struct compat_ipt_standard_target); | 990 | *dstptr += IPT_ST_COMPAT_LEN; |
992 | break; | 991 | break; |
993 | case COMPAT_FROM_USER: | 992 | case COMPAT_FROM_USER: |
994 | pcompat_st = | 993 | pcompat_st = target; |
995 | (struct compat_ipt_standard_target *)target; | 994 | memcpy(&st.target, &pcompat_st->target, IPT_ST_COMPAT_LEN); |
996 | memcpy(&st.target, &pcompat_st->target, | ||
997 | sizeof(struct ipt_entry_target)); | ||
998 | st.verdict = pcompat_st->verdict; | 995 | st.verdict = pcompat_st->verdict; |
999 | if (st.verdict > 0) | 996 | if (st.verdict > 0) |
1000 | st.verdict += compat_calc_jump(st.verdict); | 997 | st.verdict += compat_calc_jump(st.verdict); |
1001 | st.target.u.user.target_size = | 998 | st.target.u.user.target_size = IPT_ST_LEN; |
1002 | sizeof(struct ipt_standard_target); | 999 | memcpy(*dstptr, &st, IPT_ST_LEN); |
1003 | memcpy(*dstptr, &st, | ||
1004 | sizeof(struct ipt_standard_target)); | ||
1005 | *size += IPT_ST_OFFSET; | 1000 | *size += IPT_ST_OFFSET; |
1006 | *dstptr += sizeof(struct ipt_standard_target); | 1001 | *dstptr += IPT_ST_LEN; |
1007 | break; | 1002 | break; |
1008 | case COMPAT_CALC_SIZE: | 1003 | case COMPAT_CALC_SIZE: |
1009 | *size += IPT_ST_OFFSET; | 1004 | *size += IPT_ST_OFFSET; |
@@ -1446,7 +1441,7 @@ static int compat_copy_entry_to_user(struct ipt_entry *e, | |||
1446 | ret = -EFAULT; | 1441 | ret = -EFAULT; |
1447 | origsize = *size; | 1442 | origsize = *size; |
1448 | ce = (struct compat_ipt_entry __user *)*dstptr; | 1443 | ce = (struct compat_ipt_entry __user *)*dstptr; |
1449 | if (__copy_to_user(ce, e, sizeof(struct ipt_entry))) | 1444 | if (copy_to_user(ce, e, sizeof(struct ipt_entry))) |
1450 | goto out; | 1445 | goto out; |
1451 | 1446 | ||
1452 | *dstptr += sizeof(struct compat_ipt_entry); | 1447 | *dstptr += sizeof(struct compat_ipt_entry); |
@@ -1464,9 +1459,9 @@ static int compat_copy_entry_to_user(struct ipt_entry *e, | |||
1464 | goto out; | 1459 | goto out; |
1465 | ret = -EFAULT; | 1460 | ret = -EFAULT; |
1466 | next_offset = e->next_offset - (origsize - *size); | 1461 | next_offset = e->next_offset - (origsize - *size); |
1467 | if (__put_user(target_offset, &ce->target_offset)) | 1462 | if (put_user(target_offset, &ce->target_offset)) |
1468 | goto out; | 1463 | goto out; |
1469 | if (__put_user(next_offset, &ce->next_offset)) | 1464 | if (put_user(next_offset, &ce->next_offset)) |
1470 | goto out; | 1465 | goto out; |
1471 | return 0; | 1466 | return 0; |
1472 | out: | 1467 | out: |
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 87f68e787d0c..e2b7b8055037 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -1468,6 +1468,7 @@ void tcp_close(struct sock *sk, long timeout) | |||
1468 | { | 1468 | { |
1469 | struct sk_buff *skb; | 1469 | struct sk_buff *skb; |
1470 | int data_was_unread = 0; | 1470 | int data_was_unread = 0; |
1471 | int state; | ||
1471 | 1472 | ||
1472 | lock_sock(sk); | 1473 | lock_sock(sk); |
1473 | sk->sk_shutdown = SHUTDOWN_MASK; | 1474 | sk->sk_shutdown = SHUTDOWN_MASK; |
@@ -1544,6 +1545,11 @@ void tcp_close(struct sock *sk, long timeout) | |||
1544 | sk_stream_wait_close(sk, timeout); | 1545 | sk_stream_wait_close(sk, timeout); |
1545 | 1546 | ||
1546 | adjudge_to_death: | 1547 | adjudge_to_death: |
1548 | state = sk->sk_state; | ||
1549 | sock_hold(sk); | ||
1550 | sock_orphan(sk); | ||
1551 | atomic_inc(sk->sk_prot->orphan_count); | ||
1552 | |||
1547 | /* It is the last release_sock in its life. It will remove backlog. */ | 1553 | /* It is the last release_sock in its life. It will remove backlog. */ |
1548 | release_sock(sk); | 1554 | release_sock(sk); |
1549 | 1555 | ||
@@ -1555,8 +1561,9 @@ adjudge_to_death: | |||
1555 | bh_lock_sock(sk); | 1561 | bh_lock_sock(sk); |
1556 | BUG_TRAP(!sock_owned_by_user(sk)); | 1562 | BUG_TRAP(!sock_owned_by_user(sk)); |
1557 | 1563 | ||
1558 | sock_hold(sk); | 1564 | /* Have we already been destroyed by a softirq or backlog? */ |
1559 | sock_orphan(sk); | 1565 | if (state != TCP_CLOSE && sk->sk_state == TCP_CLOSE) |
1566 | goto out; | ||
1560 | 1567 | ||
1561 | /* This is a (useful) BSD violating of the RFC. There is a | 1568 | /* This is a (useful) BSD violating of the RFC. There is a |
1562 | * problem with TCP as specified in that the other end could | 1569 | * problem with TCP as specified in that the other end could |
@@ -1584,7 +1591,6 @@ adjudge_to_death: | |||
1584 | if (tmo > TCP_TIMEWAIT_LEN) { | 1591 | if (tmo > TCP_TIMEWAIT_LEN) { |
1585 | inet_csk_reset_keepalive_timer(sk, tcp_fin_time(sk)); | 1592 | inet_csk_reset_keepalive_timer(sk, tcp_fin_time(sk)); |
1586 | } else { | 1593 | } else { |
1587 | atomic_inc(sk->sk_prot->orphan_count); | ||
1588 | tcp_time_wait(sk, TCP_FIN_WAIT2, tmo); | 1594 | tcp_time_wait(sk, TCP_FIN_WAIT2, tmo); |
1589 | goto out; | 1595 | goto out; |
1590 | } | 1596 | } |
@@ -1603,7 +1609,6 @@ adjudge_to_death: | |||
1603 | NET_INC_STATS_BH(LINUX_MIB_TCPABORTONMEMORY); | 1609 | NET_INC_STATS_BH(LINUX_MIB_TCPABORTONMEMORY); |
1604 | } | 1610 | } |
1605 | } | 1611 | } |
1606 | atomic_inc(sk->sk_prot->orphan_count); | ||
1607 | 1612 | ||
1608 | if (sk->sk_state == TCP_CLOSE) | 1613 | if (sk->sk_state == TCP_CLOSE) |
1609 | inet_csk_destroy_sock(sk); | 1614 | inet_csk_destroy_sock(sk); |
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index a28ae593b976..743016baa048 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -465,7 +465,7 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, | |||
465 | TCP_INC_STATS(TCP_MIB_OUTSEGS); | 465 | TCP_INC_STATS(TCP_MIB_OUTSEGS); |
466 | 466 | ||
467 | err = icsk->icsk_af_ops->queue_xmit(skb, 0); | 467 | err = icsk->icsk_af_ops->queue_xmit(skb, 0); |
468 | if (unlikely(err <= 0)) | 468 | if (likely(err <= 0)) |
469 | return err; | 469 | return err; |
470 | 470 | ||
471 | tcp_enter_cwr(sk); | 471 | tcp_enter_cwr(sk); |
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c index 32ad229b4fed..4ef8efaf6a67 100644 --- a/net/ipv4/xfrm4_output.c +++ b/net/ipv4/xfrm4_output.c | |||
@@ -62,7 +62,7 @@ static void xfrm4_encap(struct sk_buff *skb) | |||
62 | top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ? | 62 | top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ? |
63 | 0 : (iph->frag_off & htons(IP_DF)); | 63 | 0 : (iph->frag_off & htons(IP_DF)); |
64 | if (!top_iph->frag_off) | 64 | if (!top_iph->frag_off) |
65 | __ip_select_ident(top_iph, dst, 0); | 65 | __ip_select_ident(top_iph, dst->child, 0); |
66 | 66 | ||
67 | top_iph->ttl = dst_metric(dst->child, RTAX_HOPLIMIT); | 67 | top_iph->ttl = dst_metric(dst->child, RTAX_HOPLIMIT); |
68 | 68 | ||
diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c index 642b4b11464f..0a673038344f 100644 --- a/net/ipv6/netfilter/ip6_tables.c +++ b/net/ipv6/netfilter/ip6_tables.c | |||
@@ -288,19 +288,6 @@ ip6t_do_table(struct sk_buff **pskb, | |||
288 | table_base = (void *)private->entries[smp_processor_id()]; | 288 | table_base = (void *)private->entries[smp_processor_id()]; |
289 | e = get_entry(table_base, private->hook_entry[hook]); | 289 | e = get_entry(table_base, private->hook_entry[hook]); |
290 | 290 | ||
291 | #ifdef CONFIG_NETFILTER_DEBUG | ||
292 | /* Check noone else using our table */ | ||
293 | if (((struct ip6t_entry *)table_base)->comefrom != 0xdead57ac | ||
294 | && ((struct ip6t_entry *)table_base)->comefrom != 0xeeeeeeec) { | ||
295 | printk("ASSERT: CPU #%u, %s comefrom(%p) = %X\n", | ||
296 | smp_processor_id(), | ||
297 | table->name, | ||
298 | &((struct ip6t_entry *)table_base)->comefrom, | ||
299 | ((struct ip6t_entry *)table_base)->comefrom); | ||
300 | } | ||
301 | ((struct ip6t_entry *)table_base)->comefrom = 0x57acc001; | ||
302 | #endif | ||
303 | |||
304 | /* For return from builtin chain */ | 291 | /* For return from builtin chain */ |
305 | back = get_entry(table_base, private->underflow[hook]); | 292 | back = get_entry(table_base, private->underflow[hook]); |
306 | 293 | ||
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 79078747a646..0190e39096b9 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -317,7 +317,7 @@ static struct rt6_info *rt6_select(struct rt6_info **head, int oif, | |||
317 | __FUNCTION__, head, head ? *head : NULL, oif); | 317 | __FUNCTION__, head, head ? *head : NULL, oif); |
318 | 318 | ||
319 | for (rt = rt0, metric = rt0->rt6i_metric; | 319 | for (rt = rt0, metric = rt0->rt6i_metric; |
320 | rt && rt->rt6i_metric == metric; | 320 | rt && rt->rt6i_metric == metric && (!last || rt != rt0); |
321 | rt = rt->u.next) { | 321 | rt = rt->u.next) { |
322 | int m; | 322 | int m; |
323 | 323 | ||
@@ -343,9 +343,12 @@ static struct rt6_info *rt6_select(struct rt6_info **head, int oif, | |||
343 | (strict & RT6_SELECT_F_REACHABLE) && | 343 | (strict & RT6_SELECT_F_REACHABLE) && |
344 | last && last != rt0) { | 344 | last && last != rt0) { |
345 | /* no entries matched; do round-robin */ | 345 | /* no entries matched; do round-robin */ |
346 | static spinlock_t lock = SPIN_LOCK_UNLOCKED; | ||
347 | spin_lock(&lock); | ||
346 | *head = rt0->u.next; | 348 | *head = rt0->u.next; |
347 | rt0->u.next = last->u.next; | 349 | rt0->u.next = last->u.next; |
348 | last->u.next = rt0; | 350 | last->u.next = rt0; |
351 | spin_unlock(&lock); | ||
349 | } | 352 | } |
350 | 353 | ||
351 | RT6_TRACE("%s() => %p, score=%d\n", | 354 | RT6_TRACE("%s() => %p, score=%d\n", |
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index e581190fb6c3..f9b83f91371a 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c | |||
@@ -178,9 +178,6 @@ static struct { | |||
178 | /* allocated slab cache + modules which uses this slab cache */ | 178 | /* allocated slab cache + modules which uses this slab cache */ |
179 | int use; | 179 | int use; |
180 | 180 | ||
181 | /* Initialization */ | ||
182 | int (*init_conntrack)(struct nf_conn *, u_int32_t); | ||
183 | |||
184 | } nf_ct_cache[NF_CT_F_NUM]; | 181 | } nf_ct_cache[NF_CT_F_NUM]; |
185 | 182 | ||
186 | /* protect members of nf_ct_cache except of "use" */ | 183 | /* protect members of nf_ct_cache except of "use" */ |
@@ -208,10 +205,8 @@ nf_ct_proto_find_get(u_int16_t l3proto, u_int8_t protocol) | |||
208 | 205 | ||
209 | preempt_disable(); | 206 | preempt_disable(); |
210 | p = __nf_ct_proto_find(l3proto, protocol); | 207 | p = __nf_ct_proto_find(l3proto, protocol); |
211 | if (p) { | 208 | if (!try_module_get(p->me)) |
212 | if (!try_module_get(p->me)) | 209 | p = &nf_conntrack_generic_protocol; |
213 | p = &nf_conntrack_generic_protocol; | ||
214 | } | ||
215 | preempt_enable(); | 210 | preempt_enable(); |
216 | 211 | ||
217 | return p; | 212 | return p; |
@@ -229,10 +224,8 @@ nf_ct_l3proto_find_get(u_int16_t l3proto) | |||
229 | 224 | ||
230 | preempt_disable(); | 225 | preempt_disable(); |
231 | p = __nf_ct_l3proto_find(l3proto); | 226 | p = __nf_ct_l3proto_find(l3proto); |
232 | if (p) { | 227 | if (!try_module_get(p->me)) |
233 | if (!try_module_get(p->me)) | 228 | p = &nf_conntrack_generic_l3proto; |
234 | p = &nf_conntrack_generic_l3proto; | ||
235 | } | ||
236 | preempt_enable(); | 229 | preempt_enable(); |
237 | 230 | ||
238 | return p; | 231 | return p; |
diff --git a/net/netfilter/nf_conntrack_l3proto_generic.c b/net/netfilter/nf_conntrack_l3proto_generic.c index 7de4f06c63c5..3fc58e454d4e 100644 --- a/net/netfilter/nf_conntrack_l3proto_generic.c +++ b/net/netfilter/nf_conntrack_l3proto_generic.c | |||
@@ -94,5 +94,4 @@ struct nf_conntrack_l3proto nf_conntrack_generic_l3proto = { | |||
94 | .print_conntrack = generic_print_conntrack, | 94 | .print_conntrack = generic_print_conntrack, |
95 | .prepare = generic_prepare, | 95 | .prepare = generic_prepare, |
96 | .get_features = generic_get_features, | 96 | .get_features = generic_get_features, |
97 | .me = THIS_MODULE, | ||
98 | }; | 97 | }; |
diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c index 9cccc325b687..0c6da496cfa9 100644 --- a/net/netfilter/nf_conntrack_proto_sctp.c +++ b/net/netfilter/nf_conntrack_proto_sctp.c | |||
@@ -240,12 +240,15 @@ static int do_basic_checks(struct nf_conn *conntrack, | |||
240 | flag = 1; | 240 | flag = 1; |
241 | } | 241 | } |
242 | 242 | ||
243 | /* Cookie Ack/Echo chunks not the first OR | 243 | /* |
244 | Init / Init Ack / Shutdown compl chunks not the only chunks */ | 244 | * Cookie Ack/Echo chunks not the first OR |
245 | if ((sch->type == SCTP_CID_COOKIE_ACK | 245 | * Init / Init Ack / Shutdown compl chunks not the only chunks |
246 | * OR zero-length. | ||
247 | */ | ||
248 | if (((sch->type == SCTP_CID_COOKIE_ACK | ||
246 | || sch->type == SCTP_CID_COOKIE_ECHO | 249 | || sch->type == SCTP_CID_COOKIE_ECHO |
247 | || flag) | 250 | || flag) |
248 | && count !=0 ) { | 251 | && count !=0) || !sch->length) { |
249 | DEBUGP("Basic checks failed\n"); | 252 | DEBUGP("Basic checks failed\n"); |
250 | return 1; | 253 | return 1; |
251 | } | 254 | } |
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 00cf0a4f4d92..99293c63ff73 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c | |||
@@ -289,7 +289,7 @@ int xt_compat_match(void *match, void **dstptr, int *size, int convert) | |||
289 | case COMPAT_TO_USER: | 289 | case COMPAT_TO_USER: |
290 | pm = (struct xt_entry_match *)match; | 290 | pm = (struct xt_entry_match *)match; |
291 | msize = pm->u.user.match_size; | 291 | msize = pm->u.user.match_size; |
292 | if (__copy_to_user(*dstptr, pm, msize)) { | 292 | if (copy_to_user(*dstptr, pm, msize)) { |
293 | ret = -EFAULT; | 293 | ret = -EFAULT; |
294 | break; | 294 | break; |
295 | } | 295 | } |
@@ -366,7 +366,7 @@ int xt_compat_target(void *target, void **dstptr, int *size, int convert) | |||
366 | case COMPAT_TO_USER: | 366 | case COMPAT_TO_USER: |
367 | pt = (struct xt_entry_target *)target; | 367 | pt = (struct xt_entry_target *)target; |
368 | tsize = pt->u.user.target_size; | 368 | tsize = pt->u.user.target_size; |
369 | if (__copy_to_user(*dstptr, pt, tsize)) { | 369 | if (copy_to_user(*dstptr, pt, tsize)) { |
370 | ret = -EFAULT; | 370 | ret = -EFAULT; |
371 | break; | 371 | break; |
372 | } | 372 | } |
@@ -529,6 +529,7 @@ int xt_register_table(struct xt_table *table, | |||
529 | 529 | ||
530 | /* Simplifies replace_table code. */ | 530 | /* Simplifies replace_table code. */ |
531 | table->private = bootstrap; | 531 | table->private = bootstrap; |
532 | rwlock_init(&table->lock); | ||
532 | if (!xt_replace_table(table, 0, newinfo, &ret)) | 533 | if (!xt_replace_table(table, 0, newinfo, &ret)) |
533 | goto unlock; | 534 | goto unlock; |
534 | 535 | ||
@@ -538,7 +539,6 @@ int xt_register_table(struct xt_table *table, | |||
538 | /* save number of initial entries */ | 539 | /* save number of initial entries */ |
539 | private->initial_entries = private->number; | 540 | private->initial_entries = private->number; |
540 | 541 | ||
541 | rwlock_init(&table->lock); | ||
542 | list_prepend(&xt[table->af].tables, table); | 542 | list_prepend(&xt[table->af].tables, table); |
543 | 543 | ||
544 | ret = 0; | 544 | ret = 0; |
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 2a233ffcf618..3862e73d14d7 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -56,12 +56,12 @@ | |||
56 | #include <linux/mm.h> | 56 | #include <linux/mm.h> |
57 | #include <linux/types.h> | 57 | #include <linux/types.h> |
58 | #include <linux/audit.h> | 58 | #include <linux/audit.h> |
59 | #include <linux/selinux.h> | ||
59 | 60 | ||
60 | #include <net/sock.h> | 61 | #include <net/sock.h> |
61 | #include <net/scm.h> | 62 | #include <net/scm.h> |
62 | #include <net/netlink.h> | 63 | #include <net/netlink.h> |
63 | 64 | ||
64 | #define Nprintk(a...) | ||
65 | #define NLGRPSZ(x) (ALIGN(x, sizeof(unsigned long) * 8) / 8) | 65 | #define NLGRPSZ(x) (ALIGN(x, sizeof(unsigned long) * 8) / 8) |
66 | 66 | ||
67 | struct netlink_sock { | 67 | struct netlink_sock { |
@@ -1157,6 +1157,7 @@ static int netlink_sendmsg(struct kiocb *kiocb, struct socket *sock, | |||
1157 | NETLINK_CB(skb).dst_pid = dst_pid; | 1157 | NETLINK_CB(skb).dst_pid = dst_pid; |
1158 | NETLINK_CB(skb).dst_group = dst_group; | 1158 | NETLINK_CB(skb).dst_group = dst_group; |
1159 | NETLINK_CB(skb).loginuid = audit_get_loginuid(current->audit_context); | 1159 | NETLINK_CB(skb).loginuid = audit_get_loginuid(current->audit_context); |
1160 | selinux_get_task_sid(current, &(NETLINK_CB(skb).sid)); | ||
1160 | memcpy(NETLINK_CREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); | 1161 | memcpy(NETLINK_CREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); |
1161 | 1162 | ||
1162 | /* What can I do? Netlink is asynchronous, so that | 1163 | /* What can I do? Netlink is asynchronous, so that |
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index d44981f5a619..ecd288beca7c 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c | |||
@@ -425,11 +425,16 @@ static int nr_create(struct socket *sock, int protocol) | |||
425 | 425 | ||
426 | nr_init_timers(sk); | 426 | nr_init_timers(sk); |
427 | 427 | ||
428 | nr->t1 = sysctl_netrom_transport_timeout; | 428 | nr->t1 = |
429 | nr->t2 = sysctl_netrom_transport_acknowledge_delay; | 429 | msecs_to_jiffies(sysctl_netrom_transport_timeout); |
430 | nr->n2 = sysctl_netrom_transport_maximum_tries; | 430 | nr->t2 = |
431 | nr->t4 = sysctl_netrom_transport_busy_delay; | 431 | msecs_to_jiffies(sysctl_netrom_transport_acknowledge_delay); |
432 | nr->idle = sysctl_netrom_transport_no_activity_timeout; | 432 | nr->n2 = |
433 | msecs_to_jiffies(sysctl_netrom_transport_maximum_tries); | ||
434 | nr->t4 = | ||
435 | msecs_to_jiffies(sysctl_netrom_transport_busy_delay); | ||
436 | nr->idle = | ||
437 | msecs_to_jiffies(sysctl_netrom_transport_no_activity_timeout); | ||
433 | nr->window = sysctl_netrom_transport_requested_window_size; | 438 | nr->window = sysctl_netrom_transport_requested_window_size; |
434 | 439 | ||
435 | nr->bpqext = 1; | 440 | nr->bpqext = 1; |
diff --git a/net/netrom/nr_dev.c b/net/netrom/nr_dev.c index 509afddae569..621e5586ab03 100644 --- a/net/netrom/nr_dev.c +++ b/net/netrom/nr_dev.c | |||
@@ -185,7 +185,6 @@ static struct net_device_stats *nr_get_stats(struct net_device *dev) | |||
185 | 185 | ||
186 | void nr_setup(struct net_device *dev) | 186 | void nr_setup(struct net_device *dev) |
187 | { | 187 | { |
188 | SET_MODULE_OWNER(dev); | ||
189 | dev->mtu = NR_MAX_PACKET_SIZE; | 188 | dev->mtu = NR_MAX_PACKET_SIZE; |
190 | dev->hard_start_xmit = nr_xmit; | 189 | dev->hard_start_xmit = nr_xmit; |
191 | dev->open = nr_open; | 190 | dev->open = nr_open; |
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c index ea65396d1619..ef4538ac84f0 100644 --- a/net/rose/af_rose.c +++ b/net/rose/af_rose.c | |||
@@ -518,11 +518,11 @@ static int rose_create(struct socket *sock, int protocol) | |||
518 | init_timer(&rose->timer); | 518 | init_timer(&rose->timer); |
519 | init_timer(&rose->idletimer); | 519 | init_timer(&rose->idletimer); |
520 | 520 | ||
521 | rose->t1 = sysctl_rose_call_request_timeout; | 521 | rose->t1 = msecs_to_jiffies(sysctl_rose_call_request_timeout); |
522 | rose->t2 = sysctl_rose_reset_request_timeout; | 522 | rose->t2 = msecs_to_jiffies(sysctl_rose_reset_request_timeout); |
523 | rose->t3 = sysctl_rose_clear_request_timeout; | 523 | rose->t3 = msecs_to_jiffies(sysctl_rose_clear_request_timeout); |
524 | rose->hb = sysctl_rose_ack_hold_back_timeout; | 524 | rose->hb = msecs_to_jiffies(sysctl_rose_ack_hold_back_timeout); |
525 | rose->idle = sysctl_rose_no_activity_timeout; | 525 | rose->idle = msecs_to_jiffies(sysctl_rose_no_activity_timeout); |
526 | 526 | ||
527 | rose->state = ROSE_STATE_0; | 527 | rose->state = ROSE_STATE_0; |
528 | 528 | ||
diff --git a/net/rose/rose_dev.c b/net/rose/rose_dev.c index d297af737d10..2a1bf8e119e5 100644 --- a/net/rose/rose_dev.c +++ b/net/rose/rose_dev.c | |||
@@ -135,7 +135,6 @@ static struct net_device_stats *rose_get_stats(struct net_device *dev) | |||
135 | 135 | ||
136 | void rose_setup(struct net_device *dev) | 136 | void rose_setup(struct net_device *dev) |
137 | { | 137 | { |
138 | SET_MODULE_OWNER(dev); | ||
139 | dev->mtu = ROSE_MAX_PACKET_SIZE - 2; | 138 | dev->mtu = ROSE_MAX_PACKET_SIZE - 2; |
140 | dev->hard_start_xmit = rose_xmit; | 139 | dev->hard_start_xmit = rose_xmit; |
141 | dev->open = rose_open; | 140 | dev->open = rose_open; |
diff --git a/net/rose/rose_link.c b/net/rose/rose_link.c index 09e9e9d04d92..bd86a63960ce 100644 --- a/net/rose/rose_link.c +++ b/net/rose/rose_link.c | |||
@@ -40,7 +40,8 @@ void rose_start_ftimer(struct rose_neigh *neigh) | |||
40 | 40 | ||
41 | neigh->ftimer.data = (unsigned long)neigh; | 41 | neigh->ftimer.data = (unsigned long)neigh; |
42 | neigh->ftimer.function = &rose_ftimer_expiry; | 42 | neigh->ftimer.function = &rose_ftimer_expiry; |
43 | neigh->ftimer.expires = jiffies + sysctl_rose_link_fail_timeout; | 43 | neigh->ftimer.expires = |
44 | jiffies + msecs_to_jiffies(sysctl_rose_link_fail_timeout); | ||
44 | 45 | ||
45 | add_timer(&neigh->ftimer); | 46 | add_timer(&neigh->ftimer); |
46 | } | 47 | } |
@@ -51,7 +52,8 @@ static void rose_start_t0timer(struct rose_neigh *neigh) | |||
51 | 52 | ||
52 | neigh->t0timer.data = (unsigned long)neigh; | 53 | neigh->t0timer.data = (unsigned long)neigh; |
53 | neigh->t0timer.function = &rose_t0timer_expiry; | 54 | neigh->t0timer.function = &rose_t0timer_expiry; |
54 | neigh->t0timer.expires = jiffies + sysctl_rose_restart_request_timeout; | 55 | neigh->t0timer.expires = |
56 | jiffies + msecs_to_jiffies(sysctl_rose_restart_request_timeout); | ||
55 | 57 | ||
56 | add_timer(&neigh->t0timer); | 58 | add_timer(&neigh->t0timer); |
57 | } | 59 | } |
diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c index 8631b65a7312..a22542fa1bc8 100644 --- a/net/rose/rose_route.c +++ b/net/rose/rose_route.c | |||
@@ -48,8 +48,6 @@ static DEFINE_SPINLOCK(rose_route_list_lock); | |||
48 | 48 | ||
49 | struct rose_neigh *rose_loopback_neigh; | 49 | struct rose_neigh *rose_loopback_neigh; |
50 | 50 | ||
51 | static void rose_remove_neigh(struct rose_neigh *); | ||
52 | |||
53 | /* | 51 | /* |
54 | * Add a new route to a node, and in the process add the node and the | 52 | * Add a new route to a node, and in the process add the node and the |
55 | * neighbour if it is new. | 53 | * neighbour if it is new. |
@@ -235,11 +233,8 @@ static void rose_remove_neigh(struct rose_neigh *rose_neigh) | |||
235 | 233 | ||
236 | skb_queue_purge(&rose_neigh->queue); | 234 | skb_queue_purge(&rose_neigh->queue); |
237 | 235 | ||
238 | spin_lock_bh(&rose_neigh_list_lock); | ||
239 | |||
240 | if ((s = rose_neigh_list) == rose_neigh) { | 236 | if ((s = rose_neigh_list) == rose_neigh) { |
241 | rose_neigh_list = rose_neigh->next; | 237 | rose_neigh_list = rose_neigh->next; |
242 | spin_unlock_bh(&rose_neigh_list_lock); | ||
243 | kfree(rose_neigh->digipeat); | 238 | kfree(rose_neigh->digipeat); |
244 | kfree(rose_neigh); | 239 | kfree(rose_neigh); |
245 | return; | 240 | return; |
@@ -248,7 +243,6 @@ static void rose_remove_neigh(struct rose_neigh *rose_neigh) | |||
248 | while (s != NULL && s->next != NULL) { | 243 | while (s != NULL && s->next != NULL) { |
249 | if (s->next == rose_neigh) { | 244 | if (s->next == rose_neigh) { |
250 | s->next = rose_neigh->next; | 245 | s->next = rose_neigh->next; |
251 | spin_unlock_bh(&rose_neigh_list_lock); | ||
252 | kfree(rose_neigh->digipeat); | 246 | kfree(rose_neigh->digipeat); |
253 | kfree(rose_neigh); | 247 | kfree(rose_neigh); |
254 | return; | 248 | return; |
@@ -256,7 +250,6 @@ static void rose_remove_neigh(struct rose_neigh *rose_neigh) | |||
256 | 250 | ||
257 | s = s->next; | 251 | s = s->next; |
258 | } | 252 | } |
259 | spin_unlock_bh(&rose_neigh_list_lock); | ||
260 | } | 253 | } |
261 | 254 | ||
262 | /* | 255 | /* |
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c index 6056d20ef429..37640c6fc014 100644 --- a/net/sched/act_ipt.c +++ b/net/sched/act_ipt.c | |||
@@ -69,6 +69,11 @@ ipt_init_target(struct ipt_entry_target *t, char *table, unsigned int hook) | |||
69 | DPRINTK("ipt_init_target: found %s\n", target->name); | 69 | DPRINTK("ipt_init_target: found %s\n", target->name); |
70 | t->u.kernel.target = target; | 70 | t->u.kernel.target = target; |
71 | 71 | ||
72 | ret = xt_check_target(target, AF_INET, t->u.target_size - sizeof(*t), | ||
73 | table, hook, 0, 0); | ||
74 | if (ret) | ||
75 | return ret; | ||
76 | |||
72 | if (t->u.kernel.target->checkentry | 77 | if (t->u.kernel.target->checkentry |
73 | && !t->u.kernel.target->checkentry(table, NULL, | 78 | && !t->u.kernel.target->checkentry(table, NULL, |
74 | t->u.kernel.target, t->data, | 79 | t->u.kernel.target, t->data, |
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index 7228d30512c7..5a4a4d0ae502 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c | |||
@@ -167,7 +167,7 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch) | |||
167 | if (count == 0) { | 167 | if (count == 0) { |
168 | sch->qstats.drops++; | 168 | sch->qstats.drops++; |
169 | kfree_skb(skb); | 169 | kfree_skb(skb); |
170 | return NET_XMIT_DROP; | 170 | return NET_XMIT_BYPASS; |
171 | } | 171 | } |
172 | 172 | ||
173 | /* | 173 | /* |
diff --git a/net/socket.c b/net/socket.c index 0ce12dfc7a71..02948b622bd2 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -267,6 +267,8 @@ int move_addr_to_user(void *kaddr, int klen, void __user *uaddr, int __user *ule | |||
267 | return -EINVAL; | 267 | return -EINVAL; |
268 | if(len) | 268 | if(len) |
269 | { | 269 | { |
270 | if (audit_sockaddr(klen, kaddr)) | ||
271 | return -ENOMEM; | ||
270 | if(copy_to_user(uaddr,kaddr,len)) | 272 | if(copy_to_user(uaddr,kaddr,len)) |
271 | return -EFAULT; | 273 | return -EFAULT; |
272 | } | 274 | } |
diff --git a/net/x25/x25_timer.c b/net/x25/x25_timer.c index 0a92e1da3922..71ff3088f6fe 100644 --- a/net/x25/x25_timer.c +++ b/net/x25/x25_timer.c | |||
@@ -114,8 +114,9 @@ static void x25_heartbeat_expiry(unsigned long param) | |||
114 | if (sock_flag(sk, SOCK_DESTROY) || | 114 | if (sock_flag(sk, SOCK_DESTROY) || |
115 | (sk->sk_state == TCP_LISTEN && | 115 | (sk->sk_state == TCP_LISTEN && |
116 | sock_flag(sk, SOCK_DEAD))) { | 116 | sock_flag(sk, SOCK_DEAD))) { |
117 | bh_unlock_sock(sk); | ||
117 | x25_destroy_socket(sk); | 118 | x25_destroy_socket(sk); |
118 | goto unlock; | 119 | return; |
119 | } | 120 | } |
120 | break; | 121 | break; |
121 | 122 | ||
@@ -128,7 +129,6 @@ static void x25_heartbeat_expiry(unsigned long param) | |||
128 | } | 129 | } |
129 | restart_heartbeat: | 130 | restart_heartbeat: |
130 | x25_start_heartbeat(sk); | 131 | x25_start_heartbeat(sk); |
131 | unlock: | ||
132 | bh_unlock_sock(sk); | 132 | bh_unlock_sock(sk); |
133 | } | 133 | } |
134 | 134 | ||
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index c3725fe2a8fb..b469c8b54613 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -57,12 +57,12 @@ int xfrm_register_type(struct xfrm_type *type, unsigned short family) | |||
57 | return -EAFNOSUPPORT; | 57 | return -EAFNOSUPPORT; |
58 | typemap = afinfo->type_map; | 58 | typemap = afinfo->type_map; |
59 | 59 | ||
60 | write_lock(&typemap->lock); | 60 | write_lock_bh(&typemap->lock); |
61 | if (likely(typemap->map[type->proto] == NULL)) | 61 | if (likely(typemap->map[type->proto] == NULL)) |
62 | typemap->map[type->proto] = type; | 62 | typemap->map[type->proto] = type; |
63 | else | 63 | else |
64 | err = -EEXIST; | 64 | err = -EEXIST; |
65 | write_unlock(&typemap->lock); | 65 | write_unlock_bh(&typemap->lock); |
66 | xfrm_policy_put_afinfo(afinfo); | 66 | xfrm_policy_put_afinfo(afinfo); |
67 | return err; | 67 | return err; |
68 | } | 68 | } |
@@ -78,12 +78,12 @@ int xfrm_unregister_type(struct xfrm_type *type, unsigned short family) | |||
78 | return -EAFNOSUPPORT; | 78 | return -EAFNOSUPPORT; |
79 | typemap = afinfo->type_map; | 79 | typemap = afinfo->type_map; |
80 | 80 | ||
81 | write_lock(&typemap->lock); | 81 | write_lock_bh(&typemap->lock); |
82 | if (unlikely(typemap->map[type->proto] != type)) | 82 | if (unlikely(typemap->map[type->proto] != type)) |
83 | err = -ENOENT; | 83 | err = -ENOENT; |
84 | else | 84 | else |
85 | typemap->map[type->proto] = NULL; | 85 | typemap->map[type->proto] = NULL; |
86 | write_unlock(&typemap->lock); | 86 | write_unlock_bh(&typemap->lock); |
87 | xfrm_policy_put_afinfo(afinfo); | 87 | xfrm_policy_put_afinfo(afinfo); |
88 | return err; | 88 | return err; |
89 | } | 89 | } |
@@ -1251,7 +1251,7 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo) | |||
1251 | return -EINVAL; | 1251 | return -EINVAL; |
1252 | if (unlikely(afinfo->family >= NPROTO)) | 1252 | if (unlikely(afinfo->family >= NPROTO)) |
1253 | return -EAFNOSUPPORT; | 1253 | return -EAFNOSUPPORT; |
1254 | write_lock(&xfrm_policy_afinfo_lock); | 1254 | write_lock_bh(&xfrm_policy_afinfo_lock); |
1255 | if (unlikely(xfrm_policy_afinfo[afinfo->family] != NULL)) | 1255 | if (unlikely(xfrm_policy_afinfo[afinfo->family] != NULL)) |
1256 | err = -ENOBUFS; | 1256 | err = -ENOBUFS; |
1257 | else { | 1257 | else { |
@@ -1268,7 +1268,7 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo) | |||
1268 | afinfo->garbage_collect = __xfrm_garbage_collect; | 1268 | afinfo->garbage_collect = __xfrm_garbage_collect; |
1269 | xfrm_policy_afinfo[afinfo->family] = afinfo; | 1269 | xfrm_policy_afinfo[afinfo->family] = afinfo; |
1270 | } | 1270 | } |
1271 | write_unlock(&xfrm_policy_afinfo_lock); | 1271 | write_unlock_bh(&xfrm_policy_afinfo_lock); |
1272 | return err; | 1272 | return err; |
1273 | } | 1273 | } |
1274 | EXPORT_SYMBOL(xfrm_policy_register_afinfo); | 1274 | EXPORT_SYMBOL(xfrm_policy_register_afinfo); |
@@ -1280,7 +1280,7 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo) | |||
1280 | return -EINVAL; | 1280 | return -EINVAL; |
1281 | if (unlikely(afinfo->family >= NPROTO)) | 1281 | if (unlikely(afinfo->family >= NPROTO)) |
1282 | return -EAFNOSUPPORT; | 1282 | return -EAFNOSUPPORT; |
1283 | write_lock(&xfrm_policy_afinfo_lock); | 1283 | write_lock_bh(&xfrm_policy_afinfo_lock); |
1284 | if (likely(xfrm_policy_afinfo[afinfo->family] != NULL)) { | 1284 | if (likely(xfrm_policy_afinfo[afinfo->family] != NULL)) { |
1285 | if (unlikely(xfrm_policy_afinfo[afinfo->family] != afinfo)) | 1285 | if (unlikely(xfrm_policy_afinfo[afinfo->family] != afinfo)) |
1286 | err = -EINVAL; | 1286 | err = -EINVAL; |
@@ -1294,7 +1294,7 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo) | |||
1294 | afinfo->garbage_collect = NULL; | 1294 | afinfo->garbage_collect = NULL; |
1295 | } | 1295 | } |
1296 | } | 1296 | } |
1297 | write_unlock(&xfrm_policy_afinfo_lock); | 1297 | write_unlock_bh(&xfrm_policy_afinfo_lock); |
1298 | return err; | 1298 | return err; |
1299 | } | 1299 | } |
1300 | EXPORT_SYMBOL(xfrm_policy_unregister_afinfo); | 1300 | EXPORT_SYMBOL(xfrm_policy_unregister_afinfo); |
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 3dc3e1f3b7aa..93a2f36ad3db 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c | |||
@@ -1061,7 +1061,7 @@ int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo) | |||
1061 | return -EINVAL; | 1061 | return -EINVAL; |
1062 | if (unlikely(afinfo->family >= NPROTO)) | 1062 | if (unlikely(afinfo->family >= NPROTO)) |
1063 | return -EAFNOSUPPORT; | 1063 | return -EAFNOSUPPORT; |
1064 | write_lock(&xfrm_state_afinfo_lock); | 1064 | write_lock_bh(&xfrm_state_afinfo_lock); |
1065 | if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL)) | 1065 | if (unlikely(xfrm_state_afinfo[afinfo->family] != NULL)) |
1066 | err = -ENOBUFS; | 1066 | err = -ENOBUFS; |
1067 | else { | 1067 | else { |
@@ -1069,7 +1069,7 @@ int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo) | |||
1069 | afinfo->state_byspi = xfrm_state_byspi; | 1069 | afinfo->state_byspi = xfrm_state_byspi; |
1070 | xfrm_state_afinfo[afinfo->family] = afinfo; | 1070 | xfrm_state_afinfo[afinfo->family] = afinfo; |
1071 | } | 1071 | } |
1072 | write_unlock(&xfrm_state_afinfo_lock); | 1072 | write_unlock_bh(&xfrm_state_afinfo_lock); |
1073 | return err; | 1073 | return err; |
1074 | } | 1074 | } |
1075 | EXPORT_SYMBOL(xfrm_state_register_afinfo); | 1075 | EXPORT_SYMBOL(xfrm_state_register_afinfo); |
@@ -1081,7 +1081,7 @@ int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo) | |||
1081 | return -EINVAL; | 1081 | return -EINVAL; |
1082 | if (unlikely(afinfo->family >= NPROTO)) | 1082 | if (unlikely(afinfo->family >= NPROTO)) |
1083 | return -EAFNOSUPPORT; | 1083 | return -EAFNOSUPPORT; |
1084 | write_lock(&xfrm_state_afinfo_lock); | 1084 | write_lock_bh(&xfrm_state_afinfo_lock); |
1085 | if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) { | 1085 | if (likely(xfrm_state_afinfo[afinfo->family] != NULL)) { |
1086 | if (unlikely(xfrm_state_afinfo[afinfo->family] != afinfo)) | 1086 | if (unlikely(xfrm_state_afinfo[afinfo->family] != afinfo)) |
1087 | err = -EINVAL; | 1087 | err = -EINVAL; |
@@ -1091,7 +1091,7 @@ int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo) | |||
1091 | afinfo->state_bydst = NULL; | 1091 | afinfo->state_bydst = NULL; |
1092 | } | 1092 | } |
1093 | } | 1093 | } |
1094 | write_unlock(&xfrm_state_afinfo_lock); | 1094 | write_unlock_bh(&xfrm_state_afinfo_lock); |
1095 | return err; | 1095 | return err; |
1096 | } | 1096 | } |
1097 | EXPORT_SYMBOL(xfrm_state_unregister_afinfo); | 1097 | EXPORT_SYMBOL(xfrm_state_unregister_afinfo); |
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 84e21201f3c0..37f67c23e11b 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c | |||
@@ -374,10 +374,10 @@ static void do_input(char *alias, | |||
374 | kernel_ulong_t *arr, unsigned int min, unsigned int max) | 374 | kernel_ulong_t *arr, unsigned int min, unsigned int max) |
375 | { | 375 | { |
376 | unsigned int i; | 376 | unsigned int i; |
377 | for (i = min; i < max; i++) { | 377 | |
378 | if (arr[i/BITS_PER_LONG] & (1 << (i%BITS_PER_LONG))) | 378 | for (i = min; i < max; i++) |
379 | sprintf(alias+strlen(alias), "%X,*", i); | 379 | if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG))) |
380 | } | 380 | sprintf(alias + strlen(alias), "%X,*", i); |
381 | } | 381 | } |
382 | 382 | ||
383 | /* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */ | 383 | /* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */ |
@@ -386,39 +386,37 @@ static int do_input_entry(const char *filename, struct input_device_id *id, | |||
386 | { | 386 | { |
387 | sprintf(alias, "input:"); | 387 | sprintf(alias, "input:"); |
388 | 388 | ||
389 | ADD(alias, "b", id->flags&INPUT_DEVICE_ID_MATCH_BUS, id->id.bustype); | 389 | ADD(alias, "b", id->flags & INPUT_DEVICE_ID_MATCH_BUS, id->bustype); |
390 | ADD(alias, "v", id->flags&INPUT_DEVICE_ID_MATCH_VENDOR, id->id.vendor); | 390 | ADD(alias, "v", id->flags & INPUT_DEVICE_ID_MATCH_VENDOR, id->vendor); |
391 | ADD(alias, "p", id->flags&INPUT_DEVICE_ID_MATCH_PRODUCT, | 391 | ADD(alias, "p", id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT, id->product); |
392 | id->id.product); | 392 | ADD(alias, "e", id->flags & INPUT_DEVICE_ID_MATCH_VERSION, id->version); |
393 | ADD(alias, "e", id->flags&INPUT_DEVICE_ID_MATCH_VERSION, | ||
394 | id->id.version); | ||
395 | 393 | ||
396 | sprintf(alias + strlen(alias), "-e*"); | 394 | sprintf(alias + strlen(alias), "-e*"); |
397 | if (id->flags&INPUT_DEVICE_ID_MATCH_EVBIT) | 395 | if (id->flags & INPUT_DEVICE_ID_MATCH_EVBIT) |
398 | do_input(alias, id->evbit, 0, EV_MAX); | 396 | do_input(alias, id->evbit, 0, EV_MAX); |
399 | sprintf(alias + strlen(alias), "k*"); | 397 | sprintf(alias + strlen(alias), "k*"); |
400 | if (id->flags&INPUT_DEVICE_ID_MATCH_KEYBIT) | 398 | if (id->flags & INPUT_DEVICE_ID_MATCH_KEYBIT) |
401 | do_input(alias, id->keybit, KEY_MIN_INTERESTING, KEY_MAX); | 399 | do_input(alias, id->keybit, KEY_MIN_INTERESTING, KEY_MAX); |
402 | sprintf(alias + strlen(alias), "r*"); | 400 | sprintf(alias + strlen(alias), "r*"); |
403 | if (id->flags&INPUT_DEVICE_ID_MATCH_RELBIT) | 401 | if (id->flags & INPUT_DEVICE_ID_MATCH_RELBIT) |
404 | do_input(alias, id->relbit, 0, REL_MAX); | 402 | do_input(alias, id->relbit, 0, REL_MAX); |
405 | sprintf(alias + strlen(alias), "a*"); | 403 | sprintf(alias + strlen(alias), "a*"); |
406 | if (id->flags&INPUT_DEVICE_ID_MATCH_ABSBIT) | 404 | if (id->flags & INPUT_DEVICE_ID_MATCH_ABSBIT) |
407 | do_input(alias, id->absbit, 0, ABS_MAX); | 405 | do_input(alias, id->absbit, 0, ABS_MAX); |
408 | sprintf(alias + strlen(alias), "m*"); | 406 | sprintf(alias + strlen(alias), "m*"); |
409 | if (id->flags&INPUT_DEVICE_ID_MATCH_MSCIT) | 407 | if (id->flags & INPUT_DEVICE_ID_MATCH_MSCIT) |
410 | do_input(alias, id->mscbit, 0, MSC_MAX); | 408 | do_input(alias, id->mscbit, 0, MSC_MAX); |
411 | sprintf(alias + strlen(alias), "l*"); | 409 | sprintf(alias + strlen(alias), "l*"); |
412 | if (id->flags&INPUT_DEVICE_ID_MATCH_LEDBIT) | 410 | if (id->flags & INPUT_DEVICE_ID_MATCH_LEDBIT) |
413 | do_input(alias, id->ledbit, 0, LED_MAX); | 411 | do_input(alias, id->ledbit, 0, LED_MAX); |
414 | sprintf(alias + strlen(alias), "s*"); | 412 | sprintf(alias + strlen(alias), "s*"); |
415 | if (id->flags&INPUT_DEVICE_ID_MATCH_SNDBIT) | 413 | if (id->flags & INPUT_DEVICE_ID_MATCH_SNDBIT) |
416 | do_input(alias, id->sndbit, 0, SND_MAX); | 414 | do_input(alias, id->sndbit, 0, SND_MAX); |
417 | sprintf(alias + strlen(alias), "f*"); | 415 | sprintf(alias + strlen(alias), "f*"); |
418 | if (id->flags&INPUT_DEVICE_ID_MATCH_FFBIT) | 416 | if (id->flags & INPUT_DEVICE_ID_MATCH_FFBIT) |
419 | do_input(alias, id->ffbit, 0, FF_MAX); | 417 | do_input(alias, id->ffbit, 0, FF_MAX); |
420 | sprintf(alias + strlen(alias), "w*"); | 418 | sprintf(alias + strlen(alias), "w*"); |
421 | if (id->flags&INPUT_DEVICE_ID_MATCH_SWBIT) | 419 | if (id->flags & INPUT_DEVICE_ID_MATCH_SWBIT) |
422 | do_input(alias, id->swbit, 0, SW_MAX); | 420 | do_input(alias, id->swbit, 0, SW_MAX); |
423 | return 1; | 421 | return 1; |
424 | } | 422 | } |
diff --git a/security/dummy.c b/security/dummy.c index fd99429278e9..8ccccccc12ac 100644 --- a/security/dummy.c +++ b/security/dummy.c | |||
@@ -563,11 +563,6 @@ static int dummy_ipc_permission (struct kern_ipc_perm *ipcp, short flag) | |||
563 | return 0; | 563 | return 0; |
564 | } | 564 | } |
565 | 565 | ||
566 | static int dummy_ipc_getsecurity(struct kern_ipc_perm *ipcp, void *buffer, size_t size) | ||
567 | { | ||
568 | return -EOPNOTSUPP; | ||
569 | } | ||
570 | |||
571 | static int dummy_msg_msg_alloc_security (struct msg_msg *msg) | 566 | static int dummy_msg_msg_alloc_security (struct msg_msg *msg) |
572 | { | 567 | { |
573 | return 0; | 568 | return 0; |
@@ -976,7 +971,6 @@ void security_fixup_ops (struct security_operations *ops) | |||
976 | set_to_dummy_if_null(ops, task_reparent_to_init); | 971 | set_to_dummy_if_null(ops, task_reparent_to_init); |
977 | set_to_dummy_if_null(ops, task_to_inode); | 972 | set_to_dummy_if_null(ops, task_to_inode); |
978 | set_to_dummy_if_null(ops, ipc_permission); | 973 | set_to_dummy_if_null(ops, ipc_permission); |
979 | set_to_dummy_if_null(ops, ipc_getsecurity); | ||
980 | set_to_dummy_if_null(ops, msg_msg_alloc_security); | 974 | set_to_dummy_if_null(ops, msg_msg_alloc_security); |
981 | set_to_dummy_if_null(ops, msg_msg_free_security); | 975 | set_to_dummy_if_null(ops, msg_msg_free_security); |
982 | set_to_dummy_if_null(ops, msg_queue_alloc_security); | 976 | set_to_dummy_if_null(ops, msg_queue_alloc_security); |
diff --git a/security/selinux/Makefile b/security/selinux/Makefile index 688c0a267b62..faf2e02e4410 100644 --- a/security/selinux/Makefile +++ b/security/selinux/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | obj-$(CONFIG_SECURITY_SELINUX) := selinux.o ss/ | 5 | obj-$(CONFIG_SECURITY_SELINUX) := selinux.o ss/ |
6 | 6 | ||
7 | selinux-y := avc.o hooks.o selinuxfs.o netlink.o nlmsgtab.o netif.o | 7 | selinux-y := avc.o hooks.o selinuxfs.o netlink.o nlmsgtab.o netif.o exports.o |
8 | 8 | ||
9 | selinux-$(CONFIG_SECURITY_NETWORK_XFRM) += xfrm.o | 9 | selinux-$(CONFIG_SECURITY_NETWORK_XFRM) += xfrm.o |
10 | 10 | ||
diff --git a/security/selinux/avc.c b/security/selinux/avc.c index ac5d69bb3377..a300702da527 100644 --- a/security/selinux/avc.c +++ b/security/selinux/avc.c | |||
@@ -800,7 +800,7 @@ out: | |||
800 | int avc_ss_reset(u32 seqno) | 800 | int avc_ss_reset(u32 seqno) |
801 | { | 801 | { |
802 | struct avc_callback_node *c; | 802 | struct avc_callback_node *c; |
803 | int i, rc = 0; | 803 | int i, rc = 0, tmprc; |
804 | unsigned long flag; | 804 | unsigned long flag; |
805 | struct avc_node *node; | 805 | struct avc_node *node; |
806 | 806 | ||
@@ -813,15 +813,16 @@ int avc_ss_reset(u32 seqno) | |||
813 | 813 | ||
814 | for (c = avc_callbacks; c; c = c->next) { | 814 | for (c = avc_callbacks; c; c = c->next) { |
815 | if (c->events & AVC_CALLBACK_RESET) { | 815 | if (c->events & AVC_CALLBACK_RESET) { |
816 | rc = c->callback(AVC_CALLBACK_RESET, | 816 | tmprc = c->callback(AVC_CALLBACK_RESET, |
817 | 0, 0, 0, 0, NULL); | 817 | 0, 0, 0, 0, NULL); |
818 | if (rc) | 818 | /* save the first error encountered for the return |
819 | goto out; | 819 | value and continue processing the callbacks */ |
820 | if (!rc) | ||
821 | rc = tmprc; | ||
820 | } | 822 | } |
821 | } | 823 | } |
822 | 824 | ||
823 | avc_latest_notif_update(seqno, 0); | 825 | avc_latest_notif_update(seqno, 0); |
824 | out: | ||
825 | return rc; | 826 | return rc; |
826 | } | 827 | } |
827 | 828 | ||
diff --git a/security/selinux/exports.c b/security/selinux/exports.c new file mode 100644 index 000000000000..ae4c73eb3085 --- /dev/null +++ b/security/selinux/exports.c | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | * SELinux services exported to the rest of the kernel. | ||
3 | * | ||
4 | * Author: James Morris <jmorris@redhat.com> | ||
5 | * | ||
6 | * Copyright (C) 2005 Red Hat, Inc., James Morris <jmorris@redhat.com> | ||
7 | * Copyright (C) 2006 Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com> | ||
8 | * Copyright (C) 2006 IBM Corporation, Timothy R. Chavez <tinytim@us.ibm.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2, | ||
12 | * as published by the Free Software Foundation. | ||
13 | */ | ||
14 | #include <linux/types.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/module.h> | ||
17 | #include <linux/selinux.h> | ||
18 | #include <linux/fs.h> | ||
19 | #include <linux/ipc.h> | ||
20 | |||
21 | #include "security.h" | ||
22 | #include "objsec.h" | ||
23 | |||
24 | void selinux_task_ctxid(struct task_struct *tsk, u32 *ctxid) | ||
25 | { | ||
26 | struct task_security_struct *tsec = tsk->security; | ||
27 | if (selinux_enabled) | ||
28 | *ctxid = tsec->sid; | ||
29 | else | ||
30 | *ctxid = 0; | ||
31 | } | ||
32 | |||
33 | int selinux_ctxid_to_string(u32 ctxid, char **ctx, u32 *ctxlen) | ||
34 | { | ||
35 | if (selinux_enabled) | ||
36 | return security_sid_to_context(ctxid, ctx, ctxlen); | ||
37 | else { | ||
38 | *ctx = NULL; | ||
39 | *ctxlen = 0; | ||
40 | } | ||
41 | |||
42 | return 0; | ||
43 | } | ||
44 | |||
45 | void selinux_get_inode_sid(const struct inode *inode, u32 *sid) | ||
46 | { | ||
47 | if (selinux_enabled) { | ||
48 | struct inode_security_struct *isec = inode->i_security; | ||
49 | *sid = isec->sid; | ||
50 | return; | ||
51 | } | ||
52 | *sid = 0; | ||
53 | } | ||
54 | |||
55 | void selinux_get_ipc_sid(const struct kern_ipc_perm *ipcp, u32 *sid) | ||
56 | { | ||
57 | if (selinux_enabled) { | ||
58 | struct ipc_security_struct *isec = ipcp->security; | ||
59 | *sid = isec->sid; | ||
60 | return; | ||
61 | } | ||
62 | *sid = 0; | ||
63 | } | ||
64 | |||
65 | void selinux_get_task_sid(struct task_struct *tsk, u32 *sid) | ||
66 | { | ||
67 | if (selinux_enabled) { | ||
68 | struct task_security_struct *tsec = tsk->security; | ||
69 | *sid = tsec->sid; | ||
70 | return; | ||
71 | } | ||
72 | *sid = 0; | ||
73 | } | ||
74 | |||
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index b61b9554bc27..d987048d3f33 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -101,6 +101,8 @@ static int __init selinux_enabled_setup(char *str) | |||
101 | return 1; | 101 | return 1; |
102 | } | 102 | } |
103 | __setup("selinux=", selinux_enabled_setup); | 103 | __setup("selinux=", selinux_enabled_setup); |
104 | #else | ||
105 | int selinux_enabled = 1; | ||
104 | #endif | 106 | #endif |
105 | 107 | ||
106 | /* Original (dummy) security module. */ | 108 | /* Original (dummy) security module. */ |
@@ -4052,13 +4054,6 @@ static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag) | |||
4052 | return ipc_has_perm(ipcp, av); | 4054 | return ipc_has_perm(ipcp, av); |
4053 | } | 4055 | } |
4054 | 4056 | ||
4055 | static int selinux_ipc_getsecurity(struct kern_ipc_perm *ipcp, void *buffer, size_t size) | ||
4056 | { | ||
4057 | struct ipc_security_struct *isec = ipcp->security; | ||
4058 | |||
4059 | return selinux_getsecurity(isec->sid, buffer, size); | ||
4060 | } | ||
4061 | |||
4062 | /* module stacking operations */ | 4057 | /* module stacking operations */ |
4063 | static int selinux_register_security (const char *name, struct security_operations *ops) | 4058 | static int selinux_register_security (const char *name, struct security_operations *ops) |
4064 | { | 4059 | { |
@@ -4321,7 +4316,6 @@ static struct security_operations selinux_ops = { | |||
4321 | .task_to_inode = selinux_task_to_inode, | 4316 | .task_to_inode = selinux_task_to_inode, |
4322 | 4317 | ||
4323 | .ipc_permission = selinux_ipc_permission, | 4318 | .ipc_permission = selinux_ipc_permission, |
4324 | .ipc_getsecurity = selinux_ipc_getsecurity, | ||
4325 | 4319 | ||
4326 | .msg_msg_alloc_security = selinux_msg_msg_alloc_security, | 4320 | .msg_msg_alloc_security = selinux_msg_msg_alloc_security, |
4327 | .msg_msg_free_security = selinux_msg_msg_free_security, | 4321 | .msg_msg_free_security = selinux_msg_msg_free_security, |
@@ -4543,6 +4537,7 @@ int selinux_disable(void) | |||
4543 | printk(KERN_INFO "SELinux: Disabled at runtime.\n"); | 4537 | printk(KERN_INFO "SELinux: Disabled at runtime.\n"); |
4544 | 4538 | ||
4545 | selinux_disabled = 1; | 4539 | selinux_disabled = 1; |
4540 | selinux_enabled = 0; | ||
4546 | 4541 | ||
4547 | /* Reset security_ops to the secondary module, dummy or capability. */ | 4542 | /* Reset security_ops to the secondary module, dummy or capability. */ |
4548 | security_ops = secondary_ops; | 4543 | security_ops = secondary_ops; |
diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h index 5f016c98056f..063af47bb231 100644 --- a/security/selinux/include/security.h +++ b/security/selinux/include/security.h | |||
@@ -29,12 +29,7 @@ | |||
29 | #define POLICYDB_VERSION_MIN POLICYDB_VERSION_BASE | 29 | #define POLICYDB_VERSION_MIN POLICYDB_VERSION_BASE |
30 | #define POLICYDB_VERSION_MAX POLICYDB_VERSION_AVTAB | 30 | #define POLICYDB_VERSION_MAX POLICYDB_VERSION_AVTAB |
31 | 31 | ||
32 | #ifdef CONFIG_SECURITY_SELINUX_BOOTPARAM | ||
33 | extern int selinux_enabled; | 32 | extern int selinux_enabled; |
34 | #else | ||
35 | #define selinux_enabled 1 | ||
36 | #endif | ||
37 | |||
38 | extern int selinux_mls_enabled; | 33 | extern int selinux_mls_enabled; |
39 | 34 | ||
40 | int security_load_policy(void * data, size_t len); | 35 | int security_load_policy(void * data, size_t len); |
diff --git a/security/selinux/ss/mls.c b/security/selinux/ss/mls.c index 84047f69f9c1..7bc5b6440f70 100644 --- a/security/selinux/ss/mls.c +++ b/security/selinux/ss/mls.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * | 8 | * |
9 | * Support for enhanced MLS infrastructure. | 9 | * Support for enhanced MLS infrastructure. |
10 | * | 10 | * |
11 | * Copyright (C) 2004-2005 Trusted Computer Solutions, Inc. | 11 | * Copyright (C) 2004-2006 Trusted Computer Solutions, Inc. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
@@ -385,6 +385,34 @@ out: | |||
385 | } | 385 | } |
386 | 386 | ||
387 | /* | 387 | /* |
388 | * Set the MLS fields in the security context structure | ||
389 | * `context' based on the string representation in | ||
390 | * the string `str'. This function will allocate temporary memory with the | ||
391 | * given constraints of gfp_mask. | ||
392 | */ | ||
393 | int mls_from_string(char *str, struct context *context, gfp_t gfp_mask) | ||
394 | { | ||
395 | char *tmpstr, *freestr; | ||
396 | int rc; | ||
397 | |||
398 | if (!selinux_mls_enabled) | ||
399 | return -EINVAL; | ||
400 | |||
401 | /* we need freestr because mls_context_to_sid will change | ||
402 | the value of tmpstr */ | ||
403 | tmpstr = freestr = kstrdup(str, gfp_mask); | ||
404 | if (!tmpstr) { | ||
405 | rc = -ENOMEM; | ||
406 | } else { | ||
407 | rc = mls_context_to_sid(':', &tmpstr, context, | ||
408 | NULL, SECSID_NULL); | ||
409 | kfree(freestr); | ||
410 | } | ||
411 | |||
412 | return rc; | ||
413 | } | ||
414 | |||
415 | /* | ||
388 | * Copies the effective MLS range from `src' into `dst'. | 416 | * Copies the effective MLS range from `src' into `dst'. |
389 | */ | 417 | */ |
390 | static inline int mls_scopy_context(struct context *dst, | 418 | static inline int mls_scopy_context(struct context *dst, |
diff --git a/security/selinux/ss/mls.h b/security/selinux/ss/mls.h index 03de697c8058..fbb42f07dd7c 100644 --- a/security/selinux/ss/mls.h +++ b/security/selinux/ss/mls.h | |||
@@ -8,7 +8,7 @@ | |||
8 | * | 8 | * |
9 | * Support for enhanced MLS infrastructure. | 9 | * Support for enhanced MLS infrastructure. |
10 | * | 10 | * |
11 | * Copyright (C) 2004-2005 Trusted Computer Solutions, Inc. | 11 | * Copyright (C) 2004-2006 Trusted Computer Solutions, Inc. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #ifndef _SS_MLS_H_ | 14 | #ifndef _SS_MLS_H_ |
@@ -27,6 +27,8 @@ int mls_context_to_sid(char oldc, | |||
27 | struct sidtab *s, | 27 | struct sidtab *s, |
28 | u32 def_sid); | 28 | u32 def_sid); |
29 | 29 | ||
30 | int mls_from_string(char *str, struct context *context, gfp_t gfp_mask); | ||
31 | |||
30 | int mls_convert_context(struct policydb *oldp, | 32 | int mls_convert_context(struct policydb *oldp, |
31 | struct policydb *newp, | 33 | struct policydb *newp, |
32 | struct context *context); | 34 | struct context *context); |
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index 61492485de84..7177e98df7f3 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c | |||
@@ -7,12 +7,13 @@ | |||
7 | * Updated: Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com> | 7 | * Updated: Trusted Computer Solutions, Inc. <dgoeddel@trustedcs.com> |
8 | * | 8 | * |
9 | * Support for enhanced MLS infrastructure. | 9 | * Support for enhanced MLS infrastructure. |
10 | * Support for context based audit filters. | ||
10 | * | 11 | * |
11 | * Updated: Frank Mayer <mayerf@tresys.com> and Karl MacMillan <kmacmillan@tresys.com> | 12 | * Updated: Frank Mayer <mayerf@tresys.com> and Karl MacMillan <kmacmillan@tresys.com> |
12 | * | 13 | * |
13 | * Added conditional policy language extensions | 14 | * Added conditional policy language extensions |
14 | * | 15 | * |
15 | * Copyright (C) 2004-2005 Trusted Computer Solutions, Inc. | 16 | * Copyright (C) 2004-2006 Trusted Computer Solutions, Inc. |
16 | * Copyright (C) 2003 - 2004 Tresys Technology, LLC | 17 | * Copyright (C) 2003 - 2004 Tresys Technology, LLC |
17 | * Copyright (C) 2003 Red Hat, Inc., James Morris <jmorris@redhat.com> | 18 | * Copyright (C) 2003 Red Hat, Inc., James Morris <jmorris@redhat.com> |
18 | * This program is free software; you can redistribute it and/or modify | 19 | * This program is free software; you can redistribute it and/or modify |
@@ -1811,3 +1812,235 @@ out: | |||
1811 | POLICY_RDUNLOCK; | 1812 | POLICY_RDUNLOCK; |
1812 | return rc; | 1813 | return rc; |
1813 | } | 1814 | } |
1815 | |||
1816 | struct selinux_audit_rule { | ||
1817 | u32 au_seqno; | ||
1818 | struct context au_ctxt; | ||
1819 | }; | ||
1820 | |||
1821 | void selinux_audit_rule_free(struct selinux_audit_rule *rule) | ||
1822 | { | ||
1823 | if (rule) { | ||
1824 | context_destroy(&rule->au_ctxt); | ||
1825 | kfree(rule); | ||
1826 | } | ||
1827 | } | ||
1828 | |||
1829 | int selinux_audit_rule_init(u32 field, u32 op, char *rulestr, | ||
1830 | struct selinux_audit_rule **rule) | ||
1831 | { | ||
1832 | struct selinux_audit_rule *tmprule; | ||
1833 | struct role_datum *roledatum; | ||
1834 | struct type_datum *typedatum; | ||
1835 | struct user_datum *userdatum; | ||
1836 | int rc = 0; | ||
1837 | |||
1838 | *rule = NULL; | ||
1839 | |||
1840 | if (!ss_initialized) | ||
1841 | return -ENOTSUPP; | ||
1842 | |||
1843 | switch (field) { | ||
1844 | case AUDIT_SE_USER: | ||
1845 | case AUDIT_SE_ROLE: | ||
1846 | case AUDIT_SE_TYPE: | ||
1847 | /* only 'equals' and 'not equals' fit user, role, and type */ | ||
1848 | if (op != AUDIT_EQUAL && op != AUDIT_NOT_EQUAL) | ||
1849 | return -EINVAL; | ||
1850 | break; | ||
1851 | case AUDIT_SE_SEN: | ||
1852 | case AUDIT_SE_CLR: | ||
1853 | /* we do not allow a range, indicated by the presense of '-' */ | ||
1854 | if (strchr(rulestr, '-')) | ||
1855 | return -EINVAL; | ||
1856 | break; | ||
1857 | default: | ||
1858 | /* only the above fields are valid */ | ||
1859 | return -EINVAL; | ||
1860 | } | ||
1861 | |||
1862 | tmprule = kzalloc(sizeof(struct selinux_audit_rule), GFP_KERNEL); | ||
1863 | if (!tmprule) | ||
1864 | return -ENOMEM; | ||
1865 | |||
1866 | context_init(&tmprule->au_ctxt); | ||
1867 | |||
1868 | POLICY_RDLOCK; | ||
1869 | |||
1870 | tmprule->au_seqno = latest_granting; | ||
1871 | |||
1872 | switch (field) { | ||
1873 | case AUDIT_SE_USER: | ||
1874 | userdatum = hashtab_search(policydb.p_users.table, rulestr); | ||
1875 | if (!userdatum) | ||
1876 | rc = -EINVAL; | ||
1877 | else | ||
1878 | tmprule->au_ctxt.user = userdatum->value; | ||
1879 | break; | ||
1880 | case AUDIT_SE_ROLE: | ||
1881 | roledatum = hashtab_search(policydb.p_roles.table, rulestr); | ||
1882 | if (!roledatum) | ||
1883 | rc = -EINVAL; | ||
1884 | else | ||
1885 | tmprule->au_ctxt.role = roledatum->value; | ||
1886 | break; | ||
1887 | case AUDIT_SE_TYPE: | ||
1888 | typedatum = hashtab_search(policydb.p_types.table, rulestr); | ||
1889 | if (!typedatum) | ||
1890 | rc = -EINVAL; | ||
1891 | else | ||
1892 | tmprule->au_ctxt.type = typedatum->value; | ||
1893 | break; | ||
1894 | case AUDIT_SE_SEN: | ||
1895 | case AUDIT_SE_CLR: | ||
1896 | rc = mls_from_string(rulestr, &tmprule->au_ctxt, GFP_ATOMIC); | ||
1897 | break; | ||
1898 | } | ||
1899 | |||
1900 | POLICY_RDUNLOCK; | ||
1901 | |||
1902 | if (rc) { | ||
1903 | selinux_audit_rule_free(tmprule); | ||
1904 | tmprule = NULL; | ||
1905 | } | ||
1906 | |||
1907 | *rule = tmprule; | ||
1908 | |||
1909 | return rc; | ||
1910 | } | ||
1911 | |||
1912 | int selinux_audit_rule_match(u32 ctxid, u32 field, u32 op, | ||
1913 | struct selinux_audit_rule *rule, | ||
1914 | struct audit_context *actx) | ||
1915 | { | ||
1916 | struct context *ctxt; | ||
1917 | struct mls_level *level; | ||
1918 | int match = 0; | ||
1919 | |||
1920 | if (!rule) { | ||
1921 | audit_log(actx, GFP_ATOMIC, AUDIT_SELINUX_ERR, | ||
1922 | "selinux_audit_rule_match: missing rule\n"); | ||
1923 | return -ENOENT; | ||
1924 | } | ||
1925 | |||
1926 | POLICY_RDLOCK; | ||
1927 | |||
1928 | if (rule->au_seqno < latest_granting) { | ||
1929 | audit_log(actx, GFP_ATOMIC, AUDIT_SELINUX_ERR, | ||
1930 | "selinux_audit_rule_match: stale rule\n"); | ||
1931 | match = -ESTALE; | ||
1932 | goto out; | ||
1933 | } | ||
1934 | |||
1935 | ctxt = sidtab_search(&sidtab, ctxid); | ||
1936 | if (!ctxt) { | ||
1937 | audit_log(actx, GFP_ATOMIC, AUDIT_SELINUX_ERR, | ||
1938 | "selinux_audit_rule_match: unrecognized SID %d\n", | ||
1939 | ctxid); | ||
1940 | match = -ENOENT; | ||
1941 | goto out; | ||
1942 | } | ||
1943 | |||
1944 | /* a field/op pair that is not caught here will simply fall through | ||
1945 | without a match */ | ||
1946 | switch (field) { | ||
1947 | case AUDIT_SE_USER: | ||
1948 | switch (op) { | ||
1949 | case AUDIT_EQUAL: | ||
1950 | match = (ctxt->user == rule->au_ctxt.user); | ||
1951 | break; | ||
1952 | case AUDIT_NOT_EQUAL: | ||
1953 | match = (ctxt->user != rule->au_ctxt.user); | ||
1954 | break; | ||
1955 | } | ||
1956 | break; | ||
1957 | case AUDIT_SE_ROLE: | ||
1958 | switch (op) { | ||
1959 | case AUDIT_EQUAL: | ||
1960 | match = (ctxt->role == rule->au_ctxt.role); | ||
1961 | break; | ||
1962 | case AUDIT_NOT_EQUAL: | ||
1963 | match = (ctxt->role != rule->au_ctxt.role); | ||
1964 | break; | ||
1965 | } | ||
1966 | break; | ||
1967 | case AUDIT_SE_TYPE: | ||
1968 | switch (op) { | ||
1969 | case AUDIT_EQUAL: | ||
1970 | match = (ctxt->type == rule->au_ctxt.type); | ||
1971 | break; | ||
1972 | case AUDIT_NOT_EQUAL: | ||
1973 | match = (ctxt->type != rule->au_ctxt.type); | ||
1974 | break; | ||
1975 | } | ||
1976 | break; | ||
1977 | case AUDIT_SE_SEN: | ||
1978 | case AUDIT_SE_CLR: | ||
1979 | level = (op == AUDIT_SE_SEN ? | ||
1980 | &ctxt->range.level[0] : &ctxt->range.level[1]); | ||
1981 | switch (op) { | ||
1982 | case AUDIT_EQUAL: | ||
1983 | match = mls_level_eq(&rule->au_ctxt.range.level[0], | ||
1984 | level); | ||
1985 | break; | ||
1986 | case AUDIT_NOT_EQUAL: | ||
1987 | match = !mls_level_eq(&rule->au_ctxt.range.level[0], | ||
1988 | level); | ||
1989 | break; | ||
1990 | case AUDIT_LESS_THAN: | ||
1991 | match = (mls_level_dom(&rule->au_ctxt.range.level[0], | ||
1992 | level) && | ||
1993 | !mls_level_eq(&rule->au_ctxt.range.level[0], | ||
1994 | level)); | ||
1995 | break; | ||
1996 | case AUDIT_LESS_THAN_OR_EQUAL: | ||
1997 | match = mls_level_dom(&rule->au_ctxt.range.level[0], | ||
1998 | level); | ||
1999 | break; | ||
2000 | case AUDIT_GREATER_THAN: | ||
2001 | match = (mls_level_dom(level, | ||
2002 | &rule->au_ctxt.range.level[0]) && | ||
2003 | !mls_level_eq(level, | ||
2004 | &rule->au_ctxt.range.level[0])); | ||
2005 | break; | ||
2006 | case AUDIT_GREATER_THAN_OR_EQUAL: | ||
2007 | match = mls_level_dom(level, | ||
2008 | &rule->au_ctxt.range.level[0]); | ||
2009 | break; | ||
2010 | } | ||
2011 | } | ||
2012 | |||
2013 | out: | ||
2014 | POLICY_RDUNLOCK; | ||
2015 | return match; | ||
2016 | } | ||
2017 | |||
2018 | static int (*aurule_callback)(void) = NULL; | ||
2019 | |||
2020 | static int aurule_avc_callback(u32 event, u32 ssid, u32 tsid, | ||
2021 | u16 class, u32 perms, u32 *retained) | ||
2022 | { | ||
2023 | int err = 0; | ||
2024 | |||
2025 | if (event == AVC_CALLBACK_RESET && aurule_callback) | ||
2026 | err = aurule_callback(); | ||
2027 | return err; | ||
2028 | } | ||
2029 | |||
2030 | static int __init aurule_init(void) | ||
2031 | { | ||
2032 | int err; | ||
2033 | |||
2034 | err = avc_add_callback(aurule_avc_callback, AVC_CALLBACK_RESET, | ||
2035 | SECSID_NULL, SECSID_NULL, SECCLASS_NULL, 0); | ||
2036 | if (err) | ||
2037 | panic("avc_add_callback() failed, error %d\n", err); | ||
2038 | |||
2039 | return err; | ||
2040 | } | ||
2041 | __initcall(aurule_init); | ||
2042 | |||
2043 | void selinux_audit_set_callback(int (*callback)(void)) | ||
2044 | { | ||
2045 | aurule_callback = callback; | ||
2046 | } | ||
diff --git a/sound/core/Kconfig b/sound/core/Kconfig index 8efc1b12f3a8..4262a1c87731 100644 --- a/sound/core/Kconfig +++ b/sound/core/Kconfig | |||
@@ -142,7 +142,7 @@ config SND_SUPPORT_OLD_API | |||
142 | 142 | ||
143 | config SND_VERBOSE_PROCFS | 143 | config SND_VERBOSE_PROCFS |
144 | bool "Verbose procfs contents" | 144 | bool "Verbose procfs contents" |
145 | depends on SND | 145 | depends on SND && PROC_FS |
146 | default y | 146 | default y |
147 | help | 147 | help |
148 | Say Y here to include code for verbose procfs contents (provides | 148 | Say Y here to include code for verbose procfs contents (provides |
@@ -171,3 +171,13 @@ config SND_DEBUG_DETECT | |||
171 | help | 171 | help |
172 | Say Y here to enable extra-verbose log messages printed when | 172 | Say Y here to enable extra-verbose log messages printed when |
173 | detecting devices. | 173 | detecting devices. |
174 | |||
175 | config SND_PCM_XRUN_DEBUG | ||
176 | bool "Enable PCM ring buffer overrun/underrun debugging" | ||
177 | default n | ||
178 | depends on SND_DEBUG && SND_VERBOSE_PROCFS | ||
179 | help | ||
180 | Say Y to enable the PCM ring buffer overrun/underrun debugging. | ||
181 | It is usually not required, but if you have trouble with | ||
182 | sound clicking when system is loaded, it may help to determine | ||
183 | the process or driver which causes the scheduling gaps. | ||
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index c5978d6c6080..ac990bf0b48f 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c | |||
@@ -1242,6 +1242,8 @@ static int snd_pcm_oss_set_format(struct snd_pcm_oss_file *pcm_oss_file, int for | |||
1242 | 1242 | ||
1243 | if (format != AFMT_QUERY) { | 1243 | if (format != AFMT_QUERY) { |
1244 | formats = snd_pcm_oss_get_formats(pcm_oss_file); | 1244 | formats = snd_pcm_oss_get_formats(pcm_oss_file); |
1245 | if (formats < 0) | ||
1246 | return formats; | ||
1245 | if (!(formats & format)) | 1247 | if (!(formats & format)) |
1246 | format = AFMT_U8; | 1248 | format = AFMT_U8; |
1247 | for (idx = 1; idx >= 0; --idx) { | 1249 | for (idx = 1; idx >= 0; --idx) { |
@@ -2212,7 +2214,7 @@ static int snd_pcm_oss_mmap(struct file *file, struct vm_area_struct *area) | |||
2212 | return 0; | 2214 | return 0; |
2213 | } | 2215 | } |
2214 | 2216 | ||
2215 | #ifdef CONFIG_PROC_FS | 2217 | #ifdef CONFIG_SND_VERBOSE_PROCFS |
2216 | /* | 2218 | /* |
2217 | * /proc interface | 2219 | * /proc interface |
2218 | */ | 2220 | */ |
@@ -2366,10 +2368,10 @@ static void snd_pcm_oss_proc_done(struct snd_pcm *pcm) | |||
2366 | } | 2368 | } |
2367 | } | 2369 | } |
2368 | } | 2370 | } |
2369 | #else /* !CONFIG_PROC_FS */ | 2371 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
2370 | #define snd_pcm_oss_proc_init(pcm) | 2372 | #define snd_pcm_oss_proc_init(pcm) |
2371 | #define snd_pcm_oss_proc_done(pcm) | 2373 | #define snd_pcm_oss_proc_done(pcm) |
2372 | #endif /* CONFIG_PROC_FS */ | 2374 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
2373 | 2375 | ||
2374 | /* | 2376 | /* |
2375 | * ENTRY functions | 2377 | * ENTRY functions |
diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 122e10a61ab9..84b00038236d 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c | |||
@@ -142,7 +142,7 @@ static int snd_pcm_control_ioctl(struct snd_card *card, | |||
142 | return -ENOIOCTLCMD; | 142 | return -ENOIOCTLCMD; |
143 | } | 143 | } |
144 | 144 | ||
145 | #if defined(CONFIG_PROC_FS) && defined(CONFIG_SND_VERBOSE_PROCFS) | 145 | #ifdef CONFIG_SND_VERBOSE_PROCFS |
146 | 146 | ||
147 | #define STATE(v) [SNDRV_PCM_STATE_##v] = #v | 147 | #define STATE(v) [SNDRV_PCM_STATE_##v] = #v |
148 | #define STREAM(v) [SNDRV_PCM_STREAM_##v] = #v | 148 | #define STREAM(v) [SNDRV_PCM_STREAM_##v] = #v |
@@ -436,7 +436,7 @@ static void snd_pcm_substream_proc_status_read(struct snd_info_entry *entry, | |||
436 | snd_iprintf(buffer, "appl_ptr : %ld\n", runtime->control->appl_ptr); | 436 | snd_iprintf(buffer, "appl_ptr : %ld\n", runtime->control->appl_ptr); |
437 | } | 437 | } |
438 | 438 | ||
439 | #ifdef CONFIG_SND_DEBUG | 439 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
440 | static void snd_pcm_xrun_debug_read(struct snd_info_entry *entry, | 440 | static void snd_pcm_xrun_debug_read(struct snd_info_entry *entry, |
441 | struct snd_info_buffer *buffer) | 441 | struct snd_info_buffer *buffer) |
442 | { | 442 | { |
@@ -480,7 +480,7 @@ static int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) | |||
480 | } | 480 | } |
481 | pstr->proc_info_entry = entry; | 481 | pstr->proc_info_entry = entry; |
482 | 482 | ||
483 | #ifdef CONFIG_SND_DEBUG | 483 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
484 | if ((entry = snd_info_create_card_entry(pcm->card, "xrun_debug", | 484 | if ((entry = snd_info_create_card_entry(pcm->card, "xrun_debug", |
485 | pstr->proc_root)) != NULL) { | 485 | pstr->proc_root)) != NULL) { |
486 | entry->c.text.read_size = 64; | 486 | entry->c.text.read_size = 64; |
@@ -501,7 +501,7 @@ static int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) | |||
501 | 501 | ||
502 | static int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) | 502 | static int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) |
503 | { | 503 | { |
504 | #ifdef CONFIG_SND_DEBUG | 504 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
505 | if (pstr->proc_xrun_debug_entry) { | 505 | if (pstr->proc_xrun_debug_entry) { |
506 | snd_info_unregister(pstr->proc_xrun_debug_entry); | 506 | snd_info_unregister(pstr->proc_xrun_debug_entry); |
507 | pstr->proc_xrun_debug_entry = NULL; | 507 | pstr->proc_xrun_debug_entry = NULL; |
@@ -599,12 +599,12 @@ static int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) | |||
599 | } | 599 | } |
600 | return 0; | 600 | return 0; |
601 | } | 601 | } |
602 | #else /* !CONFIG_PROC_FS */ | 602 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
603 | static inline int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) { return 0; } | 603 | static inline int snd_pcm_stream_proc_init(struct snd_pcm_str *pstr) { return 0; } |
604 | static inline int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) { return 0; } | 604 | static inline int snd_pcm_stream_proc_done(struct snd_pcm_str *pstr) { return 0; } |
605 | static inline int snd_pcm_substream_proc_init(struct snd_pcm_substream *substream) { return 0; } | 605 | static inline int snd_pcm_substream_proc_init(struct snd_pcm_substream *substream) { return 0; } |
606 | static inline int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) { return 0; } | 606 | static inline int snd_pcm_substream_proc_done(struct snd_pcm_substream *substream) { return 0; } |
607 | #endif /* CONFIG_PROC_FS */ | 607 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
608 | 608 | ||
609 | /** | 609 | /** |
610 | * snd_pcm_new_stream - create a new PCM stream | 610 | * snd_pcm_new_stream - create a new PCM stream |
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index 230a940d00bd..eedc6cb038bb 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c | |||
@@ -130,7 +130,7 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram | |||
130 | static void xrun(struct snd_pcm_substream *substream) | 130 | static void xrun(struct snd_pcm_substream *substream) |
131 | { | 131 | { |
132 | snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); | 132 | snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); |
133 | #ifdef CONFIG_SND_DEBUG | 133 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
134 | if (substream->pstr->xrun_debug) { | 134 | if (substream->pstr->xrun_debug) { |
135 | snd_printd(KERN_DEBUG "XRUN: pcmC%dD%d%c\n", | 135 | snd_printd(KERN_DEBUG "XRUN: pcmC%dD%d%c\n", |
136 | substream->pcm->card->number, | 136 | substream->pcm->card->number, |
@@ -204,7 +204,7 @@ static inline int snd_pcm_update_hw_ptr_interrupt(struct snd_pcm_substream *subs | |||
204 | delta = hw_ptr_interrupt - new_hw_ptr; | 204 | delta = hw_ptr_interrupt - new_hw_ptr; |
205 | if (delta > 0) { | 205 | if (delta > 0) { |
206 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { | 206 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { |
207 | #ifdef CONFIG_SND_DEBUG | 207 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
208 | if (runtime->periods > 1 && substream->pstr->xrun_debug) { | 208 | if (runtime->periods > 1 && substream->pstr->xrun_debug) { |
209 | snd_printd(KERN_ERR "Unexpected hw_pointer value [1] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); | 209 | snd_printd(KERN_ERR "Unexpected hw_pointer value [1] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); |
210 | if (substream->pstr->xrun_debug > 1) | 210 | if (substream->pstr->xrun_debug > 1) |
@@ -249,7 +249,7 @@ int snd_pcm_update_hw_ptr(struct snd_pcm_substream *substream) | |||
249 | delta = old_hw_ptr - new_hw_ptr; | 249 | delta = old_hw_ptr - new_hw_ptr; |
250 | if (delta > 0) { | 250 | if (delta > 0) { |
251 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { | 251 | if ((snd_pcm_uframes_t)delta < runtime->buffer_size / 2) { |
252 | #ifdef CONFIG_SND_DEBUG | 252 | #ifdef CONFIG_SND_PCM_XRUN_DEBUG |
253 | if (runtime->periods > 2 && substream->pstr->xrun_debug) { | 253 | if (runtime->periods > 2 && substream->pstr->xrun_debug) { |
254 | snd_printd(KERN_ERR "Unexpected hw_pointer value [2] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); | 254 | snd_printd(KERN_ERR "Unexpected hw_pointer value [2] (stream = %i, delta: -%ld, max jitter = %ld): wrong interrupt acknowledge?\n", substream->stream, (long) delta, runtime->buffer_size / 2); |
255 | if (substream->pstr->xrun_debug > 1) | 255 | if (substream->pstr->xrun_debug > 1) |
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c index a0119ae67dcd..428f8c169ee1 100644 --- a/sound/core/pcm_memory.c +++ b/sound/core/pcm_memory.c | |||
@@ -100,8 +100,10 @@ static void snd_pcm_lib_preallocate_dma_free(struct snd_pcm_substream *substream | |||
100 | int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream) | 100 | int snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream) |
101 | { | 101 | { |
102 | snd_pcm_lib_preallocate_dma_free(substream); | 102 | snd_pcm_lib_preallocate_dma_free(substream); |
103 | #ifdef CONFIG_SND_VERBOSE_PROCFS | ||
103 | snd_info_unregister(substream->proc_prealloc_entry); | 104 | snd_info_unregister(substream->proc_prealloc_entry); |
104 | substream->proc_prealloc_entry = NULL; | 105 | substream->proc_prealloc_entry = NULL; |
106 | #endif | ||
105 | return 0; | 107 | return 0; |
106 | } | 108 | } |
107 | 109 | ||
@@ -124,7 +126,7 @@ int snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm) | |||
124 | return 0; | 126 | return 0; |
125 | } | 127 | } |
126 | 128 | ||
127 | #ifdef CONFIG_PROC_FS | 129 | #ifdef CONFIG_SND_VERBOSE_PROCFS |
128 | /* | 130 | /* |
129 | * read callback for prealloc proc file | 131 | * read callback for prealloc proc file |
130 | * | 132 | * |
@@ -203,9 +205,9 @@ static inline void preallocate_info_init(struct snd_pcm_substream *substream) | |||
203 | substream->proc_prealloc_entry = entry; | 205 | substream->proc_prealloc_entry = entry; |
204 | } | 206 | } |
205 | 207 | ||
206 | #else /* !CONFIG_PROC_FS */ | 208 | #else /* !CONFIG_SND_VERBOSE_PROCFS */ |
207 | #define preallocate_info_init(s) | 209 | #define preallocate_info_init(s) |
208 | #endif | 210 | #endif /* CONFIG_SND_VERBOSE_PROCFS */ |
209 | 211 | ||
210 | /* | 212 | /* |
211 | * pre-allocate the buffer and create a proc file for the substream | 213 | * pre-allocate the buffer and create a proc file for the substream |
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c index e35fd5779a9d..ae0df549fac7 100644 --- a/sound/drivers/dummy.c +++ b/sound/drivers/dummy.c | |||
@@ -675,10 +675,8 @@ static int __init alsa_card_dummy_init(void) | |||
675 | continue; | 675 | continue; |
676 | device = platform_device_register_simple(SND_DUMMY_DRIVER, | 676 | device = platform_device_register_simple(SND_DUMMY_DRIVER, |
677 | i, NULL, 0); | 677 | i, NULL, 0); |
678 | if (IS_ERR(device)) { | 678 | if (IS_ERR(device)) |
679 | err = PTR_ERR(device); | 679 | continue; |
680 | goto errout; | ||
681 | } | ||
682 | devices[i] = device; | 680 | devices[i] = device; |
683 | cards++; | 681 | cards++; |
684 | } | 682 | } |
@@ -686,14 +684,10 @@ static int __init alsa_card_dummy_init(void) | |||
686 | #ifdef MODULE | 684 | #ifdef MODULE |
687 | printk(KERN_ERR "Dummy soundcard not found or device busy\n"); | 685 | printk(KERN_ERR "Dummy soundcard not found or device busy\n"); |
688 | #endif | 686 | #endif |
689 | err = -ENODEV; | 687 | snd_dummy_unregister_all(); |
690 | goto errout; | 688 | return -ENODEV; |
691 | } | 689 | } |
692 | return 0; | 690 | return 0; |
693 | |||
694 | errout: | ||
695 | snd_dummy_unregister_all(); | ||
696 | return err; | ||
697 | } | 691 | } |
698 | 692 | ||
699 | static void __exit alsa_card_dummy_exit(void) | 693 | static void __exit alsa_card_dummy_exit(void) |
diff --git a/sound/drivers/mpu401/mpu401.c b/sound/drivers/mpu401/mpu401.c index 9ea3059a7064..da7ef26995c3 100644 --- a/sound/drivers/mpu401/mpu401.c +++ b/sound/drivers/mpu401/mpu401.c | |||
@@ -251,10 +251,8 @@ static int __init alsa_card_mpu401_init(void) | |||
251 | #endif | 251 | #endif |
252 | device = platform_device_register_simple(SND_MPU401_DRIVER, | 252 | device = platform_device_register_simple(SND_MPU401_DRIVER, |
253 | i, NULL, 0); | 253 | i, NULL, 0); |
254 | if (IS_ERR(device)) { | 254 | if (IS_ERR(device)) |
255 | err = PTR_ERR(device); | 255 | continue; |
256 | goto errout; | ||
257 | } | ||
258 | platform_devices[i] = device; | 256 | platform_devices[i] = device; |
259 | snd_mpu401_devices++; | 257 | snd_mpu401_devices++; |
260 | } | 258 | } |
@@ -266,14 +264,10 @@ static int __init alsa_card_mpu401_init(void) | |||
266 | #ifdef MODULE | 264 | #ifdef MODULE |
267 | printk(KERN_ERR "MPU-401 device not found or device busy\n"); | 265 | printk(KERN_ERR "MPU-401 device not found or device busy\n"); |
268 | #endif | 266 | #endif |
269 | err = -ENODEV; | 267 | snd_mpu401_unregister_all(); |
270 | goto errout; | 268 | return -ENODEV; |
271 | } | 269 | } |
272 | return 0; | 270 | return 0; |
273 | |||
274 | errout: | ||
275 | snd_mpu401_unregister_all(); | ||
276 | return err; | ||
277 | } | 271 | } |
278 | 272 | ||
279 | static void __exit alsa_card_mpu401_exit(void) | 273 | static void __exit alsa_card_mpu401_exit(void) |
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c index 1a7fbefe4740..c01b4c5118b9 100644 --- a/sound/drivers/serial-u16550.c +++ b/sound/drivers/serial-u16550.c | |||
@@ -996,10 +996,8 @@ static int __init alsa_card_serial_init(void) | |||
996 | continue; | 996 | continue; |
997 | device = platform_device_register_simple(SND_SERIAL_DRIVER, | 997 | device = platform_device_register_simple(SND_SERIAL_DRIVER, |
998 | i, NULL, 0); | 998 | i, NULL, 0); |
999 | if (IS_ERR(device)) { | 999 | if (IS_ERR(device)) |
1000 | err = PTR_ERR(device); | 1000 | continue; |
1001 | goto errout; | ||
1002 | } | ||
1003 | devices[i] = device; | 1001 | devices[i] = device; |
1004 | cards++; | 1002 | cards++; |
1005 | } | 1003 | } |
@@ -1007,14 +1005,10 @@ static int __init alsa_card_serial_init(void) | |||
1007 | #ifdef MODULE | 1005 | #ifdef MODULE |
1008 | printk(KERN_ERR "serial midi soundcard not found or device busy\n"); | 1006 | printk(KERN_ERR "serial midi soundcard not found or device busy\n"); |
1009 | #endif | 1007 | #endif |
1010 | err = -ENODEV; | 1008 | snd_serial_unregister_all(); |
1011 | goto errout; | 1009 | return -ENODEV; |
1012 | } | 1010 | } |
1013 | return 0; | 1011 | return 0; |
1014 | |||
1015 | errout: | ||
1016 | snd_serial_unregister_all(); | ||
1017 | return err; | ||
1018 | } | 1012 | } |
1019 | 1013 | ||
1020 | static void __exit alsa_card_serial_exit(void) | 1014 | static void __exit alsa_card_serial_exit(void) |
diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c index a3ee306239c9..26eb2499d442 100644 --- a/sound/drivers/virmidi.c +++ b/sound/drivers/virmidi.c | |||
@@ -169,10 +169,8 @@ static int __init alsa_card_virmidi_init(void) | |||
169 | continue; | 169 | continue; |
170 | device = platform_device_register_simple(SND_VIRMIDI_DRIVER, | 170 | device = platform_device_register_simple(SND_VIRMIDI_DRIVER, |
171 | i, NULL, 0); | 171 | i, NULL, 0); |
172 | if (IS_ERR(device)) { | 172 | if (IS_ERR(device)) |
173 | err = PTR_ERR(device); | 173 | continue; |
174 | goto errout; | ||
175 | } | ||
176 | devices[i] = device; | 174 | devices[i] = device; |
177 | cards++; | 175 | cards++; |
178 | } | 176 | } |
@@ -180,14 +178,10 @@ static int __init alsa_card_virmidi_init(void) | |||
180 | #ifdef MODULE | 178 | #ifdef MODULE |
181 | printk(KERN_ERR "Card-VirMIDI soundcard not found or device busy\n"); | 179 | printk(KERN_ERR "Card-VirMIDI soundcard not found or device busy\n"); |
182 | #endif | 180 | #endif |
183 | err = -ENODEV; | 181 | snd_virmidi_unregister_all(); |
184 | goto errout; | 182 | return -ENODEV; |
185 | } | 183 | } |
186 | return 0; | 184 | return 0; |
187 | |||
188 | errout: | ||
189 | snd_virmidi_unregister_all(); | ||
190 | return err; | ||
191 | } | 185 | } |
192 | 186 | ||
193 | static void __exit alsa_card_virmidi_exit(void) | 187 | static void __exit alsa_card_virmidi_exit(void) |
diff --git a/sound/isa/opti9xx/miro.c b/sound/isa/opti9xx/miro.c index 83d64bc07ff0..e6bfcf74c1c1 100644 --- a/sound/isa/opti9xx/miro.c +++ b/sound/isa/opti9xx/miro.c | |||
@@ -1179,20 +1179,17 @@ static int __init snd_card_miro_aci_detect(struct snd_card *card, struct snd_mir | |||
1179 | /* force ACI into a known state */ | 1179 | /* force ACI into a known state */ |
1180 | for (i = 0; i < 3; i++) | 1180 | for (i = 0; i < 3; i++) |
1181 | if (aci_cmd(miro, ACI_ERROR_OP, -1, -1) < 0) { | 1181 | if (aci_cmd(miro, ACI_ERROR_OP, -1, -1) < 0) { |
1182 | snd_card_free(card); | ||
1183 | snd_printk(KERN_ERR "can't force aci into known state.\n"); | 1182 | snd_printk(KERN_ERR "can't force aci into known state.\n"); |
1184 | return -ENXIO; | 1183 | return -ENXIO; |
1185 | } | 1184 | } |
1186 | 1185 | ||
1187 | if ((miro->aci_vendor=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0 || | 1186 | if ((miro->aci_vendor=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0 || |
1188 | (miro->aci_product=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0) { | 1187 | (miro->aci_product=aci_cmd(miro, ACI_READ_IDCODE, -1, -1)) < 0) { |
1189 | snd_card_free(card); | ||
1190 | snd_printk(KERN_ERR "can't read aci id on 0x%lx.\n", miro->aci_port); | 1188 | snd_printk(KERN_ERR "can't read aci id on 0x%lx.\n", miro->aci_port); |
1191 | return -ENXIO; | 1189 | return -ENXIO; |
1192 | } | 1190 | } |
1193 | 1191 | ||
1194 | if ((miro->aci_version=aci_cmd(miro, ACI_READ_VERSION, -1, -1)) < 0) { | 1192 | if ((miro->aci_version=aci_cmd(miro, ACI_READ_VERSION, -1, -1)) < 0) { |
1195 | snd_card_free(card); | ||
1196 | snd_printk(KERN_ERR "can't read aci version on 0x%lx.\n", | 1193 | snd_printk(KERN_ERR "can't read aci version on 0x%lx.\n", |
1197 | miro->aci_port); | 1194 | miro->aci_port); |
1198 | return -ENXIO; | 1195 | return -ENXIO; |
diff --git a/sound/oss/Kconfig b/sound/oss/Kconfig index 6275266dde2e..558c6ed443be 100644 --- a/sound/oss/Kconfig +++ b/sound/oss/Kconfig | |||
@@ -478,6 +478,20 @@ config SOUND_ACI_MIXER | |||
478 | 478 | ||
479 | This driver is also available as a module and will be called aci. | 479 | This driver is also available as a module and will be called aci. |
480 | 480 | ||
481 | config SOUND_CS4232 | ||
482 | tristate "Crystal CS4232 based (PnP) cards" | ||
483 | depends on SOUND_OSS | ||
484 | help | ||
485 | Say Y here if you have a card based on the Crystal CS4232 chip set, | ||
486 | which uses its own Plug and Play protocol. | ||
487 | |||
488 | If you compile the driver into the kernel, you have to add | ||
489 | "cs4232=<io>,<irq>,<dma>,<dma2>,<mpuio>,<mpuirq>" to the kernel | ||
490 | command line. | ||
491 | |||
492 | See <file:Documentation/sound/oss/CS4232> for more information on | ||
493 | configuring this card. | ||
494 | |||
481 | config SOUND_VMIDI | 495 | config SOUND_VMIDI |
482 | tristate "Loopback MIDI device support" | 496 | tristate "Loopback MIDI device support" |
483 | depends on SOUND_OSS | 497 | depends on SOUND_OSS |
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index c6c8333acc62..eece1c7e55a0 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c | |||
@@ -39,7 +39,6 @@ | |||
39 | #include <linux/interrupt.h> | 39 | #include <linux/interrupt.h> |
40 | #include <linux/compiler.h> | 40 | #include <linux/compiler.h> |
41 | #include <linux/delay.h> | 41 | #include <linux/delay.h> |
42 | #include <linux/dma-mapping.h> | ||
43 | 42 | ||
44 | #include <sound/driver.h> | 43 | #include <sound/driver.h> |
45 | #include <sound/core.h> | 44 | #include <sound/core.h> |
@@ -1052,7 +1051,7 @@ snd_ad1889_remove(struct pci_dev *pci) | |||
1052 | pci_set_drvdata(pci, NULL); | 1051 | pci_set_drvdata(pci, NULL); |
1053 | } | 1052 | } |
1054 | 1053 | ||
1055 | static struct pci_device_id snd_ad1889_ids[] = { | 1054 | static struct pci_device_id snd_ad1889_ids[] __devinitdata = { |
1056 | { PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) }, | 1055 | { PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) }, |
1057 | { 0, }, | 1056 | { 0, }, |
1058 | }; | 1057 | }; |
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index fc92b6896c24..e2dbc2118902 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c | |||
@@ -279,7 +279,7 @@ struct snd_ali { | |||
279 | #endif | 279 | #endif |
280 | }; | 280 | }; |
281 | 281 | ||
282 | static struct pci_device_id snd_ali_ids[] = { | 282 | static struct pci_device_id snd_ali_ids[] __devinitdata = { |
283 | {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0}, | 283 | {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0}, |
284 | {0, } | 284 | {0, } |
285 | }; | 285 | }; |
diff --git a/sound/pci/als300.c b/sound/pci/als300.c index 91899f87f037..901b08ae9174 100644 --- a/sound/pci/als300.c +++ b/sound/pci/als300.c | |||
@@ -146,7 +146,7 @@ struct snd_als300_substream_data { | |||
146 | int block_counter_register; | 146 | int block_counter_register; |
147 | }; | 147 | }; |
148 | 148 | ||
149 | static struct pci_device_id snd_als300_ids[] = { | 149 | static struct pci_device_id snd_als300_ids[] __devinitdata = { |
150 | { 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 }, | 150 | { 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 }, |
151 | { 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS }, | 151 | { 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS }, |
152 | { 0, } | 152 | { 0, } |
diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c index 100d8127a411..60423b1c678b 100644 --- a/sound/pci/als4000.c +++ b/sound/pci/als4000.c | |||
@@ -116,7 +116,7 @@ struct snd_card_als4000 { | |||
116 | #endif | 116 | #endif |
117 | }; | 117 | }; |
118 | 118 | ||
119 | static struct pci_device_id snd_als4000_ids[] = { | 119 | static struct pci_device_id snd_als4000_ids[] __devinitdata = { |
120 | { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */ | 120 | { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */ |
121 | { 0, } | 121 | { 0, } |
122 | }; | 122 | }; |
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 12e618851262..d0f759d86d3d 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c | |||
@@ -284,7 +284,7 @@ struct atiixp { | |||
284 | 284 | ||
285 | /* | 285 | /* |
286 | */ | 286 | */ |
287 | static struct pci_device_id snd_atiixp_ids[] = { | 287 | static struct pci_device_id snd_atiixp_ids[] __devinitdata = { |
288 | { 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ | 288 | { 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ |
289 | { 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */ | 289 | { 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */ |
290 | { 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ | 290 | { 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ |
diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index 1d3766044643..12a34c39caa7 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c | |||
@@ -262,7 +262,7 @@ struct atiixp_modem { | |||
262 | 262 | ||
263 | /* | 263 | /* |
264 | */ | 264 | */ |
265 | static struct pci_device_id snd_atiixp_ids[] = { | 265 | static struct pci_device_id snd_atiixp_ids[] __devinitdata = { |
266 | { 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ | 266 | { 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ |
267 | { 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ | 267 | { 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ |
268 | { 0, } | 268 | { 0, } |
diff --git a/sound/pci/au88x0/au8810.c b/sound/pci/au88x0/au8810.c index fce22c7af0ea..bd3352998ad0 100644 --- a/sound/pci/au88x0/au8810.c +++ b/sound/pci/au88x0/au8810.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include "au8810.h" | 1 | #include "au8810.h" |
2 | #include "au88x0.h" | 2 | #include "au88x0.h" |
3 | static struct pci_device_id snd_vortex_ids[] = { | 3 | static struct pci_device_id snd_vortex_ids[] __devinitdata = { |
4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE, | 4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE, |
5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, | 5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, |
6 | {0,} | 6 | {0,} |
diff --git a/sound/pci/au88x0/au8820.c b/sound/pci/au88x0/au8820.c index d1fbcce07257..7e3fd8372d8d 100644 --- a/sound/pci/au88x0/au8820.c +++ b/sound/pci/au88x0/au8820.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include "au8820.h" | 1 | #include "au8820.h" |
2 | #include "au88x0.h" | 2 | #include "au88x0.h" |
3 | static struct pci_device_id snd_vortex_ids[] = { | 3 | static struct pci_device_id snd_vortex_ids[] __devinitdata = { |
4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1, | 4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1, |
5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, | 5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, |
6 | {0,} | 6 | {0,} |
diff --git a/sound/pci/au88x0/au8830.c b/sound/pci/au88x0/au8830.c index d4f2717c14fb..b840f6608a61 100644 --- a/sound/pci/au88x0/au8830.c +++ b/sound/pci/au88x0/au8830.c | |||
@@ -1,6 +1,6 @@ | |||
1 | #include "au8830.h" | 1 | #include "au8830.h" |
2 | #include "au88x0.h" | 2 | #include "au88x0.h" |
3 | static struct pci_device_id snd_vortex_ids[] = { | 3 | static struct pci_device_id snd_vortex_ids[] __devinitdata = { |
4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_2, | 4 | {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_2, |
5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, | 5 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, |
6 | {0,} | 6 | {0,} |
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index 680077e1e057..52a364524262 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c | |||
@@ -216,7 +216,7 @@ struct snd_azf3328 { | |||
216 | int irq; | 216 | int irq; |
217 | }; | 217 | }; |
218 | 218 | ||
219 | static const struct pci_device_id snd_azf3328_ids[] = { | 219 | static const struct pci_device_id snd_azf3328_ids[] __devinitdata = { |
220 | { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */ | 220 | { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */ |
221 | { 0x122D, 0x80DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* 3328 */ | 221 | { 0x122D, 0x80DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* 3328 */ |
222 | { 0, } | 222 | { 0, } |
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index 7b44a8db033d..9ee07d4aac1e 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c | |||
@@ -774,7 +774,7 @@ static int __devinit snd_bt87x_create(struct snd_card *card, | |||
774 | .driver_data = rate } | 774 | .driver_data = rate } |
775 | 775 | ||
776 | /* driver_data is the default digital_rate value for that device */ | 776 | /* driver_data is the default digital_rate value for that device */ |
777 | static struct pci_device_id snd_bt87x_ids[] = { | 777 | static struct pci_device_id snd_bt87x_ids[] __devinitdata = { |
778 | /* Hauppauge WinTV series */ | 778 | /* Hauppauge WinTV series */ |
779 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0x13eb, 32000), | 779 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0x13eb, 32000), |
780 | /* Hauppauge WinTV series */ | 780 | /* Hauppauge WinTV series */ |
@@ -911,7 +911,7 @@ static void __devexit snd_bt87x_remove(struct pci_dev *pci) | |||
911 | 911 | ||
912 | /* default entries for all Bt87x cards - it's not exported */ | 912 | /* default entries for all Bt87x cards - it's not exported */ |
913 | /* driver_data is set to 0 to call detection */ | 913 | /* driver_data is set to 0 to call detection */ |
914 | static struct pci_device_id snd_bt87x_default_ids[] = { | 914 | static struct pci_device_id snd_bt87x_default_ids[] __devinitdata = { |
915 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, PCI_ANY_ID, PCI_ANY_ID, 0), | 915 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, PCI_ANY_ID, PCI_ANY_ID, 0), |
916 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_879, PCI_ANY_ID, PCI_ANY_ID, 0), | 916 | BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_879, PCI_ANY_ID, PCI_ANY_ID, 0), |
917 | { } | 917 | { } |
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index 9477838a9c88..fd8bfebfbd54 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c | |||
@@ -1561,7 +1561,7 @@ static void __devexit snd_ca0106_remove(struct pci_dev *pci) | |||
1561 | } | 1561 | } |
1562 | 1562 | ||
1563 | // PCI IDs | 1563 | // PCI IDs |
1564 | static struct pci_device_id snd_ca0106_ids[] = { | 1564 | static struct pci_device_id snd_ca0106_ids[] __devinitdata = { |
1565 | { 0x1102, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Audigy LS or Live 24bit */ | 1565 | { 0x1102, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Audigy LS or Live 24bit */ |
1566 | { 0, } | 1566 | { 0, } |
1567 | }; | 1567 | }; |
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 2ecbddbbdcf0..e5ce2dabd081 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c | |||
@@ -2609,7 +2609,7 @@ static inline void snd_cmipci_proc_init(struct cmipci *cm) {} | |||
2609 | #endif | 2609 | #endif |
2610 | 2610 | ||
2611 | 2611 | ||
2612 | static struct pci_device_id snd_cmipci_ids[] = { | 2612 | static struct pci_device_id snd_cmipci_ids[] __devinitdata = { |
2613 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 2613 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
2614 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 2614 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
2615 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 2615 | {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index ac4e73f69c1d..b3c94d83450a 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c | |||
@@ -494,7 +494,7 @@ struct cs4281 { | |||
494 | 494 | ||
495 | static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 495 | static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
496 | 496 | ||
497 | static struct pci_device_id snd_cs4281_ids[] = { | 497 | static struct pci_device_id snd_cs4281_ids[] __devinitdata = { |
498 | { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ | 498 | { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ |
499 | { 0, } | 499 | { 0, } |
500 | }; | 500 | }; |
diff --git a/sound/pci/cs46xx/cs46xx.c b/sound/pci/cs46xx/cs46xx.c index c590602e20cd..848d772ae3c6 100644 --- a/sound/pci/cs46xx/cs46xx.c +++ b/sound/pci/cs46xx/cs46xx.c | |||
@@ -65,7 +65,7 @@ MODULE_PARM_DESC(thinkpad, "Force to enable Thinkpad's CLKRUN control."); | |||
65 | module_param_array(mmap_valid, bool, NULL, 0444); | 65 | module_param_array(mmap_valid, bool, NULL, 0444); |
66 | MODULE_PARM_DESC(mmap_valid, "Support OSS mmap."); | 66 | MODULE_PARM_DESC(mmap_valid, "Support OSS mmap."); |
67 | 67 | ||
68 | static struct pci_device_id snd_cs46xx_ids[] = { | 68 | static struct pci_device_id snd_cs46xx_ids[] __devinitdata = { |
69 | { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4280 */ | 69 | { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4280 */ |
70 | { 0x1013, 0x6003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4612 */ | 70 | { 0x1013, 0x6003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4612 */ |
71 | { 0x1013, 0x6004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4615 */ | 71 | { 0x1013, 0x6004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4615 */ |
diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index 9fc7f3827461..2c1213a35dcc 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c | |||
@@ -45,7 +45,7 @@ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; | |||
45 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; | 45 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; |
46 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; | 46 | static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; |
47 | 47 | ||
48 | static struct pci_device_id snd_cs5535audio_ids[] = { | 48 | static struct pci_device_id snd_cs5535audio_ids[] __devinitdata = { |
49 | { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, | 49 | { PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO, |
50 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 50 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
51 | { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO, | 51 | { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO, |
diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c index 2dfa932f7825..42b11ba1d210 100644 --- a/sound/pci/emu10k1/emu10k1.c +++ b/sound/pci/emu10k1/emu10k1.c | |||
@@ -77,7 +77,7 @@ MODULE_PARM_DESC(subsystem, "Force card subsystem model."); | |||
77 | /* | 77 | /* |
78 | * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400 | 78 | * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400 |
79 | */ | 79 | */ |
80 | static struct pci_device_id snd_emu10k1_ids[] = { | 80 | static struct pci_device_id snd_emu10k1_ids[] __devinitdata = { |
81 | { 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* EMU10K1 */ | 81 | { 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* EMU10K1 */ |
82 | { 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy */ | 82 | { 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy */ |
83 | { 0x1102, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy 2 Value SB0400 */ | 83 | { 0x1102, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy 2 Value SB0400 */ |
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index 3e332f398162..d51290c18167 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/dma-mapping.h> | 36 | #include <linux/dma-mapping.h> |
37 | #include <linux/slab.h> | 37 | #include <linux/slab.h> |
38 | #include <linux/moduleparam.h> | 38 | #include <linux/moduleparam.h> |
39 | #include <linux/dma-mapping.h> | ||
40 | #include <sound/core.h> | 39 | #include <sound/core.h> |
41 | #include <sound/initval.h> | 40 | #include <sound/initval.h> |
42 | #include <sound/pcm.h> | 41 | #include <sound/pcm.h> |
@@ -1596,7 +1595,7 @@ static void __devexit snd_emu10k1x_remove(struct pci_dev *pci) | |||
1596 | } | 1595 | } |
1597 | 1596 | ||
1598 | // PCI IDs | 1597 | // PCI IDs |
1599 | static struct pci_device_id snd_emu10k1x_ids[] = { | 1598 | static struct pci_device_id snd_emu10k1x_ids[] __devinitdata = { |
1600 | { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Dell OEM version (EMU10K1) */ | 1599 | { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Dell OEM version (EMU10K1) */ |
1601 | { 0, } | 1600 | { 0, } |
1602 | }; | 1601 | }; |
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index a5533c86b0b6..ca9e34e88f62 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c | |||
@@ -446,7 +446,7 @@ struct ensoniq { | |||
446 | 446 | ||
447 | static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 447 | static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
448 | 448 | ||
449 | static struct pci_device_id snd_audiopci_ids[] = { | 449 | static struct pci_device_id snd_audiopci_ids[] __devinitdata = { |
450 | #ifdef CHIP1370 | 450 | #ifdef CHIP1370 |
451 | { 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */ | 451 | { 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */ |
452 | #endif | 452 | #endif |
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index 4d62fe439177..6f9094ca4fb4 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c | |||
@@ -242,7 +242,7 @@ struct es1938 { | |||
242 | 242 | ||
243 | static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 243 | static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
244 | 244 | ||
245 | static struct pci_device_id snd_es1938_ids[] = { | 245 | static struct pci_device_id snd_es1938_ids[] __devinitdata = { |
246 | { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ | 246 | { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ |
247 | { 0, } | 247 | { 0, } |
248 | }; | 248 | }; |
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index e3ad17f53c29..5ff4175c7b6d 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c | |||
@@ -104,7 +104,6 @@ | |||
104 | #include <linux/slab.h> | 104 | #include <linux/slab.h> |
105 | #include <linux/gameport.h> | 105 | #include <linux/gameport.h> |
106 | #include <linux/moduleparam.h> | 106 | #include <linux/moduleparam.h> |
107 | #include <linux/dma-mapping.h> | ||
108 | #include <linux/mutex.h> | 107 | #include <linux/mutex.h> |
109 | 108 | ||
110 | #include <sound/core.h> | 109 | #include <sound/core.h> |
@@ -593,7 +592,7 @@ struct es1968 { | |||
593 | 592 | ||
594 | static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 593 | static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
595 | 594 | ||
596 | static struct pci_device_id snd_es1968_ids[] = { | 595 | static struct pci_device_id snd_es1968_ids[] __devinitdata = { |
597 | /* Maestro 1 */ | 596 | /* Maestro 1 */ |
598 | { 0x1285, 0x0100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, TYPE_MAESTRO }, | 597 | { 0x1285, 0x0100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, TYPE_MAESTRO }, |
599 | /* Maestro 2 */ | 598 | /* Maestro 2 */ |
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index 6ab4aefbccf8..d72fc28c580e 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c | |||
@@ -199,7 +199,7 @@ struct fm801 { | |||
199 | #endif | 199 | #endif |
200 | }; | 200 | }; |
201 | 201 | ||
202 | static struct pci_device_id snd_fm801_ids[] = { | 202 | static struct pci_device_id snd_fm801_ids[] __devinitdata = { |
203 | { 0x1319, 0x0801, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* FM801 */ | 203 | { 0x1319, 0x0801, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* FM801 */ |
204 | { 0x5213, 0x0510, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* Gallant Odyssey Sound 4 */ | 204 | { 0x5213, 0x0510, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* Gallant Odyssey Sound 4 */ |
205 | { 0, } | 205 | { 0, } |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 0ad60ae29011..e821d65afa11 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1614,7 +1614,7 @@ static void __devexit azx_remove(struct pci_dev *pci) | |||
1614 | } | 1614 | } |
1615 | 1615 | ||
1616 | /* PCI IDs */ | 1616 | /* PCI IDs */ |
1617 | static struct pci_device_id azx_ids[] = { | 1617 | static struct pci_device_id azx_ids[] __devinitdata = { |
1618 | { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */ | 1618 | { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */ |
1619 | { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */ | 1619 | { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */ |
1620 | { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */ | 1620 | { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */ |
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index bcfca159c6a2..40f000ba1362 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -799,10 +799,14 @@ static struct hda_board_config ad1986a_cfg_tbl[] = { | |||
799 | { .modelname = "laptop-eapd", .config = AD1986A_LAPTOP_EAPD }, | 799 | { .modelname = "laptop-eapd", .config = AD1986A_LAPTOP_EAPD }, |
800 | { .pci_subvendor = 0x144d, .pci_subdevice = 0xc024, | 800 | { .pci_subvendor = 0x144d, .pci_subdevice = 0xc024, |
801 | .config = AD1986A_LAPTOP_EAPD }, /* Samsung R65-T2300 Charis */ | 801 | .config = AD1986A_LAPTOP_EAPD }, /* Samsung R65-T2300 Charis */ |
802 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1153, | ||
803 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS M9 */ | ||
802 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1213, | 804 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1213, |
803 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS A6J */ | 805 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS A6J */ |
804 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x11f7, | 806 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x11f7, |
805 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5A */ | 807 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5A */ |
808 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1297, | ||
809 | .config = AD1986A_LAPTOP_EAPD }, /* ASUS Z62F */ | ||
806 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af, | 810 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af, |
807 | .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */ | 811 | .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */ |
808 | {} | 812 | {} |
@@ -1330,12 +1334,8 @@ enum { AD1981_BASIC, AD1981_HP }; | |||
1330 | 1334 | ||
1331 | static struct hda_board_config ad1981_cfg_tbl[] = { | 1335 | static struct hda_board_config ad1981_cfg_tbl[] = { |
1332 | { .modelname = "hp", .config = AD1981_HP }, | 1336 | { .modelname = "hp", .config = AD1981_HP }, |
1333 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30aa, | 1337 | /* All HP models */ |
1334 | .config = AD1981_HP }, /* HP nx6320 */ | 1338 | { .pci_subvendor = 0x103c, .config = AD1981_HP }, |
1335 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x309f, | ||
1336 | .config = AD1981_HP }, /* HP nx9420 AngelFire */ | ||
1337 | { .pci_subvendor = 0x103c, .pci_subdevice = 0x30a2, | ||
1338 | .config = AD1981_HP }, /* HP nx9420 AngelFire */ | ||
1339 | { .modelname = "basic", .config = AD1981_BASIC }, | 1339 | { .modelname = "basic", .config = AD1981_BASIC }, |
1340 | {} | 1340 | {} |
1341 | }; | 1341 | }; |
@@ -2623,5 +2623,6 @@ struct hda_codec_preset snd_hda_preset_analog[] = { | |||
2623 | { .id = 0x11d41983, .name = "AD1983", .patch = patch_ad1983 }, | 2623 | { .id = 0x11d41983, .name = "AD1983", .patch = patch_ad1983 }, |
2624 | { .id = 0x11d41986, .name = "AD1986A", .patch = patch_ad1986a }, | 2624 | { .id = 0x11d41986, .name = "AD1986A", .patch = patch_ad1986a }, |
2625 | { .id = 0x11d41988, .name = "AD1988", .patch = patch_ad1988 }, | 2625 | { .id = 0x11d41988, .name = "AD1988", .patch = patch_ad1988 }, |
2626 | { .id = 0x11d4198b, .name = "AD1988B", .patch = patch_ad1988 }, | ||
2626 | {} /* terminator */ | 2627 | {} /* terminator */ |
2627 | }; | 2628 | }; |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 66bbdb60f50b..f0e9a9c90780 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -2148,6 +2148,7 @@ static struct hda_board_config alc880_cfg_tbl[] = { | |||
2148 | { .pci_subvendor = 0x1025, .pci_subdevice = 0x0087, .config = ALC880_6ST_DIG }, | 2148 | { .pci_subvendor = 0x1025, .pci_subdevice = 0x0087, .config = ALC880_6ST_DIG }, |
2149 | { .pci_subvendor = 0x1297, .pci_subdevice = 0xc790, .config = ALC880_6ST_DIG }, /* Shuttle ST20G5 */ | 2149 | { .pci_subvendor = 0x1297, .pci_subdevice = 0xc790, .config = ALC880_6ST_DIG }, /* Shuttle ST20G5 */ |
2150 | { .pci_subvendor = 0x1509, .pci_subdevice = 0x925d, .config = ALC880_6ST_DIG }, /* FIC P4M-915GD1 */ | 2150 | { .pci_subvendor = 0x1509, .pci_subdevice = 0x925d, .config = ALC880_6ST_DIG }, /* FIC P4M-915GD1 */ |
2151 | { .pci_subvendor = 0x1695, .pci_subdevice = 0x4012, .config = ALC880_5ST_DIG }, /* Epox EP-5LDA+ GLi */ | ||
2151 | 2152 | ||
2152 | { .modelname = "asus", .config = ALC880_ASUS }, | 2153 | { .modelname = "asus", .config = ALC880_ASUS }, |
2153 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_ASUS_DIG }, | 2154 | { .pci_subvendor = 0x1043, .pci_subdevice = 0x1964, .config = ALC880_ASUS_DIG }, |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 715260787953..8c440fb98603 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -1212,8 +1212,8 @@ static hda_nid_t vaio_mux_nids[] = { 0x15 }; | |||
1212 | static struct hda_input_mux vaio_mux = { | 1212 | static struct hda_input_mux vaio_mux = { |
1213 | .num_items = 2, | 1213 | .num_items = 2, |
1214 | .items = { | 1214 | .items = { |
1215 | /* { "HP", 0x0 }, | 1215 | /* { "HP", 0x0 }, */ |
1216 | { "Unknown", 0x1 }, */ | 1216 | { "Line", 0x1 }, |
1217 | { "Mic", 0x2 }, | 1217 | { "Mic", 0x2 }, |
1218 | { "PCM", 0x3 }, | 1218 | { "PCM", 0x3 }, |
1219 | } | 1219 | } |
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c index 32f8415558a5..c56793b381e2 100644 --- a/sound/pci/ice1712/ice1712.c +++ b/sound/pci/ice1712/ice1712.c | |||
@@ -56,7 +56,6 @@ | |||
56 | #include <linux/dma-mapping.h> | 56 | #include <linux/dma-mapping.h> |
57 | #include <linux/slab.h> | 57 | #include <linux/slab.h> |
58 | #include <linux/moduleparam.h> | 58 | #include <linux/moduleparam.h> |
59 | #include <linux/dma-mapping.h> | ||
60 | #include <linux/mutex.h> | 59 | #include <linux/mutex.h> |
61 | 60 | ||
62 | #include <sound/core.h> | 61 | #include <sound/core.h> |
@@ -108,7 +107,7 @@ module_param_array(dxr_enable, int, NULL, 0444); | |||
108 | MODULE_PARM_DESC(dxr_enable, "Enable DXR support for Terratec DMX6FIRE."); | 107 | MODULE_PARM_DESC(dxr_enable, "Enable DXR support for Terratec DMX6FIRE."); |
109 | 108 | ||
110 | 109 | ||
111 | static struct pci_device_id snd_ice1712_ids[] = { | 110 | static struct pci_device_id snd_ice1712_ids[] __devinitdata = { |
112 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_ICE_1712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* ICE1712 */ | 111 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_ICE_1712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* ICE1712 */ |
113 | { 0, } | 112 | { 0, } |
114 | }; | 113 | }; |
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index fce616c2761f..b1c007e022d2 100644 --- a/sound/pci/ice1712/ice1724.c +++ b/sound/pci/ice1712/ice1724.c | |||
@@ -86,7 +86,7 @@ MODULE_PARM_DESC(model, "Use the given board model."); | |||
86 | 86 | ||
87 | 87 | ||
88 | /* Both VT1720 and VT1724 have the same PCI IDs */ | 88 | /* Both VT1720 and VT1724 have the same PCI IDs */ |
89 | static struct pci_device_id snd_vt1724_ids[] = { | 89 | static struct pci_device_id snd_vt1724_ids[] __devinitdata = { |
90 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_VT1724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, | 90 | { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_VT1724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, |
91 | { 0, } | 91 | { 0, } |
92 | }; | 92 | }; |
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index ebbf2cf4ca0f..0df7602568e2 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c | |||
@@ -413,7 +413,7 @@ struct intel8x0 { | |||
413 | u32 int_sta_mask; /* interrupt status mask */ | 413 | u32 int_sta_mask; /* interrupt status mask */ |
414 | }; | 414 | }; |
415 | 415 | ||
416 | static struct pci_device_id snd_intel8x0_ids[] = { | 416 | static struct pci_device_id snd_intel8x0_ids[] __devinitdata = { |
417 | { 0x8086, 0x2415, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ | 417 | { 0x8086, 0x2415, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ |
418 | { 0x8086, 0x2425, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ | 418 | { 0x8086, 0x2425, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ |
419 | { 0x8086, 0x2445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ | 419 | { 0x8086, 0x2445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ |
@@ -1293,6 +1293,7 @@ static int snd_intel8x0_ali_ac97spdifout_close(struct snd_pcm_substream *substre | |||
1293 | return 0; | 1293 | return 0; |
1294 | } | 1294 | } |
1295 | 1295 | ||
1296 | #if 0 // NYI | ||
1296 | static int snd_intel8x0_ali_spdifin_open(struct snd_pcm_substream *substream) | 1297 | static int snd_intel8x0_ali_spdifin_open(struct snd_pcm_substream *substream) |
1297 | { | 1298 | { |
1298 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); | 1299 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); |
@@ -1308,7 +1309,6 @@ static int snd_intel8x0_ali_spdifin_close(struct snd_pcm_substream *substream) | |||
1308 | return 0; | 1309 | return 0; |
1309 | } | 1310 | } |
1310 | 1311 | ||
1311 | #if 0 // NYI | ||
1312 | static int snd_intel8x0_ali_spdifout_open(struct snd_pcm_substream *substream) | 1312 | static int snd_intel8x0_ali_spdifout_open(struct snd_pcm_substream *substream) |
1313 | { | 1313 | { |
1314 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); | 1314 | struct intel8x0 *chip = snd_pcm_substream_chip(substream); |
@@ -1435,6 +1435,7 @@ static struct snd_pcm_ops snd_intel8x0_ali_ac97spdifout_ops = { | |||
1435 | .pointer = snd_intel8x0_pcm_pointer, | 1435 | .pointer = snd_intel8x0_pcm_pointer, |
1436 | }; | 1436 | }; |
1437 | 1437 | ||
1438 | #if 0 // NYI | ||
1438 | static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { | 1439 | static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { |
1439 | .open = snd_intel8x0_ali_spdifin_open, | 1440 | .open = snd_intel8x0_ali_spdifin_open, |
1440 | .close = snd_intel8x0_ali_spdifin_close, | 1441 | .close = snd_intel8x0_ali_spdifin_close, |
@@ -1446,7 +1447,6 @@ static struct snd_pcm_ops snd_intel8x0_ali_spdifin_ops = { | |||
1446 | .pointer = snd_intel8x0_pcm_pointer, | 1447 | .pointer = snd_intel8x0_pcm_pointer, |
1447 | }; | 1448 | }; |
1448 | 1449 | ||
1449 | #if 0 // NYI | ||
1450 | static struct snd_pcm_ops snd_intel8x0_ali_spdifout_ops = { | 1450 | static struct snd_pcm_ops snd_intel8x0_ali_spdifout_ops = { |
1451 | .open = snd_intel8x0_ali_spdifout_open, | 1451 | .open = snd_intel8x0_ali_spdifout_open, |
1452 | .close = snd_intel8x0_ali_spdifout_close, | 1452 | .close = snd_intel8x0_ali_spdifout_close, |
@@ -1582,7 +1582,7 @@ static struct ich_pcm_table ali_pcms[] __devinitdata = { | |||
1582 | { | 1582 | { |
1583 | .suffix = "IEC958", | 1583 | .suffix = "IEC958", |
1584 | .playback_ops = &snd_intel8x0_ali_ac97spdifout_ops, | 1584 | .playback_ops = &snd_intel8x0_ali_ac97spdifout_ops, |
1585 | .capture_ops = &snd_intel8x0_ali_spdifin_ops, | 1585 | /* .capture_ops = &snd_intel8x0_ali_spdifin_ops, */ |
1586 | .prealloc_size = 64 * 1024, | 1586 | .prealloc_size = 64 * 1024, |
1587 | .prealloc_max_size = 128 * 1024, | 1587 | .prealloc_max_size = 128 * 1024, |
1588 | .ac97_idx = ALID_AC97SPDIFOUT, | 1588 | .ac97_idx = ALID_AC97SPDIFOUT, |
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index 47e26aaa9ad7..720635f0cb81 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c | |||
@@ -224,7 +224,7 @@ struct intel8x0m { | |||
224 | unsigned int pcm_pos_shift; | 224 | unsigned int pcm_pos_shift; |
225 | }; | 225 | }; |
226 | 226 | ||
227 | static struct pci_device_id snd_intel8x0m_ids[] = { | 227 | static struct pci_device_id snd_intel8x0m_ids[] __devinitdata = { |
228 | { 0x8086, 0x2416, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ | 228 | { 0x8086, 0x2416, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ |
229 | { 0x8086, 0x2426, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ | 229 | { 0x8086, 0x2426, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ |
230 | { 0x8086, 0x2446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ | 230 | { 0x8086, 0x2446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ |
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index 4721c096335e..e39fad1a4200 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c | |||
@@ -424,7 +424,7 @@ module_param_array(enable, bool, NULL, 0444); | |||
424 | MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard."); | 424 | MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard."); |
425 | MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>"); | 425 | MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>"); |
426 | 426 | ||
427 | static struct pci_device_id snd_korg1212_ids[] = { | 427 | static struct pci_device_id snd_korg1212_ids[] __devinitdata = { |
428 | { | 428 | { |
429 | .vendor = 0x10b5, | 429 | .vendor = 0x10b5, |
430 | .device = 0x906d, | 430 | .device = 0x906d, |
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index 9c90d901e6b9..1928e06b6d82 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c | |||
@@ -41,7 +41,6 @@ | |||
41 | #include <linux/slab.h> | 41 | #include <linux/slab.h> |
42 | #include <linux/vmalloc.h> | 42 | #include <linux/vmalloc.h> |
43 | #include <linux/moduleparam.h> | 43 | #include <linux/moduleparam.h> |
44 | #include <linux/dma-mapping.h> | ||
45 | #include <sound/core.h> | 44 | #include <sound/core.h> |
46 | #include <sound/info.h> | 45 | #include <sound/info.h> |
47 | #include <sound/control.h> | 46 | #include <sound/control.h> |
@@ -870,7 +869,7 @@ struct snd_m3 { | |||
870 | /* | 869 | /* |
871 | * pci ids | 870 | * pci ids |
872 | */ | 871 | */ |
873 | static struct pci_device_id snd_m3_ids[] = { | 872 | static struct pci_device_id snd_m3_ids[] __devinitdata = { |
874 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO_1, PCI_ANY_ID, PCI_ANY_ID, | 873 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO_1, PCI_ANY_ID, PCI_ANY_ID, |
875 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, | 874 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, |
876 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO, PCI_ANY_ID, PCI_ANY_ID, | 875 | {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO, PCI_ANY_ID, PCI_ANY_ID, |
diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c index b5a095052d4c..09cc0786495a 100644 --- a/sound/pci/mixart/mixart.c +++ b/sound/pci/mixart/mixart.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/dma-mapping.h> | 28 | #include <linux/dma-mapping.h> |
29 | #include <linux/moduleparam.h> | 29 | #include <linux/moduleparam.h> |
30 | #include <linux/mutex.h> | 30 | #include <linux/mutex.h> |
31 | #include <linux/dma-mapping.h> | ||
32 | 31 | ||
33 | #include <sound/core.h> | 32 | #include <sound/core.h> |
34 | #include <sound/initval.h> | 33 | #include <sound/initval.h> |
@@ -62,7 +61,7 @@ MODULE_PARM_DESC(enable, "Enable Digigram " CARD_NAME " soundcard."); | |||
62 | /* | 61 | /* |
63 | */ | 62 | */ |
64 | 63 | ||
65 | static struct pci_device_id snd_mixart_ids[] = { | 64 | static struct pci_device_id snd_mixart_ids[] __devinitdata = { |
66 | { 0x1057, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* MC8240 */ | 65 | { 0x1057, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* MC8240 */ |
67 | { 0, } | 66 | { 0, } |
68 | }; | 67 | }; |
diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index cc297abc9d11..b92d6600deb9 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c | |||
@@ -263,7 +263,7 @@ struct nm256 { | |||
263 | /* | 263 | /* |
264 | * PCI ids | 264 | * PCI ids |
265 | */ | 265 | */ |
266 | static struct pci_device_id snd_nm256_ids[] = { | 266 | static struct pci_device_id snd_nm256_ids[] __devinitdata = { |
267 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 267 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
268 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 268 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
269 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 269 | {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c index 35875c8aa299..dafa2235abaa 100644 --- a/sound/pci/pcxhr/pcxhr.c +++ b/sound/pci/pcxhr/pcxhr.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/delay.h> | 30 | #include <linux/delay.h> |
31 | #include <linux/moduleparam.h> | 31 | #include <linux/moduleparam.h> |
32 | #include <linux/mutex.h> | 32 | #include <linux/mutex.h> |
33 | #include <linux/dma-mapping.h> | ||
34 | 33 | ||
35 | #include <sound/core.h> | 34 | #include <sound/core.h> |
36 | #include <sound/initval.h> | 35 | #include <sound/initval.h> |
@@ -74,7 +73,7 @@ enum { | |||
74 | PCI_ID_LAST | 73 | PCI_ID_LAST |
75 | }; | 74 | }; |
76 | 75 | ||
77 | static struct pci_device_id pcxhr_ids[] = { | 76 | static struct pci_device_id pcxhr_ids[] __devinitdata = { |
78 | { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */ | 77 | { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */ |
79 | { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */ | 78 | { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */ |
80 | { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */ | 79 | { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */ |
diff --git a/sound/pci/pcxhr/pcxhr_hwdep.c b/sound/pci/pcxhr/pcxhr_hwdep.c index 03517c10e99c..369c19fea985 100644 --- a/sound/pci/pcxhr/pcxhr_hwdep.c +++ b/sound/pci/pcxhr/pcxhr_hwdep.c | |||
@@ -385,8 +385,8 @@ static int pcxhr_hwdep_dsp_load(struct snd_hwdep *hw, | |||
385 | fw.size = dsp->length; | 385 | fw.size = dsp->length; |
386 | fw.data = vmalloc(fw.size); | 386 | fw.data = vmalloc(fw.size); |
387 | if (! fw.data) { | 387 | if (! fw.data) { |
388 | snd_printk(KERN_ERR "pcxhr: cannot allocate dsp image (%d bytes)\n", | 388 | snd_printk(KERN_ERR "pcxhr: cannot allocate dsp image (%lu bytes)\n", |
389 | fw.size); | 389 | (unsigned long)fw.size); |
390 | return -ENOMEM; | 390 | return -ENOMEM; |
391 | } | 391 | } |
392 | if (copy_from_user(fw.data, dsp->image, dsp->length)) { | 392 | if (copy_from_user(fw.data, dsp->image, dsp->length)) { |
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index f148ee434a6b..d8cc985d7241 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c | |||
@@ -506,7 +506,7 @@ static int riptide_reset(struct cmdif *cif, struct snd_riptide *chip); | |||
506 | /* | 506 | /* |
507 | */ | 507 | */ |
508 | 508 | ||
509 | static struct pci_device_id snd_riptide_ids[] = { | 509 | static struct pci_device_id snd_riptide_ids[] __devinitdata = { |
510 | { | 510 | { |
511 | .vendor = 0x127a,.device = 0x4310, | 511 | .vendor = 0x127a,.device = 0x4310, |
512 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, | 512 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, |
@@ -527,7 +527,7 @@ static struct pci_device_id snd_riptide_ids[] = { | |||
527 | }; | 527 | }; |
528 | 528 | ||
529 | #ifdef SUPPORT_JOYSTICK | 529 | #ifdef SUPPORT_JOYSTICK |
530 | static struct pci_device_id snd_riptide_joystick_ids[] = { | 530 | static struct pci_device_id snd_riptide_joystick_ids[] __devinitdata = { |
531 | { | 531 | { |
532 | .vendor = 0x127a,.device = 0x4312, | 532 | .vendor = 0x127a,.device = 0x4312, |
533 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, | 533 | .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, |
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c index ab78544bf042..55b1d4838d97 100644 --- a/sound/pci/rme32.c +++ b/sound/pci/rme32.c | |||
@@ -227,7 +227,7 @@ struct rme32 { | |||
227 | struct snd_kcontrol *spdif_ctl; | 227 | struct snd_kcontrol *spdif_ctl; |
228 | }; | 228 | }; |
229 | 229 | ||
230 | static struct pci_device_id snd_rme32_ids[] = { | 230 | static struct pci_device_id snd_rme32_ids[] __devinitdata = { |
231 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32, | 231 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32, |
232 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, | 232 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, |
233 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32_8, | 233 | {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32_8, |
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c index 6c2a9f4a7659..3c1bc533d511 100644 --- a/sound/pci/rme96.c +++ b/sound/pci/rme96.c | |||
@@ -232,7 +232,7 @@ struct rme96 { | |||
232 | struct snd_kcontrol *spdif_ctl; | 232 | struct snd_kcontrol *spdif_ctl; |
233 | }; | 233 | }; |
234 | 234 | ||
235 | static struct pci_device_id snd_rme96_ids[] = { | 235 | static struct pci_device_id snd_rme96_ids[] __devinitdata = { |
236 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96, | 236 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96, |
237 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 237 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
238 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96_8, | 238 | { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96_8, |
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index ebf7a2b86c23..61f82f0d5cc6 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c | |||
@@ -568,7 +568,7 @@ static void snd_hammerfall_free_buffer(struct snd_dma_buffer *dmab, struct pci_d | |||
568 | } | 568 | } |
569 | 569 | ||
570 | 570 | ||
571 | static struct pci_device_id snd_hdsp_ids[] = { | 571 | static struct pci_device_id snd_hdsp_ids[] __devinitdata = { |
572 | { | 572 | { |
573 | .vendor = PCI_VENDOR_ID_XILINX, | 573 | .vendor = PCI_VENDOR_ID_XILINX, |
574 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP, | 574 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP, |
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index b5538efd146b..722b9e6ce54a 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c | |||
@@ -426,7 +426,7 @@ static char channel_map_madi_qs[HDSPM_MAX_CHANNELS] = { | |||
426 | }; | 426 | }; |
427 | 427 | ||
428 | 428 | ||
429 | static struct pci_device_id snd_hdspm_ids[] = { | 429 | static struct pci_device_id snd_hdspm_ids[] __devinitdata = { |
430 | { | 430 | { |
431 | .vendor = PCI_VENDOR_ID_XILINX, | 431 | .vendor = PCI_VENDOR_ID_XILINX, |
432 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI, | 432 | .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI, |
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c index a687eb63236f..75d6406303d3 100644 --- a/sound/pci/rme9652/rme9652.c +++ b/sound/pci/rme9652/rme9652.c | |||
@@ -315,7 +315,7 @@ static void snd_hammerfall_free_buffer(struct snd_dma_buffer *dmab, struct pci_d | |||
315 | } | 315 | } |
316 | 316 | ||
317 | 317 | ||
318 | static struct pci_device_id snd_rme9652_ids[] = { | 318 | static struct pci_device_id snd_rme9652_ids[] __devinitdata = { |
319 | { | 319 | { |
320 | .vendor = 0x10ee, | 320 | .vendor = 0x10ee, |
321 | .device = 0x3fc4, | 321 | .device = 0x3fc4, |
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index 2d66a09fe5ee..91f8bf3ae9fa 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c | |||
@@ -243,7 +243,7 @@ struct sonicvibes { | |||
243 | #endif | 243 | #endif |
244 | }; | 244 | }; |
245 | 245 | ||
246 | static struct pci_device_id snd_sonic_ids[] = { | 246 | static struct pci_device_id snd_sonic_ids[] __devinitdata = { |
247 | { 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, | 247 | { 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, |
248 | { 0, } | 248 | { 0, } |
249 | }; | 249 | }; |
diff --git a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c index b4538045049f..9624a5f2b875 100644 --- a/sound/pci/trident/trident.c +++ b/sound/pci/trident/trident.c | |||
@@ -63,7 +63,7 @@ MODULE_PARM_DESC(pcm_channels, "Number of hardware channels assigned for PCM."); | |||
63 | module_param_array(wavetable_size, int, NULL, 0444); | 63 | module_param_array(wavetable_size, int, NULL, 0444); |
64 | MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth."); | 64 | MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth."); |
65 | 65 | ||
66 | static struct pci_device_id snd_trident_ids[] = { | 66 | static struct pci_device_id snd_trident_ids[] __devinitdata = { |
67 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), | 67 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), |
68 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, | 68 | PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, |
69 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), | 69 | {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), |
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index 0f171dd1377b..39daf62d2bad 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c | |||
@@ -123,6 +123,7 @@ module_param(enable, bool, 0444); | |||
123 | #define VIA_REV_8233A 0x40 /* 1 rec, 1 multi-pb, spdf */ | 123 | #define VIA_REV_8233A 0x40 /* 1 rec, 1 multi-pb, spdf */ |
124 | #define VIA_REV_8235 0x50 /* 2 rec, 4 pb, 1 multi-pb, spdif */ | 124 | #define VIA_REV_8235 0x50 /* 2 rec, 4 pb, 1 multi-pb, spdif */ |
125 | #define VIA_REV_8237 0x60 | 125 | #define VIA_REV_8237 0x60 |
126 | #define VIA_REV_8251 0x70 | ||
126 | 127 | ||
127 | /* | 128 | /* |
128 | * Direct registers | 129 | * Direct registers |
@@ -395,7 +396,7 @@ struct via82xx { | |||
395 | #endif | 396 | #endif |
396 | }; | 397 | }; |
397 | 398 | ||
398 | static struct pci_device_id snd_via82xx_ids[] = { | 399 | static struct pci_device_id snd_via82xx_ids[] __devinitdata = { |
399 | /* 0x1106, 0x3058 */ | 400 | /* 0x1106, 0x3058 */ |
400 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA686, }, /* 686A */ | 401 | { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA686, }, /* 686A */ |
401 | /* 0x1106, 0x3059 */ | 402 | /* 0x1106, 0x3059 */ |
@@ -862,6 +863,11 @@ static snd_pcm_uframes_t snd_via8233_pcm_pointer(struct snd_pcm_substream *subst | |||
862 | if (!status) | 863 | if (!status) |
863 | status = inb(VIADEV_REG(viadev, OFFSET_STATUS)); | 864 | status = inb(VIADEV_REG(viadev, OFFSET_STATUS)); |
864 | 865 | ||
866 | /* An apparent bug in the 8251 is worked around by sending a | ||
867 | * REG_CTRL_START. */ | ||
868 | if (chip->revision == VIA_REV_8251 && (status & VIA_REG_STAT_EOL)) | ||
869 | snd_via82xx_pcm_trigger(substream, SNDRV_PCM_TRIGGER_START); | ||
870 | |||
865 | if (!(status & VIA_REG_STAT_ACTIVE)) { | 871 | if (!(status & VIA_REG_STAT_ACTIVE)) { |
866 | res = 0; | 872 | res = 0; |
867 | goto unlock; | 873 | goto unlock; |
@@ -2313,6 +2319,7 @@ static struct via823x_info via823x_cards[] __devinitdata = { | |||
2313 | { VIA_REV_8233A, "VIA 8233A", TYPE_VIA8233A }, | 2319 | { VIA_REV_8233A, "VIA 8233A", TYPE_VIA8233A }, |
2314 | { VIA_REV_8235, "VIA 8235", TYPE_VIA8233 }, | 2320 | { VIA_REV_8235, "VIA 8235", TYPE_VIA8233 }, |
2315 | { VIA_REV_8237, "VIA 8237", TYPE_VIA8233 }, | 2321 | { VIA_REV_8237, "VIA 8237", TYPE_VIA8233 }, |
2322 | { VIA_REV_8251, "VIA 8251", TYPE_VIA8233 }, | ||
2316 | }; | 2323 | }; |
2317 | 2324 | ||
2318 | /* | 2325 | /* |
@@ -2325,7 +2332,7 @@ struct dxs_whitelist { | |||
2325 | short action; /* new dxs_support value */ | 2332 | short action; /* new dxs_support value */ |
2326 | }; | 2333 | }; |
2327 | 2334 | ||
2328 | static int __devinit check_dxs_list(struct pci_dev *pci) | 2335 | static int __devinit check_dxs_list(struct pci_dev *pci, int revision) |
2329 | { | 2336 | { |
2330 | static struct dxs_whitelist whitelist[] = { | 2337 | static struct dxs_whitelist whitelist[] = { |
2331 | { .subvendor = 0x1005, .subdevice = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */ | 2338 | { .subvendor = 0x1005, .subdevice = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */ |
@@ -2342,6 +2349,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci) | |||
2342 | { .subvendor = 0x1043, .subdevice = 0x810d, .action = VIA_DXS_SRC }, /* ASUS */ | 2349 | { .subvendor = 0x1043, .subdevice = 0x810d, .action = VIA_DXS_SRC }, /* ASUS */ |
2343 | { .subvendor = 0x1043, .subdevice = 0x812a, .action = VIA_DXS_SRC }, /* ASUS A8V Deluxe */ | 2350 | { .subvendor = 0x1043, .subdevice = 0x812a, .action = VIA_DXS_SRC }, /* ASUS A8V Deluxe */ |
2344 | { .subvendor = 0x1043, .subdevice = 0x8174, .action = VIA_DXS_SRC }, /* ASUS */ | 2351 | { .subvendor = 0x1043, .subdevice = 0x8174, .action = VIA_DXS_SRC }, /* ASUS */ |
2352 | { .subvendor = 0x1043, .subdevice = 0x81b9, .action = VIA_DXS_SRC }, /* ASUS A8V-MX */ | ||
2345 | { .subvendor = 0x1071, .subdevice = 0x8375, .action = VIA_DXS_NO_VRA }, /* Vobis/Yakumo/Mitac notebook */ | 2353 | { .subvendor = 0x1071, .subdevice = 0x8375, .action = VIA_DXS_NO_VRA }, /* Vobis/Yakumo/Mitac notebook */ |
2346 | { .subvendor = 0x1071, .subdevice = 0x8399, .action = VIA_DXS_NO_VRA }, /* Umax AB 595T (VIA K8N800A - VT8237) */ | 2354 | { .subvendor = 0x1071, .subdevice = 0x8399, .action = VIA_DXS_NO_VRA }, /* Umax AB 595T (VIA K8N800A - VT8237) */ |
2347 | { .subvendor = 0x10cf, .subdevice = 0x118e, .action = VIA_DXS_ENABLE }, /* FSC laptop */ | 2355 | { .subvendor = 0x10cf, .subdevice = 0x118e, .action = VIA_DXS_ENABLE }, /* FSC laptop */ |
@@ -2405,6 +2413,10 @@ static int __devinit check_dxs_list(struct pci_dev *pci) | |||
2405 | } | 2413 | } |
2406 | } | 2414 | } |
2407 | 2415 | ||
2416 | /* for newer revision, default to DXS_SRC */ | ||
2417 | if (revision >= VIA_REV_8235) | ||
2418 | return VIA_DXS_SRC; | ||
2419 | |||
2408 | /* | 2420 | /* |
2409 | * not detected, try 48k rate only to be sure. | 2421 | * not detected, try 48k rate only to be sure. |
2410 | */ | 2422 | */ |
@@ -2449,7 +2461,7 @@ static int __devinit snd_via82xx_probe(struct pci_dev *pci, | |||
2449 | } | 2461 | } |
2450 | if (chip_type != TYPE_VIA8233A) { | 2462 | if (chip_type != TYPE_VIA8233A) { |
2451 | if (dxs_support == VIA_DXS_AUTO) | 2463 | if (dxs_support == VIA_DXS_AUTO) |
2452 | dxs_support = check_dxs_list(pci); | 2464 | dxs_support = check_dxs_list(pci, revision); |
2453 | /* force to use VIA8233 or 8233A model according to | 2465 | /* force to use VIA8233 or 8233A model according to |
2454 | * dxs_support module option | 2466 | * dxs_support module option |
2455 | */ | 2467 | */ |
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c index 22ce4d309929..ef97e50cd6c2 100644 --- a/sound/pci/via82xx_modem.c +++ b/sound/pci/via82xx_modem.c | |||
@@ -261,7 +261,7 @@ struct via82xx_modem { | |||
261 | struct snd_info_entry *proc_entry; | 261 | struct snd_info_entry *proc_entry; |
262 | }; | 262 | }; |
263 | 263 | ||
264 | static struct pci_device_id snd_via82xx_modem_ids[] = { | 264 | static struct pci_device_id snd_via82xx_modem_ids[] __devinitdata = { |
265 | { 0x1106, 0x3068, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA82XX_MODEM, }, | 265 | { 0x1106, 0x3068, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA82XX_MODEM, }, |
266 | { 0, } | 266 | { 0, } |
267 | }; | 267 | }; |
diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c index c816ddf1b215..0f1ebb010a5e 100644 --- a/sound/pci/vx222/vx222.c +++ b/sound/pci/vx222/vx222.c | |||
@@ -60,7 +60,7 @@ enum { | |||
60 | VX_PCI_VX222_NEW | 60 | VX_PCI_VX222_NEW |
61 | }; | 61 | }; |
62 | 62 | ||
63 | static struct pci_device_id snd_vx222_ids[] = { | 63 | static struct pci_device_id snd_vx222_ids[] __devinitdata = { |
64 | { 0x10b5, 0x9050, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_OLD, }, /* PLX */ | 64 | { 0x10b5, 0x9050, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_OLD, }, /* PLX */ |
65 | { 0x10b5, 0x9030, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_NEW, }, /* PLX */ | 65 | { 0x10b5, 0x9030, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_NEW, }, /* PLX */ |
66 | { 0, } | 66 | { 0, } |
diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c index db57ce939fa8..65ebf5f1933a 100644 --- a/sound/pci/ymfpci/ymfpci.c +++ b/sound/pci/ymfpci/ymfpci.c | |||
@@ -70,7 +70,7 @@ MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch"); | |||
70 | module_param_array(rear_swap, bool, NULL, 0444); | 70 | module_param_array(rear_swap, bool, NULL, 0444); |
71 | MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output"); | 71 | MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output"); |
72 | 72 | ||
73 | static struct pci_device_id snd_ymfpci_ids[] = { | 73 | static struct pci_device_id snd_ymfpci_ids[] __devinitdata = { |
74 | { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ | 74 | { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ |
75 | { 0x1073, 0x000d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724F */ | 75 | { 0x1073, 0x000d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724F */ |
76 | { 0x1073, 0x000a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF740 */ | 76 | { 0x1073, 0x000a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF740 */ |
diff --git a/sound/pcmcia/Kconfig b/sound/pcmcia/Kconfig index 5d1b0b762efa..c9fa1a2bc58b 100644 --- a/sound/pcmcia/Kconfig +++ b/sound/pcmcia/Kconfig | |||
@@ -5,7 +5,7 @@ menu "PCMCIA devices" | |||
5 | 5 | ||
6 | config SND_VXPOCKET | 6 | config SND_VXPOCKET |
7 | tristate "Digigram VXpocket" | 7 | tristate "Digigram VXpocket" |
8 | depends on SND && PCMCIA && ISA | 8 | depends on SND && PCMCIA |
9 | select SND_VX_LIB | 9 | select SND_VX_LIB |
10 | help | 10 | help |
11 | Say Y here to include support for Digigram VXpocket and | 11 | Say Y here to include support for Digigram VXpocket and |
@@ -16,7 +16,7 @@ config SND_VXPOCKET | |||
16 | 16 | ||
17 | config SND_PDAUDIOCF | 17 | config SND_PDAUDIOCF |
18 | tristate "Sound Core PDAudioCF" | 18 | tristate "Sound Core PDAudioCF" |
19 | depends on SND && PCMCIA && ISA | 19 | depends on SND && PCMCIA |
20 | select SND_PCM | 20 | select SND_PCM |
21 | help | 21 | help |
22 | Say Y here to include support for Sound Core PDAudioCF | 22 | Say Y here to include support for Sound Core PDAudioCF |
diff --git a/sound/ppc/toonie.c b/sound/ppc/toonie.c index 4e595172e423..1ac7c8552f50 100644 --- a/sound/ppc/toonie.c +++ b/sound/ppc/toonie.c | |||
@@ -335,7 +335,7 @@ static void toonie_cleanup(struct snd_pmac *chip) | |||
335 | chip->mixer_data = NULL; | 335 | chip->mixer_data = NULL; |
336 | } | 336 | } |
337 | 337 | ||
338 | int snd_pmac_toonie_init(struct snd_pmac *chip) | 338 | int __init snd_pmac_toonie_init(struct snd_pmac *chip) |
339 | { | 339 | { |
340 | struct pmac_toonie *mix; | 340 | struct pmac_toonie *mix; |
341 | 341 | ||
diff --git a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h index 0992a0923f1a..9351846d7a9d 100644 --- a/sound/usb/usbquirks.h +++ b/sound/usb/usbquirks.h | |||
@@ -1531,6 +1531,15 @@ YAMAHA_DEVICE(0x7010, "UB99"), | |||
1531 | } | 1531 | } |
1532 | }, | 1532 | }, |
1533 | { | 1533 | { |
1534 | USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0014), | ||
1535 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { | ||
1536 | .vendor_name = "TerraTec", | ||
1537 | .product_name = "PHASE 26", | ||
1538 | .ifnum = 3, | ||
1539 | .type = QUIRK_MIDI_STANDARD_INTERFACE | ||
1540 | } | ||
1541 | }, | ||
1542 | { | ||
1534 | USB_DEVICE(0x0ccd, 0x0035), | 1543 | USB_DEVICE(0x0ccd, 0x0035), |
1535 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { | 1544 | .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { |
1536 | .vendor_name = "Miditech", | 1545 | .vendor_name = "Miditech", |