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(-)
> 

Reply via email to