1. 23 Apr, 2013 2 commits
  2. 09 Apr, 2013 5 commits
  3. 31 Mar, 2013 2 commits
  4. 15 Dec, 2012 1 commit
    • Paul Walmsley's avatar
      ARM: OMAP3/4: cpuidle: fix sparse and checkpatch warnings · 9db316b6
      Paul Walmsley authored
      
      
      Fix the following sparse warnings in the OMAP3/4 CPUIdle code:
      
      arch/arm/mach-omap2/cpuidle34xx.c:272:1: warning: symbol 'omap3_idle_dev' was not declared. Should it be static?
      arch/arm/mach-omap2/cpuidle34xx.c:274:23: warning: symbol 'omap3_idle_driver' was not declared. Should it be static?
      arch/arm/mach-omap2/cpuidle44xx.c:164:1: warning: symbol 'omap4_idle_dev' was not declared. Should it be static?
      arch/arm/mach-omap2/cpuidle44xx.c:166:23: warning: symbol 'omap4_idle_driver' was not declared. Should it be static?
      
      Also fix the following checkpatch warnings:
      
      WARNING: please, no space before tabs
      #44: FILE: arch/arm/mach-omap2/cpuidle34xx.c:105:
      +^I.name = ^I"omap3_idle",$
      
      WARNING: please, no space before tabs
      #45: FILE: arch/arm/mach-omap2/cpuidle34xx.c:106:
      +^I.owner = ^ITHIS_MODULE,$
      
      ERROR: code indent should use tabs where possible
      #211: FILE: arch/arm/mach-omap2/cpuidle44xx.c:74:
      +                        /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */$
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      9db316b6
  5. 23 Aug, 2012 1 commit
    • Arnd Bergmann's avatar
      ARM: omap: allow building omap44xx without SMP · c7a9b09b
      Arnd Bergmann authored
      
      
      The new omap4 cpuidle implementation currently requires
      ARCH_NEEDS_CPU_IDLE_COUPLED, which only works on SMP.
      
      This patch makes it possible to build a non-SMP kernel
      for that platform. This is not normally desired for
      end-users but can be useful for testing.
      
      Without this patch, building rand-0y2jSKT results in:
      
      drivers/cpuidle/coupled.c: In function 'cpuidle_coupled_poke':
      drivers/cpuidle/coupled.c:317:3: error: implicit declaration of function '__smp_call_function_single' [-Werror=implicit-function-declaration]
      
      It's not clear if this patch is the best solution for
      the problem at hand. I have made sure that we can now
      build the kernel in all configurations, but that does
      not mean it will actually work on an OMAP44xx.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      c7a9b09b
  6. 25 Jul, 2012 3 commits
    • Santosh Shilimkar's avatar
      ARM: OMAP4: CPUidle: Open broadcast clock-event device. · b93d70ae
      Santosh Shilimkar authored
      OMAP4 idle driver uses CLOCK_EVT_NOTIFY_BROADCAST_[ENTER/EXIT]
      for broadcast clock events. But _ENTER/_EXIT doesn't really open
      broadcast clock events and to explicitly setup the broadcast device,
      CLOCK_EVT_NOTIFY_BROADCAST_ON should be used.
      
      Add the missing CLOCK_EVT_NOTIFY_BROADCAST_ON clockevent notifications.
      This will setup the broadcast timer in either periodic/oneshot modes
      correctly. Recent clockevent infrastructure change 77b0d60c {leave the
      broadcast device in shutdown mode when not needed} exposed this bug
      leading to boot hangs in oneshot mode. Prior to this, periodic broadcast
      mode was also broken. This change fixes both the periodic/oneshot broadcast
      modes.
      
      Discussion thread :
      	https://lkml.org/lkml/2012/4/9/13
      
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      b93d70ae
    • Kevin Hilman's avatar
      ARM: OMAP4: CPUidle: add synchronization for coupled idle states · 5b4d5bcc
      Kevin Hilman authored
      
      
      With coupled idle states, a failure for any CPU to hit a low power
      state must be coordinated such that all CPUs abort.
      
      On OMAP4, when entering a coupled state, CPU0 has to wait for CPU1 to
      enter its low power state before it can enter its low power state.
      
      This is implemented by letting CPU0 wait for the CPU1 powerdomain to
      hit off.  However, there are conditions where CPU1 might abort/fail
      and not hit off while CPU0 is waiting for it.  For example, a CPU1
      wakeup or a failed attempt to hit off due to hardware conditions.
      
      To avoid the deadlock where CPU0 would continually wait for CPU1 to
      hit off-mode, this patch adds a flag to signal when each CPU has come
      out of its low-power state.  CPU0 then checks whether CPU1 has hit off
      *or* has already completed its attempt to hit off.  If the latter,
      CPU0 must abort its attempt to hit a low-power state so the coupled
      state enter method can return.
      
      In addition, cpuidle_coupled_parallel_barrier() is used to ensure the
      clearing of the 'done' flag is synchronized on all CPUs.
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      5b4d5bcc
    • Santosh Shilimkar's avatar
      ARM: OMAP4: CPUidle: Use coupled cpuidle states to implement SMP cpuidle. · dd3ad97c
      Santosh Shilimkar authored
      
      
      OMAP4 CPUDILE driver is converted mainly based on notes from the
      coupled cpuidle patch series.
      
      The changes include :
      - Register both CPUs and C-states to cpuidle driver.
      - Set struct cpuidle_device.coupled_cpus
      - Set struct cpuidle_device.safe_state to non coupled state.
      - Set CPUIDLE_FLAG_COUPLED in struct cpuidle_state.flags for each
        state that affects multiple cpus.
      - Separate ->enter hooks for coupled & simple idle.
      - CPU0 wait loop for CPU1 power transition.
      - CPU1 wakeup mechanism for the idle exit.
      - Enabling ARCH_NEEDS_CPU_IDLE_COUPLED for OMAP4.
      
      Thanks to Kevin Hilman and Colin Cross on the suggestions/fixes
      on the intermediate version of this patch.
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      dd3ad97c
  7. 19 Jun, 2012 1 commit
    • Daniel Lezcano's avatar
      ARM: OMAP3/4: consolidate cpuidle Makefile · 164e0cbf
      Daniel Lezcano authored
      
      
      The current Makefile compiles the cpuidle34xx.c and cpuidle44xx.c files
      even if the cpuidle option is not set in the kernel.
      
      This patch fixes this by creating a section in the Makefile where these
      files are compiled only if the CONFIG_CPU_IDLE option is set.
      
      This modification breaks an implicit dependency between CPU_IDLE and PM as
      they belong to the same block in the Makefile. This is fixed in the Kconfig
      by selecting explicitely PM is CPU_IDLE is set.
      
      The linux coding style recommend to use no-op functions in the headers
      when the subsystem is disabled instead of adding big section in C files.
      
      This patch fix this also.
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Reviewed-by: default avatarJean Pihet <j-pihet@ti.com>
      Reviewed-by: default avatarRajendra Nayak <rnayak@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      164e0cbf
  8. 03 May, 2012 7 commits
  9. 21 Mar, 2012 1 commit
  10. 14 Feb, 2012 1 commit
  11. 08 Dec, 2011 2 commits