Merge branches 'release', 'misc' and 'misc-2.6.25' into release
This commit is contained in:
commit
70ec75c5b8
|
@ -147,8 +147,10 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||
default: 0
|
||||
|
||||
acpi_sleep= [HW,ACPI] Sleep options
|
||||
Format: { s3_bios, s3_mode }
|
||||
See Documentation/power/video.txt
|
||||
Format: { s3_bios, s3_mode, s3_beep }
|
||||
See Documentation/power/video.txt for s3_bios and s3_mode.
|
||||
s3_beep is for debugging; it makes the PC's speaker beep
|
||||
as soon as the kernel's real-mode entry point is called.
|
||||
|
||||
acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
|
||||
Format: { level | edge | high | low }
|
||||
|
|
|
@ -386,6 +386,11 @@ before suspending; then remount them after resuming.
|
|||
There is a work-around for this problem. For more information, see
|
||||
Documentation/usb/persist.txt.
|
||||
|
||||
Q: Can I suspend-to-disk using a swap partition under LVM?
|
||||
|
||||
A: No. You can suspend successfully, but you'll not be able to
|
||||
resume. uswsusp should be able to work with LVM. See suspend.sf.net.
|
||||
|
||||
Q: I upgraded the kernel from 2.6.15 to 2.6.16. Both kernels were
|
||||
compiled with the similar configuration files. Anyway I found that
|
||||
suspend to disk (and resume) is much slower on 2.6.16 compared to
|
||||
|
|
|
@ -166,7 +166,7 @@ int acpi_request_vector(u32 int_type)
|
|||
return vector;
|
||||
}
|
||||
|
||||
char *__acpi_map_table(unsigned long phys_addr, unsigned long size)
|
||||
char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size)
|
||||
{
|
||||
return __va(phys_addr);
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC;
|
|||
#ifdef CONFIG_X86_64
|
||||
|
||||
/* rely on all ACPI tables being in the direct mapping */
|
||||
char *__acpi_map_table(unsigned long phys_addr, unsigned long size)
|
||||
char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size)
|
||||
{
|
||||
if (!phys_addr || !size)
|
||||
return NULL;
|
||||
|
@ -131,7 +131,7 @@ char *__acpi_map_table(unsigned long phys_addr, unsigned long size)
|
|||
* from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and
|
||||
* count idx down while incrementing the phys address.
|
||||
*/
|
||||
char *__acpi_map_table(unsigned long phys, unsigned long size)
|
||||
char *__init __acpi_map_table(unsigned long phys, unsigned long size)
|
||||
{
|
||||
unsigned long base, offset, mapped_size;
|
||||
int idx;
|
||||
|
|
|
@ -286,13 +286,13 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
|
|||
}
|
||||
|
||||
/*
|
||||
* 1) Disable/Clear all GPEs
|
||||
* 2) Enable all wakeup GPEs
|
||||
*/
|
||||
status = acpi_hw_disable_all_gpes();
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return_ACPI_STATUS(status);
|
||||
}
|
||||
|
||||
acpi_gbl_system_awake_and_running = FALSE;
|
||||
|
||||
status = acpi_hw_enable_all_wakeup_gpes();
|
||||
|
|
|
@ -258,7 +258,8 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
|
|||
}
|
||||
}
|
||||
|
||||
void __iomem *acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
|
||||
void __iomem *__init_refok
|
||||
acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
|
||||
{
|
||||
if (phys > ULONG_MAX) {
|
||||
printk(KERN_ERR PREFIX "Cannot map memory that high\n");
|
||||
|
|
|
@ -51,10 +51,8 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment,
|
|||
int bus,
|
||||
int device, int pin)
|
||||
{
|
||||
struct list_head *node = NULL;
|
||||
struct acpi_prt_entry *entry = NULL;
|
||||
|
||||
|
||||
if (!acpi_prt.count)
|
||||
return NULL;
|
||||
|
||||
|
@ -64,8 +62,7 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment,
|
|||
*
|
||||
*/
|
||||
spin_lock(&acpi_prt_lock);
|
||||
list_for_each(node, &acpi_prt.entries) {
|
||||
entry = list_entry(node, struct acpi_prt_entry, node);
|
||||
list_for_each_entry(entry, &acpi_prt.entries, node) {
|
||||
if ((segment == entry->id.segment)
|
||||
&& (bus == entry->id.bus)
|
||||
&& (device == entry->id.device)
|
||||
|
|
|
@ -458,11 +458,9 @@ int acpi_power_transition(struct acpi_device *device, int state)
|
|||
}
|
||||
|
||||
end:
|
||||
if (result) {
|
||||
if (result)
|
||||
device->power.state = ACPI_STATE_UNKNOWN;
|
||||
printk(KERN_WARNING PREFIX "Transitioning device [%s] to D%d\n",
|
||||
device->pnp.bus_id, state);
|
||||
} else {
|
||||
else {
|
||||
/* We shouldn't change the state till all above operations succeed */
|
||||
device->power.state = state;
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ static int acpi_pm_enter(suspend_state_t pm_state)
|
|||
/* Reprogram control registers and execute _BFS */
|
||||
acpi_leave_sleep_state_prep(acpi_state);
|
||||
|
||||
/* ACPI 3.0 specs (P62) says that it's the responsabilty
|
||||
/* ACPI 3.0 specs (P62) says that it's the responsibility
|
||||
* of the OSPM to clear the status bit [ implying that the
|
||||
* POWER_BUTTON event should not reach userspace ]
|
||||
*/
|
||||
|
|
|
@ -74,8 +74,8 @@ config PM_TRACE_RTC
|
|||
RTC across reboots, so that you can debug a machine that just hangs
|
||||
during suspend (or more commonly, during resume).
|
||||
|
||||
To use this debugging feature you should attempt to suspend the machine,
|
||||
then reboot it, then run
|
||||
To use this debugging feature you should attempt to suspend the
|
||||
machine, reboot it and then run
|
||||
|
||||
dmesg -s 1000000 | grep 'hash matches'
|
||||
|
||||
|
@ -123,7 +123,10 @@ config HIBERNATION
|
|||
called "hibernation" in user interfaces. STD checkpoints the
|
||||
system and powers it off; and restores that checkpoint on reboot.
|
||||
|
||||
You can suspend your machine with 'echo disk > /sys/power/state'.
|
||||
You can suspend your machine with 'echo disk > /sys/power/state'
|
||||
after placing resume=/dev/swappartition on the kernel command line
|
||||
in your bootloader's configuration file.
|
||||
|
||||
Alternatively, you can use the additional userland tools available
|
||||
from <http://suspend.sf.net>.
|
||||
|
||||
|
|
Loading…
Reference in New Issue