diff options
-rw-r--r-- | arch/i386/kernel/acpi/boot.c | 29 | ||||
-rw-r--r-- | drivers/acpi/ec.c | 8 | ||||
-rw-r--r-- | include/acpi/actbl.h | 5 | ||||
-rw-r--r-- | include/linux/acpi.h | 59 |
4 files changed, 20 insertions, 81 deletions
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index cbbcf9c630bf..389a8a56d2b4 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -204,9 +204,9 @@ int __init acpi_parse_mcfg(struct acpi_table_header *header) | |||
204 | return -ENOMEM; | 204 | return -ENOMEM; |
205 | } | 205 | } |
206 | 206 | ||
207 | memcpy(pci_mmcfg_config, &mcfg->config, config_size); | 207 | memcpy(pci_mmcfg_config, &mcfg[1], config_size); |
208 | for (i = 0; i < pci_mmcfg_config_num; ++i) { | 208 | for (i = 0; i < pci_mmcfg_config_num; ++i) { |
209 | if (mcfg->config[i].base_reserved) { | 209 | if (pci_mmcfg_config[i].base_reserved) { |
210 | printk(KERN_ERR PREFIX | 210 | printk(KERN_ERR PREFIX |
211 | "MMCONFIG not in low 4GB of memory\n"); | 211 | "MMCONFIG not in low 4GB of memory\n"); |
212 | kfree(pci_mmcfg_config); | 212 | kfree(pci_mmcfg_config); |
@@ -233,11 +233,11 @@ static int __init acpi_parse_madt(struct acpi_table_header *header) | |||
233 | return -ENODEV; | 233 | return -ENODEV; |
234 | } | 234 | } |
235 | 235 | ||
236 | if (madt->lapic_address) { | 236 | if (madt->address) { |
237 | acpi_lapic_addr = (u64) madt->lapic_address; | 237 | acpi_lapic_addr = (u64) madt->address; |
238 | 238 | ||
239 | printk(KERN_DEBUG PREFIX "Local APIC address 0x%08x\n", | 239 | printk(KERN_DEBUG PREFIX "Local APIC address 0x%08x\n", |
240 | madt->lapic_address); | 240 | madt->address); |
241 | } | 241 | } |
242 | 242 | ||
243 | acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); | 243 | acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); |
@@ -654,7 +654,7 @@ static int __init acpi_parse_hpet(struct acpi_table_header *header) | |||
654 | return -ENODEV; | 654 | return -ENODEV; |
655 | } | 655 | } |
656 | 656 | ||
657 | if (hpet_tbl->addr.space_id != ACPI_SPACE_MEM) { | 657 | if (hpet_tbl->address.space_id != ACPI_SPACE_MEM) { |
658 | printk(KERN_WARNING PREFIX "HPET timers must be located in " | 658 | printk(KERN_WARNING PREFIX "HPET timers must be located in " |
659 | "memory.\n"); | 659 | "memory.\n"); |
660 | return -1; | 660 | return -1; |
@@ -667,29 +667,28 @@ static int __init acpi_parse_hpet(struct acpi_table_header *header) | |||
667 | hpet_res->name = (void *)&hpet_res[1]; | 667 | hpet_res->name = (void *)&hpet_res[1]; |
668 | hpet_res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; | 668 | hpet_res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; |
669 | snprintf((char *)hpet_res->name, HPET_RESOURCE_NAME_SIZE, | 669 | snprintf((char *)hpet_res->name, HPET_RESOURCE_NAME_SIZE, |
670 | "HPET %u", hpet_tbl->number); | 670 | "HPET %u", hpet_tbl->sequence); |
671 | hpet_res->end = (1 * 1024) - 1; | 671 | hpet_res->end = (1 * 1024) - 1; |
672 | } | 672 | } |
673 | 673 | ||
674 | #ifdef CONFIG_X86_64 | 674 | #ifdef CONFIG_X86_64 |
675 | vxtime.hpet_address = hpet_tbl->addr.addrl | | 675 | vxtime.hpet_address = hpet_tbl->address.address; |
676 | ((long)hpet_tbl->addr.addrh << 32); | ||
677 | 676 | ||
678 | printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", | 677 | printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", |
679 | hpet_tbl->id, vxtime.hpet_address); | 678 | hpet_tbl->id, vxtime.hpet_address); |
680 | 679 | ||
681 | res_start = vxtime.hpet_address; | 680 | res_start = vxtime.hpet_address; |
682 | #else /* X86 */ | 681 | #else /* X86 */ |
683 | { | 682 | { |
684 | extern unsigned long hpet_address; | 683 | extern unsigned long hpet_address; |
685 | 684 | ||
686 | hpet_address = hpet_tbl->addr.addrl; | 685 | hpet_address = hpet_tbl->address.address; |
687 | printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", | 686 | printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", |
688 | hpet_tbl->id, hpet_address); | 687 | hpet_tbl->id, hpet_address); |
689 | 688 | ||
690 | res_start = hpet_address; | 689 | res_start = hpet_address; |
691 | } | 690 | } |
692 | #endif /* X86 */ | 691 | #endif /* X86 */ |
693 | 692 | ||
694 | if (hpet_res) { | 693 | if (hpet_res) { |
695 | hpet_res->start = res_start; | 694 | hpet_res->start = res_start; |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 7a1f2baff646..710364e6c586 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -889,14 +889,14 @@ static int __init acpi_ec_get_real_ecdt(void) | |||
889 | if (acpi_ec_mode == EC_INTR) { | 889 | if (acpi_ec_mode == EC_INTR) { |
890 | init_waitqueue_head(&ec_ecdt->wait); | 890 | init_waitqueue_head(&ec_ecdt->wait); |
891 | } | 891 | } |
892 | ec_ecdt->command_addr = ecdt_ptr->ec_control.address; | 892 | ec_ecdt->command_addr = ecdt_ptr->control.address; |
893 | ec_ecdt->data_addr = ecdt_ptr->ec_data.address; | 893 | ec_ecdt->data_addr = ecdt_ptr->data.address; |
894 | ec_ecdt->gpe = ecdt_ptr->gpe_bit; | 894 | ec_ecdt->gpe = ecdt_ptr->gpe; |
895 | /* use the GL just to be safe */ | 895 | /* use the GL just to be safe */ |
896 | ec_ecdt->global_lock = TRUE; | 896 | ec_ecdt->global_lock = TRUE; |
897 | ec_ecdt->uid = ecdt_ptr->uid; | 897 | ec_ecdt->uid = ecdt_ptr->uid; |
898 | 898 | ||
899 | status = acpi_get_handle(NULL, ecdt_ptr->ec_id, &ec_ecdt->handle); | 899 | status = acpi_get_handle(NULL, ecdt_ptr->id, &ec_ecdt->handle); |
900 | if (ACPI_FAILURE(status)) { | 900 | if (ACPI_FAILURE(status)) { |
901 | goto error; | 901 | goto error; |
902 | } | 902 | } |
diff --git a/include/acpi/actbl.h b/include/acpi/actbl.h index c5d5ec3638ef..d6af14e1c7e8 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h | |||
@@ -289,8 +289,7 @@ enum acpi_prefered_pm_profiles { | |||
289 | /* | 289 | /* |
290 | * Get the remaining ACPI tables | 290 | * Get the remaining ACPI tables |
291 | */ | 291 | */ |
292 | /* | 292 | |
293 | Don't include any new tables definitions for now. | ||
294 | #include <acpi/actbl1.h> | 293 | #include <acpi/actbl1.h> |
295 | */ | 294 | |
296 | #endif /* __ACTBL_H__ */ | 295 | #endif /* __ACTBL_H__ */ |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 88cb1fe22b48..5a2b3633220e 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -60,15 +60,6 @@ typedef struct { | |||
60 | 60 | ||
61 | /* Multiple APIC Description Table (MADT) */ | 61 | /* Multiple APIC Description Table (MADT) */ |
62 | 62 | ||
63 | struct acpi_table_madt { | ||
64 | struct acpi_table_header header; | ||
65 | u32 lapic_address; | ||
66 | struct { | ||
67 | u32 pcat_compat:1; | ||
68 | u32 reserved:31; | ||
69 | } flags; | ||
70 | } __attribute__ ((packed)); | ||
71 | |||
72 | enum acpi_madt_entry_id { | 63 | enum acpi_madt_entry_id { |
73 | ACPI_MADT_LAPIC = 0, | 64 | ACPI_MADT_LAPIC = 0, |
74 | ACPI_MADT_IOAPIC, | 65 | ACPI_MADT_IOAPIC, |
@@ -185,15 +176,6 @@ struct acpi_gen_regaddr { | |||
185 | u32 addrh; | 176 | u32 addrh; |
186 | } __attribute__ ((packed)); | 177 | } __attribute__ ((packed)); |
187 | 178 | ||
188 | struct acpi_table_hpet { | ||
189 | struct acpi_table_header header; | ||
190 | u32 id; | ||
191 | struct acpi_gen_regaddr addr; | ||
192 | u8 number; | ||
193 | u16 min_tick; | ||
194 | u8 page_protect; | ||
195 | } __attribute__ ((packed)); | ||
196 | |||
197 | /* | 179 | /* |
198 | * Simple Boot Flags | 180 | * Simple Boot Flags |
199 | * http://www.microsoft.com/whdc/hwdev/resources/specs/simp_bios.mspx | 181 | * http://www.microsoft.com/whdc/hwdev/resources/specs/simp_bios.mspx |
@@ -218,12 +200,6 @@ struct acpi_table_sbf | |||
218 | * http://www.microsoft.com/whdc/hwdev/platform/proc/SRAT.mspx | 200 | * http://www.microsoft.com/whdc/hwdev/platform/proc/SRAT.mspx |
219 | */ | 201 | */ |
220 | 202 | ||
221 | struct acpi_table_srat { | ||
222 | struct acpi_table_header header; | ||
223 | u32 table_revision; | ||
224 | u64 reserved; | ||
225 | } __attribute__ ((packed)); | ||
226 | |||
227 | enum acpi_srat_entry_id { | 203 | enum acpi_srat_entry_id { |
228 | ACPI_SRAT_PROCESSOR_AFFINITY = 0, | 204 | ACPI_SRAT_PROCESSOR_AFFINITY = 0, |
229 | ACPI_SRAT_MEMORY_AFFINITY, | 205 | ACPI_SRAT_MEMORY_AFFINITY, |
@@ -267,36 +243,6 @@ enum acpi_address_range_id { | |||
267 | ACPI_ADDRESS_RANGE_COUNT | 243 | ACPI_ADDRESS_RANGE_COUNT |
268 | }; | 244 | }; |
269 | 245 | ||
270 | /* | ||
271 | * System Locality Information Table (SLIT) | ||
272 | * see http://devresource.hp.com/devresource/docs/techpapers/ia64/slit.pdf | ||
273 | */ | ||
274 | |||
275 | struct acpi_table_slit { | ||
276 | struct acpi_table_header header; | ||
277 | u64 localities; | ||
278 | u8 entry[1]; /* real size = localities^2 */ | ||
279 | } __attribute__ ((packed)); | ||
280 | |||
281 | /* Smart Battery Description Table (SBST) */ | ||
282 | |||
283 | struct acpi_table_sbst { | ||
284 | struct acpi_table_header header; | ||
285 | u32 warning; /* Warn user */ | ||
286 | u32 low; /* Critical sleep */ | ||
287 | u32 critical; /* Critical shutdown */ | ||
288 | } __attribute__ ((packed)); | ||
289 | |||
290 | /* Embedded Controller Boot Resources Table (ECDT) */ | ||
291 | |||
292 | struct acpi_table_ecdt { | ||
293 | struct acpi_table_header header; | ||
294 | struct acpi_generic_address ec_control; | ||
295 | struct acpi_generic_address ec_data; | ||
296 | u32 uid; | ||
297 | u8 gpe_bit; | ||
298 | char ec_id[0]; | ||
299 | } __attribute__ ((packed)); | ||
300 | 246 | ||
301 | /* PCI MMCONFIG */ | 247 | /* PCI MMCONFIG */ |
302 | 248 | ||
@@ -309,11 +255,6 @@ struct acpi_table_mcfg_config { | |||
309 | u8 end_bus_number; | 255 | u8 end_bus_number; |
310 | u8 reserved[4]; | 256 | u8 reserved[4]; |
311 | } __attribute__ ((packed)); | 257 | } __attribute__ ((packed)); |
312 | struct acpi_table_mcfg { | ||
313 | struct acpi_table_header header; | ||
314 | u8 reserved[8]; | ||
315 | struct acpi_table_mcfg_config config[0]; | ||
316 | } __attribute__ ((packed)); | ||
317 | 258 | ||
318 | /* Table Handlers */ | 259 | /* Table Handlers */ |
319 | 260 | ||