mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
ACPI: ACPICA 20060608
Converted the locking mutex used for the ACPI hardware to a spinlock. This change should eliminate all problems caused by attempting to acquire a semaphore at interrupt level, and it means that all ACPICA external interfaces that directly access the ACPI hardware can be safely called from interrupt level. Fixed a regression introduced in 20060526 where the ACPI device initialization could be prematurely aborted with an AE_NOT_FOUND if a device did not have an optional _INI method. Fixed an IndexField issue where a write to the Data Register should be limited in size to the AccessSize (width) of the IndexField itself. (BZ 433, Fiodor Suietov) Fixed problem reports (Valery Podrezov) integrated: - Allow store of ThermalZone objects to Debug object. http://bugzilla.kernel.org/show_bug.cgi?id=5369 http://bugzilla.kernel.org/show_bug.cgi?id=5370 Fixed problem reports (Fiodor Suietov) integrated: - acpi_get_table_header() doesn't handle multiple instances correctly (BZ 364) Removed four global mutexes that were obsolete and were no longer being used. Signed-off-by: Bob Moore <[email protected]> Signed-off-by: Len Brown <[email protected]>
This commit is contained in:
parent
4119532c95
commit
4c90ece249
16 changed files with 132 additions and 123 deletions
|
|
@ -63,7 +63,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20060526
|
||||
#define ACPI_CA_VERSION 0x20060608
|
||||
|
||||
/*
|
||||
* OS name, used for the _OS object. The _OS object is essentially obsolete,
|
||||
|
|
@ -171,15 +171,8 @@
|
|||
#define ACPI_MAX_ADDRESS_SPACE 255
|
||||
|
||||
/* Array sizes. Used for range checking also */
|
||||
#define ACPI_MAX_MATCH_OPCODE 5
|
||||
|
||||
#if 0
|
||||
#define ACPI_NUM_ACCESS_TYPES 6
|
||||
#define ACPI_NUM_UPDATE_RULES 3
|
||||
#define ACPI_NUM_LOCK_RULES 2
|
||||
#define ACPI_NUM_FIELD_NAMES 2
|
||||
#define ACPI_NUM_OPCODES 256
|
||||
#endif
|
||||
#define ACPI_MAX_MATCH_OPCODE 5
|
||||
|
||||
/* RSDP checksums */
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ extern struct acpi_table_support acpi_gbl_table_data[ACPI_TABLE_ID_MAX + 1];
|
|||
* actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
|
||||
* (The table maps local handles to the real OS handles)
|
||||
*/
|
||||
ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[NUM_MUTEX];
|
||||
ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX];
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
|
|
@ -314,7 +314,11 @@ ACPI_EXTERN struct acpi_fixed_event_handler
|
|||
ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head;
|
||||
ACPI_EXTERN struct acpi_gpe_block_info
|
||||
*acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS];
|
||||
|
||||
/* Spinlocks */
|
||||
|
||||
ACPI_EXTERN acpi_handle acpi_gbl_gpe_lock;
|
||||
ACPI_EXTERN acpi_handle acpi_gbl_hardware_lock;
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
|
|
|
|||
|
|
@ -72,52 +72,55 @@ union acpi_parse_object;
|
|||
* Predefined handles for the mutex objects used within the subsystem
|
||||
* All mutex objects are automatically created by acpi_ut_mutex_initialize.
|
||||
*
|
||||
* The acquire/release ordering protocol is implied via this list. Mutexes
|
||||
* The acquire/release ordering protocol is implied via this list. Mutexes
|
||||
* with a lower value must be acquired before mutexes with a higher value.
|
||||
*
|
||||
* NOTE: any changes here must be reflected in the acpi_gbl_mutex_names table also!
|
||||
* NOTE: any changes here must be reflected in the acpi_gbl_mutex_names
|
||||
* table below also!
|
||||
*/
|
||||
#define ACPI_MTX_EXECUTE 0
|
||||
#define ACPI_MTX_INTERPRETER 1
|
||||
#define ACPI_MTX_PARSER 2
|
||||
#define ACPI_MTX_DISPATCHER 3
|
||||
#define ACPI_MTX_TABLES 4
|
||||
#define ACPI_MTX_OP_REGIONS 5
|
||||
#define ACPI_MTX_NAMESPACE 6
|
||||
#define ACPI_MTX_EVENTS 7
|
||||
#define ACPI_MTX_HARDWARE 8
|
||||
#define ACPI_MTX_CACHES 9
|
||||
#define ACPI_MTX_MEMORY 10
|
||||
#define ACPI_MTX_DEBUG_CMD_COMPLETE 11
|
||||
#define ACPI_MTX_DEBUG_CMD_READY 12
|
||||
#define ACPI_MTX_INTERPRETER 0 /* AML Interpreter, main lock */
|
||||
#define ACPI_MTX_CONTROL_METHOD 1 /* Control method termination [TBD: may no longer be necessary] */
|
||||
#define ACPI_MTX_TABLES 2 /* Data for ACPI tables */
|
||||
#define ACPI_MTX_NAMESPACE 3 /* ACPI Namespace */
|
||||
#define ACPI_MTX_EVENTS 4 /* Data for ACPI events */
|
||||
#define ACPI_MTX_CACHES 5 /* Internal caches, general purposes */
|
||||
#define ACPI_MTX_MEMORY 6 /* Debug memory tracking lists */
|
||||
#define ACPI_MTX_DEBUG_CMD_COMPLETE 7 /* AML debugger */
|
||||
#define ACPI_MTX_DEBUG_CMD_READY 8 /* AML debugger */
|
||||
|
||||
#define MAX_MUTEX 12
|
||||
#define NUM_MUTEX MAX_MUTEX+1
|
||||
#define ACPI_MAX_MUTEX 8
|
||||
#define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1
|
||||
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
#ifdef DEFINE_ACPI_GLOBALS
|
||||
|
||||
/* Names for the mutexes used in the subsystem */
|
||||
/* Debug names for the mutexes above */
|
||||
|
||||
static char *acpi_gbl_mutex_names[] = {
|
||||
"ACPI_MTX_Execute",
|
||||
static char *acpi_gbl_mutex_names[ACPI_NUM_MUTEX] = {
|
||||
"ACPI_MTX_Interpreter",
|
||||
"ACPI_MTX_Parser",
|
||||
"ACPI_MTX_Dispatcher",
|
||||
"ACPI_MTX_Method",
|
||||
"ACPI_MTX_Tables",
|
||||
"ACPI_MTX_OpRegions",
|
||||
"ACPI_MTX_Namespace",
|
||||
"ACPI_MTX_Events",
|
||||
"ACPI_MTX_Hardware",
|
||||
"ACPI_MTX_Caches",
|
||||
"ACPI_MTX_Memory",
|
||||
"ACPI_MTX_DebugCmdComplete",
|
||||
"ACPI_MTX_DebugCmdReady",
|
||||
"ACPI_MTX_DebugCmdReady"
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Predefined handles for spinlocks used within the subsystem.
|
||||
* These spinlocks are created by acpi_ut_mutex_initialize
|
||||
*/
|
||||
#define ACPI_LOCK_GPES 0
|
||||
#define ACPI_LOCK_HARDWARE 1
|
||||
|
||||
#define ACPI_MAX_LOCK 1
|
||||
#define ACPI_NUM_LOCK ACPI_MAX_LOCK+1
|
||||
|
||||
/* Owner IDs are used to track namespace nodes for selective deletion */
|
||||
|
||||
typedef u8 acpi_owner_id;
|
||||
|
|
|
|||
Loading…
Reference in a new issue