Abstract ALPM DPCD initialization into its own function. v2: - Improve commit description. [Suraj, Jouni] - Handle error value of intel_alpm_init_dpcd() with an early exit in intel_edp_init_dpcd(). [Jouni] v3: - Return int and propagate the original error instead of flattening it to bool. [Jani]
Cc: Jouni Högander <[email protected]> Cc: Jani Nikula <[email protected]> Reviewed-by: Jouni Högander <[email protected]> Signed-off-by: Animesh Manna <[email protected]> --- drivers/gpu/drm/i915/display/intel_alpm.c | 14 ++++++++++++++ drivers/gpu/drm/i915/display/intel_alpm.h | 1 + drivers/gpu/drm/i915/display/intel_dp.c | 5 +---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c b/drivers/gpu/drm/i915/display/intel_alpm.c index 8542bd9c9666..cb1d68fef198 100644 --- a/drivers/gpu/drm/i915/display/intel_alpm.c +++ b/drivers/gpu/drm/i915/display/intel_alpm.c @@ -43,6 +43,20 @@ bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp, (crtc_state->has_lobf && intel_alpm_aux_less_wake_supported(intel_dp)); } +int intel_alpm_init_dpcd(struct intel_dp *intel_dp) +{ + u8 dpcd; + int ret; + + ret = drm_dp_dpcd_read_byte(&intel_dp->aux, DP_RECEIVER_ALPM_CAP, &dpcd); + if (ret < 0) + return ret; + + intel_dp->alpm_dpcd = dpcd; + + return 0; +} + void intel_alpm_init(struct intel_dp *intel_dp) { mutex_init(&intel_dp->alpm.lock); diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h b/drivers/gpu/drm/i915/display/intel_alpm.h index f8f605d94f96..1cb226bc342a 100644 --- a/drivers/gpu/drm/i915/display/intel_alpm.h +++ b/drivers/gpu/drm/i915/display/intel_alpm.h @@ -15,6 +15,7 @@ struct intel_connector; struct intel_atomic_state; struct intel_crtc; +int intel_alpm_init_dpcd(struct intel_dp *intel_dp); void intel_alpm_init(struct intel_dp *intel_dp); bool intel_alpm_compute_params(struct intel_dp *intel_dp, struct intel_crtc_state *crtc_state); diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index bf5e87a72108..816337efeb91 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -5057,10 +5057,7 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector */ intel_dp_init_source_oui(intel_dp); - /* Read the ALPM DPCD caps */ - ret = drm_dp_dpcd_read_byte(&intel_dp->aux, DP_RECEIVER_ALPM_CAP, - &intel_dp->alpm_dpcd); - if (ret < 0) + if (intel_alpm_init_dpcd(intel_dp)) return false; /* -- 2.43.0
