Loading drivers/acpi/acpica/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ acpi-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \ psopcode.o psscope.o psutils.o psxface.o acpi-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \ rscalc.o rsirq.o rsmemory.o rsutils.o rscalc.o rsirq.o rsmemory.o rsutils.o rsserial.o acpi-$(ACPI_FUTURE_USAGE) += rsdump.o Loading drivers/acpi/acpica/aclocal.h +4 −2 Original line number Diff line number Diff line Loading @@ -955,7 +955,7 @@ struct acpi_port_info { #define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38 #define ACPI_RESOURCE_NAME_IO 0x40 #define ACPI_RESOURCE_NAME_FIXED_IO 0x48 #define ACPI_RESOURCE_NAME_RESERVED_S1 0x50 #define ACPI_RESOURCE_NAME_FIXED_DMA 0x50 #define ACPI_RESOURCE_NAME_RESERVED_S2 0x58 #define ACPI_RESOURCE_NAME_RESERVED_S3 0x60 #define ACPI_RESOURCE_NAME_RESERVED_S4 0x68 Loading @@ -977,7 +977,9 @@ struct acpi_port_info { #define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89 #define ACPI_RESOURCE_NAME_ADDRESS64 0x8A #define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B #define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B #define ACPI_RESOURCE_NAME_GPIO 0x8C #define ACPI_RESOURCE_NAME_SERIAL_BUS 0x8E #define ACPI_RESOURCE_NAME_LARGE_MAX 0x8E /***************************************************************************** * Loading drivers/acpi/acpica/acresrc.h +73 −36 Original line number Diff line number Diff line Loading @@ -73,28 +73,40 @@ typedef const struct acpi_rsconvert_info { /* Resource conversion opcodes */ #define ACPI_RSC_INITGET 0 #define ACPI_RSC_INITSET 1 #define ACPI_RSC_FLAGINIT 2 #define ACPI_RSC_1BITFLAG 3 #define ACPI_RSC_2BITFLAG 4 #define ACPI_RSC_COUNT 5 #define ACPI_RSC_COUNT16 6 #define ACPI_RSC_LENGTH 7 #define ACPI_RSC_MOVE8 8 #define ACPI_RSC_MOVE16 9 #define ACPI_RSC_MOVE32 10 #define ACPI_RSC_MOVE64 11 #define ACPI_RSC_SET8 12 #define ACPI_RSC_DATA8 13 #define ACPI_RSC_ADDRESS 14 #define ACPI_RSC_SOURCE 15 #define ACPI_RSC_SOURCEX 16 #define ACPI_RSC_BITMASK 17 #define ACPI_RSC_BITMASK16 18 #define ACPI_RSC_EXIT_NE 19 #define ACPI_RSC_EXIT_LE 20 #define ACPI_RSC_EXIT_EQ 21 typedef enum { ACPI_RSC_INITGET = 0, ACPI_RSC_INITSET, ACPI_RSC_FLAGINIT, ACPI_RSC_1BITFLAG, ACPI_RSC_2BITFLAG, ACPI_RSC_3BITFLAG, ACPI_RSC_ADDRESS, ACPI_RSC_BITMASK, ACPI_RSC_BITMASK16, ACPI_RSC_COUNT, ACPI_RSC_COUNT16, ACPI_RSC_COUNT_GPIO_PIN, ACPI_RSC_COUNT_GPIO_RES, ACPI_RSC_COUNT_GPIO_VEN, ACPI_RSC_COUNT_SERIAL_RES, ACPI_RSC_COUNT_SERIAL_VEN, ACPI_RSC_DATA8, ACPI_RSC_EXIT_EQ, ACPI_RSC_EXIT_LE, ACPI_RSC_EXIT_NE, ACPI_RSC_LENGTH, ACPI_RSC_MOVE_GPIO_PIN, ACPI_RSC_MOVE_GPIO_RES, ACPI_RSC_MOVE_SERIAL_RES, ACPI_RSC_MOVE_SERIAL_VEN, ACPI_RSC_MOVE8, ACPI_RSC_MOVE16, ACPI_RSC_MOVE32, ACPI_RSC_MOVE64, ACPI_RSC_SET8, ACPI_RSC_SOURCE, ACPI_RSC_SOURCEX } ACPI_RSCONVERT_OPCODES; /* Resource Conversion sub-opcodes */ Loading @@ -106,6 +118,9 @@ typedef const struct acpi_rsconvert_info { #define ACPI_RS_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_resource,f) #define AML_OFFSET(f) (u8) ACPI_OFFSET (union aml_resource,f) /* * Individual entry for the resource dump tables */ typedef const struct acpi_rsdump_info { u8 opcode; u8 offset; Loading @@ -116,20 +131,25 @@ typedef const struct acpi_rsdump_info { /* Values for the Opcode field above */ #define ACPI_RSD_TITLE 0 #define ACPI_RSD_LITERAL 1 #define ACPI_RSD_STRING 2 #define ACPI_RSD_UINT8 3 #define ACPI_RSD_UINT16 4 #define ACPI_RSD_UINT32 5 #define ACPI_RSD_UINT64 6 #define ACPI_RSD_1BITFLAG 7 #define ACPI_RSD_2BITFLAG 8 #define ACPI_RSD_SHORTLIST 9 #define ACPI_RSD_LONGLIST 10 #define ACPI_RSD_DWORDLIST 11 #define ACPI_RSD_ADDRESS 12 #define ACPI_RSD_SOURCE 13 typedef enum { ACPI_RSD_TITLE = 0, ACPI_RSD_1BITFLAG, ACPI_RSD_2BITFLAG, ACPI_RSD_3BITFLAG, ACPI_RSD_ADDRESS, ACPI_RSD_DWORDLIST, ACPI_RSD_LITERAL, ACPI_RSD_LONGLIST, ACPI_RSD_SHORTLIST, ACPI_RSD_SHORTLISTX, ACPI_RSD_SOURCE, ACPI_RSD_STRING, ACPI_RSD_UINT8, ACPI_RSD_UINT16, ACPI_RSD_UINT32, ACPI_RSD_UINT64, ACPI_RSD_WORDLIST } ACPI_RSDUMP_OPCODES; /* restore default alignment */ Loading @@ -138,13 +158,18 @@ typedef const struct acpi_rsdump_info { /* Resource tables indexed by internal resource type */ extern const u8 acpi_gbl_aml_resource_sizes[]; extern const u8 acpi_gbl_aml_resource_serial_bus_sizes[]; extern struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[]; /* Resource tables indexed by raw AML resource descriptor type */ extern const u8 acpi_gbl_resource_struct_sizes[]; extern const u8 acpi_gbl_resource_struct_serial_bus_sizes[]; extern struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[]; extern struct acpi_rsconvert_info *acpi_gbl_convert_resource_serial_bus_dispatch[]; struct acpi_vendor_walk_info { struct acpi_vendor_uuid *uuid; struct acpi_buffer *buffer; Loading Loading @@ -293,6 +318,11 @@ extern struct acpi_rsconvert_info acpi_rs_convert_address16[]; extern struct acpi_rsconvert_info acpi_rs_convert_ext_irq[]; extern struct acpi_rsconvert_info acpi_rs_convert_address64[]; extern struct acpi_rsconvert_info acpi_rs_convert_ext_address64[]; extern struct acpi_rsconvert_info acpi_rs_convert_gpio[]; extern struct acpi_rsconvert_info acpi_rs_convert_fixed_dma[]; extern struct acpi_rsconvert_info acpi_rs_convert_i2c_serial_bus[]; extern struct acpi_rsconvert_info acpi_rs_convert_spi_serial_bus[]; extern struct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[]; /* These resources require separate get/set tables */ Loading @@ -310,6 +340,7 @@ extern struct acpi_rsconvert_info acpi_rs_set_vendor[]; * rsinfo */ extern struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[]; extern struct acpi_rsdump_info *acpi_gbl_dump_serial_bus_dispatch[]; /* * rsdump Loading @@ -331,6 +362,12 @@ extern struct acpi_rsdump_info acpi_rs_dump_address64[]; extern struct acpi_rsdump_info acpi_rs_dump_ext_address64[]; extern struct acpi_rsdump_info acpi_rs_dump_ext_irq[]; extern struct acpi_rsdump_info acpi_rs_dump_generic_reg[]; extern struct acpi_rsdump_info acpi_rs_dump_gpio[]; extern struct acpi_rsdump_info acpi_rs_dump_fixed_dma[]; extern struct acpi_rsdump_info acpi_rs_dump_common_serial_bus[]; extern struct acpi_rsdump_info acpi_rs_dump_i2c_serial_bus[]; extern struct acpi_rsdump_info acpi_rs_dump_spi_serial_bus[]; extern struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus[]; #endif #endif /* __ACRESRC_H__ */ drivers/acpi/acpica/acutils.h +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ #define _ACUTILS_H extern const u8 acpi_gbl_resource_aml_sizes[]; extern const u8 acpi_gbl_resource_aml_serial_bus_sizes[]; /* Strings used by the disassembler and debugger resource dump routines */ Loading drivers/acpi/acpica/amlresrc.h +136 −0 Original line number Diff line number Diff line Loading @@ -58,29 +58,48 @@ #define ACPI_RESTAG_TYPESPECIFICATTRIBUTES "_ATT" #define ACPI_RESTAG_BASEADDRESS "_BAS" #define ACPI_RESTAG_BUSMASTER "_BM_" /* Master(1), Slave(0) */ #define ACPI_RESTAG_DEBOUNCETIME "_DBT" #define ACPI_RESTAG_DECODE "_DEC" #define ACPI_RESTAG_DEVICEPOLARITY "_DPL" #define ACPI_RESTAG_DMA "_DMA" #define ACPI_RESTAG_DMATYPE "_TYP" /* Compatible(0), A(1), B(2), F(3) */ #define ACPI_RESTAG_DRIVESTRENGTH "_DRS" #define ACPI_RESTAG_ENDIANNESS "_END" #define ACPI_RESTAG_FLOWCONTROL "_FLC" #define ACPI_RESTAG_GRANULARITY "_GRA" #define ACPI_RESTAG_INTERRUPT "_INT" #define ACPI_RESTAG_INTERRUPTLEVEL "_LL_" /* active_lo(1), active_hi(0) */ #define ACPI_RESTAG_INTERRUPTSHARE "_SHR" /* Shareable(1), no_share(0) */ #define ACPI_RESTAG_INTERRUPTTYPE "_HE_" /* Edge(1), Level(0) */ #define ACPI_RESTAG_IORESTRICTION "_IOR" #define ACPI_RESTAG_LENGTH "_LEN" #define ACPI_RESTAG_LINE "_LIN" #define ACPI_RESTAG_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */ #define ACPI_RESTAG_MEMTYPE "_MEM" /* non_cache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */ #define ACPI_RESTAG_MAXADDR "_MAX" #define ACPI_RESTAG_MINADDR "_MIN" #define ACPI_RESTAG_MAXTYPE "_MAF" #define ACPI_RESTAG_MINTYPE "_MIF" #define ACPI_RESTAG_MODE "_MOD" #define ACPI_RESTAG_PARITY "_PAR" #define ACPI_RESTAG_PHASE "_PHA" #define ACPI_RESTAG_PIN "_PIN" #define ACPI_RESTAG_PINCONFIG "_PPI" #define ACPI_RESTAG_POLARITY "_POL" #define ACPI_RESTAG_REGISTERBITOFFSET "_RBO" #define ACPI_RESTAG_REGISTERBITWIDTH "_RBW" #define ACPI_RESTAG_RANGETYPE "_RNG" #define ACPI_RESTAG_READWRITETYPE "_RW_" /* read_only(0), Writeable (1) */ #define ACPI_RESTAG_LENGTH_RX "_RXL" #define ACPI_RESTAG_LENGTH_TX "_TXL" #define ACPI_RESTAG_SLAVEMODE "_SLV" #define ACPI_RESTAG_SPEED "_SPE" #define ACPI_RESTAG_STOPBITS "_STB" #define ACPI_RESTAG_TRANSLATION "_TRA" #define ACPI_RESTAG_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */ #define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */ #define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8_and16(1), 16(2) */ #define ACPI_RESTAG_VENDORDATA "_VEN" /* Default sizes for "small" resource descriptors */ Loading @@ -90,6 +109,7 @@ #define ASL_RDESC_END_DEPEND_SIZE 0x00 #define ASL_RDESC_IO_SIZE 0x07 #define ASL_RDESC_FIXED_IO_SIZE 0x03 #define ASL_RDESC_FIXED_DMA_SIZE 0x05 #define ASL_RDESC_END_TAG_SIZE 0x01 struct asl_resource_node { Loading Loading @@ -164,6 +184,12 @@ struct aml_resource_end_tag { AML_RESOURCE_SMALL_HEADER_COMMON u8 checksum; }; struct aml_resource_fixed_dma { AML_RESOURCE_SMALL_HEADER_COMMON u16 request_lines; u16 channels; u8 width; }; /* * LARGE descriptors */ Loading Loading @@ -263,6 +289,110 @@ struct aml_resource_generic_register { u64 address; }; /* Common descriptor for gpio_int and gpio_io (ACPI 5.0) */ struct aml_resource_gpio { AML_RESOURCE_LARGE_HEADER_COMMON u8 revision_id; u8 connection_type; u16 flags; u16 int_flags; u8 pin_config; u16 drive_strength; u16 debounce_timeout; u16 pin_table_offset; u8 res_source_index; u16 res_source_offset; u16 vendor_offset; u16 vendor_length; /* * Optional fields follow immediately: * 1) PIN list (Words) * 2) Resource Source String * 3) Vendor Data bytes */ }; #define AML_RESOURCE_GPIO_REVISION 1 /* ACPI 5.0 */ /* Values for connection_type above */ #define AML_RESOURCE_GPIO_TYPE_INT 0 #define AML_RESOURCE_GPIO_TYPE_IO 1 #define AML_RESOURCE_MAX_GPIOTYPE 1 /* Common preamble for all serial descriptors (ACPI 5.0) */ #define AML_RESOURCE_SERIAL_COMMON \ u8 revision_id; \ u8 res_source_index; \ u8 type; \ u8 flags; \ u16 type_specific_flags; \ u8 type_revision_id; \ u16 type_data_length; \ /* Values for the type field above */ #define AML_RESOURCE_I2C_SERIALBUSTYPE 1 #define AML_RESOURCE_SPI_SERIALBUSTYPE 2 #define AML_RESOURCE_UART_SERIALBUSTYPE 3 #define AML_RESOURCE_MAX_SERIALBUSTYPE 3 #define AML_RESOURCE_VENDOR_SERIALBUSTYPE 192 /* Vendor defined is 0xC0-0xFF (NOT SUPPORTED) */ struct aml_resource_common_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON}; struct aml_resource_i2c_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON u32 connection_speed; u16 slave_address; /* * Optional fields follow immediately: * 1) Vendor Data bytes * 2) Resource Source String */ }; #define AML_RESOURCE_I2C_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_I2C_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_I2C_MIN_DATA_LEN 6 struct aml_resource_spi_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON u32 connection_speed; u8 data_bit_length; u8 clock_phase; u8 clock_polarity; u16 device_selection; /* * Optional fields follow immediately: * 1) Vendor Data bytes * 2) Resource Source String */ }; #define AML_RESOURCE_SPI_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_SPI_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_SPI_MIN_DATA_LEN 9 struct aml_resource_uart_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON u32 default_baud_rate; u16 rx_fifo_size; u16 tx_fifo_size; u8 parity; u8 lines_enabled; /* * Optional fields follow immediately: * 1) Vendor Data bytes * 2) Resource Source String */ }; #define AML_RESOURCE_UART_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_UART_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_UART_MIN_DATA_LEN 10 /* restore default alignment */ #pragma pack() Loading @@ -284,6 +414,7 @@ union aml_resource { struct aml_resource_end_dependent end_dpf; struct aml_resource_io io; struct aml_resource_fixed_io fixed_io; struct aml_resource_fixed_dma fixed_dma; struct aml_resource_vendor_small vendor_small; struct aml_resource_end_tag end_tag; Loading @@ -299,6 +430,11 @@ union aml_resource { struct aml_resource_address64 address64; struct aml_resource_extended_address64 ext_address64; struct aml_resource_extended_irq extended_irq; struct aml_resource_gpio gpio; struct aml_resource_i2c_serialbus i2c_serial_bus; struct aml_resource_spi_serialbus spi_serial_bus; struct aml_resource_uart_serialbus uart_serial_bus; struct aml_resource_common_serialbus common_serial_bus; /* Utility overlays */ Loading Loading
drivers/acpi/acpica/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ acpi-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \ psopcode.o psscope.o psutils.o psxface.o acpi-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \ rscalc.o rsirq.o rsmemory.o rsutils.o rscalc.o rsirq.o rsmemory.o rsutils.o rsserial.o acpi-$(ACPI_FUTURE_USAGE) += rsdump.o Loading
drivers/acpi/acpica/aclocal.h +4 −2 Original line number Diff line number Diff line Loading @@ -955,7 +955,7 @@ struct acpi_port_info { #define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38 #define ACPI_RESOURCE_NAME_IO 0x40 #define ACPI_RESOURCE_NAME_FIXED_IO 0x48 #define ACPI_RESOURCE_NAME_RESERVED_S1 0x50 #define ACPI_RESOURCE_NAME_FIXED_DMA 0x50 #define ACPI_RESOURCE_NAME_RESERVED_S2 0x58 #define ACPI_RESOURCE_NAME_RESERVED_S3 0x60 #define ACPI_RESOURCE_NAME_RESERVED_S4 0x68 Loading @@ -977,7 +977,9 @@ struct acpi_port_info { #define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89 #define ACPI_RESOURCE_NAME_ADDRESS64 0x8A #define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B #define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B #define ACPI_RESOURCE_NAME_GPIO 0x8C #define ACPI_RESOURCE_NAME_SERIAL_BUS 0x8E #define ACPI_RESOURCE_NAME_LARGE_MAX 0x8E /***************************************************************************** * Loading
drivers/acpi/acpica/acresrc.h +73 −36 Original line number Diff line number Diff line Loading @@ -73,28 +73,40 @@ typedef const struct acpi_rsconvert_info { /* Resource conversion opcodes */ #define ACPI_RSC_INITGET 0 #define ACPI_RSC_INITSET 1 #define ACPI_RSC_FLAGINIT 2 #define ACPI_RSC_1BITFLAG 3 #define ACPI_RSC_2BITFLAG 4 #define ACPI_RSC_COUNT 5 #define ACPI_RSC_COUNT16 6 #define ACPI_RSC_LENGTH 7 #define ACPI_RSC_MOVE8 8 #define ACPI_RSC_MOVE16 9 #define ACPI_RSC_MOVE32 10 #define ACPI_RSC_MOVE64 11 #define ACPI_RSC_SET8 12 #define ACPI_RSC_DATA8 13 #define ACPI_RSC_ADDRESS 14 #define ACPI_RSC_SOURCE 15 #define ACPI_RSC_SOURCEX 16 #define ACPI_RSC_BITMASK 17 #define ACPI_RSC_BITMASK16 18 #define ACPI_RSC_EXIT_NE 19 #define ACPI_RSC_EXIT_LE 20 #define ACPI_RSC_EXIT_EQ 21 typedef enum { ACPI_RSC_INITGET = 0, ACPI_RSC_INITSET, ACPI_RSC_FLAGINIT, ACPI_RSC_1BITFLAG, ACPI_RSC_2BITFLAG, ACPI_RSC_3BITFLAG, ACPI_RSC_ADDRESS, ACPI_RSC_BITMASK, ACPI_RSC_BITMASK16, ACPI_RSC_COUNT, ACPI_RSC_COUNT16, ACPI_RSC_COUNT_GPIO_PIN, ACPI_RSC_COUNT_GPIO_RES, ACPI_RSC_COUNT_GPIO_VEN, ACPI_RSC_COUNT_SERIAL_RES, ACPI_RSC_COUNT_SERIAL_VEN, ACPI_RSC_DATA8, ACPI_RSC_EXIT_EQ, ACPI_RSC_EXIT_LE, ACPI_RSC_EXIT_NE, ACPI_RSC_LENGTH, ACPI_RSC_MOVE_GPIO_PIN, ACPI_RSC_MOVE_GPIO_RES, ACPI_RSC_MOVE_SERIAL_RES, ACPI_RSC_MOVE_SERIAL_VEN, ACPI_RSC_MOVE8, ACPI_RSC_MOVE16, ACPI_RSC_MOVE32, ACPI_RSC_MOVE64, ACPI_RSC_SET8, ACPI_RSC_SOURCE, ACPI_RSC_SOURCEX } ACPI_RSCONVERT_OPCODES; /* Resource Conversion sub-opcodes */ Loading @@ -106,6 +118,9 @@ typedef const struct acpi_rsconvert_info { #define ACPI_RS_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_resource,f) #define AML_OFFSET(f) (u8) ACPI_OFFSET (union aml_resource,f) /* * Individual entry for the resource dump tables */ typedef const struct acpi_rsdump_info { u8 opcode; u8 offset; Loading @@ -116,20 +131,25 @@ typedef const struct acpi_rsdump_info { /* Values for the Opcode field above */ #define ACPI_RSD_TITLE 0 #define ACPI_RSD_LITERAL 1 #define ACPI_RSD_STRING 2 #define ACPI_RSD_UINT8 3 #define ACPI_RSD_UINT16 4 #define ACPI_RSD_UINT32 5 #define ACPI_RSD_UINT64 6 #define ACPI_RSD_1BITFLAG 7 #define ACPI_RSD_2BITFLAG 8 #define ACPI_RSD_SHORTLIST 9 #define ACPI_RSD_LONGLIST 10 #define ACPI_RSD_DWORDLIST 11 #define ACPI_RSD_ADDRESS 12 #define ACPI_RSD_SOURCE 13 typedef enum { ACPI_RSD_TITLE = 0, ACPI_RSD_1BITFLAG, ACPI_RSD_2BITFLAG, ACPI_RSD_3BITFLAG, ACPI_RSD_ADDRESS, ACPI_RSD_DWORDLIST, ACPI_RSD_LITERAL, ACPI_RSD_LONGLIST, ACPI_RSD_SHORTLIST, ACPI_RSD_SHORTLISTX, ACPI_RSD_SOURCE, ACPI_RSD_STRING, ACPI_RSD_UINT8, ACPI_RSD_UINT16, ACPI_RSD_UINT32, ACPI_RSD_UINT64, ACPI_RSD_WORDLIST } ACPI_RSDUMP_OPCODES; /* restore default alignment */ Loading @@ -138,13 +158,18 @@ typedef const struct acpi_rsdump_info { /* Resource tables indexed by internal resource type */ extern const u8 acpi_gbl_aml_resource_sizes[]; extern const u8 acpi_gbl_aml_resource_serial_bus_sizes[]; extern struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[]; /* Resource tables indexed by raw AML resource descriptor type */ extern const u8 acpi_gbl_resource_struct_sizes[]; extern const u8 acpi_gbl_resource_struct_serial_bus_sizes[]; extern struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[]; extern struct acpi_rsconvert_info *acpi_gbl_convert_resource_serial_bus_dispatch[]; struct acpi_vendor_walk_info { struct acpi_vendor_uuid *uuid; struct acpi_buffer *buffer; Loading Loading @@ -293,6 +318,11 @@ extern struct acpi_rsconvert_info acpi_rs_convert_address16[]; extern struct acpi_rsconvert_info acpi_rs_convert_ext_irq[]; extern struct acpi_rsconvert_info acpi_rs_convert_address64[]; extern struct acpi_rsconvert_info acpi_rs_convert_ext_address64[]; extern struct acpi_rsconvert_info acpi_rs_convert_gpio[]; extern struct acpi_rsconvert_info acpi_rs_convert_fixed_dma[]; extern struct acpi_rsconvert_info acpi_rs_convert_i2c_serial_bus[]; extern struct acpi_rsconvert_info acpi_rs_convert_spi_serial_bus[]; extern struct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[]; /* These resources require separate get/set tables */ Loading @@ -310,6 +340,7 @@ extern struct acpi_rsconvert_info acpi_rs_set_vendor[]; * rsinfo */ extern struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[]; extern struct acpi_rsdump_info *acpi_gbl_dump_serial_bus_dispatch[]; /* * rsdump Loading @@ -331,6 +362,12 @@ extern struct acpi_rsdump_info acpi_rs_dump_address64[]; extern struct acpi_rsdump_info acpi_rs_dump_ext_address64[]; extern struct acpi_rsdump_info acpi_rs_dump_ext_irq[]; extern struct acpi_rsdump_info acpi_rs_dump_generic_reg[]; extern struct acpi_rsdump_info acpi_rs_dump_gpio[]; extern struct acpi_rsdump_info acpi_rs_dump_fixed_dma[]; extern struct acpi_rsdump_info acpi_rs_dump_common_serial_bus[]; extern struct acpi_rsdump_info acpi_rs_dump_i2c_serial_bus[]; extern struct acpi_rsdump_info acpi_rs_dump_spi_serial_bus[]; extern struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus[]; #endif #endif /* __ACRESRC_H__ */
drivers/acpi/acpica/acutils.h +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ #define _ACUTILS_H extern const u8 acpi_gbl_resource_aml_sizes[]; extern const u8 acpi_gbl_resource_aml_serial_bus_sizes[]; /* Strings used by the disassembler and debugger resource dump routines */ Loading
drivers/acpi/acpica/amlresrc.h +136 −0 Original line number Diff line number Diff line Loading @@ -58,29 +58,48 @@ #define ACPI_RESTAG_TYPESPECIFICATTRIBUTES "_ATT" #define ACPI_RESTAG_BASEADDRESS "_BAS" #define ACPI_RESTAG_BUSMASTER "_BM_" /* Master(1), Slave(0) */ #define ACPI_RESTAG_DEBOUNCETIME "_DBT" #define ACPI_RESTAG_DECODE "_DEC" #define ACPI_RESTAG_DEVICEPOLARITY "_DPL" #define ACPI_RESTAG_DMA "_DMA" #define ACPI_RESTAG_DMATYPE "_TYP" /* Compatible(0), A(1), B(2), F(3) */ #define ACPI_RESTAG_DRIVESTRENGTH "_DRS" #define ACPI_RESTAG_ENDIANNESS "_END" #define ACPI_RESTAG_FLOWCONTROL "_FLC" #define ACPI_RESTAG_GRANULARITY "_GRA" #define ACPI_RESTAG_INTERRUPT "_INT" #define ACPI_RESTAG_INTERRUPTLEVEL "_LL_" /* active_lo(1), active_hi(0) */ #define ACPI_RESTAG_INTERRUPTSHARE "_SHR" /* Shareable(1), no_share(0) */ #define ACPI_RESTAG_INTERRUPTTYPE "_HE_" /* Edge(1), Level(0) */ #define ACPI_RESTAG_IORESTRICTION "_IOR" #define ACPI_RESTAG_LENGTH "_LEN" #define ACPI_RESTAG_LINE "_LIN" #define ACPI_RESTAG_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */ #define ACPI_RESTAG_MEMTYPE "_MEM" /* non_cache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */ #define ACPI_RESTAG_MAXADDR "_MAX" #define ACPI_RESTAG_MINADDR "_MIN" #define ACPI_RESTAG_MAXTYPE "_MAF" #define ACPI_RESTAG_MINTYPE "_MIF" #define ACPI_RESTAG_MODE "_MOD" #define ACPI_RESTAG_PARITY "_PAR" #define ACPI_RESTAG_PHASE "_PHA" #define ACPI_RESTAG_PIN "_PIN" #define ACPI_RESTAG_PINCONFIG "_PPI" #define ACPI_RESTAG_POLARITY "_POL" #define ACPI_RESTAG_REGISTERBITOFFSET "_RBO" #define ACPI_RESTAG_REGISTERBITWIDTH "_RBW" #define ACPI_RESTAG_RANGETYPE "_RNG" #define ACPI_RESTAG_READWRITETYPE "_RW_" /* read_only(0), Writeable (1) */ #define ACPI_RESTAG_LENGTH_RX "_RXL" #define ACPI_RESTAG_LENGTH_TX "_TXL" #define ACPI_RESTAG_SLAVEMODE "_SLV" #define ACPI_RESTAG_SPEED "_SPE" #define ACPI_RESTAG_STOPBITS "_STB" #define ACPI_RESTAG_TRANSLATION "_TRA" #define ACPI_RESTAG_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */ #define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */ #define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8_and16(1), 16(2) */ #define ACPI_RESTAG_VENDORDATA "_VEN" /* Default sizes for "small" resource descriptors */ Loading @@ -90,6 +109,7 @@ #define ASL_RDESC_END_DEPEND_SIZE 0x00 #define ASL_RDESC_IO_SIZE 0x07 #define ASL_RDESC_FIXED_IO_SIZE 0x03 #define ASL_RDESC_FIXED_DMA_SIZE 0x05 #define ASL_RDESC_END_TAG_SIZE 0x01 struct asl_resource_node { Loading Loading @@ -164,6 +184,12 @@ struct aml_resource_end_tag { AML_RESOURCE_SMALL_HEADER_COMMON u8 checksum; }; struct aml_resource_fixed_dma { AML_RESOURCE_SMALL_HEADER_COMMON u16 request_lines; u16 channels; u8 width; }; /* * LARGE descriptors */ Loading Loading @@ -263,6 +289,110 @@ struct aml_resource_generic_register { u64 address; }; /* Common descriptor for gpio_int and gpio_io (ACPI 5.0) */ struct aml_resource_gpio { AML_RESOURCE_LARGE_HEADER_COMMON u8 revision_id; u8 connection_type; u16 flags; u16 int_flags; u8 pin_config; u16 drive_strength; u16 debounce_timeout; u16 pin_table_offset; u8 res_source_index; u16 res_source_offset; u16 vendor_offset; u16 vendor_length; /* * Optional fields follow immediately: * 1) PIN list (Words) * 2) Resource Source String * 3) Vendor Data bytes */ }; #define AML_RESOURCE_GPIO_REVISION 1 /* ACPI 5.0 */ /* Values for connection_type above */ #define AML_RESOURCE_GPIO_TYPE_INT 0 #define AML_RESOURCE_GPIO_TYPE_IO 1 #define AML_RESOURCE_MAX_GPIOTYPE 1 /* Common preamble for all serial descriptors (ACPI 5.0) */ #define AML_RESOURCE_SERIAL_COMMON \ u8 revision_id; \ u8 res_source_index; \ u8 type; \ u8 flags; \ u16 type_specific_flags; \ u8 type_revision_id; \ u16 type_data_length; \ /* Values for the type field above */ #define AML_RESOURCE_I2C_SERIALBUSTYPE 1 #define AML_RESOURCE_SPI_SERIALBUSTYPE 2 #define AML_RESOURCE_UART_SERIALBUSTYPE 3 #define AML_RESOURCE_MAX_SERIALBUSTYPE 3 #define AML_RESOURCE_VENDOR_SERIALBUSTYPE 192 /* Vendor defined is 0xC0-0xFF (NOT SUPPORTED) */ struct aml_resource_common_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON}; struct aml_resource_i2c_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON u32 connection_speed; u16 slave_address; /* * Optional fields follow immediately: * 1) Vendor Data bytes * 2) Resource Source String */ }; #define AML_RESOURCE_I2C_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_I2C_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_I2C_MIN_DATA_LEN 6 struct aml_resource_spi_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON u32 connection_speed; u8 data_bit_length; u8 clock_phase; u8 clock_polarity; u16 device_selection; /* * Optional fields follow immediately: * 1) Vendor Data bytes * 2) Resource Source String */ }; #define AML_RESOURCE_SPI_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_SPI_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_SPI_MIN_DATA_LEN 9 struct aml_resource_uart_serialbus { AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON u32 default_baud_rate; u16 rx_fifo_size; u16 tx_fifo_size; u8 parity; u8 lines_enabled; /* * Optional fields follow immediately: * 1) Vendor Data bytes * 2) Resource Source String */ }; #define AML_RESOURCE_UART_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_UART_TYPE_REVISION 1 /* ACPI 5.0 */ #define AML_RESOURCE_UART_MIN_DATA_LEN 10 /* restore default alignment */ #pragma pack() Loading @@ -284,6 +414,7 @@ union aml_resource { struct aml_resource_end_dependent end_dpf; struct aml_resource_io io; struct aml_resource_fixed_io fixed_io; struct aml_resource_fixed_dma fixed_dma; struct aml_resource_vendor_small vendor_small; struct aml_resource_end_tag end_tag; Loading @@ -299,6 +430,11 @@ union aml_resource { struct aml_resource_address64 address64; struct aml_resource_extended_address64 ext_address64; struct aml_resource_extended_irq extended_irq; struct aml_resource_gpio gpio; struct aml_resource_i2c_serialbus i2c_serial_bus; struct aml_resource_spi_serialbus spi_serial_bus; struct aml_resource_uart_serialbus uart_serial_bus; struct aml_resource_common_serialbus common_serial_bus; /* Utility overlays */ Loading