RE: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: linux-omap-owner@xxxxxxxxxxxxxxx 
> [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of 
> Sripathy, Vishwanath
> Sent: Monday, April 05, 2010 5:23 PM
> To: Paul Walmsley
> Cc: linux-omap@xxxxxxxxxxxxxxx
> Subject: RE: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass Clock Divider
> 
> 
> 
> > -----Original Message-----
> > From: Paul Walmsley [mailto:paul@xxxxxxxxx]
> > Sent: Monday, April 05, 2010 4:44 PM
> > To: Sripathy, Vishwanath
> > Cc: linux-omap@xxxxxxxxxxxxxxx
> > Subject: RE: [PATCHV3 1/2] OMAP3: Set MPU and IVA bypass 
> Clock Divider
> > 
> > On Mon, 5 Apr 2010, Sripathy, Vishwanath wrote:
> > 
> > > > -----Original Message-----
> > > > From: Paul Walmsley [mailto:paul@xxxxxxxxx]
> > > >
> > > > On Thu, 1 Apr 2010, Vishwanath BS wrote:
> > > >
> > > > > diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
> b/arch/arm/mach-
> > > > omap2/clock3xxx_data.c
> > > > > index d5153b6..d8e57a6
> > > > > --- a/arch/arm/mach-omap2/clock3xxx_data.c
> > > > > +++ b/arch/arm/mach-omap2/clock3xxx_data.c
> > > > > @@ -3597,5 +3601,13 @@ int __init omap3xxx_clk_init(void)
> > > > >  	sdrc_ick_p = clk_get(NULL, "sdrc_ick");
> > > > >  	arm_fck_p = clk_get(NULL, "arm_fck");
> > > > >
> > > > > +	/* Set the bypass clock dividers for DPLL1 and DPLL2 */
> > > > > +	if (cpu_is_omap3630()) {
> > > > > +		clk_set_rate(&dpll1_fck, 400000000/2);
> > > > > +		clk_set_rate(&dpll2_fck, 400000000/2);
> > > > > +	} else {
> > > > > +		clk_set_rate(&dpll1_fck, 332000000/4);
> > > > > +		clk_set_rate(&dpll2_fck, 332000000/4);
> > > > > +	}
> > > >
> > > > This code is highly OPP-specific.  Why is this code needed here?
> > > > Shouldn't the code in resource34xx.c be sufficient?
> > >
> > > Code in resource34xx.c will be executed only when DVFS is 
> executed.
> > > However above code makes sure that initial values of Bypass clock
> > > dividers are good. This will ensure that even if DVFS is disabled,
> > > IVA/MPU are never overclocked when they enter bypass mode.
> > 
> > My point is that you don't know how the bootloader has 
> configured the
> > system at the point when this code executes.  You don't 
> know what voltage
> > level VDD1 and VDD2 are at; you don't know what state the 
> clock tree is
> > in.  You only know this when you change OPPs.  And the 
> selection of the
> > OPP at startup is use-case dependent.
> > 
> May be I can move this code to init_opp?

I have been trying to find a good place for the same myself. Though,
my reason is different. The default kernel boots with the OPP3 for
OMAP34xx; but when mpurate is used to set 720; I feel sometimes the
boot may fail if the voltage isn't right.

The voltage does stabilize when smartrelex reflex is initialized.

I was trying to move smartreflex above in the init sequence; after
i2c has been initialized.

Comments/ thoughts?

Best regards,
Sanjeev

>  
> > So as far as I can tell, this code shouldn't be there.  If 
> you want to do
> > something like this, then you should add some generic way 
> (e.g., a kernel
> > command line parameter) to set the VDD1 and VDD2 OPPs at boot.
> > 
> > 
> > - Paul
> --
> To unsubscribe from this list: send the line "unsubscribe 
> linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux