[git pull request] ACPI patches for 2.6.35-rc3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

please pull from: 

git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git release

A few significant fixes here:

Rafael fixes a pair of GPE regressions, one from -rc1, and another
going back to 2.6.33.
Matthew fixed a pair of Windows compatibility issues,
one related to IO ports, and another related to resume and NVS.
Plus a couple of less significant fixes.

This will update the files shown below.

thanks!

--
Len Brown
Intel Open Source Technology Center


ps. individual patches are available on linux-acpi@xxxxxxxxxxxxxxx
and a consolidated plain patch is available here:
http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/2.6.35/acpi-release-20100428-2.6.35-rc3.diff.gz

 arch/x86/kernel/e820.c                  |    2 +-
 drivers/acpi/acpi_pad.c                 |   36 +++++++---
 drivers/acpi/acpica/acconfig.h          |    4 +
 drivers/acpi/acpica/acevents.h          |    4 -
 drivers/acpi/acpica/acglobal.h          |    8 ++
 drivers/acpi/acpica/achware.h           |    6 ++-
 drivers/acpi/acpica/evgpe.c             |  115 ++-----------------------------
 drivers/acpi/acpica/evgpeblk.c          |   14 ++++-
 drivers/acpi/acpica/evxface.c           |    7 --
 drivers/acpi/acpica/evxfevnt.c          |   59 ++++++++++++++--
 drivers/acpi/acpica/exsystem.c          |    8 ++
 drivers/acpi/acpica/hwgpe.c             |   94 +++++++++++++++++--------
 drivers/acpi/acpica/hwvalid.c           |   12 +++
 drivers/acpi/acpica/nsinit.c            |    9 +++
 drivers/acpi/blacklist.c                |    8 ++
 drivers/acpi/fan.c                      |    3 +-
 drivers/acpi/processor_driver.c         |    5 ++
 drivers/acpi/sleep.c                    |   34 +++++----
 drivers/acpi/system.c                   |    6 +-
 include/acpi/acexcep.h                  |    2 +-
 include/acpi/acpixf.h                   |    1 +
 include/acpi/actypes.h                  |    3 +-
 include/linux/suspend.h                 |   26 ++++----
 init/main.c                             |    4 +-
 kernel/power/Kconfig                    |    9 ++-
 kernel/power/Makefile                   |    2 +-
 kernel/power/{hibernate_nvs.c => nvs.c} |   24 +++---
 kernel/power/suspend.c                  |    6 ++
 28 files changed, 289 insertions(+), 222 deletions(-)
 rename kernel/power/{hibernate_nvs.c => nvs.c} (80%)

through these commits:

Bob Moore (2):
      ACPICA: Fix namestring associated with AE_NO_HANDLER exception
      ACPICA: Limit maximum time for Sleep() operator

Chen Gong (1):
      ACPI: acpi_pad: Don't needlessly mark LAPIC unstable

Liang Li (1):
      ACPI: fan: fix unbalanced code block

Matthew Garrett (3):
      suspend: Move NVS save/restore code to generic suspend functionality
      ACPI: Store NVS state even when entering suspend to RAM
      ACPICA: Truncate I/O addresses to 16 bits for Windows compatibility

Rafael J. Wysocki (6):
      ACPI / ACPICA: Do not attempt to disable GPE when installing handler
      ACPI / ACPICA: Use helper function for computing GPE masks
      ACPI / ACPICA: Fix low-level GPE manipulation code
      ACPI / ACPICA: Avoid writing full enable masks to GPE registers
      ACPI / ACPICA: Fix GPE initialization
      ACPI / ACPICA: Fix sysfs GPE interface

Thomas Renninger (1):
      ACPI: Do not try to set up acpi processor stuff on cores exceeding maxcpus=

Zhang Rui (1):
      ACPI: Disable Vista compatibility for Sony VGN-NS50B_L

with this log:

commit c1db9d9bb23814a76cfb2416fd84f32c3fd6d82f
Merge: 42de553 934231d
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Sat Jun 12 01:16:51 2010 -0400

    Merge branch 'misc-2.6.35' into release

commit 42de5532f4a58a52a60bdd8bd4f80f9f210dd65b
Merge: e9e8b4d 2a6b697
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Sat Jun 12 01:15:40 2010 -0400

    Merge branch 'bugzilla-13931-sleep-nvs' into release
    
    Conflicts:
    	drivers/acpi/sleep.c
    
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit e9e8b4dd142da3b6cbf301ba922804d6cdc31a17
Merge: d9a799d 4b1b29b
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Sat Jun 12 00:58:01 2010 -0400

    Merge branch 'bugzilla-102904-workaround' into release

commit d9a799d197da16fcfb1e872e82ee6cdf7fe8f7ab
Merge: a48ecc7 b681f7d
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Sat Jun 12 00:56:15 2010 -0400

    Merge branch 'acpica-cherry-pick' into release

commit b681f7d9ab4d697a214fa4428795790c3a937a89
Author: Matthew Garrett <mjg@xxxxxxxxxx>
Date:   Wed May 26 11:50:48 2010 +0800

    ACPICA: Truncate I/O addresses to 16 bits for Windows compatibility
    
    This feature is optional and is enabled if the BIOS requests any
    Windows OSI strings. It can also be enabled by the host OS.
    
    Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx>
    Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
    Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 9cbfa18e8a7b34a32eddbd914a07f085962f50a8
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date:   Wed May 26 11:22:41 2010 +0800

    ACPICA: Limit maximum time for Sleep() operator
    
    To prevent accidental deep sleeps, limit the maximum time that
    Sleep() will sleep. Configurable, default maximum is two seconds.
    ACPICA bugzilla 854.
    
    http://www.acpica.org/bugzilla/show_bug.cgi?id=854
    
    Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
    Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit d70326689b70b35527765bd3decbb1229459e928
Author: Bob Moore <robert.moore@xxxxxxxxx>
Date:   Wed May 26 11:06:12 2010 +0800

    ACPICA: Fix namestring associated with AE_NO_HANDLER exception
    
    Was incorrectly AE_WAKE_ONLY_GPE.
    
    Signed-off-by: Bob Moore <robert.moore@xxxxxxxxx>
    Signed-off-by: Lin Ming <ming.m.lin@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit a48ecc771852158eb7b9ace242f0a6226a3907b7
Merge: 9263482 8aa4b14
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Sat Jun 12 00:52:19 2010 -0400

    Merge branch 'acpi_pad' into release

commit 92634825571d86417941855a8e3189c07aa3c706
Merge: 7e27d6e 9d3c752
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Sat Jun 12 00:51:49 2010 -0400

    Merge branch 'gpe-regression-fixes' into release

commit 9d3c752de65dbfa6e522f1d666deb0ac152ef367
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date:   Tue Jun 8 10:50:53 2010 +0200

    ACPI / ACPICA: Fix sysfs GPE interface
    
    The sysfs interface allowing user space to disable/enable GPEs
    doesn't work correctly, because a GPE disabled this way will be
    re-enabled shortly by acpi_ev_asynch_enable_gpe() if it was
    previosuly enabled by acpi_enable_gpe() (in which case the
    corresponding bit in its enable register's enable_for_run mask is
    set).
    
    To address this issue make the sysfs GPE interface use
    acpi_enable_gpe() and acpi_disable_gpe() instead of acpi_set_gpe()
    so that GPE reference counters are modified by it along with the
    values of GPE enable registers.
    
    Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit ce43ace02320a3fb9614ddb27edc3a8700d68b26
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date:   Tue Jun 8 10:50:20 2010 +0200

    ACPI / ACPICA: Fix GPE initialization
    
    While developing the GPE reference counting code we overlooked the
    fact that acpi_ev_update_gpes() could have enabled GPEs before
    acpi_ev_initialize_gpe_block() was called.  As a result, some GPEs
    are enabled twice during the initialization.
    
    To fix this issue avoid calling acpi_enable_gpe() from
    acpi_ev_initialize_gpe_block() for the GPEs that have nonzero
    runtime reference counters.
    
    Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit c9a8bbb7704cbf515c0fc68970abbe4e91d68521
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date:   Tue Jun 8 10:49:45 2010 +0200

    ACPI / ACPICA: Avoid writing full enable masks to GPE registers
    
    ACPICA uses acpi_hw_write_gpe_enable_reg() to re-enable a GPE after
    an event signaled by it has been handled.  However, this function
    writes the entire GPE enable mask to the GPE's enable register which
    may not be correct.  Namely, if one of the other GPEs in the same
    register was previously enabled by acpi_enable_gpe() and subsequently
    disabled using acpi_set_gpe(), acpi_hw_write_gpe_enable_reg() will
    re-enable it along with the target GPE.
    
    To fix this issue rework acpi_hw_write_gpe_enable_reg() so that it
    calls acpi_hw_low_set_gpe() with a special action value,
    ACPI_GPE_COND_ENABLE, that will make it only enable the GPE if the
    corresponding bit in its register's enable_for_run mask is set.
    
    Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit fd247447c1d94a79d5cfc647430784306b3a8323
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date:   Tue Jun 8 10:49:08 2010 +0200

    ACPI / ACPICA: Fix low-level GPE manipulation code
    
    ACPICA uses acpi_ev_enable_gpe() for enabling GPEs at the low level,
    which is incorrect, because this function only enables the GPE if the
    corresponding bit in its enable register's enable_for_run mask is set.
    This causes acpi_set_gpe() to work incorrectly if used for enabling
    GPEs that were not previously enabled with acpi_enable_gpe().  As a
    result, among other things, wakeup-only GPEs are never enabled by
    acpi_enable_wakeup_device(), so the devices that use them are unable
    to wake up the system.
    
    To fix this issue remove acpi_ev_enable_gpe() and its counterpart
    acpi_ev_disable_gpe() and replace acpi_hw_low_disable_gpe() with
    acpi_hw_low_set_gpe() that will be used instead to manipulate GPE
    enable bits at the low level.  Make the users of acpi_ev_enable_gpe()
    and acpi_ev_disable_gpe() call acpi_hw_low_set_gpe() instead and
    make sure that GPE enable masks are only updated by acpi_enable_gpe()
    and acpi_disable_gpe() when GPE reference counters change from 0
    to 1 and from 1 to 0, respectively.
    
    Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit e4e9a735991c80fb0fc1bd4a13a93681c3c17ce0
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date:   Tue Jun 8 10:48:26 2010 +0200

    ACPI / ACPICA: Use helper function for computing GPE masks
    
    In quite a few places ACPICA needs to compute a GPE enable mask with
    only one bit, corresponding to a given GPE, set.  Currently, that
    computation is always open coded which leads to unnecessary code
    duplication.  Fix this by introducing a helper function for computing
    one-bit GPE enable masks and using it where appropriate.
    
    Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit a997ab332832519c2e292db13f509e4360495a5a
Author: Rafael J. Wysocki <rjw@xxxxxxx>
Date:   Sat Jun 12 00:05:19 2010 +0200

    ACPI / ACPICA: Do not attempt to disable GPE when installing handler
    
    Commit 0f849d2cc6863c7874889ea60a871fb71399dd3f (ACPICA: Minimize
    the differences between linux GPE code and ACPICA code base)
    introduced a change attempting to disable a GPE before installing
    a handler for it in acpi_install_gpe_handler() which was incorrect.
    First, the GPE disabled by it is never enabled again (except during
    resume) which leads to battery insert/remove events not being
    reported on the Maxim Levitsky's machine.  Second, the disabled
    GPE is still reported as enabled by the sysfs interface that only
    checks its enable register's enable_for_run mask.
    
    Revert this change for now, because it causes more damage to happen
    than the bug it was supposed to fix.
    
    Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Reported-and-tested-by: Maxim Levitsky <maximlevitsky@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 4b1b29bc8801badd243694add02262e0955dde1b
Author: Zhang Rui <rui.zhang@xxxxxxxxx>
Date:   Tue Jun 8 15:28:40 2010 +0800

    ACPI: Disable Vista compatibility for Sony VGN-NS50B_L
    
    Disable Vista compatibility for Sony VGN-NS50B_L.
    https://bugzilla.kernel.org/show_bug.cgi?id=12904#c46
    
    Note that this change is a workaround, not a permanent fix.
    For the permanent fix is to figure out what compatibility
    means and to actually be compatible...
    
    Tested-by: Voldemar <harestomper@xxxxxxxxx>
    Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 934231de706d2579fae14f5857fcd8de991009ff
Author: Liang Li <liang.li@xxxxxxxxxxxxx>
Date:   Thu Jun 10 13:42:49 2010 +0800

    ACPI: fan: fix unbalanced code block
    
    The code block braced with CONFIG_ACPI_PROCFS is unblanced. When
    CONFIG_ACPI_PROCFS=n, kernel trace will be produced like:
    
    Call Trace:
     [<c111637d>] ? remove_proc_entry+0x20d/0x290
     [<c111637d>] ? remove_proc_entry+0x20d/0x290
     [<c103b02c>] warn_slowpath_common+0x6c/0xc0
     [<c111637d>] ? remove_proc_entry+0x20d/0x290
     [<c103b0c6>] warn_slowpath_fmt+0x26/0x30
     [<c111637d>] remove_proc_entry+0x20d/0x290
     [<c1116bd7>] ? proc_register+0x117/0x1f0
     [<c1116e83>] ? proc_mkdir_mode+0x33/0x50
     [<c14f483c>] ? acpi_fan_init+0x0/0x2c
     [<c14f485f>] acpi_fan_init+0x23/0x2c
     [<c1001123>] do_one_initcall+0x23/0x180
     [<c107dcf7>] ? init_irq_proc+0x67/0x80
     [<c14d43bd>] kernel_init+0x13c/0x20e
     [<c1030e50>] ? schedule_tail+0x20/0x90
     [<c1389e06>] ? syscall_exit+0x5/0x16
     [<c14d4281>] ? kernel_init+0x0/0x20e
     [<c14d4281>] ? kernel_init+0x0/0x20e
     [<c10032f6>] kernel_thread_helper+0x6/0x30
    ---[ end trace a7919e7f17c0a725 ]---
    
    Then also bracket later error checking code with ACPI_PROCFS
    option to avoid mismatch problem.
    
    Signed-off-by: Liang Li <liang.li@xxxxxxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 2a6b69765ad794389f2fc3e14a0afa1a995221c2
Author: Matthew Garrett <mjg@xxxxxxxxxx>
Date:   Fri May 28 16:32:15 2010 -0400

    ACPI: Store NVS state even when entering suspend to RAM
    
    https://bugzilla.kernel.org/show_bug.cgi?id=13931 describes a bug where
    a system fails to successfully resume after the second suspend. Maxim
    Levitsky discovered that this could be rectified by forcibly saving
    and restoring the ACPI non-volatile state. The spec indicates that this
    is only required for S4, but testing the behaviour of Windows by adding
    an ACPI NVS region to qemu's e820 map and registering a custom memory
    read/write handler reveals that it's saved and restored even over suspend
    to RAM. We should mimic that behaviour to avoid other broken platforms.
    
    Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit dd4c4f17d722ffeb2515bf781400675a30fcead7
Author: Matthew Garrett <mjg@xxxxxxxxxx>
Date:   Fri May 28 16:32:14 2010 -0400

    suspend: Move NVS save/restore code to generic suspend functionality
    
    Saving platform non-volatile state may be required for suspend to RAM as
    well as hibernation. Move it to more generic code.
    
    Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx>
    Acked-by: Rafael J. Wysocki <rjw@xxxxxxx>
    Tested-by: Maxim Levitsky <maximlevitsky@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 75cbfb97a156dd3dabdc81295fb8144576332366
Author: Thomas Renninger <trenn@xxxxxxx>
Date:   Wed May 26 17:03:33 2010 +0200

    ACPI: Do not try to set up acpi processor stuff on cores exceeding maxcpus=
    
    Patch is against latest Linus master branch and is expected to be
    safe bug fix.
    
    You get:
    ACPI: HARDWARE addr space,NOT supported yet
    for each ACPI defined CPU which status is active, but exceeds
    maxcpus= count.
    
    As these "not booted" CPUs do not run an idle routine
    and echo X >/proc/acpi/processor/*/throttling did not work
    I couldn't find a way to really access not onlined/booted
    machines. Still this should get fixed and
    /proc/acpi/processor/X dirs of cores exceeding maxcpus
    should not show up.
    
    I wonder whether this could get cleaned up by truncating possible cpu mask
    and nr_cpu_ids to setup_max_cpus early some day
    (and not exporting setup_max_cpus anymore then).
    But this needs touching of a lot other places...
    
    Signed-off-by: Thomas Renninger <trenn@xxxxxxx>
    CC: travis@xxxxxxx
    CC: linux-acpi@xxxxxxxxxxxxxxx
    CC: lenb@xxxxxxxxxx
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 8aa4b14eb023fecaa48d55402e98bdf84b375c4a
Author: Chen Gong <gong.chen@xxxxxxxxxxxxxxx>
Date:   Sun May 30 11:37:08 2010 +0800

    ACPI: acpi_pad: Don't needlessly mark LAPIC unstable
    
    As suggested in Venki's suggestion in the commit 0dc698b,
    add LAPIC unstable detection in the acpi_pad drvier too.
    
    Signed-off-by: Chen Gong <gong.chen@xxxxxxxxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux