Lyude Paul 96550555a7 drm/i915: Pass down rc in intel_encoder->compute_config()
Something that I completely missed when implementing the new MST VCPI
atomic helpers is that with those helpers, there's technically a chance
of us having to grab additional modeset locks in ->compute_config() and
furthermore, that means we have the potential to hit a normal modeset
deadlock. However, because ->compute_config() only returns a bool this
means we can't return -EDEADLK when we need to drop locks and try again
which means we end up just failing the atomic check permanently. Whoops.

So, fix this by modifying ->compute_config() to pass down an actual
error code instead of a bool so that the atomic check can be restarted
on modeset deadlocks.

Thanks to Ville Syrjälä for pointing this out!

Changes since v1:
* Add some newlines
* Return only -EINVAL from hsw_crt_compute_config()
* Propogate return code from intel_dp_compute_dsc_params()
* Change all of the intel_dp_compute_link_config*() variants
* Don't miss if (hdmi_port_clock_valid()) branch in
  intel_hdmi_compute_config()

Signed-off-by: Lyude Paul <lyude@redhat.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Fixes: eceae1472467 ("drm/dp_mst: Start tracking per-port VCPI allocations")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109320
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190115200800.3121-1-lyude@redhat.com
2019-01-15 16:10:43 -05:00
..
2018-12-19 09:40:13 +01:00
2019-01-02 18:47:56 -08:00
2018-12-31 17:32:35 -08:00
2018-12-29 08:20:44 -07:00
2018-12-27 10:43:24 -08:00
2018-12-27 10:43:24 -08:00
2019-01-10 05:58:52 +10:00
2019-01-05 11:28:39 -08:00
2018-12-28 20:54:57 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 13:19:59 -08:00
2019-01-01 15:55:29 -08:00
2018-12-29 09:40:40 -08:00
2018-12-25 14:52:50 -08:00
2019-01-05 11:30:37 -08:00
2018-12-28 16:52:18 -08:00
2018-12-13 16:40:03 +00:00
2018-12-28 16:52:18 -08:00
2018-12-29 12:03:17 -08:00
2019-01-05 17:57:34 -08:00
2019-01-05 11:23:17 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 20:54:57 -08:00
2018-12-24 12:06:56 +01:00
2019-01-01 13:24:31 -08:00
2018-12-31 17:32:35 -08:00
2018-12-25 14:43:54 -08:00
2018-12-28 14:48:06 -08:00
2018-12-31 13:06:30 -08:00
2019-01-05 11:30:37 -08:00
2018-12-28 20:54:57 -08:00
2019-01-05 17:57:34 -08:00
2019-01-01 15:55:29 -08:00
2019-01-05 18:15:37 -08:00
2019-01-01 13:16:45 -08:00
2018-12-29 13:40:29 -08:00