Skip to content

Commit

Permalink
drm/msm/mdp5: Don't use mode_set helper funcs for encoders and CRTCs
Browse files Browse the repository at this point in the history
We shouldn't use use mode_set/mode_set_nofb helpers when we use runtime
PM. The registers configured in these funcs lose their state when we
eventually enable the display pipeline.

Do not implement these vfuncs in the helpers, and call them in the
crtc_enable/encoder_enable paths instead.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
  • Loading branch information
Archit Taneja authored and Rob Clark committed Aug 2, 2017
1 parent f54ca1a commit 710e7a4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
4 changes: 3 additions & 1 deletion drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,9 @@ static void mdp5_crtc_enable(struct drm_crtc *crtc)
return;

pm_runtime_get_sync(dev);

mdp5_crtc_mode_set_nofb(crtc);

mdp_irq_register(&mdp5_kms->base, &mdp5_crtc->err);

if (mdp5_cstate->cmd_mode)
Expand Down Expand Up @@ -951,7 +954,6 @@ static const struct drm_crtc_funcs mdp5_crtc_no_lm_cursor_funcs = {
};

static const struct drm_crtc_helper_funcs mdp5_crtc_helper_funcs = {
.mode_set_nofb = mdp5_crtc_mode_set_nofb,
.disable = mdp5_crtc_disable,
.enable = mdp5_crtc_enable,
.atomic_check = mdp5_crtc_atomic_check,
Expand Down
5 changes: 4 additions & 1 deletion drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,10 @@ static void mdp5_encoder_enable(struct drm_encoder *encoder)
{
struct mdp5_encoder *mdp5_encoder = to_mdp5_encoder(encoder);
struct mdp5_interface *intf = mdp5_encoder->intf;
/* this isn't right I think */
struct drm_crtc_state *cstate = encoder->crtc->state;

mdp5_encoder_mode_set(encoder, &cstate->mode, &cstate->adjusted_mode);

if (intf->mode == MDP5_INTF_DSI_MODE_COMMAND)
mdp5_cmd_encoder_enable(encoder);
Expand All @@ -320,7 +324,6 @@ static int mdp5_encoder_atomic_check(struct drm_encoder *encoder,
}

static const struct drm_encoder_helper_funcs mdp5_encoder_helper_funcs = {
.mode_set = mdp5_encoder_mode_set,
.disable = mdp5_encoder_disable,
.enable = mdp5_encoder_enable,
.atomic_check = mdp5_encoder_atomic_check,
Expand Down

0 comments on commit 710e7a4

Please sign in to comment.