aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/i386/kernel/acpi/boot.c29
-rw-r--r--drivers/acpi/ec.c8
-rw-r--r--include/acpi/actbl.h5
-rw-r--r--include/linux/acpi.h59
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
63struct 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
72enum acpi_madt_entry_id { 63enum 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
188struct 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
221struct acpi_table_srat {
222 struct acpi_table_header header;
223 u32 table_revision;
224 u64 reserved;
225} __attribute__ ((packed));
226
227enum acpi_srat_entry_id { 203enum 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
275struct 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
283struct 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
292struct 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));
312struct 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