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

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


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

> On Thu, Jan 12, 2012 at 21:17, Jesse Barnes <jbarnes at virtuousgeek.org>wrote:
> 
> > 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;
> >
> >
> Against which tree do these patches apply ?

I was using the drm-intel-next branch of keithp's tree on
freedesktop.org, but they should also apply with some fuzz against
Linus's current master tree.

-- 
Jesse Barnes, Intel Open Source Technology Center
-------------- 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/3935fe42/attachment.sig>


More information about the Intel-gfx mailing list