Re: [PATCH 1/2] i915: Remove pipe A force quirk for 855GM and 845G

Chris Wilson
2011-03-22T07:17:13Z

On Tue, 22 Mar 2011 03:05:45 +0000, Ben Hutchings <ben@decadent.org.uk> wrote:
> On Mon, 2011-03-21 at 07:38 +0000, Chris Wilson wrote:
> > On Sun, 20 Mar 2011 23:07:04 +0000, Ben Hutchings <ben@decadent.org.uk> wrote:
> > > Applying this quirk to the 855GM in all systems causes regressions
> > > (Debian bugs #493096, #619019). Instead, apply the quirk to specific
> > > models as listed in the old X driver.
> > >
> > > I don't see any explanation for this quirk being applied to the 845G,
> > > except perhaps that VT switching used to hang if pipe A was turned
> > > off. However, that seems to be a problem only when using UMS. So
> > > remove the quirk for the 845G as well.
> >
> > The quirk should only be required for 830M due to the numerous instances
> > where a unit on the second pipe is actually wired into the clock on the
> > first pipe. (And so it is easiest to keep the first pipe active at all
> > times.)
>
> When you say 'wired into', is this part of the chip design or something
> done on the board?

It is mentioned as a "feature" in several places of the specs for the 830G
chipset.

> Jesse, why did you add the quirk for other chips?
>
> > I'd prefer the quirk table to disappear and simply be replaced by
> > IS_830M(). However, that requires testing and so should only be done
> > piecemeal. And leaves some doubt as to why the other machines were in the
> > quirk table in the first place.
>
> The commit messages referring to VT switching suggest that the problems
> related to disabling part A may actually have been related to handover
> to the console driver before KMS.

That sounds promising that the code was indeed papering over bugs...
Doesn't sound too promising for the state of our code though. :(

> > Can you please repost each of these removals as a separate patch and lets
> > try and get a tested-by for each one? (Make sure the tester includes the
> > model name for his machine so we can double check the veracity of the
> > change.)
>
> I already have 4 regression reports for the addition of the quirk for
> 855GM:
>
> http://bugs.debian.org/618665
> http://bugs.debian.org/618997
> http://bugs.debian.org/619019
> http://bugs.debian.org/619192
>
> and one on an unidentified (as yet) chip:
>
> http://bugs.debian.org/619199
>
> So I can just send a patch to revert 855GM.

I'd still prefer a patch for each quirk removal.
Along with a tested-by. ;-)

The little bit of time invested now in preparing small commits with be of
great benefit should anyone need to investigate later. We have to
gradually wean ourselves off the quirk table and convince everybody that
the code does actually know how to modeset the chip!

> The odd thing about these reports is that the regression is reported to
> occur before the system has ever been suspended, and to be fixed (or
> mitigated) by suspending and resuming. I don't understand why the quirk
> even comes into play during boot.

During the switch-over from BIOS we disable all the outputs - instant bug.

Many thanks for preparing these patches,