Commit 463e7c7c authored by Len Brown's avatar Len Brown

Pull trivial into test branch

Conflicts:

	drivers/acpi/ec.c
parents 25c68a33 7d63c675
...@@ -1397,6 +1397,15 @@ W: http://www.ia64-linux.org/ ...@@ -1397,6 +1397,15 @@ W: http://www.ia64-linux.org/
T: git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git T: git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git
S: Maintained S: Maintained
IBM ACPI EXTRAS DRIVER
P: Henrique de Moraes Holschuh
M: ibm-acpi@hmh.eng.br
L: ibm-acpi-devel@lists.sourceforge.net
W: http://ibm-acpi.sourceforge.net
W: http://thinkwiki.org/wiki/Ibm-acpi
T: git repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
S: Maintained
SN-IA64 (Itanium) SUB-PLATFORM SN-IA64 (Itanium) SUB-PLATFORM
P: Jes Sorensen P: Jes Sorensen
M: jes@sgi.com M: jes@sgi.com
......
...@@ -1327,3 +1327,25 @@ static int __init setup_acpi_sci(char *s) ...@@ -1327,3 +1327,25 @@ static int __init setup_acpi_sci(char *s)
return 0; return 0;
} }
early_param("acpi_sci", setup_acpi_sci); early_param("acpi_sci", setup_acpi_sci);
int __acpi_acquire_global_lock(unsigned int *lock)
{
unsigned int old, new, val;
do {
old = *lock;
new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
val = cmpxchg(lock, old, new);
} while (unlikely (val != old));
return (new < 3) ? -1 : 0;
}
int __acpi_release_global_lock(unsigned int *lock)
{
unsigned int old, new, val;
do {
old = *lock;
new = old & ~0x3;
val = cmpxchg(lock, old, new);
} while (unlikely (val != old));
return old & 0x1;
}
...@@ -569,6 +569,7 @@ static int sw_any_bug_found(struct dmi_system_id *d) ...@@ -569,6 +569,7 @@ static int sw_any_bug_found(struct dmi_system_id *d)
return 0; return 0;
} }
#ifdef CONFIG_SMP
static struct dmi_system_id sw_any_bug_dmi_table[] = { static struct dmi_system_id sw_any_bug_dmi_table[] = {
{ {
.callback = sw_any_bug_found, .callback = sw_any_bug_found,
......
...@@ -367,7 +367,7 @@ int ec_write(u8 addr, u8 val) ...@@ -367,7 +367,7 @@ int ec_write(u8 addr, u8 val)
EXPORT_SYMBOL(ec_write); EXPORT_SYMBOL(ec_write);
extern int ec_transaction(u8 command, int ec_transaction(u8 command,
const u8 * wdata, unsigned wdata_len, const u8 * wdata, unsigned wdata_len,
u8 * rdata, unsigned rdata_len) u8 * rdata, unsigned rdata_len)
{ {
......
...@@ -331,7 +331,6 @@ static void ACPI_SYSTEM_XFACE acpi_ev_global_lock_thread(void *context) ...@@ -331,7 +331,6 @@ static void ACPI_SYSTEM_XFACE acpi_ev_global_lock_thread(void *context)
static u32 acpi_ev_global_lock_handler(void *context) static u32 acpi_ev_global_lock_handler(void *context)
{ {
u8 acquired = FALSE; u8 acquired = FALSE;
acpi_status status;
/* /*
* Attempt to get the lock * Attempt to get the lock
......
...@@ -266,10 +266,10 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc, ...@@ -266,10 +266,10 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc,
walk_state->thread->thread_id) walk_state->thread->thread_id)
&& (obj_desc->mutex.os_mutex != ACPI_GLOBAL_LOCK)) { && (obj_desc->mutex.os_mutex != ACPI_GLOBAL_LOCK)) {
ACPI_ERROR((AE_INFO, ACPI_ERROR((AE_INFO,
"Thread %X cannot release Mutex [%4.4s] acquired by thread %X", "Thread %lX cannot release Mutex [%4.4s] acquired by thread %lX",
(u32) walk_state->thread->thread_id, (unsigned long)walk_state->thread->thread_id,
acpi_ut_get_node_name(obj_desc->mutex.node), acpi_ut_get_node_name(obj_desc->mutex.node),
(u32) obj_desc->mutex.owner_thread->thread_id)); (unsigned long)obj_desc->mutex.owner_thread->thread_id));
return_ACPI_STATUS(AE_AML_NOT_OWNER); return_ACPI_STATUS(AE_AML_NOT_OWNER);
} }
......
...@@ -189,8 +189,12 @@ find_pci_rootbridge(acpi_handle handle, u32 lvl, void *context, void **rv) ...@@ -189,8 +189,12 @@ find_pci_rootbridge(acpi_handle handle, u32 lvl, void *context, void **rv)
bus = tmp; bus = tmp;
if (seg == find->seg && bus == find->bus) if (seg == find->seg && bus == find->bus)
{
find->handle = handle; find->handle = handle;
status = AE_OK; status = AE_CTRL_TERMINATE;
}
else
status = AE_OK;
exit: exit:
kfree(buffer.pointer); kfree(buffer.pointer);
return status; return status;
......
...@@ -183,11 +183,11 @@ late_initcall(acpi_wakeup_device_init); ...@@ -183,11 +183,11 @@ late_initcall(acpi_wakeup_device_init);
#endif #endif
/* /*
* Disable all wakeup GPEs before power off. * Disable all wakeup GPEs before entering requested sleep state.
* * @sleep_state: ACPI state
* Since acpi_enter_sleep_state() will disable all * Since acpi_enter_sleep_state() will disable all
* RUNTIME GPEs, we simply mark all GPES that * RUNTIME GPEs, we simply mark all GPES that
* are not enabled for wakeup from S5 as RUNTIME. * are not enabled for wakeup from requested state as RUNTIME.
*/ */
void acpi_gpe_sleep_prepare(u32 sleep_state) void acpi_gpe_sleep_prepare(u32 sleep_state)
{ {
......
...@@ -180,8 +180,9 @@ acpi_ut_debug_print(u32 requested_debug_level, ...@@ -180,8 +180,9 @@ acpi_ut_debug_print(u32 requested_debug_level,
if (thread_id != acpi_gbl_prev_thread_id) { if (thread_id != acpi_gbl_prev_thread_id) {
if (ACPI_LV_THREADS & acpi_dbg_level) { if (ACPI_LV_THREADS & acpi_dbg_level) {
acpi_os_printf acpi_os_printf
("\n**** Context Switch from TID %X to TID %X ****\n\n", ("\n**** Context Switch from TID %lX to TID %lX ****\n\n",
(u32) acpi_gbl_prev_thread_id, (u32) thread_id); (unsigned long) acpi_gbl_prev_thread_id,
(unsigned long) thread_id);
} }
acpi_gbl_prev_thread_id = thread_id; acpi_gbl_prev_thread_id = thread_id;
......
...@@ -243,23 +243,24 @@ acpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id) ...@@ -243,23 +243,24 @@ acpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id)
#endif #endif
ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
"Thread %X attempting to acquire Mutex [%s]\n", "Thread %lX attempting to acquire Mutex [%s]\n",
(u32) this_thread_id, acpi_ut_get_mutex_name(mutex_id))); (unsigned long) this_thread_id,
acpi_ut_get_mutex_name(mutex_id)));
status = acpi_os_acquire_mutex(acpi_gbl_mutex_info[mutex_id].mutex, status = acpi_os_acquire_mutex(acpi_gbl_mutex_info[mutex_id].mutex,
ACPI_WAIT_FOREVER); ACPI_WAIT_FOREVER);
if (ACPI_SUCCESS(status)) { if (ACPI_SUCCESS(status)) {
ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
"Thread %X acquired Mutex [%s]\n", "Thread %lX acquired Mutex [%s]\n",
(u32) this_thread_id, (unsigned long) this_thread_id,
acpi_ut_get_mutex_name(mutex_id))); acpi_ut_get_mutex_name(mutex_id)));
acpi_gbl_mutex_info[mutex_id].use_count++; acpi_gbl_mutex_info[mutex_id].use_count++;
acpi_gbl_mutex_info[mutex_id].thread_id = this_thread_id; acpi_gbl_mutex_info[mutex_id].thread_id = this_thread_id;
} else { } else {
ACPI_EXCEPTION((AE_INFO, status, ACPI_EXCEPTION((AE_INFO, status,
"Thread %X could not acquire Mutex [%X]", "Thread %lX could not acquire Mutex [%X]",
(u32) this_thread_id, mutex_id)); (unsigned long) this_thread_id, mutex_id));
} }
return (status); return (status);
...@@ -285,7 +286,8 @@ acpi_status acpi_ut_release_mutex(acpi_mutex_handle mutex_id) ...@@ -285,7 +286,8 @@ acpi_status acpi_ut_release_mutex(acpi_mutex_handle mutex_id)
this_thread_id = acpi_os_get_thread_id(); this_thread_id = acpi_os_get_thread_id();
ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
"Thread %X releasing Mutex [%s]\n", (u32) this_thread_id, "Thread %lX releasing Mutex [%s]\n",
(unsigned long) this_thread_id,
acpi_ut_get_mutex_name(mutex_id))); acpi_ut_get_mutex_name(mutex_id)));
if (mutex_id > ACPI_MAX_MUTEX) { if (mutex_id > ACPI_MAX_MUTEX) {
......
...@@ -56,30 +56,8 @@ ...@@ -56,30 +56,8 @@
#define ACPI_ENABLE_IRQS() local_irq_enable() #define ACPI_ENABLE_IRQS() local_irq_enable()
#define ACPI_FLUSH_CPU_CACHE() wbinvd() #define ACPI_FLUSH_CPU_CACHE() wbinvd()
int __acpi_acquire_global_lock(unsigned int *lock);
static inline int int __acpi_release_global_lock(unsigned int *lock);
__acpi_acquire_global_lock (unsigned int *lock)
{
unsigned int old, new, val;
do {
old = *lock;
new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
val = cmpxchg(lock, old, new);
} while (unlikely (val != old));
return (new < 3) ? -1 : 0;
}
static inline int
__acpi_release_global_lock (unsigned int *lock)
{
unsigned int old, new, val;
do {
old = *lock;
new = old & ~0x3;
val = cmpxchg(lock, old, new);
} while (unlikely (val != old));
return old & 0x1;
}
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \
((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr))
......
...@@ -54,30 +54,8 @@ ...@@ -54,30 +54,8 @@
#define ACPI_ENABLE_IRQS() local_irq_enable() #define ACPI_ENABLE_IRQS() local_irq_enable()
#define ACPI_FLUSH_CPU_CACHE() wbinvd() #define ACPI_FLUSH_CPU_CACHE() wbinvd()
int __acpi_acquire_global_lock(unsigned int *lock);
static inline int int __acpi_release_global_lock(unsigned int *lock);
__acpi_acquire_global_lock (unsigned int *lock)
{
unsigned int old, new, val;
do {
old = *lock;
new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
val = cmpxchg(lock, old, new);
} while (unlikely (val != old));
return (new < 3) ? -1 : 0;
}
static inline int
__acpi_release_global_lock (unsigned int *lock)
{
unsigned int old, new, val;
do {
old = *lock;
new = old & ~0x3;
val = cmpxchg(lock, old, new);
} while (unlikely (val != old));
return old & 0x1;
}
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \ #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) \
((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr)) ((Acq) = __acpi_acquire_global_lock((unsigned int *) GLptr))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment