From patchwork Wed Oct 30 22:52:12 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 21290 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-yh0-f71.google.com (mail-yh0-f71.google.com [209.85.213.71]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 40416244A4 for ; Wed, 30 Oct 2013 22:52:43 +0000 (UTC) Received: by mail-yh0-f71.google.com with SMTP id f64sf4574829yha.2 for ; Wed, 30 Oct 2013 15:52:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:in-reply-to:references :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=lmdIm6d4QAM84a8ztHfD+CaFCs7g5kVyTS1+smDB5Zg=; b=VmELKyzT0Wfw2HLe/BvCwEqA7ufoyj7ebix9GiD1Ki/aGUdiKmG6YUicQZAoCZBro+ SXGfmOlO3cCx3ciVh/APoAOa2lVU8GLed0+1IGO57kwsbyglouZkd9pXsDCStRkl/DGW 9pCJSheR8JbuAEyWqs1bEhovpMcr5czNnECZKF6SKN0SmH5wHIVGMVDNAwFusNVUxrCS k4dl01e1PVhlhEsnwh7BhGAWGnDcLmAvVnkndI0guQnqOLe9r2bsKO9yGl8u1xAgwl3T 9dzO+qPyvA1JtY15RxSdr9GeqPDADmbGEINCrmqshh1XkuiZWWX3wqXkBvyFv4RdkCcZ lLZA== X-Gm-Message-State: ALoCoQnSITZRyU3/8WAV7XlJKkAS5v6+FvfvjFvmi0v4B1FBJ4DOyUQ0lh2H0dvQPC3Thm9d0+KP X-Received: by 10.58.50.161 with SMTP id d1mr68403veo.24.1383173563031; Wed, 30 Oct 2013 15:52:43 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.49.76.100 with SMTP id j4ls739747qew.29.gmail; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) X-Received: by 10.220.74.69 with SMTP id t5mr57120vcj.18.1383173562912; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) Received: from mail-ve0-f170.google.com (mail-ve0-f170.google.com [209.85.128.170]) by mx.google.com with ESMTPS id cg7si84701vdc.39.2013.10.30.15.52.42 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 30 Oct 2013 15:52:42 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.128.170 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.128.170; Received: by mail-ve0-f170.google.com with SMTP id oy12so1522098veb.29 for ; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) X-Received: by 10.58.22.33 with SMTP id a1mr15383vef.55.1383173562828; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.220.174.196 with SMTP id u4csp316064vcz; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) X-Received: by 10.182.135.194 with SMTP id pu2mr119832obb.38.1383173562296; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) Received: from mail-oa0-f53.google.com (mail-oa0-f53.google.com [209.85.219.53]) by mx.google.com with ESMTPS id m9si128408oep.56.2013.10.30.15.52.42 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 30 Oct 2013 15:52:42 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.219.53 is neither permitted nor denied by best guess record for domain of viresh.kumar@linaro.org) client-ip=209.85.219.53; Received: by mail-oa0-f53.google.com with SMTP id n12so2195436oag.26 for ; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) X-Received: by 10.60.65.227 with SMTP id a3mr60626oet.13.1383173562006; Wed, 30 Oct 2013 15:52:42 -0700 (PDT) Received: from localhost (sccc-66-78-236-243.smartcity.com. [66.78.236.243]) by mx.google.com with ESMTPSA id s14sm774914oeo.1.2013.10.30.15.52.41 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 30 Oct 2013 15:52:41 -0700 (PDT) From: Viresh Kumar To: rjw@sisk.pl Cc: linaro-kernel@lists.linaro.org, patches@linaro.org, cpufreq@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, viresh.kumar@linaro.org Subject: [PATCH V2 Resend 14/16] cpufreq: tegra: remove target_cpu_speed[] array Date: Thu, 31 Oct 2013 04:22:12 +0530 Message-Id: X-Mailer: git-send-email 1.7.12.rc2.18.g61b472e In-Reply-To: References: In-Reply-To: References: X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: viresh.kumar@linaro.org X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.128.170 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Precedence: list Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Tegra's cpufreq driver was maintaining requested target frequencies in an array: target_cpu_speed. And then finally setting the highest requested freq in the core. This was probably done because both cores share clock line and logically we want to set both cores to the max frequency requested.. But this wasn't required to be done in individual CPUFreq drivers, its already taken care of by CPUFreq governors. They evaluate load for all CPUs and finally call target only for the frequency corresponding to max load. So, get rid of this stuff from Tegra's cpufreq driver. Acked-by: Stephen Warren Signed-off-by: Viresh Kumar --- drivers/cpufreq/tegra-cpufreq.c | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/drivers/cpufreq/tegra-cpufreq.c b/drivers/cpufreq/tegra-cpufreq.c index f42df7e..7d36b54 100644 --- a/drivers/cpufreq/tegra-cpufreq.c +++ b/drivers/cpufreq/tegra-cpufreq.c @@ -47,7 +47,6 @@ static struct clk *pll_x_clk; static struct clk *pll_p_clk; static struct clk *emc_clk; -static unsigned long target_cpu_speed[NUM_CPUS]; static DEFINE_MUTEX(tegra_cpu_lock); static bool is_suspended; @@ -103,9 +102,6 @@ static int tegra_update_cpu_speed(struct cpufreq_policy *policy, { int ret = 0; - if (tegra_getspeed(0) == rate) - return ret; - /* * Vote on memory bus frequency based on cpu frequency * This sets the minimum frequency, display or avp may request higher @@ -125,35 +121,16 @@ static int tegra_update_cpu_speed(struct cpufreq_policy *policy, return ret; } -static unsigned long tegra_cpu_highest_speed(void) -{ - unsigned long rate = 0; - int i; - - for_each_online_cpu(i) - rate = max(rate, target_cpu_speed[i]); - return rate; -} - static int tegra_target(struct cpufreq_policy *policy, unsigned int index) { - unsigned int freq; - int ret = 0; + int ret = -EBUSY; mutex_lock(&tegra_cpu_lock); - if (is_suspended) { - ret = -EBUSY; - goto out; - } - - freq = freq_table[index].frequency; - - target_cpu_speed[policy->cpu] = freq; + if (!is_suspended) + ret = tegra_update_cpu_speed(policy, + freq_table[index].frequency); - ret = tegra_update_cpu_speed(policy, tegra_cpu_highest_speed()); - -out: mutex_unlock(&tegra_cpu_lock); return ret; } @@ -167,7 +144,8 @@ static int tegra_pm_notify(struct notifier_block *nb, unsigned long event, is_suspended = true; pr_info("Tegra cpufreq suspend: setting frequency to %d kHz\n", freq_table[0].frequency); - tegra_update_cpu_speed(policy, freq_table[0].frequency); + if (tegra_getspeed(0) != freq_table[0].frequency) + tegra_update_cpu_speed(policy, freq_table[0].frequency); cpufreq_cpu_put(policy); } else if (event == PM_POST_SUSPEND) { is_suspended = false; @@ -191,8 +169,6 @@ static int tegra_cpu_init(struct cpufreq_policy *policy) clk_prepare_enable(emc_clk); clk_prepare_enable(cpu_clk); - target_cpu_speed[policy->cpu] = tegra_getspeed(policy->cpu); - /* FIXME: what's the actual transition time? */ ret = cpufreq_generic_init(policy, freq_table, 300 * 1000); if (ret) {