From 2863204c6208f8aabeeec163b9d9e827a3da0858 Mon Sep 17 00:00:00 2001
From: Ben Skeggs <bskeggs@redhat.com>
Date: Fri, 19 May 2017 23:59:35 +1000
Subject: [PATCH] drm/nouveau/disp/gm200-: allow non-identity mapping of SOR <-> macro links
Git-commit: 2863204c6208f8aabeeec163b9d9e827a3da0858
Patch-mainline: v4.13-rc1
References: bsc#1095094
Finally, everything should be in place to handle this.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
---
drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
@@ -137,7 +137,7 @@ nvkm_outp_acquire(struct nvkm_outp *outp
/* Failing that, a completely unused OR is the next best thing. */
list_for_each_entry(ior, &outp->disp->ior, head) {
if (!ior->asy.outp && ior->type == type && !ior->arm.outp &&
- ior->id == __ffs(outp->info.or))
+ (ior->func->route.set || ior->id == __ffs(outp->info.or)))
return nvkm_outp_acquire_ior(outp, user, ior);
}
@@ -146,7 +146,7 @@ nvkm_outp_acquire(struct nvkm_outp *outp
*/
list_for_each_entry(ior, &outp->disp->ior, head) {
if (!ior->asy.outp && ior->type == type &&
- ior->id == __ffs(outp->info.or))
+ (ior->func->route.set || ior->id == __ffs(outp->info.or)))
return nvkm_outp_acquire_ior(outp, user, ior);
}