Encapsulate EHL's VS/PE-O's indices in enum ehl_vspeo_index.

Use index of -1 as an indication of error case. Refer to it as EHL_ERR.

1st VS/PE-O's table is used for external DP with modes below HBR2
(exclusive). With same supported modes, it is also used for eDP that
does not use low vswing. 1st table is also used as a fallback for
non-DPs. Refer to it as EHL_DP_HBR.

2nd table is used for external DP with modes above HBR2 (inclusive).
With same supported modes, it is also used for eDP that does not use low
vswing. Refer to it as EHL_EDP_HBR2.

3rd table is used for eDP supporting HBR3 and using low vswing. Refer to
it as EHL_EDP_HBR3.

Indices for other tables have not yet been observed to be used as of
now.

Signed-off-by: Michał Grzelak <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c | 12 ++++++------
 drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h |  8 ++++++++
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c 
b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
index 36ba0ed4ddc68..067ab47c00883 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
@@ -1786,31 +1786,31 @@ xe3plpd_get_lt_buf_trans(struct intel_encoder *encoder,
                return intel_get_buf_trans(&xe3plpd_lt_trans_dp14, n_entries);
 }
 
-static int
+static enum ehl_vspeo_index
 ehl_compute_index(struct intel_encoder *encoder,
                  const struct intel_crtc_state *crtc_state)
 {
        if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) {
                if (use_edp_low_vswing(encoder)) {
                        if (crtc_state->port_clock > 540000)
-                               return 2;
+                               return EHL_COMBO_EDP_HBR3;
                        else
-                               return 1;
+                               return EHL_COMBO_EDP_HBR2;
                }
        }
 
        if (intel_crtc_has_dp_encoder(crtc_state)) {
                if (crtc_state->port_clock > 270000)
-                       return 1;
+                       return EHL_COMBO_EDP_HBR2;
                else
-                       return 0;
+                       return EHL_COMBO_DP_HBR;
        }
 
        drm_WARN(to_intel_display(crtc_state)->drm, 1,
                 "non-DP (%d) encoder asks to compute VS/PE-O index\n",
                 crtc_state->output_types);
 
-       return -EINVAL;
+       return EHL_ERR;
 }
 
 static enum snps_c10_vspeo_index
diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h 
b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
index a8c998fa339e6..aa2a47445af76 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
+++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
@@ -107,6 +107,14 @@ enum snps_c10_vspeo_index {
        C10_EDP_HBR3
 };
 
+enum ehl_vspeo_index {
+       EHL_ERR = -1,
+
+       EHL_COMBO_DP_HBR = 0,
+       EHL_COMBO_EDP_HBR2,
+       EHL_COMBO_EDP_HBR3
+};
+
 bool is_hobl_buf_trans(const struct intel_ddi_buf_trans *table);
 
 void intel_ddi_buf_trans_init(struct intel_encoder *encoder);
-- 
2.45.2

Reply via email to