mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge back ACPICA material for v4.13.
This commit is contained in:
commit
a976c2951d
12390 changed files with 1321793 additions and 286646 deletions
|
|
@ -88,6 +88,7 @@ acpi_evaluate_dsm_typed(acpi_handle handle, const u8 *uuid, u64 rev, u64 func,
|
|||
}
|
||||
|
||||
bool acpi_dev_found(const char *hid);
|
||||
bool acpi_dev_present(const char *hid, const char *uid, s64 hrv);
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
|
||||
|
|
@ -386,6 +387,7 @@ struct acpi_data_node {
|
|||
const char *name;
|
||||
acpi_handle handle;
|
||||
struct fwnode_handle fwnode;
|
||||
struct fwnode_handle *parent;
|
||||
struct acpi_device_data data;
|
||||
struct list_head sibling;
|
||||
struct kobject kobj;
|
||||
|
|
@ -575,7 +577,7 @@ struct acpi_pci_root {
|
|||
|
||||
bool acpi_dma_supported(struct acpi_device *adev);
|
||||
enum dev_dma_attr acpi_get_dma_attr(struct acpi_device *adev);
|
||||
void acpi_dma_configure(struct device *dev, enum dev_dma_attr attr);
|
||||
int acpi_dma_configure(struct device *dev, enum dev_dma_attr attr);
|
||||
void acpi_dma_deconfigure(struct device *dev);
|
||||
|
||||
struct acpi_device *acpi_find_child_device(struct acpi_device *parent,
|
||||
|
|
@ -586,6 +588,15 @@ struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle);
|
|||
int acpi_enable_wakeup_device_power(struct acpi_device *dev, int state);
|
||||
int acpi_disable_wakeup_device_power(struct acpi_device *dev);
|
||||
|
||||
#ifdef CONFIG_X86
|
||||
bool acpi_device_always_present(struct acpi_device *adev);
|
||||
#else
|
||||
static inline bool acpi_device_always_present(struct acpi_device *adev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
acpi_status acpi_add_pm_notifier(struct acpi_device *adev, struct device *dev,
|
||||
void (*work_func)(struct work_struct *work));
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20170303
|
||||
#define ACPI_CA_VERSION 0x20170531
|
||||
|
||||
#include <acpi/acconfig.h>
|
||||
#include <acpi/actypes.h>
|
||||
|
|
|
|||
|
|
@ -289,6 +289,11 @@ union acpi_resource_attribute {
|
|||
u8 type_specific;
|
||||
};
|
||||
|
||||
struct acpi_resource_label {
|
||||
u16 string_length;
|
||||
char *string_ptr;
|
||||
};
|
||||
|
||||
struct acpi_resource_source {
|
||||
u8 index;
|
||||
u16 string_length;
|
||||
|
|
@ -534,6 +539,81 @@ struct acpi_resource_uart_serialbus {
|
|||
#define ACPI_UART_CLEAR_TO_SEND (1<<6)
|
||||
#define ACPI_UART_REQUEST_TO_SEND (1<<7)
|
||||
|
||||
struct acpi_resource_pin_function {
|
||||
u8 revision_id;
|
||||
u8 pin_config;
|
||||
u8 sharable; /* For values, see Interrupt Attributes above */
|
||||
u16 function_number;
|
||||
u16 pin_table_length;
|
||||
u16 vendor_length;
|
||||
struct acpi_resource_source resource_source;
|
||||
u16 *pin_table;
|
||||
u8 *vendor_data;
|
||||
};
|
||||
|
||||
struct acpi_resource_pin_config {
|
||||
u8 revision_id;
|
||||
u8 producer_consumer; /* For values, see Producer/Consumer above */
|
||||
u8 sharable; /* For values, see Interrupt Attributes above */
|
||||
u8 pin_config_type;
|
||||
u32 pin_config_value;
|
||||
u16 pin_table_length;
|
||||
u16 vendor_length;
|
||||
struct acpi_resource_source resource_source;
|
||||
u16 *pin_table;
|
||||
u8 *vendor_data;
|
||||
};
|
||||
|
||||
/* Values for pin_config_type field above */
|
||||
|
||||
#define ACPI_PIN_CONFIG_DEFAULT 0
|
||||
#define ACPI_PIN_CONFIG_BIAS_PULL_UP 1
|
||||
#define ACPI_PIN_CONFIG_BIAS_PULL_DOWN 2
|
||||
#define ACPI_PIN_CONFIG_BIAS_DEFAULT 3
|
||||
#define ACPI_PIN_CONFIG_BIAS_DISABLE 4
|
||||
#define ACPI_PIN_CONFIG_BIAS_HIGH_IMPEDANCE 5
|
||||
#define ACPI_PIN_CONFIG_BIAS_BUS_HOLD 6
|
||||
#define ACPI_PIN_CONFIG_DRIVE_OPEN_DRAIN 7
|
||||
#define ACPI_PIN_CONFIG_DRIVE_OPEN_SOURCE 8
|
||||
#define ACPI_PIN_CONFIG_DRIVE_PUSH_PULL 9
|
||||
#define ACPI_PIN_CONFIG_DRIVE_STRENGTH 10
|
||||
#define ACPI_PIN_CONFIG_SLEW_RATE 11
|
||||
#define ACPI_PIN_CONFIG_INPUT_DEBOUNCE 12
|
||||
#define ACPI_PIN_CONFIG_INPUT_SCHMITT_TRIGGER 13
|
||||
|
||||
struct acpi_resource_pin_group {
|
||||
u8 revision_id;
|
||||
u8 producer_consumer; /* For values, see Producer/Consumer above */
|
||||
u16 pin_table_length;
|
||||
u16 vendor_length;
|
||||
u16 *pin_table;
|
||||
struct acpi_resource_label resource_label;
|
||||
u8 *vendor_data;
|
||||
};
|
||||
|
||||
struct acpi_resource_pin_group_function {
|
||||
u8 revision_id;
|
||||
u8 producer_consumer; /* For values, see Producer/Consumer above */
|
||||
u8 sharable; /* For values, see Interrupt Attributes above */
|
||||
u16 function_number;
|
||||
u16 vendor_length;
|
||||
struct acpi_resource_source resource_source;
|
||||
struct acpi_resource_label resource_source_label;
|
||||
u8 *vendor_data;
|
||||
};
|
||||
|
||||
struct acpi_resource_pin_group_config {
|
||||
u8 revision_id;
|
||||
u8 producer_consumer; /* For values, see Producer/Consumer above */
|
||||
u8 sharable; /* For values, see Interrupt Attributes above */
|
||||
u8 pin_config_type; /* For values, see pin_config_type above */
|
||||
u32 pin_config_value;
|
||||
u16 vendor_length;
|
||||
struct acpi_resource_source resource_source;
|
||||
struct acpi_resource_label resource_source_label;
|
||||
u8 *vendor_data;
|
||||
};
|
||||
|
||||
/* ACPI_RESOURCE_TYPEs */
|
||||
|
||||
#define ACPI_RESOURCE_TYPE_IRQ 0
|
||||
|
|
@ -556,7 +636,12 @@ struct acpi_resource_uart_serialbus {
|
|||
#define ACPI_RESOURCE_TYPE_GPIO 17 /* ACPI 5.0 */
|
||||
#define ACPI_RESOURCE_TYPE_FIXED_DMA 18 /* ACPI 5.0 */
|
||||
#define ACPI_RESOURCE_TYPE_SERIAL_BUS 19 /* ACPI 5.0 */
|
||||
#define ACPI_RESOURCE_TYPE_MAX 19
|
||||
#define ACPI_RESOURCE_TYPE_PIN_FUNCTION 20 /* ACPI 6.2 */
|
||||
#define ACPI_RESOURCE_TYPE_PIN_CONFIG 21 /* ACPI 6.2 */
|
||||
#define ACPI_RESOURCE_TYPE_PIN_GROUP 22 /* ACPI 6.2 */
|
||||
#define ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION 23 /* ACPI 6.2 */
|
||||
#define ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG 24 /* ACPI 6.2 */
|
||||
#define ACPI_RESOURCE_TYPE_MAX 24
|
||||
|
||||
/* Master union for resource descriptors */
|
||||
|
||||
|
|
@ -584,6 +669,11 @@ union acpi_resource_data {
|
|||
struct acpi_resource_spi_serialbus spi_serial_bus;
|
||||
struct acpi_resource_uart_serialbus uart_serial_bus;
|
||||
struct acpi_resource_common_serialbus common_serial_bus;
|
||||
struct acpi_resource_pin_function pin_function;
|
||||
struct acpi_resource_pin_config pin_config;
|
||||
struct acpi_resource_pin_group pin_group;
|
||||
struct acpi_resource_pin_group_function pin_group_function;
|
||||
struct acpi_resource_pin_group_config pin_group_config;
|
||||
|
||||
/* Common fields */
|
||||
|
||||
|
|
|
|||
|
|
@ -65,9 +65,11 @@
|
|||
#define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */
|
||||
#define ACPI_SIG_EINJ "EINJ" /* Error Injection table */
|
||||
#define ACPI_SIG_ERST "ERST" /* Error Record Serialization Table */
|
||||
#define ACPI_SIG_HMAT "HMAT" /* Heterogeneous Memory Attributes Table */
|
||||
#define ACPI_SIG_HEST "HEST" /* Hardware Error Source Table */
|
||||
#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
|
||||
#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */
|
||||
#define ACPI_SIG_PPTT "PPTT" /* Processor Properties Topology Table */
|
||||
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
|
||||
#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
|
||||
#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
|
||||
|
|
@ -430,7 +432,8 @@ enum acpi_hest_types {
|
|||
ACPI_HEST_TYPE_AER_BRIDGE = 8,
|
||||
ACPI_HEST_TYPE_GENERIC_ERROR = 9,
|
||||
ACPI_HEST_TYPE_GENERIC_ERROR_V2 = 10,
|
||||
ACPI_HEST_TYPE_RESERVED = 11 /* 11 and greater are reserved */
|
||||
ACPI_HEST_TYPE_IA32_DEFERRED_CHECK = 11,
|
||||
ACPI_HEST_TYPE_RESERVED = 12 /* 12 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -476,6 +479,7 @@ struct acpi_hest_aer_common {
|
|||
|
||||
#define ACPI_HEST_FIRMWARE_FIRST (1)
|
||||
#define ACPI_HEST_GLOBAL (1<<1)
|
||||
#define ACPI_HEST_GHES_ASSIST (1<<2)
|
||||
|
||||
/*
|
||||
* Macros to access the bus/segment numbers in Bus field above:
|
||||
|
|
@ -513,7 +517,8 @@ enum acpi_hest_notify_types {
|
|||
ACPI_HEST_NOTIFY_SEA = 8, /* ACPI 6.1 */
|
||||
ACPI_HEST_NOTIFY_SEI = 9, /* ACPI 6.1 */
|
||||
ACPI_HEST_NOTIFY_GSIV = 10, /* ACPI 6.1 */
|
||||
ACPI_HEST_NOTIFY_RESERVED = 11 /* 11 and greater are reserved */
|
||||
ACPI_HEST_NOTIFY_SOFTWARE_DELEGATED = 11, /* ACPI 6.2 */
|
||||
ACPI_HEST_NOTIFY_RESERVED = 12 /* 12 and greater are reserved */
|
||||
};
|
||||
|
||||
/* Values for config_write_enable bitfield above */
|
||||
|
|
@ -534,7 +539,7 @@ enum acpi_hest_notify_types {
|
|||
struct acpi_hest_ia_machine_check {
|
||||
struct acpi_hest_header header;
|
||||
u16 reserved1;
|
||||
u8 flags;
|
||||
u8 flags; /* See flags ACPI_HEST_GLOBAL, etc. above */
|
||||
u8 enabled;
|
||||
u32 records_to_preallocate;
|
||||
u32 max_sections_per_record;
|
||||
|
|
@ -549,7 +554,7 @@ struct acpi_hest_ia_machine_check {
|
|||
struct acpi_hest_ia_corrected {
|
||||
struct acpi_hest_header header;
|
||||
u16 reserved1;
|
||||
u8 flags;
|
||||
u8 flags; /* See flags ACPI_HEST_GLOBAL, etc. above */
|
||||
u8 enabled;
|
||||
u32 records_to_preallocate;
|
||||
u32 max_sections_per_record;
|
||||
|
|
@ -686,6 +691,136 @@ struct acpi_hest_generic_data_v300 {
|
|||
#define ACPI_HEST_GEN_VALID_FRU_STRING (1<<1)
|
||||
#define ACPI_HEST_GEN_VALID_TIMESTAMP (1<<2)
|
||||
|
||||
/* 11: IA32 Deferred Machine Check Exception (ACPI 6.2) */
|
||||
|
||||
struct acpi_hest_ia_deferred_check {
|
||||
struct acpi_hest_header header;
|
||||
u16 reserved1;
|
||||
u8 flags; /* See flags ACPI_HEST_GLOBAL, etc. above */
|
||||
u8 enabled;
|
||||
u32 records_to_preallocate;
|
||||
u32 max_sections_per_record;
|
||||
struct acpi_hest_notify notify;
|
||||
u8 num_hardware_banks;
|
||||
u8 reserved2[3];
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* HMAT - Heterogeneous Memory Attributes Table (ACPI 6.2)
|
||||
* Version 1
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_hmat {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 reserved;
|
||||
};
|
||||
|
||||
/* Values for HMAT structure types */
|
||||
|
||||
enum acpi_hmat_type {
|
||||
ACPI_HMAT_TYPE_ADDRESS_RANGE = 0, /* Memory subystem address range */
|
||||
ACPI_HMAT_TYPE_LOCALITY = 1, /* System locality latency and bandwidth information */
|
||||
ACPI_HMAT_TYPE_CACHE = 2, /* Memory side cache information */
|
||||
ACPI_HMAT_TYPE_RESERVED = 3 /* 3 and greater are reserved */
|
||||
};
|
||||
|
||||
struct acpi_hmat_structure {
|
||||
u16 type;
|
||||
u16 reserved;
|
||||
u32 length;
|
||||
};
|
||||
|
||||
/*
|
||||
* HMAT Structures, correspond to Type in struct acpi_hmat_structure
|
||||
*/
|
||||
|
||||
/* 0: Memory subystem address range */
|
||||
|
||||
struct acpi_hmat_address_range {
|
||||
struct acpi_hmat_structure header;
|
||||
u16 flags;
|
||||
u16 reserved1;
|
||||
u32 processor_PD; /* Processor proximity domain */
|
||||
u32 memory_PD; /* Memory proximity domain */
|
||||
u32 reserved2;
|
||||
u64 physical_address_base; /* Physical address range base */
|
||||
u64 physical_address_length; /* Physical address range length */
|
||||
};
|
||||
|
||||
/* Masks for Flags field above */
|
||||
|
||||
#define ACPI_HMAT_PROCESSOR_PD_VALID (1) /* 1: processor_PD field is valid */
|
||||
#define ACPI_HMAT_MEMORY_PD_VALID (1<<1) /* 1: memory_PD field is valid */
|
||||
#define ACPI_HMAT_RESERVATION_HINT (1<<2) /* 1: Reservation hint */
|
||||
|
||||
/* 1: System locality latency and bandwidth information */
|
||||
|
||||
struct acpi_hmat_locality {
|
||||
struct acpi_hmat_structure header;
|
||||
u8 flags;
|
||||
u8 data_type;
|
||||
u16 reserved1;
|
||||
u32 number_of_initiator_Pds;
|
||||
u32 number_of_target_Pds;
|
||||
u32 reserved2;
|
||||
u64 entry_base_unit;
|
||||
};
|
||||
|
||||
/* Masks for Flags field above */
|
||||
|
||||
#define ACPI_HMAT_MEMORY_HIERARCHY (0x0F)
|
||||
|
||||
/* Values for Memory Hierarchy flag */
|
||||
|
||||
#define ACPI_HMAT_MEMORY 0
|
||||
#define ACPI_HMAT_LAST_LEVEL_CACHE 1
|
||||
#define ACPI_HMAT_1ST_LEVEL_CACHE 2
|
||||
#define ACPI_HMAT_2ND_LEVEL_CACHE 3
|
||||
#define ACPI_HMAT_3RD_LEVEL_CACHE 4
|
||||
|
||||
/* Values for data_type field above */
|
||||
|
||||
#define ACPI_HMAT_ACCESS_LATENCY 0
|
||||
#define ACPI_HMAT_READ_LATENCY 1
|
||||
#define ACPI_HMAT_WRITE_LATENCY 2
|
||||
#define ACPI_HMAT_ACCESS_BANDWIDTH 3
|
||||
#define ACPI_HMAT_READ_BANDWIDTH 4
|
||||
#define ACPI_HMAT_WRITE_BANDWIDTH 5
|
||||
|
||||
/* 2: Memory side cache information */
|
||||
|
||||
struct acpi_hmat_cache {
|
||||
struct acpi_hmat_structure header;
|
||||
u32 memory_PD;
|
||||
u32 reserved1;
|
||||
u64 cache_size;
|
||||
u32 cache_attributes;
|
||||
u16 reserved2;
|
||||
u16 number_of_SMBIOShandles;
|
||||
};
|
||||
|
||||
/* Masks for cache_attributes field above */
|
||||
|
||||
#define ACPI_HMAT_TOTAL_CACHE_LEVEL (0x0000000F)
|
||||
#define ACPI_HMAT_CACHE_LEVEL (0x000000F0)
|
||||
#define ACPI_HMAT_CACHE_ASSOCIATIVITY (0x00000F00)
|
||||
#define ACPI_HMAT_WRITE_POLICY (0x0000F000)
|
||||
#define ACPI_HMAT_CACHE_LINE_SIZE (0xFFFF0000)
|
||||
|
||||
/* Values for cache associativity flag */
|
||||
|
||||
#define ACPI_HMAT_CA_NONE (0)
|
||||
#define ACPI_HMAT_CA_DIRECT_MAPPED (1)
|
||||
#define ACPI_HMAT_CA_COMPLEX_CACHE_INDEXING (2)
|
||||
|
||||
/* Values for write policy flag */
|
||||
|
||||
#define ACPI_HMAT_CP_NONE (0)
|
||||
#define ACPI_HMAT_CP_WB (1)
|
||||
#define ACPI_HMAT_CP_WT (2)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* MADT - Multiple APIC Description Table
|
||||
|
|
@ -705,8 +840,8 @@ struct acpi_table_madt {
|
|||
|
||||
/* Values for PCATCompat flag */
|
||||
|
||||
#define ACPI_MADT_DUAL_PIC 0
|
||||
#define ACPI_MADT_MULTIPLE_APIC 1
|
||||
#define ACPI_MADT_DUAL_PIC 1
|
||||
#define ACPI_MADT_MULTIPLE_APIC 0
|
||||
|
||||
/* Values for MADT subtable type in struct acpi_subtable_header */
|
||||
|
||||
|
|
@ -1145,6 +1280,85 @@ struct acpi_nfit_flush_address {
|
|||
u64 hint_address[1]; /* Variable length */
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* PPTT - Processor Properties Topology Table (ACPI 6.2)
|
||||
* Version 1
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_pptt {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
};
|
||||
|
||||
/* Values for Type field above */
|
||||
|
||||
enum acpi_pptt_type {
|
||||
ACPI_PPTT_TYPE_PROCESSOR = 0,
|
||||
ACPI_PPTT_TYPE_CACHE = 1,
|
||||
ACPI_PPTT_TYPE_ID = 2,
|
||||
ACPI_PPTT_TYPE_RESERVED = 3
|
||||
};
|
||||
|
||||
/* 0: Processor Hierarchy Node Structure */
|
||||
|
||||
struct acpi_pptt_processor {
|
||||
struct acpi_subtable_header header;
|
||||
u16 reserved;
|
||||
u32 flags;
|
||||
u32 parent;
|
||||
u32 acpi_processor_id;
|
||||
u32 number_of_priv_resources;
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_PPTT_PHYSICAL_PACKAGE (1) /* Physical package */
|
||||
#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID (2) /* ACPI Processor ID valid */
|
||||
|
||||
/* 1: Cache Type Structure */
|
||||
|
||||
struct acpi_pptt_cache {
|
||||
struct acpi_subtable_header header;
|
||||
u16 reserved;
|
||||
u32 flags;
|
||||
u32 next_level_of_cache;
|
||||
u32 size;
|
||||
u32 number_of_sets;
|
||||
u8 associativity;
|
||||
u8 attributes;
|
||||
u16 line_size;
|
||||
};
|
||||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_PPTT_SIZE_PROPERTY_VALID (1) /* Physical property valid */
|
||||
#define ACPI_PPTT_NUMBER_OF_SETS_VALID (1<<1) /* Number of sets valid */
|
||||
#define ACPI_PPTT_ASSOCIATIVITY_VALID (1<<2) /* Associativity valid */
|
||||
#define ACPI_PPTT_ALLOCATION_TYPE_VALID (1<<3) /* Allocation type valid */
|
||||
#define ACPI_PPTT_CACHE_TYPE_VALID (1<<4) /* Cache type valid */
|
||||
#define ACPI_PPTT_WRITE_POLICY_VALID (1<<5) /* Write policy valid */
|
||||
#define ACPI_PPTT_LINE_SIZE_VALID (1<<6) /* Line size valid */
|
||||
|
||||
/* Masks for Attributes */
|
||||
|
||||
#define ACPI_PPTT_MASK_ALLOCATION_TYPE (0x03) /* Allocation type */
|
||||
#define ACPI_PPTT_MASK_CACHE_TYPE (0x0C) /* Cache type */
|
||||
#define ACPI_PPTT_MASK_WRITE_POLICY (0x10) /* Write policy */
|
||||
|
||||
/* 2: ID Structure */
|
||||
|
||||
struct acpi_pptt_id {
|
||||
struct acpi_subtable_header header;
|
||||
u16 reserved;
|
||||
u32 vendor_id;
|
||||
u64 level1_id;
|
||||
u64 level2_id;
|
||||
u16 major_rev;
|
||||
u16 minor_rev;
|
||||
u16 spin_rev;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* SBST - Smart Battery Specification Table
|
||||
|
|
@ -1192,7 +1406,8 @@ enum acpi_srat_type {
|
|||
ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
|
||||
ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
|
||||
ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
|
||||
ACPI_SRAT_TYPE_RESERVED = 4 /* 4 and greater are reserved */
|
||||
ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */
|
||||
ACPI_SRAT_TYPE_RESERVED = 5 /* 5 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -1264,6 +1479,15 @@ struct acpi_srat_gicc_affinity {
|
|||
|
||||
#define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */
|
||||
|
||||
/* 4: GCC ITS Affinity (ACPI 6.2) */
|
||||
|
||||
struct acpi_srat_gic_its_affinity {
|
||||
struct acpi_subtable_header header;
|
||||
u32 proximity_domain;
|
||||
u16 reserved;
|
||||
u32 its_id;
|
||||
};
|
||||
|
||||
/* Reset to default packing */
|
||||
|
||||
#pragma pack()
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@
|
|||
#define ACPI_SIG_WDAT "WDAT" /* Watchdog Action Table */
|
||||
#define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */
|
||||
#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
|
||||
#define ACPI_SIG_WSMT "WSMT" /* Windows SMM Security Migrations Table */
|
||||
#define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */
|
||||
|
||||
#ifdef ACPI_UNDEFINED_TABLES
|
||||
|
|
@ -1220,7 +1221,8 @@ enum acpi_spmi_interface_types {
|
|||
* Version 2
|
||||
*
|
||||
* Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
|
||||
* December 19, 2014
|
||||
* Version 1.2, Revision 8
|
||||
* February 27, 2017
|
||||
*
|
||||
* NOTE: There are two versions of the table with the same signature --
|
||||
* the client version and the server version. The common platform_class
|
||||
|
|
@ -1283,7 +1285,8 @@ struct acpi_table_tcpa_server {
|
|||
* Version 4
|
||||
*
|
||||
* Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
|
||||
* December 19, 2014
|
||||
* Version 1.2, Revision 8
|
||||
* February 27, 2017
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
@ -1304,6 +1307,36 @@ struct acpi_table_tpm2 {
|
|||
#define ACPI_TPM2_MEMORY_MAPPED 6
|
||||
#define ACPI_TPM2_COMMAND_BUFFER 7
|
||||
#define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD 8
|
||||
#define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */
|
||||
|
||||
/* Trailer appears after any start_method subtables */
|
||||
|
||||
struct acpi_tpm2_trailer {
|
||||
u32 minimum_log_length; /* Minimum length for the event log area */
|
||||
u64 log_address; /* Address of the event log area */
|
||||
};
|
||||
|
||||
/*
|
||||
* Subtables (start_method-specific)
|
||||
*/
|
||||
|
||||
/* 11: Start Method for ARM SMC (V1.2 Rev 8) */
|
||||
|
||||
struct acpi_tpm2_arm_smc {
|
||||
u32 global_interrupt;
|
||||
u8 interrupt_flags;
|
||||
u8 operation_flags;
|
||||
u16 reserved;
|
||||
u32 function_id;
|
||||
};
|
||||
|
||||
/* Values for interrupt_flags above */
|
||||
|
||||
#define ACPI_TPM2_INTERRUPT_SUPPORT (1)
|
||||
|
||||
/* Values for operation_flags above */
|
||||
|
||||
#define ACPI_TPM2_IDLE_SUPPORT (1)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
|
@ -1497,6 +1530,27 @@ struct acpi_table_wdrt {
|
|||
u8 units;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* WSMT - Windows SMM Security Migrations Table
|
||||
* Version 1
|
||||
*
|
||||
* Conforms to "Windows SMM Security Migrations Table",
|
||||
* Version 1.0, April 18, 2016
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_wsmt {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
u32 protection_flags;
|
||||
};
|
||||
|
||||
/* Flags for protection_flags field above */
|
||||
|
||||
#define ACPI_WSMT_FIXED_COMM_BUFFERS (1)
|
||||
#define ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION (2)
|
||||
#define ACPI_WSMT_SYSTEM_RESOURCE_PROTECTION (4)
|
||||
|
||||
/* Reset to default packing */
|
||||
|
||||
#pragma pack()
|
||||
|
|
|
|||
|
|
@ -116,6 +116,11 @@ struct acpi_table_bgrt {
|
|||
u32 image_offset_y;
|
||||
};
|
||||
|
||||
/* Flags for Status field above */
|
||||
|
||||
#define ACPI_BGRT_DISPLAYED (1)
|
||||
#define ACPI_BGRT_ORIENTATION_OFFSET (3 << 1)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* DRTM - Dynamic Root of Trust for Measurement table
|
||||
|
|
@ -462,7 +467,7 @@ struct acpi_mpst_shared {
|
|||
/*******************************************************************************
|
||||
*
|
||||
* PCCT - Platform Communications Channel Table (ACPI 5.0)
|
||||
* Version 1
|
||||
* Version 2 (ACPI 6.2)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
@ -482,7 +487,9 @@ enum acpi_pcct_type {
|
|||
ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0,
|
||||
ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1,
|
||||
ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, /* ACPI 6.1 */
|
||||
ACPI_PCCT_TYPE_RESERVED = 3 /* 3 and greater are reserved */
|
||||
ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, /* ACPI 6.2 */
|
||||
ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, /* ACPI 6.2 */
|
||||
ACPI_PCCT_TYPE_RESERVED = 5 /* 5 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -508,7 +515,7 @@ struct acpi_pcct_subspace {
|
|||
|
||||
struct acpi_pcct_hw_reduced {
|
||||
struct acpi_subtable_header header;
|
||||
u32 doorbell_interrupt;
|
||||
u32 platform_interrupt;
|
||||
u8 flags;
|
||||
u8 reserved;
|
||||
u64 base_address;
|
||||
|
|
@ -525,7 +532,7 @@ struct acpi_pcct_hw_reduced {
|
|||
|
||||
struct acpi_pcct_hw_reduced_type2 {
|
||||
struct acpi_subtable_header header;
|
||||
u32 doorbell_interrupt;
|
||||
u32 platform_interrupt;
|
||||
u8 flags;
|
||||
u8 reserved;
|
||||
u64 base_address;
|
||||
|
|
@ -536,11 +543,67 @@ struct acpi_pcct_hw_reduced_type2 {
|
|||
u32 latency;
|
||||
u32 max_access_rate;
|
||||
u16 min_turnaround_time;
|
||||
struct acpi_generic_address doorbell_ack_register;
|
||||
struct acpi_generic_address platform_ack_register;
|
||||
u64 ack_preserve_mask;
|
||||
u64 ack_write_mask;
|
||||
};
|
||||
|
||||
/* 3: Extended PCC Master Subspace Type 3 (ACPI 6.2) */
|
||||
|
||||
struct acpi_pcct_ext_pcc_master {
|
||||
struct acpi_subtable_header header;
|
||||
u32 platform_interrupt;
|
||||
u8 flags;
|
||||
u8 reserved1;
|
||||
u64 base_address;
|
||||
u32 length;
|
||||
struct acpi_generic_address doorbell_register;
|
||||
u64 preserve_mask;
|
||||
u64 write_mask;
|
||||
u32 latency;
|
||||
u32 max_access_rate;
|
||||
u32 min_turnaround_time;
|
||||
struct acpi_generic_address platform_ack_register;
|
||||
u64 ack_preserve_mask;
|
||||
u64 ack_set_mask;
|
||||
u64 reserved2;
|
||||
struct acpi_generic_address cmd_complete_register;
|
||||
u64 cmd_complete_mask;
|
||||
struct acpi_generic_address cmd_update_register;
|
||||
u64 cmd_update_preserve_mask;
|
||||
u64 cmd_update_set_mask;
|
||||
struct acpi_generic_address error_status_register;
|
||||
u64 error_status_mask;
|
||||
};
|
||||
|
||||
/* 4: Extended PCC Slave Subspace Type 4 (ACPI 6.2) */
|
||||
|
||||
struct acpi_pcct_ext_pcc_slave {
|
||||
struct acpi_subtable_header header;
|
||||
u32 platform_interrupt;
|
||||
u8 flags;
|
||||
u8 reserved1;
|
||||
u64 base_address;
|
||||
u32 length;
|
||||
struct acpi_generic_address doorbell_register;
|
||||
u64 preserve_mask;
|
||||
u64 write_mask;
|
||||
u32 latency;
|
||||
u32 max_access_rate;
|
||||
u32 min_turnaround_time;
|
||||
struct acpi_generic_address platform_ack_register;
|
||||
u64 ack_preserve_mask;
|
||||
u64 ack_set_mask;
|
||||
u64 reserved2;
|
||||
struct acpi_generic_address cmd_complete_register;
|
||||
u64 cmd_complete_mask;
|
||||
struct acpi_generic_address cmd_update_register;
|
||||
u64 cmd_update_preserve_mask;
|
||||
u64 cmd_update_set_mask;
|
||||
struct acpi_generic_address error_status_register;
|
||||
u64 error_status_mask;
|
||||
};
|
||||
|
||||
/* Values for doorbell flags above */
|
||||
|
||||
#define ACPI_PCCT_INTERRUPT_POLARITY (1)
|
||||
|
|
@ -558,6 +621,15 @@ struct acpi_pcct_shared_memory {
|
|||
u16 status;
|
||||
};
|
||||
|
||||
/* Extended PCC Subspace Shared Memory Region (ACPI 6.2) */
|
||||
|
||||
struct acpi_pcct_ext_pcc_shared_memory {
|
||||
u32 signature;
|
||||
u32 flags;
|
||||
u32 length;
|
||||
u32 command;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* PMTT - Platform Memory Topology Table (ACPI 5.0)
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@
|
|||
/* acpisrc:struct_defs -- for acpisrc conversion */
|
||||
|
||||
/*
|
||||
* ACPI_MACHINE_WIDTH must be specified in an OS- or compiler-dependent header
|
||||
* and must be either 32 or 64. 16-bit ACPICA is no longer supported, as of
|
||||
* 12/2006.
|
||||
* ACPI_MACHINE_WIDTH must be specified in an OS- or compiler-dependent
|
||||
* header and must be either 32 or 64. 16-bit ACPICA is no longer
|
||||
* supported, as of 12/2006.
|
||||
*/
|
||||
#ifndef ACPI_MACHINE_WIDTH
|
||||
#error ACPI_MACHINE_WIDTH not defined
|
||||
|
|
@ -87,9 +87,9 @@
|
|||
* s64 64-bit (8 byte) signed value
|
||||
*
|
||||
* COMPILER_DEPENDENT_UINT64/s64 - These types are defined in the
|
||||
* compiler-dependent header(s) and were introduced because there is no common
|
||||
* 64-bit integer type across the various compilation models, as shown in
|
||||
* the table below.
|
||||
* compiler-dependent header(s) and were introduced because there is no
|
||||
* common 64-bit integer type across the various compilation models, as
|
||||
* shown in the table below.
|
||||
*
|
||||
* Datatype LP64 ILP64 LLP64 ILP32 LP32 16bit
|
||||
* char 8 8 8 8 8 8
|
||||
|
|
@ -106,10 +106,10 @@
|
|||
* 2) These types represent the native word size of the target mode of the
|
||||
* processor, and may be 16-bit, 32-bit, or 64-bit as required. They are
|
||||
* usually used for memory allocation, efficient loop counters, and array
|
||||
* indexes. The types are similar to the size_t type in the C library and are
|
||||
* required because there is no C type that consistently represents the native
|
||||
* data width. acpi_size is needed because there is no guarantee that a
|
||||
* kernel-level C library is present.
|
||||
* indexes. The types are similar to the size_t type in the C library and
|
||||
* are required because there is no C type that consistently represents the
|
||||
* native data width. acpi_size is needed because there is no guarantee
|
||||
* that a kernel-level C library is present.
|
||||
*
|
||||
* acpi_size 16/32/64-bit unsigned value
|
||||
* acpi_native_int 16/32/64-bit signed value
|
||||
|
|
@ -169,9 +169,10 @@ typedef u64 acpi_physical_address;
|
|||
|
||||
/*
|
||||
* In the case of the Itanium Processor Family (IPF), the hardware does not
|
||||
* support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED flag
|
||||
* to indicate that special precautions must be taken to avoid alignment faults.
|
||||
* (IA64 or ia64 is currently used by existing compilers to indicate IPF.)
|
||||
* support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED
|
||||
* flag to indicate that special precautions must be taken to avoid alignment
|
||||
* faults. (IA64 or ia64 is currently used by existing compilers to indicate
|
||||
* IPF.)
|
||||
*
|
||||
* Note: EM64T and other X86-64 processors support misaligned transfers,
|
||||
* so there is no need to define this flag.
|
||||
|
|
@ -309,8 +310,8 @@ typedef u64 acpi_physical_address;
|
|||
#endif
|
||||
|
||||
/*
|
||||
* Some compilers complain about unused variables. Sometimes we don't want to
|
||||
* use all the variables (for example, _acpi_module_name). This allows us
|
||||
* Some compilers complain about unused variables. Sometimes we don't want
|
||||
* to use all the variables (for example, _acpi_module_name). This allows us
|
||||
* to tell the compiler in a per-variable manner that a variable
|
||||
* is unused
|
||||
*/
|
||||
|
|
@ -319,8 +320,9 @@ typedef u64 acpi_physical_address;
|
|||
#endif
|
||||
|
||||
/*
|
||||
* All ACPICA external functions that are available to the rest of the kernel
|
||||
* are tagged with thes macros which can be defined as appropriate for the host.
|
||||
* All ACPICA external functions that are available to the rest of the
|
||||
* kernel are tagged with these macros which can be defined as appropriate
|
||||
* for the host.
|
||||
*
|
||||
* Notes:
|
||||
* ACPI_EXPORT_SYMBOL_INIT is used for initialization and termination
|
||||
|
|
@ -383,7 +385,8 @@ typedef u64 acpi_physical_address;
|
|||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI Specification constants (Do not change unless the specification changes)
|
||||
* ACPI Specification constants (Do not change unless the specification
|
||||
* changes)
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
|
@ -484,10 +487,10 @@ typedef u8 acpi_owner_id;
|
|||
#define ACPI_DO_NOT_WAIT 0
|
||||
|
||||
/*
|
||||
* Obsolete: Acpi integer width. In ACPI version 1 (1996), integers are 32 bits.
|
||||
* In ACPI version 2 (2000) and later, integers are 64 bits. Note that this
|
||||
* pertains to the ACPI integer type only, not to other integers used in the
|
||||
* implementation of the ACPICA subsystem.
|
||||
* Obsolete: Acpi integer width. In ACPI version 1 (1996), integers are
|
||||
* 32 bits. In ACPI version 2 (2000) and later, integers are max 64 bits.
|
||||
* Note that this pertains to the ACPI integer type only, not to other
|
||||
* integers used in the implementation of the ACPICA subsystem.
|
||||
*
|
||||
* 01/2010: This type is obsolete and has been removed from the entire ACPICA
|
||||
* code base. It remains here for compatibility with device drivers that use
|
||||
|
|
@ -629,8 +632,9 @@ typedef u64 acpi_integer;
|
|||
#define ACPI_NOTIFY_LOCALITY_UPDATE (u8) 0x0B
|
||||
#define ACPI_NOTIFY_SHUTDOWN_REQUEST (u8) 0x0C
|
||||
#define ACPI_NOTIFY_AFFINITY_UPDATE (u8) 0x0D
|
||||
#define ACPI_NOTIFY_MEMORY_UPDATE (u8) 0x0E
|
||||
|
||||
#define ACPI_GENERIC_NOTIFY_MAX 0x0D
|
||||
#define ACPI_GENERIC_NOTIFY_MAX 0x0E
|
||||
#define ACPI_SPECIFIC_NOTIFY_MAX 0x84
|
||||
|
||||
/*
|
||||
|
|
@ -667,10 +671,11 @@ typedef u32 acpi_object_type;
|
|||
|
||||
/*
|
||||
* These are object types that do not map directly to the ACPI
|
||||
* object_type() operator. They are used for various internal purposes only.
|
||||
* If new predefined ACPI_TYPEs are added (via the ACPI specification), these
|
||||
* internal types must move upwards. (There is code that depends on these
|
||||
* values being contiguous with the external types above.)
|
||||
* object_type() operator. They are used for various internal purposes
|
||||
* only. If new predefined ACPI_TYPEs are added (via the ACPI
|
||||
* specification), these internal types must move upwards. (There
|
||||
* is code that depends on these values being contiguous with the
|
||||
* external types above.)
|
||||
*/
|
||||
#define ACPI_TYPE_LOCAL_REGION_FIELD 0x11
|
||||
#define ACPI_TYPE_LOCAL_BANK_FIELD 0x12
|
||||
|
|
@ -770,7 +775,7 @@ typedef u32 acpi_event_status;
|
|||
* | | | | +-- Type of dispatch:to method, handler, notify, or none
|
||||
* | | | +----- Interrupt type: edge or level triggered
|
||||
* | | +------- Is a Wake GPE
|
||||
* | +--------- Is GPE masked by the software GPE masking machanism
|
||||
* | +--------- Is GPE masked by the software GPE masking mechanism
|
||||
* +------------ <Reserved>
|
||||
*/
|
||||
#define ACPI_GPE_DISPATCH_NONE (u8) 0x00
|
||||
|
|
@ -908,8 +913,8 @@ struct acpi_sleep_functions {
|
|||
*/
|
||||
|
||||
/*
|
||||
* Note: Type == ACPI_TYPE_ANY (0) is used to indicate a NULL package element
|
||||
* or an unresolved named reference.
|
||||
* Note: Type == ACPI_TYPE_ANY (0) is used to indicate a NULL package
|
||||
* element or an unresolved named reference.
|
||||
*/
|
||||
union acpi_object {
|
||||
acpi_object_type type; /* See definition of acpi_ns_type for values */
|
||||
|
|
@ -1166,7 +1171,7 @@ struct acpi_pnp_device_id_list {
|
|||
|
||||
/*
|
||||
* Structure returned from acpi_get_object_info.
|
||||
* Optimized for both 32- and 64-bit builds
|
||||
* Optimized for both 32-bit and 64-bit builds.
|
||||
*/
|
||||
struct acpi_device_info {
|
||||
u32 info_size; /* Size of info, including ID strings */
|
||||
|
|
|
|||
|
|
@ -78,6 +78,11 @@
|
|||
#define UUID_PERSISTENT_VIRTUAL_DISK "5cea02c9-4d07-69d3-269f-4496fbe096f9"
|
||||
#define UUID_PERSISTENT_VIRTUAL_CD "08018188-42cd-bb48-100f-5387d53ded3d"
|
||||
|
||||
/* Processor Properties (ACPI 6.2) */
|
||||
|
||||
#define UUID_CACHE_PROPERTIES "6DC63E77-257E-4E78-A973-A21F2796898D"
|
||||
#define UUID_PHYSICAL_PROPERTY "DDE4D59A-AA42-4349-B407-EA40F57D9FB7"
|
||||
|
||||
/* Miscellaneous */
|
||||
|
||||
#define UUID_PLATFORM_CAPABILITIES "0811b06e-4a27-44f9-8d60-3cbbc22e7b48"
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@ struct cppc_perf_caps {
|
|||
u32 highest_perf;
|
||||
u32 nominal_perf;
|
||||
u32 lowest_perf;
|
||||
u32 lowest_nonlinear_perf;
|
||||
};
|
||||
|
||||
struct cppc_perf_ctrls {
|
||||
|
|
@ -115,7 +116,7 @@ struct cppc_perf_fb_ctrs {
|
|||
u64 reference;
|
||||
u64 delivered;
|
||||
u64 reference_perf;
|
||||
u64 ctr_wrap_time;
|
||||
u64 wraparound_time;
|
||||
};
|
||||
|
||||
/* Per CPU container for runtime CPPC management. */
|
||||
|
|
|
|||
|
|
@ -48,7 +48,17 @@
|
|||
* Use compiler specific <stdarg.h> is a good practice for even when
|
||||
* -nostdinc is specified (i.e., ACPI_USE_STANDARD_HEADERS undefined.
|
||||
*/
|
||||
#ifndef va_arg
|
||||
#ifdef ACPI_USE_BUILTIN_STDARG
|
||||
typedef __builtin_va_list va_list;
|
||||
#define va_start(v, l) __builtin_va_start(v, l)
|
||||
#define va_end(v) __builtin_va_end(v)
|
||||
#define va_arg(v, l) __builtin_va_arg(v, l)
|
||||
#define va_copy(d, s) __builtin_va_copy(d, s)
|
||||
#else
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define ACPI_INLINE __inline__
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,9 @@
|
|||
* Use compiler specific <stdarg.h> is a good practice for even when
|
||||
* -nostdinc is specified (i.e., ACPI_USE_STANDARD_HEADERS undefined.
|
||||
*/
|
||||
#ifndef va_arg
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
/* Configuration specific to Intel 64-bit C compiler */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue