Bug 830339 - Nouveau DRM Regression between 3.3.7 and 3.4.0
Summary: Nouveau DRM Regression between 3.3.7 and 3.4.0
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-nouveau
Version: 17
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Ben Skeggs
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-06-08 21:25 UTC by David
Modified: 2012-06-28 18:59 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-06-28 18:59:35 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Dmesg output (70.21 KB, text/plain)
2012-06-12 22:43 UTC, David
no flags Details
dmesg from 3.3.7 [working] (70.94 KB, text/plain)
2012-06-12 22:48 UTC, David
no flags Details

Description David 2012-06-08 21:25:58 UTC
The Nouveau driver seems to have regressed in a recent kernel update (working 3.3.7-1 broken in 3.4.0-1).  The screen is visible but every other line "shakes".

This is a second generation MacBook Air

00:00.0 Host bridge: nVidia Corporation MCP89 HOST Bridge (rev a1)
00:00.1 RAM memory: nVidia Corporation MCP89 Memory Controller (rev a1)
00:01.0 RAM memory: nVidia Corporation Device 0d6d (rev a1)
00:01.1 RAM memory: nVidia Corporation Device 0d6e (rev a1)
00:01.2 RAM memory: nVidia Corporation Device 0d6f (rev a1)
00:01.3 RAM memory: nVidia Corporation Device 0d70 (rev a1)
00:02.0 RAM memory: nVidia Corporation Device 0d71 (rev a1)
00:02.1 RAM memory: nVidia Corporation Device 0d72 (rev a1)
00:03.0 ISA bridge: nVidia Corporation MCP89 LPC Bridge (rev a2)
00:03.1 RAM memory: nVidia Corporation MCP89 Memory Controller (rev a1)
00:03.2 SMBus: nVidia Corporation MCP89 SMBus (rev a1)
00:03.3 RAM memory: nVidia Corporation MCP89 Memory Controller (rev a1)
00:03.4 Co-processor: nVidia Corporation MCP89 Co-Processor (rev a1)
00:04.0 USB Controller: nVidia Corporation MCP89 OHCI USB 1.1 Controller (rev a1)
00:04.1 USB Controller: nVidia Corporation MCP89 EHCI USB 2.0 Controller (rev a2)
00:06.0 USB Controller: nVidia Corporation MCP89 OHCI USB 1.1 Controller (rev a1)
00:06.1 USB Controller: nVidia Corporation MCP89 EHCI USB 2.0 Controller (rev a2)
00:08.0 Audio device: nVidia Corporation MCP89 High Definition Audio (rev a2)
00:0a.0 SATA controller: nVidia Corporation MCP89 SATA Controller (AHCI mode) (rev a2)
00:0b.0 RAM memory: nVidia Corporation Device 0d75 (rev a1)
00:15.0 PCI bridge: nVidia Corporation Device 0d9b (rev a1)
00:17.0 PCI bridge: nVidia Corporation MCP89 PCI Express Bridge (rev a1)
01:00.0 Network controller: Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)
02:00.0 VGA compatible controller: nVidia Corporation Device 08a3 (rev a2)

Comment 1 David 2012-06-11 09:06:13 UTC
Better description of problem as it is a bit weird:...

The screen is basically functional, but has three vertical columns of shakey lines (around 100 pixels in size) at 33%, 66% and 95% from the left hand side of the screen.

In the first 33% of the screen Reds are displayed as green.  In the second 33%-66%, reds are displayed as blue, on the Right hand-side colours are displayed correctly.

Hopefully this triggers an "ah-ha" moment :)

Comment 2 Ben Skeggs 2012-06-12 21:59:26 UTC
Are you able to save the dmesg output from after nouveau has incorrectly programmed your display?

Thanks!

Comment 3 David 2012-06-12 22:43:05 UTC
Created attachment 591294 [details]
Dmesg output

Attached dmesg output.

I assume that the Fedora kernel is pretty much in-sync with kernel.org.  I could do a little bisecting this weekend...

Comment 4 David 2012-06-12 22:48:32 UTC
Created attachment 591295 [details]
dmesg from 3.3.7 [working]

Also attach dmesg booting with older kernel for comparison...

Comment 5 Ben Skeggs 2012-06-13 11:56:58 UTC
(In reply to comment #3)
> Created attachment 591294 [details]
> Dmesg output
> 
> Attached dmesg output.
> 
> I assume that the Fedora kernel is pretty much in-sync with kernel.org.  I
> could do a little bisecting this weekend...

That would be great if you could.  I'm not seeing anything particularly interesting standing out in your logs.  I'll leave needinfo set until you get back with that :)

Comment 6 David 2012-06-17 11:07:03 UTC
Hi Ben,

Interesting news.  The problem seems to stem from:

:: commit	c8435362f2211086b34ce871fa9c3fcc7ca79ff9
::
:: drm/nouveau: default to 8bpc for non-LVDS panels if EDID isn't useful

:: A few reports of bad behaviour since the autodetection defaulted to 6bpc,
lets fix this.


But, if I read the code correctly (and I am obviously not the expert):

      /* if not, we're out of options unless we're LVDS, default to 8bpc */
      if (nv_encoder->dcb->type != OUTPUT_LVDS) {
              connector->display_info.bpc = 8;
              return;
      }
      connector->display_info.bpc = 6;

I am going through the "not LVDS path" which if I have correctly understood to mean "LCD display" is incorrect.

My nv_encoder->dcb->type is set to OUTPUT_DP (display port).  Obviously the Mac has a Display Port, but I am not using it in this case :)


Of course there may be a million things that I have misunderstood here, but that's my initial finding.  If you want me to debug further, I can add printks as well as anyone else!

David L

Comment 7 David 2012-06-17 11:39:49 UTC
Quick additional note...  I plugged in my TV using Display Port.  It works fine, but actually comes through as OUTPUT_TDMS (2), rather than OUTPUT_DP (6).

In the event that this is actually Display Point internally, I checked nv_connector->edid, and indeed this is not null for both devices.  As the EDID structure is available (I didn't look through what was available within it) there may be something else that can identify the LCD screen to choose 6 bpc vs 8 bpc.

Let me know if you need the contents of any of the structures :)

David L

P.S.  What is bpc?  It it bits per colour?  I am sure that this LCD can support 24bit colour :)

Comment 8 David 2012-06-17 11:49:45 UTC
More random stuff - xrandr implies that my display supports 6bpc and 8bpc (assuming that this is the same bpc!).  Lots of stuff here that I don't really know how to intepret...


Screen 0: minimum 320 x 200, current 3360 x 1080, maximum 8192 x 8192
eDP-1 connected 1440x900+0+0 (0x63) normal (normal left inverted right x axis y axis) 286mm x 179mm
	Identifier: 0x61
	Timestamp:  9061
	Subpixel:   unknown
	Gamma:      1.0:1.0:1.0
	Brightness: 1.0
	Clones:    
	CRTC:       0
	CRTCs:      0
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	EDID:
		00ffffffffffff000610df9c00000000a
		23140103801d12780aef059757549227
		22505400000001010101010101010101
		010101010101c223a0d450841a30402a
		36001eb3100000180000000100061030
		00000000000000000a20000000fe004c
		503133335750312d54504131000000fc
		00436f6c6f72204c43440a202020001f
	dithering depth:	auto
		supported: auto         6 bpc        8 bpc       
	dithering mode:	auto
		supported: auto         off          static 2x2   dynamic 2x2 
	scaling mode:	Full
		supported: None         Full         Center       Full aspect 
	color vibrance: 150 (0x00000096)	range:  (0,200)
	vibrant hue: 90 (0x0000005a)	range:  (0,180)
  1440x900 (0x63)   91.5MHz -HSync -VSync *current +preferred
        h: width  1440 start 1504 end 1546 total 1652 skew    0 clock   55.4KHz
        v: height  900 start  903 end  909 total  926           clock   59.8Hz
  1152x864 (0x64)   81.8MHz -HSync +VSync
        h: width  1152 start 1216 end 1336 total 1520 skew    0 clock   53.8KHz
        v: height  864 start  867 end  871 total  897           clock   60.0Hz
  1024x768 (0x65)   63.5MHz -HSync +VSync
        h: width  1024 start 1072 end 1176 total 1328 skew    0 clock   47.8KHz
        v: height  768 start  771 end  775 total  798           clock   59.9Hz
  800x600 (0x66)   38.2MHz -HSync +VSync
        h: width   800 start  832 end  912 total 1024 skew    0 clock   37.4KHz
        v: height  600 start  603 end  607 total  624           clock   59.9Hz
  640x480 (0x67)   23.8MHz -HSync +VSync
        h: width   640 start  664 end  720 total  800 skew    0 clock   29.7KHz
        v: height  480 start  483 end  487 total  500           clock   59.4Hz
  720x400 (0x68)   22.2MHz -HSync +VSync
        h: width   720 start  744 end  808 total  896 skew    0 clock   24.8KHz
        v: height  400 start  403 end  413 total  417           clock   59.6Hz
  640x400 (0x69)   20.0MHz -HSync +VSync
        h: width   640 start  664 end  720 total  800 skew    0 clock   25.0KHz
        v: height  400 start  403 end  409 total  417           clock   60.0Hz
  640x350 (0x6a)   17.5MHz -HSync +VSync
        h: width   640 start  664 end  720 total  800 skew    0 clock   21.9KHz
        v: height  350 start  353 end  363 total  366           clock   59.8Hz
DP-1 connected 1920x1080+1440+0 (0x6b) normal (normal left inverted right x axis y axis) 698mm x 392mm
	Identifier: 0x62
	Timestamp:  9061
	Subpixel:   unknown
	Gamma:      1.0:1.0:1.0
	Brightness: 1.0
	Clones:    
	CRTC:       1
	CRTCs:      1
	Transform:  1.000000 0.000000 0.000000
	            0.000000 1.000000 0.000000
	            0.000000 0.000000 1.000000
	           filter: 
	EDID:
		00ffffffffffff0034a92bc101010101
		00120103800000780adaffa3584aa229
		17494b00000001010101010101010101
		010101010101023a80d072382d40102c
		4580ba882100001e023a801871382d40
		582c4500ba882100001e000000fc0050
		616e61736f6e69632d54560a000000fd
		00173d0f440f000a202020202020012d
	dithering depth:	auto
		supported: auto         6 bpc        8 bpc       
	dithering mode:	auto
		supported: auto         off          static 2x2   dynamic 2x2 
	scaling mode:	Full
		supported: None         Full         Center       Full aspect 
	color vibrance: 150 (0x00000096)	range:  (0,200)
	vibrant hue: 90 (0x0000005a)	range:  (0,180)
	underscan vborder: 0 (0x00000000)	range:  (0,128)
	underscan hborder: 0 (0x00000000)	range:  (0,128)
	underscan:	off
		supported: auto         off          on          
  1920x1080 (0x6b)  148.5MHz +HSync +VSync *current +preferred
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock   56.2KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   50.0Hz
  1920x1080 (0x6c)  148.5MHz +HSync +VSync
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   67.5KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   60.0Hz
  1920x1080 (0x6d)   74.2MHz +HSync +VSync
        h: width  1920 start 2558 end 2602 total 2750 skew    0 clock   27.0KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   24.0Hz
  1920x1080 (0x6e)   74.2MHz +HSync +VSync Interlace
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   33.8KHz
        v: height 1080 start 1084 end 1094 total 1125           clock   30.0Hz
  1920x1080 (0x6f)   74.2MHz +HSync +VSync Interlace
        h: width  1920 start 2448 end 2492 total 2640 skew    0 clock   28.1KHz
        v: height 1080 start 1084 end 1094 total 1125           clock   25.0Hz
  1280x720 (0x70)   74.2MHz +HSync +VSync
        h: width  1280 start 1390 end 1430 total 1650 skew    0 clock   45.0KHz
        v: height  720 start  725 end  730 total  750           clock   60.0Hz
  1280x720 (0x71)   74.2MHz +HSync +VSync
        h: width  1280 start 1720 end 1760 total 1980 skew    0 clock   37.5KHz
        v: height  720 start  725 end  730 total  750           clock   50.0Hz
  1440x576 (0x72)   27.0MHz -HSync -VSync Interlace
        h: width  1440 start 1464 end 1590 total 1728 skew    0 clock   15.6KHz
        v: height  576 start  580 end  586 total  625           clock   25.0Hz
  1440x480 (0x73)   27.0MHz -HSync -VSync Interlace
        h: width  1440 start 1478 end 1602 total 1716 skew    0 clock   15.7KHz
        v: height  480 start  488 end  494 total  525           clock   30.0Hz
  720x576 (0x74)   27.0MHz -HSync -VSync
        h: width   720 start  732 end  796 total  864 skew    0 clock   31.2KHz
        v: height  576 start  581 end  586 total  625           clock   50.0Hz
  720x480 (0x75)   27.0MHz -HSync -VSync
        h: width   720 start  736 end  798 total  858 skew    0 clock   31.5KHz
        v: height  480 start  489 end  495 total  525           clock   59.9Hz
  640x480 (0x76)   25.2MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock   31.5KHz
        v: height  480 start  490 end  492 total  525           clock   59.9Hz

Comment 9 Ben Skeggs 2012-06-17 23:14:27 UTC
Commit a6a17859f1bdf607650ee055101f54c5f207762b (drm/nouveau/disp: fix dithering not being enabled on some eDP macbooks) in Linus' kernel tree might help you.

Comment 10 David 2012-06-18 19:11:21 UTC
Hi,

Yup, that patch fixes it.  Thanks - it's really nice to be able to use my laptop without installing any third-party drivers.

Should I leave this bug report open until the Fedora builds are fixed (or at least the patch goes into the mainline kernel)?

Feel free to close if you don't need to track this issue, though!

Thanks again,

David L

Comment 11 David 2012-06-28 18:59:35 UTC
Confirmed fixed in 3.4.3-1.fc17.x86_64

Thanks!

David L


Note You need to log in before you can comment on or make changes to this bug.