Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752783Ab0DOLMf (ORCPT ); Thu, 15 Apr 2010 07:12:35 -0400 Received: from e23smtp01.au.ibm.com ([202.81.31.143]:51583 "EHLO e23smtp01.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751530Ab0DOLMe (ORCPT ); Thu, 15 Apr 2010 07:12:34 -0400 Date: Thu, 15 Apr 2010 16:42:27 +0530 From: Arun R Bharadwaj To: peterz@infradead.org Cc: Benjamin Herrenschmidt , Ingo Molnar , Vaidyanathan Srinivasan , Dipankar Sarma , Balbir Singh , Arun Bharadwaj , linux-kernel@vger.kernel.org Subject: [v12 PATCH 8/8]: POWER: Enable default_idle when power_save=off. Message-ID: <20100415111227.GI16760@linux.vnet.ibm.com> Reply-To: arun@linux.vnet.ibm.com References: <20100415110046.GA16760@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <20100415110046.GA16760@linux.vnet.ibm.com> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2513 Lines: 69 * Arun R Bharadwaj [2010-04-15 16:30:46]: 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 --- 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 @@ -364,6 +364,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; + 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 @@ -167,6 +167,11 @@ static int __init pseries_processor_idle struct cpuidle_subsystem *pseries_subsys = &cpuidle_subsys; + if (boot_option_idle_override) { + printk(KERN_DEBUG "Using default idle\n"); + return 0; + } + result = cpuidle_register_driver(&pseries_idle_driver); if (result < 0) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/