On 2025-10-08 17:11, Harry Wentland wrote:
> 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.
>
The rest looks good to me as well.
The whole series is
Reviewed-by: Harry Wentland <[email protected]>
Dan, can we give this a spin in our weekly promotion tests
before I merge it?
Harry
> 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(-)
>>
>