diff options
Diffstat (limited to 'drivers/gpu/drm/imx/imx-ldb.c')
-rw-r--r-- | drivers/gpu/drm/imx/imx-ldb.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c index f5a74a6bbe2b..3357479c5b5a 100644 --- a/drivers/gpu/drm/imx/imx-ldb.c +++ b/drivers/gpu/drm/imx/imx-ldb.c @@ -241,6 +241,13 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder) struct ldb *ldb = &imx_ldb->base; int mux, ret; + if (imx_ldb_ch == &imx_ldb->channel[0] || ldb->dual) + ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK; + if (imx_ldb_ch == &imx_ldb->channel[1] || ldb->dual) + ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK; + + regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl); + if (ldb->dual) { clk_disable_unprepare(imx_ldb->clk[0]); clk_disable_unprepare(imx_ldb->clk[1]); @@ -560,16 +567,15 @@ static const struct component_ops imx_ldb_ops = { static int imx_ldb_probe(struct platform_device *pdev) { - struct device *dev = &pdev->dev; struct imx_ldb *imx_ldb; - imx_ldb = devm_kzalloc(dev, sizeof(*imx_ldb), GFP_KERNEL); + imx_ldb = devm_kzalloc(&pdev->dev, sizeof(*imx_ldb), GFP_KERNEL); if (!imx_ldb) return -ENOMEM; - dev_set_drvdata(dev, imx_ldb); + platform_set_drvdata(pdev, imx_ldb); - return component_add(dev, &imx_ldb_ops); + return component_add(&pdev->dev, &imx_ldb_ops); } static int imx_ldb_remove(struct platform_device *pdev) |