Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751403AbdGOSMx (ORCPT ); Sat, 15 Jul 2017 14:12:53 -0400 Received: from mail-qk0-f194.google.com ([209.85.220.194]:33502 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751088AbdGOSMv (ORCPT ); Sat, 15 Jul 2017 14:12:51 -0400 MIME-Version: 1.0 In-Reply-To: References: <1500097200.6712.17.camel@gmx.de> From: Ilia Mirkin Date: Sat, 15 Jul 2017 14:12:50 -0400 X-Google-Sender-Auth: VHNDik78xQwKPC3XKGELPLsY9h4 Message-ID: Subject: Re: [drm/nouveau] GeForce 8600 GT boot/suspend grumbling To: Mike Galbraith , Ben Skeggs Cc: "dri-devel@lists.freedesktop.org" , "nouveau@lists.freedesktop.org" , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4911 Lines: 104 On Sat, Jul 15, 2017 at 12:14 PM, Ilia Mirkin wrote: > On Sat, Jul 15, 2017 at 1:40 AM, Mike Galbraith 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