02 Oct, 2016

1 commit


29 Sep, 2016

1 commit


31 Aug, 2016

1 commit


25 Jul, 2016

1 commit

  • * acpi-bus:
    ACPI / bus: Support for platform initiated graceful shutdown
    ACPI / bus: Correct the comments about acpi_subsystem_init()
    ACPI / bus: Use acpi_handle_debug() in acpi_print_osc_error()

    * acpi-pci:
    ACPI / PCI: make pci_slot explicitly non-modular
    ACPI / PCI: pci_slot: Use generic pr_debug utility
    ACPI / PCI: pci_slot: Use more common logging style

    * acpica:
    ACPICA: Linux: Enable ACPI_MUTEX_DEBUG for Linux kernel

    * acpi-doc:
    ACPI / debugger: Add AML debugger documentation
    ACPI: Add documentation describing ACPICA release automation

    Rafael J. Wysocki
     

09 Jul, 2016

5 commits


19 Apr, 2016

1 commit

  • This patch converts the initrd table override mechanism to the table
    upgrade mechanism by restricting its usage to the tables released with
    compatibility and more recent revision.

    This use case has been encouraged by the ACPI specification:

    1. OEMID:
    An OEM-supplied string that identifies the OEM.

    2. OEM Table ID:
    An OEM-supplied string that the OEM uses to identify the particular data
    table. This field is particularly useful when defining a definition
    block to distinguish definition block functions. OEM assigns each
    dissimilar table a new OEM Table Id.

    3. OEM Revision:
    An OEM-supplied revision number. Larger numbers are assumed to be newer
    revisions.

    For OEMs, good practices will ensure consistency when assigning OEMID and
    OEM Table ID fields in any table. The intent of these fields is to allow
    for a binary control system that support services can use. Because many
    support function can be automated, it is useful when a tool can
    programatically determine which table release is a compatible and more
    recent revision of a prior table on the same OEMID and OEM Table ID.

    The facility can now be used by the vendors to upgrade wrong tables for bug
    fixing purpose, thus lockdep disabling taint is not suitable for it and it
    should be a default 'y' option to implement the spec encouraged use case.

    Note that, by implementing table upgrade inside of ACPICA itself, it is
    possible to remove acpi_table_initrd_override() and tables can be upgraded
    by acpi_install_table() automatically. Though current ACPICA impelentation
    hasn't implemented this, this patched changes the table flag setting timing
    to allow this to be implemented in ACPICA without changing the code here.

    Documentation of initrd override mechanism is upgraded accordingly.

    Original-by: Octavian Purdila
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

25 Oct, 2015

1 commit

  • Although I2C mux devices are easily enumerated using ACPI (_HID/_CID or
    device property compatible string match), enumerating I2C client devices
    connected through an I2C mux needs a little extra work.

    This change implements a method for describing an I2C device hierarchy that
    includes mux devices by using an ACPI Device() for each mux channel along
    with an _ADR to set the channel number for the device. See
    Documentation/acpi/i2c-muxes.txt for a simple example.

    To make this work the ismt, i801, and designware pci/platform devs now
    share an ACPI companion with their I2C adapter dev similar to how it's done
    in OF. This is done on the assumption that power management functions will
    not be called directly on the I2C dev that is sharing the ACPI node.

    Acked-by: Mika Westerberg
    Tested-by: Mika Westerberg
    Signed-off-by: Dustin Byford
    Signed-off-by: Wolfram Sang

    Dustin Byford
     

24 Oct, 2015

1 commit

  • There is at least one board on the market, i.e. Intel Galileo Gen2, that uses
    _ADR to distinguish the devices under one actual device. Due to this we have to
    improve the quirk in the MFD core to handle that board.

    Acked-by: Rafael J. Wysocki
    Acked-by: Lee Jones
    Signed-off-by: Andy Shevchenko
    Signed-off-by: Wolfram Sang

    Andy Shevchenko
     

07 Aug, 2015

1 commit


19 Jun, 2015

2 commits


04 May, 2015

1 commit


01 May, 2015

1 commit


15 Apr, 2015

1 commit

  • Pull power management and ACPI updates from Rafael Wysocki:
    "These are mostly fixes and cleanups all over, although there are a few
    items that sort of fall into the new feature category.

    First off, we have new callbacks for PM domains that should help us to
    handle some issues related to device initialization in a better way.

    There also is some consolidation in the unified device properties API
    area allowing us to use that inferface for accessing data coming from
    platform initialization code in addition to firmware-provided data.

    We have some new device/CPU IDs in a few drivers, support for new
    chips and a new cpufreq driver too.

    Specifics:

    - Generic PM domains support update including new PM domain callbacks
    to handle device initialization better (Russell King, Rafael J
    Wysocki, Kevin Hilman)

    - Unified device properties API update including a new mechanism for
    accessing data provided by platform initialization code (Rafael J
    Wysocki, Adrian Hunter)

    - ARM cpuidle update including ARM32/ARM64 handling consolidation
    (Daniel Lezcano)

    - intel_idle update including support for the Silvermont Core in the
    Baytrail SOC and for the Airmont Core in the Cherrytrail and
    Braswell SOCs (Len Brown, Mathias Krause)

    - New cpufreq driver for Hisilicon ACPU (Leo Yan)

    - intel_pstate update including support for the Knights Landing chip
    (Dasaratharaman Chandramouli, Kristen Carlson Accardi)

    - QorIQ cpufreq driver update (Tang Yuantian, Arnd Bergmann)

    - powernv cpufreq driver update (Shilpasri G Bhat)

    - devfreq update including Tegra support changes (Tomeu Vizoso,
    MyungJoo Ham, Chanwoo Choi)

    - powercap RAPL (Running-Average Power Limit) driver update including
    support for Intel Broadwell server chips (Jacob Pan, Mathias Krause)

    - ACPI device enumeration update related to the handling of the
    special PRP0001 device ID allowing DT-style 'compatible' property
    to be used for ACPI device identification (Rafael J Wysocki)

    - ACPI EC driver update including limited _DEP support (Lan Tianyu,
    Lv Zheng)

    - ACPI backlight driver update including a new mechanism to allow
    native backlight handling to be forced on non-Windows 8 systems and
    a new quirk for Lenovo Ideapad Z570 (Aaron Lu, Hans de Goede)

    - New Windows Vista compatibility quirk for Sony VGN-SR19XN (Chen Yu)

    - Assorted ACPI fixes and cleanups (Aaron Lu, Martin Kepplinger,
    Masanari Iida, Mika Westerberg, Nan Li, Rafael J Wysocki)

    - Fixes related to suspend-to-idle for the iTCO watchdog driver and
    the ACPI core system suspend/resume code (Rafael J Wysocki, Chen Yu)

    - PM tracing support for the suspend phase of system suspend/resume
    transitions (Zhonghui Fu)

    - Configurable delay for the system suspend/resume testing facility
    (Brian Norris)

    - PNP subsystem cleanups (Peter Huewe, Rafael J Wysocki)"

    * tag 'pm+acpi-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (74 commits)
    ACPI / scan: Fix NULL pointer dereference in acpi_companion_match()
    ACPI / scan: Rework modalias creation when "compatible" is present
    intel_idle: mark cpu id array as __initconst
    powercap / RAPL: mark rapl_ids array as __initconst
    powercap / RAPL: add ID for Broadwell server
    intel_pstate: Knights Landing support
    intel_pstate: remove MSR test
    cpufreq: fix qoriq uniprocessor build
    ACPI / scan: Take the PRP0001 position in the list of IDs into account
    ACPI / scan: Simplify acpi_match_device()
    ACPI / scan: Generalize of_compatible matching
    device property: Introduce firmware node type for platform data
    device property: Make it possible to use secondary firmware nodes
    PM / watchdog: iTCO: stop watchdog during system suspend
    cpufreq: hisilicon: add acpu driver
    ACPI / EC: Call acpi_walk_dep_device_list() after installing EC opregion handler
    cpufreq: powernv: Report cpu frequency throttling
    intel_idle: Add support for the Airmont Core in the Cherrytrail and Braswell SOCs
    intel_idle: Update support for Silvermont Core in Baytrail SOC
    PM / devfreq: tegra: Register governor on module init
    ...

    Linus Torvalds
     

14 Apr, 2015

1 commit

  • Pull x86 RAS changes from Ingo Molnar:
    "The main changes in this cycle were:

    - Simplify the CMCI storm logic on Intel CPUs after yet another
    report about a race in the code (Borislav Petkov)

    - Enable the MCE threshold irq on AMD CPUs by default (Aravind
    Gopalakrishnan)

    - Add AMD-specific MCE-severity grading function. Further error
    recovery actions will be based on its output (Aravind Gopalakrishnan)

    - Documentation updates (Borislav Petkov)

    - ... assorted fixes and cleanups"

    * 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce/severity: Fix warning about indented braces
    x86/mce: Define mce_severity function pointer
    x86/mce: Add an AMD severities-grading function
    x86/mce: Reindent __mcheck_cpu_apply_quirks() properly
    x86/mce: Use safe MSR accesses for AMD quirk
    x86/MCE/AMD: Enable thresholding interrupts by default if supported
    x86/MCE: Make mce_panic() fatal machine check msg in the same pattern
    x86/MCE/intel: Cleanup CMCI storm logic
    Documentation/acpi/einj: Correct and streamline text
    x86/MCE/AMD: Drop bogus const modifier from AMD's bank4_names()

    Linus Torvalds
     

18 Mar, 2015

1 commit


19 Feb, 2015

1 commit

  • Streamline and simplify formulations, improve formatting and extend the
    injection example in the error injection write up for users which we
    carry in Documentation/.

    Add a paragraph about checking for EINJ support and expand the ACPI5.0
    memory errors section, as requested by Tony.

    Acked-by: Tony Luck
    Link: http://lkml.kernel.org/r/1422553845-30717-1-git-send-email-bp@alien8.de
    Signed-off-by: Borislav Petkov

    Borislav Petkov
     

22 Jan, 2015

1 commit


05 Nov, 2014

2 commits

  • Document the previously introduced method that can be used by device
    drivers to provide the GPIO subsystem with mappings between GPIO names
    (connection IDs) and GpioIo()/GpioInt() resources in _CRS.

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

    Rafael J. Wysocki
     
  • With release of ACPI 5.1 and _DSD method we can finally name GPIOs (and
    other things as well) returned by _CRS. Previously we were only able to
    use integer index to find the corresponding GPIO, which is pretty error
    prone if the order changes.

    With _DSD we can now query GPIOs using name instead of an integer index,
    like the below example shows:

    // Bluetooth device with reset and shutdown GPIOs
    Device (BTH)
    {
    Name (_HID, ...)

    Name (_CRS, ResourceTemplate ()
    {
    GpioIo (Exclusive, PullUp, 0, 0, IoRestrictionInputOnly,
    "\\_SB.GPO0", 0, ResourceConsumer) {15}
    GpioIo (Exclusive, PullUp, 0, 0, IoRestrictionInputOnly,
    "\\_SB.GPO0", 0, ResourceConsumer) {27, 31}
    })

    Name (_DSD, Package ()
    {
    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
    Package ()
    {
    Package () {"reset-gpio", Package() {^BTH, 1, 1, 0 }},
    Package () {"shutdown-gpio", Package() {^BTH, 0, 0, 0 }},
    }
    })
    }

    The format of the supported GPIO property is:

    Package () { "name", Package () { ref, index, pin, active_low }}

    ref - The device that has _CRS containing GpioIo()/GpioInt() resources,
    typically this is the device itself (BTH in our case).
    index - Index of the GpioIo()/GpioInt() resource in _CRS starting from zero.
    pin - Pin in the GpioIo()/GpioInt() resource. Typically this is zero.
    active_low - If 1 the GPIO is marked as active_low.

    Since ACPI GpioIo() resource does not have field saying whether it is
    active low or high, the "active_low" argument can be used here. Setting
    it to 1 marks the GPIO as active low.

    In our Bluetooth example the "reset-gpio" refers to the second GpioIo()
    resource, second pin in that resource with the GPIO number of 31.

    This patch implements necessary support to gpiolib for extracting GPIOs
    using _DSD device properties.

    Signed-off-by: Mika Westerberg
    Acked-by: Linus Walleij
    Acked-by: Grant Likely
    Signed-off-by: Rafael J. Wysocki

    Mika Westerberg
     

26 Sep, 2014

1 commit

  • If an MFD device is backed by ACPI namespace, we should allow subdevice
    drivers to access their corresponding ACPI companion devices through normal
    means (e.g using ACPI_COMPANION()).

    This patch adds such support to the MFD core. If the MFD parent device
    does not specify any ACPI _HID/_CID for the child device, the child
    device will share the parent ACPI companion device. Otherwise the child
    device will be assigned with the corresponding ACPI companion, if found
    in the namespace below the parent.

    Signed-off-by: Mika Westerberg
    Reviewed-by: Darren Hart
    Signed-off-by: Lee Jones

    Mika Westerberg
     

12 Jul, 2014

1 commit

  • As of:

    4845934 ACPI / scan: use platform bus type by default for _HID enumeration

    ACPI uses the platform bus by default, changing the opt-in to an opt-out
    policy, eliminating the acpi_platform_device_ids table and replacing it
    with forbidden_id_list[].

    Remove the qualifying paragraph from the acpi/enumeration documentation
    as it no longer applies.

    Reported-by: Max Eliaser
    Signed-off-by: Darren Hart
    Signed-off-by: Rafael J. Wysocki

    Darren Hart
     

23 May, 2014

1 commit

  • Commit fd8e198cfcaa ("Documentation: gpiolib: document new interface")
    moved Documentation/gpio.txt to Documentation/gpio/gpio-legacy.txt and added
    new documents for descriptor-based interface so fix the the location here to
    point Documentation/gpio/ since that what commit ccb6fbb99020
    ("Documentation / ACPI: update to GPIO descriptor API") was looking for.

    Signed-off-by: Jarkko Nikula
    Acked-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Jarkko Nikula
     

25 Jan, 2014

1 commit

  • Pull ACPI and power management updates from Rafael Wysocki:
    "As far as the number of commits goes, the top spot belongs to ACPI
    this time with cpufreq in the second position and a handful of PM
    core, PNP and cpuidle updates. They are fixes and cleanups mostly, as
    usual, with a couple of new features in the mix.

    The most visible change is probably that we will create struct
    acpi_device objects (visible in sysfs) for all devices represented in
    the ACPI tables regardless of their status and there will be a new
    sysfs attribute under those objects allowing user space to check that
    status via _STA.

    Consequently, ACPI device eject or generally hot-removal will not
    delete those objects, unless the table containing the corresponding
    namespace nodes is unloaded, which is extremely rare. Also ACPI
    container hotplug will be handled quite a bit differently and cpufreq
    will support CPU boost ("turbo") generically and not only in the
    acpi-cpufreq driver.

    Specifics:

    - ACPI core changes to make it create a struct acpi_device object for
    every device represented in the ACPI tables during all namespace
    scans regardless of the current status of that device. In
    accordance with this, ACPI hotplug operations will not delete those
    objects, unless the underlying ACPI tables go away.

    - On top of the above, new sysfs attribute for ACPI device objects
    allowing user space to check device status by triggering the
    execution of _STA for its ACPI object. From Srinivas Pandruvada.

    - ACPI core hotplug changes reducing code duplication, integrating
    the PCI root hotplug with the core and reworking container hotplug.

    - ACPI core simplifications making it use ACPI_COMPANION() in the
    code "glueing" ACPI device objects to "physical" devices.

    - ACPICA update to upstream version 20131218. This adds support for
    the DBG2 and PCCT tables to ACPICA, fixes some bugs and improves
    debug facilities. From Bob Moore, Lv Zheng and Betty Dall.

    - Init code change to carry out the early ACPI initialization
    earlier. That should allow us to use ACPI during the timekeeping
    initialization and possibly to simplify the EFI initialization too.
    From Chun-Yi Lee.

    - Clenups of the inclusions of ACPI headers in many places all over
    from Lv Zheng and Rashika Kheria (work in progress).

    - New helper for ACPI _DSM execution and rework of the code in
    drivers that uses _DSM to execute it via the new helper. From
    Jiang Liu.

    - New Win8 OSI blacklist entries from Takashi Iwai.

    - Assorted ACPI fixes and cleanups from Al Stone, Emil Goode, Hanjun
    Guo, Lan Tianyu, Masanari Iida, Oliver Neukum, Prarit Bhargava,
    Rashika Kheria, Tang Chen, Zhang Rui.

    - intel_pstate driver updates, including proper Baytrail support,
    from Dirk Brandewie and intel_pstate documentation from Ramkumar
    Ramachandra.

    - Generic CPU boost ("turbo") support for cpufreq from Lukasz
    Majewski.

    - powernow-k6 cpufreq driver fixes from Mikulas Patocka.

    - cpufreq core fixes and cleanups from Viresh Kumar, Jane Li, Mark
    Brown.

    - Assorted cpufreq drivers fixes and cleanups from Anson Huang, John
    Tobias, Paul Bolle, Paul Walmsley, Sachin Kamat, Shawn Guo, Viresh
    Kumar.

    - cpuidle cleanups from Bartlomiej Zolnierkiewicz.

    - Support for hibernation APM events from Bin Shi.

    - Hibernation fix to avoid bringing up nonboot CPUs with ACPI EC
    disabled during thaw transitions from Bjørn Mork.

    - PM core fixes and cleanups from Ben Dooks, Leonardo Potenza, Ulf
    Hansson.

    - PNP subsystem fixes and cleanups from Dmitry Torokhov, Levente
    Kurusa, Rashika Kheria.

    - New tool for profiling system suspend from Todd E Brandt and a
    cpupower tool cleanup from One Thousand Gnomes"

    * tag 'pm+acpi-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (153 commits)
    thermal: exynos: boost: Automatic enable/disable of BOOST feature (at Exynos4412)
    cpufreq: exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ
    Documentation: cpufreq / boost: Update BOOST documentation
    cpufreq: exynos: Extend Exynos cpufreq driver to support boost
    cpufreq / boost: Kconfig: Support for software-managed BOOST
    acpi-cpufreq: Adjust the code to use the common boost attribute
    cpufreq: Add boost frequency support in core
    intel_pstate: Add trace point to report internal state.
    cpufreq: introduce cpufreq_generic_get() routine
    ARM: SA1100: Create dummy clk_get_rate() to avoid build failures
    cpufreq: stats: create sysfs entries when cpufreq_stats is a module
    cpufreq: stats: free table and remove sysfs entry in a single routine
    cpufreq: stats: remove hotplug notifiers
    cpufreq: stats: handle cpufreq_unregister_driver() and suspend/resume properly
    cpufreq: speedstep: remove unused speedstep_get_state
    platform: introduce OF style 'modalias' support for platform bus
    PM / tools: new tool for suspend/resume performance optimization
    ACPI: fix module autoloading for ACPI enumerated devices
    ACPI: add module autoloading support for ACPI enumerated devices
    ACPI: fix create_modalias() return value handling
    ...

    Linus Torvalds
     

22 Jan, 2014

1 commit

  • Pull GPIO tree bulk changes from Linus Walleij:
    "A big set this merge window, as we have much going on in this
    subsystem. The changes to other subsystems (notably a slew of ARM
    machines as I am doing away with their custom APIs) have all been
    ACKed to the extent possible.

    Major changes this time:

    - Some core improvements and cleanups to the new GPIO descriptor API.
    This seems to be working now so we can start the exodus to this
    API, moving gradually away from the global GPIO numberspace.

    - Incremental improvements to the ACPI GPIO core, and move the few
    GPIO ACPI clients we have to the GPIO descriptor API right *now*
    before we go any further. We actually managed to contain this
    *before* we started to litter the kernel with yet another hackish
    global numberspace for the ACPI GPIOs, which is a big win.

    - The RFkill GPIO driver and all platforms using it have been
    migrated to use the GPIO descriptors rather than fixed number
    assignments. Tegra machine has been migrated as part of this.

    - New drivers for MOXA ART, Xtensa GPIO32 and SMSC SCH311x. Those
    should be really good examples of how I expect a nice GPIO driver
    to look these days.

    - Do away with custom GPIO implementations on a major part of the ARM
    machines: ks8695, lpc32xx, mv78xx0. Make a first step towards the
    same in the horribly convoluted Samsung S3C include forest. We
    expect to continue to clean this up as we move forward.

    - Flag GPIO lines used for IRQ on adnp, bcm-kona, em, intel-mid and
    lynxpoint.

    This makes the GPIOlib core aware that a certain GPIO line is used
    for IRQs and can then enforce some semantics such as disallowing a
    GPIO line marked as in use for IRQ to be switched to output mode.

    - Drop all use of irq_set_chip_and_handler_name(). The name provided
    in these cases were just unhelpful tags like "mux" or "demux".

    - Extend the MCP23s08 driver to handle interrupts.

    - Minor incremental improvements for rcar, lynxpoint, em 74x164 and
    msm drivers.

    - Some non-urgent bug fixes here and there, duplicate #includes and
    that usual kind of cleanups"

    Fix up broken Kconfig file manually to make this all compile.

    * tag 'gpio-v3.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (71 commits)
    gpio: mcp23s08: fix casting caused build warning
    gpio: mcp23s08: depend on OF_GPIO
    gpio: mcp23s08: Add irq functionality for i2c chips
    ARM: S5P[v210|c100|64x0]: Fix build error
    gpio: pxa: clamp gpio get value to [0,1]
    ARM: s3c24xx: explicit dependency on
    ARM: S3C[24|64]xx: move includes back under scope
    Documentation / ACPI: update to GPIO descriptor API
    gpio / ACPI: get rid of acpi_gpio.h
    gpio / ACPI: register to ACPI events automatically
    mmc: sdhci-acpi: convert to use GPIO descriptor API
    ARM: s3c24xx: fix build error
    gpio: f7188x: set can_sleep attribute
    gpio: samsung: Update documentation
    gpio: samsung: Remove hardware.h inclusion
    gpio: xtensa: depend on HAVE_XTENSA_GPIO32
    gpio: clps711x: Enable driver compilation with COMPILE_TEST
    gpio: clps711x: Use of_match_ptr()
    net: rfkill: gpio: convert to descriptor-based GPIO interface
    leds: s3c24xx: Fix build failure
    ...

    Linus Torvalds
     

08 Jan, 2014

1 commit


18 Dec, 2013

1 commit

  • When I added support for ACPI5 I made the assumption that
    injected processor errors would just need to know the APICID,
    memory errors just the address and mask, and PCIe errors just the
    segment/bus/device/function. So I had the code check the type of injection
    and multiplex the "param1" value appropriately.

    This was not a good assumption :-(

    There are injection scenarios where we need to specify more than one of
    these items. E.g. injecting a cache error we need to specify an APICID
    of the cpu that owns the cache, and also an address (so that we can trip
    the error by accessing the address).

    Add a "flags" file to give the user direct access to specify which items
    are valid in the ACPI SET_ERROR_TYPE_WITH_ADDRESS structure. Also add
    new files param3 and param4 to hold all these values.

    For backwards compatability with old injection scripts we maintain the
    old behaviour if flags remains set at zero (or is reset to 0).

    Acked-by: Naveen N. Rao
    Signed-off-by: Tony Luck

    Luck, Tony
     

23 Nov, 2013

1 commit

  • Modify the ACPI namespace scanning code to register a struct
    acpi_device object for every namespace node representing a device,
    processor and so on, even if the device represented by that namespace
    node is reported to be not present and not functional by _STA.

    There are multiple reasons to do that. First of all, it avoids
    quite a lot of overhead when struct acpi_device objects are
    deleted every time acpi_bus_trim() is run and then added again
    by a subsequent acpi_bus_scan() for the same scope, although the
    namespace objects they correspond to stay in memory all the time
    (which always is the case on a vast majority of systems).

    Second, it will allow user space to see that there are namespace
    nodes representing devices that are not present at the moment and may
    be added to the system. It will also allow user space to evaluate
    _SUN for those nodes to check what physical slots the "missing"
    devices may be put into and it will make sense to add a sysfs
    attribute for _STA evaluation after this change (that will be
    useful for thermal management on some systems).

    Next, it will help to consolidate the ACPI hotplug handling among
    subsystems by making it possible to store hotplug-related information
    in struct acpi_device objects in a standard common way.

    Finally, it will help to avoid a race condition related to the
    deletion of ACPI namespace nodes. Namely, namespace nodes may be
    deleted as a result of a table unload triggered by _EJ0 or _DCK.
    If a hotplug notification for one of those nodes is triggered
    right before the deletion and it executes a hotplug callback
    via acpi_hotplug_execute(), the ACPI handle passed to that
    callback may be stale when the callback actually runs. One way
    to work around that is to always pass struct acpi_device pointers
    to hotplug callbacks after doing a get_device() on the objects in
    question which eliminates the use-after-free possibility (the ACPI
    handles in those objects are invalidated by acpi_scan_drop_device(),
    so they will trigger ACPICA errors on attempts to use them).

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

    Rafael J. Wysocki
     

20 Oct, 2013

1 commit

  • In addition to the existing ACPI specific GPIO interface, document the new
    descriptor based GPIO interface in Documentation/acpi/enumeration.txt, so
    it is clear that this new interface is preferred over the ACPI specific
    version.

    Signed-off-by: Mika Westerberg
    Acked-by: Rafael J. Wysocki
    Reviewed-by: Alexandre Courbot
    Signed-off-by: Linus Walleij

    Mika Westerberg
     

11 Oct, 2013

1 commit


07 Sep, 2013

1 commit

  • Pull trivial tree from Jiri Kosina:
    "The usual trivial updates all over the tree -- mostly typo fixes and
    documentation updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
    doc: Documentation/cputopology.txt fix typo
    treewide: Convert retrun typos to return
    Fix comment typo for init_cma_reserved_pageblock
    Documentation/trace: Correcting and extending tracepoint documentation
    mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
    power: Documentation: Update s2ram link
    doc: fix a typo in Documentation/00-INDEX
    Documentation/printk-formats.txt: No casts needed for u64/s64
    doc: Fix typo "is is" in Documentations
    treewide: Fix printks with 0x%#
    zram: doc fixes
    Documentation/kmemcheck: update kmemcheck documentation
    doc: documentation/hwspinlock.txt fix typo
    PM / Hibernate: add section for resume options
    doc: filesystems : Fix typo in Documentations/filesystems
    scsi/megaraid fixed several typos in comments
    ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
    treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
    page_isolation: Fix a comment typo in test_pages_isolated()
    doc: fix a typo about irq affinity
    ...

    Linus Torvalds
     

23 Aug, 2013

2 commits

  • This follows what has already been done for the DeviceTree helpers. Move
    the ACPI helpers from drivers/acpi/acpi_i2c.c to the I2C core and update
    documentation accordingly.

    This also solves a problem reported by Jerry Snitselaar that we can't build
    the ACPI I2C helpers as a module.

    Signed-off-by: Mika Westerberg
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Wolfram Sang

    Mika Westerberg
     
  • I2C of helpers used to live in of_i2c.c but experience (from SPI) shows
    that it is much cleaner to have this in the core. This also removes a
    circular dependency between the helpers and the core, and so we can
    finally register child nodes in the core instead of doing this manually
    in each driver. So, fix the drivers and documentation, too.

    Signed-off-by: Wolfram Sang

    Wolfram Sang
     

20 Aug, 2013

1 commit


04 Jul, 2013

1 commit

  • Pull power management and ACPI updates from Rafael Wysocki:
    "This time the total number of ACPI commits is slightly greater than
    the number of cpufreq commits, but Viresh Kumar (who works on cpufreq)
    remains the most active patch submitter.

    To me, the most significant change is the addition of offline/online
    device operations to the driver core (with the Greg's blessing) and
    the related modifications of the ACPI core hotplug code. Next are the
    freezer updates from Colin Cross that should make the freezing of
    tasks a bit less heavy weight.

    We also have a couple of regression fixes, a number of fixes for
    issues that have not been identified as regressions, two new drivers
    and a bunch of cleanups all over.

    Highlights:

    - Hotplug changes to support graceful hot-removal failures.

    It sometimes is necessary to fail device hot-removal operations
    gracefully if they cannot be carried out completely. For example,
    if memory from a memory module being hot-removed has been allocated
    for the kernel's own use and cannot be moved elsewhere, it's
    desirable to fail the hot-removal operation in a graceful way
    rather than to crash the kernel, but currenty a success or a kernel
    crash are the only possible outcomes of an attempted memory
    hot-removal. Needless to say, that is not a very attractive
    alternative and it had to be addressed.

    However, in order to make it work for memory, I first had to make
    it work for CPUs and for this purpose I needed to modify the ACPI
    processor driver. It's been split into two parts, a resident one
    handling the low-level initialization/cleanup and a modular one
    playing the actual driver's role (but it binds to the CPU system
    device objects rather than to the ACPI device objects representing
    processors). That's been sort of like a live brain surgery on a
    patient who's riding a bike.

    So this is a little scary, but since we found and fixed a couple of
    regressions it caused to happen during the early linux-next testing
    (a month ago), nobody has complained.

    As a bonus we remove some duplicated ACPI hotplug code, because the
    ACPI-based CPU hotplug is now going to use the common ACPI hotplug
    code.

    - Lighter weight freezing of tasks.

    These changes from Colin Cross and Mandeep Singh Baines are
    targeted at making the freezing of tasks a bit less heavy weight
    operation. They reduce the number of tasks woken up every time
    during the freezing, by using the observation that the freezer
    simply doesn't need to wake up some of them and wait for them all
    to call refrigerator(). The time needed for the freezer to decide
    to report a failure is reduced too.

    Also reintroduced is the check causing a lockdep warining to
    trigger when try_to_freeze() is called with locks held (which is
    generally unsafe and shouldn't happen).

    - cpufreq updates

    First off, a commit from Srivatsa S Bhat fixes a resume regression
    introduced during the 3.10 cycle causing some cpufreq sysfs
    attributes to return wrong values to user space after resume. The
    fix is kind of fresh, but also it's pretty obvious once Srivatsa
    has identified the root cause.

    Second, we have a new freqdomain_cpus sysfs attribute for the
    acpi-cpufreq driver to provide information previously available via
    related_cpus. From Lan Tianyu.

    Finally, we fix a number of issues, mostly related to the
    CPUFREQ_POSTCHANGE notifier and cpufreq Kconfig options and clean
    up some code. The majority of changes from Viresh Kumar with bits
    from Jacob Shin, Heiko Stübner, Xiaoguang Chen, Ezequiel Garcia,
    Arnd Bergmann, and Tang Yuantian.

    - ACPICA update

    A usual bunch of updates from the ACPICA upstream.

    During the 3.4 cycle we introduced support for ACPI 5 extended
    sleep registers, but they are only supposed to be used if the
    HW-reduced mode bit is set in the FADT flags and the code attempted
    to use them without checking that bit. That caused suspend/resume
    regressions to happen on some systems. Fix from Lv Zheng causes
    those registers to be used only if the HW-reduced mode bit is set.

    Apart from this some other ACPICA bugs are fixed and code cleanups
    are made by Bob Moore, Tomasz Nowicki, Lv Zheng, Chao Guan, and
    Zhang Rui.

    - cpuidle updates

    New driver for Xilinx Zynq processors is added by Michal Simek.

    Multidriver support simplification, addition of some missing
    kerneldoc comments and Kconfig-related fixes come from Daniel
    Lezcano.

    - ACPI power management updates

    Changes to make suspend/resume work correctly in Xen guests from
    Konrad Rzeszutek Wilk, sparse warning fix from Fengguang Wu and
    cleanups and fixes of the ACPI device power state selection
    routine.

    - ACPI documentation updates

    Some previously missing pieces of ACPI documentation are added by
    Lv Zheng and Aaron Lu (hopefully, that will help people to
    uderstand how the ACPI subsystem works) and one outdated doc is
    updated by Hanjun Guo.

    - Assorted ACPI updates

    We finally nailed down the IA-64 issue that was the reason for
    reverting commit 9f29ab11ddbf ("ACPI / scan: do not match drivers
    against objects having scan handlers"), so we can fix it and move
    the ACPI scan handler check added to the ACPI video driver back to
    the core.

    A mechanism for adding CMOS RTC address space handlers is
    introduced by Lan Tianyu to allow some EC-related breakage to be
    fixed on some systems.

    A spec-compliant implementation of acpi_os_get_timer() is added by
    Mika Westerberg.

    The evaluation of _STA is added to do_acpi_find_child() to avoid
    situations in which a pointer to a disabled device object is
    returned instead of an enabled one with the same _ADR value. From
    Jeff Wu.

    Intel BayTrail PCH (Platform Controller Hub) support is added to
    the ACPI driver for Intel Low-Power Subsystems (LPSS) and that
    driver is modified to work around a couple of known BIOS issues.
    Changes from Mika Westerberg and Heikki Krogerus.

    The EC driver is fixed by Vasiliy Kulikov to use get_user() and
    put_user() instead of dereferencing user space pointers blindly.

    Code cleanups are made by Bjorn Helgaas, Nicholas Mazzuca and Toshi
    Kani.

    - Assorted power management updates

    The "runtime idle" helper routine is changed to take the return
    values of the callbacks executed by it into account and to call
    rpm_suspend() if they return 0, which allows us to reduce the
    overall code bloat a bit (by dropping some code that's not
    necessary any more after that modification).

    The runtime PM documentation is updated by Alan Stern (to reflect
    the "runtime idle" behavior change).

    New trace points for PM QoS are added by Sahara
    ().

    PM QoS documentation is updated by Lan Tianyu.

    Code cleanups are made and minor issues are addressed by Bernie
    Thompson, Bjorn Helgaas, Julius Werner, and Shuah Khan.

    - devfreq updates

    New driver for the Exynos5-bus device from Abhilash Kesavan.

    Minor cleanups, fixes and MAINTAINERS update from MyungJoo Ham,
    Abhilash Kesavan, Paul Bolle, Rajagopal Venkat, and Wei Yongjun.

    - OMAP power management updates

    Adaptive Voltage Scaling (AVS) SmartReflex voltage control driver
    updates from Andrii Tseglytskyi and Nishanth Menon."

    * tag 'pm+acpi-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (162 commits)
    cpufreq: Fix cpufreq regression after suspend/resume
    ACPI / PM: Fix possible NULL pointer deref in acpi_pm_device_sleep_state()
    PM / Sleep: Warn about system time after resume with pm_trace
    cpufreq: don't leave stale policy pointer in cdbs->cur_policy
    acpi-cpufreq: Add new sysfs attribute freqdomain_cpus
    cpufreq: make sure frequency transitions are serialized
    ACPI: implement acpi_os_get_timer() according the spec
    ACPI / EC: Add HP Folio 13 to ec_dmi_table in order to skip DSDT scan
    ACPI: Add CMOS RTC Operation Region handler support
    ACPI / processor: Drop unused variable from processor_perflib.c
    cpufreq: tegra: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: s3c64xx: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: omap: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: imx6q: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: exynos: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: dbx500: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: davinci: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: arm-big-little: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: powernow-k8: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error cases
    ...

    Linus Torvalds
     

21 Jun, 2013

1 commit