• L
    drm/i915: Pass down rc in intel_encoder->compute_config() · 96550555
    Lyude Paul 提交于
    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: NLyude Paul <lyude@redhat.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Fixes: eceae147 ("drm/dp_mst: Start tracking per-port VCPI allocations")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109320Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190115200800.3121-1-lyude@redhat.com
    96550555
intel_dp.c 196.3 KB