linux/drivers/gpu/drm/nouveau/dispnv50
Lyude Paul ae5769d467 drm/nouveau/kms/nv50-: Limit MST BPC to 8
Noticed this while working on some unrelated CRC stuff. Currently,
userspace has very little support for BPCs higher than 8. While this
doesn't matter for most things, on MST topologies we need to be careful
about ensuring that we do our best to make any given display
configuration fit within the bandwidth restraints of the topology, since
otherwise less people's monitor configurations will work.

Allowing for BPC settings higher than 8 dramatically increases the
required bandwidth for displays in most configurations, and consequently
makes it a lot less likely that said display configurations will pass
the atomic check.

In the future we want to fix this correctly by making it so that we
adjust the bpp for each display in a topology to be as high as possible,
while making sure to lower the bpp of each display in the event that we
run out of bandwidth and need to rerun our atomic check. But for now,
follow the behavior that both i915 and amdgpu are sticking to.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Fixes: 232c9eec41 ("drm/nouveau: Use atomic VCPI helpers for MST")
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: David Airlie <airlied@redhat.com>
Cc: Jerry Zuo <Jerry.Zuo@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Juston Li <juston.li@intel.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: <stable@vger.kernel.org> # v5.1+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2019-12-10 21:34:52 +10:00
..
atom.h drm/nouveau/kms/nv50-: Store the bpc we're using in nv50_head_atom 2019-12-10 21:34:52 +10:00
base507c.c drm/nouveau/kms/nv50-: add fp16 scanout support 2019-08-23 12:55:31 +10:00
base827c.c drm/nouveau/kms/nv50-: add fp16 scanout support 2019-08-23 12:55:31 +10:00
base907c.c drm/nouveau/kms/gv100-: implement csc + enable modern colour managment properties 2019-08-23 12:55:32 +10:00
base917c.c drm/nouveau/kms/nv50-: add fp16 scanout support 2019-08-23 12:55:31 +10:00
base.c drm/nouveau/kms/gk104-: add support for [XA]2R10G10B10 formats 2018-05-18 15:01:30 +10:00
base.h drm/nouveau/kms/nv50-: initial overlay support 2018-05-18 15:01:31 +10:00
core507d.c drm/nouveau/kms/nv50-: simplify tracking of channel interlocks 2018-05-18 15:01:29 +10:00
core827d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
core907d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
core917d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
core.c drm/nouveau/disp/tu102: rename implementation from tu104 2019-02-20 08:59:58 +10:00
core.h drm/nouveau/kms/tu104: initial support 2018-12-11 15:37:55 +10:00
corec37d.c drm/nouveau/kms/gv100: allow windows to use PACKED8BPP formats 2019-08-23 12:55:31 +10:00
corec57d.c drm/nouveau/kms/tu104: initial support 2018-12-11 15:37:55 +10:00
curs507a.c drm/nouveau/kms/nv50-: cursors always use core channel vram ctxdma 2018-06-19 10:38:26 +10:00
curs907a.c drm/nouveau/kms/nv50-: simplify tracking of channel interlocks 2018-05-18 15:01:29 +10:00
curs.c drm/nouveau/disp/tu102: rename implementation from tu104 2019-02-20 08:59:58 +10:00
curs.h drm/nouveau/kms/gv100: initial support 2018-05-18 15:01:46 +10:00
cursc37a.c drm/nouveau/kms/gv100: initial support 2018-05-18 15:01:46 +10:00
dac507d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
dac907d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
disp.c drm/nouveau/kms/nv50-: Limit MST BPC to 8 2019-12-10 21:34:52 +10:00
disp.h drm/nouveau/kms/gv100-: fix spurious window immediate interlocks 2019-05-14 16:58:05 +10:00
head507d.c drm/nouveau/kms/nv50-: allow more flexibility with lut formats 2018-12-11 15:37:49 +10:00
head827d.c drm/nouveau/kms/gk104-: support additional cursor sizes 2018-05-18 15:01:30 +10:00
head907d.c drm/nouveau/kms/nv50-: allow more flexibility with lut formats 2018-12-11 15:37:49 +10:00
head917d.c drm/nouveau/kms/gv100: initial support 2018-05-18 15:01:46 +10:00
head.c drm/nouveau/kms/nv50-: Store the bpc we're using in nv50_head_atom 2019-12-10 21:34:52 +10:00
head.h drm/nouveau/kms/tu104: initial support 2018-12-11 15:37:55 +10:00
headc37d.c drm/nouveau/kms/tu104: initial support 2018-12-11 15:37:55 +10:00
headc57d.c drm/nouveau/kms/tu104: initial support 2018-12-11 15:37:55 +10:00
Kbuild drm/nouveau: fix bogus GPL-2 license header 2019-07-19 16:26:51 +10:00
lut.c drm/nouveau/kms/nv50-: allow more flexibility with lut formats 2018-12-11 15:37:49 +10:00
lut.h drm/nouveau/kms/nv50-: allow more flexibility with lut formats 2018-12-11 15:37:49 +10:00
oimm507b.c drm/nouveau/kms/nv50-: initial overlay support 2018-05-18 15:01:31 +10:00
oimm.c drm/nouveau/kms/nv50-: split each resource type into their own source files 2018-05-18 15:01:28 +10:00
oimm.h drm/nouveau/kms/nv50-: split each resource type into their own source files 2018-05-18 15:01:28 +10:00
ovly507e.c drm/nouveau/kms/nv50-: remove overlay alpha formats 2019-08-23 12:55:32 +10:00
ovly827e.c drm/nouveau/kms/nv50-: remove overlay alpha formats 2019-08-23 12:55:32 +10:00
ovly907e.c drm/nouveau/kms/nv50-: remove overlay alpha formats 2019-08-23 12:55:32 +10:00
ovly917e.c drm/nouveau/kms/nv50-: remove overlay alpha formats 2019-08-23 12:55:32 +10:00
ovly.c drm/nouveau/kms/nv50-: initial overlay support 2018-05-18 15:01:31 +10:00
ovly.h drm/nouveau/kms/nv50-: initial overlay support 2018-05-18 15:01:31 +10:00
pior507d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
sor507d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
sor907d.c drm/nouveau/kms/nv50-: split core implementation by hardware class 2018-05-18 15:01:28 +10:00
sorc37d.c drm/nouveau/kms/gv100: initial support 2018-05-18 15:01:46 +10:00
wimm.c drm/nouveau/disp/tu102: rename implementation from tu104 2019-02-20 08:59:58 +10:00
wimm.h drm/nouveau/kms/gv100: initial support 2018-05-18 15:01:46 +10:00
wimmc37b.c drm/nouveau/kms/gv100-: fix spurious window immediate interlocks 2019-05-14 16:58:05 +10:00
wndw.c drm/atomic: Rename crtc_state->pageflip_flags to async_flip 2019-09-18 18:43:36 +02:00
wndw.h drm/nouveau/kms/gv100-: add support for plane zpos property 2019-08-23 12:55:33 +10:00
wndwc37e.c drm/nouveau/kms/gv100-: attach pixel blend mode property to planes 2019-08-23 12:55:33 +10:00
wndwc57e.c drm/nouveau/kms/gv100-: add support for plane zpos property 2019-08-23 12:55:33 +10:00