aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS9
-rw-r--r--arch/i386/kernel/acpi/boot.c22
-rw-r--r--arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c1
-rw-r--r--drivers/acpi/ec.c2
-rw-r--r--drivers/acpi/events/evmisc.c1
-rw-r--r--drivers/acpi/executer/exmutex.c6
-rw-r--r--drivers/acpi/glue.c6
-rw-r--r--drivers/acpi/sleep/wakeup.c6
-rw-r--r--drivers/acpi/utilities/utdebug.c5
-rw-r--r--drivers/acpi/utilities/utmutex.c16
-rw-r--r--include/asm-i386/acpi.h26
-rw-r--r--include/asm-x86_64/acpi.h26
12 files changed, 60 insertions, 66 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index dea5b2a6de0a..7f7c7db174cc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1397,6 +1397,15 @@ W: http://www.ia64-linux.org/
1397T: git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git 1397T: git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git
1398S: Maintained 1398S: Maintained
1399 1399
1400IBM ACPI EXTRAS DRIVER
1401P: Henrique de Moraes Holschuh
1402M: ibm-acpi@hmh.eng.br
1403L: ibm-acpi-devel@lists.sourceforge.net
1404W: http://ibm-acpi.sourceforge.net
1405W: http://thinkwiki.org/wiki/Ibm-acpi
1406T: git repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
1407S: Maintained
1408
1400SN-IA64 (Itanium) SUB-PLATFORM 1409SN-IA64 (Itanium) SUB-PLATFORM
1401P: Jes Sorensen 1410P: Jes Sorensen
1402M: jes@sgi.com 1411M: jes@sgi.com
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index c8f96cff07c6..094300b3a81f 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -1327,3 +1327,25 @@ static int __init setup_acpi_sci(char *s)
1327 return 0; 1327 return 0;
1328} 1328}
1329early_param("acpi_sci", setup_acpi_sci); 1329early_param("acpi_sci", setup_acpi_sci);
1330
1331int __acpi_acquire_global_lock(unsigned int *lock)
1332{
1333 unsigned int old, new, val;
1334 do {
1335 old = *lock;
1336 new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
1337 val = cmpxchg(lock, old, new);
1338 } while (unlikely (val != old));
1339 return (new < 3) ? -1 : 0;
1340}
1341
1342int __acpi_release_global_lock(unsigned int *lock)
1343{
1344 unsigned int old, new, val;
1345 do {
1346 old = *lock;
1347 new = old & ~0x3;
1348 val = cmpxchg(lock, old, new);
1349 } while (unlikely (val != old));
1350 return old & 0x1;
1351}
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
index 18f4715c655d..39bc16bec5aa 100644
--- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -569,6 +569,7 @@ static int sw_any_bug_found(struct dmi_system_id *d)
569 return 0; 569 return 0;
570} 570}
571 571
572#ifdef CONFIG_SMP
572static struct dmi_system_id sw_any_bug_dmi_table[] = { 573static struct dmi_system_id sw_any_bug_dmi_table[] = {
573 { 574 {
574 .callback = sw_any_bug_found, 575 .callback = sw_any_bug_found,
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index d713f769b72d..4a909bfb805c 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -367,7 +367,7 @@ int ec_write(u8 addr, u8 val)
367 367
368EXPORT_SYMBOL(ec_write); 368EXPORT_SYMBOL(ec_write);
369 369
370extern int ec_transaction(u8 command, 370int ec_transaction(u8 command,
371 const u8 * wdata, unsigned wdata_len, 371 const u8 * wdata, unsigned wdata_len,
372 u8 * rdata, unsigned rdata_len) 372 u8 * rdata, unsigned rdata_len)
373{ 373{
diff --git a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c
index ee2a10bf9077..bf63edc6608d 100644
--- a/drivers/acpi/events/evmisc.c
+++ b/drivers/acpi/events/evmisc.c
@@ -331,7 +331,6 @@ static void ACPI_SYSTEM_XFACE acpi_ev_global_lock_thread(void *context)
331static u32 acpi_ev_global_lock_handler(void *context) 331static u32 acpi_ev_global_lock_handler(void *context)
332{ 332{
333 u8 acquired = FALSE; 333 u8 acquired = FALSE;
334 acpi_status status;
335 334
336 /* 335 /*
337 * Attempt to get the lock 336 * Attempt to get the lock
diff --git a/drivers/acpi/executer/exmutex.c b/drivers/acpi/executer/exmutex.c
index 3a39c2e8e104..bf90f04f2c60 100644
--- a/drivers/acpi/executer/exmutex.c
+++ b/drivers/acpi/executer/exmutex.c
@@ -266,10 +266,10 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
266 walk_state->thread->thread_id) 266 walk_state->thread->thread_id)
267 && (obj_desc->mutex.os_mutex != ACPI_GLOBAL_LOCK)) { 267 && (obj_desc->mutex.os_mutex != ACPI_GLOBAL_LOCK)) {
268 ACPI_ERROR((AE_INFO, 268 ACPI_ERROR((AE_INFO,
269 "Thread %X cannot release Mutex [%4.4s] acquired by thread %X", 269 "Thread %lX cannot release Mutex [%4.4s] acquired by thread %lX",
270 (u32) walk_state->thread->thread_id, 270 (unsigned long)walk_state->thread->thread_id,
271 acpi_ut_get_node_name(obj_desc->mutex.node), 271 acpi_ut_get_node_name(obj_desc->mutex.node),
272 (u32) obj_desc->mutex.owner_thread->thread_id)); 272 (unsigned long)obj_desc->mutex.owner_thread->thread_id));
273 return_ACPI_STATUS(AE_AML_NOT_OWNER); 273 return_ACPI_STATUS(AE_AML_NOT_OWNER);
274 } 274 }
275 275
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index a2f46d587d55..4ac2f18e0da2 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -189,8 +189,12 @@ find_pci_rootbridge(acpi_handle handle, u32 lvl, void *context, void **rv)
189 bus = tmp; 189 bus = tmp;
190 190
191 if (seg == find->seg && bus == find->bus) 191 if (seg == find->seg && bus == find->bus)
192 {
192 find->handle = handle; 193 find->handle = handle;
193 status = AE_OK; 194 status = AE_CTRL_TERMINATE;
195 }
196 else
197 status = AE_OK;
194 exit: 198 exit:
195 kfree(buffer.pointer); 199 kfree(buffer.pointer);
196 return status; 200 return status;
diff --git a/drivers/acpi/sleep/wakeup.c b/drivers/acpi/sleep/wakeup.c
index af1dbabaf0b1..fab8f2694f03 100644
--- a/drivers/acpi/sleep/wakeup.c
+++ b/drivers/acpi/sleep/wakeup.c
@@ -183,11 +183,11 @@ late_initcall(acpi_wakeup_device_init);
183#endif 183#endif
184 184
185/* 185/*
186 * Disable all wakeup GPEs before power off. 186 * Disable all wakeup GPEs before entering requested sleep state.
187 * 187 * @sleep_state: ACPI state
188 * Since acpi_enter_sleep_state() will disable all 188 * Since acpi_enter_sleep_state() will disable all
189 * RUNTIME GPEs, we simply mark all GPES that 189 * RUNTIME GPEs, we simply mark all GPES that
190 * are not enabled for wakeup from S5 as RUNTIME. 190 * are not enabled for wakeup from requested state as RUNTIME.
191 */ 191 */
192void acpi_gpe_sleep_prepare(u32 sleep_state) 192void acpi_gpe_sleep_prepare(u32 sleep_state)
193{ 193{
diff --git a/drivers/acpi/utilities/utdebug.c b/drivers/acpi/utilities/utdebug.c
index bb1eaf9aa653..9e9054e155c1 100644
--- a/drivers/acpi/utilities/utdebug.c
+++ b/drivers/acpi/utilities/utdebug.c
@@ -180,8 +180,9 @@ acpi_ut_debug_print(u32 requested_debug_level,
180 if (thread_id != acpi_gbl_prev_thread_id) { 180 if (thread_id != acpi_gbl_prev_thread_id) {
181 if (ACPI_LV_THREADS & acpi_dbg_level) { 181 if (ACPI_LV_THREADS & acpi_dbg_level) {
182 acpi_os_printf 182 acpi_os_printf
183 ("\n**** Context Switch from TID %X to TID %X ****\n\n", 183 ("\n**** Context Switch from TID %lX to TID %lX ****\n\n",
184 (u32) acpi_gbl_prev_thread_id, (u32) thread_id); 184 (unsigned long) acpi_gbl_prev_thread_id,
185 (unsigned long) thread_id);
185 } 186 }
186 187
187 acpi_gbl_prev_thread_id = thread_id; 188 acpi_gbl_prev_thread_id = thread_id;
diff --git a/drivers/acpi/utilities/utmutex.c b/drivers/acpi/utilities/utmutex.c
index c39062a047cd..180e73ceb6e2 100644
--- a/drivers/acpi/utilities/utmutex.c
+++ b/drivers/acpi/utilities/utmutex.c
@@ -243,23 +243,24 @@ acpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id)
243#endif 243#endif
244 244
245 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, 245 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
246 "Thread %X attempting to acquire Mutex [%s]\n", 246 "Thread %lX attempting to acquire Mutex [%s]\n",
247 (u32) this_thread_id, acpi_ut_get_mutex_name(mutex_id))); 247 (unsigned long) this_thread_id,
248 acpi_ut_get_mutex_name(mutex_id)));
248 249
249 status = acpi_os_acquire_mutex(acpi_gbl_mutex_info[mutex_id].mutex, 250 status = acpi_os_acquire_mutex(acpi_gbl_mutex_info[mutex_id].mutex,
250 ACPI_WAIT_FOREVER); 251 ACPI_WAIT_FOREVER);
251 if (ACPI_SUCCESS(status)) { 252 if (ACPI_SUCCESS(status)) {
252 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, 253 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
253 "Thread %X acquired Mutex [%s]\n", 254 "Thread %lX acquired Mutex [%s]\n",
254 (u32) this_thread_id, 255 (unsigned long) this_thread_id,
255 acpi_ut_get_mutex_name(mutex_id))); 256 acpi_ut_get_mutex_name(mutex_id)));
256 257
257 acpi_gbl_mutex_info[mutex_id].use_count++; 258 acpi_gbl_mutex_info[mutex_id].use_count++;
258 acpi_gbl_mutex_info[mutex_id].thread_id = this_thread_id; 259 acpi_gbl_mutex_info[mutex_id].thread_id = this_thread_id;
259 } else { 260 } else {
260 ACPI_EXCEPTION((AE_INFO, status, 261 ACPI_EXCEPTION((AE_INFO, status,
261 "Thread %X could not acquire Mutex [%X]", 262 "Thread %lX could not acquire Mutex [%X]",
262 (u32) this_thread_id, mutex_id)); 263 (unsigned long) this_thread_id, mutex_id));
263 } 264 }
264 265
265 return (status); 266 return (status);
@@ -285,7 +286,8 @@ acpi_status acpi_ut_release_mutex(acpi_mutex_handle mutex_id)
285 286
286 this_thread_id = acpi_os_get_thread_id(); 287 this_thread_id = acpi_os_get_thread_id();
287 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, 288 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
288 "Thread %X releasing Mutex [%s]\n", (u32) this_thread_id, 289 "Thread %lX releasing Mutex [%s]\n",
290 (unsigned long) this_thread_id,
289 acpi_ut_get_mutex_name(mutex_id))); 291 acpi_ut_get_mutex_name(mutex_id)));
290 292
291 if (mutex_id > ACPI_MAX_MUTEX) { 293 if (mutex_id > ACPI_MAX_MUTEX) {
diff --git a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h
index c80b3a94511a..7cfad93edf10 100644
--- a/include/asm-i386/acpi.h
+++ b/include/asm-i386/acpi.h
@@ -56,30 +56,8 @@
56#define ACPI_ENABLE_IRQS() local_irq_enable() 56#define ACPI_ENABLE_IRQS() local_irq_enable()
57#define ACPI_FLUSH_CPU_CACHE() wbinvd() 57#define ACPI_FLUSH_CPU_CACHE() wbinvd()
58 58
59 59int __acpi_acquire_global_lock(unsigned int *lock);
60static inline int 60int __acpi_release_global_lock(unsigned int *lock);
61__acpi_acquire_global_lock (unsigned int *lock)
62{
63 unsigned int old, new, val;
64 do {
65 old = *lock;
66 new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
67 val = cmpxchg(lock, old, new);
68 } while (unlikely (val != old));
69 return (new < 3) ? -1 : 0;
70}
71
72static inline int
73__acpi_release_global_lock (unsigned int *lock)
74{
75 unsigned int old, new, val;
76 do {
77 old = *lock;
78 new = old & ~0x3;
79 val = cmpxchg(lock, old, new);
80 } while (unlikely (val != old));
81 return old & 0x1;
82}
83 61
84#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ 62#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \
85 ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) 63 ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr))
diff --git a/include/asm-x86_64/acpi.h b/include/asm-x86_64/acpi.h
index 9d1916e59c04..6b6fc6f8be7e 100644
--- a/include/asm-x86_64/acpi.h
+++ b/include/asm-x86_64/acpi.h
@@ -54,30 +54,8 @@
54#define ACPI_ENABLE_IRQS() local_irq_enable() 54#define ACPI_ENABLE_IRQS() local_irq_enable()
55#define ACPI_FLUSH_CPU_CACHE() wbinvd() 55#define ACPI_FLUSH_CPU_CACHE() wbinvd()
56 56
57 57int __acpi_acquire_global_lock(unsigned int *lock);
58static inline int 58int __acpi_release_global_lock(unsigned int *lock);
59__acpi_acquire_global_lock (unsigned int *lock)
60{
61 unsigned int old, new, val;
62 do {
63 old = *lock;
64 new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
65 val = cmpxchg(lock, old, new);
66 } while (unlikely (val != old));
67 return (new < 3) ? -1 : 0;
68}
69
70static inline int
71__acpi_release_global_lock (unsigned int *lock)
72{
73 unsigned int old, new, val;
74 do {
75 old = *lock;
76 new = old & ~0x3;
77 val = cmpxchg(lock, old, new);
78 } while (unlikely (val != old));
79 return old & 0x1;
80}
81 59
82#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ 60#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \
83 ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) 61 ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr))