diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-08-05 16:50:12 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-08-05 16:50:12 -0400 |
commit | 8b80c0f187d8711fede71b7bd6fb80cb76bb8be9 (patch) | |
tree | 1f7582124a4dc42eded38668f393db16ddd7d658 /include/acpi | |
parent | 49c68fd448568e79598b159efc09a7864bc59ede (diff) | |
parent | 796ca778585d833023c18e1815b2e30a2d2f00fd (diff) |
Merge branch 'acpica'
* acpica:
ACPICA: Update version to 20140724.
ACPICA: ACPI 5.1: Update for PCCT table changes.
ACPICA/ARM: ACPI 5.1: Update for GTDT table changes.
ACPICA/ARM: ACPI 5.1: Update for MADT changes.
ACPICA/ARM: ACPI 5.1: Update for FADT changes.
ACPICA: ACPI 5.1: Support for the _CCA predifined name.
ACPICA: ACPI 5.1: New notify value for System Affinity Update.
ACPICA: ACPI 5.1: Support for the _DSD predefined name.
ACPICA: Debug object: Add current value of Timer() to debug line prefix.
ACPICA: acpihelp: Add UUID support, restructure some existing files.
ACPICA: Utilities: Fix local printf issue.
ACPICA: Tables: Update for DMAR table changes.
ACPICA: Remove some extraneous printf arguments.
ACPICA: Update for comments/formatting. No functional changes.
ACPICA: Disassembler: Add support for the ToUUID opererator (macro).
ACPICA: Remove a redundant cast to acpi_size for ACPI_OFFSET() macro.
ACPICA: Work around an ancient GCC bug.
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/acconfig.h | 18 | ||||
-rw-r--r-- | include/acpi/acnames.h | 1 | ||||
-rw-r--r-- | include/acpi/acpixf.h | 2 | ||||
-rw-r--r-- | include/acpi/actbl.h | 12 | ||||
-rw-r--r-- | include/acpi/actbl1.h | 44 | ||||
-rw-r--r-- | include/acpi/actbl2.h | 14 | ||||
-rw-r--r-- | include/acpi/actbl3.h | 118 | ||||
-rw-r--r-- | include/acpi/actypes.h | 5 |
8 files changed, 182 insertions, 32 deletions
diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h index 932a60d6ed82..5a0a3e5daf85 100644 --- a/include/acpi/acconfig.h +++ b/include/acpi/acconfig.h | |||
@@ -219,6 +219,24 @@ | |||
219 | 219 | ||
220 | /****************************************************************************** | 220 | /****************************************************************************** |
221 | * | 221 | * |
222 | * Miscellaneous constants | ||
223 | * | ||
224 | *****************************************************************************/ | ||
225 | |||
226 | /* UUID constants */ | ||
227 | |||
228 | #define UUID_BUFFER_LENGTH 16 /* Length of UUID in memory */ | ||
229 | #define UUID_STRING_LENGTH 36 /* Total length of a UUID string */ | ||
230 | |||
231 | /* Positions for required hyphens (dashes) in UUID strings */ | ||
232 | |||
233 | #define UUID_HYPHEN1_OFFSET 8 | ||
234 | #define UUID_HYPHEN2_OFFSET 13 | ||
235 | #define UUID_HYPHEN3_OFFSET 18 | ||
236 | #define UUID_HYPHEN4_OFFSET 23 | ||
237 | |||
238 | /****************************************************************************** | ||
239 | * | ||
222 | * ACPI AML Debugger | 240 | * ACPI AML Debugger |
223 | * | 241 | * |
224 | *****************************************************************************/ | 242 | *****************************************************************************/ |
diff --git a/include/acpi/acnames.h b/include/acpi/acnames.h index 3dd6e838dc30..c728113374f5 100644 --- a/include/acpi/acnames.h +++ b/include/acpi/acnames.h | |||
@@ -55,6 +55,7 @@ | |||
55 | #define METHOD_NAME__HID "_HID" | 55 | #define METHOD_NAME__HID "_HID" |
56 | #define METHOD_NAME__INI "_INI" | 56 | #define METHOD_NAME__INI "_INI" |
57 | #define METHOD_NAME__PLD "_PLD" | 57 | #define METHOD_NAME__PLD "_PLD" |
58 | #define METHOD_NAME__DSD "_DSD" | ||
58 | #define METHOD_NAME__PRS "_PRS" | 59 | #define METHOD_NAME__PRS "_PRS" |
59 | #define METHOD_NAME__PRT "_PRT" | 60 | #define METHOD_NAME__PRT "_PRT" |
60 | #define METHOD_NAME__PRW "_PRW" | 61 | #define METHOD_NAME__PRW "_PRW" |
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index c3f38bc459e1..b7c89d47efbe 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | /* Current ACPICA subsystem version in YYYYMMDD format */ | 47 | /* Current ACPICA subsystem version in YYYYMMDD format */ |
48 | 48 | ||
49 | #define ACPI_CA_VERSION 0x20140627 | 49 | #define ACPI_CA_VERSION 0x20140724 |
50 | 50 | ||
51 | #include <acpi/acconfig.h> | 51 | #include <acpi/acconfig.h> |
52 | #include <acpi/actypes.h> | 52 | #include <acpi/actypes.h> |
diff --git a/include/acpi/actbl.h b/include/acpi/actbl.h index 1cc7ef13c01a..bee19d8170c5 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h | |||
@@ -270,7 +270,8 @@ struct acpi_table_fadt { | |||
270 | u32 flags; /* Miscellaneous flag bits (see below for individual flags) */ | 270 | u32 flags; /* Miscellaneous flag bits (see below for individual flags) */ |
271 | struct acpi_generic_address reset_register; /* 64-bit address of the Reset register */ | 271 | struct acpi_generic_address reset_register; /* 64-bit address of the Reset register */ |
272 | u8 reset_value; /* Value to write to the reset_register port to reset the system */ | 272 | u8 reset_value; /* Value to write to the reset_register port to reset the system */ |
273 | u8 reserved4[3]; /* Reserved, must be zero */ | 273 | u16 arm_boot_flags; /* ARM-Specific Boot Flags (see below for individual flags) (ACPI 5.1) */ |
274 | u8 minor_revision; /* FADT Minor Revision (ACPI 5.1) */ | ||
274 | u64 Xfacs; /* 64-bit physical address of FACS */ | 275 | u64 Xfacs; /* 64-bit physical address of FACS */ |
275 | u64 Xdsdt; /* 64-bit physical address of DSDT */ | 276 | u64 Xdsdt; /* 64-bit physical address of DSDT */ |
276 | struct acpi_generic_address xpm1a_event_block; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */ | 277 | struct acpi_generic_address xpm1a_event_block; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */ |
@@ -285,7 +286,7 @@ struct acpi_table_fadt { | |||
285 | struct acpi_generic_address sleep_status; /* 64-bit Sleep Status register (ACPI 5.0) */ | 286 | struct acpi_generic_address sleep_status; /* 64-bit Sleep Status register (ACPI 5.0) */ |
286 | }; | 287 | }; |
287 | 288 | ||
288 | /* Masks for FADT Boot Architecture Flags (boot_flags) [Vx]=Introduced in this FADT revision */ | 289 | /* Masks for FADT IA-PC Boot Architecture Flags (boot_flags) [Vx]=Introduced in this FADT revision */ |
289 | 290 | ||
290 | #define ACPI_FADT_LEGACY_DEVICES (1) /* 00: [V2] System has LPC or ISA bus devices */ | 291 | #define ACPI_FADT_LEGACY_DEVICES (1) /* 00: [V2] System has LPC or ISA bus devices */ |
291 | #define ACPI_FADT_8042 (1<<1) /* 01: [V3] System has an 8042 controller on port 60/64 */ | 292 | #define ACPI_FADT_8042 (1<<1) /* 01: [V3] System has an 8042 controller on port 60/64 */ |
@@ -296,6 +297,11 @@ struct acpi_table_fadt { | |||
296 | 297 | ||
297 | #define FADT2_REVISION_ID 3 | 298 | #define FADT2_REVISION_ID 3 |
298 | 299 | ||
300 | /* Masks for FADT ARM Boot Architecture Flags (arm_boot_flags) ACPI 5.1 */ | ||
301 | |||
302 | #define ACPI_FADT_PSCI_COMPLIANT (1) /* 00: [V5+] PSCI 0.2+ is implemented */ | ||
303 | #define ACPI_FADT_PSCI_USE_HVC (1<<1) /* 01: [V5+] HVC must be used instead of SMC as the PSCI conduit */ | ||
304 | |||
299 | /* Masks for FADT flags */ | 305 | /* Masks for FADT flags */ |
300 | 306 | ||
301 | #define ACPI_FADT_WBINVD (1) /* 00: [V1] The WBINVD instruction works properly */ | 307 | #define ACPI_FADT_WBINVD (1) /* 00: [V1] The WBINVD instruction works properly */ |
@@ -399,7 +405,7 @@ struct acpi_table_desc { | |||
399 | * FADT V5 size: 0x10C | 405 | * FADT V5 size: 0x10C |
400 | */ | 406 | */ |
401 | #define ACPI_FADT_V1_SIZE (u32) (ACPI_FADT_OFFSET (flags) + 4) | 407 | #define ACPI_FADT_V1_SIZE (u32) (ACPI_FADT_OFFSET (flags) + 4) |
402 | #define ACPI_FADT_V2_SIZE (u32) (ACPI_FADT_OFFSET (reserved4[0]) + 3) | 408 | #define ACPI_FADT_V2_SIZE (u32) (ACPI_FADT_OFFSET (minor_revision) + 1) |
403 | #define ACPI_FADT_V3_SIZE (u32) (ACPI_FADT_OFFSET (sleep_control)) | 409 | #define ACPI_FADT_V3_SIZE (u32) (ACPI_FADT_OFFSET (sleep_control)) |
404 | #define ACPI_FADT_V5_SIZE (u32) (sizeof (struct acpi_table_fadt)) | 410 | #define ACPI_FADT_V5_SIZE (u32) (sizeof (struct acpi_table_fadt)) |
405 | 411 | ||
diff --git a/include/acpi/actbl1.h b/include/acpi/actbl1.h index 9613e8e97960..7626bfeac2cb 100644 --- a/include/acpi/actbl1.h +++ b/include/acpi/actbl1.h | |||
@@ -671,7 +671,9 @@ enum acpi_madt_type { | |||
671 | ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, | 671 | ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, |
672 | ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, | 672 | ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, |
673 | ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, | 673 | ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, |
674 | ACPI_MADT_TYPE_RESERVED = 13 /* 13 and greater are reserved */ | 674 | ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, |
675 | ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, | ||
676 | ACPI_MADT_TYPE_RESERVED = 15 /* 15 and greater are reserved */ | ||
675 | }; | 677 | }; |
676 | 678 | ||
677 | /* | 679 | /* |
@@ -797,15 +799,26 @@ struct acpi_madt_local_x2apic_nmi { | |||
797 | struct acpi_madt_generic_interrupt { | 799 | struct acpi_madt_generic_interrupt { |
798 | struct acpi_subtable_header header; | 800 | struct acpi_subtable_header header; |
799 | u16 reserved; /* reserved - must be zero */ | 801 | u16 reserved; /* reserved - must be zero */ |
800 | u32 gic_id; | 802 | u32 cpu_interface_number; |
801 | u32 uid; | 803 | u32 uid; |
802 | u32 flags; | 804 | u32 flags; |
803 | u32 parking_version; | 805 | u32 parking_version; |
804 | u32 performance_interrupt; | 806 | u32 performance_interrupt; |
805 | u64 parked_address; | 807 | u64 parked_address; |
806 | u64 base_address; | 808 | u64 base_address; |
809 | u64 gicv_base_address; | ||
810 | u64 gich_base_address; | ||
811 | u32 vgic_interrupt; | ||
812 | u64 gicr_base_address; | ||
813 | u64 arm_mpidr; | ||
807 | }; | 814 | }; |
808 | 815 | ||
816 | /* Masks for Flags field above */ | ||
817 | |||
818 | /* ACPI_MADT_ENABLED (1) Processor is usable if set */ | ||
819 | #define ACPI_MADT_PERFORMANCE_IRQ_MODE (1<<1) /* 01: Performance Interrupt Mode */ | ||
820 | #define ACPI_MADT_VGIC_IRQ_MODE (1<<2) /* 02: VGIC Maintenance Interrupt mode */ | ||
821 | |||
809 | /* 12: Generic Distributor (ACPI 5.0) */ | 822 | /* 12: Generic Distributor (ACPI 5.0) */ |
810 | 823 | ||
811 | struct acpi_madt_generic_distributor { | 824 | struct acpi_madt_generic_distributor { |
@@ -817,11 +830,36 @@ struct acpi_madt_generic_distributor { | |||
817 | u32 reserved2; /* reserved - must be zero */ | 830 | u32 reserved2; /* reserved - must be zero */ |
818 | }; | 831 | }; |
819 | 832 | ||
833 | /* 13: Generic MSI Frame (ACPI 5.1) */ | ||
834 | |||
835 | struct acpi_madt_generic_msi_frame { | ||
836 | struct acpi_subtable_header header; | ||
837 | u16 reserved; /* reserved - must be zero */ | ||
838 | u32 msi_frame_id; | ||
839 | u64 base_address; | ||
840 | u32 flags; | ||
841 | u16 spi_count; | ||
842 | u16 spi_base; | ||
843 | }; | ||
844 | |||
845 | /* Masks for Flags field above */ | ||
846 | |||
847 | #define ACPI_MADT_OVERRIDE_SPI_VALUES (1) | ||
848 | |||
849 | /* 14: Generic Redistributor (ACPI 5.1) */ | ||
850 | |||
851 | struct acpi_madt_generic_redistributor { | ||
852 | struct acpi_subtable_header header; | ||
853 | u16 reserved; /* reserved - must be zero */ | ||
854 | u64 base_address; | ||
855 | u32 length; | ||
856 | }; | ||
857 | |||
820 | /* | 858 | /* |
821 | * Common flags fields for MADT subtables | 859 | * Common flags fields for MADT subtables |
822 | */ | 860 | */ |
823 | 861 | ||
824 | /* MADT Local APIC flags (lapic_flags) and GIC flags */ | 862 | /* MADT Local APIC flags */ |
825 | 863 | ||
826 | #define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */ | 864 | #define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */ |
827 | 865 | ||
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 21314d37cb07..ecff62405f17 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h | |||
@@ -396,7 +396,7 @@ struct acpi_table_dbgp { | |||
396 | * Version 1 | 396 | * Version 1 |
397 | * | 397 | * |
398 | * Conforms to "Intel Virtualization Technology for Directed I/O", | 398 | * Conforms to "Intel Virtualization Technology for Directed I/O", |
399 | * Version 1.2, Sept. 2008 | 399 | * Version 2.2, Sept. 2013 |
400 | * | 400 | * |
401 | ******************************************************************************/ | 401 | ******************************************************************************/ |
402 | 402 | ||
@@ -423,9 +423,9 @@ struct acpi_dmar_header { | |||
423 | enum acpi_dmar_type { | 423 | enum acpi_dmar_type { |
424 | ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, | 424 | ACPI_DMAR_TYPE_HARDWARE_UNIT = 0, |
425 | ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, | 425 | ACPI_DMAR_TYPE_RESERVED_MEMORY = 1, |
426 | ACPI_DMAR_TYPE_ATSR = 2, | 426 | ACPI_DMAR_TYPE_ROOT_ATS = 2, |
427 | ACPI_DMAR_HARDWARE_AFFINITY = 3, | 427 | ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3, |
428 | ACPI_DMAR_TYPE_ANDD = 4, | 428 | ACPI_DMAR_TYPE_NAMESPACE = 4, |
429 | ACPI_DMAR_TYPE_RESERVED = 5 /* 5 and greater are reserved */ | 429 | ACPI_DMAR_TYPE_RESERVED = 5 /* 5 and greater are reserved */ |
430 | }; | 430 | }; |
431 | 431 | ||
@@ -439,7 +439,7 @@ struct acpi_dmar_device_scope { | |||
439 | u8 bus; | 439 | u8 bus; |
440 | }; | 440 | }; |
441 | 441 | ||
442 | /* Values for entry_type in struct acpi_dmar_device_scope */ | 442 | /* Values for entry_type in struct acpi_dmar_device_scope - device types */ |
443 | 443 | ||
444 | enum acpi_dmar_scope_type { | 444 | enum acpi_dmar_scope_type { |
445 | ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, | 445 | ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0, |
@@ -447,7 +447,7 @@ enum acpi_dmar_scope_type { | |||
447 | ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, | 447 | ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, |
448 | ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, | 448 | ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, |
449 | ACPI_DMAR_SCOPE_TYPE_HPET = 4, | 449 | ACPI_DMAR_SCOPE_TYPE_HPET = 4, |
450 | ACPI_DMAR_SCOPE_TYPE_ACPI = 5, | 450 | ACPI_DMAR_SCOPE_TYPE_NAMESPACE = 5, |
451 | ACPI_DMAR_SCOPE_TYPE_RESERVED = 6 /* 6 and greater are reserved */ | 451 | ACPI_DMAR_SCOPE_TYPE_RESERVED = 6 /* 6 and greater are reserved */ |
452 | }; | 452 | }; |
453 | 453 | ||
@@ -516,7 +516,7 @@ struct acpi_dmar_andd { | |||
516 | struct acpi_dmar_header header; | 516 | struct acpi_dmar_header header; |
517 | u8 reserved[3]; | 517 | u8 reserved[3]; |
518 | u8 device_number; | 518 | u8 device_number; |
519 | char object_name[1]; | 519 | char device_name[1]; |
520 | }; | 520 | }; |
521 | 521 | ||
522 | /******************************************************************************* | 522 | /******************************************************************************* |
diff --git a/include/acpi/actbl3.h b/include/acpi/actbl3.h index c2295cc4a5c0..787bcc814463 100644 --- a/include/acpi/actbl3.h +++ b/include/acpi/actbl3.h | |||
@@ -241,33 +241,96 @@ struct acpi_s3pt_suspend { | |||
241 | 241 | ||
242 | /******************************************************************************* | 242 | /******************************************************************************* |
243 | * | 243 | * |
244 | * GTDT - Generic Timer Description Table (ACPI 5.0) | 244 | * GTDT - Generic Timer Description Table (ACPI 5.1) |
245 | * Version 1 | 245 | * Version 2 |
246 | * | 246 | * |
247 | ******************************************************************************/ | 247 | ******************************************************************************/ |
248 | 248 | ||
249 | struct acpi_table_gtdt { | 249 | struct acpi_table_gtdt { |
250 | struct acpi_table_header header; /* Common ACPI table header */ | 250 | struct acpi_table_header header; /* Common ACPI table header */ |
251 | u64 address; | 251 | u64 counter_block_addresss; |
252 | u32 flags; | 252 | u32 reserved; |
253 | u32 secure_pl1_interrupt; | 253 | u32 secure_el1_interrupt; |
254 | u32 secure_pl1_flags; | 254 | u32 secure_el1_flags; |
255 | u32 non_secure_pl1_interrupt; | 255 | u32 non_secure_el1_interrupt; |
256 | u32 non_secure_pl1_flags; | 256 | u32 non_secure_el1_flags; |
257 | u32 virtual_timer_interrupt; | 257 | u32 virtual_timer_interrupt; |
258 | u32 virtual_timer_flags; | 258 | u32 virtual_timer_flags; |
259 | u32 non_secure_pl2_interrupt; | 259 | u32 non_secure_el2_interrupt; |
260 | u32 non_secure_pl2_flags; | 260 | u32 non_secure_el2_flags; |
261 | u64 counter_read_block_address; | ||
262 | u32 platform_timer_count; | ||
263 | u32 platform_timer_offset; | ||
261 | }; | 264 | }; |
262 | 265 | ||
263 | /* Values for Flags field above */ | 266 | /* Flag Definitions: Timer Block Physical Timers and Virtual timers */ |
267 | |||
268 | #define ACPI_GTDT_INTERRUPT_MODE (1) | ||
269 | #define ACPI_GTDT_INTERRUPT_POLARITY (1<<1) | ||
270 | #define ACPI_GTDT_ALWAYS_ON (1<<2) | ||
271 | |||
272 | /* Common GTDT subtable header */ | ||
273 | |||
274 | struct acpi_gtdt_header { | ||
275 | u8 type; | ||
276 | u16 length; | ||
277 | }; | ||
264 | 278 | ||
265 | #define ACPI_GTDT_MAPPED_BLOCK_PRESENT 1 | 279 | /* Values for GTDT subtable type above */ |
266 | 280 | ||
267 | /* Values for all "TimerFlags" fields above */ | 281 | enum acpi_gtdt_type { |
282 | ACPI_GTDT_TYPE_TIMER_BLOCK = 0, | ||
283 | ACPI_GTDT_TYPE_WATCHDOG = 1, | ||
284 | ACPI_GTDT_TYPE_RESERVED = 2 /* 2 and greater are reserved */ | ||
285 | }; | ||
286 | |||
287 | /* GTDT Subtables, correspond to Type in struct acpi_gtdt_header */ | ||
288 | |||
289 | /* 0: Generic Timer Block */ | ||
290 | |||
291 | struct acpi_gtdt_timer_block { | ||
292 | struct acpi_gtdt_header header; | ||
293 | u8 reserved; | ||
294 | u64 block_address; | ||
295 | u32 timer_count; | ||
296 | u32 timer_offset; | ||
297 | }; | ||
298 | |||
299 | /* Timer Sub-Structure, one per timer */ | ||
300 | |||
301 | struct acpi_gtdt_timer_entry { | ||
302 | u8 frame_number; | ||
303 | u8 reserved[3]; | ||
304 | u64 base_address; | ||
305 | u64 el0_base_address; | ||
306 | u32 timer_interrupt; | ||
307 | u32 timer_flags; | ||
308 | u32 virtual_timer_interrupt; | ||
309 | u32 virtual_timer_flags; | ||
310 | u32 common_flags; | ||
311 | }; | ||
268 | 312 | ||
269 | #define ACPI_GTDT_INTERRUPT_MODE 1 | 313 | /* Flag Definitions: common_flags above */ |
270 | #define ACPI_GTDT_INTERRUPT_POLARITY 2 | 314 | |
315 | #define ACPI_GTDT_GT_IS_SECURE_TIMER (1) | ||
316 | #define ACPI_GTDT_GT_ALWAYS_ON (1<<1) | ||
317 | |||
318 | /* 1: SBSA Generic Watchdog Structure */ | ||
319 | |||
320 | struct acpi_gtdt_watchdog { | ||
321 | struct acpi_gtdt_header header; | ||
322 | u8 reserved; | ||
323 | u64 refresh_frame_address; | ||
324 | u64 control_frame_address; | ||
325 | u32 timer_interrupt; | ||
326 | u32 timer_flags; | ||
327 | }; | ||
328 | |||
329 | /* Flag Definitions: timer_flags above */ | ||
330 | |||
331 | #define ACPI_GTDT_WATCHDOG_IRQ_MODE (1) | ||
332 | #define ACPI_GTDT_WATCHDOG_IRQ_POLARITY (1<<1) | ||
333 | #define ACPI_GTDT_WATCHDOG_SECURE (1<<2) | ||
271 | 334 | ||
272 | /******************************************************************************* | 335 | /******************************************************************************* |
273 | * | 336 | * |
@@ -385,7 +448,8 @@ struct acpi_table_pcct { | |||
385 | 448 | ||
386 | enum acpi_pcct_type { | 449 | enum acpi_pcct_type { |
387 | ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, | 450 | ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, |
388 | ACPI_PCCT_TYPE_RESERVED = 1 /* 1 and greater are reserved */ | 451 | ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1, |
452 | ACPI_PCCT_TYPE_RESERVED = 2 /* 2 and greater are reserved */ | ||
389 | }; | 453 | }; |
390 | 454 | ||
391 | /* | 455 | /* |
@@ -407,6 +471,28 @@ struct acpi_pcct_subspace { | |||
407 | u16 min_turnaround_time; | 471 | u16 min_turnaround_time; |
408 | }; | 472 | }; |
409 | 473 | ||
474 | /* 1: HW-reduced Communications Subspace (ACPI 5.1) */ | ||
475 | |||
476 | struct acpi_pcct_hw_reduced { | ||
477 | struct acpi_subtable_header header; | ||
478 | u32 doorbell_interrupt; | ||
479 | u8 flags; | ||
480 | u8 reserved; | ||
481 | u64 base_address; | ||
482 | u64 length; | ||
483 | struct acpi_generic_address doorbell_register; | ||
484 | u64 preserve_mask; | ||
485 | u64 write_mask; | ||
486 | u32 latency; | ||
487 | u32 max_access_rate; | ||
488 | u16 min_turnaround_time; | ||
489 | }; | ||
490 | |||
491 | /* Values for doorbell flags above */ | ||
492 | |||
493 | #define ACPI_PCCT_INTERRUPT_POLARITY (1) | ||
494 | #define ACPI_PCCT_INTERRUPT_MODE (1<<1) | ||
495 | |||
410 | /* | 496 | /* |
411 | * PCC memory structures (not part of the ACPI table) | 497 | * PCC memory structures (not part of the ACPI table) |
412 | */ | 498 | */ |
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 608a04019372..ac03ec81d342 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h | |||
@@ -517,7 +517,7 @@ typedef u64 acpi_integer; | |||
517 | 517 | ||
518 | #define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void, (void *) NULL,(acpi_size) i) | 518 | #define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void, (void *) NULL,(acpi_size) i) |
519 | #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) NULL) | 519 | #define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p, (void *) NULL) |
520 | #define ACPI_OFFSET(d, f) (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f), (void *) NULL) | 520 | #define ACPI_OFFSET(d, f) ACPI_PTR_DIFF (&(((d *) 0)->f), (void *) NULL) |
521 | #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) | 521 | #define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i) |
522 | #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) | 522 | #define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i) |
523 | 523 | ||
@@ -612,8 +612,9 @@ typedef u64 acpi_integer; | |||
612 | #define ACPI_NOTIFY_RESERVED (u8) 0x0A | 612 | #define ACPI_NOTIFY_RESERVED (u8) 0x0A |
613 | #define ACPI_NOTIFY_LOCALITY_UPDATE (u8) 0x0B | 613 | #define ACPI_NOTIFY_LOCALITY_UPDATE (u8) 0x0B |
614 | #define ACPI_NOTIFY_SHUTDOWN_REQUEST (u8) 0x0C | 614 | #define ACPI_NOTIFY_SHUTDOWN_REQUEST (u8) 0x0C |
615 | #define ACPI_NOTIFY_AFFINITY_UPDATE (u8) 0x0D | ||
615 | 616 | ||
616 | #define ACPI_NOTIFY_MAX 0x0C | 617 | #define ACPI_NOTIFY_MAX 0x0D |
617 | 618 | ||
618 | /* | 619 | /* |
619 | * Types associated with ACPI names and objects. The first group of | 620 | * Types associated with ACPI names and objects. The first group of |