From patchwork Wed Nov 25 04:09:15 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nishanth Menon X-Patchwork-Id: 62673 X-Patchwork-Delegate: khilman@deeprootsystems.com Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nAP49gTu007073 for ; Wed, 25 Nov 2009 04:09:42 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934502AbZKYEJd (ORCPT ); Tue, 24 Nov 2009 23:09:33 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S934500AbZKYEJc (ORCPT ); Tue, 24 Nov 2009 23:09:32 -0500 Received: from comal.ext.ti.com ([198.47.26.152]:39451 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934502AbZKYEJ1 (ORCPT ); Tue, 24 Nov 2009 23:09:27 -0500 Received: from dlep33.itg.ti.com ([157.170.170.112]) by comal.ext.ti.com (8.13.7/8.13.7) with ESMTP id nAP49WJL007512 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 24 Nov 2009 22:09:32 -0600 Received: from legion.dal.design.ti.com (localhost [127.0.0.1]) by dlep33.itg.ti.com (8.13.7/8.13.7) with ESMTP id nAP49PUB015136; Tue, 24 Nov 2009 22:09:25 -0600 (CST) Received: from senorita (senorita.am.dhcp.ti.com [128.247.75.1]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id nAP49PZ29783; Tue, 24 Nov 2009 22:09:25 -0600 (CST) Received: by senorita (Postfix, from userid 1000) id C4084C1DF; Tue, 24 Nov 2009 22:09:24 -0600 (CST) From: Nishanth Menon To: linux-omap Cc: Nishanth Menon , Benoit Cousson , Kevin Hilman , Madhusudhan Chikkature Rajashekar , Paul Walmsley , Romit Dasgupta , Sanjeev Premi , Santosh Shilimkar , Sergio Alberto Aguirre Rodriguez , Thara Gopinath , Vishwanath Sripathy Subject: [PATCH 06/10 V3] omap3: pm: use opp accessor functions for omap-target Date: Tue, 24 Nov 2009 22:09:15 -0600 Message-Id: <1259122159-1583-7-git-send-email-nm@ti.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1259122159-1583-6-git-send-email-nm@ti.com> References: <1259122159-1583-1-git-send-email-nm@ti.com> <1259122159-1583-2-git-send-email-nm@ti.com> <1259122159-1583-3-git-send-email-nm@ti.com> <1259122159-1583-4-git-send-email-nm@ti.com> <1259122159-1583-5-git-send-email-nm@ti.com> <1259122159-1583-6-git-send-email-nm@ti.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index 449b6b6..7b3ca11 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c @@ -111,14 +111,17 @@ static int omap_target(struct cpufreq_policy *policy, cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); #elif defined(CONFIG_ARCH_OMAP3) && !defined(CONFIG_OMAP_PM_NONE) if (mpu_opps) { - int ind; - for (ind = 1; ind <= MAX_VDD1_OPP; ind++) { - if (mpu_opps[ind].rate/1000 >= target_freq) { - omap_pm_cpu_set_freq - (mpu_opps[ind].rate); - break; - } - } + unsigned long freq = target_freq * 1000; + struct omap_opp *opp = NULL; + int res; + /* see if we have exact freq match */ + res = opp_is_valid(&opp, mpu_opps, freq); + /* Get next best if we cant find a exact match */ + if (res) + res = opp_get_higher_opp(&opp, &freq, mpu_opps); + + if (!res) + omap_pm_cpu_set_freq(freq); } #endif return ret;