On Sat, Jul 15, 2017 at 12:14 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote:
> On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith <efa...@gmx.de> 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.

Actually while this may fix things for you in the short term, this is
all generic code, not chip-specific, and we do support TV outputs on
pre-nv50 chips, so it needs to be fixed for real.

Ben - I'm very weak on all these concepts of OR/etc - is the right
move to add a new nvkm_ior_proto/type for TV? (There's also a
DCB_OUTPUT_EOL type, no clue what that is.) I guess it should get type
= DAC and add a new nvkm_ior_proto for TV?

  -ilia
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to