27 Nov, 2013

1 commit

  • * acpica:
    ACPI: Clean up incorrect inclusions of ACPICA headers
    ACPICA: Update version to 20131115.
    ACPICA: Add support to delete all objects attached to the root namespace node.
    ACPICA: Delete all attached data objects during namespace node deletion.
    ACPICA: Resources: Fix loop termination for the get AML length function.
    ACPICA: Tests: Add CHECKSUM_ABORT protection for test utilities.
    ACPICA: Debug output: Do not emit function nesting level for kernel build.

    Rafael J. Wysocki
     

26 Nov, 2013

1 commit


21 Nov, 2013

2 commits


20 Nov, 2013

1 commit

  • The PCI host bridge scan handler installs its own notify handler,
    handle_hotplug_event_root(), by itself. Nevertheless, the ACPI
    hotplug framework also installs the common notify handler,
    acpi_hotplug_notify_cb(), for PCI root bridges. This causes
    acpi_hotplug_notify_cb() to call _OST method with unsupported
    error as hotplug.enabled is not set.

    To address this issue, introduce hotplug.ignore flag, which
    indicates that the scan handler installs its own notify handler by
    itself. The ACPI hotplug framework does not install the common
    notify handler when this flag is set.

    Signed-off-by: Toshi Kani
    [rjw: Changed the name of the new flag]
    Cc: 3.9+ # 3.9+
    Signed-off-by: Rafael J. Wysocki

    Toshi Kani
     

15 Nov, 2013

1 commit

  • Modify struct acpi_dev_node to contain a pointer to struct acpi_device
    associated with the given device object (that is, its ACPI companion
    device) instead of an ACPI handle corresponding to it. Introduce two
    new macros for manipulating that pointer in a CONFIG_ACPI-safe way,
    ACPI_COMPANION() and ACPI_COMPANION_SET(), and rework the
    ACPI_HANDLE() macro to take the above changes into account.
    Drop the ACPI_HANDLE_SET() macro entirely and rework its users to
    use ACPI_COMPANION_SET() instead. For some of them who used to
    pass the result of acpi_get_child() directly to ACPI_HANDLE_SET()
    introduce a helper routine acpi_preset_companion() doing an
    equivalent thing.

    The main motivation for doing this is that there are things
    represented by struct acpi_device objects that don't have valid
    ACPI handles (so called fixed ACPI hardware features, such as
    power and sleep buttons) and we would like to create platform
    device objects for them and "glue" them to their ACPI companions
    in the usual way (which currently is impossible due to the
    lack of valid ACPI handles). However, there are more reasons
    why it may be useful.

    First, struct acpi_device pointers allow of much better type checking
    than void pointers which are ACPI handles, so it should be more
    difficult to write buggy code using modified struct acpi_dev_node
    and the new macros. Second, the change should help to reduce (over
    time) the number of places in which the result of ACPI_HANDLE() is
    passed to acpi_bus_get_device() in order to obtain a pointer to the
    struct acpi_device associated with the given "physical" device,
    because now that pointer is returned by ACPI_COMPANION() directly.
    Finally, the change should make it easier to write generic code that
    will build both for CONFIG_ACPI set and unset without adding explicit
    compiler directives to it.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman
    Tested-by: Mika Westerberg # on Haswell
    Reviewed-by: Mika Westerberg
    Reviewed-by: Aaron Lu # for ATA and SDIO part

    Rafael J. Wysocki
     

14 Nov, 2013

1 commit

  • Pull ACPI and power management updates from Rafael J Wysocki:

    - New power capping framework and the the Intel Running Average Power
    Limit (RAPL) driver using it from Srinivas Pandruvada and Jacob Pan.

    - Addition of the in-kernel switching feature to the arm_big_little
    cpufreq driver from Viresh Kumar and Nicolas Pitre.

    - cpufreq support for iMac G5 from Aaro Koskinen.

    - Baytrail processors support for intel_pstate from Dirk Brandewie.

    - cpufreq support for Midway/ECX-2000 from Mark Langsdorf.

    - ARM vexpress/TC2 cpufreq support from Sudeep KarkadaNagesha.

    - ACPI power management support for the I2C and SPI bus types from Mika
    Westerberg and Lv Zheng.

    - cpufreq core fixes and cleanups from Viresh Kumar, Srivatsa S Bhat,
    Stratos Karafotis, Xiaoguang Chen, Lan Tianyu.

    - cpufreq drivers updates (mostly fixes and cleanups) from Viresh
    Kumar, Aaro Koskinen, Jungseok Lee, Sudeep KarkadaNagesha, Lukasz
    Majewski, Manish Badarkhe, Hans-Christian Egtvedt, Evgeny Kapaev.

    - intel_pstate updates from Dirk Brandewie and Adrian Huang.

    - ACPICA update to version 20130927 includig fixes and cleanups and
    some reduction of divergences between the ACPICA code in the kernel
    and ACPICA upstream in order to improve the automatic ACPICA patch
    generation process. From Bob Moore, Lv Zheng, Tomasz Nowicki, Naresh
    Bhat, Bjorn Helgaas, David E Box.

    - ACPI IPMI driver fixes and cleanups from Lv Zheng.

    - ACPI hotplug fixes and cleanups from Bjorn Helgaas, Toshi Kani, Zhang
    Yanfei, Rafael J Wysocki.

    - Conversion of the ACPI AC driver to the platform bus type and
    multiple driver fixes and cleanups related to ACPI from Zhang Rui.

    - ACPI processor driver fixes and cleanups from Hanjun Guo, Jiang Liu,
    Bartlomiej Zolnierkiewicz, Mathieu Rhéaume, Rafael J Wysocki.

    - Fixes and cleanups and new blacklist entries related to the ACPI
    video support from Aaron Lu, Felipe Contreras, Lennart Poettering,
    Kirill Tkhai.

    - cpuidle core cleanups from Viresh Kumar and Lorenzo Pieralisi.

    - cpuidle drivers fixes and cleanups from Daniel Lezcano, Jingoo Han,
    Bartlomiej Zolnierkiewicz, Prarit Bhargava.

    - devfreq updates from Sachin Kamat, Dan Carpenter, Manish Badarkhe.

    - Operation Performance Points (OPP) core updates from Nishanth Menon.

    - Runtime power management core fix from Rafael J Wysocki and update
    from Ulf Hansson.

    - Hibernation fixes from Aaron Lu and Rafael J Wysocki.

    - Device suspend/resume lockup detection mechanism from Benoit Goby.

    - Removal of unused proc directories created for various ACPI drivers
    from Lan Tianyu.

    - ACPI LPSS driver fix and new device IDs for the ACPI platform scan
    handler from Heikki Krogerus and Jarkko Nikula.

    - New ACPI _OSI blacklist entry for Toshiba NB100 from Levente Kurusa.

    - Assorted fixes and cleanups related to ACPI from Andy Shevchenko, Al
    Stone, Bartlomiej Zolnierkiewicz, Colin Ian King, Dan Carpenter,
    Felipe Contreras, Jianguo Wu, Lan Tianyu, Yinghai Lu, Mathias Krause,
    Liu Chuansheng.

    - Assorted PM fixes and cleanups from Andy Shevchenko, Thierry Reding,
    Jean-Christophe Plagniol-Villard.

    * tag 'pm+acpi-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (386 commits)
    cpufreq: conservative: fix requested_freq reduction issue
    ACPI / hotplug: Consolidate deferred execution of ACPI hotplug routines
    PM / runtime: Use pm_runtime_put_sync() in __device_release_driver()
    ACPI / event: remove unneeded NULL pointer check
    Revert "ACPI / video: Ignore BIOS initial backlight value for HP 250 G1"
    ACPI / video: Quirk initial backlight level 0
    ACPI / video: Fix initial level validity test
    intel_pstate: skip the driver if ACPI has power mgmt option
    PM / hibernate: Avoid overflow in hibernate_preallocate_memory()
    ACPI / hotplug: Do not execute "insert in progress" _OST
    ACPI / hotplug: Carry out PCI root eject directly
    ACPI / hotplug: Merge device hot-removal routines
    ACPI / hotplug: Make acpi_bus_hot_remove_device() internal
    ACPI / hotplug: Simplify device ejection routines
    ACPI / hotplug: Fix handle_root_bridge_removal()
    ACPI / hotplug: Refuse to hot-remove all objects with disabled hotplug
    ACPI / scan: Start matching drivers after trying scan handlers
    ACPI: Remove acpi_pci_slot_init() headers from internal.h
    ACPI / blacklist: fix name of ThinkPad Edge E530
    PowerCap: Fix build error with option -Werror=format-security
    ...

    Conflicts:
    arch/arm/mach-omap2/opp.c
    drivers/Kconfig
    drivers/spi/spi.c

    Linus Torvalds
     

08 Nov, 2013

4 commits

  • * acpi-hotplug:
    ACPI / hotplug: Consolidate deferred execution of ACPI hotplug routines
    ACPI / hotplug: Do not execute "insert in progress" _OST
    ACPI / hotplug: Carry out PCI root eject directly
    ACPI / hotplug: Merge device hot-removal routines
    ACPI / hotplug: Make acpi_bus_hot_remove_device() internal
    ACPI / hotplug: Simplify device ejection routines
    ACPI / hotplug: Fix handle_root_bridge_removal()
    ACPI / hotplug: Refuse to hot-remove all objects with disabled hotplug
    ACPI / scan: Start matching drivers after trying scan handlers
    ACPI: Remove acpi_pci_slot_init() headers from internal.h

    Conflicts:
    include/acpi/acpiosxf.h (with the 'acpica' branch)

    Rafael J. Wysocki
     
  • There are two different interfaces for queuing up work items on the
    ACPI hotplug workqueue, alloc_acpi_hp_work() used by PCI and PCI host
    bridge hotplug code and acpi_os_hotplug_execute() used by the common
    ACPI hotplug code and docking stations. They both are somewhat
    cumbersome to use and work slightly differently.

    The users of alloc_acpi_hp_work() have to submit a work function that
    will extract the necessary data items from a struct acpi_hp_work
    object allocated by alloc_acpi_hp_work() and then will free that
    object, while it would be more straightforward to simply use a work
    function with one more argument and let the interface take care of
    the execution details.

    The users of acpi_os_hotplug_execute() also have to deal with the
    fact that it takes only one argument in addition to the work function
    pointer, although acpi_os_execute_deferred() actually takes care of
    the allocation and freeing of memory, so it would have been able to
    pass more arguments to the work function if it hadn't been
    constrained by the connection with acpi_os_execute().

    Moreover, while alloc_acpi_hp_work() makes GFP_KERNEL memory
    allocations, which is correct, because hotplug work items are
    always queued up from process context, acpi_os_hotplug_execute()
    uses GFP_ATOMIC, as that is needed by acpi_os_execute(). Also,
    acpi_os_execute_deferred() queued up by it waits for the ACPI event
    workqueues to flush before executing the work function, whereas
    alloc_acpi_hp_work() can't do anything similar. That leads to
    somewhat arbitrary differences in behavior between various ACPI
    hotplug code paths and has to be straightened up.

    For this reason, replace both alloc_acpi_hp_work() and
    acpi_os_hotplug_execute() with a single interface,
    acpi_hotplug_execute(), combining their behavior and being more
    friendly to its users than any of the two.

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

    Rafael J. Wysocki
     
  • * acpica: (35 commits)
    ACPICA: Add __init for ACPICA initializers/finalizers.
    ACPICA: Cleanup asmlinkage for ACPICA APIs.
    ACPICA: Update acpidump related header file changes.
    ACPICA: Update compilation environment settings.
    ACPICA: Fix cached object deletion code.
    ACPICA: Remove dead AOPOBJ_INVALID check.
    ACPICA: Cleanup useless memset invocations.
    ACPICA: Fix an ACPI_ALLOCATE_ZEROED() reversal.
    ACPICA: Fix wrong object length returned by acpi_ut_get_simple_object_size().
    ACPICA: Add new statistics interface.
    ACPICA: Update DMAR table definitions.
    ACPICA: Update RSDP table definitions.
    ACPICA: Update namespace dump code.
    ACPICA: Update check for setting the ANOBJ_IS_EXTERNAL flag.
    ACPICA: Update default space handlers.
    ACPICA: Update version to 20130927.
    ACPICA: Update aclinux.h for new OSL override mechanism.
    ACPICA: Add support to allow host OS to redefine individual OSL prototypes.
    ACPICA: Simplify configuration of global ACPI_REDUCED_HARDWARE macro.
    ACPICA: Fix indentation issues for macro invocations.
    ...

    Rafael J. Wysocki
     
  • * acpi-processor:
    ACPI / processor: Do not request ACPI cpufreq module directly

    Rafael J. Wysocki
     

07 Nov, 2013

2 commits


31 Oct, 2013

16 commits

  • This patch adds __init to the ACPICA documented initializers:
    acpi_initialize_tables()
    acpi_initialize_subsystem()
    acpi_load_tables()
    acpi_enable_subsystem()
    acpi_initialize_objects()
    and to acpi_reallocate_root_table(), acpi_find_root_pointer() which
    are also meant to be called only during initialization.

    This patch adds __init to the ACPICA documented finalizer:
    acpi_terminate()
    as this finalizer is only called in __init function now.

    This change helps to reduce source code differences between
    ACPICA upstream and Linux.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Add an asmlinkage wrapper around acpi_enter_sleep_state() to prevent
    an empty stub from being called by assmebly code for ACPI_REDUCED_HARDWARE
    set.

    As arch/x86/kernel/acpi/wakeup_xx.S is only compiled when CONFIG_ACPI=y
    and there are no users of ACPI_HARDWARE_REDUCED, currently this is in
    fact not a real issue, but a cleanup to reduce source code differences
    between Linux and ACPICA upstream.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch updates header files used by acpidump to reduce the
    source code differences between Linux and ACPICA upstream.

    This patch does not affect the generation of the Linux kernel binary.

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

    Lv Zheng
     
  • This patch updates architecture specific environment settings to reduce
    source differences between Linux and ACPICA upstream.

    This patch does not affect the generation of the Linux kernel binary.

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

    Lv Zheng
     
  • This patch ports new counters and statistics interface, already
    implemented in ACPICA upstream, to Linux. That helps to reduce
    source code differences between Linux and ACPICA upstream.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch updates DMAR table header definitions as such enhancement
    has been made in ACPICA upstream already. It ports that change to
    the Linux source to reduce source code differences between Linux and
    ACPICA upstream.

    Build test done on x86-64 machine with the following configs enabled:
    CONFIG_DMAR_TABLE
    CONFIG_IRQ_REMAP
    CONFIG_INTEL_IOMMU

    This patch does not affect the generation of the Linux kernel binary.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch updates RSDP table header definitions as such enhancement
    has been made in ACPICA upstream already. It ports that change to
    the Linux source to reduce source code differences between Linux and
    ACPICA upstream.

    This patch does not affect the generation of the Linux kernel binary.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Version 20130927.

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

    Bob Moore
     
  • The new ACPICA OSL override mechanism is used to solve these issues
    for the Linux OSL:
    1. Linux can implement OSL using a macro.
    2. Linux can implement OSL using an inlined function.
    3. Linux can leave OSL not implemented for __KERNEL__ undefined code
    fragments.
    4. Linux can add sparse declarators (__iomem) to OSL.
    5. Linux can add memory tuning declarators (__init/__exit) to OSL.
    This patch also moves Linux specific OSL to aclinux.h which has not been
    maintained in the ACPICA code base. Lv Zheng.

    Known issue:

    From ACPICA's perspective, actypes.h should be included after inclusion
    of acenv.h. But currently in Linux, aclinux.h included by acenv.h has
    included actypes.h to find ACPICA types for inline functions. This is a
    known and existing issue and currently there is no real problem caused
    by this issue for Linux kernel build. Thus this issue is not covered by
    this cleanup commit.

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

    Lv Zheng
     
  • This change enables the host OS to redefine OSL prototypes found in the
    acpiosxf.h file. This allows the host OS to implement OSL interfaces with
    a macro or inlined function. Further, it allows the host OS to add any
    additional required modifiers such as __iomem, __init, __exit, etc.,
    as necessary on a per-interface basis. Enables maximum flexibility
    for the OSL interfaces. Lv Zheng.

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

    Lv Zheng
     
  • Surround definition of this with a #ifndef so that the kernel
    can define it elsewhere if desired.

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

    Bob Moore
     
  • During the automatic translation of the upstream ACPICA source code
    into Linux kernel source code some extra white spaces are added by
    the "indent" program at the beginning of each line which is an
    invocation of a macro and there is no ";" at the end of the line.

    For this reason, a new mode has been added to the translation scripts
    to remove the extra spaces inserted before invoking such macros and add
    an empty line between the invocations of such macros (like the other
    function declarations). This new mode is executed after executing
    "indent" during the Linux release process. Consequently, some
    existing ACPICA source code in the Linux kernel tree needs to be
    adjusted to allow the new scripts to work correctly.

    The affected macros and files are:
    1. ACPI_HW_DEPENDENT_RETURN (acpixf.h/acdebug.h/acevents.h):
    This macro is used as a wrapper for hardware dependent APIs to offer
    a stub when the reduced hardware is configured during compilation.
    2. ACPI_EXPORT_SYMBOL (utglobal.c):
    This macro is used by Linux to export symbols to be found by Linux
    modules. All such invocations are well formatted except those
    exported as global variables.

    This can help to reduce the source code differences between Linux
    and upstream ACPICA, and also help to automate the release process.
    No functional or binary generation changes should result from it.
    Lv Zheng.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • The following build error:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    CC arch/x86/kernel/setup.o
    In file included from include/acpi/acpi.h:64:0,
    from include/linux/iscsi_ibft.h:24,
    from arch/x86/kernel/setup.c:43:
    include/acpi/acpixf.h:543:1: error: expected ',' or ';' before '{' token
    include/acpi/acpixf.h:540:1: warning: 'acpi_error' declared 'static' but never defined [-Wunused-function]
    make[2]: *** [arch/x86/kernel/setup.o] Error 1
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    can be triggerred by the following stub function (if implemented):
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    static inline void ACPI_INTERNAL_VAR_XFACE
    acpi_error(const char *module_name,
    u32 line_number, const char *format, ...) ACPI_PRINTF_LIKE(3)
    {
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    This patch changes the position of ACPI_PRINTF_LIKE(x) to follow the
    style of __printf(x, x+1) used in Linux to prevent such issues from
    happening. Lv Zheng.

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

    Lv Zheng
     
  • This changes can reduce source code differences between Linux and ACPICA
    upstream to help improving the release automation.

    The side effect of applying this patch in Linux is:
    1. Some ACPICA initialization/termination APIs are no longer exported in
    Linux, these include:
    acpi_load_tables
    acpi_initialize_subsystem
    acpi_enable_subsystem
    acpi_initialize_objects
    acpi_terminate
    2. This patch does not affect the following APIs as they are currently not
    marked with ACPI_EXPORT_SYMBOL in Linux:
    acpi_reallocate_root_table
    acpi_initialize_tables
    Such functions should not be exported as they are internal to ACPI
    subsystem in Linux, and will only be invoked inside of ACPI subsystem's
    initialization routines marked with __init and termination routines marked
    with __exit. While on other OSPMs, such functions may still need to be
    exported.

    Thus this patch adds the configurability for ACPICA, so that it leaves
    OSPMs to determine if the __init/__exit marked functions should be exported
    or not. Lv Zheng.

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

    Lv Zheng
     
  • Add a comment to clarify reason for using ACPI_FREE_BUFFER directly
    instead of ACPI_FREE.

    In addition to that, change one instance in which ACPI_FREE_BUFFER()
    should be used instead of ACPI_FREE().

    [rjw: Subject and changelog]
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • For Linux, there are no functional changes/binary generation differences
    introduced by this patch.

    This change adds a new macro to all files that contain external ACPICA
    interfaces. It can be detected and used by the host (via the host-specific
    header) for any special processing required for such modules. Lv Zheng.

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

    Lv Zheng
     

30 Oct, 2013

5 commits

  • The ACPI spec requires the reset register width to be 8, so we
    now hardcode it and ignore the FADT value. This provides/maintains
    compatibility with other ACPI implementations that have allowed
    BIOS code with bad register width values to go unnoticed.
    Matthew Garett, Bob Moore, Lv Zheng.

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

    Bob Moore
     
  • Sort the method names in acnames.h.

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

    Bob Moore
     
  • In the common case, the ACPI_ALLOCATE and related macros now resolve
    directly to their respective acpi_os* OSL interfaces. Two options:
    1) The ACPI_ALLOCATE_ZEROED macro defaults to a simple local implementation
    by default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define.
    2) For ACPI execution simulation environment (AcpiExec) which is not
    shipped with the Linux kernel, the macros can optionally be resolved to
    the local interfaces that track each allocation (used to immediately
    detect memory leaks).

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

    Lv Zheng
     
  • This fix repairs a version of a macro that is used for the hardware
    reduced case only. It adds a return statement to the macro definition
    so that the translation into the Linux kernel source will not completely
    delete the second line of the macro because it thinks that it is an empty
    block. It actually clarifies the use of the macro anyway.

    Reported-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Function acpi_processor_load_module() used by the ACPI processor
    driver can only really work if the acpi-cpufreq module is available
    when acpi_processor_start() is executed which usually is not the case
    for systems loading the processor driver module from an initramfs.

    Moreover, that used to be a hackish workaround for module autoloading
    issues, but udev loads acpi-cpufreq just fine nowadays, so that
    function isn't really necessary any more. For this reason, drop
    acpi_processor_load_module() entirely.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

28 Oct, 2013

3 commits

  • * acpi-pm:
    spi: attach/detach SPI device to the ACPI power domain
    i2c: attach/detach I2C client device to the ACPI power domain
    ACPI / PM: allow child devices to ignore parent power state

    Rafael J. Wysocki
     
  • * acpica:
    MAINTAINERS / ACPICA: Add ACPICA information to MAINTAINERS
    ACPICA: Update version to 20130823.
    ACPICA: SCI Handlers: Update handler interface, eliminate unnecessary argument.
    ACPICA: Cleanup exception codes.
    ACPICA: Tables: Cleanup RSDP signature codes.
    ACPICA: Tables: Cleanup table checksum verification code.
    ACPICA: Debugger: Add new command to display full namespace pathnames.
    ACPICA: Operation region support: Never free the handler "context" pointer.
    ACPICA: Add support for host-installed SCI handlers.
    ACPICA: Validate start object for acpi_walk_namespace.
    ACPICA: Debugger: Prevent possible command line buffer overflow, kernel behavior is not affected.
    ACPICA: Linux-specific header: enable "aarch64" 64-bit build.
    ACPICA: Debug output: small formatting update, no functional change.
    ACPICA: acpi_read: On error, do not modify the return value target location.
    ACPICA: Improve error message for "too many parent prefixes" condition.

    Rafael J. Wysocki
     
  • * acpi-processor:
    ACPI / processor: fixed a brace coding style issue
    ACPI / processor: Remove outdated comments
    ACPI / processor: remove unnecessary if (!pr) check
    ACPI / processor: remove some dead code in acpi_processor_get_info()
    x86 / ACPI: simplify _acpi_map_lsapic()
    ACPI / processor: use apic_id and remove duplicated _MAT evaluation
    ACPI / processor: Introduce apic_id in struct processor to save parsed APIC id

    Rafael J. Wysocki
     

22 Oct, 2013

1 commit

  • We have a lot of confusing names of functions and data structures in
    amongs the the error reporting code. In particular the "apei" prefix
    has been applied to many objects that are not part of APEI. Since we
    will be using these routines for extended error log reporting it will
    be clearer if we fix up the names first.

    Signed-off-by: Chen, Gong
    Acked-by: Borislav Petkov
    Reviewed-by: Mauro Carvalho Chehab
    Signed-off-by: Tony Luck

    Chen, Gong
     

17 Oct, 2013

1 commit

  • Two functions defined in device_pm.c, acpi_dev_pm_add_dependent()
    and acpi_dev_pm_remove_dependent(), have no callers and may be
    dropped, so drop them.

    Moreover, they are the only functions adding entries to and removing
    entries from the power_dependent list in struct acpi_device, so drop
    that list too.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

11 Oct, 2013

1 commit

  • Some serial buses like I2C and SPI don't require that the parent device is
    in D0 before any of its children transitions to D0, but instead the parent
    device can control its own power independently from the children.

    This does not follow the ACPI specification as it requires the parent to be
    powered on before its children. However, Windows seems to ignore this
    requirement so I think we can do the same in Linux.

    Implement this by adding a new power flag 'ignore_parent' to struct
    acpi_device. If this flag is set the ACPI core ignores checking of the
    parent device power state when the device is powered on/off.

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

    Mika Westerberg