OMAPDSS: pass pck to dss fck clock calc
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 31 Oct 2013 14:41:57 +0000 (16:41 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 18 Nov 2013 12:32:28 +0000 (14:32 +0200)
We need the required pixel clock rate when calculating the dss fclk on
SoCs that have a dedicated DSS PLL.

This patch changes the code to pass the pck to the calc functions. The
pck rate is taken into use in the next patch.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/dpi.c
drivers/video/omap2/dss/dss.c
drivers/video/omap2/dss/dss.h
drivers/video/omap2/dss/sdi.c

index 16acdddc94e39b46043af86ad7f92360f346db6f..ae1c8b9d39ca91aac496457aa22091d318909621 100644 (file)
@@ -236,7 +236,7 @@ static bool dpi_dss_clk_calc(unsigned long pck, struct dpi_clk_calc_ctx *ctx)
                        ctx->pck_min = 0;
                ctx->pck_max = pck + 1000 * i * i * i;
 
-               ok = dss_div_calc(ctx->pck_min, dpi_calc_dss_cb, ctx);
+               ok = dss_div_calc(pck, ctx->pck_min, dpi_calc_dss_cb, ctx);
                if (ok)
                        return ok;
        }
index 7af97199c905bca2967a2fc6e1dd33009eff86d4..08c58ebe219ce01a1cbb144e0dc2ff698c7ed031 100644 (file)
@@ -436,7 +436,8 @@ enum omap_dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel)
        }
 }
 
-bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data)
+bool dss_div_calc(unsigned long pck, unsigned long fck_min,
+               dss_div_calc_func func, void *data)
 {
        int fckd, fckd_start, fckd_stop;
        unsigned long fck;
index 6fc786fddbcbc458d82cb18c8a671d1448feb5c5..2acc6615b984a69efdbb79bf907e9dbbade40b54 100644 (file)
@@ -245,7 +245,8 @@ void dss_set_dac_pwrdn_bgz(bool enable);
 int dss_set_fck_rate(unsigned long rate);
 
 typedef bool (*dss_div_calc_func)(unsigned long fck, void *data);
-bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data);
+bool dss_div_calc(unsigned long pck, unsigned long fck_min,
+               dss_div_calc_func func, void *data);
 
 /* SDI */
 int sdi_init_platform_driver(void) __init;
index 221fd34c42ff5c633b93ce5b047e371242e5ab5e..3bf47c92aedf8311e86018514f783c27c88b8f7c 100644 (file)
@@ -97,7 +97,7 @@ static int sdi_calc_clock_div(unsigned long pclk,
                        ctx.pck_min = 0;
                ctx.pck_max = pclk + 1000 * i * i * i;
 
-               ok = dss_div_calc(ctx.pck_min, dpi_calc_dss_cb, &ctx);
+               ok = dss_div_calc(pclk, ctx.pck_min, dpi_calc_dss_cb, &ctx);
                if (ok) {
                        *fck = ctx.fck;
                        *dispc_cinfo = ctx.dispc_cinfo;
This page took 0.028678 seconds and 5 git commands to generate.