From 0e57eb5f3855b5a701d2d8f77985e5ba4fe9b29f Mon Sep 17 00:00:00 2001 From: Archit Taneja Date: Mon, 30 Jan 2012 10:54:17 +0530 Subject: [PATCH] --- yaml --- r: 294313 b: refs/heads/master c: 79ee89cdbd9a58baa079d019574d11aa864b7842 h: refs/heads/master i: 294311: 1a94cbb9244a3bad13ecc2f10b3adbe09d60c097 v: v3 --- [refs] | 2 +- trunk/drivers/video/omap2/dss/dispc.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index ddc1301c9b07..c28f25c00666 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c124f23dfdf7da890405dfa0efbeb015cab27b56 +refs/heads/master: 79ee89cdbd9a58baa079d019574d11aa864b7842 diff --git a/trunk/drivers/video/omap2/dss/dispc.c b/trunk/drivers/video/omap2/dss/dispc.c index d8e044df3d40..22023bba63e6 100644 --- a/trunk/drivers/video/omap2/dss/dispc.c +++ b/trunk/drivers/video/omap2/dss/dispc.c @@ -1694,6 +1694,7 @@ static unsigned long calc_fclk(enum omap_channel channel, u16 width, u16 height, u16 out_width, u16 out_height) { unsigned int hf, vf; + unsigned long pclk = dispc_mgr_pclk_rate(channel); /* * FIXME how to determine the 'A' factor @@ -1716,13 +1717,16 @@ static unsigned long calc_fclk(enum omap_channel channel, u16 width, if (cpu_is_omap24xx()) { if (vf > 1 && hf > 1) - return dispc_mgr_pclk_rate(channel) * 4; + return pclk * 4; else - return dispc_mgr_pclk_rate(channel) * 2; + return pclk * 2; } else if (cpu_is_omap34xx()) { - return dispc_mgr_pclk_rate(channel) * vf * hf; + return pclk * vf * hf; } else { - return dispc_mgr_pclk_rate(channel) * hf; + if (hf > 1) + return DIV_ROUND_UP(pclk, out_width) * width; + else + return pclk; } }