Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling

From: Ilia Mirkin
Date: Sat Jul 15 2017 - 12:14:39 EST


On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efault@xxxxxx> wrote:
> Greetings,
>
> box: bog standard [tc]rusty old Nvidia equipped Q6600 Medion (Aldi) deskside
> kernel: master.today (v4.12-11690-gccd5d1b91f22)
>
> lspci -nn -d 10de:
> 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation G84 [GeForce 8600 GT] [10de:0402] (rev a1)
>
> abreviated dmesg:
> ...
> [ 3.720990] fb: switching to nouveaufb from VESA VGA
> [ 3.744489] Console: switching to colour dummy device 80x25
> [ 3.744966] nouveau 0000:01:00.0: NVIDIA G84 (084200a2)
> ...
> [ 3.846963] usbcore: registered new interface driver uas
> [ 3.849938] nouveau 0000:01:00.0: bios: version 60.84.6e.00.12
> [ 3.870769] hid-generic 0003:04CA:002B.0002: input,hidraw1: USB HID v1.11 Keyboard [Liteon Wireless keyboard and mouse] on usb-0000:00:1d.0-1/input0
> [ 3.870773] nouveau 0000:01:00.0: bios: M0203T not found
> [ 3.870774] nouveau 0000:01:00.0: bios: M0203E not matched!
> [ 3.870777] nouveau 0000:01:00.0: fb: 256 MiB DDR2
> [ 3.871168] input: Liteon Wireless keyboard and mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1:1.1/0003:04CA:002B.0003/input/input7
> [ 3.896090] usb 3-2: new low-speed USB device number 3 using uhci_hcd
> [ 3.919101] [TTM] Zone kernel: Available graphics memory: 3881208 kiB
> [ 3.919106] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
> [ 3.919110] [TTM] Initializing pool allocator
> [ 3.919120] [TTM] Initializing DMA pool allocator
> [ 3.919141] nouveau 0000:01:00.0: DRM: VRAM: 256 MiB
> [ 3.919146] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
> [ 3.919152] nouveau 0000:01:00.0: DRM: TMDS table version 2.0
> [ 3.919157] nouveau 0000:01:00.0: DRM: DCB version 4.0
> [ 3.919162] nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
> [ 3.919167] nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
> [ 3.919171] nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
> [ 3.919176] nouveau 0000:01:00.0: DRM: DCB outp 03: 02022322 00020010
> [ 3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083
> [ 3.919185] nouveau 0000:01:00.0: DRM: DCB conn 00: 0000
> [ 3.919189] nouveau 0000:01:00.0: DRM: DCB conn 01: 1130
> [ 3.919194] nouveau 0000:01:00.0: DRM: DCB conn 02: 2261
> [ 3.919198] nouveau 0000:01:00.0: DRM: DCB conn 03: 0310
> [ 3.919202] nouveau 0000:01:00.0: DRM: DCB conn 04: 0311
> [ 3.919206] nouveau 0000:01:00.0: DRM: DCB conn 05: 0313
> [ 3.919258] ------------[ cut here ]------------
> [ 3.919316] WARNING: CPU: 3 PID: 224 at drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c:83 nvkm_outp_xlat.isra.0+0x26/0x80 [nouveau]

The code in question is

static enum nvkm_ior_proto
nvkm_outp_xlat(struct nvkm_outp *outp, enum nvkm_ior_type *type)
{
switch (outp->info.location) {
case 0:
switch (outp->info.type) {
case DCB_OUTPUT_ANALOG: *type = DAC; return CRT;
case DCB_OUTPUT_TMDS : *type = SOR; return TMDS;
case DCB_OUTPUT_LVDS : *type = SOR; return LVDS;
case DCB_OUTPUT_DP : *type = SOR; return DP;
default:
break;
}
break;
case 1:
switch (outp->info.type) {
case DCB_OUTPUT_TMDS: *type = PIOR; return TMDS;
case DCB_OUTPUT_DP : *type = PIOR; return TMDS; /* not a bug */
default:
break;
}
break;
default:
break;
}
WARN_ON(1);
return UNKNOWN;
}

Looks like someone forgot about TV S-Video/Composite outputs (which
existed up until the GT21x's).

> [ 3.919180] nouveau 0000:01:00.0: DRM: DCB outp 04: 010333f1 00c0c083

And there ya go (the type is the lowest nibble of the first dword). We
don't support TV outputs on nv50+, so you could just add a

case DCB_OUTPUT_TV: return UNKNOWN;

in the location == 0 case.

I don't think that's related to the issue you're seeing on suspend
though, as the TV connector isn't created anyways, it's just an
"annoyance" warn, and you were also seeing it on your GM20x which has
no such thing.

-ilia