18 Nov, 2011

5 commits


08 Nov, 2011

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
    cpuidle: Single/Global registration of idle states
    cpuidle: Split cpuidle_state structure and move per-cpu statistics fields
    cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev->prepare()
    cpuidle: Move dev->last_residency update to driver enter routine; remove dev->last_state
    ACPI: Fix CONFIG_ACPI_DOCK=n compiler warning
    ACPI: Export FADT pm_profile integer value to userspace
    thermal: Prevent polling from happening during system suspend
    ACPI: Drop ACPI_NO_HARDWARE_INIT
    ACPI atomicio: Convert width in bits to bytes in __acpi_ioremap_fast()
    PNPACPI: Simplify disabled resource registration
    ACPI: Fix possible recursive locking in hwregs.c
    ACPI: use kstrdup()
    mrst pmu: update comment
    tools/power turbostat: less verbose debugging

    Linus Torvalds
     

07 Nov, 2011

2 commits

  • This patch makes the cpuidle_states structure global (single copy)
    instead of per-cpu. The statistics needed on per-cpu basis
    by the governor are kept per-cpu. This simplifies the cpuidle
    subsystem as state registration is done by single cpu only.
    Having single copy of cpuidle_states saves memory. Rare case
    of asymmetric C-states can be handled within the cpuidle driver
    and architectures such as POWER do not have asymmetric C-states.

    Having single/global registration of all the idle states,
    dynamic C-state transitions on x86 are handled by
    the boot cpu. Here, the boot cpu would disable all the devices,
    re-populate the states and later enable all the devices,
    irrespective of the cpu that would receive the notification first.

    Reference:
    https://lkml.org/lkml/2011/4/25/83

    Signed-off-by: Deepthi Dharwar
    Signed-off-by: Trinabh Gupta
    Tested-by: Jean Pihet
    Reviewed-by: Kevin Hilman
    Acked-by: Arjan van de Ven
    Acked-by: Kevin Hilman
    Signed-off-by: Len Brown

    Deepthi Dharwar
     
  • Cpuidle governor only suggests the state to enter using the
    governor->select() interface, but allows the low level driver to
    override the recommended state. The actual entered state
    may be different because of software or hardware demotion. Software
    demotion is done by the back-end cpuidle driver and can be accounted
    correctly. Current cpuidle code uses last_state field to capture the
    actual state entered and based on that updates the statistics for the
    state entered.

    Ideally the driver enter routine should update the counters,
    and it should return the state actually entered rather than the time
    spent there. The generic cpuidle code should simply handle where
    the counters live in the sysfs namespace, not updating the counters.

    Reference:
    https://lkml.org/lkml/2011/3/25/52

    Signed-off-by: Deepthi Dharwar
    Signed-off-by: Trinabh Gupta
    Tested-by: Jean Pihet
    Reviewed-by: Kevin Hilman
    Acked-by: Arjan van de Ven
    Acked-by: Kevin Hilman
    Signed-off-by: Len Brown

    Deepthi Dharwar
     

01 Nov, 2011

1 commit


02 Jul, 2011

1 commit

  • The naming convention used by commit 7538e3db6e015e890825fbd9f86599b
    (PM: Add support for device power domains), which introduced the
    struct dev_power_domain type for representing device power domains,
    evidently confuses some developers who tend to think that objects
    of this type must correspond to "power domains" as defined by
    hardware, which is not the case. Namely, at the kernel level, a
    struct dev_power_domain object can represent arbitrary set of devices
    that are mutually dependent power management-wise and need not belong
    to one hardware power domain. To avoid that confusion, rename struct
    dev_power_domain to struct dev_pm_domain and rename the related
    pointers in struct device and struct pm_clk_notifier_block from
    pwr_domain to pm_domain.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Kevin Hilman

    Rafael J. Wysocki
     

23 May, 2011

1 commit


29 Apr, 2011

1 commit

  • shmobile platforms replace the runtime PM callbacks of the platform
    bus type with their own routines, but this means that the callbacks
    are replaced system-wide. This may not be the right approach if the
    platform devices on the system are not of the same type (e.g. some
    of them belong to an SoC and the others are located in separate
    chips), because in those cases they may require different handling.
    Thus it is better to use power domains to override the platform bus
    type's PM handling, as it generally is possible to use different
    power domains for devices with different PM requirements.

    Define a default power domain for shmobile in both the SH and ARM
    falvors and use it to override the platform bus type's PM callbacks.
    Since the suspend and hibernate callbacks of the new "default" power
    domains need to be the same and the platform bus type's suspend and
    hibernate callbacks for the time being, export those callbacks so
    that can be used outside of the platform bus type code.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     

11 Mar, 2011

1 commit


14 Jan, 2011

1 commit

  • * 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
    cpuidle/x86/perf: fix power:cpu_idle double end events and throw cpu_idle events from the cpuidle layer
    intel_idle: open broadcast clock event
    cpuidle: CPUIDLE_FLAG_CHECK_BM is omap3_idle specific
    cpuidle: CPUIDLE_FLAG_TLB_FLUSHED is specific to intel_idle
    cpuidle: delete unused CPUIDLE_FLAG_SHALLOW, BALANCED, DEEP definitions
    SH, cpuidle: delete use of NOP CPUIDLE_FLAGS_SHALLOW
    cpuidle: delete NOP CPUIDLE_FLAG_POLL
    ACPI: processor_idle: delete use of NOP CPUIDLE_FLAGs
    cpuidle: Rename X86 specific idle poll state[0] from C0 to POLL
    ACPI, intel_idle: Cleanup idle= internal variables
    cpuidle: Make cpuidle_enable_device() call poll_idle_init()
    intel_idle: update Sandy Bridge core C-state residency targets

    Linus Torvalds
     

13 Jan, 2011

1 commit


16 Nov, 2010

1 commit

  • While at it, fix two checkpatch errors.
    Several non-const struct instances constified by this patch were added after
    the introduction of platform_suspend_ops in checkpatch.pl's list of "should
    be const" structs (79404849e90a41ea2109bd0e2f7c7164b0c4ce73).

    Patch against mainline.
    Inspired by hunks of the grsecurity patch, updated for newer kernels.

    Signed-off-by: Lionel Debroux
    Acked-by: Ingo Molnar
    Signed-off-by: Jiri Kosina

    Lionel Debroux
     

26 Feb, 2010

1 commit


04 Dec, 2009

1 commit


30 Oct, 2009

7 commits


23 Aug, 2009

3 commits

  • Paul Mundt
     
  • The runtime PM for SH-Mobile code had platform_bus_notify() as __devinit,
    which is rather bogus. Kill off the annotation, which subsequently
    silences the section mismatch warnings.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This patch is V3 of the SuperH Mobile Runtime PM platform bus
    implentation matching Rafael's Runtime PM v16.

    The code gets invoked from the SuperH specific Runtime PM
    platform bus functions that override the weak symbols for:
    - platform_pm_runtime_suspend()
    - platform_pm_runtime_resume()
    - platform_pm_runtime_idle()

    This Runtime PM implementation performs two levels of power
    management. At the time of platform bus runtime suspend the
    clock to the device is stopped instantly. Later on if all
    devices within the power domain has their clocks stopped
    then the device driver ->runtime_suspend() callbacks are
    used to save hardware register state for each device.

    Device driver ->runtime_suspend() calls are scheduled from
    cpuidle context using platform_pm_runtime_suspend_idle().
    When all devices have been fully suspended the processor
    is allowed to enter deep sleep from cpuidle.

    The runtime resume operation turns on clocks and also
    restores registers if needed. It is worth noting that the
    devices start in a suspended state and the device driver
    is responsible for calling runtime resume before accessing
    the actual hardware.

    In this particular platform bus implementation runtime
    resume is not allowed from interrupt context. Runtime
    suspend is however allowed from interrupt context as
    long as the synchronous functions are avoided.

    [ updated for v17 -- PFM. ]

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

18 Aug, 2009

2 commits

  • This patch adds "SuperH Mobile Standby Mode [SF]" to the list
    of cpuidle sleep modes. If the software latency requirements
    from cpuidle are met together with fulfilled hardware
    requirements then deep sleep modes can be entered.

    Tested on sh7722 and sh7724 with "Sleep Mode", "Sleep Mode + SF"
    and "Software Standby Mode + SF" together with a multimedia
    work load and flood ping without packet drop.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the exception handling in the sleep code
    for SuperH Mobile. With the patch applied the sleep code
    always rewrites the VBR and resumes from the exception vector,
    re-initializes hardware and jumps straight to the original
    interrupt vector.

    Tested on sh7722 and sh7724 with "Sleep Mode", "Sleep Mode + SF"
    and "Software Standby Mode + SF" with CONFIG_SUSPEND.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

15 Aug, 2009

2 commits

  • Paul Mundt
     
  • This patch updates the SuperH Mobile sleep assembly code with
    support for DBSC memory controller found in the sh7724 processor.

    Without this fix the memory hooked up to the sh7724 processor
    will never enter self-refresh mode before suspending to ram. The
    effect of this is that the memory contents most likeley will be
    lost upon resume which may or may not be what you want.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

04 Jul, 2009

1 commit

  • This patch adds cpuidle support for SuperH Mobile.

    The sleep mode selected by cpuidle is compared with
    the mode selected by the hwblk sleep code and the
    best allowed mode is entered.

    At this point "Sleep mode" and "Sleep mode + SF" are
    supported. This code can easily be extended to support
    "Software suspend mode", but the assembly code must
    first be updated to avoid loosing interrupts.

    Also, update the code to only copy the assembly snippet
    into internal memory once at bootup.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

16 Mar, 2009

1 commit