Bug 27136

Summary: blank screen with G98 [Quadro NVS 420] (NV50) dual GPU, 4-head
Product: xorg Reporter: Colin Hudler <hudler>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: cra
Version: 7.5 (2009.10)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log loading nouveau using minimal 4-line xorg.conf
none
kernel messages during "modprobe nouveau reg_debug=0x70 modeset=1"
none
all kernel messages from boot until blank screen using drm.debug=6 and nouveau.reg_debug=0x70 none

Description Colin Hudler 2010-03-17 12:59:05 UTC
Created attachment 34158 [details]
Xorg log loading nouveau using minimal 4-line xorg.conf

I am running debian unstable with latest git and following InstallNouveau and InstallDRM instructions from the wiki at http://nouveau.freedesktop.org/wiki/.

PROBLEM:
When I type "modprobe nouveau", I get a blank screen and the monitor says "Entering Power Save Mode", which is something it might do when there is no input.  The same happens when Xorg loads the module, rather than just manually from the console.

No modules are loaded by initramfs or after init.  No framebuffer driver is built in this kernel, but CONFIG_FRAMEBUFFER_CONSOLE=y.

Complete Xorg logs are attached (using the minimal xorg.conf).  I will attach kernel logs in the next update.

HARDWARE DETAILS:
This card has two GPU's and one DisplayPort.  The DisplayPort has a splitter with dual connectors each containing two DVI ports.  Each connector is controlled by one of the GPU's.  Currently everything works in Xorg using the nvidia driver with TWO Device sections:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 420"
    BusID          "PCI:5:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro NVS 420"
    BusID          "PCI:6:0:0"
EndSection

Each device has a corresponding screen and it is all combined with TwinView, etc.

Here's lcpci output:

05:00.0 VGA compatible controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: nVidia Corporation Device 057e
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 24
        Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
        Region 1: Memory at d0000000 (64-bit, prefetchable) [size=256M]
        Region 3: Memory at f4000000 (64-bit, non-prefetchable) [size=32M]
        Region 5: I/O ports at dc80 [size=128]
        [virtual] Expansion ROM at f7e00000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia

06:00.0 3D controller: nVidia Corporation G98 [Quadro NVS 420] (rev a1)
        Subsystem: nVidia Corporation Device 057e
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 35
        Region 0: Memory at f1000000 (32-bit, non-prefetchable) [size=16M]
        Region 1: Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Region 3: Memory at f2000000 (64-bit, non-prefetchable) [size=32M]
        Region 5: I/O ports at cc80 [size=128]
        [virtual] Expansion ROM at f0f00000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia

Ignore the "Kernel driver in use" line, I was using nvidia when I copied this.

What I am trying to do with nouveau is just get ONE screen working on any of the GPUs, even if I must disable one of them somehow.
Comment 1 Colin Hudler 2010-03-17 13:04:41 UTC
Created attachment 34159 [details]
kernel messages during "modprobe nouveau reg_debug=0x70 modeset=1"

I can provide full kernel logs, if necessary, I just had this one handy.  This is with passing two options reg_debug=0x70 and modeset=1.
Comment 2 Maarten Maathuis 2010-03-17 13:35:10 UTC
To get proper debug logs you need to add drm.debug=6 as well (bitmask, 1 == drm debug, ioctl spam for example, 2 == driver debug, 4 == kms debug).
Comment 3 Colin Hudler 2010-03-17 13:54:31 UTC
Created attachment 34160 [details]
all kernel messages from boot until blank screen using drm.debug=6 and nouveau.reg_debug=0x70

The attached kernel log spans from boot until after the screen goes blank when I type "modprobe nouveau reg_debug=0x070", and drm.debug=6 has also been set.
Comment 4 Colin Hudler 2010-03-17 14:28:10 UTC
I need to correct something I wrote earlier.  The card has NO DisplayPort adapter, but something proprietary (?), which splits into a pair of connectors each having two DVI ports (4 DVI in total).  Apparently, the driver only thinks it is a DisplayPort.  Here's a crude drawing:

<NVS420>[PORT]-+---[DVI1][DVI3]
               |
               +---[DVI2][DVI4]

DVI1 and 3 are at PCI:5:0:0 , DVI2, DVI4 at PCI:6:0:0.  The primary display is attached to DVI1, second at DVI2.
Comment 5 Ben Skeggs 2010-03-17 22:17:28 UTC
Is there any chance you can trace the binary driver in this configuration for me?

http://nouveau.freedesktop.org/wiki/MmioTrace

Thanks!
Comment 6 Colin Hudler 2010-03-18 12:43:33 UTC
I am building a mmiotrace-enabled kernel, and I found that when I did build a new one and reinstall the nvidia driver, it failed in the same way described at <https://bugzilla.redhat.com/show_bug.cgi?id=571992> (but this is debian, not fedora).  I wonder if there's something bugging yours and their driver.  Once I get the nvidia driver working again, I will trace it.
Comment 7 Charles R. Anderson 2011-05-02 11:32:38 UTC
I have the same setup, but with 2 DisplayPort monitors and 2 DVI monitors via DP->DVI adapters.  This is currently working only with the nvidia driver under Fedora 13:

<NVS420>[VHDCI]-+---[DP1][DP3]
                |
                +---[DP2][DP4]
                      |    |
                  [DVI2]  [DVI4]

I also needed to supply EDID dump files of the two DVI monitors directly to the X server in order for them to work correctly, even with the nvidia driver:

Section "Screen"
  Option         "CustomEDID" "DFP-0:/etc/X11/2001fp-edid.bin; DFP-1:/etc/X11/2001fp-edid.bin"

DP2/DVI2 shows up as DFP-0 at PCI:4:0:0 (GPU-0)
DP4/DVI4 shows up as DFP-1 at PCI:4:0:0 (GPU-0)
DP1 shows up as DFP-2 at PCI:3:0:0 (GPU-1)
DP3 shows up as DFP-3 at PCI:3:0:0 (GPU-1)

I have a serial console hooked up in order to be able to perform any necessary debugging.
Comment 8 Ilia Mirkin 2013-08-18 18:09:56 UTC
It appears that this bug report has laid dormant for quite a while. Sorry we haven't gotten to it. Since we fix bugs all the time, chances are pretty good that your issue has been fixed with the latest software. Please give it a shot. (Linux kernel 3.10.7, xf86-video-nouveau 1.0.9, mesa 9.1.6, or their git versions.) If upgrading to the latest isn't an option for you, your distro's bugzilla is probably the right destination for your bug report.

In an effort to clean up our bug list, we're pre-emptively closing all bugs that haven't seen updates since 2011. If the original issue remains, please make sure to provide fresh info, see http://nouveau.freedesktop.org/wiki/Bugs/ for what we need to see, and re-open this one.

Thanks,

The Nouveau Team

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.