ACPICA: 20130517 release
Subsystems (2)
cover ACPICA: 20130517 release
The 20130517 ACPICA kernel resident system updates is linuxized based on the pm/linux-next branch.
The patch set has passed a build/boot test on the following machines:
Dell Inspiron Mini 1010 (i386)
HP Compaq 8200 Elite SFF PC (x86-64)
With the following kernel configuration items enabled:
CONFIG_ACPI_AC
CONFIG_ACPI_BATTERY
CONFIG_ACPI_NUMA
CONFIG_ACPI_PROCESSOR
CONFIG_ACPI_THERMAL
CONFIG_ACPI_VIDEO
CONFIG_CPU_FREQ
CONFIG_I2C_SCMI
CONFIG_SENSORS_ACPI_POWER
CONFIG_PANASONIC_LAPTOP
CONFIG_XO15_EBOOK
No new divergences are introduced in this release.
Please review.
Bob Moore (7):
ACPICA: Split buffer dump routines into separate file
ACPICA: Split internal error msg routines to a separate file
ACPICA: Split table print utilities to a new a separate file
ACPICA: New: Portable acpidump utility (get system ACPI tables)
ACPICA: Update interface to AcpiUtValidAcpiName
ACPICA: Support Mac OS X in Makefile
ACPICA: Update version to 20130517
Chao Guan (1):
ACPICA: Standardize all switch() blocks
Lv Zheng (5):
ACPICA: Add option to disable loading of SSDTs from the RSDT/XSDT
ACPICA: Do not use extended sleep registers unless HW-reduced bit is
set
ACPICA: Move _PRT repair into the standard complex repair module
ACPICA: Add several repairs for _CST predefined name
ACPICA: _CST repair: Handle null package entries
Tomasz Nowicki (3):
ACPICA: ACPICA Termination: Delete global lock pending lock
ACPICA: Fix possible memory leak in GPE init error path
ACPICA: Clear events initialized flag upon event component
termination
drivers/acpi/acpica/Makefile | 3 + drivers/acpi/acpica/acglobal.h | 6 + drivers/acpi/acpica/acutils.h | 44 +++++- drivers/acpi/acpica/dscontrol.c | 4 +- drivers/acpi/acpica/dsfield.c | 4 + drivers/acpi/acpica/dsinit.c | 1 + drivers/acpi/acpica/dsmthdat.c | 2 +- drivers/acpi/acpica/dsobject.c | 3 +- drivers/acpi/acpica/dsopcode.c | 1 + drivers/acpi/acpica/dsutils.c | 5 +- drivers/acpi/acpica/dswexec.c | 3 +- drivers/acpi/acpica/dswload.c | 7 +- drivers/acpi/acpica/dswload2.c | 4 + drivers/acpi/acpica/evglock.c | 1 + drivers/acpi/acpica/evgpe.c | 6 +- drivers/acpi/acpica/evgpeblk.c | 2 + drivers/acpi/acpica/evgpeinit.c | 3 + drivers/acpi/acpica/evhandler.c | 7 + drivers/acpi/acpica/evmisc.c | 3 + drivers/acpi/acpica/evrgnini.c | 2 + drivers/acpi/acpica/evxfgpe.c | 3 + drivers/acpi/acpica/evxfregn.c | 1 + drivers/acpi/acpica/exconfig.c | 1 + drivers/acpi/acpica/exconvrt.c | 13 +- drivers/acpi/acpica/excreate.c | 3 - drivers/acpi/acpica/exdebug.c | 2 + drivers/acpi/acpica/exdump.c | 2 + drivers/acpi/acpica/exfield.c | 4 + drivers/acpi/acpica/exfldio.c | 2 - drivers/acpi/acpica/exmisc.c | 12 +- drivers/acpi/acpica/exoparg1.c | 16 +-- drivers/acpi/acpica/exoparg2.c | 1 - drivers/acpi/acpica/exoparg3.c | 1 - drivers/acpi/acpica/exoparg6.c | 5 - drivers/acpi/acpica/exprep.c | 7 + drivers/acpi/acpica/exregion.c | 27 +++- drivers/acpi/acpica/exresnte.c | 1 + drivers/acpi/acpica/exresolv.c | 6 +- drivers/acpi/acpica/exresop.c | 9 +- drivers/acpi/acpica/exstore.c | 4 +- drivers/acpi/acpica/exstoren.c | 4 - drivers/acpi/acpica/hwacpi.c | 2 +- drivers/acpi/acpica/hwgpe.c | 3 + drivers/acpi/acpica/hwregs.c | 4 +- drivers/acpi/acpica/hwxface.c | 3 + drivers/acpi/acpica/hwxfsleep.c | 12 +- drivers/acpi/acpica/nsaccess.c | 1 + drivers/acpi/acpica/nsconvert.c | 3 + drivers/acpi/acpica/nsdump.c | 10 ++ drivers/acpi/acpica/nsinit.c | 9 ++ drivers/acpi/acpica/nspredef.c | 14 +- drivers/acpi/acpica/nsprepkg.c | 5 - drivers/acpi/acpica/nsrepair.c | 1 + drivers/acpi/acpica/nsrepair2.c | 283 +++++++++++++++++++++++++++++++++----- drivers/acpi/acpica/nsutils.c | 3 + drivers/acpi/acpica/nsxfeval.c | 1 + drivers/acpi/acpica/psargs.c | 4 + drivers/acpi/acpica/psloop.c | 2 +- drivers/acpi/acpica/psobject.c | 1 + drivers/acpi/acpica/psparse.c | 3 +- drivers/acpi/acpica/pstree.c | 2 + drivers/acpi/acpica/rscalc.c | 7 +- drivers/acpi/acpica/rscreate.c | 27 ---- drivers/acpi/acpica/rsdump.c | 10 ++ drivers/acpi/acpica/rsmisc.c | 3 +- drivers/acpi/acpica/rsutils.c | 5 + drivers/acpi/acpica/rsxface.c | 1 + drivers/acpi/acpica/tbinstal.c | 7 +- drivers/acpi/acpica/tbprint.c | 237 ++++++++++++++++++++++++++++++++ drivers/acpi/acpica/tbutils.c | 191 +------------------------- drivers/acpi/acpica/tbxfload.c | 25 ++-- drivers/acpi/acpica/utbuffer.c | 201 +++++++++++++++++++++++++++ drivers/acpi/acpica/utcopy.c | 11 +- drivers/acpi/acpica/utdebug.c | 148 +------------------- drivers/acpi/acpica/utdelete.c | 3 +- drivers/acpi/acpica/uterror.c | 289 +++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/uteval.c | 7 +- drivers/acpi/acpica/utexcep.c | 1 + drivers/acpi/acpica/utids.c | 3 + drivers/acpi/acpica/utmisc.c | 2 + drivers/acpi/acpica/utobject.c | 5 +- drivers/acpi/acpica/utstring.c | 19 ++- drivers/acpi/acpica/uttrack.c | 8 ++ drivers/acpi/acpica/utxferror.c | 277 ------------------------------------- drivers/acpi/osl.c | 11 ++ include/acpi/acpiosxf.h | 18 +++ include/acpi/acpixf.h | 3 +- include/acpi/actypes.h | 8 ++ include/acpi/platform/acenv.h | 8 +- 89 files changed, 1353 insertions(+), 783 deletions(-) create mode 100644 drivers/acpi/acpica/tbprint.c create mode 100644 drivers/acpi/acpica/utbuffer.c create mode 100644 drivers/acpi/acpica/uterror.c
Signature · 1 line
1.7.10
PATCH 1/16 ACPICA: Split buffer dump routines into separate file
From: Bob Moore <[email protected]>
To enhance configurability of ACPICA. New file is utilities/utbuffer.c
--- drivers/acpi/acpica/Makefile | 1 + drivers/acpi/acpica/utbuffer.c | 201 ++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/utdebug.c | 148 +---------------------------- 3 files changed, 203 insertions(+), 147 deletions(-) create mode 100644 drivers/acpi/acpica/utbuffer.c
drivers/acpi/acpica/Makefile +1 -0
@@ -146,6 +146,7 @@ acpi-y += \ acpi-y += \ utaddress.o \ utalloc.o \ + utbuffer.o \ utcopy.o \ utexcep.o \ utdebug.o \
drivers/acpi/acpica/utbuffer.c new file +201 -0
201 lines not on this page · raw message
drivers/acpi/acpica/utdebug.c +1 -147
156 lines not on this page · raw message
Signature · 1 line
1.7.10
PATCH 2/16 ACPICA: Split internal error msg routines to a separate file
In reply to Lv ZhengFrom: Bob Moore <[email protected]>
Improves configurability of ACPICA.
--- drivers/acpi/acpica/Makefile | 1 + drivers/acpi/acpica/acutils.h | 42 ++++++ drivers/acpi/acpica/uterror.c | 289 +++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/uteval.c | 2 +- drivers/acpi/acpica/utxferror.c | 277 ------------------------------------- 5 files changed, 333 insertions(+), 278 deletions(-) create mode 100644 drivers/acpi/acpica/uterror.c
drivers/acpi/acpica/Makefile +1 -0
@@ -152,6 +152,7 @@ acpi-y += \ utdebug.o \ utdecode.o \ utdelete.o \ + uterror.o \ uteval.o \ utglobal.o \ utids.o \
drivers/acpi/acpica/acutils.h +42 -0
48 lines not on this page · raw message
drivers/acpi/acpica/uterror.c new file +289 -0
289 lines not on this page · raw message
drivers/acpi/acpica/uteval.c +1 -1
@@ -68,7 +68,7 @@ ACPI_MODULE_NAME("uteval")******************************************************************************/ acpi_status -acpi_ut_evaluate_object (struct acpi_namespace_node * prefix_node, +acpi_ut_evaluate_object (struct acpi_namespace_node *prefix_node,char *path,u32 expected_return_btypes,union acpi_operand_object **return_desc)
drivers/acpi/acpica/utxferror.c +0 -277
293 lines not on this page · raw message
Signature · 1 line
1.7.10
PATCH 3/16 ACPICA: Standardize all switch() blocks
In reply to Lv ZhengFrom: Chao Guan <[email protected]>
After many years, different formatting for switch() has crept in. This change makes every switch block identical. Chao Guan. ACPICA bugzilla 997.
--- drivers/acpi/acpica/dscontrol.c | 4 ++-- drivers/acpi/acpica/dsfield.c | 4 ++++ drivers/acpi/acpica/dsinit.c | 1 + drivers/acpi/acpica/dsmthdat.c | 2 +- drivers/acpi/acpica/dsobject.c | 3 +-- drivers/acpi/acpica/dsopcode.c | 1 + drivers/acpi/acpica/dsutils.c | 5 ++--- drivers/acpi/acpica/dswexec.c | 3 +-- drivers/acpi/acpica/dswload.c | 7 ++++--- drivers/acpi/acpica/dswload2.c | 4 ++++ drivers/acpi/acpica/evgpe.c | 6 ++---- drivers/acpi/acpica/evgpeinit.c | 3 +++ drivers/acpi/acpica/evhandler.c | 7 +++++++ drivers/acpi/acpica/evmisc.c | 1 + drivers/acpi/acpica/evrgnini.c | 2 ++ drivers/acpi/acpica/evxfgpe.c | 3 +++ drivers/acpi/acpica/evxfregn.c | 1 + drivers/acpi/acpica/exconfig.c | 1 + drivers/acpi/acpica/exconvrt.c | 13 ++++++++++--- drivers/acpi/acpica/excreate.c | 3 --- drivers/acpi/acpica/exdebug.c | 2 ++ drivers/acpi/acpica/exdump.c | 2 ++ drivers/acpi/acpica/exfield.c | 4 ++++ drivers/acpi/acpica/exfldio.c | 2 -- drivers/acpi/acpica/exmisc.c | 12 +++++++++++- drivers/acpi/acpica/exoparg1.c | 16 ++++++++-------- drivers/acpi/acpica/exoparg2.c | 1 - drivers/acpi/acpica/exoparg3.c | 1 - drivers/acpi/acpica/exoparg6.c | 5 ----- drivers/acpi/acpica/exprep.c | 7 +++++++ drivers/acpi/acpica/exregion.c | 27 +++++++++++++++++++++++---- drivers/acpi/acpica/exresnte.c | 1 + drivers/acpi/acpica/exresolv.c | 6 +++++- drivers/acpi/acpica/exresop.c | 9 +++++---- drivers/acpi/acpica/exstore.c | 4 +--- drivers/acpi/acpica/exstoren.c | 4 ---- drivers/acpi/acpica/hwacpi.c | 2 +- drivers/acpi/acpica/hwgpe.c | 3 +++ drivers/acpi/acpica/hwregs.c | 4 ++-- drivers/acpi/acpica/hwxface.c | 3 +++ drivers/acpi/acpica/hwxfsleep.c | 4 ++++ drivers/acpi/acpica/nsaccess.c | 1 + drivers/acpi/acpica/nsconvert.c | 3 +++ drivers/acpi/acpica/nsdump.c | 10 ++++++++++ drivers/acpi/acpica/nsinit.c | 9 +++++++++ drivers/acpi/acpica/nspredef.c | 6 ++++++ drivers/acpi/acpica/nsprepkg.c | 5 ----- drivers/acpi/acpica/nsrepair.c | 1 + drivers/acpi/acpica/nsrepair2.c | 1 + drivers/acpi/acpica/nsutils.c | 3 +++ drivers/acpi/acpica/nsxfeval.c | 1 + drivers/acpi/acpica/psargs.c | 4 ++++ drivers/acpi/acpica/psloop.c | 2 +- drivers/acpi/acpica/psobject.c | 1 + drivers/acpi/acpica/psparse.c | 3 +-- drivers/acpi/acpica/pstree.c | 2 ++ drivers/acpi/acpica/rscalc.c | 2 ++ drivers/acpi/acpica/rsdump.c | 10 ++++++++++ drivers/acpi/acpica/rsmisc.c | 3 ++- drivers/acpi/acpica/rsutils.c | 5 +++++ drivers/acpi/acpica/rsxface.c | 1 + drivers/acpi/acpica/tbinstal.c | 4 ++++ drivers/acpi/acpica/utcopy.c | 11 +++++++---- drivers/acpi/acpica/utdelete.c | 3 ++- drivers/acpi/acpica/uteval.c | 5 +++++ drivers/acpi/acpica/utexcep.c | 1 + drivers/acpi/acpica/utids.c | 3 +++ drivers/acpi/acpica/utmisc.c | 2 ++ drivers/acpi/acpica/utobject.c | 5 ++--- drivers/acpi/acpica/utstring.c | 11 +++++++++++ drivers/acpi/acpica/uttrack.c | 8 ++++++++ 71 files changed, 242 insertions(+), 77 deletions(-)
drivers/acpi/acpica/dscontrol.c +2 -2
@@ -78,7 +78,6 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,switch (op->common.aml_opcode) {case AML_WHILE_OP : -/* * If this is an additional iteration of a while loop, continue. * There is no need to allocate a new control state.
@@ -99,7 +98,6 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,/*lint -fallthrough */ case AML_IF_OP : -/* * IF/WHILE: Create a new control state to manage these * constructs. We need to manage these as a stack, in order
@@ -142,6 +140,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,break ;default : +break ; }
@@ -344,6 +343,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state,case AML_NOOP_OP :/* Just do nothing! */ +break ;case AML_BREAK_POINT_OP :
drivers/acpi/acpica/dsfield.c +4 -0
@@ -563,21 +563,25 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,*/ switch (walk_state->opcode) {case AML_FIELD_OP : + arg =acpi_ps_get_arg (op,2 ); type =ACPI_TYPE_LOCAL_REGION_FIELD ;break ;case AML_BANK_FIELD_OP : + arg =acpi_ps_get_arg (op,4 ); type =ACPI_TYPE_LOCAL_BANK_FIELD ;break ;case AML_INDEX_FIELD_OP : + arg =acpi_ps_get_arg (op,3 ); type =ACPI_TYPE_LOCAL_INDEX_FIELD ;break ;default : +return_ACPI_STATUS (AE_BAD_PARAMETER ); }
drivers/acpi/acpica/dsinit.c +1 -0
@@ -127,6 +127,7 @@ acpi_ds_init_one_object(acpi_handle obj_handle,break ;default : +break ; }
drivers/acpi/acpica/dsmthdat.c +1 -1
@@ -285,6 +285,7 @@ acpi_ds_method_data_get_node(u8 type,break ;default : +ACPI_ERROR ((AE_INFO ,"Type %u is invalid" , type));return_ACPI_STATUS (AE_TYPE ); }
@@ -428,7 +429,6 @@ acpi_ds_method_data_get_value(u8 type,return_ACPI_STATUS (AE_AML_UNINITIALIZED_ARG );case ACPI_REFCLASS_LOCAL : -/* * No error message for this case, will be trapped again later to * detect and ignore cases of Store(local_x,local_x)
drivers/acpi/acpica/dsobject.c +1 -2
@@ -648,7 +648,6 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,switch (obj_desc->common.type) {case ACPI_TYPE_BUFFER : -/* * Defer evaluation of Buffer term_arg operand */
@@ -660,7 +659,6 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,break ;case ACPI_TYPE_PACKAGE : -/* * Defer evaluation of Package term_arg operand */
@@ -741,6 +739,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,break ;default : +ACPI_ERROR ((AE_INFO ,"Unknown Integer type 0x%X" , op_info->type)); status =AE_AML_OPERAND_TYPE ;
drivers/acpi/acpica/dsopcode.c +1 -0
@@ -636,6 +636,7 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,break ;default : +return_ACPI_STATUS (AE_AML_BAD_OPCODE ); }
drivers/acpi/acpica/dsutils.c +2 -3
@@ -240,7 +240,6 @@ acpi_ds_is_result_used(union acpi_parse_object * op,case AML_IF_OP :case AML_WHILE_OP : -/* * If we are executing the predicate AND this is the predicate op, * we will use the return value
@@ -254,7 +253,9 @@ acpi_ds_is_result_used(union acpi_parse_object * op,break ;default : +/* Ignore other control opcodes */ +break ; }
@@ -263,7 +264,6 @@ acpi_ds_is_result_used(union acpi_parse_object * op, goto result_not_used;case AML_CLASS_CREATE : -/* * These opcodes allow term_arg(s) as operands and therefore * the operands can be method calls. The result is used.
@@ -292,7 +292,6 @@ acpi_ds_is_result_used(union acpi_parse_object * op, goto result_not_used;default : -/* * In all other cases. the parent will actually use the return * object, so keep it.
drivers/acpi/acpica/dswexec.c +1 -2
@@ -327,6 +327,7 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,break ;default : +break ; }
@@ -488,7 +489,6 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)break ;case AML_TYPE_METHOD_CALL : -/* * If the method is referenced from within a package * declaration, it is not a invocation of the method, just
@@ -582,7 +582,6 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)switch (op->common.parent->common.aml_opcode) {case AML_NAME_OP : -/* * Put the Node on the object stack (Contains the ACPI Name * of this object)
drivers/acpi/acpica/dswload.c +4 -3
@@ -74,6 +74,7 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)switch (pass_number) {case 1 : + walk_state->parse_flags =ACPI_PARSE_LOAD_PASS1 |ACPI_PARSE_DELETE_TREE ; walk_state->descending_callback = acpi_ds_load1_begin_op;
@@ -81,6 +82,7 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)break ;case 2 : + walk_state->parse_flags =ACPI_PARSE_LOAD_PASS1 |ACPI_PARSE_DELETE_TREE ; walk_state->descending_callback = acpi_ds_load2_begin_op;
@@ -88,6 +90,7 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)break ;case 3 : +#ifndef ACPI_NO_METHOD_EXECUTION walk_state->parse_flags |=ACPI_PARSE_EXECUTE |ACPI_PARSE_DELETE_TREE ;
@@ -97,6 +100,7 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)break ;default : +return (AE_BAD_PARAMETER ); }
@@ -161,7 +165,6 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,switch (walk_state->opcode) {case AML_SCOPE_OP : -/* * The target name of the Scope() operator must exist at this point so * that we can actually open the scope to enter new names underneath it.
@@ -210,7 +213,6 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,case ACPI_TYPE_INTEGER :case ACPI_TYPE_STRING :case ACPI_TYPE_BUFFER : -/* * These types we will allow, but we will change the type. * This enables some existing code of the form:
@@ -232,7 +234,6 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,break ;case ACPI_TYPE_METHOD : -/* * Allow scope change to root during execution of module-level * code. Root is typed METHOD during this time.
drivers/acpi/acpica/dswload2.c +4 -0
@@ -509,6 +509,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)break ;default : +/* All NAMED_FIELD opcodes must be handled above */ break ; }
@@ -548,6 +549,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)break ;default : +/* Unknown opcode */ status =AE_OK ;
@@ -674,6 +676,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)#endif /* ACPI_NO_METHOD_EXECUTION */ default : +/* All NAMED_COMPLEX opcodes must be handled above */ break ; }
@@ -721,6 +724,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)break ;default : +break ; }
drivers/acpi/acpica/evgpe.c +2 -4
@@ -529,7 +529,6 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)switch (local_gpe_event_info->flags &ACPI_GPE_DISPATCH_MASK ) {case ACPI_GPE_DISPATCH_NOTIFY : -/* * Implicit notify. * Dispatch a DEVICE_WAKE notify to the appropriate handler.
@@ -582,7 +581,8 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)break ;default : - return_VOID;/* Should never happen */ + + return_VOID;/* Should never happen */ }/* Defer enabling of GPE until all notify handlers are done */
@@ -754,7 +754,6 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,case ACPI_GPE_DISPATCH_METHOD :case ACPI_GPE_DISPATCH_NOTIFY : -/* * Execute the method associated with the GPE * NOTE: Level-triggered GPEs are cleared after the method completes.
@@ -770,7 +769,6 @@ acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,break ;default : -/* * No handler or method to run! * 03/2010: This case should no longer be possible. We will not allow
drivers/acpi/acpica/evgpeinit.c +3 -0
@@ -363,14 +363,17 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,*/ switch (name[1 ]) {case 'L' : + type =ACPI_GPE_LEVEL_TRIGGERED ;break ;case 'E' : + type =ACPI_GPE_EDGE_TRIGGERED ;break ;default : +/* Unknown method type, just ignore it */ ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
drivers/acpi/acpica/evhandler.c +7 -0
@@ -354,36 +354,43 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node,switch (space_id) {case ACPI_ADR_SPACE_SYSTEM_MEMORY : + handler = acpi_ex_system_memory_space_handler; setup = acpi_ev_system_memory_region_setup;break ;case ACPI_ADR_SPACE_SYSTEM_IO : + handler = acpi_ex_system_io_space_handler; setup = acpi_ev_io_space_region_setup;break ;case ACPI_ADR_SPACE_PCI_CONFIG : + handler = acpi_ex_pci_config_space_handler; setup = acpi_ev_pci_config_region_setup;break ;case ACPI_ADR_SPACE_CMOS : + handler = acpi_ex_cmos_space_handler; setup = acpi_ev_cmos_region_setup;break ;case ACPI_ADR_SPACE_PCI_BAR_TARGET : + handler = acpi_ex_pci_bar_space_handler; setup = acpi_ev_pci_bar_region_setup;break ;case ACPI_ADR_SPACE_DATA_TABLE : + handler = acpi_ex_data_table_space_handler; setup =NULL ;break ;default : + status =AE_BAD_PARAMETER ; goto unlock_and_exit; }
drivers/acpi/acpica/evmisc.c +1 -0
@@ -78,6 +78,7 @@ u8 acpi_ev_is_notify_object(struct acpi_namespace_node *node)return (TRUE);default : +return (FALSE); } }
drivers/acpi/acpica/evrgnini.c +2 -0
@@ -596,7 +596,9 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,break ;default : +/* Ignore other objects */ +break ; }
drivers/acpi/acpica/evxfgpe.c +3 -0
@@ -366,16 +366,19 @@ acpi_set_gpe_wake_mask(acpi_handle gpe_device, u32 gpe_number, u8 action)switch (action) {case ACPI_GPE_ENABLE : +ACPI_SET_BIT (gpe_register_info->enable_for_wake, (u8 )register_bit);break ;case ACPI_GPE_DISABLE : +ACPI_CLEAR_BIT (gpe_register_info->enable_for_wake, (u8 )register_bit);break ;default : +ACPI_ERROR ((AE_INFO ,"%u, Invalid action" , action)); status =AE_BAD_PARAMETER ;break ;
drivers/acpi/acpica/evxfregn.c +1 -0
@@ -139,6 +139,7 @@ acpi_install_address_space_handler(acpi_handle device,break ;default : +break ; }
drivers/acpi/acpica/exconfig.c +1 -0
@@ -480,6 +480,7 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,break ;default : +return_ACPI_STATUS (AE_AML_OPERAND_TYPE ); }
drivers/acpi/acpica/exconvrt.c +10 -3
@@ -99,6 +99,7 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,break ;default : +return_ACPI_STATUS (AE_TYPE ); }
@@ -117,7 +118,6 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,switch (obj_desc->common.type) {case ACPI_TYPE_STRING : -/* * Convert string to an integer - for most cases, the string must be * hexadecimal as per the ACPI specification. The only exception (as
@@ -161,6 +161,7 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,default :/* No other types can get here */ +break ; }
@@ -213,7 +214,6 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,return_ACPI_STATUS (AE_OK );case ACPI_TYPE_INTEGER : -/* * Create a new Buffer object. * Need enough space for one integer
@@ -233,7 +233,6 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,break ;case ACPI_TYPE_STRING : -/* * Create a new Buffer object * Size will be the string length
@@ -258,6 +257,7 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,break ;default : +return_ACPI_STATUS (AE_TYPE ); }
@@ -304,15 +304,18 @@ acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 data_width)switch (data_width) {case 1 : + decimal_length =ACPI_MAX8_DECIMAL_DIGITS ;break ;case 4 : + decimal_length =ACPI_MAX32_DECIMAL_DIGITS ;break ;case 8 :default : + decimal_length =ACPI_MAX64_DECIMAL_DIGITS ;break ; }
@@ -546,6 +549,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * obj_desc,break ;default : +return_ACPI_STATUS (AE_TYPE ); }
@@ -599,6 +603,7 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,break ;default : +/* No conversion allowed for these types */ if (destination_type != source_desc->common.type) {
@@ -649,6 +654,7 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,break ;default : +ACPI_ERROR ((AE_INFO ,"Bad destination type during conversion: 0x%X" , destination_type));
@@ -664,6 +670,7 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,break ;default : + ACPI_ERROR((AE_INFO, "Unknown Target type ID 0x%X AmlOpcode 0x%X DestType %s", GET_CURRENT_ARG_TYPE(walk_state->op_info->
drivers/acpi/acpica/excreate.c +0 -3
@@ -103,7 +103,6 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)case ACPI_TYPE_BUFFER :case ACPI_TYPE_PACKAGE :case ACPI_TYPE_BUFFER_FIELD : -/* * These types open a new scope, so we need the NS node in order to access * any children.
@@ -113,7 +112,6 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)case ACPI_TYPE_PROCESSOR :case ACPI_TYPE_THERMAL :case ACPI_TYPE_LOCAL_SCOPE : -/* * The new alias has the type ALIAS and points to the original * NS node, not the object itself.
@@ -124,7 +122,6 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)break ;case ACPI_TYPE_METHOD : -/* * Control method aliases need to be differentiated */
drivers/acpi/acpica/exdebug.c +2 -0
@@ -193,6 +193,7 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc, return_VOID;default : +break ; }
@@ -226,6 +227,7 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,break ;default : + acpi_ex_do_debug_object((source_desc-> reference. node)->object,
drivers/acpi/acpica/exdump.c +2 -0
@@ -357,6 +357,7 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,switch (info->opcode) {case ACPI_EXD_INIT : +break ;case ACPI_EXD_TYPE :
@@ -718,6 +719,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)break ;default : +/* Unknown Type */ acpi_os_printf ("Unknown Type %X\n" , obj_desc->common.type);
drivers/acpi/acpica/exfield.c +4 -0
@@ -331,21 +331,25 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,switch (source_desc->common.type) {case ACPI_TYPE_INTEGER : + buffer = &source_desc->integer.value; length =sizeof (source_desc->integer.value);break ;case ACPI_TYPE_BUFFER : + buffer = source_desc->buffer.pointer; length = source_desc->buffer.length;break ;case ACPI_TYPE_STRING : + buffer = source_desc->string.pointer; length = source_desc->string.length;break ;default : +return_ACPI_STATUS (AE_AML_OPERAND_TYPE ); }
drivers/acpi/acpica/exfldio.c +0 -2
@@ -446,7 +446,6 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,break ;case ACPI_TYPE_LOCAL_BANK_FIELD : -/* * Ensure that the bank_value is not beyond the capacity of * the register
@@ -488,7 +487,6 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,break ;case ACPI_TYPE_LOCAL_INDEX_FIELD : -/* * Ensure that the index_value is not beyond the capacity of * the register
drivers/acpi/acpica/exmisc.c +11 -1
@@ -105,7 +105,6 @@ acpi_ex_get_object_reference(union acpi_operand_object *obj_desc,break ;case ACPI_DESC_TYPE_NAMED : -/* * A named reference that has already been resolved to a Node */
@@ -261,20 +260,24 @@ acpi_ex_do_concatenate(union acpi_operand_object *operand0,*/ switch (operand0->common.type) {case ACPI_TYPE_INTEGER : + status =acpi_ex_convert_to_integer (operand1, &local_operand1,16 );break ;case ACPI_TYPE_STRING : + status =acpi_ex_convert_to_string (operand1, &local_operand1,ACPI_IMPLICIT_CONVERT_HEX );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 ;
@@ -519,6 +522,7 @@ acpi_ex_do_logical_numeric_op(u16 opcode,break ;default : + status =AE_AML_INTERNAL ;break ; }
@@ -580,20 +584,24 @@ acpi_ex_do_logical_op(u16 opcode,*/ switch (operand0->common.type) {case ACPI_TYPE_INTEGER : + status =acpi_ex_convert_to_integer (operand1, &local_operand1,16 );break ;case ACPI_TYPE_STRING : + status =acpi_ex_convert_to_string (operand1, &local_operand1,ACPI_IMPLICIT_CONVERT_HEX );break ;case ACPI_TYPE_BUFFER : + status =acpi_ex_convert_to_buffer (operand1, &local_operand1);break ;default : + status =AE_AML_INTERNAL ;break ; }
@@ -636,6 +644,7 @@ acpi_ex_do_logical_op(u16 opcode,break ;default : + status =AE_AML_INTERNAL ;break ; }
@@ -703,6 +712,7 @@ acpi_ex_do_logical_op(u16 opcode,break ;default : + status =AE_AML_INTERNAL ;break ; }
drivers/acpi/acpica/exoparg1.c +8 -8
@@ -327,7 +327,6 @@ acpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state)break ;case AML_FROM_BCD_OP :/* from_bcd (BCDValue, Result) */ -/* * The 64-bit ACPI integer can hold 16 4-bit BCD characters * (if table is 32-bit, integer can hold 8 BCD characters)
@@ -407,7 +406,6 @@ acpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state)break ;case AML_COND_REF_OF_OP :/* cond_ref_of (source_object, Result) */ -/* * This op is a little strange because the internal return value is * different than the return value stored in the result descriptor
@@ -442,13 +440,14 @@ acpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state) goto cleanup;default : +/* No other opcodes get here */ +break ; }break ;case AML_STORE_OP :/* Store (Source, Target) */ -/* * A store operand is typically a number, string, buffer or lvalue * Be careful about deleting the source object,
@@ -615,7 +614,6 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)case AML_DECREMENT_OP :/* Decrement (Operand) */ case AML_INCREMENT_OP :/* Increment (Operand) */ -/* * Create a new integer. Can't just get the base integer and * increment it because it may be an Arg or Field.
@@ -682,7 +680,6 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)break ;case AML_TYPE_OP :/* object_type (source_object) */ -/* * Note: The operand is not resolved at this point because we want to * get the associated object, not its value. For example, we don't
@@ -709,7 +706,6 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)break ;case AML_SIZE_OF_OP :/* size_of (source_object) */ -/* * Note: The operand is not resolved at this point because we want to * get the associated object, not its value.
@@ -735,10 +731,12 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)*/ switch (type) {case ACPI_TYPE_INTEGER : + value = acpi_gbl_integer_byte_width;break ;case ACPI_TYPE_STRING : + value = temp_desc->string.length;break ;
@@ -759,6 +757,7 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)break ;default : +ACPI_ERROR ((AE_INFO ,"Operand must be Buffer/Integer/String/Package - found type %s" ,acpi_ut_get_type_name (type)));
@@ -860,9 +859,11 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)break ;case ACPI_TYPE_STRING : +break ;default : + status =AE_AML_OPERAND_TYPE ; goto cleanup; }
@@ -923,7 +924,6 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)*/ switch (operand[0 ]->reference.class) {case ACPI_REFCLASS_INDEX : -/* * The target type for the Index operator must be * either a Buffer or a Package
@@ -956,7 +956,6 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)break ;case ACPI_TYPE_PACKAGE : -/* * Return the referenced element of the package. We must * add another reference to the referenced object, however.
@@ -999,6 +998,7 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)break ;default : + ACPI_ERROR((AE_INFO, "Unknown class in reference(%p) - 0x%2.2X", operand[0],
drivers/acpi/acpica/exoparg2.c +0 -1
@@ -304,7 +304,6 @@ acpi_status acpi_ex_opcode_2A_1T_1R(struct acpi_walk_state *walk_state)break ;case AML_TO_STRING_OP :/* to_string (Buffer, Length, Result) (ACPI 2.0) */ -/* * Input object is guaranteed to be a buffer at this point (it may have * been converted.) Copy the raw buffer data to a new object of
drivers/acpi/acpica/exoparg3.c +0 -1
@@ -155,7 +155,6 @@ acpi_status acpi_ex_opcode_3A_1T_1R(struct acpi_walk_state *walk_state)switch (walk_state->opcode) {case AML_MID_OP :/* Mid (Source[0], Index[1], Length[2], Result[3]) */ -/* * Create the return object. The Source operand is guaranteed to be * either a String or a Buffer, so just use its type.
drivers/acpi/acpica/exoparg6.c +0 -5
@@ -119,7 +119,6 @@ acpi_ex_do_match(u32 match_op,break ;case MATCH_MEQ : -/* * True if equal: (P[i] == M) * Change to: (M == P[i])
@@ -133,7 +132,6 @@ acpi_ex_do_match(u32 match_op,break ;case MATCH_MLE : -/* * True if less than or equal: (P[i] <= M) (P[i] not_greater than M) * Change to: (M >= P[i]) (M not_less than P[i])
@@ -148,7 +146,6 @@ acpi_ex_do_match(u32 match_op,break ;case MATCH_MLT : -/* * True if less than: (P[i] < M) * Change to: (M > P[i])
@@ -162,7 +159,6 @@ acpi_ex_do_match(u32 match_op,break ;case MATCH_MGE : -/* * True if greater than or equal: (P[i] >= M) (P[i] not_less than M) * Change to: (M <= P[i]) (M not_greater than P[i])
@@ -177,7 +173,6 @@ acpi_ex_do_match(u32 match_op,break ;case MATCH_MGT : -/* * True if greater than: (P[i] > M) * Change to: (M < P[i])
drivers/acpi/acpica/exprep.c +7 -0
@@ -253,26 +253,31 @@ acpi_ex_decode_field_access(union acpi_operand_object *obj_desc,case AML_FIELD_ACCESS_BYTE :case AML_FIELD_ACCESS_BUFFER :/* ACPI 2.0 (SMBus Buffer) */ + byte_alignment =1 ; bit_length =8 ;break ;case AML_FIELD_ACCESS_WORD : + byte_alignment =2 ; bit_length =16 ;break ;case AML_FIELD_ACCESS_DWORD : + byte_alignment =4 ; bit_length =32 ;break ;case AML_FIELD_ACCESS_QWORD :/* ACPI 2.0 */ + byte_alignment =8 ; bit_length =64 ;break ;default : +/* Invalid field access type */ ACPI_ERROR ((AE_INFO ,"Unknown field access type 0x%X" , access));
@@ -598,7 +603,9 @@ acpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info)break ;default : +/* No other types should get here */ +break ; }
drivers/acpi/acpica/exregion.c +23 -4
@@ -88,22 +88,27 @@ acpi_ex_system_memory_space_handler(u32 function,switch (bit_width) {case 8 : + length =1 ;break ;case 16 : + length =2 ;break ;case 32 : + length =4 ;break ;case 64 : + length =8 ;break ;default : +ACPI_ERROR ((AE_INFO ,"Invalid SystemMemory width %u" , bit_width));return_ACPI_STATUS (AE_AML_OPERAND_VALUE );
@@ -214,23 +219,29 @@ acpi_ex_system_memory_space_handler(u32 function, *value =0 ;switch (bit_width) {case 8 : - *value = (u64 )ACPI_GET8 (logical_addr_ptr); + + *value = (u64 )ACPI_GET8 (logical_addr_ptr);break ;case 16 : - *value = (u64 )ACPI_GET16 (logical_addr_ptr); + + *value = (u64 )ACPI_GET16 (logical_addr_ptr);break ;case 32 : - *value = (u64 )ACPI_GET32 (logical_addr_ptr); + + *value = (u64 )ACPI_GET32 (logical_addr_ptr);break ;case 64 : - *value = (u64 )ACPI_GET64 (logical_addr_ptr); + + *value = (u64 )ACPI_GET64 (logical_addr_ptr);break ;default : +/* bit_width was already validated */ +break ; }break ;
@@ -239,28 +250,35 @@ acpi_ex_system_memory_space_handler(u32 function,switch (bit_width) {case 8 : +ACPI_SET8 (logical_addr_ptr, *value);break ;case 16 : +ACPI_SET16 (logical_addr_ptr, *value);break ;case 32 : +ACPI_SET32 (logical_addr_ptr, *value);break ;case 64 : +ACPI_SET64 (logical_addr_ptr, *value);break ;default : +/* bit_width was already validated */ +break ; }break ;default : + status =AE_BAD_PARAMETER ;break ; }
@@ -320,6 +338,7 @@ acpi_ex_system_io_space_handler(u32 function,break ;default : + status =AE_BAD_PARAMETER ;break ; }
drivers/acpi/acpica/exresnte.c +1 -0
@@ -248,6 +248,7 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,break ;default : +/* No named references are allowed here */ ACPI_ERROR((AE_INFO,
drivers/acpi/acpica/exresolv.c +5 -1
@@ -156,7 +156,6 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,switch (ref_type) {case ACPI_REFCLASS_LOCAL :case ACPI_REFCLASS_ARG : -/* * Get the local from the method's state info * Note: this increments the local's object reference count
@@ -309,6 +308,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,break ;default : +break ; }
@@ -348,10 +348,12 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,switch (ACPI_GET_DESCRIPTOR_TYPE (obj_desc)) {case ACPI_DESC_TYPE_OPERAND : + type = obj_desc->common.type;break ;case ACPI_DESC_TYPE_NAMED : + type = ((struct acpi_namespace_node *)obj_desc)->type; obj_desc = acpi_ns_get_attached_object((struct acpi_namespace_node *)
@@ -538,7 +540,9 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,break ;default : +/* No change to Type required */ +break ; }
drivers/acpi/acpica/exresop.c +5 -4
@@ -307,7 +307,6 @@ acpi_ex_resolve_operands(u16 opcode,case ARGI_TARGETREF :/* Allows implicit conversion rules before store */ case ARGI_FIXED_TARGET :/* No implicit conversion before store to target */ case ARGI_SIMPLE_TARGET :/* Name, Local, or arg - no implicit conversion */ -/* * Need an operand of type ACPI_TYPE_LOCAL_REFERENCE * A Namespace Node is OK as-is
@@ -326,7 +325,6 @@ acpi_ex_resolve_operands(u16 opcode, goto next_operand;case ARGI_DATAREFOBJ :/* Store operator only */ -/* * We don't want to resolve index_op reference objects during * a store because this would be an implicit de_ref_of operation.
@@ -343,7 +341,9 @@ acpi_ex_resolve_operands(u16 opcode,break ;default : +/* All cases covered above */ +break ; }
@@ -433,7 +433,6 @@ acpi_ex_resolve_operands(u16 opcode, goto next_operand;case ARGI_BUFFER : -/* * Need an operand of type ACPI_TYPE_BUFFER, * But we can implicitly convert from a STRING or INTEGER
@@ -459,7 +458,6 @@ acpi_ex_resolve_operands(u16 opcode, goto next_operand;case ARGI_STRING : -/* * Need an operand of type ACPI_TYPE_STRING, * But we can implicitly convert from a BUFFER or INTEGER
@@ -562,6 +560,7 @@ acpi_ex_resolve_operands(u16 opcode,break ;default : + ACPI_ERROR((AE_INFO, "Needed [Buffer/String/Package/Reference], found [%s] %p", acpi_ut_get_object_type_name
@@ -584,6 +583,7 @@ acpi_ex_resolve_operands(u16 opcode,break ;default : + ACPI_ERROR((AE_INFO, "Needed [Buffer/String/Package], found [%s] %p", acpi_ut_get_object_type_name
@@ -605,6 +605,7 @@ acpi_ex_resolve_operands(u16 opcode,break ;default : + ACPI_ERROR((AE_INFO, "Needed [Region/Buffer], found [%s] %p", acpi_ut_get_object_type_name
drivers/acpi/acpica/exstore.c +1 -3
@@ -114,6 +114,7 @@ acpi_ex_store(union acpi_operand_object *source_desc,switch (dest_desc->common.type) {case ACPI_TYPE_LOCAL_REFERENCE : +break ;case ACPI_TYPE_INTEGER :
@@ -178,7 +179,6 @@ acpi_ex_store(union acpi_operand_object *source_desc,break ;case ACPI_REFCLASS_DEBUG : -/* * Storing to the Debug object causes the value stored to be * displayed and otherwise has no effect -- see ACPI Specification
@@ -291,7 +291,6 @@ acpi_ex_store_object_to_index(union acpi_operand_object *source_desc,break ;case ACPI_TYPE_BUFFER_FIELD : -/* * Store into a Buffer or String (not actually a real buffer_field) * at a location defined by an Index.
@@ -447,7 +446,6 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc,case ACPI_TYPE_INTEGER :case ACPI_TYPE_STRING :case ACPI_TYPE_BUFFER : -/* * These target types are all of type Integer/String/Buffer, and * therefore support implicit conversion before the store.
drivers/acpi/acpica/exstoren.c +0 -4
@@ -85,11 +85,9 @@ acpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr,* These cases all require only Integers or values that * can be converted to Integers (Strings or Buffers) */ -case ACPI_TYPE_INTEGER :case ACPI_TYPE_STRING :case ACPI_TYPE_BUFFER : -/* * Stores into a Field/Region or into a Integer/Buffer/String * are all essentially the same. This case handles the
@@ -133,7 +131,6 @@ acpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr,case ACPI_TYPE_LOCAL_ALIAS :case ACPI_TYPE_LOCAL_METHOD_ALIAS : -/* * All aliases should have been resolved earlier, during the * operand resolution phase.
@@ -144,7 +141,6 @@ acpi_ex_resolve_object(union acpi_operand_object **source_desc_ptr,case ACPI_TYPE_PACKAGE :default : -/* * All other types than Alias and the various Fields come here, * including the untyped case - ACPI_TYPE_ANY.
drivers/acpi/acpica/hwacpi.c +1 -1
@@ -108,7 +108,6 @@ acpi_status acpi_hw_set_mode(u32 mode)break ;case ACPI_SYS_MODE_LEGACY : -/* * BIOS should clear all fixed status bits and restore fixed event * enable bits to default
@@ -120,6 +119,7 @@ acpi_status acpi_hw_set_mode(u32 mode)break ;default : +return_ACPI_STATUS (AE_BAD_PARAMETER ); }
drivers/acpi/acpica/hwgpe.c +3 -0
@@ -127,14 +127,17 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action)/*lint -fallthrough */ case ACPI_GPE_ENABLE : +ACPI_SET_BIT (enable_mask, register_bit);break ;case ACPI_GPE_DISABLE : +ACPI_CLEAR_BIT (enable_mask, register_bit);break ;default : +ACPI_ERROR ((AE_INFO ,"Invalid GPE Action, %u" , action));return (AE_BAD_PARAMETER ); }
drivers/acpi/acpica/hwregs.c +2 -2
@@ -419,6 +419,7 @@ acpi_status acpi_hw_register_read(u32 register_id, u32 *return_value)break ;default : +ACPI_ERROR ((AE_INFO ,"Unknown Register ID: 0x%X" , register_id)); status =AE_BAD_PARAMETER ;break ;
@@ -491,7 +492,6 @@ acpi_status acpi_hw_register_write(u32 register_id, u32 value)break ;case ACPI_REGISTER_PM1_CONTROL :/* PM1 A/B: 16-bit access each */ -/* * Perform a read first to preserve certain bits (per ACPI spec) * Note: This includes SCI_EN, we never want to change this bit
@@ -520,7 +520,6 @@ acpi_status acpi_hw_register_write(u32 register_id, u32 value)break ;case ACPI_REGISTER_PM2_CONTROL :/* 8-bit access */ -/* * For control registers, all reserved bits must be preserved, * as per the ACPI spec.
@@ -555,6 +554,7 @@ acpi_status acpi_hw_register_write(u32 register_id, u32 value)break ;default : +ACPI_ERROR ((AE_INFO ,"Unknown Register ID: 0x%X" , register_id)); status =AE_BAD_PARAMETER ;break ;
drivers/acpi/acpica/hwxface.c +3 -0
@@ -528,10 +528,12 @@ acpi_get_sleep_type_data(u8 sleep_state, u8 *sleep_type_a, u8 *sleep_type_b) elements = info->return_object->package.elements;switch (info->return_object->package.count) {case 0 : + status =AE_AML_PACKAGE_LIMIT ;break ;case 1 : +if (elements[0 ]->common.type !=ACPI_TYPE_INTEGER ) { status =AE_AML_OPERAND_TYPE ;break ;
@@ -545,6 +547,7 @@ acpi_get_sleep_type_data(u8 sleep_state, u8 *sleep_type_a, u8 *sleep_type_b)case 2 :default : +if ((elements[0 ]->common.type !=ACPI_TYPE_INTEGER ) || (elements[1 ]->common.type !=ACPI_TYPE_INTEGER )) { status =AE_AML_OPERAND_TYPE ;
drivers/acpi/acpica/hwxfsleep.c +4 -0
@@ -314,20 +314,24 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)switch (sleep_state) {case ACPI_STATE_S0 : + sst_value =ACPI_SST_WORKING ;break ;case ACPI_STATE_S1 :case ACPI_STATE_S2 :case ACPI_STATE_S3 : + sst_value =ACPI_SST_SLEEPING ;break ;case ACPI_STATE_S4 : + sst_value =ACPI_SST_SLEEP_CONTEXT ;break ;default : + sst_value =ACPI_SST_INDICATOR_OFF ;/* Default is off */ break ; }
drivers/acpi/acpica/nsaccess.c +1 -0
@@ -151,6 +151,7 @@ acpi_status acpi_ns_root_initialize(void)*/ switch (init_val->type) {case ACPI_TYPE_METHOD : + obj_desc->method.param_count = (u8 )ACPI_TO_INTEGER (val); obj_desc->common.flags |=AOPOBJ_DATA_VALID ;
drivers/acpi/acpica/nsconvert.c +3 -0
@@ -103,6 +103,7 @@ acpi_ns_convert_to_integer(union acpi_operand_object *original_object,break ;default : +return (AE_AML_OPERAND_TYPE ); }
@@ -191,6 +192,7 @@ acpi_ns_convert_to_string(union acpi_operand_object *original_object,break ;default : +return (AE_AML_OPERAND_TYPE ); }
@@ -294,6 +296,7 @@ acpi_ns_convert_to_buffer(union acpi_operand_object *original_object,break ;default : +return (AE_AML_OPERAND_TYPE ); }
drivers/acpi/acpica/nsdump.c +10 -0
@@ -244,10 +244,12 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,case ACPI_TYPE_BUFFER :case ACPI_TYPE_STRING :case ACPI_TYPE_METHOD : +acpi_os_printf ("<No attached object>" );break ;default : +break ; }
@@ -433,6 +435,7 @@ acpi_ns_dump_one_object(acpi_handle obj_handle,break ;default : +break ; }break ;
@@ -567,32 +570,39 @@ acpi_ns_dump_one_object(acpi_handle obj_handle, goto cleanup;case ACPI_TYPE_BUFFER_FIELD : + obj_desc = (union acpi_operand_object *)obj_desc->buffer_field. buffer_obj;break ;case ACPI_TYPE_PACKAGE : + obj_desc = (void *)obj_desc->package.elements;break ;case ACPI_TYPE_METHOD : + obj_desc = (void *)obj_desc->method.aml_start;break ;case ACPI_TYPE_LOCAL_REGION_FIELD : + obj_desc = (void *)obj_desc->field.region_obj;break ;case ACPI_TYPE_LOCAL_BANK_FIELD : + obj_desc = (void *)obj_desc->bank_field.region_obj;break ;case ACPI_TYPE_LOCAL_INDEX_FIELD : + obj_desc = (void *)obj_desc->index_field.index_obj;break ;default : + goto cleanup; }
drivers/acpi/acpica/nsinit.c +9 -0
@@ -266,28 +266,34 @@ acpi_ns_init_one_object(acpi_handle obj_handle,switch (type) {case ACPI_TYPE_REGION : + info->op_region_count++;break ;case ACPI_TYPE_BUFFER_FIELD : + info->field_count++;break ;case ACPI_TYPE_LOCAL_BANK_FIELD : + info->field_count++;break ;case ACPI_TYPE_BUFFER : + info->buffer_count++;break ;case ACPI_TYPE_PACKAGE : + info->package_count++;break ;default :/* No init required, just exit now */ +return (AE_OK ); }
@@ -337,7 +343,9 @@ acpi_ns_init_one_object(acpi_handle obj_handle,break ;default : +/* No other types can get here */ +break ; }
@@ -416,6 +424,7 @@ acpi_ns_find_ini_methods(acpi_handle obj_handle,break ;default : +break ; }
drivers/acpi/acpica/nspredef.c +6 -0
@@ -344,26 +344,32 @@ static u32 acpi_ns_get_bitmapped_type(union acpi_operand_object *return_object)switch (return_object->common.type) {case ACPI_TYPE_INTEGER : + return_btype =ACPI_RTYPE_INTEGER ;break ;case ACPI_TYPE_BUFFER : + return_btype =ACPI_RTYPE_BUFFER ;break ;case ACPI_TYPE_STRING : + return_btype =ACPI_RTYPE_STRING ;break ;case ACPI_TYPE_PACKAGE : + return_btype =ACPI_RTYPE_PACKAGE ;break ;case ACPI_TYPE_LOCAL_REFERENCE : + return_btype =ACPI_RTYPE_REFERENCE ;break ;default : +/* Not one of the supported objects, must be incorrect */ return_btype =ACPI_RTYPE_ANY ;
drivers/acpi/acpica/nsprepkg.c +0 -5
@@ -136,7 +136,6 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,*/ switch (package->ret_info.type) {case ACPI_PTYPE1_FIXED : -/* * The package count is fixed and there are no sub-packages *
@@ -169,7 +168,6 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,break ;case ACPI_PTYPE1_VAR : -/* * The package count is variable, there are no sub-packages, and all * elements must be of the same type
@@ -186,7 +184,6 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,break ;case ACPI_PTYPE1_OPTION : -/* * The package count is variable, there are no sub-packages. There are * a fixed number of required elements, and a variable number of
@@ -284,7 +281,6 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,case ACPI_PTYPE2_MIN :case ACPI_PTYPE2_COUNT :case ACPI_PTYPE2_FIX_VAR : -/* * These types all return a single Package that consists of a * variable number of sub-Packages.
@@ -500,7 +496,6 @@ acpi_ns_check_package_list(struct acpi_evaluate_info *info,break ;case ACPI_PTYPE2_COUNT : -/* * First element is the (Integer) count of elements, including * the count field (the ACPI name is num_elements)
drivers/acpi/acpica/nsrepair.c +1 -0
@@ -480,6 +480,7 @@ acpi_ns_remove_null_elements(struct acpi_evaluate_info *info,case ACPI_PTYPE2_MIN :case ACPI_PTYPE2_REV_FIXED :case ACPI_PTYPE2_FIX_VAR : +break ;default :
drivers/acpi/acpica/nsrepair2.c +1 -0
@@ -320,6 +320,7 @@ acpi_ns_repair_FDE(struct acpi_evaluate_info *info,break ;default : +return (AE_AML_OPERAND_TYPE ); }
drivers/acpi/acpica/nsutils.c +3 -0
@@ -419,10 +419,12 @@ acpi_ns_externalize_name(u32 internal_name_length,switch (internal_name[0 ]) {case AML_ROOT_PREFIX : + prefix_length =1 ;break ;case AML_PARENT_PREFIX : +for (i =0 ; i < internal_name_length; i++) {if (ACPI_IS_PARENT_PREFIX (internal_name[i])) { prefix_length = i +1 ;
@@ -438,6 +440,7 @@ acpi_ns_externalize_name(u32 internal_name_length,break ;default : +break ; }
drivers/acpi/acpica/nsxfeval.c +1 -0
@@ -511,6 +511,7 @@ static void acpi_ns_resolve_references(struct acpi_evaluate_info *info)break ;default : +return ; }
drivers/acpi/acpica/psargs.c +4 -0
@@ -629,24 +629,28 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_stateswitch (opcode) {case AML_BYTE_OP :/* AML_BYTEDATA_ARG */ + buffer_length =ACPI_GET8 (parser_state->aml); parser_state->aml +=1 ;break ;case AML_WORD_OP :/* AML_WORDDATA_ARG */ + buffer_length =ACPI_GET16 (parser_state->aml); parser_state->aml +=2 ;break ;case AML_DWORD_OP :/* AML_DWORDATA_ARG */ + buffer_length =ACPI_GET32 (parser_state->aml); parser_state->aml +=4 ;break ;default : + buffer_length =0 ;break ; }
drivers/acpi/acpica/psloop.c +1 -1
@@ -164,7 +164,6 @@ acpi_ps_get_arguments(struct acpi_walk_state *walk_state,case AML_IF_OP :case AML_ELSE_OP :case AML_WHILE_OP : -/* * Currently supported module-level opcodes are: * IF/ELSE/WHILE. These appear to be the most common,
@@ -289,6 +288,7 @@ acpi_ps_get_arguments(struct acpi_walk_state *walk_state,default :/* No action for all other opcodes */ +break ; }
drivers/acpi/acpica/psobject.c +1 -0
@@ -402,6 +402,7 @@ acpi_ps_complete_op(struct acpi_walk_state *walk_state,switch (status) {case AE_OK : +break ;case AE_CTRL_TRANSFER :
drivers/acpi/acpica/psparse.c +1 -2
@@ -176,10 +176,10 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,switch (parent_info->class) {case AML_CLASS_CONTROL : +break ;case AML_CLASS_CREATE : -/* * These opcodes contain term_arg operands. The current * op must be replaced by a placeholder return op
@@ -192,7 +192,6 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,break ;case AML_CLASS_NAMED_OBJECT : -/* * These opcodes contain term_arg operands. The current * op must be replaced by a placeholder return op
drivers/acpi/acpica/pstree.c +2 -0
@@ -308,7 +308,9 @@ union acpi_parse_object *acpi_ps_get_child(union acpi_parse_object *op)break ;default : +/* All others have no children */ +break ; }
drivers/acpi/acpica/rscalc.c +2 -0
@@ -352,6 +352,7 @@ acpi_rs_get_aml_length(struct acpi_resource * resource, acpi_size * size_needed)break ;default : +break ; }
@@ -539,6 +540,7 @@ acpi_rs_get_list_length(u8 * aml_buffer,break ;default : +break ; }
drivers/acpi/acpica/rsdump.c +10 -0
@@ -120,17 +120,20 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)/* Strings */ case ACPI_RSD_LITERAL : +acpi_rs_out_string (name,ACPI_CAST_PTR (char, table->pointer));break ;case ACPI_RSD_STRING : +acpi_rs_out_string (name,ACPI_CAST_PTR (char, target));break ;/* Data items, 8/16/32/64 bit */ case ACPI_RSD_UINT8 : +if (table->pointer) { acpi_rs_out_string(name, ACPI_CAST_PTR(char, table->
@@ -142,20 +145,24 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)break ;case ACPI_RSD_UINT16 : +acpi_rs_out_integer16 (name,ACPI_GET16 (target));break ;case ACPI_RSD_UINT32 : +acpi_rs_out_integer32 (name,ACPI_GET32 (target));break ;case ACPI_RSD_UINT64 : +acpi_rs_out_integer64 (name,ACPI_GET64 (target));break ;/* Flags: 1-bit and 2-bit flags supported */ case ACPI_RSD_1BITFLAG : + acpi_rs_out_string(name, ACPI_CAST_PTR(char, table-> pointer[*target &
@@ -163,6 +170,7 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)break ;case ACPI_RSD_2BITFLAG : + acpi_rs_out_string(name, ACPI_CAST_PTR(char, table-> pointer[*target &
@@ -170,6 +178,7 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)break ;case ACPI_RSD_3BITFLAG : + acpi_rs_out_string(name, ACPI_CAST_PTR(char, table-> pointer[*target &
@@ -258,6 +267,7 @@ acpi_rs_dump_descriptor(void *resource, struct acpi_rsdump_info *table)break ;default : +acpi_os_printf ("**** Invalid table opcode [%X] ****\n" , table->opcode);return ;
drivers/acpi/acpica/rsmisc.c +2 -1
@@ -194,7 +194,6 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,break ;case ACPI_RSC_COUNT_GPIO_RES : -/* * Vendor data is optional (length/offset may both be zero) * Examine vendor data length field first
@@ -410,12 +409,14 @@ acpi_rs_convert_aml_to_resource(struct acpi_resource *resource,*/ switch (info->resource_offset) {case ACPI_RSC_COMPARE_AML_LENGTH : +if (aml_resource_length != info->value) { goto exit; }break ;case ACPI_RSC_COMPARE_VALUE : +if (ACPI_GET8 (source) != info->value) { goto exit; }
drivers/acpi/acpica/rsutils.c +5 -0
@@ -147,6 +147,7 @@ acpi_rs_move_data(void *destination, void *source, u16 item_count, u8 move_type)case ACPI_RSC_MOVE_GPIO_RES :case ACPI_RSC_MOVE_SERIAL_VEN :case ACPI_RSC_MOVE_SERIAL_RES : +ACPI_MEMCPY (destination, source, item_count);return ;
@@ -157,21 +158,25 @@ acpi_rs_move_data(void *destination, void *source, u16 item_count, u8 move_type)*/ case ACPI_RSC_MOVE16 :case ACPI_RSC_MOVE_GPIO_PIN : +ACPI_MOVE_16_TO_16 (&ACPI_CAST_PTR (u16, destination)[i], &ACPI_CAST_PTR (u16, source)[i]);break ;case ACPI_RSC_MOVE32 : +ACPI_MOVE_32_TO_32 (&ACPI_CAST_PTR (u32, destination)[i], &ACPI_CAST_PTR (u32, source)[i]);break ;case ACPI_RSC_MOVE64 : +ACPI_MOVE_64_TO_64 (&ACPI_CAST_PTR (u64, destination)[i], &ACPI_CAST_PTR (u64, source)[i]);break ;default : +return ; } }
drivers/acpi/acpica/rsxface.c +1 -0
@@ -402,6 +402,7 @@ acpi_resource_to_address64(struct acpi_resource *resource,break ;default : +return (AE_BAD_PARAMETER ); }
drivers/acpi/acpica/tbinstal.c +4 -0
@@ -471,15 +471,19 @@ void acpi_tb_delete_table(struct acpi_table_desc *table_desc) }switch (table_desc->flags &ACPI_TABLE_ORIGIN_MASK ) {case ACPI_TABLE_ORIGIN_MAPPED : +acpi_os_unmap_memory (table_desc->pointer, table_desc->length);break ; +case ACPI_TABLE_ORIGIN_ALLOCATED : +ACPI_FREE (table_desc->pointer);break ;/* Not mapped or allocated, there is nothing we can do */ default : +return ; }
drivers/acpi/acpica/utcopy.c +7 -4
@@ -178,7 +178,6 @@ acpi_ut_copy_isimple_to_esimple(union acpi_operand_object *internal_object,switch (internal_object->reference.class) {case ACPI_REFCLASS_NAME : -/* * For namepath, return the object handle ("reference") * We are referring to the namespace node
@@ -264,7 +263,6 @@ acpi_ut_copy_ielement_to_eelement(u8 object_type,switch (object_type) {case ACPI_COPY_TYPE_SIMPLE : -/* * This is a simple or null object */
@@ -278,7 +276,6 @@ acpi_ut_copy_ielement_to_eelement(u8 object_type,break ;case ACPI_COPY_TYPE_PACKAGE : -/* * Build the package object */
@@ -304,6 +301,7 @@ acpi_ut_copy_ielement_to_eelement(u8 object_type,break ;default : +return (AE_BAD_PARAMETER ); }
@@ -481,6 +479,7 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,return_ACPI_STATUS (AE_OK );default : +/* All other types are not supported */ ACPI_ERROR((AE_INFO,
@@ -544,7 +543,9 @@ acpi_ut_copy_esimple_to_isimple(union acpi_object *external_object,break ;default : +/* Other types can't get here */ +break ; }
@@ -800,7 +801,9 @@ acpi_ut_copy_simple_object(union acpi_operand_object *source_desc,break ;default : +/* Nothing to do for other simple objects */ +break ; }
@@ -868,7 +871,6 @@ acpi_ut_copy_ielement_to_ielement(u8 object_type,break ;case ACPI_COPY_TYPE_PACKAGE : -/* * This object is a package - go down another nesting level * Create and build the package object
@@ -891,6 +893,7 @@ acpi_ut_copy_ielement_to_ielement(u8 object_type,break ;default : +return (AE_BAD_PARAMETER ); }
drivers/acpi/acpica/utdelete.c +2 -1
@@ -303,6 +303,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object)break ;default : +break ; }
@@ -508,7 +509,6 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)case ACPI_TYPE_PROCESSOR :case ACPI_TYPE_POWER :case ACPI_TYPE_THERMAL : -/* * Update the notify objects for these types (if present) * Two lists, system and device notify handlers.
@@ -623,6 +623,7 @@ acpi_ut_update_object_reference(union acpi_operand_object *object, u16 action)case ACPI_TYPE_REGION :default : +break ;/* No subobjects for all other types */ }
drivers/acpi/acpica/uteval.c +5 -0
@@ -123,22 +123,27 @@ acpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node,switch ((info->return_object)->common.type) {case ACPI_TYPE_INTEGER : + return_btype =ACPI_BTYPE_INTEGER ;break ;case ACPI_TYPE_BUFFER : + return_btype =ACPI_BTYPE_BUFFER ;break ;case ACPI_TYPE_STRING : + return_btype =ACPI_BTYPE_STRING ;break ;case ACPI_TYPE_PACKAGE : + return_btype =ACPI_BTYPE_PACKAGE ;break ;default : + return_btype =0 ;break ; }
drivers/acpi/acpica/utexcep.c +1 -0
@@ -146,6 +146,7 @@ const struct acpi_exception_info *acpi_ut_validate_exception(acpi_status status)break ;default : +break ; }
drivers/acpi/acpica/utids.c +3 -0
@@ -341,14 +341,17 @@ acpi_ut_execute_CID(struct acpi_namespace_node *device_node,switch (cid_objects[i]->common.type) {case ACPI_TYPE_INTEGER : + string_area_size +=ACPI_EISAID_STRING_SIZE ;break ;case ACPI_TYPE_STRING : + string_area_size += cid_objects[i]->string.length +1 ;break ;default : + status =AE_TYPE ; goto cleanup; }
drivers/acpi/acpica/utmisc.c +2 -0
@@ -382,10 +382,12 @@ acpi_ut_display_init_pathname(u8 type,switch (type) {case ACPI_TYPE_METHOD : +acpi_os_printf ("Executing " );break ;default : +acpi_os_printf ("Initializing " );break ; }
drivers/acpi/acpica/utobject.c +2 -3
@@ -129,6 +129,7 @@ union acpi_operand_object *acpi_ut_create_internal_object_dbg(const charbreak ;default : +/* All others have no secondary object */ break ; }
@@ -353,6 +354,7 @@ u8 acpi_ut_valid_internal_object(void *object)return (TRUE);default : +ACPI_DEBUG_PRINT ((ACPI_DB_EXEC ,"%p is not not an ACPI operand obj [%s]\n" , object,acpi_ut_get_descriptor_name (object)));
@@ -509,7 +511,6 @@ acpi_ut_get_simple_object_size(union acpi_operand_object *internal_object,switch (internal_object->reference.class) {case ACPI_REFCLASS_NAME : -/* * Get the actual length of the full pathname to this object. * The reference will be converted to the pathname to the object
@@ -525,7 +526,6 @@ acpi_ut_get_simple_object_size(union acpi_operand_object *internal_object,break ;default : -/* * No other reference opcodes are supported. * Notably, Locals and Args are not supported, but this may be
@@ -585,7 +585,6 @@ acpi_ut_get_element_length(u8 object_type,switch (object_type) {case ACPI_COPY_TYPE_SIMPLE : -/* * Simple object - just get the size (Null object/entry is handled * here also) and sum it into the running package length
drivers/acpi/acpica/utstring.c +11 -0
@@ -186,10 +186,13 @@ acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer)switch (base) {case ACPI_ANY_BASE :case 16 : +break ;default : +/* Invalid Base */ +return_ACPI_STATUS (AE_BAD_PARAMETER ); }
@@ -355,36 +358,44 @@ void acpi_ut_print_string(char *string, u8 max_length)switch (string[i]) {case 0x07 : +acpi_os_printf ("\\a" );/* BELL */ break ;case 0x08 : +acpi_os_printf ("\\b" );/* BACKSPACE */ break ;case 0x0C : +acpi_os_printf ("\\f" );/* FORMFEED */ break ;case 0x0A : +acpi_os_printf ("\\n" );/* LINEFEED */ break ;case 0x0D : +acpi_os_printf ("\\r" );/* CARRIAGE RETURN */ break ;case 0x09 : +acpi_os_printf ("\\t" );/* HORIZONTAL TAB */ break ;case 0x0B : +acpi_os_printf ("\\v" );/* VERTICAL TAB */ break ;case '\'' :/* Single Quote */ case '\"' :/* Double Quote */ case '\\' :/* Backslash */ +acpi_os_printf ("\\%c" , (int )string[i]);break ;
drivers/acpi/acpica/uttrack.c +8 -0
@@ -603,6 +603,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)switch (ACPI_GET_DESCRIPTOR_TYPE (descriptor)) {case ACPI_DESC_TYPE_OPERAND : +if (element->size ==sizeof (union acpi_operand_object ))
@@ -613,6 +614,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)break ;case ACPI_DESC_TYPE_PARSER : +if (element->size ==sizeof (union acpi_parse_object )) {
@@ -622,6 +624,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)break ;case ACPI_DESC_TYPE_NAMED : +if (element->size ==sizeof (struct acpi_namespace_node ))
@@ -632,6 +635,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)break ;default : +break ; }
@@ -639,6 +643,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)switch (descriptor_type) {case ACPI_DESC_TYPE_OPERAND : +acpi_os_printf ("%12.12s RefCount 0x%04X\n" , acpi_ut_get_type_name
@@ -649,6 +654,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)break ;case ACPI_DESC_TYPE_PARSER : + acpi_os_printf ("AmlOpcode 0x%04hX\n", descriptor->op.asl.
@@ -656,6 +662,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)break ;case ACPI_DESC_TYPE_NAMED : + acpi_os_printf("%4.4s\n", acpi_ut_get_node_name (&descriptor->
@@ -663,6 +670,7 @@ void acpi_ut_dump_allocations(u32 component, const char *module)break ;default : +acpi_os_printf ("\n" );break ; }
Signature · 2 lines
1.7.10 A
PATCH 4/16 ACPICA: Add option to disable loading of SSDTs from the RSDT/XSDT
In reply to Lv ZhengOptionally do not load any SSDTs from the RSDT/XSDT during initialization. This can be useful for overriding SSDTs using DSDT overriding, thus useful for debugging ACPI problems on some machines. Lv Zheng. ACPICA BZ 1005.
--- drivers/acpi/acpica/acglobal.h | 6 ++++++ drivers/acpi/acpica/tbxfload.c | 25 ++++++++++--------------- drivers/acpi/osl.c | 11 +++++++++++ include/acpi/acpixf.h | 1 + 4 files changed, 28 insertions(+), 15 deletions(-)
drivers/acpi/acpica/acglobal.h +6 -0
@@ -132,6 +132,12 @@ u8 ACPI_INIT_GLOBAL(acpi_gbl_truncate_io_addresses, FALSE);*/ u8 ACPI_INIT_GLOBAL (acpi_gbl_disable_auto_repair ,FALSE ); +/* +* Optionally do not load any SSDTs from the RSDT/XSDT during initialization. +* This can be useful for debugging ACPI problems on some machines. +*/ +u8 ACPI_INIT_GLOBAL (acpi_gbl_disable_ssdt_table_load ,FALSE ); +/* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */ struct acpi_table_fadt acpi_gbl_FADT;
drivers/acpi/acpica/tbxfload.c +10 -15
@@ -53,8 +53,6 @@ ACPI_MODULE_NAME("tbxfload")/* Local prototypes */ static acpi_status acpi_tb_load_namespace (void ); -static int no_auto_ssdt; -/******************************************************************************* * * FUNCTION: acpi_load_tables
@@ -180,8 +178,16 @@ static acpi_status acpi_tb_load_namespace(void)continue ; } -if (no_auto_ssdt) { -printk (KERN_WARNING "ACPI: SSDT ignored due to \"acpi_no_auto_ssdt\"\n" ); +/* +* Optionally do not load any SSDTs from the RSDT/XSDT. This can +* be useful for debugging ACPI problems on some machines. +*/ +if (acpi_gbl_disable_ssdt_table_load) { +ACPI_INFO ((AE_INFO ,"Ignoring %4.4s at %p" , + acpi_gbl_root_table_list.tables[i].signature. + ascii,ACPI_CAST_PTR (void, + acpi_gbl_root_table_list. + tables[i].address)));continue ; }
@@ -376,14 +382,3 @@ acpi_status acpi_unload_parent_table(acpi_handle object) }ACPI_EXPORT_SYMBOL (acpi_unload_parent_table) - -static int __init acpi_no_auto_ssdt_setup(char *s) { - -printk (KERN_NOTICE "ACPI: SSDT auto-load disabled\n" ); - - no_auto_ssdt =1 ; - -return 1 ; -} - -__setup ("acpi_no_auto_ssdt" , acpi_no_auto_ssdt_setup);
drivers/acpi/osl.c +11 -0
@@ -1715,6 +1715,17 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object) }#endif +static int __init acpi_no_auto_ssdt_setup (char *s) +{ + printk(KERN_NOTICE PREFIX "SSDT auto-load disabled\n"); + + acpi_gbl_disable_ssdt_table_load = TRUE; + +return 1 ; +} + +__setup ("acpi_no_auto_ssdt" , acpi_no_auto_ssdt_setup); +acpi_status __init acpi_os_initialize (void ) {acpi_os_map_generic_address (&acpi_gbl_FADT.xpm1a_event_block);
include/acpi/acpixf.h +1 -0
@@ -80,6 +80,7 @@ extern bool acpi_gbl_enable_aml_debug_object;extern u8 acpi_gbl_copy_dsdt_locally;extern u8 acpi_gbl_truncate_io_addresses;extern u8 acpi_gbl_disable_auto_repair; +extern u8 acpi_gbl_disable_ssdt_table_load;/* * Hardware-reduced prototypes. All interfaces that use these macros will
Signature · 1 line
1.7.10
PATCH 5/16 ACPICA: Split table print utilities to a new a separate file
In reply to Lv ZhengFrom: Bob Moore <[email protected]>
Improves configurability of ACPICA.
--- drivers/acpi/acpica/Makefile | 1 + drivers/acpi/acpica/tbprint.c | 237 +++++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/tbutils.c | 191 +-------------------------------- 3 files changed, 239 insertions(+), 190 deletions(-) create mode 100644 drivers/acpi/acpica/tbprint.c
drivers/acpi/acpica/Makefile +1 -0
@@ -138,6 +138,7 @@ acpi-y += \ tbfadt.o \ tbfind.o \ tbinstal.o \ + tbprint.o \ tbutils.o \ tbxface.o \ tbxfload.o \
drivers/acpi/acpica/tbprint.c new file +237 -0
237 lines not on this page · raw message
drivers/acpi/acpica/tbutils.c +1 -190
208 lines not on this page · raw message
Signature · 1 line
1.7.10
PATCH 7/16 ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Lv ZhengFrom: Bob Moore <[email protected]>
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
--- include/acpi/acpiosxf.h | 18 ++++++++++++++++++ include/acpi/actypes.h | 8 ++++++++ include/acpi/platform/acenv.h | 5 +++-- 3 files changed, 29 insertions(+), 2 deletions(-)
include/acpi/acpiosxf.h +18 -0
@@ -262,6 +262,24 @@ u32 acpi_os_get_line(char *buffer);#endif /* +* Obtain ACPI table(s) +*/ +acpi_status +acpi_os_get_table_by_name (char *signature, +u32 instance, +struct acpi_table_header **table, +acpi_physical_address * address); + +acpi_status +acpi_os_get_table_by_index (u32 index, +struct acpi_table_header **table, +acpi_physical_address * address); + +acpi_status +acpi_os_get_table_by_address (acpi_physical_address address, +struct acpi_table_header **table); + +/* * Directory manipulation */ void *acpi_os_open_directory(char *pathname,
include/acpi/actypes.h +8 -0
@@ -306,6 +306,14 @@ typedef u32 acpi_physical_address;#define ACPI_EXPORT_SYMBOL (symbol)#endif +/* +* Compiler/Clibrary-dependent debug initialization. Used for ACPICA +* utilities only. +*/ +#ifndef ACPI_DEBUG_INITIALIZE +#define ACPI_DEBUG_INITIALIZE () +#endif +/****************************************************************************** * * ACPI Specification constants (Do not change unless the specification changes)
include/acpi/platform/acenv.h +3 -2
@@ -96,10 +96,11 @@#endif /* -* acpi_bin/acpi_help/acpi_src configuration. All single threaded, with -* no debug output. +* acpi_bin/acpi_dump/acpi_src/acpi_xtract configuration. All single +* threaded, with no debug output. */ #if (definedACPI_BIN_APP ) || \ + (definedACPI_DUMP_APP ) || \ (definedACPI_SRC_APP ) || \ (definedACPI_XTRACT_APP )#define ACPI_APPLICATION
Signature · 1 line
1.7.10
PATCH 6/16 ACPICA: Do not use extended sleep registers unless HW-reduced bit is set
In reply to Lv ZhengPrevious implementation incorrectly used the ACPI 5.0 extended sleep registers if they were simply populated. This caused problems on some non-HW-reduced machines. As per the ACPI spec, they should only be used if the HW-reduced bit is set. Lv Zheng, ACPICA BZ 1020.
--- drivers/acpi/acpica/hwxfsleep.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
drivers/acpi/acpica/hwxfsleep.c +5 -3
@@ -240,12 +240,14 @@ static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id) &acpi_sleep_dispatch[function_id];#if (!ACPI_REDUCED_HARDWARE ) -/* * If the Hardware Reduced flag is set (from the FADT), we must -* use the extended sleep registers +* use the extended sleep registers (FADT). Note: As per the ACPI +* specification, these extended registers are to be used for HW-reduced +* platforms only. They are not general-purpose replacements for the +* legacy PM register sleep support. */ -if (acpi_gbl_reduced_hardware || acpi_gbl_FADT.sleep_control.address) { +if (acpi_gbl_reduced_hardware) { status = sleep_functions->extended_function (sleep_state); }else {/* Legacy sleep */
Signature · 1 line
1.7.10
PATCH 8/16 ACPICA: Update interface to AcpiUtValidAcpiName
In reply to Lv ZhengFrom: Bob Moore <[email protected]>
Clean up the interface by making the input argument a char * string instead of a UINT32 name. This is easier to use for all callers and eliminates casting to *(UINT32*)
--- drivers/acpi/acpica/acutils.h | 2 +- drivers/acpi/acpica/tbinstal.c | 3 +-- drivers/acpi/acpica/utstring.c | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-)
drivers/acpi/acpica/acutils.h +1 -1
@@ -620,7 +620,7 @@ void acpi_ut_print_string(char *string, u8 max_length);void ut_convert_backslashes (char *pathname); -u8 acpi_ut_valid_acpi_name (u32 name); +u8 acpi_ut_valid_acpi_name (char *name);u8 acpi_ut_valid_acpi_char (char character,u32 position);
drivers/acpi/acpica/tbinstal.c +1 -2
@@ -141,8 +141,7 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index)ACPI_BIOS_ERROR ((AE_INFO ,"Table has invalid signature [%4.4s] (0x%8.8X), " "must be SSDT or OEMx" , -acpi_ut_valid_acpi_name (*(u32 *)table_desc-> - pointer-> +acpi_ut_valid_acpi_name (table_desc->pointer-> signature) ? table_desc->pointer->signature :"????" , *(u32 *)table_desc->pointer->signature));
drivers/acpi/acpica/utstring.c +4 -4
@@ -462,7 +462,8 @@ u8 acpi_ut_valid_acpi_char(char character, u32 position)* * FUNCTION: acpi_ut_valid_acpi_name * -* PARAMETERS: name - The name to be examined +* PARAMETERS: name - The name to be examined. Does not have to +* be NULL terminated string. * * RETURN: TRUE if the name is valid, FALSE otherwise *
@@ -473,15 +474,14 @@ u8 acpi_ut_valid_acpi_char(char character, u32 position)* ******************************************************************************/ -u8 acpi_ut_valid_acpi_name (u32 name) +u8 acpi_ut_valid_acpi_name (char *name) {u32 i;ACPI_FUNCTION_ENTRY ();for (i =0 ; i <ACPI_NAME_SIZE ; i++) { -if (!acpi_ut_valid_acpi_char - ((ACPI_CAST_PTR (char, &name))[i], i)) { +if (!acpi_ut_valid_acpi_char (name[i], i)) {return (FALSE); } }
Signature · 1 line
1.7.10
PATCH 9/16 ACPICA: ACPICA Termination: Delete global lock pending lock
In reply to Lv ZhengFrom: Tomasz Nowicki <[email protected]>
Add deletion of this lock, used for the global lock. ACPICA BZ 1012. Tomasz Nowicki <[email protected]>
--- drivers/acpi/acpica/evglock.c | 1 + 1 file changed, 1 insertion(+)
drivers/acpi/acpica/evglock.c +1 -0
@@ -128,6 +128,7 @@ acpi_status acpi_ev_remove_global_lock_handler(void) status =acpi_remove_fixed_event_handler (ACPI_EVENT_GLOBAL , acpi_ev_global_lock_handler); +acpi_os_delete_lock (acpi_gbl_global_lock_pending_lock);return_ACPI_STATUS (status); }
Signature · 1 line
1.7.10
PATCH 10/16 ACPICA: Fix possible memory leak in GPE init error path
In reply to Lv ZhengFrom: Tomasz Nowicki <[email protected]>
Some GPE blocks were not deleted. ACPICA BZ 1018. Tomasz Nowicki <[email protected]>
--- drivers/acpi/acpica/evgpeblk.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/acpi/acpica/evgpeblk.c +2 -0
@@ -382,6 +382,8 @@ acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device, status =acpi_ev_install_gpe_block (gpe_block, interrupt_number);if (ACPI_FAILURE (status)) { +ACPI_FREE (gpe_block->register_info); +ACPI_FREE (gpe_block->event_info);ACPI_FREE (gpe_block);return_ACPI_STATUS (status); }
Signature · 1 line
1.7.10
PATCH 11/16 ACPICA: Clear events initialized flag upon event component termination
In reply to Lv ZhengFrom: Tomasz Nowicki <[email protected]>
Clear this flag to allow clean startup and even double termination. ACPICA BZ 1013. Tomasz Nowicki <[email protected]>
--- drivers/acpi/acpica/evmisc.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/acpi/acpica/evmisc.c +2 -0
@@ -276,6 +276,8 @@ void acpi_ev_terminate(void)ACPI_ERROR ((AE_INFO ,"Could not remove Global Lock handler" )); } + + acpi_gbl_events_initialized = FALSE; }/* Deallocate all handler objects installed within GPE info structs */
Signature · 1 line
1.7.10
PATCH 12/16 ACPICA: Support Mac OS X in Makefile
In reply to Lv ZhengFrom: Bob Moore <[email protected]>
* gcc and clang both works.
* make install works.
* support PREFIX and HOST.
--- include/acpi/platform/acenv.h | 3 +++ 1 file changed, 3 insertions(+)
include/acpi/platform/acenv.h +3 -0
@@ -148,6 +148,9 @@#if defined(_LINUX) || defined(__linux__)#include <acpi/platform/aclinux.h> +#elif defined(_APPLE) || defined(__APPLE__) +#include "acmacosx.h" +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)#include "acfreebsd.h"
Signature · 1 line
1.7.10
PATCH 13/16 ACPICA: Move _PRT repair into the standard complex repair module
In reply to Lv ZhengMoved this longstanding repair to the relatively new predefined name repair module. ACPICA BZ 783. Lv Zheng.
--- drivers/acpi/acpica/nspredef.c | 7 ++- drivers/acpi/acpica/nsrepair2.c | 114 ++++++++++++++++++++++++++++++--------- drivers/acpi/acpica/rscalc.c | 5 +- drivers/acpi/acpica/rscreate.c | 27 ---------- 4 files changed, 99 insertions(+), 54 deletions(-)
drivers/acpi/acpica/nspredef.c +6 -1
@@ -158,7 +158,12 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node, info->parent_package = *return_object_ptr; status =acpi_ns_check_package (info, return_object_ptr);if (ACPI_FAILURE (status)) { - goto exit; + +/* We might be able to fix an operand type error (_PRT) */ + +if (status !=AE_AML_OPERAND_TYPE ) { + goto exit; + } } }
drivers/acpi/acpica/nsrepair2.c +90 -24
159 lines not on this page · raw message
drivers/acpi/acpica/rscalc.c +3 -2
@@ -652,8 +652,9 @@ acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object, name_found = FALSE; -for (table_index =0 ; table_index <4 && !name_found; - table_index++) { +for (table_index =0 ; + table_index < package_element->package.count + && !name_found; table_index++) { if (*sub_object_list && /* Null object allowed */ ((ACPI_TYPE_STRING == (*sub_object_list)->common.type) ||
drivers/acpi/acpica/rscreate.c +0 -27
@@ -273,17 +273,6 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object,*/ user_prt->length = (sizeof (struct acpi_pci_routing_table ) -4 ); -/* Each element of the top-level package must also be a package */ - -if ((*top_object_list)->common.type !=ACPI_TYPE_PACKAGE ) { -ACPI_ERROR ((AE_INFO , -"(PRT[%u]) Need sub-package, found %s" , - index, -acpi_ut_get_object_type_name - (*top_object_list))); -return_ACPI_STATUS (AE_AML_OPERAND_TYPE ); - } -/* Each sub-package must be of length 4 */ if ((*top_object_list)->package.count !=4 ) {
@@ -327,22 +316,6 @@ acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object, user_prt->pin = (u32 ) obj_desc->integer.value;/* -* If the BIOS has erroneously reversed the _PRT source_name (index 2) -* and the source_index (index 3), fix it. _PRT is important enough to -* workaround this BIOS error. This also provides compatibility with -* other ACPI implementations. -*/ - obj_desc = sub_object_list[3 ]; -if (!obj_desc || (obj_desc->common.type !=ACPI_TYPE_INTEGER )) { - sub_object_list[3 ] = sub_object_list[2 ]; - sub_object_list[2 ] = obj_desc; - -ACPI_WARNING ((AE_INFO , -"(PRT[%X].Source) SourceName and SourceIndex are reversed, fixed" , - index)); - } - -/* * 3) Third subobject: Dereference the PRT.source_name * The name may be unresolved (slack mode), so allow a null object */
Signature · 1 line
1.7.10
PATCH 14/16 ACPICA: Add several repairs for _CST predefined name
In reply to Lv ZhengSort list based on the C-state, remove invalid/zero entries. ACPICA BZ 890. Lv Zheng.
--- drivers/acpi/acpica/nspredef.c | 5 +- drivers/acpi/acpica/nsrepair2.c | 170 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 163 insertions(+), 12 deletions(-)
drivers/acpi/acpica/nspredef.c +3 -2
@@ -159,9 +159,10 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node, status =acpi_ns_check_package (info, return_object_ptr);if (ACPI_FAILURE (status)) { -/* We might be able to fix an operand type error (_PRT) */ +/* We might be able to fix some errors */ -if (status !=AE_AML_OPERAND_TYPE ) { +if ((status !=AE_AML_OPERAND_TYPE ) && + (status !=AE_AML_OPERAND_VALUE )) { goto exit; } }
drivers/acpi/acpica/nsrepair2.c +160 -10
258 lines not on this page · raw message
Signature · 1 line
1.7.10
PATCH 15/16 ACPICA: _CST repair: Handle null package entries
In reply to Lv ZhengSort package only after null/bad elements have been removed. Lv Zheng.
--- drivers/acpi/acpica/nsrepair2.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
drivers/acpi/acpica/nsrepair2.c +12 -12
@@ -452,18 +452,7 @@ acpi_ns_repair_CST(struct acpi_evaluate_info *info,ACPI_FUNCTION_NAME (ns_repair_CST);/* -* Entries (subpackages) in the _CST Package must be sorted by the -* C-state type, in ascending order. -*/ - status =acpi_ns_check_sorted_list (info, return_object,1 ,4 ,1 , -ACPI_SORT_ASCENDING ,"C-State Type" ); -if (ACPI_FAILURE (status)) { -return (status); - } - -/* -* We now know the list is correctly sorted by C-state type. Check if -* the C-state type values are proportional. +* Check if the C-state type values are proportional. */ outer_element_count = return_object->package.count -1 ; i =0 ;
@@ -502,6 +491,17 @@ acpi_ns_repair_CST(struct acpi_evaluate_info *info, obj_desc = return_object->package.elements[0 ]; obj_desc->integer.value = outer_element_count; + +/* +* Entries (subpackages) in the _CST Package must be sorted by the +* C-state type, in ascending order. +*/ + status =acpi_ns_check_sorted_list (info, return_object,1 ,4 ,1 , +ACPI_SORT_ASCENDING ,"C-State Type" ); +if (ACPI_FAILURE (status)) { +return (status); + } +return (AE_OK ); }
Signature · 1 line
1.7.10
PATCH 16/16 ACPICA: Update version to 20130517
In reply to Lv ZhengFrom: Bob Moore <[email protected]>
Version 20130517.
--- include/acpi/acpixf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/acpi/acpixf.h +1 -1
@@ -46,7 +46,7 @@/* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20130418 +#define ACPI_CA_VERSION 0x20130517#include <acpi/acconfig.h> #include <acpi/actypes.h>
Signature · 1 line
1.7.10
Quoted 131 lines · Lv Zheng
The 20130517 ACPICA kernel resident system updates is linuxized based on the pm/linux-next branch.
The patch set has passed a build/boot test on the following machines:
Dell Inspiron Mini 1010 (i386)
HP Compaq 8200 Elite SFF PC (x86-64)
With the following kernel configuration items enabled:
CONFIG_ACPI_AC
CONFIG_ACPI_BATTERY
CONFIG_ACPI_NUMA
CONFIG_ACPI_PROCESSOR
CONFIG_ACPI_THERMAL
CONFIG_ACPI_VIDEO
CONFIG_CPU_FREQ
CONFIG_I2C_SCMI
CONFIG_SENSORS_ACPI_POWER
CONFIG_PANASONIC_LAPTOP
CONFIG_XO15_EBOOK
No new divergences are introduced in this release.
Please review.Bob Moore (7):
ACPICA: Split buffer dump routines into separate file
ACPICA: Split internal error msg routines to a separate file
ACPICA: Split table print utilities to a new a separate file
ACPICA: New: Portable acpidump utility (get system ACPI tables)
ACPICA: Update interface to AcpiUtValidAcpiName
ACPICA: Support Mac OS X inMakefile
ACPICA: Update version to 20130517Chao Guan (1):
ACPICA: Standardize allswitch()blocksLv Zheng (5):
ACPICA: Add option to disable loading of SSDTs from the RSDT/XSDT
ACPICA: Do not use extended sleep registers unless HW-reduced bit is
set
ACPICA: Move_PRTrepair into the standard complex repair module
ACPICA: Add several repairs for_CSTpredefined name
ACPICA:_CSTrepair: Handle null package entriesTomasz Nowicki (3):
ACPICA: ACPICA Termination: Delete global lock pending lock
ACPICA: Fix possible memory leak in GPE init error path
ACPICA: Clear events initialized flag upon event component
terminationdrivers/acpi/acpica/Makefile | 3 + drivers/acpi/acpica/acglobal.h | 6 + drivers/acpi/acpica/acutils.h | 44 +++++- drivers/acpi/acpica/dscontrol.c | 4 +- drivers/acpi/acpica/dsfield.c | 4 + drivers/acpi/acpica/dsinit.c | 1 + drivers/acpi/acpica/dsmthdat.c | 2 +- drivers/acpi/acpica/dsobject.c | 3 +- drivers/acpi/acpica/dsopcode.c | 1 + drivers/acpi/acpica/dsutils.c | 5 +- drivers/acpi/acpica/dswexec.c | 3 +- drivers/acpi/acpica/dswload.c | 7 +- drivers/acpi/acpica/dswload2.c | 4 + drivers/acpi/acpica/evglock.c | 1 + drivers/acpi/acpica/evgpe.c | 6 +- drivers/acpi/acpica/evgpeblk.c | 2 + drivers/acpi/acpica/evgpeinit.c | 3 + drivers/acpi/acpica/evhandler.c | 7 + drivers/acpi/acpica/evmisc.c | 3 + drivers/acpi/acpica/evrgnini.c | 2 + drivers/acpi/acpica/evxfgpe.c | 3 + drivers/acpi/acpica/evxfregn.c | 1 + drivers/acpi/acpica/exconfig.c | 1 + drivers/acpi/acpica/exconvrt.c | 13 +- drivers/acpi/acpica/excreate.c | 3 - drivers/acpi/acpica/exdebug.c | 2 + drivers/acpi/acpica/exdump.c | 2 + drivers/acpi/acpica/exfield.c | 4 + drivers/acpi/acpica/exfldio.c | 2 - drivers/acpi/acpica/exmisc.c | 12 +- drivers/acpi/acpica/exoparg1.c | 16 +-- drivers/acpi/acpica/exoparg2.c | 1 - drivers/acpi/acpica/exoparg3.c | 1 - drivers/acpi/acpica/exoparg6.c | 5 - drivers/acpi/acpica/exprep.c | 7 + drivers/acpi/acpica/exregion.c | 27 +++- drivers/acpi/acpica/exresnte.c | 1 + drivers/acpi/acpica/exresolv.c | 6 +- drivers/acpi/acpica/exresop.c | 9 +- drivers/acpi/acpica/exstore.c | 4 +- drivers/acpi/acpica/exstoren.c | 4 - drivers/acpi/acpica/hwacpi.c | 2 +- drivers/acpi/acpica/hwgpe.c | 3 + drivers/acpi/acpica/hwregs.c | 4 +- drivers/acpi/acpica/hwxface.c | 3 + drivers/acpi/acpica/hwxfsleep.c | 12 +- drivers/acpi/acpica/nsaccess.c | 1 + drivers/acpi/acpica/nsconvert.c | 3 + drivers/acpi/acpica/nsdump.c | 10 ++ drivers/acpi/acpica/nsinit.c | 9 ++ drivers/acpi/acpica/nspredef.c | 14 +- drivers/acpi/acpica/nsprepkg.c | 5 - drivers/acpi/acpica/nsrepair.c | 1 + drivers/acpi/acpica/nsrepair2.c | 283 +++++++++++++++++++++++++++++++++----- drivers/acpi/acpica/nsutils.c | 3 + drivers/acpi/acpica/nsxfeval.c | 1 + drivers/acpi/acpica/psargs.c | 4 + drivers/acpi/acpica/psloop.c | 2 +- drivers/acpi/acpica/psobject.c | 1 + drivers/acpi/acpica/psparse.c | 3 +- drivers/acpi/acpica/pstree.c | 2 + drivers/acpi/acpica/rscalc.c | 7 +- drivers/acpi/acpica/rscreate.c | 27 ---- drivers/acpi/acpica/rsdump.c | 10 ++ drivers/acpi/acpica/rsmisc.c | 3 +- drivers/acpi/acpica/rsutils.c | 5 + drivers/acpi/acpica/rsxface.c | 1 + drivers/acpi/acpica/tbinstal.c | 7 +- drivers/acpi/acpica/tbprint.c | 237 ++++++++++++++++++++++++++++++++ drivers/acpi/acpica/tbutils.c | 191 +------------------------- drivers/acpi/acpica/tbxfload.c | 25 ++-- drivers/acpi/acpica/utbuffer.c | 201 +++++++++++++++++++++++++++ drivers/acpi/acpica/utcopy.c | 11 +- drivers/acpi/acpica/utdebug.c | 148 +------------------- drivers/acpi/acpica/utdelete.c | 3 +- drivers/acpi/acpica/uterror.c | 289 +++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/uteval.c | 7 +- drivers/acpi/acpica/utexcep.c | 1 + drivers/acpi/acpica/utids.c | 3 + drivers/acpi/acpica/utmisc.c | 2 + drivers/acpi/acpica/utobject.c | 5 +- drivers/acpi/acpica/utstring.c | 19 ++- drivers/acpi/acpica/uttrack.c | 8 ++ drivers/acpi/acpica/utxferror.c | 277 ------------------------------------- drivers/acpi/osl.c | 11 ++
Quoted 8 lines
include/acpi/acpiosxf.h | 18 +++ include/acpi/acpixf.h | 3 +- include/acpi/actypes.h | 8 ++ include/acpi/platform/acenv.h | 8 +- 89 files changed, 1353 insertions(+), 783 deletions(-) create mode 100644 drivers/acpi/acpica/tbprint.c create mode 100644 drivers/acpi/acpica/utbuffer.c create mode 100644 drivers/acpi/acpica/uterror.c
I've queued up all patches from this series except for [12/16] (which I don't think is necessary for the Linux kernel) for 3.11.
Thanks Lv!
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 01/16] ACPICA: Split buffer dump routines into separate file
In reply to Lv ZhengRe: [PATCH 02/16] ACPICA: Split internal error msg routines to a separate file
In reply to Lv ZhengQuoted 695 lines · Lv Zheng
From: Bob Moore <[email protected]>
Improves configurability of ACPICA.
Signed-off-by Bob Moore <[email protected]>Signed-off-by Lv Zheng <[email protected]>--- drivers/acpi/acpica/Makefile | 1 + drivers/acpi/acpica/acutils.h | 42 ++++++ drivers/acpi/acpica/uterror.c | 289 +++++++++++++++++++++++++++++++++++++++ drivers/acpi/acpica/uteval.c | 2 +- drivers/acpi/acpica/utxferror.c | 277 ------------------------------------- 5 files changed, 333 insertions(+), 278 deletions(-) create mode 100644 drivers/acpi/acpica/uterror.cdrivers/acpi/acpica/Makefile +1
-0@@ -152,6 +152,7 @@ acpi-y += \ utdebug.o \ utdecode.o \ utdelete.o \ + uterror.o \ uteval.o \ utglobal.o \ utids.o \drivers/acpi/acpica/acutils.h +42
-0@@ -87,6 +87,48 @@ extern const char *acpi_gbl_fc_decode[];extern const char *acpi_gbl_pt_decode[];#endif +/* +* For the iASL compiler case, the output is redirected to stderr so that +* any of the various ACPI errors and warnings do not appear in the output +* files, for either the compiler or disassembler portions of the tool. +*/ +#ifdef ACPI_ASL_COMPILER + +#include <stdio.h> +extern FILE *acpi_gbl_output_file; + +#define ACPI_MSG_REDIRECT_BEGIN \ + FILE *output_file = acpi_gbl_output_file; \ + acpi_os_redirect_output (stderr); + +#define ACPI_MSG_REDIRECT_END \ + acpi_os_redirect_output (output_file); + +#else +/* +* non-iASL case - no redirection, nothing to do +*/ +#define ACPI_MSG_REDIRECT_BEGIN +#define ACPI_MSG_REDIRECT_END +#endif + +/* +* Common error message prefixes +*/ +#define ACPI_MSG_ERROR "ACPI Error: " +#define ACPI_MSG_EXCEPTION "ACPI Exception: " +#define ACPI_MSG_WARNING "ACPI Warning: " +#define ACPI_MSG_INFO "ACPI: " + +#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " +#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " + +/* +* Common message suffix +*/ +#define ACPI_MSG_SUFFIX \ + acpi_os_printf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, module_name, line_number) +/* Types for Resource descriptor entries */ #define ACPI_INVALID_RESOURCE 0drivers/acpi/acpica/uterror.c new file +289
-0@@ -0,0 +1,289 @@ +/******************************************************************************* +* +* Module Name: uterror - Various internal error/warning output functions +* +******************************************************************************/ + +/* +* Copyright (C) 2000 - 2013, 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. +*/ + +#include <acpi/acpi.h> +#include "accommon.h" +#include "acnamesp.h" + +#define _COMPONENT ACPI_UTILITIES +ACPI_MODULE_NAME ("uterror" ) + +/* +* This module contains internal error functions that may +* be configured out. + */ +#if !defined (ACPI_NO_ERROR_MESSAGES ) +/******************************************************************************* +* +* FUNCTION: acpi_ut_predefined_warning +* +* PARAMETERS: module_name - Caller's module name (for error output) +* line_number - Caller's line number (for error output) +* pathname - Full pathname to the node +* node_flags - From Namespace node for the method/object +* format - Printf format string + additional args +* +* RETURN: None +* +* DESCRIPTION: Warnings for the predefined validation module. Messages are +* only emitted the first time a problem with a particular +* method/object is detected. This prevents a flood of error +* messages for methods that are repeatedly evaluated. +* +******************************************************************************/ +void ACPI_INTERNAL_VAR_XFACE +acpi_ut_predefined_warning (const char *module_name, +u32 line_number, +char *pathname, +u8 node_flags,const char *format, ...) +{ +va_list arg_list; + +/* +* Warning messages for this method/object will be disabled after the +* first time a validation fails or an object is successfully repaired. +*/ +if (node_flags &ANOBJ_EVALUATED ) { +return ; + } + +acpi_os_printf (ACPI_MSG_WARNING "%s: " , pathname); + +va_start (arg_list, format); +acpi_os_vprintf (format, arg_list); +ACPI_MSG_SUFFIX ; +va_end (arg_list); +} + +/******************************************************************************* +* +* FUNCTION: acpi_ut_predefined_info +* +* PARAMETERS: module_name - Caller's module name (for error output) +* line_number - Caller's line number (for error output) +* pathname - Full pathname to the node +* node_flags - From Namespace node for the method/object +* format - Printf format string + additional args +* +* RETURN: None +* +* DESCRIPTION: Info messages for the predefined validation module. Messages +* are only emitted the first time a problem with a particular +* method/object is detected. This prevents a flood of +* messages for methods that are repeatedly evaluated. +* +******************************************************************************/ + +void ACPI_INTERNAL_VAR_XFACE +acpi_ut_predefined_info (const char *module_name, +u32 line_number, +char *pathname,u8 node_flags,const char *format, ...) +{ +va_list arg_list; + +/* +* Warning messages for this method/object will be disabled after the +* first time a validation fails or an object is successfully repaired. +*/ +if (node_flags &ANOBJ_EVALUATED ) { +return ; + } + +acpi_os_printf (ACPI_MSG_INFO "%s: " , pathname); + +va_start (arg_list, format); +acpi_os_vprintf (format, arg_list); +ACPI_MSG_SUFFIX ; +va_end (arg_list); +} + +/******************************************************************************* +* +* FUNCTION: acpi_ut_predefined_bios_error +* +* PARAMETERS: module_name - Caller's module name (for error output) +* line_number - Caller's line number (for error output) +* pathname - Full pathname to the node +* node_flags - From Namespace node for the method/object +* format - Printf format string + additional args +* +* RETURN: None +* +* DESCRIPTION: BIOS error message for predefined names. Messages +* are only emitted the first time a problem with a particular +* method/object is detected. This prevents a flood of +* messages for methods that are repeatedly evaluated. +* +******************************************************************************/ + +void ACPI_INTERNAL_VAR_XFACE +acpi_ut_predefined_bios_error (const char *module_name, +u32 line_number, +char *pathname, +u8 node_flags,const char *format, ...) +{ +va_list arg_list; + +/* +* Warning messages for this method/object will be disabled after the +* first time a validation fails or an object is successfully repaired. +*/ +if (node_flags &ANOBJ_EVALUATED ) { +return ; + } + +acpi_os_printf (ACPI_MSG_BIOS_ERROR "%s: " , pathname); + +va_start (arg_list, format); +acpi_os_vprintf (format, arg_list); +ACPI_MSG_SUFFIX ; +va_end (arg_list); +} + +/******************************************************************************* +* +* FUNCTION: acpi_ut_namespace_error +* +* PARAMETERS: module_name - Caller's module name (for error output) +* line_number - Caller's line number (for error output) +* internal_name - Name or path of the namespace node +* lookup_status - Exception code from NS lookup +* +* RETURN: None +* +* DESCRIPTION: Print error message with the full pathname for the NS node. +* +******************************************************************************/ + +void +acpi_ut_namespace_error (const char *module_name, +u32 line_number, +const char *internal_name,acpi_status lookup_status) +{ +acpi_status status; +u32 bad_name; +char *name =NULL ; + +ACPI_MSG_REDIRECT_BEGIN ; +acpi_os_printf (ACPI_MSG_ERROR ); + +if (lookup_status ==AE_BAD_CHARACTER ) { + +/* There is a non-ascii character in the name */ + +ACPI_MOVE_32_TO_32 (&bad_name, +ACPI_CAST_PTR (u32, internal_name)); +acpi_os_printf ("[0x%.8X] (NON-ASCII)" , bad_name); + }else { +/* Convert path to external format */ + + status =acpi_ns_externalize_name (ACPI_UINT32_MAX , + internal_name,NULL , &name); + +/* Print target name */ + +if (ACPI_SUCCESS (status)) { +acpi_os_printf ("[%s]" , name); + }else { +acpi_os_printf ("[COULD NOT EXTERNALIZE NAME]" ); + } + +if (name) { +ACPI_FREE (name); + } + } + +acpi_os_printf (" Namespace lookup failure, %s" , +acpi_format_exception (lookup_status)); + +ACPI_MSG_SUFFIX ; +ACPI_MSG_REDIRECT_END ; +} + +/******************************************************************************* +* +* FUNCTION: acpi_ut_method_error +* +* PARAMETERS: module_name - Caller's module name (for error output) +* line_number - Caller's line number (for error output) +* message - Error message to use on failure +* prefix_node - Prefix relative to the path +* path - Path to the node (optional) +* method_status - Execution status +* +* RETURN: None +* +* DESCRIPTION: Print error message with the full pathname for the method. +* +******************************************************************************/ + +void +acpi_ut_method_error (const char *module_name, +u32 line_number, +const char *message, +struct acpi_namespace_node *prefix_node, +const char *path,acpi_status method_status) +{ +acpi_status status; +struct acpi_namespace_node *node = prefix_node; + +ACPI_MSG_REDIRECT_BEGIN ; +acpi_os_printf (ACPI_MSG_ERROR ); + +if (path) { + status = +acpi_ns_get_node (prefix_node, path,ACPI_NS_NO_UPSEARCH , + &node); +if (ACPI_FAILURE (status)) { +acpi_os_printf ("[Could not get node by pathname]" ); + } + } + +acpi_ns_print_node_pathname (node, message); +acpi_os_printf (", %s" ,acpi_format_exception (method_status)); + +ACPI_MSG_SUFFIX ; +ACPI_MSG_REDIRECT_END ; +} + +#endif /* ACPI_NO_ERROR_MESSAGES */ drivers/acpi/acpica/uteval.c +1
-1@@ -68,7 +68,7 @@ ACPI_MODULE_NAME("uteval")******************************************************************************/ acpi_status -acpi_ut_evaluate_object (struct acpi_namespace_node * prefix_node, +acpi_ut_evaluate_object (struct acpi_namespace_node *prefix_node,char *path,u32 expected_return_btypes,union acpi_operand_object **return_desc)drivers/acpi/acpica/utxferror.c +0
-278@@ -44,7 +44,6 @@#include <linux/export.h> #include <acpi/acpi.h> #include "accommon.h" -#include "acnamesp.h" #define _COMPONENT ACPI_UTILITIESACPI_MODULE_NAME ("utxferror" )@@ -52,43 +51,7 @@ ACPI_MODULE_NAME("utxferror")/* * This module is used for the in-kernel ACPICA as well as the ACPICA * tools/applications. -* -* For the iASL compiler case, the output is redirected to stderr so that -* any of the various ACPI errors and warnings do not appear in the output -* files, for either the compiler or disassembler portions of the tool. -*/ -#ifdef ACPI_ASL_COMPILER -#include <stdio.h> -extern FILE *acpi_gbl_output_file; - -#define ACPI_MSG_REDIRECT_BEGIN \ - FILE *output_file = acpi_gbl_output_file; \ - acpi_os_redirect_output (stderr); - -#define ACPI_MSG_REDIRECT_END \ - acpi_os_redirect_output (output_file); - -#else -/* -* non-iASL case - no redirection, nothing to do -*/ -#define ACPI_MSG_REDIRECT_BEGIN -#define ACPI_MSG_REDIRECT_END -#endif -/* -* Common message prefixes */ -#define ACPI_MSG_ERROR "ACPI Error: " -#define ACPI_MSG_EXCEPTION "ACPI Exception: " -#define ACPI_MSG_WARNING "ACPI Warning: " -#define ACPI_MSG_INFO "ACPI: " -#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): " -#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): " -/* -* Common message suffix -*/ -#define ACPI_MSG_SUFFIX \ - acpi_os_printf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, module_name, line_number)/******************************************************************************* * * FUNCTION: acpi_error @@ -285,243 +248,3 @@ acpi_bios_warning(const char *module_name, }ACPI_EXPORT_SYMBOL (acpi_bios_warning) - -/* -* The remainder of this module contains internal error functions that may -* be configured out. - */ -#if !defined (ACPI_NO_ERROR_MESSAGES ) && !defined (ACPI_BIN_APP ) -/******************************************************************************* -* -* FUNCTION: acpi_ut_predefined_warning -* -* PARAMETERS: module_name - Caller's module name (for error output) -* line_number - Caller's line number (for error output) -* pathname - Full pathname to the node -* node_flags - From Namespace node for the method/object -* format - Printf format string + additional args -* -* RETURN: None -* -* DESCRIPTION: Warnings for the predefined validation module. Messages are -* only emitted the first time a problem with a particular -* method/object is detected. This prevents a flood of error -* messages for methods that are repeatedly evaluated. -* -******************************************************************************/ -void ACPI_INTERNAL_VAR_XFACE -acpi_ut_predefined_warning (const char *module_name, -u32 line_number, -char *pathname, -u8 node_flags,const char *format, ...) -{ -va_list arg_list; - -/* -* Warning messages for this method/object will be disabled after the -* first time a validation fails or an object is successfully repaired. -*/ -if (node_flags &ANOBJ_EVALUATED ) { -return ; - } - -acpi_os_printf (ACPI_MSG_WARNING "%s: " , pathname); - -va_start (arg_list, format); -acpi_os_vprintf (format, arg_list); -ACPI_MSG_SUFFIX ; -va_end (arg_list); -} - -/******************************************************************************* -* -* FUNCTION: acpi_ut_predefined_info -* -* PARAMETERS: module_name - Caller's module name (for error output) -* line_number - Caller's line number (for error output) -* pathname - Full pathname to the node -* node_flags - From Namespace node for the method/object -* format - Printf format string + additional args -* -* RETURN: None -* -* DESCRIPTION: Info messages for the predefined validation module. Messages -* are only emitted the first time a problem with a particular -* method/object is detected. This prevents a flood of -* messages for methods that are repeatedly evaluated. -* -******************************************************************************/ - -void ACPI_INTERNAL_VAR_XFACE -acpi_ut_predefined_info (const char *module_name, -u32 line_number, -char *pathname,u8 node_flags,const char *format, ...) -{ -va_list arg_list; - -/* -* Warning messages for this method/object will be disabled after the -* first time a validation fails or an object is successfully repaired. -*/ -if (node_flags &ANOBJ_EVALUATED ) { -return ; - } - -acpi_os_printf (ACPI_MSG_INFO "%s: " , pathname); - -va_start (arg_list, format); -acpi_os_vprintf (format, arg_list); -ACPI_MSG_SUFFIX ; -va_end (arg_list); -} - -/******************************************************************************* -* -* FUNCTION: acpi_ut_predefined_bios_error -* -* PARAMETERS: module_name - Caller's module name (for error output) -* line_number - Caller's line number (for error output) -* pathname - Full pathname to the node -* node_flags - From Namespace node for the method/object -* format - Printf format string + additional args -* -* RETURN: None -* -* DESCRIPTION: BIOS error message for predefined names. Messages -* are only emitted the first time a problem with a particular -* method/object is detected. This prevents a flood of -* messages for methods that are repeatedly evaluated. -* -******************************************************************************/ - -void ACPI_INTERNAL_VAR_XFACE -acpi_ut_predefined_bios_error (const char *module_name, -u32 line_number, -char *pathname, -u8 node_flags,const char *format, ...) -{ -va_list arg_list; - -/* -* Warning messages for this method/object will be disabled after the -* first time a validation fails or an object is successfully repaired. -*/ -if (node_flags &ANOBJ_EVALUATED ) { -return ; - } - -acpi_os_printf (ACPI_MSG_BIOS_ERROR "%s: " , pathname); - -va_start (arg_list, format); -acpi_os_vprintf (format, arg_list); -ACPI_MSG_SUFFIX ; -va_end (arg_list); -} - -/******************************************************************************* -* -* FUNCTION: acpi_ut_namespace_error -* -* PARAMETERS: module_name - Caller's module name (for error output) -* line_number - Caller's line number (for error output) -* internal_name - Name or path of the namespace node -* lookup_status - Exception code from NS lookup -* -* RETURN: None -* -* DESCRIPTION: Print error message with the full pathname for the NS node. -* -******************************************************************************/ - -void -acpi_ut_namespace_error (const char *module_name, -u32 line_number, -const char *internal_name,acpi_status lookup_status) -{ -acpi_status status; -u32 bad_name; -char *name =NULL ; - -ACPI_MSG_REDIRECT_BEGIN ; -acpi_os_printf (ACPI_MSG_ERROR ); - -if (lookup_status ==AE_BAD_CHARACTER ) { - -/* There is a non-ascii character in the name */ - -ACPI_MOVE_32_TO_32 (&bad_name, -ACPI_CAST_PTR (u32, internal_name)); -acpi_os_printf ("[0x%.8X] (NON-ASCII)" , bad_name); - }else { -/* Convert path to external format */ - - status =acpi_ns_externalize_name (ACPI_UINT32_MAX , - internal_name,NULL , &name); - -/* Print target name */ - -if (ACPI_SUCCESS (status)) { -acpi_os_printf ("[%s]" , name); - }else { -acpi_os_printf ("[COULD NOT EXTERNALIZE NAME]" ); - } - -if (name) { -ACPI_FREE (name); - } - } - -acpi_os_printf (" Namespace lookup failure, %s" , -acpi_format_exception (lookup_status)); - -ACPI_MSG_SUFFIX ; -ACPI_MSG_REDIRECT_END ; -} - -/******************************************************************************* -* -* FUNCTION: acpi_ut_method_error -* -* PARAMETERS: module_name - Caller's module name (for error output) -* line_number - Caller's line number (for error output) -* message - Error message to use on failure -* prefix_node - Prefix relative to the path -* path - Path to the node (optional) -* method_status - Execution status -* -* RETURN: None -* -* DESCRIPTION: Print error message with the full pathname for the method. -* -******************************************************************************/ - -void -acpi_ut_method_error (const char *module_name, -u32 line_number, -const char *message, -struct acpi_namespace_node *prefix_node, -const char *path,acpi_status method_status) -{ -acpi_status status; -struct acpi_namespace_node *node = prefix_node; - -ACPI_MSG_REDIRECT_BEGIN ; -acpi_os_printf (ACPI_MSG_ERROR ); - -if (path) { - status = -acpi_ns_get_node (prefix_node, path,ACPI_NS_NO_UPSEARCH , - &node); -if (ACPI_FAILURE (status)) { -acpi_os_printf ("[Could not get node by pathname]" ); - } - } - -acpi_ns_print_node_pathname (node, message); -acpi_os_printf (", %s" ,acpi_format_exception (method_status)); - -ACPI_MSG_SUFFIX ; -ACPI_MSG_REDIRECT_END ; -} - -#endif /* ACPI_NO_ERROR_MESSAGES */ --1.7.10
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 1 line
Len Brown, Intel Open Source Technology Center
Len Brown
reviewerRe: [PATCH 03/16] ACPICA: Standardize all switch() blocks
In reply to Lv ZhengQuoted 3 lines
After many years, different formatting for
switch()has crept in. This change makes every switch block identical. Chao Guan. ACPICA bugzilla 997.
So what is the new format?
Looks like a blank line after every "case", except no blank line if comment?
That would be a good thing to say in the commit message...
Also, for patches such as this, please note in the commit message that it is white-space only (indeed, in this case looks like blank lines only) and no functionality changes.
That would help optimize precious reviewer time, and also make it clear to those doing a bisect who read only the commit message and not the patch.
thanks,
Len Brown
Intel Open Source Technology Center
Len Brown
reviewerRe: [PATCH 05/16] ACPICA: Split table print utilities to a new a separate file
In reply to Lv ZhengQuoted 3 lines · Lv Zheng
From: Bob Moore <[email protected]>
Improves configurability of ACPICA.
Just code movement, no logic changes or even any code changes, yes? If so, please state that in the commit message.
thanks,
Len Brown, Intel Open Source Technology Center
Len Brown
reviewerRe: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Lv ZhengQuoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under tools/power/acpi/acpidump/
Re: [PATCH 06/16] ACPICA: Do not use extended sleep registers unless HW-reduced bit is set
In reply to Lv ZhengThis commit message should state when this regression started in Linux, so that people reading the messages know how far back to port the fix.
Likely this patch should also be marked for -stable
until then...
Re: [PATCH 08/16] ACPICA: Update interface to AcpiUtValidAcpiName
In reply to Lv ZhengI'm okay w/ the content of this patch, but the Subject: was not converted from ACPICA syntax to Linux syntax
AcpiUtValidAcpiName() should be acpi_ut_valid_acpi_char()
Re: [PATCH 09/16] ACPICA: ACPICA Termination: Delete global lock pending lock
In reply to Lv ZhengRe: [PATCH 10/16] ACPICA: Fix possible memory leak in GPE init error path
In reply to Lv ZhengRe: [PATCH 11/16] ACPICA: Clear events initialized flag upon event component termination
In reply to Lv ZhengQuoted 4 lines · Lv Zheng
From: Tomasz Nowicki <[email protected]>
Clear this flag to allow clean startup and even double termination. ACPICA BZ 1013. Tomasz Nowicki <[email protected]>
The patch looks logically correct, but I'm wondering what use-case made it necessary. Do you have a system where you disable ACPI and then disable ACPI again?
BTW. it looks like we don't check for this flag being FALSE when we initialize, so I suppose if you had the case where you enable, disable, and then re-enable ACPI mode, that would already work -- though I don't know if anybody has ever done that.
Re: [PATCH 12/16] ACPICA: Support Mac OS X in Makefile
In reply to Lv Zhengcommit message doesn't match the patch.
Re: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
In reply to Lv ZhengPlease re-send this patch with a commit message that clarifies whether any logical change in operation should result from this patch or not.
It looks like the answer is no, that this a clean-up of the implementation of a AML workaround -- but I shouldn't have to read the code to figure that out, and neither should anybody else.
Re: [PATCH 14/16] ACPICA: Add several repairs for _CST predefined name
In reply to Lv ZhengQuoted 2 lines · Lv Zheng
Sort list based on the C-state, remove invalid/zero entries. ACPICA BZ 890. Lv Zheng.
The commit message should not just say what the code does, it should more importantly answer WHY the change was made, and why anybody should care about the patch.
I think the answer here is that we are adding _CST sanity checking -- presumably to deal with buggy AML?
What will we see happen after this patch that we did not see before it?
Re: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Lv ZhengQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.
Re: [PATCH 16/16] ACPICA: Update version to 20130517
In reply to Lv ZhengJust to get the Ack/Nak ratio on this series up:-)
Len Brown
reviewerI would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
thanks,
Len Brown, Intel Open Source Technology Center
Re: [PATCH 06/16] ACPICA: Do not use extended sleep registers unless HW-reduced bit is set
In reply to Len BrownQuoted 2 lines · Len Brown
This commit message should state when this regression started in Linux, so that people reading the messages know how far back to port the fix.
Yes, that would be nice.
That said, I was able to track it down to the 3.4 time frame ->
Quoted 1 line
Likely this patch should also be marked for -stable
-> so I marked it for "3.4+-stable" in the commit message.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Len BrownQuoted 9 lines · Len Brown
Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>
Well, I was on the verge of dropping this one before, so dropped now.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 08/16] ACPICA: Update interface to AcpiUtValidAcpiName
In reply to Len BrownQuoted 4 lines · Len Brown
I'm okay w/ the content of this patch, but the Subject: was not converted from ACPICA syntax to Linux syntax
AcpiUtValidAcpiName()should beacpi_ut_valid_acpi_char()
Surely acpi_ut_valid_acpi_name()?
I fixed that up when applying the patch.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
In reply to Len BrownQuoted 8 lines · Len Brown
Please re-send this patch with a commit message that clarifies whether any logical change in operation should result from this patch or not.
It looks like the answer is no, that this a clean-up of the implementation of a AML workaround -- but I shouldn't have to read the code to figure that out, and neither should anybody else.
Nacked-by Len Brown <[email protected]>
Dropped for now, Lv please resend this one.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 14/16] ACPICA: Add several repairs for _CST predefined name
In reply to Len BrownQuoted 8 lines · Len Brown
Quoted 2 lines · Lv Zheng
Sort list based on the C-state, remove invalid/zero entries. ACPICA BZ 890. Lv Zheng.
The commit message should not just say what the code does, it should more importantly answer WHY the change was made, and why anybody should care about the patch.
Quoted 6 lines
I think the answer here is that we are adding
_CSTsanity checking -- presumably to deal with buggy AML?What will we see happen after this patch that we did not see before it?
Nacked-by Len Brown <[email protected]>
Dropped for now, Lv please resend this one.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Len BrownQuoted 5 lines · Len Brown
Quoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
Quoted 7 lines
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Nacked-by Len Brown <[email protected]>
Dropped for now, Lv please resend this one.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 16/16] ACPICA: Update version to 20130517
In reply to Len BrownQuoted 3 lines · Len Brown
Just to get the Ack/Nak ratio on this series up:-)
Acked-by Len Brown <[email protected]>
I'm dropping it, however, because some of the previous patches were dropped.
Lv, please resend it along with [13-15/16].
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Quoted 3 lines · Len Brown
I would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
Lv,
I've dropped [7/16] and [12/16] permanently (please do not resend them).
I'd like to see new versions of [13-15/16] with improved changelogs along with [16/16].
The remaining patches from the series ([1-6/16], [8-11/16]) have been queued up for 3.11 (possibly with some changelog fixups).
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Len BrownThis one is just adding additional checks on the _CST that are obvious errors in the AML. The eventual goal of the "repair" code in ACPICA is to never return a bad package from things like _CST. In other words, an AE_OK guarantees that the return value is usable.
So, this is an additional implementation of this longer-range project.
Quoted 20 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 11:00 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Nacked-by Len Brown <[email protected]>
Re: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
Quoted 4 lines · Robert
This one is just adding additional checks on the
_CSTthat are obvious errors in the AML. The eventual goal of the "repair" code in ACPICA is to never return a bad package from things like_CST. In other words, anAE_OKguarantees that the return value is usable.So, this is an additional implementation of this longer-range project.
Thanks Bob!
Lv, care to add the above explanation from Bob to the changelog of the $subject patch?
Rafael
Quoted 12 lines
Quoted 12 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 11:00 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
Quoted 7 lines
Quoted 7 lines
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Nacked-by Len Brown <[email protected]>
---------------------------------------------------------------------
Intel Technology Poland sp. z o.o.
z siedziba w Gdansku
ul. Slowackiego 173
80-298 Gdansk
Sad Rejonowy Gdansk Polnoc w Gdansku, VII Wydzial Gospodarczy Krajowego Rejestru Sadowego, numer KRS 101882
NIP 957-07-52-316
Kapital zakladowy 200.000 zl
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
Quoted 7 lines
Quoted 3 lines
I would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
Lv,
I've dropped [7/16] and [12/16] permanently (please do not resend them).
OK.
Quoted 2 lines
I'd like to see new versions of [13-15/16] with improved changelogs along with [16/16].
I think the one need to do change log enhancement is the PATCH 04/16, others might be OK. Patch 04 should be a back port patch which was already in Linux, the word "add" is not proper.
Thanks and best regards
-Lv
Quoted 7 lines
Quoted 2 lines
I'd like to see new versions of [13-15/16] with improved changelogs along with [16/16].
I think the one need to do change log enhancement is the PATCH 04/16, others might be OK.
Patch 04 should be a back port patch which was already in Linux, the word "add" is not proper.
Sorry that I didn't notice the comments, let me check Len's comments.
Thanks
-Lv
Quoted 5 lines · Lv
Quoted 5 lines
Quoted 3 lines
I would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
Lv,
Quoted 7 lines
Quoted 1 line
I've dropped [7/16] and [12/16] permanently (please do not resend them).
OK.
Quoted 2 lines
I'd like to see new versions of [13-15/16] with improved changelogs along with [16/16].
I think the one need to do change log enhancement is the PATCH 04/16, others might be OK. Patch 04 should be a back port patch which was already in Linux, the word "add" is not proper.
Please see the Len's comments to patches [13-15/16] in the $subject series. Those and [16/16] are the only patches I'm asking you to resubmit ([13-15/16] with improved changelogs as requested by Len).
Thanks,
Rafael
---------------------------------------------------------------------
Intel Technology Poland sp. z o.o.
z siedziba w Gdansku
ul. Slowackiego 173
80-298 Gdansk
Sad Rejonowy Gdansk Polnoc w Gdansku, VII Wydzial Gospodarczy Krajowego Rejestru Sadowego, numer KRS 101882
NIP 957-07-52-316
Kapital zakladowy 200.000 zl
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
RE: [PATCH 03/16] ACPICA: Standardize all switch() blocks
In reply to Len BrownThere were some really bad examples, where 2 or even 3 blank lines were inserted. These were the most severe cases. So we standardized on one blank line, unless there is a multi-line comment.
Quoted 27 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 8:59 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi; Guan, Chao
Subject: Re: [PATCH 03/16] ACPICA: Standardize allswitch()blocksQuoted 3 lines
After many years, different formatting for
switch()has crept in. This change makes every switch block identical. Chao Guan. ACPICA bugzilla 997.So what is the new format?
Looks like a blank line after every "case", except no blank line if comment?That would be a good thing to say in the commit message...
Also, for patches such as this, please note in the commit message that it is white-space only (indeed, in this case looks like blank lines only) and no functionality changes.
That would help optimize precious reviewer time, and also make it clear to those doing a bisect who read only the commit message and not the patch.
thanks,
Len Brown
Intel Open Source Technology Center
RE: [PATCH 05/16] ACPICA: Split table print utilities to a new a separate file
In reply to Len BrownCorrect, should be "no functional changes".
Quoted 19 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:04 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 05/16] ACPICA: Split table print utilities to a new a separate fileQuoted 3 lines · Lv Zheng
From: Bob Moore <[email protected]>
Improves configurability of ACPICA.
Just code movement, no logic changes or even any code changes, yes? If so, please state that in the commit message.
thanks,
Len Brown, Intel Open Source Technology Center
RE: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Len BrownThis patch should contain the basic acpidump code, now portable.
For linux, it would replace the acpidump in the power tools.
Quoted 16 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:08 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>
RE: [PATCH 11/16] ACPICA: Clear events initialized flag upon event component termination
In reply to Len BrownWe have in the past had ACPICA users that wished to terminate and later restart (Novell). In any case, we advertise this as a feature, so it should work.
Quoted 25 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:48 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi; Tomasz Nowicki
Subject: Re: [PATCH 11/16] ACPICA: Clear events initialized flag upon event component terminationQuoted 4 lines · Lv Zheng
From: Tomasz Nowicki <[email protected]>
Clear this flag to allow clean startup and even double termination. ACPICA BZ 1013. Tomasz Nowicki <[email protected]>
The patch looks logically correct, but I'm wondering what use-case made it necessary. Do you have a system where you disable ACPI and then disable ACPI again?
BTW. it looks like we don't check for this flag being FALSE when we initialize, so I suppose if you had the case where you enable, disable, and then re-enable ACPI mode, that would already work -- though I don't know if anybody has ever done that.
Reviewed-by Len Brown <[email protected]>
RE: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
In reply to Len BrownNo functional change. This change simply moves the repair code from where it was originally implemented to the (more recent) repair module where it now belongs.
Quoted 16 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:52 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 13/16] ACPICA: Move_PRTrepair into the standard complex repair modulePlease re-send this patch with a commit message that clarifies whether any logical change in operation should result from this patch or not.
It looks like the answer is no, that this a clean-up of the implementation of a AML workaround -- but I shouldn't have to read the code to figure that out, and neither should anybody else.
Nacked-by Len Brown <[email protected]>
RE: [PATCH 14/16] ACPICA: Add several repairs for _CST predefined name
In reply to Len BrownCorrect, additional _CST sanity checks and repairs.
Quoted 22 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:59 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 14/16] ACPICA: Add several repairs for_CSTpredefined nameQuoted 2 lines · Lv Zheng
Sort list based on the C-state, remove invalid/zero entries. ACPICA BZ 890. Lv Zheng.
The commit message should not just say what the code does, it should more importantly answer WHY the change was made, and why anybody should care about the patch.
I think the answer here is that we are adding
_CSTsanity checking -- presumably to deal with buggy AML?What will we see happen after this patch that we did not see before it?
Nacked-by Len Brown <[email protected]>
RE: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Len BrownThis change fixes a bug in the original _CST repair code.
Quoted 20 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 11:00 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Nacked-by Len Brown <[email protected]>
RE: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Rafael J. WysockiPlease don't drop this if it is indeed the acpidump utility. This utility is now a part of ACPICA and should replace the existing utility.
Quoted 27 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:10 PM
To: Len Brown
Cc: Zheng, Lv; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 8 lines · Len Brown
Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>Well, I was on the verge of dropping this one before, so dropped now.
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Quoted 9 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:25 PM
To: Zheng, Lv
Cc: Len Brown; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 00/16] ACPICA: 20130517 release
Quoted 8 lines
Quoted 3 lines · Len Brown
I would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
Lv,
I've dropped [7/16]
Again, this is a new version of acpidump and should replace the existing utility.
and [12/16] permanently (please do not resend them).
This is the makefile change for apple, yes? Depends on how you want to handle such things. If you don't accept these kinds of changes, it introduces divergence from the ACPICA code.
Quoted 14 lines
I'd like to see new versions of [13-15/16] with improved changelogs along with [16/16].
The remaining patches from the series ([1-6/16], [8-11/16]) have been queued up for 3.11 (possibly with some changelog fixups).
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Quoted 13 lines · Robert
Quoted 13 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:25 PM
To: Zheng, Lv
Cc: Len Brown; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 00/16] ACPICA: 20130517 releaseQuoted 3 lines · Len Brown
I would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
Quoted 5 lines
Quoted 3 lines
Lv,
I've dropped [7/16]
Again, this is a new version of acpidump and should replace the existing utility.
OK, and how does the patch actually work? That is, what is a user supposed to do to build the generic acpidump with the patch applied?
Quoted 6 lines
and [12/16] permanently (please do not resend them).
This is the makefile change for apple, yes? Depends on how you want to handle such things. If you don't accept these kinds of changes, it introduces divergence from the ACPICA code.
Yes, it does, but on the other hand that change is not necessary in the kernel source.
This is a policy issue and we don't seem to have a clear policy here: whether or not divergences related to things that don't have to be in the kernel need to be "fixed". I don't think that they do and Len seems to agree with me.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Moore, RobertQuoted 1 line · Robert
Please don't drop this if it is indeed the acpidump utility.
Well, that's unclear to me to be honest. :-)
Quoted 1 line
This utility is now a part of ACPICA and should replace the existing utility.
OK, but we need to tell the users how to build it.
Thanks,
Rafael
Quoted 28 lines
Quoted 27 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:10 PM
To: Len Brown
Cc: Zheng, Lv; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 8 lines · Len Brown
Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>Well, I was on the verge of dropping this one before, so dropped now.
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
It would be a similar generation to the iASL compiler or the acpixtract utility.
Quoted 54 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:06 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 1 line · Robert
Please don't drop this if it is indeed the acpidump utility.
Well, that's unclear to me to be honest. :-)
Quoted 1 line
This utility is now a part of ACPICA and should replace the existing
utility.
OK, but we need to tell the users how to build it.
Thanks,
RafaelQuoted 21 lines
Quoted 21 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:10 PM
To: Len Brown
Cc: Zheng, Lv; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 8 lines · Len Brown
Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>Well, I was on the verge of dropping this one before, so dropped now.
Quoted 8 lines
Quoted 7 lines
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
Quoted 1 line · Robert
It would be a similar generation to the iASL compiler or the acpixtract utility.
Well, so why don't we write in the changelog: "This change allows the user to build the portable acpidump utility by executing the following command: ..." and so on?
Rafael
Quoted 55 lines
Quoted 54 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:06 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 1 line · Robert
Please don't drop this if it is indeed the acpidump utility.
Well, that's unclear to me to be honest. :-)
Quoted 1 line
This utility is now a part of ACPICA and should replace the existing
utility.
OK, but we need to tell the users how to build it.
Thanks,
RafaelQuoted 21 lines
Quoted 21 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:10 PM
To: Len Brown
Cc: Zheng, Lv; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 8 lines · Len Brown
Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>Well, I was on the verge of dropping this one before, so dropped now.
Quoted 8 lines
Quoted 7 lines
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 14/16] ACPICA: Add several repairs for _CST predefined name
In reply to Moore, RobertQuoted 1 line · Robert
Correct, additional
_CSTsanity checks and repairs.
OK, and what AML breakage does it help against, in particular?
Rafael
Quoted 26 lines
Quoted 16 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:59 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 14/16] ACPICA: Add several repairs for_CSTpredefined nameQuoted 2 lines · Lv Zheng
Sort list based on the C-state, remove invalid/zero entries. ACPICA BZ 890. Lv Zheng.
The commit message should not just say what the code does, it should more importantly answer WHY the change was made, and why anybody should care about the patch.
Quoted 6 lines
I think the answer here is that we are adding
_CSTsanity checking -- presumably to deal with buggy AML?What will we see happen after this patch that we did not see before it?
Nacked-by Len Brown <[email protected]>--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
In reply to Moore, RobertQuoted 2 lines · Robert
No functional change. This change simply moves the repair code from where it was originally implemented to the (more recent) repair module where it now belongs.
OK, I'll apply this one with a fixed-up changelog.
Thanks,
Rafael
Quoted 20 lines
Quoted 8 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:52 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 13/16] ACPICA: Move_PRTrepair into the standard complex repair moduleQuoted 8 lines
Please re-send this patch with a commit message that clarifies whether any logical change in operation should result from this patch or not.
It looks like the answer is no, that this a clean-up of the implementation of a AML workaround -- but I shouldn't have to read the code to figure that out, and neither should anybody else.
Nacked-by Len Brown <[email protected]>--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Moore, RobertQuoted 1 line · Robert
This change fixes a bug in the original
_CSTrepair code.
Well, in that case the changelog should explain what the bug is/was.
Thanks,
Rafael
Quoted 24 lines
Quoted 13 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 11:00 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
Quoted 7 lines
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Nacked-by Len Brown <[email protected]>--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Rafael J. WysockiQuoted 10 lines · Rafael J. Wysocki
Quoted 4 lines · Robert
This one is just adding additional checks on the
_CSTthat are obvious errors in the AML. The eventual goal of the "repair" code in ACPICA is to never return a bad package from things like_CST. In other words, anAE_OKguarantees that the return value is usable.So, this is an additional implementation of this longer-range project.
Thanks Bob!
Lv, care to add the above explanation from Bob to the changelog of the $subject patch?
Well, I can add it too, I suppose.
Thanks,
Rafael
Quoted 42 lines
Quoted 12 lines
Quoted 12 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 11:00 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
Quoted 7 lines
Quoted 7 lines
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Nacked-by Len Brown <[email protected]>---------------------------------------------------------------------
Intel Technology Poland sp. z o.o.
z siedziba w Gdansku
ul. Slowackiego 173
80-298 GdanskSad Rejonowy Gdansk Polnoc w Gdansku,
VII Wydzial Gospodarczy Krajowego Rejestru Sadowego, numer KRS 101882NIP 957-07-52-316
Kapital zakladowy 200.000 zlThis e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Rafael J. WysockiSorry, I don't think the Linux version has been completed in version 20130517 -- so perhaps you should ignore this patch after all, unless you want to simply establish the infrastructure for the final Linux version. The Linux-specific code is completed and will be part of the June release.
However, we can still discuss the future of the changelog, etc. We seem to have an overall problem where the ACPICA commit log is "generic", but I'm seeing here a request to make the actual Linux patches more specific to Linux.
As far as acpica and acpidump is concerned, I put specific generation instructions in the reference manual...
Of course, the details for any individual operating system may be different (especially file locations), so I have to make the acpica changelog somewhat generic.
Here is the actual acpica changelog text concerning acpidump, for version 20130517:
2) iASL Compiler/Disassembler and Tools:
New utility: Implemented an easily portable version of the acpidump utility to extract ACPI tables from the system (or a file) in an ASCII hex dump format. The top-level code implements the various command line options, file I/O, and table dump routines. To port to a new host, only three functions need to be implemented to get tables -- since this functionality is OS-dependent. See the tools/acpidump/apmain.c module and the ACPICA reference for porting instructions. ACPICA BZ 859. Notes:
1) The Windows version obtains the ACPI tables from the Registry.
2) The Linux version is under development.
3) Other hosts - If an OS-dependent module is submitted, it will be distributed with ACPICA.
Quoted 81 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:41 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 1 line · Robert
It would be a similar generation to the iASL compiler or the acpixtract
utility.
Well, so why don't we write in the changelog: "This change allows the user to build the portable acpidump utility by executing the following command:
..."
and so on?Rafael
Quoted 36 lines
Quoted 36 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:06 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 1 line · Robert
Please don't drop this if it is indeed the acpidump utility.
Well, that's unclear to me to be honest. :-)
Quoted 2 lines
This utility is now a part of ACPICA and should replace the existing
utility.
OK, but we need to tell the users how to build it.
Thanks,
RafaelQuoted 13 lines
Quoted 13 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:10 PM
To: Len Brown
Cc: Zheng, Lv; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 3 lines · Len Brown
Quoted 2 lines
This utility dumps the system ACPI tables in an ascii format suitable for extraction via the acpixtract utility.
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
This commit message does not match the contents of the patch, or explain how this patch is related (or not) to the acpidump utility already in the kernel tree under
tools/power/acpi/acpidump/Naked-by Len Brown <[email protected]>Well, I was on the verge of dropping this one before, so dropped
now.
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Thanks,
RafaelQuoted 8 lines
Quoted 7 lines
Quoted 4 lines
Quoted 3 lines
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Rafael J. WysockiQuoted 1 line
Quoted 1 line
Quoted 1 line
Sort package only after null/bad elements have been removed.
This is the bug.
Lv, this should probably be something like:
Quoted 49 lines
Quoted 1 line
Quoted 1 line
Fixes a problem where the
_CSTsort was performed too early. This change sorts the package only after null/bad elements have been removed.-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:50 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 1 line · Robert
This change fixes a bug in the original
_CSTrepair code.Well, in that case the changelog should explain what the bug is/was.
Thanks,
RafaelQuoted 20 lines
Quoted 20 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 11:00 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 15/16] ACPICA:_CSTrepair: Handle null package entriesQuoted 2 lines · Lv Zheng
Sort package only after null/bad elements have been removed. Lv Zheng.
again, please explain WHY.
Every line of change to the kernel adds risk.
I see no justification in this commit message why any risk should be added to the kernel.Quoted 5 lines
Quoted 1 line
Nacked-by Len Brown <[email protected]>--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 14/16] ACPICA: Add several repairs for _CST predefined name
In reply to Rafael J. WysockiFixes these possible problems. I think we've actually seen at least one of these, not sure where/when:
* DESCRIPTION: Repair for the _CST object:
* 1. Sort the list ascending by C state type * 2. Ensure type cannot be zero * 3. A sub-package count of zero means _CST is meaningless * 4. Count must match the number of C state sub-packages
Quoted 47 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:49 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 14/16] ACPICA: Add several repairs for_CSTpredefined nameQuoted 1 line · Robert
Correct, additional
_CSTsanity checks and repairs.OK, and what AML breakage does it help against, in particular?
Rafael
Quoted 13 lines
Quoted 13 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Len Brown
Sent: Wednesday, June 12, 2013 10:59 AM
To: Zheng, Lv
Cc: Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 14/16] ACPICA: Add several repairs for_CSTpredefined nameQuoted 2 lines · Lv Zheng
Sort list based on the C-state, remove invalid/zero entries. ACPICA BZ 890. Lv Zheng.
Quoted 8 lines
Quoted 8 lines
The commit message should not just say what the code does, it should more importantly answer WHY the change was made, and why anybody should care about the patch.
I think the answer here is that we are adding
_CSTsanity checking -- presumably to deal with buggy AML?What will we see happen after this patch that we did not see before
it?
Quoted 6 lines
Quoted 2 lines
Nacked-by Len Brown <[email protected]>--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Quoted 41 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Tuesday, June 18, 2013 2:04 PM
To: Moore, Robert
Cc: Zheng, Lv; Len Brown; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 00/16] ACPICA: 20130517 releaseQuoted 14 lines · Robert
Quoted 14 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Saturday, June 15, 2013 4:25 PM
To: Zheng, Lv
Cc: Len Brown; Wysocki, Rafael J; Moore, Robert; Brown, Len; linux acpi
Subject: Re: [PATCH 00/16] ACPICA: 20130517 releaseQuoted 3 lines · Len Brown
I would like to see this series re-freshed before it goes up-stream. Generally, the commit messages need to be improved before they go into the permanent kernel history.
Quoted 5 lines
Quoted 3 lines
Lv,
I've dropped [7/16]
Again, this is a new version of acpidump and should replace the existing
utility.
OK, and how does the patch actually work? That is, what is a user supposed to do to build the generic acpidump with the patch applied?
Quoted 6 lines
and [12/16] permanently (please do not resend them).
This is the makefile change for apple, yes? Depends on how you want to handle such things. If you don't accept these kinds of changes, it introduces divergence from the ACPICA code.
Quoted 8 lines
Yes, it does, but on the other hand that change is not necessary in the kernel source.
This is a policy issue and we don't seem to have a clear policy here:
whether or not divergences related to things that don't have to be in the kernel need to be "fixed". I don't think that they do and Len seems to agree with me.
Of course, no matter how it is justified, it is still a divergence from ACPICA and has all of the associated problems with continual manual integration and the possible introduction of bugs.
Fortunately, this issue appears only in a few areas due to the design of ACPICA - but makefiles and a few other files do in fact have some OS-specific (and even compiler-specific) conditionals.
Bob
Quoted 7 lines
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Moore, RobertQuoted 4 lines · Robert
Sorry, I don't think the Linux version has been completed in version 20130517 -- so perhaps you should ignore this patch after all, unless you want to simply establish the infrastructure for the final Linux version. The Linux-specific code is completed and will be part of the June release.
Great, I'll take the patch at that time, then.
Quoted 17 lines
However, we can still discuss the future of the changelog, etc. We seem to have an overall problem where the ACPICA commit log is "generic", but I'm seeing here a request to make the actual Linux patches more specific to Linux.
As far as acpica and acpidump is concerned, I put specific generation instructions in the reference manual...
Of course, the details for any individual operating system may be different (especially file locations), so I have to make the acpica changelog somewhat generic.
Here is the actual acpica changelog text concerning acpidump, for version 20130517:
2) iASL Compiler/Disassembler and Tools:
Quoted 11 lines
New utility: Implemented an easily portable version of the acpidump utility to extract ACPI tables from the system (or a file) in an ASCII hex dump format. The top-level code implements the various command line options, file I/O, and table dump routines. To port to a new host, only three functions need to be implemented to get tables -- since this functionality is OS-dependent. See the
tools/acpidump/apmain.cmodule and the ACPICA reference for porting instructions. ACPICA BZ 859. Notes:
1) The Windows version obtains the ACPI tables from the Registry.
2) The Linux version is under development.
3) Other hosts - If an OS-dependent module is submitted, it will be distributed with ACPICA.
Well, this is much better than what Lv sent, actually.
We could use it for Linux too, I think, only without the "Notes" part.
My general opinion is that we can simply use the same changelogs as the ACPICA upstream does, possibly amended with a more detailed explanation of the motivation behind the patch.
In this case, however, the changelog wasn't even similar to the original one.
Thanks,
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
Re: [PATCH 15/16] ACPICA: _CST repair: Handle null package entries
In reply to Moore, RobertQuoted 8 lines · Robert
Quoted 1 line
Quoted 1 line
Quoted 1 line
Sort package only after null/bad elements have been removed.
This is the bug.
Lv, this should probably be something like:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Fixes a problem where the
_CSTsort was performed too early. This change sorts the package only after null/bad elements have been removed.
I've added this info to the changelog and queued up the patch for 3.11.
Thanks Bob!
Rafael
Rafael J. Wysocki
AppliedRe: [PATCH 14/16] ACPICA: Add several repairs for _CST predefined name
In reply to Moore, RobertQuoted 7 lines · Robert
Fixes these possible problems. I think we've actually seen at least one of these, not sure where/when:
* DESCRIPTION: Repair for the
_CSTobject:* 1. Sort the list ascending by C state type * 2. Ensure type cannot be zero * 3. A sub-package count of zero means _CST is meaningless * 4. Count must match the number of C state sub-packages
Queued up for 3.11 with the above information added to the changelog.
Thanks Bob!
Rafael
Re: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
In reply to Rafael J. WysockiQuoted 5 lines · Rafael J. Wysocki
Quoted 2 lines · Robert
No functional change. This change simply moves the repair code from where it was originally implemented to the (more recent) repair module where it now belongs.
OK, I'll apply this one with a fixed-up changelog.
Applied now.
Thanks,
Rafael
RE: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
Quoted 7 lines
Quoted 2 lines
Quoted 2 lines
No functional change. This change simply moves the repair code from where it was originally implemented to the (more recent) repair module
where it now belongs.
Quoted 2 lines
OK, I'll apply this one with a fixed-up changelog.
Applied now.
Hi, Bob and Rafael,
I'm out of the dialogue. I was working on other things.
Thanks for doing so on PATCH 13-15 for me.
I found them in the bleeding-edge branch of linux-pm repo.
Many of the commit log issues are issues happened along with the release automation. I just played a monkey role in the release process with some committed tests performed. I agree it's a kind of policy issues. I will improve the release process continuously.
Best regards
-Lv
RE: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Rafael J. WysockiQuoted 53 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Wednesday, June 19, 2013 4:11 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 5 lines · Robert
Sorry, I don't think the Linux version has been completed in version 20130517
-- so perhaps you should ignore this patch after all, unless you want to simply establish the infrastructure for the final Linux version. The Linux-specific code is completed and will be part of the Junerelease.
Great, I'll take the patch at that time, then.
Quoted 8 lines
However, we can still discuss the future of the changelog, etc. We seem to have an overall problem where the ACPICA commit log is "generic", but I'm seeing here a request to make the actual Linux patches more specific to Linux.
As far as acpica and acpidump is concerned, I put specific generation instructions in the reference manual...
Quoted 6 lines
Of course, the details for any individual operating system may be different (especially file locations), so I have to make the acpica changelog somewhat generic.
Here is the actual acpica changelog text concerning acpidump, for
version 20130517:
Quoted 10 lines
2) iASL Compiler/Disassembler and Tools:
New utility: Implemented an easily portable version of the acpidump utility to extract ACPI tables from the system (or a file) in an ASCII hex dump format. The top-level code implements the various command line options, file I/O, and table dump routines. To port to a new host, only three functions need to be implemented to get tables -- since this functionality is OS-dependent. See the
tools/acpidump/apmain.cmodule and the ACPICA reference for portinginstructions. ACPICA BZ 859. Notes:
Quoted 4 lines
1) The Windows version obtains the ACPI tables from the Registry.
2) The Linux version is under development.
3) Other hosts - If an OS-dependent module is submitted, it will be distributed with ACPICA.Well, this is much better than what Lv sent, actually.
Quoted 9 lines
We could use it for Linux too, I think, only without the "Notes" part.
My general opinion is that we can simply use the same changelogs as the ACPICA upstream does, possibly amended with a more detailed explanation of the motivation behind the patch.
In this case, however, the changelog wasn't even similar to the original one.
This is the text from the release notes which end up in the "changes.txt" file. I usually expand upon the major changes in a format that is longer than the actual commit log.
Quoted 7 lines
Thanks,
Rafael--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 13/16] ACPICA: Move _PRT repair into the standard complex repair module
In reply to Zheng, LvYes, we have an issue where the linux patch message sometimes needs "linux-specific" information. For the raw ACPICA commits, we do not have any os-specific details or references, for obvious reasons.
Not sure how to handle this. Lv can probably take a first pass at it, then I can review, before first release and general review.
Quoted 33 lines
-----Original Message-----
From: Zheng, Lv
Sent: Wednesday, June 19, 2013 5:42 PM
To: Rafael J. Wysocki; Moore, Robert
Cc: Len Brown; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: RE: [PATCH 13/16] ACPICA: Move_PRTrepair into the standard complex repair moduleQuoted 8 lines
Quoted 3 lines
Quoted 3 lines
No functional change. This change simply moves the repair code from where it was originally implemented to the (more recent) repair module
where it now belongs.
Quoted 2 lines
OK, I'll apply this one with a fixed-up changelog.
Applied now.
Hi, Bob and Rafael,
I'm out of the dialogue. I was working on other things.
Thanks for doing so on PATCH 13-15 for me.
I found them in the bleeding-edge branch of linux-pm repo.Many of the commit log issues are issues happened along with the release automation.
I just played a monkey role in the release process with some committed tests performed.
I agree it's a kind of policy issues. I will improve the release process continuously.Best regards
-Lv
Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
In reply to Moore, RobertQuoted 58 lines · Robert
Quoted 58 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Wednesday, June 19, 2013 4:11 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 5 lines · Robert
Sorry, I don't think the Linux version has been completed in version 20130517
-- so perhaps you should ignore this patch after all, unless you want to simply establish the infrastructure for the final Linux version. The Linux-specific code is completed and will be part of the Junerelease.
Great, I'll take the patch at that time, then.
Quoted 8 lines
However, we can still discuss the future of the changelog, etc. We seem to have an overall problem where the ACPICA commit log is "generic", but I'm seeing here a request to make the actual Linux patches more specific to Linux.
As far as acpica and acpidump is concerned, I put specific generation instructions in the reference manual...
Quoted 6 lines
Of course, the details for any individual operating system may be different (especially file locations), so I have to make the acpica changelog somewhat generic.
Here is the actual acpica changelog text concerning acpidump, for
version 20130517:
Quoted 10 lines
2) iASL Compiler/Disassembler and Tools:
New utility: Implemented an easily portable version of the acpidump utility to extract ACPI tables from the system (or a file) in an ASCII hex dump format. The top-level code implements the various command line options, file I/O, and table dump routines. To port to a new host, only three functions need to be implemented to get tables -- since this functionality is OS-dependent. See the
tools/acpidump/apmain.cmodule and the ACPICA reference for portinginstructions. ACPICA BZ 859. Notes:
Quoted 4 lines
1) The Windows version obtains the ACPI tables from the Registry.
2) The Linux version is under development.
3) Other hosts - If an OS-dependent module is submitted, it will be distributed with ACPICA.Well, this is much better than what Lv sent, actually.
We could use it for Linux too, I think, only without the "Notes" part.
My general opinion is that we can simply use the same changelogs as the ACPICA upstream does, possibly amended with a more detailed explanation of the motivation behind the patch.
Quoted 5 lines
Quoted 3 lines
In this case, however, the changelog wasn't even similar to the original one.
This is the text from the release notes which end up in the "changes.txt" file.
I see. We don't get that information with the kernel patches, though.
Quoted 2 lines
I usually expand upon the major changes in a format that is longer than the actual commit log.
So perhaps Lv (or whoever generates the Linux patches for the given release) can simply add the information you put into "changes.txt" to the Linux patches changelogs?
Rafael
Signature · 2 lines
I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.
RE: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)
Quoted 79 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Thursday, June 20, 2013 12:42 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 9 lines · Robert
Quoted 9 lines
-----Original Message-----
From: Rafael J. Wysocki [mailto:[email protected]]
Sent: Wednesday, June 19, 2013 4:11 PM
To: Moore, Robert
Cc: Len Brown; Zheng, Lv; Wysocki, Rafael J; Brown, Len; linux acpi
Subject: Re: [PATCH 07/16] ACPICA: New: Portable acpidump utility (get system ACPI tables)Quoted 6 lines
Quoted 6 lines · Robert
Quoted 5 lines
Sorry, I don't think the Linux version has been completed in version
20130517
-- so perhaps you should ignore this patch after all, unless you want to simply establish the infrastructure for the final Linuxversion.
Quoted 45 lines
Quoted 45 lines
Quoted 1 line
The Linux-specific code is completed and will be part of the June
release.
Great, I'll take the patch at that time, then.
Quoted 8 lines
However, we can still discuss the future of the changelog, etc. We seem to have an overall problem where the ACPICA commit log is "generic", but I'm seeing here a request to make the actual Linux patches more specific to Linux.
As far as acpica and acpidump is concerned, I put specific generation instructions in the reference manual...
Quoted 6 lines
Of course, the details for any individual operating system may be different (especially file locations), so I have to make the acpica changelog somewhat generic.
Here is the actual acpica changelog text concerning acpidump, for
version 20130517:
Quoted 11 lines
2) iASL Compiler/Disassembler and Tools:
New utility: Implemented an easily portable version of the acpidump utility to extract ACPI tables from the system (or a file) in an ASCII hex dump format. The top-level code implements the various command line options, file I/O, and table dump routines. To port to a new host, only three functions need to be implemented to get tables -- since this functionality is OS-dependent. See the
tools/acpidump/apmain.cmodule and the ACPICA reference for portinginstructions. ACPICA BZ 859. Notes:
Quoted 4 lines
1) The Windows version obtains the ACPI tables from the Registry.
2) The Linux version is under development.
3) Other hosts - If an OS-dependent module is submitted, it will be distributed with ACPICA.Well, this is much better than what Lv sent, actually.
We could use it for Linux too, I think, only without the "Notes" part.
My general opinion is that we can simply use the same changelogs as the ACPICA upstream does, possibly amended with a more detailed explanation of the motivation behind the patch.
Quoted 5 lines
Quoted 3 lines
In this case, however, the changelog wasn't even similar to the original one.
This is the text from the release notes which end up in the
"changes.txt" file.
Quoted 9 lines
I see. We don't get that information with the kernel patches, though.
Quoted 2 lines
I usually expand upon the major changes in a format that is longer than the actual commit log.
So perhaps Lv (or whoever generates the Linux patches for the given release) can simply add the information you put into "changes.txt" to the Linux patches changelogs?
Many times that would help. However, I describe only the major changes in the release notes; I don't mention things like cleanups or any other changes which don't affect functionality. Also, I don't mention really minor bug fixes.
Quoted 6 lines
Rafael
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.