diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2013-11-01 05:26:43 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2013-11-18 07:32:25 -0500 |
commit | 6e555e2752ea284bda55b0ee477a512e1525b84a (patch) | |
tree | 5bdc8a51e572c2463622d59e92c632c7a338ebc1 /drivers/video | |
parent | 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 (diff) |
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 <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/omap2/dss/dss.c | 13 |
1 files changed, 6 insertions, 7 deletions
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) | |||
484 | unsigned m; | 484 | unsigned m; |
485 | 485 | ||
486 | if (dss.dpll4_m4_ck == NULL) { | 486 | if (dss.dpll4_m4_ck == NULL) { |
487 | /* | ||
488 | * TODO: dss1_fclk can be changed on OMAP2, but the available | ||
489 | * dividers are not continuous. We just use the pre-set rate for | ||
490 | * now. | ||
491 | */ | ||
492 | fck = clk_get_rate(dss.dss_clk); | 487 | fck = clk_get_rate(dss.dss_clk); |
493 | fckd = 1; | 488 | fckd = 1; |
494 | return func(fckd, fck, data); | 489 | return func(fckd, fck, data); |
@@ -761,9 +756,13 @@ void dss_debug_dump_clocks(struct seq_file *s) | |||
761 | #endif | 756 | #endif |
762 | 757 | ||
763 | static const struct dss_features omap24xx_dss_feats __initconst = { | 758 | static const struct dss_features omap24xx_dss_feats __initconst = { |
764 | .fck_div_max = 16, | 759 | /* |
760 | * fck div max is really 16, but the divider range has gaps. The range | ||
761 | * from 1 to 6 has no gaps, so let's use that as a max. | ||
762 | */ | ||
763 | .fck_div_max = 6, | ||
765 | .dss_fck_multiplier = 2, | 764 | .dss_fck_multiplier = 2, |
766 | .clk_name = NULL, | 765 | .clk_name = "dss1_fck", |
767 | .dpi_select_source = &dss_dpi_select_source_omap2_omap3, | 766 | .dpi_select_source = &dss_dpi_select_source_omap2_omap3, |
768 | }; | 767 | }; |
769 | 768 | ||