Skip to content

Commit

Permalink
drm/gma500: Check connector status before restoring sdvo
Browse files Browse the repository at this point in the history
This patch fixes a bug introduced by:

commit 749387d
Author: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Date:   Sun Apr 7 16:35:50 2013 +0200
drm/gma500: Fix hibernation problems on sdvo encoders

The bug is triggered when we do a mode set on a sdvo encoder with all
connectors in the disconnected state. A crtc is considered enabled by
drm even though all of its connectors are disconnected. Work around
this by adding a check in our sdvo restore function.

Also remove the unneeded dpms on. Prepare and Commit will take care of
that.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
  • Loading branch information
Patrik Jakobsson committed Apr 15, 2013
1 parent 0c1a14c commit 4dd6a89
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/gpu/drm/gma500/psb_intel_sdvo.c
Original file line number Diff line number Diff line change
Expand Up @@ -1854,12 +1854,11 @@ static void psb_intel_sdvo_restore(struct drm_connector *connector)

REG_WRITE(sdvo->sdvo_reg, sdvo->saveSDVO);

/* Force dpms on upon resume */
psb_intel_sdvo_dpms(encoder, DRM_MODE_DPMS_ON);

/* Force a full mode set on the crtc. We're supposed to have the
mode_config lock already. */
drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x, crtc->y, NULL);
if (connector->status == connector_status_connected)
drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x, crtc->y,
NULL);
}

static const struct drm_encoder_helper_funcs psb_intel_sdvo_helper_funcs = {
Expand Down

0 comments on commit 4dd6a89

Please sign in to comment.