All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: unconditionally unlock panel regs
@ 2010-12-14 20:17 Jesse Barnes
  2010-12-14 20:45 ` Chris Wilson
  2010-12-14 22:15 ` Jan-Hendrik Zab
  0 siblings, 2 replies; 6+ messages in thread
From: Jesse Barnes @ 2010-12-14 20:17 UTC (permalink / raw)
  To: intel-gfx

In the panel_on function we skip everything if the panel is already
powered up.  However, if it's powered up but not unlocked, subsequent
register writes may fail.

So unlock the regs regardless of the panel state to allow other mode
setting programming to occur normally.

[Still waiting to hear from bug reporters & testers on this one, but
it does get my Vaio working again, with or without the eDP VBT patch
reverted.]

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f74a706..129d47a 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -818,6 +818,11 @@ static bool ironlake_edp_panel_on (struct intel_dp *intel_dp)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	u32 pp, idle_on_mask = PP_ON | PP_SEQUENCE_STATE_ON_IDLE;
 
+	pp = I915_READ(PCH_PP_CONTROL);
+	pp |= PANEL_UNLOCK_REGS | POWER_TARGET_ON;
+	I915_WRITE(PCH_PP_CONTROL, pp);
+	POSTING_READ(PCH_PP_CONTROL);
+
 	if (I915_READ(PCH_PP_STATUS) & PP_ON)
 		return true;

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-12-15 17:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-14 20:17 [PATCH] drm/i915: unconditionally unlock panel regs Jesse Barnes
2010-12-14 20:45 ` Chris Wilson
2010-12-14 21:15   ` Jesse Barnes
2010-12-15 17:27     ` Jim Gettys
2010-12-14 22:15 ` Jan-Hendrik Zab
2010-12-15 13:31   ` Chris Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.