Add intel_dp_link_caps_common_rate_idx() to look up supported link rates
tracked by the link_caps module by rate. This prepares for tracking these
capabilities internally within the link caps module.

Signed-off-by: Imre Deak <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp_link_caps.c     | 9 +++++++++
 drivers/gpu/drm/i915/display/intel_dp_link_caps.h     | 1 +
 drivers/gpu/drm/i915/display/intel_dp_link_training.c | 5 ++---
 drivers/gpu/drm/i915/display/intel_dp_test.c          | 7 ++++---
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c 
b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
index 09b60a0cd6fbb..84d9636f4adb4 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.c
@@ -61,6 +61,15 @@ int intel_dp_common_rate(struct intel_dp *intel_dp, int 
index)
        return intel_dp->common_rates[index];
 }
 
+int intel_dp_link_caps_common_rate_idx(struct intel_dp_link_caps *link_caps, 
int rate)
+{
+       struct intel_dp *intel_dp = link_caps->dp;
+
+       return intel_dp_rate_index(intel_dp->common_rates,
+                                  intel_dp->num_common_rates,
+                                  rate);
+}
+
 /* Theoretical max between source and sink */
 int intel_dp_max_common_rate(struct intel_dp *intel_dp)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h 
b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
index 3413f6f760453..7d7d3d11ba3fe 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_caps.h
@@ -14,6 +14,7 @@ struct intel_dp_link_config;
 int intel_dp_common_len_rate_limit(const struct intel_dp *intel_dp,
                                   int max_rate);
 int intel_dp_common_rate(struct intel_dp *intel_dp, int index);
+int intel_dp_link_caps_common_rate_idx(struct intel_dp_link_caps *link_caps, 
int rate);
 int intel_dp_max_common_rate(struct intel_dp *intel_dp);
 int intel_dp_link_caps_num_common_rates(struct intel_dp_link_caps *link_caps);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c 
b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
index 61ada34ab9c8e..ec9bd9b4c800b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c
@@ -1891,9 +1891,8 @@ static int reduce_link_rate(struct intel_dp *intel_dp, 
int current_rate)
        if (forced_params.rate)
                return -1;
 
-       rate_index = intel_dp_rate_index(intel_dp->common_rates,
-                                        intel_dp->num_common_rates,
-                                        current_rate);
+       rate_index = intel_dp_link_caps_common_rate_idx(link_caps,
+                                                       current_rate);
 
        if (rate_index <= 0)
                return -1;
diff --git a/drivers/gpu/drm/i915/display/intel_dp_test.c 
b/drivers/gpu/drm/i915/display/intel_dp_test.c
index ba44769c9cfbe..da7632536dace 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_test.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_test.c
@@ -14,6 +14,7 @@
 #include "intel_display_regs.h"
 #include "intel_display_types.h"
 #include "intel_dp.h"
+#include "intel_dp_link_caps.h"
 #include "intel_dp_link_training.h"
 #include "intel_dp_mst.h"
 #include "intel_dp_test.h"
@@ -32,6 +33,7 @@ void intel_dp_test_compute_config(struct intel_dp *intel_dp,
                                  struct intel_crtc_state *pipe_config,
                                  struct link_config_limits *limits)
 {
+       struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
        struct intel_display *display = to_intel_display(intel_dp);
 
        /* For DP Compliance we override the computed bpp for the pipe */
@@ -54,9 +56,8 @@ void intel_dp_test_compute_config(struct intel_dp *intel_dp,
                 */
                if (intel_dp_link_params_valid(intel_dp, 
intel_dp->compliance.test_link_rate,
                                               
intel_dp->compliance.test_lane_count)) {
-                       index = intel_dp_rate_index(intel_dp->common_rates,
-                                                   intel_dp->num_common_rates,
-                                                   
intel_dp->compliance.test_link_rate);
+                       index = intel_dp_link_caps_common_rate_idx(link_caps,
+                                                                  
intel_dp->compliance.test_link_rate);
                        if (index >= 0) {
                                limits->min_rate = 
intel_dp->compliance.test_link_rate;
                                limits->max_rate = 
intel_dp->compliance.test_link_rate;
-- 
2.49.1

Reply via email to