aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-06-08 16:29:00 -0400
committerLen Brown <len.brown@intel.com>2006-06-14 02:45:47 -0400
commit4c90ece249992c7a2e3fc921e5cdb8eb92193067 (patch)
treee145ffe472802ef870ba1eaea150b688c19e45ca /include/acpi
parent4119532c95547821dbe72d6916dfa1b2148475b3 (diff)
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 <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r--include/acpi/acconfig.h11
-rw-r--r--include/acpi/acglobal.h6
-rw-r--r--include/acpi/aclocal.h55
3 files changed, 36 insertions, 36 deletions
diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h
index 8b52e44ad2ab..b9beceb33141 100644
--- a/include/acpi/acconfig.h
+++ b/include/acpi/acconfig.h
@@ -63,7 +63,7 @@
63 63
64/* Current ACPICA subsystem version in YYYYMMDD format */ 64/* Current ACPICA subsystem version in YYYYMMDD format */
65 65
66#define ACPI_CA_VERSION 0x20060526 66#define ACPI_CA_VERSION 0x20060608
67 67
68/* 68/*
69 * OS name, used for the _OS object. The _OS object is essentially obsolete, 69 * OS name, used for the _OS object. The _OS object is essentially obsolete,
@@ -171,15 +171,8 @@
171#define ACPI_MAX_ADDRESS_SPACE 255 171#define ACPI_MAX_ADDRESS_SPACE 255
172 172
173/* Array sizes. Used for range checking also */ 173/* Array sizes. Used for range checking also */
174#define ACPI_MAX_MATCH_OPCODE 5
175 174
176#if 0 175#define ACPI_MAX_MATCH_OPCODE 5
177#define ACPI_NUM_ACCESS_TYPES 6
178#define ACPI_NUM_UPDATE_RULES 3
179#define ACPI_NUM_LOCK_RULES 2
180#define ACPI_NUM_FIELD_NAMES 2
181#define ACPI_NUM_OPCODES 256
182#endif
183 176
184/* RSDP checksums */ 177/* RSDP checksums */
185 178
diff --git a/include/acpi/acglobal.h b/include/acpi/acglobal.h
index 9297f293b2c0..14531d48f6b6 100644
--- a/include/acpi/acglobal.h
+++ b/include/acpi/acglobal.h
@@ -186,7 +186,7 @@ extern struct acpi_table_support acpi_gbl_table_data[ACPI_TABLE_ID_MAX + 1];
186 * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs. 186 * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
187 * (The table maps local handles to the real OS handles) 187 * (The table maps local handles to the real OS handles)
188 */ 188 */
189ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[NUM_MUTEX]; 189ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX];
190 190
191/***************************************************************************** 191/*****************************************************************************
192 * 192 *
@@ -314,7 +314,11 @@ ACPI_EXTERN struct acpi_fixed_event_handler
314ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head; 314ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head;
315ACPI_EXTERN struct acpi_gpe_block_info 315ACPI_EXTERN struct acpi_gpe_block_info
316 *acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS]; 316 *acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS];
317
318/* Spinlocks */
319
317ACPI_EXTERN acpi_handle acpi_gbl_gpe_lock; 320ACPI_EXTERN acpi_handle acpi_gbl_gpe_lock;
321ACPI_EXTERN acpi_handle acpi_gbl_hardware_lock;
318 322
319/***************************************************************************** 323/*****************************************************************************
320 * 324 *
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h
index 98c697e3c486..1eeca7adca95 100644
--- a/include/acpi/aclocal.h
+++ b/include/acpi/aclocal.h
@@ -72,52 +72,55 @@ union acpi_parse_object;
72 * Predefined handles for the mutex objects used within the subsystem 72 * Predefined handles for the mutex objects used within the subsystem
73 * All mutex objects are automatically created by acpi_ut_mutex_initialize. 73 * All mutex objects are automatically created by acpi_ut_mutex_initialize.
74 * 74 *
75 * The acquire/release ordering protocol is implied via this list. Mutexes 75 * The acquire/release ordering protocol is implied via this list. Mutexes
76 * with a lower value must be acquired before mutexes with a higher value. 76 * with a lower value must be acquired before mutexes with a higher value.
77 * 77 *
78 * NOTE: any changes here must be reflected in the acpi_gbl_mutex_names table also! 78 * NOTE: any changes here must be reflected in the acpi_gbl_mutex_names
79 * table below also!
79 */ 80 */
80#define ACPI_MTX_EXECUTE 0 81#define ACPI_MTX_INTERPRETER 0 /* AML Interpreter, main lock */
81#define ACPI_MTX_INTERPRETER 1 82#define ACPI_MTX_CONTROL_METHOD 1 /* Control method termination [TBD: may no longer be necessary] */
82#define ACPI_MTX_PARSER 2 83#define ACPI_MTX_TABLES 2 /* Data for ACPI tables */
83#define ACPI_MTX_DISPATCHER 3 84#define ACPI_MTX_NAMESPACE 3 /* ACPI Namespace */
84#define ACPI_MTX_TABLES 4 85#define ACPI_MTX_EVENTS 4 /* Data for ACPI events */
85#define ACPI_MTX_OP_REGIONS 5 86#define ACPI_MTX_CACHES 5 /* Internal caches, general purposes */
86#define ACPI_MTX_NAMESPACE 6 87#define ACPI_MTX_MEMORY 6 /* Debug memory tracking lists */
87#define ACPI_MTX_EVENTS 7 88#define ACPI_MTX_DEBUG_CMD_COMPLETE 7 /* AML debugger */
88#define ACPI_MTX_HARDWARE 8 89#define ACPI_MTX_DEBUG_CMD_READY 8 /* AML debugger */
89#define ACPI_MTX_CACHES 9 90
90#define ACPI_MTX_MEMORY 10 91#define ACPI_MAX_MUTEX 8
91#define ACPI_MTX_DEBUG_CMD_COMPLETE 11 92#define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1
92#define ACPI_MTX_DEBUG_CMD_READY 12
93
94#define MAX_MUTEX 12
95#define NUM_MUTEX MAX_MUTEX+1
96 93
97#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) 94#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
98#ifdef DEFINE_ACPI_GLOBALS 95#ifdef DEFINE_ACPI_GLOBALS
99 96
100/* Names for the mutexes used in the subsystem */ 97/* Debug names for the mutexes above */
101 98
102static char *acpi_gbl_mutex_names[] = { 99static char *acpi_gbl_mutex_names[ACPI_NUM_MUTEX] = {
103 "ACPI_MTX_Execute",
104 "ACPI_MTX_Interpreter", 100 "ACPI_MTX_Interpreter",
105 "ACPI_MTX_Parser", 101 "ACPI_MTX_Method",
106 "ACPI_MTX_Dispatcher",
107 "ACPI_MTX_Tables", 102 "ACPI_MTX_Tables",
108 "ACPI_MTX_OpRegions",
109 "ACPI_MTX_Namespace", 103 "ACPI_MTX_Namespace",
110 "ACPI_MTX_Events", 104 "ACPI_MTX_Events",
111 "ACPI_MTX_Hardware",
112 "ACPI_MTX_Caches", 105 "ACPI_MTX_Caches",
113 "ACPI_MTX_Memory", 106 "ACPI_MTX_Memory",
114 "ACPI_MTX_DebugCmdComplete", 107 "ACPI_MTX_DebugCmdComplete",
115 "ACPI_MTX_DebugCmdReady", 108 "ACPI_MTX_DebugCmdReady"
116}; 109};
117 110
118#endif 111#endif
119#endif 112#endif
120 113
114/*
115 * Predefined handles for spinlocks used within the subsystem.
116 * These spinlocks are created by acpi_ut_mutex_initialize
117 */
118#define ACPI_LOCK_GPES 0
119#define ACPI_LOCK_HARDWARE 1
120
121#define ACPI_MAX_LOCK 1
122#define ACPI_NUM_LOCK ACPI_MAX_LOCK+1
123
121/* Owner IDs are used to track namespace nodes for selective deletion */ 124/* Owner IDs are used to track namespace nodes for selective deletion */
122 125
123typedef u8 acpi_owner_id; 126typedef u8 acpi_owner_id;