[PATCH] fbdev/omap: fix max fclk divider for omap36xx

Subsystems: framebuffer layer, omap display subsystem and framebuffer support (dss2), the rest

STALE2541d

3 messages, 2 authors, 2019-11-08 · open the first message on its own page

[PATCH] fbdev/omap: fix max fclk divider for omap36xx

From: Adam Ford <hidden>
Date: 2019-10-18 12:49:59

The OMAP36xx and AM/DM37x TRMs say that the maximum divider for DSS fclk
(in CM_CLKSEL_DSS) is 32. Experimentation shows that this is not
correct, and using divider of 32 breaks DSS with a flood or underflows
and sync losts. Dividers up to 31 seem to work fine.

There is another patch to the DT files to limit the divider correctly,
but as the DSS driver also needs to know the maximum divider to be able
to iteratively find good rates, we also need to do the fix in the DSS
driver.

Signed-off-by: Adam Ford <redacted>
Cc: Tomi Valkeinen <redacted>
Cc: stable@vger.kernel.org #linux-4.9.y+
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
index 48c6500c24e1..4429ad37b64c 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
@@ -843,7 +843,7 @@ static const struct dss_features omap34xx_dss_feats = {
 };
 
 static const struct dss_features omap3630_dss_feats = {
-	.fck_div_max		=	32,
+	.fck_div_max		=	31,
 	.dss_fck_multiplier	=	1,
 	.parent_clk_name	=	"dpll4_ck",
 	.dpi_select_source	=	&dss_dpi_select_source_omap2_omap3,
-- 
2.17.1

Re: [PATCH] fbdev/omap: fix max fclk divider for omap36xx

From: Tomi Valkeinen <hidden>
Date: 2019-10-21 08:42:41

On 18/10/2019 15:49, Adam Ford wrote:
quoted hunk
The OMAP36xx and AM/DM37x TRMs say that the maximum divider for DSS fclk
(in CM_CLKSEL_DSS) is 32. Experimentation shows that this is not
correct, and using divider of 32 breaks DSS with a flood or underflows
and sync losts. Dividers up to 31 seem to work fine.

There is another patch to the DT files to limit the divider correctly,
but as the DSS driver also needs to know the maximum divider to be able
to iteratively find good rates, we also need to do the fix in the DSS
driver.

Signed-off-by: Adam Ford <redacted>
Cc: Tomi Valkeinen <redacted>
Cc: stable@vger.kernel.org #linux-4.9.y+
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
index 48c6500c24e1..4429ad37b64c 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
@@ -843,7 +843,7 @@ static const struct dss_features omap34xx_dss_feats = {
  };
  
  static const struct dss_features omap3630_dss_feats = {
-	.fck_div_max		=	32,
+	.fck_div_max		=	31,
  	.dss_fck_multiplier	=	1,
  	.parent_clk_name	=	"dpll4_ck",
  	.dpi_select_source	=	&dss_dpi_select_source_omap2_omap3,
Reviewed-by: Tomi Valkeinen <redacted>

  Tomi

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

Re: [PATCH] fbdev/omap: fix max fclk divider for omap36xx

From: Adam Ford <hidden>
Date: 2019-11-08 13:09:44

On Mon, Oct 21, 2019 at 3:42 AM Tomi Valkeinen [off-list ref] wrote:
On 18/10/2019 15:49, Adam Ford wrote:
quoted
The OMAP36xx and AM/DM37x TRMs say that the maximum divider for DSS fclk
(in CM_CLKSEL_DSS) is 32. Experimentation shows that this is not
correct, and using divider of 32 breaks DSS with a flood or underflows
and sync losts. Dividers up to 31 seem to work fine.

There is another patch to the DT files to limit the divider correctly,
but as the DSS driver also needs to know the maximum divider to be able
to iteratively find good rates, we also need to do the fix in the DSS
driver.

Signed-off-by: Adam Ford <redacted>
Cc: Tomi Valkeinen <redacted>
Cc: stable@vger.kernel.org #linux-4.9.y+
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
index 48c6500c24e1..4429ad37b64c 100644
--- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c
+++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
@@ -843,7 +843,7 @@ static const struct dss_features omap34xx_dss_feats = {
  };

  static const struct dss_features omap3630_dss_feats = {
-     .fck_div_max            =       32,
+     .fck_div_max            =       31,
      .dss_fck_multiplier     =       1,
      .parent_clk_name        =       "dpll4_ck",
      .dpi_select_source      =       &dss_dpi_select_source_omap2_omap3,
Reviewed-by: Tomi Valkeinen <redacted>
What is the next step to get these integrated into 4.9+?

adam
  Tomi

--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help