On Gainward GTX 1070 routing any other SOR than SOR-1 to macro link 'D' (pad macro 1, link 2) 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@xxxxxxxxxxxxx> --- v2: quirk for the actual macro link instead of the outp index --- 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..a882e590464b 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(4) } }, + {} +}; + 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel