summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2020-06-20 17:51:49 +1000
committerBen Skeggs <bskeggs@redhat.com>2020-07-24 18:51:00 +1000
commitb11d8ca151d08e9ce8f0d8fa3cac561a7e76cf63 (patch)
tree1967ba5b7dc9f8c79245d21c4a90304f37aee8e4 /drivers/gpu/drm/nouveau/dispnv50/corec57d.c
parent9f7ffb49ee6b80a339191a8c282fdf1c89fc01f7 (diff)
downloadlinux-stable-b11d8ca151d08e9ce8f0d8fa3cac561a7e76cf63.tar.gz
linux-stable-b11d8ca151d08e9ce8f0d8fa3cac561a7e76cf63.tar.bz2
linux-stable-b11d8ca151d08e9ce8f0d8fa3cac561a7e76cf63.zip
drm/nouveau/kms/nv50-: use NVIDIA's headers for core init()
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/dispnv50/corec57d.c')
-rw-r--r--drivers/gpu/drm/nouveau/dispnv50/corec57d.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv50/corec57d.c b/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
index afc703a05fea..75876546eac1 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
@@ -24,6 +24,8 @@
#include <nvif/pushc37b.h>
+#include <nvhw/class/clc57d.h>
+
static int
corec57d_init(struct nv50_core *core)
{
@@ -34,12 +36,22 @@ corec57d_init(struct nv50_core *core)
if ((ret = PUSH_WAIT(push, 2 + windows * 5)))
return ret;
- PUSH_NVSQ(push, NVC57D, 0x0208, core->chan.sync.handle);
+ PUSH_MTHD(push, NVC57D, SET_CONTEXT_DMA_NOTIFIER, core->chan.sync.handle);
for (i = 0; i < windows; i++) {
- PUSH_NVSQ(push, NVC57D, 0x1004 + (i * 0x080), 0x0000000f,
- 0x1008 + (i * 0x080), 0x00000000);
- PUSH_NVSQ(push, NVC57D, 0x1010 + (i * 0x080), 0x00117fff);
+ PUSH_MTHD(push, NVC57D, WINDOW_SET_WINDOW_FORMAT_USAGE_BOUNDS(i),
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_FORMAT_USAGE_BOUNDS, RGB_PACKED1BPP, TRUE) |
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_FORMAT_USAGE_BOUNDS, RGB_PACKED2BPP, TRUE) |
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_FORMAT_USAGE_BOUNDS, RGB_PACKED4BPP, TRUE) |
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_FORMAT_USAGE_BOUNDS, RGB_PACKED8BPP, TRUE),
+
+ WINDOW_SET_WINDOW_ROTATED_FORMAT_USAGE_BOUNDS(i), 0x00000000);
+
+ PUSH_MTHD(push, NVC57D, WINDOW_SET_WINDOW_USAGE_BOUNDS(i),
+ NVVAL(NVC57D, WINDOW_SET_WINDOW_USAGE_BOUNDS, MAX_PIXELS_FETCHED_PER_LINE, 0x7fff) |
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_USAGE_BOUNDS, ILUT_ALLOWED, TRUE) |
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_USAGE_BOUNDS, INPUT_SCALER_TAPS, TAPS_2) |
+ NVDEF(NVC57D, WINDOW_SET_WINDOW_USAGE_BOUNDS, UPSCALING_ALLOWED, FALSE));
}
core->assign_windows = true;