aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2013-10-31 10:41:57 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-11-18 07:32:28 -0500
commit688af02d22c11a077532d6437e4afc7bdc972f82 (patch)
treed241479783178b85d67abb350ba053a99355115a
parentada9443ff407f83a96abc15ea44a106250dd23f2 (diff)
OMAPDSS: pass pck to dss fck clock calc
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>
-rw-r--r--drivers/video/omap2/dss/dpi.c2
-rw-r--r--drivers/video/omap2/dss/dss.c3
-rw-r--r--drivers/video/omap2/dss/dss.h3
-rw-r--r--drivers/video/omap2/dss/sdi.c2
4 files changed, 6 insertions, 4 deletions
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index 16acdddc94e3..ae1c8b9d39ca 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -236,7 +236,7 @@ static bool dpi_dss_clk_calc(unsigned long pck, struct dpi_clk_calc_ctx *ctx)
236 ctx->pck_min = 0; 236 ctx->pck_min = 0;
237 ctx->pck_max = pck + 1000 * i * i * i; 237 ctx->pck_max = pck + 1000 * i * i * i;
238 238
239 ok = dss_div_calc(ctx->pck_min, dpi_calc_dss_cb, ctx); 239 ok = dss_div_calc(pck, ctx->pck_min, dpi_calc_dss_cb, ctx);
240 if (ok) 240 if (ok)
241 return ok; 241 return ok;
242 } 242 }
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 7af97199c905..08c58ebe219c 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -436,7 +436,8 @@ enum omap_dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel)
436 } 436 }
437} 437}
438 438
439bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data) 439bool dss_div_calc(unsigned long pck, unsigned long fck_min,
440 dss_div_calc_func func, void *data)
440{ 441{
441 int fckd, fckd_start, fckd_stop; 442 int fckd, fckd_start, fckd_stop;
442 unsigned long fck; 443 unsigned long fck;
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 6fc786fddbcb..2acc6615b984 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -245,7 +245,8 @@ void dss_set_dac_pwrdn_bgz(bool enable);
245int dss_set_fck_rate(unsigned long rate); 245int dss_set_fck_rate(unsigned long rate);
246 246
247typedef bool (*dss_div_calc_func)(unsigned long fck, void *data); 247typedef bool (*dss_div_calc_func)(unsigned long fck, void *data);
248bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data); 248bool dss_div_calc(unsigned long pck, unsigned long fck_min,
249 dss_div_calc_func func, void *data);
249 250
250/* SDI */ 251/* SDI */
251int sdi_init_platform_driver(void) __init; 252int sdi_init_platform_driver(void) __init;
diff --git a/drivers/video/omap2/dss/sdi.c b/drivers/video/omap2/dss/sdi.c
index 221fd34c42ff..3bf47c92aedf 100644
--- a/drivers/video/omap2/dss/sdi.c
+++ b/drivers/video/omap2/dss/sdi.c
@@ -97,7 +97,7 @@ static int sdi_calc_clock_div(unsigned long pclk,
97 ctx.pck_min = 0; 97 ctx.pck_min = 0;
98 ctx.pck_max = pclk + 1000 * i * i * i; 98 ctx.pck_max = pclk + 1000 * i * i * i;
99 99
100 ok = dss_div_calc(ctx.pck_min, dpi_calc_dss_cb, &ctx); 100 ok = dss_div_calc(pclk, ctx.pck_min, dpi_calc_dss_cb, &ctx);
101 if (ok) { 101 if (ok) {
102 *fck = ctx.fck; 102 *fck = ctx.fck;
103 *dispc_cinfo = ctx.dispc_cinfo; 103 *dispc_cinfo = ctx.dispc_cinfo;