Merge branches 'release', 'misc' and 'misc-2.6.25' into release
authorLen Brown <len.brown@intel.com>
Thu, 7 Feb 2008 08:13:13 +0000 (03:13 -0500)
committerLen Brown <len.brown@intel.com>
Thu, 7 Feb 2008 08:13:13 +0000 (03:13 -0500)
Documentation/kernel-parameters.txt
Documentation/power/swsusp.txt
arch/ia64/kernel/acpi.c
arch/x86/kernel/acpi/boot.c
drivers/acpi/hardware/hwsleep.c
drivers/acpi/osl.c
drivers/acpi/pci_irq.c
drivers/acpi/power.c
drivers/acpi/sleep/main.c
kernel/power/Kconfig

index 8fd5aa40585ff8419cc730104079ddd61b5ccb8e..8ea41b6e6a85ac7ca75bfc2775b9d122a526244c 100644 (file)
@@ -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 }
index aea7e920966753193c6139d84e7839f7de485ebe..9d60ab717a7b3c8dc0daa4d14e6a914884965bf0 100644 (file)
@@ -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
index d20a3cc8b424d0057ecd52f261687aef15b77431..90680255032eac795f3fcdcd8706d68ad33657f7 100644 (file)
@@ -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);
 }
index fc8825d4b996f43fbd5f2b2fffc041982cbfd941..f3e049ea86eb9e2e2ee8e893205ab45f11e7916f 100644 (file)
@@ -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;
index fd1c4ba63367469f9826460c6b545407491f9f86..058d0be5cbe2983ee747ead0f40b396bfd8f9b66 100644 (file)
@@ -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();
index 07c18dbde698bbba86c17d7894a6ff5360abdcba..0c41db3075a591a76931e36d0afa6699e240bc75 100644 (file)
@@ -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");
index 62010c2481b3614b9b9ddd3e1cbbae2118f40fd7..76d9c669d2d8e4e7cc9662e3f3ea8c68148b059d 100644 (file)
@@ -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)
index af1769a20c7a6ba3f0ee665b204a79c0a1f0c74c..76bf6d90c700efac7905d6167680915ca50e1498 100644 (file)
@@ -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;
        }
index 7f97e32fc33f7d049c14e63b258da3c4b1e1d283..293a1cbb47c05776b543894bc32ee145de0153b7 100644 (file)
@@ -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 ]
         */
index ef9b802738a522851d7e95672164f83a997d8df6..79833170bb9cddf4aad9b6bde7806628856ffde5 100644 (file)
@@ -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>.