From: Tomi Valkeinen Date: Fri, 1 Nov 2013 09:26:43 +0000 (+0200) Subject: OMAPDSS: fix omap2 dss fck handling X-Git-Tag: firefly_0821_release~176^2~4581^2^3~6 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6e555e2752ea284bda55b0ee477a512e1525b84a;p=firefly-linux-kernel-4.4.55.git OMAPDSS: fix omap2 dss fck handling The driver considers OMAP2 DSS's functional clock as a fixed clock. However, it can be changed, but the possible dividers are not continuous which is why it was just handled as a fixed clock. As a partial fix, this patch changes the code to handle the continous part of the dividers, from 1 to 6. This let's us handle the OMAP2 fck the same way as fcks on other OMAPs. Signed-off-by: Tomi Valkeinen --- diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c index bd01608e67e2..e59577a2c41c 100644 --- a/drivers/video/omap2/dss/dss.c +++ b/drivers/video/omap2/dss/dss.c @@ -484,11 +484,6 @@ bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data) unsigned m; if (dss.dpll4_m4_ck == NULL) { - /* - * TODO: dss1_fclk can be changed on OMAP2, but the available - * dividers are not continuous. We just use the pre-set rate for - * now. - */ fck = clk_get_rate(dss.dss_clk); fckd = 1; return func(fckd, fck, data); @@ -761,9 +756,13 @@ void dss_debug_dump_clocks(struct seq_file *s) #endif static const struct dss_features omap24xx_dss_feats __initconst = { - .fck_div_max = 16, + /* + * fck div max is really 16, but the divider range has gaps. The range + * from 1 to 6 has no gaps, so let's use that as a max. + */ + .fck_div_max = 6, .dss_fck_multiplier = 2, - .clk_name = NULL, + .clk_name = "dss1_fck", .dpi_select_source = &dss_dpi_select_source_omap2_omap3, };