aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrik Jakobsson <patrik.r.jakobsson@gmail.com>2013-04-15 16:02:07 -0400
committerPatrik Jakobsson <patrik.r.jakobsson@gmail.com>2013-04-15 17:38:06 -0400
commit4dd6a897959aca968c59f0b2bc08c2d855cd553c (patch)
tree3eabc9d7968c58be2a0d849255021ba68056ca66
parent0c1a14c2c17f13c1869e82783bd49774bba67254 (diff)
drm/gma500: Check connector status before restoring sdvo
This patch fixes a bug introduced by: commit 749387dc8d8270b279f27a0a794cdf4f4a4aa774 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>
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_sdvo.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/drm/gma500/psb_intel_sdvo.c b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
index cd1b40722edd..19e36603b23b 100644
--- a/drivers/gpu/drm/gma500/psb_intel_sdvo.c
+++ b/drivers/gpu/drm/gma500/psb_intel_sdvo.c
@@ -1854,12 +1854,11 @@ static void psb_intel_sdvo_restore(struct drm_connector *connector)
1854 1854
1855 REG_WRITE(sdvo->sdvo_reg, sdvo->saveSDVO); 1855 REG_WRITE(sdvo->sdvo_reg, sdvo->saveSDVO);
1856 1856
1857 /* Force dpms on upon resume */
1858 psb_intel_sdvo_dpms(encoder, DRM_MODE_DPMS_ON);
1859
1860 /* Force a full mode set on the crtc. We're supposed to have the 1857 /* Force a full mode set on the crtc. We're supposed to have the
1861 mode_config lock already. */ 1858 mode_config lock already. */
1862 drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x, crtc->y, NULL); 1859 if (connector->status == connector_status_connected)
1860 drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x, crtc->y,
1861 NULL);
1863} 1862}
1864 1863
1865static const struct drm_encoder_helper_funcs psb_intel_sdvo_helper_funcs = { 1864static const struct drm_encoder_helper_funcs psb_intel_sdvo_helper_funcs = {