30 Nov, 2011

1 commit


26 Jul, 2011

1 commit

  • * 'next/cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (133 commits)
    ARM: EXYNOS4: Change devname for FIMD clkdev
    ARM: S3C64XX: Cleanup mach/regs-fb.h from mach-s3c64xx
    ARM: S5PV210: Cleanup mach/regs-fb.h from mach-s5pv210
    ARM: S5PC100: Cleanup mach/regs-fb.h from mach-s5pc100
    ARM: S3C24XX: Use generic s3c_set_platdata for devices
    ARM: S3C64XX: Use generic s3c_set_platdata for OneNAND
    ARM: SAMSUNG: Use generic s3c_set_platdata for NAND
    ARM: SAMSUNG: Use generic s3c_set_platdata for USB OHCI
    ARM: SAMSUNG: Use generic s3c_set_platdata for HWMON
    ARM: SAMSUNG: Use generic s3c_set_platdata for FB
    ARM: SAMSUNG: Use generic s3c_set_platdata for TS
    ARM: S3C64XX: Add PWM backlight support on SMDK6410
    ARM: S5P64X0: Add PWM backlight support on SMDK6450
    ARM: S5P64X0: Add PWM backlight support on SMDK6440
    ARM: S5PC100: Add PWM backlight support on SMDKC100
    ARM: S5PV210: Add PWM backlight support on SMDKV210
    ARM: EXYNOS4: Add PWM backlight support on SMDKC210
    ARM: EXYNOS4: Add PWM backlight support on SMDKV310
    ARM: SAMSUNG: Create a common infrastructure for PWM backlight support
    clocksource: convert 32-bit down counting clocksource on S5PV210/S5P64X0
    ...

    Fix up trivial conflict in arch/arm/mach-imx/mach-scb9328.c

    Linus Torvalds
     

30 Jun, 2011

2 commits

  • Move the saving of the auxiliary control registers into C; there's
    no need for this to be in assembly code. This results in less
    assembly code to deal with in OMAP.

    Kevin tested full-chip retention and off on 3430/n900, 3530/Overo and
    3630/Zoom3.

    Tested-by: Kevin Hilman
    Signed-off-by: Russell King

    Russell King
     
  • Most of the ASM sleep code (in arch/arm/mach-omap2/sleep34xx.S)
    is copied to internal SRAM at boot and after wake-up from CORE OFF
    mode. However only a small part of the code really needs to run from
    internal SRAM.

    This fix lets most of the ASM idle code run from the DDR in order to
    minimize the SRAM usage and the overhead in the code copy.

    The only pieces of code that are mandatory in SRAM are:
    - the i443 erratum WA,
    - the i581 erratum WA,
    - the security extension code.

    SRAM usage:
    - original code:
    . 560 bytes for omap3_sram_configure_core_dpll (used by DVFS),
    . 852 bytes for omap_sram_idle (used by suspend/resume in RETention),
    . 124 bytes for es3_sdrc_fix (used by suspend/resume in OFF mode on ES3.x),
    . 108 bytes for save_secure_ram_context (used on HS parts only).

    With this fix the usage for suspend/resume in RETention goes down 288
    bytes, so the gain in SRAM usage for suspend/resume is 564 bytes.

    Also fixed the SRAM initialization sequence to avoid an unnecessary
    copy to SRAM at boot time and for readability.

    Tested on Beagleboard (ES2.x) in idle with full RET and OFF modes.

    Kevin Hilman tested retention and off on 3430/n900, 3530/Overo and
    3630/Zoom3

    Signed-off-by: Jean Pihet
    Reviewed-by: Kevin Hilman
    Tested-by: Kevin Hilman
    Signed-off-by: Russell King

    Jean Pihet
     

29 Jun, 2011

1 commit


28 Jun, 2011

1 commit

  • Remove OMAP3-specific register dumping feature from PM debug layer.
    This is removed because:

    - it's ugly
    - it's OMAP3-specific, and will obviously not scale to OMAP4+
    - userspace /dev/mem-based tools (like omapconf) can do this much better

    Tested-by: Santosh Shilimkar
    Acked-by: Santosh Shilimkar
    Acked-by: Jean Pihet
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

21 Jun, 2011

2 commits

  • Tested-by: Santosh Shilimkar
    Acked-by: Santosh Shilimkar
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     
  • Remove the OMAP-specific PM debug 'sleep_while_idle' feature which is
    currently available as an OMAP-specific debugfs entry.

    This duplicates existing ARM-generic functionality available as a
    boot-time option using the boot cmdline option 'hohlt'.

    If runtime configuration of this is needed, then adding a debugfs
    entry for the ARM-generic hlt/nohlt interface should be added.

    Tested-by: Santosh Shilimkar
    Acked-by: Santosh Shilimkar
    Acked-by: Jean Pihet
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

20 Jun, 2011

1 commit


20 May, 2011

2 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
     
  • - 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
     

18 Mar, 2011

1 commit

  • * 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (258 commits)
    omap: zoom: host should not pull up wl1271's irq line
    arm: plat-omap: iommu: fix request_mem_region() error path
    OMAP2+: Common CPU DIE ID reading code reads wrong registers for OMAP4430
    omap4: mux: Remove duplicate mux modes
    omap: iovmm: don't check 'da' to set IOVMF_DA_FIXED flag
    omap: iovmm: disallow mapping NULL address when IOVMF_DA_ANON is set
    omap2+: mux: Fix compile when CONFIG_OMAP_MUX is not selected
    omap4: board-omap4panda: Initialise the serial pads
    omap3: board-3430sdp: Initialise the serial pads
    omap4: board-4430sdp: Initialise the serial pads
    omap2+: mux: Add macro for configuring static with omap_hwmod_mux_init
    omap2+: mux: Remove the use of IDLE flag
    omap2+: Add separate list for dynamic pads to mux
    perf: add OMAP support for the new power events
    OMAP4: Add IVA OPP enteries.
    OMAP4: Update Voltage Rail Values for MPU, IVA and CORE
    OMAP4: Enable 800 MHz and 1 GHz MPU-OPP
    OMAP3+: OPP: Replace voltage values with Macros
    OMAP3: wdtimer: Fix CORE idle transition
    Watchdog: omap_wdt: add fine grain runtime-pm
    ...

    Fix up various conflicts in
    - arch/arm/mach-omap2/board-omap3evm.c
    - arch/arm/mach-omap2/clock3xxx_data.c
    - arch/arm/mach-omap2/usb-musb.c
    - arch/arm/plat-omap/include/plat/usb.h
    - drivers/usb/musb/musb_core.h

    Linus Torvalds
     

10 Mar, 2011

1 commit

  • Voltage control on TWL can be done using VMODE/I2C1/I2C_SR.
    Since almost all platforms use I2C_SR on omap3, omap3_twl_init by
    default expects that OMAP's I2C_SR is plugged in to TWL's I2C
    and calls omap3_twl_set_sr_bit. On platforms where I2C_SR is not connected,
    the board files are expected to call omap3_twl_set_sr_bit(false) to
    ensure that I2C_SR path is not set for voltage control and prevent
    the default behavior of omap3_twl_init.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Thara Gopinath
    Signed-off-by: Shweta Gulati
    Cc: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Kevin Hilman

    Thara Gopinath
     

04 Feb, 2011

1 commit

  • The new fncpy API is better suited* for copying some
    code to SRAM at runtime. This patch changes the ad-hoc
    code to the more generic fncpy API.

    *: 1. fncpy ensures that the thumb mode bit is propagated,
    2. fncpy provides the security of type safety between the
    original function and the sram function pointer.

    Tested OK on OMAP3 in low power modes (RET/OFF)
    using omap2plus_defconfig with !CONFIG_THUMB2_KERNEL.
    Compile tested on OMAP1/2 using omap1_defconfig.

    Boot tested on OMAP1 & OMAP2
    Tested OK with suspend/resume on OMAP2420/n810

    Boots fine on osk5912 and n800

    Signed-off-by: Jean Pihet
    Acked-by: Kevin Hilman
    Acked-by: Tony Lindgren
    Reviewed-by: Dave Martin
    Tested-by: Kevin Hilman
    Tested-by: Tony Lindgren
    Signed-off-by: Russell King

    Jean Pihet
     

23 Dec, 2010

3 commits

  • TWL6030 is the power IC used along with OMAP4 in OMAP4 SDPs,
    blaze boards and panda boards. This patch registers the OMAP4
    PMIC specific information with the voltage layer.
    This also involves implementing a different formula for
    voltage to vsel and vsel to voltage calculations from
    TWL4030.

    Signed-off-by: Thara Gopinath
    Signed-off-by: Kevin Hilman

    Thara Gopinath
     
  • This patch registers the TWL4030 PMIC specific informtion
    with the voltage driver. Failing this patch the voltage driver
    is unware of the formula to use for vsel to voltage and vice versa
    conversion and lot of other PMIC dependent parameters.

    This file is based on the arch/arm/plat-omap opp_twl_tpl.c file
    by Paul Walmsley. The original file is replaced by this file.

    Signed-off-by: Thara Gopinath
    Signed-off-by: Kevin Hilman

    Thara Gopinath
     
  • This patch adds support for device registration of various
    smartreflex module present in the system. This patch introduces
    the platform data for smartreflex devices which include
    the efused n-target vaules, a parameter to indicate
    whether smartreflex autocompensation needs to be
    enabled on init or not. An API
    omap_enable_smartreflex_on_init is provided for the
    board files to enable smartreflex autocompensation during
    system boot up.

    Signed-off-by: Thara Gopinath
    Signed-off-by: Kevin Hilman

    Thara Gopinath
     

22 Dec, 2010

10 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
     
  • …n/linux-omap-pm into omap-for-linus

    Tony Lindgren
     
  • Remove unused code:
    - macros,
    - variables,
    - unused semaphore locking API. This API shall be added back
    when needed,
    - infinite loops for debug.

    Tested on N900 and Beagleboard with full RET and OFF modes,
    using cpuidle and suspend.

    Signed-off-by: Jean Pihet
    Acked-by: Santosh Shilimkar
    Reviewed-by: Nishanth Menon
    Tested-by: Nishanth Menon
    Signed-off-by: Kevin Hilman

    Jean Pihet
     
  • 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
     
  • While coming out of MPU OSWR/OFF states, L2 controller is reseted.
    The reset behavior is implementation specific as per ARMv7 TRM and
    hence $L2 needs to be invalidated before it's use. Since the
    AUXCTRL register is also reconfigured, disable L2 cache before
    invalidating it and re-enables it afterwards. This is as per
    Cortex-A8 ARM documentation.
    Currently this is identified as being needed on OMAP3630 as the
    disable/enable is done from "public side" while, on OMAP3430, this
    is done in the "secure side".

    Cc: Kevin Hilman
    Cc: Tony Lindgren

    Acked-by: Jean Pihet
    Acked-by: Santosh Shilimkar

    [nm@ti.com: ported to 2.6.37-rc2, added hooks to enable the logic only on 3630]
    Signed-off-by: Nishanth Menon
    Signed-off-by: Eduardo Valentin
    Signed-off-by: Peter 'p2' De Schrijver
    Signed-off-by: Kevin Hilman

    Peter 'p2' De Schrijver
     
  • Erratum id: i608
    RTA (Retention Till Access) feature is not supported and leads to device
    stability issues when enabled. This impacts modules with embedded memories
    on OMAP3630

    Workaround is to disable RTA on boot and coming out of core off.
    For disabling RTA coming out of off mode, we do this by overriding the
    restore pointer for 3630 as the first point of entry before caches are
    touched and is common for GP and HS devices. To disable earlier than
    this could be possible by modifying the PPA for HS devices, but not for
    GP devices.

    Cc: Kevin Hilman
    Cc: Tony Lindgren

    Acked-by: Jean Pihet
    Acked-by: Santosh Shilimkar

    [ambresh@ti.com: co-developer]
    Signed-off-by: Ambresh K
    Signed-off-by: Nishanth Menon
    Signed-off-by: Kevin Hilman

    Nishanth Menon
     
  • Introduce errata handling for OMAP3. This patch introduces
    errata variable and stub for initialization which will be
    filled up by follow-on patches.

    Signed-off-by: Nishanth Menon
    Signed-off-by: Kevin Hilman

    Nishanth Menon
     
  • This patch adds OPP tables for OMAP4. New file has been added to keep
    the OMAP4 opp tables and the registration of these tables with the
    generic opp framework by OMAP SoC OPP interface.

    Based on:
    http://dev.omapzoom.org/?p=santosh/kernel-omap4-base.git;a=blob;f=arch/arm/mach-omap2/opp44xx_data.c;h=252e3d0cb6050a64f390b9311c1c4977d74f762a;hb=refs/heads/omap4_next

    Signed-off-by: Thara Gopinath
    Signed-off-by: Nishanth Menon
    Signed-off-by: Kevin Hilman

    Nishanth Menon
     
  • Add OPP data for OMAP34xx and OMAP36xx and initialization functions
    to populate OPP tables based on current SoC.
    introduce an OMAP generic opp initialization routine which OMAP3
    and OMAP4+ SoCs can use to register their OPP definitions.

    Cc: Thomas Petazzoni
    Signed-off-by: Kevin Hilman
    Signed-off-by: Nishanth Menon
    Signed-off-by: Kevin Hilman

    Nishanth Menon
     

02 Oct, 2010

1 commit

  • Since 6cdee91257bee23a46dc869ca62469b67cba2c7e the references to
    enable_off_mode and sleep_while_idle can't be resolved when CONFIG_PM_DEBUG
    isn't set:
    arch/arm/mach-omap2/built-in.o: In function `omap_uart_restore_context':
    arch/arm/mach-omap2/serial.c:253: undefined reference to `enable_off_mode'
    arch/arm/mach-omap2/built-in.o: In function `omap3_can_sleep':
    arch/arm/mach-omap2/pm34xx.c:479: undefined reference to `sleep_while_idle'

    Simply #define these in pm.h just like omap2_pm_debug.

    Signed-off-by: Loïc Minier
    [khilman: moved down into existing #ifdef section]
    Signed-off-by: Kevin Hilman

    Loïc Minier
     

24 Sep, 2010

2 commits


13 May, 2010

1 commit


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

  • The PM debug code fails to build on when CONFIG_DEBUG_FS is not
    enabled.

    Build error log:
    arch/arm/mach-omap2/built-in.o: In function `omap_sram_idle':
    arch/arm/mach-omap2/pm34xx.c:449: undefined reference to `pm_dbg_regset_save'
    arch/arm/mach-omap2/pm34xx.c:460: undefined reference to `pm_dbg_regset_save'
    arch/arm/mach-omap2/built-in.o: In function `configure_vc':
    arch/arm/mach-omap2/pm34xx.c:1237: undefined reference to `pm_dbg_regset_init'
    arch/arm/mach-omap2/pm34xx.c:1238: undefined reference to `pm_dbg_regset_init'
    make: *** [.tmp_vmlinux1] Error 1

    This patch fixes the above errors.

    Kernel booting is tested on omap zoom2 and zoom3 boards.

    Signed-off-by: Manjunatha GK
    Signed-off-by: Kevin Hilman

    Manjunatha GK
     

12 Nov, 2009

5 commits