aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/acpi
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2009-04-05 02:14:15 -0400
committerLen Brown <len.brown@intel.com>2009-04-05 02:14:15 -0400
commit478c6a43fcbc6c11609f8cee7c7b57223907754f (patch)
treea7f7952099da60d33032aed6de9c0c56c9f8779e /arch/x86/kernel/acpi
parent8a3f257c704e02aee9869decd069a806b45be3f1 (diff)
parent6bb597507f9839b13498781e481f5458aea33620 (diff)
Merge branch 'linus' into release
Conflicts: arch/x86/kernel/cpu/cpufreq/longhaul.c Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/x86/kernel/acpi')
-rw-r--r--arch/x86/kernel/acpi/boot.c169
-rw-r--r--arch/x86/kernel/acpi/realmode/wakeup.S4
-rw-r--r--arch/x86/kernel/acpi/sleep.c1
-rw-r--r--arch/x86/kernel/acpi/wakeup_32.S2
-rw-r--r--arch/x86/kernel/acpi/wakeup_64.S4
5 files changed, 79 insertions, 101 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 4f942096291d..723989d7f802 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -37,15 +37,10 @@
37#include <asm/pgtable.h> 37#include <asm/pgtable.h>
38#include <asm/io_apic.h> 38#include <asm/io_apic.h>
39#include <asm/apic.h> 39#include <asm/apic.h>
40#include <asm/genapic.h>
41#include <asm/io.h> 40#include <asm/io.h>
42#include <asm/mpspec.h> 41#include <asm/mpspec.h>
43#include <asm/smp.h> 42#include <asm/smp.h>
44 43
45#ifdef CONFIG_X86_LOCAL_APIC
46# include <mach_apic.h>
47#endif
48
49static int __initdata acpi_force = 0; 44static int __initdata acpi_force = 0;
50u32 acpi_rsdt_forced; 45u32 acpi_rsdt_forced;
51#ifdef CONFIG_ACPI 46#ifdef CONFIG_ACPI
@@ -56,16 +51,7 @@ int acpi_disabled = 1;
56EXPORT_SYMBOL(acpi_disabled); 51EXPORT_SYMBOL(acpi_disabled);
57 52
58#ifdef CONFIG_X86_64 53#ifdef CONFIG_X86_64
59 54# include <asm/proto.h>
60#include <asm/proto.h>
61
62#else /* X86 */
63
64#ifdef CONFIG_X86_LOCAL_APIC
65#include <mach_apic.h>
66#include <mach_mpparse.h>
67#endif /* CONFIG_X86_LOCAL_APIC */
68
69#endif /* X86 */ 55#endif /* X86 */
70 56
71#define BAD_MADT_ENTRY(entry, end) ( \ 57#define BAD_MADT_ENTRY(entry, end) ( \
@@ -121,35 +107,18 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC;
121 */ 107 */
122char *__init __acpi_map_table(unsigned long phys, unsigned long size) 108char *__init __acpi_map_table(unsigned long phys, unsigned long size)
123{ 109{
124 unsigned long base, offset, mapped_size;
125 int idx;
126 110
127 if (!phys || !size) 111 if (!phys || !size)
128 return NULL; 112 return NULL;
129 113
130 if (phys+size <= (max_low_pfn_mapped << PAGE_SHIFT)) 114 return early_ioremap(phys, size);
131 return __va(phys); 115}
132 116void __init __acpi_unmap_table(char *map, unsigned long size)
133 offset = phys & (PAGE_SIZE - 1); 117{
134 mapped_size = PAGE_SIZE - offset; 118 if (!map || !size)
135 clear_fixmap(FIX_ACPI_END); 119 return;
136 set_fixmap(FIX_ACPI_END, phys);
137 base = fix_to_virt(FIX_ACPI_END);
138
139 /*
140 * Most cases can be covered by the below.
141 */
142 idx = FIX_ACPI_END;
143 while (mapped_size < size) {
144 if (--idx < FIX_ACPI_BEGIN)
145 return NULL; /* cannot handle this */
146 phys += PAGE_SIZE;
147 clear_fixmap(idx);
148 set_fixmap(idx, phys);
149 mapped_size += PAGE_SIZE;
150 }
151 120
152 return ((unsigned char *)base + offset); 121 early_iounmap(map, size);
153} 122}
154 123
155#ifdef CONFIG_PCI_MMCONFIG 124#ifdef CONFIG_PCI_MMCONFIG
@@ -239,7 +208,8 @@ static int __init acpi_parse_madt(struct acpi_table_header *table)
239 madt->address); 208 madt->address);
240 } 209 }
241 210
242 acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); 211 default_acpi_madt_oem_check(madt->header.oem_id,
212 madt->header.oem_table_id);
243 213
244 return 0; 214 return 0;
245} 215}
@@ -939,7 +909,7 @@ static struct {
939 DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1); 909 DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1);
940} mp_ioapic_routing[MAX_IO_APICS]; 910} mp_ioapic_routing[MAX_IO_APICS];
941 911
942static int mp_find_ioapic(int gsi) 912int mp_find_ioapic(int gsi)
943{ 913{
944 int i = 0; 914 int i = 0;
945 915
@@ -954,6 +924,16 @@ static int mp_find_ioapic(int gsi)
954 return -1; 924 return -1;
955} 925}
956 926
927int mp_find_ioapic_pin(int ioapic, int gsi)
928{
929 if (WARN_ON(ioapic == -1))
930 return -1;
931 if (WARN_ON(gsi > mp_ioapic_routing[ioapic].gsi_end))
932 return -1;
933
934 return gsi - mp_ioapic_routing[ioapic].gsi_base;
935}
936
957static u8 __init uniq_ioapic_id(u8 id) 937static u8 __init uniq_ioapic_id(u8 id)
958{ 938{
959#ifdef CONFIG_X86_32 939#ifdef CONFIG_X86_32
@@ -967,8 +947,8 @@ static u8 __init uniq_ioapic_id(u8 id)
967 DECLARE_BITMAP(used, 256); 947 DECLARE_BITMAP(used, 256);
968 bitmap_zero(used, 256); 948 bitmap_zero(used, 256);
969 for (i = 0; i < nr_ioapics; i++) { 949 for (i = 0; i < nr_ioapics; i++) {
970 struct mp_config_ioapic *ia = &mp_ioapics[i]; 950 struct mpc_ioapic *ia = &mp_ioapics[i];
971 __set_bit(ia->mp_apicid, used); 951 __set_bit(ia->apicid, used);
972 } 952 }
973 if (!test_bit(id, used)) 953 if (!test_bit(id, used))
974 return id; 954 return id;
@@ -1000,29 +980,29 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
1000 980
1001 idx = nr_ioapics; 981 idx = nr_ioapics;
1002 982
1003 mp_ioapics[idx].mp_type = MP_IOAPIC; 983 mp_ioapics[idx].type = MP_IOAPIC;
1004 mp_ioapics[idx].mp_flags = MPC_APIC_USABLE; 984 mp_ioapics[idx].flags = MPC_APIC_USABLE;
1005 mp_ioapics[idx].mp_apicaddr = address; 985 mp_ioapics[idx].apicaddr = address;
1006 986
1007 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); 987 set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
1008 mp_ioapics[idx].mp_apicid = uniq_ioapic_id(id); 988 mp_ioapics[idx].apicid = uniq_ioapic_id(id);
1009#ifdef CONFIG_X86_32 989#ifdef CONFIG_X86_32
1010 mp_ioapics[idx].mp_apicver = io_apic_get_version(idx); 990 mp_ioapics[idx].apicver = io_apic_get_version(idx);
1011#else 991#else
1012 mp_ioapics[idx].mp_apicver = 0; 992 mp_ioapics[idx].apicver = 0;
1013#endif 993#endif
1014 /* 994 /*
1015 * Build basic GSI lookup table to facilitate gsi->io_apic lookups 995 * Build basic GSI lookup table to facilitate gsi->io_apic lookups
1016 * and to prevent reprogramming of IOAPIC pins (PCI GSIs). 996 * and to prevent reprogramming of IOAPIC pins (PCI GSIs).
1017 */ 997 */
1018 mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].mp_apicid; 998 mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].apicid;
1019 mp_ioapic_routing[idx].gsi_base = gsi_base; 999 mp_ioapic_routing[idx].gsi_base = gsi_base;
1020 mp_ioapic_routing[idx].gsi_end = gsi_base + 1000 mp_ioapic_routing[idx].gsi_end = gsi_base +
1021 io_apic_get_redir_entries(idx); 1001 io_apic_get_redir_entries(idx);
1022 1002
1023 printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%lx, " 1003 printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
1024 "GSI %d-%d\n", idx, mp_ioapics[idx].mp_apicid, 1004 "GSI %d-%d\n", idx, mp_ioapics[idx].apicid,
1025 mp_ioapics[idx].mp_apicver, mp_ioapics[idx].mp_apicaddr, 1005 mp_ioapics[idx].apicver, mp_ioapics[idx].apicaddr,
1026 mp_ioapic_routing[idx].gsi_base, mp_ioapic_routing[idx].gsi_end); 1006 mp_ioapic_routing[idx].gsi_base, mp_ioapic_routing[idx].gsi_end);
1027 1007
1028 nr_ioapics++; 1008 nr_ioapics++;
@@ -1051,19 +1031,19 @@ int __init acpi_probe_gsi(void)
1051 return max_gsi + 1; 1031 return max_gsi + 1;
1052} 1032}
1053 1033
1054static void assign_to_mp_irq(struct mp_config_intsrc *m, 1034static void assign_to_mp_irq(struct mpc_intsrc *m,
1055 struct mp_config_intsrc *mp_irq) 1035 struct mpc_intsrc *mp_irq)
1056{ 1036{
1057 memcpy(mp_irq, m, sizeof(struct mp_config_intsrc)); 1037 memcpy(mp_irq, m, sizeof(struct mpc_intsrc));
1058} 1038}
1059 1039
1060static int mp_irq_cmp(struct mp_config_intsrc *mp_irq, 1040static int mp_irq_cmp(struct mpc_intsrc *mp_irq,
1061 struct mp_config_intsrc *m) 1041 struct mpc_intsrc *m)
1062{ 1042{
1063 return memcmp(mp_irq, m, sizeof(struct mp_config_intsrc)); 1043 return memcmp(mp_irq, m, sizeof(struct mpc_intsrc));
1064} 1044}
1065 1045
1066static void save_mp_irq(struct mp_config_intsrc *m) 1046static void save_mp_irq(struct mpc_intsrc *m)
1067{ 1047{
1068 int i; 1048 int i;
1069 1049
@@ -1081,7 +1061,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1081{ 1061{
1082 int ioapic; 1062 int ioapic;
1083 int pin; 1063 int pin;
1084 struct mp_config_intsrc mp_irq; 1064 struct mpc_intsrc mp_irq;
1085 1065
1086 /* 1066 /*
1087 * Convert 'gsi' to 'ioapic.pin'. 1067 * Convert 'gsi' to 'ioapic.pin'.
@@ -1089,7 +1069,7 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1089 ioapic = mp_find_ioapic(gsi); 1069 ioapic = mp_find_ioapic(gsi);
1090 if (ioapic < 0) 1070 if (ioapic < 0)
1091 return; 1071 return;
1092 pin = gsi - mp_ioapic_routing[ioapic].gsi_base; 1072 pin = mp_find_ioapic_pin(ioapic, gsi);
1093 1073
1094 /* 1074 /*
1095 * TBD: This check is for faulty timer entries, where the override 1075 * TBD: This check is for faulty timer entries, where the override
@@ -1099,13 +1079,13 @@ void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi)
1099 if ((bus_irq == 0) && (trigger == 3)) 1079 if ((bus_irq == 0) && (trigger == 3))
1100 trigger = 1; 1080 trigger = 1;
1101 1081
1102 mp_irq.mp_type = MP_INTSRC; 1082 mp_irq.type = MP_INTSRC;
1103 mp_irq.mp_irqtype = mp_INT; 1083 mp_irq.irqtype = mp_INT;
1104 mp_irq.mp_irqflag = (trigger << 2) | polarity; 1084 mp_irq.irqflag = (trigger << 2) | polarity;
1105 mp_irq.mp_srcbus = MP_ISA_BUS; 1085 mp_irq.srcbus = MP_ISA_BUS;
1106 mp_irq.mp_srcbusirq = bus_irq; /* IRQ */ 1086 mp_irq.srcbusirq = bus_irq; /* IRQ */
1107 mp_irq.mp_dstapic = mp_ioapics[ioapic].mp_apicid; /* APIC ID */ 1087 mp_irq.dstapic = mp_ioapics[ioapic].apicid; /* APIC ID */
1108 mp_irq.mp_dstirq = pin; /* INTIN# */ 1088 mp_irq.dstirq = pin; /* INTIN# */
1109 1089
1110 save_mp_irq(&mp_irq); 1090 save_mp_irq(&mp_irq);
1111} 1091}
@@ -1115,7 +1095,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1115 int i; 1095 int i;
1116 int ioapic; 1096 int ioapic;
1117 unsigned int dstapic; 1097 unsigned int dstapic;
1118 struct mp_config_intsrc mp_irq; 1098 struct mpc_intsrc mp_irq;
1119 1099
1120#if defined (CONFIG_MCA) || defined (CONFIG_EISA) 1100#if defined (CONFIG_MCA) || defined (CONFIG_EISA)
1121 /* 1101 /*
@@ -1140,7 +1120,7 @@ void __init mp_config_acpi_legacy_irqs(void)
1140 ioapic = mp_find_ioapic(0); 1120 ioapic = mp_find_ioapic(0);
1141 if (ioapic < 0) 1121 if (ioapic < 0)
1142 return; 1122 return;
1143 dstapic = mp_ioapics[ioapic].mp_apicid; 1123 dstapic = mp_ioapics[ioapic].apicid;
1144 1124
1145 /* 1125 /*
1146 * Use the default configuration for the IRQs 0-15. Unless 1126 * Use the default configuration for the IRQs 0-15. Unless
@@ -1150,16 +1130,14 @@ void __init mp_config_acpi_legacy_irqs(void)
1150 int idx; 1130 int idx;
1151 1131
1152 for (idx = 0; idx < mp_irq_entries; idx++) { 1132 for (idx = 0; idx < mp_irq_entries; idx++) {
1153 struct mp_config_intsrc *irq = mp_irqs + idx; 1133 struct mpc_intsrc *irq = mp_irqs + idx;
1154 1134
1155 /* Do we already have a mapping for this ISA IRQ? */ 1135 /* Do we already have a mapping for this ISA IRQ? */
1156 if (irq->mp_srcbus == MP_ISA_BUS 1136 if (irq->srcbus == MP_ISA_BUS && irq->srcbusirq == i)
1157 && irq->mp_srcbusirq == i)
1158 break; 1137 break;
1159 1138
1160 /* Do we already have a mapping for this IOAPIC pin */ 1139 /* Do we already have a mapping for this IOAPIC pin */
1161 if (irq->mp_dstapic == dstapic && 1140 if (irq->dstapic == dstapic && irq->dstirq == i)
1162 irq->mp_dstirq == i)
1163 break; 1141 break;
1164 } 1142 }
1165 1143
@@ -1168,13 +1146,13 @@ void __init mp_config_acpi_legacy_irqs(void)
1168 continue; /* IRQ already used */ 1146 continue; /* IRQ already used */
1169 } 1147 }
1170 1148
1171 mp_irq.mp_type = MP_INTSRC; 1149 mp_irq.type = MP_INTSRC;
1172 mp_irq.mp_irqflag = 0; /* Conforming */ 1150 mp_irq.irqflag = 0; /* Conforming */
1173 mp_irq.mp_srcbus = MP_ISA_BUS; 1151 mp_irq.srcbus = MP_ISA_BUS;
1174 mp_irq.mp_dstapic = dstapic; 1152 mp_irq.dstapic = dstapic;
1175 mp_irq.mp_irqtype = mp_INT; 1153 mp_irq.irqtype = mp_INT;
1176 mp_irq.mp_srcbusirq = i; /* Identity mapped */ 1154 mp_irq.srcbusirq = i; /* Identity mapped */
1177 mp_irq.mp_dstirq = i; 1155 mp_irq.dstirq = i;
1178 1156
1179 save_mp_irq(&mp_irq); 1157 save_mp_irq(&mp_irq);
1180 } 1158 }
@@ -1211,7 +1189,7 @@ int mp_register_gsi(u32 gsi, int triggering, int polarity)
1211 return gsi; 1189 return gsi;
1212 } 1190 }
1213 1191
1214 ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; 1192 ioapic_pin = mp_find_ioapic_pin(ioapic, gsi);
1215 1193
1216#ifdef CONFIG_X86_32 1194#ifdef CONFIG_X86_32
1217 if (ioapic_renumber_irq) 1195 if (ioapic_renumber_irq)
@@ -1285,22 +1263,22 @@ int mp_config_acpi_gsi(unsigned char number, unsigned int devfn, u8 pin,
1285 u32 gsi, int triggering, int polarity) 1263 u32 gsi, int triggering, int polarity)
1286{ 1264{
1287#ifdef CONFIG_X86_MPPARSE 1265#ifdef CONFIG_X86_MPPARSE
1288 struct mp_config_intsrc mp_irq; 1266 struct mpc_intsrc mp_irq;
1289 int ioapic; 1267 int ioapic;
1290 1268
1291 if (!acpi_ioapic) 1269 if (!acpi_ioapic)
1292 return 0; 1270 return 0;
1293 1271
1294 /* print the entry should happen on mptable identically */ 1272 /* print the entry should happen on mptable identically */
1295 mp_irq.mp_type = MP_INTSRC; 1273 mp_irq.type = MP_INTSRC;
1296 mp_irq.mp_irqtype = mp_INT; 1274 mp_irq.irqtype = mp_INT;
1297 mp_irq.mp_irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) | 1275 mp_irq.irqflag = (triggering == ACPI_EDGE_SENSITIVE ? 4 : 0x0c) |
1298 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3); 1276 (polarity == ACPI_ACTIVE_HIGH ? 1 : 3);
1299 mp_irq.mp_srcbus = number; 1277 mp_irq.srcbus = number;
1300 mp_irq.mp_srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3); 1278 mp_irq.srcbusirq = (((devfn >> 3) & 0x1f) << 2) | ((pin - 1) & 3);
1301 ioapic = mp_find_ioapic(gsi); 1279 ioapic = mp_find_ioapic(gsi);
1302 mp_irq.mp_dstapic = mp_ioapic_routing[ioapic].apic_id; 1280 mp_irq.dstapic = mp_ioapic_routing[ioapic].apic_id;
1303 mp_irq.mp_dstirq = gsi - mp_ioapic_routing[ioapic].gsi_base; 1281 mp_irq.dstirq = mp_find_ioapic_pin(ioapic, gsi);
1304 1282
1305 save_mp_irq(&mp_irq); 1283 save_mp_irq(&mp_irq);
1306#endif 1284#endif
@@ -1427,7 +1405,7 @@ static void __init acpi_process_madt(void)
1427 if (!error) { 1405 if (!error) {
1428 acpi_lapic = 1; 1406 acpi_lapic = 1;
1429 1407
1430#ifdef CONFIG_X86_GENERICARCH 1408#ifdef CONFIG_X86_BIGSMP
1431 generic_bigsmp_probe(); 1409 generic_bigsmp_probe();
1432#endif 1410#endif
1433 /* 1411 /*
@@ -1439,9 +1417,8 @@ static void __init acpi_process_madt(void)
1439 acpi_ioapic = 1; 1417 acpi_ioapic = 1;
1440 1418
1441 smp_found_config = 1; 1419 smp_found_config = 1;
1442#ifdef CONFIG_X86_32 1420 if (apic->setup_apic_routing)
1443 setup_apic_routing(); 1421 apic->setup_apic_routing();
1444#endif
1445 } 1422 }
1446 } 1423 }
1447 if (error == -EINVAL) { 1424 if (error == -EINVAL) {
diff --git a/arch/x86/kernel/acpi/realmode/wakeup.S b/arch/x86/kernel/acpi/realmode/wakeup.S
index 3355973b12ac..580b4e296010 100644
--- a/arch/x86/kernel/acpi/realmode/wakeup.S
+++ b/arch/x86/kernel/acpi/realmode/wakeup.S
@@ -3,8 +3,8 @@
3 */ 3 */
4#include <asm/segment.h> 4#include <asm/segment.h>
5#include <asm/msr-index.h> 5#include <asm/msr-index.h>
6#include <asm/page.h> 6#include <asm/page_types.h>
7#include <asm/pgtable.h> 7#include <asm/pgtable_types.h>
8#include <asm/processor-flags.h> 8#include <asm/processor-flags.h>
9 9
10 .code16 10 .code16
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index a60c1f3bcb87..7c243a2c5115 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -101,6 +101,7 @@ int acpi_save_state_mem(void)
101 stack_start.sp = temp_stack + sizeof(temp_stack); 101 stack_start.sp = temp_stack + sizeof(temp_stack);
102 early_gdt_descr.address = 102 early_gdt_descr.address =
103 (unsigned long)get_cpu_gdt_table(smp_processor_id()); 103 (unsigned long)get_cpu_gdt_table(smp_processor_id());
104 initial_gs = per_cpu_offset(smp_processor_id());
104#endif 105#endif
105 initial_code = (unsigned long)wakeup_long64; 106 initial_code = (unsigned long)wakeup_long64;
106 saved_magic = 0x123456789abcdef0; 107 saved_magic = 0x123456789abcdef0;
diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
index a12e6a9fb659..8ded418b0593 100644
--- a/arch/x86/kernel/acpi/wakeup_32.S
+++ b/arch/x86/kernel/acpi/wakeup_32.S
@@ -1,7 +1,7 @@
1 .section .text.page_aligned 1 .section .text.page_aligned
2#include <linux/linkage.h> 2#include <linux/linkage.h>
3#include <asm/segment.h> 3#include <asm/segment.h>
4#include <asm/page.h> 4#include <asm/page_types.h>
5 5
6# Copyright 2003, 2008 Pavel Machek <pavel@suse.cz>, distribute under GPLv2 6# Copyright 2003, 2008 Pavel Machek <pavel@suse.cz>, distribute under GPLv2
7 7
diff --git a/arch/x86/kernel/acpi/wakeup_64.S b/arch/x86/kernel/acpi/wakeup_64.S
index 96258d9dc974..8ea5164cbd04 100644
--- a/arch/x86/kernel/acpi/wakeup_64.S
+++ b/arch/x86/kernel/acpi/wakeup_64.S
@@ -1,8 +1,8 @@
1.text 1.text
2#include <linux/linkage.h> 2#include <linux/linkage.h>
3#include <asm/segment.h> 3#include <asm/segment.h>
4#include <asm/pgtable.h> 4#include <asm/pgtable_types.h>
5#include <asm/page.h> 5#include <asm/page_types.h>
6#include <asm/msr.h> 6#include <asm/msr.h>
7#include <asm/asm-offsets.h> 7#include <asm/asm-offsets.h>
8 8