All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@deeprootsystems.com>
To: Sanjeev Premi <premi@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCH] Fixed processing of bootarg 'mpurate'
Date: Thu, 06 Aug 2009 07:34:15 -0700	[thread overview]
Message-ID: <87ocqt6mfs.fsf@deeprootsystems.com> (raw)
In-Reply-To: <1249040630-2712-1-git-send-email-premi@ti.com> (Sanjeev Premi's message of "Fri\, 31 Jul 2009 17\:13\:50 +0530")

Sanjeev Premi <premi@ti.com> writes:

> The argument 'mpurate' had no effect on the MPU
> frequency. This patch fixes the same.
>
> It also ensures that DSP frequency is set according
> to the OPP definitions.
>
> Signed-off-by: Sanjeev Premi <premi@ti.com>

Can you break this into two patches.  One that simply fixes the MPU
rate setting bug and that applies against linux-omap master and
can be queued for omap-fixes.

The DSP rate setting is a separate problem and could be done in
a patch against the PM branch.

Kevin


> ---
>  arch/arm/mach-omap2/clock34xx.c |   57 +++++++++++++++++++++++++++++++++++---
>  1 files changed, 52 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
> index c2e5ef8..a9e7e82 100644
> --- a/arch/arm/mach-omap2/clock34xx.c
> +++ b/arch/arm/mach-omap2/clock34xx.c
> @@ -29,6 +29,7 @@
>  #include <linux/err.h>
>  #include <linux/cpufreq.h>
>  
> +#include <mach/cpu.h>
>  #include <mach/clock.h>
>  #include <mach/sram.h>
>  #include <mach/omap-pm.h>
> @@ -42,6 +43,7 @@
>  #include "prm-regbits-34xx.h"
>  #include "cm.h"
>  #include "cm-regbits-34xx.h"
> +#include "omap3-opp.h"
>  
>  static const struct clkops clkops_noncore_dpll_ops;
>  
> @@ -1083,6 +1085,11 @@ void omap2_clk_prepare_for_reboot(void)
>   */
>  static int __init omap2_clk_arch_init(void)
>  {
> +	unsigned short opp=0;
> +	unsigned short i;
> +	unsigned long dsprate;
> +	struct omap_opp *opp_table;
> +
>  	if (!mpurate)
>  		return -EINVAL;
>  
> @@ -1092,12 +1099,49 @@ static int __init omap2_clk_arch_init(void)
>  		printk(KERN_ERR "Could not find matching MPU rate\n");
>  #endif
>  
> +	if (clk_set_rate(&dpll1_ck, mpurate))
> +		printk(KERN_ERR "*** Unable to set MPU rate\n");
> +	omap3_dpll_recalc(&dpll1_ck);
> +
> +	/* Get the OPP corresponding to the mpurate */
> +	if (mpu_opps) {
> +		opp_table = mpu_opps;
> +
> +		for (i=0;  opp_table[i].opp_id <= MAX_VDD1_OPP; i++)
> +			if (opp_table[i].rate == mpurate)
> +				break;
> +
> +		opp = opp_table[i].opp_id;
> +
> +		pr_debug("Switched to OPP:%d\n", opp);
> +	}
> +
> +	/* Get dsprate corresponding to the opp */
> +	if ((dsp_opps) && (opp >= VDD1_OPP1) && (opp <= VDD1_OPP5)) {
> +		opp_table = dsp_opps;
> +
> +		for (i=0;  opp_table[i].opp_id <= MAX_VDD1_OPP; i++)
> +			if (opp_table[i].opp_id == opp)
> +				break;
> +
> +		dsprate = opp_table[i].rate;
> +
> +		if (clk_set_rate(&dpll2_ck, dsprate))
> +			printk(KERN_ERR "*** Unable to set IVA2 rate\n");
> +		omap3_dpll_recalc(&dpll2_ck);
> +	}
> +
>  	recalculate_root_clocks();
>  
> -	printk(KERN_INFO "Switched to new clocking rate (Crystal/DPLL3/MPU): "
> +	printk(KERN_INFO "Switched to new clocking rate (Crystal/Core/MPU): "
>  	       "%ld.%01ld/%ld/%ld MHz\n",
> -	       (osc_sys_ck.rate / 1000000), (osc_sys_ck.rate / 100000) % 10,
> -	       (core_ck.rate / 1000000), (dpll1_fck.rate / 1000000)) ;
> +	       (osc_sys_ck.rate / 1000000), ((osc_sys_ck.rate / 100000) % 10),
> +	       (core_ck.rate / 1000000), (dpll1_ck.rate / 1000000)) ;
> +
> +	printk(KERN_INFO "IVA2 clocking rate: %ld MHz\n",
> +	       (dpll2_ck.rate / 1000000)) ;
> +
> +	calibrate_delay();
>  
>  	return 0;
>  }
> @@ -1156,10 +1200,13 @@ int __init omap2_clk_init(void)
>  
>  	recalculate_root_clocks();
>  
> -	printk(KERN_INFO "Clocking rate (Crystal/DPLL/ARM core): "
> +	printk(KERN_INFO "Clocking rate (Crystal/DPLL/MPU core): "
>  	       "%ld.%01ld/%ld/%ld MHz\n",
>  	       (osc_sys_ck.rate / 1000000), (osc_sys_ck.rate / 100000) % 10,
> -	       (core_ck.rate / 1000000), (arm_fck.rate / 1000000));
> +               (core_ck.rate / 1000000), (dpll1_ck.rate / 1000000));
> +
> +	printk(KERN_INFO "IVA2 clocking rate: %ld MHz\n",
> +	       (dpll2_ck.rate / 1000000)) ;
>  
>  	/*
>  	 * Only enable those clocks we will need, let the drivers
> -- 
> 1.6.2.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2009-08-06 14:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-31 11:43 [PATCH] Fixed processing of bootarg 'mpurate' Sanjeev Premi
2009-08-06 14:34 ` Kevin Hilman [this message]
2009-08-10 10:23   ` Premi, Sanjeev
  -- strict thread matches above, loose matches on Subject: below --
2009-08-10 10:24 Sanjeev Premi
2009-08-10 17:22 ` Paul Walmsley
2009-08-10 17:49   ` Premi, Sanjeev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ocqt6mfs.fsf@deeprootsystems.com \
    --to=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=premi@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.