[Nouveau] [PATCH 3/3] drm/nouveau/pci: SOR crossbar quirk for 10b0:1b81

Danilo Krummrich danilokrummrich at dk-develop.de
Mon Feb 5 01:22:56 UTC 2018


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 <danilokrummrich at 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



More information about the Nouveau mailing list