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