We shouldn't silently use the first element if we can't find the rate
we're looking for. Make rate_to_index() more generally useful, and
fallback to the first element in the caller, with a big warning.

Cc: Manasi Navare <manasi.d.nav...@intel.com>
Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nik...@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 3b809b6d186d..75926a5b900f 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1548,9 +1548,9 @@ static int rate_to_index(const int *rates, int len, int 
rate)
 
        for (i = 0; i < len; i++)
                if (rate == rates[i])
-                       break;
+                       return i;
 
-       return i;
+       return -1;
 }
 
 int
@@ -1568,8 +1568,13 @@ intel_dp_max_link_rate(struct intel_dp *intel_dp)
 
 int intel_dp_rate_select(struct intel_dp *intel_dp, int rate)
 {
-       return rate_to_index(intel_dp->sink_rates, intel_dp->num_sink_rates,
-                            rate);
+       int i = rate_to_index(intel_dp->sink_rates, intel_dp->num_sink_rates,
+                             rate);
+
+       if (WARN_ON(i < 0))
+               i = 0;
+
+       return i;
 }
 
 void intel_dp_compute_rate(struct intel_dp *intel_dp, int port_clock,
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to