summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp.c
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2017-03-28 17:59:02 +0300
committerJani Nikula <jani.nikula@intel.com>2017-04-06 14:33:37 +0300
commitb5c72b207baaa33184b23a5a69603f981aaef0c1 (patch)
tree9e2210dc5a9155741dc2aa93e92ef6e6fca547f7 /drivers/gpu/drm/i915/intel_dp.c
parent3194102439f6acb0b43f36cc909c04adf3ad97e3 (diff)
downloadop-kernel-dev-b5c72b207baaa33184b23a5a69603f981aaef0c1.zip
op-kernel-dev-b5c72b207baaa33184b23a5a69603f981aaef0c1.tar.gz
drm/i915/dp: return errors from rate_to_index()
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.navare@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/8a6e83b7bf35da0cbbc703ae157944107ff145be.1490712890.git.jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 88c708b..0e200a3 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1544,9 +1544,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
@@ -1564,8 +1564,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,
OpenPOWER on IntegriCloud