20 May, 2011

4 commits

  • The achievable power modes of the power domains in cpuidle
    depends on the system wide 'enable_off_mode' knob in debugfs.
    Upon changing enable_off_mode, do not change the C-states
    'valid' field but instead dynamically restrict the power modes
    when entering idle.

    The C-states 'valid' field is just used to enable/disable some
    C-states at init and shall not be changed later on.

    Signed-off-by: Jean Pihet
    Signed-off-by: Kevin Hilman

    Jean Pihet
     
  • - fix single and multi-lines comments format
    - removed the omap3_idle_bm_check function and replaced the test
    in omap3_enter_idle_bm by the equivalent code
    - re-organize omap3_enter_idle_bm code path, assign local variables
    only when needed
    - reword some comments

    Signed-off-by: Jean Pihet
    Signed-off-by: Kevin Hilman

    Jean Pihet
     
  • The current implementation defines an internal structure and a
    C-states array. Using those structures is redundant to the
    structs used by the cpuidle framework.

    This patch provides a clean-up of the internal struct, removes the
    internal C-states array, stores the data using the existing cpuidle
    per C-state struct and registers the mach specific data to cpuidle
    C-state driver_data (accessed using cpuidle_[gs]et_statedata).
    Also removes unused macros, fields and code and compacts the repeating
    code using an inline helper function.

    The result is more compact and more readable code as well as
    reduced data RAM usage.

    Also retain C1 as the only always valid C-state and system safe state.

    Signed-off-by: Jean Pihet
    Signed-off-by: Kevin Hilman

    Jean Pihet
     
  • - sleep_latency and wake_latency are not used, replace them by
    exit_latency which is used by cpuidle. exit_latency simply is
    the sum of sleep_latency and wake_latency,
    - replace threshold by target_residency,
    - changed the OMAP3 specific cpuidle code accordingly,
    - changed the OMAP3 board code accordingly.

    Signed-off-by: Jean Pihet
    Signed-off-by: Kevin Hilman

    Jean Pihet
     

31 Mar, 2011

1 commit


12 Mar, 2011

1 commit


10 Mar, 2011

2 commits


26 Feb, 2011

1 commit

  • Define the following architecture specific funtions for omap2/3/4
    .clkdm_allow_idle
    .clkdm_deny_idle

    Convert the platform-independent framework to call these functions.
    Also rename the api's by removing the omap2_ preamble.
    Hence call omap2_clkdm_allow_idle as clkdm_allow_idle and
    omap2_clkdm_deny_idle as clkdm_deny_idle.

    Make the _clkdm_add_autodeps and _clkdm_del_autodeps as non-static
    so they can be accessed from OMAP2/3 platform specific code.

    Signed-off-by: Rajendra Nayak
    Signed-off-by: Paul Walmsley

    Rajendra Nayak
     

14 Jan, 2011

2 commits

  • * '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
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    Documentation/trace/events.txt: Remove obsolete sched_signal_send.
    writeback: fix global_dirty_limits comment runtime -> real-time
    ppc: fix comment typo singal -> signal
    drivers: fix comment typo diable -> disable.
    m68k: fix comment typo diable -> disable.
    wireless: comment typo fix diable -> disable.
    media: comment typo fix diable -> disable.
    remove doc for obsolete dynamic-printk kernel-parameter
    remove extraneous 'is' from Documentation/iostats.txt
    Fix spelling milisec -> ms in snd_ps3 module parameter description
    Fix spelling mistakes in comments
    Revert conflicting V4L changes
    i7core_edac: fix typos in comments
    mm/rmap.c: fix comment
    sound, ca0106: Fix assignment to 'channel'.
    hrtimer: fix a typo in comment
    init/Kconfig: fix typo
    anon_inodes: fix wrong function name in comment
    fix comment typos concerning "consistent"
    poll: fix a typo in comment
    ...

    Fix up trivial conflicts in:
    - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)
    - fs/ext4/ext4.h

    Also fix missed 'diabled' typo in drivers/net/bnx2x/bnx2x.h while at it.

    Linus Torvalds
     

13 Jan, 2011

2 commits


22 Dec, 2010

4 commits

  • The OMAP powerdomain code and data is all OMAP2+-specific. This seems
    unlikely to change any time soon. Move plat-omap/include/plat/powerdomain.h
    to mach-omap2/powerdomain.h. The primary point of doing this is to remove
    the temptation for unrelated upper-layer code to access powerdomain code
    and data directly.

    As part of this process, remove the references to powerdomain data
    from the GPIO "driver" and the OMAP PM no-op layer, both in plat-omap.
    Change the DSPBridge code to point to the new location for the
    powerdomain headers. The DSPBridge code should not be including the
    powerdomain headers; these should be removed.

    Signed-off-by: Paul Walmsley
    Cc: Kevin Hilman
    Cc: Omar Ramirez Luna
    Cc: Felipe Contreras
    Cc: Greg Kroah-Hartman

    Paul Walmsley
     
  • The OMAP clockdomain code and data is all OMAP2+-specific. This seems
    unlikely to change any time soon. Move plat-omap/include/plat/clockdomain.h
    to mach-omap2/clockdomain.h. The primary point of doing this is to remove
    the temptation for unrelated upper-layer code to access clockdomain code
    and data directly.

    DSPBridge also uses the clockdomain headers for some reason, so,
    modify it also. The DSPBridge code should not be including the
    clockdomain headers; these should be removed.

    Signed-off-by: Paul Walmsley
    Cc: Kevin Hilman
    Cc: Omar Ramirez Luna
    Cc: Felipe Contreras
    Cc: Greg Kroah-Hartman
    Tested-by: Rajendra Nayak
    Tested-by: Santosh Shilimkar

    Paul Walmsley
     
  • Limitation i583: Self_Refresh Exit issue after OFF mode

    Issue:
    When device is waking up from OFF mode, then SDRC state machine sends
    inappropriate sequence violating JEDEC standards.

    Impact:
    OMAP3630 < ES1.2 is impacted as follows depending on the platform:
    CS0: for 38.4MHz as internal sysclk, DDR content seen to be stable, while
    for all other sysclk frequencies, varied levels of instability
    seen based on varied parameters.
    CS1: impacted

    This patch takes option #3 as recommended by the Silicon erratum:
    Avoid core power domain transitioning to OFF mode. Power consumption
    impact is expected in this case.
    To do this, we route core OFF requests to RET request on the impacted
    revisions of silicon.

    Acked-by: Jean Pihet

    [nm@ti.com: rebased the code to 2.6.37-rc2- short circuit code changed a bit]
    Signed-off-by: Nishanth Menon
    Signed-off-by: Eduardo Valentin
    Signed-off-by: Kevin Hilman

    Eduardo Valentin
     
  • Currently omap3_cpuidle_update_states makes whole sale decision
    on which C states to update based on enable_off_mode variable
    Instead, achieve the same functionality by independently providing
    mpu and core deepest states the system is allowed to achieve and
    update the idle states accordingly.

    Acked-by: Santosh Shilimkar
    Acked-by: Jean Pihet
    Signed-off-by: Nishanth Menon
    [khilman: fixed additional user of this API in OMAP CPUidle driver]
    Signed-off-by: Kevin Hilman

    Nishanth Menon
     

02 Nov, 2010

1 commit

  • "gadget", "through", "command", "maintain", "maintain", "controller", "address",
    "between", "initiali[zs]e", "instead", "function", "select", "already",
    "equal", "access", "management", "hierarchy", "registration", "interest",
    "relative", "memory", "offset", "already",

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Jiri Kosina

    Uwe Kleine-König
     

09 Oct, 2010

1 commit

  • Only OMAP2+ platforms have the System Control Module (SCM) IP block.
    In the past, we've kept the SCM header file in plat-omap. This has
    led to abuse - device drivers including it; includes being added that
    create implicit dependencies on OMAP2+ builds; etc.

    In response, move the SCM headers into mach-omap2/.

    As part of this, remove the direct SCM access from the OMAP UDC
    driver. It was clearly broken. The UDC code needs an indepth review for
    use on OMAP2+ chips.

    Signed-off-by: Paul Walmsley
    Cc: Cory Maccarrone
    Cc: Kyungmin Park

    Paul Walmsley
     

02 Oct, 2010

1 commit


24 Sep, 2010

1 commit

  • In an effort to simplify the core idle path, move any device-specific
    special case handling from the core PM idle path into the CPUidle
    pre-idle checking path.

    This keeps the core, interrupts-disabled idle path streamlined and
    independent of any device-specific handling, and also allows CPUidle
    to do the checking only for certain C-states as needed. This patch
    has the device checks in place for all states with the CHECK_BM flag,
    namely all states >= C2.

    This patch was inspired by a similar patch written by Tero Kristo as
    part of a larger series to add INACTIVE state support.

    NOTE: This is a baby-step towards decoupling device idle (or system
    idle) from CPU idle. Eventually, CPUidle should only manage the CPU,
    and device/system idle should be managed elsewhere.

    Cc: Tero Kristo
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

24 Feb, 2010

3 commits

  • Different boards benefit differently from the available
    seven C-states for cpu idle. In most cases, only few,
    properly spaced (in terms of consumption and latency)
    C-states are required to make the power management
    optimal. Hence we need a possibility to pass which
    C-states are actually used for each board.

    So added the valid field to cpuidle_params and added
    support to 3430sdp, which uses the paramenter passing.

    Signed-off-by: Kalle Jokiniemi
    Signed-off-by: Kevin Hilman

    Kalle Jokiniemi
     
  • The CPUidle C state latencies and thresholds are dependent on various
    board specific details. This patch makes it possible to configure
    these values from the respective board files.

    omap3_pm_init_cpuidle() can now be optionally called from board files
    to pass board specific cpuidle parameters. If the board files do not
    use this function to pass the params default values are used which
    might cause higher consumption dur to wrong state selection by the
    governor.

    This patch only updates the 3430sdp board files to use
    omap3_pm_init_cpuidle().

    From Kalle, in addition to original patch from Rajendra:

    Building without CONFIG_CPU_IDLE or CONFIG_PM causes build to fail if
    cpu idle parameters are tried to pass using omap3_pm_init_cpuidle
    function.

    Signed-off-by: Rajendra Nayak
    Signed-off-by: Kalle Jokiniemi
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     
  • When 'enable_off_mode' is 0, the target power state for MPU
    and CORE was locally changed to PWRDM_POWER_RET but, the
    statistics are updated for idle state originally selected
    by the governor.

    This patch 'invalidates' the idle states that lead either of
    MPU or Core to PWRDM_POWER_OFF state when 'enable_off_mode'
    is '0'. The states are valid once 'enable_off_mode' is set
    to '1'.

    Added function next_valid_state() to check if current state
    is valid; else get the next valid state. It is called from
    omap3_enter_idle_bm().

    Signed-off-by: Sanjeev Premi
    Signed-off-by: Kevin Hilman

    Sanjeev Premi
     

21 Jan, 2010

1 commit


12 Nov, 2009

9 commits