drm/sun4i: rgb: add missing calls to drm_panel_{prepare,unprepare}
authorJonathan Liu <net147@gmail.com>
Tue, 30 Aug 2016 06:55:00 +0000 (16:55 +1000)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Tue, 30 Aug 2016 12:52:21 +0000 (14:52 +0200)
If the enable-gpios property of a simple panel in device tree is set,
the GPIO is not toggled on/off because of missing calls to
drm_panel_prepare and drm_panel_unprepare.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/gpu/drm/sun4i/sun4i_rgb.c

index d4e52522ec531bff8d9f02dbfd4dd73d7dff1107..c07697902ab12247afa250f9facb1ed0ba81f641 100644 (file)
@@ -151,8 +151,10 @@ static void sun4i_rgb_encoder_enable(struct drm_encoder *encoder)
 
        DRM_DEBUG_DRIVER("Enabling RGB output\n");
 
-       if (!IS_ERR(tcon->panel))
+       if (!IS_ERR(tcon->panel)) {
+               drm_panel_prepare(tcon->panel);
                drm_panel_enable(tcon->panel);
+       }
 
        if (!IS_ERR(encoder->bridge))
                drm_bridge_enable(encoder->bridge);
@@ -173,8 +175,10 @@ static void sun4i_rgb_encoder_disable(struct drm_encoder *encoder)
        if (!IS_ERR(encoder->bridge))
                drm_bridge_disable(encoder->bridge);
 
-       if (!IS_ERR(tcon->panel))
+       if (!IS_ERR(tcon->panel)) {
                drm_panel_disable(tcon->panel);
+               drm_panel_unprepare(tcon->panel);
+       }
 }
 
 static void sun4i_rgb_encoder_mode_set(struct drm_encoder *encoder,