Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b41136c authored by Tomi Valkeinen's avatar Tomi Valkeinen
Browse files

OMAP: DSS2: DSI: Fix DSI PLL power bug



OMAP3630 has a HW bug causing DSI PLL power command POWER_ON_DIV (0x3)
to not work properly. The bug prevents us from enabling DSI PLL power
only to HS divider block.

This patch adds a dss feature for the bug and converts POWER_ON_DIV
requests to POWER_ON_ALL (0x2).

Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 6553b210
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1059,6 +1059,11 @@ static int dsi_pll_power(enum dsi_pll_power_state state)
{
	int t = 0;

	/* DSI-PLL power command 0x3 is not working */
	if (dss_has_feature(FEAT_DSI_PLL_PWR_BUG) &&
			state == DSI_PLL_POWER_ON_DIV)
		state = DSI_PLL_POWER_ON_ALL;

	REG_FLD_MOD(DSI_CLK_CTRL, state, 31, 30);	/* PLL_PWR_CMD */

	/* PLL_PWR_STATUS */
+1 −1
Original line number Diff line number Diff line
@@ -271,7 +271,7 @@ static struct omap_dss_features omap3630_dss_features = {
		FEAT_LCDENABLESIGNAL | FEAT_PCKFREEENABLE |
		FEAT_PRE_MULT_ALPHA | FEAT_FUNCGATED |
		FEAT_ROWREPEATENABLE | FEAT_LINEBUFFERSPLIT |
		FEAT_RESIZECONF,
		FEAT_RESIZECONF | FEAT_DSI_PLL_PWR_BUG,

	.num_mgrs = 2,
	.num_ovls = 3,
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ enum dss_feat_id {
	/* Independent core clk divider */
	FEAT_CORE_CLK_DIV	= 1 << 11,
	FEAT_LCD_CLK_SRC	= 1 << 12,
	/* DSI-PLL power command 0x3 is not working */
	FEAT_DSI_PLL_PWR_BUG	= 1 << 13,
};

/* DSS register field id */