MLK-13607-4 video: mxsfb: change enable/disable controller logic.
authorFancy Fang <chen.fang@nxp.com>
Thu, 8 Dec 2016 05:40:48 +0000 (13:40 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:58:03 +0000 (14:58 -0500)
Change the enable/disable controller logic to support mipi dsi
display on imx7ulp-evk board.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 657d3a052581d517bb6c9cd978b04c4a3194c350)

drivers/video/fbdev/mxsfb.c

index 41f4ed1..503ac9b 100644 (file)
@@ -547,6 +547,13 @@ static void mxsfb_enable_controller(struct fb_info *fb_info)
                }
        }
 
+       if (host->dispdrv && host->dispdrv->drv->enable) {
+               ret = host->dispdrv->drv->enable(host->dispdrv, fb_info);
+               if (ret < 0)
+                       dev_err(&host->pdev->dev, "failed to enable "
+                               "dispdrv:%s\n", host->dispdrv->drv->name);
+       }
+
        /* the pixel clock should be disabled before
         * trying to set its clock rate successfully.
         */
@@ -587,12 +594,6 @@ static void mxsfb_enable_controller(struct fb_info *fb_info)
 
        host->enabled = 1;
 
-       if (host->dispdrv && host->dispdrv->drv->enable) {
-               ret = host->dispdrv->drv->enable(host->dispdrv, fb_info);
-               if (ret < 0)
-                       dev_err(&host->pdev->dev, "failed to enable "
-                               "dispdrv:%s\n", host->dispdrv->drv->name);
-       }
 }
 
 static void mxsfb_disable_controller(struct fb_info *fb_info)
@@ -604,6 +605,8 @@ static void mxsfb_disable_controller(struct fb_info *fb_info)
 
        dev_dbg(&host->pdev->dev, "%s\n", __func__);
 
+       writel(CTRL_RUN, host->base + LCDC_CTRL + REG_CLR);
+
        if (host->dispdrv && host->dispdrv->drv->disable)
                host->dispdrv->drv->disable(host->dispdrv, fb_info);