> -----Original Message-----
> From: Kahn, Gery [mailto:ge...@ti.com]
> Sent: Monday, February 14, 2011 3:04 PM
> To: Vishwanath BS
> Cc: linux-omap@vger.kernel.org; patc...@linaro.org; Santosh Shilimkar
> Subject: Re: [PATCH 08/13] OMAP3: cpufreq driver changes for DVFS
> support
>
> Dear Vishwanath,
>
> On Fri, Jan 21, 2011 at 16:01, Vishwanath BS <vishwanath...@ti.com>
> wrote:
> > Changes in the omap cpufreq driver for DVFS support.
> >
> > Signed-off-by: Vishwanath BS <vishwanath...@ti.com>
> > Cc: Santosh Shilimkar <santosh.shilim...@ti.com>
> > ---
> >  arch/arm/plat-omap/cpu-omap.c |   35
> ++++++++++++++++++++++++++++++++---
> >  1 files changed, 32 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-
> omap/cpu-omap.c
> > index 1c1b80b..d965220 100644
> > --- a/arch/arm/plat-omap/cpu-omap.c
> > +++ b/arch/arm/plat-omap/cpu-omap.c
> > @@ -30,10 +30,12 @@
> >  #include <mach/hardware.h>
> >  #include <plat/clock.h>
> >  #include <asm/system.h>
> > +#include <asm/cpu.h>
> >
> >  #if defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> >  #include <plat/omap-pm.h>
> >  #include <plat/common.h>
> > +#include <plat/dvfs.h>
> >  #endif
> >
> >  #define VERY_HI_RATE   900000000
> > @@ -85,11 +87,11 @@ static int omap_target(struct cpufreq_policy
> *policy,
> >                       unsigned int target_freq,
> >                       unsigned int relation)
> >  {
> > -#ifdef CONFIG_ARCH_OMAP1
> >        struct cpufreq_freqs freqs;
> > -#endif
> >  #if defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> >        unsigned long freq;
> > +       int i;
> > +       struct cpufreq_freqs freqs_notify;
> >        struct device *mpu_dev = omap2_get_mpuss_device();
> >  #endif
> >        int ret = 0;
> > @@ -116,9 +118,36 @@ static int omap_target(struct cpufreq_policy
> *policy,
> >        ret = clk_set_rate(mpu_clk, freqs.new * 1000);
> >        cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
> >  #elif defined(CONFIG_ARCH_OMAP3) &&
> !defined(CONFIG_OMAP_PM_NONE)
> > +       freqs.old = omap_getspeed(policy->cpu);;
> > +       freqs_notify.new = clk_round_rate(mpu_clk, target_freq *
> 1000) / 1000;
> > +       freqs.cpu = policy->cpu;
> > +
> > +       if (freqs.old == freqs.new)
> > +               return ret;
> > +
> > +       /* pre notifiers */
> > +       for_each_cpu(i, policy->cpus) {
> > +               freqs.cpu = i;
> > +               cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
> > +       }
> > +
> > +       /* scale the frequency */
> >        freq = target_freq * 1000;
> >        if (opp_find_freq_ceil(mpu_dev, &freq))
> > -               omap_pm_cpu_set_freq(freq);
> > +               omap_device_scale(mpu_dev, mpu_dev, freq);
> > +
> > +       /* Update loops per jiffy */
> > +       freqs.new = omap_getspeed(policy->cpu);
> > +       for_each_cpu(i, policy->cpus)
> > +               per_cpu(cpu_data, i).loops_per_jiffy =
> > +               cpufreq_scale(per_cpu(cpu_data, i).loops_per_jiffy,
> > +                               freqs.old, freqs.new);
> > +
> > +       /* post notifiers */
> > +       for_each_cpu(i, policy->cpus) {
> > +               freqs.cpu = i;
> > +               cpufreq_notify_transition(&freqs,
> CPUFREQ_POSTCHANGE);
> > +       }
> >  #endif
> >        return ret;
> >  }
> > --
> > 1.7.0.4
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-omap"
in
> > the body of a message to majord...@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
>
> I took those patches and applied to my .38-rc4 with help from Nishanth
> Menon.
>
> There is problem appeared during compilation:
>
> arch/arm/plat-omap/cpu-omap.c:142: error: 'struct cpuinfo_arm' has no
> member named 'loops_per_jiffy'
>
> My kernel is for Zoom3 board (OMAP3630-GP rev 2, CPU-OPP2 L3-
> 200MHz)
> Looking at the source, arch/arm/include/asm/cpu.h
> loops_per_jiffy is under CONFIG_SMP and since the omap2plus_defconfig
> builds for OMAP4 as well by default, I am guessing this bug was not
> immediately visible...
>
> Is there solution for the issue?
Yes this is an issue if CONFIG_SMP is disabled. We probably will need to
put this code under #ifdef CONFIG_SMP till lpj is handled for SMP in
generic cpufreq code itself .

Vishwa
>
> Regards,
> Gery
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to