Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

+70 -28
+4 -12
arch/ia64/kernel/efi.c
··· 410 efi_config_table_t *config_tables; 411 efi_char16_t *c16; 412 u64 efi_desc_size; 413 - char *cp, *end, vendor[100] = "unknown"; 414 extern char saved_command_line[]; 415 int i; 416 417 /* it's too early to be able to use the standard kernel command line support... */ 418 for (cp = saved_command_line; *cp; ) { 419 if (memcmp(cp, "mem=", 4) == 0) { 420 - cp += 4; 421 - mem_limit = memparse(cp, &end); 422 - if (end != cp) 423 - break; 424 - cp = end; 425 } else if (memcmp(cp, "max_addr=", 9) == 0) { 426 - cp += 9; 427 - max_addr = GRANULEROUNDDOWN(memparse(cp, &end)); 428 - if (end != cp) 429 - break; 430 - cp = end; 431 } else { 432 while (*cp != ' ' && *cp) 433 ++cp; ··· 450 /* Show what we know for posterity */ 451 c16 = __va(efi.systab->fw_vendor); 452 if (c16) { 453 - for (i = 0;i < (int) sizeof(vendor) && *c16; ++i) 454 vendor[i] = *c16++; 455 vendor[i] = '\0'; 456 }
··· 410 efi_config_table_t *config_tables; 411 efi_char16_t *c16; 412 u64 efi_desc_size; 413 + char *cp, vendor[100] = "unknown"; 414 extern char saved_command_line[]; 415 int i; 416 417 /* it's too early to be able to use the standard kernel command line support... */ 418 for (cp = saved_command_line; *cp; ) { 419 if (memcmp(cp, "mem=", 4) == 0) { 420 + mem_limit = memparse(cp + 4, &cp); 421 } else if (memcmp(cp, "max_addr=", 9) == 0) { 422 + max_addr = GRANULEROUNDDOWN(memparse(cp + 9, &cp)); 423 } else { 424 while (*cp != ' ' && *cp) 425 ++cp; ··· 458 /* Show what we know for posterity */ 459 c16 = __va(efi.systab->fw_vendor); 460 if (c16) { 461 + for (i = 0;i < (int) sizeof(vendor) - 1 && *c16; ++i) 462 vendor[i] = *c16++; 463 vendor[i] = '\0'; 464 }
+1
arch/ia64/kernel/head.S
··· 352 mov ar.rsc=0 // place RSE in enforced lazy mode 353 ;; 354 loadrs // clear the dirty partition 355 ;; 356 mov ar.bspstore=r2 // establish the new RSE stack 357 ;;
··· 352 mov ar.rsc=0 // place RSE in enforced lazy mode 353 ;; 354 loadrs // clear the dirty partition 355 + mov IA64_KR(PER_CPU_DATA)=r0 // clear physical per-CPU base 356 ;; 357 mov ar.bspstore=r2 // establish the new RSE stack 358 ;;
+4
arch/ia64/kernel/setup.c
··· 71 EXPORT_SYMBOL(__per_cpu_offset); 72 #endif 73 74 DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info); 75 DEFINE_PER_CPU(unsigned long, local_per_cpu_offset); 76 DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8); ··· 446 447 /* process SAL system table: */ 448 ia64_sal_init(efi.sal_systab); 449 450 #ifdef CONFIG_SMP 451 cpu_physical_id(0) = hard_smp_processor_id();
··· 71 EXPORT_SYMBOL(__per_cpu_offset); 72 #endif 73 74 + extern void ia64_setup_printk_clock(void); 75 + 76 DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info); 77 DEFINE_PER_CPU(unsigned long, local_per_cpu_offset); 78 DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8); ··· 444 445 /* process SAL system table: */ 446 ia64_sal_init(efi.sal_systab); 447 + 448 + ia64_setup_printk_clock(); 449 450 #ifdef CONFIG_SMP 451 cpu_physical_id(0) = hard_smp_processor_id();
+27
arch/ia64/kernel/time.c
··· 278 } 279 } 280 EXPORT_SYMBOL(udelay);
··· 278 } 279 } 280 EXPORT_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 __init 303 + 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 archive 4 * for more details. 5 * 6 - * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. 7 */ 8 9 #include <linux/types.h> ··· 137 138 static int __init sn_salinfo_init(void) 139 { 140 - salinfo_platform_oemdata = &sn_salinfo_platform_oemdata; 141 return 0; 142 } 143
··· 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 + * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved. 7 */ 8 9 #include <linux/types.h> ··· 137 138 static 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
··· 67 extern void (*ia64_mark_idle) (int); 68 extern void snidle(int); 69 extern unsigned char acpi_kbd_controller_present; 70 71 unsigned long sn_rtc_cycles_per_second; 72 EXPORT_SYMBOL(sn_rtc_cycles_per_second); ··· 359 } 360 } 361 362 /** 363 * sn_setup - SN platform setup routine 364 * @cmdline_p: kernel command line ··· 383 u32 version = sn_sal_rev(); 384 extern void sn_cpu_init(void); 385 386 ia64_sn_plat_set_error_handling_features(); // obsolete 387 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(); 437 438 - /* 439 - * Old PROMs do not provide an ACPI FADT. Disable legacy keyboard 440 - * support here so we don't have to listen to failed keyboard probe 441 - * 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; 448 449 platform_intr_list[ACPI_INTERRUPT_CPEI] = IA64_CPE_VECTOR; 450 451 /* 452 * we set the default root device to /dev/hda
··· 67 extern void (*ia64_mark_idle) (int); 68 extern void snidle(int); 69 extern unsigned char acpi_kbd_controller_present; 70 + extern unsigned long long (*ia64_printk_clock)(void); 71 72 unsigned long sn_rtc_cycles_per_second; 73 EXPORT_SYMBOL(sn_rtc_cycles_per_second); ··· 358 } 359 } 360 361 + 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 routine 373 * @cmdline_p: kernel command line ··· 372 u32 version = sn_sal_rev(); 373 extern void sn_cpu_init(void); 374 375 + sn2_rtc_initial = rtc_time(); 376 ia64_sn_plat_set_error_handling_features(); // obsolete 377 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(); 425 426 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; 449 450 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 keyboard 456 + * support here so we don't have to listen to failed keyboard probe 457 + * 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); 466 467 /* 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 archive 4 * 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>. ··· 972 static int __devinit sn_hwperf_misc_register_init(void) 973 { 974 int e; 975 976 sn_hwperf_init(); 977
··· 3 * License. See the file "COPYING" in the main directory of this archive 4 * 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>. ··· 972 static int __devinit sn_hwperf_misc_register_init(void) 973 { 974 int e; 975 + 976 + if (!ia64_platform_is("sn2")) 977 + return 0; 978 979 sn_hwperf_init(); 980