Skip to content

Commit

Permalink
drm/sun4i: rgb: Enable panel after controller
Browse files Browse the repository at this point in the history
The panel should be enabled after the controller so that we do not have
visual glitches on the panel while the controller is setup. Similarly,
the panel should be disabled before the controller.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  • Loading branch information
Jonathan Liu authored and Maxime Ripard committed Oct 16, 2016
1 parent 1001354 commit 5647b25
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/gpu/drm/sun4i/sun4i_rgb.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,15 +152,16 @@ 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);
}

/* encoder->bridge can be NULL; drm_bridge_enable checks for it */
drm_bridge_enable(encoder->bridge);

sun4i_tcon_channel_enable(tcon, 0);

if (!IS_ERR(tcon->panel))
drm_panel_enable(tcon->panel);
}

static void sun4i_rgb_encoder_disable(struct drm_encoder *encoder)
Expand All @@ -171,15 +172,16 @@ static void sun4i_rgb_encoder_disable(struct drm_encoder *encoder)

DRM_DEBUG_DRIVER("Disabling RGB output\n");

if (!IS_ERR(tcon->panel))
drm_panel_disable(tcon->panel);

sun4i_tcon_channel_disable(tcon, 0);

/* encoder->bridge can be NULL; drm_bridge_disable checks for it */
drm_bridge_disable(encoder->bridge);

if (!IS_ERR(tcon->panel)) {
drm_panel_disable(tcon->panel);
if (!IS_ERR(tcon->panel))
drm_panel_unprepare(tcon->panel);
}
}

static void sun4i_rgb_encoder_mode_set(struct drm_encoder *encoder,
Expand Down

0 comments on commit 5647b25

Please sign in to comment.