summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/dce
diff options
context:
space:
mode:
authorWenjing Liu <wenjing.liu@amd.com>2026-06-09 22:21:16 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-07-01 11:31:10 -0400
commit7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0 (patch)
treee7cdbdb9262e7c3fad459f27adfa402ad524a448 /drivers/gpu/drm/amd/display/dc/dce
parentd37d3555ddec6a8f9ec91a7c204e3358446dc86f (diff)
downloadlinux-next-7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0.tar.gz
linux-next-7a39b1c3b2e6b27f4230a20ccf9ac5a2737fa8b0.zip
drm/amd/display: Replace repeated no-native-i2c checks with force_i2c_over_aux field
[Why] The compound condition checking dp_connector_no_native_i2c and no_ddc_pin was duplicated across many files, obscuring intent at every call site. [How] Add bool force_i2c_over_aux to struct dc_link, initialized once during link creation. Add link_get_ddc_aux_inst() helper to select the correct aux instance. Wire into link_service via construct_link_service_ddc(). Replace all duplicated condition checks and aux instance selection blocks with the new field and helper. No functional change. Reviewed-by: Nevenko Stupar <nevenko.stupar@amd.com> Signed-off-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: George Zhang <george.zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dce')
-rw-r--r--drivers/gpu/drm/amd/display/dc/dce/dce_aux.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c b/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
index 72ad3ee3d6a5..fa0d63de1aa4 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_aux.c
@@ -529,7 +529,7 @@ static uint32_t dce_aux_configure_timeout(struct ddc_service *ddc,
uint32_t prev_timeout_val = 0;
struct ddc *ddc_pin = ddc->ddc_pin;
- if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin)
+ if (ddc->link->force_to_use_aux)
return dce_aux_configure_timeout_without_ddc_pin(ddc, timeout_in_us);
struct dce_aux *aux_engine = ddc->ctx->dc->res_pool->engines[ddc_pin->pin_data->en];
@@ -652,7 +652,7 @@ int dce_aux_transfer_raw(struct ddc_service *ddc,
struct aux_payload *payload,
enum aux_return_code_type *operation_result)
{
- if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
+ if (ddc->link->force_to_use_aux) {
/* Check whether aux to be processed via dmub or dcn directly */
if (ddc->ctx->dc->debug.enable_dmub_aux_for_legacy_ddc) {
return dce_aux_transfer_dmub_raw(ddc, payload, operation_result);
@@ -795,7 +795,7 @@ int dce_aux_transfer_dmub_raw(struct ddc_service *ddc,
release_engine(aux_engine);
}
- if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
+ if (ddc->link->force_to_use_aux) {
struct dce_aux *aux_engine = ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst];
if (!acquire_aux_engine_without_ddc_pin(aux_engine, ddc_pin)) {
@@ -893,7 +893,7 @@ bool dce_aux_transfer_with_retries(struct ddc_service *ddc,
aux110 = FROM_AUX_ENGINE(aux_engine);
}
- if (ddc->ctx->dc->config.dp_connector_no_native_i2c && ddc->link->no_ddc_pin) {
+ if (ddc->link->force_to_use_aux) {
aux_engine = ddc->ctx->dc->res_pool->engines[ddc->link->aux_hw_inst];
aux110 = FROM_AUX_ENGINE(aux_engine);
}