03 Mar, 2013

1 commit

  • Tim found:

    WARNING: at arch/x86/kernel/smpboot.c:324 topology_sane.isra.2+0x6f/0x80()
    Hardware name: S2600CP
    sched: CPU #1's llc-sibling CPU #0 is not on the same node! [node: 1 != 0]. Ignoring dependency.
    smpboot: Booting Node 1, Processors #1
    Modules linked in:
    Pid: 0, comm: swapper/1 Not tainted 3.9.0-0-generic #1
    Call Trace:
    set_cpu_sibling_map+0x279/0x449
    start_secondary+0x11d/0x1e5

    Don Morris reproduced on a HP z620 workstation, and bisected it to
    commit e8d195525809 ("acpi, memory-hotplug: parse SRAT before memblock
    is ready")

    It turns out movable_map has some problems, and it breaks several things

    1. numa_init is called several times, NOT just for srat. so those
    nodes_clear(numa_nodes_parsed)
    memset(&numa_meminfo, 0, sizeof(numa_meminfo))
    can not be just removed. Need to consider sequence is: numaq, srat, amd, dummy.
    and make fall back path working.

    2. simply split acpi_numa_init to early_parse_srat.
    a. that early_parse_srat is NOT called for ia64, so you break ia64.
    b. for (i = 0; i < MAX_LOCAL_APIC; i++)
    set_apicid_to_node(i, NUMA_NO_NODE)
    still left in numa_init. So it will just clear result from early_parse_srat.
    it should be moved before that....
    c. it breaks ACPI_TABLE_OVERIDE...as the acpi table scan is moved
    early before override from INITRD is settled.

    3. that patch TITLE is total misleading, there is NO x86 in the title,
    but it changes critical x86 code. It caused x86 guys did not
    pay attention to find the problem early. Those patches really should
    be routed via tip/x86/mm.

    4. after that commit, following range can not use movable ram:
    a. real_mode code.... well..funny, legacy Node0 [0,1M) could be hot-removed?
    b. initrd... it will be freed after booting, so it could be on movable...
    c. crashkernel for kdump...: looks like we can not put kdump kernel above 4G
    anymore.
    d. init_mem_mapping: can not put page table high anymore.
    e. initmem_init: vmemmap can not be high local node anymore. That is
    not good.

    If node is hotplugable, the mem related range like page table and
    vmemmap could be on the that node without problem and should be on that
    node.

    We have workaround patch that could fix some problems, but some can not
    be fixed.

    So just remove that offending commit and related ones including:

    f7210e6c4ac7 ("mm/memblock.c: use CONFIG_HAVE_MEMBLOCK_NODE_MAP to
    protect movablecore_map in memblock_overlaps_region().")

    01a178a94e8e ("acpi, memory-hotplug: support getting hotplug info from
    SRAT")

    27168d38fa20 ("acpi, memory-hotplug: extend movablemem_map ranges to
    the end of node")

    e8d195525809 ("acpi, memory-hotplug: parse SRAT before memblock is
    ready")

    fb06bc8e5f42 ("page_alloc: bootmem limit with movablecore_map")

    42f47e27e761 ("page_alloc: make movablemem_map have higher priority")

    6981ec31146c ("page_alloc: introduce zone_movable_limit[] to keep
    movable limit for nodes")

    34b71f1e04fc ("page_alloc: add movable_memmap kernel parameter")

    4d59a75125d5 ("x86: get pg_data_t's memory from other node")

    Later we should have patches that will make sure kernel put page table
    and vmemmap on local node ram instead of push them down to node0. Also
    need to find way to put other kernel used ram to local node ram.

    Reported-by: Tim Gardner
    Reported-by: Don Morris
    Bisected-by: Don Morris
    Tested-by: Don Morris
    Signed-off-by: Yinghai Lu
    Cc: Tony Luck
    Cc: Thomas Renninger
    Cc: Tejun Heo
    Cc: Tang Chen
    Cc: Yasuaki Ishimatsu
    Signed-off-by: Linus Torvalds

    Yinghai Lu
     

24 Feb, 2013

1 commit

  • On linux, the pages used by kernel could not be migrated. As a result,
    if a memory range is used by kernel, it cannot be hot-removed. So if we
    want to hot-remove memory, we should prevent kernel from using it.

    The way now used to prevent this is specify a memory range by
    movablemem_map boot option and set it as ZONE_MOVABLE.

    But when the system is booting, memblock will allocate memory, and
    reserve the memory for kernel. And before we parse SRAT, and know the
    node memory ranges, memblock is working. And it may allocate memory in
    ranges to be set as ZONE_MOVABLE. This memory can be used by kernel,
    and never be freed.

    So, let's parse SRAT before memblock is called first. And it is early
    enough.

    The first call of memblock_find_in_range_node() is in:

    setup_arch()
    |-->setup_real_mode()

    so, this patch add a function early_parse_srat() to parse SRAT, and call
    it before setup_real_mode() is called.

    NOTE:

    1) early_parse_srat() is called before numa_init(), and has initialized
    numa_meminfo. So DO NOT clear numa_nodes_parsed in numa_init() and DO
    NOT zero numa_meminfo in numa_init(), otherwise we will lose memory
    numa info.

    2) I don't know why using count of memory affinities parsed from SRAT
    as a return value in original acpi_numa_init(). So I add a static
    variable srat_mem_cnt to remember this count and use it as the return
    value of the new acpi_numa_init()

    [mhocko@suse.cz: parse SRAT before memblock is ready fix]
    Signed-off-by: Tang Chen
    Reviewed-by: Wen Congyang
    Cc: KOSAKI Motohiro
    Cc: Jiang Liu
    Cc: Jianguo Wu
    Cc: Kamezawa Hiroyuki
    Cc: Lai Jiangshan
    Cc: Wu Jianguo
    Cc: Yasuaki Ishimatsu
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Len Brown
    Cc: "Brown, Len"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tang Chen
     

13 Feb, 2013

1 commit


29 Jan, 2013

1 commit


20 Jan, 2013

1 commit

  • CONFIG_PM_SLEEP may be set even if CONFIG_ACPI_SLEEP is unset,
    although that is unusual. For this reason, make the headers of
    functions built for both CONFIG_ACPI and CONFIG_PM_SLEEP set
    simultaneously depend on that combination of Kconfig options
    instead of CONFIG_ACPI_SLEEP.

    This fixes a build problem reported by Randy Dunlap.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

18 Jan, 2013

1 commit


11 Jan, 2013

1 commit

  • This is a cosmetic patch only. Comparison of the resulting binary showed
    only line number differences.

    This patch does not affect the generation of the Linux binary.
    This patch decreases 44 lines of 20121114 divergence.diff.

    There are naming conflicts between Linux and ACPICA on table handlers. This
    patch cleans up this conflicts to reduce the source code diff between Linux
    and ACPICA.

    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

03 Jan, 2013

1 commit

  • Currently, the ACPI wakeup capability of PCI devices is set up
    in two different places, partially in acpi_pci_bind() where
    runtime wakeup is initialized and partially in
    platform_pci_wakeup_init(), where system wakeup is initialized.
    The cleanup is only done in acpi_pci_unbind() and it only covers
    runtime wakeup.

    Use the new .setup() and .cleanup() callbacks in struct acpi_bus_type
    to consolidate that code and do the setup and the cleanup each in one
    place.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Yinghai Lu
    Acked-by: Toshi Kani

    Rafael J. Wysocki
     

15 Dec, 2012

1 commit

  • Pull x86 ACPI update from Peter Anvin:
    "This is a patchset which didn't make the last merge window. It adds a
    debugging capability to feed ACPI tables via the initramfs.

    On a grander scope, it formalizes using the initramfs protocol for
    feeding arbitrary blobs which need to be accessed early to the kernel:
    they are fed first in the initramfs blob (lots of bootloaders can
    concatenate this at boot time, others can use a single file) in an
    uncompressed cpio archive using filenames starting with "kernel/".

    The ACPI maintainers requested that this patchset be fed via the x86
    tree rather than the ACPI tree as the footprint in the general x86
    code is much bigger than in the ACPI code proper."

    * 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    X86 ACPI: Use #ifdef not #if for CONFIG_X86 check
    ACPI: Fix build when disabled
    ACPI: Document ACPI table overriding via initrd
    ACPI: Create acpi_table_taint() function to avoid code duplication
    ACPI: Implement physical address table override
    ACPI: Store valid ACPI tables passed via early initrd in reserved memblock areas
    x86, acpi: Introduce x86 arch specific arch_reserve_mem_area() for e820 handling
    lib: Add early cpio decoder

    Linus Torvalds
     

08 Dec, 2012

1 commit


05 Dec, 2012

1 commit


30 Nov, 2012

1 commit

  • * acpi-general: (38 commits)
    ACPI / thermal: _TMP and _CRT/_HOT/_PSV/_ACx dependency fix
    ACPI: drop unnecessary local variable from acpi_system_write_wakeup_device()
    ACPI: Fix logging when no pci_irq is allocated
    ACPI: Update Dock hotplug error messages
    ACPI: Update Container hotplug error messages
    ACPI: Update Memory hotplug error messages
    ACPI: Update CPU hotplug error messages
    ACPI: Add acpi_handle_() interfaces
    ACPI: remove use of __devexit
    ACPI / PM: Add Sony Vaio VPCEB1S1E to nonvs blacklist.
    ACPI / battery: Correct battery capacity values on Thinkpads
    Revert "ACPI / x86: Add quirk for "CheckPoint P-20-00" to not use bridge _CRS_ info"
    ACPI: create _SUN sysfs file
    ACPI / memhotplug: bind the memory device when the driver is being loaded
    ACPI / memhotplug: don't allow to eject the memory device if it is being used
    ACPI / memhotplug: free memory device if acpi_memory_enable_device() failed
    ACPI / memhotplug: fix memory leak when memory device is unbound from acpi_memhotplug
    ACPI / memhotplug: deal with eject request in hotplug queue
    ACPI / memory-hotplug: add memory offline code to acpi_memory_device_remove()
    ACPI / memory-hotplug: call acpi_bus_trim() to remove memory device
    ...

    Conflicts:
    include/linux/acpi.h (two additions at the end of the same file)

    Rafael J. Wysocki
     

27 Nov, 2012

1 commit


26 Nov, 2012

1 commit

  • Make it possible to ask the routines used for adding/removing devices
    to/from the general ACPI PM domain, acpi_dev_pm_attach() and
    acpi_dev_pm_detach(), respectively, to change the power states of
    devices so that they are put into the full-power state automatically
    by acpi_dev_pm_attach() and into the lowest-power state available
    automatically by acpi_dev_pm_detach().

    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Mika Westerberg
    Tested-by: Mika Westerberg

    Rafael J. Wysocki
     

22 Nov, 2012

1 commit

  • This patch introduces acpi_handle_(), where is
    a kernel message level such as err/warn/info, to support improved
    logging messages for ACPI, esp. hot-plug operations.
    acpi_handle_() appends "ACPI" prefix and ACPI object path
    to the messages. This improves diagnosis of hotplug operations
    since an error message in a log file identifies an object that
    caused an issue. This interface acquires the global namespace
    mutex to obtain an object path. In interrupt context, it shows
    the object path as .

    acpi_handle_() takes acpi_handle as an argument, which is
    passed to ACPI hotplug notify handlers from the ACPICA. Therefore,
    it is always available unlike other kernel objects, such as device.

    For example:
    acpi_handle_err(handle, "Device don't exist, dropping EJECT\n");
    logs an error message like this at KERN_ERR.
    ACPI: \_SB_.SCK4.CPU4: Device don't exist, dropping EJECT

    ACPI hot-plug drivers can use acpi_handle_() when they need
    to identify a target ACPI object path in their messages, such as
    error cases. The usage model is similar to dev_().
    acpi_handle_() can be used when a device is not created or
    is invalid during hot-plug operations. ACPI object path is also
    consistent on the platform, unlike device name that gets incremented
    over hotplug operations.

    ACPI drivers should use dev_() when a device object is valid.
    Device name provides more user friendly information, and avoids
    acquiring the global ACPI namespace mutex. ACPI drivers also
    continue to use pr_() when they do not need to specify device
    information, such as boot-up messages.

    Note: ACPI_[WARNING|INFO|ERROR]() are intended for the ACPICA and
    are not associated with the kernel message level.

    Signed-off-by: Toshi Kani
    Tested-by: Vijay Mohan Pandarathil
    Signed-off-by: Rafael J. Wysocki

    Toshi Kani
     

15 Nov, 2012

7 commits

  • Commit e5cc8ef (ACPI / PM: Provide ACPI PM callback routines for
    subsystems) introduced a build problem occuring if CONFIG_ACPI is
    unset or CONFIG_PM is unset and errno.h is not included before
    acpi.h, because in that case ENODEV used in acpi.h is undefined.

    Fix the issue by making acpi.h include errno.h.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Currently, whoever wants to use ACPI device resources has to call
    acpi_walk_resources() to browse the buffer returned by the _CRS
    method for the given device and create filters passed to that
    routine to apply to the individual resource items. This generally
    is cumbersome, time-consuming and inefficient. Moreover, it may
    be problematic if resource conflicts need to be resolved, because
    the different users of _CRS will need to do that in a consistent
    way. However, if there are resource conflicts, the ACPI core
    should be able to resolve them centrally instead of relying on
    various users of acpi_walk_resources() to handle them correctly
    together.

    For this reason, introduce a new function, acpi_dev_get_resources(),
    that can be used by subsystems to obtain a list of struct resource
    objects corresponding to the ACPI device resources returned by
    _CRS and, if necessary, to apply additional preprocessing routine
    to the ACPI resources before converting them to the struct resource
    format.

    Make the ACPI code that creates platform device objects use
    acpi_dev_get_resources() for resource processing instead of executing
    acpi_walk_resources() twice by itself, which causes it to be much
    more straightforward and easier to follow.

    In the future, acpi_dev_get_resources() can be extended to meet
    the needs of the ACPI PNP subsystem and other users of _CRS in
    the kernel.

    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Mika Westerberg
    Tested-by: Mika Westerberg

    Rafael J. Wysocki
     
  • Move some code used for parsing ACPI device resources from the PNP
    subsystem to the ACPI core, so that other bus types (platform, SPI,
    I2C) can use the same routines for parsing resources in a consistent
    way, without duplicating code.

    Signed-off-by: Rafael J. Wysocki
    Reviewed-by: Mika Westerberg
    Tested-by: Mika Westerberg

    Rafael J. Wysocki
     
  • Introduce function acpi_match_device() allowing callers to match
    struct device objects with populated acpi_handle fields against
    arrays of ACPI device IDs. Also introduce function
    acpi_driver_match_device() using acpi_match_device() internally and
    allowing callers to match a struct device object against an array of
    ACPI device IDs provided by a device driver.

    Additionally, introduce macro ACPI_PTR() that may be used by device
    drivers to escape pointers to data structures whose definitions
    depend on CONFIG_ACPI.

    Signed-off-by: Mika Westerberg
    Acked-by: Greg Kroah-Hartman
    Acked-by: H. Peter Anvin
    Acked-by: Tony Luck
    Signed-off-by: Rafael J. Wysocki

    Mika Westerberg
     
  • acpi_no_s4_hw_signature is defined in #ifdef CONFIG_HIBERNATION block,
    but the current code put the declaration in #ifdef CONFIG_PM_SLEEP block.

    I happened to meet this issue when I turned off PM_SLEEP config manually:
    arch/x86/kernel/acpi/sleep.c:100:4: error: implicit declaration of function ‘acpi_no_s4_hw_signature’ [-Werror=implicit-function-declaration]

    Signed-off-by: Yuanhan Liu
    Reviewed-by: Fengguang Wu
    Signed-off-by: Rafael J. Wysocki

    Yuanhan Liu
     
  • The ACPI specificiation would like us to save NVS at hibernation time,
    but makes no mention of saving NVS over S3. Not all versions of
    Windows do this either, and it is clear that not all machines need NVS
    saved/restored over S3. Allow the user to improve their suspend/resume
    time by disabling the NVS save/restore at S3 time, but continue to do
    the NVS save/restore for S4 as specified.

    Signed-off-by: Kristen Carlson Accardi
    Signed-off-by: Rafael J. Wysocki

    Kristen Carlson Accardi
     
  • Some bus types don't support power management natively, but generally
    there may be device nodes in ACPI tables corresponding to the devices
    whose bus types they are (under ACPI 5 those bus types may be SPI,
    I2C and platform). If that is the case, standard ACPI power
    management may be applied to those devices, although currently the
    kernel has no means for that.

    For this reason, provide a set of routines that may be used as power
    management callbacks for such devices. This may be done in three
    different ways.

    (1) Device drivers handling the devices in question may run
    acpi_dev_pm_attach() in their .probe() routines, which (on
    success) will cause the devices to be added to the general ACPI
    PM domain and ACPI power management will be used for them going
    forward. Then, acpi_dev_pm_detach() may be used to remove the
    devices from the general ACPI PM domain if ACPI power management
    is not necessary for them any more.

    (2) The devices' subsystems may use acpi_subsys_runtime_suspend(),
    acpi_subsys_runtime_resume(), acpi_subsys_prepare(),
    acpi_subsys_suspend_late(), acpi_subsys_resume_early() as their
    power management callbacks in the same way as the general ACPI
    PM domain does that.

    (3) The devices' drivers may execute acpi_dev_suspend_late(),
    acpi_dev_resume_early(), acpi_dev_runtime_suspend(),
    acpi_dev_runtime_resume() from their power management callbacks
    as appropriate, if that's absolutely necessary, but it is not
    recommended to do that, because such drivers may not work
    without ACPI support as a result.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

06 Oct, 2012

1 commit


01 Oct, 2012

2 commits


25 Sep, 2012

3 commits


03 Aug, 2012

1 commit

  • Otherwise you could run into:
    WARN_ON in numa_register_memblks(), because node_possible_map is zero

    References: https://bugzilla.novell.com/show_bug.cgi?id=757888

    On this machine (ProLiant ML570 G3) the SRAT table contains:
    - No processor affinities
    - One memory affinity structure (which is set disabled)

    CC: Per Jessen
    CC: Andi Kleen
    Signed-off-by: Thomas Renninger
    Signed-off-by: Len Brown

    Thomas Renninger
     

31 Jul, 2012

1 commit

  • Pull x86 platform driver updates from Matthew Garrett:
    "Nothing overly dramatic here - improved support for the Classmate,
    some random small fixes and a rework of backlight management to deal
    with some of the more awkward cases."

    * 'linux-next' of git://cavan.codon.org.uk/platform-drivers-x86:
    thinkpad_acpi: Free hotkey_keycode_map after unregistering tpacpi_inputdev
    thinkpad_acpi: Fix a memory leak during module exit
    thinkpad_acpi: Flush the workqueue before freeing tpacpi_leds
    dell-laptop: Add 6 machines to touchpad led quirk
    ACER: Fix Smatch double-free issue
    ACER: Fix up sparse warning
    asus-nb-wmi: add some video toggle keys
    asus-nb-wmi: add wapf quirk for ASUS machines
    classmate-laptop: Fix extra keys hardware id.
    classmate-laptop: Add support for Classmate V4 accelerometer.
    asus-wmi: enable resume on lid open
    asus-wmi: control backlight power through WMI, not ACPI
    samsung-laptop: support R40/R41
    acpi/video_detect: blacklist samsung x360
    samsung-laptop: X360 ACPI backlight device is broken
    drivers-platform-x86: use acpi_video_dmi_promote_vendor()
    acpi: add a way to promote/demote vendor backlight drivers
    ACER: Add support for accelerometer sensor
    asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS ID.

    Linus Torvalds
     

28 Jul, 2012

1 commit

  • Instead of adding a big blacklist in video_detect.c to set
    ACPI_VIDEO_BACKLIGHT_DMI_VENDOR correctly, let external modules
    promote or demote themselves when they know the generic video
    module won't work.

    Currently drivers where using acpi_video_unregister() directly
    but:
    - That didn't respect any acpi_backlight=[video|vendor] parameter
    provided by the user.
    - Any later call to acpi_video_register() would still re-load the
    generic video module (and some gpu drivers are doing that).

    This patch fix those two issues.

    Signed-off-by: Corentin Chary
    Signed-off-by: Matthew Garrett

    Corentin Chary
     

04 Jun, 2012

1 commit

  • Added acpi_evaluate_hotplug_opt(). All ACPI hotplug handlers must call
    this function when evaluating _OST for hotplug operations. If the
    platform does not support _OST, this function returns AE_NOT_FOUND and
    has no effect on the platform.

    ACPI_HOTPLUG_OST is defined when all relevant ACPI hotplug operations,
    such as CPU, memory and container hotplug, are enabled. This assures
    consistent behavior among the hotplug operations with regarding the
    _OST support. When ACPI_HOTPLUG_OST is not defined, this function is
    a no-op.

    ACPI PCI hotplug is not enhanced to support _OST at this time since it
    is a legacy method being replaced by PCIe native hotplug. _OST support
    for ACPI PCI hotplug may be added in future if necessary.

    Some platforms may require the OS to support _OST in order to support
    ACPI hotplug operations. For example, if a platform has the management
    console where user can request a hotplug operation from, this _OST
    support would be required for the management console to show the result
    of the hotplug request to user.

    Added macro definitions of _OST source events and status codes.
    Also renamed OSC_SB_CPUHP_OST_SUPPORT to OSC_SB_HOTPLUG_OST_SUPPORT
    since this _OSC bit is not specific to CPU hotplug. This bit is
    defined in Table 6-147 of ACPI 5.0 as follows.

    Bits: 3
    Field Name: Insertion / Ejection _OST Processing Support
    Definition: This bit is set if OSPM will evaluate the _OST
    object defined under a device when processing
    insertion and ejection source event codes.

    Signed-off-by: Toshi Kani
    Signed-off-by: Len Brown

    Toshi Kani
     

31 Mar, 2012

1 commit

  • Pull ACPI & Power Management changes from Len Brown:
    - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup
    - cpuidle evolving, more ARM use
    - thermal sub-system evolving, ditto
    - assorted other PM bits

    Fix up conflicts in various cpuidle implementations due to ARM cpuidle
    cleanups (ARM at91 self-refresh and cpu idle code rewritten into
    "standby" in asm conflicting with the consolidation of cpuidle time
    keeping), trivial SH include file context conflict and RCU tracing fixes
    in generic code.

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits)
    ACPI throttling: fix endian bug in acpi_read_throttling_status()
    Disable MCP limit exceeded messages from Intel IPS driver
    ACPI video: Don't start video device until its associated input device has been allocated
    ACPI video: Harden video bus adding.
    ACPI: Add support for exposing BGRT data
    ACPI: export acpi_kobj
    ACPI: Fix logic for removing mappings in 'acpi_unmap'
    CPER failed to handle generic error records with multiple sections
    ACPI: Clean redundant codes in scan.c
    ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed()
    ACPI: consistently use should_use_kmap()
    PNPACPI: Fix device ref leaking in acpi_pnp_match
    ACPI: Fix use-after-free in acpi_map_lsapic
    ACPI: processor_driver: add missing kfree
    ACPI, APEI: Fix incorrect APEI register bit width check and usage
    Update documentation for parameter *notrigger* in einj.txt
    ACPI, APEI, EINJ, new parameter to control trigger action
    ACPI, APEI, EINJ, limit the range of einj_param
    ACPI, APEI, Fix ERST header length check
    cpuidle: power_usage should be declared signed integer
    ...

    Linus Torvalds
     

22 Mar, 2012

1 commit


21 Mar, 2012

1 commit

  • toshiba_acpi needs to execute an AML method within the EC namespace
    to make hotkeys work on some platforms. Provide an interface to
    allow it to easily get a handle to the EC namespace for this purpose.

    Signed-off-by: Seth Forshee
    Signed-off-by: Matthew Garrett

    Seth Forshee
     

14 Mar, 2012

1 commit

  • The ACPI suspend path makes a call to tboot_sleep right before
    it writes the PM1A, PM1B values. We replace the direct call to
    tboot via an registration callback similar to __acpi_register_gsi.

    CC: Len Brown
    Acked-by: Joseph Cihula
    Acked-by: Rafael J. Wysocki
    [v1: Added __attribute__ ((unused))]
    [v2: Introduced a wrapper instead of changing tboot_sleep return values]
    [v3: Added return value AE_CTRL_SKIP for acpi_os_sleep_prepare]
    Signed-off-by: Tang Liang
    [v1: Fix compile issues on IA64 and PPC64]
    [v2: Fix where __acpi_os_prepare_sleep==NULL and did not go in sleep properly]
    Signed-off-by: Konrad Rzeszutek Wilk

    Tang Liang
     

19 Jan, 2012

1 commit

  • This includes initial support for the recently published ACPI 5.0 spec.
    In particular, support for the "hardware-reduced" bit that eliminates
    the dependency on legacy hardware.

    APEI has patches resulting from testing on real hardware.

    Plus other random fixes.

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)
    acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec
    intel_idle: Split up and provide per CPU initialization func
    ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2
    ACPI processor: Remove unneeded cpuidle_unregister_driver call
    intel idle: Make idle driver more robust
    intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle
    ACPI: kernel-parameters.txt : Add intel_idle.max_cstate
    intel_idle: remove redundant local_irq_disable() call
    ACPI processor: Fix error path, also remove sysdev link
    ACPI: processor: fix acpi_get_cpuid for UP processor
    intel_idle: fix API misuse
    ACPI APEI: Convert atomicio routines
    ACPI: Export interfaces for ioremapping/iounmapping ACPI registers
    ACPI: Fix possible alignment issues with GAS 'address' references
    ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)
    ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)
    ACPI: Store SRAT table revision
    ACPI, APEI, Resolve false conflict between ACPI NVS and APEI
    ACPI, Record ACPI NVS regions
    ACPI, APEI, EINJ, Refine the fix of resource conflict
    ...

    Linus Torvalds
     

17 Jan, 2012

1 commit

  • Some firmware will access memory in ACPI NVS region via APEI. That
    is, instructions in APEI ERST/EINJ table will read/write ACPI NVS
    region. The original resource conflict checking in APEI code will
    check memory/ioport accessed by APEI via general resource management
    mechanism. But ACPI NVS region is marked as busy already, so that the
    false resource conflict will prevent APEI ERST/EINJ to work.

    To fix this, this patch record ACPI NVS regions, so that we can avoid
    request resources for memory region inside it.

    Signed-off-by: Huang Ying
    Signed-off-by: Len Brown

    Huang Ying
     

06 Dec, 2011

1 commit

  • If the kernel has requested control of the SHPC native hotplug
    feature for a given root bridge, the acpiphp driver should not try
    to handle that root bridge and it should leave it to shpchp.
    Failing to do so causes problems to happen if shpchp is loaded
    and unloaded before loading acpiphp (ACPI-based hotplug won't work
    in that case anyway).

    To address this issue make find_root_bridges() ignore PCI root
    bridges with SHPC native hotplug enabled and make add_bridge()
    return error code if SHPC native hotplug is enabled for the given
    root bridge. This causes acpiphp to refuse to load if SHPC native
    hotplug is enabled for all root bridges and to refuse binding to
    the root bridges with SHPC native hotplug enabled.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

04 Aug, 2011

1 commit

  • * 'apei-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    ACPI, APEI, EINJ Param support is disabled by default
    APEI GHES: 32-bit buildfix
    ACPI: APEI build fix
    ACPI, APEI, GHES: Add hardware memory error recovery support
    HWPoison: add memory_failure_queue()
    ACPI, APEI, GHES, Error records content based throttle
    ACPI, APEI, GHES, printk support for recoverable error via NMI
    lib, Make gen_pool memory allocator lockless
    lib, Add lock-less NULL terminated single list
    Add Kconfig option ARCH_HAVE_NMI_SAFE_CMPXCHG
    ACPI, APEI, Add WHEA _OSC support
    ACPI, APEI, Add APEI bit support in generic _OSC call
    ACPI, APEI, GHES, Support disable GHES at boot time
    ACPI, APEI, GHES, Prevent GHES to be built as module
    ACPI, APEI, Use apei_exec_run_optional in APEI EINJ and ERST
    ACPI, APEI, Add apei_exec_run_optional
    ACPI, APEI, GHES, Do not ratelimit fatal error printk before panic
    ACPI, APEI, ERST, Fix erst-dbg long record reading issue
    ACPI, APEI, ERST, Prevent erst_dbg from loading if ERST is disabled

    Linus Torvalds