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

2011-03-22 Thread Chris Wilson

On Tue, 22 Mar 2011 03:05:45 +, Ben Hutchings b...@decadent.org.uk wrote:
 On Mon, 2011-03-21 at 07:38 +, Chris Wilson wrote:
  On Sun, 20 Mar 2011 23:07:04 +, Ben Hutchings b...@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,
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/0d30dc$lh8...@orsmga001.jf.intel.com



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

2011-03-22 Thread Chris Wilson
On Tue, 22 Mar 2011 03:05:45 +, Ben Hutchings b...@decadent.org.uk wrote:
 On Mon, 2011-03-21 at 07:38 +, Chris Wilson wrote:
  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.

Yes. Having just been poked by Julien to look at the original quirk
table and so seeing the generic match all 855GM, please do send that
patch.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/849307$c3g...@azsmga001.ch.intel.com



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

2011-03-22 Thread Jesse Barnes
On Tue, 22 Mar 2011 03:05:45 +
Ben Hutchings b...@decadent.org.uk wrote:

 On Mon, 2011-03-21 at 07:38 +, Chris Wilson wrote:
  On Sun, 20 Mar 2011 23:07:04 +, Ben Hutchings b...@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?
 
 Jesse, why did you add the quirk for other chips?

The DDX driver had an option to force enable pipe A, and we told people
to report bugs when they needed it.  So we got a bunch from Ubuntu and
elsewhere and added them without too much investigation into the root
cause (as you say below it could have been something else).

  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.

Yes, definitely possible.  We didn't have all the assertion checks we
have now, so we may have just been masking other problems without
knowing it.

-- 
Jesse Barnes, Intel Open Source Technology Center



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110322084755.2546e49d@jbarnes-desktop



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

2011-03-21 Thread Ben Hutchings
On Mon, 2011-03-21 at 07:38 +, Chris Wilson wrote:
 On Sun, 20 Mar 2011 23:07:04 +, Ben Hutchings b...@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?

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.

 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.

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.

Ben.

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.


signature.asc
Description: This is a digitally signed message part


Bug#619019: [PATCH 1/2] i915: Remove 'pipe A force' quirk for 855GM and 845G

2011-03-20 Thread Ben Hutchings
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.

Signed-off-by: Ben Hutchings b...@decadent.org.uk
---
Needs people to test it, as I can't.

Ben.

 drivers/gpu/drm/i915/intel_display.c |   23 +++
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 3106c0d..a490f75 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7345,19 +7345,34 @@ struct intel_quirk intel_quirks[] = {
 
/* Thinkpad R31 needs pipe A force quirk */
{ 0x3577, 0x1014, 0x0505, quirk_pipea_force },
+   /* Dell Latitude D400 needs pipe A force quirk (LP: #228519) */
+   { 0x3582, 0x1028, 0x0139, quirk_pipea_force },
+   /* Dell Latitude D500 needs pipe A force quirk */
+   { 0x3582, 0x1028, 0x0152, quirk_pipea_force },
+   /* Dell Latitude D505 needs pipe A force quirk (LP: #235643) */
+   { 0x3582, 0x1028, 0x0163, quirk_pipea_force },
+   /* Dell Latitude X300 needs pipe A force quirk */
+   { 0x3582, 0x1028, 0x014f, quirk_pipea_force },
+   /* Dell Inspiron 510m needs pipe A force quirk */
+   { 0x3582, 0x1028, 0x0164, quirk_pipea_force },
+   /* Toshiba Satellite A30 needs pipe A force quirk */
+   { 0x3582, 0x1179, 0xff00, quirk_pipea_force },
/* Toshiba Protege R-205, S-209 needs pipe A force quirk */
{ 0x2592, 0x1179, 0x0001, quirk_pipea_force },
+   /* Intel 855GM hardware (See LP: #216490) */
+   { 0x3582, 0x1028, 0x00c8, quirk_pipea_force },
+   /* Intel 855GM hardware (See Novell Bugzilla #406123) */
+   { 0x3582, 0x10cf, 0x1215, quirk_pipea_force },
+   /* HP Pavilion ze4944ea needs pipe A force quirk (See LP: #242389) */
+   { 0x3582, 0x103c, 0x3084, quirk_pipea_force },
 
/* ThinkPad X30 needs pipe A force quirk (LP: #304614) */
{ 0x3577,  0x1014, 0x0513, quirk_pipea_force },
/* ThinkPad X40 needs pipe A force quirk */
+   { 0x3582, 0x1014, 0x0557, quirk_pipea_force },
 
/* ThinkPad T60 needs pipe A force quirk (bug #16494) */
{ 0x2782, 0x17aa, 0x201a, quirk_pipea_force },
-
-   /* 855  before need to leave pipe A  dpll A up */
-   { 0x3582, PCI_ANY_ID, PCI_ANY_ID, quirk_pipea_force },
-   { 0x2562, PCI_ANY_ID, PCI_ANY_ID, quirk_pipea_force },
 };
 
 static void intel_init_quirks(struct drm_device *dev)
-- 
1.7.4.1






--
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1300662425.26693.301.camel@localhost