[PATCH v3 0/5] drm/nouveau: DP interlace fixes
From: Lyude Paul
Date: Mon May 11 2020 - 18:42:29 EST
Currently, nouveau doesn't actually bother to try probing whether or not
it can actually handle interlaced modes over DisplayPort. As a result,
on volta and later we'll end up trying to set an interlaced mode even
when it's not supported and cause the front end for the display engine
to hang.
So, let's teach nouveau to reject interlaced modes on hardware that
can't actually handle it. Additionally for MST, since we accomplish this
by simply reusing more of the SST mode validation we also get (some)
basic bw validation for modes we detect on MST connectors completely for
free.
Lyude Paul (5):
drm/nouveau/kms/nv50-: Initialize core channel in
nouveau_display_create()
drm/nouveau/kms/nv50-: Probe SOR and PIOR caps for DP interlacing
support
drm/nouveau/kms/gv100-: Add support for interlaced modes
drm/nouveau/kms/nv50-: Move 8BPC limit for MST into
nv50_mstc_get_modes()
drm/nouveau/kms/nv50-: Share DP SST mode_valid() handling with MST
drivers/gpu/drm/nouveau/dispnv50/core.h | 7 +++
drivers/gpu/drm/nouveau/dispnv50/core507d.c | 15 ++++++
drivers/gpu/drm/nouveau/dispnv50/core827d.c | 1 +
drivers/gpu/drm/nouveau/dispnv50/core907d.c | 1 +
drivers/gpu/drm/nouveau/dispnv50/core917d.c | 1 +
drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 26 +++++++++
drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 1 +
drivers/gpu/drm/nouveau/dispnv50/disp.c | 58 +++++++++++++++------
drivers/gpu/drm/nouveau/dispnv50/disp.h | 1 +
drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 5 +-
drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 5 +-
drivers/gpu/drm/nouveau/dispnv50/pior507d.c | 8 +++
drivers/gpu/drm/nouveau/dispnv50/sor507d.c | 7 +++
drivers/gpu/drm/nouveau/dispnv50/sor907d.c | 11 ++++
drivers/gpu/drm/nouveau/dispnv50/sorc37d.c | 9 ++++
drivers/gpu/drm/nouveau/nouveau_connector.c | 48 +++++++++++------
drivers/gpu/drm/nouveau/nouveau_connector.h | 5 ++
drivers/gpu/drm/nouveau/nouveau_dp.c | 31 +++++++++++
drivers/gpu/drm/nouveau/nouveau_encoder.h | 8 +++
19 files changed, 213 insertions(+), 35 deletions(-)
--
2.26.2