aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2014-04-29 22:04:06 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-05-06 18:55:00 -0400
commitd36d4e30bd44e2e447a2346edb437e842df8c753 (patch)
tree4c28e7a044e87678626ba77c240ce75c29bab740
parent51e35823eb57621b1b2ed39790d539620617b4a3 (diff)
ACPICA: Add support for LPIT table.
Adds header, disassembler, table compiler, and template support for the Low Power Idle Table (LPIT). Note that the disassembler and table compiler are not shipped in the kernel. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--include/acpi/actbl2.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index c8adad9c6b6a..687426168b0e 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -70,6 +70,7 @@
70#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */ 70#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
71#define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */ 71#define ACPI_SIG_IBFT "IBFT" /* iSCSI Boot Firmware Table */
72#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ 72#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */
73#define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */
73#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ 74#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
74#define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */ 75#define ACPI_SIG_MCHI "MCHI" /* Management Controller Host Interface table */
75#define ACPI_SIG_MTMR "MTMR" /* MID Timer table */ 76#define ACPI_SIG_MTMR "MTMR" /* MID Timer table */
@@ -820,6 +821,70 @@ struct acpi_ivrs_memory {
820 821
821/******************************************************************************* 822/*******************************************************************************
822 * 823 *
824 * LPIT - Low Power Idle Table
825 *
826 * Conforms to "ACPI Low Power Idle Table (LPIT) and _LPD Proposal (DRAFT)"
827 *
828 ******************************************************************************/
829
830struct acpi_table_lpit {
831 struct acpi_table_header header; /* Common ACPI table header */
832};
833
834/* LPIT subtable header */
835
836struct acpi_lpit_header {
837 u32 type; /* Subtable type */
838 u32 length; /* Subtable length */
839 u16 unique_id;
840 u16 reserved;
841 u32 flags;
842};
843
844/* Values for subtable Type above */
845
846enum acpi_lpit_type {
847 ACPI_LPIT_TYPE_NATIVE_CSTATE = 0x00,
848 ACPI_LPIT_TYPE_SIMPLE_IO = 0x01
849};
850
851/* Masks for Flags field above */
852
853#define ACPI_LPIT_STATE_DISABLED (1)
854#define ACPI_LPIT_NO_COUNTER (1<<1)
855
856/*
857 * LPIT subtables, correspond to Type in struct acpi_lpit_header
858 */
859
860/* 0x00: Native C-state instruction based LPI structure */
861
862struct acpi_lpit_native {
863 struct acpi_lpit_header header;
864 struct acpi_generic_address entry_trigger;
865 u32 residency;
866 u32 latency;
867 struct acpi_generic_address residency_counter;
868 u64 counter_frequency;
869};
870
871/* 0x01: Simple I/O based LPI structure */
872
873struct acpi_lpit_io {
874 struct acpi_lpit_header header;
875 struct acpi_generic_address entry_trigger;
876 u32 trigger_action;
877 u64 trigger_value;
878 u64 trigger_mask;
879 struct acpi_generic_address minimum_idle_state;
880 u32 residency;
881 u32 latency;
882 struct acpi_generic_address residency_counter;
883 u64 counter_frequency;
884};
885
886/*******************************************************************************
887 *
823 * MCFG - PCI Memory Mapped Configuration table and sub-table 888 * MCFG - PCI Memory Mapped Configuration table and sub-table
824 * Version 1 889 * Version 1
825 * 890 *