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
|
default: 0
|
||||||
|
|
||||||
acpi_sleep= [HW,ACPI] Sleep options
|
acpi_sleep= [HW,ACPI] Sleep options
|
||||||
Format: { s3_bios, s3_mode }
|
Format: { s3_bios, s3_mode, s3_beep }
|
||||||
See Documentation/power/video.txt
|
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
|
acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
|
||||||
Format: { level | edge | high | low }
|
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
|
There is a work-around for this problem. For more information, see
|
||||||
Documentation/usb/persist.txt.
|
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
|
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
|
compiled with the similar configuration files. Anyway I found that
|
||||||
suspend to disk (and resume) is much slower on 2.6.16 compared to
|
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;
|
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);
|
return __va(phys_addr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC;
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
|
|
||||||
/* rely on all ACPI tables being in the direct mapping */
|
/* 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)
|
if (!phys_addr || !size)
|
||||||
return NULL;
|
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
|
* from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and
|
||||||
* count idx down while incrementing the phys address.
|
* 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;
|
unsigned long base, offset, mapped_size;
|
||||||
int idx;
|
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
|
* 2) Enable all wakeup GPEs
|
||||||
*/
|
*/
|
||||||
status = acpi_hw_disable_all_gpes();
|
status = acpi_hw_disable_all_gpes();
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
return_ACPI_STATUS(status);
|
return_ACPI_STATUS(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
acpi_gbl_system_awake_and_running = FALSE;
|
acpi_gbl_system_awake_and_running = FALSE;
|
||||||
|
|
||||||
status = acpi_hw_enable_all_wakeup_gpes();
|
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) {
|
if (phys > ULONG_MAX) {
|
||||||
printk(KERN_ERR PREFIX "Cannot map memory that high\n");
|
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 bus,
|
||||||
int device, int pin)
|
int device, int pin)
|
||||||
{
|
{
|
||||||
struct list_head *node = NULL;
|
|
||||||
struct acpi_prt_entry *entry = NULL;
|
struct acpi_prt_entry *entry = NULL;
|
||||||
|
|
||||||
|
|
||||||
if (!acpi_prt.count)
|
if (!acpi_prt.count)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -64,8 +62,7 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(int segment,
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
spin_lock(&acpi_prt_lock);
|
spin_lock(&acpi_prt_lock);
|
||||||
list_for_each(node, &acpi_prt.entries) {
|
list_for_each_entry(entry, &acpi_prt.entries, node) {
|
||||||
entry = list_entry(node, struct acpi_prt_entry, node);
|
|
||||||
if ((segment == entry->id.segment)
|
if ((segment == entry->id.segment)
|
||||||
&& (bus == entry->id.bus)
|
&& (bus == entry->id.bus)
|
||||||
&& (device == entry->id.device)
|
&& (device == entry->id.device)
|
||||||
|
|
|
@ -458,11 +458,9 @@ int acpi_power_transition(struct acpi_device *device, int state)
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (result) {
|
if (result)
|
||||||
device->power.state = ACPI_STATE_UNKNOWN;
|
device->power.state = ACPI_STATE_UNKNOWN;
|
||||||
printk(KERN_WARNING PREFIX "Transitioning device [%s] to D%d\n",
|
else {
|
||||||
device->pnp.bus_id, state);
|
|
||||||
} else {
|
|
||||||
/* We shouldn't change the state till all above operations succeed */
|
/* We shouldn't change the state till all above operations succeed */
|
||||||
device->power.state = state;
|
device->power.state = state;
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,7 +170,7 @@ static int acpi_pm_enter(suspend_state_t pm_state)
|
||||||
/* Reprogram control registers and execute _BFS */
|
/* Reprogram control registers and execute _BFS */
|
||||||
acpi_leave_sleep_state_prep(acpi_state);
|
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
|
* of the OSPM to clear the status bit [ implying that the
|
||||||
* POWER_BUTTON event should not reach userspace ]
|
* 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
|
RTC across reboots, so that you can debug a machine that just hangs
|
||||||
during suspend (or more commonly, during resume).
|
during suspend (or more commonly, during resume).
|
||||||
|
|
||||||
To use this debugging feature you should attempt to suspend the machine,
|
To use this debugging feature you should attempt to suspend the
|
||||||
then reboot it, then run
|
machine, reboot it and then run
|
||||||
|
|
||||||
dmesg -s 1000000 | grep 'hash matches'
|
dmesg -s 1000000 | grep 'hash matches'
|
||||||
|
|
||||||
|
@ -123,7 +123,10 @@ config HIBERNATION
|
||||||
called "hibernation" in user interfaces. STD checkpoints the
|
called "hibernation" in user interfaces. STD checkpoints the
|
||||||
system and powers it off; and restores that checkpoint on reboot.
|
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
|
Alternatively, you can use the additional userland tools available
|
||||||
from <http://suspend.sf.net>.
|
from <http://suspend.sf.net>.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue