drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()
[ Upstream commit 3b2a999582c467d1883716b37ffcc00178a13713 ]
Both of the two LVDS channels should be disabled for split mode
in the encoder's ->disable() callback, because they are enabled
in the encoder's ->enable() callback.
Fixes: 6556f7f82b
("drm: imx: Move imx-drm driver out of staging")
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
5c1073c666
commit
4e09fc7e22
1 changed files with 4 additions and 3 deletions
|
@ -305,6 +305,7 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
|
||||||
{
|
{
|
||||||
struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
|
struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
|
||||||
struct imx_ldb *ldb = imx_ldb_ch->ldb;
|
struct imx_ldb *ldb = imx_ldb_ch->ldb;
|
||||||
|
int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
|
||||||
int mux, ret;
|
int mux, ret;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -321,14 +322,14 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
|
||||||
|
|
||||||
drm_panel_disable(imx_ldb_ch->panel);
|
drm_panel_disable(imx_ldb_ch->panel);
|
||||||
|
|
||||||
if (imx_ldb_ch == &ldb->channel[0])
|
if (imx_ldb_ch == &ldb->channel[0] || dual)
|
||||||
ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
|
ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
|
||||||
else if (imx_ldb_ch == &ldb->channel[1])
|
if (imx_ldb_ch == &ldb->channel[1] || dual)
|
||||||
ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
|
ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
|
||||||
|
|
||||||
regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
|
regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
|
||||||
|
|
||||||
if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
|
if (dual) {
|
||||||
clk_disable_unprepare(ldb->clk[0]);
|
clk_disable_unprepare(ldb->clk[0]);
|
||||||
clk_disable_unprepare(ldb->clk[1]);
|
clk_disable_unprepare(ldb->clk[1]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue