Hi! Sorry, this totally flew past my radar. This looks almost perfect, just some small corrections below:
On Fri, 2025-12-12 at 19:53 -0500, [email protected] wrote: > From: Alex Ramirez <[email protected]> > > * Add missing DCB connectors in conn.h as per the NVIDIA DCB > specification. > > A lot of connector logic was rewritten for Linux v6.5; some display > connector types > went unaccounted-for which caused kernel warnings on devices with the > now-unsupported > DCB connectors. This patch adds all of the DCB connectors as defined > by NVIDIA to the > dcb_connector_type enum to bring back support for these connectors to > the new logic. > > Fixes: 8b7d92cad953 ("drm/nouveau/kms/nv50-: create connectors based > on nvkm info") > Link: > https://download.nvidia.com/open-gpu-doc/DCB/1/DCB-4.0-Specification.html#_connector_table_entry > Signed-off-by: Alex Ramírez <[email protected]> > --- > .../nouveau/include/nvkm/subdev/bios/conn.h | 84 ++++++++++++++--- > -- > 1 file changed, 63 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h > b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h > index d1beaad0c82b..538306522d9a 100644 > --- a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h > +++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h > @@ -1,28 +1,70 @@ > /* SPDX-License-Identifier: MIT */ > #ifndef __NVBIOS_CONN_H__ > #define __NVBIOS_CONN_H__ > + > enum dcb_connector_type { > - DCB_CONNECTOR_VGA = 0x00, > - DCB_CONNECTOR_TV_0 = 0x10, > - DCB_CONNECTOR_TV_1 = 0x11, > - DCB_CONNECTOR_TV_3 = 0x13, > - DCB_CONNECTOR_DVI_I = 0x30, > - DCB_CONNECTOR_DVI_D = 0x31, > - DCB_CONNECTOR_DMS59_0 = 0x38, > - DCB_CONNECTOR_DMS59_1 = 0x39, > - DCB_CONNECTOR_LVDS = 0x40, > - DCB_CONNECTOR_LVDS_SPWG = 0x41, > - DCB_CONNECTOR_DP = 0x46, > - DCB_CONNECTOR_eDP = 0x47, > - DCB_CONNECTOR_mDP = 0x48, > - DCB_CONNECTOR_HDMI_0 = 0x60, > - DCB_CONNECTOR_HDMI_1 = 0x61, > - DCB_CONNECTOR_HDMI_C = 0x63, > - DCB_CONNECTOR_DMS59_DP0 = 0x64, > - DCB_CONNECTOR_DMS59_DP1 = 0x65, > - DCB_CONNECTOR_WFD = 0x70, > - DCB_CONNECTOR_USB_C = 0x71, > - DCB_CONNECTOR_NONE = 0xff > + /* Analog outputs */ > + DCB_CONNECTOR_VGA = 0x00, // VGA 15-pin > connector > + DCB_CONNECTOR_DVI_A = 0x01, // DVI-A > + DCB_CONNECTOR_POD_VGA = 0x02, // Pod - VGA 15-pin > connector > + DCB_CONNECTOR_TV_0 = 0x10, // TV - Composite > Out > + DCB_CONNECTOR_TV_1 = 0x11, // TV - S-Video Out > + DCB_CONNECTOR_TV_2 = 0x12, // TV - S-Video > Breakout - Composite > + DCB_CONNECTOR_TV_3 = 0x13, // HDTV Component - > YPrPb > + DCB_CONNECTOR_TV_SCART = 0x14, // TV - SCART > Connector > + DCB_CONNECTOR_TV_SCART_D = 0x16, // TV - Composite > SCART over D-connector > + DCB_CONNECTOR_TV_DTERM = 0x17, // HDTV - D- > connector (EIAJ4120) > + DCB_CONNECTOR_POD_TV_3 = 0x18, // Pod - HDTV - > YPrPb > + DCB_CONNECTOR_POD_TV_1 = 0x19, // Pod - S-Video > + DCB_CONNECTOR_POD_TV_0 = 0x1a, // Pod - Composite > + > + /* DVI digital outputs */ > + DCB_CONNECTOR_DVI_I_TV_1 = 0x20, // DVI-I-TV-S-Video > + DCB_CONNECTOR_DVI_I_TV_0 = 0x21, // DVI-I-TV- > Composite > + DCB_CONNECTOR_DVI_I_TV_2 = 0x22, // DVI-I-TV-S-Video > Breakout-Composite > + DCB_CONNECTOR_DVI_I = 0x30, // DVI-I > + DCB_CONNECTOR_DVI_D = 0x31, // DVI-D > + DCB_CONNECTOR_DVI_ADC = 0x32, // Apple Display > Connector (ADC) > + DCB_CONNECTOR_DMS59_0 = 0x38, // LFH-DVI-I-1 > + DCB_CONNECTOR_DMS59_1 = 0x39, // LFH-DVI-I-2 > + DCB_CONNECTOR_BNC = 0x3c, // BNC Connector > [for SDI?] > + > + /* LVDS / TMDS digital outputs */ > + DCB_CONNECTOR_LVDS = 0x40, // LVDS-SPWG- > Attached [is this name correct?] > + DCB_CONNECTOR_LVDS_SPWG = 0x41, // LVDS-OEM- > Attached (non-removable) > + DCB_CONNECTOR_LVDS_REM = 0x42, // LVDS-SPWG- > Detached [following naming above] > + DCB_CONNECTOR_LVDS_SPWG_REM = 0x43, // LVDS-OEM-Detached > (removable) > + DCB_CONNECTOR_TMDS = 0x45, // TMDS-OEM-Attached > (non-removable) > + > + /* DP digital outputs */ > + DCB_CONNECTOR_DP = 0x46, // DisplayPort > External Connector > + DCB_CONNECTOR_eDP = 0x47, // DisplayPort > Internal Connector > + DCB_CONNECTOR_mDP = 0x48, // DisplayPort > (Mini) External Connector > + > + /* Dock outputs (not used) */ > + DCB_CONNECTOR_DOCK_VGA_0 = 0x50, // VGA 15-pin if not > docked > + DCB_CONNECTOR_DOCK_VGA_1 = 0x51, // VGA 15-pin if > docked > + DCB_CONNECTOR_DOCK_DVI_I_0 = 0x52, // DVI-I if not > docked > + DCB_CONNECTOR_DOCK_DVI_I_1 = 0x53, // DVI-I if docked > + DCB_CONNECTOR_DOCK_DVI_D_0 = 0x54, // DVI-D if not > docked > + DCB_CONNECTOR_DOCK_DVI_D_1 = 0x55, // DVI-D if docked > + DCB_CONNECTOR_DOCK_DP_0 = 0x56, // > DisplayPort if not docked > + DCB_CONNECTOR_DOCK_DP_1 = 0x57, // > DisplayPort if docked > + DCB_CONNECTOR_DOCK_mDP_0 = 0x58, // DisplayPort > (Mini) if not docked > + DCB_CONNECTOR_DOCK_mDP_1 = 0x59, // DisplayPort > (Mini) if docked > + > + /* HDMI? digital outputs */ > + DCB_CONNECTOR_HDMI_0 = 0x60, // 3-Pin DIN Stereo > Connector [for real?] Yeah this one is weird and suspicious and seems very likely to be a documentation typo. I wonder if maybe it used to be DIN, but at some point nvidia mistakenly reused the ID. Though I'm not sure how much sense that actually makes, considering that I would have expected a connector like this to then be in/near the 0x1-0x20 range like all of the other legacy analog connectors in that case. Since it's just a comment, I'll fix this up myself before pushing this and add an explainer comment while I ask nvidia about this. Reviewed-by: Lyude Paul <[email protected]> > + DCB_CONNECTOR_HDMI_1 = 0x61, // HDMI-A connector > + DCB_CONNECTOR_SPDIF = 0x62, // Audio S/PDIF > connector > + DCB_CONNECTOR_HDMI_C = 0x63, // HDMI-C (Mini) > connector > + > + /* Misc. digital outputs */ > + DCB_CONNECTOR_DMS59_DP0 = 0x64, // LFH-DP-1 > + DCB_CONNECTOR_DMS59_DP1 = 0x65, // LFH-DP-2 > + DCB_CONNECTOR_WFD = 0x70, // Virtual connector > for Wifi Display (WFD) > + DCB_CONNECTOR_USB_C = 0x71, // [DP over USB-C; > not present in docs] > + DCB_CONNECTOR_NONE = 0xff // Skip Entry > }; > > struct nvbios_connT {
