{
        struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
        struct imx_ldb *ldb = imx_ldb_ch->ldb;
+       int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
        int mux, ret;
 
        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;
-       else if (imx_ldb_ch == &ldb->channel[1])
+       if (imx_ldb_ch == &ldb->channel[1] || dual)
                ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
 
        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[1]);
        }