Re: Regression: black screen on VGA w/ nouveau in Linux 3.3

From: Nick Bowler
Date: Tue Apr 03 2012 - 21:28:28 EST


CCing Tom Bylander as he sent me a mail off-list saying he experiences
a similar issue on an FX 5200.

Tom, maybe you'll have better luck bisecting this than I did?

On 2012-03-19 10:35 -0400, Nick Bowler wrote:
> Just upgraded to Linux 3.3 on my desktop and noticed that the VGA output
> on my card w/ nouveau is totally black (both at the console and in X).
> Almost everything appears to work normally: DPMS works, modesetting
> works, DDC works... all messages indicate that things are working --
> just the image is completely black.

OK, so this is still reproducible on Linux 3.4-rc1+ (Linus' master). I
captured the dmesg output before (3.2.13, which is a working kernel),
and after (3.3.1 and 3.4-rc1-00144-g01627d9 - both fail in an identical
manner). All three logs are attached in full (gzipped).

One thing that immediately jumps out is the WARNING in the 3.4-rc1+ log
that occurs early and did not appear in either of the other logs:

------------[ cut here ]------------
WARNING: at /home/nick/misc/linux-2.6/arch/x86/pci/i386.c:60
pcibios_fwaddrmap_lookup+0x1d/0x3d()
Hardware name: K8N-E-Deluxe
Modules linked in:
Pid: 1, comm: swapper Not tainted 3.4.0-rc1-00144-g01627d9 #47
Call Trace:
[<ffffffff81026baf>] warn_slowpath_common+0x80/0x98
[<ffffffff81026bdc>] warn_slowpath_null+0x15/0x17
[<ffffffff8129f79f>] pcibios_fwaddrmap_lookup+0x1d/0x3d
[<ffffffff81687306>] pcibios_allocate_resources+0xd4/0x217
[<ffffffff81688447>] ? pci_legacy_init+0x3e/0x3e
[<ffffffff81687460>] pcibios_resource_survey+0x17/0x2d
[<ffffffff81688dfd>] pcibios_init+0x28/0x3a
[<ffffffff8168848e>] pci_subsys_init+0x47/0x4d
[<ffffffff810002e2>] do_one_initcall+0x78/0x126
[<ffffffff81662bab>] kernel_init+0xe9/0x17a
[<ffffffff8166248a>] ? rdinit_setup+0x28/0x28
[<ffffffff8131ac44>] kernel_thread_helper+0x4/0x10
[<ffffffff81662ac2>] ? start_kernel+0x321/0x321
[<ffffffff8131ac40>] ? gs_change+0xb/0xb
---[ end trace 4eaa2a86a8e2da22 ]---

Other than that, I diffed the 3.2.13 log and 3.4-rc1+ log and grepped
for nouveau-related differences. I see no obvious errors, but I admit
that I don't really know what to look for.

% diff -u nouveau-3.2.13.log nouveau-3.4-rc1+.log | grep -C3 '\[drm\]'

@@ -418,19 +429,21 @@
Real Time Clock Driver v1.12b
Linux agpgart interface v0.103
[drm] Initialized drm 1.1.0 20060810
+VGA switcheroo: detected Optimus DSM method \ handle
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 19
-nouveau 0000:01:00.0: PCI INT A -> Link[LNKE] -> GSI 19 (level, low) -> IRQ 19
[drm] nouveau 0000:01:00.0: Detected an NV30 generation card (0x436200a1)
-[drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN
+[drm] nouveau 0000:01:00.0: Checking PRAMIN for VBIOS
[drm] nouveau 0000:01:00.0: ... appears to be valid
+[drm] nouveau 0000:01:00.0: Using VBIOS from PRAMIN
[drm] nouveau 0000:01:00.0: BMP BIOS found
[drm] nouveau 0000:01:00.0: BMP version 5.40
[drm] nouveau 0000:01:00.0: Bios version 04.36.20.21
-[drm] nouveau 0000:01:00.0: Found Display Configuration Block version 2.2
-[drm] nouveau 0000:01:00.0: Raw DCB entry 0: 01000300 00009c40
-[drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02010310 00009c40
-[drm] nouveau 0000:01:00.0: Raw DCB entry 2: 04000302 00000000
-[drm] nouveau 0000:01:00.0: Raw DCB entry 3: 02020321 00000303
+[drm] nouveau 0000:01:00.0: MXM: no VBIOS data, nothing to do
+[drm] nouveau 0000:01:00.0: DCB version 2.2
+[drm] nouveau 0000:01:00.0: DCB outp 00: 01000300 00009c40
+[drm] nouveau 0000:01:00.0: DCB outp 01: 02010310 00009c40
+[drm] nouveau 0000:01:00.0: DCB outp 02: 04000302 00000000
+[drm] nouveau 0000:01:00.0: DCB outp 03: 02020321 00000303
[drm] nouveau 0000:01:00.0: Loading NV17 power sequencing microcode
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xF01D
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xF4E1
@@ -439,11 +452,10 @@
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xF8B3
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 5 at offset 0xF8D0
[drm] nouveau 0000:01:00.0: Parsing VBIOS init table 6 at offset 0xF959
-[drm] nouveau 0000:01:00.0: 0 available performance level(s)
-[drm] nouveau 0000:01:00.0: c: core 425MHz memory 501MHz voltage 1350mV
-[TTM] Zone kernel: Available graphics memory: 512160 kiB.
-[TTM] Initializing pool allocator.
-[drm] nouveau 0000:01:00.0: Detected 256MiB VRAM
+[TTM] Zone kernel: Available graphics memory: 512142 kiB
+[TTM] Initializing pool allocator
+[TTM] Initializing DMA pool allocator
+[drm] nouveau 0000:01:00.0: Detected 256MiB VRAM (DDR1)
agpgart-amd64 0000:00:00.0: AGP 3.0 bridge
agpgart: swapper tried to set rate=x12. Setting to AGP3 x8 mode.
agpgart-amd64 0000:00:00.0: putting AGP V3 device into 8x mode
@@ -452,11 +464,14 @@
[drm] nouveau 0000:01:00.0: Saving VGA fonts
[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[drm] No driver support for vblank timestamp query.
+[drm] nouveau 0000:01:00.0: 0 available performance level(s)
+[drm] nouveau 0000:01:00.0: c: core 425MHz memory 501MHz voltage 1350mV
+[drm] nouveau 0000:01:00.0: 0xE51A: Parsing digital output script table
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 0)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 1)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on tmds encoder (output 2)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on TV encoder (output 3)
-[drm] nouveau 0000:01:00.0: allocated 1280x1024 fb: 0x49000, bo ffff88003da11400
+[drm] nouveau 0000:01:00.0: allocated 1280x1024 fb: 0x49000, bo ffff88003e314c00
fbcon: nouveaufb (fb0) is primary device
[drm] nouveau 0000:01:00.0: 0xE51A: Parsing digital output script table
[drm] nouveau 0000:01:00.0: Setting dpms mode 0 on tmds encoder (output 2)
@@ -466,12 +481,11 @@
Console: switching to colour frame buffer device 160x64
fb0: nouveaufb frame buffer device
drm: registered panic notifier
-[drm] Initialized nouveau 0.0.16 20090420 for 0000:01:00.0 on minor 0
+[drm] Initialized nouveau 1.0.0 20120316 for 0000:01:00.0 on minor 0
brd: module loaded
sata_nv 0000:00:0a.0: version 3.5
ACPI: PCI Interrupt Link [LTID] BIOS reported IRQ 0, using IRQ 22
--
+NFS: Registering the id_resolver key type
it87: Found IT8712F chip at 0xd00, revision 7
it87: VID is disabled (pins used for GPIO)
[drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 1)

> The VGA is one of two outputs in use: the other (DVI) output works
> normally. The card also has an unused TV-out port, FWIW.
>
> The card is an NV36 generation (Geforce FX5700 AGP). This is a
> regression from Linux 3.2 -- unfortunately, bisection has proved
> extremely difficult because the intermediate kernels git is asking me
> to test panic immediately on boot (and compiling Linux takes a fairly
> long time on this box too). The failed attempt went like this:
>
> git bisect start 'drivers/gpu'
> # bad: [c16fa4f2ad19908a47c63d8fa436a1178438c7e7] Linux 3.3
> git bisect bad c16fa4f2ad19908a47c63d8fa436a1178438c7e7
> # good: [805a6af8dba5dfdd35ec35dc52ec0122400b2610] Linux 3.2
> git bisect good 805a6af8dba5dfdd35ec35dc52ec0122400b2610
> # skip: [5d56fe5fd794a98c4f446f8665fd06b82e93ff64] Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-core-next
> git bisect skip 5d56fe5fd794a98c4f446f8665fd06b82e93ff64
> # good: [dffc9ceb55695f121adc57dd1fde7304c3afe81e] gma500: kill virtual mapping support
> git bisect good dffc9ceb55695f121adc57dd1fde7304c3afe81e
> # skip: [5c2a5ce689c99037771a6c110374461781a6f042] drm: add missing exports for i810 driver.
> git bisect skip 5c2a5ce689c99037771a6c110374461781a6f042
> # skip: [44517c44496062180a6376cc704b33129441ce60] drm/radeon/kms: Add an MSI quirk for Dell RS690
> git bisect skip 44517c44496062180a6376cc704b33129441ce60
>
> (I stopped at this point)
>
> I'm running the latest git xf86-video-nouveau, but since the issue
> occurs at the console it's probably not too important...

Please let me know if you need any more info,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)

Attachment: nouveau-3.2.13.log.gz
Description: Binary data

Attachment: nouveau-3.3.1.log.gz
Description: Binary data

Attachment: nouveau-3.4-rc1+.log.gz
Description: Binary data