Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f5abd40 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ACPICA updates from Rafael Wysocki:
 "This updates the kernel's ACPICA code to upstream revision 20150410
  and adds a fix for a GPE handling regression introduced during the
  3.19 cycle on top of that.

  Included are two stable-candidate bug fixes (one of them fixing a 3.16
  regression), multiple other fixes and a bunch of cleanups.

  Specifics:

   - Fix for a GPE handling regression on Dell Latitude D600 that caused
     GPE signaling to stop working on that machine, which appears to be
     due to a hardware glitch, but it used to work and it can be made
     work again in a relativly straightforward way (Rafael J Wysocki).

   - Fix for a mutex unlock regression related to the handling of ACPI
     tables introduced during the 3.16 development cycle (Octavian
     Purdila).

   - _REV modification to always return 2 which has been done by all
     versions of Windows since NT and the firmware people started to use
     it to distinguish between OSes in their AML and do some silly and
     wrong things on that basis (Bob Moore).

   - Fixes and cleanups related to the acpi_physicall_address data type
     including one stable-candidate fix for an issue occasionally
     occuring on 64-bit machines running 32-bit kernels where using
     offsets provided by the firmware may lead to address overflows (Lv
     Zheng).

   - External() opcode support infrastructure needed for recompiling
     disassembled ACPI tables in some cases including interpreter
     modification to ignore that opcode (Bob Moore).

   - Support for the "Windows 2015" string in _OSI (Bob Moore).

   - GPE debug interface change to return values read from hardware
     registers (Lv Zheng).

   - Removal of the __DATE__ macro usage in tools (Rasmus Villemoes).

   - Assorted minor fixes and cleanups (Lv Zheng, Rickard Strandqvist,
     Bob Moore)"

* tag 'acpica-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
  ACPICA: Store GPE register enable masks upfront
  ACPICA: Update version to 20150410.
  ACPICA: Fix a couple issues with the local printf module.
  ACPICA: Disassembler: Some cleanup of the table dump module.
  ACPICA: iASL: Add support for MSDM ACPI table.
  ACPICA: Update for SLIC ACPI table.
  ACPICA: Add "//" before ascii output of buffers.
  ACPICA: Remove unused internal AML opcode.
  ACPICA: Permanently set _REV to the value '2'.
  ACPICA: Add "Windows 2015" string to _OSI support.
  ACPICA: Add infrastructure for External() opcode.
  ACPICA: iASL: Enhancement for constant folding.
  ACPICA: iASL/Disassembler: Add option to assume table contains valid AML.
  ACPICA: Update AML Debugger global variables.
  ACPICA: Update Resource descriptor dump module.
  ACPICA: Fix a sscanf format string.
  ACPICA: Casting changes around acpi_physical_address/acpi_size.
  ACPICA: Resources: Correct conditional compilation definitions.
  ACPICA: Utilities: Correct conditional compilation definitions.
  ACPICA: Tables: Move an iasl specific table function to iasl source file.
  ...
parents 54e514b9 0ee0d349
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -64,15 +64,15 @@
/* Macros for signons and file headers */
/* Macros for signons and file headers */


#define ACPI_COMMON_SIGNON(utility_name) \
#define ACPI_COMMON_SIGNON(utility_name) \
	"\n%s\n%s version %8.8X%s [%s]\n%s\n\n", \
	"\n%s\n%s version %8.8X%s\n%s\n\n", \
	ACPICA_NAME, \
	ACPICA_NAME, \
	utility_name, ((u32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \
	utility_name, ((u32) ACPI_CA_VERSION), ACPI_WIDTH, \
	ACPICA_COPYRIGHT
	ACPICA_COPYRIGHT


#define ACPI_COMMON_HEADER(utility_name, prefix) \
#define ACPI_COMMON_HEADER(utility_name, prefix) \
	"%s%s\n%s%s version %8.8X%s [%s]\n%s%s\n%s\n", \
	"%s%s\n%s%s version %8.8X%s\n%s%s\n%s\n", \
	prefix, ACPICA_NAME, \
	prefix, ACPICA_NAME, \
	prefix, utility_name, ((u32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \
	prefix, utility_name, ((u32) ACPI_CA_VERSION), ACPI_WIDTH, \
	prefix, ACPICA_COPYRIGHT, \
	prefix, ACPICA_COPYRIGHT, \
	prefix
	prefix


+2 −3
Original line number Original line Diff line number Diff line
@@ -306,6 +306,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_db_output_flags, ACPI_DB_CONSOLE_OUTPUT);
ACPI_INIT_GLOBAL(u8, acpi_gbl_no_resource_disassembly, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_no_resource_disassembly, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_ignore_noop_operator, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_ignore_noop_operator, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_cstyle_disassembly, TRUE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_cstyle_disassembly, TRUE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_force_aml_disassembly, FALSE);


ACPI_GLOBAL(u8, acpi_gbl_db_opt_disasm);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_disasm);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_verbose);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_verbose);
@@ -321,9 +322,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_db_terminate_threads, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_abort_method, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_abort_method, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_method_executing, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_method_executing, FALSE);


ACPI_GLOBAL(u8, acpi_gbl_db_opt_tables);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_no_ini_methods);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_stats);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_ini_methods);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_no_region_support);
ACPI_GLOBAL(u8, acpi_gbl_db_opt_no_region_support);
ACPI_GLOBAL(u8, acpi_gbl_db_output_to_file);
ACPI_GLOBAL(u8, acpi_gbl_db_output_to_file);
ACPI_GLOBAL(char *, acpi_gbl_db_buffer);
ACPI_GLOBAL(char *, acpi_gbl_db_buffer);
+1 −1
Original line number Original line Diff line number Diff line
@@ -53,7 +53,7 @@ typedef u32 acpi_mutex_handle;


/* Total number of aml opcodes defined */
/* Total number of aml opcodes defined */


#define AML_NUM_OPCODES                 0x81
#define AML_NUM_OPCODES                 0x82


/* Forward declarations */
/* Forward declarations */


+1 −12
Original line number Original line Diff line number Diff line
@@ -63,23 +63,12 @@
#define ACPI_SET64(ptr, val)            (*ACPI_CAST64 (ptr) = (u64) (val))
#define ACPI_SET64(ptr, val)            (*ACPI_CAST64 (ptr) = (u64) (val))


/*
/*
 * printf() format helpers. These macros are workarounds for the difficulties
 * printf() format helper. This macros is a workaround for the difficulties
 * with emitting 64-bit integers and 64-bit pointers with the same code
 * with emitting 64-bit integers and 64-bit pointers with the same code
 * for both 32-bit and 64-bit hosts.
 * for both 32-bit and 64-bit hosts.
 */
 */
#define ACPI_FORMAT_UINT64(i)           ACPI_HIDWORD(i), ACPI_LODWORD(i)
#define ACPI_FORMAT_UINT64(i)           ACPI_HIDWORD(i), ACPI_LODWORD(i)


#if ACPI_MACHINE_WIDTH == 64
#define ACPI_FORMAT_NATIVE_UINT(i)      ACPI_FORMAT_UINT64(i)
#define ACPI_FORMAT_TO_UINT(i)          ACPI_FORMAT_UINT64(i)
#define ACPI_PRINTF_UINT                 "0x%8.8X%8.8X"

#else
#define ACPI_FORMAT_NATIVE_UINT(i)      0, (u32) (i)
#define ACPI_FORMAT_TO_UINT(i)          (u32) (i)
#define ACPI_PRINTF_UINT                 "0x%8.8X"
#endif

/*
/*
 * Macros for moving data around to/from buffers that are possibly unaligned.
 * Macros for moving data around to/from buffers that are possibly unaligned.
 * If the hardware supports the transfer of unaligned data, just do the store.
 * If the hardware supports the transfer of unaligned data, just do the store.
+2 −0
Original line number Original line Diff line number Diff line
@@ -111,6 +111,7 @@
#define ARGP_DWORD_OP                   ARGP_LIST1 (ARGP_DWORDDATA)
#define ARGP_DWORD_OP                   ARGP_LIST1 (ARGP_DWORDDATA)
#define ARGP_ELSE_OP                    ARGP_LIST2 (ARGP_PKGLENGTH,  ARGP_TERMLIST)
#define ARGP_ELSE_OP                    ARGP_LIST2 (ARGP_PKGLENGTH,  ARGP_TERMLIST)
#define ARGP_EVENT_OP                   ARGP_LIST1 (ARGP_NAME)
#define ARGP_EVENT_OP                   ARGP_LIST1 (ARGP_NAME)
#define ARGP_EXTERNAL_OP                ARGP_LIST3 (ARGP_NAMESTRING, ARGP_BYTEDATA,      ARGP_BYTEDATA)
#define ARGP_FATAL_OP                   ARGP_LIST3 (ARGP_BYTEDATA,   ARGP_DWORDDATA,     ARGP_TERMARG)
#define ARGP_FATAL_OP                   ARGP_LIST3 (ARGP_BYTEDATA,   ARGP_DWORDDATA,     ARGP_TERMARG)
#define ARGP_FIELD_OP                   ARGP_LIST4 (ARGP_PKGLENGTH,  ARGP_NAMESTRING,    ARGP_BYTEDATA,  ARGP_FIELDLIST)
#define ARGP_FIELD_OP                   ARGP_LIST4 (ARGP_PKGLENGTH,  ARGP_NAMESTRING,    ARGP_BYTEDATA,  ARGP_FIELDLIST)
#define ARGP_FIND_SET_LEFT_BIT_OP       ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
#define ARGP_FIND_SET_LEFT_BIT_OP       ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
@@ -243,6 +244,7 @@
#define ARGI_DWORD_OP                   ARGI_INVALID_OPCODE
#define ARGI_DWORD_OP                   ARGI_INVALID_OPCODE
#define ARGI_ELSE_OP                    ARGI_INVALID_OPCODE
#define ARGI_ELSE_OP                    ARGI_INVALID_OPCODE
#define ARGI_EVENT_OP                   ARGI_INVALID_OPCODE
#define ARGI_EVENT_OP                   ARGI_INVALID_OPCODE
#define ARGI_EXTERNAL_OP                ARGI_LIST3 (ARGI_STRING,     ARGI_INTEGER,       ARGI_INTEGER)
#define ARGI_FATAL_OP                   ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_INTEGER)
#define ARGI_FATAL_OP                   ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_INTEGER)
#define ARGI_FIELD_OP                   ARGI_INVALID_OPCODE
#define ARGI_FIELD_OP                   ARGI_INVALID_OPCODE
#define ARGI_FIND_SET_LEFT_BIT_OP       ARGI_LIST2 (ARGI_INTEGER,    ARGI_TARGETREF)
#define ARGI_FIND_SET_LEFT_BIT_OP       ARGI_LIST2 (ARGI_INTEGER,    ARGI_TARGETREF)
Loading