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

Commit df2def49 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull more ACPI updates from Rafael Wysocki:
 "These update the ACPICA code in the kernel to the most recent upstream
  revision (which includes a regression fix and other improvements),
  make ACPICA clear the status of all ACPI events when entering sleep
  states (to restore the previous behavior) and update the ACPI
  operation region driver for the CrystalCove PMIC.

  Specifics:

   - Update the ACPICA code in the kernel to upstream revision 20180810
     including:
      * Fix for AML parser regression causing it to mishandle opcodes
        that open a scope upon parse failures (Erik Schmauss)
      * Fix for a reference counting issue on large systems (Erik
        Schmauss)
      * Fix to discard values coming from register reads that have
        failed (Erik Schmauss)
      * Two acpiexec fixes (Bob Moore, Erik Schmauss)
      * Debugger cleanup (Bob Moore)
      * Cleanup of duplicate table error message (Bob Moore)
      * Cleanup of hex detection in the utilities (Erik Schmauss)

   - Make ACPICA clear the status of all ACPI events when entering sleep
     states again to avoid functional regressions (Rafael Wysocki)

   - Update the ACPI operation region driver for the CrystalCove PMIC to
     cover all of the known operation region fields (Hans de Goede)"

* tag 'acpi-4.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI / PMIC: CrystalCove: Extend PMOP support to support all possible fields
  ACPICA: Clear status of all events when entering sleep states
  ACPICA: Update version to 20180810
  ACPICA: acpiexec: fix a small memory leak regression
  ACPICA: Reference Counts: increase max to 0x4000 for large servers
  ACPICA: Reference count: add additional debugging details
  ACPICA: acpi_exec: fixing -fi option
  ACPICA: Debugger: Cleanup interface to the AML disassembler
  ACPICA: AML Parser: skip opcodes that open a scope upon parse failure
  ACPICA: Utilities: split hex detection into smaller functions
  ACPICA: Update an error message for a duplicate table
  ACPICA: ACPICA: add status check for acpi_hw_read before assigning return value
  ACPICA: AML Parser: ignore all exceptions resulting from incorrect AML during table load
parents dfec4a84 d1f3ab5b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@ struct acpi_namespace_node {
#define ANOBJ_SUBTREE_HAS_INI           0x10	/* Used to optimize device initialization */
#define ANOBJ_EVALUATED                 0x20	/* Set on first evaluation of node */
#define ANOBJ_ALLOCATED_BUFFER          0x40	/* Method AML buffer is dynamic (install_method) */
#define ANOBJ_NODE_EARLY_INIT           0x80	/* acpi_exec only: Node was create via init file (-fi) */

#define ANOBJ_IS_EXTERNAL               0x08	/* iASL only: This object created via External() */
#define ANOBJ_METHOD_NO_RETVAL          0x10	/* iASL only: Method has no return value */
+9 −8
Original line number Diff line number Diff line
@@ -25,14 +25,15 @@
/* Flags for acpi_ns_lookup, acpi_ns_search_and_enter */

#define ACPI_NS_NO_UPSEARCH         0
#define ACPI_NS_SEARCH_PARENT       0x01
#define ACPI_NS_DONT_OPEN_SCOPE     0x02
#define ACPI_NS_NO_PEER_SEARCH      0x04
#define ACPI_NS_ERROR_IF_FOUND      0x08
#define ACPI_NS_PREFIX_IS_SCOPE     0x10
#define ACPI_NS_EXTERNAL            0x20
#define ACPI_NS_TEMPORARY           0x40
#define ACPI_NS_OVERRIDE_IF_FOUND   0x80
#define ACPI_NS_SEARCH_PARENT       0x0001
#define ACPI_NS_DONT_OPEN_SCOPE     0x0002
#define ACPI_NS_NO_PEER_SEARCH      0x0004
#define ACPI_NS_ERROR_IF_FOUND      0x0008
#define ACPI_NS_PREFIX_IS_SCOPE     0x0010
#define ACPI_NS_EXTERNAL            0x0020
#define ACPI_NS_TEMPORARY           0x0040
#define ACPI_NS_OVERRIDE_IF_FOUND   0x0080
#define ACPI_NS_EARLY_INIT          0x0100

/* Flags for acpi_ns_walk_namespace */

+2 −0
Original line number Diff line number Diff line
@@ -180,6 +180,8 @@ char acpi_ut_remove_leading_zeros(char **string);

u8 acpi_ut_detect_hex_prefix(char **string);

void acpi_ut_remove_hex_prefix(char **string);

u8 acpi_ut_detect_octal_prefix(char **string);

/*
+10 −0
Original line number Diff line number Diff line
@@ -763,7 +763,12 @@ acpi_db_command_dispatch(char *input_buffer,
	case CMD_DISASSEMBLE:
	case CMD_DISASM:

#ifdef ACPI_DISASSEMBLER
		(void)acpi_db_disassemble_method(acpi_gbl_db_args[1]);
#else
		acpi_os_printf
		    ("The AML Disassembler is not configured/present\n");
#endif
		break;

	case CMD_DUMP:
@@ -872,7 +877,12 @@ acpi_db_command_dispatch(char *input_buffer,

	case CMD_LIST:

#ifdef ACPI_DISASSEMBLER
		acpi_db_disassemble_aml(acpi_gbl_db_args[1], op);
#else
		acpi_os_printf
		    ("The AML Disassembler is not configured/present\n");
#endif
		break;

	case CMD_LOCKS:
+3 −5
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ void acpi_db_set_method_data(char *type_arg, char *index_arg, char *value_arg)
	acpi_ut_remove_reference(obj_desc);
}

#ifdef ACPI_DISASSEMBLER
/*******************************************************************************
 *
 * FUNCTION:    acpi_db_disassemble_aml
@@ -242,9 +243,8 @@ void acpi_db_disassemble_aml(char *statements, union acpi_parse_object *op)
	if (statements) {
		num_statements = strtoul(statements, NULL, 0);
	}
#ifdef ACPI_DISASSEMBLER

	acpi_dm_disassemble(NULL, op, num_statements);
#endif
}

/*******************************************************************************
@@ -317,8 +317,6 @@ acpi_status acpi_db_disassemble_method(char *name)
	walk_state->parse_flags |= ACPI_PARSE_DISASSEMBLE;

	status = acpi_ps_parse_aml(walk_state);

#ifdef ACPI_DISASSEMBLER
	(void)acpi_dm_parse_deferred_ops(op);

	/* Now we can disassemble the method */
@@ -326,7 +324,6 @@ acpi_status acpi_db_disassemble_method(char *name)
	acpi_gbl_dm_opt_verbose = FALSE;
	acpi_dm_disassemble(NULL, op, 0);
	acpi_gbl_dm_opt_verbose = TRUE;
#endif

	acpi_ps_delete_parse_tree(op);

@@ -337,6 +334,7 @@ acpi_status acpi_db_disassemble_method(char *name)
	acpi_ut_release_owner_id(&obj_desc->method.owner_id);
	return (AE_OK);
}
#endif

/*******************************************************************************
 *
Loading