linux-stable/drivers/gpu/drm/nouveau
Lyude Paul f287d3d197 drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets
While certain modeset operations on gv100+ need us to temporarily
disable the LUT, we make the mistake of sometimes neglecting to
reprogram the LUT after such modesets. In particular, moving a head from
one encoder to another seems to trigger this quite often. GV100+ is very
picky about having a LUT in most scenarios, so this causes the display
engine to hang with the following error code:

disp: chid 1 stat 00005080 reason 5 [INVALID_STATE] mthd 0200 data
00000001 code 0000002d)

So, fix this by always re-programming the LUT if we're clearing it in a
state where the wndw is still visible, and has a XLUT handle programmed.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Fixes: facaed62b4 ("drm/nouveau/kms/gv100: initial support")
Cc: <stable@vger.kernel.org> # v4.18+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2020-02-17 17:19:00 +10:00
..
dispnv04 drm/nouveau/kms/nv04: remove set but not used variable 'width' 2020-01-23 08:56:51 +10:00
dispnv50 drm/nouveau/kms/gv100-: Re-set LUT after clearing for modesets 2020-02-17 17:19:00 +10:00
include drm/nouveau/gr/tu10x: initial support 2020-01-15 10:50:30 +10:00
nvif drm/nouveau/mmu: Add correct turing page kinds 2020-01-15 10:49:59 +10:00
nvkm drm/nouveau/gr/tu11x: initial support 2020-02-17 17:19:00 +10:00
Kbuild drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:51 +10:00
Kconfig drm/nouveau: Add HD-audio component notifier support 2020-01-29 15:49:46 +10:00
nouveau_abi16.c drm/nouveau: remove open-coded drm_invalid_op() 2019-08-07 11:52:08 -04:00
nouveau_abi16.h drm/nouveau: remove open-coded drm_invalid_op() 2019-08-07 11:52:08 -04:00
nouveau_acpi.c drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_acpi.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_backlight.c
nouveau_bios.c drm/nouveau/bios: downgrade absence of tmds table to info from an error 2019-08-23 12:55:31 +10:00
nouveau_bios.h
nouveau_bo.c drm/nouveau: Fix ttm move init with multiple GPUs 2020-01-15 10:49:59 +10:00
nouveau_bo.h drm/nouveau: Fix fallout from reservation object rework 2019-09-17 14:50:15 +10:00
nouveau_chan.c drm/nouveau: signal pending fences when channel has been killed 2020-01-29 15:49:47 +10:00
nouveau_chan.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_connector.c drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware 2019-12-10 21:34:52 +10:00
nouveau_connector.h drm/nouveau: Fix drm-core using atomic code-paths on pre-nv50 hardware 2019-12-10 21:34:52 +10:00
nouveau_crtc.h drm/nouveau: drop drmP.h from all header files 2019-08-23 12:55:30 +10:00
nouveau_debugfs.c
nouveau_debugfs.h drm/nouveau: drop drmP.h from all header files 2019-08-23 12:55:30 +10:00
nouveau_display.c drm/nouveau: Resume hotplug interrupts earlier 2019-10-24 14:28:06 -04:00
nouveau_display.h drm/nouveau: drop drmP.h from nouveau_drv.h 2019-08-23 12:55:30 +10:00
nouveau_dma.c drm/nouveau: drop use of DRM_UDELAY 2019-08-23 12:55:30 +10:00
nouveau_dma.h
nouveau_dmem.c drm/nouveau/nouveau: fix incorrect sizeof on args.src an args.dst 2020-01-15 10:49:58 +10:00
nouveau_dmem.h nouveau: remove a few function stubs 2019-08-20 09:35:03 -03:00
nouveau_dp.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_drm.c drm/nouveau: Do not try to disable PCI device on Tegra 2020-01-15 10:49:58 +10:00
nouveau_drv.h drm/nouveau: Add HD-audio component notifier support 2020-01-29 15:49:46 +10:00
nouveau_encoder.h
nouveau_fbcon.c drm: constify fb ops across all drivers 2019-12-05 10:57:42 +02:00
nouveau_fbcon.h
nouveau_fence.c drm/nouveau: signal pending fences when channel has been killed 2020-01-29 15:49:47 +10:00
nouveau_fence.h drm/nouveau: signal pending fences when channel has been killed 2020-01-29 15:49:47 +10:00
nouveau_gem.c drm/nouveau: support synchronous pushbuf submission 2020-01-29 15:49:56 +10:00
nouveau_gem.h drm/nouveau: drop drmP.h from all header files 2019-08-23 12:55:30 +10:00
nouveau_hwmon.c drm/nouveau: use NULL for pointer assignment. 2020-01-15 10:49:59 +10:00
nouveau_hwmon.h
nouveau_ioc32.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_ioctl.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_led.c
nouveau_led.h
nouveau_mem.c
nouveau_mem.h
nouveau_nvif.c
nouveau_platform.c
nouveau_platform.h
nouveau_prime.c drm/nouveau/prime: Extend DMA reservation object lock 2019-09-17 14:50:15 +10:00
nouveau_reg.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_sgdma.c drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_svm.c nouveau: use mmu_interval_notifier instead of hmm_mirror 2019-11-23 19:56:44 -04:00
nouveau_svm.h
nouveau_ttm.c drm/nouveau/drm/ttm: Remove set but not used variable 'mem' 2020-01-15 10:50:25 +10:00
nouveau_ttm.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_usif.c
nouveau_usif.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_vga.c drm/nouveau: drop use of drmp.h 2019-08-23 12:55:31 +10:00
nouveau_vga.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nouveau_vmm.c drm/nouveau: zero vma pointer even if we only unreference it rather than free 2020-01-29 15:49:46 +10:00
nouveau_vmm.h
nv04_fbcon.c
nv04_fence.c
nv10_fence.c
nv10_fence.h drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:50 +10:00
nv17_fence.c
nv50_display.h
nv50_fbcon.c
nv50_fence.c
nv84_fence.c
nvc0_fbcon.c
nvc0_fence.c