···278 }279}280EXPORT_SYMBOL(udelay);281+282+static unsigned long long ia64_itc_printk_clock(void)283+{284+ if (ia64_get_kr(IA64_KR_PER_CPU_DATA))285+ return sched_clock();286+ return 0;287+}288+289+static unsigned long long ia64_default_printk_clock(void)290+{291+ return (unsigned long long)(jiffies_64 - INITIAL_JIFFIES) *292+ (1000000000/HZ);293+}294+295+unsigned long long (*ia64_printk_clock)(void) = &ia64_default_printk_clock;296+297+unsigned long long printk_clock(void)298+{299+ return ia64_printk_clock();300+}301+302+void __init303+ia64_setup_printk_clock(void)304+{305+ if (!(sal_platform_features & IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT))306+ ia64_printk_clock = ia64_itc_printk_clock;307+}
+3-2
arch/ia64/sn/kernel/mca.c
···3 * License. See the file "COPYING" in the main directory of this archive4 * for more details.5 *6- * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.7 */89#include <linux/types.h>···137138static int __init sn_salinfo_init(void)139{140- salinfo_platform_oemdata = &sn_salinfo_platform_oemdata;0141 return 0;142}143
···3 * License. See the file "COPYING" in the main directory of this archive4 * for more details.5 *6+ * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved.7 */89#include <linux/types.h>···137138static int __init sn_salinfo_init(void)139{140+ if (ia64_platform_is("sn2"))141+ salinfo_platform_oemdata = &sn_salinfo_platform_oemdata;142 return 0;143}144
+27-13
arch/ia64/sn/kernel/setup.c
···67extern void (*ia64_mark_idle) (int);68extern void snidle(int);69extern unsigned char acpi_kbd_controller_present;07071unsigned long sn_rtc_cycles_per_second;72EXPORT_SYMBOL(sn_rtc_cycles_per_second);···359 }360}3610000000000362/**363 * sn_setup - SN platform setup routine364 * @cmdline_p: kernel command line···383 u32 version = sn_sal_rev();384 extern void sn_cpu_init(void);3850386 ia64_sn_plat_set_error_handling_features(); // obsolete387 ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV);388 ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES);···435 */436 build_cnode_tables();437438- /*439- * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard440- * support here so we don't have to listen to failed keyboard probe441- * messages.442- */443- if (version <= 0x0209 && acpi_kbd_controller_present) {444- printk(KERN_INFO "Disabling legacy keyboard support as prom "445- "is too old and doesn't provide FADT\n");446- acpi_kbd_controller_present = 0;447- }448-449- printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);450-451 status =452 ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec,453 &drift);···447 sn_rtc_cycles_per_second = ticks_per_sec;448449 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR;000000000000000450451 /*452 * we set the default root device to /dev/hda
···67extern void (*ia64_mark_idle) (int);68extern void snidle(int);69extern unsigned char acpi_kbd_controller_present;70+extern unsigned long long (*ia64_printk_clock)(void);7172unsigned long sn_rtc_cycles_per_second;73EXPORT_SYMBOL(sn_rtc_cycles_per_second);···358 }359}360361+static unsigned long sn2_rtc_initial;362+363+static unsigned long long ia64_sn2_printk_clock(void)364+{365+ unsigned long rtc_now = rtc_time();366+367+ return (rtc_now - sn2_rtc_initial) *368+ (1000000000 / sn_rtc_cycles_per_second);369+}370+371/**372 * sn_setup - SN platform setup routine373 * @cmdline_p: kernel command line···372 u32 version = sn_sal_rev();373 extern void sn_cpu_init(void);374375+ sn2_rtc_initial = rtc_time();376 ia64_sn_plat_set_error_handling_features(); // obsolete377 ia64_sn_set_os_feature(OSF_MCA_SLV_TO_OS_INIT_SLV);378 ia64_sn_set_os_feature(OSF_FEAT_LOG_SBES);···423 */424 build_cnode_tables();4250000000000000426 status =427 ia64_sal_freq_base(SAL_FREQ_BASE_REALTIME_CLOCK, &ticks_per_sec,428 &drift);···448 sn_rtc_cycles_per_second = ticks_per_sec;449450 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR;451+452+ ia64_printk_clock = ia64_sn2_printk_clock;453+454+ /*455+ * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard456+ * support here so we don't have to listen to failed keyboard probe457+ * messages.458+ */459+ if (version <= 0x0209 && acpi_kbd_controller_present) {460+ printk(KERN_INFO "Disabling legacy keyboard support as prom "461+ "is too old and doesn't provide FADT\n");462+ acpi_kbd_controller_present = 0;463+ }464+465+ printk("SGI SAL version %x.%02x\n", version >> 8, version & 0x00FF);466467 /*468 * we set the default root device to /dev/hda
+4-1
arch/ia64/sn/kernel/sn2/sn_hwperf.c
···3 * License. See the file "COPYING" in the main directory of this archive4 * for more details.5 *6- * Copyright (C) 2004-2005 Silicon Graphics, Inc. All rights reserved.7 *8 * SGI Altix topology and hardware performance monitoring API.9 * Mark Goodwin <markgw@sgi.com>. ···972static int __devinit sn_hwperf_misc_register_init(void)973{974 int e;000975976 sn_hwperf_init();977
···3 * License. See the file "COPYING" in the main directory of this archive4 * for more details.5 *6+ * Copyright (C) 2004-2006 Silicon Graphics, Inc. All rights reserved.7 *8 * SGI Altix topology and hardware performance monitoring API.9 * Mark Goodwin <markgw@sgi.com>. ···972static int __devinit sn_hwperf_misc_register_init(void)973{974 int e;975+976+ if (!ia64_platform_is("sn2"))977+ return 0;978979 sn_hwperf_init();980