Bug 78748

Summary: [NV11] Nouveau fails initializing KMS on Geforce2 Go (NV11M)
Product: xorg Reporter: Ismael <isma.casti>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: blocker    
Priority: medium    
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Video bios (10de:0112 NVIDIA Corporation NV11M [GeForce2 Go] (rev b2))
none
debug dmesg
none
dmesg after first patch (it's a different userland than first log)
none
patch #1
none
X.org log with patch #1 applied
none
X.org log with patch #1 applied and xf86-video-nouveau none

Description Ismael 2014-05-15 16:13:59 UTC
Created attachment 99105 [details]
Video bios (10de:0112 NVIDIA Corporation NV11M [GeForce2 Go] (rev b2))

Nouveau kernel module crashes at boot, trying to enable outputs.
It can not detect any modes.

All the outputs are turned off when the bug happens, so the system is unusable.
Comment 1 Ismael 2014-05-15 16:15:29 UTC
Created attachment 99106 [details]
debug dmesg
Comment 2 Ilia Mirkin 2014-05-15 17:00:55 UTC
My investigation of this led to mode being null. I guess I would have expected bios->fp_no_ddc to be set, but it wasn't. Will look at the attached vbios.

A workaround for now would be to change

drivers/gpu/drm/nouveau/nouveau_connector.c:nouveau_connector_detect_depth

        /* LVDS: panel straps */
        if (bios->fp_no_ddc) {
                if (bios->fp.if_is_24bit)
                        connector->display_info.bpc = 8;
                return;
        }

to be

        /* LVDS: panel straps */
        if (1 || bios->fp_no_ddc) {
                if (bios->fp.if_is_24bit)
                        connector->display_info.bpc = 8;
                return;
        }

Which will force it down this path. Alternatively you could change

                duallink = mode->clock >= bios->fp.duallink_transition_clk;

to be

                duallink = mode && mode->clock >= bios->fp.duallink_transition_clk;

Which would also avoid the crash.
Comment 3 Ilia Mirkin 2014-05-15 17:12:19 UTC
DCB table at 0xd537 version 1.5
DCB 0: type 0 [ANALOG] I2C 0 heads 0 conntag 0 LOCAL OR 0 maxfreq 350000kHz
DCB 1: type 4 [???] I2C 1 heads 1 unk00_4 1 conntag 1 LOCAL OR 1
DCB 2: type 1 [TV] I2C 1 heads 0 unk00_4 1 conntag 2 EXT 0 OR 0

Well that's a little odd... I suspect that throws off some of the logic. Type 4 is "reserved". Yet, somehow it still detects that there's a LVDS...

nvbios doesn't print the other stuff, so it'll take some more decoding to work out what's what... might look at that later.
Comment 4 Ismael 2014-05-15 18:37:55 UTC
Created attachment 99115 [details]
dmesg after first patch (it's a different userland than first log)
Comment 5 Ismael 2014-05-15 18:38:43 UTC
Created attachment 99116 [details] [review]
patch #1
Comment 6 Ismael 2014-05-15 18:39:36 UTC
Created attachment 99117 [details]
X.org log with patch #1 applied
Comment 7 Ismael 2014-05-15 19:09:37 UTC
Created attachment 99122 [details]
X.org log with patch #1 applied and xf86-video-nouveau
Comment 8 Ilia Mirkin 2014-08-21 19:34:05 UTC
Can you confirm that things work fine with the hack I suggested (i.e. your patch #1)?
Comment 9 Ismael 2014-08-21 19:43:33 UTC
(In reply to comment #8)
> Can you confirm that things work fine with the hack I suggested (i.e. your
> patch #1)?

No, it didn't work. Nouveau does not crash anymore, but the screen just flashes and shows black and white garbage.

Sadly I do not have access to the hardware anymore, it was a customer's hardware and he took it away. I suppose you can close this bug.
Sorry for not closing this down before, and thanks a lot for your help and time.
Comment 10 Martin Peres 2019-12-04 08:45:26 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/issues/108.

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.