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

Reply via email to