drm/amd/display: Add ability for HWSS to prepare the DDC before use

Make it possible to add a HWSS function to prepare the DDC
before trying to use it. This is going to be necessary for
external DP bridge encoders.

This commit just adds the function to common DC code.
The actual implementation of this function for DCE is
done in a subsequent commit.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Timur Kristóf 2026-01-26 22:08:31 +01:00 committed by Alex Deucher
parent 7b6e66b6dd
commit 05a606fc39
3 changed files with 7 additions and 0 deletions

View File

@ -1016,6 +1016,9 @@ enum dc_edid_status dm_helpers_read_local_edid(
else
ddc = &aconnector->i2c->base;
if (link->dc->hwss.prepare_ddc)
link->dc->hwss.prepare_ddc(link);
/* some dongles read edid incorrectly the first time,
* do check sum and retry to make sure read correct edid.
*/

View File

@ -1190,6 +1190,7 @@ struct hw_sequencer_funcs {
const struct link_resource *link_res,
enum signal_type signal);
bool (*dac_load_detect)(struct dc_link *link);
void (*prepare_ddc)(struct dc_link *link);
void (*get_dcc_en_bits)(struct dc *dc, int *dcc_en_bits);

View File

@ -912,6 +912,9 @@ static bool link_detect_ddc_probe(struct dc_link *link)
if (!link->ddc)
return false;
if (link->dc->hwss.prepare_ddc)
link->dc->hwss.prepare_ddc(link);
set_ddc_transaction_type(link->ddc, transaction_type);
ddc_probed = link_query_ddc_data(link->ddc, 0x50, &zero, 1, edid_header, sizeof(edid_header));