Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
3e407c16
Commit
3e407c16
authored
Nov 29, 2018
by
Rafael J. Wysocki
Browse files
Options
Browse Files
Download
Plain Diff
Merge back earlier ACPICA changes for 4.21.
parents
ae6b3e54
08728658
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
133 additions
and
55 deletions
+133
-55
drivers/acpi/acpica/acnamesp.h
drivers/acpi/acpica/acnamesp.h
+1
-0
drivers/acpi/acpica/dbxface.c
drivers/acpi/acpica/dbxface.c
+74
-44
drivers/acpi/acpica/dswload2.c
drivers/acpi/acpica/dswload2.c
+8
-0
drivers/acpi/acpica/nsaccess.c
drivers/acpi/acpica/nsaccess.c
+21
-2
drivers/acpi/acpica/psloop.c
drivers/acpi/acpica/psloop.c
+3
-5
drivers/acpi/acpica/psobject.c
drivers/acpi/acpica/psobject.c
+1
-2
include/acpi/acpixf.h
include/acpi/acpixf.h
+1
-1
include/acpi/actbl3.h
include/acpi/actbl3.h
+23
-0
tools/power/acpi/tools/acpidump/apmain.c
tools/power/acpi/tools/acpidump/apmain.c
+1
-1
No files found.
drivers/acpi/acpica/acnamesp.h
View file @
3e407c16
...
...
@@ -34,6 +34,7 @@
#define ACPI_NS_TEMPORARY 0x0040
#define ACPI_NS_OVERRIDE_IF_FOUND 0x0080
#define ACPI_NS_EARLY_INIT 0x0100
#define ACPI_NS_PREFIX_MUST_EXIST 0x0200
/* Flags for acpi_ns_walk_namespace */
...
...
drivers/acpi/acpica/dbxface.c
View file @
3e407c16
...
...
@@ -24,6 +24,13 @@ acpi_db_start_command(struct acpi_walk_state *walk_state,
void
acpi_db_method_end
(
struct
acpi_walk_state
*
walk_state
);
#endif
#ifdef ACPI_DISASSEMBLER
static
union
acpi_parse_object
*
acpi_db_get_display_op
(
struct
acpi_walk_state
*
walk_state
,
union
acpi_parse_object
*
op
);
#endif
/*******************************************************************************
*
* FUNCTION: acpi_db_start_command
...
...
@@ -113,6 +120,70 @@ void acpi_db_signal_break_point(struct acpi_walk_state *walk_state)
acpi_os_printf
(
"**break** Executed AML BreakPoint opcode
\n
"
);
}
#ifdef ACPI_DISASSEMBLER
/*******************************************************************************
*
* FUNCTION: acpi_db_get_display_op
*
* PARAMETERS: walk_state - Current walk
* op - Current executing op (from aml interpreter)
*
* RETURN: Opcode to display
*
* DESCRIPTION: Find the opcode to display during single stepping
*
******************************************************************************/
static
union
acpi_parse_object
*
acpi_db_get_display_op
(
struct
acpi_walk_state
*
walk_state
,
union
acpi_parse_object
*
op
)
{
union
acpi_parse_object
*
display_op
;
union
acpi_parse_object
*
parent_op
;
display_op
=
op
;
parent_op
=
op
->
common
.
parent
;
if
(
parent_op
)
{
if
((
walk_state
->
control_state
)
&&
(
walk_state
->
control_state
->
common
.
state
==
ACPI_CONTROL_PREDICATE_EXECUTING
))
{
/*
* We are executing the predicate of an IF or WHILE statement
* Search upwards for the containing IF or WHILE so that the
* entire predicate can be displayed.
*/
while
(
parent_op
)
{
if
((
parent_op
->
common
.
aml_opcode
==
AML_IF_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_WHILE_OP
))
{
display_op
=
parent_op
;
break
;
}
parent_op
=
parent_op
->
common
.
parent
;
}
}
else
{
while
(
parent_op
)
{
if
((
parent_op
->
common
.
aml_opcode
==
AML_IF_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_ELSE_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_SCOPE_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_METHOD_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_WHILE_OP
))
{
break
;
}
display_op
=
parent_op
;
parent_op
=
parent_op
->
common
.
parent
;
}
}
}
return
display_op
;
}
#endif
/*******************************************************************************
*
* FUNCTION: acpi_db_single_step
...
...
@@ -134,8 +205,6 @@ acpi_db_single_step(struct acpi_walk_state *walk_state,
union
acpi_parse_object
*
next
;
acpi_status
status
=
AE_OK
;
u32
original_debug_level
;
union
acpi_parse_object
*
display_op
;
union
acpi_parse_object
*
parent_op
;
u32
aml_offset
;
ACPI_FUNCTION_ENTRY
();
...
...
@@ -222,51 +291,12 @@ acpi_db_single_step(struct acpi_walk_state *walk_state,
next
=
op
->
common
.
next
;
op
->
common
.
next
=
NULL
;
display_op
=
op
;
parent_op
=
op
->
common
.
parent
;
if
(
parent_op
)
{
if
((
walk_state
->
control_state
)
&&
(
walk_state
->
control_state
->
common
.
state
==
ACPI_CONTROL_PREDICATE_EXECUTING
))
{
/*
* We are executing the predicate of an IF or WHILE statement
* Search upwards for the containing IF or WHILE so that the
* entire predicate can be displayed.
*/
while
(
parent_op
)
{
if
((
parent_op
->
common
.
aml_opcode
==
AML_IF_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_WHILE_OP
))
{
display_op
=
parent_op
;
break
;
}
parent_op
=
parent_op
->
common
.
parent
;
}
}
else
{
while
(
parent_op
)
{
if
((
parent_op
->
common
.
aml_opcode
==
AML_IF_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_ELSE_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_SCOPE_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_METHOD_OP
)
||
(
parent_op
->
common
.
aml_opcode
==
AML_WHILE_OP
))
{
break
;
}
display_op
=
parent_op
;
parent_op
=
parent_op
->
common
.
parent
;
}
}
}
/* Now we can disassemble and display it */
#ifdef ACPI_DISASSEMBLER
acpi_dm_disassemble
(
walk_state
,
display_op
,
ACPI_UINT32_MAX
);
acpi_dm_disassemble
(
walk_state
,
acpi_db_get_display_op
(
walk_state
,
op
),
ACPI_UINT32_MAX
);
#else
/*
* The AML Disassembler is not configured - at least we can
...
...
drivers/acpi/acpica/dswload2.c
View file @
3e407c16
...
...
@@ -296,6 +296,14 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
}
#endif
/*
* For name creation opcodes, the full namepath prefix must
* exist, except for the final (new) nameseg.
*/
if
(
walk_state
->
op_info
->
flags
&
AML_NAMED
)
{
flags
|=
ACPI_NS_PREFIX_MUST_EXIST
;
}
/* Add new entry or lookup existing entry */
status
=
...
...
drivers/acpi/acpica/nsaccess.c
View file @
3e407c16
...
...
@@ -267,6 +267,7 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
acpi_object_type
this_search_type
;
u32
search_parent_flag
=
ACPI_NS_SEARCH_PARENT
;
u32
local_flags
;
acpi_interpreter_mode
local_interpreter_mode
;
ACPI_FUNCTION_TRACE
(
ns_lookup
);
...
...
@@ -506,6 +507,7 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
*/
this_search_type
=
ACPI_TYPE_ANY
;
current_node
=
this_node
;
while
(
num_segments
&&
current_node
)
{
num_segments
--
;
if
(
!
num_segments
)
{
...
...
@@ -536,6 +538,16 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
}
}
/* Handle opcodes that create a new name_seg via a full name_path */
local_interpreter_mode
=
interpreter_mode
;
if
((
flags
&
ACPI_NS_PREFIX_MUST_EXIST
)
&&
(
num_segments
>
0
))
{
/* Every element of the path must exist (except for the final name_seg) */
local_interpreter_mode
=
ACPI_IMODE_EXECUTE
;
}
/* Extract one ACPI name from the front of the pathname */
ACPI_MOVE_32_TO_32
(
&
simple_name
,
path
);
...
...
@@ -544,12 +556,19 @@ acpi_ns_lookup(union acpi_generic_state *scope_info,
status
=
acpi_ns_search_and_enter
(
simple_name
,
walk_state
,
current_node
,
interpreter_mode
,
current_node
,
local_interpreter_mode
,
this_search_type
,
local_flags
,
&
this_node
);
if
(
ACPI_FAILURE
(
status
))
{
if
(
status
==
AE_NOT_FOUND
)
{
#if !defined ACPI_ASL_COMPILER
/* Note: iASL reports this error by itself, not needed here */
if
(
flags
&
ACPI_NS_PREFIX_MUST_EXIST
)
{
acpi_os_printf
(
ACPI_MSG_BIOS_ERROR
"Object does not exist: %4.4s
\n
"
,
&
simple_name
);
}
#endif
/* Name not found in ACPI namespace */
ACPI_DEBUG_PRINT
((
ACPI_DB_NAMES
,
...
...
drivers/acpi/acpica/psloop.c
View file @
3e407c16
...
...
@@ -508,7 +508,8 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
*/
if
((
walk_state
->
parse_flags
&
ACPI_PARSE_MODULE_LEVEL
)
&&
status
==
AE_ALREADY_EXISTS
)
{
&&
((
status
==
AE_ALREADY_EXISTS
)
||
(
status
==
AE_NOT_FOUND
)))
{
status
=
AE_OK
;
}
if
(
status
==
AE_CTRL_PARSE_CONTINUE
)
{
...
...
@@ -537,10 +538,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
* the scope op because the parse failure indicates that
* the device may not exist.
*/
ACPI_ERROR
((
AE_INFO
,
"Skip parsing opcode %s"
,
acpi_ps_get_opcode_name
(
walk_state
->
opcode
)));
ACPI_INFO
((
"Skipping parse of AML opcode: %s (0x%4.4X)"
,
acpi_ps_get_opcode_name
(
walk_state
->
opcode
),
walk_state
->
opcode
));
/*
* Determine the opcode length before skipping the opcode.
...
...
drivers/acpi/acpica/psobject.c
View file @
3e407c16
...
...
@@ -600,8 +600,7 @@ acpi_ps_complete_op(struct acpi_walk_state *walk_state,
* because there could be correct AML beyond the parts that caused
* the runtime error.
*/
ACPI_ERROR
((
AE_INFO
,
"Ignore error and continue table load"
));
ACPI_INFO
((
"Ignoring error and continuing table load"
));
return_ACPI_STATUS
(
AE_OK
);
}
return_ACPI_STATUS
(
status
);
...
...
include/acpi/acpixf.h
View file @
3e407c16
...
...
@@ -12,7 +12,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x201810
03
#define ACPI_CA_VERSION 0x201810
31
#include <acpi/acconfig.h>
#include <acpi/actypes.h>
...
...
include/acpi/actbl3.h
View file @
3e407c16
...
...
@@ -365,6 +365,29 @@ struct acpi_table_tcpa_server {
*
******************************************************************************/
/* Revision 3 */
struct
acpi_table_tpm23
{
struct
acpi_table_header
header
;
/* Common ACPI table header */
u32
reserved
;
u64
control_address
;
u32
start_method
;
};
/* Value for start_method above */
#define ACPI_TPM23_ACPI_START_METHOD 2
/*
* Optional trailer for revision 3. If start method is 2, there is a 4 byte
* reserved area of all zeros.
*/
struct
acpi_tmp23_trailer
{
u32
reserved
;
};
/* Revision 4 */
struct
acpi_table_tpm2
{
struct
acpi_table_header
header
;
/* Common ACPI table header */
u16
platform_class
;
...
...
tools/power/acpi/tools/acpidump/apmain.c
View file @
3e407c16
...
...
@@ -106,7 +106,7 @@ static int ap_insert_action(char *argument, u32 to_be_done)
current_action
++
;
if
(
current_action
>
AP_MAX_ACTIONS
)
{
fprintf
(
stderr
,
"Too many table options (max %
u
)
\n
"
,
fprintf
(
stderr
,
"Too many table options (max %
d
)
\n
"
,
AP_MAX_ACTIONS
);
return
(
-
1
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment