diff options
Diffstat (limited to 'arch')
53 files changed, 314 insertions, 224 deletions
diff --git a/arch/i386/boot/apm.c b/arch/i386/boot/apm.c index a34087c370c0..eab50c55a3a5 100644 --- a/arch/i386/boot/apm.c +++ b/arch/i386/boot/apm.c | |||
@@ -40,14 +40,15 @@ int query_apm_bios(void) | |||
40 | if (bx != 0x504d) /* "PM" signature */ | 40 | if (bx != 0x504d) /* "PM" signature */ |
41 | return -1; | 41 | return -1; |
42 | 42 | ||
43 | if (cx & 0x02) /* 32 bits supported? */ | 43 | if (!(cx & 0x02)) /* 32 bits supported? */ |
44 | return -1; | 44 | return -1; |
45 | 45 | ||
46 | /* Disconnect first, just in case */ | 46 | /* Disconnect first, just in case */ |
47 | ax = 0x5304; | 47 | ax = 0x5304; |
48 | bx = 0; | ||
48 | asm volatile("pushl %%ebp ; int $0x15 ; popl %%ebp" | 49 | asm volatile("pushl %%ebp ; int $0x15 ; popl %%ebp" |
49 | : "+a" (ax) | 50 | : "+a" (ax), "+b" (bx) |
50 | : : "ebx", "ecx", "edx", "esi", "edi"); | 51 | : : "ecx", "edx", "esi", "edi"); |
51 | 52 | ||
52 | /* Paranoia */ | 53 | /* Paranoia */ |
53 | ebx = esi = 0; | 54 | ebx = esi = 0; |
diff --git a/arch/i386/boot/main.c b/arch/i386/boot/main.c index 7f01f96c4fb8..0eeef3989a17 100644 --- a/arch/i386/boot/main.c +++ b/arch/i386/boot/main.c | |||
@@ -73,15 +73,15 @@ static void keyboard_set_repeat(void) | |||
73 | } | 73 | } |
74 | 74 | ||
75 | /* | 75 | /* |
76 | * Get Intel SpeedStep IST information. | 76 | * Get Intel SpeedStep (IST) information. |
77 | */ | 77 | */ |
78 | static void query_speedstep_ist(void) | 78 | static void query_ist(void) |
79 | { | 79 | { |
80 | asm("int $0x15" | 80 | asm("int $0x15" |
81 | : "=a" (boot_params.speedstep_info[0]), | 81 | : "=a" (boot_params.ist_info.signature), |
82 | "=b" (boot_params.speedstep_info[1]), | 82 | "=b" (boot_params.ist_info.command), |
83 | "=c" (boot_params.speedstep_info[2]), | 83 | "=c" (boot_params.ist_info.event), |
84 | "=d" (boot_params.speedstep_info[3]) | 84 | "=d" (boot_params.ist_info.perf_level) |
85 | : "a" (0x0000e980), /* IST Support */ | 85 | : "a" (0x0000e980), /* IST Support */ |
86 | "d" (0x47534943)); /* Request value */ | 86 | "d" (0x47534943)); /* Request value */ |
87 | } | 87 | } |
@@ -144,8 +144,8 @@ void main(void) | |||
144 | query_voyager(); | 144 | query_voyager(); |
145 | #endif | 145 | #endif |
146 | 146 | ||
147 | /* Query SpeedStep IST information */ | 147 | /* Query Intel SpeedStep (IST) information */ |
148 | query_speedstep_ist(); | 148 | query_ist(); |
149 | 149 | ||
150 | /* Query APM information */ | 150 | /* Query APM information */ |
151 | #if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE) | 151 | #if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE) |
diff --git a/arch/i386/kernel/acpi/Makefile b/arch/i386/kernel/acpi/Makefile index 7f7be01f44e6..223f58fc9f46 100644 --- a/arch/i386/kernel/acpi/Makefile +++ b/arch/i386/kernel/acpi/Makefile | |||
@@ -2,7 +2,7 @@ obj-$(CONFIG_ACPI) += boot.o | |||
2 | ifneq ($(CONFIG_PCI),) | 2 | ifneq ($(CONFIG_PCI),) |
3 | obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o | 3 | obj-$(CONFIG_X86_IO_APIC) += earlyquirk.o |
4 | endif | 4 | endif |
5 | obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o | 5 | obj-$(CONFIG_ACPI) += sleep.o wakeup.o |
6 | 6 | ||
7 | ifneq ($(CONFIG_ACPI_PROCESSOR),) | 7 | ifneq ($(CONFIG_ACPI_PROCESSOR),) |
8 | obj-y += cstate.o processor.o | 8 | obj-y += cstate.o processor.o |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index d474cd639bcb..7fe5da3c932e 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -422,7 +422,7 @@ void __init setup_bootmem_allocator(void) | |||
422 | */ | 422 | */ |
423 | reserve_bootmem(PAGE_SIZE, PAGE_SIZE); | 423 | reserve_bootmem(PAGE_SIZE, PAGE_SIZE); |
424 | #endif | 424 | #endif |
425 | #ifdef CONFIG_ACPI_SLEEP | 425 | #ifdef CONFIG_ACPI |
426 | /* | 426 | /* |
427 | * Reserve low memory region for sleep support. | 427 | * Reserve low memory region for sleep support. |
428 | */ | 428 | */ |
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c index c3b9905af2d5..1b1a1e66d099 100644 --- a/arch/i386/mm/init.c +++ b/arch/i386/mm/init.c | |||
@@ -432,7 +432,7 @@ static void __init pagetable_init (void) | |||
432 | paravirt_pagetable_setup_done(pgd_base); | 432 | paravirt_pagetable_setup_done(pgd_base); |
433 | } | 433 | } |
434 | 434 | ||
435 | #if defined(CONFIG_SOFTWARE_SUSPEND) || defined(CONFIG_ACPI_SLEEP) | 435 | #if defined(CONFIG_SOFTWARE_SUSPEND) || defined(CONFIG_ACPI) |
436 | /* | 436 | /* |
437 | * Swap suspend & friends need this for resume because things like the intel-agp | 437 | * Swap suspend & friends need this for resume because things like the intel-agp |
438 | * driver might have split up a kernel 4MB mapping. | 438 | * driver might have split up a kernel 4MB mapping. |
diff --git a/arch/ia64/ia32/ia32_support.c b/arch/ia64/ia32/ia32_support.c index e13a1a1db4b5..d1d50cd1c38a 100644 --- a/arch/ia64/ia32/ia32_support.c +++ b/arch/ia64/ia32/ia32_support.c | |||
@@ -249,11 +249,11 @@ ia32_init (void) | |||
249 | 249 | ||
250 | #if PAGE_SHIFT > IA32_PAGE_SHIFT | 250 | #if PAGE_SHIFT > IA32_PAGE_SHIFT |
251 | { | 251 | { |
252 | extern struct kmem_cache *partial_page_cachep; | 252 | extern struct kmem_cache *ia64_partial_page_cachep; |
253 | 253 | ||
254 | partial_page_cachep = kmem_cache_create("partial_page_cache", | 254 | ia64_partial_page_cachep = kmem_cache_create("ia64_partial_page_cache", |
255 | sizeof(struct partial_page), | 255 | sizeof(struct ia64_partial_page), |
256 | 0, SLAB_PANIC, NULL); | 256 | 0, SLAB_PANIC, NULL); |
257 | } | 257 | } |
258 | #endif | 258 | #endif |
259 | return 0; | 259 | return 0; |
diff --git a/arch/ia64/ia32/ia32priv.h b/arch/ia64/ia32/ia32priv.h index cfa0bc0026b5..466bbcb138b2 100644 --- a/arch/ia64/ia32/ia32priv.h +++ b/arch/ia64/ia32/ia32priv.h | |||
@@ -25,8 +25,8 @@ | |||
25 | * partially mapped pages provide precise accounting of which 4k sub pages | 25 | * partially mapped pages provide precise accounting of which 4k sub pages |
26 | * are mapped and which ones are not, thereby improving IA-32 compatibility. | 26 | * are mapped and which ones are not, thereby improving IA-32 compatibility. |
27 | */ | 27 | */ |
28 | struct partial_page { | 28 | struct ia64_partial_page { |
29 | struct partial_page *next; /* linked list, sorted by address */ | 29 | struct ia64_partial_page *next; /* linked list, sorted by address */ |
30 | struct rb_node pp_rb; | 30 | struct rb_node pp_rb; |
31 | /* 64K is the largest "normal" page supported by ia64 ABI. So 4K*64 | 31 | /* 64K is the largest "normal" page supported by ia64 ABI. So 4K*64 |
32 | * should suffice.*/ | 32 | * should suffice.*/ |
@@ -34,17 +34,17 @@ struct partial_page { | |||
34 | unsigned int base; | 34 | unsigned int base; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | struct partial_page_list { | 37 | struct ia64_partial_page_list { |
38 | struct partial_page *pp_head; /* list head, points to the lowest | 38 | struct ia64_partial_page *pp_head; /* list head, points to the lowest |
39 | * addressed partial page */ | 39 | * addressed partial page */ |
40 | struct rb_root ppl_rb; | 40 | struct rb_root ppl_rb; |
41 | struct partial_page *pp_hint; /* pp_hint->next is the last | 41 | struct ia64_partial_page *pp_hint; /* pp_hint->next is the last |
42 | * accessed partial page */ | 42 | * accessed partial page */ |
43 | atomic_t pp_count; /* reference count */ | 43 | atomic_t pp_count; /* reference count */ |
44 | }; | 44 | }; |
45 | 45 | ||
46 | #if PAGE_SHIFT > IA32_PAGE_SHIFT | 46 | #if PAGE_SHIFT > IA32_PAGE_SHIFT |
47 | struct partial_page_list* ia32_init_pp_list (void); | 47 | struct ia64_partial_page_list* ia32_init_pp_list (void); |
48 | #else | 48 | #else |
49 | # define ia32_init_pp_list() 0 | 49 | # define ia32_init_pp_list() 0 |
50 | #endif | 50 | #endif |
diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c index 0afb4fe7c35b..af10462d44d4 100644 --- a/arch/ia64/ia32/sys_ia32.c +++ b/arch/ia64/ia32/sys_ia32.c | |||
@@ -253,17 +253,17 @@ mmap_subpage (struct file *file, unsigned long start, unsigned long end, int pro | |||
253 | return ret; | 253 | return ret; |
254 | } | 254 | } |
255 | 255 | ||
256 | /* SLAB cache for partial_page structures */ | 256 | /* SLAB cache for ia64_partial_page structures */ |
257 | struct kmem_cache *partial_page_cachep; | 257 | struct kmem_cache *ia64_partial_page_cachep; |
258 | 258 | ||
259 | /* | 259 | /* |
260 | * init partial_page_list. | 260 | * init ia64_partial_page_list. |
261 | * return 0 means kmalloc fail. | 261 | * return 0 means kmalloc fail. |
262 | */ | 262 | */ |
263 | struct partial_page_list* | 263 | struct ia64_partial_page_list* |
264 | ia32_init_pp_list(void) | 264 | ia32_init_pp_list(void) |
265 | { | 265 | { |
266 | struct partial_page_list *p; | 266 | struct ia64_partial_page_list *p; |
267 | 267 | ||
268 | if ((p = kmalloc(sizeof(*p), GFP_KERNEL)) == NULL) | 268 | if ((p = kmalloc(sizeof(*p), GFP_KERNEL)) == NULL) |
269 | return p; | 269 | return p; |
@@ -280,12 +280,12 @@ ia32_init_pp_list(void) | |||
280 | * Else, return 0 and provide @pprev, @rb_link, @rb_parent to | 280 | * Else, return 0 and provide @pprev, @rb_link, @rb_parent to |
281 | * be used by later __ia32_insert_pp(). | 281 | * be used by later __ia32_insert_pp(). |
282 | */ | 282 | */ |
283 | static struct partial_page * | 283 | static struct ia64_partial_page * |
284 | __ia32_find_pp(struct partial_page_list *ppl, unsigned int start, | 284 | __ia32_find_pp(struct ia64_partial_page_list *ppl, unsigned int start, |
285 | struct partial_page **pprev, struct rb_node ***rb_link, | 285 | struct ia64_partial_page **pprev, struct rb_node ***rb_link, |
286 | struct rb_node **rb_parent) | 286 | struct rb_node **rb_parent) |
287 | { | 287 | { |
288 | struct partial_page *pp; | 288 | struct ia64_partial_page *pp; |
289 | struct rb_node **__rb_link, *__rb_parent, *rb_prev; | 289 | struct rb_node **__rb_link, *__rb_parent, *rb_prev; |
290 | 290 | ||
291 | pp = ppl->pp_hint; | 291 | pp = ppl->pp_hint; |
@@ -297,7 +297,7 @@ __ia32_find_pp(struct partial_page_list *ppl, unsigned int start, | |||
297 | 297 | ||
298 | while (*__rb_link) { | 298 | while (*__rb_link) { |
299 | __rb_parent = *__rb_link; | 299 | __rb_parent = *__rb_link; |
300 | pp = rb_entry(__rb_parent, struct partial_page, pp_rb); | 300 | pp = rb_entry(__rb_parent, struct ia64_partial_page, pp_rb); |
301 | 301 | ||
302 | if (pp->base == start) { | 302 | if (pp->base == start) { |
303 | ppl->pp_hint = pp; | 303 | ppl->pp_hint = pp; |
@@ -314,7 +314,7 @@ __ia32_find_pp(struct partial_page_list *ppl, unsigned int start, | |||
314 | *rb_parent = __rb_parent; | 314 | *rb_parent = __rb_parent; |
315 | *pprev = NULL; | 315 | *pprev = NULL; |
316 | if (rb_prev) | 316 | if (rb_prev) |
317 | *pprev = rb_entry(rb_prev, struct partial_page, pp_rb); | 317 | *pprev = rb_entry(rb_prev, struct ia64_partial_page, pp_rb); |
318 | return NULL; | 318 | return NULL; |
319 | } | 319 | } |
320 | 320 | ||
@@ -322,9 +322,9 @@ __ia32_find_pp(struct partial_page_list *ppl, unsigned int start, | |||
322 | * insert @pp into @ppl. | 322 | * insert @pp into @ppl. |
323 | */ | 323 | */ |
324 | static void | 324 | static void |
325 | __ia32_insert_pp(struct partial_page_list *ppl, struct partial_page *pp, | 325 | __ia32_insert_pp(struct ia64_partial_page_list *ppl, |
326 | struct partial_page *prev, struct rb_node **rb_link, | 326 | struct ia64_partial_page *pp, struct ia64_partial_page *prev, |
327 | struct rb_node *rb_parent) | 327 | struct rb_node **rb_link, struct rb_node *rb_parent) |
328 | { | 328 | { |
329 | /* link list */ | 329 | /* link list */ |
330 | if (prev) { | 330 | if (prev) { |
@@ -334,7 +334,7 @@ __ia32_insert_pp(struct partial_page_list *ppl, struct partial_page *pp, | |||
334 | ppl->pp_head = pp; | 334 | ppl->pp_head = pp; |
335 | if (rb_parent) | 335 | if (rb_parent) |
336 | pp->next = rb_entry(rb_parent, | 336 | pp->next = rb_entry(rb_parent, |
337 | struct partial_page, pp_rb); | 337 | struct ia64_partial_page, pp_rb); |
338 | else | 338 | else |
339 | pp->next = NULL; | 339 | pp->next = NULL; |
340 | } | 340 | } |
@@ -350,8 +350,8 @@ __ia32_insert_pp(struct partial_page_list *ppl, struct partial_page *pp, | |||
350 | * delete @pp from partial page list @ppl. | 350 | * delete @pp from partial page list @ppl. |
351 | */ | 351 | */ |
352 | static void | 352 | static void |
353 | __ia32_delete_pp(struct partial_page_list *ppl, struct partial_page *pp, | 353 | __ia32_delete_pp(struct ia64_partial_page_list *ppl, |
354 | struct partial_page *prev) | 354 | struct ia64_partial_page *pp, struct ia64_partial_page *prev) |
355 | { | 355 | { |
356 | if (prev) { | 356 | if (prev) { |
357 | prev->next = pp->next; | 357 | prev->next = pp->next; |
@@ -363,15 +363,15 @@ __ia32_delete_pp(struct partial_page_list *ppl, struct partial_page *pp, | |||
363 | ppl->pp_hint = pp->next; | 363 | ppl->pp_hint = pp->next; |
364 | } | 364 | } |
365 | rb_erase(&pp->pp_rb, &ppl->ppl_rb); | 365 | rb_erase(&pp->pp_rb, &ppl->ppl_rb); |
366 | kmem_cache_free(partial_page_cachep, pp); | 366 | kmem_cache_free(ia64_partial_page_cachep, pp); |
367 | } | 367 | } |
368 | 368 | ||
369 | static struct partial_page * | 369 | static struct ia64_partial_page * |
370 | __pp_prev(struct partial_page *pp) | 370 | __pp_prev(struct ia64_partial_page *pp) |
371 | { | 371 | { |
372 | struct rb_node *prev = rb_prev(&pp->pp_rb); | 372 | struct rb_node *prev = rb_prev(&pp->pp_rb); |
373 | if (prev) | 373 | if (prev) |
374 | return rb_entry(prev, struct partial_page, pp_rb); | 374 | return rb_entry(prev, struct ia64_partial_page, pp_rb); |
375 | else | 375 | else |
376 | return NULL; | 376 | return NULL; |
377 | } | 377 | } |
@@ -383,7 +383,7 @@ __pp_prev(struct partial_page *pp) | |||
383 | static void | 383 | static void |
384 | __ia32_delete_pp_range(unsigned int start, unsigned int end) | 384 | __ia32_delete_pp_range(unsigned int start, unsigned int end) |
385 | { | 385 | { |
386 | struct partial_page *pp, *prev; | 386 | struct ia64_partial_page *pp, *prev; |
387 | struct rb_node **rb_link, *rb_parent; | 387 | struct rb_node **rb_link, *rb_parent; |
388 | 388 | ||
389 | if (start >= end) | 389 | if (start >= end) |
@@ -401,7 +401,7 @@ __ia32_delete_pp_range(unsigned int start, unsigned int end) | |||
401 | } | 401 | } |
402 | 402 | ||
403 | while (pp && pp->base < end) { | 403 | while (pp && pp->base < end) { |
404 | struct partial_page *tmp = pp->next; | 404 | struct ia64_partial_page *tmp = pp->next; |
405 | __ia32_delete_pp(current->thread.ppl, pp, prev); | 405 | __ia32_delete_pp(current->thread.ppl, pp, prev); |
406 | pp = tmp; | 406 | pp = tmp; |
407 | } | 407 | } |
@@ -414,7 +414,7 @@ __ia32_delete_pp_range(unsigned int start, unsigned int end) | |||
414 | static int | 414 | static int |
415 | __ia32_set_pp(unsigned int start, unsigned int end, int flags) | 415 | __ia32_set_pp(unsigned int start, unsigned int end, int flags) |
416 | { | 416 | { |
417 | struct partial_page *pp, *prev; | 417 | struct ia64_partial_page *pp, *prev; |
418 | struct rb_node ** rb_link, *rb_parent; | 418 | struct rb_node ** rb_link, *rb_parent; |
419 | unsigned int pstart, start_bit, end_bit, i; | 419 | unsigned int pstart, start_bit, end_bit, i; |
420 | 420 | ||
@@ -450,8 +450,8 @@ __ia32_set_pp(unsigned int start, unsigned int end, int flags) | |||
450 | return 0; | 450 | return 0; |
451 | } | 451 | } |
452 | 452 | ||
453 | /* new a partial_page */ | 453 | /* new a ia64_partial_page */ |
454 | pp = kmem_cache_alloc(partial_page_cachep, GFP_KERNEL); | 454 | pp = kmem_cache_alloc(ia64_partial_page_cachep, GFP_KERNEL); |
455 | if (!pp) | 455 | if (!pp) |
456 | return -ENOMEM; | 456 | return -ENOMEM; |
457 | pp->base = pstart; | 457 | pp->base = pstart; |
@@ -504,7 +504,7 @@ ia32_set_pp(unsigned int start, unsigned int end, int flags) | |||
504 | static int | 504 | static int |
505 | __ia32_unset_pp(unsigned int start, unsigned int end) | 505 | __ia32_unset_pp(unsigned int start, unsigned int end) |
506 | { | 506 | { |
507 | struct partial_page *pp, *prev; | 507 | struct ia64_partial_page *pp, *prev; |
508 | struct rb_node ** rb_link, *rb_parent; | 508 | struct rb_node ** rb_link, *rb_parent; |
509 | unsigned int pstart, start_bit, end_bit, i; | 509 | unsigned int pstart, start_bit, end_bit, i; |
510 | struct vm_area_struct *vma; | 510 | struct vm_area_struct *vma; |
@@ -532,8 +532,8 @@ __ia32_unset_pp(unsigned int start, unsigned int end) | |||
532 | return -ENOMEM; | 532 | return -ENOMEM; |
533 | } | 533 | } |
534 | 534 | ||
535 | /* new a partial_page */ | 535 | /* new a ia64_partial_page */ |
536 | pp = kmem_cache_alloc(partial_page_cachep, GFP_KERNEL); | 536 | pp = kmem_cache_alloc(ia64_partial_page_cachep, GFP_KERNEL); |
537 | if (!pp) | 537 | if (!pp) |
538 | return -ENOMEM; | 538 | return -ENOMEM; |
539 | pp->base = pstart; | 539 | pp->base = pstart; |
@@ -605,7 +605,7 @@ ia32_unset_pp(unsigned int *startp, unsigned int *endp) | |||
605 | static int | 605 | static int |
606 | __ia32_compare_pp(unsigned int start, unsigned int end) | 606 | __ia32_compare_pp(unsigned int start, unsigned int end) |
607 | { | 607 | { |
608 | struct partial_page *pp, *prev; | 608 | struct ia64_partial_page *pp, *prev; |
609 | struct rb_node ** rb_link, *rb_parent; | 609 | struct rb_node ** rb_link, *rb_parent; |
610 | unsigned int pstart, start_bit, end_bit, size; | 610 | unsigned int pstart, start_bit, end_bit, size; |
611 | unsigned int first_bit, next_zero_bit; /* the first range in bitmap */ | 611 | unsigned int first_bit, next_zero_bit; /* the first range in bitmap */ |
@@ -682,13 +682,13 @@ ia32_compare_pp(unsigned int *startp, unsigned int *endp) | |||
682 | } | 682 | } |
683 | 683 | ||
684 | static void | 684 | static void |
685 | __ia32_drop_pp_list(struct partial_page_list *ppl) | 685 | __ia32_drop_pp_list(struct ia64_partial_page_list *ppl) |
686 | { | 686 | { |
687 | struct partial_page *pp = ppl->pp_head; | 687 | struct ia64_partial_page *pp = ppl->pp_head; |
688 | 688 | ||
689 | while (pp) { | 689 | while (pp) { |
690 | struct partial_page *next = pp->next; | 690 | struct ia64_partial_page *next = pp->next; |
691 | kmem_cache_free(partial_page_cachep, pp); | 691 | kmem_cache_free(ia64_partial_page_cachep, pp); |
692 | pp = next; | 692 | pp = next; |
693 | } | 693 | } |
694 | 694 | ||
@@ -696,9 +696,9 @@ __ia32_drop_pp_list(struct partial_page_list *ppl) | |||
696 | } | 696 | } |
697 | 697 | ||
698 | void | 698 | void |
699 | ia32_drop_partial_page_list(struct task_struct *task) | 699 | ia32_drop_ia64_partial_page_list(struct task_struct *task) |
700 | { | 700 | { |
701 | struct partial_page_list* ppl = task->thread.ppl; | 701 | struct ia64_partial_page_list* ppl = task->thread.ppl; |
702 | 702 | ||
703 | if (ppl && atomic_dec_and_test(&ppl->pp_count)) | 703 | if (ppl && atomic_dec_and_test(&ppl->pp_count)) |
704 | __ia32_drop_pp_list(ppl); | 704 | __ia32_drop_pp_list(ppl); |
@@ -708,9 +708,9 @@ ia32_drop_partial_page_list(struct task_struct *task) | |||
708 | * Copy current->thread.ppl to ppl (already initialized). | 708 | * Copy current->thread.ppl to ppl (already initialized). |
709 | */ | 709 | */ |
710 | static int | 710 | static int |
711 | __ia32_copy_pp_list(struct partial_page_list *ppl) | 711 | __ia32_copy_pp_list(struct ia64_partial_page_list *ppl) |
712 | { | 712 | { |
713 | struct partial_page *pp, *tmp, *prev; | 713 | struct ia64_partial_page *pp, *tmp, *prev; |
714 | struct rb_node **rb_link, *rb_parent; | 714 | struct rb_node **rb_link, *rb_parent; |
715 | 715 | ||
716 | ppl->pp_head = NULL; | 716 | ppl->pp_head = NULL; |
@@ -721,7 +721,7 @@ __ia32_copy_pp_list(struct partial_page_list *ppl) | |||
721 | prev = NULL; | 721 | prev = NULL; |
722 | 722 | ||
723 | for (pp = current->thread.ppl->pp_head; pp; pp = pp->next) { | 723 | for (pp = current->thread.ppl->pp_head; pp; pp = pp->next) { |
724 | tmp = kmem_cache_alloc(partial_page_cachep, GFP_KERNEL); | 724 | tmp = kmem_cache_alloc(ia64_partial_page_cachep, GFP_KERNEL); |
725 | if (!tmp) | 725 | if (!tmp) |
726 | return -ENOMEM; | 726 | return -ENOMEM; |
727 | *tmp = *pp; | 727 | *tmp = *pp; |
@@ -734,7 +734,8 @@ __ia32_copy_pp_list(struct partial_page_list *ppl) | |||
734 | } | 734 | } |
735 | 735 | ||
736 | int | 736 | int |
737 | ia32_copy_partial_page_list(struct task_struct *p, unsigned long clone_flags) | 737 | ia32_copy_ia64_partial_page_list(struct task_struct *p, |
738 | unsigned long clone_flags) | ||
738 | { | 739 | { |
739 | int retval = 0; | 740 | int retval = 0; |
740 | 741 | ||
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 103dd8edda71..c6ede8780ded 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -67,6 +67,8 @@ EXPORT_SYMBOL(pm_power_off); | |||
67 | unsigned int acpi_cpei_override; | 67 | unsigned int acpi_cpei_override; |
68 | unsigned int acpi_cpei_phys_cpuid; | 68 | unsigned int acpi_cpei_phys_cpuid; |
69 | 69 | ||
70 | unsigned long acpi_wakeup_address = 0; | ||
71 | |||
70 | const char __init * | 72 | const char __init * |
71 | acpi_get_sysname(void) | 73 | acpi_get_sysname(void) |
72 | { | 74 | { |
@@ -986,4 +988,21 @@ int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base) | |||
986 | 988 | ||
987 | EXPORT_SYMBOL(acpi_unregister_ioapic); | 989 | EXPORT_SYMBOL(acpi_unregister_ioapic); |
988 | 990 | ||
991 | /* | ||
992 | * acpi_save_state_mem() - save kernel state | ||
993 | * | ||
994 | * TBD when when IA64 starts to support suspend... | ||
995 | */ | ||
996 | int acpi_save_state_mem(void) { return 0; } | ||
997 | |||
998 | /* | ||
999 | * acpi_restore_state() | ||
1000 | */ | ||
1001 | void acpi_restore_state_mem(void) {} | ||
1002 | |||
1003 | /* | ||
1004 | * do_suspend_lowlevel() | ||
1005 | */ | ||
1006 | void do_suspend_lowlevel(void) {} | ||
1007 | |||
989 | #endif /* CONFIG_ACPI */ | 1008 | #endif /* CONFIG_ACPI */ |
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S index 44d540efa6d1..4e5e27540e27 100644 --- a/arch/ia64/kernel/head.S +++ b/arch/ia64/kernel/head.S | |||
@@ -178,7 +178,7 @@ swapper_pg_dir: | |||
178 | halt_msg: | 178 | halt_msg: |
179 | stringz "Halting kernel\n" | 179 | stringz "Halting kernel\n" |
180 | 180 | ||
181 | .text | 181 | .section .text.head,"ax" |
182 | 182 | ||
183 | .global start_ap | 183 | .global start_ap |
184 | 184 | ||
@@ -392,6 +392,8 @@ self: hint @pause | |||
392 | br.sptk.many self // endless loop | 392 | br.sptk.many self // endless loop |
393 | END(_start) | 393 | END(_start) |
394 | 394 | ||
395 | .text | ||
396 | |||
395 | GLOBAL_ENTRY(ia64_save_debug_regs) | 397 | GLOBAL_ENTRY(ia64_save_debug_regs) |
396 | alloc r16=ar.pfs,1,0,0,0 | 398 | alloc r16=ar.pfs,1,0,0,0 |
397 | mov r20=ar.lc // preserve ar.lc | 399 | mov r20=ar.lc // preserve ar.lc |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 91797c111162..fcb77338cc09 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -85,8 +85,8 @@ DEFINE_PER_CPU(int[IA64_NUM_VECTORS], vector_irq) = { | |||
85 | [0 ... IA64_NUM_VECTORS - 1] = IA64_SPURIOUS_INT_VECTOR | 85 | [0 ... IA64_NUM_VECTORS - 1] = IA64_SPURIOUS_INT_VECTOR |
86 | }; | 86 | }; |
87 | 87 | ||
88 | static cpumask_t vector_table[IA64_MAX_DEVICE_VECTORS] = { | 88 | static cpumask_t vector_table[IA64_NUM_VECTORS] = { |
89 | [0 ... IA64_MAX_DEVICE_VECTORS - 1] = CPU_MASK_NONE | 89 | [0 ... IA64_NUM_VECTORS - 1] = CPU_MASK_NONE |
90 | }; | 90 | }; |
91 | 91 | ||
92 | static int irq_status[NR_IRQS] = { | 92 | static int irq_status[NR_IRQS] = { |
@@ -123,17 +123,18 @@ static inline int find_unassigned_irq(void) | |||
123 | static inline int find_unassigned_vector(cpumask_t domain) | 123 | static inline int find_unassigned_vector(cpumask_t domain) |
124 | { | 124 | { |
125 | cpumask_t mask; | 125 | cpumask_t mask; |
126 | int pos; | 126 | int pos, vector; |
127 | 127 | ||
128 | cpus_and(mask, domain, cpu_online_map); | 128 | cpus_and(mask, domain, cpu_online_map); |
129 | if (cpus_empty(mask)) | 129 | if (cpus_empty(mask)) |
130 | return -EINVAL; | 130 | return -EINVAL; |
131 | 131 | ||
132 | for (pos = 0; pos < IA64_NUM_DEVICE_VECTORS; pos++) { | 132 | for (pos = 0; pos < IA64_NUM_DEVICE_VECTORS; pos++) { |
133 | cpus_and(mask, domain, vector_table[pos]); | 133 | vector = IA64_FIRST_DEVICE_VECTOR + pos; |
134 | cpus_and(mask, domain, vector_table[vector]); | ||
134 | if (!cpus_empty(mask)) | 135 | if (!cpus_empty(mask)) |
135 | continue; | 136 | continue; |
136 | return IA64_FIRST_DEVICE_VECTOR + pos; | 137 | return vector; |
137 | } | 138 | } |
138 | return -ENOSPC; | 139 | return -ENOSPC; |
139 | } | 140 | } |
@@ -141,7 +142,7 @@ static inline int find_unassigned_vector(cpumask_t domain) | |||
141 | static int __bind_irq_vector(int irq, int vector, cpumask_t domain) | 142 | static int __bind_irq_vector(int irq, int vector, cpumask_t domain) |
142 | { | 143 | { |
143 | cpumask_t mask; | 144 | cpumask_t mask; |
144 | int cpu, pos; | 145 | int cpu; |
145 | struct irq_cfg *cfg = &irq_cfg[irq]; | 146 | struct irq_cfg *cfg = &irq_cfg[irq]; |
146 | 147 | ||
147 | cpus_and(mask, domain, cpu_online_map); | 148 | cpus_and(mask, domain, cpu_online_map); |
@@ -156,8 +157,7 @@ static int __bind_irq_vector(int irq, int vector, cpumask_t domain) | |||
156 | cfg->vector = vector; | 157 | cfg->vector = vector; |
157 | cfg->domain = domain; | 158 | cfg->domain = domain; |
158 | irq_status[irq] = IRQ_USED; | 159 | irq_status[irq] = IRQ_USED; |
159 | pos = vector - IA64_FIRST_DEVICE_VECTOR; | 160 | cpus_or(vector_table[vector], vector_table[vector], domain); |
160 | cpus_or(vector_table[pos], vector_table[pos], domain); | ||
161 | return 0; | 161 | return 0; |
162 | } | 162 | } |
163 | 163 | ||
@@ -174,7 +174,7 @@ int bind_irq_vector(int irq, int vector, cpumask_t domain) | |||
174 | 174 | ||
175 | static void __clear_irq_vector(int irq) | 175 | static void __clear_irq_vector(int irq) |
176 | { | 176 | { |
177 | int vector, cpu, pos; | 177 | int vector, cpu; |
178 | cpumask_t mask; | 178 | cpumask_t mask; |
179 | cpumask_t domain; | 179 | cpumask_t domain; |
180 | struct irq_cfg *cfg = &irq_cfg[irq]; | 180 | struct irq_cfg *cfg = &irq_cfg[irq]; |
@@ -189,8 +189,7 @@ static void __clear_irq_vector(int irq) | |||
189 | cfg->vector = IRQ_VECTOR_UNASSIGNED; | 189 | cfg->vector = IRQ_VECTOR_UNASSIGNED; |
190 | cfg->domain = CPU_MASK_NONE; | 190 | cfg->domain = CPU_MASK_NONE; |
191 | irq_status[irq] = IRQ_UNUSED; | 191 | irq_status[irq] = IRQ_UNUSED; |
192 | pos = vector - IA64_FIRST_DEVICE_VECTOR; | 192 | cpus_andnot(vector_table[vector], vector_table[vector], domain); |
193 | cpus_andnot(vector_table[pos], vector_table[pos], domain); | ||
194 | } | 193 | } |
195 | 194 | ||
196 | static void clear_irq_vector(int irq) | 195 | static void clear_irq_vector(int irq) |
@@ -212,9 +211,6 @@ assign_irq_vector (int irq) | |||
212 | vector = -ENOSPC; | 211 | vector = -ENOSPC; |
213 | 212 | ||
214 | spin_lock_irqsave(&vector_lock, flags); | 213 | spin_lock_irqsave(&vector_lock, flags); |
215 | if (irq < 0) { | ||
216 | goto out; | ||
217 | } | ||
218 | for_each_online_cpu(cpu) { | 214 | for_each_online_cpu(cpu) { |
219 | domain = vector_allocation_domain(cpu); | 215 | domain = vector_allocation_domain(cpu); |
220 | vector = find_unassigned_vector(domain); | 216 | vector = find_unassigned_vector(domain); |
@@ -223,6 +219,8 @@ assign_irq_vector (int irq) | |||
223 | } | 219 | } |
224 | if (vector < 0) | 220 | if (vector < 0) |
225 | goto out; | 221 | goto out; |
222 | if (irq == AUTO_ASSIGN) | ||
223 | irq = vector; | ||
226 | BUG_ON(__bind_irq_vector(irq, vector, domain)); | 224 | BUG_ON(__bind_irq_vector(irq, vector, domain)); |
227 | out: | 225 | out: |
228 | spin_unlock_irqrestore(&vector_lock, flags); | 226 | spin_unlock_irqrestore(&vector_lock, flags); |
diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c index 13df337508e7..7ccb228ceedc 100644 --- a/arch/ia64/kernel/machvec.c +++ b/arch/ia64/kernel/machvec.c | |||
@@ -13,14 +13,6 @@ | |||
13 | struct ia64_machine_vector ia64_mv; | 13 | struct ia64_machine_vector ia64_mv; |
14 | EXPORT_SYMBOL(ia64_mv); | 14 | EXPORT_SYMBOL(ia64_mv); |
15 | 15 | ||
16 | static __initdata const char *mvec_name; | ||
17 | static __init int setup_mvec(char *s) | ||
18 | { | ||
19 | mvec_name = s; | ||
20 | return 0; | ||
21 | } | ||
22 | early_param("machvec", setup_mvec); | ||
23 | |||
24 | static struct ia64_machine_vector * __init | 16 | static struct ia64_machine_vector * __init |
25 | lookup_machvec (const char *name) | 17 | lookup_machvec (const char *name) |
26 | { | 18 | { |
@@ -41,7 +33,7 @@ machvec_init (const char *name) | |||
41 | struct ia64_machine_vector *mv; | 33 | struct ia64_machine_vector *mv; |
42 | 34 | ||
43 | if (!name) | 35 | if (!name) |
44 | name = mvec_name ? mvec_name : acpi_get_sysname(); | 36 | name = acpi_get_sysname(); |
45 | mv = lookup_machvec(name); | 37 | mv = lookup_machvec(name); |
46 | if (!mv) | 38 | if (!mv) |
47 | panic("generic kernel failed to find machine vector for" | 39 | panic("generic kernel failed to find machine vector for" |
@@ -51,6 +43,23 @@ machvec_init (const char *name) | |||
51 | printk(KERN_INFO "booting generic kernel on platform %s\n", name); | 43 | printk(KERN_INFO "booting generic kernel on platform %s\n", name); |
52 | } | 44 | } |
53 | 45 | ||
46 | void __init | ||
47 | machvec_init_from_cmdline(const char *cmdline) | ||
48 | { | ||
49 | char str[64]; | ||
50 | const char *start; | ||
51 | char *end; | ||
52 | |||
53 | if (! (start = strstr(cmdline, "machvec=")) ) | ||
54 | return machvec_init(NULL); | ||
55 | |||
56 | strlcpy(str, start + strlen("machvec="), sizeof(str)); | ||
57 | if ( (end = strchr(str, ' ')) ) | ||
58 | *end = '\0'; | ||
59 | |||
60 | return machvec_init(str); | ||
61 | } | ||
62 | |||
54 | #endif /* CONFIG_IA64_GENERIC */ | 63 | #endif /* CONFIG_IA64_GENERIC */ |
55 | 64 | ||
56 | void | 65 | void |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index fa40cba43350..4158906c45aa 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -499,7 +499,8 @@ copy_thread (int nr, unsigned long clone_flags, | |||
499 | 499 | ||
500 | /* Copy partially mapped page list */ | 500 | /* Copy partially mapped page list */ |
501 | if (!retval) | 501 | if (!retval) |
502 | retval = ia32_copy_partial_page_list(p, clone_flags); | 502 | retval = ia32_copy_ia64_partial_page_list(p, |
503 | clone_flags); | ||
503 | } | 504 | } |
504 | #endif | 505 | #endif |
505 | 506 | ||
@@ -728,7 +729,7 @@ flush_thread (void) | |||
728 | ia64_drop_fpu(current); | 729 | ia64_drop_fpu(current); |
729 | #ifdef CONFIG_IA32_SUPPORT | 730 | #ifdef CONFIG_IA32_SUPPORT |
730 | if (IS_IA32_PROCESS(task_pt_regs(current))) { | 731 | if (IS_IA32_PROCESS(task_pt_regs(current))) { |
731 | ia32_drop_partial_page_list(current); | 732 | ia32_drop_ia64_partial_page_list(current); |
732 | current->thread.task_size = IA32_PAGE_OFFSET; | 733 | current->thread.task_size = IA32_PAGE_OFFSET; |
733 | set_fs(USER_DS); | 734 | set_fs(USER_DS); |
734 | } | 735 | } |
@@ -754,7 +755,7 @@ exit_thread (void) | |||
754 | pfm_release_debug_registers(current); | 755 | pfm_release_debug_registers(current); |
755 | #endif | 756 | #endif |
756 | if (IS_IA32_PROCESS(task_pt_regs(current))) | 757 | if (IS_IA32_PROCESS(task_pt_regs(current))) |
757 | ia32_drop_partial_page_list(current); | 758 | ia32_drop_ia64_partial_page_list(current); |
758 | } | 759 | } |
759 | 760 | ||
760 | unsigned long | 761 | unsigned long |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index cf06fe799041..7cecd2964200 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -491,12 +491,17 @@ setup_arch (char **cmdline_p) | |||
491 | efi_init(); | 491 | efi_init(); |
492 | io_port_init(); | 492 | io_port_init(); |
493 | 493 | ||
494 | parse_early_param(); | ||
495 | |||
496 | #ifdef CONFIG_IA64_GENERIC | 494 | #ifdef CONFIG_IA64_GENERIC |
497 | machvec_init(NULL); | 495 | /* machvec needs to be parsed from the command line |
496 | * before parse_early_param() is called to ensure | ||
497 | * that ia64_mv is initialised before any command line | ||
498 | * settings may cause console setup to occur | ||
499 | */ | ||
500 | machvec_init_from_cmdline(*cmdline_p); | ||
498 | #endif | 501 | #endif |
499 | 502 | ||
503 | parse_early_param(); | ||
504 | |||
500 | if (early_console_setup(*cmdline_p) == 0) | 505 | if (early_console_setup(*cmdline_p) == 0) |
501 | mark_bsp_online(); | 506 | mark_bsp_online(); |
502 | 507 | ||
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index 9f72838db26e..0982882bfb80 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c | |||
@@ -468,7 +468,7 @@ smp_send_stop (void) | |||
468 | send_IPI_allbutself(IPI_CPU_STOP); | 468 | send_IPI_allbutself(IPI_CPU_STOP); |
469 | } | 469 | } |
470 | 470 | ||
471 | int __init | 471 | int |
472 | setup_profiling_timer (unsigned int multiplier) | 472 | setup_profiling_timer (unsigned int multiplier) |
473 | { | 473 | { |
474 | return -EINVAL; | 474 | return -EINVAL; |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 9f5c90b594b9..62209dcf06d3 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -487,7 +487,7 @@ struct create_idle { | |||
487 | int cpu; | 487 | int cpu; |
488 | }; | 488 | }; |
489 | 489 | ||
490 | void | 490 | void __cpuinit |
491 | do_fork_idle(struct work_struct *work) | 491 | do_fork_idle(struct work_struct *work) |
492 | { | 492 | { |
493 | struct create_idle *c_idle = | 493 | struct create_idle *c_idle = |
@@ -497,7 +497,7 @@ do_fork_idle(struct work_struct *work) | |||
497 | complete(&c_idle->done); | 497 | complete(&c_idle->done); |
498 | } | 498 | } |
499 | 499 | ||
500 | static int __devinit | 500 | static int __cpuinit |
501 | do_boot_cpu (int sapicid, int cpu) | 501 | do_boot_cpu (int sapicid, int cpu) |
502 | { | 502 | { |
503 | int timeout; | 503 | int timeout; |
@@ -808,7 +808,7 @@ set_cpu_sibling_map(int cpu) | |||
808 | } | 808 | } |
809 | } | 809 | } |
810 | 810 | ||
811 | int __devinit | 811 | int __cpuinit |
812 | __cpu_up (unsigned int cpu) | 812 | __cpu_up (unsigned int cpu) |
813 | { | 813 | { |
814 | int ret; | 814 | int ret; |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 860f251d2fc2..83e80677de70 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -50,6 +50,8 @@ SECTIONS | |||
50 | KPROBES_TEXT | 50 | KPROBES_TEXT |
51 | *(.gnu.linkonce.t*) | 51 | *(.gnu.linkonce.t*) |
52 | } | 52 | } |
53 | .text.head : AT(ADDR(.text.head) - LOAD_OFFSET) | ||
54 | { *(.text.head) } | ||
53 | .text2 : AT(ADDR(.text2) - LOAD_OFFSET) | 55 | .text2 : AT(ADDR(.text2) - LOAD_OFFSET) |
54 | { *(.text2) } | 56 | { *(.text2) } |
55 | #ifdef CONFIG_SMP | 57 | #ifdef CONFIG_SMP |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 07d0e92742c8..488e48a5deea 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -581,7 +581,7 @@ pcibios_align_resource (void *data, struct resource *res, | |||
581 | /* | 581 | /* |
582 | * PCI BIOS setup, always defaults to SAL interface | 582 | * PCI BIOS setup, always defaults to SAL interface |
583 | */ | 583 | */ |
584 | char * __init | 584 | char * __devinit |
585 | pcibios_setup (char *str) | 585 | pcibios_setup (char *str) |
586 | { | 586 | { |
587 | return str; | 587 | return str; |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index 1175ceff8b2a..185906b54cb0 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
@@ -216,6 +216,18 @@ config XCOPILOT_BUGS | |||
216 | help | 216 | help |
217 | Support the bugs of Xcopilot. | 217 | Support the bugs of Xcopilot. |
218 | 218 | ||
219 | config UC5272 | ||
220 | bool 'Arcturus Networks uC5272 dimm board support' | ||
221 | depends on M5272 | ||
222 | help | ||
223 | Support for the Arcturus Networks uC5272 dimm board. | ||
224 | |||
225 | config UC5282 | ||
226 | bool "Arcturus Networks uC5282 board support" | ||
227 | depends on M528x | ||
228 | help | ||
229 | Support for the Arcturus Networks uC5282 dimm board. | ||
230 | |||
219 | config UCSIMM | 231 | config UCSIMM |
220 | bool "uCsimm module support" | 232 | bool "uCsimm module support" |
221 | depends on M68EZ328 | 233 | depends on M68EZ328 |
@@ -342,6 +354,18 @@ config SOM5282EM | |||
342 | depends on M528x | 354 | depends on M528x |
343 | help | 355 | help |
344 | Support for the EMAC.Inc SOM5282EM module. | 356 | Support for the EMAC.Inc SOM5282EM module. |
357 | |||
358 | config WILDFIRE | ||
359 | bool "Intec Automation Inc. WildFire board support" | ||
360 | depends on M528x | ||
361 | help | ||
362 | Support for the Intec Automation Inc. WildFire. | ||
363 | |||
364 | config WILDFIREMOD | ||
365 | bool "Intec Automation Inc. WildFire module support" | ||
366 | depends on M528x | ||
367 | help | ||
368 | Support for the Intec Automation Inc. WildFire module. | ||
345 | 369 | ||
346 | config ARN5307 | 370 | config ARN5307 |
347 | bool "Arnewsh 5307 board support" | 371 | bool "Arnewsh 5307 board support" |
diff --git a/arch/m68knommu/Makefile b/arch/m68knommu/Makefile index 8951793fd8d4..1305cc980023 100644 --- a/arch/m68knommu/Makefile +++ b/arch/m68knommu/Makefile | |||
@@ -26,6 +26,8 @@ platform-$(CONFIG_M5407) := 5407 | |||
26 | PLATFORM := $(platform-y) | 26 | PLATFORM := $(platform-y) |
27 | 27 | ||
28 | board-$(CONFIG_PILOT) := pilot | 28 | board-$(CONFIG_PILOT) := pilot |
29 | board-$(CONFIG_UC5272) := UC5272 | ||
30 | board-$(CONFIG_UC5282) := UC5282 | ||
29 | board-$(CONFIG_UCSIMM) := ucsimm | 31 | board-$(CONFIG_UCSIMM) := ucsimm |
30 | board-$(CONFIG_UCDIMM) := ucdimm | 32 | board-$(CONFIG_UCDIMM) := ucdimm |
31 | board-$(CONFIG_UCQUICC) := uCquicc | 33 | board-$(CONFIG_UCQUICC) := uCquicc |
diff --git a/arch/m68knommu/kernel/dma.c b/arch/m68knommu/kernel/dma.c index 0a25874a2aae..e10eafc52789 100644 --- a/arch/m68knommu/kernel/dma.c +++ b/arch/m68knommu/kernel/dma.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/types.h> | 8 | #include <linux/types.h> |
9 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
10 | #include <linux/string.h> | 10 | #include <linux/string.h> |
11 | #include <linux/device.h> | ||
11 | #include <asm/io.h> | 12 | #include <asm/io.h> |
12 | 13 | ||
13 | void *dma_alloc_coherent(struct device *dev, size_t size, | 14 | void *dma_alloc_coherent(struct device *dev, size_t size, |
diff --git a/arch/m68knommu/kernel/setup.c b/arch/m68knommu/kernel/setup.c index 2203f694f26b..a5ac0d40fbec 100644 --- a/arch/m68knommu/kernel/setup.c +++ b/arch/m68knommu/kernel/setup.c | |||
@@ -132,6 +132,11 @@ void setup_arch(char **cmdline_p) | |||
132 | 132 | ||
133 | config_BSP(&command_line[0], sizeof(command_line)); | 133 | config_BSP(&command_line[0], sizeof(command_line)); |
134 | 134 | ||
135 | #if defined(CONFIG_BOOTPARAM) | ||
136 | strncpy(&command_line[0], CONFIG_BOOTPARAM_STRING, sizeof(command_line)); | ||
137 | command_line[sizeof(command_line) - 1] = 0; | ||
138 | #endif | ||
139 | |||
135 | printk(KERN_INFO "\x0F\r\n\nuClinux/" CPU "\n"); | 140 | printk(KERN_INFO "\x0F\r\n\nuClinux/" CPU "\n"); |
136 | 141 | ||
137 | #ifdef CONFIG_UCDIMM | 142 | #ifdef CONFIG_UCDIMM |
diff --git a/arch/m68knommu/platform/5206/config.c b/arch/m68knommu/platform/5206/config.c index 3343830aad10..d265ed4e5afc 100644 --- a/arch/m68knommu/platform/5206/config.c +++ b/arch/m68knommu/platform/5206/config.c | |||
@@ -98,14 +98,6 @@ int mcf_timerirqpending(int timer) | |||
98 | void config_BSP(char *commandp, int size) | 98 | void config_BSP(char *commandp, int size) |
99 | { | 99 | { |
100 | mcf_setimr(MCFSIM_IMR_MASKALL); | 100 | mcf_setimr(MCFSIM_IMR_MASKALL); |
101 | |||
102 | #if defined(CONFIG_BOOTPARAM) | ||
103 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
104 | commandp[size-1] = 0; | ||
105 | #else | ||
106 | memset(commandp, 0, size); | ||
107 | #endif | ||
108 | |||
109 | mach_sched_init = coldfire_timer_init; | 101 | mach_sched_init = coldfire_timer_init; |
110 | mach_tick = coldfire_tick; | 102 | mach_tick = coldfire_tick; |
111 | mach_gettimeoffset = coldfire_timer_offset; | 103 | mach_gettimeoffset = coldfire_timer_offset; |
diff --git a/arch/m68knommu/platform/5206e/config.c b/arch/m68knommu/platform/5206e/config.c index 0f67320b4031..7fa5e8254c31 100644 --- a/arch/m68knommu/platform/5206e/config.c +++ b/arch/m68knommu/platform/5206e/config.c | |||
@@ -98,15 +98,10 @@ void config_BSP(char *commandp, int size) | |||
98 | { | 98 | { |
99 | mcf_setimr(MCFSIM_IMR_MASKALL); | 99 | mcf_setimr(MCFSIM_IMR_MASKALL); |
100 | 100 | ||
101 | #if defined(CONFIG_BOOTPARAM) | 101 | #if defined(CONFIG_NETtel) |
102 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
103 | commandp[size-1] = 0; | ||
104 | #elif defined(CONFIG_NETtel) | ||
105 | /* Copy command line from FLASH to local buffer... */ | 102 | /* Copy command line from FLASH to local buffer... */ |
106 | memcpy(commandp, (char *) 0xf0004000, size); | 103 | memcpy(commandp, (char *) 0xf0004000, size); |
107 | commandp[size-1] = 0; | 104 | commandp[size-1] = 0; |
108 | #else | ||
109 | memset(commandp, 0, size); | ||
110 | #endif /* CONFIG_NETtel */ | 105 | #endif /* CONFIG_NETtel */ |
111 | 106 | ||
112 | mach_sched_init = coldfire_timer_init; | 107 | mach_sched_init = coldfire_timer_init; |
diff --git a/arch/m68knommu/platform/520x/config.c b/arch/m68knommu/platform/520x/config.c index 58b2878deb61..85830f9882f3 100644 --- a/arch/m68knommu/platform/520x/config.c +++ b/arch/m68knommu/platform/520x/config.c | |||
@@ -48,13 +48,6 @@ void mcf_autovector(unsigned int vec) | |||
48 | 48 | ||
49 | void config_BSP(char *commandp, int size) | 49 | void config_BSP(char *commandp, int size) |
50 | { | 50 | { |
51 | #ifdef CONFIG_BOOTPARAM | ||
52 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
53 | commandp[size-1] = 0; | ||
54 | #else | ||
55 | memset(commandp, 0, size); | ||
56 | #endif | ||
57 | |||
58 | mach_sched_init = coldfire_pit_init; | 51 | mach_sched_init = coldfire_pit_init; |
59 | mach_tick = coldfire_pit_tick; | 52 | mach_tick = coldfire_pit_tick; |
60 | mach_gettimeoffset = coldfire_pit_offset; | 53 | mach_gettimeoffset = coldfire_pit_offset; |
diff --git a/arch/m68knommu/platform/523x/config.c b/arch/m68knommu/platform/523x/config.c index 9b054e6caee2..c0157e110035 100644 --- a/arch/m68knommu/platform/523x/config.c +++ b/arch/m68knommu/platform/523x/config.c | |||
@@ -63,14 +63,6 @@ void mcf_autovector(unsigned int vec) | |||
63 | void config_BSP(char *commandp, int size) | 63 | void config_BSP(char *commandp, int size) |
64 | { | 64 | { |
65 | mcf_disableall(); | 65 | mcf_disableall(); |
66 | |||
67 | #ifdef CONFIG_BOOTPARAM | ||
68 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
69 | commandp[size-1] = 0; | ||
70 | #else | ||
71 | memset(commandp, 0, size); | ||
72 | #endif | ||
73 | |||
74 | mach_sched_init = coldfire_pit_init; | 66 | mach_sched_init = coldfire_pit_init; |
75 | mach_tick = coldfire_pit_tick; | 67 | mach_tick = coldfire_pit_tick; |
76 | mach_gettimeoffset = coldfire_pit_offset; | 68 | mach_gettimeoffset = coldfire_pit_offset; |
diff --git a/arch/m68knommu/platform/5249/config.c b/arch/m68knommu/platform/5249/config.c index d6706079d64a..4cdeb719512d 100644 --- a/arch/m68knommu/platform/5249/config.c +++ b/arch/m68knommu/platform/5249/config.c | |||
@@ -96,14 +96,6 @@ int mcf_timerirqpending(int timer) | |||
96 | void config_BSP(char *commandp, int size) | 96 | void config_BSP(char *commandp, int size) |
97 | { | 97 | { |
98 | mcf_setimr(MCFSIM_IMR_MASKALL); | 98 | mcf_setimr(MCFSIM_IMR_MASKALL); |
99 | |||
100 | #if defined(CONFIG_BOOTPARAM) | ||
101 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
102 | commandp[size-1] = 0; | ||
103 | #else | ||
104 | memset(commandp, 0, size); | ||
105 | #endif | ||
106 | |||
107 | mach_sched_init = coldfire_timer_init; | 99 | mach_sched_init = coldfire_timer_init; |
108 | mach_tick = coldfire_tick; | 100 | mach_tick = coldfire_tick; |
109 | mach_gettimeoffset = coldfire_timer_offset; | 101 | mach_gettimeoffset = coldfire_timer_offset; |
diff --git a/arch/m68knommu/platform/5272/config.c b/arch/m68knommu/platform/5272/config.c index 6b437cc97776..609b10e4b9b9 100644 --- a/arch/m68knommu/platform/5272/config.c +++ b/arch/m68knommu/platform/5272/config.c | |||
@@ -113,10 +113,7 @@ void config_BSP(char *commandp, int size) | |||
113 | 113 | ||
114 | mcf_disableall(); | 114 | mcf_disableall(); |
115 | 115 | ||
116 | #if defined(CONFIG_BOOTPARAM) | 116 | #if defined(CONFIG_NETtel) || defined(CONFIG_SCALES) |
117 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
118 | commandp[size-1] = 0; | ||
119 | #elif defined(CONFIG_NETtel) || defined(CONFIG_SCALES) | ||
120 | /* Copy command line from FLASH to local buffer... */ | 117 | /* Copy command line from FLASH to local buffer... */ |
121 | memcpy(commandp, (char *) 0xf0004000, size); | 118 | memcpy(commandp, (char *) 0xf0004000, size); |
122 | commandp[size-1] = 0; | 119 | commandp[size-1] = 0; |
@@ -128,8 +125,6 @@ void config_BSP(char *commandp, int size) | |||
128 | /* Copy command line from FLASH to local buffer... */ | 125 | /* Copy command line from FLASH to local buffer... */ |
129 | memcpy(commandp, (char *) 0xf0010000, size); | 126 | memcpy(commandp, (char *) 0xf0010000, size); |
130 | commandp[size-1] = 0; | 127 | commandp[size-1] = 0; |
131 | #else | ||
132 | memset(commandp, 0, size); | ||
133 | #endif | 128 | #endif |
134 | 129 | ||
135 | mcf_timervector = 69; | 130 | mcf_timervector = 69; |
diff --git a/arch/m68knommu/platform/527x/config.c b/arch/m68knommu/platform/527x/config.c index 28e7d964eef1..126dac066482 100644 --- a/arch/m68knommu/platform/527x/config.c +++ b/arch/m68knommu/platform/527x/config.c | |||
@@ -63,14 +63,6 @@ void mcf_autovector(unsigned int vec) | |||
63 | void config_BSP(char *commandp, int size) | 63 | void config_BSP(char *commandp, int size) |
64 | { | 64 | { |
65 | mcf_disableall(); | 65 | mcf_disableall(); |
66 | |||
67 | #ifdef CONFIG_BOOTPARAM | ||
68 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
69 | commandp[size-1] = 0; | ||
70 | #else | ||
71 | memset(commandp, 0, size); | ||
72 | #endif | ||
73 | |||
74 | mach_sched_init = coldfire_pit_init; | 66 | mach_sched_init = coldfire_pit_init; |
75 | mach_tick = coldfire_pit_tick; | 67 | mach_tick = coldfire_pit_tick; |
76 | mach_gettimeoffset = coldfire_pit_offset; | 68 | mach_gettimeoffset = coldfire_pit_offset; |
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c index 805b4f74ff19..aab1ef0c1f78 100644 --- a/arch/m68knommu/platform/528x/config.c +++ b/arch/m68knommu/platform/528x/config.c | |||
@@ -63,14 +63,6 @@ void mcf_autovector(unsigned int vec) | |||
63 | void config_BSP(char *commandp, int size) | 63 | void config_BSP(char *commandp, int size) |
64 | { | 64 | { |
65 | mcf_disableall(); | 65 | mcf_disableall(); |
66 | |||
67 | #ifdef CONFIG_BOOTPARAM | ||
68 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
69 | commandp[size-1] = 0; | ||
70 | #else | ||
71 | memset(commandp, 0, size); | ||
72 | #endif | ||
73 | |||
74 | mach_sched_init = coldfire_pit_init; | 66 | mach_sched_init = coldfire_pit_init; |
75 | mach_tick = coldfire_pit_tick; | 67 | mach_tick = coldfire_pit_tick; |
76 | mach_gettimeoffset = coldfire_pit_offset; | 68 | mach_gettimeoffset = coldfire_pit_offset; |
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c index e04b84deb57d..1f10e941b87c 100644 --- a/arch/m68knommu/platform/5307/config.c +++ b/arch/m68knommu/platform/5307/config.c | |||
@@ -111,10 +111,7 @@ void config_BSP(char *commandp, int size) | |||
111 | { | 111 | { |
112 | mcf_setimr(MCFSIM_IMR_MASKALL); | 112 | mcf_setimr(MCFSIM_IMR_MASKALL); |
113 | 113 | ||
114 | #if defined(CONFIG_BOOTPARAM) | 114 | #if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ |
115 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
116 | commandp[size-1] = 0; | ||
117 | #elif defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \ | ||
118 | defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \ | 115 | defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \ |
119 | defined(CONFIG_CLEOPATRA) | 116 | defined(CONFIG_CLEOPATRA) |
120 | /* Copy command line from FLASH to local buffer... */ | 117 | /* Copy command line from FLASH to local buffer... */ |
@@ -124,8 +121,6 @@ void config_BSP(char *commandp, int size) | |||
124 | mcf_timervector = 30; | 121 | mcf_timervector = 30; |
125 | mcf_profilevector = 31; | 122 | mcf_profilevector = 31; |
126 | mcf_timerlevel = 6; | 123 | mcf_timerlevel = 6; |
127 | #else | ||
128 | memset(commandp, 0, size); | ||
129 | #endif | 124 | #endif |
130 | 125 | ||
131 | mach_sched_init = coldfire_timer_init; | 126 | mach_sched_init = coldfire_timer_init; |
diff --git a/arch/m68knommu/platform/5307/entry.S b/arch/m68knommu/platform/5307/entry.S index c358aebe0af3..a8cd867805ca 100644 --- a/arch/m68knommu/platform/5307/entry.S +++ b/arch/m68knommu/platform/5307/entry.S | |||
@@ -213,16 +213,12 @@ ENTRY(ret_from_interrupt) | |||
213 | * Beware - when entering resume, prev (the current task) is | 213 | * Beware - when entering resume, prev (the current task) is |
214 | * in a0, next (the new task) is in a1,so don't change these | 214 | * in a0, next (the new task) is in a1,so don't change these |
215 | * registers until their contents are no longer needed. | 215 | * registers until their contents are no longer needed. |
216 | * This is always called in supervisor mode, so don't bother to save | ||
217 | * and restore sr; user's process sr is actually in the stack. | ||
216 | */ | 218 | */ |
217 | ENTRY(resume) | 219 | ENTRY(resume) |
218 | movel %a0, %d1 /* get prev thread in d1 */ | 220 | movel %a0, %d1 /* get prev thread in d1 */ |
219 | 221 | ||
220 | movew %sr,%d0 /* save thread status reg */ | ||
221 | movew %d0,%a0@(TASK_THREAD+THREAD_SR) | ||
222 | |||
223 | oril #0x700,%d0 /* disable interrupts */ | ||
224 | move %d0,%sr | ||
225 | |||
226 | movel sw_usp,%d0 /* save usp */ | 222 | movel sw_usp,%d0 /* save usp */ |
227 | movel %d0,%a0@(TASK_THREAD+THREAD_USP) | 223 | movel %d0,%a0@(TASK_THREAD+THREAD_USP) |
228 | 224 | ||
@@ -233,7 +229,4 @@ ENTRY(resume) | |||
233 | 229 | ||
234 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore thread user stack */ | 230 | movel %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore thread user stack */ |
235 | movel %a0, sw_usp | 231 | movel %a0, sw_usp |
236 | |||
237 | movew %a1@(TASK_THREAD+THREAD_SR),%d0 /* restore thread status reg */ | ||
238 | movew %d0, %sr | ||
239 | rts | 232 | rts |
diff --git a/arch/m68knommu/platform/532x/config.c b/arch/m68knommu/platform/532x/config.c index 664c3a12b0c1..dc39c466e33f 100644 --- a/arch/m68knommu/platform/532x/config.c +++ b/arch/m68knommu/platform/532x/config.c | |||
@@ -92,10 +92,7 @@ void config_BSP(char *commandp, int size) | |||
92 | { | 92 | { |
93 | mcf_setimr(MCFSIM_IMR_MASKALL); | 93 | mcf_setimr(MCFSIM_IMR_MASKALL); |
94 | 94 | ||
95 | #if defined(CONFIG_BOOTPARAM) | 95 | #if !defined(CONFIG_BOOTPARAM) |
96 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
97 | commandp[size-1] = 0; | ||
98 | #else | ||
99 | /* Copy command line from FLASH to local buffer... */ | 96 | /* Copy command line from FLASH to local buffer... */ |
100 | memcpy(commandp, (char *) 0x4000, 4); | 97 | memcpy(commandp, (char *) 0x4000, 4); |
101 | if(strncmp(commandp, "kcl ", 4) == 0){ | 98 | if(strncmp(commandp, "kcl ", 4) == 0){ |
diff --git a/arch/m68knommu/platform/5407/config.c b/arch/m68knommu/platform/5407/config.c index 036f62876241..fde417fdd650 100644 --- a/arch/m68knommu/platform/5407/config.c +++ b/arch/m68knommu/platform/5407/config.c | |||
@@ -102,13 +102,6 @@ void config_BSP(char *commandp, int size) | |||
102 | { | 102 | { |
103 | mcf_setimr(MCFSIM_IMR_MASKALL); | 103 | mcf_setimr(MCFSIM_IMR_MASKALL); |
104 | 104 | ||
105 | #if defined(CONFIG_BOOTPARAM) | ||
106 | strncpy(commandp, CONFIG_BOOTPARAM_STRING, size); | ||
107 | commandp[size-1] = 0; | ||
108 | #else | ||
109 | memset(commandp, 0, size); | ||
110 | #endif | ||
111 | |||
112 | #if defined(CONFIG_CLEOPATRA) | 105 | #if defined(CONFIG_CLEOPATRA) |
113 | /* Different timer setup - to prevent device clash */ | 106 | /* Different timer setup - to prevent device clash */ |
114 | mcf_timervector = 30; | 107 | mcf_timervector = 30; |
diff --git a/arch/m68knommu/platform/68VZ328/config.c b/arch/m68knommu/platform/68VZ328/config.c index 8abe0f6e7235..79dced929c97 100644 --- a/arch/m68knommu/platform/68VZ328/config.c +++ b/arch/m68knommu/platform/68VZ328/config.c | |||
@@ -191,13 +191,6 @@ void config_BSP(char *command, int size) | |||
191 | { | 191 | { |
192 | printk(KERN_INFO "68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n"); | 192 | printk(KERN_INFO "68VZ328 DragonBallVZ support (c) 2001 Lineo, Inc.\n"); |
193 | 193 | ||
194 | #if defined(CONFIG_BOOTPARAM) | ||
195 | strncpy(command, CONFIG_BOOTPARAM_STRING, size); | ||
196 | command[size-1] = 0; | ||
197 | #else | ||
198 | memset(command, 0, size); | ||
199 | #endif | ||
200 | |||
201 | init_hardware(command, size); | 194 | init_hardware(command, size); |
202 | 195 | ||
203 | mach_sched_init = (void *) m68328_timer_init; | 196 | mach_sched_init = (void *) m68328_timer_init; |
diff --git a/arch/powerpc/boot/dts/kuroboxHD.dts b/arch/powerpc/boot/dts/kuroboxHD.dts index a983680c3263..122537419d9f 100644 --- a/arch/powerpc/boot/dts/kuroboxHD.dts +++ b/arch/powerpc/boot/dts/kuroboxHD.dts | |||
@@ -33,12 +33,10 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
33 | PowerPC,603e { /* Really 8241 */ | 33 | PowerPC,603e { /* Really 8241 */ |
34 | device_type = "cpu"; | 34 | device_type = "cpu"; |
35 | reg = <0>; | 35 | reg = <0>; |
36 | clock-frequency = <bebc200>; /* Fixed by bootwrapper */ | 36 | clock-frequency = <bebc200>; /* Fixed by bootloader */ |
37 | timebase-frequency = <1743000>; /* Fixed by bootwrapper */ | 37 | timebase-frequency = <1743000>; /* Fixed by bootloader */ |
38 | bus-frequency = <0>; /* From bootloader */ | 38 | bus-frequency = <0>; /* Fixed by bootloader */ |
39 | /* Following required by dtc but not used */ | 39 | /* Following required by dtc but not used */ |
40 | i-cache-line-size = <0>; | ||
41 | d-cache-line-size = <0>; | ||
42 | i-cache-size = <4000>; | 40 | i-cache-size = <4000>; |
43 | d-cache-size = <4000>; | 41 | d-cache-size = <4000>; |
44 | }; | 42 | }; |
@@ -64,11 +62,19 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
64 | fef00000 fef00000 00100000>; /* pci iack */ | 62 | fef00000 fef00000 00100000>; /* pci iack */ |
65 | 63 | ||
66 | i2c@80003000 { | 64 | i2c@80003000 { |
65 | #address-cells = <1>; | ||
66 | #size-cells = <0>; | ||
67 | device_type = "i2c"; | 67 | device_type = "i2c"; |
68 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
69 | reg = <80003000 1000>; | 69 | reg = <80003000 1000>; |
70 | interrupts = <5 2>; | 70 | interrupts = <5 2>; |
71 | interrupt-parent = <&mpic>; | 71 | interrupt-parent = <&mpic>; |
72 | |||
73 | rtc@32 { | ||
74 | device_type = "rtc"; | ||
75 | compatible = "ricoh,rs5c372b"; | ||
76 | reg = <32>; | ||
77 | }; | ||
72 | }; | 78 | }; |
73 | 79 | ||
74 | serial@80004500 { | 80 | serial@80004500 { |
@@ -91,7 +97,7 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHD.dtb -V 16 kuroboxHD.dts" | |||
91 | interrupt-parent = <&mpic>; | 97 | interrupt-parent = <&mpic>; |
92 | }; | 98 | }; |
93 | 99 | ||
94 | mpic: pic@80040000 { | 100 | mpic: interrupt-controller@80040000 { |
95 | #interrupt-cells = <2>; | 101 | #interrupt-cells = <2>; |
96 | #address-cells = <0>; | 102 | #address-cells = <0>; |
97 | device_type = "open-pic"; | 103 | device_type = "open-pic"; |
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts b/arch/powerpc/boot/dts/kuroboxHG.dts index 5cf42dc022df..579aa8b967d9 100644 --- a/arch/powerpc/boot/dts/kuroboxHG.dts +++ b/arch/powerpc/boot/dts/kuroboxHG.dts | |||
@@ -33,12 +33,10 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
33 | PowerPC,603e { /* Really 8241 */ | 33 | PowerPC,603e { /* Really 8241 */ |
34 | device_type = "cpu"; | 34 | device_type = "cpu"; |
35 | reg = <0>; | 35 | reg = <0>; |
36 | clock-frequency = <fdad680>; /* Fixed by bootwrapper */ | 36 | clock-frequency = <fdad680>; /* Fixed by bootloader */ |
37 | timebase-frequency = <1F04000>; /* Fixed by bootwrapper */ | 37 | timebase-frequency = <1F04000>; /* Fixed by bootloader */ |
38 | bus-frequency = <0>; /* From bootloader */ | 38 | bus-frequency = <0>; /* Fixed by bootloader */ |
39 | /* Following required by dtc but not used */ | 39 | /* Following required by dtc but not used */ |
40 | i-cache-line-size = <0>; | ||
41 | d-cache-line-size = <0>; | ||
42 | i-cache-size = <4000>; | 40 | i-cache-size = <4000>; |
43 | d-cache-size = <4000>; | 41 | d-cache-size = <4000>; |
44 | }; | 42 | }; |
@@ -64,11 +62,19 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
64 | fef00000 fef00000 00100000>; /* pci iack */ | 62 | fef00000 fef00000 00100000>; /* pci iack */ |
65 | 63 | ||
66 | i2c@80003000 { | 64 | i2c@80003000 { |
65 | #address-cells = <1>; | ||
66 | #size-cells = <0>; | ||
67 | device_type = "i2c"; | 67 | device_type = "i2c"; |
68 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
69 | reg = <80003000 1000>; | 69 | reg = <80003000 1000>; |
70 | interrupts = <5 2>; | 70 | interrupts = <5 2>; |
71 | interrupt-parent = <&mpic>; | 71 | interrupt-parent = <&mpic>; |
72 | |||
73 | rtc@32 { | ||
74 | device_type = "rtc"; | ||
75 | compatible = "ricoh,rs5c372b"; | ||
76 | reg = <32>; | ||
77 | }; | ||
72 | }; | 78 | }; |
73 | 79 | ||
74 | serial@80004500 { | 80 | serial@80004500 { |
@@ -91,8 +97,7 @@ build with: "dtc -f -I dts -O dtb -o kuroboxHG.dtb -V 16 kuroboxHG.dts" | |||
91 | interrupt-parent = <&mpic>; | 97 | interrupt-parent = <&mpic>; |
92 | }; | 98 | }; |
93 | 99 | ||
94 | mpic: pic@80040000 { | 100 | mpic: interrupt-controller@80040000 { |
95 | interrupt-parent = <&mpic>; | ||
96 | #interrupt-cells = <2>; | 101 | #interrupt-cells = <2>; |
97 | #address-cells = <0>; | 102 | #address-cells = <0>; |
98 | device_type = "open-pic"; | 103 | device_type = "open-pic"; |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 8cdd48ea4391..1448af92c6a9 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -809,8 +809,9 @@ system_reset_iSeries: | |||
809 | mtmsrd r24 /* RI on */ | 809 | mtmsrd r24 /* RI on */ |
810 | lhz r24,PACAPACAINDEX(r13) /* Get processor # */ | 810 | lhz r24,PACAPACAINDEX(r13) /* Get processor # */ |
811 | cmpwi 0,r24,0 /* Are we processor 0? */ | 811 | cmpwi 0,r24,0 /* Are we processor 0? */ |
812 | beq .__start_initialization_iSeries /* Start up the first processor */ | 812 | bne 1f |
813 | mfspr r4,SPRN_CTRLF | 813 | b .__start_initialization_iSeries /* Start up the first processor */ |
814 | 1: mfspr r4,SPRN_CTRLF | ||
814 | li r5,CTRL_RUNLATCH /* Turn off the run light */ | 815 | li r5,CTRL_RUNLATCH /* Turn off the run light */ |
815 | andc r4,r4,r5 | 816 | andc r4,r4,r5 |
816 | mtspr SPRN_CTRLT,r4 | 817 | mtspr SPRN_CTRLT,r4 |
@@ -1611,7 +1612,7 @@ _GLOBAL(generic_secondary_smp_init) | |||
1611 | #endif | 1612 | #endif |
1612 | 1613 | ||
1613 | #ifdef CONFIG_PPC_ISERIES | 1614 | #ifdef CONFIG_PPC_ISERIES |
1614 | _STATIC(__start_initialization_iSeries) | 1615 | _INIT_STATIC(__start_initialization_iSeries) |
1615 | /* Clear out the BSS */ | 1616 | /* Clear out the BSS */ |
1616 | LOAD_REG_IMMEDIATE(r11,__bss_stop) | 1617 | LOAD_REG_IMMEDIATE(r11,__bss_stop) |
1617 | LOAD_REG_IMMEDIATE(r8,__bss_start) | 1618 | LOAD_REG_IMMEDIATE(r8,__bss_start) |
diff --git a/arch/powerpc/kernel/iomap.c b/arch/powerpc/kernel/iomap.c index 601ef79a5916..2a5cf8680370 100644 --- a/arch/powerpc/kernel/iomap.c +++ b/arch/powerpc/kernel/iomap.c | |||
@@ -7,6 +7,7 @@ | |||
7 | #include <linux/pci.h> | 7 | #include <linux/pci.h> |
8 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
9 | #include <asm/io.h> | 9 | #include <asm/io.h> |
10 | #include <asm/pci-bridge.h> | ||
10 | 11 | ||
11 | /* | 12 | /* |
12 | * Here comes the ppc64 implementation of the IOMAP | 13 | * Here comes the ppc64 implementation of the IOMAP |
@@ -136,7 +137,12 @@ void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max) | |||
136 | 137 | ||
137 | void pci_iounmap(struct pci_dev *dev, void __iomem *addr) | 138 | void pci_iounmap(struct pci_dev *dev, void __iomem *addr) |
138 | { | 139 | { |
139 | /* Nothing to do */ | 140 | if (isa_vaddr_is_ioport(addr)) |
141 | return; | ||
142 | if (pcibios_vaddr_is_ioport(addr)) | ||
143 | return; | ||
144 | iounmap(addr); | ||
140 | } | 145 | } |
146 | |||
141 | EXPORT_SYMBOL(pci_iomap); | 147 | EXPORT_SYMBOL(pci_iomap); |
142 | EXPORT_SYMBOL(pci_iounmap); | 148 | EXPORT_SYMBOL(pci_iounmap); |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 7b41a99baae4..083cfbdbe0b2 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -101,6 +101,29 @@ void pcibios_free_controller(struct pci_controller *phb) | |||
101 | kfree(phb); | 101 | kfree(phb); |
102 | } | 102 | } |
103 | 103 | ||
104 | int pcibios_vaddr_is_ioport(void __iomem *address) | ||
105 | { | ||
106 | int ret = 0; | ||
107 | struct pci_controller *hose; | ||
108 | unsigned long size; | ||
109 | |||
110 | spin_lock(&hose_spinlock); | ||
111 | list_for_each_entry(hose, &hose_list, list_node) { | ||
112 | #ifdef CONFIG_PPC64 | ||
113 | size = hose->pci_io_size; | ||
114 | #else | ||
115 | size = hose->io_resource.end - hose->io_resource.start + 1; | ||
116 | #endif | ||
117 | if (address >= hose->io_base_virt && | ||
118 | address < (hose->io_base_virt + size)) { | ||
119 | ret = 1; | ||
120 | break; | ||
121 | } | ||
122 | } | ||
123 | spin_unlock(&hose_spinlock); | ||
124 | return ret; | ||
125 | } | ||
126 | |||
104 | /* | 127 | /* |
105 | * Return the domain number for this bus. | 128 | * Return the domain number for this bus. |
106 | */ | 129 | */ |
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c index 3786dcc8a7b6..b5c96af955c6 100644 --- a/arch/powerpc/kernel/prom_parse.c +++ b/arch/powerpc/kernel/prom_parse.c | |||
@@ -24,7 +24,7 @@ | |||
24 | /* Max address size we deal with */ | 24 | /* Max address size we deal with */ |
25 | #define OF_MAX_ADDR_CELLS 4 | 25 | #define OF_MAX_ADDR_CELLS 4 |
26 | #define OF_CHECK_COUNTS(na, ns) ((na) > 0 && (na) <= OF_MAX_ADDR_CELLS && \ | 26 | #define OF_CHECK_COUNTS(na, ns) ((na) > 0 && (na) <= OF_MAX_ADDR_CELLS && \ |
27 | (ns) >= 0) | 27 | (ns) > 0) |
28 | 28 | ||
29 | static struct of_bus *of_match_bus(struct device_node *np); | 29 | static struct of_bus *of_match_bus(struct device_node *np); |
30 | static int __of_address_to_resource(struct device_node *dev, | 30 | static int __of_address_to_resource(struct device_node *dev, |
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index 4924c48cb1ff..50ef38cffdbf 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -496,6 +496,10 @@ int check_legacy_ioport(unsigned long base_port) | |||
496 | break; | 496 | break; |
497 | } | 497 | } |
498 | np = of_find_node_by_type(NULL, "8042"); | 498 | np = of_find_node_by_type(NULL, "8042"); |
499 | /* Pegasos has no device_type on its 8042 node, look for the | ||
500 | * name instead */ | ||
501 | if (!np) | ||
502 | np = of_find_node_by_name(NULL, "8042"); | ||
499 | break; | 503 | break; |
500 | case FDC_BASE: /* FDC1 */ | 504 | case FDC_BASE: /* FDC1 */ |
501 | np = of_find_node_by_type(NULL, "fdc"); | 505 | np = of_find_node_by_type(NULL, "fdc"); |
diff --git a/arch/powerpc/mm/lmb.c b/arch/powerpc/mm/lmb.c index e3a1e8dc536a..8f4d2dc4cafb 100644 --- a/arch/powerpc/mm/lmb.c +++ b/arch/powerpc/mm/lmb.c | |||
@@ -138,8 +138,8 @@ void __init lmb_analyze(void) | |||
138 | static long __init lmb_add_region(struct lmb_region *rgn, unsigned long base, | 138 | static long __init lmb_add_region(struct lmb_region *rgn, unsigned long base, |
139 | unsigned long size) | 139 | unsigned long size) |
140 | { | 140 | { |
141 | unsigned long i, coalesced = 0; | 141 | unsigned long coalesced = 0; |
142 | long adjacent; | 142 | long adjacent, i; |
143 | 143 | ||
144 | /* First try and coalesce this LMB with another. */ | 144 | /* First try and coalesce this LMB with another. */ |
145 | for (i=0; i < rgn->cnt; i++) { | 145 | for (i=0; i < rgn->cnt; i++) { |
diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c index 6694f86d7000..9cb081c26e71 100644 --- a/arch/powerpc/platforms/cell/spufs/context.c +++ b/arch/powerpc/platforms/cell/spufs/context.c | |||
@@ -59,7 +59,8 @@ struct spu_context *alloc_spu_context(struct spu_gang *gang) | |||
59 | INIT_LIST_HEAD(&ctx->aff_list); | 59 | INIT_LIST_HEAD(&ctx->aff_list); |
60 | if (gang) | 60 | if (gang) |
61 | spu_gang_add_ctx(gang, ctx); | 61 | spu_gang_add_ctx(gang, ctx); |
62 | ctx->cpus_allowed = current->cpus_allowed; | 62 | |
63 | __spu_update_sched_info(ctx); | ||
63 | spu_set_timeslice(ctx); | 64 | spu_set_timeslice(ctx); |
64 | ctx->stats.util_state = SPU_UTIL_IDLE_LOADED; | 65 | ctx->stats.util_state = SPU_UTIL_IDLE_LOADED; |
65 | 66 | ||
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c index 0b50fa5cb39d..6abdd8fe2098 100644 --- a/arch/powerpc/platforms/cell/spufs/run.c +++ b/arch/powerpc/platforms/cell/spufs/run.c | |||
@@ -312,6 +312,7 @@ long spufs_run_spu(struct spu_context *ctx, u32 *npc, u32 *event) | |||
312 | spu_acquire(ctx); | 312 | spu_acquire(ctx); |
313 | if (ctx->state == SPU_STATE_SAVED) { | 313 | if (ctx->state == SPU_STATE_SAVED) { |
314 | __spu_update_sched_info(ctx); | 314 | __spu_update_sched_info(ctx); |
315 | spu_set_timeslice(ctx); | ||
315 | 316 | ||
316 | ret = spu_activate(ctx, 0); | 317 | ret = spu_activate(ctx, 0); |
317 | if (ret) { | 318 | if (ret) { |
@@ -322,6 +323,9 @@ long spufs_run_spu(struct spu_context *ctx, u32 *npc, u32 *event) | |||
322 | /* | 323 | /* |
323 | * We have to update the scheduling priority under active_mutex | 324 | * We have to update the scheduling priority under active_mutex |
324 | * to protect against find_victim(). | 325 | * to protect against find_victim(). |
326 | * | ||
327 | * No need to update the timeslice ASAP, it will get updated | ||
328 | * once the current one has expired. | ||
325 | */ | 329 | */ |
326 | spu_update_sched_info(ctx); | 330 | spu_update_sched_info(ctx); |
327 | } | 331 | } |
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 227968b4779d..758a80ac080a 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
@@ -927,10 +927,6 @@ int __init spu_sched_init(void) | |||
927 | INIT_LIST_HEAD(&spu_prio->runq[i]); | 927 | INIT_LIST_HEAD(&spu_prio->runq[i]); |
928 | __clear_bit(i, spu_prio->bitmap); | 928 | __clear_bit(i, spu_prio->bitmap); |
929 | } | 929 | } |
930 | for (i = 0; i < MAX_NUMNODES; i++) { | ||
931 | mutex_init(&cbe_spu_info[i].list_mutex); | ||
932 | INIT_LIST_HEAD(&cbe_spu_info[i].spus); | ||
933 | } | ||
934 | spin_lock_init(&spu_prio->runq_lock); | 930 | spin_lock_init(&spu_prio->runq_lock); |
935 | 931 | ||
936 | setup_timer(&spusched_timer, spusched_wake, 0); | 932 | setup_timer(&spusched_timer, spusched_wake, 0); |
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c index 91df52a1899a..34bdbbe3ce59 100644 --- a/arch/powerpc/platforms/iseries/lpevents.c +++ b/arch/powerpc/platforms/iseries/lpevents.c | |||
@@ -182,7 +182,7 @@ static int set_spread_lpevents(char *str) | |||
182 | } | 182 | } |
183 | __setup("spread_lpevents=", set_spread_lpevents); | 183 | __setup("spread_lpevents=", set_spread_lpevents); |
184 | 184 | ||
185 | void setup_hvlpevent_queue(void) | 185 | void __init setup_hvlpevent_queue(void) |
186 | { | 186 | { |
187 | void *eventStack; | 187 | void *eventStack; |
188 | 188 | ||
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c index fceaae40fe70..2542403288f9 100644 --- a/arch/powerpc/platforms/maple/pci.c +++ b/arch/powerpc/platforms/maple/pci.c | |||
@@ -490,6 +490,9 @@ static int __init maple_add_bridge(struct device_node *dev) | |||
490 | /* Fixup "bus-range" OF property */ | 490 | /* Fixup "bus-range" OF property */ |
491 | fixup_bus_range(dev); | 491 | fixup_bus_range(dev); |
492 | 492 | ||
493 | /* Check for legacy IOs */ | ||
494 | isa_bridge_find_early(hose); | ||
495 | |||
493 | return 0; | 496 | return 0; |
494 | } | 497 | } |
495 | 498 | ||
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 3289fab01e92..727453d3e8b9 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c | |||
@@ -305,6 +305,64 @@ err: | |||
305 | 305 | ||
306 | arch_initcall(gfar_of_init); | 306 | arch_initcall(gfar_of_init); |
307 | 307 | ||
308 | #ifdef CONFIG_I2C_BOARDINFO | ||
309 | #include <linux/i2c.h> | ||
310 | struct i2c_driver_device { | ||
311 | char *of_device; | ||
312 | char *i2c_driver; | ||
313 | char *i2c_type; | ||
314 | }; | ||
315 | |||
316 | static struct i2c_driver_device i2c_devices[] __initdata = { | ||
317 | {"ricoh,rs5c372a", "rtc-rs5c372", "rs5c372a",}, | ||
318 | {"ricoh,rs5c372b", "rtc-rs5c372", "rs5c372b",}, | ||
319 | {"ricoh,rv5c386", "rtc-rs5c372", "rv5c386",}, | ||
320 | {"ricoh,rv5c387a", "rtc-rs5c372", "rv5c387a",}, | ||
321 | }; | ||
322 | |||
323 | static int __init of_find_i2c_driver(struct device_node *node, struct i2c_board_info *info) | ||
324 | { | ||
325 | int i; | ||
326 | |||
327 | for (i = 0; i < ARRAY_SIZE(i2c_devices); i++) { | ||
328 | if (!of_device_is_compatible(node, i2c_devices[i].of_device)) | ||
329 | continue; | ||
330 | strncpy(info->driver_name, i2c_devices[i].i2c_driver, KOBJ_NAME_LEN); | ||
331 | strncpy(info->type, i2c_devices[i].i2c_type, I2C_NAME_SIZE); | ||
332 | return 0; | ||
333 | } | ||
334 | return -ENODEV; | ||
335 | } | ||
336 | |||
337 | static void __init of_register_i2c_devices(struct device_node *adap_node, int bus_num) | ||
338 | { | ||
339 | struct device_node *node = NULL; | ||
340 | |||
341 | while ((node = of_get_next_child(adap_node, node))) { | ||
342 | struct i2c_board_info info; | ||
343 | const u32 *addr; | ||
344 | int len; | ||
345 | |||
346 | addr = of_get_property(node, "reg", &len); | ||
347 | if (!addr || len < sizeof(int) || *addr > (1 << 10) - 1) { | ||
348 | printk(KERN_WARNING "fsl_ioc.c: invalid i2c device entry\n"); | ||
349 | continue; | ||
350 | } | ||
351 | |||
352 | info.irq = irq_of_parse_and_map(node, 0); | ||
353 | if (info.irq == NO_IRQ) | ||
354 | info.irq = -1; | ||
355 | |||
356 | if (of_find_i2c_driver(node, &info) < 0) | ||
357 | continue; | ||
358 | |||
359 | info.platform_data = NULL; | ||
360 | info.addr = *addr; | ||
361 | |||
362 | i2c_register_board_info(bus_num, &info, 1); | ||
363 | } | ||
364 | } | ||
365 | |||
308 | static int __init fsl_i2c_of_init(void) | 366 | static int __init fsl_i2c_of_init(void) |
309 | { | 367 | { |
310 | struct device_node *np; | 368 | struct device_node *np; |
@@ -349,6 +407,8 @@ static int __init fsl_i2c_of_init(void) | |||
349 | fsl_i2c_platform_data)); | 407 | fsl_i2c_platform_data)); |
350 | if (ret) | 408 | if (ret) |
351 | goto unreg; | 409 | goto unreg; |
410 | |||
411 | of_register_i2c_devices(np, i); | ||
352 | } | 412 | } |
353 | 413 | ||
354 | return 0; | 414 | return 0; |
@@ -360,6 +420,7 @@ err: | |||
360 | } | 420 | } |
361 | 421 | ||
362 | arch_initcall(fsl_i2c_of_init); | 422 | arch_initcall(fsl_i2c_of_init); |
423 | #endif | ||
363 | 424 | ||
364 | #ifdef CONFIG_PPC_83xx | 425 | #ifdef CONFIG_PPC_83xx |
365 | static int __init mpc83xx_wdt_init(void) | 426 | static int __init mpc83xx_wdt_init(void) |
diff --git a/arch/x86_64/kernel/acpi/Makefile b/arch/x86_64/kernel/acpi/Makefile index 080b9963f1bc..17595d23fee7 100644 --- a/arch/x86_64/kernel/acpi/Makefile +++ b/arch/x86_64/kernel/acpi/Makefile | |||
@@ -1,6 +1,6 @@ | |||
1 | obj-y := boot.o | 1 | obj-y := boot.o |
2 | boot-y := ../../../i386/kernel/acpi/boot.o | 2 | boot-y := ../../../i386/kernel/acpi/boot.o |
3 | obj-$(CONFIG_ACPI_SLEEP) += sleep.o wakeup.o | 3 | obj-y += sleep.o wakeup.o |
4 | 4 | ||
5 | ifneq ($(CONFIG_ACPI_PROCESSOR),) | 5 | ifneq ($(CONFIG_ACPI_PROCESSOR),) |
6 | obj-y += processor.o | 6 | obj-y += processor.o |
diff --git a/arch/x86_64/kernel/acpi/sleep.c b/arch/x86_64/kernel/acpi/sleep.c index 4277f2b27e6d..79475d237071 100644 --- a/arch/x86_64/kernel/acpi/sleep.c +++ b/arch/x86_64/kernel/acpi/sleep.c | |||
@@ -51,8 +51,6 @@ | |||
51 | Low-Level Sleep Support | 51 | Low-Level Sleep Support |
52 | -------------------------------------------------------------------------- */ | 52 | -------------------------------------------------------------------------- */ |
53 | 53 | ||
54 | #ifdef CONFIG_ACPI_SLEEP | ||
55 | |||
56 | /* address in low memory of the wakeup routine. */ | 54 | /* address in low memory of the wakeup routine. */ |
57 | unsigned long acpi_wakeup_address = 0; | 55 | unsigned long acpi_wakeup_address = 0; |
58 | unsigned long acpi_realmode_flags; | 56 | unsigned long acpi_realmode_flags; |
@@ -117,8 +115,6 @@ static int __init acpi_sleep_setup(char *str) | |||
117 | 115 | ||
118 | __setup("acpi_sleep=", acpi_sleep_setup); | 116 | __setup("acpi_sleep=", acpi_sleep_setup); |
119 | 117 | ||
120 | #endif /*CONFIG_ACPI_SLEEP */ | ||
121 | |||
122 | void acpi_pci_link_exit(void) | 118 | void acpi_pci_link_exit(void) |
123 | { | 119 | { |
124 | } | 120 | } |
diff --git a/arch/x86_64/kernel/head.S b/arch/x86_64/kernel/head.S index e89abcdbdde8..3a16e417dd8d 100644 --- a/arch/x86_64/kernel/head.S +++ b/arch/x86_64/kernel/head.S | |||
@@ -120,7 +120,7 @@ ident_complete: | |||
120 | addq %rbp, trampoline_level4_pgt + 0(%rip) | 120 | addq %rbp, trampoline_level4_pgt + 0(%rip) |
121 | addq %rbp, trampoline_level4_pgt + (511*8)(%rip) | 121 | addq %rbp, trampoline_level4_pgt + (511*8)(%rip) |
122 | #endif | 122 | #endif |
123 | #ifdef CONFIG_ACPI_SLEEP | 123 | #ifdef CONFIG_ACPI |
124 | addq %rbp, wakeup_level4_pgt + 0(%rip) | 124 | addq %rbp, wakeup_level4_pgt + 0(%rip) |
125 | addq %rbp, wakeup_level4_pgt + (511*8)(%rip) | 125 | addq %rbp, wakeup_level4_pgt + (511*8)(%rip) |
126 | #endif | 126 | #endif |
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index af838f6b0b7f..0f400f3c4694 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
@@ -333,7 +333,7 @@ void __init setup_arch(char **cmdline_p) | |||
333 | reserve_bootmem_generic(SMP_TRAMPOLINE_BASE, 2*PAGE_SIZE); | 333 | reserve_bootmem_generic(SMP_TRAMPOLINE_BASE, 2*PAGE_SIZE); |
334 | #endif | 334 | #endif |
335 | 335 | ||
336 | #ifdef CONFIG_ACPI_SLEEP | 336 | #ifdef CONFIG_ACPI |
337 | /* | 337 | /* |
338 | * Reserve low memory region for sleep support. | 338 | * Reserve low memory region for sleep support. |
339 | */ | 339 | */ |