On Gainward GTX 1070 routing any other SOR than SOR-1 to macro link
'G' (outp index 7) causes failures:

[    6.712111] nouveau 0000:01:00.0: bus: MMIO read of 00000000 FAULT at 61c880 
[ IBUS ]
[    6.724888] nouveau 0000:01:00.0: disp: intr24 80000000
[    8.716668] nouveau 0000:01:00.0: DRM: base-0: timeout
[   10.716679] nouveau 0000:01:00.0: DRM: base-1: timeout
[   63.511862] nouveau 0000:01:00.0: DRM: EVO timeout

As I'm not able to spot an issue in the driver, I suppose it's
firmware related.

Therefore to work around this issue skip crossbar routing for this
particular macro link and instead use identity mapping.

Signed-off-by: Danilo Krummrich <danilokrummr...@dk-develop.de>
---
 drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c 
b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
index d2f9664afcf4..29de270f2232 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
@@ -797,6 +797,13 @@ nvkm_device_pci_10de_139b[] = {
        {}
 };
 
+static const struct nvkm_device_pci_vendor
+nvkm_device_pci_10de_1b81[] = {
+       /* Gainward GTX 1070 8192 MB */
+       { 0x10b0, 0x1b81, "GeForce GTX 1070",{ .outp_links_skip = BIT(7) } },
+       {}
+};
+
 static const struct nvkm_device_pci_device
 nvkm_device_pci_10de[] = {
        { 0x0020, "RIVA TNT" },
@@ -1556,7 +1563,7 @@ nvkm_device_pci_10de[] = {
        { 0x1b06, "GeForce GTX 1080 TI" },
        { 0x1bb7, "Quadro P6000" },
        { 0x1b80, "GeForce GTX 1080" },
-       { 0x1b81, "GeForce GTX 1070" },
+       { 0x1b81, "GeForce GTX 1070", nvkm_device_pci_10de_1b81 },
        { 0x1b82, "GeForce GTX 1070 TI" },
        { 0x1b84, "GeForce GTX 1060 3GB" },
        { 0x1b87, "P104-100" },
-- 
2.14.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to