Add a separate alpm_is_possible() which will check for both edp and dp.
Cc: Jouni Högander <[email protected]>
Signed-off-by: Animesh Manna <[email protected]>
---
drivers/gpu/drm/i915/display/intel_alpm.c | 16 +++++++++++++---
drivers/gpu/drm/i915/display/intel_alpm.h | 1 +
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c
b/drivers/gpu/drm/i915/display/intel_alpm.c
index d23f3bdf1339..f3f6f40f9624 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -72,6 +72,16 @@ void intel_alpm_init(struct intel_dp *intel_dp)
mutex_init(&intel_dp->alpm.lock);
}
+bool intel_alpm_is_possible(struct intel_dp *intel_dp)
+{
+ struct intel_display *display = to_intel_display(intel_dp);
+
+ return (DISPLAY_VER(display) >= 12 && intel_dp->alpm_dpcd) ||
+ (DISPLAY_VER(display) >= 35 &&
+ intel_dp->lttpr_common_caps[DP_LTTPR_ALPM_CAPABILITIES -
+
DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV]);
+}
+
static int get_silence_period_symbols(const struct intel_crtc_state
*crtc_state)
{
return SILENCE_PERIOD_TIME *
intel_dp_link_symbol_clock(crtc_state->port_clock) /
@@ -519,7 +529,7 @@ void intel_alpm_lobf_compute_config(struct intel_dp
*intel_dp,
if (intel_dp->alpm.sink_alpm_error)
return;
- if (!intel_dp_is_edp(intel_dp))
+ if (!intel_alpm_is_possible(intel_dp))
return;
if (DISPLAY_VER(display) < 20)
@@ -685,7 +695,7 @@ void intel_alpm_lobf_disable(const struct intel_crtc_state
*new_crtc_state)
intel_dp = enc_to_intel_dp(encoder);
- if (!intel_dp_is_edp(intel_dp))
+ if (!intel_alpm_is_possible(intel_dp))
continue;
mutex_lock(&intel_dp->alpm.lock);
@@ -726,7 +736,7 @@ void intel_alpm_lobf_enable(const struct intel_crtc_state
*new_crtc_state)
intel_dp = enc_to_intel_dp(encoder);
- if (intel_dp_is_edp(intel_dp)) {
+ if (intel_alpm_is_possible(intel_dp)) {
intel_alpm_enable_sink(intel_dp, new_crtc_state);
intel_alpm_configure(intel_dp, new_crtc_state);
}
diff --git a/drivers/gpu/drm/i915/display/intel_alpm.h
b/drivers/gpu/drm/i915/display/intel_alpm.h
index 7280865ed5f0..b0f6e2a9eede 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.h
+++ b/drivers/gpu/drm/i915/display/intel_alpm.h
@@ -18,6 +18,7 @@ struct intel_crtc;
bool intel_alpm_source_supported(struct intel_connector *connector);
void intel_alpm_init_dpcd(struct intel_dp *intel_dp);
void intel_alpm_init(struct intel_dp *intel_dp);
+bool intel_alpm_is_possible(struct intel_dp *intel_dp);
bool intel_alpm_compute_params(struct intel_dp *intel_dp,
struct intel_crtc_state *crtc_state);
void intel_alpm_lobf_compute_config(struct intel_dp *intel_dp,
--
2.29.0