lkml.org 
[lkml]   [2009]   [Oct]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[v9 PATCH 9/9]: POWER: Enable default_idle when power_save=off.
    * Arun R Bharadwaj <arun@linux.vnet.ibm.com> [2009-10-16 15:08:50]:

    This patch enables default_idle when power_save=off kernel boot
    option is specified.

    Earlier, this was done by setting ppc_md.power_save = NULL and hence
    HMT_low() and HMT_very_low() was called. Now this is defined under
    default_idle() and hence by setting boot_option_idle_override = 1,
    the cpuidle registration stuff does not happen and hence default_idle
    is chosen in cpuidle_idle_call.

    Signed-off-by: Arun R Bharadwaj <arun@linux.vnet.ibm.com>
    ---
    arch/powerpc/include/asm/processor.h | 2 ++
    arch/powerpc/kernel/idle.c | 4 +++-
    arch/powerpc/platforms/pseries/processor_idle.c | 5 +++++
    3 files changed, 10 insertions(+), 1 deletion(-)

    Index: linux.trees.git/arch/powerpc/include/asm/processor.h
    ===================================================================
    --- linux.trees.git.orig/arch/powerpc/include/asm/processor.h
    +++ linux.trees.git/arch/powerpc/include/asm/processor.h
    @@ -332,6 +332,8 @@ static inline unsigned long get_clean_sp
    }
    #endif

    +extern int boot_option_idle_override;
    +
    #endif /* __KERNEL__ */
    #endif /* __ASSEMBLY__ */
    #endif /* _ASM_POWERPC_PROCESSOR_H */
    Index: linux.trees.git/arch/powerpc/kernel/idle.c
    ===================================================================
    --- linux.trees.git.orig/arch/powerpc/kernel/idle.c
    +++ linux.trees.git/arch/powerpc/kernel/idle.c
    @@ -40,9 +40,11 @@
    #define cpu_should_die() 0
    #endif

    +int boot_option_idle_override = 0;
    +
    static int __init powersave_off(char *arg)
    {
    - ppc_md.power_save = NULL;
    + boot_option_idle_override = 1;
    return 0;
    }
    __setup("powersave=off", powersave_off);
    Index: linux.trees.git/arch/powerpc/platforms/pseries/processor_idle.c
    ===================================================================
    --- linux.trees.git.orig/arch/powerpc/platforms/pseries/processor_idle.c
    +++ linux.trees.git/arch/powerpc/platforms/pseries/processor_idle.c
    @@ -185,6 +185,11 @@ static int __init pseries_processor_idle
    int cpu;
    int result;

    + if (boot_option_idle_override) {
    + printk(KERN_DEBUG "Using default idle\n");
    + return 0;
    + }
    +
    result = cpuidle_register_driver(&pseries_idle_driver);

    if (result < 0)

    \
     
     \ /
      Last update: 2009-10-16 12:01    [W:0.023 / U:33.912 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site