From patchwork Tue Dec 6 04:38:09 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob X-Patchwork-Id: 5508 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id E03EA23E10 for ; Tue, 6 Dec 2011 04:38:29 +0000 (UTC) Received: from mail-lpp01m010-f52.google.com (mail-lpp01m010-f52.google.com [209.85.215.52]) by fiordland.canonical.com (Postfix) with ESMTP id BED0AA1863A for ; Tue, 6 Dec 2011 04:38:29 +0000 (UTC) Received: by mail-lpp01m010-f52.google.com with SMTP id m6so727409lag.11 for ; Mon, 05 Dec 2011 20:38:29 -0800 (PST) Received: by 10.152.134.179 with SMTP id pl19mr7959042lab.13.1323146309665; Mon, 05 Dec 2011 20:38:29 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.152.41.198 with SMTP id h6cs296310lal; Mon, 5 Dec 2011 20:38:29 -0800 (PST) Received: by 10.224.95.211 with SMTP id e19mr4725552qan.34.1323146307602; Mon, 05 Dec 2011 20:38:27 -0800 (PST) Received: from mail-qw0-f43.google.com (mail-qw0-f43.google.com [209.85.216.43]) by mx.google.com with ESMTPS id hp8si12279923qab.80.2011.12.05.20.38.26 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 05 Dec 2011 20:38:27 -0800 (PST) Received-SPF: neutral (google.com: 209.85.216.43 is neither permitted nor denied by best guess record for domain of rob.lee@linaro.org) client-ip=209.85.216.43; Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.216.43 is neither permitted nor denied by best guess record for domain of rob.lee@linaro.org) smtp.mail=rob.lee@linaro.org Received: by qabg27 with SMTP id g27so824241qab.16 for ; Mon, 05 Dec 2011 20:38:26 -0800 (PST) Received: by 10.224.32.20 with SMTP id a20mr7554012qad.61.1323146306081; Mon, 05 Dec 2011 20:38:26 -0800 (PST) Received: from b18647-20 ([23.19.172.17]) by mx.google.com with ESMTPS id fm5sm29806936qab.20.2011.12.05.20.38.24 (version=SSLv3 cipher=OTHER); Mon, 05 Dec 2011 20:38:25 -0800 (PST) From: Robert Lee To: linux@arm.linux.org.uk, s.hauer@pengutronix.de Cc: shawn.guo@freescale.com, nicolas.ferre@atmel.com, linux@maxim.org.za, kgene.kim@samsung.com, amit.kachhap@linaro.org, magnus.damm@gmail.com, khilman@ti.com, nsekhar@ti.com, daniel.lezcano@linaro.org, mturquette@linaro.org, vincent.guittot@linaro.org, arnd.bergmann@linaro.org, amit.kucheria@linaro.org, linux-arm-kernel@lists.infradead.org, patches@linaro.org Subject: [RFC PATCH 6/8] ARM: shmobile: Replace init with new common ARM cpuidle init code Date: Mon, 5 Dec 2011 22:38:09 -0600 Message-Id: <1323146291-10676-7-git-send-email-rob.lee@linaro.org> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1323146291-10676-1-git-send-email-rob.lee@linaro.org> References: <1323146291-10676-1-git-send-email-rob.lee@linaro.org> Replace duplicated cpuidle init functionality with common ARM cpuidle init implementation. Signed-off-by: Robert Lee --- arch/arm/mach-shmobile/cpuidle.c | 33 +++++++-------------------------- 1 files changed, 7 insertions(+), 26 deletions(-) diff --git a/arch/arm/mach-shmobile/cpuidle.c b/arch/arm/mach-shmobile/cpuidle.c index 1b23342..0314fa2 100644 --- a/arch/arm/mach-shmobile/cpuidle.c +++ b/arch/arm/mach-shmobile/cpuidle.c @@ -15,6 +15,7 @@ #include #include #include +#include static void shmobile_enter_wfi(void) { @@ -29,25 +30,11 @@ static int shmobile_cpuidle_enter(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { - ktime_t before, after; - - before = ktime_get(); - - local_irq_disable(); - local_fiq_disable(); - shmobile_cpuidle_modes[index](); - local_irq_enable(); - local_fiq_enable(); - - after = ktime_get(); - dev->last_residency = ktime_to_ns(ktime_sub(after, before)) >> 10; - return index; } -static struct cpuidle_device shmobile_cpuidle_dev; static struct cpuidle_driver shmobile_cpuidle_driver = { .name = "shmobile_cpuidle", .owner = THIS_MODULE, @@ -66,21 +53,15 @@ void (*shmobile_cpuidle_setup)(struct cpuidle_driver *drv); static int shmobile_cpuidle_init(void) { - struct cpuidle_device *dev = &shmobile_cpuidle_dev; - struct cpuidle_driver *drv = &shmobile_cpuidle_driver; - int i; - - for (i = 0; i < CPUIDLE_STATE_MAX; i++) - drv->states[i].enter = shmobile_cpuidle_enter; + int ret; if (shmobile_cpuidle_setup) - shmobile_cpuidle_setup(drv); - - cpuidle_register_driver(drv); + shmobile_cpuidle_setup(&shmobile_cpuidle_driver); - dev->state_count = drv->state_count; - cpuidle_register_device(dev); + ret = arm_cpuidle_init(&shmobile_cpuidle_driver, + shmobile_cpuidle_enter, + NULL); - return 0; + return ret; } late_initcall(shmobile_cpuidle_init);