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
due to the aforementioned kernel warning causing 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 Ramirez (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.51.1

Reply via email to