03 Aug, 2012

1 commit


31 Jul, 2012

1 commit

  • _GTS and _BFS were added to the suspend/resume flow
    in the ACPI 2.0 specification.

    Linux dutifully implemented _GTS and _BFS.
    We discovered that it was rarely seen in systems
    in the field. Further, some of those systems had
    AML so bogus that it could never work -- proof that
    no other operating system supports _GTS and _BFS.
    So we made _GTS and _BFS optional via modparam,
    and disabled them by default.

    But we've had to complicate some code to keep
    this support in the kernel, as these methods are defined
    to be evaluated very close to sleep entry and exit.
    Indeed, no other AML is ever evaluated with interrupts off.

    We have submitted a proposal for _GTS and _BFS
    to be officially removed from the ACPI specification
    on the next revision. Here we remove it from Linux.

    Signed-off-by: Len Brown
    Acked-by: Ingo Molnar
    Acked-by: Konrad Rzeszutek Wilk

    Len Brown
     

27 Jul, 2012

1 commit

  • Pull ACPI & power management update from Len Brown:
    "Re-write of the turbostat tool.
    lower overhead was necessary for measuring very large system when
    they are very idle.

    IVB support in intel_idle
    It's what I run on my IVB, others should be able to also:-)

    ACPICA core update
    We have found some bugs due to divergence between Linux and the
    upstream ACPICA base. Most of these patches are to reduce that
    divergence to reduce the risk of future bugs.

    Some cpuidle updates, mostly for non-Intel
    More will be coming, as they depend on this part.

    Some thermal management changes needed by non-ACPI systems.

    Some _OST (OS Status Indication) updates for hot ACPI hot-plug."

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (51 commits)
    Thermal: Documentation update
    Thermal: Add Hysteresis attributes
    Thermal: Make Thermal trip points writeable
    ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check
    tools/power: turbostat: fix large c1% issue
    tools/power: turbostat v2 - re-write for efficiency
    ACPICA: Update to version 20120711
    ACPICA: AcpiSrc: Fix some translation issues for Linux conversion
    ACPICA: Update header files copyrights to 2012
    ACPICA: Add new ACPI table load/unload external interfaces
    ACPICA: Split file: tbxface.c -> tbxfload.c
    ACPICA: Add PCC address space to space ID decode function
    ACPICA: Fix some comment fields
    ACPICA: Table manager: deploy new firmware error/warning interfaces
    ACPICA: Add new interfaces for BIOS(firmware) errors and warnings
    ACPICA: Split exception code utilities to a new file, utexcep.c
    ACPI: acpi_pad: tune round_robin_time
    ACPICA: Update to version 20120620
    ACPICA: Add support for implicit notify on multiple devices
    ACPICA: Update comments; no functional change
    ...

    Linus Torvalds
     

26 Jul, 2012

1 commit


25 Jul, 2012

1 commit

  • Pull PCI changes from Bjorn Helgaas:
    "Host bridge hotplug:
    - Add MMCONFIG support for hot-added host bridges (Jiang Liu)
    Device hotplug:
    - Move fixups from __init to __devinit (Sebastian Andrzej Siewior)
    - Call FINAL fixups for hot-added devices, too (Myron Stowe)
    - Factor out generic code for P2P bridge hot-add (Yinghai Lu)
    - Remove all functions in a slot, not just those with _EJx (Amos
    Kong)
    Dynamic resource management:
    - Track bus number allocation (struct resource tree per domain)
    (Yinghai Lu)
    - Make P2P bridge 1K I/O windows work with resource reassignment
    (Bjorn Helgaas, Yinghai Lu)
    - Disable decoding while updating 64-bit BARs (Bjorn Helgaas)
    Power management:
    - Add PCIe runtime D3cold support (Huang Ying)
    Virtualization:
    - Add VFIO infrastructure (ACS, DMA source ID quirks) (Alex
    Williamson)
    - Add quirks for devices with broken INTx masking (Jan Kiszka)
    Miscellaneous:
    - Fix some PCI Express capability version issues (Myron Stowe)
    - Factor out some arch code with a weak, generic, pcibios_setup()
    (Myron Stowe)"

    * tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (122 commits)
    PCI: hotplug: ensure a consistent return value in error case
    PCI: fix undefined reference to 'pci_fixup_final_inited'
    PCI: build resource code for M68K architecture
    PCI: pciehp: remove unused pciehp_get_max_lnk_width(), pciehp_get_cur_lnk_width()
    PCI: reorder __pci_assign_resource() (no change)
    PCI: fix truncation of resource size to 32 bits
    PCI: acpiphp: merge acpiphp_debug and debug
    PCI: acpiphp: remove unused res_lock
    sparc/PCI: replace pci_cfg_fake_ranges() with pci_read_bridge_bases()
    PCI: call final fixups hot-added devices
    PCI: move final fixups from __init to __devinit
    x86/PCI: move final fixups from __init to __devinit
    MIPS/PCI: move final fixups from __init to __devinit
    PCI: support sizing P2P bridge I/O windows with 1K granularity
    PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2)
    PCI: disable MEM decoding while updating 64-bit MEM BARs
    PCI: leave MEM and IO decoding disabled during 64-bit BAR sizing, too
    PCI: never discard enable/suspend/resume_early/resume fixups
    PCI: release temporary reference in __nv_msi_ht_cap_quirk()
    PCI: restructure 'pci_do_fixups()'
    ...

    Linus Torvalds
     

19 Jul, 2012

1 commit

  • * pm-acpi: (24 commits)
    olpc-xo15-sci: Use struct dev_pm_ops for power management
    ACPI / PM: Drop PM callbacks from the ACPI bus type
    ACPI / PM: Drop legacy driver PM callbacks that are not used any more
    ACPI / PM: Do not execute legacy driver PM callbacks
    acpi_power_meter: Use struct dev_pm_ops for power management
    fujitsu-tablet: Use struct dev_pm_ops for power management
    classmate-laptop: Use struct dev_pm_ops for power management
    xo15-ebook: Use struct dev_pm_ops for power management
    toshiba_bluetooth: Use struct dev_pm_ops for power management
    panasonic-laptop: Use struct dev_pm_ops for power management
    sony-laptop: Use struct dev_pm_ops for power management
    hp_accel: Use struct dev_pm_ops for power management
    toshiba_acpi: Use struct dev_pm_ops for power management
    ACPI: Use struct dev_pm_ops for power management in the SBS driver
    ACPI: Use struct dev_pm_ops for power management in the power driver
    ACPI: Use struct dev_pm_ops for power management in the button driver
    ACPI: Use struct dev_pm_ops for power management in the battery driver
    ACPI: Use struct dev_pm_ops for power management in the AC driver
    ACPI: Use struct dev_pm_ops for power management in processor driver
    ACPI: Use struct dev_pm_ops for power management in the thermal driver
    ...

    Rafael J. Wysocki
     

18 Jul, 2012

3 commits


17 Jul, 2012

6 commits


14 Jul, 2012

1 commit


01 Jul, 2012

3 commits


24 Jun, 2012

2 commits

  • * topic/huang-d3cold-v7:
    PCI/PM: add PCIe runtime D3cold support
    PCI: do not call pci_set_power_state with PCI_D3cold
    PCI/PM: add runtime PM support to PCIe port
    ACPI/PM: specify lowest allowed state for device sleep state

    Bjorn Helgaas
     
  • Lower device sleep state can save more power, but has more exit
    latency too. Sometimes, to satisfy some power QoS and other
    requirement, we need to constrain the lowest device sleep state.

    In this patch, a parameter to specify lowest allowed state for
    acpi_pm_device_sleep_state is added. So that the caller can enforce
    the constraint via the parameter.

    This is needed by PCIe D3cold support, where the lowest power state
    allowed may be D3_HOT instead of default D3_COLD.

    CC: Len Brown
    CC: linux-acpi@vger.kernel.org
    Reviewed-by: Rafael J. Wysocki
    Signed-off-by: Huang Ying
    Signed-off-by: Bjorn Helgaas

    Huang Ying
     

23 Jun, 2012

1 commit


04 Jun, 2012

3 commits

  • Changed acpi_bus_hot_remove_device() to support _OST. This function is
    also changed to global so that it can be called from hotplug notify
    handlers to perform hot-remove operation.

    Changed acpi_eject_store(), which is the sysfs eject handler. It checks
    eject_pending to see if the request was originated from ACPI eject
    notification. If not, it calls _OST(0x103,84,) per Figure 6-37 in ACPI
    5.0 spec.

    Added eject_pending bit to acpi_device_flags. This bit is set when the
    kernel has received an ACPI eject notification, but does not initiate
    its hot-remove operation by itself.

    Added struct acpi_eject_event. This structure is used to pass extended
    information to acpi_bus_hot_remove_device(), which has a single argument
    to support asynchronous call

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

    Toshi Kani
     
  • 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
     
  • introduced in Linux-3.5-rc1 by
    66886d6f8c9bcdee3d7fce5796dcffd6b4bc0b48
    (ACPI: Add stubs for (un)register_acpi_bus_type)

    Fix header file warnings when CONFIG_ACPI is not enabled:

    include/acpi/acpi_bus.h:443:42: warning: 'struct acpi_bus_type' declared inside parameter list
    include/acpi/acpi_bus.h:443:42: warning: its scope is only this definition or declaration, which is probably not
    include/acpi/acpi_bus.h:444:44: warning: 'struct acpi_bus_type' declared inside parameter list

    Signed-off-by: Len Brown

    Len Brown
     

01 Jun, 2012

5 commits


12 May, 2012

2 commits


06 May, 2012

1 commit


05 May, 2012

1 commit

  • Before this patch, ACPI_STATE_D3 incorrectly referenced D3hot
    in some places, but D3cold in other places.

    After this patch, ACPI_STATE_D3 always means ACPI_STATE_D3_COLD;
    and all references to D3hot use ACPI_STATE_D3_HOT.

    ACPI's _PR3 method is used to enter both D3hot and D3cold states.
    What distinguishes D3hot from D3cold is the presence _PR3
    (Power Resources for D3hot) If these resources are all ON,
    then the state is D3hot. If _PR3 is not present,
    or all _PR0 resources for the devices are OFF,
    then the state is D3cold.

    This patch applies after Linux-3.4-rc1.
    A future syntax cleanup may remove ACPI_STATE_D3
    to emphasize that it always means ACPI_STATE_D3_COLD.

    Signed-off-by: Lin Ming
    Acked-by: Rafael J. Wysocki
    Reviewed-by: Aaron Lu
    Signed-off-by: Len Brown

    Lin Ming
     

31 Mar, 2012

3 commits

  • 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
     
  • Conflicts:
    drivers/acpi/acpica/hwsleep.c

    Text conflict between:

    2feec47d4c5f80b05f1650f5a24865718978eea4
    (ACPICA: ACPI 5: Support for new FADT SleepStatus, SleepControl registers)

    which removed #include "actables.h"

    and

    09f98a825a821f7a3f1b162f9ed023f37213a63b
    (x86, acpi, tboot: Have a ACPI os prepare sleep instead of calling tboot_sleep.)

    which removed #include

    The resolution is to remove them both.

    Signed-off-by: Len Brown

    Len Brown
     
  • Conflicts:
    drivers/acpi/sleep.c

    This was a text conflict between
    a2ef5c4fd44ce3922435139393b89f2cce47f576
    (ACPI: Move module parameter gts and bfs to sleep.c)

    which added #include

    and

    b24e5098853653554baf6ec975b9e855f3d6e5c0
    (ACPI, PCI: Move acpi_dev_run_wake() to ACPI core)

    which added #include

    The resolution was to take them both.

    Signed-off-by: Len Brown

    Len Brown
     

30 Mar, 2012

3 commits

  • acpi_dev_run_wake() is a generic function which can be used by
    other subsystem too. Rename it to acpi_pm_device_run_wake, to be
    consistent with acpi_pm_device_sleep_wake.

    Then move it to ACPI core.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     
  • Devices may share same list of power resources in _PR0, for example

    Device(Dev0)
    {
    Name (_PR0, Package (0x01)
    {
    P0PR,
    P1PR
    })
    }

    Device(Dev1)
    {
    Name (_PR0, Package (0x01)
    {
    P0PR,
    P1PR
    }
    }

    Assume Dev0 and Dev1 were runtime suspended.
    Then Dev0 is resumed first and it goes into D0 state.
    But Dev1 is left in D0_Uninitialised state.

    This is wrong. In this case, Dev1 must be resumed too.

    In order to hand this case, each power resource maintains a list of
    devices which relies on it.

    When power resource is ON, it will check if the devices on its list
    can be resumed. The device can only be resumed when all the power
    resouces of its _PR0 are ON.

    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     
  • Version 20120320.

    Signed-off-by: Bob Moore
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Bob Moore