aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/kernel/acpi/cstate.c10
-rw-r--r--arch/ia64/kernel/acpi.c3
-rw-r--r--arch/ia64/sn/kernel/io_acpi_init.c3
3 files changed, 11 insertions, 5 deletions
diff --git a/arch/i386/kernel/acpi/cstate.c b/arch/i386/kernel/acpi/cstate.c
index 12e937c1ce4b..2d39f55d29a8 100644
--- a/arch/i386/kernel/acpi/cstate.c
+++ b/arch/i386/kernel/acpi/cstate.c
@@ -47,13 +47,13 @@ EXPORT_SYMBOL(acpi_processor_power_init_bm_check);
47 47
48/* The code below handles cstate entry with monitor-mwait pair on Intel*/ 48/* The code below handles cstate entry with monitor-mwait pair on Intel*/
49 49
50struct cstate_entry_s { 50struct cstate_entry {
51 struct { 51 struct {
52 unsigned int eax; 52 unsigned int eax;
53 unsigned int ecx; 53 unsigned int ecx;
54 } states[ACPI_PROCESSOR_MAX_POWER]; 54 } states[ACPI_PROCESSOR_MAX_POWER];
55}; 55};
56static struct cstate_entry_s *cpu_cstate_entry; /* per CPU ptr */ 56static struct cstate_entry *cpu_cstate_entry; /* per CPU ptr */
57 57
58static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; 58static short mwait_supported[ACPI_PROCESSOR_MAX_POWER];
59 59
@@ -71,7 +71,7 @@ static short mwait_supported[ACPI_PROCESSOR_MAX_POWER];
71int acpi_processor_ffh_cstate_probe(unsigned int cpu, 71int acpi_processor_ffh_cstate_probe(unsigned int cpu,
72 struct acpi_processor_cx *cx, struct acpi_power_register *reg) 72 struct acpi_processor_cx *cx, struct acpi_power_register *reg)
73{ 73{
74 struct cstate_entry_s *percpu_entry; 74 struct cstate_entry *percpu_entry;
75 struct cpuinfo_x86 *c = cpu_data + cpu; 75 struct cpuinfo_x86 *c = cpu_data + cpu;
76 76
77 cpumask_t saved_mask; 77 cpumask_t saved_mask;
@@ -136,7 +136,7 @@ EXPORT_SYMBOL_GPL(acpi_processor_ffh_cstate_probe);
136void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx) 136void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx)
137{ 137{
138 unsigned int cpu = smp_processor_id(); 138 unsigned int cpu = smp_processor_id();
139 struct cstate_entry_s *percpu_entry; 139 struct cstate_entry *percpu_entry;
140 140
141 percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu); 141 percpu_entry = per_cpu_ptr(cpu_cstate_entry, cpu);
142 mwait_idle_with_hints(percpu_entry->states[cx->index].eax, 142 mwait_idle_with_hints(percpu_entry->states[cx->index].eax,
@@ -150,7 +150,7 @@ static int __init ffh_cstate_init(void)
150 if (c->x86_vendor != X86_VENDOR_INTEL) 150 if (c->x86_vendor != X86_VENDOR_INTEL)
151 return -1; 151 return -1;
152 152
153 cpu_cstate_entry = alloc_percpu(struct cstate_entry_s); 153 cpu_cstate_entry = alloc_percpu(struct cstate_entry);
154 return 0; 154 return 0;
155} 155}
156 156
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 73ef4a85b861..ef2fe474f107 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -590,6 +590,9 @@ void __init acpi_numa_arch_fixup(void)
590 */ 590 */
591int acpi_register_gsi(u32 gsi, int triggering, int polarity) 591int acpi_register_gsi(u32 gsi, int triggering, int polarity)
592{ 592{
593 if (acpi_irq_model == ACPI_IRQ_MODEL_PLATFORM)
594 return gsi;
595
593 if (has_8259 && gsi < 16) 596 if (has_8259 && gsi < 16)
594 return isa_irq_to_vector(gsi); 597 return isa_irq_to_vector(gsi);
595 598
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c b/arch/ia64/sn/kernel/io_acpi_init.c
index 99d7f278612a..cb96b4ea7df6 100644
--- a/arch/ia64/sn/kernel/io_acpi_init.c
+++ b/arch/ia64/sn/kernel/io_acpi_init.c
@@ -223,6 +223,9 @@ sn_io_acpi_init(void)
223 u64 result; 223 u64 result;
224 s64 status; 224 s64 status;
225 225
226 /* SN Altix does not follow the IOSAPIC IRQ routing model */
227 acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM;
228
226 acpi_bus_register_driver(&acpi_sn_hubdev_driver); 229 acpi_bus_register_driver(&acpi_sn_hubdev_driver);
227 status = sal_ioif_init(&result); 230 status = sal_ioif_init(&result);
228 if (status || result) 231 if (status || result)