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
173cc11a
Commit
173cc11a
authored
Dec 15, 2009
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'acpica' into release
parents
8bea8672
88e50715
Changes
26
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
721 additions
and
301 deletions
+721
-301
drivers/acpi/acpica/acnamesp.h
drivers/acpi/acpica/acnamesp.h
+6
-3
drivers/acpi/acpica/acobject.h
drivers/acpi/acpica/acobject.h
+5
-1
drivers/acpi/acpica/dsmethod.c
drivers/acpi/acpica/dsmethod.c
+1
-1
drivers/acpi/acpica/dswload.c
drivers/acpi/acpica/dswload.c
+39
-25
drivers/acpi/acpica/evregion.c
drivers/acpi/acpica/evregion.c
+2
-2
drivers/acpi/acpica/evrgnini.c
drivers/acpi/acpica/evrgnini.c
+15
-0
drivers/acpi/acpica/evxface.c
drivers/acpi/acpica/evxface.c
+2
-2
drivers/acpi/acpica/evxfevnt.c
drivers/acpi/acpica/evxfevnt.c
+2
-2
drivers/acpi/acpica/evxfregn.c
drivers/acpi/acpica/evxfregn.c
+2
-2
drivers/acpi/acpica/exmutex.c
drivers/acpi/acpica/exmutex.c
+9
-9
drivers/acpi/acpica/nsaccess.c
drivers/acpi/acpica/nsaccess.c
+1
-1
drivers/acpi/acpica/nsdump.c
drivers/acpi/acpica/nsdump.c
+1
-1
drivers/acpi/acpica/nseval.c
drivers/acpi/acpica/nseval.c
+18
-0
drivers/acpi/acpica/nsnames.c
drivers/acpi/acpica/nsnames.c
+1
-1
drivers/acpi/acpica/nspredef.c
drivers/acpi/acpica/nspredef.c
+37
-56
drivers/acpi/acpica/nsrepair.c
drivers/acpi/acpica/nsrepair.c
+373
-74
drivers/acpi/acpica/nsrepair2.c
drivers/acpi/acpica/nsrepair2.c
+156
-39
drivers/acpi/acpica/nsutils.c
drivers/acpi/acpica/nsutils.c
+11
-46
drivers/acpi/acpica/nsxfeval.c
drivers/acpi/acpica/nsxfeval.c
+5
-5
drivers/acpi/acpica/nsxfname.c
drivers/acpi/acpica/nsxfname.c
+5
-5
drivers/acpi/acpica/nsxfobj.c
drivers/acpi/acpica/nsxfobj.c
+7
-7
drivers/acpi/acpica/psxface.c
drivers/acpi/acpica/psxface.c
+2
-1
drivers/acpi/acpica/rsxface.c
drivers/acpi/acpica/rsxface.c
+1
-1
drivers/acpi/acpica/utcopy.c
drivers/acpi/acpica/utcopy.c
+14
-13
include/acpi/acoutput.h
include/acpi/acoutput.h
+5
-3
include/acpi/acpixf.h
include/acpi/acpixf.h
+1
-1
No files found.
drivers/acpi/acpica/acnamesp.h
View file @
173cc11a
...
...
@@ -296,6 +296,11 @@ acpi_ns_complex_repairs(struct acpi_predefined_data *data,
acpi_status
validate_status
,
union
acpi_operand_object
**
return_object_ptr
);
void
acpi_ns_remove_null_elements
(
struct
acpi_predefined_data
*
data
,
u8
package_type
,
union
acpi_operand_object
*
obj_desc
);
/*
* nssearch - Namespace searching and entry
*/
...
...
@@ -354,9 +359,7 @@ acpi_ns_externalize_name(u32 internal_name_length,
const
char
*
internal_name
,
u32
*
converted_name_length
,
char
**
converted_name
);
struct
acpi_namespace_node
*
acpi_ns_map_handle_to_node
(
acpi_handle
handle
);
acpi_handle
acpi_ns_convert_entry_to_handle
(
struct
acpi_namespace_node
*
node
);
struct
acpi_namespace_node
*
acpi_ns_validate_handle
(
acpi_handle
handle
);
void
acpi_ns_terminate
(
void
);
...
...
drivers/acpi/acpica/acobject.h
View file @
173cc11a
...
...
@@ -180,7 +180,11 @@ struct acpi_object_method {
u8
sync_level
;
union
acpi_operand_object
*
mutex
;
u8
*
aml_start
;
union
{
ACPI_INTERNAL_METHOD
implementation
;
union
acpi_operand_object
*
handler
;
}
extra
;
u32
aml_length
;
u8
thread_count
;
acpi_owner_id
owner_id
;
...
...
drivers/acpi/acpica/dsmethod.c
View file @
173cc11a
...
...
@@ -414,7 +414,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
/* Invoke an internal method if necessary */
if
(
obj_desc
->
method
.
method_flags
&
AML_METHOD_INTERNAL_ONLY
)
{
status
=
obj_desc
->
method
.
implementation
(
next_walk_state
);
status
=
obj_desc
->
method
.
extra
.
implementation
(
next_walk_state
);
if
(
status
==
AE_OK
)
{
status
=
AE_CTRL_TERMINATE
;
}
...
...
drivers/acpi/acpica/dswload.c
View file @
173cc11a
...
...
@@ -212,18 +212,19 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,
case
ACPI_TYPE_BUFFER
:
/*
* These types we will allow, but we will change the type.
This
* enables some existing code of the form:
* These types we will allow, but we will change the type.
*
This
enables some existing code of the form:
*
* Name (DEB, 0)
* Scope (DEB) { ... }
*
* Note: silently change the type here. On the second pass,
we will report
* a warning
* Note: silently change the type here. On the second pass,
*
we will report
a warning
*/
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)
\n
"
,
path
,
"Type override - [%4.4s] had invalid type (%s) "
"for Scope operator, changed to type ANY
\n
"
,
acpi_ut_get_node_name
(
node
),
acpi_ut_get_type_name
(
node
->
type
)));
node
->
type
=
ACPI_TYPE_ANY
;
...
...
@@ -235,8 +236,10 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,
/* All other types are an error */
ACPI_ERROR
((
AE_INFO
,
"Invalid type (%s) for target of Scope operator [%4.4s] (Cannot override)"
,
acpi_ut_get_type_name
(
node
->
type
),
path
));
"Invalid type (%s) for target of "
"Scope operator [%4.4s] (Cannot override)"
,
acpi_ut_get_type_name
(
node
->
type
),
acpi_ut_get_node_name
(
node
)));
return_ACPI_STATUS
(
AE_AML_OPERAND_TYPE
);
}
...
...
@@ -697,15 +700,16 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
case
ACPI_TYPE_BUFFER
:
/*
* These types we will allow, but we will change the type.
This
* enables some existing code of the form:
* These types we will allow, but we will change the type.
*
This
enables some existing code of the form:
*
* Name (DEB, 0)
* Scope (DEB) { ... }
*/
ACPI_WARNING
((
AE_INFO
,
"Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)"
,
buffer_ptr
,
"Type override - [%4.4s] had invalid type (%s) "
"for Scope operator, changed to type ANY
\n
"
,
acpi_ut_get_node_name
(
node
),
acpi_ut_get_type_name
(
node
->
type
)));
node
->
type
=
ACPI_TYPE_ANY
;
...
...
@@ -717,9 +721,10 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
/* All other types are an error */
ACPI_ERROR
((
AE_INFO
,
"Invalid type (%s) for target of Scope operator [%4.4s]"
,
"Invalid type (%s) for target of "
"Scope operator [%4.4s] (Cannot override)"
,
acpi_ut_get_type_name
(
node
->
type
),
buffer_ptr
));
acpi_ut_get_node_name
(
node
)
));
return
(
AE_AML_OPERAND_TYPE
);
}
...
...
@@ -1047,9 +1052,22 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
}
/*
* If we are executing a method, initialize the region
* The op_region is not fully parsed at this time. The only valid
* argument is the space_id. (We must save the address of the
* AML of the address and length operands)
*
* If we have a valid region, initialize it. The namespace is
* unlocked at this point.
*
* Need to unlock interpreter if it is locked (if we are running
* a control method), in order to allow _REG methods to be run
* during acpi_ev_initialize_region.
*/
if
(
walk_state
->
method_node
)
{
/*
* Executing a method: initialize the region and unlock
* the interpreter
*/
status
=
acpi_ex_create_region
(
op
->
named
.
data
,
op
->
named
.
length
,
...
...
@@ -1058,21 +1076,17 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
}
}
/*
* The op_region is not fully parsed at this time. Only valid
* argument is the space_id. (We must save the address of the
* AML of the address and length operands)
*/
acpi_ex_exit_interpreter
();
}
/*
* If we have a valid region, initialize it
* Namespace is NOT locked at this point.
*/
status
=
acpi_ev_initialize_region
(
acpi_ns_get_attached_object
(
node
),
FALSE
);
if
(
walk_state
->
method_node
)
{
acpi_ex_enter_interpreter
();
}
if
(
ACPI_FAILURE
(
status
))
{
/*
* If AE_NOT_EXIST is returned, it is not fatal
...
...
drivers/acpi/acpica/evregion.c
View file @
173cc11a
...
...
@@ -718,7 +718,7 @@ acpi_ev_install_handler(acpi_handle obj_handle,
/* Convert and validate the device handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
if
(
!
node
)
{
return
(
AE_BAD_PARAMETER
);
}
...
...
@@ -1087,7 +1087,7 @@ acpi_ev_reg_run(acpi_handle obj_handle,
/* Convert and validate the device handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
if
(
!
node
)
{
return
(
AE_BAD_PARAMETER
);
}
...
...
drivers/acpi/acpica/evrgnini.c
View file @
173cc11a
...
...
@@ -575,6 +575,21 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
handler_obj
=
obj_desc
->
thermal_zone
.
handler
;
break
;
case
ACPI_TYPE_METHOD
:
/*
* If we are executing module level code, the original
* Node's object was replaced by this Method object and we
* saved the handler in the method object.
*
* See acpi_ns_exec_module_code
*/
if
(
obj_desc
->
method
.
flags
&
AOPOBJ_MODULE_LEVEL
)
{
handler_obj
=
obj_desc
->
method
.
extra
.
handler
;
}
break
;
default:
/* Ignore other objects */
break
;
...
...
drivers/acpi/acpica/evxface.c
View file @
173cc11a
...
...
@@ -259,7 +259,7 @@ acpi_install_notify_handler(acpi_handle device,
/* Convert and validate the device handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
device
);
node
=
acpi_ns_
validate_handl
e
(
device
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -425,7 +425,7 @@ acpi_remove_notify_handler(acpi_handle device,
/* Convert and validate the device handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
device
);
node
=
acpi_ns_
validate_handl
e
(
device
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
drivers/acpi/acpica/evxfevnt.c
View file @
173cc11a
...
...
@@ -610,7 +610,7 @@ acpi_install_gpe_block(acpi_handle gpe_device,
return
(
status
);
}
node
=
acpi_ns_
map_handle_to_nod
e
(
gpe_device
);
node
=
acpi_ns_
validate_handl
e
(
gpe_device
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -698,7 +698,7 @@ acpi_status acpi_remove_gpe_block(acpi_handle gpe_device)
return
(
status
);
}
node
=
acpi_ns_
map_handle_to_nod
e
(
gpe_device
);
node
=
acpi_ns_
validate_handl
e
(
gpe_device
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
drivers/acpi/acpica/evxfregn.c
View file @
173cc11a
...
...
@@ -89,7 +89,7 @@ acpi_install_address_space_handler(acpi_handle device,
/* Convert and validate the device handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
device
);
node
=
acpi_ns_
validate_handl
e
(
device
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -155,7 +155,7 @@ acpi_remove_address_space_handler(acpi_handle device,
/* Convert and validate the device handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
device
);
node
=
acpi_ns_
validate_handl
e
(
device
);
if
(
!
node
||
((
node
->
type
!=
ACPI_TYPE_DEVICE
)
&&
(
node
->
type
!=
ACPI_TYPE_PROCESSOR
)
&&
...
...
drivers/acpi/acpica/exmutex.c
View file @
173cc11a
...
...
@@ -375,6 +375,15 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
return_ACPI_STATUS
(
AE_AML_MUTEX_NOT_ACQUIRED
);
}
/* Must have a valid thread ID */
if
(
!
walk_state
->
thread
)
{
ACPI_ERROR
((
AE_INFO
,
"Cannot release Mutex [%4.4s], null thread info"
,
acpi_ut_get_node_name
(
obj_desc
->
mutex
.
node
)));
return_ACPI_STATUS
(
AE_AML_INTERNAL
);
}
/*
* The Mutex is owned, but this thread must be the owner.
* Special case for Global Lock, any thread can release
...
...
@@ -392,15 +401,6 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
return_ACPI_STATUS
(
AE_AML_NOT_OWNER
);
}
/* Must have a valid thread ID */
if
(
!
walk_state
->
thread
)
{
ACPI_ERROR
((
AE_INFO
,
"Cannot release Mutex [%4.4s], null thread info"
,
acpi_ut_get_node_name
(
obj_desc
->
mutex
.
node
)));
return_ACPI_STATUS
(
AE_AML_INTERNAL
);
}
/*
* The sync level of the mutex must be equal to the current sync level. In
* other words, the current level means that at least one mutex at that
...
...
drivers/acpi/acpica/nsaccess.c
View file @
173cc11a
...
...
@@ -165,7 +165,7 @@ acpi_status acpi_ns_root_initialize(void)
obj_desc
->
method
.
method_flags
=
AML_METHOD_INTERNAL_ONLY
;
obj_desc
->
method
.
implementation
=
obj_desc
->
method
.
extra
.
implementation
=
acpi_ut_osi_implementation
;
#endif
break
;
...
...
drivers/acpi/acpica/nsdump.c
View file @
173cc11a
...
...
@@ -180,7 +180,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,
return
(
AE_OK
);
}
this_node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
this_node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
if
(
!
this_node
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_INFO
,
"Invalid object handle %p
\n
"
,
obj_handle
));
...
...
drivers/acpi/acpica/nseval.c
View file @
173cc11a
...
...
@@ -381,6 +381,18 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj,
method_obj
->
method
.
next_object
);
type
=
acpi_ns_get_type
(
parent_node
);
/*
* Get the region handler and save it in the method object. We may need
* this if an operation region declaration causes a _REG method to be run.
*
* We can't do this in acpi_ps_link_module_code because
* acpi_gbl_root_node->Object is NULL at PASS1.
*/
if
((
type
==
ACPI_TYPE_DEVICE
)
&&
parent_node
->
object
)
{
method_obj
->
method
.
extra
.
handler
=
parent_node
->
object
->
device
.
handler
;
}
/* Must clear next_object (acpi_ns_attach_object needs the field) */
method_obj
->
method
.
next_object
=
NULL
;
...
...
@@ -415,6 +427,12 @@ acpi_ns_exec_module_code(union acpi_operand_object *method_obj,
ACPI_DEBUG_PRINT
((
ACPI_DB_INIT
,
"Executed module-level code at %p
\n
"
,
method_obj
->
method
.
aml_start
));
/* Delete a possible implicit return value (in slack mode) */
if
(
info
->
return_object
)
{
acpi_ut_remove_reference
(
info
->
return_object
);
}
/* Detach the temporary method object */
acpi_ns_detach_object
(
parent_node
);
...
...
drivers/acpi/acpica/nsnames.c
View file @
173cc11a
...
...
@@ -232,7 +232,7 @@ acpi_ns_handle_to_pathname(acpi_handle target_handle,
ACPI_FUNCTION_TRACE_PTR
(
ns_handle_to_pathname
,
target_handle
);
node
=
acpi_ns_
map_handle_to_nod
e
(
target_handle
);
node
=
acpi_ns_
validate_handl
e
(
target_handle
);
if
(
!
node
)
{
return_ACPI_STATUS
(
AE_BAD_PARAMETER
);
}
...
...
drivers/acpi/acpica/nspredef.c
View file @
173cc11a
...
...
@@ -216,29 +216,38 @@ acpi_ns_check_predefined_names(struct acpi_namespace_node *node,
data
->
pathname
=
pathname
;
/*
* Check that the type of the
return object is what is expected for
* this predefined name
* Check that the type of the
main return object is what is expected
*
for
this predefined name
*/
status
=
acpi_ns_check_object_type
(
data
,
return_object_ptr
,
predefined
->
info
.
expected_btypes
,
ACPI_NOT_PACKAGE_ELEMENT
);
if
(
ACPI_FAILURE
(
status
))
{
goto
check_validation_status
;
goto
exit
;
}
/* For returned Package objects, check the type of all sub-objects */
if
(
return_object
->
common
.
type
==
ACPI_TYPE_PACKAGE
)
{
/*
* For returned Package objects, check the type of all sub-objects.
* Note: Package may have been newly created by call above.
*/
if
((
*
return_object_ptr
)
->
common
.
type
==
ACPI_TYPE_PACKAGE
)
{
status
=
acpi_ns_check_package
(
data
,
return_object_ptr
);
if
(
ACPI_FAILURE
(
status
))
{
goto
exit
;
}
}
/*
* Perform additional, more complicated repairs on a per-name
* basis.
* The return object was OK, or it was successfully repaired above.
* Now make some additional checks such as verifying that package
* objects are sorted correctly (if required) or buffer objects have
* the correct data width (bytes vs. dwords). These repairs are
* performed on a per-name basis, i.e., the code is specific to
* particular predefined names.
*/
status
=
acpi_ns_complex_repairs
(
data
,
node
,
status
,
return_object_ptr
);
check_validation_status
:
exit
:
/*
* If the object validation failed or if we successfully repaired one
* or more objects, mark the parent node to suppress further warning
...
...
@@ -427,6 +436,13 @@ acpi_ns_check_package(struct acpi_predefined_data *data,
data
->
pathname
,
package
->
ret_info
.
type
,
return_object
->
package
.
count
));
/*
* For variable-length Packages, we can safely remove all embedded
* and trailing NULL package elements
*/
acpi_ns_remove_null_elements
(
data
,
package
->
ret_info
.
type
,
return_object
);
/* Extract package count and elements array */
elements
=
return_object
->
package
.
elements
;
...
...
@@ -461,10 +477,10 @@ acpi_ns_check_package(struct acpi_predefined_data *data,
if
(
count
<
expected_count
)
{
goto
package_too_small
;
}
else
if
(
count
>
expected_count
)
{
ACPI_
WARN_PREDEFINED
((
AE_INFO
,
data
->
pathname
,
data
->
node_flags
,
"Return Package is larger than needed - "
"found %u, expected %u"
,
count
,
ACPI_
DEBUG_PRINT
((
ACPI_DB_REPAIR
,
"%s: Return Package is larger than needed - "
"found %u, expected %u
\n
"
,
data
->
pathname
,
count
,
expected_count
));
}
...
...
@@ -680,53 +696,18 @@ acpi_ns_check_package_list(struct acpi_predefined_data *data,
union
acpi_operand_object
*
sub_package
;
union
acpi_operand_object
**
sub_elements
;
acpi_status
status
;
u8
non_trailing_null
=
FALSE
;
u32
expected_count
;
u32
i
;
u32
j
;
/* Validate each sub-Package in the parent Package */
for
(
i
=
0
;
i
<
count
;
i
++
)
{
/*
* Handling for NULL package elements. For now, we will simply allow
* a parent package with trailing NULL elements. This can happen if
* the package was defined to be longer than the initializer list.
* This is legal as per the ACPI specification. It is often used
* to allow for dynamic initialization of a Package.
*
* A future enhancement may be to simply truncate the package to
* remove the trailing NULL elements.
* Validate each sub-Package in the parent Package
*
* NOTE: assumes list of sub-packages contains no NULL elements.
* Any NULL elements should have been removed by earlier call
* to acpi_ns_remove_null_elements.
*/
if
(
!
(
*
elements
))
{
if
(
!
non_trailing_null
)
{
/* Ensure the remaining elements are all NULL */
for
(
j
=
1
;
j
<
(
count
-
i
+
1
);
j
++
)
{
if
(
elements
[
j
])
{
non_trailing_null
=
TRUE
;
}
}
if
(
!
non_trailing_null
)
{
/* Ignore the trailing NULL elements */
return
(
AE_OK
);
}
}
/* There are trailing non-null elements, issue warning */
ACPI_WARN_PREDEFINED
((
AE_INFO
,
data
->
pathname
,
data
->
node_flags
,
"Found NULL element at package index %u"
,
i
));
elements
++
;
continue
;
}
for
(
i
=
0
;
i
<
count
;
i
++
)
{
sub_package
=
*
elements
;
sub_elements
=
sub_package
->
package
.
elements
;
...
...
drivers/acpi/acpica/nsrepair.c
View file @
173cc11a
This diff is collapsed.
Click to expand it.
drivers/acpi/acpica/nsrepair2.c
View file @
173cc11a
...
...
@@ -45,6 +45,7 @@
#include <acpi/acpi.h>
#include "accommon.h"
#include "acnamesp.h"
#include "acpredef.h"
#define _COMPONENT ACPI_NAMESPACE
ACPI_MODULE_NAME
(
"nsrepair2"
)
...
...
@@ -73,6 +74,10 @@ static acpi_status
acpi_ns_repair_ALR
(
struct
acpi_predefined_data
*
data
,
union
acpi_operand_object
**
return_object_ptr
);
static
acpi_status
acpi_ns_repair_FDE
(
struct
acpi_predefined_data
*
data
,
union
acpi_operand_object
**
return_object_ptr
);
static
acpi_status
acpi_ns_repair_PSS
(
struct
acpi_predefined_data
*
data
,
union
acpi_operand_object
**
return_object_ptr
);
...
...
@@ -88,9 +93,6 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
u32
sort_index
,
u8
sort_direction
,
char
*
sort_key_name
);
static
acpi_status
acpi_ns_remove_null_elements
(
union
acpi_operand_object
*
package
);
static
acpi_status
acpi_ns_sort_list
(
union
acpi_operand_object
**
elements
,
u32
count
,
u32
index
,
u8
sort_direction
);
...
...
@@ -104,17 +106,27 @@ acpi_ns_sort_list(union acpi_operand_object **elements,
* This table contains the names of the predefined methods for which we can
* perform more complex repairs.
*
* _ALR: Sort the list ascending by ambient_illuminance if necessary
* _PSS: Sort the list descending by Power if necessary
* _TSS: Sort the list descending by Power if necessary
* As necessary:
*
* _ALR: Sort the list ascending by ambient_illuminance
* _FDE: Convert Buffer of BYTEs to a Buffer of DWORDs
* _GTM: Convert Buffer of BYTEs to a Buffer of DWORDs
* _PSS: Sort the list descending by Power
* _TSS: Sort the list descending by Power
*/
static
const
struct
acpi_repair_info
acpi_ns_repairable_names
[]
=
{
{
"_ALR"
,
acpi_ns_repair_ALR
},
{
"_FDE"
,
acpi_ns_repair_FDE
},
{
"_GTM"
,
acpi_ns_repair_FDE
},
/* _GTM has same repair as _FDE */
{
"_PSS"
,
acpi_ns_repair_PSS
},
{
"_TSS"
,
acpi_ns_repair_TSS
},
{{
0
,
0
,
0
,
0
},
NULL
}
/* Table terminator */
};
#define ACPI_FDE_FIELD_COUNT 5
#define ACPI_FDE_BYTE_BUFFER_SIZE 5
#define ACPI_FDE_DWORD_BUFFER_SIZE (ACPI_FDE_FIELD_COUNT * sizeof (u32))
/******************************************************************************
*
* FUNCTION: acpi_ns_complex_repairs
...
...
@@ -213,6 +225,94 @@ acpi_ns_repair_ALR(struct acpi_predefined_data *data,
return
(
status
);
}
/******************************************************************************
*
* FUNCTION: acpi_ns_repair_FDE
*
* PARAMETERS: Data - Pointer to validation data structure
* return_object_ptr - Pointer to the object returned from the
* evaluation of a method or object
*
* RETURN: Status. AE_OK if object is OK or was repaired successfully
*
* DESCRIPTION: Repair for the _FDE and _GTM objects. The expected return
* value is a Buffer of 5 DWORDs. This function repairs a common
* problem where the return value is a Buffer of BYTEs, not
* DWORDs.
*
*****************************************************************************/
static
acpi_status
acpi_ns_repair_FDE
(
struct
acpi_predefined_data
*
data
,
union
acpi_operand_object
**
return_object_ptr
)
{
union
acpi_operand_object
*
return_object
=
*
return_object_ptr
;
union
acpi_operand_object
*
buffer_object
;
u8
*
byte_buffer
;
u32
*
dword_buffer
;
u32
i
;
ACPI_FUNCTION_NAME
(
ns_repair_FDE
);
switch
(
return_object
->
common
.
type
)
{
case
ACPI_TYPE_BUFFER
:
/* This is the expected type. Length should be (at least) 5 DWORDs */
if
(
return_object
->
buffer
.
length
>=
ACPI_FDE_DWORD_BUFFER_SIZE
)
{
return
(
AE_OK
);
}
/* We can only repair if we have exactly 5 BYTEs */
if
(
return_object
->
buffer
.
length
!=
ACPI_FDE_BYTE_BUFFER_SIZE
)
{
ACPI_WARN_PREDEFINED
((
AE_INFO
,
data
->
pathname
,
data
->
node_flags
,
"Incorrect return buffer length %u, expected %u"
,
return_object
->
buffer
.
length
,
ACPI_FDE_DWORD_BUFFER_SIZE
));
return
(
AE_AML_OPERAND_TYPE
);
}
/* Create the new (larger) buffer object */
buffer_object
=
acpi_ut_create_buffer_object
(
ACPI_FDE_DWORD_BUFFER_SIZE
);
if
(
!
buffer_object
)
{
return
(
AE_NO_MEMORY
);
}
/* Expand each byte to a DWORD */
byte_buffer
=
return_object
->
buffer
.
pointer
;
dword_buffer
=
ACPI_CAST_PTR
(
u32
,
buffer_object
->
buffer
.
pointer
);
for
(
i
=
0
;
i
<
ACPI_FDE_FIELD_COUNT
;
i
++
)
{
*
dword_buffer
=
(
u32
)
*
byte_buffer
;
dword_buffer
++
;
byte_buffer
++
;
}
ACPI_DEBUG_PRINT
((
ACPI_DB_REPAIR
,
"%s Expanded Byte Buffer to expected DWord Buffer
\n
"
,
data
->
pathname
));
break
;
default:
return
(
AE_AML_OPERAND_TYPE
);
}
/* Delete the original return object, return the new buffer object */
acpi_ut_remove_reference
(
return_object
);
*
return_object_ptr
=
buffer_object
;
data
->
flags
|=
ACPI_OBJECT_REPAIRED
;
return
(
AE_OK
);
}
/******************************************************************************
*
* FUNCTION: acpi_ns_repair_TSS
...
...
@@ -345,6 +445,8 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
u32
previous_value
;
acpi_status
status
;
ACPI_FUNCTION_NAME
(
ns_check_sorted_list
);
/* The top-level object must be a package */
if
(
return_object
->
common
.
type
!=
ACPI_TYPE_PACKAGE
)
{
...
...
@@ -352,24 +454,10 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
}
/*
* Detect any NULL package elements and remove them from the
* package.
*
* TBD: We may want to do this for all predefined names that
* return a variable-length package of packages.
* NOTE: assumes list of sub-packages contains no NULL elements.
* Any NULL elements should have been removed by earlier call
* to acpi_ns_remove_null_elements.
*/
status
=
acpi_ns_remove_null_elements
(
return_object
);
if
(
status
==
AE_NULL_ENTRY
)
{
ACPI_INFO_PREDEFINED
((
AE_INFO
,
data
->
pathname
,
data
->
node_flags
,
"NULL elements removed from package"
));
/* Exit if package is now zero length */
if
(
!
return_object
->
package
.
count
)
{
return
(
AE_NULL_ENTRY
);
}
}
outer_elements
=
return_object
->
package
.
elements
;
outer_element_count
=
return_object
->
package
.
count
;
if
(
!
outer_element_count
)
{
...
...
@@ -422,10 +510,9 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
data
->
flags
|=
ACPI_OBJECT_REPAIRED
;
ACPI_INFO_PREDEFINED
((
AE_INFO
,
data
->
pathname
,
data
->
node_flags
,
"Repaired unsorted list - now sorted by %s"
,
sort_key_name
));
ACPI_DEBUG_PRINT
((
ACPI_DB_REPAIR
,
"%s: Repaired unsorted list - now sorted by %s
\n
"
,
data
->
pathname
,
sort_key_name
));
return
(
AE_OK
);
}
...
...
@@ -440,36 +527,63 @@ acpi_ns_check_sorted_list(struct acpi_predefined_data *data,
*
* FUNCTION: acpi_ns_remove_null_elements
*
* PARAMETERS: obj_desc - A Package object
* PARAMETERS: Data - Pointer to validation data structure
* package_type - An acpi_return_package_types value
* obj_desc - A Package object
*
* RETURN: Status. AE_NULL_ENTRY means that one or more elements were
* removed.
* RETURN: None.
*
* DESCRIPTION: Remove all NULL package elements and update the package count.
* DESCRIPTION: Remove all NULL package elements from packages that contain
* a variable number of sub-packages.
*
*****************************************************************************/
static
acpi_status
acpi_ns_remove_null_elements
(
union
acpi_operand_object
*
obj_desc
)
void
acpi_ns_remove_null_elements
(
struct
acpi_predefined_data
*
data
,
u8
package_type
,
union
acpi_operand_object
*
obj_desc
)
{
union
acpi_operand_object
**
source
;
union
acpi_operand_object
**
dest
;
acpi_status
status
=
AE_OK
;
u32
count
;
u32
new_count
;
u32
i
;
ACPI_FUNCTION_NAME
(
ns_remove_null_elements
);
/*
* PTYPE1 packages contain no subpackages.
* PTYPE2 packages contain a variable number of sub-packages. We can
* safely remove all NULL elements from the PTYPE2 packages.
*/
switch
(
package_type
)
{
case
ACPI_PTYPE1_FIXED
:
case
ACPI_PTYPE1_VAR
:
case
ACPI_PTYPE1_OPTION
:
return
;
case
ACPI_PTYPE2
:
case
ACPI_PTYPE2_COUNT
:
case
ACPI_PTYPE2_PKG_COUNT
:
case
ACPI_PTYPE2_FIXED
:
case
ACPI_PTYPE2_MIN
:
case
ACPI_PTYPE2_REV_FIXED
:
break
;
default:
return
;
}
count
=
obj_desc
->
package
.
count
;
new_count
=
count
;
source
=
obj_desc
->
package
.
elements
;
dest
=
source
;
/* Examine all elements of the package object */
/* Examine all elements of the package object
, remove nulls
*/
for
(
i
=
0
;
i
<
count
;
i
++
)
{
if
(
!*
source
)
{
status
=
AE_NULL_ENTRY
;
new_count
--
;
}
else
{
*
dest
=
*
source
;
...
...
@@ -478,15 +592,18 @@ acpi_ns_remove_null_elements(union acpi_operand_object *obj_desc)
source
++
;
}
if
(
status
==
AE_NULL_ENTRY
)
{
/* Update parent package if any null elements were removed */
if
(
new_count
<
count
)
{
ACPI_DEBUG_PRINT
((
ACPI_DB_REPAIR
,
"%s: Found and removed %u NULL elements
\n
"
,
data
->
pathname
,
(
count
-
new_count
)));
/* NULL terminate list and update the package count */
*
dest
=
NULL
;
obj_desc
->
package
.
count
=
new_count
;
}
return
(
status
);
}
/******************************************************************************
...
...
drivers/acpi/acpica/nsutils.c
View file @
173cc11a
...
...
@@ -671,24 +671,25 @@ acpi_ns_externalize_name(u32 internal_name_length,
/*******************************************************************************
*
* FUNCTION: acpi_ns_
map_handle_to_nod
e
* FUNCTION: acpi_ns_
validate_handl
e
*
* PARAMETERS: Handle - Handle to be converted to an Node
* PARAMETERS: Handle - Handle to be validated and typecast to a
* namespace node.
*
* RETURN: A
Name table entry pointer
* RETURN: A
pointer to a namespace node
*
* DESCRIPTION: Convert a namespace handle to a real Node
* DESCRIPTION: Convert a namespace handle to a namespace node. Handles special
* cases for the root node.
*
* N
ote
: Real integer handles would allow for more verification
* N
OTE
: Real integer handles would allow for more verification
* and keep all pointers within this subsystem - however this introduces
* more (and perhaps unnecessary) overhead.
*
* The current implemenation is basically a placeholder until such time comes
* that it is needed.
* more overhead and has not been necessary to this point. Drivers
* holding handles are typically notified before a node becomes invalid
* due to a table unload.
*
******************************************************************************/
struct
acpi_namespace_node
*
acpi_ns_
map_handle_to_nod
e
(
acpi_handle
handle
)
struct
acpi_namespace_node
*
acpi_ns_
validate_handl
e
(
acpi_handle
handle
)
{
ACPI_FUNCTION_ENTRY
();
...
...
@@ -708,42 +709,6 @@ struct acpi_namespace_node *acpi_ns_map_handle_to_node(acpi_handle handle)
return
(
ACPI_CAST_PTR
(
struct
acpi_namespace_node
,
handle
));
}
/*******************************************************************************
*
* FUNCTION: acpi_ns_convert_entry_to_handle
*
* PARAMETERS: Node - Node to be converted to a Handle
*
* RETURN: A user handle
*
* DESCRIPTION: Convert a real Node to a namespace handle
*
******************************************************************************/
acpi_handle
acpi_ns_convert_entry_to_handle
(
struct
acpi_namespace_node
*
node
)
{
/*
* Simple implementation for now;
*/
return
((
acpi_handle
)
node
);
/* Example future implementation ---------------------
if (!Node)
{
return (NULL);
}
if (Node == acpi_gbl_root_node)
{
return (ACPI_ROOT_OBJECT);
}
return ((acpi_handle) Node);
------------------------------------------------------*/
}
/*******************************************************************************
*
* FUNCTION: acpi_ns_terminate
...
...
drivers/acpi/acpica/nsxfeval.c
View file @
173cc11a
...
...
@@ -190,7 +190,7 @@ acpi_evaluate_object(acpi_handle handle,
/* Convert and validate the device handle */
info
->
prefix_node
=
acpi_ns_
map_handle_to_nod
e
(
handle
);
info
->
prefix_node
=
acpi_ns_
validate_handl
e
(
handle
);
if
(
!
info
->
prefix_node
)
{
status
=
AE_BAD_PARAMETER
;
goto
cleanup
;
...
...
@@ -552,7 +552,7 @@ acpi_ns_get_device_callback(acpi_handle obj_handle,
return
(
status
);
}
node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
status
=
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
if
(
ACPI_FAILURE
(
status
))
{
return
(
status
);
...
...
@@ -729,7 +729,7 @@ acpi_attach_data(acpi_handle obj_handle,
/* Convert and validate the handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -775,7 +775,7 @@ acpi_detach_data(acpi_handle obj_handle, acpi_object_handler handler)
/* Convert and validate the handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -822,7 +822,7 @@ acpi_get_data(acpi_handle obj_handle, acpi_object_handler handler, void **data)
/* Convert and validate the handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
obj_handle
);
node
=
acpi_ns_
validate_handl
e
(
obj_handle
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
drivers/acpi/acpica/nsxfname.c
View file @
173cc11a
...
...
@@ -93,7 +93,7 @@ acpi_get_handle(acpi_handle parent,
/* Convert a parent handle to a prefix node */
if
(
parent
)
{
prefix_node
=
acpi_ns_
map_handle_to_nod
e
(
parent
);
prefix_node
=
acpi_ns_
validate_handl
e
(
parent
);
if
(
!
prefix_node
)
{
return
(
AE_BAD_PARAMETER
);
}
...
...
@@ -114,7 +114,7 @@ acpi_get_handle(acpi_handle parent,
if
(
!
ACPI_STRCMP
(
pathname
,
ACPI_NS_ROOT_PATH
))
{
*
ret_handle
=
acpi_ns_convert_entry_to_handle
(
acpi_gbl_root_node
);
ACPI_CAST_PTR
(
acpi_handle
,
acpi_gbl_root_node
);
return
(
AE_OK
);
}
}
else
if
(
!
prefix_node
)
{
...
...
@@ -129,7 +129,7 @@ acpi_get_handle(acpi_handle parent,
status
=
acpi_ns_get_node
(
prefix_node
,
pathname
,
ACPI_NS_NO_UPSEARCH
,
&
node
);
if
(
ACPI_SUCCESS
(
status
))
{
*
ret_handle
=
acpi_ns_convert_entry_to_handle
(
node
);
*
ret_handle
=
ACPI_CAST_PTR
(
acpi_handle
,
node
);
}
return
(
status
);
...
...
@@ -186,7 +186,7 @@ acpi_get_name(acpi_handle handle, u32 name_type, struct acpi_buffer * buffer)
return
(
status
);
}
node
=
acpi_ns_
map_handle_to_nod
e
(
handle
);
node
=
acpi_ns_
validate_handl
e
(
handle
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -291,7 +291,7 @@ acpi_get_object_info(acpi_handle handle,
goto
cleanup
;
}
node
=
acpi_ns_
map_handle_to_nod
e
(
handle
);
node
=
acpi_ns_
validate_handl
e
(
handle
);
if
(
!
node
)
{
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
return
(
AE_BAD_PARAMETER
);
...
...
drivers/acpi/acpica/nsxfobj.c
View file @
173cc11a
...
...
@@ -79,7 +79,7 @@ acpi_status acpi_get_id(acpi_handle handle, acpi_owner_id * ret_id)
/* Convert and validate the handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
handle
);
node
=
acpi_ns_
validate_handl
e
(
handle
);
if
(
!
node
)
{
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
return
(
AE_BAD_PARAMETER
);
...
...
@@ -132,7 +132,7 @@ acpi_status acpi_get_type(acpi_handle handle, acpi_object_type * ret_type)
/* Convert and validate the handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
handle
);
node
=
acpi_ns_
validate_handl
e
(
handle
);
if
(
!
node
)
{
(
void
)
acpi_ut_release_mutex
(
ACPI_MTX_NAMESPACE
);
return
(
AE_BAD_PARAMETER
);
...
...
@@ -182,7 +182,7 @@ acpi_status acpi_get_parent(acpi_handle handle, acpi_handle * ret_handle)
/* Convert and validate the handle */
node
=
acpi_ns_
map_handle_to_nod
e
(
handle
);
node
=
acpi_ns_
validate_handl
e
(
handle
);
if
(
!
node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -191,7 +191,7 @@ acpi_status acpi_get_parent(acpi_handle handle, acpi_handle * ret_handle)
/* Get the parent entry */
parent_node
=
acpi_ns_get_parent_node
(
node
);
*
ret_handle
=
acpi_ns_convert_entry_to_handle
(
parent_node
);
*
ret_handle
=
ACPI_CAST_PTR
(
acpi_handle
,
parent_node
);
/* Return exception if parent is null */
...
...
@@ -251,7 +251,7 @@ acpi_get_next_object(acpi_object_type type,
/* Start search at the beginning of the specified scope */
parent_node
=
acpi_ns_
map_handle_to_nod
e
(
parent
);
parent_node
=
acpi_ns_
validate_handl
e
(
parent
);
if
(
!
parent_node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -260,7 +260,7 @@ acpi_get_next_object(acpi_object_type type,
/* Non-null handle, ignore the parent */
/* Convert and validate the handle */
child_node
=
acpi_ns_
map_handle_to_nod
e
(
child
);
child_node
=
acpi_ns_
validate_handl
e
(
child
);
if
(
!
child_node
)
{
status
=
AE_BAD_PARAMETER
;
goto
unlock_and_exit
;
...
...
@@ -276,7 +276,7 @@ acpi_get_next_object(acpi_object_type type,
}
if
(
ret_handle
)
{
*
ret_handle
=
acpi_ns_convert_entry_to_handle
(
node
);
*
ret_handle
=
ACPI_CAST_PTR
(
acpi_handle
,
node
);
}
unlock_and_exit:
...
...
drivers/acpi/acpica/psxface.c
View file @
173cc11a
...
...
@@ -287,7 +287,8 @@ acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info)
/* Invoke an internal method if necessary */
if
(
info
->
obj_desc
->
method
.
method_flags
&
AML_METHOD_INTERNAL_ONLY
)
{
status
=
info
->
obj_desc
->
method
.
implementation
(
walk_state
);
status
=
info
->
obj_desc
->
method
.
extra
.
implementation
(
walk_state
);
info
->
return_object
=
walk_state
->
return_desc
;
/* Cleanup states */
...
...
drivers/acpi/acpica/rsxface.c
View file @
173cc11a
...
...
@@ -104,7 +104,7 @@ acpi_rs_validate_parameters(acpi_handle device_handle,
return_ACPI_STATUS
(
AE_BAD_PARAMETER
);
}
node
=
acpi_ns_
map_handle_to_nod
e
(
device_handle
);
node
=
acpi_ns_
validate_handl
e
(
device_handle
);
if
(
!
node
)
{
return_ACPI_STATUS
(
AE_BAD_PARAMETER
);
}
...
...
drivers/acpi/acpica/utcopy.c
View file @
173cc11a
...
...
@@ -326,8 +326,8 @@ acpi_ut_copy_ielement_to_eelement(u8 object_type,
* buffer. A package object by definition contains other objects.
*
* The buffer is assumed to have sufficient space for the object.
* The caller must have verified the buffer length needed using
the
* acpi_ut_get_object_size function before calling this function.
* The caller must have verified the buffer length needed using
*
the
acpi_ut_get_object_size function before calling this function.
*
******************************************************************************/
...
...
@@ -382,12 +382,12 @@ acpi_ut_copy_ipackage_to_epackage(union acpi_operand_object *internal_object,
* FUNCTION: acpi_ut_copy_iobject_to_eobject
*
* PARAMETERS: internal_object - The internal object to be converted
*
buffer_pt
r - Where the object is returned
*
ret_buffe
r - Where the object is returned
*
* RETURN: Status
*
* DESCRIPTION: This function is called to build an API object to be returned
to
* the caller.
* DESCRIPTION: This function is called to build an API object to be returned
* t
o t
he caller.
*
******************************************************************************/
...
...
@@ -626,7 +626,7 @@ acpi_ut_copy_epackage_to_ipackage(union acpi_object *external_object,
* PARAMETERS: external_object - The external object to be converted
* internal_object - Where the internal object is returned
*
* RETURN: Status
- the status of the call
* RETURN: Status
*
* DESCRIPTION: Converts an external object to an internal object.
*
...
...
@@ -897,10 +897,11 @@ acpi_ut_copy_ielement_to_ielement(u8 object_type,
*
* FUNCTION: acpi_ut_copy_ipackage_to_ipackage
*
* PARAMETERS: *source_obj - Pointer to the source package object
* *dest_obj - Where the internal object is returned
* PARAMETERS: source_obj - Pointer to the source package object
* dest_obj - Where the internal object is returned
* walk_state - Current Walk state descriptor
*
* RETURN: Status
- the status of the call
* RETURN: Status
*
* DESCRIPTION: This function is called to copy an internal package object
* into another internal package object.
...
...
@@ -953,9 +954,9 @@ acpi_ut_copy_ipackage_to_ipackage(union acpi_operand_object *source_obj,
*
* FUNCTION: acpi_ut_copy_iobject_to_iobject
*
* PARAMETERS: walk_state - Current walk state
* source_desc - The internal object to be copied
* PARAMETERS: source_desc - The internal object to be copied
* dest_desc - Where the copied object is returned
* walk_state - Current walk state
*
* RETURN: Status
*
...
...
include/acpi/acoutput.h
View file @
173cc11a
...
...
@@ -85,7 +85,8 @@
#define ACPI_LV_INIT 0x00000001
#define ACPI_LV_DEBUG_OBJECT 0x00000002
#define ACPI_LV_INFO 0x00000004
#define ACPI_LV_ALL_EXCEPTIONS 0x00000007
#define ACPI_LV_REPAIR 0x00000008
#define ACPI_LV_ALL_EXCEPTIONS 0x0000000F
/* Trace verbosity level 1 [Standard Trace Level] */
...
...
@@ -143,6 +144,7 @@
#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
#define ACPI_DB_REPAIR ACPI_DEBUG_LEVEL (ACPI_LV_REPAIR)
#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
/* Trace level -- also used in the global "DebugLevel" */
...
...
@@ -174,8 +176,8 @@
/* Defaults for debug_level, debug and normal */
#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO)
#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT)
#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO
| ACPI_LV_REPAIR
)
#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_DEBUG_OBJECT
| ACPI_LV_REPAIR
)
#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
...
...
include/acpi/acpixf.h
View file @
173cc11a
...
...
@@ -47,7 +47,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20091
112
#define ACPI_CA_VERSION 0x20091
214
#include "actypes.h"
#include "actbl.h"
...
...
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