From patchwork Fri Dec 14 20:14:45 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Lucas Stach X-Patchwork-Id: 206553 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 09BF22C008D for ; Sat, 15 Dec 2012 07:14:58 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932339Ab2LNUO4 (ORCPT ); Fri, 14 Dec 2012 15:14:56 -0500 Received: from ns.km20343-01.keymachine.de ([84.19.182.79]:55285 "EHLO km20343-01.keymachine.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932340Ab2LNUOz (ORCPT ); Fri, 14 Dec 2012 15:14:55 -0500 Received: from localhost.localdomain (pD9F873DA.dip.t-dialin.net [217.248.115.218]) by km20343-01.keymachine.de (Postfix) with ESMTPA id DEA7C7D4419; Fri, 14 Dec 2012 21:14:53 +0100 (CET) From: Lucas Stach To: linux-tegra@vger.kernel.org Cc: Thierry Reding , Stephen Warren , Mark Zhang Subject: =?UTF-8?q?=5BPATCH=202/3=5D=20ARM=3A=20tegra=3A=20use=20new=20EMC=20clock=20scaling=20API=20in=20CPUfreq=20driver?= Date: Fri, 14 Dec 2012 21:14:45 +0100 Message-Id: <1355516086-11116-3-git-send-email-dev@lynxeye.de> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1355516086-11116-1-git-send-email-dev@lynxeye.de> References: <1355516086-11116-1-git-send-email-dev@lynxeye.de> MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org The CPUfreq driver should not take control of EMC clock directly, but rather let the EMC driver know about the CPUs memory performance demands using the new EMC clock scaling API. Signed-off-by: Lucas Stach --- arch/arm/mach-tegra/cpu-tegra.c | 15 ++++++++------- 1 Datei geändert, 8 Zeilen hinzugefügt(+), 7 Zeilen entfernt(-) diff --git a/arch/arm/mach-tegra/cpu-tegra.c b/arch/arm/mach-tegra/cpu-tegra.c index a74d3c7..8908e32 100644 --- a/arch/arm/mach-tegra/cpu-tegra.c +++ b/arch/arm/mach-tegra/cpu-tegra.c @@ -29,6 +29,7 @@ #include #include #include +#include /* Frequency table index must be sequential starting at 0 */ static struct cpufreq_frequency_table freq_table[] = { @@ -117,16 +118,16 @@ static int tegra_update_cpu_speed(unsigned long rate) if (freqs.old == freqs.new) return ret; - /* - * Vote on memory bus frequency based on cpu frequency - * This sets the minimum frequency, display or avp may request higher - */ + /* Boost memory bus frequency based on CPU frequency */ if (rate >= 816000) - clk_set_rate(emc_clk, 600000000); /* cpu 816 MHz, emc max */ + tegra_emc_request_perf_level(TEGRA_EMC_SC_MPCORE, + TEGRA_EMC_PL_HIGH); else if (rate >= 456000) - clk_set_rate(emc_clk, 300000000); /* cpu 456 MHz, emc 150Mhz */ + tegra_emc_request_perf_level(TEGRA_EMC_SC_MPCORE, + TEGRA_EMC_PL_MID); else - clk_set_rate(emc_clk, 100000000); /* emc 50Mhz */ + tegra_emc_request_perf_level(TEGRA_EMC_SC_MPCORE, + TEGRA_EMC_PL_LOW); for_each_online_cpu(freqs.cpu) cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);