[Intel-gfx] I915 regression : black screen at boot / Sandybridge Mobile (GT2)

Jesse Barnes jbarnes at virtuousgeek.org
Thu Jan 12 21:17:37 CET 2012


On Thu, 12 Jan 2012 21:13:40 +0100
Vincent Vanackere <vincent.vanackere at gmail.com> wrote:

> On Thu, Jan 12, 2012 at 20:57, Jesse Barnes <jbarnes at virtuousgeek.org>wrote:
> 
> > On Thu, 12 Jan 2012 17:29:38 -0200
> > Eugeni Dodonov <eugeni at dodonov.net> wrote:
> >
> > > On Thu, Jan 12, 2012 at 17:25, Jesse Barnes <jbarnes at virtuousgeek.org
> > >wrote:
> > >
> > > > On Thu, 12 Jan 2012 20:08:59 +0100
> > > > Vincent Vanackere <vincent.vanackere at gmail.com> wrote:
> > > > > > Thanks for the report... do you also have:
> > > > > >
> > > > > > commit 7a4198664d46b87025a64530f1530ab2bea54c19
> > > > > > Author: Jesse Barnes <jbarnes at virtuousgeek.org>
> > > > > > Date:   Tue Nov 15 10:28:53 2011 -0800
> > > > > >
> > > > > >    drm/i915: don't disable a PCH DPLL that's in use
> > > > > >
> > > > > >
> > > > > > commit d8e70a254d8f2da141006e496a51502b79115e80
> > > > > > Author: Jesse Barnes <jbarnes at virtuousgeek.org>
> > > > > > Date:   Tue Nov 15 10:28:54 2011 -0800
> > > > > >
> > > > > >    drm/i915: only set the intel_crtc DPMS mode to on if the mode
> > set
> > > > > > succeeded
> > > > > >
> > > > > > in your tree?  Those are needed to fix some 3 pipe related bugs.
> > > > > >
> > > > > > --
> > > > > > Jesse Barnes, Intel Open Source Technology Center
> > > > > >
> > > > >
> > > > > Yes, these commits were present. To double-check I just tested the
> > latest
> > > > > tip at a429638cac1e5c656818a45aaff78df7b743004e and the problem is
> > still
> > > > > there.
> > > >
> > > > Stefan, you have the same machine?  I wonder if it's an eDP config; my
> > > > t420 here works ok with current bits, but it uses LVDS.
> > > >
> > >
> > > If you are using eDP, you might be facing
> > > https://bugs.freedesktop.org/show_bug.cgi?id=42263 or
> > > https://bugs.freedesktop.org/show_bug.cgi?id=42278.
> > >
> > > Could you try with patch mentioned at
> > > https://bugs.freedesktop.org/show_bug.cgi?id=42263 reverted?
> >
> > Also can you try this patch as a sanity check?  You may need to set up
> > netconsole to capture the BUG_ON if you hit it.
> >
> > --
> > Jesse Barnes, Intel Open Source Technology Center
> >
> > diff --git a/drivers/gpu/drm/i915/intel_display.c
> > b/drivers/gpu/drm/i915/intel_display.c
> > index 29743de..d01f403 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -2921,6 +2921,7 @@ static void ironlake_pch_enable(struct drm_crtc
> > *crtc)
> >                        temp &= ~(TRANSB_DPLLB_SEL);
> >                        temp |= (TRANSB_DPLL_ENABLE | TRANSB_DPLLB_SEL);
> >                } else if (pipe == 2) {
> > +                       BUG_ON(!IS_IVYBRIDGE(dev));
> >                        temp &= ~(TRANSC_DPLLB_SEL);
> >                        temp |= (TRANSC_DPLL_ENABLE | transc_sel);
> >                }
> > @@ -3114,6 +3115,7 @@ static void ironlake_crtc_disable(struct drm_crtc
> > *crtc)
> >                        temp &= ~(TRANSB_DPLL_ENABLE | TRANSB_DPLLB_SEL);
> >                        break;
> >                case 2:
> > +                       BUG_ON(!IS_IVYBRIDGE(dev));
> >                        /* C shares PLL A or B */
> >                        temp &= ~(TRANSC_DPLL_ENABLE | TRANSC_DPLLB_SEL);
> >                        break;
> > @@ -3126,6 +3128,8 @@ static void ironlake_crtc_disable(struct drm_crtc
> > *crtc)
> >        /* disable PCH DPLL */
> >        if (!intel_crtc->no_pll)
> >                intel_disable_pch_pll(dev_priv, pipe);
> > +       else
> > +               BUG_ON(!IS_IVYBRIDGE(dev));
> >
> >        /* Switch from PCDclk to Rawclk */
> >        reg = FDI_RX_CTL(pipe);
> > @@ -5787,6 +5791,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc
> > *crtc,
> >                        udelay(150);
> >                }
> >        } else {
> > +               BUG_ON(!IS_IVYBRIDGE(dev));
> > +
> >                if (dpll == (I915_READ(PCH_DPLL(0)) & 0x7fffffff) &&
> >                    fp == I915_READ(PCH_FP0(0))) {
> >                        intel_crtc->use_pll_a = true;
> >
> >
> 
> Will try. In the meantime I'm attaching the dmesg of a faulty kernel using
> drm.debug=4 in case it helps.

Another one to try... need to check if we're masking out the port
selection bits correctly...

-- 
Jesse Barnes, Intel Open Source Technology Center

@@ -5808,12 +5814,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;

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20120112/f8900ae1/attachment.sig>


More information about the Intel-gfx mailing list