drm/msm: add calls to prepare and unprepare panel
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 27 Jul 2015 14:12:39 +0000 (15:12 +0100)
committerRob Clark <robdclark@gmail.com>
Sat, 15 Aug 2015 22:27:26 +0000 (18:27 -0400)
Prepare the panel before it's enabled and un-prepare after disable, this
will make sure that the regulators are switched on and off correctly.

Tested it on APQ8064 based IFC6410 with panel.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/mdp/mdp4/mdp4_lcdc_encoder.c

index c04843376c540b29e98ecd22471b3c1132d8c854..4cd6e721aa0a3a51f4c206ab8234885d97b8d7e5 100644 (file)
@@ -346,8 +346,10 @@ static void mdp4_lcdc_encoder_disable(struct drm_encoder *encoder)
 
        mdp4_write(mdp4_kms, REG_MDP4_LCDC_ENABLE, 0);
 
-       if (panel)
+       if (panel) {
                drm_panel_disable(panel);
+               drm_panel_unprepare(panel);
+       }
 
        /*
         * Wait for a vsync so we know the ENABLE=0 latched before
@@ -412,8 +414,10 @@ static void mdp4_lcdc_encoder_enable(struct drm_encoder *encoder)
        if (ret)
                dev_err(dev->dev, "failed to enable lcdc_clk: %d\n", ret);
 
-       if (panel)
+       if (panel) {
+               drm_panel_prepare(panel);
                drm_panel_enable(panel);
+       }
 
        setup_phy(encoder);