aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/sn/kernel/setup.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-02-08 20:06:51 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-08 20:06:51 -0500
commit0bdd340c092b0936f78a54bdbd3927463ed4fca3 (patch)
treed9215d382cdc4c2dc6366a2c551079590e8b8216 /arch/ia64/sn/kernel/setup.c
parent9908104935325bd6beba67d637b6f5396d47075c (diff)
parentf478af9dc58c01880832a321c3eea7703772c420 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Diffstat (limited to 'arch/ia64/sn/kernel/setup.c')
-rw-r--r--arch/ia64/sn/kernel/setup.c40
1 files changed, 27 insertions, 13 deletions
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c
index aac1ba32c5e5..48645ac120fc 100644
--- a/arch/ia64/sn/kernel/setup.c
+++ b/arch/ia64/sn/kernel/setup.c
@@ -67,6 +67,7 @@ extern unsigned long last_time_offset;
67extern void (*ia64_mark_idle) (int); 67extern void (*ia64_mark_idle) (int);
68extern void snidle(int); 68extern void snidle(int);
69extern unsigned char acpi_kbd_controller_present; 69extern unsigned char acpi_kbd_controller_present;
70extern unsigned long long (*ia64_printk_clock)(void);
70 71
71unsigned long sn_rtc_cycles_per_second; 72unsigned long sn_rtc_cycles_per_second;
72EXPORT_SYMBOL(sn_rtc_cycles_per_second); 73EXPORT_SYMBOL(sn_rtc_cycles_per_second);
@@ -358,6 +359,16 @@ sn_scan_pcdp(void)
358 } 359 }
359} 360}
360 361
362static unsigned long sn2_rtc_initial;
363
364static unsigned long long ia64_sn2_printk_clock(void)
365{
366 unsigned long rtc_now = rtc_time();
367
368 return (rtc_now - sn2_rtc_initial) *
369 (1000000000 / sn_rtc_cycles_per_second);
370}
371
361/** 372/**
362 * sn_setup - SN platform setup routine 373 * sn_setup - SN platform setup routine
363 * @cmdline_p: kernel command line 374 * @cmdline_p: kernel command line
@@ -372,6 +383,7 @@ void __init sn_setup(char **cmdline_p)
372 u32 version = sn_sal_rev(); 383 u32 version = sn_sal_rev();
373 extern void sn_cpu_init(void); 384 extern void sn_cpu_init(void);
374 385
386 sn2_rtc_initial = rtc_time();
375 ia64_sn_plat_set_error_handling_features(); // obsolete 387 ia64_sn_plat_set_error_handling_features(); // obsolete
376 ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV); 388 ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV);
377 ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES); 389 ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES);
@@ -423,19 +435,6 @@ void __init sn_setup(char **cmdline_p)
423 */ 435 */
424 build_cnode_tables(); 436 build_cnode_tables();
425 437
426 /*
427 * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard
428 * support here so we don't have to listen to failed keyboard probe
429 * messages.
430 */
431 if (version <= 0x0209 && acpi_kbd_controller_present) {
432 printk(KERN_INFO "Disabling legacy keyboard support as prom "
433 "is too old and doesn't provide FADT\n");
434 acpi_kbd_controller_present = 0;
435 }
436
437 printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);
438
439 status = 438 status =
440 ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec, 439 ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec,
441 &drift); 440 &drift);
@@ -449,6 +448,21 @@ void __init sn_setup(char **cmdline_p)
449 448
450 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR; 449 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR;
451 450
451 ia64_printk_clock = ia64_sn2_printk_clock;
452
453 /*
454 * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard
455 * support here so we don't have to listen to failed keyboard probe
456 * messages.
457 */
458 if (version <= 0x0209 && acpi_kbd_controller_present) {
459 printk(KERN_INFO "Disabling legacy keyboard support as prom "
460 "is too old and doesn't provide FADT\n");
461 acpi_kbd_controller_present = 0;
462 }
463
464 printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);
465
452 /* 466 /*
453 * we set the default root device to /dev/hda 467 * we set the default root device to /dev/hda
454 * to make simulation easy 468 * to make simulation easy