]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/gpu/drm/drm_atomic_helper.c
Merge tag 'drm-intel-fixes-2015-08-14' into drm-intel-next-fixes
[linux-beck.git] / drivers / gpu / drm / drm_atomic_helper.c
index 0b475fae067d1997f95dbcd921762be3373448fb..cf27b6b605d8403270d348378e5720680852f24a 100644 (file)
@@ -196,7 +196,12 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
        }
 
        funcs = connector->helper_private;
-       new_encoder = funcs->best_encoder(connector);
+
+       if (funcs->atomic_best_encoder)
+               new_encoder = funcs->atomic_best_encoder(connector,
+                                                        connector_state);
+       else
+               new_encoder = funcs->best_encoder(connector);
 
        if (!new_encoder) {
                DRM_DEBUG_ATOMIC("No suitable encoder found for [CONNECTOR:%d:%s]\n",
@@ -229,6 +234,9 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx)
                }
        }
 
+       if (WARN_ON(!connector_state->crtc))
+               return -EINVAL;
+
        connector_state->best_encoder = new_encoder;
        idx = drm_crtc_index(connector_state->crtc);