diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-06-21 16:29:03 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-07-06 06:55:30 +1000 |
commit | e023ac91513bbad51b73317e752203b9b941257c (patch) | |
tree | 4fd3e098e700195866136e4b512a6f514bc30a5b | |
parent | da8c661fc2931f95f860663150f8086b17f41946 (diff) | |
download | nouveau-e023ac91513bbad51b73317e752203b9b941257c.tar.gz |
disp/nv50-: fix lookup of udisp table under certain circumstances
Some VBIOS have separate tables for each link of a given output path,
which means we have to specify the specific link we're using instead
of all possible links.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drm/nouveau/nvkm/engine/disp/gf119.c | 4 | ||||
-rw-r--r-- | drm/nouveau/nvkm/engine/disp/nv50.c | 3 |
2 files changed, 2 insertions, 5 deletions
diff --git a/drm/nouveau/nvkm/engine/disp/gf119.c b/drm/nouveau/nvkm/engine/disp/gf119.c index 5dd34382f..605e4ea66 100644 --- a/drm/nouveau/nvkm/engine/disp/gf119.c +++ b/drm/nouveau/nvkm/engine/disp/gf119.c @@ -76,12 +76,10 @@ exec_lookup(struct nv50_disp *disp, int head, int or, u32 ctrl, mask |= 0x0001 << or; mask |= 0x0100 << head; - list_for_each_entry(outp, &disp->base.outp, head) { if ((outp->info.hasht & 0xff) == type && (outp->info.hashm & mask) == mask) { - *data = nvbios_outp_match(bios, outp->info.hasht, - outp->info.hashm, + *data = nvbios_outp_match(bios, outp->info.hasht, mask, ver, hdr, cnt, len, info); if (!*data) return NULL; diff --git a/drm/nouveau/nvkm/engine/disp/nv50.c b/drm/nouveau/nvkm/engine/disp/nv50.c index fcb1b0c46..0ea9d9df6 100644 --- a/drm/nouveau/nvkm/engine/disp/nv50.c +++ b/drm/nouveau/nvkm/engine/disp/nv50.c @@ -269,8 +269,7 @@ exec_lookup(struct nv50_disp *disp, int head, int or, u32 ctrl, list_for_each_entry(outp, &disp->base.outp, head) { if ((outp->info.hasht & 0xff) == type && (outp->info.hashm & mask) == mask) { - *data = nvbios_outp_match(bios, outp->info.hasht, - outp->info.hashm, + *data = nvbios_outp_match(bios, outp->info.hasht, mask, ver, hdr, cnt, len, info); if (!*data) return NULL; |