Fixes "No Signal" via HDMI from NVIDIA Corporation ION VGA (rev b1) Ref. "drm/nouveau/disp/g94: implement workaround for dvi issue on fx380" https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2a4bd8a The last working Fedora kernel 4.8.0-0.rc0.git3.1.fc25 Patched and tested with: $ modinfo -n nouveau /lib/modules/4.8.2-300.fc25.x86_64/updates/nouveau.ko Tested-by: poma <poma at gmail.com> --- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c index fbb8c7d..c9e40e7 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c @@ -434,7 +434,8 @@ nv50_disp_dptmds_war(struct nvkm_device *device) case 0x96: case 0x98: case 0xaa: - case 0xac: +/* NVIDIA MCP79/MCP7A "No Signal" */ +/* case 0xac: */ return true; default: break; -- 2.7.4
how sure are you, that this is needed for _every_ nvac? 2016-10-18 5:55 GMT+02:00 poma <pomidorabelisima at gmail.com>:> Fixes "No Signal" via HDMI from NVIDIA Corporation ION VGA (rev b1) > > Ref. > "drm/nouveau/disp/g94: implement workaround for dvi issue on fx380" > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2a4bd8a > > The last working Fedora kernel 4.8.0-0.rc0.git3.1.fc25 > > Patched and tested with: > $ modinfo -n nouveau > /lib/modules/4.8.2-300.fc25.x86_64/updates/nouveau.ko > > Tested-by: poma <poma at gmail.com> > --- > drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c > index fbb8c7d..c9e40e7 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c > +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c > @@ -434,7 +434,8 @@ nv50_disp_dptmds_war(struct nvkm_device *device) > case 0x96: > case 0x98: > case 0xaa: > - case 0xac: > +/* NVIDIA MCP79/MCP7A "No Signal" */ > +/* case 0xac: */ > return true; > default: > break; > -- > 2.7.4 > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau
On 18.10.2016 09:35, Karol Herbst wrote:> how sure are you, that this is needed for _every_ nvac? >Thank you for asking. If you consider, as relevant, referring to the original commit: "drm/nouveau/disp/g94: implement workaround for dvi issue on fx380" https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2a4bd8a <quote> Fixes the second DVI output on Quadro FX380. Thanks to NVIDIA for providing the details on the full workaround. [...] + switch (device->chipset) { + case 0x94: + case 0x96: + case 0x98: + case 0xaa: + case 0xac: + return true; [...] </quote> and to Quadro FX380 as defined: 1. https://nouveau.freedesktop.org/wiki/CodeNames/#NV50 NV96 (G96) ... 2. https://en.wikipedia.org/wiki/Nvidia_Quadro G96 ... GeForce 9400 based 3. https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units#Quadro_FX_.28x800.29_series G96 ... The right question would be, for you Karol, Ben and perhaps the ones from the NVIDIA - those to which Ben refers, whether device->chipset: + case 0x94: + case 0x98: + case 0xaa: + case 0xac: are redundant, in the first place? Moreover, even if case 0x96 applies only, how sure are -you-, that this is needed for _every_ nv96? And given that I am here only the user, who is only caring for my hardware, I can only appreciate your sense of humor. ;)
http://goo.gl/Gm4ffO mmiotrace-nouveau/
On 06.11.2016 18:02, poma wrote:> > http://goo.gl/Gm4ffO > mmiotrace-nouveau/ >$ uname -r 4.9.0-0.rc4.git0.1.fc26.x86_64+debug $ dmesg -t | grep -P '(?=.*nouveau)(?=.*MMIO)' nouveau 0000:01:00.0: bus: MMIO write of 80150000 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO read of 00000010 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO read of 00000007 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO write of 80150000 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO read of 000007ff FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO write of 00100180 FAULT at 61a80c nouveau 0000:01:00.0: bus: MMIO read of 80550000 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO read of 00000007 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO write of 80150000 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO read of 00000001 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO write of 00100180 FAULT at 61a80c nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO write of fb08d1ff FAULT at 61a804 nouveau 0000:01:00.0: bus: MMIO read of 00000001 FAULT at 641000 nouveau 0000:01:00.0: bus: MMIO write of 00000020 FAULT at 641000 nouveau 0000:01:00.0: bus: MMIO read of 00000001 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO read of 00000030 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000014 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 0000006c FAULT at 641000 nouveau 0000:01:00.0: bus: MMIO read of 00000007 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000010 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000000 FAULT at 647080 nouveau 0000:01:00.0: bus: MMIO write of 00000008 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO read of 00000014 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000000 FAULT at 647080 nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000000 FAULT at 647080 nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO read of 00000007 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000000 FAULT at 647080 nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000000 FAULT at 647080 nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO read of 00000014 FAULT at 640000 nouveau 0000:01:00.0: bus: MMIO write of 00000000 FAULT at 647080