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 the analog part doesn't work by default. 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 is cited as one of the main reasons why not. 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. For GFX7 APUs and SI, further fixes are needed before enabling DC. 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. Please let me know what you think. Timur Kristóf (20): drm/amd/display: Determine DRM connector type more accurately drm/amd/display: Add analog bit to edid_caps drm/amd/display: Introduce MAX_LINK_ENCODERS 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 drm/amd/display: Don't try to enable/disable HPD when unavailable drm/amd/display: Add concept of analog encoders drm/amd/display: Implement DCE analog stream encoders drm/amd/display: Implement DCE analog link encoders drm/amd/display: Support DAC in dce110_hwseq drm/amd/display: Add analog link detection drm/amd/display: Poll analog connectors 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 drm/amd/display: Use DAC load detection on analog connectors drm/amd/display: Add common modes to analog displays without EDID 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 | 144 +++++++-- .../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 | 8 + .../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 | 5 + .../drm/amd/display/dc/dce/dce_link_encoder.c | 100 ++++++ .../drm/amd/display/dc/dce/dce_link_encoder.h | 21 +- .../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 | 123 +++++++- .../gpu/drm/amd/display/dc/link/link_dpms.c | 9 +- .../drm/amd/display/dc/link/link_factory.c | 31 ++ .../dc/resource/dce100/dce100_resource.c | 28 +- .../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 | 26 +- .../dc/resource/dce80/dce80_resource.c | 23 +- .../amd/display/include/bios_parser_types.h | 11 +- .../display/include/grph_object_ctrl_defs.h | 1 + .../drm/amd/display/include/signal_types.h | 5 + 34 files changed, 1027 insertions(+), 76 deletions(-) -- 2.50.1