diff options
106 files changed, 1476 insertions, 984 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 498ff31f3aa1..5c8695a3d139 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -328,21 +328,20 @@ Who: Adrian Bunk <bunk@stusta.de> | |||
328 | 328 | ||
329 | --------------------------- | 329 | --------------------------- |
330 | 330 | ||
331 | What: libata.spindown_compat module parameter | 331 | What: libata spindown skipping and warning |
332 | When: Dec 2008 | 332 | When: Dec 2008 |
333 | Why: halt(8) synchronizes caches for and spins down libata disks | 333 | Why: Some halt(8) implementations synchronize caches for and spin |
334 | because libata didn't use to spin down disk on system halt | 334 | down libata disks because libata didn't use to spin down disk on |
335 | (only synchronized caches). | 335 | system halt (only synchronized caches). |
336 | Spin down on system halt is now implemented and can be tested | 336 | Spin down on system halt is now implemented. sysfs node |
337 | using sysfs node /sys/class/scsi_disk/h:c:i:l/manage_start_stop. | 337 | /sys/class/scsi_disk/h:c:i:l/manage_start_stop is present if |
338 | spin down support is available. | ||
338 | Because issuing spin down command to an already spun down disk | 339 | Because issuing spin down command to an already spun down disk |
339 | makes some disks spin up just to spin down again, the old | 340 | makes some disks spin up just to spin down again, libata tracks |
340 | behavior needs to be maintained till userspace tool is updated | 341 | device spindown status to skip the extra spindown command and |
341 | to check the sysfs node and not to spin down disks with the | 342 | warn about it. |
342 | node set to one. | 343 | This is to give userspace tools the time to get updated and will |
343 | This module parameter is to give userspace tool the time to | 344 | be removed after userspace is reasonably updated. |
344 | get updated and should be removed after userspace is | ||
345 | reasonably updated. | ||
346 | Who: Tejun Heo <htejun@gmail.com> | 345 | Who: Tejun Heo <htejun@gmail.com> |
347 | 346 | ||
348 | --------------------------- | 347 | --------------------------- |
diff --git a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt index d01b7a2a0f2e..66fa67fec2a7 100644 --- a/Documentation/i386/boot.txt +++ b/Documentation/i386/boot.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | ---------------------------- | 2 | ---------------------------- |
3 | 3 | ||
4 | H. Peter Anvin <hpa@zytor.com> | 4 | H. Peter Anvin <hpa@zytor.com> |
5 | Last update 2007-05-07 | 5 | Last update 2007-05-16 |
6 | 6 | ||
7 | On the i386 platform, the Linux kernel uses a rather complicated boot | 7 | On the i386 platform, the Linux kernel uses a rather complicated boot |
8 | convention. This has evolved partially due to historical aspects, as | 8 | convention. This has evolved partially due to historical aspects, as |
@@ -52,7 +52,8 @@ zImage kernels, typically looks like: | |||
52 | 0A0000 +------------------------+ | 52 | 0A0000 +------------------------+ |
53 | | Reserved for BIOS | Do not use. Reserved for BIOS EBDA. | 53 | | Reserved for BIOS | Do not use. Reserved for BIOS EBDA. |
54 | 09A000 +------------------------+ | 54 | 09A000 +------------------------+ |
55 | | Stack/heap/cmdline | For use by the kernel real-mode code. | 55 | | Command line | |
56 | | Stack/heap | For use by the kernel real-mode code. | ||
56 | 098000 +------------------------+ | 57 | 098000 +------------------------+ |
57 | | Kernel setup | The kernel real-mode code. | 58 | | Kernel setup | The kernel real-mode code. |
58 | 090200 +------------------------+ | 59 | 090200 +------------------------+ |
@@ -73,10 +74,9 @@ zImage kernels, typically looks like: | |||
73 | When using bzImage, the protected-mode kernel was relocated to | 74 | When using bzImage, the protected-mode kernel was relocated to |
74 | 0x100000 ("high memory"), and the kernel real-mode block (boot sector, | 75 | 0x100000 ("high memory"), and the kernel real-mode block (boot sector, |
75 | setup, and stack/heap) was made relocatable to any address between | 76 | setup, and stack/heap) was made relocatable to any address between |
76 | 0x10000 and end of low memory. Unfortunately, in protocols 2.00 and | 77 | 0x10000 and end of low memory. Unfortunately, in protocols 2.00 and |
77 | 2.01 the command line is still required to live in the 0x9XXXX memory | 78 | 2.01 the 0x90000+ memory range is still used internally by the kernel; |
78 | range, and that memory range is still overwritten by the early kernel. | 79 | the 2.02 protocol resolves that problem. |
79 | The 2.02 protocol resolves that problem. | ||
80 | 80 | ||
81 | It is desirable to keep the "memory ceiling" -- the highest point in | 81 | It is desirable to keep the "memory ceiling" -- the highest point in |
82 | low memory touched by the boot loader -- as low as possible, since | 82 | low memory touched by the boot loader -- as low as possible, since |
@@ -93,6 +93,35 @@ zImage or old bzImage kernels, which need data written into the | |||
93 | 0x90000 segment, the boot loader should make sure not to use memory | 93 | 0x90000 segment, the boot loader should make sure not to use memory |
94 | above the 0x9A000 point; too many BIOSes will break above that point. | 94 | above the 0x9A000 point; too many BIOSes will break above that point. |
95 | 95 | ||
96 | For a modern bzImage kernel with boot protocol version >= 2.02, a | ||
97 | memory layout like the following is suggested: | ||
98 | |||
99 | ~ ~ | ||
100 | | Protected-mode kernel | | ||
101 | 100000 +------------------------+ | ||
102 | | I/O memory hole | | ||
103 | 0A0000 +------------------------+ | ||
104 | | Reserved for BIOS | Leave as much as possible unused | ||
105 | ~ ~ | ||
106 | | Command line | (Can also be below the X+10000 mark) | ||
107 | X+10000 +------------------------+ | ||
108 | | Stack/heap | For use by the kernel real-mode code. | ||
109 | X+08000 +------------------------+ | ||
110 | | Kernel setup | The kernel real-mode code. | ||
111 | | Kernel boot sector | The kernel legacy boot sector. | ||
112 | X +------------------------+ | ||
113 | | Boot loader | <- Boot sector entry point 0000:7C00 | ||
114 | 001000 +------------------------+ | ||
115 | | Reserved for MBR/BIOS | | ||
116 | 000800 +------------------------+ | ||
117 | | Typically used by MBR | | ||
118 | 000600 +------------------------+ | ||
119 | | BIOS use only | | ||
120 | 000000 +------------------------+ | ||
121 | |||
122 | ... where the address X is as low as the design of the boot loader | ||
123 | permits. | ||
124 | |||
96 | 125 | ||
97 | **** THE REAL-MODE KERNEL HEADER | 126 | **** THE REAL-MODE KERNEL HEADER |
98 | 127 | ||
@@ -160,29 +189,136 @@ e.g. protocol version 2.01 will contain 0x0201 in this field. When | |||
160 | setting fields in the header, you must make sure only to set fields | 189 | setting fields in the header, you must make sure only to set fields |
161 | supported by the protocol version in use. | 190 | supported by the protocol version in use. |
162 | 191 | ||
163 | The "kernel_version" field, if set to a nonzero value, contains a | 192 | |
164 | pointer to a null-terminated human-readable kernel version number | 193 | **** DETAILS OF HEADER FIELDS |
165 | string, less 0x200. This can be used to display the kernel version to | 194 | |
166 | the user. This value should be less than (0x200*setup_sects). For | 195 | For each field, some are information from the kernel to the bootloader |
167 | example, if this value is set to 0x1c00, the kernel version number | 196 | ("read"), some are expected to be filled out by the bootloader |
168 | string can be found at offset 0x1e00 in the kernel file. This is a | 197 | ("write"), and some are expected to be read and modified by the |
169 | valid value if and only if the "setup_sects" field contains the value | 198 | bootloader ("modify"). |
170 | 14 or higher. | 199 | |
171 | 200 | All general purpose boot loaders should write the fields marked | |
172 | Most boot loaders will simply load the kernel at its target address | 201 | (obligatory). Boot loaders who want to load the kernel at a |
173 | directly. Such boot loaders do not need to worry about filling in | 202 | nonstandard address should fill in the fields marked (reloc); other |
174 | most of the fields in the header. The following fields should be | 203 | boot loaders can ignore those fields. |
175 | filled out, however: | 204 | |
176 | 205 | Field name: setup_secs | |
177 | vid_mode: | 206 | Type: read |
178 | Please see the section on SPECIAL COMMAND LINE OPTIONS. | 207 | Offset/size: 0x1f1/1 |
179 | 208 | Protocol: ALL | |
180 | type_of_loader: | 209 | |
181 | If your boot loader has an assigned id (see table below), enter | 210 | The size of the setup code in 512-byte sectors. If this field is |
182 | 0xTV here, where T is an identifier for the boot loader and V is | 211 | 0, the real value is 4. The real-mode code consists of the boot |
183 | a version number. Otherwise, enter 0xFF here. | 212 | sector (always one 512-byte sector) plus the setup code. |
184 | 213 | ||
185 | Assigned boot loader ids: | 214 | Field name: root_flags |
215 | Type: modify (optional) | ||
216 | Offset/size: 0x1f2/2 | ||
217 | Protocol: ALL | ||
218 | |||
219 | If this field is nonzero, the root defaults to readonly. The use of | ||
220 | this field is deprecated; use the "ro" or "rw" options on the | ||
221 | command line instead. | ||
222 | |||
223 | Field name: syssize | ||
224 | Type: read | ||
225 | Offset/size: 0x1f4/4 (protocol 2.04+) 0x1f4/2 (protocol ALL) | ||
226 | Protocol: 2.04+ | ||
227 | |||
228 | The size of the protected-mode code in units of 16-byte paragraphs. | ||
229 | For protocol versions older than 2.04 this field is only two bytes | ||
230 | wide, and therefore cannot be trusted for the size of a kernel if | ||
231 | the LOAD_HIGH flag is set. | ||
232 | |||
233 | Field name: ram_size | ||
234 | Type: kernel internal | ||
235 | Offset/size: 0x1f8/2 | ||
236 | Protocol: ALL | ||
237 | |||
238 | This field is obsolete. | ||
239 | |||
240 | Field name: vid_mode | ||
241 | Type: modify (obligatory) | ||
242 | Offset/size: 0x1fa/2 | ||
243 | |||
244 | Please see the section on SPECIAL COMMAND LINE OPTIONS. | ||
245 | |||
246 | Field name: root_dev | ||
247 | Type: modify (optional) | ||
248 | Offset/size: 0x1fc/2 | ||
249 | Protocol: ALL | ||
250 | |||
251 | The default root device device number. The use of this field is | ||
252 | deprecated, use the "root=" option on the command line instead. | ||
253 | |||
254 | Field name: boot_flag | ||
255 | Type: read | ||
256 | Offset/size: 0x1fe/2 | ||
257 | Protocol: ALL | ||
258 | |||
259 | Contains 0xAA55. This is the closest thing old Linux kernels have | ||
260 | to a magic number. | ||
261 | |||
262 | Field name: jump | ||
263 | Type: read | ||
264 | Offset/size: 0x200/2 | ||
265 | Protocol: 2.00+ | ||
266 | |||
267 | Contains an x86 jump instruction, 0xEB followed by a signed offset | ||
268 | relative to byte 0x202. This can be used to determine the size of | ||
269 | the header. | ||
270 | |||
271 | Field name: header | ||
272 | Type: read | ||
273 | Offset/size: 0x202/4 | ||
274 | Protocol: 2.00+ | ||
275 | |||
276 | Contains the magic number "HdrS" (0x53726448). | ||
277 | |||
278 | Field name: version | ||
279 | Type: read | ||
280 | Offset/size: 0x206/2 | ||
281 | Protocol: 2.00+ | ||
282 | |||
283 | Contains the boot protocol version, e.g. 0x0204 for version 2.04. | ||
284 | |||
285 | Field name: readmode_swtch | ||
286 | Type: modify (optional) | ||
287 | Offset/size: 0x208/4 | ||
288 | Protocol: 2.00+ | ||
289 | |||
290 | Boot loader hook (see separate chapter.) | ||
291 | |||
292 | Field name: start_sys | ||
293 | Type: read | ||
294 | Offset/size: 0x20c/4 | ||
295 | Protocol: 2.00+ | ||
296 | |||
297 | The load low segment (0x1000). Obsolete. | ||
298 | |||
299 | Field name: kernel_version | ||
300 | Type: read | ||
301 | Offset/size: 0x20e/2 | ||
302 | Protocol: 2.00+ | ||
303 | |||
304 | If set to a nonzero value, contains a pointer to a NUL-terminated | ||
305 | human-readable kernel version number string, less 0x200. This can | ||
306 | be used to display the kernel version to the user. This value | ||
307 | should be less than (0x200*setup_sects). For example, if this value | ||
308 | is set to 0x1c00, the kernel version number string can be found at | ||
309 | offset 0x1e00 in the kernel file. This is a valid value if and only | ||
310 | if the "setup_sects" field contains the value 14 or higher. | ||
311 | |||
312 | Field name: type_of_loader | ||
313 | Type: write (obligatory) | ||
314 | Offset/size: 0x210/1 | ||
315 | Protocol: 2.00+ | ||
316 | |||
317 | If your boot loader has an assigned id (see table below), enter | ||
318 | 0xTV here, where T is an identifier for the boot loader and V is | ||
319 | a version number. Otherwise, enter 0xFF here. | ||
320 | |||
321 | Assigned boot loader ids: | ||
186 | 0 LILO (0x00 reserved for pre-2.00 bootloader) | 322 | 0 LILO (0x00 reserved for pre-2.00 bootloader) |
187 | 1 Loadlin | 323 | 1 Loadlin |
188 | 2 bootsect-loader (0x20, all other values reserved) | 324 | 2 bootsect-loader (0x20, all other values reserved) |
@@ -193,60 +329,145 @@ filled out, however: | |||
193 | 8 U-BOOT | 329 | 8 U-BOOT |
194 | 9 Xen | 330 | 9 Xen |
195 | A Gujin | 331 | A Gujin |
332 | B Qemu | ||
196 | 333 | ||
197 | Please contact <hpa@zytor.com> if you need a bootloader ID | 334 | Please contact <hpa@zytor.com> if you need a bootloader ID |
198 | value assigned. | 335 | value assigned. |
199 | 336 | ||
200 | loadflags, heap_end_ptr: | 337 | Field name: loadflags |
201 | If the protocol version is 2.01 or higher, enter the | 338 | Type: modify (obligatory) |
202 | offset limit of the setup heap into heap_end_ptr and set the | 339 | Offset/size: 0x211/1 |
203 | 0x80 bit (CAN_USE_HEAP) of loadflags. heap_end_ptr appears to | 340 | Protocol: 2.00+ |
204 | be relative to the start of setup (offset 0x0200). | 341 | |
205 | 342 | This field is a bitmask. | |
206 | setup_move_size: | 343 | |
207 | When using protocol 2.00 or 2.01, if the real mode | 344 | Bit 0 (read): LOADED_HIGH |
208 | kernel is not loaded at 0x90000, it gets moved there later in | 345 | - If 0, the protected-mode code is loaded at 0x10000. |
209 | the loading sequence. Fill in this field if you want | 346 | - If 1, the protected-mode code is loaded at 0x100000. |
210 | additional data (such as the kernel command line) moved in | 347 | |
211 | addition to the real-mode kernel itself. | 348 | Bit 7 (write): CAN_USE_HEAP |
212 | 349 | Set this bit to 1 to indicate that the value entered in the | |
213 | The unit is bytes starting with the beginning of the boot | 350 | heap_end_ptr is valid. If this field is clear, some setup code |
214 | sector. | 351 | functionality will be disabled. |
215 | 352 | ||
216 | ramdisk_image, ramdisk_size: | 353 | Field name: setup_move_size |
217 | If your boot loader has loaded an initial ramdisk (initrd), | 354 | Type: modify (obligatory) |
218 | set ramdisk_image to the 32-bit pointer to the ramdisk data | 355 | Offset/size: 0x212/2 |
219 | and the ramdisk_size to the size of the ramdisk data. | 356 | Protocol: 2.00-2.01 |
220 | 357 | ||
221 | The initrd should typically be located as high in memory as | 358 | When using protocol 2.00 or 2.01, if the real mode kernel is not |
222 | possible, as it may otherwise get overwritten by the early | 359 | loaded at 0x90000, it gets moved there later in the loading |
223 | kernel initialization sequence. However, it must never be | 360 | sequence. Fill in this field if you want additional data (such as |
224 | located above the address specified in the initrd_addr_max | 361 | the kernel command line) moved in addition to the real-mode kernel |
225 | field. The initrd should be at least 4K page aligned. | 362 | itself. |
226 | 363 | ||
227 | cmd_line_ptr: | 364 | The unit is bytes starting with the beginning of the boot sector. |
228 | If the protocol version is 2.02 or higher, this is a 32-bit | 365 | |
229 | pointer to the kernel command line. The kernel command line | 366 | This field is can be ignored when the protocol is 2.02 or higher, or |
230 | can be located anywhere between the end of setup and 0xA0000. | 367 | if the real-mode code is loaded at 0x90000. |
231 | Fill in this field even if your boot loader does not support a | 368 | |
232 | command line, in which case you can point this to an empty | 369 | Field name: code32_start |
233 | string (or better yet, to the string "auto".) If this field | 370 | Type: modify (optional, reloc) |
234 | is left at zero, the kernel will assume that your boot loader | 371 | Offset/size: 0x214/4 |
235 | does not support the 2.02+ protocol. | 372 | Protocol: 2.00+ |
236 | 373 | ||
237 | ramdisk_max: | 374 | The address to jump to in protected mode. This defaults to the load |
238 | The maximum address that may be occupied by the initrd | 375 | address of the kernel, and can be used by the boot loader to |
239 | contents. For boot protocols 2.02 or earlier, this field is | 376 | determine the proper load address. |
240 | not present, and the maximum address is 0x37FFFFFF. (This | 377 | |
241 | address is defined as the address of the highest safe byte, so | 378 | This field can be modified for two purposes: |
242 | if your ramdisk is exactly 131072 bytes long and this field is | 379 | |
243 | 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) | 380 | 1. as a boot loader hook (see separate chapter.) |
244 | 381 | ||
245 | cmdline_size: | 382 | 2. if a bootloader which does not install a hook loads a |
246 | The maximum size of the command line without the terminating | 383 | relocatable kernel at a nonstandard address it will have to modify |
247 | zero. This means that the command line can contain at most | 384 | this field to point to the load address. |
248 | cmdline_size characters. With protocol version 2.05 and | 385 | |
249 | earlier, the maximum size was 255. | 386 | Field name: ramdisk_image |
387 | Type: write (obligatory) | ||
388 | Offset/size: 0x218/4 | ||
389 | Protocol: 2.00+ | ||
390 | |||
391 | The 32-bit linear address of the initial ramdisk or ramfs. Leave at | ||
392 | zero if there is no initial ramdisk/ramfs. | ||
393 | |||
394 | Field name: ramdisk_size | ||
395 | Type: write (obligatory) | ||
396 | Offset/size: 0x21c/4 | ||
397 | Protocol: 2.00+ | ||
398 | |||
399 | Size of the initial ramdisk or ramfs. Leave at zero if there is no | ||
400 | initial ramdisk/ramfs. | ||
401 | |||
402 | Field name: bootsect_kludge | ||
403 | Type: kernel internal | ||
404 | Offset/size: 0x220/4 | ||
405 | Protocol: 2.00+ | ||
406 | |||
407 | This field is obsolete. | ||
408 | |||
409 | Field name: heap_end_ptr | ||
410 | Type: write (obligatory) | ||
411 | Offset/size: 0x224/2 | ||
412 | Protocol: 2.01+ | ||
413 | |||
414 | Set this field to the offset (from the beginning of the real-mode | ||
415 | code) of the end of the setup stack/heap, minus 0x0200. | ||
416 | |||
417 | Field name: cmd_line_ptr | ||
418 | Type: write (obligatory) | ||
419 | Offset/size: 0x228/4 | ||
420 | Protocol: 2.02+ | ||
421 | |||
422 | Set this field to the linear address of the kernel command line. | ||
423 | The kernel command line can be located anywhere between the end of | ||
424 | the setup heap and 0xA0000; it does not have to be located in the | ||
425 | same 64K segment as the real-mode code itself. | ||
426 | |||
427 | Fill in this field even if your boot loader does not support a | ||
428 | command line, in which case you can point this to an empty string | ||
429 | (or better yet, to the string "auto".) If this field is left at | ||
430 | zero, the kernel will assume that your boot loader does not support | ||
431 | the 2.02+ protocol. | ||
432 | |||
433 | Field name: initrd_addr_max | ||
434 | Type: read | ||
435 | Offset/size: 0x22c/4 | ||
436 | Protocol: 2.03+ | ||
437 | |||
438 | The maximum address that may be occupied by the initial | ||
439 | ramdisk/ramfs contents. For boot protocols 2.02 or earlier, this | ||
440 | field is not present, and the maximum address is 0x37FFFFFF. (This | ||
441 | address is defined as the address of the highest safe byte, so if | ||
442 | your ramdisk is exactly 131072 bytes long and this field is | ||
443 | 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) | ||
444 | |||
445 | Field name: kernel_alignment | ||
446 | Type: read (reloc) | ||
447 | Offset/size: 0x230/4 | ||
448 | Protocol: 2.05+ | ||
449 | |||
450 | Alignment unit required by the kernel (if relocatable_kernel is true.) | ||
451 | |||
452 | Field name: relocatable_kernel | ||
453 | Type: read (reloc) | ||
454 | Offset/size: 0x234/1 | ||
455 | Protocol: 2.05+ | ||
456 | |||
457 | If this field is nonzero, the protected-mode part of the kernel can | ||
458 | be loaded at any address that satisfies the kernel_alignment field. | ||
459 | After loading, the boot loader must set the code32_start field to | ||
460 | point to the loaded code, or to a boot loader hook. | ||
461 | |||
462 | Field name: cmdline_size | ||
463 | Type: read | ||
464 | Offset/size: 0x238/4 | ||
465 | Protocol: 2.06+ | ||
466 | |||
467 | The maximum size of the command line without the terminating | ||
468 | zero. This means that the command line can contain at most | ||
469 | cmdline_size characters. With protocol version 2.05 and earlier, the | ||
470 | maximum size was 255. | ||
250 | 471 | ||
251 | 472 | ||
252 | **** THE KERNEL COMMAND LINE | 473 | **** THE KERNEL COMMAND LINE |
diff --git a/Documentation/networking/netdevices.txt b/Documentation/networking/netdevices.txt index 847cedb238f6..ce1361f95243 100644 --- a/Documentation/networking/netdevices.txt +++ b/Documentation/networking/netdevices.txt | |||
@@ -49,7 +49,7 @@ dev->hard_start_xmit: | |||
49 | for this and return -1 when the spin lock fails. | 49 | for this and return -1 when the spin lock fails. |
50 | The locking there should also properly protect against | 50 | The locking there should also properly protect against |
51 | set_multicast_list | 51 | set_multicast_list |
52 | Context: BHs disabled | 52 | Context: Process with BHs disabled or BH (timer). |
53 | Notes: netif_queue_stopped() is guaranteed false | 53 | Notes: netif_queue_stopped() is guaranteed false |
54 | Interrupts must be enabled when calling hard_start_xmit. | 54 | Interrupts must be enabled when calling hard_start_xmit. |
55 | (Interrupts must also be enabled when enabling the BH handler.) | 55 | (Interrupts must also be enabled when enabling the BH handler.) |
diff --git a/Documentation/vm/slabinfo.c b/Documentation/vm/slabinfo.c index 434af27a32ac..d4f21ffd1404 100644 --- a/Documentation/vm/slabinfo.c +++ b/Documentation/vm/slabinfo.c | |||
@@ -262,11 +262,17 @@ void decode_numa_list(int *numa, char *t) | |||
262 | 262 | ||
263 | void slab_validate(struct slabinfo *s) | 263 | void slab_validate(struct slabinfo *s) |
264 | { | 264 | { |
265 | if (strcmp(s->name, "*") == 0) | ||
266 | return; | ||
267 | |||
265 | set_obj(s, "validate", 1); | 268 | set_obj(s, "validate", 1); |
266 | } | 269 | } |
267 | 270 | ||
268 | void slab_shrink(struct slabinfo *s) | 271 | void slab_shrink(struct slabinfo *s) |
269 | { | 272 | { |
273 | if (strcmp(s->name, "*") == 0) | ||
274 | return; | ||
275 | |||
270 | set_obj(s, "shrink", 1); | 276 | set_obj(s, "shrink", 1); |
271 | } | 277 | } |
272 | 278 | ||
@@ -550,6 +556,9 @@ int slab_empty(struct slabinfo *s) | |||
550 | 556 | ||
551 | void slab_debug(struct slabinfo *s) | 557 | void slab_debug(struct slabinfo *s) |
552 | { | 558 | { |
559 | if (strcmp(s->name, "*") == 0) | ||
560 | return; | ||
561 | |||
553 | if (sanity && !s->sanity_checks) { | 562 | if (sanity && !s->sanity_checks) { |
554 | set_obj(s, "sanity", 1); | 563 | set_obj(s, "sanity", 1); |
555 | } | 564 | } |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 22 | 3 | SUBLEVEL = 22 |
4 | EXTRAVERSION = -rc1 | 4 | EXTRAVERSION = -rc2 |
5 | NAME = Nocturnal Monster Puppy | 5 | NAME = Nocturnal Monster Puppy |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
@@ -491,7 +491,7 @@ endif | |||
491 | include $(srctree)/arch/$(ARCH)/Makefile | 491 | include $(srctree)/arch/$(ARCH)/Makefile |
492 | 492 | ||
493 | ifdef CONFIG_FRAME_POINTER | 493 | ifdef CONFIG_FRAME_POINTER |
494 | CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls | 494 | CFLAGS += -fno-omit-frame-pointer $(call cc-option,-fno-optimize-sibling-calls,) |
495 | else | 495 | else |
496 | CFLAGS += -fomit-frame-pointer | 496 | CFLAGS += -fomit-frame-pointer |
497 | endif | 497 | endif |
diff --git a/arch/i386/Makefile b/arch/i386/Makefile index 6dc5e5d90fec..bd28f9f9b4b7 100644 --- a/arch/i386/Makefile +++ b/arch/i386/Makefile | |||
@@ -34,7 +34,7 @@ CHECKFLAGS += -D__i386__ | |||
34 | CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return | 34 | CFLAGS += -pipe -msoft-float -mregparm=3 -freg-struct-return |
35 | 35 | ||
36 | # prevent gcc from keeping the stack 16 byte aligned | 36 | # prevent gcc from keeping the stack 16 byte aligned |
37 | CFLAGS += -mpreferred-stack-boundary=4 | 37 | CFLAGS += $(call cc-option,-mpreferred-stack-boundary=2) |
38 | 38 | ||
39 | # CPU-specific tuning. Anything which can be shared with UML should go here. | 39 | # CPU-specific tuning. Anything which can be shared with UML should go here. |
40 | include $(srctree)/arch/i386/Makefile.cpu | 40 | include $(srctree)/arch/i386/Makefile.cpu |
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index d6014a67694b..6238b5875fd1 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile | |||
@@ -29,7 +29,7 @@ CROSS32CC := $(CC) -m32 | |||
29 | CROSS32AS := $(AS) -a32 | 29 | CROSS32AS := $(AS) -a32 |
30 | CROSS32LD := $(LD) -m elf32ppc | 30 | CROSS32LD := $(LD) -m elf32ppc |
31 | CROSS32OBJCOPY := $(OBJCOPY) | 31 | CROSS32OBJCOPY := $(OBJCOPY) |
32 | CROSS32AR := $(AR) | 32 | CROSS32AR := GNUTARGET=elf32-powerpc $(AR) |
33 | endif | 33 | endif |
34 | endif | 34 | endif |
35 | 35 | ||
@@ -58,6 +58,7 @@ ifeq ($(HAS_BIARCH),y) | |||
58 | override AS += -a$(SZ) | 58 | override AS += -a$(SZ) |
59 | override LD += -m elf$(SZ)ppc | 59 | override LD += -m elf$(SZ)ppc |
60 | override CC += -m$(SZ) | 60 | override CC += -m$(SZ) |
61 | override AR := GNUTARGET=elf$(SZ)-powerpc $(AR) | ||
61 | endif | 62 | endif |
62 | 63 | ||
63 | LDFLAGS_vmlinux := -Bstatic | 64 | LDFLAGS_vmlinux := -Bstatic |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index d4f9fef7f9e9..83788986b93b 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -33,6 +33,9 @@ endif | |||
33 | 33 | ||
34 | BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) | 34 | BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) |
35 | 35 | ||
36 | $(obj)/44x.o: BOOTCFLAGS += -Wa,-mbooke | ||
37 | $(obj)/ebony.o: BOOTCFLAGS += -Wa,-mbooke | ||
38 | |||
36 | zlib := inffast.c inflate.c inftrees.c | 39 | zlib := inffast.c inflate.c inftrees.c |
37 | zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h | 40 | zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h |
38 | zliblinuxheader := zlib.h zconf.h zutil.h | 41 | zliblinuxheader := zlib.h zconf.h zutil.h |
@@ -54,13 +57,13 @@ obj-wlib := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-wlib)))) | |||
54 | obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) | 57 | obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat)))) |
55 | 58 | ||
56 | quiet_cmd_copy_zlib = COPY $@ | 59 | quiet_cmd_copy_zlib = COPY $@ |
57 | cmd_copy_zlib = sed "s@__attribute_used__@@;s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ | 60 | cmd_copy_zlib = sed "s@__attribute_used__@@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ |
58 | 61 | ||
59 | quiet_cmd_copy_zlibheader = COPY $@ | 62 | quiet_cmd_copy_zlibheader = COPY $@ |
60 | cmd_copy_zlibheader = sed "s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ | 63 | cmd_copy_zlibheader = sed "s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ |
61 | # stddef.h for NULL | 64 | # stddef.h for NULL |
62 | quiet_cmd_copy_zliblinuxheader = COPY $@ | 65 | quiet_cmd_copy_zliblinuxheader = COPY $@ |
63 | cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]\+\).*@\"\1\"@" $< > $@ | 66 | cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@ |
64 | 67 | ||
65 | $(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/% | 68 | $(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/% |
66 | $(call cmd,copy_zlib) | 69 | $(call cmd,copy_zlib) |
@@ -204,12 +207,12 @@ dts = $(if $(shell echo $(CONFIG_DEVICE_TREE) | grep '^/'),\ | |||
204 | $(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits) | 207 | $(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits) |
205 | $(call if_changed,wrap,cuboot-$*,$(dts)) | 208 | $(call if_changed,wrap,cuboot-$*,$(dts)) |
206 | 209 | ||
207 | $(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits) | ||
208 | $(call if_changed,wrap,treeboot-$*,$(dts)) | ||
209 | |||
210 | $(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits) | 210 | $(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits) |
211 | $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz) | 211 | $(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz) |
212 | 212 | ||
213 | $(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits) | ||
214 | $(call if_changed,wrap,treeboot-$*,$(dts)) | ||
215 | |||
213 | $(obj)/zImage: $(addprefix $(obj)/, $(image-y)) | 216 | $(obj)/zImage: $(addprefix $(obj)/, $(image-y)) |
214 | @rm -f $@; ln $< $@ | 217 | @rm -f $@; ln $< $@ |
215 | $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) | 218 | $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y)) |
diff --git a/arch/powerpc/boot/dts/ebony.dts b/arch/powerpc/boot/dts/ebony.dts index b67918651c48..0ec02f4726b5 100644 --- a/arch/powerpc/boot/dts/ebony.dts +++ b/arch/powerpc/boot/dts/ebony.dts | |||
@@ -33,8 +33,8 @@ | |||
33 | timebase-frequency = <0>; // Filled in by zImage | 33 | timebase-frequency = <0>; // Filled in by zImage |
34 | i-cache-line-size = <32>; | 34 | i-cache-line-size = <32>; |
35 | d-cache-line-size = <32>; | 35 | d-cache-line-size = <32>; |
36 | i-cache-size = <0>; | 36 | i-cache-size = <8000>; /* 32 kB */ |
37 | d-cache-size = <0>; | 37 | d-cache-size = <8000>; /* 32 kB */ |
38 | dcr-controller; | 38 | dcr-controller; |
39 | dcr-access-method = "native"; | 39 | dcr-access-method = "native"; |
40 | }; | 40 | }; |
@@ -46,7 +46,6 @@ | |||
46 | }; | 46 | }; |
47 | 47 | ||
48 | UIC0: interrupt-controller0 { | 48 | UIC0: interrupt-controller0 { |
49 | device_type = "ibm,uic"; | ||
50 | compatible = "ibm,uic-440gp", "ibm,uic"; | 49 | compatible = "ibm,uic-440gp", "ibm,uic"; |
51 | interrupt-controller; | 50 | interrupt-controller; |
52 | cell-index = <0>; | 51 | cell-index = <0>; |
@@ -58,7 +57,6 @@ | |||
58 | }; | 57 | }; |
59 | 58 | ||
60 | UIC1: interrupt-controller1 { | 59 | UIC1: interrupt-controller1 { |
61 | device_type = "ibm,uic"; | ||
62 | compatible = "ibm,uic-440gp", "ibm,uic"; | 60 | compatible = "ibm,uic-440gp", "ibm,uic"; |
63 | interrupt-controller; | 61 | interrupt-controller; |
64 | cell-index = <1>; | 62 | cell-index = <1>; |
@@ -71,36 +69,36 @@ | |||
71 | }; | 69 | }; |
72 | 70 | ||
73 | CPC0: cpc { | 71 | CPC0: cpc { |
74 | device_type = "ibm,cpc"; | ||
75 | compatible = "ibm,cpc-440gp"; | 72 | compatible = "ibm,cpc-440gp"; |
76 | dcr-reg = <0b0 003 0e0 010>; | 73 | dcr-reg = <0b0 003 0e0 010>; |
77 | // FIXME: anything else? | 74 | // FIXME: anything else? |
78 | }; | 75 | }; |
79 | 76 | ||
80 | plb { | 77 | plb { |
81 | device_type = "ibm,plb"; | ||
82 | compatible = "ibm,plb-440gp", "ibm,plb4"; | 78 | compatible = "ibm,plb-440gp", "ibm,plb4"; |
83 | #address-cells = <2>; | 79 | #address-cells = <2>; |
84 | #size-cells = <1>; | 80 | #size-cells = <1>; |
85 | ranges; | 81 | ranges; |
86 | clock-frequency = <0>; // Filled in by zImage | 82 | clock-frequency = <0>; // Filled in by zImage |
87 | 83 | ||
88 | SDRAM0: sdram { | 84 | SDRAM0: memory-controller { |
89 | device_type = "memory-controller"; | 85 | compatible = "ibm,sdram-440gp"; |
90 | compatible = "ibm,sdram-440gp", "ibm,sdram"; | ||
91 | dcr-reg = <010 2>; | 86 | dcr-reg = <010 2>; |
92 | // FIXME: anything else? | 87 | // FIXME: anything else? |
93 | }; | 88 | }; |
94 | 89 | ||
90 | SRAM0: sram { | ||
91 | compatible = "ibm,sram-440gp"; | ||
92 | dcr-reg = <020 8 00a 1>; | ||
93 | }; | ||
94 | |||
95 | DMA0: dma { | 95 | DMA0: dma { |
96 | // FIXME: ??? | 96 | // FIXME: ??? |
97 | device_type = "ibm,dma-4xx"; | 97 | compatible = "ibm,dma-440gp"; |
98 | compatible = "ibm,dma-440gp", "ibm,dma-4xx"; | ||
99 | dcr-reg = <100 027>; | 98 | dcr-reg = <100 027>; |
100 | }; | 99 | }; |
101 | 100 | ||
102 | MAL0: mcmal { | 101 | MAL0: mcmal { |
103 | device_type = "mcmal-dma"; | ||
104 | compatible = "ibm,mcmal-440gp", "ibm,mcmal"; | 102 | compatible = "ibm,mcmal-440gp", "ibm,mcmal"; |
105 | dcr-reg = <180 62>; | 103 | dcr-reg = <180 62>; |
106 | num-tx-chans = <4>; | 104 | num-tx-chans = <4>; |
@@ -119,7 +117,6 @@ | |||
119 | }; | 117 | }; |
120 | 118 | ||
121 | POB0: opb { | 119 | POB0: opb { |
122 | device_type = "ibm,opb"; | ||
123 | compatible = "ibm,opb-440gp", "ibm,opb"; | 120 | compatible = "ibm,opb-440gp", "ibm,opb"; |
124 | #address-cells = <1>; | 121 | #address-cells = <1>; |
125 | #size-cells = <1>; | 122 | #size-cells = <1>; |
@@ -133,8 +130,7 @@ | |||
133 | clock-frequency = <0>; // Filled in by zImage | 130 | clock-frequency = <0>; // Filled in by zImage |
134 | 131 | ||
135 | EBC0: ebc { | 132 | EBC0: ebc { |
136 | device_type = "ibm,ebc"; | 133 | compatible = "ibm,ebc-440gp", "ibm,ebc"; |
137 | compatible = "ibm,ebc-440gp"; | ||
138 | dcr-reg = <012 2>; | 134 | dcr-reg = <012 2>; |
139 | #address-cells = <2>; | 135 | #address-cells = <2>; |
140 | #size-cells = <1>; | 136 | #size-cells = <1>; |
@@ -147,7 +143,7 @@ | |||
147 | interrupts = <5 4>; | 143 | interrupts = <5 4>; |
148 | interrupt-parent = <&UIC1>; | 144 | interrupt-parent = <&UIC1>; |
149 | 145 | ||
150 | small-flash@0,0 { | 146 | small-flash@0,80000 { |
151 | device_type = "rom"; | 147 | device_type = "rom"; |
152 | compatible = "direct-mapped"; | 148 | compatible = "direct-mapped"; |
153 | probe-type = "JEDEC"; | 149 | probe-type = "JEDEC"; |
@@ -159,7 +155,6 @@ | |||
159 | 155 | ||
160 | ds1743@1,0 { | 156 | ds1743@1,0 { |
161 | /* NVRAM & RTC */ | 157 | /* NVRAM & RTC */ |
162 | device_type = "nvram"; | ||
163 | compatible = "ds1743"; | 158 | compatible = "ds1743"; |
164 | reg = <1 0 2000>; | 159 | reg = <1 0 2000>; |
165 | }; | 160 | }; |
@@ -170,7 +165,7 @@ | |||
170 | probe-type = "JEDEC"; | 165 | probe-type = "JEDEC"; |
171 | bank-width = <1>; | 166 | bank-width = <1>; |
172 | partitions = <0 380000 | 167 | partitions = <0 380000 |
173 | 280000 80000>; | 168 | 380000 80000>; |
174 | partition-names = "fs", "firmware"; | 169 | partition-names = "fs", "firmware"; |
175 | reg = <2 0 400000>; | 170 | reg = <2 0 400000>; |
176 | }; | 171 | }; |
@@ -226,13 +221,11 @@ | |||
226 | 221 | ||
227 | GPIO0: gpio@40000700 { | 222 | GPIO0: gpio@40000700 { |
228 | /* FIXME */ | 223 | /* FIXME */ |
229 | device_type = "gpio"; | ||
230 | compatible = "ibm,gpio-440gp"; | 224 | compatible = "ibm,gpio-440gp"; |
231 | reg = <40000700 20>; | 225 | reg = <40000700 20>; |
232 | }; | 226 | }; |
233 | 227 | ||
234 | ZMII0: emac-zmii@40000780 { | 228 | ZMII0: emac-zmii@40000780 { |
235 | device_type = "emac-zmii"; | ||
236 | compatible = "ibm,zmii-440gp", "ibm,zmii"; | 229 | compatible = "ibm,zmii-440gp", "ibm,zmii"; |
237 | reg = <40000780 c>; | 230 | reg = <40000780 c>; |
238 | }; | 231 | }; |
@@ -299,9 +292,5 @@ | |||
299 | 292 | ||
300 | chosen { | 293 | chosen { |
301 | linux,stdout-path = "/plb/opb/serial@40000200"; | 294 | linux,stdout-path = "/plb/opb/serial@40000200"; |
302 | // linux,initrd-start = <0>; /* FIXME */ | ||
303 | // linux,initrd-end = <0>; | ||
304 | // bootargs = ""; | ||
305 | }; | 295 | }; |
306 | }; | 296 | }; |
307 | |||
diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts index 157dc98d3988..a983680c3263 100644 --- a/arch/powerpc/boot/dts/kuroboxHD.dts +++ b/arch/powerpc/boot/dts/kuroboxHD.dts | |||
@@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | / { | 23 | / { |
24 | linux,phandle = <1000>; | ||
25 | model = "KuroboxHD"; | 24 | model = "KuroboxHD"; |
26 | compatible = "linkstation"; | 25 | compatible = "linkstation"; |
27 | #address-cells = <1>; | 26 | #address-cells = <1>; |
28 | #size-cells = <1>; | 27 | #size-cells = <1>; |
29 | 28 | ||
30 | cpus { | 29 | cpus { |
31 | linux,phandle = <2000>; | ||
32 | #address-cells = <1>; | 30 | #address-cells = <1>; |
33 | #size-cells = <0>; | 31 | #size-cells = <0>; |
34 | 32 | ||
35 | PowerPC,603e { /* Really 8241 */ | 33 | PowerPC,603e { /* Really 8241 */ |
36 | linux,phandle = <2100>; | ||
37 | device_type = "cpu"; | 34 | device_type = "cpu"; |
38 | reg = <0>; | 35 | reg = <0>; |
39 | clock-frequency = <bebc200>; /* Fixed by bootwrapper */ | 36 | clock-frequency = <bebc200>; /* Fixed by bootwrapper */ |
@@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
48 | }; | 45 | }; |
49 | 46 | ||
50 | memory { | 47 | memory { |
51 | linux,phandle = <3000>; | ||
52 | device_type = "memory"; | 48 | device_type = "memory"; |
53 | reg = <00000000 04000000>; | 49 | reg = <00000000 04000000>; |
54 | }; | 50 | }; |
55 | 51 | ||
56 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ | 52 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ |
57 | linux,phandle = <4000>; | ||
58 | #address-cells = <1>; | 53 | #address-cells = <1>; |
59 | #size-cells = <1>; | 54 | #size-cells = <1>; |
60 | #interrupt-cells = <2>; | 55 | #interrupt-cells = <2>; |
@@ -69,38 +64,34 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
69 | fef00000 fef00000 00100000>; /* pci iack */ | 64 | fef00000 fef00000 00100000>; /* pci iack */ |
70 | 65 | ||
71 | i2c@80003000 { | 66 | i2c@80003000 { |
72 | linux,phandle = <4300>; | ||
73 | device_type = "i2c"; | 67 | device_type = "i2c"; |
74 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
75 | reg = <80003000 1000>; | 69 | reg = <80003000 1000>; |
76 | interrupts = <5 2>; | 70 | interrupts = <5 2>; |
77 | interrupt-parent = <4400>; | 71 | interrupt-parent = <&mpic>; |
78 | }; | 72 | }; |
79 | 73 | ||
80 | serial@80004500 { | 74 | serial@80004500 { |
81 | linux,phandle = <4511>; | ||
82 | device_type = "serial"; | 75 | device_type = "serial"; |
83 | compatible = "ns16550"; | 76 | compatible = "ns16550"; |
84 | reg = <80004500 8>; | 77 | reg = <80004500 8>; |
85 | clock-frequency = <5d08d88>; | 78 | clock-frequency = <5d08d88>; |
86 | current-speed = <2580>; | 79 | current-speed = <2580>; |
87 | interrupts = <9 2>; | 80 | interrupts = <9 2>; |
88 | interrupt-parent = <4400>; | 81 | interrupt-parent = <&mpic>; |
89 | }; | 82 | }; |
90 | 83 | ||
91 | serial@80004600 { | 84 | serial@80004600 { |
92 | linux,phandle = <4512>; | ||
93 | device_type = "serial"; | 85 | device_type = "serial"; |
94 | compatible = "ns16550"; | 86 | compatible = "ns16550"; |
95 | reg = <80004600 8>; | 87 | reg = <80004600 8>; |
96 | clock-frequency = <5d08d88>; | 88 | clock-frequency = <5d08d88>; |
97 | current-speed = <e100>; | 89 | current-speed = <e100>; |
98 | interrupts = <a 0>; | 90 | interrupts = <a 0>; |
99 | interrupt-parent = <4400>; | 91 | interrupt-parent = <&mpic>; |
100 | }; | 92 | }; |
101 | 93 | ||
102 | pic@80040000 { | 94 | mpic: pic@80040000 { |
103 | linux,phandle = <4400>; | ||
104 | #interrupt-cells = <2>; | 95 | #interrupt-cells = <2>; |
105 | #address-cells = <0>; | 96 | #address-cells = <0>; |
106 | device_type = "open-pic"; | 97 | device_type = "open-pic"; |
@@ -111,7 +102,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
111 | }; | 102 | }; |
112 | 103 | ||
113 | pci@fec00000 { | 104 | pci@fec00000 { |
114 | linux,phandle = <4500>; | ||
115 | #address-cells = <3>; | 105 | #address-cells = <3>; |
116 | #size-cells = <2>; | 106 | #size-cells = <2>; |
117 | #interrupt-cells = <1>; | 107 | #interrupt-cells = <1>; |
@@ -122,24 +112,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
122 | 02000000 0 80000000 80000000 0 70000000>; | 112 | 02000000 0 80000000 80000000 0 70000000>; |
123 | bus-range = <0 ff>; | 113 | bus-range = <0 ff>; |
124 | clock-frequency = <7f28155>; | 114 | clock-frequency = <7f28155>; |
125 | interrupt-parent = <4400>; | 115 | interrupt-parent = <&mpic>; |
126 | interrupt-map-mask = <f800 0 0 7>; | 116 | interrupt-map-mask = <f800 0 0 7>; |
127 | interrupt-map = < | 117 | interrupt-map = < |
128 | /* IDSEL 11 - IRQ0 ETH */ | 118 | /* IDSEL 11 - IRQ0 ETH */ |
129 | 5800 0 0 1 4400 0 1 | 119 | 5800 0 0 1 &mpic 0 1 |
130 | 5800 0 0 2 4400 1 1 | 120 | 5800 0 0 2 &mpic 1 1 |
131 | 5800 0 0 3 4400 2 1 | 121 | 5800 0 0 3 &mpic 2 1 |
132 | 5800 0 0 4 4400 3 1 | 122 | 5800 0 0 4 &mpic 3 1 |
133 | /* IDSEL 12 - IRQ1 IDE0 */ | 123 | /* IDSEL 12 - IRQ1 IDE0 */ |
134 | 6000 0 0 1 4400 1 1 | 124 | 6000 0 0 1 &mpic 1 1 |
135 | 6000 0 0 2 4400 2 1 | 125 | 6000 0 0 2 &mpic 2 1 |
136 | 6000 0 0 3 4400 3 1 | 126 | 6000 0 0 3 &mpic 3 1 |
137 | 6000 0 0 4 4400 0 1 | 127 | 6000 0 0 4 &mpic 0 1 |
138 | /* IDSEL 14 - IRQ3 USB2.0 */ | 128 | /* IDSEL 14 - IRQ3 USB2.0 */ |
139 | 7000 0 0 1 4400 3 1 | 129 | 7000 0 0 1 &mpic 3 1 |
140 | 7000 0 0 2 4400 3 1 | 130 | 7000 0 0 2 &mpic 3 1 |
141 | 7000 0 0 3 4400 3 1 | 131 | 7000 0 0 3 &mpic 3 1 |
142 | 7000 0 0 4 4400 3 1 | 132 | 7000 0 0 4 &mpic 3 1 |
143 | >; | 133 | >; |
144 | }; | 134 | }; |
145 | }; | 135 | }; |
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts index 919eb29097db..5cf42dc022df 100644 --- a/arch/powerpc/boot/dts/kuroboxHG.dts +++ b/arch/powerpc/boot/dts/kuroboxHG.dts | |||
@@ -21,19 +21,16 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | / { | 23 | / { |
24 | linux,phandle = <1000>; | ||
25 | model = "KuroboxHG"; | 24 | model = "KuroboxHG"; |
26 | compatible = "linkstation"; | 25 | compatible = "linkstation"; |
27 | #address-cells = <1>; | 26 | #address-cells = <1>; |
28 | #size-cells = <1>; | 27 | #size-cells = <1>; |
29 | 28 | ||
30 | cpus { | 29 | cpus { |
31 | linux,phandle = <2000>; | ||
32 | #address-cells = <1>; | 30 | #address-cells = <1>; |
33 | #size-cells = <0>; | 31 | #size-cells = <0>; |
34 | 32 | ||
35 | PowerPC,603e { /* Really 8241 */ | 33 | PowerPC,603e { /* Really 8241 */ |
36 | linux,phandle = <2100>; | ||
37 | device_type = "cpu"; | 34 | device_type = "cpu"; |
38 | reg = <0>; | 35 | reg = <0>; |
39 | clock-frequency = <fdad680>; /* Fixed by bootwrapper */ | 36 | clock-frequency = <fdad680>; /* Fixed by bootwrapper */ |
@@ -48,13 +45,11 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
48 | }; | 45 | }; |
49 | 46 | ||
50 | memory { | 47 | memory { |
51 | linux,phandle = <3000>; | ||
52 | device_type = "memory"; | 48 | device_type = "memory"; |
53 | reg = <00000000 08000000>; | 49 | reg = <00000000 08000000>; |
54 | }; | 50 | }; |
55 | 51 | ||
56 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ | 52 | soc10x { /* AFAICT need to make soc for 8245's uarts to be defined */ |
57 | linux,phandle = <4000>; | ||
58 | #address-cells = <1>; | 53 | #address-cells = <1>; |
59 | #size-cells = <1>; | 54 | #size-cells = <1>; |
60 | #interrupt-cells = <2>; | 55 | #interrupt-cells = <2>; |
@@ -69,38 +64,35 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
69 | fef00000 fef00000 00100000>; /* pci iack */ | 64 | fef00000 fef00000 00100000>; /* pci iack */ |
70 | 65 | ||
71 | i2c@80003000 { | 66 | i2c@80003000 { |
72 | linux,phandle = <4300>; | ||
73 | device_type = "i2c"; | 67 | device_type = "i2c"; |
74 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
75 | reg = <80003000 1000>; | 69 | reg = <80003000 1000>; |
76 | interrupts = <5 2>; | 70 | interrupts = <5 2>; |
77 | interrupt-parent = <4400>; | 71 | interrupt-parent = <&mpic>; |
78 | }; | 72 | }; |
79 | 73 | ||
80 | serial@80004500 { | 74 | serial@80004500 { |
81 | linux,phandle = <4511>; | ||
82 | device_type = "serial"; | 75 | device_type = "serial"; |
83 | compatible = "ns16550"; | 76 | compatible = "ns16550"; |
84 | reg = <80004500 8>; | 77 | reg = <80004500 8>; |
85 | clock-frequency = <7c044a8>; | 78 | clock-frequency = <7c044a8>; |
86 | current-speed = <2580>; | 79 | current-speed = <2580>; |
87 | interrupts = <9 2>; | 80 | interrupts = <9 2>; |
88 | interrupt-parent = <4400>; | 81 | interrupt-parent = <&mpic>; |
89 | }; | 82 | }; |
90 | 83 | ||
91 | serial@80004600 { | 84 | serial@80004600 { |
92 | linux,phandle = <4512>; | ||
93 | device_type = "serial"; | 85 | device_type = "serial"; |
94 | compatible = "ns16550"; | 86 | compatible = "ns16550"; |
95 | reg = <80004600 8>; | 87 | reg = <80004600 8>; |
96 | clock-frequency = <7c044a8>; | 88 | clock-frequency = <7c044a8>; |
97 | current-speed = <e100>; | 89 | current-speed = <e100>; |
98 | interrupts = <a 0>; | 90 | interrupts = <a 0>; |
99 | interrupt-parent = <4400>; | 91 | interrupt-parent = <&mpic>; |
100 | }; | 92 | }; |
101 | 93 | ||
102 | pic@80040000 { | 94 | mpic: pic@80040000 { |
103 | linux,phandle = <4400>; | 95 | interrupt-parent = <&mpic>; |
104 | #interrupt-cells = <2>; | 96 | #interrupt-cells = <2>; |
105 | #address-cells = <0>; | 97 | #address-cells = <0>; |
106 | device_type = "open-pic"; | 98 | device_type = "open-pic"; |
@@ -111,7 +103,6 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
111 | }; | 103 | }; |
112 | 104 | ||
113 | pci@fec00000 { | 105 | pci@fec00000 { |
114 | linux,phandle = <4500>; | ||
115 | #address-cells = <3>; | 106 | #address-cells = <3>; |
116 | #size-cells = <2>; | 107 | #size-cells = <2>; |
117 | #interrupt-cells = <1>; | 108 | #interrupt-cells = <1>; |
@@ -122,24 +113,24 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
122 | 02000000 0 80000000 80000000 0 70000000>; | 113 | 02000000 0 80000000 80000000 0 70000000>; |
123 | bus-range = <0 ff>; | 114 | bus-range = <0 ff>; |
124 | clock-frequency = <7f28155>; | 115 | clock-frequency = <7f28155>; |
125 | interrupt-parent = <4400>; | 116 | interrupt-parent = <&mpic>; |
126 | interrupt-map-mask = <f800 0 0 7>; | 117 | interrupt-map-mask = <f800 0 0 7>; |
127 | interrupt-map = < | 118 | interrupt-map = < |
128 | /* IDSEL 11 - IRQ0 ETH */ | 119 | /* IDSEL 11 - IRQ0 ETH */ |
129 | 5800 0 0 1 4400 0 1 | 120 | 5800 0 0 1 &mpic 0 1 |
130 | 5800 0 0 2 4400 1 1 | 121 | 5800 0 0 2 &mpic 1 1 |
131 | 5800 0 0 3 4400 2 1 | 122 | 5800 0 0 3 &mpic 2 1 |
132 | 5800 0 0 4 4400 3 1 | 123 | 5800 0 0 4 &mpic 3 1 |
133 | /* IDSEL 12 - IRQ1 IDE0 */ | 124 | /* IDSEL 12 - IRQ1 IDE0 */ |
134 | 6000 0 0 1 4400 1 1 | 125 | 6000 0 0 1 &mpic 1 1 |
135 | 6000 0 0 2 4400 2 1 | 126 | 6000 0 0 2 &mpic 2 1 |
136 | 6000 0 0 3 4400 3 1 | 127 | 6000 0 0 3 &mpic 3 1 |
137 | 6000 0 0 4 4400 0 1 | 128 | 6000 0 0 4 &mpic 0 1 |
138 | /* IDSEL 14 - IRQ3 USB2.0 */ | 129 | /* IDSEL 14 - IRQ3 USB2.0 */ |
139 | 7000 0 0 1 4400 3 1 | 130 | 7000 0 0 1 &mpic 3 1 |
140 | 7000 0 0 2 4400 3 1 | 131 | 7000 0 0 2 &mpic 3 1 |
141 | 7000 0 0 3 4400 3 1 | 132 | 7000 0 0 3 &mpic 3 1 |
142 | 7000 0 0 4 4400 3 1 | 133 | 7000 0 0 4 &mpic 3 1 |
143 | >; | 134 | >; |
144 | }; | 135 | }; |
145 | }; | 136 | }; |
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts index e13ac6ef05a9..eae68ab1177f 100644 --- a/arch/powerpc/boot/dts/lite5200.dts +++ b/arch/powerpc/boot/dts/lite5200.dts | |||
@@ -49,7 +49,7 @@ | |||
49 | soc5200@f0000000 { | 49 | soc5200@f0000000 { |
50 | model = "fsl,mpc5200"; | 50 | model = "fsl,mpc5200"; |
51 | compatible = "mpc5200"; | 51 | compatible = "mpc5200"; |
52 | revision = "" // from bootloader | 52 | revision = ""; // from bootloader |
53 | #interrupt-cells = <3>; | 53 | #interrupt-cells = <3>; |
54 | device_type = "soc"; | 54 | device_type = "soc"; |
55 | ranges = <0 f0000000 f0010000>; | 55 | ranges = <0 f0000000 f0010000>; |
@@ -62,13 +62,12 @@ | |||
62 | reg = <200 38>; | 62 | reg = <200 38>; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | pic@500 { | 65 | mpc5200_pic: pic@500 { |
66 | // 5200 interrupts are encoded into two levels; | 66 | // 5200 interrupts are encoded into two levels; |
67 | linux,phandle = <500>; | ||
68 | interrupt-controller; | 67 | interrupt-controller; |
69 | #interrupt-cells = <3>; | 68 | #interrupt-cells = <3>; |
70 | device_type = "interrupt-controller"; | 69 | device_type = "interrupt-controller"; |
71 | compatible = "mpc5200-pic"; | 70 | compatible = "mpc5200_pic"; |
72 | reg = <500 80>; | 71 | reg = <500 80>; |
73 | built-in; | 72 | built-in; |
74 | }; | 73 | }; |
@@ -79,7 +78,7 @@ | |||
79 | cell-index = <0>; | 78 | cell-index = <0>; |
80 | reg = <600 10>; | 79 | reg = <600 10>; |
81 | interrupts = <1 9 0>; | 80 | interrupts = <1 9 0>; |
82 | interrupt-parent = <500>; | 81 | interrupt-parent = <&mpc5200_pic>; |
83 | has-wdt; | 82 | has-wdt; |
84 | }; | 83 | }; |
85 | 84 | ||
@@ -89,7 +88,7 @@ | |||
89 | cell-index = <1>; | 88 | cell-index = <1>; |
90 | reg = <610 10>; | 89 | reg = <610 10>; |
91 | interrupts = <1 a 0>; | 90 | interrupts = <1 a 0>; |
92 | interrupt-parent = <500>; | 91 | interrupt-parent = <&mpc5200_pic>; |
93 | }; | 92 | }; |
94 | 93 | ||
95 | gpt@620 { // General Purpose Timer | 94 | gpt@620 { // General Purpose Timer |
@@ -98,7 +97,7 @@ | |||
98 | cell-index = <2>; | 97 | cell-index = <2>; |
99 | reg = <620 10>; | 98 | reg = <620 10>; |
100 | interrupts = <1 b 0>; | 99 | interrupts = <1 b 0>; |
101 | interrupt-parent = <500>; | 100 | interrupt-parent = <&mpc5200_pic>; |
102 | }; | 101 | }; |
103 | 102 | ||
104 | gpt@630 { // General Purpose Timer | 103 | gpt@630 { // General Purpose Timer |
@@ -107,7 +106,7 @@ | |||
107 | cell-index = <3>; | 106 | cell-index = <3>; |
108 | reg = <630 10>; | 107 | reg = <630 10>; |
109 | interrupts = <1 c 0>; | 108 | interrupts = <1 c 0>; |
110 | interrupt-parent = <500>; | 109 | interrupt-parent = <&mpc5200_pic>; |
111 | }; | 110 | }; |
112 | 111 | ||
113 | gpt@640 { // General Purpose Timer | 112 | gpt@640 { // General Purpose Timer |
@@ -116,7 +115,7 @@ | |||
116 | cell-index = <4>; | 115 | cell-index = <4>; |
117 | reg = <640 10>; | 116 | reg = <640 10>; |
118 | interrupts = <1 d 0>; | 117 | interrupts = <1 d 0>; |
119 | interrupt-parent = <500>; | 118 | interrupt-parent = <&mpc5200_pic>; |
120 | }; | 119 | }; |
121 | 120 | ||
122 | gpt@650 { // General Purpose Timer | 121 | gpt@650 { // General Purpose Timer |
@@ -125,7 +124,7 @@ | |||
125 | cell-index = <5>; | 124 | cell-index = <5>; |
126 | reg = <650 10>; | 125 | reg = <650 10>; |
127 | interrupts = <1 e 0>; | 126 | interrupts = <1 e 0>; |
128 | interrupt-parent = <500>; | 127 | interrupt-parent = <&mpc5200_pic>; |
129 | }; | 128 | }; |
130 | 129 | ||
131 | gpt@660 { // General Purpose Timer | 130 | gpt@660 { // General Purpose Timer |
@@ -134,7 +133,7 @@ | |||
134 | cell-index = <6>; | 133 | cell-index = <6>; |
135 | reg = <660 10>; | 134 | reg = <660 10>; |
136 | interrupts = <1 f 0>; | 135 | interrupts = <1 f 0>; |
137 | interrupt-parent = <500>; | 136 | interrupt-parent = <&mpc5200_pic>; |
138 | }; | 137 | }; |
139 | 138 | ||
140 | gpt@670 { // General Purpose Timer | 139 | gpt@670 { // General Purpose Timer |
@@ -143,7 +142,7 @@ | |||
143 | cell-index = <7>; | 142 | cell-index = <7>; |
144 | reg = <670 10>; | 143 | reg = <670 10>; |
145 | interrupts = <1 10 0>; | 144 | interrupts = <1 10 0>; |
146 | interrupt-parent = <500>; | 145 | interrupt-parent = <&mpc5200_pic>; |
147 | }; | 146 | }; |
148 | 147 | ||
149 | rtc@800 { // Real time clock | 148 | rtc@800 { // Real time clock |
@@ -151,7 +150,7 @@ | |||
151 | device_type = "rtc"; | 150 | device_type = "rtc"; |
152 | reg = <800 100>; | 151 | reg = <800 100>; |
153 | interrupts = <1 5 0 1 6 0>; | 152 | interrupts = <1 5 0 1 6 0>; |
154 | interrupt-parent = <500>; | 153 | interrupt-parent = <&mpc5200_pic>; |
155 | }; | 154 | }; |
156 | 155 | ||
157 | mscan@900 { | 156 | mscan@900 { |
@@ -159,7 +158,7 @@ | |||
159 | compatible = "mpc5200-mscan"; | 158 | compatible = "mpc5200-mscan"; |
160 | cell-index = <0>; | 159 | cell-index = <0>; |
161 | interrupts = <2 11 0>; | 160 | interrupts = <2 11 0>; |
162 | interrupt-parent = <500>; | 161 | interrupt-parent = <&mpc5200_pic>; |
163 | reg = <900 80>; | 162 | reg = <900 80>; |
164 | }; | 163 | }; |
165 | 164 | ||
@@ -168,7 +167,7 @@ | |||
168 | compatible = "mpc5200-mscan"; | 167 | compatible = "mpc5200-mscan"; |
169 | cell-index = <1>; | 168 | cell-index = <1>; |
170 | interrupts = <2 12 0>; | 169 | interrupts = <2 12 0>; |
171 | interrupt-parent = <500>; | 170 | interrupt-parent = <&mpc5200_pic>; |
172 | reg = <980 80>; | 171 | reg = <980 80>; |
173 | }; | 172 | }; |
174 | 173 | ||
@@ -176,14 +175,14 @@ | |||
176 | compatible = "mpc5200-gpio"; | 175 | compatible = "mpc5200-gpio"; |
177 | reg = <b00 40>; | 176 | reg = <b00 40>; |
178 | interrupts = <1 7 0>; | 177 | interrupts = <1 7 0>; |
179 | interrupt-parent = <500>; | 178 | interrupt-parent = <&mpc5200_pic>; |
180 | }; | 179 | }; |
181 | 180 | ||
182 | gpio-wkup@c00 { | 181 | gpio-wkup@c00 { |
183 | compatible = "mpc5200-gpio-wkup"; | 182 | compatible = "mpc5200-gpio-wkup"; |
184 | reg = <c00 40>; | 183 | reg = <c00 40>; |
185 | interrupts = <1 8 0 0 3 0>; | 184 | interrupts = <1 8 0 0 3 0>; |
186 | interrupt-parent = <500>; | 185 | interrupt-parent = <&mpc5200_pic>; |
187 | }; | 186 | }; |
188 | 187 | ||
189 | pci@0d00 { | 188 | pci@0d00 { |
@@ -194,13 +193,13 @@ | |||
194 | compatible = "mpc5200-pci"; | 193 | compatible = "mpc5200-pci"; |
195 | reg = <d00 100>; | 194 | reg = <d00 100>; |
196 | interrupt-map-mask = <f800 0 0 7>; | 195 | interrupt-map-mask = <f800 0 0 7>; |
197 | interrupt-map = <c000 0 0 1 500 0 0 3 | 196 | interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 |
198 | c000 0 0 2 500 0 0 3 | 197 | c000 0 0 2 &mpc5200_pic 0 0 3 |
199 | c000 0 0 3 500 0 0 3 | 198 | c000 0 0 3 &mpc5200_pic 0 0 3 |
200 | c000 0 0 4 500 0 0 3>; | 199 | c000 0 0 4 &mpc5200_pic 0 0 3>; |
201 | clock-frequency = <0>; // From boot loader | 200 | clock-frequency = <0>; // From boot loader |
202 | interrupts = <2 8 0 2 9 0 2 a 0>; | 201 | interrupts = <2 8 0 2 9 0 2 a 0>; |
203 | interrupt-parent = <500>; | 202 | interrupt-parent = <&mpc5200_pic>; |
204 | bus-range = <0 0>; | 203 | bus-range = <0 0>; |
205 | ranges = <42000000 0 80000000 80000000 0 20000000 | 204 | ranges = <42000000 0 80000000 80000000 0 20000000 |
206 | 02000000 0 a0000000 a0000000 0 10000000 | 205 | 02000000 0 a0000000 a0000000 0 10000000 |
@@ -212,7 +211,7 @@ | |||
212 | compatible = "mpc5200-spi"; | 211 | compatible = "mpc5200-spi"; |
213 | reg = <f00 20>; | 212 | reg = <f00 20>; |
214 | interrupts = <2 d 0 2 e 0>; | 213 | interrupts = <2 d 0 2 e 0>; |
215 | interrupt-parent = <500>; | 214 | interrupt-parent = <&mpc5200_pic>; |
216 | }; | 215 | }; |
217 | 216 | ||
218 | usb@1000 { | 217 | usb@1000 { |
@@ -220,7 +219,7 @@ | |||
220 | compatible = "mpc5200-ohci\0ohci-be"; | 219 | compatible = "mpc5200-ohci\0ohci-be"; |
221 | reg = <1000 ff>; | 220 | reg = <1000 ff>; |
222 | interrupts = <2 6 0>; | 221 | interrupts = <2 6 0>; |
223 | interrupt-parent = <500>; | 222 | interrupt-parent = <&mpc5200_pic>; |
224 | }; | 223 | }; |
225 | 224 | ||
226 | bestcomm@1200 { | 225 | bestcomm@1200 { |
@@ -231,7 +230,7 @@ | |||
231 | 3 4 0 3 5 0 3 6 0 3 7 0 | 230 | 3 4 0 3 5 0 3 6 0 3 7 0 |
232 | 3 8 0 3 9 0 3 a 0 3 b 0 | 231 | 3 8 0 3 9 0 3 a 0 3 b 0 |
233 | 3 c 0 3 d 0 3 e 0 3 f 0>; | 232 | 3 c 0 3 d 0 3 e 0 3 f 0>; |
234 | interrupt-parent = <500>; | 233 | interrupt-parent = <&mpc5200_pic>; |
235 | }; | 234 | }; |
236 | 235 | ||
237 | xlb@1f00 { | 236 | xlb@1f00 { |
@@ -246,7 +245,7 @@ | |||
246 | cell-index = <0>; | 245 | cell-index = <0>; |
247 | reg = <2000 100>; | 246 | reg = <2000 100>; |
248 | interrupts = <2 1 0>; | 247 | interrupts = <2 1 0>; |
249 | interrupt-parent = <500>; | 248 | interrupt-parent = <&mpc5200_pic>; |
250 | }; | 249 | }; |
251 | 250 | ||
252 | // PSC2 in ac97 mode example | 251 | // PSC2 in ac97 mode example |
@@ -256,7 +255,7 @@ | |||
256 | // cell-index = <1>; | 255 | // cell-index = <1>; |
257 | // reg = <2200 100>; | 256 | // reg = <2200 100>; |
258 | // interrupts = <2 2 0>; | 257 | // interrupts = <2 2 0>; |
259 | // interrupt-parent = <500>; | 258 | // interrupt-parent = <&mpc5200_pic>; |
260 | //}; | 259 | //}; |
261 | 260 | ||
262 | // PSC3 in CODEC mode example | 261 | // PSC3 in CODEC mode example |
@@ -266,7 +265,7 @@ | |||
266 | // cell-index = <2>; | 265 | // cell-index = <2>; |
267 | // reg = <2400 100>; | 266 | // reg = <2400 100>; |
268 | // interrupts = <2 3 0>; | 267 | // interrupts = <2 3 0>; |
269 | // interrupt-parent = <500>; | 268 | // interrupt-parent = <&mpc5200_pic>; |
270 | //}; | 269 | //}; |
271 | 270 | ||
272 | // PSC4 in uart mode example | 271 | // PSC4 in uart mode example |
@@ -276,7 +275,7 @@ | |||
276 | // cell-index = <3>; | 275 | // cell-index = <3>; |
277 | // reg = <2600 100>; | 276 | // reg = <2600 100>; |
278 | // interrupts = <2 b 0>; | 277 | // interrupts = <2 b 0>; |
279 | // interrupt-parent = <500>; | 278 | // interrupt-parent = <&mpc5200_pic>; |
280 | //}; | 279 | //}; |
281 | 280 | ||
282 | // PSC5 in uart mode example | 281 | // PSC5 in uart mode example |
@@ -286,7 +285,7 @@ | |||
286 | // cell-index = <4>; | 285 | // cell-index = <4>; |
287 | // reg = <2800 100>; | 286 | // reg = <2800 100>; |
288 | // interrupts = <2 c 0>; | 287 | // interrupts = <2 c 0>; |
289 | // interrupt-parent = <500>; | 288 | // interrupt-parent = <&mpc5200_pic>; |
290 | //}; | 289 | //}; |
291 | 290 | ||
292 | // PSC6 in spi mode example | 291 | // PSC6 in spi mode example |
@@ -296,7 +295,7 @@ | |||
296 | // cell-index = <5>; | 295 | // cell-index = <5>; |
297 | // reg = <2c00 100>; | 296 | // reg = <2c00 100>; |
298 | // interrupts = <2 4 0>; | 297 | // interrupts = <2 4 0>; |
299 | // interrupt-parent = <500>; | 298 | // interrupt-parent = <&mpc5200_pic>; |
300 | //}; | 299 | //}; |
301 | 300 | ||
302 | ethernet@3000 { | 301 | ethernet@3000 { |
@@ -305,7 +304,7 @@ | |||
305 | reg = <3000 800>; | 304 | reg = <3000 800>; |
306 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! | 305 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! |
307 | interrupts = <2 5 0>; | 306 | interrupts = <2 5 0>; |
308 | interrupt-parent = <500>; | 307 | interrupt-parent = <&mpc5200_pic>; |
309 | }; | 308 | }; |
310 | 309 | ||
311 | ata@3a00 { | 310 | ata@3a00 { |
@@ -313,7 +312,7 @@ | |||
313 | compatible = "mpc5200-ata"; | 312 | compatible = "mpc5200-ata"; |
314 | reg = <3a00 100>; | 313 | reg = <3a00 100>; |
315 | interrupts = <2 7 0>; | 314 | interrupts = <2 7 0>; |
316 | interrupt-parent = <500>; | 315 | interrupt-parent = <&mpc5200_pic>; |
317 | }; | 316 | }; |
318 | 317 | ||
319 | i2c@3d00 { | 318 | i2c@3d00 { |
@@ -322,7 +321,7 @@ | |||
322 | cell-index = <0>; | 321 | cell-index = <0>; |
323 | reg = <3d00 40>; | 322 | reg = <3d00 40>; |
324 | interrupts = <2 f 0>; | 323 | interrupts = <2 f 0>; |
325 | interrupt-parent = <500>; | 324 | interrupt-parent = <&mpc5200_pic>; |
326 | fsl5200-clocking; | 325 | fsl5200-clocking; |
327 | }; | 326 | }; |
328 | 327 | ||
@@ -332,7 +331,7 @@ | |||
332 | cell-index = <1>; | 331 | cell-index = <1>; |
333 | reg = <3d40 40>; | 332 | reg = <3d40 40>; |
334 | interrupts = <2 10 0>; | 333 | interrupts = <2 10 0>; |
335 | interrupt-parent = <500>; | 334 | interrupt-parent = <&mpc5200_pic>; |
336 | fsl5200-clocking; | 335 | fsl5200-clocking; |
337 | }; | 336 | }; |
338 | sram@8000 { | 337 | sram@8000 { |
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts index 00211b39a342..5185625a9419 100644 --- a/arch/powerpc/boot/dts/lite5200b.dts +++ b/arch/powerpc/boot/dts/lite5200b.dts | |||
@@ -62,13 +62,12 @@ | |||
62 | reg = <200 38>; | 62 | reg = <200 38>; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | pic@500 { | 65 | mpc5200_pic: pic@500 { |
66 | // 5200 interrupts are encoded into two levels; | 66 | // 5200 interrupts are encoded into two levels; |
67 | linux,phandle = <500>; | ||
68 | interrupt-controller; | 67 | interrupt-controller; |
69 | #interrupt-cells = <3>; | 68 | #interrupt-cells = <3>; |
70 | device_type = "interrupt-controller"; | 69 | device_type = "interrupt-controller"; |
71 | compatible = "mpc5200b-pic\0mpc5200-pic"; | 70 | compatible = "mpc5200b-pic\0mpc5200_pic"; |
72 | reg = <500 80>; | 71 | reg = <500 80>; |
73 | built-in; | 72 | built-in; |
74 | }; | 73 | }; |
@@ -79,7 +78,7 @@ | |||
79 | cell-index = <0>; | 78 | cell-index = <0>; |
80 | reg = <600 10>; | 79 | reg = <600 10>; |
81 | interrupts = <1 9 0>; | 80 | interrupts = <1 9 0>; |
82 | interrupt-parent = <500>; | 81 | interrupt-parent = <&mpc5200_pic>; |
83 | has-wdt; | 82 | has-wdt; |
84 | }; | 83 | }; |
85 | 84 | ||
@@ -89,7 +88,7 @@ | |||
89 | cell-index = <1>; | 88 | cell-index = <1>; |
90 | reg = <610 10>; | 89 | reg = <610 10>; |
91 | interrupts = <1 a 0>; | 90 | interrupts = <1 a 0>; |
92 | interrupt-parent = <500>; | 91 | interrupt-parent = <&mpc5200_pic>; |
93 | }; | 92 | }; |
94 | 93 | ||
95 | gpt@620 { // General Purpose Timer | 94 | gpt@620 { // General Purpose Timer |
@@ -98,7 +97,7 @@ | |||
98 | cell-index = <2>; | 97 | cell-index = <2>; |
99 | reg = <620 10>; | 98 | reg = <620 10>; |
100 | interrupts = <1 b 0>; | 99 | interrupts = <1 b 0>; |
101 | interrupt-parent = <500>; | 100 | interrupt-parent = <&mpc5200_pic>; |
102 | }; | 101 | }; |
103 | 102 | ||
104 | gpt@630 { // General Purpose Timer | 103 | gpt@630 { // General Purpose Timer |
@@ -107,7 +106,7 @@ | |||
107 | cell-index = <3>; | 106 | cell-index = <3>; |
108 | reg = <630 10>; | 107 | reg = <630 10>; |
109 | interrupts = <1 c 0>; | 108 | interrupts = <1 c 0>; |
110 | interrupt-parent = <500>; | 109 | interrupt-parent = <&mpc5200_pic>; |
111 | }; | 110 | }; |
112 | 111 | ||
113 | gpt@640 { // General Purpose Timer | 112 | gpt@640 { // General Purpose Timer |
@@ -116,7 +115,7 @@ | |||
116 | cell-index = <4>; | 115 | cell-index = <4>; |
117 | reg = <640 10>; | 116 | reg = <640 10>; |
118 | interrupts = <1 d 0>; | 117 | interrupts = <1 d 0>; |
119 | interrupt-parent = <500>; | 118 | interrupt-parent = <&mpc5200_pic>; |
120 | }; | 119 | }; |
121 | 120 | ||
122 | gpt@650 { // General Purpose Timer | 121 | gpt@650 { // General Purpose Timer |
@@ -125,7 +124,7 @@ | |||
125 | cell-index = <5>; | 124 | cell-index = <5>; |
126 | reg = <650 10>; | 125 | reg = <650 10>; |
127 | interrupts = <1 e 0>; | 126 | interrupts = <1 e 0>; |
128 | interrupt-parent = <500>; | 127 | interrupt-parent = <&mpc5200_pic>; |
129 | }; | 128 | }; |
130 | 129 | ||
131 | gpt@660 { // General Purpose Timer | 130 | gpt@660 { // General Purpose Timer |
@@ -134,7 +133,7 @@ | |||
134 | cell-index = <6>; | 133 | cell-index = <6>; |
135 | reg = <660 10>; | 134 | reg = <660 10>; |
136 | interrupts = <1 f 0>; | 135 | interrupts = <1 f 0>; |
137 | interrupt-parent = <500>; | 136 | interrupt-parent = <&mpc5200_pic>; |
138 | }; | 137 | }; |
139 | 138 | ||
140 | gpt@670 { // General Purpose Timer | 139 | gpt@670 { // General Purpose Timer |
@@ -143,7 +142,7 @@ | |||
143 | cell-index = <7>; | 142 | cell-index = <7>; |
144 | reg = <670 10>; | 143 | reg = <670 10>; |
145 | interrupts = <1 10 0>; | 144 | interrupts = <1 10 0>; |
146 | interrupt-parent = <500>; | 145 | interrupt-parent = <&mpc5200_pic>; |
147 | }; | 146 | }; |
148 | 147 | ||
149 | rtc@800 { // Real time clock | 148 | rtc@800 { // Real time clock |
@@ -151,7 +150,7 @@ | |||
151 | device_type = "rtc"; | 150 | device_type = "rtc"; |
152 | reg = <800 100>; | 151 | reg = <800 100>; |
153 | interrupts = <1 5 0 1 6 0>; | 152 | interrupts = <1 5 0 1 6 0>; |
154 | interrupt-parent = <500>; | 153 | interrupt-parent = <&mpc5200_pic>; |
155 | }; | 154 | }; |
156 | 155 | ||
157 | mscan@900 { | 156 | mscan@900 { |
@@ -159,7 +158,7 @@ | |||
159 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; | 158 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; |
160 | cell-index = <0>; | 159 | cell-index = <0>; |
161 | interrupts = <2 11 0>; | 160 | interrupts = <2 11 0>; |
162 | interrupt-parent = <500>; | 161 | interrupt-parent = <&mpc5200_pic>; |
163 | reg = <900 80>; | 162 | reg = <900 80>; |
164 | }; | 163 | }; |
165 | 164 | ||
@@ -168,7 +167,7 @@ | |||
168 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; | 167 | compatible = "mpc5200b-mscan\0mpc5200-mscan"; |
169 | cell-index = <1>; | 168 | cell-index = <1>; |
170 | interrupts = <2 12 0>; | 169 | interrupts = <2 12 0>; |
171 | interrupt-parent = <500>; | 170 | interrupt-parent = <&mpc5200_pic>; |
172 | reg = <980 80>; | 171 | reg = <980 80>; |
173 | }; | 172 | }; |
174 | 173 | ||
@@ -176,14 +175,14 @@ | |||
176 | compatible = "mpc5200b-gpio\0mpc5200-gpio"; | 175 | compatible = "mpc5200b-gpio\0mpc5200-gpio"; |
177 | reg = <b00 40>; | 176 | reg = <b00 40>; |
178 | interrupts = <1 7 0>; | 177 | interrupts = <1 7 0>; |
179 | interrupt-parent = <500>; | 178 | interrupt-parent = <&mpc5200_pic>; |
180 | }; | 179 | }; |
181 | 180 | ||
182 | gpio-wkup@c00 { | 181 | gpio-wkup@c00 { |
183 | compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup"; | 182 | compatible = "mpc5200b-gpio-wkup\0mpc5200-gpio-wkup"; |
184 | reg = <c00 40>; | 183 | reg = <c00 40>; |
185 | interrupts = <1 8 0 0 3 0>; | 184 | interrupts = <1 8 0 0 3 0>; |
186 | interrupt-parent = <500>; | 185 | interrupt-parent = <&mpc5200_pic>; |
187 | }; | 186 | }; |
188 | 187 | ||
189 | pci@0d00 { | 188 | pci@0d00 { |
@@ -194,18 +193,18 @@ | |||
194 | compatible = "mpc5200b-pci\0mpc5200-pci"; | 193 | compatible = "mpc5200b-pci\0mpc5200-pci"; |
195 | reg = <d00 100>; | 194 | reg = <d00 100>; |
196 | interrupt-map-mask = <f800 0 0 7>; | 195 | interrupt-map-mask = <f800 0 0 7>; |
197 | interrupt-map = <c000 0 0 1 500 0 0 3 // 1st slot | 196 | interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3 // 1st slot |
198 | c000 0 0 2 500 1 1 3 | 197 | c000 0 0 2 &mpc5200_pic 1 1 3 |
199 | c000 0 0 3 500 1 2 3 | 198 | c000 0 0 3 &mpc5200_pic 1 2 3 |
200 | c000 0 0 4 500 1 3 3 | 199 | c000 0 0 4 &mpc5200_pic 1 3 3 |
201 | 200 | ||
202 | c800 0 0 1 500 1 1 3 // 2nd slot | 201 | c800 0 0 1 &mpc5200_pic 1 1 3 // 2nd slot |
203 | c800 0 0 2 500 1 2 3 | 202 | c800 0 0 2 &mpc5200_pic 1 2 3 |
204 | c800 0 0 3 500 1 3 3 | 203 | c800 0 0 3 &mpc5200_pic 1 3 3 |
205 | c800 0 0 4 500 0 0 3>; | 204 | c800 0 0 4 &mpc5200_pic 0 0 3>; |
206 | clock-frequency = <0>; // From boot loader | 205 | clock-frequency = <0>; // From boot loader |
207 | interrupts = <2 8 0 2 9 0 2 a 0>; | 206 | interrupts = <2 8 0 2 9 0 2 a 0>; |
208 | interrupt-parent = <500>; | 207 | interrupt-parent = <&mpc5200_pic>; |
209 | bus-range = <0 0>; | 208 | bus-range = <0 0>; |
210 | ranges = <42000000 0 80000000 80000000 0 20000000 | 209 | ranges = <42000000 0 80000000 80000000 0 20000000 |
211 | 02000000 0 a0000000 a0000000 0 10000000 | 210 | 02000000 0 a0000000 a0000000 0 10000000 |
@@ -217,7 +216,7 @@ | |||
217 | compatible = "mpc5200b-spi\0mpc5200-spi"; | 216 | compatible = "mpc5200b-spi\0mpc5200-spi"; |
218 | reg = <f00 20>; | 217 | reg = <f00 20>; |
219 | interrupts = <2 d 0 2 e 0>; | 218 | interrupts = <2 d 0 2 e 0>; |
220 | interrupt-parent = <500>; | 219 | interrupt-parent = <&mpc5200_pic>; |
221 | }; | 220 | }; |
222 | 221 | ||
223 | usb@1000 { | 222 | usb@1000 { |
@@ -225,7 +224,7 @@ | |||
225 | compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be"; | 224 | compatible = "mpc5200b-ohci\0mpc5200-ohci\0ohci-be"; |
226 | reg = <1000 ff>; | 225 | reg = <1000 ff>; |
227 | interrupts = <2 6 0>; | 226 | interrupts = <2 6 0>; |
228 | interrupt-parent = <500>; | 227 | interrupt-parent = <&mpc5200_pic>; |
229 | }; | 228 | }; |
230 | 229 | ||
231 | bestcomm@1200 { | 230 | bestcomm@1200 { |
@@ -236,7 +235,7 @@ | |||
236 | 3 4 0 3 5 0 3 6 0 3 7 0 | 235 | 3 4 0 3 5 0 3 6 0 3 7 0 |
237 | 3 8 0 3 9 0 3 a 0 3 b 0 | 236 | 3 8 0 3 9 0 3 a 0 3 b 0 |
238 | 3 c 0 3 d 0 3 e 0 3 f 0>; | 237 | 3 c 0 3 d 0 3 e 0 3 f 0>; |
239 | interrupt-parent = <500>; | 238 | interrupt-parent = <&mpc5200_pic>; |
240 | }; | 239 | }; |
241 | 240 | ||
242 | xlb@1f00 { | 241 | xlb@1f00 { |
@@ -251,7 +250,7 @@ | |||
251 | cell-index = <0>; | 250 | cell-index = <0>; |
252 | reg = <2000 100>; | 251 | reg = <2000 100>; |
253 | interrupts = <2 1 0>; | 252 | interrupts = <2 1 0>; |
254 | interrupt-parent = <500>; | 253 | interrupt-parent = <&mpc5200_pic>; |
255 | }; | 254 | }; |
256 | 255 | ||
257 | // PSC2 in ac97 mode example | 256 | // PSC2 in ac97 mode example |
@@ -261,7 +260,7 @@ | |||
261 | // cell-index = <1>; | 260 | // cell-index = <1>; |
262 | // reg = <2200 100>; | 261 | // reg = <2200 100>; |
263 | // interrupts = <2 2 0>; | 262 | // interrupts = <2 2 0>; |
264 | // interrupt-parent = <500>; | 263 | // interrupt-parent = <&mpc5200_pic>; |
265 | //}; | 264 | //}; |
266 | 265 | ||
267 | // PSC3 in CODEC mode example | 266 | // PSC3 in CODEC mode example |
@@ -271,7 +270,7 @@ | |||
271 | // cell-index = <2>; | 270 | // cell-index = <2>; |
272 | // reg = <2400 100>; | 271 | // reg = <2400 100>; |
273 | // interrupts = <2 3 0>; | 272 | // interrupts = <2 3 0>; |
274 | // interrupt-parent = <500>; | 273 | // interrupt-parent = <&mpc5200_pic>; |
275 | //}; | 274 | //}; |
276 | 275 | ||
277 | // PSC4 in uart mode example | 276 | // PSC4 in uart mode example |
@@ -281,7 +280,7 @@ | |||
281 | // cell-index = <3>; | 280 | // cell-index = <3>; |
282 | // reg = <2600 100>; | 281 | // reg = <2600 100>; |
283 | // interrupts = <2 b 0>; | 282 | // interrupts = <2 b 0>; |
284 | // interrupt-parent = <500>; | 283 | // interrupt-parent = <&mpc5200_pic>; |
285 | //}; | 284 | //}; |
286 | 285 | ||
287 | // PSC5 in uart mode example | 286 | // PSC5 in uart mode example |
@@ -291,7 +290,7 @@ | |||
291 | // cell-index = <4>; | 290 | // cell-index = <4>; |
292 | // reg = <2800 100>; | 291 | // reg = <2800 100>; |
293 | // interrupts = <2 c 0>; | 292 | // interrupts = <2 c 0>; |
294 | // interrupt-parent = <500>; | 293 | // interrupt-parent = <&mpc5200_pic>; |
295 | //}; | 294 | //}; |
296 | 295 | ||
297 | // PSC6 in spi mode example | 296 | // PSC6 in spi mode example |
@@ -301,7 +300,7 @@ | |||
301 | // cell-index = <5>; | 300 | // cell-index = <5>; |
302 | // reg = <2c00 100>; | 301 | // reg = <2c00 100>; |
303 | // interrupts = <2 4 0>; | 302 | // interrupts = <2 4 0>; |
304 | // interrupt-parent = <500>; | 303 | // interrupt-parent = <&mpc5200_pic>; |
305 | //}; | 304 | //}; |
306 | 305 | ||
307 | ethernet@3000 { | 306 | ethernet@3000 { |
@@ -310,7 +309,7 @@ | |||
310 | reg = <3000 800>; | 309 | reg = <3000 800>; |
311 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! | 310 | mac-address = [ 02 03 04 05 06 07 ]; // Bad! |
312 | interrupts = <2 5 0>; | 311 | interrupts = <2 5 0>; |
313 | interrupt-parent = <500>; | 312 | interrupt-parent = <&mpc5200_pic>; |
314 | }; | 313 | }; |
315 | 314 | ||
316 | ata@3a00 { | 315 | ata@3a00 { |
@@ -318,7 +317,7 @@ | |||
318 | compatible = "mpc5200b-ata\0mpc5200-ata"; | 317 | compatible = "mpc5200b-ata\0mpc5200-ata"; |
319 | reg = <3a00 100>; | 318 | reg = <3a00 100>; |
320 | interrupts = <2 7 0>; | 319 | interrupts = <2 7 0>; |
321 | interrupt-parent = <500>; | 320 | interrupt-parent = <&mpc5200_pic>; |
322 | }; | 321 | }; |
323 | 322 | ||
324 | i2c@3d00 { | 323 | i2c@3d00 { |
@@ -327,7 +326,7 @@ | |||
327 | cell-index = <0>; | 326 | cell-index = <0>; |
328 | reg = <3d00 40>; | 327 | reg = <3d00 40>; |
329 | interrupts = <2 f 0>; | 328 | interrupts = <2 f 0>; |
330 | interrupt-parent = <500>; | 329 | interrupt-parent = <&mpc5200_pic>; |
331 | fsl5200-clocking; | 330 | fsl5200-clocking; |
332 | }; | 331 | }; |
333 | 332 | ||
@@ -337,7 +336,7 @@ | |||
337 | cell-index = <1>; | 336 | cell-index = <1>; |
338 | reg = <3d40 40>; | 337 | reg = <3d40 40>; |
339 | interrupts = <2 10 0>; | 338 | interrupts = <2 10 0>; |
340 | interrupt-parent = <500>; | 339 | interrupt-parent = <&mpc5200_pic>; |
341 | fsl5200-clocking; | 340 | fsl5200-clocking; |
342 | }; | 341 | }; |
343 | sram@8000 { | 342 | sram@8000 { |
diff --git a/arch/powerpc/boot/dts/mpc7448hpc2.dts b/arch/powerpc/boot/dts/mpc7448hpc2.dts index 6fa3754f293a..765c306ecf80 100644 --- a/arch/powerpc/boot/dts/mpc7448hpc2.dts +++ b/arch/powerpc/boot/dts/mpc7448hpc2.dts | |||
@@ -16,12 +16,10 @@ | |||
16 | compatible = "mpc74xx"; | 16 | compatible = "mpc74xx"; |
17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
19 | linux,phandle = <100>; | ||
20 | 19 | ||
21 | cpus { | 20 | cpus { |
22 | #address-cells = <1>; | 21 | #address-cells = <1>; |
23 | #size-cells =<0>; | 22 | #size-cells =<0>; |
24 | linux,phandle = <200>; | ||
25 | 23 | ||
26 | PowerPC,7448@0 { | 24 | PowerPC,7448@0 { |
27 | device_type = "cpu"; | 25 | device_type = "cpu"; |
@@ -34,13 +32,11 @@ | |||
34 | clock-frequency = <0>; // From U-Boot | 32 | clock-frequency = <0>; // From U-Boot |
35 | bus-frequency = <0>; // From U-Boot | 33 | bus-frequency = <0>; // From U-Boot |
36 | 32-bit; | 34 | 32-bit; |
37 | linux,phandle = <201>; | ||
38 | }; | 35 | }; |
39 | }; | 36 | }; |
40 | 37 | ||
41 | memory { | 38 | memory { |
42 | device_type = "memory"; | 39 | device_type = "memory"; |
43 | linux,phandle = <300>; | ||
44 | reg = <00000000 20000000 // DDR2 512M at 0 | 40 | reg = <00000000 20000000 // DDR2 512M at 0 |
45 | >; | 41 | >; |
46 | }; | 42 | }; |
@@ -55,7 +51,7 @@ | |||
55 | bus-frequency = <0>; | 51 | bus-frequency = <0>; |
56 | 52 | ||
57 | i2c@7000 { | 53 | i2c@7000 { |
58 | interrupt-parent = <7400>; | 54 | interrupt-parent = <&mpic>; |
59 | interrupts = <E 0>; | 55 | interrupts = <E 0>; |
60 | reg = <7000 400>; | 56 | reg = <7000 400>; |
61 | device_type = "i2c"; | 57 | device_type = "i2c"; |
@@ -66,18 +62,16 @@ | |||
66 | device_type = "mdio"; | 62 | device_type = "mdio"; |
67 | compatible = "tsi-ethernet"; | 63 | compatible = "tsi-ethernet"; |
68 | 64 | ||
69 | ethernet-phy@6000 { | 65 | phy8: ethernet-phy@6000 { |
70 | linux,phandle = <6000>; | 66 | interrupt-parent = <&mpic>; |
71 | interrupt-parent = <7400>; | ||
72 | interrupts = <2 1>; | 67 | interrupts = <2 1>; |
73 | reg = <6000 50>; | 68 | reg = <6000 50>; |
74 | phy-id = <8>; | 69 | phy-id = <8>; |
75 | device_type = "ethernet-phy"; | 70 | device_type = "ethernet-phy"; |
76 | }; | 71 | }; |
77 | 72 | ||
78 | ethernet-phy@6400 { | 73 | phy9: ethernet-phy@6400 { |
79 | linux,phandle = <6400>; | 74 | interrupt-parent = <&mpic>; |
80 | interrupt-parent = <7400>; | ||
81 | interrupts = <2 1>; | 75 | interrupts = <2 1>; |
82 | reg = <6000 50>; | 76 | reg = <6000 50>; |
83 | phy-id = <9>; | 77 | phy-id = <9>; |
@@ -94,8 +88,8 @@ | |||
94 | reg = <6000 200>; | 88 | reg = <6000 200>; |
95 | address = [ 00 06 D2 00 00 01 ]; | 89 | address = [ 00 06 D2 00 00 01 ]; |
96 | interrupts = <10 2>; | 90 | interrupts = <10 2>; |
97 | interrupt-parent = <7400>; | 91 | interrupt-parent = <&mpic>; |
98 | phy-handle = <6000>; | 92 | phy-handle = <&phy8>; |
99 | }; | 93 | }; |
100 | 94 | ||
101 | ethernet@6600 { | 95 | ethernet@6600 { |
@@ -107,8 +101,8 @@ | |||
107 | reg = <6400 200>; | 101 | reg = <6400 200>; |
108 | address = [ 00 06 D2 00 00 02 ]; | 102 | address = [ 00 06 D2 00 00 02 ]; |
109 | interrupts = <11 2>; | 103 | interrupts = <11 2>; |
110 | interrupt-parent = <7400>; | 104 | interrupt-parent = <&mpic>; |
111 | phy-handle = <6400>; | 105 | phy-handle = <&phy9>; |
112 | }; | 106 | }; |
113 | 107 | ||
114 | serial@7808 { | 108 | serial@7808 { |
@@ -117,7 +111,7 @@ | |||
117 | reg = <7808 200>; | 111 | reg = <7808 200>; |
118 | clock-frequency = <3f6b5a00>; | 112 | clock-frequency = <3f6b5a00>; |
119 | interrupts = <c 0>; | 113 | interrupts = <c 0>; |
120 | interrupt-parent = <7400>; | 114 | interrupt-parent = <&mpic>; |
121 | }; | 115 | }; |
122 | 116 | ||
123 | serial@7c08 { | 117 | serial@7c08 { |
@@ -126,11 +120,10 @@ | |||
126 | reg = <7c08 200>; | 120 | reg = <7c08 200>; |
127 | clock-frequency = <3f6b5a00>; | 121 | clock-frequency = <3f6b5a00>; |
128 | interrupts = <d 0>; | 122 | interrupts = <d 0>; |
129 | interrupt-parent = <7400>; | 123 | interrupt-parent = <&mpic>; |
130 | }; | 124 | }; |
131 | 125 | ||
132 | pic@7400 { | 126 | mpic: pic@7400 { |
133 | linux,phandle = <7400>; | ||
134 | clock-frequency = <0>; | 127 | clock-frequency = <0>; |
135 | interrupt-controller; | 128 | interrupt-controller; |
136 | #address-cells = <0>; | 129 | #address-cells = <0>; |
@@ -144,7 +137,6 @@ | |||
144 | pci@1000 { | 137 | pci@1000 { |
145 | compatible = "tsi10x"; | 138 | compatible = "tsi10x"; |
146 | device_type = "pci"; | 139 | device_type = "pci"; |
147 | linux,phandle = <1000>; | ||
148 | #interrupt-cells = <1>; | 140 | #interrupt-cells = <1>; |
149 | #size-cells = <2>; | 141 | #size-cells = <2>; |
150 | #address-cells = <3>; | 142 | #address-cells = <3>; |
@@ -153,37 +145,37 @@ | |||
153 | ranges = <02000000 0 e0000000 e0000000 0 1A000000 | 145 | ranges = <02000000 0 e0000000 e0000000 0 1A000000 |
154 | 01000000 0 00000000 fa000000 0 00010000>; | 146 | 01000000 0 00000000 fa000000 0 00010000>; |
155 | clock-frequency = <7f28154>; | 147 | clock-frequency = <7f28154>; |
156 | interrupt-parent = <7400>; | 148 | interrupt-parent = <&mpic>; |
157 | interrupts = <17 2>; | 149 | interrupts = <17 2>; |
158 | interrupt-map-mask = <f800 0 0 7>; | 150 | interrupt-map-mask = <f800 0 0 7>; |
159 | interrupt-map = < | 151 | interrupt-map = < |
160 | 152 | ||
161 | /* IDSEL 0x11 */ | 153 | /* IDSEL 0x11 */ |
162 | 0800 0 0 1 1180 24 0 | 154 | 0800 0 0 1 &RT0 24 0 |
163 | 0800 0 0 2 1180 25 0 | 155 | 0800 0 0 2 &RT0 25 0 |
164 | 0800 0 0 3 1180 26 0 | 156 | 0800 0 0 3 &RT0 26 0 |
165 | 0800 0 0 4 1180 27 0 | 157 | 0800 0 0 4 &RT0 27 0 |
166 | 158 | ||
167 | /* IDSEL 0x12 */ | 159 | /* IDSEL 0x12 */ |
168 | 1000 0 0 1 1180 25 0 | 160 | 1000 0 0 1 &RT0 25 0 |
169 | 1000 0 0 2 1180 26 0 | 161 | 1000 0 0 2 &RT0 26 0 |
170 | 1000 0 0 3 1180 27 0 | 162 | 1000 0 0 3 &RT0 27 0 |
171 | 1000 0 0 4 1180 24 0 | 163 | 1000 0 0 4 &RT0 24 0 |
172 | 164 | ||
173 | /* IDSEL 0x13 */ | 165 | /* IDSEL 0x13 */ |
174 | 1800 0 0 1 1180 26 0 | 166 | 1800 0 0 1 &RT0 26 0 |
175 | 1800 0 0 2 1180 27 0 | 167 | 1800 0 0 2 &RT0 27 0 |
176 | 1800 0 0 3 1180 24 0 | 168 | 1800 0 0 3 &RT0 24 0 |
177 | 1800 0 0 4 1180 25 0 | 169 | 1800 0 0 4 &RT0 25 0 |
178 | 170 | ||
179 | /* IDSEL 0x14 */ | 171 | /* IDSEL 0x14 */ |
180 | 2000 0 0 1 1180 27 0 | 172 | 2000 0 0 1 &RT0 27 0 |
181 | 2000 0 0 2 1180 24 0 | 173 | 2000 0 0 2 &RT0 24 0 |
182 | 2000 0 0 3 1180 25 0 | 174 | 2000 0 0 3 &RT0 25 0 |
183 | 2000 0 0 4 1180 26 0 | 175 | 2000 0 0 4 &RT0 26 0 |
184 | >; | 176 | >; |
185 | router@1180 { | 177 | |
186 | linux,phandle = <1180>; | 178 | RT0: router@1180 { |
187 | clock-frequency = <0>; | 179 | clock-frequency = <0>; |
188 | interrupt-controller; | 180 | interrupt-controller; |
189 | device_type = "pic-router"; | 181 | device_type = "pic-router"; |
@@ -192,7 +184,7 @@ | |||
192 | built-in; | 184 | built-in; |
193 | big-endian; | 185 | big-endian; |
194 | interrupts = <17 2>; | 186 | interrupts = <17 2>; |
195 | interrupt-parent = <7400>; | 187 | interrupt-parent = <&mpic>; |
196 | }; | 188 | }; |
197 | }; | 189 | }; |
198 | }; | 190 | }; |
diff --git a/arch/powerpc/boot/dts/mpc8540ads.dts b/arch/powerpc/boot/dts/mpc8540ads.dts index f261d647ac85..d91e81c009f5 100644 --- a/arch/powerpc/boot/dts/mpc8540ads.dts +++ b/arch/powerpc/boot/dts/mpc8540ads.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8540-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8540-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts index 5fdcb69554f2..4f2c3af2e052 100644 --- a/arch/powerpc/boot/dts/mpc8541cds.dts +++ b/arch/powerpc/boot/dts/mpc8541cds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8541-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8541-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index 6b084605bb4b..3033599e74e8 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; // Filled out by uboot. | 49 | bus-frequency = <0>; // Filled out by uboot. |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8544-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8544-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts index b2b2200d0425..ad96381033c0 100644 --- a/arch/powerpc/boot/dts/mpc8548cds.dts +++ b/arch/powerpc/boot/dts/mpc8548cds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8548-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8548-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <80000>; // L2, 512K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts index 68a4795720dc..951ed92f1154 100644 --- a/arch/powerpc/boot/dts/mpc8555cds.dts +++ b/arch/powerpc/boot/dts/mpc8555cds.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | reg = <e0000000 00100000>; // CCSRBAR 1M |
49 | bus-frequency = <0>; | 49 | bus-frequency = <0>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8555-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8555-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | i2c@3000 { | 67 | i2c@3000 { |
52 | device_type = "i2c"; | 68 | device_type = "i2c"; |
53 | compatible = "fsl-i2c"; | 69 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts index 1f2afe9291d2..80682152b0cf 100644 --- a/arch/powerpc/boot/dts/mpc8560ads.dts +++ b/arch/powerpc/boot/dts/mpc8560ads.dts | |||
@@ -48,6 +48,22 @@ | |||
48 | reg = <e0000000 00000200>; | 48 | reg = <e0000000 00000200>; |
49 | bus-frequency = <13ab6680>; | 49 | bus-frequency = <13ab6680>; |
50 | 50 | ||
51 | memory-controller@2000 { | ||
52 | compatible = "fsl,8540-memory-controller"; | ||
53 | reg = <2000 1000>; | ||
54 | interrupt-parent = <&mpic>; | ||
55 | interrupts = <2 2>; | ||
56 | }; | ||
57 | |||
58 | l2-cache-controller@20000 { | ||
59 | compatible = "fsl,8540-l2-cache-controller"; | ||
60 | reg = <20000 1000>; | ||
61 | cache-line-size = <20>; // 32 bytes | ||
62 | cache-size = <40000>; // L2, 256K | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <0 2>; | ||
65 | }; | ||
66 | |||
51 | mdio@24520 { | 67 | mdio@24520 { |
52 | device_type = "mdio"; | 68 | device_type = "mdio"; |
53 | compatible = "gianfar"; | 69 | compatible = "gianfar"; |
@@ -110,7 +126,7 @@ | |||
110 | #address-cells = <3>; | 126 | #address-cells = <3>; |
111 | compatible = "85xx"; | 127 | compatible = "85xx"; |
112 | device_type = "pci"; | 128 | device_type = "pci"; |
113 | reg = <8000 400>; | 129 | reg = <8000 1000>; |
114 | clock-frequency = <3f940aa>; | 130 | clock-frequency = <3f940aa>; |
115 | interrupt-map-mask = <f800 0 0 7>; | 131 | interrupt-map-mask = <f800 0 0 7>; |
116 | interrupt-map = < | 132 | interrupt-map = < |
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index 948a3b61bd4a..a123ec9456bc 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts | |||
@@ -57,6 +57,22 @@ | |||
57 | reg = <e0000000 00100000>; | 57 | reg = <e0000000 00100000>; |
58 | bus-frequency = <0>; | 58 | bus-frequency = <0>; |
59 | 59 | ||
60 | memory-controller@2000 { | ||
61 | compatible = "fsl,8568-memory-controller"; | ||
62 | reg = <2000 1000>; | ||
63 | interrupt-parent = <&mpic>; | ||
64 | interrupts = <2 2>; | ||
65 | }; | ||
66 | |||
67 | l2-cache-controller@20000 { | ||
68 | compatible = "fsl,8568-l2-cache-controller"; | ||
69 | reg = <20000 1000>; | ||
70 | cache-line-size = <20>; // 32 bytes | ||
71 | cache-size = <80000>; // L2, 512K | ||
72 | interrupt-parent = <&mpic>; | ||
73 | interrupts = <0 2>; | ||
74 | }; | ||
75 | |||
60 | i2c@3000 { | 76 | i2c@3000 { |
61 | device_type = "i2c"; | 77 | device_type = "i2c"; |
62 | compatible = "fsl-i2c"; | 78 | compatible = "fsl-i2c"; |
diff --git a/arch/powerpc/boot/flatdevtree.c b/arch/powerpc/boot/flatdevtree.c index d00fbd92a458..b732644788db 100644 --- a/arch/powerpc/boot/flatdevtree.c +++ b/arch/powerpc/boot/flatdevtree.c | |||
@@ -891,28 +891,27 @@ int ft_set_prop(struct ft_cxt *cxt, const void *phandle, const char *propname, | |||
891 | struct ft_atom atom; | 891 | struct ft_atom atom; |
892 | void *node; | 892 | void *node; |
893 | char *p, *next; | 893 | char *p, *next; |
894 | int nextra, depth; | 894 | int nextra; |
895 | 895 | ||
896 | node = ft_node_ph2node(cxt, phandle); | 896 | node = ft_node_ph2node(cxt, phandle); |
897 | if (node == NULL) | 897 | if (node == NULL) |
898 | return -1; | 898 | return -1; |
899 | 899 | ||
900 | depth = 0; | 900 | next = ft_next(cxt, node, &atom); |
901 | p = node; | 901 | if (atom.tag != OF_DT_BEGIN_NODE) |
902 | /* phandle didn't point to a node */ | ||
903 | return -1; | ||
904 | p = next; | ||
902 | 905 | ||
903 | while ((next = ft_next(cxt, p, &atom)) != NULL) { | 906 | while ((next = ft_next(cxt, p, &atom)) != NULL) { |
904 | switch (atom.tag) { | 907 | switch (atom.tag) { |
905 | case OF_DT_BEGIN_NODE: | 908 | case OF_DT_BEGIN_NODE: /* properties must go before subnodes */ |
906 | ++depth; | ||
907 | break; | ||
908 | case OF_DT_END_NODE: | 909 | case OF_DT_END_NODE: |
909 | if (--depth > 0) | ||
910 | break; | ||
911 | /* haven't found the property, insert here */ | 910 | /* haven't found the property, insert here */ |
912 | cxt->p = p; | 911 | cxt->p = p; |
913 | return ft_prop(cxt, propname, buf, buflen); | 912 | return ft_prop(cxt, propname, buf, buflen); |
914 | case OF_DT_PROP: | 913 | case OF_DT_PROP: |
915 | if ((depth != 1) || strcmp(atom.name, propname)) | 914 | if (strcmp(atom.name, propname)) |
916 | break; | 915 | break; |
917 | /* found an existing property, overwrite it */ | 916 | /* found an existing property, overwrite it */ |
918 | nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4); | 917 | nextra = _ALIGN(buflen, 4) - _ALIGN(atom.size, 4); |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index 6061e5f7696e..02c428affc8f 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
@@ -163,7 +163,6 @@ CONFIG_SPU_FS=m | |||
163 | CONFIG_SPU_BASE=y | 163 | CONFIG_SPU_BASE=y |
164 | CONFIG_CBE_RAS=y | 164 | CONFIG_CBE_RAS=y |
165 | CONFIG_CBE_THERM=m | 165 | CONFIG_CBE_THERM=m |
166 | CONFIG_CBE_CPUFREQ=m | ||
167 | CONFIG_PPC_NATIVE=y | 166 | CONFIG_PPC_NATIVE=y |
168 | CONFIG_UDBG_RTAS_CONSOLE=y | 167 | CONFIG_UDBG_RTAS_CONSOLE=y |
169 | CONFIG_PPC_UDBG_BEAT=y | 168 | CONFIG_PPC_UDBG_BEAT=y |
@@ -172,24 +171,12 @@ CONFIG_PPC_RTAS=y | |||
172 | # CONFIG_RTAS_ERROR_LOGGING is not set | 171 | # CONFIG_RTAS_ERROR_LOGGING is not set |
173 | CONFIG_RTAS_PROC=y | 172 | CONFIG_RTAS_PROC=y |
174 | CONFIG_RTAS_FLASH=y | 173 | CONFIG_RTAS_FLASH=y |
175 | CONFIG_PPC_PMI=m | 174 | # CONFIG_PPC_PMI is not set |
176 | CONFIG_MMIO_NVRAM=y | 175 | CONFIG_MMIO_NVRAM=y |
177 | # CONFIG_PPC_MPC106 is not set | 176 | # CONFIG_PPC_MPC106 is not set |
178 | # CONFIG_PPC_970_NAP is not set | 177 | # CONFIG_PPC_970_NAP is not set |
179 | CONFIG_PPC_INDIRECT_IO=y | 178 | CONFIG_PPC_INDIRECT_IO=y |
180 | CONFIG_GENERIC_IOMAP=y | 179 | CONFIG_GENERIC_IOMAP=y |
181 | CONFIG_CPU_FREQ=y | ||
182 | CONFIG_CPU_FREQ_TABLE=y | ||
183 | CONFIG_CPU_FREQ_DEBUG=y | ||
184 | CONFIG_CPU_FREQ_STAT=y | ||
185 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set | ||
186 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | ||
187 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
188 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
189 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y | ||
190 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
191 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
192 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y | ||
193 | # CONFIG_CPU_FREQ_PMAC64 is not set | 180 | # CONFIG_CPU_FREQ_PMAC64 is not set |
194 | # CONFIG_WANT_EARLY_SERIAL is not set | 181 | # CONFIG_WANT_EARLY_SERIAL is not set |
195 | CONFIG_MPIC=y | 182 | CONFIG_MPIC=y |
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig index 5fc87448704c..af25118c8f24 100644 --- a/arch/powerpc/configs/iseries_defconfig +++ b/arch/powerpc/configs/iseries_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.20-rc5 | 3 | # Linux kernel version: 2.6.22-rc1 |
4 | # Mon Jan 22 22:16:44 2007 | 4 | # Mon May 14 14:27:46 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -40,6 +40,7 @@ CONFIG_PPC_FPU=y | |||
40 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | 40 | # CONFIG_PPC_OF_PLATFORM_PCI is not set |
41 | # CONFIG_ALTIVEC is not set | 41 | # CONFIG_ALTIVEC is not set |
42 | CONFIG_PPC_STD_MMU=y | 42 | CONFIG_PPC_STD_MMU=y |
43 | # CONFIG_PPC_MM_SLICES is not set | ||
43 | CONFIG_VIRT_CPU_ACCOUNTING=y | 44 | CONFIG_VIRT_CPU_ACCOUNTING=y |
44 | CONFIG_SMP=y | 45 | CONFIG_SMP=y |
45 | CONFIG_NR_CPUS=32 | 46 | CONFIG_NR_CPUS=32 |
@@ -60,6 +61,7 @@ CONFIG_LOCALVERSION_AUTO=y | |||
60 | CONFIG_SWAP=y | 61 | CONFIG_SWAP=y |
61 | CONFIG_SYSVIPC=y | 62 | CONFIG_SYSVIPC=y |
62 | # CONFIG_IPC_NS is not set | 63 | # CONFIG_IPC_NS is not set |
64 | CONFIG_SYSVIPC_SYSCTL=y | ||
63 | CONFIG_POSIX_MQUEUE=y | 65 | CONFIG_POSIX_MQUEUE=y |
64 | # CONFIG_BSD_PROCESS_ACCT is not set | 66 | # CONFIG_BSD_PROCESS_ACCT is not set |
65 | # CONFIG_TASKSTATS is not set | 67 | # CONFIG_TASKSTATS is not set |
@@ -68,9 +70,11 @@ CONFIG_AUDIT=y | |||
68 | CONFIG_AUDITSYSCALL=y | 70 | CONFIG_AUDITSYSCALL=y |
69 | CONFIG_IKCONFIG=y | 71 | CONFIG_IKCONFIG=y |
70 | CONFIG_IKCONFIG_PROC=y | 72 | CONFIG_IKCONFIG_PROC=y |
73 | CONFIG_LOG_BUF_SHIFT=17 | ||
71 | # CONFIG_CPUSETS is not set | 74 | # CONFIG_CPUSETS is not set |
72 | CONFIG_SYSFS_DEPRECATED=y | 75 | CONFIG_SYSFS_DEPRECATED=y |
73 | # CONFIG_RELAY is not set | 76 | # CONFIG_RELAY is not set |
77 | CONFIG_BLK_DEV_INITRD=y | ||
74 | CONFIG_INITRAMFS_SOURCE="" | 78 | CONFIG_INITRAMFS_SOURCE="" |
75 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 79 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
76 | CONFIG_SYSCTL=y | 80 | CONFIG_SYSCTL=y |
@@ -85,14 +89,19 @@ CONFIG_BUG=y | |||
85 | CONFIG_ELF_CORE=y | 89 | CONFIG_ELF_CORE=y |
86 | CONFIG_BASE_FULL=y | 90 | CONFIG_BASE_FULL=y |
87 | CONFIG_FUTEX=y | 91 | CONFIG_FUTEX=y |
92 | CONFIG_ANON_INODES=y | ||
88 | CONFIG_EPOLL=y | 93 | CONFIG_EPOLL=y |
94 | CONFIG_SIGNALFD=y | ||
95 | CONFIG_TIMERFD=y | ||
96 | CONFIG_EVENTFD=y | ||
89 | CONFIG_SHMEM=y | 97 | CONFIG_SHMEM=y |
90 | CONFIG_SLAB=y | ||
91 | CONFIG_VM_EVENT_COUNTERS=y | 98 | CONFIG_VM_EVENT_COUNTERS=y |
99 | CONFIG_SLAB=y | ||
100 | # CONFIG_SLUB is not set | ||
101 | # CONFIG_SLOB is not set | ||
92 | CONFIG_RT_MUTEXES=y | 102 | CONFIG_RT_MUTEXES=y |
93 | # CONFIG_TINY_SHMEM is not set | 103 | # CONFIG_TINY_SHMEM is not set |
94 | CONFIG_BASE_SMALL=0 | 104 | CONFIG_BASE_SMALL=0 |
95 | # CONFIG_SLOB is not set | ||
96 | 105 | ||
97 | # | 106 | # |
98 | # Loadable module support | 107 | # Loadable module support |
@@ -131,15 +140,30 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
131 | # CONFIG_EMBEDDED6xx is not set | 140 | # CONFIG_EMBEDDED6xx is not set |
132 | # CONFIG_APUS is not set | 141 | # CONFIG_APUS is not set |
133 | # CONFIG_PPC_PSERIES is not set | 142 | # CONFIG_PPC_PSERIES is not set |
143 | CONFIG_LPARCFG=y | ||
134 | CONFIG_PPC_ISERIES=y | 144 | CONFIG_PPC_ISERIES=y |
145 | |||
146 | # | ||
147 | # iSeries device drivers | ||
148 | # | ||
149 | CONFIG_VIODASD=y | ||
150 | CONFIG_VIOCD=m | ||
151 | CONFIG_VIOTAPE=m | ||
152 | CONFIG_VIOPATH=y | ||
135 | # CONFIG_PPC_MPC52xx is not set | 153 | # CONFIG_PPC_MPC52xx is not set |
154 | # CONFIG_PPC_MPC5200 is not set | ||
136 | # CONFIG_PPC_PMAC is not set | 155 | # CONFIG_PPC_PMAC is not set |
137 | # CONFIG_PPC_MAPLE is not set | 156 | # CONFIG_PPC_MAPLE is not set |
138 | # CONFIG_PPC_PASEMI is not set | 157 | # CONFIG_PPC_PASEMI is not set |
158 | # CONFIG_PPC_CELLEB is not set | ||
159 | # CONFIG_PPC_PS3 is not set | ||
139 | # CONFIG_PPC_CELL is not set | 160 | # CONFIG_PPC_CELL is not set |
140 | # CONFIG_PPC_CELL_NATIVE is not set | 161 | # CONFIG_PPC_CELL_NATIVE is not set |
141 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 162 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
142 | # CONFIG_PPC_PS3 is not set | 163 | # CONFIG_PQ2ADS is not set |
164 | # CONFIG_MPIC is not set | ||
165 | # CONFIG_MPIC_WEIRD is not set | ||
166 | # CONFIG_PPC_I8259 is not set | ||
143 | # CONFIG_U3_DART is not set | 167 | # CONFIG_U3_DART is not set |
144 | # CONFIG_PPC_RTAS is not set | 168 | # CONFIG_PPC_RTAS is not set |
145 | # CONFIG_MMIO_NVRAM is not set | 169 | # CONFIG_MMIO_NVRAM is not set |
@@ -149,8 +173,7 @@ CONFIG_IBMVIO=y | |||
149 | CONFIG_PPC_INDIRECT_IO=y | 173 | CONFIG_PPC_INDIRECT_IO=y |
150 | CONFIG_GENERIC_IOMAP=y | 174 | CONFIG_GENERIC_IOMAP=y |
151 | # CONFIG_CPU_FREQ is not set | 175 | # CONFIG_CPU_FREQ is not set |
152 | # CONFIG_WANT_EARLY_SERIAL is not set | 176 | # CONFIG_CPM2 is not set |
153 | # CONFIG_MPIC is not set | ||
154 | 177 | ||
155 | # | 178 | # |
156 | # Kernel options | 179 | # Kernel options |
@@ -172,7 +195,6 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
172 | # CONFIG_KEXEC is not set | 195 | # CONFIG_KEXEC is not set |
173 | # CONFIG_CRASH_DUMP is not set | 196 | # CONFIG_CRASH_DUMP is not set |
174 | CONFIG_IRQ_ALL_CPUS=y | 197 | CONFIG_IRQ_ALL_CPUS=y |
175 | CONFIG_LPARCFG=y | ||
176 | # CONFIG_NUMA is not set | 198 | # CONFIG_NUMA is not set |
177 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 199 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
178 | CONFIG_ARCH_FLATMEM_ENABLE=y | 200 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -187,34 +209,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
187 | # CONFIG_SPARSEMEM_STATIC is not set | 209 | # CONFIG_SPARSEMEM_STATIC is not set |
188 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 210 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
189 | CONFIG_RESOURCES_64BIT=y | 211 | CONFIG_RESOURCES_64BIT=y |
212 | CONFIG_ZONE_DMA_FLAG=1 | ||
213 | # CONFIG_PPC_HAS_HASH_64K is not set | ||
190 | # CONFIG_PPC_64K_PAGES is not set | 214 | # CONFIG_PPC_64K_PAGES is not set |
191 | # CONFIG_SCHED_SMT is not set | 215 | # CONFIG_SCHED_SMT is not set |
192 | CONFIG_PROC_DEVICETREE=y | 216 | CONFIG_PROC_DEVICETREE=y |
193 | # CONFIG_CMDLINE_BOOL is not set | 217 | # CONFIG_CMDLINE_BOOL is not set |
194 | # CONFIG_PM is not set | 218 | # CONFIG_PM is not set |
195 | CONFIG_SECCOMP=y | 219 | CONFIG_SECCOMP=y |
220 | # CONFIG_WANT_DEVICE_TREE is not set | ||
196 | CONFIG_ISA_DMA_API=y | 221 | CONFIG_ISA_DMA_API=y |
197 | 222 | ||
198 | # | 223 | # |
199 | # Bus options | 224 | # Bus options |
200 | # | 225 | # |
226 | CONFIG_ZONE_DMA=y | ||
201 | CONFIG_GENERIC_ISA_DMA=y | 227 | CONFIG_GENERIC_ISA_DMA=y |
202 | # CONFIG_MPIC_WEIRD is not set | ||
203 | # CONFIG_PPC_I8259 is not set | ||
204 | # CONFIG_PPC_INDIRECT_PCI is not set | 228 | # CONFIG_PPC_INDIRECT_PCI is not set |
205 | CONFIG_PCI=y | 229 | CONFIG_PCI=y |
206 | CONFIG_PCI_DOMAINS=y | 230 | CONFIG_PCI_DOMAINS=y |
207 | # CONFIG_PCIEPORTBUS is not set | 231 | # CONFIG_PCIEPORTBUS is not set |
232 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
233 | # CONFIG_PCI_MSI is not set | ||
208 | # CONFIG_PCI_DEBUG is not set | 234 | # CONFIG_PCI_DEBUG is not set |
209 | 235 | ||
210 | # | 236 | # |
211 | # PCCARD (PCMCIA/CardBus) support | 237 | # PCCARD (PCMCIA/CardBus) support |
212 | # | 238 | # |
213 | # CONFIG_PCCARD is not set | 239 | # CONFIG_PCCARD is not set |
214 | |||
215 | # | ||
216 | # PCI Hotplug Support | ||
217 | # | ||
218 | # CONFIG_HOTPLUG_PCI is not set | 240 | # CONFIG_HOTPLUG_PCI is not set |
219 | CONFIG_KERNEL_START=0xc000000000000000 | 241 | CONFIG_KERNEL_START=0xc000000000000000 |
220 | 242 | ||
@@ -226,14 +248,15 @@ CONFIG_NET=y | |||
226 | # | 248 | # |
227 | # Networking options | 249 | # Networking options |
228 | # | 250 | # |
229 | # CONFIG_NETDEBUG is not set | ||
230 | CONFIG_PACKET=y | 251 | CONFIG_PACKET=y |
231 | # CONFIG_PACKET_MMAP is not set | 252 | # CONFIG_PACKET_MMAP is not set |
232 | CONFIG_UNIX=y | 253 | CONFIG_UNIX=y |
233 | CONFIG_XFRM=y | 254 | CONFIG_XFRM=y |
234 | CONFIG_XFRM_USER=m | 255 | CONFIG_XFRM_USER=m |
235 | CONFIG_XFRM_SUB_POLICY=y | 256 | CONFIG_XFRM_SUB_POLICY=y |
257 | # CONFIG_XFRM_MIGRATE is not set | ||
236 | CONFIG_NET_KEY=m | 258 | CONFIG_NET_KEY=m |
259 | # CONFIG_NET_KEY_MIGRATE is not set | ||
237 | CONFIG_INET=y | 260 | CONFIG_INET=y |
238 | CONFIG_IP_MULTICAST=y | 261 | CONFIG_IP_MULTICAST=y |
239 | # CONFIG_IP_ADVANCED_ROUTER is not set | 262 | # CONFIG_IP_ADVANCED_ROUTER is not set |
@@ -275,8 +298,6 @@ CONFIG_NETFILTER=y | |||
275 | # | 298 | # |
276 | # CONFIG_NETFILTER_NETLINK is not set | 299 | # CONFIG_NETFILTER_NETLINK is not set |
277 | CONFIG_NF_CONNTRACK_ENABLED=m | 300 | CONFIG_NF_CONNTRACK_ENABLED=m |
278 | CONFIG_NF_CONNTRACK_SUPPORT=y | ||
279 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||
280 | CONFIG_NF_CONNTRACK=m | 301 | CONFIG_NF_CONNTRACK=m |
281 | # CONFIG_NF_CT_ACCT is not set | 302 | # CONFIG_NF_CT_ACCT is not set |
282 | CONFIG_NF_CONNTRACK_MARK=y | 303 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -288,6 +309,7 @@ CONFIG_NF_CONNTRACK_FTP=m | |||
288 | CONFIG_NF_CONNTRACK_IRC=m | 309 | CONFIG_NF_CONNTRACK_IRC=m |
289 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | 310 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set |
290 | # CONFIG_NF_CONNTRACK_PPTP is not set | 311 | # CONFIG_NF_CONNTRACK_PPTP is not set |
312 | # CONFIG_NF_CONNTRACK_SANE is not set | ||
291 | # CONFIG_NF_CONNTRACK_SIP is not set | 313 | # CONFIG_NF_CONNTRACK_SIP is not set |
292 | CONFIG_NF_CONNTRACK_TFTP=m | 314 | CONFIG_NF_CONNTRACK_TFTP=m |
293 | CONFIG_NETFILTER_XTABLES=m | 315 | CONFIG_NETFILTER_XTABLES=m |
@@ -298,7 +320,9 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
298 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 320 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
299 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | 321 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
300 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set | 322 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set |
323 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
301 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 324 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
325 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set | ||
302 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 326 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
303 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 327 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
304 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | 328 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set |
@@ -340,7 +364,6 @@ CONFIG_IP_NF_FILTER=m | |||
340 | CONFIG_IP_NF_TARGET_REJECT=m | 364 | CONFIG_IP_NF_TARGET_REJECT=m |
341 | CONFIG_IP_NF_TARGET_LOG=m | 365 | CONFIG_IP_NF_TARGET_LOG=m |
342 | CONFIG_IP_NF_TARGET_ULOG=m | 366 | CONFIG_IP_NF_TARGET_ULOG=m |
343 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
344 | CONFIG_NF_NAT=m | 367 | CONFIG_NF_NAT=m |
345 | CONFIG_NF_NAT_NEEDED=y | 368 | CONFIG_NF_NAT_NEEDED=y |
346 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 369 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -373,7 +396,12 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
373 | # | 396 | # |
374 | # SCTP Configuration (EXPERIMENTAL) | 397 | # SCTP Configuration (EXPERIMENTAL) |
375 | # | 398 | # |
376 | # CONFIG_IP_SCTP is not set | 399 | CONFIG_IP_SCTP=m |
400 | # CONFIG_SCTP_DBG_MSG is not set | ||
401 | # CONFIG_SCTP_DBG_OBJCNT is not set | ||
402 | # CONFIG_SCTP_HMAC_NONE is not set | ||
403 | # CONFIG_SCTP_HMAC_SHA1 is not set | ||
404 | CONFIG_SCTP_HMAC_MD5=y | ||
377 | 405 | ||
378 | # | 406 | # |
379 | # TIPC Configuration (EXPERIMENTAL) | 407 | # TIPC Configuration (EXPERIMENTAL) |
@@ -405,7 +433,16 @@ CONFIG_NET_CLS_ROUTE=y | |||
405 | # CONFIG_HAMRADIO is not set | 433 | # CONFIG_HAMRADIO is not set |
406 | # CONFIG_IRDA is not set | 434 | # CONFIG_IRDA is not set |
407 | # CONFIG_BT is not set | 435 | # CONFIG_BT is not set |
436 | # CONFIG_AF_RXRPC is not set | ||
437 | |||
438 | # | ||
439 | # Wireless | ||
440 | # | ||
441 | # CONFIG_CFG80211 is not set | ||
442 | # CONFIG_WIRELESS_EXT is not set | ||
443 | # CONFIG_MAC80211 is not set | ||
408 | # CONFIG_IEEE80211 is not set | 444 | # CONFIG_IEEE80211 is not set |
445 | # CONFIG_RFKILL is not set | ||
409 | 446 | ||
410 | # | 447 | # |
411 | # Device Drivers | 448 | # Device Drivers |
@@ -418,16 +455,13 @@ CONFIG_STANDALONE=y | |||
418 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 455 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
419 | CONFIG_FW_LOADER=m | 456 | CONFIG_FW_LOADER=m |
420 | # CONFIG_DEBUG_DRIVER is not set | 457 | # CONFIG_DEBUG_DRIVER is not set |
458 | # CONFIG_DEBUG_DEVRES is not set | ||
421 | # CONFIG_SYS_HYPERVISOR is not set | 459 | # CONFIG_SYS_HYPERVISOR is not set |
422 | 460 | ||
423 | # | 461 | # |
424 | # Connector - unified userspace <-> kernelspace linker | 462 | # Connector - unified userspace <-> kernelspace linker |
425 | # | 463 | # |
426 | # CONFIG_CONNECTOR is not set | 464 | # CONFIG_CONNECTOR is not set |
427 | |||
428 | # | ||
429 | # Memory Technology Devices (MTD) | ||
430 | # | ||
431 | # CONFIG_MTD is not set | 465 | # CONFIG_MTD is not set |
432 | 466 | ||
433 | # | 467 | # |
@@ -438,6 +472,7 @@ CONFIG_FW_LOADER=m | |||
438 | # | 472 | # |
439 | # Plug and Play support | 473 | # Plug and Play support |
440 | # | 474 | # |
475 | # CONFIG_PNPACPI is not set | ||
441 | 476 | ||
442 | # | 477 | # |
443 | # Block devices | 478 | # Block devices |
@@ -456,15 +491,16 @@ CONFIG_BLK_DEV_RAM=y | |||
456 | CONFIG_BLK_DEV_RAM_COUNT=16 | 491 | CONFIG_BLK_DEV_RAM_COUNT=16 |
457 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 492 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
458 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 493 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
459 | CONFIG_BLK_DEV_INITRD=y | ||
460 | # CONFIG_CDROM_PKTCDVD is not set | 494 | # CONFIG_CDROM_PKTCDVD is not set |
461 | # CONFIG_ATA_OVER_ETH is not set | 495 | # CONFIG_ATA_OVER_ETH is not set |
462 | 496 | ||
463 | # | 497 | # |
464 | # Misc devices | 498 | # Misc devices |
465 | # | 499 | # |
500 | # CONFIG_PHANTOM is not set | ||
466 | # CONFIG_SGI_IOC4 is not set | 501 | # CONFIG_SGI_IOC4 is not set |
467 | # CONFIG_TIFM_CORE is not set | 502 | # CONFIG_TIFM_CORE is not set |
503 | # CONFIG_BLINK is not set | ||
468 | 504 | ||
469 | # | 505 | # |
470 | # ATA/ATAPI/MFM/RLL support | 506 | # ATA/ATAPI/MFM/RLL support |
@@ -498,6 +534,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
498 | CONFIG_SCSI_CONSTANTS=y | 534 | CONFIG_SCSI_CONSTANTS=y |
499 | # CONFIG_SCSI_LOGGING is not set | 535 | # CONFIG_SCSI_LOGGING is not set |
500 | # CONFIG_SCSI_SCAN_ASYNC is not set | 536 | # CONFIG_SCSI_SCAN_ASYNC is not set |
537 | CONFIG_SCSI_WAIT_SCAN=m | ||
501 | 538 | ||
502 | # | 539 | # |
503 | # SCSI Transports | 540 | # SCSI Transports |
@@ -544,11 +581,8 @@ CONFIG_SCSI_IBMVSCSI=m | |||
544 | # CONFIG_SCSI_DC395x is not set | 581 | # CONFIG_SCSI_DC395x is not set |
545 | # CONFIG_SCSI_DC390T is not set | 582 | # CONFIG_SCSI_DC390T is not set |
546 | # CONFIG_SCSI_DEBUG is not set | 583 | # CONFIG_SCSI_DEBUG is not set |
584 | # CONFIG_SCSI_ESP_CORE is not set | ||
547 | # CONFIG_SCSI_SRP is not set | 585 | # CONFIG_SCSI_SRP is not set |
548 | |||
549 | # | ||
550 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
551 | # | ||
552 | # CONFIG_ATA is not set | 586 | # CONFIG_ATA is not set |
553 | 587 | ||
554 | # | 588 | # |
@@ -570,6 +604,7 @@ CONFIG_DM_SNAPSHOT=m | |||
570 | CONFIG_DM_MIRROR=m | 604 | CONFIG_DM_MIRROR=m |
571 | CONFIG_DM_ZERO=m | 605 | CONFIG_DM_ZERO=m |
572 | # CONFIG_DM_MULTIPATH is not set | 606 | # CONFIG_DM_MULTIPATH is not set |
607 | # CONFIG_DM_DELAY is not set | ||
573 | 608 | ||
574 | # | 609 | # |
575 | # Fusion MPT device support | 610 | # Fusion MPT device support |
@@ -582,18 +617,14 @@ CONFIG_DM_ZERO=m | |||
582 | # | 617 | # |
583 | # IEEE 1394 (FireWire) support | 618 | # IEEE 1394 (FireWire) support |
584 | # | 619 | # |
620 | # CONFIG_FIREWIRE is not set | ||
585 | # CONFIG_IEEE1394 is not set | 621 | # CONFIG_IEEE1394 is not set |
586 | 622 | ||
587 | # | 623 | # |
588 | # I2O device support | 624 | # I2O device support |
589 | # | 625 | # |
590 | # CONFIG_I2O is not set | 626 | # CONFIG_I2O is not set |
591 | 627 | # CONFIG_MACINTOSH_DRIVERS is not set | |
592 | # | ||
593 | # Macintosh device drivers | ||
594 | # | ||
595 | # CONFIG_MAC_EMUMOUSEBTN is not set | ||
596 | # CONFIG_WINDFARM is not set | ||
597 | 628 | ||
598 | # | 629 | # |
599 | # Network device support | 630 | # Network device support |
@@ -608,10 +639,6 @@ CONFIG_TUN=m | |||
608 | # ARCnet devices | 639 | # ARCnet devices |
609 | # | 640 | # |
610 | # CONFIG_ARCNET is not set | 641 | # CONFIG_ARCNET is not set |
611 | |||
612 | # | ||
613 | # PHY device support | ||
614 | # | ||
615 | # CONFIG_PHYLIB is not set | 642 | # CONFIG_PHYLIB is not set |
616 | 643 | ||
617 | # | 644 | # |
@@ -648,10 +675,8 @@ CONFIG_E100=y | |||
648 | # CONFIG_EPIC100 is not set | 675 | # CONFIG_EPIC100 is not set |
649 | # CONFIG_SUNDANCE is not set | 676 | # CONFIG_SUNDANCE is not set |
650 | # CONFIG_VIA_RHINE is not set | 677 | # CONFIG_VIA_RHINE is not set |
651 | 678 | # CONFIG_SC92031 is not set | |
652 | # | 679 | CONFIG_NETDEV_1000=y |
653 | # Ethernet (1000 Mbit) | ||
654 | # | ||
655 | CONFIG_ACENIC=m | 680 | CONFIG_ACENIC=m |
656 | # CONFIG_ACENIC_OMIT_TIGON_I is not set | 681 | # CONFIG_ACENIC_OMIT_TIGON_I is not set |
657 | # CONFIG_DL2K is not set | 682 | # CONFIG_DL2K is not set |
@@ -670,15 +695,17 @@ CONFIG_E1000=m | |||
670 | # CONFIG_TIGON3 is not set | 695 | # CONFIG_TIGON3 is not set |
671 | # CONFIG_BNX2 is not set | 696 | # CONFIG_BNX2 is not set |
672 | # CONFIG_QLA3XXX is not set | 697 | # CONFIG_QLA3XXX is not set |
673 | 698 | # CONFIG_ATL1 is not set | |
674 | # | 699 | CONFIG_NETDEV_10000=y |
675 | # Ethernet (10000 Mbit) | ||
676 | # | ||
677 | # CONFIG_CHELSIO_T1 is not set | 700 | # CONFIG_CHELSIO_T1 is not set |
701 | # CONFIG_CHELSIO_T3 is not set | ||
678 | # CONFIG_IXGB is not set | 702 | # CONFIG_IXGB is not set |
679 | # CONFIG_S2IO is not set | 703 | # CONFIG_S2IO is not set |
680 | # CONFIG_MYRI10GE is not set | 704 | # CONFIG_MYRI10GE is not set |
681 | # CONFIG_NETXEN_NIC is not set | 705 | # CONFIG_NETXEN_NIC is not set |
706 | # CONFIG_PASEMI_MAC is not set | ||
707 | # CONFIG_MLX4_CORE is not set | ||
708 | CONFIG_MLX4_DEBUG=y | ||
682 | 709 | ||
683 | # | 710 | # |
684 | # Token Ring devices | 711 | # Token Ring devices |
@@ -689,13 +716,10 @@ CONFIG_IBMOL=y | |||
689 | # CONFIG_TMS380TR is not set | 716 | # CONFIG_TMS380TR is not set |
690 | 717 | ||
691 | # | 718 | # |
692 | # Wireless LAN (non-hamradio) | 719 | # Wireless LAN |
693 | # | ||
694 | # CONFIG_NET_RADIO is not set | ||
695 | |||
696 | # | ||
697 | # Wan interfaces | ||
698 | # | 720 | # |
721 | # CONFIG_WLAN_PRE80211 is not set | ||
722 | # CONFIG_WLAN_80211 is not set | ||
699 | # CONFIG_WAN is not set | 723 | # CONFIG_WAN is not set |
700 | CONFIG_ISERIES_VETH=y | 724 | CONFIG_ISERIES_VETH=y |
701 | # CONFIG_FDDI is not set | 725 | # CONFIG_FDDI is not set |
@@ -715,7 +739,6 @@ CONFIG_SLHC=m | |||
715 | # CONFIG_SHAPER is not set | 739 | # CONFIG_SHAPER is not set |
716 | CONFIG_NETCONSOLE=y | 740 | CONFIG_NETCONSOLE=y |
717 | CONFIG_NETPOLL=y | 741 | CONFIG_NETPOLL=y |
718 | CONFIG_NETPOLL_RX=y | ||
719 | CONFIG_NETPOLL_TRAP=y | 742 | CONFIG_NETPOLL_TRAP=y |
720 | CONFIG_NET_POLL_CONTROLLER=y | 743 | CONFIG_NET_POLL_CONTROLLER=y |
721 | 744 | ||
@@ -753,6 +776,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
753 | # CONFIG_INPUT_KEYBOARD is not set | 776 | # CONFIG_INPUT_KEYBOARD is not set |
754 | # CONFIG_INPUT_MOUSE is not set | 777 | # CONFIG_INPUT_MOUSE is not set |
755 | # CONFIG_INPUT_JOYSTICK is not set | 778 | # CONFIG_INPUT_JOYSTICK is not set |
779 | # CONFIG_INPUT_TABLET is not set | ||
756 | # CONFIG_INPUT_TOUCHSCREEN is not set | 780 | # CONFIG_INPUT_TOUCHSCREEN is not set |
757 | # CONFIG_INPUT_MISC is not set | 781 | # CONFIG_INPUT_MISC is not set |
758 | 782 | ||
@@ -765,6 +789,10 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
765 | # | 789 | # |
766 | # Character devices | 790 | # Character devices |
767 | # | 791 | # |
792 | CONFIG_VT=y | ||
793 | CONFIG_VT_CONSOLE=y | ||
794 | CONFIG_HW_CONSOLE=y | ||
795 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
768 | # CONFIG_SERIAL_NONSTANDARD is not set | 796 | # CONFIG_SERIAL_NONSTANDARD is not set |
769 | 797 | ||
770 | # | 798 | # |
@@ -781,20 +809,17 @@ CONFIG_SERIAL_ICOM=m | |||
781 | CONFIG_UNIX98_PTYS=y | 809 | CONFIG_UNIX98_PTYS=y |
782 | CONFIG_LEGACY_PTYS=y | 810 | CONFIG_LEGACY_PTYS=y |
783 | CONFIG_LEGACY_PTY_COUNT=256 | 811 | CONFIG_LEGACY_PTY_COUNT=256 |
812 | CONFIG_HVC_DRIVER=y | ||
813 | CONFIG_HVC_ISERIES=y | ||
784 | 814 | ||
785 | # | 815 | # |
786 | # IPMI | 816 | # IPMI |
787 | # | 817 | # |
788 | # CONFIG_IPMI_HANDLER is not set | 818 | # CONFIG_IPMI_HANDLER is not set |
789 | |||
790 | # | ||
791 | # Watchdog Cards | ||
792 | # | ||
793 | # CONFIG_WATCHDOG is not set | 819 | # CONFIG_WATCHDOG is not set |
794 | # CONFIG_HW_RANDOM is not set | 820 | # CONFIG_HW_RANDOM is not set |
795 | CONFIG_GEN_RTC=y | 821 | CONFIG_GEN_RTC=y |
796 | # CONFIG_GEN_RTC_X is not set | 822 | # CONFIG_GEN_RTC_X is not set |
797 | # CONFIG_DTLK is not set | ||
798 | # CONFIG_R3964 is not set | 823 | # CONFIG_R3964 is not set |
799 | # CONFIG_APPLICOM is not set | 824 | # CONFIG_APPLICOM is not set |
800 | # CONFIG_AGP is not set | 825 | # CONFIG_AGP is not set |
@@ -807,10 +832,7 @@ CONFIG_MAX_RAW_DEVS=256 | |||
807 | # TPM devices | 832 | # TPM devices |
808 | # | 833 | # |
809 | # CONFIG_TCG_TPM is not set | 834 | # CONFIG_TCG_TPM is not set |
810 | 835 | CONFIG_DEVPORT=y | |
811 | # | ||
812 | # I2C support | ||
813 | # | ||
814 | # CONFIG_I2C is not set | 836 | # CONFIG_I2C is not set |
815 | 837 | ||
816 | # | 838 | # |
@@ -823,30 +845,39 @@ CONFIG_MAX_RAW_DEVS=256 | |||
823 | # Dallas's 1-wire bus | 845 | # Dallas's 1-wire bus |
824 | # | 846 | # |
825 | # CONFIG_W1 is not set | 847 | # CONFIG_W1 is not set |
848 | # CONFIG_HWMON is not set | ||
826 | 849 | ||
827 | # | 850 | # |
828 | # Hardware Monitoring support | 851 | # Multifunction device drivers |
829 | # | 852 | # |
830 | # CONFIG_HWMON is not set | 853 | # CONFIG_MFD_SM501 is not set |
831 | # CONFIG_HWMON_VID is not set | ||
832 | 854 | ||
833 | # | 855 | # |
834 | # Multimedia devices | 856 | # Multimedia devices |
835 | # | 857 | # |
836 | # CONFIG_VIDEO_DEV is not set | 858 | # CONFIG_VIDEO_DEV is not set |
859 | # CONFIG_DVB_CORE is not set | ||
860 | # CONFIG_DAB is not set | ||
837 | 861 | ||
838 | # | 862 | # |
839 | # Digital Video Broadcasting Devices | 863 | # Graphics support |
840 | # | 864 | # |
841 | # CONFIG_DVB is not set | 865 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
842 | 866 | ||
843 | # | 867 | # |
844 | # Graphics support | 868 | # Display device support |
845 | # | 869 | # |
846 | CONFIG_FIRMWARE_EDID=y | 870 | # CONFIG_DISPLAY_SUPPORT is not set |
871 | # CONFIG_VGASTATE is not set | ||
847 | # CONFIG_FB is not set | 872 | # CONFIG_FB is not set |
848 | # CONFIG_FB_IBM_GXT4500 is not set | 873 | # CONFIG_FB_IBM_GXT4500 is not set |
849 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 874 | |
875 | # | ||
876 | # Console display driver support | ||
877 | # | ||
878 | CONFIG_VGA_CONSOLE=y | ||
879 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
880 | CONFIG_DUMMY_CONSOLE=y | ||
850 | 881 | ||
851 | # | 882 | # |
852 | # Sound | 883 | # Sound |
@@ -874,10 +905,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
874 | # USB Gadget Support | 905 | # USB Gadget Support |
875 | # | 906 | # |
876 | # CONFIG_USB_GADGET is not set | 907 | # CONFIG_USB_GADGET is not set |
877 | |||
878 | # | ||
879 | # MMC/SD Card support | ||
880 | # | ||
881 | # CONFIG_MMC is not set | 908 | # CONFIG_MMC is not set |
882 | 909 | ||
883 | # | 910 | # |
@@ -921,10 +948,6 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
921 | # | 948 | # |
922 | 949 | ||
923 | # | 950 | # |
924 | # Virtualization | ||
925 | # | ||
926 | |||
927 | # | ||
928 | # File systems | 951 | # File systems |
929 | # | 952 | # |
930 | CONFIG_EXT2_FS=y | 953 | CONFIG_EXT2_FS=y |
@@ -979,7 +1002,6 @@ CONFIG_GENERIC_ACL=y | |||
979 | CONFIG_ISO9660_FS=y | 1002 | CONFIG_ISO9660_FS=y |
980 | CONFIG_JOLIET=y | 1003 | CONFIG_JOLIET=y |
981 | CONFIG_ZISOFS=y | 1004 | CONFIG_ZISOFS=y |
982 | CONFIG_ZISOFS_FS=y | ||
983 | CONFIG_UDF_FS=m | 1005 | CONFIG_UDF_FS=m |
984 | CONFIG_UDF_NLS=y | 1006 | CONFIG_UDF_NLS=y |
985 | 1007 | ||
@@ -1045,6 +1067,7 @@ CONFIG_NFS_ACL_SUPPORT=y | |||
1045 | CONFIG_NFS_COMMON=y | 1067 | CONFIG_NFS_COMMON=y |
1046 | CONFIG_SUNRPC=y | 1068 | CONFIG_SUNRPC=y |
1047 | CONFIG_SUNRPC_GSS=y | 1069 | CONFIG_SUNRPC_GSS=y |
1070 | # CONFIG_SUNRPC_BIND34 is not set | ||
1048 | CONFIG_RPCSEC_GSS_KRB5=y | 1071 | CONFIG_RPCSEC_GSS_KRB5=y |
1049 | CONFIG_RPCSEC_GSS_SPKM3=m | 1072 | CONFIG_RPCSEC_GSS_SPKM3=m |
1050 | # CONFIG_SMB_FS is not set | 1073 | # CONFIG_SMB_FS is not set |
@@ -1114,18 +1137,9 @@ CONFIG_NLS_ISO8859_1=y | |||
1114 | # Distributed Lock Manager | 1137 | # Distributed Lock Manager |
1115 | # | 1138 | # |
1116 | CONFIG_DLM=m | 1139 | CONFIG_DLM=m |
1117 | CONFIG_DLM_TCP=y | ||
1118 | # CONFIG_DLM_SCTP is not set | ||
1119 | # CONFIG_DLM_DEBUG is not set | 1140 | # CONFIG_DLM_DEBUG is not set |
1120 | 1141 | # CONFIG_UCC_SLOW is not set | |
1121 | # | 1142 | # CONFIG_UCC_FAST is not set |
1122 | # iSeries device drivers | ||
1123 | # | ||
1124 | CONFIG_VIOCONS=y | ||
1125 | CONFIG_VIODASD=y | ||
1126 | CONFIG_VIOCD=m | ||
1127 | CONFIG_VIOTAPE=m | ||
1128 | CONFIG_VIOPATH=y | ||
1129 | 1143 | ||
1130 | # | 1144 | # |
1131 | # Library routines | 1145 | # Library routines |
@@ -1133,6 +1147,7 @@ CONFIG_VIOPATH=y | |||
1133 | CONFIG_BITREVERSE=y | 1147 | CONFIG_BITREVERSE=y |
1134 | CONFIG_CRC_CCITT=m | 1148 | CONFIG_CRC_CCITT=m |
1135 | # CONFIG_CRC16 is not set | 1149 | # CONFIG_CRC16 is not set |
1150 | # CONFIG_CRC_ITU_T is not set | ||
1136 | CONFIG_CRC32=y | 1151 | CONFIG_CRC32=y |
1137 | CONFIG_LIBCRC32C=m | 1152 | CONFIG_LIBCRC32C=m |
1138 | CONFIG_ZLIB_INFLATE=y | 1153 | CONFIG_ZLIB_INFLATE=y |
@@ -1142,7 +1157,9 @@ CONFIG_TEXTSEARCH_KMP=m | |||
1142 | CONFIG_TEXTSEARCH_BM=m | 1157 | CONFIG_TEXTSEARCH_BM=m |
1143 | CONFIG_TEXTSEARCH_FSM=m | 1158 | CONFIG_TEXTSEARCH_FSM=m |
1144 | CONFIG_PLIST=y | 1159 | CONFIG_PLIST=y |
1145 | CONFIG_IOMAP_COPY=y | 1160 | CONFIG_HAS_IOMEM=y |
1161 | CONFIG_HAS_IOPORT=y | ||
1162 | CONFIG_HAS_DMA=y | ||
1146 | 1163 | ||
1147 | # | 1164 | # |
1148 | # Instrumentation Support | 1165 | # Instrumentation Support |
@@ -1160,15 +1177,15 @@ CONFIG_MAGIC_SYSRQ=y | |||
1160 | CONFIG_DEBUG_FS=y | 1177 | CONFIG_DEBUG_FS=y |
1161 | # CONFIG_HEADERS_CHECK is not set | 1178 | # CONFIG_HEADERS_CHECK is not set |
1162 | CONFIG_DEBUG_KERNEL=y | 1179 | CONFIG_DEBUG_KERNEL=y |
1163 | CONFIG_LOG_BUF_SHIFT=17 | 1180 | # CONFIG_DEBUG_SHIRQ is not set |
1164 | CONFIG_DETECT_SOFTLOCKUP=y | 1181 | CONFIG_DETECT_SOFTLOCKUP=y |
1165 | # CONFIG_SCHEDSTATS is not set | 1182 | # CONFIG_SCHEDSTATS is not set |
1183 | # CONFIG_TIMER_STATS is not set | ||
1166 | # CONFIG_DEBUG_SLAB is not set | 1184 | # CONFIG_DEBUG_SLAB is not set |
1167 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1185 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1168 | # CONFIG_RT_MUTEX_TESTER is not set | 1186 | # CONFIG_RT_MUTEX_TESTER is not set |
1169 | # CONFIG_DEBUG_SPINLOCK is not set | 1187 | # CONFIG_DEBUG_SPINLOCK is not set |
1170 | # CONFIG_DEBUG_MUTEXES is not set | 1188 | # CONFIG_DEBUG_MUTEXES is not set |
1171 | # CONFIG_DEBUG_RWSEMS is not set | ||
1172 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1189 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1173 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1190 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1174 | # CONFIG_DEBUG_KOBJECT is not set | 1191 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1178,8 +1195,10 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1178 | # CONFIG_DEBUG_LIST is not set | 1195 | # CONFIG_DEBUG_LIST is not set |
1179 | # CONFIG_FORCED_INLINING is not set | 1196 | # CONFIG_FORCED_INLINING is not set |
1180 | # CONFIG_RCU_TORTURE_TEST is not set | 1197 | # CONFIG_RCU_TORTURE_TEST is not set |
1198 | # CONFIG_FAULT_INJECTION is not set | ||
1181 | CONFIG_DEBUG_STACKOVERFLOW=y | 1199 | CONFIG_DEBUG_STACKOVERFLOW=y |
1182 | CONFIG_DEBUG_STACK_USAGE=y | 1200 | CONFIG_DEBUG_STACK_USAGE=y |
1201 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1183 | # CONFIG_DEBUGGER is not set | 1202 | # CONFIG_DEBUGGER is not set |
1184 | CONFIG_IRQSTACKS=y | 1203 | CONFIG_IRQSTACKS=y |
1185 | # CONFIG_BOOTX_TEXT is not set | 1204 | # CONFIG_BOOTX_TEXT is not set |
@@ -1212,8 +1231,11 @@ CONFIG_CRYPTO_TGR192=m | |||
1212 | # CONFIG_CRYPTO_GF128MUL is not set | 1231 | # CONFIG_CRYPTO_GF128MUL is not set |
1213 | CONFIG_CRYPTO_ECB=m | 1232 | CONFIG_CRYPTO_ECB=m |
1214 | CONFIG_CRYPTO_CBC=y | 1233 | CONFIG_CRYPTO_CBC=y |
1234 | CONFIG_CRYPTO_PCBC=m | ||
1215 | # CONFIG_CRYPTO_LRW is not set | 1235 | # CONFIG_CRYPTO_LRW is not set |
1236 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1216 | CONFIG_CRYPTO_DES=y | 1237 | CONFIG_CRYPTO_DES=y |
1238 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1217 | CONFIG_CRYPTO_BLOWFISH=m | 1239 | CONFIG_CRYPTO_BLOWFISH=m |
1218 | CONFIG_CRYPTO_TWOFISH=m | 1240 | CONFIG_CRYPTO_TWOFISH=m |
1219 | CONFIG_CRYPTO_TWOFISH_COMMON=m | 1241 | CONFIG_CRYPTO_TWOFISH_COMMON=m |
@@ -1228,6 +1250,7 @@ CONFIG_CRYPTO_ANUBIS=m | |||
1228 | CONFIG_CRYPTO_DEFLATE=m | 1250 | CONFIG_CRYPTO_DEFLATE=m |
1229 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1251 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1230 | CONFIG_CRYPTO_CRC32C=m | 1252 | CONFIG_CRYPTO_CRC32C=m |
1253 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1231 | CONFIG_CRYPTO_TEST=m | 1254 | CONFIG_CRYPTO_TEST=m |
1232 | 1255 | ||
1233 | # | 1256 | # |
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig index 97a57e996663..0507c8f7bfbc 100644 --- a/arch/powerpc/configs/pasemi_defconfig +++ b/arch/powerpc/configs/pasemi_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.20-rc6 | 3 | # Linux kernel version: 2.6.21 |
4 | # Thu Feb 1 22:54:15 2007 | 4 | # Mon May 14 12:55:04 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -23,7 +23,7 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
23 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 23 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
24 | CONFIG_PPC_OF=y | 24 | CONFIG_PPC_OF=y |
25 | CONFIG_PPC_UDBG_16550=y | 25 | CONFIG_PPC_UDBG_16550=y |
26 | CONFIG_GENERIC_TBSYNC=y | 26 | # CONFIG_GENERIC_TBSYNC is not set |
27 | CONFIG_AUDIT_ARCH=y | 27 | CONFIG_AUDIT_ARCH=y |
28 | CONFIG_GENERIC_BUG=y | 28 | CONFIG_GENERIC_BUG=y |
29 | # CONFIG_DEFAULT_UIMAGE is not set | 29 | # CONFIG_DEFAULT_UIMAGE is not set |
@@ -39,6 +39,7 @@ CONFIG_PPC_FPU=y | |||
39 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | 39 | # CONFIG_PPC_OF_PLATFORM_PCI is not set |
40 | CONFIG_ALTIVEC=y | 40 | CONFIG_ALTIVEC=y |
41 | CONFIG_PPC_STD_MMU=y | 41 | CONFIG_PPC_STD_MMU=y |
42 | CONFIG_PPC_MM_SLICES=y | ||
42 | # CONFIG_VIRT_CPU_ACCOUNTING is not set | 43 | # CONFIG_VIRT_CPU_ACCOUNTING is not set |
43 | CONFIG_SMP=y | 44 | CONFIG_SMP=y |
44 | CONFIG_NR_CPUS=2 | 45 | CONFIG_NR_CPUS=2 |
@@ -59,15 +60,18 @@ CONFIG_LOCALVERSION_AUTO=y | |||
59 | CONFIG_SWAP=y | 60 | CONFIG_SWAP=y |
60 | CONFIG_SYSVIPC=y | 61 | CONFIG_SYSVIPC=y |
61 | # CONFIG_IPC_NS is not set | 62 | # CONFIG_IPC_NS is not set |
63 | CONFIG_SYSVIPC_SYSCTL=y | ||
62 | # CONFIG_POSIX_MQUEUE is not set | 64 | # CONFIG_POSIX_MQUEUE is not set |
63 | # CONFIG_BSD_PROCESS_ACCT is not set | 65 | # CONFIG_BSD_PROCESS_ACCT is not set |
64 | # CONFIG_TASKSTATS is not set | 66 | # CONFIG_TASKSTATS is not set |
65 | # CONFIG_UTS_NS is not set | 67 | # CONFIG_UTS_NS is not set |
66 | # CONFIG_AUDIT is not set | 68 | # CONFIG_AUDIT is not set |
67 | # CONFIG_IKCONFIG is not set | 69 | # CONFIG_IKCONFIG is not set |
70 | CONFIG_LOG_BUF_SHIFT=17 | ||
68 | # CONFIG_CPUSETS is not set | 71 | # CONFIG_CPUSETS is not set |
69 | CONFIG_SYSFS_DEPRECATED=y | 72 | CONFIG_SYSFS_DEPRECATED=y |
70 | # CONFIG_RELAY is not set | 73 | # CONFIG_RELAY is not set |
74 | CONFIG_BLK_DEV_INITRD=y | ||
71 | CONFIG_INITRAMFS_SOURCE="" | 75 | CONFIG_INITRAMFS_SOURCE="" |
72 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 76 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
73 | CONFIG_SYSCTL=y | 77 | CONFIG_SYSCTL=y |
@@ -82,14 +86,19 @@ CONFIG_BUG=y | |||
82 | CONFIG_ELF_CORE=y | 86 | CONFIG_ELF_CORE=y |
83 | CONFIG_BASE_FULL=y | 87 | CONFIG_BASE_FULL=y |
84 | CONFIG_FUTEX=y | 88 | CONFIG_FUTEX=y |
89 | CONFIG_ANON_INODES=y | ||
85 | CONFIG_EPOLL=y | 90 | CONFIG_EPOLL=y |
91 | CONFIG_SIGNALFD=y | ||
92 | CONFIG_TIMERFD=y | ||
93 | CONFIG_EVENTFD=y | ||
86 | CONFIG_SHMEM=y | 94 | CONFIG_SHMEM=y |
87 | CONFIG_SLAB=y | ||
88 | CONFIG_VM_EVENT_COUNTERS=y | 95 | CONFIG_VM_EVENT_COUNTERS=y |
96 | CONFIG_SLAB=y | ||
97 | # CONFIG_SLUB is not set | ||
98 | # CONFIG_SLOB is not set | ||
89 | CONFIG_RT_MUTEXES=y | 99 | CONFIG_RT_MUTEXES=y |
90 | # CONFIG_TINY_SHMEM is not set | 100 | # CONFIG_TINY_SHMEM is not set |
91 | CONFIG_BASE_SMALL=0 | 101 | CONFIG_BASE_SMALL=0 |
92 | # CONFIG_SLOB is not set | ||
93 | 102 | ||
94 | # | 103 | # |
95 | # Loadable module support | 104 | # Loadable module support |
@@ -127,39 +136,38 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
127 | CONFIG_PPC_MULTIPLATFORM=y | 136 | CONFIG_PPC_MULTIPLATFORM=y |
128 | # CONFIG_EMBEDDED6xx is not set | 137 | # CONFIG_EMBEDDED6xx is not set |
129 | # CONFIG_APUS is not set | 138 | # CONFIG_APUS is not set |
130 | CONFIG_PPC_PSERIES=y | 139 | # CONFIG_PPC_PSERIES is not set |
131 | # CONFIG_PPC_ISERIES is not set | 140 | # CONFIG_PPC_ISERIES is not set |
132 | # CONFIG_PPC_MPC52xx is not set | 141 | # CONFIG_PPC_MPC52xx is not set |
142 | # CONFIG_PPC_MPC5200 is not set | ||
133 | # CONFIG_PPC_PMAC is not set | 143 | # CONFIG_PPC_PMAC is not set |
134 | # CONFIG_PPC_MAPLE is not set | 144 | # CONFIG_PPC_MAPLE is not set |
135 | CONFIG_PPC_PASEMI=y | 145 | CONFIG_PPC_PASEMI=y |
146 | |||
147 | # | ||
148 | # PA Semi PWRficient options | ||
149 | # | ||
150 | CONFIG_PPC_PASEMI_IOMMU=y | ||
151 | CONFIG_PPC_PASEMI_MDIO=y | ||
152 | # CONFIG_PPC_CELLEB is not set | ||
153 | # CONFIG_PPC_PS3 is not set | ||
136 | # CONFIG_PPC_CELL is not set | 154 | # CONFIG_PPC_CELL is not set |
137 | # CONFIG_PPC_CELL_NATIVE is not set | 155 | # CONFIG_PPC_CELL_NATIVE is not set |
138 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 156 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
139 | # CONFIG_PPC_PS3 is not set | 157 | # CONFIG_PQ2ADS is not set |
140 | CONFIG_PPC_NATIVE=y | 158 | CONFIG_PPC_NATIVE=y |
141 | # CONFIG_UDBG_RTAS_CONSOLE is not set | 159 | CONFIG_MPIC=y |
142 | CONFIG_XICS=y | 160 | # CONFIG_MPIC_WEIRD is not set |
161 | # CONFIG_PPC_I8259 is not set | ||
143 | # CONFIG_U3_DART is not set | 162 | # CONFIG_U3_DART is not set |
144 | CONFIG_PPC_RTAS=y | 163 | # CONFIG_PPC_RTAS is not set |
145 | CONFIG_RTAS_ERROR_LOGGING=y | ||
146 | CONFIG_RTAS_PROC=y | ||
147 | # CONFIG_RTAS_FLASH is not set | ||
148 | # CONFIG_MMIO_NVRAM is not set | 164 | # CONFIG_MMIO_NVRAM is not set |
149 | CONFIG_IBMVIO=y | ||
150 | # CONFIG_IBMEBUS is not set | ||
151 | # CONFIG_PPC_MPC106 is not set | 165 | # CONFIG_PPC_MPC106 is not set |
152 | # CONFIG_PPC_970_NAP is not set | 166 | # CONFIG_PPC_970_NAP is not set |
153 | # CONFIG_PPC_INDIRECT_IO is not set | 167 | # CONFIG_PPC_INDIRECT_IO is not set |
154 | # CONFIG_GENERIC_IOMAP is not set | 168 | # CONFIG_GENERIC_IOMAP is not set |
155 | # CONFIG_CPU_FREQ is not set | 169 | # CONFIG_CPU_FREQ is not set |
156 | # CONFIG_WANT_EARLY_SERIAL is not set | 170 | # CONFIG_CPM2 is not set |
157 | CONFIG_MPIC=y | ||
158 | |||
159 | # | ||
160 | # PA Semi PWRficient options | ||
161 | # | ||
162 | CONFIG_PPC_PASEMI_IOMMU=y | ||
163 | 171 | ||
164 | # | 172 | # |
165 | # Kernel options | 173 | # Kernel options |
@@ -177,20 +185,14 @@ CONFIG_BINFMT_ELF=y | |||
177 | # CONFIG_BINFMT_MISC is not set | 185 | # CONFIG_BINFMT_MISC is not set |
178 | CONFIG_FORCE_MAX_ZONEORDER=13 | 186 | CONFIG_FORCE_MAX_ZONEORDER=13 |
179 | CONFIG_IOMMU_VMERGE=y | 187 | CONFIG_IOMMU_VMERGE=y |
180 | # CONFIG_HOTPLUG_CPU is not set | ||
181 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
182 | # CONFIG_KEXEC is not set | 189 | # CONFIG_KEXEC is not set |
183 | # CONFIG_CRASH_DUMP is not set | 190 | # CONFIG_CRASH_DUMP is not set |
184 | # CONFIG_IRQ_ALL_CPUS is not set | 191 | # CONFIG_IRQ_ALL_CPUS is not set |
185 | # CONFIG_PPC_SPLPAR is not set | ||
186 | CONFIG_EEH=y | ||
187 | # CONFIG_SCANLOG is not set | ||
188 | # CONFIG_LPARCFG is not set | ||
189 | # CONFIG_NUMA is not set | 192 | # CONFIG_NUMA is not set |
190 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 193 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
191 | CONFIG_ARCH_FLATMEM_ENABLE=y | 194 | CONFIG_ARCH_FLATMEM_ENABLE=y |
192 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 195 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
193 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||
194 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 196 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
195 | CONFIG_SELECT_MEMORY_MODEL=y | 197 | CONFIG_SELECT_MEMORY_MODEL=y |
196 | CONFIG_FLATMEM_MANUAL=y | 198 | CONFIG_FLATMEM_MANUAL=y |
@@ -201,24 +203,28 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
201 | # CONFIG_SPARSEMEM_STATIC is not set | 203 | # CONFIG_SPARSEMEM_STATIC is not set |
202 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 204 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
203 | CONFIG_RESOURCES_64BIT=y | 205 | CONFIG_RESOURCES_64BIT=y |
206 | CONFIG_ZONE_DMA_FLAG=1 | ||
207 | # CONFIG_PPC_HAS_HASH_64K is not set | ||
204 | # CONFIG_PPC_64K_PAGES is not set | 208 | # CONFIG_PPC_64K_PAGES is not set |
205 | # CONFIG_SCHED_SMT is not set | 209 | # CONFIG_SCHED_SMT is not set |
206 | CONFIG_PROC_DEVICETREE=y | 210 | CONFIG_PROC_DEVICETREE=y |
207 | # CONFIG_CMDLINE_BOOL is not set | 211 | # CONFIG_CMDLINE_BOOL is not set |
208 | # CONFIG_PM is not set | 212 | # CONFIG_PM is not set |
209 | # CONFIG_SECCOMP is not set | 213 | # CONFIG_SECCOMP is not set |
214 | # CONFIG_WANT_DEVICE_TREE is not set | ||
210 | CONFIG_ISA_DMA_API=y | 215 | CONFIG_ISA_DMA_API=y |
211 | 216 | ||
212 | # | 217 | # |
213 | # Bus options | 218 | # Bus options |
214 | # | 219 | # |
220 | CONFIG_ZONE_DMA=y | ||
215 | CONFIG_GENERIC_ISA_DMA=y | 221 | CONFIG_GENERIC_ISA_DMA=y |
216 | # CONFIG_MPIC_WEIRD is not set | ||
217 | CONFIG_PPC_I8259=y | ||
218 | # CONFIG_PPC_INDIRECT_PCI is not set | 222 | # CONFIG_PPC_INDIRECT_PCI is not set |
219 | CONFIG_PCI=y | 223 | CONFIG_PCI=y |
220 | CONFIG_PCI_DOMAINS=y | 224 | CONFIG_PCI_DOMAINS=y |
221 | # CONFIG_PCIEPORTBUS is not set | 225 | # CONFIG_PCIEPORTBUS is not set |
226 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
227 | # CONFIG_PCI_MSI is not set | ||
222 | # CONFIG_PCI_DEBUG is not set | 228 | # CONFIG_PCI_DEBUG is not set |
223 | 229 | ||
224 | # | 230 | # |
@@ -237,10 +243,6 @@ CONFIG_CARDBUS=y | |||
237 | # CONFIG_YENTA is not set | 243 | # CONFIG_YENTA is not set |
238 | # CONFIG_PD6729 is not set | 244 | # CONFIG_PD6729 is not set |
239 | # CONFIG_I82092 is not set | 245 | # CONFIG_I82092 is not set |
240 | |||
241 | # | ||
242 | # PCI Hotplug Support | ||
243 | # | ||
244 | # CONFIG_HOTPLUG_PCI is not set | 246 | # CONFIG_HOTPLUG_PCI is not set |
245 | CONFIG_KERNEL_START=0xc000000000000000 | 247 | CONFIG_KERNEL_START=0xc000000000000000 |
246 | 248 | ||
@@ -252,14 +254,15 @@ CONFIG_NET=y | |||
252 | # | 254 | # |
253 | # Networking options | 255 | # Networking options |
254 | # | 256 | # |
255 | # CONFIG_NETDEBUG is not set | ||
256 | CONFIG_PACKET=y | 257 | CONFIG_PACKET=y |
257 | # CONFIG_PACKET_MMAP is not set | 258 | # CONFIG_PACKET_MMAP is not set |
258 | CONFIG_UNIX=y | 259 | CONFIG_UNIX=y |
259 | CONFIG_XFRM=y | 260 | CONFIG_XFRM=y |
260 | # CONFIG_XFRM_USER is not set | 261 | # CONFIG_XFRM_USER is not set |
261 | # CONFIG_XFRM_SUB_POLICY is not set | 262 | # CONFIG_XFRM_SUB_POLICY is not set |
263 | # CONFIG_XFRM_MIGRATE is not set | ||
262 | CONFIG_NET_KEY=y | 264 | CONFIG_NET_KEY=y |
265 | # CONFIG_NET_KEY_MIGRATE is not set | ||
263 | CONFIG_INET=y | 266 | CONFIG_INET=y |
264 | CONFIG_IP_MULTICAST=y | 267 | CONFIG_IP_MULTICAST=y |
265 | # CONFIG_IP_ADVANCED_ROUTER is not set | 268 | # CONFIG_IP_ADVANCED_ROUTER is not set |
@@ -331,7 +334,16 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
331 | # CONFIG_HAMRADIO is not set | 334 | # CONFIG_HAMRADIO is not set |
332 | # CONFIG_IRDA is not set | 335 | # CONFIG_IRDA is not set |
333 | # CONFIG_BT is not set | 336 | # CONFIG_BT is not set |
337 | # CONFIG_AF_RXRPC is not set | ||
338 | |||
339 | # | ||
340 | # Wireless | ||
341 | # | ||
342 | # CONFIG_CFG80211 is not set | ||
343 | # CONFIG_WIRELESS_EXT is not set | ||
344 | # CONFIG_MAC80211 is not set | ||
334 | # CONFIG_IEEE80211 is not set | 345 | # CONFIG_IEEE80211 is not set |
346 | # CONFIG_RFKILL is not set | ||
335 | 347 | ||
336 | # | 348 | # |
337 | # Device Drivers | 349 | # Device Drivers |
@@ -344,16 +356,13 @@ CONFIG_STANDALONE=y | |||
344 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 356 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
345 | CONFIG_FW_LOADER=y | 357 | CONFIG_FW_LOADER=y |
346 | # CONFIG_DEBUG_DRIVER is not set | 358 | # CONFIG_DEBUG_DRIVER is not set |
359 | # CONFIG_DEBUG_DEVRES is not set | ||
347 | # CONFIG_SYS_HYPERVISOR is not set | 360 | # CONFIG_SYS_HYPERVISOR is not set |
348 | 361 | ||
349 | # | 362 | # |
350 | # Connector - unified userspace <-> kernelspace linker | 363 | # Connector - unified userspace <-> kernelspace linker |
351 | # | 364 | # |
352 | # CONFIG_CONNECTOR is not set | 365 | # CONFIG_CONNECTOR is not set |
353 | |||
354 | # | ||
355 | # Memory Technology Devices (MTD) | ||
356 | # | ||
357 | CONFIG_MTD=y | 366 | CONFIG_MTD=y |
358 | # CONFIG_MTD_DEBUG is not set | 367 | # CONFIG_MTD_DEBUG is not set |
359 | CONFIG_MTD_CONCAT=y | 368 | CONFIG_MTD_CONCAT=y |
@@ -389,7 +398,6 @@ CONFIG_MTD_CFI_I2=y | |||
389 | # CONFIG_MTD_RAM is not set | 398 | # CONFIG_MTD_RAM is not set |
390 | # CONFIG_MTD_ROM is not set | 399 | # CONFIG_MTD_ROM is not set |
391 | # CONFIG_MTD_ABSENT is not set | 400 | # CONFIG_MTD_ABSENT is not set |
392 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
393 | 401 | ||
394 | # | 402 | # |
395 | # Mapping drivers for chip access | 403 | # Mapping drivers for chip access |
@@ -412,17 +420,13 @@ CONFIG_MTD_PHRAM=y | |||
412 | # CONFIG_MTD_DOC2000 is not set | 420 | # CONFIG_MTD_DOC2000 is not set |
413 | # CONFIG_MTD_DOC2001 is not set | 421 | # CONFIG_MTD_DOC2001 is not set |
414 | # CONFIG_MTD_DOC2001PLUS is not set | 422 | # CONFIG_MTD_DOC2001PLUS is not set |
415 | |||
416 | # | ||
417 | # NAND Flash Device Drivers | ||
418 | # | ||
419 | # CONFIG_MTD_NAND is not set | 423 | # CONFIG_MTD_NAND is not set |
420 | # CONFIG_MTD_NAND_CAFE is not set | 424 | # CONFIG_MTD_ONENAND is not set |
421 | 425 | ||
422 | # | 426 | # |
423 | # OneNAND Flash Device Drivers | 427 | # UBI - Unsorted block images |
424 | # | 428 | # |
425 | # CONFIG_MTD_ONENAND is not set | 429 | # CONFIG_MTD_UBI is not set |
426 | 430 | ||
427 | # | 431 | # |
428 | # Parallel port support | 432 | # Parallel port support |
@@ -432,6 +436,7 @@ CONFIG_MTD_PHRAM=y | |||
432 | # | 436 | # |
433 | # Plug and Play support | 437 | # Plug and Play support |
434 | # | 438 | # |
439 | # CONFIG_PNPACPI is not set | ||
435 | 440 | ||
436 | # | 441 | # |
437 | # Block devices | 442 | # Block devices |
@@ -451,15 +456,16 @@ CONFIG_BLK_DEV_RAM=y | |||
451 | CONFIG_BLK_DEV_RAM_COUNT=16 | 456 | CONFIG_BLK_DEV_RAM_COUNT=16 |
452 | CONFIG_BLK_DEV_RAM_SIZE=16384 | 457 | CONFIG_BLK_DEV_RAM_SIZE=16384 |
453 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 458 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
454 | CONFIG_BLK_DEV_INITRD=y | ||
455 | # CONFIG_CDROM_PKTCDVD is not set | 459 | # CONFIG_CDROM_PKTCDVD is not set |
456 | # CONFIG_ATA_OVER_ETH is not set | 460 | # CONFIG_ATA_OVER_ETH is not set |
457 | 461 | ||
458 | # | 462 | # |
459 | # Misc devices | 463 | # Misc devices |
460 | # | 464 | # |
465 | # CONFIG_PHANTOM is not set | ||
461 | # CONFIG_SGI_IOC4 is not set | 466 | # CONFIG_SGI_IOC4 is not set |
462 | # CONFIG_TIFM_CORE is not set | 467 | # CONFIG_TIFM_CORE is not set |
468 | # CONFIG_BLINK is not set | ||
463 | 469 | ||
464 | # | 470 | # |
465 | # ATA/ATAPI/MFM/RLL support | 471 | # ATA/ATAPI/MFM/RLL support |
@@ -474,20 +480,22 @@ CONFIG_BLK_DEV_IDE=y | |||
474 | CONFIG_BLK_DEV_IDEDISK=y | 480 | CONFIG_BLK_DEV_IDEDISK=y |
475 | CONFIG_IDEDISK_MULTI_MODE=y | 481 | CONFIG_IDEDISK_MULTI_MODE=y |
476 | # CONFIG_BLK_DEV_IDECS is not set | 482 | # CONFIG_BLK_DEV_IDECS is not set |
483 | # CONFIG_BLK_DEV_DELKIN is not set | ||
477 | CONFIG_BLK_DEV_IDECD=y | 484 | CONFIG_BLK_DEV_IDECD=y |
478 | # CONFIG_BLK_DEV_IDETAPE is not set | 485 | # CONFIG_BLK_DEV_IDETAPE is not set |
479 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 486 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
480 | CONFIG_BLK_DEV_IDESCSI=y | 487 | CONFIG_BLK_DEV_IDESCSI=y |
481 | CONFIG_IDE_TASK_IOCTL=y | 488 | CONFIG_IDE_TASK_IOCTL=y |
489 | CONFIG_IDE_PROC_FS=y | ||
482 | 490 | ||
483 | # | 491 | # |
484 | # IDE chipset support/bugfixes | 492 | # IDE chipset support/bugfixes |
485 | # | 493 | # |
486 | # CONFIG_IDE_GENERIC is not set | 494 | # CONFIG_IDE_GENERIC is not set |
487 | # CONFIG_BLK_DEV_IDEPCI is not set | 495 | # CONFIG_BLK_DEV_IDEPCI is not set |
496 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
488 | # CONFIG_IDE_ARM is not set | 497 | # CONFIG_IDE_ARM is not set |
489 | # CONFIG_BLK_DEV_IDEDMA is not set | 498 | # CONFIG_BLK_DEV_IDEDMA is not set |
490 | # CONFIG_IDEDMA_AUTO is not set | ||
491 | # CONFIG_BLK_DEV_HD is not set | 499 | # CONFIG_BLK_DEV_HD is not set |
492 | 500 | ||
493 | # | 501 | # |
@@ -517,6 +525,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
517 | CONFIG_SCSI_CONSTANTS=y | 525 | CONFIG_SCSI_CONSTANTS=y |
518 | CONFIG_SCSI_LOGGING=y | 526 | CONFIG_SCSI_LOGGING=y |
519 | # CONFIG_SCSI_SCAN_ASYNC is not set | 527 | # CONFIG_SCSI_SCAN_ASYNC is not set |
528 | CONFIG_SCSI_WAIT_SCAN=m | ||
520 | 529 | ||
521 | # | 530 | # |
522 | # SCSI Transports | 531 | # SCSI Transports |
@@ -550,7 +559,6 @@ CONFIG_SCSI_3W_9XXX=y | |||
550 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 559 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
551 | # CONFIG_SCSI_GDTH is not set | 560 | # CONFIG_SCSI_GDTH is not set |
552 | # CONFIG_SCSI_IPS is not set | 561 | # CONFIG_SCSI_IPS is not set |
553 | # CONFIG_SCSI_IBMVSCSI is not set | ||
554 | # CONFIG_SCSI_INITIO is not set | 562 | # CONFIG_SCSI_INITIO is not set |
555 | # CONFIG_SCSI_INIA100 is not set | 563 | # CONFIG_SCSI_INIA100 is not set |
556 | # CONFIG_SCSI_STEX is not set | 564 | # CONFIG_SCSI_STEX is not set |
@@ -563,6 +571,7 @@ CONFIG_SCSI_3W_9XXX=y | |||
563 | # CONFIG_SCSI_DC395x is not set | 571 | # CONFIG_SCSI_DC395x is not set |
564 | # CONFIG_SCSI_DC390T is not set | 572 | # CONFIG_SCSI_DC390T is not set |
565 | # CONFIG_SCSI_DEBUG is not set | 573 | # CONFIG_SCSI_DEBUG is not set |
574 | # CONFIG_SCSI_ESP_CORE is not set | ||
566 | # CONFIG_SCSI_SRP is not set | 575 | # CONFIG_SCSI_SRP is not set |
567 | 576 | ||
568 | # | 577 | # |
@@ -578,7 +587,7 @@ CONFIG_SCSI_3W_9XXX=y | |||
578 | CONFIG_ATA=y | 587 | CONFIG_ATA=y |
579 | # CONFIG_ATA_NONSTANDARD is not set | 588 | # CONFIG_ATA_NONSTANDARD is not set |
580 | # CONFIG_SATA_AHCI is not set | 589 | # CONFIG_SATA_AHCI is not set |
581 | CONFIG_SATA_SVW=y | 590 | # CONFIG_SATA_SVW is not set |
582 | # CONFIG_ATA_PIIX is not set | 591 | # CONFIG_ATA_PIIX is not set |
583 | CONFIG_SATA_MV=y | 592 | CONFIG_SATA_MV=y |
584 | # CONFIG_SATA_NV is not set | 593 | # CONFIG_SATA_NV is not set |
@@ -586,16 +595,18 @@ CONFIG_SATA_MV=y | |||
586 | # CONFIG_SATA_QSTOR is not set | 595 | # CONFIG_SATA_QSTOR is not set |
587 | # CONFIG_SATA_PROMISE is not set | 596 | # CONFIG_SATA_PROMISE is not set |
588 | # CONFIG_SATA_SX4 is not set | 597 | # CONFIG_SATA_SX4 is not set |
589 | CONFIG_SATA_SIL=y | 598 | # CONFIG_SATA_SIL is not set |
590 | CONFIG_SATA_SIL24=y | 599 | CONFIG_SATA_SIL24=y |
591 | # CONFIG_SATA_SIS is not set | 600 | # CONFIG_SATA_SIS is not set |
592 | # CONFIG_SATA_ULI is not set | 601 | # CONFIG_SATA_ULI is not set |
593 | # CONFIG_SATA_VIA is not set | 602 | # CONFIG_SATA_VIA is not set |
594 | # CONFIG_SATA_VITESSE is not set | 603 | # CONFIG_SATA_VITESSE is not set |
604 | # CONFIG_SATA_INIC162X is not set | ||
595 | # CONFIG_PATA_ALI is not set | 605 | # CONFIG_PATA_ALI is not set |
596 | # CONFIG_PATA_AMD is not set | 606 | # CONFIG_PATA_AMD is not set |
597 | # CONFIG_PATA_ARTOP is not set | 607 | # CONFIG_PATA_ARTOP is not set |
598 | # CONFIG_PATA_ATIIXP is not set | 608 | # CONFIG_PATA_ATIIXP is not set |
609 | # CONFIG_PATA_CMD640_PCI is not set | ||
599 | # CONFIG_PATA_CMD64X is not set | 610 | # CONFIG_PATA_CMD64X is not set |
600 | # CONFIG_PATA_CS5520 is not set | 611 | # CONFIG_PATA_CS5520 is not set |
601 | # CONFIG_PATA_CS5530 is not set | 612 | # CONFIG_PATA_CS5530 is not set |
@@ -607,6 +618,7 @@ CONFIG_ATA_GENERIC=y | |||
607 | # CONFIG_PATA_HPT3X2N is not set | 618 | # CONFIG_PATA_HPT3X2N is not set |
608 | # CONFIG_PATA_HPT3X3 is not set | 619 | # CONFIG_PATA_HPT3X3 is not set |
609 | # CONFIG_PATA_IT821X is not set | 620 | # CONFIG_PATA_IT821X is not set |
621 | # CONFIG_PATA_IT8213 is not set | ||
610 | # CONFIG_PATA_JMICRON is not set | 622 | # CONFIG_PATA_JMICRON is not set |
611 | # CONFIG_PATA_TRIFLEX is not set | 623 | # CONFIG_PATA_TRIFLEX is not set |
612 | # CONFIG_PATA_MARVELL is not set | 624 | # CONFIG_PATA_MARVELL is not set |
@@ -644,27 +656,26 @@ CONFIG_ATA_GENERIC=y | |||
644 | # | 656 | # |
645 | # IEEE 1394 (FireWire) support | 657 | # IEEE 1394 (FireWire) support |
646 | # | 658 | # |
659 | # CONFIG_FIREWIRE is not set | ||
647 | CONFIG_IEEE1394=y | 660 | CONFIG_IEEE1394=y |
648 | 661 | ||
649 | # | 662 | # |
650 | # Subsystem Options | 663 | # Subsystem Options |
651 | # | 664 | # |
652 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set | 665 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set |
653 | # CONFIG_IEEE1394_OUI_DB is not set | ||
654 | # CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set | ||
655 | # CONFIG_IEEE1394_EXPORT_FULL_API is not set | ||
656 | 666 | ||
657 | # | 667 | # |
658 | # Device Drivers | 668 | # Controllers |
659 | # | 669 | # |
660 | CONFIG_IEEE1394_PCILYNX=y | 670 | CONFIG_IEEE1394_PCILYNX=y |
661 | CONFIG_IEEE1394_OHCI1394=y | 671 | CONFIG_IEEE1394_OHCI1394=y |
662 | 672 | ||
663 | # | 673 | # |
664 | # Protocol Drivers | 674 | # Protocols |
665 | # | 675 | # |
666 | # CONFIG_IEEE1394_VIDEO1394 is not set | 676 | # CONFIG_IEEE1394_VIDEO1394 is not set |
667 | CONFIG_IEEE1394_SBP2=y | 677 | CONFIG_IEEE1394_SBP2=y |
678 | # CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set | ||
668 | # CONFIG_IEEE1394_ETH1394 is not set | 679 | # CONFIG_IEEE1394_ETH1394 is not set |
669 | # CONFIG_IEEE1394_DV1394 is not set | 680 | # CONFIG_IEEE1394_DV1394 is not set |
670 | CONFIG_IEEE1394_RAWIO=y | 681 | CONFIG_IEEE1394_RAWIO=y |
@@ -673,12 +684,7 @@ CONFIG_IEEE1394_RAWIO=y | |||
673 | # I2O device support | 684 | # I2O device support |
674 | # | 685 | # |
675 | # CONFIG_I2O is not set | 686 | # CONFIG_I2O is not set |
676 | 687 | # CONFIG_MACINTOSH_DRIVERS is not set | |
677 | # | ||
678 | # Macintosh device drivers | ||
679 | # | ||
680 | # CONFIG_MAC_EMUMOUSEBTN is not set | ||
681 | # CONFIG_WINDFARM is not set | ||
682 | 688 | ||
683 | # | 689 | # |
684 | # Network device support | 690 | # Network device support |
@@ -697,7 +703,20 @@ CONFIG_DUMMY=y | |||
697 | # | 703 | # |
698 | # PHY device support | 704 | # PHY device support |
699 | # | 705 | # |
700 | # CONFIG_PHYLIB is not set | 706 | CONFIG_PHYLIB=y |
707 | |||
708 | # | ||
709 | # MII PHY device drivers | ||
710 | # | ||
711 | CONFIG_MARVELL_PHY=y | ||
712 | # CONFIG_DAVICOM_PHY is not set | ||
713 | # CONFIG_QSEMI_PHY is not set | ||
714 | # CONFIG_LXT_PHY is not set | ||
715 | # CONFIG_CICADA_PHY is not set | ||
716 | # CONFIG_VITESSE_PHY is not set | ||
717 | # CONFIG_SMSC_PHY is not set | ||
718 | # CONFIG_BROADCOM_PHY is not set | ||
719 | # CONFIG_FIXED_PHY is not set | ||
701 | 720 | ||
702 | # | 721 | # |
703 | # Ethernet (10 or 100Mbit) | 722 | # Ethernet (10 or 100Mbit) |
@@ -714,7 +733,6 @@ CONFIG_MII=y | |||
714 | # | 733 | # |
715 | # CONFIG_NET_TULIP is not set | 734 | # CONFIG_NET_TULIP is not set |
716 | # CONFIG_HP100 is not set | 735 | # CONFIG_HP100 is not set |
717 | CONFIG_IBMVETH=y | ||
718 | CONFIG_NET_PCI=y | 736 | CONFIG_NET_PCI=y |
719 | # CONFIG_PCNET32 is not set | 737 | # CONFIG_PCNET32 is not set |
720 | # CONFIG_AMD8111_ETH is not set | 738 | # CONFIG_AMD8111_ETH is not set |
@@ -722,7 +740,7 @@ CONFIG_NET_PCI=y | |||
722 | # CONFIG_B44 is not set | 740 | # CONFIG_B44 is not set |
723 | # CONFIG_FORCEDETH is not set | 741 | # CONFIG_FORCEDETH is not set |
724 | # CONFIG_DGRS is not set | 742 | # CONFIG_DGRS is not set |
725 | CONFIG_EEPRO100=y | 743 | # CONFIG_EEPRO100 is not set |
726 | # CONFIG_E100 is not set | 744 | # CONFIG_E100 is not set |
727 | # CONFIG_FEALNX is not set | 745 | # CONFIG_FEALNX is not set |
728 | # CONFIG_NATSEMI is not set | 746 | # CONFIG_NATSEMI is not set |
@@ -733,6 +751,7 @@ CONFIG_EEPRO100=y | |||
733 | # CONFIG_EPIC100 is not set | 751 | # CONFIG_EPIC100 is not set |
734 | # CONFIG_SUNDANCE is not set | 752 | # CONFIG_SUNDANCE is not set |
735 | # CONFIG_VIA_RHINE is not set | 753 | # CONFIG_VIA_RHINE is not set |
754 | # CONFIG_SC92031 is not set | ||
736 | 755 | ||
737 | # | 756 | # |
738 | # Ethernet (1000 Mbit) | 757 | # Ethernet (1000 Mbit) |
@@ -754,15 +773,20 @@ CONFIG_E1000_NAPI=y | |||
754 | CONFIG_TIGON3=y | 773 | CONFIG_TIGON3=y |
755 | # CONFIG_BNX2 is not set | 774 | # CONFIG_BNX2 is not set |
756 | # CONFIG_QLA3XXX is not set | 775 | # CONFIG_QLA3XXX is not set |
776 | # CONFIG_ATL1 is not set | ||
757 | 777 | ||
758 | # | 778 | # |
759 | # Ethernet (10000 Mbit) | 779 | # Ethernet (10000 Mbit) |
760 | # | 780 | # |
761 | # CONFIG_CHELSIO_T1 is not set | 781 | # CONFIG_CHELSIO_T1 is not set |
782 | # CONFIG_CHELSIO_T3 is not set | ||
762 | # CONFIG_IXGB is not set | 783 | # CONFIG_IXGB is not set |
763 | # CONFIG_S2IO is not set | 784 | # CONFIG_S2IO is not set |
764 | # CONFIG_MYRI10GE is not set | 785 | # CONFIG_MYRI10GE is not set |
765 | # CONFIG_NETXEN_NIC is not set | 786 | # CONFIG_NETXEN_NIC is not set |
787 | CONFIG_PASEMI_MAC=y | ||
788 | # CONFIG_MLX4_CORE is not set | ||
789 | CONFIG_MLX4_DEBUG=y | ||
766 | 790 | ||
767 | # | 791 | # |
768 | # Token Ring devices | 792 | # Token Ring devices |
@@ -770,9 +794,20 @@ CONFIG_TIGON3=y | |||
770 | # CONFIG_TR is not set | 794 | # CONFIG_TR is not set |
771 | 795 | ||
772 | # | 796 | # |
773 | # Wireless LAN (non-hamradio) | 797 | # Wireless LAN |
798 | # | ||
799 | # CONFIG_WLAN_PRE80211 is not set | ||
800 | # CONFIG_WLAN_80211 is not set | ||
801 | |||
802 | # | ||
803 | # USB Network Adapters | ||
774 | # | 804 | # |
775 | # CONFIG_NET_RADIO is not set | 805 | # CONFIG_USB_CATC is not set |
806 | # CONFIG_USB_KAWETH is not set | ||
807 | # CONFIG_USB_PEGASUS is not set | ||
808 | # CONFIG_USB_RTL8150 is not set | ||
809 | # CONFIG_USB_USBNET_MII is not set | ||
810 | # CONFIG_USB_USBNET is not set | ||
776 | 811 | ||
777 | # | 812 | # |
778 | # PCMCIA network device support | 813 | # PCMCIA network device support |
@@ -834,8 +869,10 @@ CONFIG_INPUT_KEYBOARD=y | |||
834 | CONFIG_INPUT_MOUSE=y | 869 | CONFIG_INPUT_MOUSE=y |
835 | # CONFIG_MOUSE_PS2 is not set | 870 | # CONFIG_MOUSE_PS2 is not set |
836 | # CONFIG_MOUSE_SERIAL is not set | 871 | # CONFIG_MOUSE_SERIAL is not set |
872 | # CONFIG_MOUSE_APPLETOUCH is not set | ||
837 | # CONFIG_MOUSE_VSXXXAA is not set | 873 | # CONFIG_MOUSE_VSXXXAA is not set |
838 | # CONFIG_INPUT_JOYSTICK is not set | 874 | # CONFIG_INPUT_JOYSTICK is not set |
875 | # CONFIG_INPUT_TABLET is not set | ||
839 | # CONFIG_INPUT_TOUCHSCREEN is not set | 876 | # CONFIG_INPUT_TOUCHSCREEN is not set |
840 | # CONFIG_INPUT_MISC is not set | 877 | # CONFIG_INPUT_MISC is not set |
841 | 878 | ||
@@ -870,29 +907,21 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
870 | # | 907 | # |
871 | CONFIG_SERIAL_CORE=y | 908 | CONFIG_SERIAL_CORE=y |
872 | CONFIG_SERIAL_CORE_CONSOLE=y | 909 | CONFIG_SERIAL_CORE_CONSOLE=y |
873 | # CONFIG_SERIAL_ICOM is not set | ||
874 | # CONFIG_SERIAL_JSM is not set | 910 | # CONFIG_SERIAL_JSM is not set |
911 | # CONFIG_SERIAL_OF_PLATFORM is not set | ||
875 | CONFIG_UNIX98_PTYS=y | 912 | CONFIG_UNIX98_PTYS=y |
876 | CONFIG_LEGACY_PTYS=y | 913 | CONFIG_LEGACY_PTYS=y |
877 | CONFIG_LEGACY_PTY_COUNT=4 | 914 | CONFIG_LEGACY_PTY_COUNT=4 |
878 | CONFIG_HVC_DRIVER=y | ||
879 | CONFIG_HVC_CONSOLE=y | ||
880 | CONFIG_HVC_RTAS=y | ||
881 | # CONFIG_HVCS is not set | ||
882 | 915 | ||
883 | # | 916 | # |
884 | # IPMI | 917 | # IPMI |
885 | # | 918 | # |
886 | # CONFIG_IPMI_HANDLER is not set | 919 | # CONFIG_IPMI_HANDLER is not set |
887 | |||
888 | # | ||
889 | # Watchdog Cards | ||
890 | # | ||
891 | # CONFIG_WATCHDOG is not set | 920 | # CONFIG_WATCHDOG is not set |
892 | CONFIG_HW_RANDOM=y | 921 | CONFIG_HW_RANDOM=y |
922 | CONFIG_HW_RANDOM_PASEMI=y | ||
893 | CONFIG_GEN_RTC=y | 923 | CONFIG_GEN_RTC=y |
894 | CONFIG_GEN_RTC_X=y | 924 | CONFIG_GEN_RTC_X=y |
895 | # CONFIG_DTLK is not set | ||
896 | # CONFIG_R3964 is not set | 925 | # CONFIG_R3964 is not set |
897 | # CONFIG_APPLICOM is not set | 926 | # CONFIG_APPLICOM is not set |
898 | # CONFIG_AGP is not set | 927 | # CONFIG_AGP is not set |
@@ -912,11 +941,9 @@ CONFIG_MAX_RAW_DEVS=256 | |||
912 | # TPM devices | 941 | # TPM devices |
913 | # | 942 | # |
914 | # CONFIG_TCG_TPM is not set | 943 | # CONFIG_TCG_TPM is not set |
915 | 944 | CONFIG_DEVPORT=y | |
916 | # | ||
917 | # I2C support | ||
918 | # | ||
919 | CONFIG_I2C=y | 945 | CONFIG_I2C=y |
946 | CONFIG_I2C_BOARDINFO=y | ||
920 | CONFIG_I2C_CHARDEV=y | 947 | CONFIG_I2C_CHARDEV=y |
921 | 948 | ||
922 | # | 949 | # |
@@ -940,16 +967,18 @@ CONFIG_I2C_ALGOPCA=y | |||
940 | # CONFIG_I2C_NFORCE2 is not set | 967 | # CONFIG_I2C_NFORCE2 is not set |
941 | # CONFIG_I2C_OCORES is not set | 968 | # CONFIG_I2C_OCORES is not set |
942 | # CONFIG_I2C_PARPORT_LIGHT is not set | 969 | # CONFIG_I2C_PARPORT_LIGHT is not set |
970 | CONFIG_I2C_PASEMI=y | ||
943 | # CONFIG_I2C_PROSAVAGE is not set | 971 | # CONFIG_I2C_PROSAVAGE is not set |
944 | # CONFIG_I2C_SAVAGE4 is not set | 972 | # CONFIG_I2C_SAVAGE4 is not set |
973 | # CONFIG_I2C_SIMTEC is not set | ||
945 | # CONFIG_I2C_SIS5595 is not set | 974 | # CONFIG_I2C_SIS5595 is not set |
946 | # CONFIG_I2C_SIS630 is not set | 975 | # CONFIG_I2C_SIS630 is not set |
947 | # CONFIG_I2C_SIS96X is not set | 976 | # CONFIG_I2C_SIS96X is not set |
948 | # CONFIG_I2C_STUB is not set | 977 | # CONFIG_I2C_STUB is not set |
978 | # CONFIG_I2C_TINY_USB is not set | ||
949 | # CONFIG_I2C_VIA is not set | 979 | # CONFIG_I2C_VIA is not set |
950 | # CONFIG_I2C_VIAPRO is not set | 980 | # CONFIG_I2C_VIAPRO is not set |
951 | # CONFIG_I2C_VOODOO3 is not set | 981 | # CONFIG_I2C_VOODOO3 is not set |
952 | # CONFIG_I2C_PCA_ISA is not set | ||
953 | 982 | ||
954 | # | 983 | # |
955 | # Miscellaneous I2C Chip support | 984 | # Miscellaneous I2C Chip support |
@@ -963,7 +992,7 @@ CONFIG_SENSORS_EEPROM=y | |||
963 | # CONFIG_SENSORS_MAX6875 is not set | 992 | # CONFIG_SENSORS_MAX6875 is not set |
964 | # CONFIG_I2C_DEBUG_CORE is not set | 993 | # CONFIG_I2C_DEBUG_CORE is not set |
965 | # CONFIG_I2C_DEBUG_ALGO is not set | 994 | # CONFIG_I2C_DEBUG_ALGO is not set |
966 | CONFIG_I2C_DEBUG_BUS=y | 995 | # CONFIG_I2C_DEBUG_BUS is not set |
967 | # CONFIG_I2C_DEBUG_CHIP is not set | 996 | # CONFIG_I2C_DEBUG_CHIP is not set |
968 | 997 | ||
969 | # | 998 | # |
@@ -976,16 +1005,14 @@ CONFIG_I2C_DEBUG_BUS=y | |||
976 | # Dallas's 1-wire bus | 1005 | # Dallas's 1-wire bus |
977 | # | 1006 | # |
978 | # CONFIG_W1 is not set | 1007 | # CONFIG_W1 is not set |
979 | |||
980 | # | ||
981 | # Hardware Monitoring support | ||
982 | # | ||
983 | CONFIG_HWMON=y | 1008 | CONFIG_HWMON=y |
984 | CONFIG_HWMON_VID=y | 1009 | CONFIG_HWMON_VID=y |
985 | # CONFIG_SENSORS_ABITUGURU is not set | 1010 | # CONFIG_SENSORS_ABITUGURU is not set |
1011 | # CONFIG_SENSORS_AD7418 is not set | ||
986 | # CONFIG_SENSORS_ADM1021 is not set | 1012 | # CONFIG_SENSORS_ADM1021 is not set |
987 | # CONFIG_SENSORS_ADM1025 is not set | 1013 | # CONFIG_SENSORS_ADM1025 is not set |
988 | # CONFIG_SENSORS_ADM1026 is not set | 1014 | # CONFIG_SENSORS_ADM1026 is not set |
1015 | # CONFIG_SENSORS_ADM1029 is not set | ||
989 | # CONFIG_SENSORS_ADM1031 is not set | 1016 | # CONFIG_SENSORS_ADM1031 is not set |
990 | # CONFIG_SENSORS_ADM9240 is not set | 1017 | # CONFIG_SENSORS_ADM9240 is not set |
991 | # CONFIG_SENSORS_ASB100 is not set | 1018 | # CONFIG_SENSORS_ASB100 is not set |
@@ -1008,6 +1035,7 @@ CONFIG_SENSORS_LM85=y | |||
1008 | CONFIG_SENSORS_LM90=y | 1035 | CONFIG_SENSORS_LM90=y |
1009 | # CONFIG_SENSORS_LM92 is not set | 1036 | # CONFIG_SENSORS_LM92 is not set |
1010 | # CONFIG_SENSORS_MAX1619 is not set | 1037 | # CONFIG_SENSORS_MAX1619 is not set |
1038 | # CONFIG_SENSORS_MAX6650 is not set | ||
1011 | # CONFIG_SENSORS_PC87360 is not set | 1039 | # CONFIG_SENSORS_PC87360 is not set |
1012 | # CONFIG_SENSORS_PC87427 is not set | 1040 | # CONFIG_SENSORS_PC87427 is not set |
1013 | # CONFIG_SENSORS_SIS5595 is not set | 1041 | # CONFIG_SENSORS_SIS5595 is not set |
@@ -1027,29 +1055,50 @@ CONFIG_SENSORS_LM90=y | |||
1027 | # CONFIG_HWMON_DEBUG_CHIP is not set | 1055 | # CONFIG_HWMON_DEBUG_CHIP is not set |
1028 | 1056 | ||
1029 | # | 1057 | # |
1030 | # Multimedia devices | 1058 | # Multifunction device drivers |
1031 | # | 1059 | # |
1032 | # CONFIG_VIDEO_DEV is not set | 1060 | # CONFIG_MFD_SM501 is not set |
1033 | 1061 | ||
1034 | # | 1062 | # |
1035 | # Digital Video Broadcasting Devices | 1063 | # Multimedia devices |
1036 | # | 1064 | # |
1037 | # CONFIG_DVB is not set | 1065 | # CONFIG_VIDEO_DEV is not set |
1066 | # CONFIG_DVB_CORE is not set | ||
1067 | CONFIG_DAB=y | ||
1038 | # CONFIG_USB_DABUSB is not set | 1068 | # CONFIG_USB_DABUSB is not set |
1039 | 1069 | ||
1040 | # | 1070 | # |
1041 | # Graphics support | 1071 | # Graphics support |
1042 | # | 1072 | # |
1043 | CONFIG_FIRMWARE_EDID=y | 1073 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
1074 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1075 | CONFIG_LCD_CLASS_DEVICE=m | ||
1076 | |||
1077 | # | ||
1078 | # Display device support | ||
1079 | # | ||
1080 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1081 | CONFIG_VGASTATE=y | ||
1044 | CONFIG_FB=y | 1082 | CONFIG_FB=y |
1083 | CONFIG_FIRMWARE_EDID=y | ||
1045 | CONFIG_FB_DDC=y | 1084 | CONFIG_FB_DDC=y |
1046 | CONFIG_FB_CFB_FILLRECT=y | 1085 | CONFIG_FB_CFB_FILLRECT=y |
1047 | CONFIG_FB_CFB_COPYAREA=y | 1086 | CONFIG_FB_CFB_COPYAREA=y |
1048 | CONFIG_FB_CFB_IMAGEBLIT=y | 1087 | CONFIG_FB_CFB_IMAGEBLIT=y |
1088 | # CONFIG_FB_SYS_FILLRECT is not set | ||
1089 | # CONFIG_FB_SYS_COPYAREA is not set | ||
1090 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
1091 | # CONFIG_FB_SYS_FOPS is not set | ||
1092 | CONFIG_FB_DEFERRED_IO=y | ||
1093 | # CONFIG_FB_SVGALIB is not set | ||
1049 | CONFIG_FB_MACMODES=y | 1094 | CONFIG_FB_MACMODES=y |
1050 | # CONFIG_FB_BACKLIGHT is not set | 1095 | CONFIG_FB_BACKLIGHT=y |
1051 | CONFIG_FB_MODE_HELPERS=y | 1096 | CONFIG_FB_MODE_HELPERS=y |
1052 | CONFIG_FB_TILEBLITTING=y | 1097 | CONFIG_FB_TILEBLITTING=y |
1098 | |||
1099 | # | ||
1100 | # Frame buffer hardware drivers | ||
1101 | # | ||
1053 | # CONFIG_FB_CIRRUS is not set | 1102 | # CONFIG_FB_CIRRUS is not set |
1054 | # CONFIG_FB_PM2 is not set | 1103 | # CONFIG_FB_PM2 is not set |
1055 | # CONFIG_FB_CYBER2000 is not set | 1104 | # CONFIG_FB_CYBER2000 is not set |
@@ -1060,28 +1109,27 @@ CONFIG_FB_VGA16=y | |||
1060 | # CONFIG_FB_S1D13XXX is not set | 1109 | # CONFIG_FB_S1D13XXX is not set |
1061 | CONFIG_FB_NVIDIA=y | 1110 | CONFIG_FB_NVIDIA=y |
1062 | CONFIG_FB_NVIDIA_I2C=y | 1111 | CONFIG_FB_NVIDIA_I2C=y |
1063 | CONFIG_FB_RIVA=y | 1112 | # CONFIG_FB_NVIDIA_DEBUG is not set |
1064 | CONFIG_FB_RIVA_I2C=y | 1113 | CONFIG_FB_NVIDIA_BACKLIGHT=y |
1065 | # CONFIG_FB_RIVA_DEBUG is not set | 1114 | # CONFIG_FB_RIVA is not set |
1066 | CONFIG_FB_MATROX=y | 1115 | # CONFIG_FB_MATROX is not set |
1067 | CONFIG_FB_MATROX_MILLENIUM=y | ||
1068 | CONFIG_FB_MATROX_MYSTIQUE=y | ||
1069 | CONFIG_FB_MATROX_G=y | ||
1070 | CONFIG_FB_MATROX_I2C=y | ||
1071 | CONFIG_FB_MATROX_MAVEN=y | ||
1072 | CONFIG_FB_MATROX_MULTIHEAD=y | ||
1073 | CONFIG_FB_RADEON=y | 1116 | CONFIG_FB_RADEON=y |
1074 | CONFIG_FB_RADEON_I2C=y | 1117 | CONFIG_FB_RADEON_I2C=y |
1118 | CONFIG_FB_RADEON_BACKLIGHT=y | ||
1075 | # CONFIG_FB_RADEON_DEBUG is not set | 1119 | # CONFIG_FB_RADEON_DEBUG is not set |
1076 | # CONFIG_FB_ATY128 is not set | 1120 | # CONFIG_FB_ATY128 is not set |
1077 | # CONFIG_FB_ATY is not set | 1121 | # CONFIG_FB_ATY is not set |
1122 | # CONFIG_FB_S3 is not set | ||
1078 | # CONFIG_FB_SAVAGE is not set | 1123 | # CONFIG_FB_SAVAGE is not set |
1079 | # CONFIG_FB_SIS is not set | 1124 | # CONFIG_FB_SIS is not set |
1080 | # CONFIG_FB_NEOMAGIC is not set | 1125 | # CONFIG_FB_NEOMAGIC is not set |
1081 | # CONFIG_FB_KYRO is not set | 1126 | # CONFIG_FB_KYRO is not set |
1082 | # CONFIG_FB_3DFX is not set | 1127 | # CONFIG_FB_3DFX is not set |
1083 | # CONFIG_FB_VOODOO1 is not set | 1128 | # CONFIG_FB_VOODOO1 is not set |
1129 | # CONFIG_FB_VT8623 is not set | ||
1084 | # CONFIG_FB_TRIDENT is not set | 1130 | # CONFIG_FB_TRIDENT is not set |
1131 | # CONFIG_FB_ARK is not set | ||
1132 | # CONFIG_FB_PM3 is not set | ||
1085 | # CONFIG_FB_IBM_GXT4500 is not set | 1133 | # CONFIG_FB_IBM_GXT4500 is not set |
1086 | # CONFIG_FB_VIRTUAL is not set | 1134 | # CONFIG_FB_VIRTUAL is not set |
1087 | 1135 | ||
@@ -1097,15 +1145,10 @@ CONFIG_FRAMEBUFFER_CONSOLE=y | |||
1097 | # CONFIG_FONTS is not set | 1145 | # CONFIG_FONTS is not set |
1098 | CONFIG_FONT_8x8=y | 1146 | CONFIG_FONT_8x8=y |
1099 | CONFIG_FONT_8x16=y | 1147 | CONFIG_FONT_8x16=y |
1100 | |||
1101 | # | ||
1102 | # Logo configuration | ||
1103 | # | ||
1104 | CONFIG_LOGO=y | 1148 | CONFIG_LOGO=y |
1105 | CONFIG_LOGO_LINUX_MONO=y | 1149 | CONFIG_LOGO_LINUX_MONO=y |
1106 | CONFIG_LOGO_LINUX_VGA16=y | 1150 | CONFIG_LOGO_LINUX_VGA16=y |
1107 | CONFIG_LOGO_LINUX_CLUT224=y | 1151 | CONFIG_LOGO_LINUX_CLUT224=y |
1108 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
1109 | 1152 | ||
1110 | # | 1153 | # |
1111 | # Sound | 1154 | # Sound |
@@ -1211,6 +1254,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1211 | # | 1254 | # |
1212 | CONFIG_SND_USB_AUDIO=y | 1255 | CONFIG_SND_USB_AUDIO=y |
1213 | CONFIG_SND_USB_USX2Y=y | 1256 | CONFIG_SND_USB_USX2Y=y |
1257 | # CONFIG_SND_USB_CAIAQ is not set | ||
1214 | 1258 | ||
1215 | # | 1259 | # |
1216 | # PCMCIA devices | 1260 | # PCMCIA devices |
@@ -1219,6 +1263,11 @@ CONFIG_SND_USB_USX2Y=y | |||
1219 | # CONFIG_SND_PDAUDIOCF is not set | 1263 | # CONFIG_SND_PDAUDIOCF is not set |
1220 | 1264 | ||
1221 | # | 1265 | # |
1266 | # System on Chip audio support | ||
1267 | # | ||
1268 | # CONFIG_SND_SOC is not set | ||
1269 | |||
1270 | # | ||
1222 | # Open Sound System | 1271 | # Open Sound System |
1223 | # | 1272 | # |
1224 | # CONFIG_SOUND_PRIME is not set | 1273 | # CONFIG_SOUND_PRIME is not set |
@@ -1227,6 +1276,15 @@ CONFIG_SND_USB_USX2Y=y | |||
1227 | # HID Devices | 1276 | # HID Devices |
1228 | # | 1277 | # |
1229 | CONFIG_HID=y | 1278 | CONFIG_HID=y |
1279 | # CONFIG_HID_DEBUG is not set | ||
1280 | |||
1281 | # | ||
1282 | # USB Input Devices | ||
1283 | # | ||
1284 | CONFIG_USB_HID=y | ||
1285 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1286 | # CONFIG_HID_FF is not set | ||
1287 | # CONFIG_USB_HIDDEV is not set | ||
1230 | 1288 | ||
1231 | # | 1289 | # |
1232 | # USB support | 1290 | # USB support |
@@ -1241,7 +1299,7 @@ CONFIG_USB=y | |||
1241 | # Miscellaneous USB options | 1299 | # Miscellaneous USB options |
1242 | # | 1300 | # |
1243 | CONFIG_USB_DEVICEFS=y | 1301 | CONFIG_USB_DEVICEFS=y |
1244 | # CONFIG_USB_BANDWIDTH is not set | 1302 | # CONFIG_USB_DEVICE_CLASS is not set |
1245 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1303 | # CONFIG_USB_DYNAMIC_MINORS is not set |
1246 | # CONFIG_USB_OTG is not set | 1304 | # CONFIG_USB_OTG is not set |
1247 | 1305 | ||
@@ -1252,9 +1310,15 @@ CONFIG_USB_EHCI_HCD=y | |||
1252 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 1310 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
1253 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1311 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1254 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1312 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1313 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
1255 | # CONFIG_USB_ISP116X_HCD is not set | 1314 | # CONFIG_USB_ISP116X_HCD is not set |
1256 | CONFIG_USB_OHCI_HCD=y | 1315 | CONFIG_USB_OHCI_HCD=y |
1257 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | 1316 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
1317 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | ||
1318 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set | ||
1319 | CONFIG_USB_OHCI_HCD_PCI=y | ||
1320 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | ||
1321 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | ||
1258 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1322 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1259 | CONFIG_USB_UHCI_HCD=y | 1323 | CONFIG_USB_UHCI_HCD=y |
1260 | CONFIG_USB_SL811_HCD=y | 1324 | CONFIG_USB_SL811_HCD=y |
@@ -1289,41 +1353,11 @@ CONFIG_USB_STORAGE=y | |||
1289 | CONFIG_USB_LIBUSUAL=y | 1353 | CONFIG_USB_LIBUSUAL=y |
1290 | 1354 | ||
1291 | # | 1355 | # |
1292 | # USB Input Devices | ||
1293 | # | ||
1294 | CONFIG_USB_HID=y | ||
1295 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
1296 | # CONFIG_HID_FF is not set | ||
1297 | # CONFIG_USB_HIDDEV is not set | ||
1298 | # CONFIG_USB_AIPTEK is not set | ||
1299 | # CONFIG_USB_WACOM is not set | ||
1300 | # CONFIG_USB_ACECAD is not set | ||
1301 | # CONFIG_USB_KBTAB is not set | ||
1302 | # CONFIG_USB_POWERMATE is not set | ||
1303 | # CONFIG_USB_TOUCHSCREEN is not set | ||
1304 | # CONFIG_USB_YEALINK is not set | ||
1305 | # CONFIG_USB_XPAD is not set | ||
1306 | # CONFIG_USB_ATI_REMOTE is not set | ||
1307 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
1308 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
1309 | # CONFIG_USB_APPLETOUCH is not set | ||
1310 | |||
1311 | # | ||
1312 | # USB Imaging devices | 1356 | # USB Imaging devices |
1313 | # | 1357 | # |
1314 | # CONFIG_USB_MDC800 is not set | 1358 | # CONFIG_USB_MDC800 is not set |
1315 | # CONFIG_USB_MICROTEK is not set | 1359 | # CONFIG_USB_MICROTEK is not set |
1316 | 1360 | # CONFIG_USB_MON is not set | |
1317 | # | ||
1318 | # USB Network Adapters | ||
1319 | # | ||
1320 | # CONFIG_USB_CATC is not set | ||
1321 | # CONFIG_USB_KAWETH is not set | ||
1322 | # CONFIG_USB_PEGASUS is not set | ||
1323 | # CONFIG_USB_RTL8150 is not set | ||
1324 | # CONFIG_USB_USBNET_MII is not set | ||
1325 | # CONFIG_USB_USBNET is not set | ||
1326 | CONFIG_USB_MON=y | ||
1327 | 1361 | ||
1328 | # | 1362 | # |
1329 | # USB port drivers | 1363 | # USB port drivers |
@@ -1344,6 +1378,7 @@ CONFIG_USB_MON=y | |||
1344 | # CONFIG_USB_RIO500 is not set | 1378 | # CONFIG_USB_RIO500 is not set |
1345 | # CONFIG_USB_LEGOTOWER is not set | 1379 | # CONFIG_USB_LEGOTOWER is not set |
1346 | # CONFIG_USB_LCD is not set | 1380 | # CONFIG_USB_LCD is not set |
1381 | # CONFIG_USB_BERRY_CHARGE is not set | ||
1347 | # CONFIG_USB_LED is not set | 1382 | # CONFIG_USB_LED is not set |
1348 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1383 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1349 | # CONFIG_USB_CYTHERM is not set | 1384 | # CONFIG_USB_CYTHERM is not set |
@@ -1354,6 +1389,7 @@ CONFIG_USB_MON=y | |||
1354 | # CONFIG_USB_SISUSBVGA is not set | 1389 | # CONFIG_USB_SISUSBVGA is not set |
1355 | # CONFIG_USB_LD is not set | 1390 | # CONFIG_USB_LD is not set |
1356 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1391 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1392 | # CONFIG_USB_IOWARRIOR is not set | ||
1357 | # CONFIG_USB_TEST is not set | 1393 | # CONFIG_USB_TEST is not set |
1358 | 1394 | ||
1359 | # | 1395 | # |
@@ -1364,10 +1400,6 @@ CONFIG_USB_MON=y | |||
1364 | # USB Gadget Support | 1400 | # USB Gadget Support |
1365 | # | 1401 | # |
1366 | # CONFIG_USB_GADGET is not set | 1402 | # CONFIG_USB_GADGET is not set |
1367 | |||
1368 | # | ||
1369 | # MMC/SD Card support | ||
1370 | # | ||
1371 | # CONFIG_MMC is not set | 1403 | # CONFIG_MMC is not set |
1372 | 1404 | ||
1373 | # | 1405 | # |
@@ -1408,24 +1440,37 @@ CONFIG_RTC_INTF_SYSFS=y | |||
1408 | CONFIG_RTC_INTF_PROC=y | 1440 | CONFIG_RTC_INTF_PROC=y |
1409 | CONFIG_RTC_INTF_DEV=y | 1441 | CONFIG_RTC_INTF_DEV=y |
1410 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 1442 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
1443 | # CONFIG_RTC_DRV_TEST is not set | ||
1411 | 1444 | ||
1412 | # | 1445 | # |
1413 | # RTC drivers | 1446 | # I2C RTC drivers |
1414 | # | 1447 | # |
1415 | # CONFIG_RTC_DRV_X1205 is not set | ||
1416 | CONFIG_RTC_DRV_DS1307=y | 1448 | CONFIG_RTC_DRV_DS1307=y |
1417 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1418 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1419 | # CONFIG_RTC_DRV_DS1672 is not set | 1449 | # CONFIG_RTC_DRV_DS1672 is not set |
1420 | # CONFIG_RTC_DRV_DS1742 is not set | 1450 | # CONFIG_RTC_DRV_MAX6900 is not set |
1451 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1452 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1453 | # CONFIG_RTC_DRV_X1205 is not set | ||
1421 | # CONFIG_RTC_DRV_PCF8563 is not set | 1454 | # CONFIG_RTC_DRV_PCF8563 is not set |
1422 | # CONFIG_RTC_DRV_PCF8583 is not set | 1455 | # CONFIG_RTC_DRV_PCF8583 is not set |
1423 | # CONFIG_RTC_DRV_RS5C372 is not set | 1456 | |
1457 | # | ||
1458 | # SPI RTC drivers | ||
1459 | # | ||
1460 | |||
1461 | # | ||
1462 | # Platform RTC drivers | ||
1463 | # | ||
1464 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1465 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1424 | # CONFIG_RTC_DRV_M48T86 is not set | 1466 | # CONFIG_RTC_DRV_M48T86 is not set |
1425 | # CONFIG_RTC_DRV_TEST is not set | ||
1426 | # CONFIG_RTC_DRV_V3020 is not set | 1467 | # CONFIG_RTC_DRV_V3020 is not set |
1427 | 1468 | ||
1428 | # | 1469 | # |
1470 | # on-CPU RTC drivers | ||
1471 | # | ||
1472 | |||
1473 | # | ||
1429 | # DMA Engine support | 1474 | # DMA Engine support |
1430 | # | 1475 | # |
1431 | # CONFIG_DMA_ENGINE is not set | 1476 | # CONFIG_DMA_ENGINE is not set |
@@ -1439,10 +1484,6 @@ CONFIG_RTC_DRV_DS1307=y | |||
1439 | # | 1484 | # |
1440 | 1485 | ||
1441 | # | 1486 | # |
1442 | # Virtualization | ||
1443 | # | ||
1444 | |||
1445 | # | ||
1446 | # File systems | 1487 | # File systems |
1447 | # | 1488 | # |
1448 | CONFIG_EXT2_FS=y | 1489 | CONFIG_EXT2_FS=y |
@@ -1466,7 +1507,8 @@ CONFIG_FS_POSIX_ACL=y | |||
1466 | # CONFIG_OCFS2_FS is not set | 1507 | # CONFIG_OCFS2_FS is not set |
1467 | # CONFIG_MINIX_FS is not set | 1508 | # CONFIG_MINIX_FS is not set |
1468 | # CONFIG_ROMFS_FS is not set | 1509 | # CONFIG_ROMFS_FS is not set |
1469 | # CONFIG_INOTIFY is not set | 1510 | CONFIG_INOTIFY=y |
1511 | CONFIG_INOTIFY_USER=y | ||
1470 | # CONFIG_QUOTA is not set | 1512 | # CONFIG_QUOTA is not set |
1471 | CONFIG_DNOTIFY=y | 1513 | CONFIG_DNOTIFY=y |
1472 | CONFIG_AUTOFS_FS=y | 1514 | CONFIG_AUTOFS_FS=y |
@@ -1538,6 +1580,7 @@ CONFIG_LOCKD=y | |||
1538 | CONFIG_LOCKD_V4=y | 1580 | CONFIG_LOCKD_V4=y |
1539 | CONFIG_NFS_COMMON=y | 1581 | CONFIG_NFS_COMMON=y |
1540 | CONFIG_SUNRPC=y | 1582 | CONFIG_SUNRPC=y |
1583 | # CONFIG_SUNRPC_BIND34 is not set | ||
1541 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1584 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1542 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1585 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1543 | # CONFIG_SMB_FS is not set | 1586 | # CONFIG_SMB_FS is not set |
@@ -1567,6 +1610,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1567 | # CONFIG_SUN_PARTITION is not set | 1610 | # CONFIG_SUN_PARTITION is not set |
1568 | # CONFIG_KARMA_PARTITION is not set | 1611 | # CONFIG_KARMA_PARTITION is not set |
1569 | # CONFIG_EFI_PARTITION is not set | 1612 | # CONFIG_EFI_PARTITION is not set |
1613 | # CONFIG_SYSV68_PARTITION is not set | ||
1570 | 1614 | ||
1571 | # | 1615 | # |
1572 | # Native Language Support | 1616 | # Native Language Support |
@@ -1616,6 +1660,8 @@ CONFIG_NLS_ISO8859_1=y | |||
1616 | # Distributed Lock Manager | 1660 | # Distributed Lock Manager |
1617 | # | 1661 | # |
1618 | # CONFIG_DLM is not set | 1662 | # CONFIG_DLM is not set |
1663 | # CONFIG_UCC_SLOW is not set | ||
1664 | # CONFIG_UCC_FAST is not set | ||
1619 | 1665 | ||
1620 | # | 1666 | # |
1621 | # Library routines | 1667 | # Library routines |
@@ -1623,10 +1669,13 @@ CONFIG_NLS_ISO8859_1=y | |||
1623 | CONFIG_BITREVERSE=y | 1669 | CONFIG_BITREVERSE=y |
1624 | CONFIG_CRC_CCITT=y | 1670 | CONFIG_CRC_CCITT=y |
1625 | # CONFIG_CRC16 is not set | 1671 | # CONFIG_CRC16 is not set |
1672 | # CONFIG_CRC_ITU_T is not set | ||
1626 | CONFIG_CRC32=y | 1673 | CONFIG_CRC32=y |
1627 | # CONFIG_LIBCRC32C is not set | 1674 | # CONFIG_LIBCRC32C is not set |
1628 | CONFIG_PLIST=y | 1675 | CONFIG_PLIST=y |
1629 | CONFIG_IOMAP_COPY=y | 1676 | CONFIG_HAS_IOMEM=y |
1677 | CONFIG_HAS_IOPORT=y | ||
1678 | CONFIG_HAS_DMA=y | ||
1630 | 1679 | ||
1631 | # | 1680 | # |
1632 | # Instrumentation Support | 1681 | # Instrumentation Support |
@@ -1645,32 +1694,34 @@ CONFIG_MAGIC_SYSRQ=y | |||
1645 | # CONFIG_DEBUG_FS is not set | 1694 | # CONFIG_DEBUG_FS is not set |
1646 | # CONFIG_HEADERS_CHECK is not set | 1695 | # CONFIG_HEADERS_CHECK is not set |
1647 | CONFIG_DEBUG_KERNEL=y | 1696 | CONFIG_DEBUG_KERNEL=y |
1648 | CONFIG_LOG_BUF_SHIFT=17 | 1697 | # CONFIG_DEBUG_SHIRQ is not set |
1649 | CONFIG_DETECT_SOFTLOCKUP=y | 1698 | CONFIG_DETECT_SOFTLOCKUP=y |
1650 | # CONFIG_SCHEDSTATS is not set | 1699 | # CONFIG_SCHEDSTATS is not set |
1700 | # CONFIG_TIMER_STATS is not set | ||
1651 | # CONFIG_DEBUG_SLAB is not set | 1701 | # CONFIG_DEBUG_SLAB is not set |
1652 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1702 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1653 | # CONFIG_RT_MUTEX_TESTER is not set | 1703 | # CONFIG_RT_MUTEX_TESTER is not set |
1654 | # CONFIG_DEBUG_SPINLOCK is not set | 1704 | # CONFIG_DEBUG_SPINLOCK is not set |
1655 | # CONFIG_DEBUG_MUTEXES is not set | 1705 | # CONFIG_DEBUG_MUTEXES is not set |
1656 | # CONFIG_DEBUG_RWSEMS is not set | ||
1657 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1706 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1658 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1707 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1659 | # CONFIG_DEBUG_KOBJECT is not set | 1708 | # CONFIG_DEBUG_KOBJECT is not set |
1660 | CONFIG_DEBUG_BUGVERBOSE=y | 1709 | CONFIG_DEBUG_BUGVERBOSE=y |
1661 | CONFIG_DEBUG_INFO=y | 1710 | # CONFIG_DEBUG_INFO is not set |
1662 | # CONFIG_DEBUG_VM is not set | 1711 | # CONFIG_DEBUG_VM is not set |
1663 | # CONFIG_DEBUG_LIST is not set | 1712 | # CONFIG_DEBUG_LIST is not set |
1664 | CONFIG_FORCED_INLINING=y | 1713 | # CONFIG_FORCED_INLINING is not set |
1665 | # CONFIG_RCU_TORTURE_TEST is not set | 1714 | # CONFIG_RCU_TORTURE_TEST is not set |
1715 | # CONFIG_FAULT_INJECTION is not set | ||
1666 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1716 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1667 | # CONFIG_DEBUG_STACK_USAGE is not set | 1717 | # CONFIG_DEBUG_STACK_USAGE is not set |
1718 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1668 | CONFIG_DEBUGGER=y | 1719 | CONFIG_DEBUGGER=y |
1669 | CONFIG_XMON=y | 1720 | CONFIG_XMON=y |
1670 | CONFIG_XMON_DEFAULT=y | 1721 | CONFIG_XMON_DEFAULT=y |
1671 | CONFIG_XMON_DISASSEMBLY=y | 1722 | CONFIG_XMON_DISASSEMBLY=y |
1672 | # CONFIG_IRQSTACKS is not set | 1723 | # CONFIG_IRQSTACKS is not set |
1673 | CONFIG_BOOTX_TEXT=y | 1724 | # CONFIG_BOOTX_TEXT is not set |
1674 | # CONFIG_PPC_EARLY_DEBUG is not set | 1725 | # CONFIG_PPC_EARLY_DEBUG is not set |
1675 | 1726 | ||
1676 | # | 1727 | # |
@@ -1700,8 +1751,11 @@ CONFIG_CRYPTO_SHA1=y | |||
1700 | # CONFIG_CRYPTO_GF128MUL is not set | 1751 | # CONFIG_CRYPTO_GF128MUL is not set |
1701 | CONFIG_CRYPTO_ECB=m | 1752 | CONFIG_CRYPTO_ECB=m |
1702 | CONFIG_CRYPTO_CBC=y | 1753 | CONFIG_CRYPTO_CBC=y |
1754 | CONFIG_CRYPTO_PCBC=m | ||
1703 | # CONFIG_CRYPTO_LRW is not set | 1755 | # CONFIG_CRYPTO_LRW is not set |
1756 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1704 | CONFIG_CRYPTO_DES=y | 1757 | CONFIG_CRYPTO_DES=y |
1758 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1705 | # CONFIG_CRYPTO_BLOWFISH is not set | 1759 | # CONFIG_CRYPTO_BLOWFISH is not set |
1706 | # CONFIG_CRYPTO_TWOFISH is not set | 1760 | # CONFIG_CRYPTO_TWOFISH is not set |
1707 | # CONFIG_CRYPTO_SERPENT is not set | 1761 | # CONFIG_CRYPTO_SERPENT is not set |
@@ -1715,6 +1769,7 @@ CONFIG_CRYPTO_DES=y | |||
1715 | # CONFIG_CRYPTO_DEFLATE is not set | 1769 | # CONFIG_CRYPTO_DEFLATE is not set |
1716 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1770 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1717 | # CONFIG_CRYPTO_CRC32C is not set | 1771 | # CONFIG_CRYPTO_CRC32C is not set |
1772 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1718 | # CONFIG_CRYPTO_TEST is not set | 1773 | # CONFIG_CRYPTO_TEST is not set |
1719 | 1774 | ||
1720 | # | 1775 | # |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 9cb24d20f0f9..6ef87fb90b8e 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -836,7 +836,7 @@ static struct cpu_spec cpu_specs[] = { | |||
836 | .pvr_mask = 0xffff0000, | 836 | .pvr_mask = 0xffff0000, |
837 | .pvr_value = 0x80040000, | 837 | .pvr_value = 0x80040000, |
838 | .cpu_name = "7448", | 838 | .cpu_name = "7448", |
839 | .cpu_features = CPU_FTRS_7447A, | 839 | .cpu_features = CPU_FTRS_7448, |
840 | .cpu_user_features = COMMON_USER | | 840 | .cpu_user_features = COMMON_USER | |
841 | PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE, | 841 | PPC_FEATURE_HAS_ALTIVEC_COMP | PPC_FEATURE_PPC_LE, |
842 | .icache_bsize = 32, | 842 | .icache_bsize = 32, |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index c29d1652a421..4074c0b31453 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -596,7 +596,11 @@ fast_exception_return: | |||
596 | mr r12,r4 /* restart at exc_exit_restart */ | 596 | mr r12,r4 /* restart at exc_exit_restart */ |
597 | b 2b | 597 | b 2b |
598 | 598 | ||
599 | .comm fee_restarts,4 | 599 | .section .bss |
600 | .align 2 | ||
601 | fee_restarts: | ||
602 | .space 4 | ||
603 | .previous | ||
600 | 604 | ||
601 | /* aargh, a nonrecoverable interrupt, panic */ | 605 | /* aargh, a nonrecoverable interrupt, panic */ |
602 | /* aargh, we don't know which trap this is */ | 606 | /* aargh, we don't know which trap this is */ |
@@ -851,7 +855,11 @@ load_dbcr0: | |||
851 | mtspr SPRN_DBSR,r11 /* clear all pending debug events */ | 855 | mtspr SPRN_DBSR,r11 /* clear all pending debug events */ |
852 | blr | 856 | blr |
853 | 857 | ||
854 | .comm global_dbcr0,8 | 858 | .section .bss |
859 | .align 4 | ||
860 | global_dbcr0: | ||
861 | .space 8 | ||
862 | .previous | ||
855 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ | 863 | #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */ |
856 | 864 | ||
857 | do_work: /* r10 contains MSR_KERNEL here */ | 865 | do_work: /* r10 contains MSR_KERNEL here */ |
@@ -926,7 +934,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_601) | |||
926 | /* shouldn't return */ | 934 | /* shouldn't return */ |
927 | b 4b | 935 | b 4b |
928 | 936 | ||
929 | .comm ee_restarts,4 | 937 | .section .bss |
938 | .align 2 | ||
939 | ee_restarts: | ||
940 | .space 4 | ||
941 | .previous | ||
930 | 942 | ||
931 | /* | 943 | /* |
932 | * PROM code for specific machines follows. Put it | 944 | * PROM code for specific machines follows. Put it |
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c index 84c34d979a88..d501c23e5159 100644 --- a/arch/powerpc/kernel/of_platform.c +++ b/arch/powerpc/kernel/of_platform.c | |||
@@ -427,11 +427,13 @@ static int __devinit of_pci_phb_probe(struct of_device *dev, | |||
427 | /* Process "ranges" property */ | 427 | /* Process "ranges" property */ |
428 | pci_process_bridge_OF_ranges(phb, dev->node, 0); | 428 | pci_process_bridge_OF_ranges(phb, dev->node, 0); |
429 | 429 | ||
430 | /* Setup IO space. | 430 | /* Setup IO space. We use the non-dynamic version of that code here, |
431 | * This will not work properly for ISA IOs, something needs to be done | 431 | * which doesn't quite support unplugging. Next kernel release will |
432 | * about it if we ever generalize that way of probing PCI brigdes | 432 | * have a better fix for this. |
433 | * Note also that we don't do ISA, this will also be fixed with a | ||
434 | * more massive rework. | ||
433 | */ | 435 | */ |
434 | pci_setup_phb_io_dynamic(phb, 0); | 436 | pci_setup_phb_io(phb, 0); |
435 | 437 | ||
436 | /* Init pci_dn data structures */ | 438 | /* Init pci_dn data structures */ |
437 | pci_devs_phb_init_dynamic(phb); | 439 | pci_devs_phb_init_dynamic(phb); |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index b0409e19b1c1..249cca27a9b8 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -41,6 +41,7 @@ | |||
41 | 41 | ||
42 | unsigned long pci_probe_only = 1; | 42 | unsigned long pci_probe_only = 1; |
43 | int pci_assign_all_buses = 0; | 43 | int pci_assign_all_buses = 0; |
44 | static int pci_initial_scan_done; | ||
44 | 45 | ||
45 | static void fixup_resource(struct resource *res, struct pci_dev *dev); | 46 | static void fixup_resource(struct resource *res, struct pci_dev *dev); |
46 | static void do_bus_setup(struct pci_bus *bus); | 47 | static void do_bus_setup(struct pci_bus *bus); |
@@ -604,6 +605,8 @@ static int __init pcibios_init(void) | |||
604 | /* map in PCI I/O space */ | 605 | /* map in PCI I/O space */ |
605 | phbs_remap_io(); | 606 | phbs_remap_io(); |
606 | 607 | ||
608 | pci_initial_scan_done = 1; | ||
609 | |||
607 | printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); | 610 | printk(KERN_DEBUG "PCI: Probing PCI hardware done\n"); |
608 | 611 | ||
609 | return 0; | 612 | return 0; |
@@ -1042,13 +1045,16 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose, | |||
1042 | } | 1045 | } |
1043 | } | 1046 | } |
1044 | 1047 | ||
1045 | void __init pci_setup_phb_io(struct pci_controller *hose, int primary) | 1048 | void __devinit pci_setup_phb_io(struct pci_controller *hose, int primary) |
1046 | { | 1049 | { |
1047 | unsigned long size = hose->pci_io_size; | 1050 | unsigned long size = hose->pci_io_size; |
1048 | unsigned long io_virt_offset; | 1051 | unsigned long io_virt_offset; |
1049 | struct resource *res; | 1052 | struct resource *res; |
1050 | struct device_node *isa_dn; | 1053 | struct device_node *isa_dn; |
1051 | 1054 | ||
1055 | if (size == 0) | ||
1056 | return; | ||
1057 | |||
1052 | hose->io_base_virt = reserve_phb_iospace(size); | 1058 | hose->io_base_virt = reserve_phb_iospace(size); |
1053 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", | 1059 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", |
1054 | hose->global_number, hose->io_base_phys, | 1060 | hose->global_number, hose->io_base_phys, |
@@ -1069,6 +1075,15 @@ void __init pci_setup_phb_io(struct pci_controller *hose, int primary) | |||
1069 | res = &hose->io_resource; | 1075 | res = &hose->io_resource; |
1070 | res->start += io_virt_offset; | 1076 | res->start += io_virt_offset; |
1071 | res->end += io_virt_offset; | 1077 | res->end += io_virt_offset; |
1078 | |||
1079 | /* If this is called after the initial PCI scan, then we need to | ||
1080 | * proceed to IO mappings now | ||
1081 | */ | ||
1082 | if (pci_initial_scan_done) | ||
1083 | __ioremap_explicit(hose->io_base_phys, | ||
1084 | (unsigned long)hose->io_base_virt, | ||
1085 | hose->pci_io_size, | ||
1086 | _PAGE_NO_CACHE | _PAGE_GUARDED); | ||
1072 | } | 1087 | } |
1073 | 1088 | ||
1074 | void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, | 1089 | void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, |
@@ -1078,6 +1093,9 @@ void __devinit pci_setup_phb_io_dynamic(struct pci_controller *hose, | |||
1078 | unsigned long io_virt_offset; | 1093 | unsigned long io_virt_offset; |
1079 | struct resource *res; | 1094 | struct resource *res; |
1080 | 1095 | ||
1096 | if (size == 0) | ||
1097 | return; | ||
1098 | |||
1081 | hose->io_base_virt = __ioremap(hose->io_base_phys, size, | 1099 | hose->io_base_virt = __ioremap(hose->io_base_phys, size, |
1082 | _PAGE_NO_CACHE | _PAGE_GUARDED); | 1100 | _PAGE_NO_CACHE | _PAGE_GUARDED); |
1083 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", | 1101 | DBG("phb%d io_base_phys 0x%lx io_base_virt 0x%lx\n", |
@@ -1106,6 +1124,9 @@ static int get_bus_io_range(struct pci_bus *bus, unsigned long *start_phys, | |||
1106 | /* Root Bus */ | 1124 | /* Root Bus */ |
1107 | res = &hose->io_resource; | 1125 | res = &hose->io_resource; |
1108 | 1126 | ||
1127 | if (res->end == 0 && res->start == 0) | ||
1128 | return 1; | ||
1129 | |||
1109 | *start_virt = pci_io_base + res->start; | 1130 | *start_virt = pci_io_base + res->start; |
1110 | *start_phys = *start_virt + hose->io_base_phys | 1131 | *start_phys = *start_virt + hose->io_base_phys |
1111 | - (unsigned long) hose->io_base_virt; | 1132 | - (unsigned long) hose->io_base_virt; |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index c065b5550368..066a6a7a25b8 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -1472,6 +1472,11 @@ static int of_finish_dynamic_node(struct device_node *node) | |||
1472 | node->name = of_get_property(node, "name", NULL); | 1472 | node->name = of_get_property(node, "name", NULL); |
1473 | node->type = of_get_property(node, "device_type", NULL); | 1473 | node->type = of_get_property(node, "device_type", NULL); |
1474 | 1474 | ||
1475 | if (!node->name) | ||
1476 | node->name = "<NULL>"; | ||
1477 | if (!node->type) | ||
1478 | node->type = "<NULL>"; | ||
1479 | |||
1475 | if (!parent) { | 1480 | if (!parent) { |
1476 | err = -ENODEV; | 1481 | err = -ENODEV; |
1477 | goto out; | 1482 | goto out; |
diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c index 190b7ed1dbfb..f2e3bc714d76 100644 --- a/arch/powerpc/kernel/rtas-proc.c +++ b/arch/powerpc/kernel/rtas-proc.c | |||
@@ -379,7 +379,7 @@ static ssize_t ppc_rtas_progress_write(struct file *file, | |||
379 | /* ****************************************************************** */ | 379 | /* ****************************************************************** */ |
380 | static int ppc_rtas_progress_show(struct seq_file *m, void *v) | 380 | static int ppc_rtas_progress_show(struct seq_file *m, void *v) |
381 | { | 381 | { |
382 | if (progress_led) | 382 | if (progress_led[0]) |
383 | seq_printf(m, "%s\n", progress_led); | 383 | seq_printf(m, "%s\n", progress_led); |
384 | return 0; | 384 | return 0; |
385 | } | 385 | } |
diff --git a/arch/powerpc/lib/rheap.c b/arch/powerpc/lib/rheap.c index b2f6dcc59600..180ee2933ab9 100644 --- a/arch/powerpc/lib/rheap.c +++ b/arch/powerpc/lib/rheap.c | |||
@@ -468,25 +468,19 @@ unsigned long rh_alloc_align(rh_info_t * info, int size, int alignment, const ch | |||
468 | if (blk->size == size) { | 468 | if (blk->size == size) { |
469 | /* Move from free list to taken list */ | 469 | /* Move from free list to taken list */ |
470 | list_del(&blk->list); | 470 | list_del(&blk->list); |
471 | blk->owner = owner; | 471 | newblk = blk; |
472 | start = blk->start; | 472 | } else { |
473 | 473 | newblk = get_slot(info); | |
474 | attach_taken_block(info, blk); | 474 | newblk->start = blk->start; |
475 | newblk->size = size; | ||
475 | 476 | ||
476 | return start; | 477 | /* blk still in free list, with updated start, size */ |
478 | blk->start += size; | ||
479 | blk->size -= size; | ||
477 | } | 480 | } |
478 | 481 | ||
479 | newblk = get_slot(info); | ||
480 | newblk->start = blk->start; | ||
481 | newblk->size = size; | ||
482 | newblk->owner = owner; | 482 | newblk->owner = owner; |
483 | |||
484 | /* blk still in free list, with updated start, size */ | ||
485 | blk->start += size; | ||
486 | blk->size -= size; | ||
487 | |||
488 | start = newblk->start; | 483 | start = newblk->start; |
489 | |||
490 | attach_taken_block(info, newblk); | 484 | attach_taken_block(info, newblk); |
491 | 485 | ||
492 | /* for larger alignment return fixed up pointer */ | 486 | /* for larger alignment return fixed up pointer */ |
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S index ddceefc06ecc..7f830a4888d6 100644 --- a/arch/powerpc/mm/hash_low_32.S +++ b/arch/powerpc/mm/hash_low_32.S | |||
@@ -30,7 +30,11 @@ | |||
30 | #include <asm/asm-offsets.h> | 30 | #include <asm/asm-offsets.h> |
31 | 31 | ||
32 | #ifdef CONFIG_SMP | 32 | #ifdef CONFIG_SMP |
33 | .comm mmu_hash_lock,4 | 33 | .section .bss |
34 | .align 2 | ||
35 | .globl mmu_hash_lock | ||
36 | mmu_hash_lock: | ||
37 | .space 4 | ||
34 | #endif /* CONFIG_SMP */ | 38 | #endif /* CONFIG_SMP */ |
35 | 39 | ||
36 | /* | 40 | /* |
@@ -455,9 +459,15 @@ found_slot: | |||
455 | sync /* make sure pte updates get to memory */ | 459 | sync /* make sure pte updates get to memory */ |
456 | blr | 460 | blr |
457 | 461 | ||
458 | .comm next_slot,4 | 462 | .section .bss |
459 | .comm primary_pteg_full,4 | 463 | .align 2 |
460 | .comm htab_hash_searches,4 | 464 | next_slot: |
465 | .space 4 | ||
466 | primary_pteg_full: | ||
467 | .space 4 | ||
468 | htab_hash_searches: | ||
469 | .space 4 | ||
470 | .previous | ||
461 | 471 | ||
462 | /* | 472 | /* |
463 | * Flush the entry for a particular page from the hash table. | 473 | * Flush the entry for a particular page from the hash table. |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index 028ba4ed03d2..4f2f4534a9d8 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -430,7 +430,7 @@ static void __init htab_finish_init(void) | |||
430 | make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); | 430 | make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); |
431 | make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); | 431 | make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); |
432 | make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); | 432 | make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); |
433 | #endif /* CONFIG_PPC_64K_PAGES */ | 433 | #endif /* CONFIG_PPC_HAS_HASH_64K */ |
434 | 434 | ||
435 | make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); | 435 | make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); |
436 | make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); | 436 | make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); |
@@ -837,7 +837,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, | |||
837 | if (mm->context.user_psize == MMU_PAGE_64K) | 837 | if (mm->context.user_psize == MMU_PAGE_64K) |
838 | __hash_page_64K(ea, access, vsid, ptep, trap, local); | 838 | __hash_page_64K(ea, access, vsid, ptep, trap, local); |
839 | else | 839 | else |
840 | #endif /* CONFIG_PPC_64K_PAGES */ | 840 | #endif /* CONFIG_PPC_HAS_HASH_64K */ |
841 | __hash_page_4K(ea, access, vsid, ptep, trap, local); | 841 | __hash_page_4K(ea, access, vsid, ptep, trap, local); |
842 | 842 | ||
843 | local_irq_restore(flags); | 843 | local_irq_restore(flags); |
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index 1d443407423c..ad6e135bf212 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c | |||
@@ -322,6 +322,8 @@ EXPORT_SYMBOL(__ioremap); | |||
322 | EXPORT_SYMBOL(iounmap); | 322 | EXPORT_SYMBOL(iounmap); |
323 | EXPORT_SYMBOL(__iounmap); | 323 | EXPORT_SYMBOL(__iounmap); |
324 | 324 | ||
325 | static DEFINE_SPINLOCK(phb_io_lock); | ||
326 | |||
325 | void __iomem * reserve_phb_iospace(unsigned long size) | 327 | void __iomem * reserve_phb_iospace(unsigned long size) |
326 | { | 328 | { |
327 | void __iomem *virt_addr; | 329 | void __iomem *virt_addr; |
@@ -329,8 +331,10 @@ void __iomem * reserve_phb_iospace(unsigned long size) | |||
329 | if (phbs_io_bot >= IMALLOC_BASE) | 331 | if (phbs_io_bot >= IMALLOC_BASE) |
330 | panic("reserve_phb_iospace(): phb io space overflow\n"); | 332 | panic("reserve_phb_iospace(): phb io space overflow\n"); |
331 | 333 | ||
334 | spin_lock(&phb_io_lock); | ||
332 | virt_addr = (void __iomem *) phbs_io_bot; | 335 | virt_addr = (void __iomem *) phbs_io_bot; |
333 | phbs_io_bot += size; | 336 | phbs_io_bot += size; |
337 | spin_unlock(&phb_io_lock); | ||
334 | 338 | ||
335 | return virt_addr; | 339 | return virt_addr; |
336 | } | 340 | } |
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index 8e66949e7c67..1b3e008fd148 100644 --- a/arch/powerpc/platforms/44x/Kconfig +++ b/arch/powerpc/platforms/44x/Kconfig | |||
@@ -38,7 +38,8 @@ config 440EP | |||
38 | 38 | ||
39 | config 440GP | 39 | config 440GP |
40 | bool | 40 | bool |
41 | select IBM_NEW_EMAC_ZMII | 41 | # Disabled until the new EMAC Driver is merged. |
42 | # select IBM_NEW_EMAC_ZMII | ||
42 | 43 | ||
43 | config 440GX | 44 | config 440GX |
44 | bool | 45 | bool |
diff --git a/arch/powerpc/platforms/44x/ebony.c b/arch/powerpc/platforms/44x/ebony.c index ad526eafc90b..5a7fec8d10d3 100644 --- a/arch/powerpc/platforms/44x/ebony.c +++ b/arch/powerpc/platforms/44x/ebony.c | |||
@@ -27,9 +27,9 @@ | |||
27 | #include "44x.h" | 27 | #include "44x.h" |
28 | 28 | ||
29 | static struct of_device_id ebony_of_bus[] = { | 29 | static struct of_device_id ebony_of_bus[] = { |
30 | { .type = "ibm,plb", }, | 30 | { .compatible = "ibm,plb4", }, |
31 | { .type = "ibm,opb", }, | 31 | { .compatible = "ibm,opb", }, |
32 | { .type = "ibm,ebc", }, | 32 | { .compatible = "ibm,ebc", }, |
33 | {}, | 33 | {}, |
34 | }; | 34 | }; |
35 | 35 | ||
diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c index 354b8dd2a2c1..6a0060a5f2ec 100644 --- a/arch/powerpc/platforms/iseries/viopath.c +++ b/arch/powerpc/platforms/iseries/viopath.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/wait.h> | 37 | #include <linux/wait.h> |
38 | #include <linux/seq_file.h> | 38 | #include <linux/seq_file.h> |
39 | #include <linux/interrupt.h> | 39 | #include <linux/interrupt.h> |
40 | #include <linux/completion.h> | ||
40 | 41 | ||
41 | #include <asm/system.h> | 42 | #include <asm/system.h> |
42 | #include <asm/uaccess.h> | 43 | #include <asm/uaccess.h> |
@@ -81,7 +82,7 @@ static void handleMonitorEvent(struct HvLpEvent *event); | |||
81 | * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... | 82 | * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... |
82 | */ | 83 | */ |
83 | struct alloc_parms { | 84 | struct alloc_parms { |
84 | struct semaphore sem; | 85 | struct completion done; |
85 | int number; | 86 | int number; |
86 | atomic_t wait_atomic; | 87 | atomic_t wait_atomic; |
87 | int used_wait_atomic; | 88 | int used_wait_atomic; |
@@ -115,7 +116,7 @@ static int proc_viopath_show(struct seq_file *m, void *v) | |||
115 | u16 vlanMap; | 116 | u16 vlanMap; |
116 | dma_addr_t handle; | 117 | dma_addr_t handle; |
117 | HvLpEvent_Rc hvrc; | 118 | HvLpEvent_Rc hvrc; |
118 | DECLARE_MUTEX_LOCKED(Semaphore); | 119 | DECLARE_COMPLETION(done); |
119 | struct device_node *node; | 120 | struct device_node *node; |
120 | const char *sysid; | 121 | const char *sysid; |
121 | 122 | ||
@@ -132,13 +133,13 @@ static int proc_viopath_show(struct seq_file *m, void *v) | |||
132 | HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck, | 133 | HvLpEvent_AckInd_DoAck, HvLpEvent_AckType_ImmediateAck, |
133 | viopath_sourceinst(viopath_hostLp), | 134 | viopath_sourceinst(viopath_hostLp), |
134 | viopath_targetinst(viopath_hostLp), | 135 | viopath_targetinst(viopath_hostLp), |
135 | (u64)(unsigned long)&Semaphore, VIOVERSION << 16, | 136 | (u64)(unsigned long)&done, VIOVERSION << 16, |
136 | ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0); | 137 | ((u64)handle) << 32, HW_PAGE_SIZE, 0, 0); |
137 | 138 | ||
138 | if (hvrc != HvLpEvent_Rc_Good) | 139 | if (hvrc != HvLpEvent_Rc_Good) |
139 | printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc); | 140 | printk(VIOPATH_KERN_WARN "hv error on op %d\n", (int)hvrc); |
140 | 141 | ||
141 | down(&Semaphore); | 142 | wait_for_completion(&done); |
142 | 143 | ||
143 | vlanMap = HvLpConfig_getVirtualLanIndexMap(); | 144 | vlanMap = HvLpConfig_getVirtualLanIndexMap(); |
144 | 145 | ||
@@ -353,7 +354,7 @@ static void handleConfig(struct HvLpEvent *event) | |||
353 | return; | 354 | return; |
354 | } | 355 | } |
355 | 356 | ||
356 | up((struct semaphore *)event->xCorrelationToken); | 357 | complete((struct completion *)event->xCorrelationToken); |
357 | } | 358 | } |
358 | 359 | ||
359 | /* | 360 | /* |
@@ -464,7 +465,7 @@ static void viopath_donealloc(void *parm, int number) | |||
464 | if (parmsp->used_wait_atomic) | 465 | if (parmsp->used_wait_atomic) |
465 | atomic_set(&parmsp->wait_atomic, 0); | 466 | atomic_set(&parmsp->wait_atomic, 0); |
466 | else | 467 | else |
467 | up(&parmsp->sem); | 468 | complete(&parmsp->done); |
468 | } | 469 | } |
469 | 470 | ||
470 | static int allocateEvents(HvLpIndex remoteLp, int numEvents) | 471 | static int allocateEvents(HvLpIndex remoteLp, int numEvents) |
@@ -476,7 +477,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents) | |||
476 | atomic_set(&parms.wait_atomic, 1); | 477 | atomic_set(&parms.wait_atomic, 1); |
477 | } else { | 478 | } else { |
478 | parms.used_wait_atomic = 0; | 479 | parms.used_wait_atomic = 0; |
479 | init_MUTEX_LOCKED(&parms.sem); | 480 | init_completion(&parms.done); |
480 | } | 481 | } |
481 | mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ | 482 | mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ |
482 | numEvents, &viopath_donealloc, &parms); | 483 | numEvents, &viopath_donealloc, &parms); |
@@ -484,7 +485,7 @@ static int allocateEvents(HvLpIndex remoteLp, int numEvents) | |||
484 | while (atomic_read(&parms.wait_atomic)) | 485 | while (atomic_read(&parms.wait_atomic)) |
485 | mb(); | 486 | mb(); |
486 | } else | 487 | } else |
487 | down(&parms.sem); | 488 | wait_for_completion(&parms.done); |
488 | return parms.number; | 489 | return parms.number; |
489 | } | 490 | } |
490 | 491 | ||
@@ -585,10 +586,10 @@ int viopath_close(HvLpIndex remoteLp, int subtype, int numReq) | |||
585 | spin_unlock_irqrestore(&statuslock, flags); | 586 | spin_unlock_irqrestore(&statuslock, flags); |
586 | 587 | ||
587 | parms.used_wait_atomic = 0; | 588 | parms.used_wait_atomic = 0; |
588 | init_MUTEX_LOCKED(&parms.sem); | 589 | init_completion(&parms.done); |
589 | mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, | 590 | mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, |
590 | numReq, &viopath_donealloc, &parms); | 591 | numReq, &viopath_donealloc, &parms); |
591 | down(&parms.sem); | 592 | wait_for_completion(&parms.done); |
592 | 593 | ||
593 | spin_lock_irqsave(&statuslock, flags); | 594 | spin_lock_irqsave(&statuslock, flags); |
594 | for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++) | 595 | for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++) |
diff --git a/arch/powerpc/platforms/pasemi/Kconfig b/arch/powerpc/platforms/pasemi/Kconfig index eb4dbc705b06..7c5076e38ea1 100644 --- a/arch/powerpc/platforms/pasemi/Kconfig +++ b/arch/powerpc/platforms/pasemi/Kconfig | |||
@@ -4,7 +4,6 @@ config PPC_PASEMI | |||
4 | default n | 4 | default n |
5 | select MPIC | 5 | select MPIC |
6 | select PPC_UDBG_16550 | 6 | select PPC_UDBG_16550 |
7 | select GENERIC_TBSYNC | ||
8 | select PPC_NATIVE | 7 | select PPC_NATIVE |
9 | help | 8 | help |
10 | This option enables support for PA Semi's PWRficient line | 9 | This option enables support for PA Semi's PWRficient line |
diff --git a/arch/powerpc/platforms/pseries/pseries.h b/arch/powerpc/platforms/pseries/pseries.h index 22bc01989749..2729d559fd91 100644 --- a/arch/powerpc/platforms/pseries/pseries.h +++ b/arch/powerpc/platforms/pseries/pseries.h | |||
@@ -21,8 +21,8 @@ extern int pSeries_machine_check_exception(struct pt_regs *regs); | |||
21 | extern void smp_init_pseries_mpic(void); | 21 | extern void smp_init_pseries_mpic(void); |
22 | extern void smp_init_pseries_xics(void); | 22 | extern void smp_init_pseries_xics(void); |
23 | #else | 23 | #else |
24 | static inline smp_init_pseries_mpic(void) { }; | 24 | static inline void smp_init_pseries_mpic(void) { }; |
25 | static inline smp_init_pseries_xics(void) { }; | 25 | static inline void smp_init_pseries_xics(void) { }; |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | #ifdef CONFIG_KEXEC | 28 | #ifdef CONFIG_KEXEC |
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 4fd2bec89916..75aad38179f0 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -1424,7 +1424,7 @@ unsigned int mpic_get_irq(void) | |||
1424 | void mpic_request_ipis(void) | 1424 | void mpic_request_ipis(void) |
1425 | { | 1425 | { |
1426 | struct mpic *mpic = mpic_primary; | 1426 | struct mpic *mpic = mpic_primary; |
1427 | int i; | 1427 | int i, err; |
1428 | static char *ipi_names[] = { | 1428 | static char *ipi_names[] = { |
1429 | "IPI0 (call function)", | 1429 | "IPI0 (call function)", |
1430 | "IPI1 (reschedule)", | 1430 | "IPI1 (reschedule)", |
@@ -1442,8 +1442,14 @@ void mpic_request_ipis(void) | |||
1442 | printk(KERN_ERR "Failed to map IPI %d\n", i); | 1442 | printk(KERN_ERR "Failed to map IPI %d\n", i); |
1443 | break; | 1443 | break; |
1444 | } | 1444 | } |
1445 | request_irq(vipi, mpic_ipi_action, IRQF_DISABLED|IRQF_PERCPU, | 1445 | err = request_irq(vipi, mpic_ipi_action, |
1446 | ipi_names[i], mpic); | 1446 | IRQF_DISABLED|IRQF_PERCPU, |
1447 | ipi_names[i], mpic); | ||
1448 | if (err) { | ||
1449 | printk(KERN_ERR "Request of irq %d for IPI %d failed\n", | ||
1450 | vipi, i); | ||
1451 | break; | ||
1452 | } | ||
1447 | } | 1453 | } |
1448 | } | 1454 | } |
1449 | 1455 | ||
diff --git a/arch/ppc/syslib/pq2_sys.c b/arch/ppc/syslib/pq2_sys.c index f52600c0db20..9c85300846c7 100644 --- a/arch/ppc/syslib/pq2_sys.c +++ b/arch/ppc/syslib/pq2_sys.c | |||
@@ -26,7 +26,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
26 | { | 26 | { |
27 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 27 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
28 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 28 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
29 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 29 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, |
30 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 30 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
31 | } | 31 | } |
32 | }, | 32 | }, |
@@ -39,7 +39,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
39 | { | 39 | { |
40 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, | 40 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_SCC1, |
41 | MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4, | 41 | MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, MPC82xx_CPM_SCC4, |
42 | MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, | 42 | MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, |
43 | MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 43 | MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
44 | } | 44 | } |
45 | }, | 45 | }, |
@@ -47,52 +47,56 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
47 | .ppc_sys_name = "8260", | 47 | .ppc_sys_name = "8260", |
48 | .mask = 0x0000ff00, | 48 | .mask = 0x0000ff00, |
49 | .value = 0x00000000, | 49 | .value = 0x00000000, |
50 | .num_devices = 12, | 50 | .num_devices = 13, |
51 | .device_list = (enum ppc_sys_devices[]) | 51 | .device_list = (enum ppc_sys_devices[]) |
52 | { | 52 | { |
53 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 53 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
54 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 54 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
55 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 55 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
56 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 56 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
57 | MPC82xx_CPM_I2C, | ||
57 | } | 58 | } |
58 | }, | 59 | }, |
59 | { | 60 | { |
60 | .ppc_sys_name = "8264", | 61 | .ppc_sys_name = "8264", |
61 | .mask = 0x0000ff00, | 62 | .mask = 0x0000ff00, |
62 | .value = 0x00000000, | 63 | .value = 0x00000000, |
63 | .num_devices = 12, | 64 | .num_devices = 13, |
64 | .device_list = (enum ppc_sys_devices[]) | 65 | .device_list = (enum ppc_sys_devices[]) |
65 | { | 66 | { |
66 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 67 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
67 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 68 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
68 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 69 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
69 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 70 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
71 | MPC82xx_CPM_I2C, | ||
70 | } | 72 | } |
71 | }, | 73 | }, |
72 | { | 74 | { |
73 | .ppc_sys_name = "8265", | 75 | .ppc_sys_name = "8265", |
74 | .mask = 0x0000ff00, | 76 | .mask = 0x0000ff00, |
75 | .value = 0x00000000, | 77 | .value = 0x00000000, |
76 | .num_devices = 12, | 78 | .num_devices = 13, |
77 | .device_list = (enum ppc_sys_devices[]) | 79 | .device_list = (enum ppc_sys_devices[]) |
78 | { | 80 | { |
79 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 81 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
80 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 82 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
81 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 83 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
82 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 84 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
85 | MPC82xx_CPM_I2C, | ||
83 | } | 86 | } |
84 | }, | 87 | }, |
85 | { | 88 | { |
86 | .ppc_sys_name = "8266", | 89 | .ppc_sys_name = "8266", |
87 | .mask = 0x0000ff00, | 90 | .mask = 0x0000ff00, |
88 | .value = 0x00000000, | 91 | .value = 0x00000000, |
89 | .num_devices = 12, | 92 | .num_devices = 13, |
90 | .device_list = (enum ppc_sys_devices[]) | 93 | .device_list = (enum ppc_sys_devices[]) |
91 | { | 94 | { |
92 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 95 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
93 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 96 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
94 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 97 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_MCC2, |
95 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 98 | MPC82xx_CPM_SMC1, MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, |
99 | MPC82xx_CPM_I2C, | ||
96 | } | 100 | } |
97 | }, | 101 | }, |
98 | /* below is a list of the 8272 family of processors */ | 102 | /* below is a list of the 8272 family of processors */ |
@@ -159,7 +163,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
159 | { | 163 | { |
160 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 164 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
161 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 165 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
162 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 166 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, |
163 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 167 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
164 | }, | 168 | }, |
165 | }, | 169 | }, |
@@ -172,7 +176,7 @@ struct ppc_sys_spec ppc_sys_specs[] = { | |||
172 | { | 176 | { |
173 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, | 177 | MPC82xx_CPM_FCC1, MPC82xx_CPM_FCC2, MPC82xx_CPM_FCC3, |
174 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, | 178 | MPC82xx_CPM_SCC1, MPC82xx_CPM_SCC2, MPC82xx_CPM_SCC3, |
175 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC1, MPC82xx_CPM_SMC1, | 179 | MPC82xx_CPM_SCC4, MPC82xx_CPM_MCC2, MPC82xx_CPM_SMC1, |
176 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, | 180 | MPC82xx_CPM_SMC2, MPC82xx_CPM_SPI, MPC82xx_CPM_I2C, |
177 | }, | 181 | }, |
178 | }, | 182 | }, |
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index 6b9a06e42542..2d63d7689962 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -1030,7 +1030,7 @@ void __devinit setup_sparc64_timer(void) | |||
1030 | clockevents_register_device(sevt); | 1030 | clockevents_register_device(sevt); |
1031 | } | 1031 | } |
1032 | 1032 | ||
1033 | #define SPARC64_NSEC_PER_CYC_SHIFT 32UL | 1033 | #define SPARC64_NSEC_PER_CYC_SHIFT 10UL |
1034 | 1034 | ||
1035 | static struct clocksource clocksource_tick = { | 1035 | static struct clocksource clocksource_tick = { |
1036 | .rating = 100, | 1036 | .rating = 100, |
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index d5939e659cbb..d3ea7f55283c 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -101,12 +101,6 @@ int libata_noacpi = 1; | |||
101 | module_param_named(noacpi, libata_noacpi, int, 0444); | 101 | module_param_named(noacpi, libata_noacpi, int, 0444); |
102 | MODULE_PARM_DESC(noacpi, "Disables the use of ACPI in suspend/resume when set"); | 102 | MODULE_PARM_DESC(noacpi, "Disables the use of ACPI in suspend/resume when set"); |
103 | 103 | ||
104 | int ata_spindown_compat = 1; | ||
105 | module_param_named(spindown_compat, ata_spindown_compat, int, 0644); | ||
106 | MODULE_PARM_DESC(spindown_compat, "Enable backward compatible spindown " | ||
107 | "behavior. Will be removed. More info can be found in " | ||
108 | "Documentation/feature-removal-schedule.txt\n"); | ||
109 | |||
110 | MODULE_AUTHOR("Jeff Garzik"); | 104 | MODULE_AUTHOR("Jeff Garzik"); |
111 | MODULE_DESCRIPTION("Library module for ATA devices"); | 105 | MODULE_DESCRIPTION("Library module for ATA devices"); |
112 | MODULE_LICENSE("GPL"); | 106 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index b6a1de8fad5b..242c43eef807 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -893,7 +893,7 @@ int ata_scsi_change_queue_depth(struct scsi_device *sdev, int queue_depth) | |||
893 | return queue_depth; | 893 | return queue_depth; |
894 | } | 894 | } |
895 | 895 | ||
896 | /* XXX: for ata_spindown_compat */ | 896 | /* XXX: for spindown warning */ |
897 | static void ata_delayed_done_timerfn(unsigned long arg) | 897 | static void ata_delayed_done_timerfn(unsigned long arg) |
898 | { | 898 | { |
899 | struct scsi_cmnd *scmd = (void *)arg; | 899 | struct scsi_cmnd *scmd = (void *)arg; |
@@ -901,7 +901,7 @@ static void ata_delayed_done_timerfn(unsigned long arg) | |||
901 | scmd->scsi_done(scmd); | 901 | scmd->scsi_done(scmd); |
902 | } | 902 | } |
903 | 903 | ||
904 | /* XXX: for ata_spindown_compat */ | 904 | /* XXX: for spindown warning */ |
905 | static void ata_delayed_done(struct scsi_cmnd *scmd) | 905 | static void ata_delayed_done(struct scsi_cmnd *scmd) |
906 | { | 906 | { |
907 | static struct timer_list timer; | 907 | static struct timer_list timer; |
@@ -966,8 +966,7 @@ static unsigned int ata_scsi_start_stop_xlat(struct ata_queued_cmd *qc) | |||
966 | * removed. Read Documentation/feature-removal-schedule.txt | 966 | * removed. Read Documentation/feature-removal-schedule.txt |
967 | * for more info. | 967 | * for more info. |
968 | */ | 968 | */ |
969 | if (ata_spindown_compat && | 969 | if ((qc->dev->flags & ATA_DFLAG_SPUNDOWN) && |
970 | (qc->dev->flags & ATA_DFLAG_SPUNDOWN) && | ||
971 | (system_state == SYSTEM_HALT || | 970 | (system_state == SYSTEM_HALT || |
972 | system_state == SYSTEM_POWER_OFF)) { | 971 | system_state == SYSTEM_POWER_OFF)) { |
973 | static unsigned long warned = 0; | 972 | static unsigned long warned = 0; |
@@ -1395,7 +1394,7 @@ static void ata_scsi_qc_complete(struct ata_queued_cmd *qc) | |||
1395 | } | 1394 | } |
1396 | } | 1395 | } |
1397 | 1396 | ||
1398 | /* XXX: track spindown state for spindown_compat */ | 1397 | /* XXX: track spindown state for spindown skipping and warning */ |
1399 | if (unlikely(qc->tf.command == ATA_CMD_STANDBY || | 1398 | if (unlikely(qc->tf.command == ATA_CMD_STANDBY || |
1400 | qc->tf.command == ATA_CMD_STANDBYNOW1)) | 1399 | qc->tf.command == ATA_CMD_STANDBYNOW1)) |
1401 | qc->dev->flags |= ATA_DFLAG_SPUNDOWN; | 1400 | qc->dev->flags |= ATA_DFLAG_SPUNDOWN; |
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h index 13cb0c9af68d..5e2466658420 100644 --- a/drivers/ata/libata.h +++ b/drivers/ata/libata.h | |||
@@ -58,7 +58,6 @@ extern int atapi_enabled; | |||
58 | extern int atapi_dmadir; | 58 | extern int atapi_dmadir; |
59 | extern int libata_fua; | 59 | extern int libata_fua; |
60 | extern int libata_noacpi; | 60 | extern int libata_noacpi; |
61 | extern int ata_spindown_compat; | ||
62 | extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev); | 61 | extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev); |
63 | extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev, | 62 | extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev, |
64 | u64 block, u32 n_block, unsigned int tf_flags, | 63 | u64 block, u32 n_block, unsigned int tf_flags, |
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c index 4cea3ef75226..1a49c777fa6a 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c | |||
@@ -229,7 +229,6 @@ struct nv_host_priv { | |||
229 | #define NV_ADMA_CHECK_INTR(GCTL, PORT) ((GCTL) & ( 1 << (19 + (12 * (PORT))))) | 229 | #define NV_ADMA_CHECK_INTR(GCTL, PORT) ((GCTL) & ( 1 << (19 + (12 * (PORT))))) |
230 | 230 | ||
231 | static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); | 231 | static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); |
232 | static void nv_remove_one (struct pci_dev *pdev); | ||
233 | #ifdef CONFIG_PM | 232 | #ifdef CONFIG_PM |
234 | static int nv_pci_device_resume(struct pci_dev *pdev); | 233 | static int nv_pci_device_resume(struct pci_dev *pdev); |
235 | #endif | 234 | #endif |
@@ -288,12 +287,6 @@ static const struct pci_device_id nv_pci_tbl[] = { | |||
288 | { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC }, | 287 | { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC }, |
289 | { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC }, | 288 | { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC }, |
290 | { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC }, | 289 | { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC }, |
291 | { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID, | ||
292 | PCI_ANY_ID, PCI_ANY_ID, | ||
293 | PCI_CLASS_STORAGE_IDE<<8, 0xffff00, GENERIC }, | ||
294 | { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID, | ||
295 | PCI_ANY_ID, PCI_ANY_ID, | ||
296 | PCI_CLASS_STORAGE_RAID<<8, 0xffff00, GENERIC }, | ||
297 | 290 | ||
298 | { } /* terminate list */ | 291 | { } /* terminate list */ |
299 | }; | 292 | }; |
@@ -306,7 +299,7 @@ static struct pci_driver nv_pci_driver = { | |||
306 | .suspend = ata_pci_device_suspend, | 299 | .suspend = ata_pci_device_suspend, |
307 | .resume = nv_pci_device_resume, | 300 | .resume = nv_pci_device_resume, |
308 | #endif | 301 | #endif |
309 | .remove = nv_remove_one, | 302 | .remove = ata_pci_remove_one, |
310 | }; | 303 | }; |
311 | 304 | ||
312 | static struct scsi_host_template nv_sht = { | 305 | static struct scsi_host_template nv_sht = { |
@@ -1613,15 +1606,6 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1613 | IRQF_SHARED, ppi[0]->sht); | 1606 | IRQF_SHARED, ppi[0]->sht); |
1614 | } | 1607 | } |
1615 | 1608 | ||
1616 | static void nv_remove_one (struct pci_dev *pdev) | ||
1617 | { | ||
1618 | struct ata_host *host = dev_get_drvdata(&pdev->dev); | ||
1619 | struct nv_host_priv *hpriv = host->private_data; | ||
1620 | |||
1621 | ata_pci_remove_one(pdev); | ||
1622 | kfree(hpriv); | ||
1623 | } | ||
1624 | |||
1625 | #ifdef CONFIG_PM | 1609 | #ifdef CONFIG_PM |
1626 | static int nv_pci_device_resume(struct pci_dev *pdev) | 1610 | static int nv_pci_device_resume(struct pci_dev *pdev) |
1627 | { | 1611 | { |
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c index d105d2c189d2..ac4f43c4993f 100644 --- a/drivers/ata/sata_via.c +++ b/drivers/ata/sata_via.c | |||
@@ -441,7 +441,7 @@ static int vt6421_prepare_host(struct pci_dev *pdev, struct ata_host **r_host) | |||
441 | return -ENOMEM; | 441 | return -ENOMEM; |
442 | } | 442 | } |
443 | 443 | ||
444 | rc = pcim_iomap_regions(pdev, 0x1f, DRV_NAME); | 444 | rc = pcim_iomap_regions(pdev, 0x3f, DRV_NAME); |
445 | if (rc) { | 445 | if (rc) { |
446 | dev_printk(KERN_ERR, &pdev->dev, "failed to request/iomap " | 446 | dev_printk(KERN_ERR, &pdev->dev, "failed to request/iomap " |
447 | "PCI BARs (errno=%d)\n", rc); | 447 | "PCI BARs (errno=%d)\n", rc); |
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 370dfe1c422e..5acc6c44aead 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -3469,13 +3469,39 @@ static int __devinit cciss_init_one(struct pci_dev *pdev, | |||
3469 | return -1; | 3469 | return -1; |
3470 | } | 3470 | } |
3471 | 3471 | ||
3472 | static void cciss_remove_one(struct pci_dev *pdev) | 3472 | static void cciss_shutdown(struct pci_dev *pdev) |
3473 | { | 3473 | { |
3474 | ctlr_info_t *tmp_ptr; | 3474 | ctlr_info_t *tmp_ptr; |
3475 | int i, j; | 3475 | int i; |
3476 | char flush_buf[4]; | 3476 | char flush_buf[4]; |
3477 | int return_code; | 3477 | int return_code; |
3478 | 3478 | ||
3479 | tmp_ptr = pci_get_drvdata(pdev); | ||
3480 | if (tmp_ptr == NULL) | ||
3481 | return; | ||
3482 | i = tmp_ptr->ctlr; | ||
3483 | if (hba[i] == NULL) | ||
3484 | return; | ||
3485 | |||
3486 | /* Turn board interrupts off and send the flush cache command */ | ||
3487 | /* sendcmd will turn off interrupt, and send the flush... | ||
3488 | * To write all data in the battery backed cache to disks */ | ||
3489 | memset(flush_buf, 0, 4); | ||
3490 | return_code = sendcmd(CCISS_CACHE_FLUSH, i, flush_buf, 4, 0, 0, 0, NULL, | ||
3491 | TYPE_CMD); | ||
3492 | if (return_code == IO_OK) { | ||
3493 | printk(KERN_INFO "Completed flushing cache on controller %d\n", i); | ||
3494 | } else { | ||
3495 | printk(KERN_WARNING "Error flushing cache on controller %d\n", i); | ||
3496 | } | ||
3497 | free_irq(hba[i]->intr[2], hba[i]); | ||
3498 | } | ||
3499 | |||
3500 | static void __devexit cciss_remove_one(struct pci_dev *pdev) | ||
3501 | { | ||
3502 | ctlr_info_t *tmp_ptr; | ||
3503 | int i, j; | ||
3504 | |||
3479 | if (pci_get_drvdata(pdev) == NULL) { | 3505 | if (pci_get_drvdata(pdev) == NULL) { |
3480 | printk(KERN_ERR "cciss: Unable to remove device \n"); | 3506 | printk(KERN_ERR "cciss: Unable to remove device \n"); |
3481 | return; | 3507 | return; |
@@ -3506,18 +3532,7 @@ static void cciss_remove_one(struct pci_dev *pdev) | |||
3506 | 3532 | ||
3507 | cciss_unregister_scsi(i); /* unhook from SCSI subsystem */ | 3533 | cciss_unregister_scsi(i); /* unhook from SCSI subsystem */ |
3508 | 3534 | ||
3509 | /* Turn board interrupts off and send the flush cache command */ | 3535 | cciss_shutdown(pdev); |
3510 | /* sendcmd will turn off interrupt, and send the flush... | ||
3511 | * To write all data in the battery backed cache to disks */ | ||
3512 | memset(flush_buf, 0, 4); | ||
3513 | return_code = sendcmd(CCISS_CACHE_FLUSH, i, flush_buf, 4, 0, 0, 0, NULL, | ||
3514 | TYPE_CMD); | ||
3515 | if (return_code == IO_OK) { | ||
3516 | printk(KERN_INFO "Completed flushing cache on controller %d\n", i); | ||
3517 | } else { | ||
3518 | printk(KERN_WARNING "Error flushing cache on controller %d\n", i); | ||
3519 | } | ||
3520 | free_irq(hba[i]->intr[2], hba[i]); | ||
3521 | 3536 | ||
3522 | #ifdef CONFIG_PCI_MSI | 3537 | #ifdef CONFIG_PCI_MSI |
3523 | if (hba[i]->msix_vector) | 3538 | if (hba[i]->msix_vector) |
@@ -3550,7 +3565,7 @@ static struct pci_driver cciss_pci_driver = { | |||
3550 | .probe = cciss_init_one, | 3565 | .probe = cciss_init_one, |
3551 | .remove = __devexit_p(cciss_remove_one), | 3566 | .remove = __devexit_p(cciss_remove_one), |
3552 | .id_table = cciss_pci_device_id, /* id_table */ | 3567 | .id_table = cciss_pci_device_id, /* id_table */ |
3553 | .shutdown = cciss_remove_one, | 3568 | .shutdown = cciss_shutdown, |
3554 | }; | 3569 | }; |
3555 | 3570 | ||
3556 | /* | 3571 | /* |
diff --git a/drivers/char/watchdog/booke_wdt.c b/drivers/char/watchdog/booke_wdt.c index 0e23f29f71ab..0f5c77ddd39d 100644 --- a/drivers/char/watchdog/booke_wdt.c +++ b/drivers/char/watchdog/booke_wdt.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
25 | #include <asm/system.h> | 25 | #include <asm/system.h> |
26 | 26 | ||
27 | /* If the kernel parameter wdt_enable=1, the watchdog will be enabled at boot. | 27 | /* If the kernel parameter wdt=1, the watchdog will be enabled at boot. |
28 | * Also, the wdt_period sets the watchdog timer period timeout. | 28 | * Also, the wdt_period sets the watchdog timer period timeout. |
29 | * For E500 cpus the wdt_period sets which bit changing from 0->1 will | 29 | * For E500 cpus the wdt_period sets which bit changing from 0->1 will |
30 | * trigger a watchog timeout. This watchdog timeout will occur 3 times, the | 30 | * trigger a watchog timeout. This watchdog timeout will occur 3 times, the |
diff --git a/drivers/macintosh/windfarm_core.c b/drivers/macintosh/windfarm_core.c index 192b26e97777..11ced17f438a 100644 --- a/drivers/macintosh/windfarm_core.c +++ b/drivers/macintosh/windfarm_core.c | |||
@@ -216,7 +216,10 @@ int wf_register_control(struct wf_control *new_ct) | |||
216 | new_ct->attr.attr.mode = 0644; | 216 | new_ct->attr.attr.mode = 0644; |
217 | new_ct->attr.show = wf_show_control; | 217 | new_ct->attr.show = wf_show_control; |
218 | new_ct->attr.store = wf_store_control; | 218 | new_ct->attr.store = wf_store_control; |
219 | device_create_file(&wf_platform_device.dev, &new_ct->attr); | 219 | if (device_create_file(&wf_platform_device.dev, &new_ct->attr)) |
220 | printk(KERN_WARNING "windfarm: device_create_file failed" | ||
221 | " for %s\n", new_ct->name); | ||
222 | /* the subsystem still does useful work without the file */ | ||
220 | 223 | ||
221 | DBG("wf: Registered control %s\n", new_ct->name); | 224 | DBG("wf: Registered control %s\n", new_ct->name); |
222 | 225 | ||
@@ -326,7 +329,10 @@ int wf_register_sensor(struct wf_sensor *new_sr) | |||
326 | new_sr->attr.attr.mode = 0444; | 329 | new_sr->attr.attr.mode = 0444; |
327 | new_sr->attr.show = wf_show_sensor; | 330 | new_sr->attr.show = wf_show_sensor; |
328 | new_sr->attr.store = NULL; | 331 | new_sr->attr.store = NULL; |
329 | device_create_file(&wf_platform_device.dev, &new_sr->attr); | 332 | if (device_create_file(&wf_platform_device.dev, &new_sr->attr)) |
333 | printk(KERN_WARNING "windfarm: device_create_file failed" | ||
334 | " for %s\n", new_sr->name); | ||
335 | /* the subsystem still does useful work without the file */ | ||
330 | 336 | ||
331 | DBG("wf: Registered sensor %s\n", new_sr->name); | 337 | DBG("wf: Registered sensor %s\n", new_sr->name); |
332 | 338 | ||
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h index a9ea67e75c1b..16a6edfeba41 100644 --- a/drivers/net/e1000/e1000.h +++ b/drivers/net/e1000/e1000.h | |||
@@ -333,11 +333,9 @@ struct e1000_adapter { | |||
333 | struct e1000_tx_ring test_tx_ring; | 333 | struct e1000_tx_ring test_tx_ring; |
334 | struct e1000_rx_ring test_rx_ring; | 334 | struct e1000_rx_ring test_rx_ring; |
335 | 335 | ||
336 | |||
337 | int msg_enable; | 336 | int msg_enable; |
338 | #ifdef CONFIG_PCI_MSI | ||
339 | boolean_t have_msi; | 337 | boolean_t have_msi; |
340 | #endif | 338 | |
341 | /* to not mess up cache alignment, always add to the bottom */ | 339 | /* to not mess up cache alignment, always add to the bottom */ |
342 | boolean_t tso_force; | 340 | boolean_t tso_force; |
343 | boolean_t smart_power_down; /* phy smart power down */ | 341 | boolean_t smart_power_down; /* phy smart power down */ |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 637ae8f68791..49be393e1c1d 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -158,9 +158,7 @@ static struct net_device_stats * e1000_get_stats(struct net_device *netdev); | |||
158 | static int e1000_change_mtu(struct net_device *netdev, int new_mtu); | 158 | static int e1000_change_mtu(struct net_device *netdev, int new_mtu); |
159 | static int e1000_set_mac(struct net_device *netdev, void *p); | 159 | static int e1000_set_mac(struct net_device *netdev, void *p); |
160 | static irqreturn_t e1000_intr(int irq, void *data); | 160 | static irqreturn_t e1000_intr(int irq, void *data); |
161 | #ifdef CONFIG_PCI_MSI | ||
162 | static irqreturn_t e1000_intr_msi(int irq, void *data); | 161 | static irqreturn_t e1000_intr_msi(int irq, void *data); |
163 | #endif | ||
164 | static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter, | 162 | static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter, |
165 | struct e1000_tx_ring *tx_ring); | 163 | struct e1000_tx_ring *tx_ring); |
166 | #ifdef CONFIG_E1000_NAPI | 164 | #ifdef CONFIG_E1000_NAPI |
@@ -300,31 +298,26 @@ module_exit(e1000_exit_module); | |||
300 | static int e1000_request_irq(struct e1000_adapter *adapter) | 298 | static int e1000_request_irq(struct e1000_adapter *adapter) |
301 | { | 299 | { |
302 | struct net_device *netdev = adapter->netdev; | 300 | struct net_device *netdev = adapter->netdev; |
303 | int flags, err = 0; | 301 | void (*handler) = &e1000_intr; |
302 | int irq_flags = IRQF_SHARED; | ||
303 | int err; | ||
304 | 304 | ||
305 | flags = IRQF_SHARED; | ||
306 | #ifdef CONFIG_PCI_MSI | ||
307 | if (adapter->hw.mac_type >= e1000_82571) { | 305 | if (adapter->hw.mac_type >= e1000_82571) { |
308 | adapter->have_msi = TRUE; | 306 | adapter->have_msi = !pci_enable_msi(adapter->pdev); |
309 | if ((err = pci_enable_msi(adapter->pdev))) { | 307 | if (adapter->have_msi) { |
310 | DPRINTK(PROBE, ERR, | 308 | handler = &e1000_intr_msi; |
311 | "Unable to allocate MSI interrupt Error: %d\n", err); | 309 | irq_flags = 0; |
312 | adapter->have_msi = FALSE; | ||
313 | } | 310 | } |
314 | } | 311 | } |
315 | if (adapter->have_msi) { | 312 | |
316 | flags &= ~IRQF_SHARED; | 313 | err = request_irq(adapter->pdev->irq, handler, irq_flags, netdev->name, |
317 | err = request_irq(adapter->pdev->irq, &e1000_intr_msi, flags, | 314 | netdev); |
318 | netdev->name, netdev); | 315 | if (err) { |
319 | if (err) | 316 | if (adapter->have_msi) |
320 | DPRINTK(PROBE, ERR, | 317 | pci_disable_msi(adapter->pdev); |
321 | "Unable to allocate interrupt Error: %d\n", err); | ||
322 | } else | ||
323 | #endif | ||
324 | if ((err = request_irq(adapter->pdev->irq, &e1000_intr, flags, | ||
325 | netdev->name, netdev))) | ||
326 | DPRINTK(PROBE, ERR, | 318 | DPRINTK(PROBE, ERR, |
327 | "Unable to allocate interrupt Error: %d\n", err); | 319 | "Unable to allocate interrupt Error: %d\n", err); |
320 | } | ||
328 | 321 | ||
329 | return err; | 322 | return err; |
330 | } | 323 | } |
@@ -335,10 +328,8 @@ static void e1000_free_irq(struct e1000_adapter *adapter) | |||
335 | 328 | ||
336 | free_irq(adapter->pdev->irq, netdev); | 329 | free_irq(adapter->pdev->irq, netdev); |
337 | 330 | ||
338 | #ifdef CONFIG_PCI_MSI | ||
339 | if (adapter->have_msi) | 331 | if (adapter->have_msi) |
340 | pci_disable_msi(adapter->pdev); | 332 | pci_disable_msi(adapter->pdev); |
341 | #endif | ||
342 | } | 333 | } |
343 | 334 | ||
344 | /** | 335 | /** |
@@ -3744,7 +3735,6 @@ e1000_update_stats(struct e1000_adapter *adapter) | |||
3744 | 3735 | ||
3745 | spin_unlock_irqrestore(&adapter->stats_lock, flags); | 3736 | spin_unlock_irqrestore(&adapter->stats_lock, flags); |
3746 | } | 3737 | } |
3747 | #ifdef CONFIG_PCI_MSI | ||
3748 | 3738 | ||
3749 | /** | 3739 | /** |
3750 | * e1000_intr_msi - Interrupt Handler | 3740 | * e1000_intr_msi - Interrupt Handler |
@@ -3810,7 +3800,6 @@ e1000_intr_msi(int irq, void *data) | |||
3810 | 3800 | ||
3811 | return IRQ_HANDLED; | 3801 | return IRQ_HANDLED; |
3812 | } | 3802 | } |
3813 | #endif | ||
3814 | 3803 | ||
3815 | /** | 3804 | /** |
3816 | * e1000_intr - Interrupt Handler | 3805 | * e1000_intr - Interrupt Handler |
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index b666a0cc0642..f5b3cba23fc5 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
@@ -1025,6 +1025,15 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1025 | 1025 | ||
1026 | dev->trans_start = jiffies; | 1026 | dev->trans_start = jiffies; |
1027 | 1027 | ||
1028 | /* The powerpc-specific eieio() is used, as wmb() has too strong | ||
1029 | * semantics (it requires synchronization between cacheable and | ||
1030 | * uncacheable mappings, which eieio doesn't provide and which we | ||
1031 | * don't need), thus requiring a more expensive sync instruction. At | ||
1032 | * some point, the set of architecture-independent barrier functions | ||
1033 | * should be expanded to include weaker barriers. | ||
1034 | */ | ||
1035 | |||
1036 | eieio(); | ||
1028 | txbdp->status = status; | 1037 | txbdp->status = status; |
1029 | 1038 | ||
1030 | /* If this was the last BD in the ring, the next one */ | 1039 | /* If this was the last BD in the ring, the next one */ |
@@ -1301,6 +1310,7 @@ struct sk_buff * gfar_new_skb(struct net_device *dev, struct rxbd8 *bdp) | |||
1301 | bdp->length = 0; | 1310 | bdp->length = 0; |
1302 | 1311 | ||
1303 | /* Mark the buffer empty */ | 1312 | /* Mark the buffer empty */ |
1313 | eieio(); | ||
1304 | bdp->status |= (RXBD_EMPTY | RXBD_INTERRUPT); | 1314 | bdp->status |= (RXBD_EMPTY | RXBD_INTERRUPT); |
1305 | 1315 | ||
1306 | return skb; | 1316 | return skb; |
@@ -1484,6 +1494,7 @@ int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit) | |||
1484 | bdp = priv->cur_rx; | 1494 | bdp = priv->cur_rx; |
1485 | 1495 | ||
1486 | while (!((bdp->status & RXBD_EMPTY) || (--rx_work_limit < 0))) { | 1496 | while (!((bdp->status & RXBD_EMPTY) || (--rx_work_limit < 0))) { |
1497 | rmb(); | ||
1487 | skb = priv->rx_skbuff[priv->skb_currx]; | 1498 | skb = priv->rx_skbuff[priv->skb_currx]; |
1488 | 1499 | ||
1489 | if (!(bdp->status & | 1500 | if (!(bdp->status & |
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c index 50035ebd4f52..f752e5fc65ba 100644 --- a/drivers/net/ibm_emac/ibm_emac_core.c +++ b/drivers/net/ibm_emac/ibm_emac_core.c | |||
@@ -926,7 +926,7 @@ static int emac_link_differs(struct ocp_enet_private *dev) | |||
926 | int duplex = r & EMAC_MR1_FDE ? DUPLEX_FULL : DUPLEX_HALF; | 926 | int duplex = r & EMAC_MR1_FDE ? DUPLEX_FULL : DUPLEX_HALF; |
927 | int speed, pause, asym_pause; | 927 | int speed, pause, asym_pause; |
928 | 928 | ||
929 | if (r & (EMAC_MR1_MF_1000 | EMAC_MR1_MF_1000GPCS)) | 929 | if (r & EMAC_MR1_MF_1000) |
930 | speed = SPEED_1000; | 930 | speed = SPEED_1000; |
931 | else if (r & EMAC_MR1_MF_100) | 931 | else if (r & EMAC_MR1_MF_100) |
932 | speed = SPEED_100; | 932 | speed = SPEED_100; |
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.c b/drivers/net/ibm_emac/ibm_emac_mal.c index 6c0f071e4052..cabd9846a5ee 100644 --- a/drivers/net/ibm_emac/ibm_emac_mal.c +++ b/drivers/net/ibm_emac/ibm_emac_mal.c | |||
@@ -59,8 +59,7 @@ int __init mal_register_commac(struct ibm_ocp_mal *mal, | |||
59 | return 0; | 59 | return 0; |
60 | } | 60 | } |
61 | 61 | ||
62 | void __exit mal_unregister_commac(struct ibm_ocp_mal *mal, | 62 | void mal_unregister_commac(struct ibm_ocp_mal *mal, struct mal_commac *commac) |
63 | struct mal_commac *commac) | ||
64 | { | 63 | { |
65 | unsigned long flags; | 64 | unsigned long flags; |
66 | local_irq_save(flags); | 65 | local_irq_save(flags); |
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.h b/drivers/net/ibm_emac/ibm_emac_mal.h index 407d2acbf7c7..64bc338acc6c 100644 --- a/drivers/net/ibm_emac/ibm_emac_mal.h +++ b/drivers/net/ibm_emac/ibm_emac_mal.h | |||
@@ -223,8 +223,7 @@ void mal_exit(void) __exit; | |||
223 | 223 | ||
224 | int mal_register_commac(struct ibm_ocp_mal *mal, | 224 | int mal_register_commac(struct ibm_ocp_mal *mal, |
225 | struct mal_commac *commac) __init; | 225 | struct mal_commac *commac) __init; |
226 | void mal_unregister_commac(struct ibm_ocp_mal *mal, | 226 | void mal_unregister_commac(struct ibm_ocp_mal *mal, struct mal_commac *commac); |
227 | struct mal_commac *commac) __exit; | ||
228 | int mal_set_rcbs(struct ibm_ocp_mal *mal, int channel, unsigned long size); | 227 | int mal_set_rcbs(struct ibm_ocp_mal *mal, int channel, unsigned long size); |
229 | 228 | ||
230 | /* Returns BD ring offset for a particular channel | 229 | /* Returns BD ring offset for a particular channel |
diff --git a/drivers/net/ibm_emac/ibm_emac_phy.c b/drivers/net/ibm_emac/ibm_emac_phy.c index 9074f76ee2bf..e57862b34cae 100644 --- a/drivers/net/ibm_emac/ibm_emac_phy.c +++ b/drivers/net/ibm_emac/ibm_emac_phy.c | |||
@@ -22,6 +22,7 @@ | |||
22 | 22 | ||
23 | #include <asm/ocp.h> | 23 | #include <asm/ocp.h> |
24 | 24 | ||
25 | #include "ibm_emac_core.h" | ||
25 | #include "ibm_emac_phy.h" | 26 | #include "ibm_emac_phy.h" |
26 | 27 | ||
27 | static inline int phy_read(struct mii_phy *phy, int reg) | 28 | static inline int phy_read(struct mii_phy *phy, int reg) |
@@ -34,11 +35,39 @@ static inline void phy_write(struct mii_phy *phy, int reg, int val) | |||
34 | phy->mdio_write(phy->dev, phy->address, reg, val); | 35 | phy->mdio_write(phy->dev, phy->address, reg, val); |
35 | } | 36 | } |
36 | 37 | ||
37 | int mii_reset_phy(struct mii_phy *phy) | 38 | /* |
39 | * polls MII_BMCR until BMCR_RESET bit clears or operation times out. | ||
40 | * | ||
41 | * returns: | ||
42 | * >= 0 => success, value in BMCR returned to caller | ||
43 | * -EBUSY => failure, RESET bit never cleared | ||
44 | * otherwise => failure, lower level PHY read failed | ||
45 | */ | ||
46 | static int mii_spin_reset_complete(struct mii_phy *phy) | ||
38 | { | 47 | { |
39 | int val; | 48 | int val; |
40 | int limit = 10000; | 49 | int limit = 10000; |
41 | 50 | ||
51 | while (limit--) { | ||
52 | val = phy_read(phy, MII_BMCR); | ||
53 | if (val >= 0 && !(val & BMCR_RESET)) | ||
54 | return val; /* success */ | ||
55 | udelay(10); | ||
56 | } | ||
57 | if (val & BMCR_RESET) | ||
58 | val = -EBUSY; | ||
59 | |||
60 | if (net_ratelimit()) | ||
61 | printk(KERN_ERR "emac%d: PHY reset timeout (%d)\n", | ||
62 | ((struct ocp_enet_private *)phy->dev->priv)->def->index, | ||
63 | val); | ||
64 | return val; | ||
65 | } | ||
66 | |||
67 | int mii_reset_phy(struct mii_phy *phy) | ||
68 | { | ||
69 | int val; | ||
70 | |||
42 | val = phy_read(phy, MII_BMCR); | 71 | val = phy_read(phy, MII_BMCR); |
43 | val &= ~BMCR_ISOLATE; | 72 | val &= ~BMCR_ISOLATE; |
44 | val |= BMCR_RESET; | 73 | val |= BMCR_RESET; |
@@ -46,16 +75,11 @@ int mii_reset_phy(struct mii_phy *phy) | |||
46 | 75 | ||
47 | udelay(300); | 76 | udelay(300); |
48 | 77 | ||
49 | while (limit--) { | 78 | val = mii_spin_reset_complete(phy); |
50 | val = phy_read(phy, MII_BMCR); | 79 | if (val >= 0 && (val & BMCR_ISOLATE)) |
51 | if (val >= 0 && (val & BMCR_RESET) == 0) | ||
52 | break; | ||
53 | udelay(10); | ||
54 | } | ||
55 | if ((val & BMCR_ISOLATE) && limit > 0) | ||
56 | phy_write(phy, MII_BMCR, val & ~BMCR_ISOLATE); | 80 | phy_write(phy, MII_BMCR, val & ~BMCR_ISOLATE); |
57 | 81 | ||
58 | return limit <= 0; | 82 | return val < 0; |
59 | } | 83 | } |
60 | 84 | ||
61 | static int genmii_setup_aneg(struct mii_phy *phy, u32 advertise) | 85 | static int genmii_setup_aneg(struct mii_phy *phy, u32 advertise) |
@@ -102,8 +126,14 @@ static int genmii_setup_aneg(struct mii_phy *phy, u32 advertise) | |||
102 | } | 126 | } |
103 | 127 | ||
104 | /* Start/Restart aneg */ | 128 | /* Start/Restart aneg */ |
105 | ctl = phy_read(phy, MII_BMCR); | 129 | /* on some PHYs (e.g. National DP83843) a write to MII_ADVERTISE |
106 | ctl |= (BMCR_ANENABLE | BMCR_ANRESTART); | 130 | * causes BMCR_RESET to be set on the next read of MII_BMCR, which |
131 | * if not checked for causes the PHY to be reset below */ | ||
132 | ctl = mii_spin_reset_complete(phy); | ||
133 | if (ctl < 0) | ||
134 | return ctl; | ||
135 | |||
136 | ctl |= BMCR_ANENABLE | BMCR_ANRESTART; | ||
107 | phy_write(phy, MII_BMCR, ctl); | 137 | phy_write(phy, MII_BMCR, ctl); |
108 | 138 | ||
109 | return 0; | 139 | return 0; |
@@ -118,13 +148,13 @@ static int genmii_setup_forced(struct mii_phy *phy, int speed, int fd) | |||
118 | phy->duplex = fd; | 148 | phy->duplex = fd; |
119 | phy->pause = phy->asym_pause = 0; | 149 | phy->pause = phy->asym_pause = 0; |
120 | 150 | ||
151 | /* First reset the PHY */ | ||
152 | mii_reset_phy(phy); | ||
153 | |||
121 | ctl = phy_read(phy, MII_BMCR); | 154 | ctl = phy_read(phy, MII_BMCR); |
122 | if (ctl < 0) | 155 | if (ctl < 0) |
123 | return ctl; | 156 | return ctl; |
124 | ctl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 | BMCR_ANENABLE); | 157 | ctl &= ~(BMCR_FULLDPLX | BMCR_SPEED100 | BMCR_ANENABLE | BMCR_SPEED1000); |
125 | |||
126 | /* First reset the PHY */ | ||
127 | phy_write(phy, MII_BMCR, ctl | BMCR_RESET); | ||
128 | 158 | ||
129 | /* Select speed & duplex */ | 159 | /* Select speed & duplex */ |
130 | switch (speed) { | 160 | switch (speed) { |
diff --git a/drivers/net/ibm_emac/ibm_emac_rgmii.c b/drivers/net/ibm_emac/ibm_emac_rgmii.c index 53d281cb9a16..9dbb5e5936c3 100644 --- a/drivers/net/ibm_emac/ibm_emac_rgmii.c +++ b/drivers/net/ibm_emac/ibm_emac_rgmii.c | |||
@@ -162,7 +162,7 @@ void rgmii_set_speed(struct ocp_device *ocpdev, int input, int speed) | |||
162 | out_be32(&dev->base->ssr, ssr); | 162 | out_be32(&dev->base->ssr, ssr); |
163 | } | 163 | } |
164 | 164 | ||
165 | void __exit __rgmii_fini(struct ocp_device *ocpdev, int input) | 165 | void __rgmii_fini(struct ocp_device *ocpdev, int input) |
166 | { | 166 | { |
167 | struct ibm_ocp_rgmii *dev = ocp_get_drvdata(ocpdev); | 167 | struct ibm_ocp_rgmii *dev = ocp_get_drvdata(ocpdev); |
168 | BUG_ON(!dev || dev->users == 0); | 168 | BUG_ON(!dev || dev->users == 0); |
diff --git a/drivers/net/ibm_emac/ibm_emac_rgmii.h b/drivers/net/ibm_emac/ibm_emac_rgmii.h index 117ea486c2ca..971e45815c6c 100644 --- a/drivers/net/ibm_emac/ibm_emac_rgmii.h +++ b/drivers/net/ibm_emac/ibm_emac_rgmii.h | |||
@@ -37,7 +37,7 @@ struct ibm_ocp_rgmii { | |||
37 | #ifdef CONFIG_IBM_EMAC_RGMII | 37 | #ifdef CONFIG_IBM_EMAC_RGMII |
38 | int rgmii_attach(void *emac) __init; | 38 | int rgmii_attach(void *emac) __init; |
39 | 39 | ||
40 | void __rgmii_fini(struct ocp_device *ocpdev, int input) __exit; | 40 | void __rgmii_fini(struct ocp_device *ocpdev, int input); |
41 | static inline void rgmii_fini(struct ocp_device *ocpdev, int input) | 41 | static inline void rgmii_fini(struct ocp_device *ocpdev, int input) |
42 | { | 42 | { |
43 | if (ocpdev) | 43 | if (ocpdev) |
diff --git a/drivers/net/ibm_emac/ibm_emac_tah.c b/drivers/net/ibm_emac/ibm_emac_tah.c index e287b451bb44..3c2d5ba522a1 100644 --- a/drivers/net/ibm_emac/ibm_emac_tah.c +++ b/drivers/net/ibm_emac/ibm_emac_tah.c | |||
@@ -63,7 +63,7 @@ int __init tah_attach(void *emac) | |||
63 | return 0; | 63 | return 0; |
64 | } | 64 | } |
65 | 65 | ||
66 | void __exit __tah_fini(struct ocp_device *ocpdev) | 66 | void __tah_fini(struct ocp_device *ocpdev) |
67 | { | 67 | { |
68 | struct tah_regs *p = ocp_get_drvdata(ocpdev); | 68 | struct tah_regs *p = ocp_get_drvdata(ocpdev); |
69 | BUG_ON(!p); | 69 | BUG_ON(!p); |
diff --git a/drivers/net/ibm_emac/ibm_emac_tah.h b/drivers/net/ibm_emac/ibm_emac_tah.h index 38153945a240..ccf64915e1e4 100644 --- a/drivers/net/ibm_emac/ibm_emac_tah.h +++ b/drivers/net/ibm_emac/ibm_emac_tah.h | |||
@@ -55,7 +55,7 @@ struct tah_regs { | |||
55 | #ifdef CONFIG_IBM_EMAC_TAH | 55 | #ifdef CONFIG_IBM_EMAC_TAH |
56 | int tah_attach(void *emac) __init; | 56 | int tah_attach(void *emac) __init; |
57 | 57 | ||
58 | void __tah_fini(struct ocp_device *ocpdev) __exit; | 58 | void __tah_fini(struct ocp_device *ocpdev); |
59 | static inline void tah_fini(struct ocp_device *ocpdev) | 59 | static inline void tah_fini(struct ocp_device *ocpdev) |
60 | { | 60 | { |
61 | if (ocpdev) | 61 | if (ocpdev) |
diff --git a/drivers/net/ibm_emac/ibm_emac_zmii.c b/drivers/net/ibm_emac/ibm_emac_zmii.c index 37dc8f342868..2c0fdb0cabff 100644 --- a/drivers/net/ibm_emac/ibm_emac_zmii.c +++ b/drivers/net/ibm_emac/ibm_emac_zmii.c | |||
@@ -215,7 +215,7 @@ void __zmii_set_speed(struct ocp_device *ocpdev, int input, int speed) | |||
215 | out_be32(&dev->base->ssr, ssr); | 215 | out_be32(&dev->base->ssr, ssr); |
216 | } | 216 | } |
217 | 217 | ||
218 | void __exit __zmii_fini(struct ocp_device *ocpdev, int input) | 218 | void __zmii_fini(struct ocp_device *ocpdev, int input) |
219 | { | 219 | { |
220 | struct ibm_ocp_zmii *dev = ocp_get_drvdata(ocpdev); | 220 | struct ibm_ocp_zmii *dev = ocp_get_drvdata(ocpdev); |
221 | BUG_ON(!dev || dev->users == 0); | 221 | BUG_ON(!dev || dev->users == 0); |
diff --git a/drivers/net/ibm_emac/ibm_emac_zmii.h b/drivers/net/ibm_emac/ibm_emac_zmii.h index 972e3a44a09f..fad6d8bf983a 100644 --- a/drivers/net/ibm_emac/ibm_emac_zmii.h +++ b/drivers/net/ibm_emac/ibm_emac_zmii.h | |||
@@ -40,7 +40,7 @@ struct ibm_ocp_zmii { | |||
40 | #ifdef CONFIG_IBM_EMAC_ZMII | 40 | #ifdef CONFIG_IBM_EMAC_ZMII |
41 | int zmii_attach(void *emac) __init; | 41 | int zmii_attach(void *emac) __init; |
42 | 42 | ||
43 | void __zmii_fini(struct ocp_device *ocpdev, int input) __exit; | 43 | void __zmii_fini(struct ocp_device *ocpdev, int input); |
44 | static inline void zmii_fini(struct ocp_device *ocpdev, int input) | 44 | static inline void zmii_fini(struct ocp_device *ocpdev, int input) |
45 | { | 45 | { |
46 | if (ocpdev) | 46 | if (ocpdev) |
diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h index c8e90861f869..3569d5b03388 100644 --- a/drivers/net/ixgb/ixgb.h +++ b/drivers/net/ixgb/ixgb.h | |||
@@ -193,8 +193,6 @@ struct ixgb_adapter { | |||
193 | u16 msg_enable; | 193 | u16 msg_enable; |
194 | struct ixgb_hw_stats stats; | 194 | struct ixgb_hw_stats stats; |
195 | uint32_t alloc_rx_buff_failed; | 195 | uint32_t alloc_rx_buff_failed; |
196 | #ifdef CONFIG_PCI_MSI | ||
197 | boolean_t have_msi; | 196 | boolean_t have_msi; |
198 | #endif | ||
199 | }; | 197 | }; |
200 | #endif /* _IXGB_H_ */ | 198 | #endif /* _IXGB_H_ */ |
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index 6d2b059371f1..991c8833e23c 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c | |||
@@ -227,7 +227,7 @@ int | |||
227 | ixgb_up(struct ixgb_adapter *adapter) | 227 | ixgb_up(struct ixgb_adapter *adapter) |
228 | { | 228 | { |
229 | struct net_device *netdev = adapter->netdev; | 229 | struct net_device *netdev = adapter->netdev; |
230 | int err; | 230 | int err, irq_flags = IRQF_SHARED; |
231 | int max_frame = netdev->mtu + ENET_HEADER_SIZE + ENET_FCS_LENGTH; | 231 | int max_frame = netdev->mtu + ENET_HEADER_SIZE + ENET_FCS_LENGTH; |
232 | struct ixgb_hw *hw = &adapter->hw; | 232 | struct ixgb_hw *hw = &adapter->hw; |
233 | 233 | ||
@@ -246,26 +246,21 @@ ixgb_up(struct ixgb_adapter *adapter) | |||
246 | /* disable interrupts and get the hardware into a known state */ | 246 | /* disable interrupts and get the hardware into a known state */ |
247 | IXGB_WRITE_REG(&adapter->hw, IMC, 0xffffffff); | 247 | IXGB_WRITE_REG(&adapter->hw, IMC, 0xffffffff); |
248 | 248 | ||
249 | #ifdef CONFIG_PCI_MSI | 249 | /* only enable MSI if bus is in PCI-X mode */ |
250 | { | 250 | if (IXGB_READ_REG(&adapter->hw, STATUS) & IXGB_STATUS_PCIX_MODE) { |
251 | boolean_t pcix = (IXGB_READ_REG(&adapter->hw, STATUS) & | 251 | err = pci_enable_msi(adapter->pdev); |
252 | IXGB_STATUS_PCIX_MODE) ? TRUE : FALSE; | 252 | if (!err) { |
253 | adapter->have_msi = TRUE; | 253 | adapter->have_msi = 1; |
254 | 254 | irq_flags = 0; | |
255 | if (!pcix) | 255 | } |
256 | adapter->have_msi = FALSE; | ||
257 | else if((err = pci_enable_msi(adapter->pdev))) { | ||
258 | DPRINTK(PROBE, ERR, | ||
259 | "Unable to allocate MSI interrupt Error: %d\n", err); | ||
260 | adapter->have_msi = FALSE; | ||
261 | /* proceed to try to request regular interrupt */ | 256 | /* proceed to try to request regular interrupt */ |
262 | } | 257 | } |
263 | } | ||
264 | 258 | ||
265 | #endif | 259 | err = request_irq(adapter->pdev->irq, &ixgb_intr, irq_flags, |
266 | if((err = request_irq(adapter->pdev->irq, &ixgb_intr, | 260 | netdev->name, netdev); |
267 | IRQF_SHARED | IRQF_SAMPLE_RANDOM, | 261 | if (err) { |
268 | netdev->name, netdev))) { | 262 | if (adapter->have_msi) |
263 | pci_disable_msi(adapter->pdev); | ||
269 | DPRINTK(PROBE, ERR, | 264 | DPRINTK(PROBE, ERR, |
270 | "Unable to allocate interrupt Error: %d\n", err); | 265 | "Unable to allocate interrupt Error: %d\n", err); |
271 | return err; | 266 | return err; |
@@ -307,11 +302,10 @@ ixgb_down(struct ixgb_adapter *adapter, boolean_t kill_watchdog) | |||
307 | 302 | ||
308 | ixgb_irq_disable(adapter); | 303 | ixgb_irq_disable(adapter); |
309 | free_irq(adapter->pdev->irq, netdev); | 304 | free_irq(adapter->pdev->irq, netdev); |
310 | #ifdef CONFIG_PCI_MSI | 305 | |
311 | if(adapter->have_msi == TRUE) | 306 | if (adapter->have_msi) |
312 | pci_disable_msi(adapter->pdev); | 307 | pci_disable_msi(adapter->pdev); |
313 | 308 | ||
314 | #endif | ||
315 | if(kill_watchdog) | 309 | if(kill_watchdog) |
316 | del_timer_sync(&adapter->watchdog_timer); | 310 | del_timer_sync(&adapter->watchdog_timer); |
317 | #ifdef CONFIG_IXGB_NAPI | 311 | #ifdef CONFIG_IXGB_NAPI |
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index cf0e96adfe44..a36892457761 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
@@ -1216,7 +1216,7 @@ u32 netxen_process_rcv_ring(struct netxen_adapter *adapter, int ctxid, int max) | |||
1216 | /* Window = 1 */ | 1216 | /* Window = 1 */ |
1217 | writel(consumer, | 1217 | writel(consumer, |
1218 | NETXEN_CRB_NORMALIZE(adapter, | 1218 | NETXEN_CRB_NORMALIZE(adapter, |
1219 | recv_crb_registers[ctxid]. | 1219 | recv_crb_registers[adapter->portnum]. |
1220 | crb_rcv_status_consumer)); | 1220 | crb_rcv_status_consumer)); |
1221 | } | 1221 | } |
1222 | 1222 | ||
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 104e20456e6f..832fd69a0e59 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <linux/if_vlan.h> | 40 | #include <linux/if_vlan.h> |
41 | #include <linux/prefetch.h> | 41 | #include <linux/prefetch.h> |
42 | #include <linux/mii.h> | 42 | #include <linux/mii.h> |
43 | #include <linux/dmi.h> | ||
44 | 43 | ||
45 | #include <asm/irq.h> | 44 | #include <asm/irq.h> |
46 | 45 | ||
@@ -151,8 +150,6 @@ static const char *yukon2_name[] = { | |||
151 | "FE", /* 0xb7 */ | 150 | "FE", /* 0xb7 */ |
152 | }; | 151 | }; |
153 | 152 | ||
154 | static int dmi_blacklisted; | ||
155 | |||
156 | /* Access to external PHY */ | 153 | /* Access to external PHY */ |
157 | static int gm_phy_write(struct sky2_hw *hw, unsigned port, u16 reg, u16 val) | 154 | static int gm_phy_write(struct sky2_hw *hw, unsigned port, u16 reg, u16 val) |
158 | { | 155 | { |
@@ -307,10 +304,13 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) | |||
307 | PHY_M_EC_MAC_S_MSK); | 304 | PHY_M_EC_MAC_S_MSK); |
308 | ectrl |= PHY_M_EC_MAC_S(MAC_TX_CLK_25_MHZ); | 305 | ectrl |= PHY_M_EC_MAC_S(MAC_TX_CLK_25_MHZ); |
309 | 306 | ||
307 | /* on PHY 88E1040 Rev.D0 (and newer) downshift control changed */ | ||
310 | if (hw->chip_id == CHIP_ID_YUKON_EC) | 308 | if (hw->chip_id == CHIP_ID_YUKON_EC) |
309 | /* set downshift counter to 3x and enable downshift */ | ||
311 | ectrl |= PHY_M_EC_DSC_2(2) | PHY_M_EC_DOWN_S_ENA; | 310 | ectrl |= PHY_M_EC_DSC_2(2) | PHY_M_EC_DOWN_S_ENA; |
312 | else | 311 | else |
313 | ectrl |= PHY_M_EC_M_DSC(2) | PHY_M_EC_S_DSC(3); | 312 | /* set master & slave downshift counter to 1x */ |
313 | ectrl |= PHY_M_EC_M_DSC(0) | PHY_M_EC_S_DSC(1); | ||
314 | 314 | ||
315 | gm_phy_write(hw, port, PHY_MARV_EXT_CTRL, ectrl); | 315 | gm_phy_write(hw, port, PHY_MARV_EXT_CTRL, ectrl); |
316 | } | 316 | } |
@@ -327,10 +327,12 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) | |||
327 | /* enable automatic crossover */ | 327 | /* enable automatic crossover */ |
328 | ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO); | 328 | ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO); |
329 | 329 | ||
330 | /* downshift on PHY 88E1112 and 88E1149 is changed */ | ||
330 | if (sky2->autoneg == AUTONEG_ENABLE | 331 | if (sky2->autoneg == AUTONEG_ENABLE |
331 | && (hw->chip_id == CHIP_ID_YUKON_XL | 332 | && (hw->chip_id == CHIP_ID_YUKON_XL |
332 | || hw->chip_id == CHIP_ID_YUKON_EC_U | 333 | || hw->chip_id == CHIP_ID_YUKON_EC_U |
333 | || hw->chip_id == CHIP_ID_YUKON_EX)) { | 334 | || hw->chip_id == CHIP_ID_YUKON_EX)) { |
335 | /* set downshift counter to 3x and enable downshift */ | ||
334 | ctrl &= ~PHY_M_PC_DSC_MSK; | 336 | ctrl &= ~PHY_M_PC_DSC_MSK; |
335 | ctrl |= PHY_M_PC_DSC(2) | PHY_M_PC_DOWN_S_ENA; | 337 | ctrl |= PHY_M_PC_DSC(2) | PHY_M_PC_DOWN_S_ENA; |
336 | } | 338 | } |
@@ -842,10 +844,12 @@ static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, | |||
842 | /* Update chip's next pointer */ | 844 | /* Update chip's next pointer */ |
843 | static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx) | 845 | static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx) |
844 | { | 846 | { |
845 | q = Y2_QADDR(q, PREF_UNIT_PUT_IDX); | 847 | /* Make sure write' to descriptors are complete before we tell hardware */ |
846 | wmb(); | 848 | wmb(); |
847 | sky2_write16(hw, q, idx); | 849 | sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), idx); |
848 | sky2_read16(hw, q); | 850 | |
851 | /* Synchronize I/O on since next processor may write to tail */ | ||
852 | mmiowb(); | ||
849 | } | 853 | } |
850 | 854 | ||
851 | 855 | ||
@@ -977,6 +981,7 @@ stopped: | |||
977 | 981 | ||
978 | /* reset the Rx prefetch unit */ | 982 | /* reset the Rx prefetch unit */ |
979 | sky2_write32(hw, Y2_QADDR(rxq, PREF_UNIT_CTRL), PREF_UNIT_RST_SET); | 983 | sky2_write32(hw, Y2_QADDR(rxq, PREF_UNIT_CTRL), PREF_UNIT_RST_SET); |
984 | mmiowb(); | ||
980 | } | 985 | } |
981 | 986 | ||
982 | /* Clean out receive buffer area, assumes receiver hardware stopped */ | 987 | /* Clean out receive buffer area, assumes receiver hardware stopped */ |
@@ -1196,7 +1201,7 @@ static int sky2_rx_start(struct sky2_port *sky2) | |||
1196 | } | 1201 | } |
1197 | 1202 | ||
1198 | /* Tell chip about available buffers */ | 1203 | /* Tell chip about available buffers */ |
1199 | sky2_write16(hw, Y2_QADDR(rxq, PREF_UNIT_PUT_IDX), sky2->rx_put); | 1204 | sky2_put_idx(hw, rxq, sky2->rx_put); |
1200 | return 0; | 1205 | return 0; |
1201 | nomem: | 1206 | nomem: |
1202 | sky2_rx_clean(sky2); | 1207 | sky2_rx_clean(sky2); |
@@ -1538,6 +1543,8 @@ static void sky2_tx_complete(struct sky2_port *sky2, u16 done) | |||
1538 | } | 1543 | } |
1539 | 1544 | ||
1540 | sky2->tx_cons = idx; | 1545 | sky2->tx_cons = idx; |
1546 | smp_mb(); | ||
1547 | |||
1541 | if (tx_avail(sky2) > MAX_SKB_TX_LE + 4) | 1548 | if (tx_avail(sky2) > MAX_SKB_TX_LE + 4) |
1542 | netif_wake_queue(dev); | 1549 | netif_wake_queue(dev); |
1543 | } | 1550 | } |
@@ -1577,13 +1584,6 @@ static int sky2_down(struct net_device *dev) | |||
1577 | imask &= ~portirq_msk[port]; | 1584 | imask &= ~portirq_msk[port]; |
1578 | sky2_write32(hw, B0_IMSK, imask); | 1585 | sky2_write32(hw, B0_IMSK, imask); |
1579 | 1586 | ||
1580 | /* | ||
1581 | * Both ports share the NAPI poll on port 0, so if necessary undo the | ||
1582 | * the disable that is done in dev_close. | ||
1583 | */ | ||
1584 | if (sky2->port == 0 && hw->ports > 1) | ||
1585 | netif_poll_enable(dev); | ||
1586 | |||
1587 | sky2_gmac_reset(hw, port); | 1587 | sky2_gmac_reset(hw, port); |
1588 | 1588 | ||
1589 | /* Stop transmitter */ | 1589 | /* Stop transmitter */ |
@@ -2139,8 +2139,10 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do) | |||
2139 | switch (le->opcode & ~HW_OWNER) { | 2139 | switch (le->opcode & ~HW_OWNER) { |
2140 | case OP_RXSTAT: | 2140 | case OP_RXSTAT: |
2141 | skb = sky2_receive(dev, length, status); | 2141 | skb = sky2_receive(dev, length, status); |
2142 | if (!skb) | 2142 | if (unlikely(!skb)) { |
2143 | sky2->net_stats.rx_dropped++; | ||
2143 | goto force_update; | 2144 | goto force_update; |
2145 | } | ||
2144 | 2146 | ||
2145 | skb->protocol = eth_type_trans(skb, dev); | 2147 | skb->protocol = eth_type_trans(skb, dev); |
2146 | sky2->net_stats.rx_packets++; | 2148 | sky2->net_stats.rx_packets++; |
@@ -2221,6 +2223,7 @@ force_update: | |||
2221 | 2223 | ||
2222 | /* Fully processed status ring so clear irq */ | 2224 | /* Fully processed status ring so clear irq */ |
2223 | sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ); | 2225 | sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ); |
2226 | mmiowb(); | ||
2224 | 2227 | ||
2225 | exit_loop: | 2228 | exit_loop: |
2226 | if (buf_write[0]) { | 2229 | if (buf_write[0]) { |
@@ -2341,6 +2344,12 @@ static void sky2_mac_intr(struct sky2_hw *hw, unsigned port) | |||
2341 | printk(KERN_INFO PFX "%s: mac interrupt status 0x%x\n", | 2344 | printk(KERN_INFO PFX "%s: mac interrupt status 0x%x\n", |
2342 | dev->name, status); | 2345 | dev->name, status); |
2343 | 2346 | ||
2347 | if (status & GM_IS_RX_CO_OV) | ||
2348 | gma_read16(hw, port, GM_RX_IRQ_SRC); | ||
2349 | |||
2350 | if (status & GM_IS_TX_CO_OV) | ||
2351 | gma_read16(hw, port, GM_TX_IRQ_SRC); | ||
2352 | |||
2344 | if (status & GM_IS_RX_FF_OR) { | 2353 | if (status & GM_IS_RX_FF_OR) { |
2345 | ++sky2->net_stats.rx_fifo_errors; | 2354 | ++sky2->net_stats.rx_fifo_errors; |
2346 | sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_CLI_RX_FO); | 2355 | sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_CLI_RX_FO); |
@@ -2439,6 +2448,7 @@ static int sky2_poll(struct net_device *dev0, int *budget) | |||
2439 | if (work_done < work_limit) { | 2448 | if (work_done < work_limit) { |
2440 | netif_rx_complete(dev0); | 2449 | netif_rx_complete(dev0); |
2441 | 2450 | ||
2451 | /* end of interrupt, re-enables also acts as I/O synchronization */ | ||
2442 | sky2_read32(hw, B0_Y2_SP_LISR); | 2452 | sky2_read32(hw, B0_Y2_SP_LISR); |
2443 | return 0; | 2453 | return 0; |
2444 | } else { | 2454 | } else { |
@@ -2534,17 +2544,6 @@ static int __devinit sky2_init(struct sky2_hw *hw) | |||
2534 | return -EOPNOTSUPP; | 2544 | return -EOPNOTSUPP; |
2535 | } | 2545 | } |
2536 | 2546 | ||
2537 | |||
2538 | /* Some Gigabyte motherboards have 88e8056 but cause problems | ||
2539 | * There is some unresolved hardware related problem that causes | ||
2540 | * descriptor errors and receive data corruption. | ||
2541 | */ | ||
2542 | if (hw->chip_id == CHIP_ID_YUKON_EC_U && dmi_blacklisted) { | ||
2543 | dev_err(&hw->pdev->dev, | ||
2544 | "88E8056 on this motherboard not supported\n"); | ||
2545 | return -EOPNOTSUPP; | ||
2546 | } | ||
2547 | |||
2548 | hw->pmd_type = sky2_read8(hw, B2_PMD_TYP); | 2547 | hw->pmd_type = sky2_read8(hw, B2_PMD_TYP); |
2549 | hw->ports = 1; | 2548 | hw->ports = 1; |
2550 | t8 = sky2_read8(hw, B2_Y2_HW_RES); | 2549 | t8 = sky2_read8(hw, B2_Y2_HW_RES); |
@@ -3910,24 +3909,8 @@ static struct pci_driver sky2_driver = { | |||
3910 | .shutdown = sky2_shutdown, | 3909 | .shutdown = sky2_shutdown, |
3911 | }; | 3910 | }; |
3912 | 3911 | ||
3913 | static struct dmi_system_id __initdata broken_dmi_table[] = { | ||
3914 | { | ||
3915 | .ident = "Gigabyte 965P-S3", | ||
3916 | .matches = { | ||
3917 | DMI_MATCH(DMI_SYS_VENDOR, "Gigabyte Technology Co., Ltd."), | ||
3918 | DMI_MATCH(DMI_PRODUCT_NAME, "965P-S3"), | ||
3919 | |||
3920 | }, | ||
3921 | }, | ||
3922 | { } | ||
3923 | }; | ||
3924 | |||
3925 | static int __init sky2_init_module(void) | 3912 | static int __init sky2_init_module(void) |
3926 | { | 3913 | { |
3927 | /* Look for sick motherboards */ | ||
3928 | if (dmi_check_system(broken_dmi_table)) | ||
3929 | dmi_blacklisted = 1; | ||
3930 | |||
3931 | return pci_register_driver(&sky2_driver); | 3914 | return pci_register_driver(&sky2_driver); |
3932 | } | 3915 | } |
3933 | 3916 | ||
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c index 108adbf5b5eb..c3964c3d89d9 100644 --- a/drivers/net/spider_net.c +++ b/drivers/net/spider_net.c | |||
@@ -430,7 +430,8 @@ spider_net_prepare_rx_descr(struct spider_net_card *card, | |||
430 | /* and we need to have it 128 byte aligned, therefore we allocate a | 430 | /* and we need to have it 128 byte aligned, therefore we allocate a |
431 | * bit more */ | 431 | * bit more */ |
432 | /* allocate an skb */ | 432 | /* allocate an skb */ |
433 | descr->skb = dev_alloc_skb(bufsize + SPIDER_NET_RXBUF_ALIGN - 1); | 433 | descr->skb = netdev_alloc_skb(card->netdev, |
434 | bufsize + SPIDER_NET_RXBUF_ALIGN - 1); | ||
434 | if (!descr->skb) { | 435 | if (!descr->skb) { |
435 | if (netif_msg_rx_err(card) && net_ratelimit()) | 436 | if (netif_msg_rx_err(card) && net_ratelimit()) |
436 | pr_err("Not enough memory to allocate rx buffer\n"); | 437 | pr_err("Not enough memory to allocate rx buffer\n"); |
diff --git a/fs/eventfd.c b/fs/eventfd.c index 480e2b3c4166..2ce19c000d2a 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/eventfd.h> | 17 | #include <linux/eventfd.h> |
18 | 18 | ||
19 | struct eventfd_ctx { | 19 | struct eventfd_ctx { |
20 | spinlock_t lock; | ||
21 | wait_queue_head_t wqh; | 20 | wait_queue_head_t wqh; |
22 | /* | 21 | /* |
23 | * Every time that a write(2) is performed on an eventfd, the | 22 | * Every time that a write(2) is performed on an eventfd, the |
@@ -45,13 +44,13 @@ int eventfd_signal(struct file *file, int n) | |||
45 | 44 | ||
46 | if (n < 0) | 45 | if (n < 0) |
47 | return -EINVAL; | 46 | return -EINVAL; |
48 | spin_lock_irqsave(&ctx->lock, flags); | 47 | spin_lock_irqsave(&ctx->wqh.lock, flags); |
49 | if (ULLONG_MAX - ctx->count < n) | 48 | if (ULLONG_MAX - ctx->count < n) |
50 | n = (int) (ULLONG_MAX - ctx->count); | 49 | n = (int) (ULLONG_MAX - ctx->count); |
51 | ctx->count += n; | 50 | ctx->count += n; |
52 | if (waitqueue_active(&ctx->wqh)) | 51 | if (waitqueue_active(&ctx->wqh)) |
53 | wake_up_locked(&ctx->wqh); | 52 | wake_up_locked(&ctx->wqh); |
54 | spin_unlock_irqrestore(&ctx->lock, flags); | 53 | spin_unlock_irqrestore(&ctx->wqh.lock, flags); |
55 | 54 | ||
56 | return n; | 55 | return n; |
57 | } | 56 | } |
@@ -70,14 +69,14 @@ static unsigned int eventfd_poll(struct file *file, poll_table *wait) | |||
70 | 69 | ||
71 | poll_wait(file, &ctx->wqh, wait); | 70 | poll_wait(file, &ctx->wqh, wait); |
72 | 71 | ||
73 | spin_lock_irqsave(&ctx->lock, flags); | 72 | spin_lock_irqsave(&ctx->wqh.lock, flags); |
74 | if (ctx->count > 0) | 73 | if (ctx->count > 0) |
75 | events |= POLLIN; | 74 | events |= POLLIN; |
76 | if (ctx->count == ULLONG_MAX) | 75 | if (ctx->count == ULLONG_MAX) |
77 | events |= POLLERR; | 76 | events |= POLLERR; |
78 | if (ULLONG_MAX - 1 > ctx->count) | 77 | if (ULLONG_MAX - 1 > ctx->count) |
79 | events |= POLLOUT; | 78 | events |= POLLOUT; |
80 | spin_unlock_irqrestore(&ctx->lock, flags); | 79 | spin_unlock_irqrestore(&ctx->wqh.lock, flags); |
81 | 80 | ||
82 | return events; | 81 | return events; |
83 | } | 82 | } |
@@ -92,7 +91,7 @@ static ssize_t eventfd_read(struct file *file, char __user *buf, size_t count, | |||
92 | 91 | ||
93 | if (count < sizeof(ucnt)) | 92 | if (count < sizeof(ucnt)) |
94 | return -EINVAL; | 93 | return -EINVAL; |
95 | spin_lock_irq(&ctx->lock); | 94 | spin_lock_irq(&ctx->wqh.lock); |
96 | res = -EAGAIN; | 95 | res = -EAGAIN; |
97 | ucnt = ctx->count; | 96 | ucnt = ctx->count; |
98 | if (ucnt > 0) | 97 | if (ucnt > 0) |
@@ -110,9 +109,9 @@ static ssize_t eventfd_read(struct file *file, char __user *buf, size_t count, | |||
110 | res = -ERESTARTSYS; | 109 | res = -ERESTARTSYS; |
111 | break; | 110 | break; |
112 | } | 111 | } |
113 | spin_unlock_irq(&ctx->lock); | 112 | spin_unlock_irq(&ctx->wqh.lock); |
114 | schedule(); | 113 | schedule(); |
115 | spin_lock_irq(&ctx->lock); | 114 | spin_lock_irq(&ctx->wqh.lock); |
116 | } | 115 | } |
117 | __remove_wait_queue(&ctx->wqh, &wait); | 116 | __remove_wait_queue(&ctx->wqh, &wait); |
118 | __set_current_state(TASK_RUNNING); | 117 | __set_current_state(TASK_RUNNING); |
@@ -122,7 +121,7 @@ static ssize_t eventfd_read(struct file *file, char __user *buf, size_t count, | |||
122 | if (waitqueue_active(&ctx->wqh)) | 121 | if (waitqueue_active(&ctx->wqh)) |
123 | wake_up_locked(&ctx->wqh); | 122 | wake_up_locked(&ctx->wqh); |
124 | } | 123 | } |
125 | spin_unlock_irq(&ctx->lock); | 124 | spin_unlock_irq(&ctx->wqh.lock); |
126 | if (res > 0 && put_user(ucnt, (__u64 __user *) buf)) | 125 | if (res > 0 && put_user(ucnt, (__u64 __user *) buf)) |
127 | return -EFAULT; | 126 | return -EFAULT; |
128 | 127 | ||
@@ -143,7 +142,7 @@ static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t c | |||
143 | return -EFAULT; | 142 | return -EFAULT; |
144 | if (ucnt == ULLONG_MAX) | 143 | if (ucnt == ULLONG_MAX) |
145 | return -EINVAL; | 144 | return -EINVAL; |
146 | spin_lock_irq(&ctx->lock); | 145 | spin_lock_irq(&ctx->wqh.lock); |
147 | res = -EAGAIN; | 146 | res = -EAGAIN; |
148 | if (ULLONG_MAX - ctx->count > ucnt) | 147 | if (ULLONG_MAX - ctx->count > ucnt) |
149 | res = sizeof(ucnt); | 148 | res = sizeof(ucnt); |
@@ -159,9 +158,9 @@ static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t c | |||
159 | res = -ERESTARTSYS; | 158 | res = -ERESTARTSYS; |
160 | break; | 159 | break; |
161 | } | 160 | } |
162 | spin_unlock_irq(&ctx->lock); | 161 | spin_unlock_irq(&ctx->wqh.lock); |
163 | schedule(); | 162 | schedule(); |
164 | spin_lock_irq(&ctx->lock); | 163 | spin_lock_irq(&ctx->wqh.lock); |
165 | } | 164 | } |
166 | __remove_wait_queue(&ctx->wqh, &wait); | 165 | __remove_wait_queue(&ctx->wqh, &wait); |
167 | __set_current_state(TASK_RUNNING); | 166 | __set_current_state(TASK_RUNNING); |
@@ -171,7 +170,7 @@ static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t c | |||
171 | if (waitqueue_active(&ctx->wqh)) | 170 | if (waitqueue_active(&ctx->wqh)) |
172 | wake_up_locked(&ctx->wqh); | 171 | wake_up_locked(&ctx->wqh); |
173 | } | 172 | } |
174 | spin_unlock_irq(&ctx->lock); | 173 | spin_unlock_irq(&ctx->wqh.lock); |
175 | 174 | ||
176 | return res; | 175 | return res; |
177 | } | 176 | } |
@@ -210,7 +209,6 @@ asmlinkage long sys_eventfd(unsigned int count) | |||
210 | return -ENOMEM; | 209 | return -ENOMEM; |
211 | 210 | ||
212 | init_waitqueue_head(&ctx->wqh); | 211 | init_waitqueue_head(&ctx->wqh); |
213 | spin_lock_init(&ctx->lock); | ||
214 | ctx->count = count; | 212 | ctx->count = count; |
215 | 213 | ||
216 | /* | 214 | /* |
diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c index f4d45d4d835b..d070b18e539d 100644 --- a/fs/lockd/clntlock.c +++ b/fs/lockd/clntlock.c | |||
@@ -153,7 +153,7 @@ nlmclnt_recovery(struct nlm_host *host) | |||
153 | if (!host->h_reclaiming++) { | 153 | if (!host->h_reclaiming++) { |
154 | nlm_get_host(host); | 154 | nlm_get_host(host); |
155 | __module_get(THIS_MODULE); | 155 | __module_get(THIS_MODULE); |
156 | if (kernel_thread(reclaimer, host, CLONE_KERNEL) < 0) | 156 | if (kernel_thread(reclaimer, host, CLONE_FS | CLONE_FILES) < 0) |
157 | module_put(THIS_MODULE); | 157 | module_put(THIS_MODULE); |
158 | } | 158 | } |
159 | } | 159 | } |
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index ad21c0713efa..96070bff93fc 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
@@ -221,7 +221,7 @@ nlm_bind_host(struct nlm_host *host) | |||
221 | host->h_nextrebind - jiffies); | 221 | host->h_nextrebind - jiffies); |
222 | } | 222 | } |
223 | } else { | 223 | } else { |
224 | unsigned long increment = nlmsvc_timeout * HZ; | 224 | unsigned long increment = nlmsvc_timeout; |
225 | struct rpc_timeout timeparms = { | 225 | struct rpc_timeout timeparms = { |
226 | .to_initval = increment, | 226 | .to_initval = increment, |
227 | .to_increment = increment, | 227 | .to_increment = increment, |
diff --git a/fs/lockd/xdr.c b/fs/lockd/xdr.c index 9702956d206c..5316e307a49d 100644 --- a/fs/lockd/xdr.c +++ b/fs/lockd/xdr.c | |||
@@ -586,10 +586,6 @@ static struct rpc_version nlm_version3 = { | |||
586 | .procs = nlm_procedures, | 586 | .procs = nlm_procedures, |
587 | }; | 587 | }; |
588 | 588 | ||
589 | #ifdef CONFIG_LOCKD_V4 | ||
590 | extern struct rpc_version nlm_version4; | ||
591 | #endif | ||
592 | |||
593 | static struct rpc_version * nlm_versions[] = { | 589 | static struct rpc_version * nlm_versions[] = { |
594 | [1] = &nlm_version1, | 590 | [1] = &nlm_version1, |
595 | [3] = &nlm_version3, | 591 | [3] = &nlm_version3, |
diff --git a/fs/lockd/xdr4.c b/fs/lockd/xdr4.c index ce1efdbe1b3a..846fc1d639dd 100644 --- a/fs/lockd/xdr4.c +++ b/fs/lockd/xdr4.c | |||
@@ -123,7 +123,8 @@ static __be32 * | |||
123 | nlm4_decode_lock(__be32 *p, struct nlm_lock *lock) | 123 | nlm4_decode_lock(__be32 *p, struct nlm_lock *lock) |
124 | { | 124 | { |
125 | struct file_lock *fl = &lock->fl; | 125 | struct file_lock *fl = &lock->fl; |
126 | __s64 len, start, end; | 126 | __u64 len, start; |
127 | __s64 end; | ||
127 | 128 | ||
128 | if (!(p = xdr_decode_string_inplace(p, &lock->caller, | 129 | if (!(p = xdr_decode_string_inplace(p, &lock->caller, |
129 | &lock->len, NLM_MAXSTRLEN)) | 130 | &lock->len, NLM_MAXSTRLEN)) |
@@ -417,7 +418,8 @@ nlm4clt_decode_testres(struct rpc_rqst *req, __be32 *p, struct nlm_res *resp) | |||
417 | if (resp->status == nlm_lck_denied) { | 418 | if (resp->status == nlm_lck_denied) { |
418 | struct file_lock *fl = &resp->lock.fl; | 419 | struct file_lock *fl = &resp->lock.fl; |
419 | u32 excl; | 420 | u32 excl; |
420 | s64 start, end, len; | 421 | __u64 start, len; |
422 | __s64 end; | ||
421 | 423 | ||
422 | memset(&resp->lock, 0, sizeof(resp->lock)); | 424 | memset(&resp->lock, 0, sizeof(resp->lock)); |
423 | locks_init_lock(fl); | 425 | locks_init_lock(fl); |
diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h index db3d7919c601..c2bb14e053e1 100644 --- a/fs/nfs/callback.h +++ b/fs/nfs/callback.h | |||
@@ -24,7 +24,7 @@ enum nfs4_callback_opnum { | |||
24 | }; | 24 | }; |
25 | 25 | ||
26 | struct cb_compound_hdr_arg { | 26 | struct cb_compound_hdr_arg { |
27 | int taglen; | 27 | unsigned int taglen; |
28 | const char *tag; | 28 | const char *tag; |
29 | unsigned int callback_ident; | 29 | unsigned int callback_ident; |
30 | unsigned nops; | 30 | unsigned nops; |
@@ -32,7 +32,7 @@ struct cb_compound_hdr_arg { | |||
32 | 32 | ||
33 | struct cb_compound_hdr_res { | 33 | struct cb_compound_hdr_res { |
34 | __be32 *status; | 34 | __be32 *status; |
35 | int taglen; | 35 | unsigned int taglen; |
36 | const char *tag; | 36 | const char *tag; |
37 | __be32 *nops; | 37 | __be32 *nops; |
38 | }; | 38 | }; |
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index 841c99a9b11c..7f37d1bea83f 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c | |||
@@ -226,7 +226,7 @@ restart: | |||
226 | spin_unlock(&clp->cl_lock); | 226 | spin_unlock(&clp->cl_lock); |
227 | } | 227 | } |
228 | 228 | ||
229 | int nfs_do_expire_all_delegations(void *ptr) | 229 | static int nfs_do_expire_all_delegations(void *ptr) |
230 | { | 230 | { |
231 | struct nfs_client *clp = ptr; | 231 | struct nfs_client *clp = ptr; |
232 | struct nfs_delegation *delegation; | 232 | struct nfs_delegation *delegation; |
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 3df428816559..ac92e45432a3 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -607,7 +607,7 @@ static int nfs_readdir(struct file *filp, void *dirent, filldir_t filldir) | |||
607 | return res; | 607 | return res; |
608 | } | 608 | } |
609 | 609 | ||
610 | loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int origin) | 610 | static loff_t nfs_llseek_dir(struct file *filp, loff_t offset, int origin) |
611 | { | 611 | { |
612 | mutex_lock(&filp->f_path.dentry->d_inode->i_mutex); | 612 | mutex_lock(&filp->f_path.dentry->d_inode->i_mutex); |
613 | switch (origin) { | 613 | switch (origin) { |
@@ -633,7 +633,7 @@ out: | |||
633 | * All directory operations under NFS are synchronous, so fsync() | 633 | * All directory operations under NFS are synchronous, so fsync() |
634 | * is a dummy operation. | 634 | * is a dummy operation. |
635 | */ | 635 | */ |
636 | int nfs_fsync_dir(struct file *filp, struct dentry *dentry, int datasync) | 636 | static int nfs_fsync_dir(struct file *filp, struct dentry *dentry, int datasync) |
637 | { | 637 | { |
638 | dfprintk(VFS, "NFS: fsync_dir(%s/%s) datasync %d\n", | 638 | dfprintk(VFS, "NFS: fsync_dir(%s/%s) datasync %d\n", |
639 | dentry->d_parent->d_name.name, dentry->d_name.name, | 639 | dentry->d_parent->d_name.name, dentry->d_name.name, |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index d6a30e965787..648e0ac0f90e 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -790,7 +790,7 @@ out: | |||
790 | return -EACCES; | 790 | return -EACCES; |
791 | } | 791 | } |
792 | 792 | ||
793 | int nfs4_recover_expired_lease(struct nfs_server *server) | 793 | static int nfs4_recover_expired_lease(struct nfs_server *server) |
794 | { | 794 | { |
795 | struct nfs_client *clp = server->nfs_client; | 795 | struct nfs_client *clp = server->nfs_client; |
796 | int ret; | 796 | int ret; |
@@ -2748,7 +2748,7 @@ static int nfs4_delay(struct rpc_clnt *clnt, long *timeout) | |||
2748 | /* This is the error handling routine for processes that are allowed | 2748 | /* This is the error handling routine for processes that are allowed |
2749 | * to sleep. | 2749 | * to sleep. |
2750 | */ | 2750 | */ |
2751 | int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception) | 2751 | static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception) |
2752 | { | 2752 | { |
2753 | struct nfs_client *clp = server->nfs_client; | 2753 | struct nfs_client *clp = server->nfs_client; |
2754 | int ret = errorcode; | 2754 | int ret = errorcode; |
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 5fffbdfa971f..8ed79d5c54f9 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -104,7 +104,7 @@ struct rpc_cred *nfs4_get_renew_cred(struct nfs_client *clp) | |||
104 | return cred; | 104 | return cred; |
105 | } | 105 | } |
106 | 106 | ||
107 | struct rpc_cred *nfs4_get_setclientid_cred(struct nfs_client *clp) | 107 | static struct rpc_cred *nfs4_get_setclientid_cred(struct nfs_client *clp) |
108 | { | 108 | { |
109 | struct nfs4_state_owner *sp; | 109 | struct nfs4_state_owner *sp; |
110 | 110 | ||
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index 938f37166788..8003c91ccb9a 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -646,10 +646,10 @@ static int encode_close(struct xdr_stream *xdr, const struct nfs_closeargs *arg) | |||
646 | { | 646 | { |
647 | __be32 *p; | 647 | __be32 *p; |
648 | 648 | ||
649 | RESERVE_SPACE(8+sizeof(arg->stateid->data)); | 649 | RESERVE_SPACE(8+NFS4_STATEID_SIZE); |
650 | WRITE32(OP_CLOSE); | 650 | WRITE32(OP_CLOSE); |
651 | WRITE32(arg->seqid->sequence->counter); | 651 | WRITE32(arg->seqid->sequence->counter); |
652 | WRITEMEM(arg->stateid->data, sizeof(arg->stateid->data)); | 652 | WRITEMEM(arg->stateid->data, NFS4_STATEID_SIZE); |
653 | 653 | ||
654 | return 0; | 654 | return 0; |
655 | } | 655 | } |
@@ -793,17 +793,17 @@ static int encode_lock(struct xdr_stream *xdr, const struct nfs_lock_args *args) | |||
793 | WRITE64(nfs4_lock_length(args->fl)); | 793 | WRITE64(nfs4_lock_length(args->fl)); |
794 | WRITE32(args->new_lock_owner); | 794 | WRITE32(args->new_lock_owner); |
795 | if (args->new_lock_owner){ | 795 | if (args->new_lock_owner){ |
796 | RESERVE_SPACE(40); | 796 | RESERVE_SPACE(4+NFS4_STATEID_SIZE+20); |
797 | WRITE32(args->open_seqid->sequence->counter); | 797 | WRITE32(args->open_seqid->sequence->counter); |
798 | WRITEMEM(args->open_stateid->data, sizeof(args->open_stateid->data)); | 798 | WRITEMEM(args->open_stateid->data, NFS4_STATEID_SIZE); |
799 | WRITE32(args->lock_seqid->sequence->counter); | 799 | WRITE32(args->lock_seqid->sequence->counter); |
800 | WRITE64(args->lock_owner.clientid); | 800 | WRITE64(args->lock_owner.clientid); |
801 | WRITE32(4); | 801 | WRITE32(4); |
802 | WRITE32(args->lock_owner.id); | 802 | WRITE32(args->lock_owner.id); |
803 | } | 803 | } |
804 | else { | 804 | else { |
805 | RESERVE_SPACE(20); | 805 | RESERVE_SPACE(NFS4_STATEID_SIZE+4); |
806 | WRITEMEM(args->lock_stateid->data, sizeof(args->lock_stateid->data)); | 806 | WRITEMEM(args->lock_stateid->data, NFS4_STATEID_SIZE); |
807 | WRITE32(args->lock_seqid->sequence->counter); | 807 | WRITE32(args->lock_seqid->sequence->counter); |
808 | } | 808 | } |
809 | 809 | ||
@@ -830,11 +830,11 @@ static int encode_locku(struct xdr_stream *xdr, const struct nfs_locku_args *arg | |||
830 | { | 830 | { |
831 | __be32 *p; | 831 | __be32 *p; |
832 | 832 | ||
833 | RESERVE_SPACE(44); | 833 | RESERVE_SPACE(12+NFS4_STATEID_SIZE+16); |
834 | WRITE32(OP_LOCKU); | 834 | WRITE32(OP_LOCKU); |
835 | WRITE32(nfs4_lock_type(args->fl, 0)); | 835 | WRITE32(nfs4_lock_type(args->fl, 0)); |
836 | WRITE32(args->seqid->sequence->counter); | 836 | WRITE32(args->seqid->sequence->counter); |
837 | WRITEMEM(args->stateid->data, sizeof(args->stateid->data)); | 837 | WRITEMEM(args->stateid->data, NFS4_STATEID_SIZE); |
838 | WRITE64(args->fl->fl_start); | 838 | WRITE64(args->fl->fl_start); |
839 | WRITE64(nfs4_lock_length(args->fl)); | 839 | WRITE64(nfs4_lock_length(args->fl)); |
840 | 840 | ||
@@ -966,9 +966,9 @@ static inline void encode_claim_delegate_cur(struct xdr_stream *xdr, const struc | |||
966 | { | 966 | { |
967 | __be32 *p; | 967 | __be32 *p; |
968 | 968 | ||
969 | RESERVE_SPACE(4+sizeof(stateid->data)); | 969 | RESERVE_SPACE(4+NFS4_STATEID_SIZE); |
970 | WRITE32(NFS4_OPEN_CLAIM_DELEGATE_CUR); | 970 | WRITE32(NFS4_OPEN_CLAIM_DELEGATE_CUR); |
971 | WRITEMEM(stateid->data, sizeof(stateid->data)); | 971 | WRITEMEM(stateid->data, NFS4_STATEID_SIZE); |
972 | encode_string(xdr, name->len, name->name); | 972 | encode_string(xdr, name->len, name->name); |
973 | } | 973 | } |
974 | 974 | ||
@@ -996,9 +996,9 @@ static int encode_open_confirm(struct xdr_stream *xdr, const struct nfs_open_con | |||
996 | { | 996 | { |
997 | __be32 *p; | 997 | __be32 *p; |
998 | 998 | ||
999 | RESERVE_SPACE(8+sizeof(arg->stateid->data)); | 999 | RESERVE_SPACE(4+NFS4_STATEID_SIZE+4); |
1000 | WRITE32(OP_OPEN_CONFIRM); | 1000 | WRITE32(OP_OPEN_CONFIRM); |
1001 | WRITEMEM(arg->stateid->data, sizeof(arg->stateid->data)); | 1001 | WRITEMEM(arg->stateid->data, NFS4_STATEID_SIZE); |
1002 | WRITE32(arg->seqid->sequence->counter); | 1002 | WRITE32(arg->seqid->sequence->counter); |
1003 | 1003 | ||
1004 | return 0; | 1004 | return 0; |
@@ -1008,9 +1008,9 @@ static int encode_open_downgrade(struct xdr_stream *xdr, const struct nfs_closea | |||
1008 | { | 1008 | { |
1009 | __be32 *p; | 1009 | __be32 *p; |
1010 | 1010 | ||
1011 | RESERVE_SPACE(8+sizeof(arg->stateid->data)); | 1011 | RESERVE_SPACE(4+NFS4_STATEID_SIZE+4); |
1012 | WRITE32(OP_OPEN_DOWNGRADE); | 1012 | WRITE32(OP_OPEN_DOWNGRADE); |
1013 | WRITEMEM(arg->stateid->data, sizeof(arg->stateid->data)); | 1013 | WRITEMEM(arg->stateid->data, NFS4_STATEID_SIZE); |
1014 | WRITE32(arg->seqid->sequence->counter); | 1014 | WRITE32(arg->seqid->sequence->counter); |
1015 | encode_share_access(xdr, arg->open_flags); | 1015 | encode_share_access(xdr, arg->open_flags); |
1016 | return 0; | 1016 | return 0; |
@@ -1045,12 +1045,12 @@ static void encode_stateid(struct xdr_stream *xdr, const struct nfs_open_context | |||
1045 | nfs4_stateid stateid; | 1045 | nfs4_stateid stateid; |
1046 | __be32 *p; | 1046 | __be32 *p; |
1047 | 1047 | ||
1048 | RESERVE_SPACE(16); | 1048 | RESERVE_SPACE(NFS4_STATEID_SIZE); |
1049 | if (ctx->state != NULL) { | 1049 | if (ctx->state != NULL) { |
1050 | nfs4_copy_stateid(&stateid, ctx->state, ctx->lockowner); | 1050 | nfs4_copy_stateid(&stateid, ctx->state, ctx->lockowner); |
1051 | WRITEMEM(stateid.data, sizeof(stateid.data)); | 1051 | WRITEMEM(stateid.data, NFS4_STATEID_SIZE); |
1052 | } else | 1052 | } else |
1053 | WRITEMEM(zero_stateid.data, sizeof(zero_stateid.data)); | 1053 | WRITEMEM(zero_stateid.data, NFS4_STATEID_SIZE); |
1054 | } | 1054 | } |
1055 | 1055 | ||
1056 | static int encode_read(struct xdr_stream *xdr, const struct nfs_readargs *args) | 1056 | static int encode_read(struct xdr_stream *xdr, const struct nfs_readargs *args) |
@@ -1079,10 +1079,10 @@ static int encode_readdir(struct xdr_stream *xdr, const struct nfs4_readdir_arg | |||
1079 | int replen; | 1079 | int replen; |
1080 | __be32 *p; | 1080 | __be32 *p; |
1081 | 1081 | ||
1082 | RESERVE_SPACE(32+sizeof(nfs4_verifier)); | 1082 | RESERVE_SPACE(12+NFS4_VERIFIER_SIZE+20); |
1083 | WRITE32(OP_READDIR); | 1083 | WRITE32(OP_READDIR); |
1084 | WRITE64(readdir->cookie); | 1084 | WRITE64(readdir->cookie); |
1085 | WRITEMEM(readdir->verifier.data, sizeof(readdir->verifier.data)); | 1085 | WRITEMEM(readdir->verifier.data, NFS4_VERIFIER_SIZE); |
1086 | WRITE32(readdir->count >> 1); /* We're not doing readdirplus */ | 1086 | WRITE32(readdir->count >> 1); /* We're not doing readdirplus */ |
1087 | WRITE32(readdir->count); | 1087 | WRITE32(readdir->count); |
1088 | WRITE32(2); | 1088 | WRITE32(2); |
@@ -1190,9 +1190,9 @@ encode_setacl(struct xdr_stream *xdr, struct nfs_setaclargs *arg) | |||
1190 | { | 1190 | { |
1191 | __be32 *p; | 1191 | __be32 *p; |
1192 | 1192 | ||
1193 | RESERVE_SPACE(4+sizeof(zero_stateid.data)); | 1193 | RESERVE_SPACE(4+NFS4_STATEID_SIZE); |
1194 | WRITE32(OP_SETATTR); | 1194 | WRITE32(OP_SETATTR); |
1195 | WRITEMEM(zero_stateid.data, sizeof(zero_stateid.data)); | 1195 | WRITEMEM(zero_stateid.data, NFS4_STATEID_SIZE); |
1196 | RESERVE_SPACE(2*4); | 1196 | RESERVE_SPACE(2*4); |
1197 | WRITE32(1); | 1197 | WRITE32(1); |
1198 | WRITE32(FATTR4_WORD0_ACL); | 1198 | WRITE32(FATTR4_WORD0_ACL); |
@@ -1220,9 +1220,9 @@ static int encode_setattr(struct xdr_stream *xdr, const struct nfs_setattrargs * | |||
1220 | int status; | 1220 | int status; |
1221 | __be32 *p; | 1221 | __be32 *p; |
1222 | 1222 | ||
1223 | RESERVE_SPACE(4+sizeof(arg->stateid.data)); | 1223 | RESERVE_SPACE(4+NFS4_STATEID_SIZE); |
1224 | WRITE32(OP_SETATTR); | 1224 | WRITE32(OP_SETATTR); |
1225 | WRITEMEM(arg->stateid.data, sizeof(arg->stateid.data)); | 1225 | WRITEMEM(arg->stateid.data, NFS4_STATEID_SIZE); |
1226 | 1226 | ||
1227 | if ((status = encode_attrs(xdr, arg->iap, server))) | 1227 | if ((status = encode_attrs(xdr, arg->iap, server))) |
1228 | return status; | 1228 | return status; |
@@ -1234,9 +1234,9 @@ static int encode_setclientid(struct xdr_stream *xdr, const struct nfs4_setclien | |||
1234 | { | 1234 | { |
1235 | __be32 *p; | 1235 | __be32 *p; |
1236 | 1236 | ||
1237 | RESERVE_SPACE(4 + sizeof(setclientid->sc_verifier->data)); | 1237 | RESERVE_SPACE(4 + NFS4_VERIFIER_SIZE); |
1238 | WRITE32(OP_SETCLIENTID); | 1238 | WRITE32(OP_SETCLIENTID); |
1239 | WRITEMEM(setclientid->sc_verifier->data, sizeof(setclientid->sc_verifier->data)); | 1239 | WRITEMEM(setclientid->sc_verifier->data, NFS4_VERIFIER_SIZE); |
1240 | 1240 | ||
1241 | encode_string(xdr, setclientid->sc_name_len, setclientid->sc_name); | 1241 | encode_string(xdr, setclientid->sc_name_len, setclientid->sc_name); |
1242 | RESERVE_SPACE(4); | 1242 | RESERVE_SPACE(4); |
@@ -1253,10 +1253,10 @@ static int encode_setclientid_confirm(struct xdr_stream *xdr, const struct nfs_c | |||
1253 | { | 1253 | { |
1254 | __be32 *p; | 1254 | __be32 *p; |
1255 | 1255 | ||
1256 | RESERVE_SPACE(12 + sizeof(client_state->cl_confirm.data)); | 1256 | RESERVE_SPACE(12 + NFS4_VERIFIER_SIZE); |
1257 | WRITE32(OP_SETCLIENTID_CONFIRM); | 1257 | WRITE32(OP_SETCLIENTID_CONFIRM); |
1258 | WRITE64(client_state->cl_clientid); | 1258 | WRITE64(client_state->cl_clientid); |
1259 | WRITEMEM(client_state->cl_confirm.data, sizeof(client_state->cl_confirm.data)); | 1259 | WRITEMEM(client_state->cl_confirm.data, NFS4_VERIFIER_SIZE); |
1260 | 1260 | ||
1261 | return 0; | 1261 | return 0; |
1262 | } | 1262 | } |
@@ -1284,10 +1284,10 @@ static int encode_delegreturn(struct xdr_stream *xdr, const nfs4_stateid *statei | |||
1284 | { | 1284 | { |
1285 | __be32 *p; | 1285 | __be32 *p; |
1286 | 1286 | ||
1287 | RESERVE_SPACE(20); | 1287 | RESERVE_SPACE(4+NFS4_STATEID_SIZE); |
1288 | 1288 | ||
1289 | WRITE32(OP_DELEGRETURN); | 1289 | WRITE32(OP_DELEGRETURN); |
1290 | WRITEMEM(stateid->data, sizeof(stateid->data)); | 1290 | WRITEMEM(stateid->data, NFS4_STATEID_SIZE); |
1291 | return 0; | 1291 | return 0; |
1292 | 1292 | ||
1293 | } | 1293 | } |
@@ -2494,7 +2494,7 @@ static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, st | |||
2494 | int i; | 2494 | int i; |
2495 | dprintk("%s: using first %d of %d servers returned for location %d\n", __FUNCTION__, NFS4_FS_LOCATION_MAXSERVERS, m, res->nlocations); | 2495 | dprintk("%s: using first %d of %d servers returned for location %d\n", __FUNCTION__, NFS4_FS_LOCATION_MAXSERVERS, m, res->nlocations); |
2496 | for (i = loc->nservers; i < m; i++) { | 2496 | for (i = loc->nservers; i < m; i++) { |
2497 | int len; | 2497 | unsigned int len; |
2498 | char *data; | 2498 | char *data; |
2499 | status = decode_opaque_inline(xdr, &len, &data); | 2499 | status = decode_opaque_inline(xdr, &len, &data); |
2500 | if (unlikely(status != 0)) | 2500 | if (unlikely(status != 0)) |
@@ -2642,7 +2642,7 @@ static int decode_attr_nlink(struct xdr_stream *xdr, uint32_t *bitmap, uint32_t | |||
2642 | return 0; | 2642 | return 0; |
2643 | } | 2643 | } |
2644 | 2644 | ||
2645 | static int decode_attr_owner(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_client *clp, int32_t *uid) | 2645 | static int decode_attr_owner(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_client *clp, uint32_t *uid) |
2646 | { | 2646 | { |
2647 | uint32_t len; | 2647 | uint32_t len; |
2648 | __be32 *p; | 2648 | __be32 *p; |
@@ -2667,7 +2667,7 @@ static int decode_attr_owner(struct xdr_stream *xdr, uint32_t *bitmap, struct nf | |||
2667 | return 0; | 2667 | return 0; |
2668 | } | 2668 | } |
2669 | 2669 | ||
2670 | static int decode_attr_group(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_client *clp, int32_t *gid) | 2670 | static int decode_attr_group(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_client *clp, uint32_t *gid) |
2671 | { | 2671 | { |
2672 | uint32_t len; | 2672 | uint32_t len; |
2673 | __be32 *p; | 2673 | __be32 *p; |
@@ -2897,8 +2897,8 @@ static int decode_close(struct xdr_stream *xdr, struct nfs_closeres *res) | |||
2897 | status = decode_op_hdr(xdr, OP_CLOSE); | 2897 | status = decode_op_hdr(xdr, OP_CLOSE); |
2898 | if (status) | 2898 | if (status) |
2899 | return status; | 2899 | return status; |
2900 | READ_BUF(sizeof(res->stateid.data)); | 2900 | READ_BUF(NFS4_STATEID_SIZE); |
2901 | COPYMEM(res->stateid.data, sizeof(res->stateid.data)); | 2901 | COPYMEM(res->stateid.data, NFS4_STATEID_SIZE); |
2902 | return 0; | 2902 | return 0; |
2903 | } | 2903 | } |
2904 | 2904 | ||
@@ -3186,8 +3186,8 @@ static int decode_lock(struct xdr_stream *xdr, struct nfs_lock_res *res) | |||
3186 | 3186 | ||
3187 | status = decode_op_hdr(xdr, OP_LOCK); | 3187 | status = decode_op_hdr(xdr, OP_LOCK); |
3188 | if (status == 0) { | 3188 | if (status == 0) { |
3189 | READ_BUF(sizeof(res->stateid.data)); | 3189 | READ_BUF(NFS4_STATEID_SIZE); |
3190 | COPYMEM(res->stateid.data, sizeof(res->stateid.data)); | 3190 | COPYMEM(res->stateid.data, NFS4_STATEID_SIZE); |
3191 | } else if (status == -NFS4ERR_DENIED) | 3191 | } else if (status == -NFS4ERR_DENIED) |
3192 | return decode_lock_denied(xdr, NULL); | 3192 | return decode_lock_denied(xdr, NULL); |
3193 | return status; | 3193 | return status; |
@@ -3209,8 +3209,8 @@ static int decode_locku(struct xdr_stream *xdr, struct nfs_locku_res *res) | |||
3209 | 3209 | ||
3210 | status = decode_op_hdr(xdr, OP_LOCKU); | 3210 | status = decode_op_hdr(xdr, OP_LOCKU); |
3211 | if (status == 0) { | 3211 | if (status == 0) { |
3212 | READ_BUF(sizeof(res->stateid.data)); | 3212 | READ_BUF(NFS4_STATEID_SIZE); |
3213 | COPYMEM(res->stateid.data, sizeof(res->stateid.data)); | 3213 | COPYMEM(res->stateid.data, NFS4_STATEID_SIZE); |
3214 | } | 3214 | } |
3215 | return status; | 3215 | return status; |
3216 | } | 3216 | } |
@@ -3251,8 +3251,8 @@ static int decode_delegation(struct xdr_stream *xdr, struct nfs_openres *res) | |||
3251 | res->delegation_type = 0; | 3251 | res->delegation_type = 0; |
3252 | return 0; | 3252 | return 0; |
3253 | } | 3253 | } |
3254 | READ_BUF(20); | 3254 | READ_BUF(NFS4_STATEID_SIZE+4); |
3255 | COPYMEM(res->delegation.data, sizeof(res->delegation.data)); | 3255 | COPYMEM(res->delegation.data, NFS4_STATEID_SIZE); |
3256 | READ32(res->do_recall); | 3256 | READ32(res->do_recall); |
3257 | switch (delegation_type) { | 3257 | switch (delegation_type) { |
3258 | case NFS4_OPEN_DELEGATE_READ: | 3258 | case NFS4_OPEN_DELEGATE_READ: |
@@ -3275,8 +3275,8 @@ static int decode_open(struct xdr_stream *xdr, struct nfs_openres *res) | |||
3275 | status = decode_op_hdr(xdr, OP_OPEN); | 3275 | status = decode_op_hdr(xdr, OP_OPEN); |
3276 | if (status) | 3276 | if (status) |
3277 | return status; | 3277 | return status; |
3278 | READ_BUF(sizeof(res->stateid.data)); | 3278 | READ_BUF(NFS4_STATEID_SIZE); |
3279 | COPYMEM(res->stateid.data, sizeof(res->stateid.data)); | 3279 | COPYMEM(res->stateid.data, NFS4_STATEID_SIZE); |
3280 | 3280 | ||
3281 | decode_change_info(xdr, &res->cinfo); | 3281 | decode_change_info(xdr, &res->cinfo); |
3282 | 3282 | ||
@@ -3302,8 +3302,8 @@ static int decode_open_confirm(struct xdr_stream *xdr, struct nfs_open_confirmre | |||
3302 | status = decode_op_hdr(xdr, OP_OPEN_CONFIRM); | 3302 | status = decode_op_hdr(xdr, OP_OPEN_CONFIRM); |
3303 | if (status) | 3303 | if (status) |
3304 | return status; | 3304 | return status; |
3305 | READ_BUF(sizeof(res->stateid.data)); | 3305 | READ_BUF(NFS4_STATEID_SIZE); |
3306 | COPYMEM(res->stateid.data, sizeof(res->stateid.data)); | 3306 | COPYMEM(res->stateid.data, NFS4_STATEID_SIZE); |
3307 | return 0; | 3307 | return 0; |
3308 | } | 3308 | } |
3309 | 3309 | ||
@@ -3315,8 +3315,8 @@ static int decode_open_downgrade(struct xdr_stream *xdr, struct nfs_closeres *re | |||
3315 | status = decode_op_hdr(xdr, OP_OPEN_DOWNGRADE); | 3315 | status = decode_op_hdr(xdr, OP_OPEN_DOWNGRADE); |
3316 | if (status) | 3316 | if (status) |
3317 | return status; | 3317 | return status; |
3318 | READ_BUF(sizeof(res->stateid.data)); | 3318 | READ_BUF(NFS4_STATEID_SIZE); |
3319 | COPYMEM(res->stateid.data, sizeof(res->stateid.data)); | 3319 | COPYMEM(res->stateid.data, NFS4_STATEID_SIZE); |
3320 | return 0; | 3320 | return 0; |
3321 | } | 3321 | } |
3322 | 3322 | ||
@@ -3590,9 +3590,9 @@ static int decode_setclientid(struct xdr_stream *xdr, struct nfs_client *clp) | |||
3590 | } | 3590 | } |
3591 | READ32(nfserr); | 3591 | READ32(nfserr); |
3592 | if (nfserr == NFS_OK) { | 3592 | if (nfserr == NFS_OK) { |
3593 | READ_BUF(8 + sizeof(clp->cl_confirm.data)); | 3593 | READ_BUF(8 + NFS4_VERIFIER_SIZE); |
3594 | READ64(clp->cl_clientid); | 3594 | READ64(clp->cl_clientid); |
3595 | COPYMEM(clp->cl_confirm.data, sizeof(clp->cl_confirm.data)); | 3595 | COPYMEM(clp->cl_confirm.data, NFS4_VERIFIER_SIZE); |
3596 | } else if (nfserr == NFSERR_CLID_INUSE) { | 3596 | } else if (nfserr == NFSERR_CLID_INUSE) { |
3597 | uint32_t len; | 3597 | uint32_t len; |
3598 | 3598 | ||
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 9a55807b2a70..7bd7cb95c034 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -79,7 +79,7 @@ void nfs_readdata_release(void *data) | |||
79 | static | 79 | static |
80 | int nfs_return_empty_page(struct page *page) | 80 | int nfs_return_empty_page(struct page *page) |
81 | { | 81 | { |
82 | memclear_highpage_flush(page, 0, PAGE_CACHE_SIZE); | 82 | zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); |
83 | SetPageUptodate(page); | 83 | SetPageUptodate(page); |
84 | unlock_page(page); | 84 | unlock_page(page); |
85 | return 0; | 85 | return 0; |
@@ -103,10 +103,10 @@ static void nfs_readpage_truncate_uninitialised_page(struct nfs_read_data *data) | |||
103 | pglen = PAGE_CACHE_SIZE - base; | 103 | pglen = PAGE_CACHE_SIZE - base; |
104 | for (;;) { | 104 | for (;;) { |
105 | if (remainder <= pglen) { | 105 | if (remainder <= pglen) { |
106 | memclear_highpage_flush(*pages, base, remainder); | 106 | zero_user_page(*pages, base, remainder, KM_USER0); |
107 | break; | 107 | break; |
108 | } | 108 | } |
109 | memclear_highpage_flush(*pages, base, pglen); | 109 | zero_user_page(*pages, base, pglen, KM_USER0); |
110 | pages++; | 110 | pages++; |
111 | remainder -= pglen; | 111 | remainder -= pglen; |
112 | pglen = PAGE_CACHE_SIZE; | 112 | pglen = PAGE_CACHE_SIZE; |
@@ -130,7 +130,7 @@ static int nfs_readpage_async(struct nfs_open_context *ctx, struct inode *inode, | |||
130 | return PTR_ERR(new); | 130 | return PTR_ERR(new); |
131 | } | 131 | } |
132 | if (len < PAGE_CACHE_SIZE) | 132 | if (len < PAGE_CACHE_SIZE) |
133 | memclear_highpage_flush(page, len, PAGE_CACHE_SIZE - len); | 133 | zero_user_page(page, len, PAGE_CACHE_SIZE - len, KM_USER0); |
134 | 134 | ||
135 | nfs_list_add_request(new, &one_request); | 135 | nfs_list_add_request(new, &one_request); |
136 | if (NFS_SERVER(inode)->rsize < PAGE_CACHE_SIZE) | 136 | if (NFS_SERVER(inode)->rsize < PAGE_CACHE_SIZE) |
@@ -532,7 +532,7 @@ readpage_async_filler(void *data, struct page *page) | |||
532 | return PTR_ERR(new); | 532 | return PTR_ERR(new); |
533 | } | 533 | } |
534 | if (len < PAGE_CACHE_SIZE) | 534 | if (len < PAGE_CACHE_SIZE) |
535 | memclear_highpage_flush(page, len, PAGE_CACHE_SIZE - len); | 535 | zero_user_page(page, len, PAGE_CACHE_SIZE - len, KM_USER0); |
536 | nfs_pageio_add_request(desc->pgio, new); | 536 | nfs_pageio_add_request(desc->pgio, new); |
537 | return 0; | 537 | return 0; |
538 | } | 538 | } |
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index de92b9509d94..b084c03ce493 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -58,7 +58,7 @@ struct nfs_write_data *nfs_commit_alloc(void) | |||
58 | return p; | 58 | return p; |
59 | } | 59 | } |
60 | 60 | ||
61 | void nfs_commit_rcu_free(struct rcu_head *head) | 61 | static void nfs_commit_rcu_free(struct rcu_head *head) |
62 | { | 62 | { |
63 | struct nfs_write_data *p = container_of(head, struct nfs_write_data, task.u.tk_rcu); | 63 | struct nfs_write_data *p = container_of(head, struct nfs_write_data, task.u.tk_rcu); |
64 | if (p && (p->pagevec != &p->page_array[0])) | 64 | if (p && (p->pagevec != &p->page_array[0])) |
@@ -168,7 +168,7 @@ static void nfs_mark_uptodate(struct page *page, unsigned int base, unsigned int | |||
168 | if (count != nfs_page_length(page)) | 168 | if (count != nfs_page_length(page)) |
169 | return; | 169 | return; |
170 | if (count != PAGE_CACHE_SIZE) | 170 | if (count != PAGE_CACHE_SIZE) |
171 | memclear_highpage_flush(page, count, PAGE_CACHE_SIZE - count); | 171 | zero_user_page(page, count, PAGE_CACHE_SIZE - count, KM_USER0); |
172 | SetPageUptodate(page); | 172 | SetPageUptodate(page); |
173 | } | 173 | } |
174 | 174 | ||
@@ -922,7 +922,7 @@ static int nfs_flush_one(struct inode *inode, struct list_head *head, unsigned i | |||
922 | return 0; | 922 | return 0; |
923 | out_bad: | 923 | out_bad: |
924 | while (!list_empty(head)) { | 924 | while (!list_empty(head)) { |
925 | struct nfs_page *req = nfs_list_entry(head->next); | 925 | req = nfs_list_entry(head->next); |
926 | nfs_list_remove_request(req); | 926 | nfs_list_remove_request(req); |
927 | nfs_redirty_request(req); | 927 | nfs_redirty_request(req); |
928 | nfs_end_page_writeback(req->wb_page); | 928 | nfs_end_page_writeback(req->wb_page); |
diff --git a/fs/timerfd.c b/fs/timerfd.c index e329e37f15a8..af9eca5c0230 100644 --- a/fs/timerfd.c +++ b/fs/timerfd.c | |||
@@ -24,7 +24,6 @@ | |||
24 | struct timerfd_ctx { | 24 | struct timerfd_ctx { |
25 | struct hrtimer tmr; | 25 | struct hrtimer tmr; |
26 | ktime_t tintv; | 26 | ktime_t tintv; |
27 | spinlock_t lock; | ||
28 | wait_queue_head_t wqh; | 27 | wait_queue_head_t wqh; |
29 | int expired; | 28 | int expired; |
30 | }; | 29 | }; |
@@ -39,10 +38,10 @@ static enum hrtimer_restart timerfd_tmrproc(struct hrtimer *htmr) | |||
39 | struct timerfd_ctx *ctx = container_of(htmr, struct timerfd_ctx, tmr); | 38 | struct timerfd_ctx *ctx = container_of(htmr, struct timerfd_ctx, tmr); |
40 | unsigned long flags; | 39 | unsigned long flags; |
41 | 40 | ||
42 | spin_lock_irqsave(&ctx->lock, flags); | 41 | spin_lock_irqsave(&ctx->wqh.lock, flags); |
43 | ctx->expired = 1; | 42 | ctx->expired = 1; |
44 | wake_up_locked(&ctx->wqh); | 43 | wake_up_locked(&ctx->wqh); |
45 | spin_unlock_irqrestore(&ctx->lock, flags); | 44 | spin_unlock_irqrestore(&ctx->wqh.lock, flags); |
46 | 45 | ||
47 | return HRTIMER_NORESTART; | 46 | return HRTIMER_NORESTART; |
48 | } | 47 | } |
@@ -83,10 +82,10 @@ static unsigned int timerfd_poll(struct file *file, poll_table *wait) | |||
83 | 82 | ||
84 | poll_wait(file, &ctx->wqh, wait); | 83 | poll_wait(file, &ctx->wqh, wait); |
85 | 84 | ||
86 | spin_lock_irqsave(&ctx->lock, flags); | 85 | spin_lock_irqsave(&ctx->wqh.lock, flags); |
87 | if (ctx->expired) | 86 | if (ctx->expired) |
88 | events |= POLLIN; | 87 | events |= POLLIN; |
89 | spin_unlock_irqrestore(&ctx->lock, flags); | 88 | spin_unlock_irqrestore(&ctx->wqh.lock, flags); |
90 | 89 | ||
91 | return events; | 90 | return events; |
92 | } | 91 | } |
@@ -101,7 +100,7 @@ static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, | |||
101 | 100 | ||
102 | if (count < sizeof(ticks)) | 101 | if (count < sizeof(ticks)) |
103 | return -EINVAL; | 102 | return -EINVAL; |
104 | spin_lock_irq(&ctx->lock); | 103 | spin_lock_irq(&ctx->wqh.lock); |
105 | res = -EAGAIN; | 104 | res = -EAGAIN; |
106 | if (!ctx->expired && !(file->f_flags & O_NONBLOCK)) { | 105 | if (!ctx->expired && !(file->f_flags & O_NONBLOCK)) { |
107 | __add_wait_queue(&ctx->wqh, &wait); | 106 | __add_wait_queue(&ctx->wqh, &wait); |
@@ -115,9 +114,9 @@ static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, | |||
115 | res = -ERESTARTSYS; | 114 | res = -ERESTARTSYS; |
116 | break; | 115 | break; |
117 | } | 116 | } |
118 | spin_unlock_irq(&ctx->lock); | 117 | spin_unlock_irq(&ctx->wqh.lock); |
119 | schedule(); | 118 | schedule(); |
120 | spin_lock_irq(&ctx->lock); | 119 | spin_lock_irq(&ctx->wqh.lock); |
121 | } | 120 | } |
122 | __remove_wait_queue(&ctx->wqh, &wait); | 121 | __remove_wait_queue(&ctx->wqh, &wait); |
123 | __set_current_state(TASK_RUNNING); | 122 | __set_current_state(TASK_RUNNING); |
@@ -139,7 +138,7 @@ static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, | |||
139 | } else | 138 | } else |
140 | ticks = 1; | 139 | ticks = 1; |
141 | } | 140 | } |
142 | spin_unlock_irq(&ctx->lock); | 141 | spin_unlock_irq(&ctx->wqh.lock); |
143 | if (ticks) | 142 | if (ticks) |
144 | res = put_user(ticks, buf) ? -EFAULT: sizeof(ticks); | 143 | res = put_user(ticks, buf) ? -EFAULT: sizeof(ticks); |
145 | return res; | 144 | return res; |
@@ -176,7 +175,6 @@ asmlinkage long sys_timerfd(int ufd, int clockid, int flags, | |||
176 | return -ENOMEM; | 175 | return -ENOMEM; |
177 | 176 | ||
178 | init_waitqueue_head(&ctx->wqh); | 177 | init_waitqueue_head(&ctx->wqh); |
179 | spin_lock_init(&ctx->lock); | ||
180 | 178 | ||
181 | timerfd_setup(ctx, clockid, flags, &ktmr); | 179 | timerfd_setup(ctx, clockid, flags, &ktmr); |
182 | 180 | ||
@@ -202,10 +200,10 @@ asmlinkage long sys_timerfd(int ufd, int clockid, int flags, | |||
202 | * it to the new values. | 200 | * it to the new values. |
203 | */ | 201 | */ |
204 | for (;;) { | 202 | for (;;) { |
205 | spin_lock_irq(&ctx->lock); | 203 | spin_lock_irq(&ctx->wqh.lock); |
206 | if (hrtimer_try_to_cancel(&ctx->tmr) >= 0) | 204 | if (hrtimer_try_to_cancel(&ctx->tmr) >= 0) |
207 | break; | 205 | break; |
208 | spin_unlock_irq(&ctx->lock); | 206 | spin_unlock_irq(&ctx->wqh.lock); |
209 | cpu_relax(); | 207 | cpu_relax(); |
210 | } | 208 | } |
211 | /* | 209 | /* |
@@ -213,7 +211,7 @@ asmlinkage long sys_timerfd(int ufd, int clockid, int flags, | |||
213 | */ | 211 | */ |
214 | timerfd_setup(ctx, clockid, flags, &ktmr); | 212 | timerfd_setup(ctx, clockid, flags, &ktmr); |
215 | 213 | ||
216 | spin_unlock_irq(&ctx->lock); | 214 | spin_unlock_irq(&ctx->wqh.lock); |
217 | fput(file); | 215 | fput(file); |
218 | } | 216 | } |
219 | 217 | ||
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 434524931ef3..82d595a52109 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -302,6 +302,12 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
302 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 302 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
303 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | 303 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ |
304 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 304 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) |
305 | #define CPU_FTRS_7448 (CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | \ | ||
306 | CPU_FTR_USE_TB | \ | ||
307 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | ||
308 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | ||
309 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | ||
310 | CPU_FTR_PPC_LE) | ||
305 | #define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | \ | 311 | #define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | \ |
306 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB) | 312 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB) |
307 | #define CPU_FTRS_G2_LE (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \ | 313 | #define CPU_FTRS_G2_LE (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \ |
diff --git a/include/asm-powerpc/mmu-44x.h b/include/asm-powerpc/mmu-44x.h index d5ce7a8dfe9f..62772ae839ca 100644 --- a/include/asm-powerpc/mmu-44x.h +++ b/include/asm-powerpc/mmu-44x.h | |||
@@ -55,8 +55,6 @@ | |||
55 | 55 | ||
56 | typedef unsigned long long phys_addr_t; | 56 | typedef unsigned long long phys_addr_t; |
57 | 57 | ||
58 | extern phys_addr_t fixup_bigphys_addr(phys_addr_t, phys_addr_t); | ||
59 | |||
60 | typedef struct { | 58 | typedef struct { |
61 | unsigned long id; | 59 | unsigned long id; |
62 | unsigned long vdso_base; | 60 | unsigned long vdso_base; |
diff --git a/include/asm-powerpc/mpc8260.h b/include/asm-powerpc/mpc8260.h index f1b83b09ab2e..e0d480790e12 100644 --- a/include/asm-powerpc/mpc8260.h +++ b/include/asm-powerpc/mpc8260.h | |||
@@ -5,8 +5,8 @@ | |||
5 | * this one and the configuration switching is done here. | 5 | * this one and the configuration switching is done here. |
6 | */ | 6 | */ |
7 | #ifdef __KERNEL__ | 7 | #ifdef __KERNEL__ |
8 | #ifndef __ASM_PPC_MPC8260_H__ | 8 | #ifndef __ASM_POWERPC_MPC8260_H__ |
9 | #define __ASM_PPC_MPC8260_H__ | 9 | #define __ASM_POWERPC_MPC8260_H__ |
10 | 10 | ||
11 | 11 | ||
12 | #ifdef CONFIG_8260 | 12 | #ifdef CONFIG_8260 |
@@ -20,5 +20,5 @@ | |||
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | #endif /* CONFIG_8260 */ | 22 | #endif /* CONFIG_8260 */ |
23 | #endif /* !__ASM_PPC_MPC8260_H__ */ | 23 | #endif /* !__ASM_POWERPC_MPC8260_H__ */ |
24 | #endif /* __KERNEL__ */ | 24 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h index 09662a24f226..c863bdb2889c 100644 --- a/include/asm-powerpc/pgtable-ppc32.h +++ b/include/asm-powerpc/pgtable-ppc32.h | |||
@@ -782,23 +782,8 @@ extern void kernel_set_cachemode (unsigned long address, unsigned long size, | |||
782 | /* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ | 782 | /* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ |
783 | #define kern_addr_valid(addr) (1) | 783 | #define kern_addr_valid(addr) (1) |
784 | 784 | ||
785 | #ifdef CONFIG_PHYS_64BIT | ||
786 | extern int remap_pfn_range(struct vm_area_struct *vma, unsigned long from, | ||
787 | unsigned long paddr, unsigned long size, pgprot_t prot); | ||
788 | |||
789 | static inline int io_remap_pfn_range(struct vm_area_struct *vma, | ||
790 | unsigned long vaddr, | ||
791 | unsigned long pfn, | ||
792 | unsigned long size, | ||
793 | pgprot_t prot) | ||
794 | { | ||
795 | phys_addr_t paddr64 = fixup_bigphys_addr(pfn << PAGE_SHIFT, size); | ||
796 | return remap_pfn_range(vma, vaddr, paddr64 >> PAGE_SHIFT, size, prot); | ||
797 | } | ||
798 | #else | ||
799 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ | 785 | #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ |
800 | remap_pfn_range(vma, vaddr, pfn, size, prot) | 786 | remap_pfn_range(vma, vaddr, pfn, size, prot) |
801 | #endif | ||
802 | 787 | ||
803 | /* | 788 | /* |
804 | * No page table caches to initialise | 789 | * No page table caches to initialise |
diff --git a/include/asm-powerpc/pmac_feature.h b/include/asm-powerpc/pmac_feature.h index d43d91beba9b..26bcb0aa164a 100644 --- a/include/asm-powerpc/pmac_feature.h +++ b/include/asm-powerpc/pmac_feature.h | |||
@@ -28,8 +28,8 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifdef __KERNEL__ | 30 | #ifdef __KERNEL__ |
31 | #ifndef __PPC_ASM_PMAC_FEATURE_H | 31 | #ifndef __ASM_POWERPC_PMAC_FEATURE_H |
32 | #define __PPC_ASM_PMAC_FEATURE_H | 32 | #define __ASM_POWERPC_PMAC_FEATURE_H |
33 | 33 | ||
34 | #include <asm/macio.h> | 34 | #include <asm/macio.h> |
35 | #include <asm/machdep.h> | 35 | #include <asm/machdep.h> |
@@ -393,5 +393,5 @@ extern u32 __iomem *uninorth_base; | |||
393 | #define UN_BIC(r,v) (UN_OUT((r), UN_IN(r) & ~(v))) | 393 | #define UN_BIC(r,v) (UN_OUT((r), UN_IN(r) & ~(v))) |
394 | 394 | ||
395 | 395 | ||
396 | #endif /* __PPC_ASM_PMAC_FEATURE_H */ | 396 | #endif /* __ASM_POWERPC_PMAC_FEATURE_H */ |
397 | #endif /* __KERNEL__ */ | 397 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-powerpc/systbl.h b/include/asm-powerpc/systbl.h index 3d44446fb74f..700ca5928741 100644 --- a/include/asm-powerpc/systbl.h +++ b/include/asm-powerpc/systbl.h | |||
@@ -308,3 +308,6 @@ COMPAT_SYS_SPU(move_pages) | |||
308 | SYSCALL_SPU(getcpu) | 308 | SYSCALL_SPU(getcpu) |
309 | COMPAT_SYS(epoll_pwait) | 309 | COMPAT_SYS(epoll_pwait) |
310 | COMPAT_SYS_SPU(utimensat) | 310 | COMPAT_SYS_SPU(utimensat) |
311 | COMPAT_SYS_SPU(signalfd) | ||
312 | COMPAT_SYS_SPU(timerfd) | ||
313 | SYSCALL_SPU(eventfd) | ||
diff --git a/include/asm-powerpc/tsi108_irq.h b/include/asm-powerpc/tsi108_irq.h index 3e4d04effa57..6ed93979fbe4 100644 --- a/include/asm-powerpc/tsi108_irq.h +++ b/include/asm-powerpc/tsi108_irq.h | |||
@@ -26,8 +26,8 @@ | |||
26 | * demultiplexing on TSI108EMU/SVB boards. | 26 | * demultiplexing on TSI108EMU/SVB boards. |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #ifndef _ASM_PPC_TSI108_IRQ_H | 29 | #ifndef _ASM_POWERPC_TSI108_IRQ_H |
30 | #define _ASM_PPC_TSI108_IRQ_H | 30 | #define _ASM_POWERPC_TSI108_IRQ_H |
31 | 31 | ||
32 | /* | 32 | /* |
33 | * Tsi108 interrupts | 33 | * Tsi108 interrupts |
@@ -121,4 +121,4 @@ typedef enum { | |||
121 | TSI108_IRQ_DIRECTED, | 121 | TSI108_IRQ_DIRECTED, |
122 | TSI108_IRQ_DISTRIBUTED, | 122 | TSI108_IRQ_DISTRIBUTED, |
123 | } TSI108_IRQ_MODE; | 123 | } TSI108_IRQ_MODE; |
124 | #endif /* _ASM_PPC_TSI108_IRQ_H */ | 124 | #endif /* _ASM_POWERPC_TSI108_IRQ_H */ |
diff --git a/include/asm-powerpc/tsi108_pci.h b/include/asm-powerpc/tsi108_pci.h index a9f92f73232c..5653d7cc3e24 100644 --- a/include/asm-powerpc/tsi108_pci.h +++ b/include/asm-powerpc/tsi108_pci.h | |||
@@ -18,8 +18,8 @@ | |||
18 | * MA 02111-1307 USA | 18 | * MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #ifndef _ASM_PPC_TSI108_PCI_H | 21 | #ifndef _ASM_POWERPC_TSI108_PCI_H |
22 | #define _ASM_PPC_TSI108_PCI_H | 22 | #define _ASM_POWERPC_TSI108_PCI_H |
23 | 23 | ||
24 | #include <asm/tsi108.h> | 24 | #include <asm/tsi108.h> |
25 | 25 | ||
@@ -42,4 +42,4 @@ extern void tsi108_pci_int_init(struct device_node *node); | |||
42 | extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc); | 42 | extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc); |
43 | extern void tsi108_clear_pci_cfg_error(void); | 43 | extern void tsi108_clear_pci_cfg_error(void); |
44 | 44 | ||
45 | #endif /* _ASM_PPC_TSI108_PCI_H */ | 45 | #endif /* _ASM_POWERPC_TSI108_PCI_H */ |
diff --git a/include/asm-powerpc/unistd.h b/include/asm-powerpc/unistd.h index 21f004aef508..e3c28dc31abf 100644 --- a/include/asm-powerpc/unistd.h +++ b/include/asm-powerpc/unistd.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef _ASM_PPC_UNISTD_H_ | 1 | #ifndef _ASM_POWERPC_UNISTD_H_ |
2 | #define _ASM_PPC_UNISTD_H_ | 2 | #define _ASM_POWERPC_UNISTD_H_ |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * This file contains the system call numbers. | 5 | * This file contains the system call numbers. |
@@ -327,10 +327,13 @@ | |||
327 | #define __NR_getcpu 302 | 327 | #define __NR_getcpu 302 |
328 | #define __NR_epoll_pwait 303 | 328 | #define __NR_epoll_pwait 303 |
329 | #define __NR_utimensat 304 | 329 | #define __NR_utimensat 304 |
330 | #define __NR_signalfd 305 | ||
331 | #define __NR_timerfd 306 | ||
332 | #define __NR_eventfd 307 | ||
330 | 333 | ||
331 | #ifdef __KERNEL__ | 334 | #ifdef __KERNEL__ |
332 | 335 | ||
333 | #define __NR_syscalls 305 | 336 | #define __NR_syscalls 308 |
334 | 337 | ||
335 | #define __NR__exit __NR_exit | 338 | #define __NR__exit __NR_exit |
336 | #define NR_syscalls __NR_syscalls | 339 | #define NR_syscalls __NR_syscalls |
@@ -381,4 +384,4 @@ | |||
381 | #endif /* __ASSEMBLY__ */ | 384 | #endif /* __ASSEMBLY__ */ |
382 | #endif /* __KERNEL__ */ | 385 | #endif /* __KERNEL__ */ |
383 | 386 | ||
384 | #endif /* _ASM_PPC_UNISTD_H_ */ | 387 | #endif /* _ASM_POWERPC_UNISTD_H_ */ |
diff --git a/include/linux/lockd/xdr4.h b/include/linux/lockd/xdr4.h index dd12b4c9e613..12bfe09de2b1 100644 --- a/include/linux/lockd/xdr4.h +++ b/include/linux/lockd/xdr4.h | |||
@@ -42,5 +42,6 @@ int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *); | |||
42 | int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *); | 42 | int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *); |
43 | int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *); | 43 | int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *); |
44 | */ | 44 | */ |
45 | extern struct rpc_version nlm_version4; | ||
45 | 46 | ||
46 | #endif /* LOCKD_XDR4_H */ | 47 | #endif /* LOCKD_XDR4_H */ |
diff --git a/include/linux/log2.h b/include/linux/log2.h index 57e641e19a81..1b8a2c1cb0e3 100644 --- a/include/linux/log2.h +++ b/include/linux/log2.h | |||
@@ -159,7 +159,7 @@ unsigned long __roundup_pow_of_two(unsigned long n) | |||
159 | #define roundup_pow_of_two(n) \ | 159 | #define roundup_pow_of_two(n) \ |
160 | ( \ | 160 | ( \ |
161 | __builtin_constant_p(n) ? ( \ | 161 | __builtin_constant_p(n) ? ( \ |
162 | (n == 1) ? 0 : \ | 162 | (n == 1) ? 1 : \ |
163 | (1UL << (ilog2((n) - 1) + 1)) \ | 163 | (1UL << (ilog2((n) - 1) + 1)) \ |
164 | ) : \ | 164 | ) : \ |
165 | __roundup_pow_of_two(n) \ | 165 | __roundup_pow_of_two(n) \ |
diff --git a/include/linux/mii.h b/include/linux/mii.h index beddc6d3b0f6..151b7e0182c7 100644 --- a/include/linux/mii.h +++ b/include/linux/mii.h | |||
@@ -56,8 +56,8 @@ | |||
56 | #define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */ | 56 | #define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */ |
57 | #define BMSR_RESV 0x00c0 /* Unused... */ | 57 | #define BMSR_RESV 0x00c0 /* Unused... */ |
58 | #define BMSR_ESTATEN 0x0100 /* Extended Status in R15 */ | 58 | #define BMSR_ESTATEN 0x0100 /* Extended Status in R15 */ |
59 | #define BMSR_100FULL2 0x0200 /* Can do 100BASE-T2 HDX */ | 59 | #define BMSR_100HALF2 0x0200 /* Can do 100BASE-T2 HDX */ |
60 | #define BMSR_100HALF2 0x0400 /* Can do 100BASE-T2 FDX */ | 60 | #define BMSR_100FULL2 0x0400 /* Can do 100BASE-T2 FDX */ |
61 | #define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */ | 61 | #define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */ |
62 | #define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */ | 62 | #define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */ |
63 | #define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */ | 63 | #define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */ |
diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h index 1be5be88debe..7e7f33a38fc0 100644 --- a/include/linux/nfs4.h +++ b/include/linux/nfs4.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/types.h> | 16 | #include <linux/types.h> |
17 | 17 | ||
18 | #define NFS4_VERIFIER_SIZE 8 | 18 | #define NFS4_VERIFIER_SIZE 8 |
19 | #define NFS4_STATEID_SIZE 16 | ||
19 | #define NFS4_FHSIZE 128 | 20 | #define NFS4_FHSIZE 128 |
20 | #define NFS4_MAXPATHLEN PATH_MAX | 21 | #define NFS4_MAXPATHLEN PATH_MAX |
21 | #define NFS4_MAXNAMLEN NAME_MAX | 22 | #define NFS4_MAXNAMLEN NAME_MAX |
@@ -113,7 +114,7 @@ struct nfs4_acl { | |||
113 | }; | 114 | }; |
114 | 115 | ||
115 | typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier; | 116 | typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier; |
116 | typedef struct { char data[16]; } nfs4_stateid; | 117 | typedef struct { char data[NFS4_STATEID_SIZE]; } nfs4_stateid; |
117 | 118 | ||
118 | enum nfs_opnum4 { | 119 | enum nfs_opnum4 { |
119 | OP_ACCESS = 3, | 120 | OP_ACCESS = 3, |
diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h index 4a68125b6de6..ad293760f6eb 100644 --- a/include/linux/sunrpc/rpc_pipe_fs.h +++ b/include/linux/sunrpc/rpc_pipe_fs.h | |||
@@ -47,6 +47,8 @@ extern struct dentry *rpc_mkpipe(struct dentry *, const char *, void *, struct r | |||
47 | extern int rpc_unlink(struct dentry *); | 47 | extern int rpc_unlink(struct dentry *); |
48 | extern struct vfsmount *rpc_get_mount(void); | 48 | extern struct vfsmount *rpc_get_mount(void); |
49 | extern void rpc_put_mount(void); | 49 | extern void rpc_put_mount(void); |
50 | extern int register_rpc_pipefs(void); | ||
51 | extern void unregister_rpc_pipefs(void); | ||
50 | 52 | ||
51 | #endif | 53 | #endif |
52 | #endif | 54 | #endif |
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index fa89ce6ce076..34f7590506fa 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
@@ -244,6 +244,8 @@ void xprt_disconnect(struct rpc_xprt *xprt); | |||
244 | */ | 244 | */ |
245 | struct rpc_xprt * xs_setup_udp(struct sockaddr *addr, size_t addrlen, struct rpc_timeout *to); | 245 | struct rpc_xprt * xs_setup_udp(struct sockaddr *addr, size_t addrlen, struct rpc_timeout *to); |
246 | struct rpc_xprt * xs_setup_tcp(struct sockaddr *addr, size_t addrlen, struct rpc_timeout *to); | 246 | struct rpc_xprt * xs_setup_tcp(struct sockaddr *addr, size_t addrlen, struct rpc_timeout *to); |
247 | int init_socket_xprt(void); | ||
248 | void cleanup_socket_xprt(void); | ||
247 | 249 | ||
248 | /* | 250 | /* |
249 | * Reserved bit positions in xprt->state | 251 | * Reserved bit positions in xprt->state |
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 7eae8665ff59..ce0719a2cfeb 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
@@ -160,7 +160,7 @@ static inline int cancel_delayed_work(struct delayed_work *work) | |||
160 | { | 160 | { |
161 | int ret; | 161 | int ret; |
162 | 162 | ||
163 | ret = del_timer(&work->timer); | 163 | ret = del_timer_sync(&work->timer); |
164 | if (ret) | 164 | if (ret) |
165 | work_clear_pending(&work->work); | 165 | work_clear_pending(&work->work); |
166 | return ret; | 166 | return ret; |
diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index bfc9a35bad33..1dae3dfc66a9 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c | |||
@@ -665,7 +665,8 @@ static int hci_sock_dev_event(struct notifier_block *this, unsigned long event, | |||
665 | /* Detach sockets from device */ | 665 | /* Detach sockets from device */ |
666 | read_lock(&hci_sk_list.lock); | 666 | read_lock(&hci_sk_list.lock); |
667 | sk_for_each(sk, node, &hci_sk_list.head) { | 667 | sk_for_each(sk, node, &hci_sk_list.head) { |
668 | lock_sock(sk); | 668 | local_bh_disable(); |
669 | bh_lock_sock_nested(sk); | ||
669 | if (hci_pi(sk)->hdev == hdev) { | 670 | if (hci_pi(sk)->hdev == hdev) { |
670 | hci_pi(sk)->hdev = NULL; | 671 | hci_pi(sk)->hdev = NULL; |
671 | sk->sk_err = EPIPE; | 672 | sk->sk_err = EPIPE; |
@@ -674,7 +675,8 @@ static int hci_sock_dev_event(struct notifier_block *this, unsigned long event, | |||
674 | 675 | ||
675 | hci_dev_put(hdev); | 676 | hci_dev_put(hdev); |
676 | } | 677 | } |
677 | release_sock(sk); | 678 | bh_unlock_sock(sk); |
679 | local_bh_enable(); | ||
678 | } | 680 | } |
679 | read_unlock(&hci_sk_list.lock); | 681 | read_unlock(&hci_sk_list.lock); |
680 | } | 682 | } |
diff --git a/net/core/dev.c b/net/core/dev.c index 8301e2ac747f..f2b61111e26d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -116,6 +116,7 @@ | |||
116 | #include <linux/dmaengine.h> | 116 | #include <linux/dmaengine.h> |
117 | #include <linux/err.h> | 117 | #include <linux/err.h> |
118 | #include <linux/ctype.h> | 118 | #include <linux/ctype.h> |
119 | #include <linux/if_arp.h> | ||
119 | 120 | ||
120 | /* | 121 | /* |
121 | * The list of packet types we will receive (as opposed to discard) | 122 | * The list of packet types we will receive (as opposed to discard) |
@@ -217,6 +218,73 @@ extern void netdev_unregister_sysfs(struct net_device *); | |||
217 | #define netdev_unregister_sysfs(dev) do { } while(0) | 218 | #define netdev_unregister_sysfs(dev) do { } while(0) |
218 | #endif | 219 | #endif |
219 | 220 | ||
221 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
222 | /* | ||
223 | * register_netdevice() inits dev->_xmit_lock and sets lockdep class | ||
224 | * according to dev->type | ||
225 | */ | ||
226 | static const unsigned short netdev_lock_type[] = | ||
227 | {ARPHRD_NETROM, ARPHRD_ETHER, ARPHRD_EETHER, ARPHRD_AX25, | ||
228 | ARPHRD_PRONET, ARPHRD_CHAOS, ARPHRD_IEEE802, ARPHRD_ARCNET, | ||
229 | ARPHRD_APPLETLK, ARPHRD_DLCI, ARPHRD_ATM, ARPHRD_METRICOM, | ||
230 | ARPHRD_IEEE1394, ARPHRD_EUI64, ARPHRD_INFINIBAND, ARPHRD_SLIP, | ||
231 | ARPHRD_CSLIP, ARPHRD_SLIP6, ARPHRD_CSLIP6, ARPHRD_RSRVD, | ||
232 | ARPHRD_ADAPT, ARPHRD_ROSE, ARPHRD_X25, ARPHRD_HWX25, | ||
233 | ARPHRD_PPP, ARPHRD_CISCO, ARPHRD_LAPB, ARPHRD_DDCMP, | ||
234 | ARPHRD_RAWHDLC, ARPHRD_TUNNEL, ARPHRD_TUNNEL6, ARPHRD_FRAD, | ||
235 | ARPHRD_SKIP, ARPHRD_LOOPBACK, ARPHRD_LOCALTLK, ARPHRD_FDDI, | ||
236 | ARPHRD_BIF, ARPHRD_SIT, ARPHRD_IPDDP, ARPHRD_IPGRE, | ||
237 | ARPHRD_PIMREG, ARPHRD_HIPPI, ARPHRD_ASH, ARPHRD_ECONET, | ||
238 | ARPHRD_IRDA, ARPHRD_FCPP, ARPHRD_FCAL, ARPHRD_FCPL, | ||
239 | ARPHRD_FCFABRIC, ARPHRD_IEEE802_TR, ARPHRD_IEEE80211, | ||
240 | ARPHRD_IEEE80211_PRISM, ARPHRD_IEEE80211_RADIOTAP, ARPHRD_VOID, | ||
241 | ARPHRD_NONE}; | ||
242 | |||
243 | static const char *netdev_lock_name[] = | ||
244 | {"_xmit_NETROM", "_xmit_ETHER", "_xmit_EETHER", "_xmit_AX25", | ||
245 | "_xmit_PRONET", "_xmit_CHAOS", "_xmit_IEEE802", "_xmit_ARCNET", | ||
246 | "_xmit_APPLETLK", "_xmit_DLCI", "_xmit_ATM", "_xmit_METRICOM", | ||
247 | "_xmit_IEEE1394", "_xmit_EUI64", "_xmit_INFINIBAND", "_xmit_SLIP", | ||
248 | "_xmit_CSLIP", "_xmit_SLIP6", "_xmit_CSLIP6", "_xmit_RSRVD", | ||
249 | "_xmit_ADAPT", "_xmit_ROSE", "_xmit_X25", "_xmit_HWX25", | ||
250 | "_xmit_PPP", "_xmit_CISCO", "_xmit_LAPB", "_xmit_DDCMP", | ||
251 | "_xmit_RAWHDLC", "_xmit_TUNNEL", "_xmit_TUNNEL6", "_xmit_FRAD", | ||
252 | "_xmit_SKIP", "_xmit_LOOPBACK", "_xmit_LOCALTLK", "_xmit_FDDI", | ||
253 | "_xmit_BIF", "_xmit_SIT", "_xmit_IPDDP", "_xmit_IPGRE", | ||
254 | "_xmit_PIMREG", "_xmit_HIPPI", "_xmit_ASH", "_xmit_ECONET", | ||
255 | "_xmit_IRDA", "_xmit_FCPP", "_xmit_FCAL", "_xmit_FCPL", | ||
256 | "_xmit_FCFABRIC", "_xmit_IEEE802_TR", "_xmit_IEEE80211", | ||
257 | "_xmit_IEEE80211_PRISM", "_xmit_IEEE80211_RADIOTAP", "_xmit_VOID", | ||
258 | "_xmit_NONE"}; | ||
259 | |||
260 | static struct lock_class_key netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)]; | ||
261 | |||
262 | static inline unsigned short netdev_lock_pos(unsigned short dev_type) | ||
263 | { | ||
264 | int i; | ||
265 | |||
266 | for (i = 0; i < ARRAY_SIZE(netdev_lock_type); i++) | ||
267 | if (netdev_lock_type[i] == dev_type) | ||
268 | return i; | ||
269 | /* the last key is used by default */ | ||
270 | return ARRAY_SIZE(netdev_lock_type) - 1; | ||
271 | } | ||
272 | |||
273 | static inline void netdev_set_lockdep_class(spinlock_t *lock, | ||
274 | unsigned short dev_type) | ||
275 | { | ||
276 | int i; | ||
277 | |||
278 | i = netdev_lock_pos(dev_type); | ||
279 | lockdep_set_class_and_name(lock, &netdev_xmit_lock_key[i], | ||
280 | netdev_lock_name[i]); | ||
281 | } | ||
282 | #else | ||
283 | static inline void netdev_set_lockdep_class(spinlock_t *lock, | ||
284 | unsigned short dev_type) | ||
285 | { | ||
286 | } | ||
287 | #endif | ||
220 | 288 | ||
221 | /******************************************************************************* | 289 | /******************************************************************************* |
222 | 290 | ||
@@ -3001,6 +3069,7 @@ int register_netdevice(struct net_device *dev) | |||
3001 | 3069 | ||
3002 | spin_lock_init(&dev->queue_lock); | 3070 | spin_lock_init(&dev->queue_lock); |
3003 | spin_lock_init(&dev->_xmit_lock); | 3071 | spin_lock_init(&dev->_xmit_lock); |
3072 | netdev_set_lockdep_class(&dev->_xmit_lock, dev->type); | ||
3004 | dev->xmit_lock_owner = -1; | 3073 | dev->xmit_lock_owner = -1; |
3005 | spin_lock_init(&dev->ingress_lock); | 3074 | spin_lock_init(&dev->ingress_lock); |
3006 | 3075 | ||
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig index c68196cc56ab..010fbb2d45e9 100644 --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig | |||
@@ -43,11 +43,11 @@ config IP_ADVANCED_ROUTER | |||
43 | asymmetric routing (packets from you to a host take a different path | 43 | asymmetric routing (packets from you to a host take a different path |
44 | than packets from that host to you) or if you operate a non-routing | 44 | than packets from that host to you) or if you operate a non-routing |
45 | host which has several IP addresses on different interfaces. To turn | 45 | host which has several IP addresses on different interfaces. To turn |
46 | rp_filter off use: | 46 | rp_filter on use: |
47 | 47 | ||
48 | echo 0 > /proc/sys/net/ipv4/conf/<device>/rp_filter | 48 | echo 1 > /proc/sys/net/ipv4/conf/<device>/rp_filter |
49 | or | 49 | or |
50 | echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter | 50 | echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter |
51 | 51 | ||
52 | If unsure, say N here. | 52 | If unsure, say N here. |
53 | 53 | ||
@@ -577,6 +577,7 @@ config TCP_CONG_VENO | |||
577 | config TCP_CONG_YEAH | 577 | config TCP_CONG_YEAH |
578 | tristate "YeAH TCP" | 578 | tristate "YeAH TCP" |
579 | depends on EXPERIMENTAL | 579 | depends on EXPERIMENTAL |
580 | select TCP_CONG_VEGAS | ||
580 | default n | 581 | default n |
581 | ---help--- | 582 | ---help--- |
582 | YeAH-TCP is a sender-side high-speed enabled TCP congestion control | 583 | YeAH-TCP is a sender-side high-speed enabled TCP congestion control |
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index cb76e3c725a0..df9fe4f2e8cc 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -2396,7 +2396,7 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp) | |||
2396 | 2396 | ||
2397 | /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */ | 2397 | /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */ |
2398 | dev_out = ip_dev_find(oldflp->fl4_src); | 2398 | dev_out = ip_dev_find(oldflp->fl4_src); |
2399 | if ((dev_out == NULL) && !(sysctl_ip_nonlocal_bind)) | 2399 | if (dev_out == NULL) |
2400 | goto out; | 2400 | goto out; |
2401 | 2401 | ||
2402 | /* I removed check for oif == dev_out->oif here. | 2402 | /* I removed check for oif == dev_out->oif here. |
@@ -2407,7 +2407,7 @@ static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp) | |||
2407 | of another iface. --ANK | 2407 | of another iface. --ANK |
2408 | */ | 2408 | */ |
2409 | 2409 | ||
2410 | if (dev_out && oldflp->oif == 0 | 2410 | if (oldflp->oif == 0 |
2411 | && (MULTICAST(oldflp->fl4_dst) || oldflp->fl4_dst == htonl(0xFFFFFFFF))) { | 2411 | && (MULTICAST(oldflp->fl4_dst) || oldflp->fl4_dst == htonl(0xFFFFFFFF))) { |
2412 | /* Special hack: user can direct multicasts | 2412 | /* Special hack: user can direct multicasts |
2413 | and limited broadcast via necessary interface | 2413 | and limited broadcast via necessary interface |
diff --git a/net/ipv4/tcp_cong.c b/net/ipv4/tcp_cong.c index 86b26539e54b..1260e52ad772 100644 --- a/net/ipv4/tcp_cong.c +++ b/net/ipv4/tcp_cong.c | |||
@@ -276,30 +276,34 @@ int tcp_set_congestion_control(struct sock *sk, const char *name) | |||
276 | 276 | ||
277 | 277 | ||
278 | /* | 278 | /* |
279 | * Slow start (exponential increase) with | 279 | * Slow start is used when congestion window is less than slow start |
280 | * RFC3742 Limited Slow Start (fast linear increase) support. | 280 | * threshold. This version implements the basic RFC2581 version |
281 | * and optionally supports: | ||
282 | * RFC3742 Limited Slow Start - growth limited to max_ssthresh | ||
283 | * RFC3465 Appropriate Byte Counting - growth limited by bytes acknowledged | ||
281 | */ | 284 | */ |
282 | void tcp_slow_start(struct tcp_sock *tp) | 285 | void tcp_slow_start(struct tcp_sock *tp) |
283 | { | 286 | { |
284 | int cnt = 0; | 287 | int cnt; /* increase in packets */ |
285 | 288 | ||
286 | if (sysctl_tcp_abc) { | 289 | /* RFC3465: ABC Slow start |
287 | /* RFC3465: Slow Start | 290 | * Increase only after a full MSS of bytes is acked |
288 | * TCP sender SHOULD increase cwnd by the number of | 291 | * |
289 | * previously unacknowledged bytes ACKed by each incoming | 292 | * TCP sender SHOULD increase cwnd by the number of |
290 | * acknowledgment, provided the increase is not more than L | 293 | * previously unacknowledged bytes ACKed by each incoming |
291 | */ | 294 | * acknowledgment, provided the increase is not more than L |
292 | if (tp->bytes_acked < tp->mss_cache) | 295 | */ |
293 | return; | 296 | if (sysctl_tcp_abc && tp->bytes_acked < tp->mss_cache) |
294 | } | 297 | return; |
295 | 298 | ||
296 | if (sysctl_tcp_max_ssthresh > 0 && | 299 | if (sysctl_tcp_max_ssthresh > 0 && tp->snd_cwnd > sysctl_tcp_max_ssthresh) |
297 | tp->snd_cwnd > sysctl_tcp_max_ssthresh) | 300 | cnt = sysctl_tcp_max_ssthresh >> 1; /* limited slow start */ |
298 | cnt += sysctl_tcp_max_ssthresh>>1; | ||
299 | else | 301 | else |
300 | cnt += tp->snd_cwnd; | 302 | cnt = tp->snd_cwnd; /* exponential increase */ |
301 | 303 | ||
302 | /* RFC3465: We MAY increase by 2 if discovered delayed ack */ | 304 | /* RFC3465: ABC |
305 | * We MAY increase by 2 if discovered delayed ack | ||
306 | */ | ||
303 | if (sysctl_tcp_abc > 1 && tp->bytes_acked >= 2*tp->mss_cache) | 307 | if (sysctl_tcp_abc > 1 && tp->bytes_acked >= 2*tp->mss_cache) |
304 | cnt <<= 1; | 308 | cnt <<= 1; |
305 | tp->bytes_acked = 0; | 309 | tp->bytes_acked = 0; |
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index b011eb625e49..944d75396fb3 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
@@ -989,8 +989,6 @@ void rpc_killall_tasks(struct rpc_clnt *clnt) | |||
989 | spin_unlock(&rpc_sched_lock); | 989 | spin_unlock(&rpc_sched_lock); |
990 | } | 990 | } |
991 | 991 | ||
992 | static DECLARE_MUTEX_LOCKED(rpciod_running); | ||
993 | |||
994 | static void rpciod_killall(void) | 992 | static void rpciod_killall(void) |
995 | { | 993 | { |
996 | unsigned long flags; | 994 | unsigned long flags; |
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c index 0d35bc796d00..73075dec83c0 100644 --- a/net/sunrpc/sunrpc_syms.c +++ b/net/sunrpc/sunrpc_syms.c | |||
@@ -134,11 +134,7 @@ EXPORT_SYMBOL(nfsd_debug); | |||
134 | EXPORT_SYMBOL(nlm_debug); | 134 | EXPORT_SYMBOL(nlm_debug); |
135 | #endif | 135 | #endif |
136 | 136 | ||
137 | extern int register_rpc_pipefs(void); | ||
138 | extern void unregister_rpc_pipefs(void); | ||
139 | extern struct cache_detail ip_map_cache, unix_gid_cache; | 137 | extern struct cache_detail ip_map_cache, unix_gid_cache; |
140 | extern int init_socket_xprt(void); | ||
141 | extern void cleanup_socket_xprt(void); | ||
142 | 138 | ||
143 | static int __init | 139 | static int __init |
144 | init_sunrpc(void) | 140 | init_sunrpc(void) |