On Thu, Jan 12, 2012 at 23:24, Jesse Barnes <jbar...@virtuousgeek.org>wrote:
> On Thu, 12 Jan 2012 23:21:10 +0100 > Vincent Vanackere <vincent.vanack...@gmail.com> wrote: > > I'm happy to report that this patch indeed fixes the issue for me (tested > > both on linus' master and drm-intel-next). > > Note that I had to apply it by hand (the patch was mangled by your mailer > > ?), therefore I'm resending your fix as an attachment in case other > people > > are interested. > > > > Many thanks for the quick fix ! > > Great, thanks for testing. Your fixed up patch was missing one line > though, can you re-test with it added? > > After the: > temp &= ~PORT_TRANS_SEL_MASK; > you need to also add a: > temp |= PORT_TRANS_SEL_CPT(pipe); > > in case you end up running the LVDS off of transcoder B. > > Tested with the (attached, hopefully correct) patch and it still works. :-) Vincent
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 2a3f707..51e7b58 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -5808,12 +5808,15 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc, if (is_lvds) { temp = I915_READ(PCH_LVDS); temp |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP; - if (HAS_PCH_CPT(dev)) + if (HAS_PCH_CPT(dev)){ + temp &= ~PORT_TRANS_SEL_MASK; temp |= PORT_TRANS_SEL_CPT(pipe); - else if (pipe == 1) - temp |= LVDS_PIPEB_SELECT; - else - temp &= ~LVDS_PIPEB_SELECT; + } else { + if (pipe == 1) + temp |= LVDS_PIPEB_SELECT; + else + temp &= ~LVDS_PIPEB_SELECT; + } /* set the corresponsding LVDS_BORDER bit */ temp |= dev_priv->lvds_border_bits;
_______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx