diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/sn/kernel/io_acpi_init.c | 8 | ||||
-rw-r--r-- | arch/x86/Kconfig | 5 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/boot.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/sleep.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 42 | ||||
-rw-r--r-- | arch/x86/kernel/process_64.c | 7 |
6 files changed, 45 insertions, 25 deletions
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c index 6568942a95f0..a15baacaba43 100644 --- a/arch/ia64/sn/kernel/io_acpi_init.c +++ b/arch/ia64/sn/kernel/io_acpi_init.c | |||
@@ -232,7 +232,7 @@ exit: | |||
232 | static unsigned int | 232 | static unsigned int |
233 | get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | 233 | get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) |
234 | { | 234 | { |
235 | unsigned long adr; | 235 | unsigned long long adr; |
236 | acpi_handle child; | 236 | acpi_handle child; |
237 | unsigned int devfn; | 237 | unsigned int devfn; |
238 | int function; | 238 | int function; |
@@ -292,8 +292,8 @@ get_host_devfn(acpi_handle device_handle, acpi_handle rootbus_handle) | |||
292 | static acpi_status | 292 | static acpi_status |
293 | find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) | 293 | find_matching_device(acpi_handle handle, u32 lvl, void *context, void **rv) |
294 | { | 294 | { |
295 | unsigned long bbn = -1; | 295 | unsigned long long bbn = -1; |
296 | unsigned long adr; | 296 | unsigned long long adr; |
297 | acpi_handle parent = NULL; | 297 | acpi_handle parent = NULL; |
298 | acpi_status status; | 298 | acpi_status status; |
299 | unsigned int devfn; | 299 | unsigned int devfn; |
@@ -348,7 +348,7 @@ sn_acpi_get_pcidev_info(struct pci_dev *dev, struct pcidev_info **pcidev_info, | |||
348 | unsigned int host_devfn; | 348 | unsigned int host_devfn; |
349 | struct sn_pcidev_match pcidev_match; | 349 | struct sn_pcidev_match pcidev_match; |
350 | acpi_handle rootbus_handle; | 350 | acpi_handle rootbus_handle; |
351 | unsigned long segment; | 351 | unsigned long long segment; |
352 | acpi_status status; | 352 | acpi_status status; |
353 | 353 | ||
354 | rootbus_handle = PCI_CONTROLLER(dev)->acpi_handle; | 354 | rootbus_handle = PCI_CONTROLLER(dev)->acpi_handle; |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index ed92864d1325..540a78242034 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -123,6 +123,9 @@ config GENERIC_TIME_VSYSCALL | |||
123 | config ARCH_HAS_CPU_RELAX | 123 | config ARCH_HAS_CPU_RELAX |
124 | def_bool y | 124 | def_bool y |
125 | 125 | ||
126 | config ARCH_HAS_DEFAULT_IDLE | ||
127 | def_bool y | ||
128 | |||
126 | config ARCH_HAS_CACHE_LINE_SIZE | 129 | config ARCH_HAS_CACHE_LINE_SIZE |
127 | def_bool y | 130 | def_bool y |
128 | 131 | ||
@@ -1536,6 +1539,8 @@ source "arch/x86/kernel/cpu/cpufreq/Kconfig" | |||
1536 | 1539 | ||
1537 | source "drivers/cpuidle/Kconfig" | 1540 | source "drivers/cpuidle/Kconfig" |
1538 | 1541 | ||
1542 | source "drivers/idle/Kconfig" | ||
1543 | |||
1539 | endmenu | 1544 | endmenu |
1540 | 1545 | ||
1541 | 1546 | ||
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index c102af85df9c..0c2742f8c4da 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -97,7 +97,6 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE; | |||
97 | #warning ACPI uses CMPXCHG, i486 and later hardware | 97 | #warning ACPI uses CMPXCHG, i486 and later hardware |
98 | #endif | 98 | #endif |
99 | 99 | ||
100 | static int acpi_mcfg_64bit_base_addr __initdata = FALSE; | ||
101 | 100 | ||
102 | /* -------------------------------------------------------------------------- | 101 | /* -------------------------------------------------------------------------- |
103 | Boot-time Configuration | 102 | Boot-time Configuration |
@@ -156,6 +155,9 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size) | |||
156 | } | 155 | } |
157 | 156 | ||
158 | #ifdef CONFIG_PCI_MMCONFIG | 157 | #ifdef CONFIG_PCI_MMCONFIG |
158 | |||
159 | static int acpi_mcfg_64bit_base_addr __initdata = FALSE; | ||
160 | |||
159 | /* The physical address of the MMCONFIG aperture. Set from ACPI tables. */ | 161 | /* The physical address of the MMCONFIG aperture. Set from ACPI tables. */ |
160 | struct acpi_mcfg_allocation *pci_mmcfg_config; | 162 | struct acpi_mcfg_allocation *pci_mmcfg_config; |
161 | int pci_mmcfg_config_num; | 163 | int pci_mmcfg_config_num; |
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index 426e5d91b63a..55d10cbe65b1 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c | |||
@@ -21,7 +21,7 @@ unsigned long acpi_realmode_flags; | |||
21 | static unsigned long acpi_realmode; | 21 | static unsigned long acpi_realmode; |
22 | 22 | ||
23 | #if defined(CONFIG_SMP) && defined(CONFIG_64BIT) | 23 | #if defined(CONFIG_SMP) && defined(CONFIG_64BIT) |
24 | static char temp_stack[10240]; | 24 | static char temp_stack[4096]; |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | /** | 27 | /** |
@@ -97,7 +97,7 @@ int acpi_save_state_mem(void) | |||
97 | #else /* CONFIG_64BIT */ | 97 | #else /* CONFIG_64BIT */ |
98 | header->trampoline_segment = setup_trampoline() >> 4; | 98 | header->trampoline_segment = setup_trampoline() >> 4; |
99 | #ifdef CONFIG_SMP | 99 | #ifdef CONFIG_SMP |
100 | stack_start.sp = temp_stack + 4096; | 100 | stack_start.sp = temp_stack + sizeof(temp_stack); |
101 | #endif | 101 | #endif |
102 | initial_code = (unsigned long)wakeup_long64; | 102 | initial_code = (unsigned long)wakeup_long64; |
103 | saved_magic = 0x123456789abcdef0; | 103 | saved_magic = 0x123456789abcdef0; |
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index 84bb395038d8..4e0c6abd7ca4 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -45,7 +45,6 @@ | |||
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | #define PFX "powernow-k8: " | 47 | #define PFX "powernow-k8: " |
48 | #define BFX PFX "BIOS error: " | ||
49 | #define VERSION "version 2.20.00" | 48 | #define VERSION "version 2.20.00" |
50 | #include "powernow-k8.h" | 49 | #include "powernow-k8.h" |
51 | 50 | ||
@@ -536,35 +535,40 @@ static int check_pst_table(struct powernow_k8_data *data, struct pst_s *pst, u8 | |||
536 | 535 | ||
537 | for (j = 0; j < data->numps; j++) { | 536 | for (j = 0; j < data->numps; j++) { |
538 | if (pst[j].vid > LEAST_VID) { | 537 | if (pst[j].vid > LEAST_VID) { |
539 | printk(KERN_ERR PFX "vid %d invalid : 0x%x\n", j, pst[j].vid); | 538 | printk(KERN_ERR FW_BUG PFX "vid %d invalid : 0x%x\n", |
539 | j, pst[j].vid); | ||
540 | return -EINVAL; | 540 | return -EINVAL; |
541 | } | 541 | } |
542 | if (pst[j].vid < data->rvo) { /* vid + rvo >= 0 */ | 542 | if (pst[j].vid < data->rvo) { /* vid + rvo >= 0 */ |
543 | printk(KERN_ERR BFX "0 vid exceeded with pstate %d\n", j); | 543 | printk(KERN_ERR FW_BUG PFX "0 vid exceeded with pstate" |
544 | " %d\n", j); | ||
544 | return -ENODEV; | 545 | return -ENODEV; |
545 | } | 546 | } |
546 | if (pst[j].vid < maxvid + data->rvo) { /* vid + rvo >= maxvid */ | 547 | if (pst[j].vid < maxvid + data->rvo) { /* vid + rvo >= maxvid */ |
547 | printk(KERN_ERR BFX "maxvid exceeded with pstate %d\n", j); | 548 | printk(KERN_ERR FW_BUG PFX "maxvid exceeded with pstate" |
549 | " %d\n", j); | ||
548 | return -ENODEV; | 550 | return -ENODEV; |
549 | } | 551 | } |
550 | if (pst[j].fid > MAX_FID) { | 552 | if (pst[j].fid > MAX_FID) { |
551 | printk(KERN_ERR BFX "maxfid exceeded with pstate %d\n", j); | 553 | printk(KERN_ERR FW_BUG PFX "maxfid exceeded with pstate" |
554 | " %d\n", j); | ||
552 | return -ENODEV; | 555 | return -ENODEV; |
553 | } | 556 | } |
554 | if (j && (pst[j].fid < HI_FID_TABLE_BOTTOM)) { | 557 | if (j && (pst[j].fid < HI_FID_TABLE_BOTTOM)) { |
555 | /* Only first fid is allowed to be in "low" range */ | 558 | /* Only first fid is allowed to be in "low" range */ |
556 | printk(KERN_ERR BFX "two low fids - %d : 0x%x\n", j, pst[j].fid); | 559 | printk(KERN_ERR FW_BUG PFX "two low fids - %d : " |
560 | "0x%x\n", j, pst[j].fid); | ||
557 | return -EINVAL; | 561 | return -EINVAL; |
558 | } | 562 | } |
559 | if (pst[j].fid < lastfid) | 563 | if (pst[j].fid < lastfid) |
560 | lastfid = pst[j].fid; | 564 | lastfid = pst[j].fid; |
561 | } | 565 | } |
562 | if (lastfid & 1) { | 566 | if (lastfid & 1) { |
563 | printk(KERN_ERR BFX "lastfid invalid\n"); | 567 | printk(KERN_ERR FW_BUG PFX "lastfid invalid\n"); |
564 | return -EINVAL; | 568 | return -EINVAL; |
565 | } | 569 | } |
566 | if (lastfid > LO_FID_TABLE_TOP) | 570 | if (lastfid > LO_FID_TABLE_TOP) |
567 | printk(KERN_INFO BFX "first fid not from lo freq table\n"); | 571 | printk(KERN_INFO FW_BUG PFX "first fid not from lo freq table\n"); |
568 | 572 | ||
569 | return 0; | 573 | return 0; |
570 | } | 574 | } |
@@ -672,13 +676,13 @@ static int find_psb_table(struct powernow_k8_data *data) | |||
672 | 676 | ||
673 | dprintk("table vers: 0x%x\n", psb->tableversion); | 677 | dprintk("table vers: 0x%x\n", psb->tableversion); |
674 | if (psb->tableversion != PSB_VERSION_1_4) { | 678 | if (psb->tableversion != PSB_VERSION_1_4) { |
675 | printk(KERN_ERR BFX "PSB table is not v1.4\n"); | 679 | printk(KERN_ERR FW_BUG PFX "PSB table is not v1.4\n"); |
676 | return -ENODEV; | 680 | return -ENODEV; |
677 | } | 681 | } |
678 | 682 | ||
679 | dprintk("flags: 0x%x\n", psb->flags1); | 683 | dprintk("flags: 0x%x\n", psb->flags1); |
680 | if (psb->flags1) { | 684 | if (psb->flags1) { |
681 | printk(KERN_ERR BFX "unknown flags\n"); | 685 | printk(KERN_ERR FW_BUG PFX "unknown flags\n"); |
682 | return -ENODEV; | 686 | return -ENODEV; |
683 | } | 687 | } |
684 | 688 | ||
@@ -705,7 +709,7 @@ static int find_psb_table(struct powernow_k8_data *data) | |||
705 | } | 709 | } |
706 | } | 710 | } |
707 | if (cpst != 1) { | 711 | if (cpst != 1) { |
708 | printk(KERN_ERR BFX "numpst must be 1\n"); | 712 | printk(KERN_ERR FW_BUG PFX "numpst must be 1\n"); |
709 | return -ENODEV; | 713 | return -ENODEV; |
710 | } | 714 | } |
711 | 715 | ||
@@ -1130,17 +1134,19 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1130 | "ACPI Processor module before starting this " | 1134 | "ACPI Processor module before starting this " |
1131 | "driver.\n"); | 1135 | "driver.\n"); |
1132 | #else | 1136 | #else |
1133 | printk(KERN_ERR PFX "Your BIOS does not provide ACPI " | 1137 | printk(KERN_ERR FW_BUG PFX "Your BIOS does not provide" |
1134 | "_PSS objects in a way that Linux understands. " | 1138 | " ACPI _PSS objects in a way that Linux " |
1135 | "Please report this to the Linux ACPI maintainers" | 1139 | "understands. Please report this to the Linux " |
1136 | " and complain to your BIOS vendor.\n"); | 1140 | "ACPI maintainers and complain to your BIOS " |
1141 | "vendor.\n"); | ||
1137 | #endif | 1142 | #endif |
1138 | kfree(data); | 1143 | kfree(data); |
1139 | return -ENODEV; | 1144 | return -ENODEV; |
1140 | } | 1145 | } |
1141 | if (pol->cpu != 0) { | 1146 | if (pol->cpu != 0) { |
1142 | printk(KERN_ERR PFX "No ACPI _PSS objects for CPU other than " | 1147 | printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for " |
1143 | "CPU0. Complain to your BIOS vendor.\n"); | 1148 | "CPU other than CPU0. Complain to your BIOS " |
1149 | "vendor.\n"); | ||
1144 | kfree(data); | 1150 | kfree(data); |
1145 | return -ENODEV; | 1151 | return -ENODEV; |
1146 | } | 1152 | } |
@@ -1193,7 +1199,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1193 | 1199 | ||
1194 | /* min/max the cpu is capable of */ | 1200 | /* min/max the cpu is capable of */ |
1195 | if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) { | 1201 | if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) { |
1196 | printk(KERN_ERR PFX "invalid powernow_table\n"); | 1202 | printk(KERN_ERR FW_BUG PFX "invalid powernow_table\n"); |
1197 | powernow_k8_cpu_exit_acpi(data); | 1203 | powernow_k8_cpu_exit_acpi(data); |
1198 | kfree(data->powernow_table); | 1204 | kfree(data->powernow_table); |
1199 | kfree(data); | 1205 | kfree(data); |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index e12e0e4dd256..3e3d503eadcf 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -62,6 +62,13 @@ void idle_notifier_register(struct notifier_block *n) | |||
62 | { | 62 | { |
63 | atomic_notifier_chain_register(&idle_notifier, n); | 63 | atomic_notifier_chain_register(&idle_notifier, n); |
64 | } | 64 | } |
65 | EXPORT_SYMBOL_GPL(idle_notifier_register); | ||
66 | |||
67 | void idle_notifier_unregister(struct notifier_block *n) | ||
68 | { | ||
69 | atomic_notifier_chain_unregister(&idle_notifier, n); | ||
70 | } | ||
71 | EXPORT_SYMBOL_GPL(idle_notifier_unregister); | ||
65 | 72 | ||
66 | void enter_idle(void) | 73 | void enter_idle(void) |
67 | { | 74 | { |