> -----Original Message-----
> From: [email protected] [mailto:linux-omap-
> [email protected]] On Behalf Of Y, Kishore
> Sent: Sunday, April 25, 2010 4:42 PM
> To: Tomi Valkeinen
> Cc: [email protected]
> Subject: [PATCH] OMAP3630:DSS: Updating MAX divider value
> 
> 
> In DPLL4 M3, M4, M5 and M6 field width has been increased by 1 bit in 3630.
> So the max divider value that can be achived will be 32 and not 16.
> In 3630 the functional clock is x1 of DPLL4 and not x2 .Hence multiplier 2
> is removed.
> 
> Signed-off-by: Sudeep Basavaraj <[email protected]>
> Signed-off-by: Kishore Y <[email protected]>
> ---
>  drivers/video/omap2/dss/dss.c |   28 ++++++++++++++++++++++------
>  1 files changed, 22 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
> index 5434418..e78b67d 100644
> --- a/drivers/video/omap2/dss/dss.c
> +++ b/drivers/video/omap2/dss/dss.c
> @@ -34,8 +34,12 @@
>  #include "dss.h"
> 
>  #define DSS_BASE                     0x48050000
> -
>  #define DSS_SZ_REGS                  SZ_512
> +#if defined(CONFIG_MACH_OMAP_ZOOM3) || defined(CONFIG_MACH_OMAP_3630SDP)
> +#define FCK_MAX_DIV                  32
> +#else
> +#define FCK_MAX_DIV                  16
> +#endif
> 
[Hiremath, Vaibhav] This is not only applicable for ZOOM or SDP platform also 
applicable for OMAP3EVM (based on AM/DM3730). And also this divider value is 
not specific to board so you can not use this. 

>  struct dss_reg {
>       u16 idx;
> @@ -223,7 +227,13 @@ void dss_dump_clocks(struct seq_file *s)
> 
>       seq_printf(s, "dpll4_ck %lu\n", dpll4_ck_rate);
> 
> -     seq_printf(s, "dss1_alwon_fclk = %lu / %lu * 2 = %lu\n",
> +     if (cpu_is_omap3630())
> +             seq_printf(s, "dss1_alwon_fclk = %lu / %lu  = %lu\n",
> +                     dpll4_ck_rate,
> +                     dpll4_ck_rate / dpll4_m4_ck_rate,
> +                     dss_clk_get_rate(DSS_CLK_FCK1));
> +     else
> +             seq_printf(s, "dss1_alwon_fclk = %lu / %lu * 2 = %lu\n",
>                       dpll4_ck_rate,
>                       dpll4_ck_rate / dpll4_m4_ck_rate,
>                       dss_clk_get_rate(DSS_CLK_FCK1));
> @@ -293,7 +303,7 @@ int dss_calc_clock_rates(struct dss_clock_info *cinfo)
>  {
>       unsigned long prate;
> 
> -     if (cinfo->fck_div > 16 || cinfo->fck_div == 0)
> +     if (cinfo->fck_div > FCK_MAX_DIV || cinfo->fck_div == 0)
[Hiremath, Vaibhav] Why don't you make use of cpu_is_omap3630() here something 
like,

if (cinfo->fck_div > (cpu_is_omap3630() ? 32 : 16) || cinfo->fck_div == 0)


>               return -EINVAL;
> 
>       prate = clk_get_rate(clk_get_parent(dss.dpll4_m4_ck));
> @@ -329,7 +339,10 @@ int dss_get_clock_div(struct dss_clock_info *cinfo)
>       if (cpu_is_omap34xx()) {
>               unsigned long prate;
>               prate = clk_get_rate(clk_get_parent(dss.dpll4_m4_ck));
> -             cinfo->fck_div = prate / (cinfo->fck / 2);
> +             if (cpu_is_omap3630())
> +                     cinfo->fck_div = prate / (cinfo->fck);
> +             else
> +                     cinfo->fck_div = prate / (cinfo->fck / 2);
>       } else {
>               cinfo->fck_div = 0;
>       }
> @@ -402,10 +415,13 @@ retry:
> 
>               goto found;
>       } else if (cpu_is_omap34xx()) {
> -             for (fck_div = 16; fck_div > 0; --fck_div) {
> +             for (fck_div = FCK_MAX_DIV; fck_div > 0; --fck_div) {
[Hiremath, Vaibhav] ditto here.

Thanks,
Vaibhav

>                       struct dispc_clock_info cur_dispc;
> 
> -                     fck = prate / fck_div * 2;
> +                     if (cpu_is_omap3630())
> +                             fck = prate / fck_div;
> +                     else
> +                             fck = prate / fck_div * 2;
> 
>                       if (fck > DISPC_MAX_FCK)
>                               continue;
> --
> 1.5.6.3
> 
> 
> Regards,
> Kishore Y
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [email protected]
> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to