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] line 1353 that determined connector types 
using
encoder bits, but they have since been left entirely unhandled after the 
refactor due to
the aforementioned kernel warning causing that path to never be taken in my 
testing:

nv_connector->type is generally 0x0 (DCB_CONNECTOR_VGA) in the case of an 
unknown
connector because the WARN_ON macro in the nvkm_uconn_new function in
[drm/nouveau/nvkm/engine/disp/uconn.c] causes the function 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 handle unknown connector types.

This version includes better commit messages. My original submission was 
partially
blocked by a spam filter.

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.51.0

Reply via email to