Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 168899
b: refs/heads/master
c: d8a2d0e
h: refs/heads/master
i:
  168897: 1f48fab
  168895: ad30c48
v: v3
  • Loading branch information
Zhenyu Wang authored and Eric Anholt committed Nov 5, 2009
1 parent 6892977 commit 5d58eb2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4bfe6b6876a036d26a960320f1ab0bbd752c19bf
refs/heads/master: d8a2d0e00c0d5a0d55e14b884bff034205015e51
26 changes: 22 additions & 4 deletions trunk/drivers/gpu/drm/i915/intel_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,32 @@ static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode)
struct intel_hdmi_priv *hdmi_priv = intel_output->dev_priv;
u32 temp;

if (mode != DRM_MODE_DPMS_ON) {
temp = I915_READ(hdmi_priv->sdvox_reg);
temp = I915_READ(hdmi_priv->sdvox_reg);

/* HW workaround, need to toggle enable bit off and on for 12bpc, but
* we do this anyway which shows more stable in testing.
*/
if (IS_IGDNG(dev)) {
I915_WRITE(hdmi_priv->sdvox_reg, temp & ~SDVO_ENABLE);
POSTING_READ(hdmi_priv->sdvox_reg);
}

if (mode != DRM_MODE_DPMS_ON) {
temp &= ~SDVO_ENABLE;
} else {
temp = I915_READ(hdmi_priv->sdvox_reg);
I915_WRITE(hdmi_priv->sdvox_reg, temp | SDVO_ENABLE);
temp |= SDVO_ENABLE;
}

I915_WRITE(hdmi_priv->sdvox_reg, temp);
POSTING_READ(hdmi_priv->sdvox_reg);

/* HW workaround, need to write this twice for issue that may result
* in first write getting masked.
*/
if (IS_IGDNG(dev)) {
I915_WRITE(hdmi_priv->sdvox_reg, temp);
POSTING_READ(hdmi_priv->sdvox_reg);
}
}

static void intel_hdmi_save(struct drm_connector *connector)
Expand Down

0 comments on commit 5d58eb2

Please sign in to comment.