Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
authorLinus Torvalds <torvalds@g5.osdl.org>
Thu, 9 Feb 2006 01:06:51 +0000 (17:06 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 9 Feb 2006 01:06:51 +0000 (17:06 -0800)
1  2 
arch/ia64/sn/kernel/setup.c

index aac1ba32c5e58118ba1a223f561b61d2968eba5a,6ea5b8a37c011448411bc72d3650e8a392904e9c..48645ac120fc3d0b8b7855de1f0d965b5694a2d4
@@@ -67,6 -67,7 +67,7 @@@ extern unsigned long last_time_offset
  extern void (*ia64_mark_idle) (int);
  extern void snidle(int);
  extern unsigned char acpi_kbd_controller_present;
+ extern unsigned long long (*ia64_printk_clock)(void);
  
  unsigned long sn_rtc_cycles_per_second;
  EXPORT_SYMBOL(sn_rtc_cycles_per_second);
@@@ -124,6 -125,20 +125,6 @@@ struct screen_info sn_screen_info = 
        .orig_video_points = 16
  };
  
 -/*
 - * This is here so we can use the CMOS detection in ide-probe.c to
 - * determine what drives are present.  In theory, we don't need this
 - * as the auto-detection could be done via ide-probe.c:do_probe() but
 - * in practice that would be much slower, which is painful when
 - * running in the simulator.  Note that passing zeroes in DRIVE_INFO
 - * is sufficient (the IDE driver will autodetect the drive geometry).
 - */
 -#ifdef CONFIG_IA64_GENERIC
 -extern char drive_info[4 * 16];
 -#else
 -char drive_info[4 * 16];
 -#endif
 -
  /*
   * This routine can only be used during init, since
   * smp_boot_data is an init data structure.
@@@ -358,6 -373,16 +359,16 @@@ sn_scan_pcdp(void
        }
  }
  
+ static unsigned long sn2_rtc_initial;
+ static unsigned long long ia64_sn2_printk_clock(void)
+ {
+       unsigned long rtc_now = rtc_time();
+       return (rtc_now - sn2_rtc_initial) *
+               (1000000000 / sn_rtc_cycles_per_second);
+ }
  /**
   * sn_setup - SN platform setup routine
   * @cmdline_p: kernel command line
@@@ -372,6 -397,7 +383,7 @@@ void __init sn_setup(char **cmdline_p
        u32 version = sn_sal_rev();
        extern void sn_cpu_init(void);
  
+       sn2_rtc_initial = rtc_time();
        ia64_sn_plat_set_error_handling_features();     // obsolete
        ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV);
        ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES);
         */
        build_cnode_tables();
  
-       /*
-        * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard
-        * support here so we don't have to listen to failed keyboard probe
-        * messages.
-        */
-       if (version <= 0x0209 && acpi_kbd_controller_present) {
-               printk(KERN_INFO "Disabling legacy keyboard support as prom "
-                      "is too old and doesn't provide FADT\n");
-               acpi_kbd_controller_present = 0;
-       }
-       printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);
        status =
            ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec,
                               &drift);
  
        platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR;
  
+       ia64_printk_clock = ia64_sn2_printk_clock;
+       /*
+        * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard
+        * support here so we don't have to listen to failed keyboard probe
+        * messages.
+        */
+       if (version <= 0x0209 && acpi_kbd_controller_present) {
+               printk(KERN_INFO "Disabling legacy keyboard support as prom "
+                      "is too old and doesn't provide FADT\n");
+               acpi_kbd_controller_present = 0;
+       }
+       printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);
        /*
         * we set the default root device to /dev/hda
         * to make simulation easy