diff options
| -rw-r--r-- | arch/ia64/configs/tiger_defconfig | 2 | ||||
| -rw-r--r-- | arch/ia64/kernel/palinfo.c | 2 | ||||
| -rw-r--r-- | arch/ia64/sn/kernel/setup.c | 12 | ||||
| -rw-r--r-- | arch/ia64/sn/pci/tioca_provider.c | 2 | ||||
| -rw-r--r-- | include/asm-ia64/sn/sn_sal.h | 10 |
5 files changed, 22 insertions, 6 deletions
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig index 766bf4955432..9d1cffb57cde 100644 --- a/arch/ia64/configs/tiger_defconfig +++ b/arch/ia64/configs/tiger_defconfig | |||
| @@ -114,7 +114,7 @@ CONFIG_IA64_CYCLONE=y | |||
| 114 | CONFIG_IOSAPIC=y | 114 | CONFIG_IOSAPIC=y |
| 115 | CONFIG_FORCE_MAX_ZONEORDER=17 | 115 | CONFIG_FORCE_MAX_ZONEORDER=17 |
| 116 | CONFIG_SMP=y | 116 | CONFIG_SMP=y |
| 117 | CONFIG_NR_CPUS=4 | 117 | CONFIG_NR_CPUS=16 |
| 118 | CONFIG_HOTPLUG_CPU=y | 118 | CONFIG_HOTPLUG_CPU=y |
| 119 | CONFIG_PERMIT_BSP_REMOVE=y | 119 | CONFIG_PERMIT_BSP_REMOVE=y |
| 120 | CONFIG_FORCE_CPEI_RETARGET=y | 120 | CONFIG_FORCE_CPEI_RETARGET=y |
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c index 303a9afcf2a1..8a1208419138 100644 --- a/arch/ia64/kernel/palinfo.c +++ b/arch/ia64/kernel/palinfo.c | |||
| @@ -998,7 +998,7 @@ palinfo_init(void) | |||
| 998 | } | 998 | } |
| 999 | 999 | ||
| 1000 | /* Register for future delivery via notify registration */ | 1000 | /* Register for future delivery via notify registration */ |
| 1001 | register_cpu_notifier(&palinfo_cpu_notifier); | 1001 | register_hotcpu_notifier(&palinfo_cpu_notifier); |
| 1002 | 1002 | ||
| 1003 | return 0; | 1003 | return 0; |
| 1004 | } | 1004 | } |
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index 93577abae36d..3bfccf354343 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
| @@ -458,7 +458,7 @@ void __init sn_setup(char **cmdline_p) | |||
| 458 | * support here so we don't have to listen to failed keyboard probe | 458 | * support here so we don't have to listen to failed keyboard probe |
| 459 | * messages. | 459 | * messages. |
| 460 | */ | 460 | */ |
| 461 | if (version <= 0x0209 && acpi_kbd_controller_present) { | 461 | if (is_shub1() && version <= 0x0209 && acpi_kbd_controller_present) { |
| 462 | printk(KERN_INFO "Disabling legacy keyboard support as prom " | 462 | printk(KERN_INFO "Disabling legacy keyboard support as prom " |
| 463 | "is too old and doesn't provide FADT\n"); | 463 | "is too old and doesn't provide FADT\n"); |
| 464 | acpi_kbd_controller_present = 0; | 464 | acpi_kbd_controller_present = 0; |
| @@ -577,7 +577,8 @@ void __init sn_cpu_init(void) | |||
| 577 | int i; | 577 | int i; |
| 578 | static int wars_have_been_checked; | 578 | static int wars_have_been_checked; |
| 579 | 579 | ||
| 580 | if (smp_processor_id() == 0 && IS_MEDUSA()) { | 580 | cpuid = smp_processor_id(); |
| 581 | if (cpuid == 0 && IS_MEDUSA()) { | ||
| 581 | if (ia64_sn_is_fake_prom()) | 582 | if (ia64_sn_is_fake_prom()) |
| 582 | sn_prom_type = 2; | 583 | sn_prom_type = 2; |
| 583 | else | 584 | else |
| @@ -597,6 +598,12 @@ void __init sn_cpu_init(void) | |||
| 597 | sn_hub_info->as_shift = sn_hub_info->nasid_shift - 2; | 598 | sn_hub_info->as_shift = sn_hub_info->nasid_shift - 2; |
| 598 | 599 | ||
| 599 | /* | 600 | /* |
| 601 | * Don't check status. The SAL call is not supported on all PROMs | ||
| 602 | * but a failure is harmless. | ||
| 603 | */ | ||
| 604 | (void) ia64_sn_set_cpu_number(cpuid); | ||
| 605 | |||
| 606 | /* | ||
| 600 | * The boot cpu makes this call again after platform initialization is | 607 | * The boot cpu makes this call again after platform initialization is |
| 601 | * complete. | 608 | * complete. |
| 602 | */ | 609 | */ |
| @@ -607,7 +614,6 @@ void __init sn_cpu_init(void) | |||
| 607 | if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0) | 614 | if (ia64_sn_get_prom_feature_set(i, &sn_prom_features[i]) != 0) |
| 608 | break; | 615 | break; |
| 609 | 616 | ||
| 610 | cpuid = smp_processor_id(); | ||
| 611 | cpuphyid = get_sapicid(); | 617 | cpuphyid = get_sapicid(); |
| 612 | 618 | ||
| 613 | if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice)) | 619 | if (ia64_sn_get_sapic_info(cpuphyid, &nasid, &subnode, &slice)) |
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index 20de72791b97..e4aa839d0189 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c | |||
| @@ -595,7 +595,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
| 595 | 595 | ||
| 596 | /* sanity check prom rev */ | 596 | /* sanity check prom rev */ |
| 597 | 597 | ||
| 598 | if (sn_sal_rev() < 0x0406) { | 598 | if (is_shub1() && sn_sal_rev() < 0x0406) { |
| 599 | printk | 599 | printk |
| 600 | (KERN_ERR "%s: SGI prom rev 4.06 or greater required " | 600 | (KERN_ERR "%s: SGI prom rev 4.06 or greater required " |
| 601 | "for tioca support\n", __FUNCTION__); | 601 | "for tioca support\n", __FUNCTION__); |
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index cd490b20d592..bd4452bda357 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
| @@ -85,6 +85,7 @@ | |||
| 85 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 | 85 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 |
| 86 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 | 86 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 |
| 87 | #define SN_SAL_INJECT_ERROR 0x02000067 | 87 | #define SN_SAL_INJECT_ERROR 0x02000067 |
| 88 | #define SN_SAL_SET_CPU_NUMBER 0x02000068 | ||
| 88 | 89 | ||
| 89 | /* | 90 | /* |
| 90 | * Service-specific constants | 91 | * Service-specific constants |
| @@ -1150,4 +1151,13 @@ sn_inject_error(u64 paddr, u64 *data, u64 *ecc) | |||
| 1150 | local_irq_restore(irq_flags); | 1151 | local_irq_restore(irq_flags); |
| 1151 | return ret_stuff.status; | 1152 | return ret_stuff.status; |
| 1152 | } | 1153 | } |
| 1154 | |||
| 1155 | static inline int | ||
| 1156 | ia64_sn_set_cpu_number(int cpu) | ||
| 1157 | { | ||
| 1158 | struct ia64_sal_retval rv; | ||
| 1159 | |||
| 1160 | SAL_CALL_NOLOCK(rv, SN_SAL_SET_CPU_NUMBER, cpu, 0, 0, 0, 0, 0, 0); | ||
| 1161 | return rv.status; | ||
| 1162 | } | ||
| 1153 | #endif /* _ASM_IA64_SN_SN_SAL_H */ | 1163 | #endif /* _ASM_IA64_SN_SN_SAL_H */ |
