• Nicolas Pitre's avatar
    sched/idle, PPC: Remove redundant cpuidle_idle_call() · d8c6ad31
    Nicolas Pitre authored
    The core idle loop now takes care of it.  However a few things need
    checking:
    
    - Invocation of cpuidle_idle_call() in pseries_lpar_idle() happened
      through arch_cpu_idle() and was therefore always preceded by a call
      to ppc64_runlatch_off().  To preserve this property now that
      cpuidle_idle_call() is invoked directly from core code, a call to
      ppc64_runlatch_off() has been added to idle_loop_prolog() in
      platforms/pseries/processor_idle.c.
    
    - Similarly, cpuidle_idle_call() was followed by ppc64_runlatch_off()
      so a call to the later has been added to idle_loop_epilog().
    
    - And since arch_cpu_idle() always made sure to re-enable IRQs if they
      were not enabled, this is now
      done in idle_loop_epilog() as well.
    
    The above was made in order to keep the execution flow close to the
    original.  I don't know if that was strictly necessary. Someone well
    aquainted with the platform details might find some room for possible
    optimizations.
    Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
    Reviewed-by: default avatarPreeti U Murthy <preeti@linux.vnet.ibm.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-sh@vger.kernel.org
    Cc: linux-pm@vger.kernel.org
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: linaro-kernel@lists.linaro.org
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/n/tip-47o4m03citrfg9y1vxic5asb@git.kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    d8c6ad31
cpuidle-pseries.c 5.65 KB