From: Alex Ramirez <[email protected]>
uconn.c's handling of display connectors was refactored for Linux v6.5,
causing a regression that issues a warning on boot for GeForce 8600m GT
(MacBookPro4,1)
and likely other legacy GPUs.
Several connector types used to be implicitly supported before v6.5 by a branch
in
[drm/nouveau/nouveau_connector.c:1353] that determined connector types using
encoder
bits, but these connectors have since been left entirely unhandled after the
refactor:
the aforementioned kernel warning causes that branch to never be taken.
nv_connector->type is generally 0x0 (DCB_CONNECTOR_VGA) in the case of an
unknown
connector because the WARN_ON macro in
[drm/nouveau/nvkm/engine/disp/uconn.c:214]
causes nvkm_uconn_new to bail out before a suitable connector value is chosen;
it *seems* like the value is left undefined.
This patch set implements the missing DCB connector values per NVIDIA spec to
fix the
root cause of the warning AND changes the WARN_ON macro in uconn.c to a printk
message
to more gracefully indicate unknown connector types, as was done pre-v6.5.
v2: Include better commit messages. My original submission was partially
blocked by a spam filter.
v3: Update NVIDIA documentation link according to Petr Vorel's suggestion.
Alex RamÃrez (2):
drm/nouveau: add missing DCB connector types
drm/nouveau: implement missing DCB connector types; gracefully handle
unknown connectors
.../nouveau/include/nvkm/subdev/bios/conn.h | 84 ++++++++++++++-----
.../gpu/drm/nouveau/nvkm/engine/disp/uconn.c | 73 +++++++++++-----
2 files changed, 116 insertions(+), 41 deletions(-)
--
2.52.0