diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2018-12-11 07:50:02 +0300 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2018-12-11 08:37:49 +0300 |
commit | cb55cd0c66a16fd965a44e2634755b060dc64bd7 (patch) | |
tree | 653f6a51b7d7894e17dd890f2b507f5df65ce5a2 /drivers/gpu/drm/nouveau/dispnv50/wndw.c | |
parent | 5949dd8ee2a4e09926240c7009df95ea6e0a6684 (diff) | |
download | linux-cb55cd0c66a16fd965a44e2634755b060dc64bd7.tar.xz |
drm/nouveau/kms/nv50-: allow more flexibility with lut formats
Will be required for Turing.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/dispnv50/wndw.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/wndw.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 2187922e8dc2..96af28e8842a 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -139,10 +139,8 @@ nv50_wndw_flush_set(struct nv50_wndw *wndw, u32 *interlock, if (asyw->set.xlut ) { if (asyw->ilut) { asyw->xlut.i.offset = - nv50_lut_load(&wndw->ilut, - asyw->xlut.i.mode <= 1, - asyw->xlut.i.buffer, - asyw->ilut); + nv50_lut_load(&wndw->ilut, asyw->xlut.i.buffer, + asyw->ilut, asyw->xlut.i.load); } wndw->func->xlut_set(wndw, asyw); } @@ -322,6 +320,11 @@ nv50_wndw_atomic_check_lut(struct nv50_wndw *wndw, asyh->wndw.olut &= ~BIT(wndw->id); } + if (!ilut && wndw->func->ilut_identity) { + static struct drm_property_blob dummy = {}; + ilut = &dummy; + } + /* Recalculate LUT state. */ memset(&asyw->xlut, 0x00, sizeof(asyw->xlut)); if ((asyw->ilut = wndw->func->ilut ? ilut : NULL)) { |