On 2025-09-26 14:01, Timur Kristóf wrote: > This series adds support for analog connectors to DC for DCE6-10. > There are two reasons to add this support: > > 1. GPUs that already use DC by default and have analog connectors. > Some Tonga and Hawaii graphics cards in fact have DVI-I connectors, > and their analog part doesn't work with DC. This functionality > regressed when switching from the amdgpu legacy display code to DC. > > 2. GPUs that don't use amdgpu by default yet. > Currently, SI (GFX6) and CIK (GFX7) don't use amdgpu by default > yet, and missing analog connector support in DC is cited as one > of the main reasons why not. > > Before starting this work, I asked Harry and Alex about how best > to do it and we agreed that we'd like to use the VBIOS to set up > the DAC. So I used the amdgpu legacy display code as a reference. > The first few commits add some minor changes to DC to prepare for > supporting analog stream and link encoders, then analog link > detection is added along with polling, and finally DAC load > detection support, which is useful for old displays and adapters. > > With this analog support added to DC, we could already fully switch > CIK discrete GPUs to use DC and switch them to the amdgpu driver > by default. This series switches Bonaire to DC by default, we > can do the switch to amdgpu in a later series. > > For SI dGPUs, there are other pending patches to make DC work > well, afterwards we could switch to DC by default, but missing > VCE1 support is the blocker from using amdgpu by default. > > For GFX7 APUs, further work is needed before enabling DC by > default, specifically with regards to the TRAVIS and NUTMEG > external encoders which are not supported by DC at all. > > Changes in v2 of the series: > Fixed regression on RDNA2 and newer APUs. > Fixed flickering caused by polling analog connectors. > Fixed crash on Kaveri. > Fixed bug when HPD was high without a connected display. > Reduced code churn by reusing same link encoder. > Addressed other feedback from the review of v1.
Thanks for the series. Patches 1-13 are Reviewed-by: Harry Wentland <[email protected]> I'll hope to find time for the rest tomorrow or Friday. Harry > > Timur Kristóf (23): > drm/amd/display: Determine DVI-I connector type (v2) > drm/amd/display: Add analog bit to edid_caps (v2) > drm/amd/display: Introduce MAX_LINK_ENCODERS (v2) > drm/amd/display: Hook up DAC to bios_parser_encoder_control > drm/amd/display: Add SelectCRTC_Source to BIOS parser > drm/amd/display: Get maximum pixel clock from VBIOS > drm/amd/display: Don't use stereo sync and audio on RGB signals (v2) > drm/amd/display: Don't try to enable/disable HPD when unavailable > drm/amd/display: Determine early if a link has supported encoders (v2) > drm/amd/display: Add concept of analog encoders (v2) > drm/amd/display: Implement DCE analog stream encoders > drm/amd/display: Implement DCE analog link encoders (v2) > drm/amd/display: Support DAC in dce110_hwseq > drm/amd/display: Add analog link detection (v2) > drm/amd/display: Refactor amdgpu_dm_connector_detect (v2) > drm/amd/display: Poll analog connectors (v2) > drm/amd/display: Add DCE BIOS_SCRATCH_0 register > drm/amd/display: Make get_support_mask_for_device_id reusable > drm/amd/display: Add DAC_LoadDetection to BIOS parser (v2) > drm/amd/display: Use DAC load detection on analog connectors (v2) > drm/amd/display: Add common modes to analog displays without EDID > drm/amd/display: Don't add freesync modes to analog displays (v2) > drm/amdgpu: Use DC by default for Bonaire > > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 - > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 173 ++++++++--- > .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +- > .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 1 + > .../drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 20 ++ > .../gpu/drm/amd/display/dc/bios/bios_parser.c | 95 +++++- > .../drm/amd/display/dc/bios/command_table.c | 286 ++++++++++++++++++ > .../drm/amd/display/dc/bios/command_table.h | 6 + > .../drm/amd/display/dc/core/dc_link_enc_cfg.c | 4 +- > .../gpu/drm/amd/display/dc/core/dc_resource.c | 8 + > .../gpu/drm/amd/display/dc/dc_bios_types.h | 9 + > drivers/gpu/drm/amd/display/dc/dc_types.h | 8 +- > .../drm/amd/display/dc/dce/dce_link_encoder.c | 85 ++++++ > .../drm/amd/display/dc/dce/dce_link_encoder.h | 16 +- > .../amd/display/dc/dce/dce_stream_encoder.c | 14 + > .../amd/display/dc/dce/dce_stream_encoder.h | 5 + > .../amd/display/dc/hwss/dce110/dce110_hwseq.c | 75 ++++- > .../gpu/drm/amd/display/dc/inc/core_types.h | 8 +- > .../gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 24 ++ > .../drm/amd/display/dc/inc/hw/link_encoder.h | 2 + > drivers/gpu/drm/amd/display/dc/inc/resource.h | 1 + > .../amd/display/dc/link/hwss/link_hwss_dio.c | 19 +- > .../drm/amd/display/dc/link/link_detection.c | 147 ++++++++- > .../gpu/drm/amd/display/dc/link/link_dpms.c | 9 +- > .../drm/amd/display/dc/link/link_factory.c | 60 +++- > .../dc/resource/dce100/dce100_resource.c | 31 +- > .../dc/resource/dce110/dce110_resource.c | 2 + > .../dc/resource/dce112/dce112_resource.c | 2 + > .../dc/resource/dce120/dce120_resource.c | 1 + > .../dc/resource/dce60/dce60_resource.c | 29 +- > .../dc/resource/dce80/dce80_resource.c | 26 +- > .../amd/display/include/bios_parser_types.h | 11 +- > .../display/include/grph_object_ctrl_defs.h | 1 + > .../drm/amd/display/include/grph_object_id.h | 7 + > .../drm/amd/display/include/signal_types.h | 12 + > 35 files changed, 1117 insertions(+), 86 deletions(-) >
