RE: [PATCH] video: da8xx-fb: reset LCDC only if functional clock changes with DVFS

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

 



Hi Sriram,

On Wed, Dec 21, 2011 at 16:17:01, Madhvapathi Sriram wrote:
> Prakash,
> 
> On Wed, Dec 21, 2011 at 12:57 PM, Manjunathappa, Prakash
> <prakash.pm@xxxxxx> wrote:
> >
> > LCDC functional clock may or may not be derived from CPU/MPU DPLL,
> > For example,
> > AM335x => Separate independent DPLL for LCDC
> > Davinci => Same DPLL as MPU
> >
> > So, on platforms where LCDC functional clock is not derived from CPU/MPU
> > PLL it is not required to reset LCDC module, if CPU frequency does not
> > change with DVFS.
> Is it not the case that the CPU frequency always changes during DVFS?
> This sentence does not strike me straight.
> Did you mean that if the frequency of the PLL (from which LCDC
> derives) does not change with DVFS, then LCDC module is not required
> to be reset?

Ok I will re-phrase it as below:
So, on platforms where LCDC functional clock is not derived from CPU/MPU
PLL it is not required to reset LCDC module as its functional clock does not change with DVFS.
 
> >
> > This patch adds check to do reset only if functional clock changes
> > between pre and post notifier callbacks with DVFS.
> >
> > Signed-off-by: Manjunathappa, Prakash <prakash.pm@xxxxxx>
> > ---
> >  drivers/video/da8xx-fb.c |   13 ++++++++-----
> >  1 files changed, 8 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> > index 29577bf..1334a68 100644
> > --- a/drivers/video/da8xx-fb.c
> > +++ b/drivers/video/da8xx-fb.c
> > @@ -161,6 +161,7 @@ struct da8xx_fb_par {
> >        int                     vsync_timeout;
> >  #ifdef CONFIG_CPU_FREQ
> >        struct notifier_block   freq_transition;
> > +       unsigned int            lcd_fck_rate;
> >  #endif
> >        void (*panel_power_ctrl)(int);
> >  };
> > @@ -840,11 +841,12 @@ static int lcd_da8xx_cpufreq_transition(struct notifier_block *nb,
> >        struct da8xx_fb_par *par;
> >
> >        par = container_of(nb, struct da8xx_fb_par, freq_transition);
> > -       if (val == CPUFREQ_PRECHANGE) {
> > -               lcd_disable_raster();
> > -       } else if (val == CPUFREQ_POSTCHANGE) {
> > -               lcd_calc_clk_divider(par);
> > -               lcd_enable_raster();
> > +       if (val == CPUFREQ_POSTCHANGE) {
> > +               if (par->lcd_fck_rate != clk_get_rate(par->lcdc_clk)) {
> > +                       lcd_disable_raster();
> > +                       lcd_calc_clk_divider(par);
> > +                       lcd_enable_raster();
> > +               }
> >        }
> >
> >        return 0;
> > @@ -1137,6 +1139,7 @@ static int __devinit fb_probe(struct platform_device *device)
> >
> >        par = da8xx_fb_info->par;
> >        par->lcdc_clk = fb_clk;
> > +       par->lcd_fck_rate = clk_get_rate(fb_clk);
> >        par->pxl_clk = lcdc_info->pxl_clk;
> >        if (fb_pdata->panel_power_ctrl) {
> >                par->panel_power_ctrl = fb_pdata->panel_power_ctrl;
> > --
> > 1.7.1
> >
> > _______________________________________________
> > Davinci-linux-open-source mailing list
> > Davinci-linux-open-source@xxxxxxxxxxxxxxxxxxxx
> > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Tourism]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux