- patches.arch/x86_mce_intel_decode_physical_address.patch:
[linux-flexiantxendom0-3.2.10.git] / drivers / video / omap2 / dss / dss.c
index 5434418..24b1825 100644 (file)
@@ -223,7 +223,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 +299,8 @@ 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 > (cpu_is_omap3630() ? 32 : 16) ||
+                                               cinfo->fck_div == 0)
                return -EINVAL;
 
        prate = clk_get_rate(clk_get_parent(dss.dpll4_m4_ck));
@@ -329,7 +336,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 +412,14 @@ retry:
 
                goto found;
        } else if (cpu_is_omap34xx()) {
-               for (fck_div = 16; fck_div > 0; --fck_div) {
+               for (fck_div = (cpu_is_omap3630() ? 32 : 16);
+                                       fck_div > 0; --fck_div) {
                        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;