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
1b982baf
Commit
1b982baf
authored
May 18, 2016
by
Dan Williams
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-4.7/acpi6.1' into libnvdimm-for-next
parents
1f716d05
6ca72085
Changes
61
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
61 changed files
with
1038 additions
and
725 deletions
+1038
-725
drivers/acpi/acpica/Makefile
drivers/acpi/acpica/Makefile
+1
-0
drivers/acpi/acpica/acdebug.h
drivers/acpi/acpica/acdebug.h
+2
-2
drivers/acpi/acpica/acevents.h
drivers/acpi/acpica/acevents.h
+0
-2
drivers/acpi/acpica/acglobal.h
drivers/acpi/acpica/acglobal.h
+11
-0
drivers/acpi/acpica/acinterp.h
drivers/acpi/acpica/acinterp.h
+1
-1
drivers/acpi/acpica/aclocal.h
drivers/acpi/acpica/aclocal.h
+1
-0
drivers/acpi/acpica/acmacros.h
drivers/acpi/acpica/acmacros.h
+6
-2
drivers/acpi/acpica/acnamesp.h
drivers/acpi/acpica/acnamesp.h
+3
-2
drivers/acpi/acpica/acparser.h
drivers/acpi/acpica/acparser.h
+1
-1
drivers/acpi/acpica/acpredef.h
drivers/acpi/acpica/acpredef.h
+9
-0
drivers/acpi/acpica/acresrc.h
drivers/acpi/acpica/acresrc.h
+2
-2
drivers/acpi/acpica/acstruct.h
drivers/acpi/acpica/acstruct.h
+1
-1
drivers/acpi/acpica/acutils.h
drivers/acpi/acpica/acutils.h
+16
-7
drivers/acpi/acpica/dbconvert.c
drivers/acpi/acpica/dbconvert.c
+3
-1
drivers/acpi/acpica/dbinput.c
drivers/acpi/acpica/dbinput.c
+7
-6
drivers/acpi/acpica/dbutils.c
drivers/acpi/acpica/dbutils.c
+4
-5
drivers/acpi/acpica/evregion.c
drivers/acpi/acpica/evregion.c
+26
-48
drivers/acpi/acpica/evrgnini.c
drivers/acpi/acpica/evrgnini.c
+0
-1
drivers/acpi/acpica/exconcat.c
drivers/acpi/acpica/exconcat.c
+439
-0
drivers/acpi/acpica/exconfig.c
drivers/acpi/acpica/exconfig.c
+3
-1
drivers/acpi/acpica/exconvrt.c
drivers/acpi/acpica/exconvrt.c
+3
-1
drivers/acpi/acpica/exdump.c
drivers/acpi/acpica/exdump.c
+7
-8
drivers/acpi/acpica/exmisc.c
drivers/acpi/acpica/exmisc.c
+0
-290
drivers/acpi/acpica/exutils.c
drivers/acpi/acpica/exutils.c
+6
-6
drivers/acpi/acpica/hwregs.c
drivers/acpi/acpica/hwregs.c
+15
-10
drivers/acpi/acpica/hwxface.c
drivers/acpi/acpica/hwxface.c
+1
-3
drivers/acpi/acpica/nsaccess.c
drivers/acpi/acpica/nsaccess.c
+4
-3
drivers/acpi/acpica/nsconvert.c
drivers/acpi/acpica/nsconvert.c
+2
-1
drivers/acpi/acpica/nsdump.c
drivers/acpi/acpica/nsdump.c
+7
-2
drivers/acpi/acpica/nsinit.c
drivers/acpi/acpica/nsinit.c
+54
-22
drivers/acpi/acpica/nsload.c
drivers/acpi/acpica/nsload.c
+1
-1
drivers/acpi/acpica/nsprepkg.c
drivers/acpi/acpica/nsprepkg.c
+6
-0
drivers/acpi/acpica/psopinfo.c
drivers/acpi/acpica/psopinfo.c
+1
-1
drivers/acpi/acpica/rsdump.c
drivers/acpi/acpica/rsdump.c
+21
-29
drivers/acpi/acpica/rsutils.c
drivers/acpi/acpica/rsutils.c
+1
-1
drivers/acpi/acpica/tbfadt.c
drivers/acpi/acpica/tbfadt.c
+15
-11
drivers/acpi/acpica/tbxfload.c
drivers/acpi/acpica/tbxfload.c
+1
-1
drivers/acpi/acpica/utdebug.c
drivers/acpi/acpica/utdebug.c
+23
-24
drivers/acpi/acpica/utdecode.c
drivers/acpi/acpica/utdecode.c
+17
-13
drivers/acpi/acpica/uteval.c
drivers/acpi/acpica/uteval.c
+2
-2
drivers/acpi/acpica/utglobal.c
drivers/acpi/acpica/utglobal.c
+48
-0
drivers/acpi/acpica/utmisc.c
drivers/acpi/acpica/utmisc.c
+1
-1
drivers/acpi/acpica/utnonansi.c
drivers/acpi/acpica/utnonansi.c
+37
-30
drivers/acpi/acpica/utprint.c
drivers/acpi/acpica/utprint.c
+0
-5
drivers/acpi/acpica/uttrack.c
drivers/acpi/acpica/uttrack.c
+1
-1
drivers/acpi/nfit.c
drivers/acpi/nfit.c
+58
-7
drivers/acpi/nfit.h
drivers/acpi/nfit.h
+7
-5
drivers/acpi/osl.c
drivers/acpi/osl.c
+1
-1
include/acpi/acpiosxf.h
include/acpi/acpiosxf.h
+1
-1
include/acpi/acpixf.h
include/acpi/acpixf.h
+1
-1
include/acpi/actbl.h
include/acpi/actbl.h
+3
-1
include/acpi/actbl1.h
include/acpi/actbl1.h
+67
-7
include/acpi/actbl2.h
include/acpi/actbl2.h
+33
-6
include/acpi/actbl3.h
include/acpi/actbl3.h
+24
-19
include/acpi/actypes.h
include/acpi/actypes.h
+4
-3
include/acpi/platform/acenv.h
include/acpi/platform/acenv.h
+24
-20
include/acpi/platform/acmsvcex.h
include/acpi/platform/acmsvcex.h
+0
-54
include/acpi/platform/acwinex.h
include/acpi/platform/acwinex.h
+0
-49
tools/power/acpi/os_specific/service_layers/osunixmap.c
tools/power/acpi/os_specific/service_layers/osunixmap.c
+1
-1
tools/power/acpi/tools/acpidump/apdump.c
tools/power/acpi/tools/acpidump/apdump.c
+2
-1
tools/power/acpi/tools/acpidump/apmain.c
tools/power/acpi/tools/acpidump/apmain.c
+2
-1
No files found.
drivers/acpi/acpica/Makefile
View file @
1b982baf
...
...
@@ -43,6 +43,7 @@ acpi-y += \
evxfregn.o
acpi-y
+=
\
exconcat.o
\
exconfig.o
\
exconvrt.o
\
excreate.o
\
...
...
drivers/acpi/acpica/acdebug.h
View file @
1b982baf
...
...
@@ -53,7 +53,7 @@
#define ACPI_DEBUG_BUFFER_SIZE 0x4000
/* 16K buffer for return objects */
struct
acpi_db_command_info
{
c
har
*
name
;
/* Command Name */
c
onst
char
*
name
;
/* Command Name */
u8
min_args
;
/* Minimum arguments required */
};
...
...
@@ -64,7 +64,7 @@ struct acpi_db_command_help {
};
struct
acpi_db_argument_info
{
c
har
*
name
;
/* Argument Name */
c
onst
char
*
name
;
/* Argument Name */
};
struct
acpi_db_execute_walk
{
...
...
drivers/acpi/acpica/acevents.h
View file @
1b982baf
...
...
@@ -198,8 +198,6 @@ void
acpi_ev_detach_region
(
union
acpi_operand_object
*
region_obj
,
u8
acpi_ns_is_locked
);
void
acpi_ev_associate_reg_method
(
union
acpi_operand_object
*
region_obj
);
void
acpi_ev_execute_reg_methods
(
struct
acpi_namespace_node
*
node
,
acpi_adr_space_type
space_id
,
u32
function
);
...
...
drivers/acpi/acpica/acglobal.h
View file @
1b982baf
...
...
@@ -187,6 +187,8 @@ extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT];
extern
const
char
*
acpi_gbl_lowest_dstate_names
[
ACPI_NUM_sx_w_METHODS
];
extern
const
char
*
acpi_gbl_highest_dstate_names
[
ACPI_NUM_sx_d_METHODS
];
extern
const
char
*
acpi_gbl_region_types
[
ACPI_NUM_PREDEFINED_REGIONS
];
extern
const
char
acpi_gbl_lower_hex_digits
[];
extern
const
char
acpi_gbl_upper_hex_digits
[];
extern
const
struct
acpi_opcode_info
acpi_gbl_aml_op_info
[
AML_NUM_OPCODES
];
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
...
...
@@ -361,6 +363,15 @@ ACPI_GLOBAL(u32, acpi_gbl_num_objects);
#endif
/* ACPI_DEBUGGER */
#if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
ACPI_GLOBAL
(
const
char
,
*
acpi_gbl_pld_panel_list
[]);
ACPI_GLOBAL
(
const
char
,
*
acpi_gbl_pld_vertical_position_list
[]);
ACPI_GLOBAL
(
const
char
,
*
acpi_gbl_pld_horizontal_position_list
[]);
ACPI_GLOBAL
(
const
char
,
*
acpi_gbl_pld_shape_list
[]);
#endif
/*****************************************************************************
*
* Application globals
...
...
drivers/acpi/acpica/acinterp.h
View file @
1b982baf
...
...
@@ -67,7 +67,7 @@
typedef
const
struct
acpi_exdump_info
{
u8
opcode
;
u8
offset
;
char
*
name
;
c
onst
c
har
*
name
;
}
acpi_exdump_info
;
...
...
drivers/acpi/acpica/aclocal.h
View file @
1b982baf
...
...
@@ -1096,6 +1096,7 @@ struct acpi_external_list {
#define ACPI_EXT_ORIGIN_FROM_FILE 0x02
/* External came from a file */
#define ACPI_EXT_INTERNAL_PATH_ALLOCATED 0x04
/* Deallocate internal path on completion */
#define ACPI_EXT_EXTERNAL_EMITTED 0x08
/* External() statement has been emitted */
#define ACPI_EXT_ORIGIN_FROM_OPCODE 0x10
/* External came from a External() opcode */
struct
acpi_external_file
{
char
*
path
;
...
...
drivers/acpi/acpica/acmacros.h
View file @
1b982baf
...
...
@@ -260,6 +260,10 @@
#define ACPI_IS_MISALIGNED(value) (((acpi_size) value) & (sizeof(acpi_size)-1))
/* Generic (power-of-two) rounding */
#define ACPI_IS_POWER_OF_TWO(a) (((a) & ((a) - 1)) == 0)
/*
* Bitmask creation
* Bit positions start at zero.
...
...
@@ -283,10 +287,10 @@
/* Generic bitfield macros and masks */
#define ACPI_GET_BITS(source_ptr, position, mask) \
((*
source_ptr >> position) & mask
)
((*
(source_ptr) >> (position)) & (mask)
)
#define ACPI_SET_BITS(target_ptr, position, mask, value) \
(*
target_ptr |= ((value & mask) << position
))
(*
(target_ptr) |= (((value) & (mask)) << (position)
))
#define ACPI_1BIT_MASK 0x00000001
#define ACPI_2BIT_MASK 0x00000003
...
...
drivers/acpi/acpica/acnamesp.h
View file @
1b982baf
...
...
@@ -206,9 +206,10 @@ void acpi_ns_dump_tables(acpi_handle search_base, u32 max_depth);
void
acpi_ns_dump_entry
(
acpi_handle
handle
,
u32
debug_level
);
void
acpi_ns_dump_pathname
(
acpi_handle
handle
,
char
*
msg
,
u32
level
,
u32
component
);
acpi_ns_dump_pathname
(
acpi_handle
handle
,
const
char
*
msg
,
u32
level
,
u32
component
);
void
acpi_ns_print_pathname
(
u32
num_segments
,
char
*
pathname
);
void
acpi_ns_print_pathname
(
u32
num_segments
,
c
onst
c
har
*
pathname
);
acpi_status
acpi_ns_dump_one_object
(
acpi_handle
obj_handle
,
...
...
drivers/acpi/acpica/acparser.h
View file @
1b982baf
...
...
@@ -139,7 +139,7 @@ acpi_ps_complete_final_op(struct acpi_walk_state *walk_state,
*/
const
struct
acpi_opcode_info
*
acpi_ps_get_opcode_info
(
u16
opcode
);
char
*
acpi_ps_get_opcode_name
(
u16
opcode
);
c
onst
c
har
*
acpi_ps_get_opcode_name
(
u16
opcode
);
u8
acpi_ps_get_argument_count
(
u32
op_type
);
...
...
drivers/acpi/acpica/acpredef.h
View file @
1b982baf
...
...
@@ -523,6 +523,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
METHOD_RETURNS
(
ACPI_RTYPE_PACKAGE
)}},
/* Fixed-length (4 Int) */
PACKAGE_INFO
(
ACPI_PTYPE1_FIXED
,
ACPI_RTYPE_INTEGER
,
4
,
0
,
0
,
0
),
{{
"_FIT"
,
METHOD_0ARGS
,
METHOD_RETURNS
(
ACPI_RTYPE_BUFFER
)}},
/* ACPI 6.0 */
{{
"_FIX"
,
METHOD_0ARGS
,
METHOD_RETURNS
(
ACPI_RTYPE_PACKAGE
)}},
/* Variable-length (Ints) */
PACKAGE_INFO
(
ACPI_PTYPE1_VAR
,
ACPI_RTYPE_INTEGER
,
0
,
0
,
0
,
0
),
...
...
@@ -1053,6 +1056,12 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
METHOD_RETURNS
(
ACPI_RTYPE_INTEGER
|
ACPI_RTYPE_STRING
|
ACPI_RTYPE_BUFFER
)}},
{{
"_WPC"
,
METHOD_0ARGS
,
METHOD_RETURNS
(
ACPI_RTYPE_INTEGER
)}},
/* ACPI 6.1 */
{{
"_WPP"
,
METHOD_0ARGS
,
METHOD_RETURNS
(
ACPI_RTYPE_INTEGER
)}},
/* ACPI 6.1 */
PACKAGE_INFO
(
0
,
0
,
0
,
0
,
0
,
0
)
/* Table terminator */
};
#else
...
...
drivers/acpi/acpica/acresrc.h
View file @
1b982baf
...
...
@@ -124,7 +124,7 @@ typedef enum {
typedef
const
struct
acpi_rsdump_info
{
u8
opcode
;
u8
offset
;
char
*
name
;
c
onst
c
har
*
name
;
const
char
**
pointer
;
}
acpi_rsdump_info
;
...
...
@@ -209,7 +209,7 @@ acpi_rs_get_prs_method_data(struct acpi_namespace_node *node,
acpi_status
acpi_rs_get_method_data
(
acpi_handle
handle
,
char
*
path
,
struct
acpi_buffer
*
ret_buffer
);
c
onst
c
har
*
path
,
struct
acpi_buffer
*
ret_buffer
);
acpi_status
acpi_rs_set_srs_method_data
(
struct
acpi_namespace_node
*
node
,
...
...
drivers/acpi/acpica/acstruct.h
View file @
1b982baf
...
...
@@ -184,7 +184,7 @@ struct acpi_evaluate_info {
/* The first 3 elements are passed by the caller to acpi_ns_evaluate */
struct
acpi_namespace_node
*
prefix_node
;
/* Input: starting node */
char
*
relative_pathname
;
/* Input: path relative to prefix_node */
c
onst
c
har
*
relative_pathname
;
/* Input: path relative to prefix_node */
union
acpi_operand_object
**
parameters
;
/* Input: argument list */
struct
acpi_namespace_node
*
node
;
/* Resolved node (prefix_node:relative_pathname) */
...
...
drivers/acpi/acpica/acutils.h
View file @
1b982baf
...
...
@@ -175,7 +175,14 @@ void acpi_ut_strlwr(char *src_string);
int
acpi_ut_stricmp
(
char
*
string1
,
char
*
string2
);
acpi_status
acpi_ut_strtoul64
(
char
*
string
,
u32
base
,
u64
*
ret_integer
);
acpi_status
acpi_ut_strtoul64
(
char
*
string
,
u32
base
,
u32
max_integer_byte_width
,
u64
*
ret_integer
);
/* Values for max_integer_byte_width above */
#define ACPI_MAX32_BYTE_WIDTH 4
#define ACPI_MAX64_BYTE_WIDTH 8
/*
* utglobal - Global data structures and procedures
...
...
@@ -266,7 +273,8 @@ acpi_ut_trace(u32 line_number,
void
acpi_ut_trace_ptr
(
u32
line_number
,
const
char
*
function_name
,
const
char
*
module_name
,
u32
component_id
,
void
*
pointer
);
const
char
*
module_name
,
u32
component_id
,
const
void
*
pointer
);
void
acpi_ut_trace_u32
(
u32
line_number
,
...
...
@@ -276,7 +284,8 @@ acpi_ut_trace_u32(u32 line_number,
void
acpi_ut_trace_str
(
u32
line_number
,
const
char
*
function_name
,
const
char
*
module_name
,
u32
component_id
,
char
*
string
);
const
char
*
module_name
,
u32
component_id
,
const
char
*
string
);
void
acpi_ut_exit
(
u32
line_number
,
...
...
@@ -335,12 +344,12 @@ void acpi_ut_delete_internal_object_list(union acpi_operand_object **obj_list);
*/
acpi_status
acpi_ut_evaluate_object
(
struct
acpi_namespace_node
*
prefix_node
,
char
*
path
,
c
onst
c
har
*
path
,
u32
expected_return_btypes
,
union
acpi_operand_object
**
return_desc
);
acpi_status
acpi_ut_evaluate_numeric_object
(
char
*
object_name
,
acpi_ut_evaluate_numeric_object
(
c
onst
c
har
*
object_name
,
struct
acpi_namespace_node
*
device_node
,
u64
*
value
);
...
...
@@ -526,7 +535,7 @@ void acpi_ut_set_integer_width(u8 revision);
void
acpi_ut_display_init_pathname
(
u8
type
,
struct
acpi_namespace_node
*
obj_handle
,
char
*
path
);
c
onst
c
har
*
path
);
#endif
/*
...
...
@@ -628,7 +637,7 @@ void acpi_ut_dump_allocation_info(void);
void
acpi_ut_dump_allocations
(
u32
component
,
const
char
*
module
);
acpi_status
acpi_ut_create_list
(
char
*
list_name
,
acpi_ut_create_list
(
c
onst
c
har
*
list_name
,
u16
object_size
,
struct
acpi_memory_list
**
return_cache
);
#endif
/* ACPI_DBG_TRACK_ALLOCATIONS */
...
...
drivers/acpi/acpica/dbconvert.c
View file @
1b982baf
...
...
@@ -277,7 +277,9 @@ acpi_db_convert_to_object(acpi_object_type type,
default:
object
->
type
=
ACPI_TYPE_INTEGER
;
status
=
acpi_ut_strtoul64
(
string
,
16
,
&
object
->
integer
.
value
);
status
=
acpi_ut_strtoul64
(
string
,
16
,
acpi_gbl_integer_byte_width
,
&
object
->
integer
.
value
);
break
;
}
...
...
drivers/acpi/acpica/dbinput.c
View file @
1b982baf
...
...
@@ -57,12 +57,12 @@ static u32 acpi_db_get_line(char *input_buffer);
static
u32
acpi_db_match_command
(
char
*
user_command
);
static
void
acpi_db_display_command_info
(
char
*
command
,
u8
display_all
);
static
void
acpi_db_display_command_info
(
c
onst
c
har
*
command
,
u8
display_all
);
static
void
acpi_db_display_help
(
char
*
command
);
static
u8
acpi_db_match_command_help
(
char
*
command
,
acpi_db_match_command_help
(
c
onst
c
har
*
command
,
const
struct
acpi_db_command_help
*
help
);
/*
...
...
@@ -348,7 +348,7 @@ static const struct acpi_db_command_help acpi_gbl_db_command_help[] = {
******************************************************************************/
static
u8
acpi_db_match_command_help
(
char
*
command
,
acpi_db_match_command_help
(
c
onst
c
har
*
command
,
const
struct
acpi_db_command_help
*
help
)
{
char
*
invocation
=
help
->
invocation
;
...
...
@@ -402,7 +402,7 @@ acpi_db_match_command_help(char *command,
*
******************************************************************************/
static
void
acpi_db_display_command_info
(
char
*
command
,
u8
display_all
)
static
void
acpi_db_display_command_info
(
c
onst
c
har
*
command
,
u8
display_all
)
{
const
struct
acpi_db_command_help
*
next
;
u8
matched
;
...
...
@@ -656,8 +656,9 @@ static u32 acpi_db_match_command(char *user_command)
}
for
(
i
=
CMD_FIRST_VALID
;
acpi_gbl_db_commands
[
i
].
name
;
i
++
)
{
if
(
strstr
(
acpi_gbl_db_commands
[
i
].
name
,
user_command
)
==
acpi_gbl_db_commands
[
i
].
name
)
{
if
(
strstr
(
ACPI_CAST_PTR
(
char
,
acpi_gbl_db_commands
[
i
].
name
),
user_command
)
==
acpi_gbl_db_commands
[
i
].
name
)
{
return
(
i
);
}
}
...
...
drivers/acpi/acpica/dbutils.c
View file @
1b982baf
...
...
@@ -56,8 +56,6 @@ acpi_status acpi_db_second_pass_parse(union acpi_parse_object *root);
void
acpi_db_dump_buffer
(
u32
address
);
#endif
static
char
*
gbl_hex_to_ascii
=
"0123456789ABCDEF"
;
/*******************************************************************************
*
* FUNCTION: acpi_db_match_argument
...
...
@@ -82,8 +80,9 @@ acpi_db_match_argument(char *user_argument,
}
for
(
i
=
0
;
arguments
[
i
].
name
;
i
++
)
{
if
(
strstr
(
arguments
[
i
].
name
,
user_argument
)
==
arguments
[
i
].
name
)
{
if
(
strstr
(
ACPI_CAST_PTR
(
char
,
arguments
[
i
].
name
),
ACPI_CAST_PTR
(
char
,
user_argument
))
==
arguments
[
i
].
name
)
{
return
(
i
);
}
}
...
...
@@ -339,7 +338,7 @@ void acpi_db_uint32_to_hex_string(u32 value, char *buffer)
buffer
[
8
]
=
'\0'
;
for
(
i
=
7
;
i
>=
0
;
i
--
)
{
buffer
[
i
]
=
gbl_hex_to_ascii
[
value
&
0x0F
];
buffer
[
i
]
=
acpi_gbl_upper_hex_digits
[
value
&
0x0F
];
value
=
value
>>
4
;
}
}
...
...
drivers/acpi/acpica/evregion.c
View file @
1b982baf
...
...
@@ -526,81 +526,59 @@ acpi_ev_attach_region(union acpi_operand_object *handler_obj,
/*******************************************************************************
*
* FUNCTION: acpi_ev_
associa
te_reg_method
* FUNCTION: acpi_ev_
execu
te_reg_method
*
* PARAMETERS: region_obj - Region object
* function - Passed to _REG: On (1) or Off (0)
*
* RETURN: Status
*
* DESCRIPTION:
Find and associate _REG method to
a region
* DESCRIPTION:
Execute _REG method for
a region
*
******************************************************************************/
void
acpi_ev_associate_reg_method
(
union
acpi_operand_object
*
region_obj
)
acpi_status
acpi_ev_execute_reg_method
(
union
acpi_operand_object
*
region_obj
,
u32
function
)
{
acpi_name
*
reg_name_ptr
=
(
acpi_name
*
)
METHOD_NAME__REG
;
struct
acpi_evaluate_info
*
info
;
union
acpi_operand_object
*
args
[
3
];
union
acpi_operand_object
*
region_obj2
;
const
acpi_name
*
reg_name_ptr
=
ACPI_CAST_PTR
(
acpi_name
,
METHOD_NAME__REG
);
struct
acpi_namespace_node
*
method_node
;
struct
acpi_namespace_node
*
node
;
union
acpi_operand_object
*
region_obj2
;
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
ev_associate_reg_method
);
ACPI_FUNCTION_TRACE
(
ev_execute_reg_method
);
if
(
!
acpi_gbl_namespace_initialized
||
region_obj
->
region
.
handler
==
NULL
)
{
return_ACPI_STATUS
(
AE_OK
);
}
region_obj2
=
acpi_ns_get_secondary_object
(
region_obj
);
if
(
!
region_obj2
)
{
return_
VOID
;
return_
ACPI_STATUS
(
AE_NOT_EXIST
)
;
}
/*
* Find any "_REG" method associated with this region definition.
* The method should always be updated as this function may be
* invoked after a namespace change.
*/
node
=
region_obj
->
region
.
node
->
parent
;
/* Find any "_REG" method associated with this region definition */
status
=
acpi_ns_search_one_scope
(
*
reg_name_ptr
,
node
,
ACPI_TYPE_METHOD
,
&
method_node
);
if
(
ACPI_SUCCESS
(
status
))
{
/*
* The _REG method is optional and there can be only one per
region
*
definition. This will be executed when the handler is attached
*
or removed
* The _REG method is optional and there can be only one per
*
region definition. This will be executed when the handler is
*
attached or removed.
*/
region_obj2
->
extra
.
method_REG
=
method_node
;
}
return_VOID
;
}
/*******************************************************************************
*
* FUNCTION: acpi_ev_execute_reg_method
*
* PARAMETERS: region_obj - Region object
* function - Passed to _REG: On (1) or Off (0)
*
* RETURN: Status
*
* DESCRIPTION: Execute _REG method for a region
*
******************************************************************************/
acpi_status
acpi_ev_execute_reg_method
(
union
acpi_operand_object
*
region_obj
,
u32
function
)
{
struct
acpi_evaluate_info
*
info
;
union
acpi_operand_object
*
args
[
3
];
union
acpi_operand_object
*
region_obj2
;
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
ev_execute_reg_method
);
region_obj2
=
acpi_ns_get_secondary_object
(
region_obj
);
if
(
!
region_obj2
)
{
return_ACPI_STATUS
(
AE_NOT_EXIST
);
}
if
(
region_obj2
->
extra
.
method_REG
==
NULL
||
region_obj
->
region
.
handler
==
NULL
||
!
acpi_gbl_namespace_initialized
)
{
if
(
region_obj2
->
extra
.
method_REG
==
NULL
)
{
return_ACPI_STATUS
(
AE_OK
);
}
...
...
drivers/acpi/acpica/evrgnini.c
View file @
1b982baf
...
...
@@ -518,7 +518,6 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
return_ACPI_STATUS
(
AE_OK
);
}
acpi_ev_associate_reg_method
(
region_obj
);
region_obj
->
common
.
flags
|=
AOPOBJ_OBJECT_INITIALIZED
;
node
=
region_obj
->
region
.
node
->
parent
;
...
...
drivers/acpi/acpica/exconcat.c
0 → 100644
View file @
1b982baf
This diff is collapsed.
Click to expand it.
drivers/acpi/acpica/exconfig.c
View file @
1b982baf
...
...
@@ -118,7 +118,9 @@ acpi_ex_add_table(u32 table_index,
/* Execute any module-level code that was found in the table */
acpi_ex_exit_interpreter
();
acpi_ns_exec_module_code_list
();
if
(
acpi_gbl_group_module_level_code
)
{
acpi_ns_exec_module_code_list
();
}
acpi_ex_enter_interpreter
();
/*
...
...
drivers/acpi/acpica/exconvrt.c
View file @
1b982baf
...
...
@@ -124,7 +124,9 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
* of ACPI 3.0) is that the to_integer() operator allows both decimal
* and hexadecimal strings (hex prefixed with "0x").
*/
status
=
acpi_ut_strtoul64
((
char
*
)
pointer
,
flags
,
&
result
);
status
=
acpi_ut_strtoul64
((
char
*
)
pointer
,
flags
,
acpi_gbl_integer_byte_width
,
&
result
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
);
}
...
...
drivers/acpi/acpica/exdump.c
View file @
1b982baf
...
...
@@ -55,9 +55,9 @@ ACPI_MODULE_NAME("exdump")
*/
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/* Local prototypes */
static
void
acpi_ex_out_string
(
c
har
*
title
,
char
*
value
);
static
void
acpi_ex_out_string
(
c
onst
char
*
title
,
const
char
*
value
);
static
void
acpi_ex_out_pointer
(
c
har
*
title
,
void
*
value
);
static
void
acpi_ex_out_pointer
(
c
onst
char
*
title
,
const
void
*
value
);
static
void
acpi_ex_dump_object
(
union
acpi_operand_object
*
obj_desc
,
...
...
@@ -365,8 +365,7 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
struct
acpi_exdump_info
*
info
)
{
u8
*
target
;
char
*
name
;
const
char
*
reference_name
;
const
char
*
name
;
u8
count
;
union
acpi_operand_object
*
start
;
union
acpi_operand_object
*
data
=
NULL
;
...
...
@@ -459,9 +458,9 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
case
ACPI_EXD_REFERENCE
:
reference_name
=
acpi_ut_get_reference_name
(
obj_desc
);
acpi_ex_out_string
(
"Class Name"
,
ACPI_CAST_PTR
(
char
,
reference_name
));
acpi_ut_get_reference_name
(
obj_desc
));
acpi_ex_dump_reference_obj
(
obj_desc
);
break
;
...
...
@@ -934,12 +933,12 @@ acpi_ex_dump_operands(union acpi_operand_object **operands,
*
******************************************************************************/
static
void
acpi_ex_out_string
(
c
har
*
title
,
char
*
value
)
static
void
acpi_ex_out_string
(
c
onst
char
*
title
,
const
char
*
value
)
{
acpi_os_printf
(
"%20s : %s
\n
"
,
title
,
value
);
}
static
void
acpi_ex_out_pointer
(
c
har
*
title
,
void
*
value
)
static
void
acpi_ex_out_pointer
(
c
onst
char
*
title
,
const
void
*
value
)
{
acpi_os_printf
(
"%20s : %p
\n
"
,
title
,
value
);
}
...
...
drivers/acpi/acpica/exmisc.c
View file @
1b982baf
...
...
@@ -45,7 +45,6 @@
#include "accommon.h"
#include "acinterp.h"
#include "amlcode.h"
#include "amlresrc.h"
#define _COMPONENT ACPI_EXECUTER
ACPI_MODULE_NAME
(
"exmisc"
)
...
...
@@ -138,295 +137,6 @@ acpi_ex_get_object_reference(union acpi_operand_object *obj_desc,
return_ACPI_STATUS
(
AE_OK
);
}
/*******************************************************************************
*
* FUNCTION: acpi_ex_concat_template
*
* PARAMETERS: operand0 - First source object
* operand1 - Second source object
* actual_return_desc - Where to place the return object
* walk_state - Current walk state
*
* RETURN: Status
*
* DESCRIPTION: Concatenate two resource templates
*
******************************************************************************/
acpi_status
acpi_ex_concat_template
(
union
acpi_operand_object
*
operand0
,
union
acpi_operand_object
*
operand1
,
union
acpi_operand_object
**
actual_return_desc
,
struct
acpi_walk_state
*
walk_state
)
{
acpi_status
status
;
union
acpi_operand_object
*
return_desc
;
u8
*
new_buf
;
u8
*
end_tag
;
acpi_size
length0
;
acpi_size
length1
;
acpi_size
new_length
;
ACPI_FUNCTION_TRACE
(
ex_concat_template
);
/*
* Find the end_tag descriptor in each resource template.
* Note1: returned pointers point TO the end_tag, not past it.
* Note2: zero-length buffers are allowed; treated like one end_tag
*/
/* Get the length of the first resource template */
status
=
acpi_ut_get_resource_end_tag
(
operand0
,
&
end_tag
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
);
}
length0
=
ACPI_PTR_DIFF
(
end_tag
,
operand0
->
buffer
.
pointer
);
/* Get the length of the second resource template */
status
=
acpi_ut_get_resource_end_tag
(
operand1
,
&
end_tag
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
);
}
length1
=
ACPI_PTR_DIFF
(
end_tag
,
operand1
->
buffer
.
pointer
);
/* Combine both lengths, minimum size will be 2 for end_tag */
new_length
=
length0
+
length1
+
sizeof
(
struct
aml_resource_end_tag
);
/* Create a new buffer object for the result (with one end_tag) */
return_desc
=
acpi_ut_create_buffer_object
(
new_length
);
if
(
!
return_desc
)
{
return_ACPI_STATUS
(
AE_NO_MEMORY
);
}
/*
* Copy the templates to the new buffer, 0 first, then 1 follows. One
* end_tag descriptor is copied from Operand1.
*/
new_buf
=
return_desc
->
buffer
.
pointer
;
memcpy
(
new_buf
,
operand0
->
buffer
.
pointer
,
length0
);
memcpy
(
new_buf
+
length0
,
operand1
->
buffer
.
pointer
,
length1
);
/* Insert end_tag and set the checksum to zero, means "ignore checksum" */
new_buf
[
new_length
-
1
]
=
0
;
new_buf
[
new_length
-
2
]
=
ACPI_RESOURCE_NAME_END_TAG
|
1
;
/* Return the completed resource template */
*
actual_return_desc
=
return_desc
;
return_ACPI_STATUS
(
AE_OK
);
}
/*******************************************************************************
*
* FUNCTION: acpi_ex_do_concatenate
*
* PARAMETERS: operand0 - First source object
* operand1 - Second source object
* actual_return_desc - Where to place the return object
* walk_state - Current walk state
*
* RETURN: Status
*
* DESCRIPTION: Concatenate two objects OF THE SAME TYPE.
*
******************************************************************************/
acpi_status
acpi_ex_do_concatenate
(
union
acpi_operand_object
*
operand0
,
union
acpi_operand_object
*
operand1
,
union
acpi_operand_object
**
actual_return_desc
,
struct
acpi_walk_state
*
walk_state
)
{
union
acpi_operand_object
*
local_operand1
=
operand1
;
union
acpi_operand_object
*
return_desc
;
char
*
new_buf
;
const
char
*
type_string
;
acpi_status
status
;
ACPI_FUNCTION_TRACE
(
ex_do_concatenate
);
/*
* Convert the second operand if necessary. The first operand
* determines the type of the second operand, (See the Data Types
* section of the ACPI specification.) Both object types are
* guaranteed to be either Integer/String/Buffer by the operand
* resolution mechanism.
*/
switch
(
operand0
->
common
.
type
)
{
case
ACPI_TYPE_INTEGER
:
status
=
acpi_ex_convert_to_integer
(
operand1
,
&
local_operand1
,
16
);
break
;
case
ACPI_TYPE_STRING
:
/*
* Per the ACPI spec, Concatenate only supports int/str/buf.
* However, we support all objects here as an extension.
* This improves the usefulness of the Printf() macro.
* 12/2015.
*/
switch
(
operand1
->
common
.
type
)
{
case
ACPI_TYPE_INTEGER
:
case
ACPI_TYPE_STRING
:
case
ACPI_TYPE_BUFFER
:
status
=
acpi_ex_convert_to_string
(
operand1
,
&
local_operand1
,
ACPI_IMPLICIT_CONVERT_HEX
);
break
;
default:
/*
* Just emit a string containing the object type.
*/
type_string
=
acpi_ut_get_type_name
(
operand1
->
common
.
type
);
local_operand1
=
acpi_ut_create_string_object
(((
acpi_size
)
strlen
(
type_string
)
+
9
));
/* 9 For "[Object]" */
if
(
!
local_operand1
)
{
status
=
AE_NO_MEMORY
;
goto
cleanup
;
}
strcpy
(
local_operand1
->
string
.
pointer
,
"["
);
strcat
(
local_operand1
->
string
.
pointer
,
type_string
);
strcat
(
local_operand1
->
string
.
pointer
,
" Object]"
);
status
=
AE_OK
;
break
;
}
break
;
case
ACPI_TYPE_BUFFER
:
status
=
acpi_ex_convert_to_buffer
(
operand1
,
&
local_operand1
);
break
;
default:
ACPI_ERROR
((
AE_INFO
,
"Invalid object type: 0x%X"
,
operand0
->
common
.
type
));
status
=
AE_AML_INTERNAL
;
}
if
(
ACPI_FAILURE
(
status
))
{
goto
cleanup
;
}
/*
* Both operands are now known to be the same object type
* (Both are Integer, String, or Buffer), and we can now perform the
* concatenation.
*/
/*
* There are three cases to handle:
*
* 1) Two Integers concatenated to produce a new Buffer
* 2) Two Strings concatenated to produce a new String
* 3) Two Buffers concatenated to produce a new Buffer
*/
switch
(
operand0
->
common
.
type
)
{
case
ACPI_TYPE_INTEGER
:
/* Result of two Integers is a Buffer */
/* Need enough buffer space for two integers */
return_desc
=
acpi_ut_create_buffer_object
((
acpi_size
)
ACPI_MUL_2
(
acpi_gbl_integer_byte_width
));
if
(
!
return_desc
)
{
status
=
AE_NO_MEMORY
;
goto
cleanup
;
}
new_buf
=
(
char
*
)
return_desc
->
buffer
.
pointer
;
/* Copy the first integer, LSB first */
memcpy
(
new_buf
,
&
operand0
->
integer
.
value
,
acpi_gbl_integer_byte_width
);
/* Copy the second integer (LSB first) after the first */
memcpy
(
new_buf
+
acpi_gbl_integer_byte_width
,
&
local_operand1
->
integer
.
value
,
acpi_gbl_integer_byte_width
);
break
;
case
ACPI_TYPE_STRING
:
/* Result of two Strings is a String */
return_desc
=
acpi_ut_create_string_object
(((
acpi_size
)
operand0
->
string
.
length
+
local_operand1
->
string
.
length
));
if
(
!
return_desc
)
{
status
=
AE_NO_MEMORY
;
goto
cleanup
;
}
new_buf
=
return_desc
->
string
.
pointer
;
/* Concatenate the strings */
strcpy
(
new_buf
,
operand0
->
string
.
pointer
);
strcat
(
new_buf
,
local_operand1
->
string
.
pointer
);
break
;
case
ACPI_TYPE_BUFFER
:
/* Result of two Buffers is a Buffer */
return_desc
=
acpi_ut_create_buffer_object
(((
acpi_size
)
operand0
->
buffer
.
length
+
local_operand1
->
buffer
.
length
));
if
(
!
return_desc
)
{
status
=
AE_NO_MEMORY
;
goto
cleanup
;
}
new_buf
=
(
char
*
)
return_desc
->
buffer
.
pointer
;
/* Concatenate the buffers */
memcpy
(
new_buf
,
operand0
->
buffer
.
pointer
,
operand0
->
buffer
.
length
);
memcpy
(
new_buf
+
operand0
->
buffer
.
length
,
local_operand1
->
buffer
.
pointer
,
local_operand1
->
buffer
.
length
);
break
;
default:
/* Invalid object type, should not happen here */
ACPI_ERROR
((
AE_INFO
,
"Invalid object type: 0x%X"
,
operand0
->
common
.
type
));
status
=
AE_AML_INTERNAL
;
goto
cleanup
;
}
*
actual_return_desc
=
return_desc
;
cleanup:
if
(
local_operand1
!=
operand1
)
{
acpi_ut_remove_reference
(
local_operand1
);
}
return_ACPI_STATUS
(
status
);
}
/*******************************************************************************
*
* FUNCTION: acpi_ex_do_math_op
...
...
drivers/acpi/acpica/exutils.c
View file @
1b982baf
...
...
@@ -301,8 +301,8 @@ static u32 acpi_ex_digits_needed(u64 value, u32 base)
*
* FUNCTION: acpi_ex_eisa_id_to_string
*
* PARAMETERS:
compressed_id - EISAID to be converted
*
out_string - Where to put the converted string (8 bytes)
* PARAMETERS:
out_string - Where to put the converted string (8 bytes)
*
compressed_id - EISAID to be converted
*
* RETURN: None
*
...
...
@@ -354,7 +354,7 @@ void acpi_ex_eisa_id_to_string(char *out_string, u64 compressed_id)
* possible 64-bit integer.
* value - Value to be converted
*
* RETURN:
None,
string
* RETURN:
Converted string in out_
string
*
* DESCRIPTION: Convert a 64-bit integer to decimal string representation.
* Assumes string buffer is large enough to hold the string. The
...
...
@@ -384,9 +384,9 @@ void acpi_ex_integer_to_string(char *out_string, u64 value)
* FUNCTION: acpi_ex_pci_cls_to_string
*
* PARAMETERS: out_string - Where to put the converted string (7 bytes)
*
PARAMETERS:
class_code - PCI class code to be converted (3 bytes)
*
class_code - PCI class code to be converted (3 bytes)
*
* RETURN:
None
* RETURN:
Converted string in out_string
*
* DESCRIPTION: Convert 3-bytes PCI class code to string representation.
* Return buffer must be large enough to hold the string. The
...
...
@@ -417,7 +417,7 @@ void acpi_ex_pci_cls_to_string(char *out_string, u8 class_code[3])
*
* PARAMETERS: space_id - ID to be validated
*
* RETURN: TRUE if valid/supported ID.
* RETURN: TRUE if
space_id is a
valid/supported ID.
*
* DESCRIPTION: Validate an operation region space_ID.
*
...
...
drivers/acpi/acpica/hwregs.c
View file @
1b982baf
...
...
@@ -83,6 +83,8 @@ acpi_status
acpi_hw_validate_register
(
struct
acpi_generic_address
*
reg
,
u8
max_bit_width
,
u64
*
address
)
{
u8
bit_width
;
u8
access_width
;
/* Must have a valid pointer to a GAS structure */
...
...
@@ -109,23 +111,26 @@ acpi_hw_validate_register(struct acpi_generic_address *reg,
return
(
AE_SUPPORT
);
}
/* Validate the
bit
_width */
/* Validate the
access
_width */
if
((
reg
->
bit_width
!=
8
)
&&
(
reg
->
bit_width
!=
16
)
&&
(
reg
->
bit_width
!=
32
)
&&
(
reg
->
bit_width
!=
max_bit_width
))
{
if
(
reg
->
access_width
>
4
)
{
ACPI_ERROR
((
AE_INFO
,
"Unsupported register
bit
width: 0x%X"
,
reg
->
bit
_width
));
"Unsupported register
access
width: 0x%X"
,
reg
->
access
_width
));
return
(
AE_SUPPORT
);
}
/* Validate the bit_
offset. Just a warning for now.
*/
/* Validate the bit_
width, convert access_width into number of bits
*/
if
(
reg
->
bit_offset
!=
0
)
{
access_width
=
reg
->
access_width
?
reg
->
access_width
:
1
;
access_width
=
1
<<
(
access_width
+
2
);
bit_width
=
ACPI_ROUND_UP
(
reg
->
bit_offset
+
reg
->
bit_width
,
access_width
);
if
(
max_bit_width
<
bit_width
)
{
ACPI_WARNING
((
AE_INFO
,
"Unsupported register bit offset: 0x%X"
,
reg
->
bit_offset
));
"Requested bit width 0x%X is smaller than register bit width 0x%X"
,
max_bit_width
,
bit_width
));
return
(
AE_SUPPORT
);
}
return
(
AE_OK
);
...
...
drivers/acpi/acpica/hwxface.c
View file @
1b982baf
...
...
@@ -504,9 +504,7 @@ acpi_get_sleep_type_data(u8 sleep_state, u8 *sleep_type_a, u8 *sleep_type_b)
* Evaluate the \_Sx namespace object containing the register values
* for this state
*/
info
->
relative_pathname
=
ACPI_CAST_PTR
(
char
,
acpi_gbl_sleep_state_names
[
sleep_state
]);
info
->
relative_pathname
=
acpi_gbl_sleep_state_names
[
sleep_state
];
status
=
acpi_ns_evaluate
(
info
);
if
(
ACPI_FAILURE
(
status
))
{
...
...
drivers/acpi/acpica/nsaccess.c
View file @
1b982baf
...
...
@@ -107,9 +107,10 @@ acpi_status acpi_ns_root_initialize(void)
continue
;
}
status
=
acpi_ns_lookup
(
NULL
,
init_val
->
name
,
init_val
->
type
,
ACPI_IMODE_LOAD_PASS2
,
ACPI_NS_NO_UPSEARCH
,
NULL
,
&
new_node
);
status
=
acpi_ns_lookup
(
NULL
,
(
char
*
)
init_val
->
name
,
init_val
->
type
,
ACPI_IMODE_LOAD_PASS2
,
ACPI_NS_NO_UPSEARCH
,
NULL
,
&
new_node
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Could not create predefined name %s"
,
...
...
drivers/acpi/acpica/nsconvert.c
View file @
1b982baf
...
...
@@ -79,7 +79,8 @@ acpi_ns_convert_to_integer(union acpi_operand_object *original_object,
/* String-to-Integer conversion */
status
=
acpi_ut_strtoul64
(
original_object
->
string
.
pointer
,
ACPI_ANY_BASE
,
&
value
);
ACPI_ANY_BASE
,
acpi_gbl_integer_byte_width
,
&
value
);
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
}
...
...
drivers/acpi/acpica/nsdump.c
View file @
1b982baf
...
...
@@ -81,7 +81,7 @@ acpi_ns_get_max_depth(acpi_handle obj_handle,
*
******************************************************************************/
void
acpi_ns_print_pathname
(
u32
num_segments
,
char
*
pathname
)
void
acpi_ns_print_pathname
(
u32
num_segments
,
c
onst
c
har
*
pathname
)
{
u32
i
;
...
...
@@ -114,6 +114,9 @@ void acpi_ns_print_pathname(u32 num_segments, char *pathname)
acpi_os_printf
(
"]
\n
"
);
}
#ifdef ACPI_OBSOLETE_FUNCTIONS
/* Not used at this time, perhaps later */
/*******************************************************************************
*
* FUNCTION: acpi_ns_dump_pathname
...
...
@@ -131,7 +134,8 @@ void acpi_ns_print_pathname(u32 num_segments, char *pathname)
******************************************************************************/
void
acpi_ns_dump_pathname
(
acpi_handle
handle
,
char
*
msg
,
u32
level
,
u32
component
)
acpi_ns_dump_pathname
(
acpi_handle
handle
,
const
char
*
msg
,
u32
level
,
u32
component
)
{
ACPI_FUNCTION_TRACE
(
ns_dump_pathname
);
...
...
@@ -148,6 +152,7 @@ acpi_ns_dump_pathname(acpi_handle handle, char *msg, u32 level, u32 component)
acpi_os_printf
(
"
\n
"
);
return_VOID
;
}
#endif
/*******************************************************************************
*
...
...
drivers/acpi/acpica/nsinit.c
View file @
1b982baf
...
...
@@ -140,6 +140,7 @@ acpi_status acpi_ns_initialize_devices(u32 flags)
{
acpi_status
status
=
AE_OK
;
struct
acpi_device_walk_info
info
;
acpi_handle
handle
;
ACPI_FUNCTION_TRACE
(
ns_initialize_devices
);
...
...
@@ -190,6 +191,27 @@ acpi_status acpi_ns_initialize_devices(u32 flags)
if
(
ACPI_SUCCESS
(
status
))
{
info
.
num_INI
++
;
}
/*
* Execute \_SB._INI.
* There appears to be a strict order requirement for \_SB._INI,
* which should be evaluated before any _REG evaluations.
*/
status
=
acpi_get_handle
(
NULL
,
"
\\
_SB"
,
&
handle
);
if
(
ACPI_SUCCESS
(
status
))
{
memset
(
info
.
evaluate_info
,
0
,
sizeof
(
struct
acpi_evaluate_info
));
info
.
evaluate_info
->
prefix_node
=
handle
;
info
.
evaluate_info
->
relative_pathname
=
METHOD_NAME__INI
;
info
.
evaluate_info
->
parameters
=
NULL
;
info
.
evaluate_info
->
flags
=
ACPI_IGNORE_RETURN_VALUE
;
status
=
acpi_ns_evaluate
(
info
.
evaluate_info
);
if
(
ACPI_SUCCESS
(
status
))
{
info
.
num_INI
++
;
}
}
}
/*
...
...
@@ -198,6 +220,12 @@ acpi_status acpi_ns_initialize_devices(u32 flags)
* Note: Any objects accessed by the _REG methods will be automatically
* initialized, even if they contain executable AML (see the call to
* acpi_ns_initialize_objects below).
*
* Note: According to the ACPI specification, we actually needn't execute
* _REG for system_memory/system_io operation regions, but for PCI_Config
* operation regions, it is required to evaluate _REG for those on a PCI
* root bus that doesn't contain _BBN object. So this code is kept here
* in order not to break things.
*/
if
(
!
(
flags
&
ACPI_NO_ADDRESS_SPACE_INIT
))
{
ACPI_DEBUG_PRINT
((
ACPI_DB_EXEC
,
...
...
@@ -592,33 +620,37 @@ acpi_ns_init_one_device(acpi_handle obj_handle,
* Note: We know there is an _INI within this subtree, but it may not be
* under this particular device, it may be lower in the branch.
*/
ACPI_DEBUG_EXEC
(
acpi_ut_display_init_pathname
(
ACPI_TYPE_METHOD
,
device_node
,
METHOD_NAME__INI
));
memset
(
info
,
0
,
sizeof
(
struct
acpi_evaluate_info
));
info
->
prefix_node
=
device_node
;
info
->
relative_pathname
=
METHOD_NAME__INI
;
info
->
parameters
=
NULL
;
info
->
flags
=
ACPI_IGNORE_RETURN_VALUE
;
status
=
acpi_ns_evaluate
(
info
);
if
(
ACPI_SUCCESS
(
status
))
{
walk_info
->
num_INI
++
;
}
if
(
!
ACPI_COMPARE_NAME
(
device_node
->
name
.
ascii
,
"_SB_"
)
||
device_node
->
parent
!=
acpi_gbl_root_node
)
{
ACPI_DEBUG_EXEC
(
acpi_ut_display_init_pathname
(
ACPI_TYPE_METHOD
,
device_node
,
METHOD_NAME__INI
));
memset
(
info
,
0
,
sizeof
(
struct
acpi_evaluate_info
));
info
->
prefix_node
=
device_node
;
info
->
relative_pathname
=
METHOD_NAME__INI
;
info
->
parameters
=
NULL
;
info
->
flags
=
ACPI_IGNORE_RETURN_VALUE
;
status
=
acpi_ns_evaluate
(
info
);
if
(
ACPI_SUCCESS
(
status
))
{
walk_info
->
num_INI
++
;
}
#ifdef ACPI_DEBUG_OUTPUT
else
if
(
status
!=
AE_NOT_FOUND
)
{
else
if
(
status
!=
AE_NOT_FOUND
)
{
/* Ignore error and move on to next device */
/* Ignore error and move on to next device */
char
*
scope_name
=
acpi_ns_get_normalized_pathname
(
device_node
,
TRUE
);
char
*
scope_name
=
acpi_ns_get_normalized_pathname
(
device_node
,
TRUE
);
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"during %s._INI execution"
,
scope_name
));
ACPI_FREE
(
scope_name
);
}
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"during %s._INI execution"
,
scope_name
));
ACPI_FREE
(
scope_name
);
}
#endif
}
/* Ignore errors from above */
...
...
drivers/acpi/acpica/nsload.c
View file @
1b982baf
...
...
@@ -123,8 +123,8 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node)
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
acpi_ns_delete_namespace_by_owner
(
acpi_gbl_root_table_list
.
tables
[
table_index
].
owner_id
);
acpi_tb_release_owner_id
(
table_index
);
acpi_tb_release_owner_id
(
table_index
);
return_ACPI_STATUS
(
status
);
}
...
...
drivers/acpi/acpica/nsprepkg.c
View file @
1b982baf
...
...
@@ -179,6 +179,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
}
elements
++
;
}
break
;
...
...
@@ -225,6 +226,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
return
(
status
);
}
}
elements
++
;
}
break
;
...
...
@@ -569,11 +571,13 @@ acpi_ns_check_package_list(struct acpi_evaluate_info *info,
if
(
sub_package
->
package
.
count
<
expected_count
)
{
goto
package_too_small
;
}
if
(
sub_package
->
package
.
count
<
package
->
ret_info
.
count1
)
{
expected_count
=
package
->
ret_info
.
count1
;
goto
package_too_small
;
}
if
(
expected_count
==
0
)
{
/*
* Either the num_entries element was originally zero or it was
...
...
@@ -661,6 +665,7 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info,
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
}
this_element
++
;
}
...
...
@@ -671,6 +676,7 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info,
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
}
this_element
++
;
}
...
...
drivers/acpi/acpica/psopinfo.c
View file @
1b982baf
...
...
@@ -158,7 +158,7 @@ const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode)
*
******************************************************************************/
char
*
acpi_ps_get_opcode_name
(
u16
opcode
)
c
onst
c
har
*
acpi_ps_get_opcode_name
(
u16
opcode
)
{
#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
...
...
drivers/acpi/acpica/rsdump.c
View file @
1b982baf
...
...
@@ -52,17 +52,17 @@ ACPI_MODULE_NAME("rsdump")
* All functions in this module are used by the AML Debugger only
*/
/* Local prototypes */
static
void
acpi_rs_out_string
(
c
har
*
title
,
char
*
value
);
static
void
acpi_rs_out_string
(
c
onst
char
*
title
,
const
char
*
value
);
static
void
acpi_rs_out_integer8
(
char
*
title
,
u8
value
);
static
void
acpi_rs_out_integer8
(
c
onst
c
har
*
title
,
u8
value
);
static
void
acpi_rs_out_integer16
(
char
*
title
,
u16
value
);
static
void
acpi_rs_out_integer16
(
c
onst
c
har
*
title
,
u16
value
);
static
void
acpi_rs_out_integer32
(
char
*
title
,
u32
value
);
static
void
acpi_rs_out_integer32
(
c
onst
c
har
*
title
,
u32
value
);
static
void
acpi_rs_out_integer64
(
char
*
title
,
u64
value
);
static
void
acpi_rs_out_integer64
(
c
onst
c
har
*
title
,
u64
value
);
static
void
acpi_rs_out_title
(
char
*
title
);
static
void
acpi_rs_out_title
(
c
onst
c
har
*
title
);
static
void
acpi_rs_dump_byte_list
(
u16
length
,
u8
*
data
);
...
...
@@ -208,7 +208,7 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)
{
u8
*
target
=
NULL
;
u8
*
previous_target
;
char
*
name
;
c
onst
c
har
*
name
;
u8
count
;
/* First table entry must contain the table length (# of table entries) */
...
...
@@ -248,10 +248,8 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)
case
ACPI_RSD_UINT8
:
if
(
table
->
pointer
)
{
acpi_rs_out_string
(
name
,
ACPI_CAST_PTR
(
char
,
table
->
pointer
[
*
target
]));
acpi_rs_out_string
(
name
,
table
->
pointer
[
*
target
]);
}
else
{
acpi_rs_out_integer8
(
name
,
ACPI_GET8
(
target
));
}
...
...
@@ -276,26 +274,20 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)
case
ACPI_RSD_1BITFLAG
:
acpi_rs_out_string
(
name
,
ACPI_CAST_PTR
(
char
,
table
->
pointer
[
*
target
&
0x01
]));
acpi_rs_out_string
(
name
,
table
->
pointer
[
*
target
&
0x01
]);
break
;
case
ACPI_RSD_2BITFLAG
:
acpi_rs_out_string
(
name
,
ACPI_CAST_PTR
(
char
,
table
->
pointer
[
*
target
&
0x03
]));
acpi_rs_out_string
(
name
,
table
->
pointer
[
*
target
&
0x03
]);
break
;
case
ACPI_RSD_3BITFLAG
:
acpi_rs_out_string
(
name
,
ACPI_CAST_PTR
(
char
,
table
->
pointer
[
*
target
&
0x07
]));
acpi_rs_out_string
(
name
,
table
->
pointer
[
*
target
&
0x07
]);
break
;
case
ACPI_RSD_SHORTLIST
:
...
...
@@ -481,7 +473,7 @@ static void acpi_rs_dump_address_common(union acpi_resource_data *resource)
*
******************************************************************************/
static
void
acpi_rs_out_string
(
c
har
*
title
,
char
*
value
)
static
void
acpi_rs_out_string
(
c
onst
char
*
title
,
const
char
*
value
)
{
acpi_os_printf
(
"%27s : %s"
,
title
,
value
);
...
...
@@ -491,30 +483,30 @@ static void acpi_rs_out_string(char *title, char *value)
acpi_os_printf
(
"
\n
"
);
}
static
void
acpi_rs_out_integer8
(
char
*
title
,
u8
value
)
static
void
acpi_rs_out_integer8
(
c
onst
c
har
*
title
,
u8
value
)
{
acpi_os_printf
(
"%27s : %2.2X
\n
"
,
title
,
value
);
}
static
void
acpi_rs_out_integer16
(
char
*
title
,
u16
value
)
static
void
acpi_rs_out_integer16
(
c
onst
c
har
*
title
,
u16
value
)
{
acpi_os_printf
(
"%27s : %4.4X
\n
"
,
title
,
value
);
}
static
void
acpi_rs_out_integer32
(
char
*
title
,
u32
value
)
static
void
acpi_rs_out_integer32
(
c
onst
c
har
*
title
,
u32
value
)
{
acpi_os_printf
(
"%27s : %8.8X
\n
"
,
title
,
value
);
}
static
void
acpi_rs_out_integer64
(
char
*
title
,
u64
value
)
static
void
acpi_rs_out_integer64
(
c
onst
c
har
*
title
,
u64
value
)
{
acpi_os_printf
(
"%27s : %8.8X%8.8X
\n
"
,
title
,
ACPI_FORMAT_UINT64
(
value
));
}
static
void
acpi_rs_out_title
(
char
*
title
)
static
void
acpi_rs_out_title
(
c
onst
c
har
*
title
)
{
acpi_os_printf
(
"%27s : "
,
title
);
...
...
drivers/acpi/acpica/rsutils.c
View file @
1b982baf
...
...
@@ -671,7 +671,7 @@ acpi_rs_get_aei_method_data(struct acpi_namespace_node *node,
acpi_status
acpi_rs_get_method_data
(
acpi_handle
handle
,
char
*
path
,
struct
acpi_buffer
*
ret_buffer
)
c
onst
c
har
*
path
,
struct
acpi_buffer
*
ret_buffer
)
{
union
acpi_operand_object
*
obj_desc
;
acpi_status
status
;
...
...
drivers/acpi/acpica/tbfadt.c
View file @
1b982baf
...
...
@@ -53,7 +53,7 @@ static void
acpi_tb_init_generic_address
(
struct
acpi_generic_address
*
generic_address
,
u8
space_id
,
u8
byte_width
,
u64
address
,
char
*
register_name
,
u8
flags
);
u64
address
,
c
onst
c
har
*
register_name
,
u8
flags
);
static
void
acpi_tb_convert_fadt
(
void
);
...
...
@@ -65,7 +65,7 @@ acpi_tb_select_address(char *register_name, u32 address32, u64 address64);
/* Table for conversion of FADT to common internal format and FADT validation */
typedef
struct
acpi_fadt_info
{
char
*
name
;
c
onst
c
har
*
name
;
u16
address64
;
u16
address32
;
u16
length
;
...
...
@@ -192,7 +192,7 @@ static void
acpi_tb_init_generic_address
(
struct
acpi_generic_address
*
generic_address
,
u8
space_id
,
u8
byte_width
,
u64
address
,
char
*
register_name
,
u8
flags
)
u64
address
,
c
onst
c
har
*
register_name
,
u8
flags
)
{
u8
bit_width
;
...
...
@@ -385,14 +385,15 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
{
/*
* Check if the FADT is larger than the largest table that we expect
* (t
he ACPI 5.0 version). If so, truncate the table, and issu
e
* a warning.
* (t
ypically the current ACPI specification version). If so, truncat
e
*
the table, and issue
a warning.
*/
if
(
length
>
sizeof
(
struct
acpi_table_fadt
))
{
ACPI_BIOS_WARNING
((
AE_INFO
,
"FADT (revision %u) is longer than
ACPI 5.0 version
, "
"FADT (revision %u) is longer than
%s length
, "
"truncating length %u to %u"
,
table
->
revision
,
length
,
table
->
revision
,
ACPI_FADT_CONFORMANCE
,
length
,
(
u32
)
sizeof
(
struct
acpi_table_fadt
)));
}
...
...
@@ -467,7 +468,7 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
static
void
acpi_tb_convert_fadt
(
void
)
{
char
*
name
;
c
onst
c
har
*
name
;
struct
acpi_generic_address
*
address64
;
u32
address32
;
u8
length
;
...
...
@@ -646,9 +647,12 @@ static void acpi_tb_convert_fadt(void)
if
((
address64
->
address
&&
!
length
)
||
(
!
address64
->
address
&&
length
))
{
ACPI_BIOS_WARNING
((
AE_INFO
,
"Optional FADT field %s has zero address or length: "
"0x%8.8X%8.8X/0x%X"
,
name
,
"Optional FADT field %s has valid %s but zero %s: "
"0x%8.8X%8.8X/0x%X"
,
name
,
(
length
?
"Length"
:
"Address"
),
(
length
?
"Address"
:
"Length"
),
ACPI_FORMAT_UINT64
(
address64
->
address
),
length
));
...
...
drivers/acpi/acpica/tbxfload.c
View file @
1b982baf
...
...
@@ -82,7 +82,7 @@ acpi_status __init acpi_load_tables(void)
* their customized default region handlers.
*/
status
=
acpi_ev_install_region_handlers
();
if
(
ACPI_FAILURE
(
status
)
&&
status
!=
AE_ALREADY_EXISTS
)
{
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"During Region initialization"
));
return_ACPI_STATUS
(
status
);
...
...
drivers/acpi/acpica/utdebug.c
View file @
1b982baf
...
...
@@ -51,13 +51,9 @@
ACPI_MODULE_NAME
(
"utdebug"
)
#ifdef ACPI_DEBUG_OUTPUT
static
acpi_thread_id
acpi_gbl_prev_thread_id
=
(
acpi_thread_id
)
0xFFFFFFFF
;
static
char
*
acpi_gbl_fn_entry_str
=
"----Entry"
;
static
char
*
acpi_gbl_fn_exit_str
=
"----Exit-"
;
/* Local prototypes */
static
const
char
*
acpi_ut_trim_function_name
(
const
char
*
function_name
);
static
acpi_thread_id
acpi_gbl_previous_thread_id
=
(
acpi_thread_id
)
0xFFFFFFFF
;
static
const
char
*
acpi_gbl_function_entry_prefix
=
"----Entry"
;
static
const
char
*
acpi_gbl_function_exit_prefix
=
"----Exit-"
;
/*******************************************************************************
*
...
...
@@ -178,14 +174,14 @@ acpi_debug_print(u32 requested_debug_level,
* Thread tracking and context switch notification
*/
thread_id
=
acpi_os_get_thread_id
();
if
(
thread_id
!=
acpi_gbl_prev_thread_id
)
{
if
(
thread_id
!=
acpi_gbl_prev
ious
_thread_id
)
{
if
(
ACPI_LV_THREADS
&
acpi_dbg_level
)
{
acpi_os_printf
(
"
\n
**** Context Switch from TID %u to TID %u ****
\n\n
"
,
(
u32
)
acpi_gbl_prev_thread_id
,
(
u32
)
thread_id
);
(
u32
)
acpi_gbl_prev
ious
_thread_id
,
(
u32
)
thread_id
);
}
acpi_gbl_prev_thread_id
=
thread_id
;
acpi_gbl_prev
ious
_thread_id
=
thread_id
;
acpi_gbl_nesting_level
=
0
;
}
...
...
@@ -287,7 +283,8 @@ acpi_ut_trace(u32 line_number,
if
(
ACPI_IS_DEBUG_ENABLED
(
ACPI_LV_FUNCTIONS
,
component_id
))
{
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s
\n
"
,
acpi_gbl_fn_entry_str
);
component_id
,
"%s
\n
"
,
acpi_gbl_function_entry_prefix
);
}
}
...
...
@@ -312,7 +309,8 @@ ACPI_EXPORT_SYMBOL(acpi_ut_trace)
void
acpi_ut_trace_ptr
(
u32
line_number
,
const
char
*
function_name
,
const
char
*
module_name
,
u32
component_id
,
void
*
pointer
)
const
char
*
module_name
,
u32
component_id
,
const
void
*
pointer
)
{
acpi_gbl_nesting_level
++
;
...
...
@@ -323,8 +321,8 @@ acpi_ut_trace_ptr(u32 line_number,
if
(
ACPI_IS_DEBUG_ENABLED
(
ACPI_LV_FUNCTIONS
,
component_id
))
{
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s %p
\n
"
,
acpi_gbl_fn_entry_str
,
pointer
);
component_id
,
"%s %p
\n
"
,
acpi_gbl_function_entry_prefix
,
pointer
);
}
}
...
...
@@ -348,7 +346,7 @@ acpi_ut_trace_ptr(u32 line_number,
void
acpi_ut_trace_str
(
u32
line_number
,
const
char
*
function_name
,
const
char
*
module_name
,
u32
component_id
,
char
*
string
)
const
char
*
module_name
,
u32
component_id
,
c
onst
c
har
*
string
)
{
acpi_gbl_nesting_level
++
;
...
...
@@ -359,8 +357,8 @@ acpi_ut_trace_str(u32 line_number,
if
(
ACPI_IS_DEBUG_ENABLED
(
ACPI_LV_FUNCTIONS
,
component_id
))
{
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s %s
\n
"
,
acpi_gbl_fn_entry_str
,
string
);
component_id
,
"%s %s
\n
"
,
acpi_gbl_function_entry_prefix
,
string
);
}
}
...
...
@@ -396,7 +394,7 @@ acpi_ut_trace_u32(u32 line_number,
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s %08X
\n
"
,
acpi_gbl_f
n_entry_str
,
integer
);
acpi_gbl_f
unction_entry_prefix
,
integer
);
}
}
...
...
@@ -427,7 +425,8 @@ acpi_ut_exit(u32 line_number,
if
(
ACPI_IS_DEBUG_ENABLED
(
ACPI_LV_FUNCTIONS
,
component_id
))
{
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s
\n
"
,
acpi_gbl_fn_exit_str
);
component_id
,
"%s
\n
"
,
acpi_gbl_function_exit_prefix
);
}
if
(
acpi_gbl_nesting_level
)
{
...
...
@@ -467,14 +466,14 @@ acpi_ut_status_exit(u32 line_number,
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s %s
\n
"
,
acpi_gbl_f
n_exit_str
,
acpi_gbl_f
unction_exit_prefix
,
acpi_format_exception
(
status
));
}
else
{
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s ****Exception****: %s
\n
"
,
acpi_gbl_f
n_exit_str
,
acpi_gbl_f
unction_exit_prefix
,
acpi_format_exception
(
status
));
}
}
...
...
@@ -514,7 +513,7 @@ acpi_ut_value_exit(u32 line_number,
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s %8.8X%8.8X
\n
"
,
acpi_gbl_f
n_exit_str
,
acpi_gbl_f
unction_exit_prefix
,
ACPI_FORMAT_UINT64
(
value
));
}
...
...
@@ -552,8 +551,8 @@ acpi_ut_ptr_exit(u32 line_number,
if
(
ACPI_IS_DEBUG_ENABLED
(
ACPI_LV_FUNCTIONS
,
component_id
))
{
acpi_debug_print
(
ACPI_LV_FUNCTIONS
,
line_number
,
function_name
,
module_name
,
component_id
,
"%s %p
\n
"
,
acpi_gbl_fn_exit_str
,
ptr
);
component_id
,
"%s %p
\n
"
,
acpi_gbl_function_exit_prefix
,
ptr
);
}
if
(
acpi_gbl_nesting_level
)
{
...
...
drivers/acpi/acpica/utdecode.c
View file @
1b982baf
...
...
@@ -446,7 +446,7 @@ const char *acpi_ut_get_mutex_name(u32 mutex_id)
/* Names for Notify() values, used for debug output */
static
const
char
*
acpi_gbl_generic_notify
[
ACPI_NOTIFY_MAX
+
1
]
=
{
static
const
char
*
acpi_gbl_generic_notify
[
ACPI_
GENERIC_
NOTIFY_MAX
+
1
]
=
{
/* 00 */
"Bus Check"
,
/* 01 */
"Device Check"
,
/* 02 */
"Device Wake"
,
...
...
@@ -459,49 +459,53 @@ static const char *acpi_gbl_generic_notify[ACPI_NOTIFY_MAX + 1] = {
/* 09 */
"Device PLD Check"
,
/* 0A */
"Reserved"
,
/* 0B */
"System Locality Update"
,
/* 0C */
"Shutdown Request"
,
/* 0C */
"Shutdown Request"
,
/* Reserved in ACPI 6.0 */
/* 0D */
"System Resource Affinity Update"
};
static
const
char
*
acpi_gbl_device_notify
[
4
]
=
{
static
const
char
*
acpi_gbl_device_notify
[
5
]
=
{
/* 80 */
"Status Change"
,
/* 81 */
"Information Change"
,
/* 82 */
"Device-Specific Change"
,
/* 83 */
"Device-Specific Change"
/* 83 */
"Device-Specific Change"
,
/* 84 */
"Reserved"
};
static
const
char
*
acpi_gbl_processor_notify
[
4
]
=
{
static
const
char
*
acpi_gbl_processor_notify
[
5
]
=
{
/* 80 */
"Performance Capability Change"
,
/* 81 */
"C-State Change"
,
/* 82 */
"Throttling Capability Change"
,
/* 83 */
"Device-Specific Change"
/* 83 */
"Guaranteed Change"
,
/* 84 */
"Minimum Excursion"
};
static
const
char
*
acpi_gbl_thermal_notify
[
4
]
=
{
static
const
char
*
acpi_gbl_thermal_notify
[
5
]
=
{
/* 80 */
"Thermal Status Change"
,
/* 81 */
"Thermal Trip Point Change"
,
/* 82 */
"Thermal Device List Change"
,
/* 83 */
"Thermal Relationship Change"
/* 83 */
"Thermal Relationship Change"
,
/* 84 */
"Reserved"
};
const
char
*
acpi_ut_get_notify_name
(
u32
notify_value
,
acpi_object_type
type
)
{
/* 00 - 0D are
common to all object types
*/
/* 00 - 0D are
"common to all object types" (from ACPI Spec)
*/
if
(
notify_value
<=
ACPI_NOTIFY_MAX
)
{
if
(
notify_value
<=
ACPI_
GENERIC_
NOTIFY_MAX
)
{
return
(
acpi_gbl_generic_notify
[
notify_value
]);
}
/* 0
D
- 7F are reserved */
/* 0
E
- 7F are reserved */
if
(
notify_value
<=
ACPI_MAX_SYS_NOTIFY
)
{
return
(
"Reserved"
);
}
/* 80 - 8
3
are per-object-type */
/* 80 - 8
4
are per-object-type */
if
(
notify_value
<=
0x83
)
{
if
(
notify_value
<=
ACPI_SPECIFIC_NOTIFY_MAX
)
{
switch
(
type
)
{
case
ACPI_TYPE_ANY
:
case
ACPI_TYPE_DEVICE
:
...
...
drivers/acpi/acpica/uteval.c
View file @
1b982baf
...
...
@@ -69,7 +69,7 @@ ACPI_MODULE_NAME("uteval")
acpi_status
acpi_ut_evaluate_object
(
struct
acpi_namespace_node
*
prefix_node
,
char
*
path
,
c
onst
c
har
*
path
,
u32
expected_return_btypes
,
union
acpi_operand_object
**
return_desc
)
{
...
...
@@ -204,7 +204,7 @@ acpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node,
******************************************************************************/
acpi_status
acpi_ut_evaluate_numeric_object
(
char
*
object_name
,
acpi_ut_evaluate_numeric_object
(
c
onst
c
har
*
object_name
,
struct
acpi_namespace_node
*
device_node
,
u64
*
value
)
{
...
...
drivers/acpi/acpica/utglobal.c
View file @
1b982baf
...
...
@@ -80,6 +80,11 @@ const char *acpi_gbl_highest_dstate_names[ACPI_NUM_sx_d_METHODS] = {
"_S4D"
};
/* Hex-to-ascii */
const
char
acpi_gbl_lower_hex_digits
[]
=
"0123456789abcdef"
;
const
char
acpi_gbl_upper_hex_digits
[]
=
"0123456789ABCDEF"
;
/*******************************************************************************
*
* Namespace globals
...
...
@@ -221,6 +226,49 @@ struct acpi_fixed_event_info acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS] =
};
#endif
/* !ACPI_REDUCED_HARDWARE */
#if defined (ACPI_DISASSEMBLER) || defined (ACPI_ASL_COMPILER)
/* to_pld macro: compile/disassemble strings */
const
char
*
acpi_gbl_pld_panel_list
[]
=
{
"TOP"
,
"BOTTOM"
,
"LEFT"
,
"RIGHT"
,
"FRONT"
,
"BACK"
,
"UNKNOWN"
,
NULL
};
const
char
*
acpi_gbl_pld_vertical_position_list
[]
=
{
"UPPER"
,
"CENTER"
,
"LOWER"
,
NULL
};
const
char
*
acpi_gbl_pld_horizontal_position_list
[]
=
{
"LEFT"
,
"CENTER"
,
"RIGHT"
,
NULL
};
const
char
*
acpi_gbl_pld_shape_list
[]
=
{
"ROUND"
,
"OVAL"
,
"SQUARE"
,
"VERTICALRECTANGLE"
,
"HORIZONTALRECTANGLE"
,
"VERTICALTRAPEZOID"
,
"HORIZONTALTRAPEZOID"
,
"UNKNOWN"
,
"CHAMFERED"
,
NULL
};
#endif
/* Public globals */
ACPI_EXPORT_SYMBOL
(
acpi_gbl_FADT
)
...
...
drivers/acpi/acpica/utmisc.c
View file @
1b982baf
...
...
@@ -361,7 +361,7 @@ acpi_ut_walk_package_tree(union acpi_operand_object *source_object,
void
acpi_ut_display_init_pathname
(
u8
type
,
struct
acpi_namespace_node
*
obj_handle
,
char
*
path
)
c
onst
c
har
*
path
)
{
acpi_status
status
;
struct
acpi_buffer
buffer
;
...
...
drivers/acpi/acpica/utnonansi.c
View file @
1b982baf
...
...
@@ -205,37 +205,41 @@ acpi_ut_safe_strncat(char *dest,
*
* FUNCTION: acpi_ut_strtoul64
*
* PARAMETERS: string - Null terminated string
* base - Radix of the string: 16 or ACPI_ANY_BASE;
* ACPI_ANY_BASE means 'in behalf of to_integer'
* ret_integer - Where the converted integer is returned
* PARAMETERS: string - Null terminated string
* base - Radix of the string: 16 or 10 or
* ACPI_ANY_BASE
* max_integer_byte_width - Maximum allowable integer,in bytes:
* 4 or 8 (32 or 64 bits)
* ret_integer - Where the converted integer is
* returned
*
* RETURN: Status and Converted value
*
* DESCRIPTION: Convert a string into an unsigned value. Performs either a
* 32-bit or 64-bit conversion, depending on the
current mode
*
of the interpreter
.
* 32-bit or 64-bit conversion, depending on the
input integer
*
size (often the current mode of the interpreter)
.
*
* NOTES: acpi_gbl_integer_byte_width should be set to the proper width.
* NOTES: Negative numbers are not supported, as they are not supported
* by ACPI.
*
* acpi_gbl_integer_byte_width should be set to the proper width.
* For the core ACPICA code, this width depends on the DSDT
* version. For iASL, the default byte width is always 8.
* version. For iASL, the default byte width is always 8 for the
* parser, but error checking is performed later to flag cases
* where a 64-bit constant is defined in a 32-bit DSDT/SSDT.
*
* Does not support Octal strings, not needed at this time.
*
* There is an earlier version of the function after this one,
* below. It is slightly different than this one, and the two
* may eventually may need to be merged. (01/2016).
*
******************************************************************************/
acpi_status
acpi_ut_strtoul64
(
char
*
string
,
u32
base
,
u64
*
ret_integer
)
acpi_status
acpi_ut_strtoul64
(
char
*
string
,
u32
base
,
u32
max_integer_byte_width
,
u64
*
ret_integer
)
{
u32
this_digit
=
0
;
u64
return_value
=
0
;
u64
quotient
;
u64
dividend
;
u32
to_integer_op
=
(
base
==
ACPI_ANY_BASE
);
u32
mode32
=
(
acpi_gbl_integer_byte_width
==
4
);
u8
valid_digits
=
0
;
u8
sign_of0x
=
0
;
u8
term
=
0
;
...
...
@@ -244,6 +248,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
switch
(
base
)
{
case
ACPI_ANY_BASE
:
case
10
:
case
16
:
break
;
...
...
@@ -265,9 +270,9 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
string
++
;
}
if
(
to_integer_op
)
{
if
(
base
==
ACPI_ANY_BASE
)
{
/*
* Base equal to ACPI_ANY_BASE means '
ToInteger operation case
'.
* Base equal to ACPI_ANY_BASE means '
Either decimal or hex
'.
* We need to determine if it is decimal or hexadecimal.
*/
if
((
*
string
==
'0'
)
&&
(
tolower
((
int
)
*
(
string
+
1
))
==
'x'
))
{
...
...
@@ -284,7 +289,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
/* Any string left? Check that '0x' is not followed by white space. */
if
(
!
(
*
string
)
||
isspace
((
int
)
*
string
)
||
*
string
==
'\t'
)
{
if
(
to_integer_op
)
{
if
(
base
==
ACPI_ANY_BASE
)
{
goto
error_exit
;
}
else
{
goto
all_done
;
...
...
@@ -292,10 +297,11 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
}
/*
* Perform a 32-bit or 64-bit conversion, depending upon the
curren
t
*
execution mode of the interpreter
* Perform a 32-bit or 64-bit conversion, depending upon the
inpu
t
*
byte width
*/
dividend
=
(
mode32
)
?
ACPI_UINT32_MAX
:
ACPI_UINT64_MAX
;
dividend
=
(
max_integer_byte_width
<=
ACPI_MAX32_BYTE_WIDTH
)
?
ACPI_UINT32_MAX
:
ACPI_UINT64_MAX
;
/* Main loop: convert the string to a 32- or 64-bit integer */
...
...
@@ -323,7 +329,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
}
if
(
term
)
{
if
(
to_integer_op
)
{
if
(
base
==
ACPI_ANY_BASE
)
{
goto
error_exit
;
}
else
{
break
;
...
...
@@ -338,12 +344,13 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
valid_digits
++
;
if
(
sign_of0x
&&
((
valid_digits
>
16
)
||
((
valid_digits
>
8
)
&&
mode32
)))
{
if
(
sign_of0x
&&
((
valid_digits
>
16
)
||
((
valid_digits
>
8
)
&&
(
max_integer_byte_width
<=
ACPI_MAX32_BYTE_WIDTH
))))
{
/*
* This is to_integer operation case.
* No
any
restrictions for string-to-integer conversion,
* No restrictions for string-to-integer conversion,
* see ACPI spec.
*/
goto
error_exit
;
...
...
@@ -355,7 +362,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
&
quotient
,
NULL
);
if
(
return_value
>
quotient
)
{
if
(
to_integer_op
)
{
if
(
base
==
ACPI_ANY_BASE
)
{
goto
error_exit
;
}
else
{
break
;
...
...
@@ -378,7 +385,8 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
return_ACPI_STATUS
(
AE_OK
);
error_exit:
/* Base was set/validated above */
/* Base was set/validated above (10 or 16) */
if
(
base
==
10
)
{
return_ACPI_STATUS
(
AE_BAD_DECIMAL_CONSTANT
);
...
...
@@ -388,8 +396,7 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)
}
#ifdef _OBSOLETE_FUNCTIONS
/* TBD: use version in ACPICA main code base? */
/* DONE: 01/2016 */
/* Removed: 01/2016 */
/*******************************************************************************
*
...
...
drivers/acpi/acpica/utprint.c
View file @
1b982baf
...
...
@@ -67,11 +67,6 @@ static char *acpi_ut_format_number(char *string,
static
char
*
acpi_ut_put_number
(
char
*
string
,
u64
number
,
u8
base
,
u8
upper
);
/* Module globals */
static
const
char
acpi_gbl_lower_hex_digits
[]
=
"0123456789abcdef"
;
static
const
char
acpi_gbl_upper_hex_digits
[]
=
"0123456789ABCDEF"
;
/*******************************************************************************
*
* FUNCTION: acpi_ut_bound_string_length
...
...
drivers/acpi/acpica/uttrack.c
View file @
1b982baf
...
...
@@ -90,7 +90,7 @@ acpi_ut_remove_allocation(struct acpi_debug_mem_block *address,
******************************************************************************/
acpi_status
acpi_ut_create_list
(
char
*
list_name
,
acpi_ut_create_list
(
c
onst
c
har
*
list_name
,
u16
object_size
,
struct
acpi_memory_list
**
return_cache
)
{
struct
acpi_memory_list
*
cache
;
...
...
drivers/acpi/nfit.c
View file @
1b982baf
...
...
@@ -861,7 +861,7 @@ static ssize_t vendor_show(struct device *dev,
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"
%#x
\n
"
,
dcr
->
vendor_id
);
return
sprintf
(
buf
,
"
0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
vendor_id
)
);
}
static
DEVICE_ATTR_RO
(
vendor
);
...
...
@@ -870,7 +870,7 @@ static ssize_t rev_id_show(struct device *dev,
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"
%#x
\n
"
,
dcr
->
revision_id
);
return
sprintf
(
buf
,
"
0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
revision_id
)
);
}
static
DEVICE_ATTR_RO
(
rev_id
);
...
...
@@ -879,10 +879,38 @@ static ssize_t device_show(struct device *dev,
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"
%#x
\n
"
,
dcr
->
device_id
);
return
sprintf
(
buf
,
"
0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
device_id
)
);
}
static
DEVICE_ATTR_RO
(
device
);
static
ssize_t
subsystem_vendor_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
subsystem_vendor_id
));
}
static
DEVICE_ATTR_RO
(
subsystem_vendor
);
static
ssize_t
subsystem_rev_id_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
subsystem_revision_id
));
}
static
DEVICE_ATTR_RO
(
subsystem_rev_id
);
static
ssize_t
subsystem_device_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
subsystem_device_id
));
}
static
DEVICE_ATTR_RO
(
subsystem_device
);
static
int
num_nvdimm_formats
(
struct
nvdimm
*
nvdimm
)
{
struct
nfit_mem
*
nfit_mem
=
nvdimm_provider_data
(
nvdimm
);
...
...
@@ -900,7 +928,7 @@ static ssize_t format_show(struct device *dev,
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"
%#x
\n
"
,
dcr
->
code
);
return
sprintf
(
buf
,
"
0x%04x
\n
"
,
be16_to_cpu
(
dcr
->
code
)
);
}
static
DEVICE_ATTR_RO
(
format
);
...
...
@@ -933,7 +961,8 @@ static ssize_t format1_show(struct device *dev,
continue
;
if
(
nfit_dcr
->
dcr
->
code
==
dcr
->
code
)
continue
;
rc
=
sprintf
(
buf
,
"%#x
\n
"
,
nfit_dcr
->
dcr
->
code
);
rc
=
sprintf
(
buf
,
"%#x
\n
"
,
be16_to_cpu
(
nfit_dcr
->
dcr
->
code
));
break
;
}
if
(
rc
!=
ENXIO
)
...
...
@@ -958,7 +987,7 @@ static ssize_t serial_show(struct device *dev,
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
return
sprintf
(
buf
,
"
%#x
\n
"
,
dcr
->
serial_number
);
return
sprintf
(
buf
,
"
0x%08x
\n
"
,
be32_to_cpu
(
dcr
->
serial_number
)
);
}
static
DEVICE_ATTR_RO
(
serial
);
...
...
@@ -1000,17 +1029,39 @@ static ssize_t flags_show(struct device *dev,
}
static
DEVICE_ATTR_RO
(
flags
);
static
ssize_t
id_show
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
struct
acpi_nfit_control_region
*
dcr
=
to_nfit_dcr
(
dev
);
if
(
dcr
->
valid_fields
&
ACPI_NFIT_CONTROL_MFG_INFO_VALID
)
return
sprintf
(
buf
,
"%04x-%02x-%04x-%08x
\n
"
,
be16_to_cpu
(
dcr
->
vendor_id
),
dcr
->
manufacturing_location
,
be16_to_cpu
(
dcr
->
manufacturing_date
),
be32_to_cpu
(
dcr
->
serial_number
));
else
return
sprintf
(
buf
,
"%04x-%08x
\n
"
,
be16_to_cpu
(
dcr
->
vendor_id
),
be32_to_cpu
(
dcr
->
serial_number
));
}
static
DEVICE_ATTR_RO
(
id
);
static
struct
attribute
*
acpi_nfit_dimm_attributes
[]
=
{
&
dev_attr_handle
.
attr
,
&
dev_attr_phys_id
.
attr
,
&
dev_attr_vendor
.
attr
,
&
dev_attr_device
.
attr
,
&
dev_attr_rev_id
.
attr
,
&
dev_attr_subsystem_vendor
.
attr
,
&
dev_attr_subsystem_device
.
attr
,
&
dev_attr_subsystem_rev_id
.
attr
,
&
dev_attr_format
.
attr
,
&
dev_attr_formats
.
attr
,
&
dev_attr_format1
.
attr
,
&
dev_attr_serial
.
attr
,
&
dev_attr_rev_id
.
attr
,
&
dev_attr_flags
.
attr
,
&
dev_attr_id
.
attr
,
&
dev_attr_family
.
attr
,
&
dev_attr_dsm_mask
.
attr
,
NULL
,
...
...
drivers/acpi/nfit.h
View file @
1b982baf
...
...
@@ -52,11 +52,13 @@ enum nfit_uuids {
NFIT_UUID_MAX
,
};
enum
nfit_fic
{
NFIT_FIC_BYTE
=
0x101
,
/* byte-addressable energy backed */
NFIT_FIC_BLK
=
0x201
,
/* block-addressable non-energy backed */
NFIT_FIC_BYTEN
=
0x301
,
/* byte-addressable non-energy backed */
};
/*
* Region format interface codes are stored as an array of bytes in the
* NFIT DIMM Control Region structure
*/
#define NFIT_FIC_BYTE cpu_to_be16(0x101)
/* byte-addressable energy backed */
#define NFIT_FIC_BLK cpu_to_be16(0x201)
/* block-addressable non-energy backed */
#define NFIT_FIC_BYTEN cpu_to_be16(0x301)
/* byte-addressable non-energy backed */
enum
{
NFIT_BLK_READ_FLUSH
=
1
,
...
...
drivers/acpi/osl.c
View file @
1b982baf
...
...
@@ -582,7 +582,7 @@ static char acpi_os_name[ACPI_MAX_OVERRIDE_LEN];
acpi_status
acpi_os_predefined_override
(
const
struct
acpi_predefined_names
*
init_val
,
char
*
*
new_val
)
acpi_string
*
new_val
)
{
if
(
!
init_val
||
!
new_val
)
return
AE_BAD_PARAMETER
;
...
...
include/acpi/acpiosxf.h
View file @
1b982baf
...
...
@@ -96,7 +96,7 @@ acpi_physical_address acpi_os_get_root_pointer(void);
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_predefined_override
acpi_status
acpi_os_predefined_override
(
const
struct
acpi_predefined_names
*
init_val
,
char
*
*
new_val
);
acpi_string
*
new_val
);
#endif
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_table_override
...
...
include/acpi/acpixf.h
View file @
1b982baf
...
...
@@ -46,7 +46,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20160
10
8
#define ACPI_CA_VERSION 0x20160
31
8
#include <acpi/acconfig.h>
#include <acpi/actypes.h>
...
...
include/acpi/actbl.h
View file @
1b982baf
...
...
@@ -223,7 +223,7 @@ struct acpi_table_facs {
/*******************************************************************************
*
* FADT - Fixed ACPI Description Table (Signature "FACP")
* Version
4
* Version
6
*
******************************************************************************/
...
...
@@ -413,4 +413,6 @@ struct acpi_table_desc {
#define ACPI_FADT_V5_SIZE (u32) (ACPI_FADT_OFFSET (hypervisor_id))
#define ACPI_FADT_V6_SIZE (u32) (sizeof (struct acpi_table_fadt))
#define ACPI_FADT_CONFORMANCE "ACPI 6.1 (FADT version 6)"
#endif
/* __ACTBL_H__ */
include/acpi/actbl1.h
View file @
1b982baf
...
...
@@ -236,7 +236,8 @@ enum acpi_einj_actions {
ACPI_EINJ_CHECK_BUSY_STATUS
=
6
,
ACPI_EINJ_GET_COMMAND_STATUS
=
7
,
ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS
=
8
,
ACPI_EINJ_ACTION_RESERVED
=
9
,
/* 9 and greater are reserved */
ACPI_EINJ_GET_EXECUTE_TIMINGS
=
9
,
ACPI_EINJ_ACTION_RESERVED
=
10
,
/* 10 and greater are reserved */
ACPI_EINJ_TRIGGER_ERROR
=
0xFF
/* Except for this value */
};
...
...
@@ -348,7 +349,8 @@ enum acpi_erst_actions {
ACPI_ERST_GET_ERROR_RANGE
=
13
,
ACPI_ERST_GET_ERROR_LENGTH
=
14
,
ACPI_ERST_GET_ERROR_ATTRIBUTES
=
15
,
ACPI_ERST_ACTION_RESERVED
=
16
/* 16 and greater are reserved */
ACPI_ERST_EXECUTE_TIMINGS
=
16
,
ACPI_ERST_ACTION_RESERVED
=
17
/* 17 and greater are reserved */
};
/* Values for Instruction field above */
...
...
@@ -427,7 +429,8 @@ enum acpi_hest_types {
ACPI_HEST_TYPE_AER_ENDPOINT
=
7
,
ACPI_HEST_TYPE_AER_BRIDGE
=
8
,
ACPI_HEST_TYPE_GENERIC_ERROR
=
9
,
ACPI_HEST_TYPE_RESERVED
=
10
/* 10 and greater are reserved */
ACPI_HEST_TYPE_GENERIC_ERROR_V2
=
10
,
ACPI_HEST_TYPE_RESERVED
=
11
/* 11 and greater are reserved */
};
/*
...
...
@@ -506,7 +509,11 @@ enum acpi_hest_notify_types {
ACPI_HEST_NOTIFY_NMI
=
4
,
ACPI_HEST_NOTIFY_CMCI
=
5
,
/* ACPI 5.0 */
ACPI_HEST_NOTIFY_MCE
=
6
,
/* ACPI 5.0 */
ACPI_HEST_NOTIFY_RESERVED
=
7
/* 7 and greater are reserved */
ACPI_HEST_NOTIFY_GPIO
=
7
,
/* ACPI 6.0 */
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 */
};
/* Values for config_write_enable bitfield above */
...
...
@@ -603,6 +610,24 @@ struct acpi_hest_generic {
u32
error_block_length
;
};
/* 10: Generic Hardware Error Source, version 2 */
struct
acpi_hest_generic_v2
{
struct
acpi_hest_header
header
;
u16
related_source_id
;
u8
reserved
;
u8
enabled
;
u32
records_to_preallocate
;
u32
max_sections_per_record
;
u32
max_raw_data_length
;
struct
acpi_generic_address
error_status_address
;
struct
acpi_hest_notify
notify
;
u32
error_block_length
;
struct
acpi_generic_address
read_ack_register
;
u64
read_ack_preserve
;
u64
read_ack_write
;
};
/* Generic Error Status block */
struct
acpi_hest_generic_status
{
...
...
@@ -634,6 +659,33 @@ struct acpi_hest_generic_data {
u8
fru_text
[
20
];
};
/* Extension for revision 0x0300 */
struct
acpi_hest_generic_data_v300
{
u8
section_type
[
16
];
u32
error_severity
;
u16
revision
;
u8
validation_bits
;
u8
flags
;
u32
error_data_length
;
u8
fru_id
[
16
];
u8
fru_text
[
20
];
u64
time_stamp
;
};
/* Values for error_severity above */
#define ACPI_HEST_GEN_ERROR_RECOVERABLE 0
#define ACPI_HEST_GEN_ERROR_FATAL 1
#define ACPI_HEST_GEN_ERROR_CORRECTED 2
#define ACPI_HEST_GEN_ERROR_NONE 3
/* Flags for validation_bits above */
#define ACPI_HEST_GEN_VALID_FRU_ID (1)
#define ACPI_HEST_GEN_VALID_FRU_STRING (1<<1)
#define ACPI_HEST_GEN_VALID_TIMESTAMP (1<<2)
/*******************************************************************************
*
* MADT - Multiple APIC Description Table
...
...
@@ -934,7 +986,7 @@ struct acpi_msct_proximity {
/*******************************************************************************
*
* NFIT - NVDIMM Interface Table (ACPI 6.0)
* NFIT - NVDIMM Interface Table (ACPI 6.0
+
)
* Version 1
*
******************************************************************************/
...
...
@@ -1015,6 +1067,7 @@ struct acpi_nfit_memory_map {
#define ACPI_NFIT_MEM_NOT_ARMED (1<<3)
/* 03: Memory Device is not armed */
#define ACPI_NFIT_MEM_HEALTH_OBSERVED (1<<4)
/* 04: Memory Device observed SMART/health events */
#define ACPI_NFIT_MEM_HEALTH_ENABLED (1<<5)
/* 05: SMART/health events enabled */
#define ACPI_NFIT_MEM_MAP_FAILED (1<<6)
/* 06: Mapping to SPA failed */
/* 2: Interleave Structure */
...
...
@@ -1046,7 +1099,10 @@ struct acpi_nfit_control_region {
u16
subsystem_vendor_id
;
u16
subsystem_device_id
;
u16
subsystem_revision_id
;
u8
reserved
[
6
];
/* Reserved, must be zero */
u8
valid_fields
;
u8
manufacturing_location
;
u16
manufacturing_date
;
u8
reserved
[
2
];
/* Reserved, must be zero */
u32
serial_number
;
u16
code
;
u16
windows
;
...
...
@@ -1061,7 +1117,11 @@ struct acpi_nfit_control_region {
/* Flags */
#define ACPI_NFIT_CONTROL_BUFFERED (1)
/* Block Data Windows implementation is buffered */
#define ACPI_NFIT_CONTROL_BUFFERED (1)
/* Block Data Windows implementation is buffered */
/* valid_fields bits */
#define ACPI_NFIT_CONTROL_MFG_INFO_VALID (1)
/* Manufacturing fields are valid */
/* 5: NVDIMM Block Data Window Region Structure */
...
...
include/acpi/actbl2.h
View file @
1b982baf
...
...
@@ -321,7 +321,7 @@ struct acpi_csrt_descriptor {
* DBG2 - Debug Port Table 2
* Version 0 (Both main table and subtables)
*
* Conforms to "Microsoft Debug Port Table 2 (DBG2)",
May 22 2012.
* Conforms to "Microsoft Debug Port Table 2 (DBG2)",
December 10, 2015
*
******************************************************************************/
...
...
@@ -371,6 +371,11 @@ struct acpi_dbg2_device {
#define ACPI_DBG2_16550_COMPATIBLE 0x0000
#define ACPI_DBG2_16550_SUBSET 0x0001
#define ACPI_DBG2_ARM_PL011 0x0003
#define ACPI_DBG2_ARM_SBSA_32BIT 0x000D
#define ACPI_DBG2_ARM_SBSA_GENERIC 0x000E
#define ACPI_DBG2_ARM_DCC 0x000F
#define ACPI_DBG2_BCM2835 0x0010
#define ACPI_DBG2_1394_STANDARD 0x0000
...
...
@@ -399,7 +404,7 @@ struct acpi_table_dbgp {
* Version 1
*
* Conforms to "Intel Virtualization Technology for Directed I/O",
* Version 2.
2, Sept. 2013
* Version 2.
3, October 2014
*
******************************************************************************/
...
...
@@ -413,6 +418,8 @@ struct acpi_table_dmar {
/* Masks for Flags field above */
#define ACPI_DMAR_INTR_REMAP (1)
#define ACPI_DMAR_X2APIC_OPT_OUT (1<<1)
#define ACPI_DMAR_X2APIC_MODE (1<<2)
/* DMAR subtable header */
...
...
@@ -655,7 +662,7 @@ struct acpi_ibft_target {
* IORT - IO Remapping Table
*
* Conforms to "IO Remapping Table System Software on ARM Platforms",
* Document number: ARM DEN 0049
A,
2015
* Document number: ARM DEN 0049
B, October
2015
*
******************************************************************************/
...
...
@@ -685,7 +692,8 @@ enum acpi_iort_node_type {
ACPI_IORT_NODE_ITS_GROUP
=
0x00
,
ACPI_IORT_NODE_NAMED_COMPONENT
=
0x01
,
ACPI_IORT_NODE_PCI_ROOT_COMPLEX
=
0x02
,
ACPI_IORT_NODE_SMMU
=
0x03
ACPI_IORT_NODE_SMMU
=
0x03
,
ACPI_IORT_NODE_SMMU_V3
=
0x04
};
struct
acpi_iort_id_mapping
{
...
...
@@ -775,6 +783,23 @@ struct acpi_iort_smmu {
#define ACPI_IORT_SMMU_DVM_SUPPORTED (1)
#define ACPI_IORT_SMMU_COHERENT_WALK (1<<1)
struct
acpi_iort_smmu_v3
{
u64
base_address
;
/* SMMUv3 base address */
u32
flags
;
u32
reserved
;
u64
vatos_address
;
u32
model
;
/* O: generic SMMUv3 */
u32
event_gsiv
;
u32
pri_gsiv
;
u32
gerr_gsiv
;
u32
sync_gsiv
;
};
/* Masks for Flags field above */
#define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1)
#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (1<<1)
/*******************************************************************************
*
* IVRS - I/O Virtualization Reporting Structure
...
...
@@ -1102,10 +1127,10 @@ struct acpi_table_slic {
/*******************************************************************************
*
* SPCR - Serial Port Console Redirection table
* Version
1
* Version
2
*
* Conforms to "Serial Port Console Redirection Table",
* Version 1.0
0, January 11, 2002
* Version 1.0
3, August 10, 2015
*
******************************************************************************/
...
...
@@ -1137,6 +1162,8 @@ struct acpi_table_spcr {
#define ACPI_SPCR_DO_NOT_DISABLE (1)
/* Values for Interface Type: See the definition of the DBG2 table */
/*******************************************************************************
*
* SPMI - Server Platform Management Interface table
...
...
include/acpi/actbl3.h
View file @
1b982baf
...
...
@@ -184,7 +184,7 @@ struct acpi_table_fpdt {
struct
acpi_table_header
header
;
/* Common ACPI table header */
};
/* FPDT subtable header */
/* FPDT subtable header
(Performance Record Structure)
*/
struct
acpi_fpdt_header
{
u16
type
;
...
...
@@ -205,19 +205,15 @@ enum acpi_fpdt_type {
/* 0: Firmware Basic Boot Performance Record */
struct
acpi_fpdt_boot
{
struct
acpi_fpdt_boot
_pointer
{
struct
acpi_fpdt_header
header
;
u8
reserved
[
4
];
u64
reset_end
;
u64
load_start
;
u64
startup_start
;
u64
exit_services_entry
;
u64
exit_services_exit
;
u64
address
;
};
/* 1: S3 Performance Table Pointer Record */
struct
acpi_fpdt_s3pt_p
t
r
{
struct
acpi_fpdt_s3pt_p
ointe
r
{
struct
acpi_fpdt_header
header
;
u8
reserved
[
4
];
u64
address
;
...
...
@@ -225,7 +221,7 @@ struct acpi_fpdt_s3pt_ptr {
/*
* S3PT - S3 Performance Table. This table is pointed to by the
*
FPDT
S3 Pointer Record above.
* S3 Pointer Record above.
*/
struct
acpi_table_s3pt
{
u8
signature
[
4
];
/* "S3PT" */
...
...
@@ -233,34 +229,43 @@ struct acpi_table_s3pt {
};
/*
* S3PT Subtables
* S3PT Subtables
(Not part of the actual FPDT)
*/
struct
acpi_s3pt_header
{
u16
type
;
u8
length
;
u8
revision
;
};
/* Values for Type field
above
*/
/* Values for Type field
in S3PT header
*/
enum
acpi_s3pt_type
{
ACPI_S3PT_TYPE_RESUME
=
0
,
ACPI_S3PT_TYPE_SUSPEND
=
1
ACPI_S3PT_TYPE_SUSPEND
=
1
,
ACPI_FPDT_BOOT_PERFORMANCE
=
2
};
struct
acpi_s3pt_resume
{
struct
acpi_
s3p
t_header
header
;
struct
acpi_
fpd
t_header
header
;
u32
resume_count
;
u64
full_resume
;
u64
average_resume
;
};
struct
acpi_s3pt_suspend
{
struct
acpi_
s3p
t_header
header
;
struct
acpi_
fpd
t_header
header
;
u64
suspend_start
;
u64
suspend_end
;
};
/*
* FPDT Boot Performance Record (Not part of the actual FPDT)
*/
struct
acpi_fpdt_boot
{
struct
acpi_fpdt_header
header
;
u8
reserved
[
4
];
u64
reset_end
;
u64
load_start
;
u64
startup_start
;
u64
exit_services_entry
;
u64
exit_services_exit
;
};
/*******************************************************************************
*
* GTDT - Generic Timer Description Table (ACPI 5.1)
...
...
include/acpi/actypes.h
View file @
1b982baf
...
...
@@ -630,7 +630,8 @@ typedef u64 acpi_integer;
#define ACPI_NOTIFY_SHUTDOWN_REQUEST (u8) 0x0C
#define ACPI_NOTIFY_AFFINITY_UPDATE (u8) 0x0D
#define ACPI_NOTIFY_MAX 0x0D
#define ACPI_GENERIC_NOTIFY_MAX 0x0D
#define ACPI_SPECIFIC_NOTIFY_MAX 0x84
/*
* Types associated with ACPI names and objects. The first group of
...
...
@@ -994,7 +995,7 @@ struct acpi_buffer {
* Predefined Namespace items
*/
struct
acpi_predefined_names
{
char
*
name
;
c
onst
c
har
*
name
;
u8
type
;
char
*
val
;
};
...
...
@@ -1227,7 +1228,7 @@ struct acpi_mem_space_context {
* struct acpi_memory_list is used only if the ACPICA local cache is enabled
*/
struct
acpi_memory_list
{
char
*
list_name
;
c
onst
c
har
*
list_name
;
void
*
list_head
;
u16
object_size
;
u16
max_depth
;
...
...
include/acpi/platform/acenv.h
View file @
1b982baf
...
...
@@ -66,17 +66,28 @@
*
*****************************************************************************/
/* Common application configuration. All single threaded except for acpi_exec. */
#if (defined ACPI_ASL_COMPILER) || \
(defined ACPI_BIN_APP) || \
(defined ACPI_DUMP_APP) || \
(defined ACPI_HELP_APP) || \
(defined ACPI_NAMES_APP) || \
(defined ACPI_SRC_APP) || \
(defined ACPI_XTRACT_APP) || \
(defined ACPI_EXAMPLE_APP)
#define ACPI_APPLICATION
#define ACPI_SINGLE_THREADED
#endif
/* iASL configuration */
#ifdef ACPI_ASL_COMPILER
#define ACPI_APPLICATION
#define ACPI_DEBUG_OUTPUT
#define ACPI_CONSTANT_EVAL_ONLY
#define ACPI_LARGE_NAMESPACE_NODE
#define ACPI_DATA_TABLE_DISASSEMBLY
#define ACPI_SINGLE_THREADED
#define ACPI_32BIT_PHYSICAL_ADDRESS
#define ACPI_DISASSEMBLER 1
#endif
...
...
@@ -89,21 +100,6 @@
#define ACPI_DBG_TRACK_ALLOCATIONS
#endif
/*
* acpi_bin/acpi_dump/acpi_help/acpi_names/acpi_src/acpi_xtract/Example
* configuration. All single threaded.
*/
#if (defined ACPI_BIN_APP) || \
(defined ACPI_DUMP_APP) || \
(defined ACPI_HELP_APP) || \
(defined ACPI_NAMES_APP) || \
(defined ACPI_SRC_APP) || \
(defined ACPI_XTRACT_APP) || \
(defined ACPI_EXAMPLE_APP)
#define ACPI_APPLICATION
#define ACPI_SINGLE_THREADED
#endif
/* acpi_help configuration. Error messages disabled. */
#ifdef ACPI_HELP_APP
...
...
@@ -138,11 +134,16 @@
#define ACPI_REDUCED_HARDWARE 1
#endif
/* Linkable ACPICA library */
/* Linkable ACPICA library
. Two versions, one with full debug.
*/
#ifdef ACPI_LIBRARY
#define ACPI_USE_LOCAL_CACHE
#define ACPI_FULL_DEBUG
#define ACPI_DEBUGGER 1
#define ACPI_DISASSEMBLER 1
#ifdef _DEBUG
#define ACPI_DEBUG_OUTPUT
#endif
#endif
/* Common for all ACPICA applications */
...
...
@@ -218,6 +219,9 @@
#elif defined(__HAIKU__)
#include "achaiku.h"
#elif defined(__QNX__)
#include "acqnx.h"
#else
/* Unknown environment */
...
...
include/acpi/platform/acmsvcex.h
deleted
100644 → 0
View file @
1f716d05
/******************************************************************************
*
* Name: acmsvcex.h - Extra VC specific defines, etc.
*
*****************************************************************************/
/*
* Copyright (C) 2000 - 2016, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions, and the following disclaimer,
* without modification.
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
* substantially similar to the "NO WARRANTY" disclaimer below
* ("Disclaimer") and any redistribution must be conditioned upon
* including a substantially similar Disclaimer requirement for further
* binary redistribution.
* 3. Neither the names of the above-listed copyright holders nor the names
* of any contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* Alternatively, this software may be distributed under the terms of the
* GNU General Public License ("GPL") version 2 as published by the Free
* Software Foundation.
*
* NO WARRANTY
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*/
#ifndef __ACMSVCEX_H__
#define __ACMSVCEX_H__
/* Debug support. */
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
/* Enables specific file/lineno for leaks */
#include <crtdbg.h>
#endif
#endif
/* __ACMSVCEX_H__ */
include/acpi/platform/acwinex.h
deleted
100644 → 0
View file @
1f716d05
/******************************************************************************
*
* Name: acwinex.h - Extra OS specific defines, etc.
*
*****************************************************************************/
/*
* Copyright (C) 2000 - 2016, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions, and the following disclaimer,
* without modification.
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
* substantially similar to the "NO WARRANTY" disclaimer below
* ("Disclaimer") and any redistribution must be conditioned upon
* including a substantially similar Disclaimer requirement for further
* binary redistribution.
* 3. Neither the names of the above-listed copyright holders nor the names
* of any contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* Alternatively, this software may be distributed under the terms of the
* GNU General Public License ("GPL") version 2 as published by the Free
* Software Foundation.
*
* NO WARRANTY
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*/
#ifndef __ACWINEX_H__
#define __ACWINEX_H__
/* Windows uses VC */
#endif
/* __ACWINEX_H__ */
tools/power/acpi/os_specific/service_layers/osunixmap.c
View file @
1b982baf
...
...
@@ -54,7 +54,7 @@ ACPI_MODULE_NAME("osunixmap")
#ifndef O_BINARY
#define O_BINARY 0
#endif
#if defined(_dragon_fly) || defined(_free_BSD)
#if defined(_dragon_fly) || defined(_free_BSD)
|| defined(_QNX)
#define MMAP_FLAGS MAP_SHARED
#else
#define MMAP_FLAGS MAP_PRIVATE
...
...
tools/power/acpi/tools/acpidump/apdump.c
View file @
1b982baf
...
...
@@ -286,7 +286,8 @@ int ap_dump_table_by_address(char *ascii_address)
/* Convert argument to an integer physical address */
status
=
acpi_ut_strtoul64
(
ascii_address
,
0
,
&
long_address
);
status
=
acpi_ut_strtoul64
(
ascii_address
,
ACPI_ANY_BASE
,
ACPI_MAX64_BYTE_WIDTH
,
&
long_address
);
if
(
ACPI_FAILURE
(
status
))
{
acpi_log_error
(
"%s: Could not convert to a physical address
\n
"
,
ascii_address
);
...
...
tools/power/acpi/tools/acpidump/apmain.c
View file @
1b982baf
...
...
@@ -209,7 +209,8 @@ static int ap_do_options(int argc, char **argv)
case
'r'
:
/* Dump tables from specified RSDP */
status
=
acpi_ut_strtoul64
(
acpi_gbl_optarg
,
0
,
acpi_ut_strtoul64
(
acpi_gbl_optarg
,
ACPI_ANY_BASE
,
ACPI_MAX64_BYTE_WIDTH
,
&
gbl_rsdp_base
);
if
(
ACPI_FAILURE
(
status
))
{
acpi_log_error
...
...
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