drm/atomic: Add drm_atomic_helper_best_encoder()
authorNoralf Trønnes <noralf@tronnes.org>
Wed, 11 May 2016 16:09:21 +0000 (18:09 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 11 May 2016 16:55:16 +0000 (18:55 +0200)
Add (struct drm_connector_helper_funcs *)->best_encoder callback helper
for connectors that support exactly 1 encoder, statically determined at
driver init time.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1462982962-10530-6-git-send-email-noralf@tronnes.org
drivers/gpu/drm/drm_atomic_helper.c
include/drm/drm_atomic_helper.h

index 46a3201b98516a5c021c958b0d585879822557b9..43a0b3dfa846586c33c909085340ab9421e15b69 100644 (file)
@@ -2482,6 +2482,23 @@ backoff:
 }
 EXPORT_SYMBOL(drm_atomic_helper_connector_dpms);
 
+/**
+ * drm_atomic_helper_best_encoder - Helper for &drm_connector_helper_funcs
+ *                                  ->best_encoder callback
+ * @connector: Connector control structure
+ *
+ * This is a &drm_connector_helper_funcs ->best_encoder callback helper for
+ * connectors that support exactly 1 encoder, statically determined at driver
+ * init time.
+ */
+struct drm_encoder *
+drm_atomic_helper_best_encoder(struct drm_connector *connector)
+{
+       WARN_ON(connector->encoder_ids[1]);
+       return drm_encoder_find(connector->dev, connector->encoder_ids[0]);
+}
+EXPORT_SYMBOL(drm_atomic_helper_best_encoder);
+
 /**
  * DOC: atomic state reset and initialization
  *
index 03642878bc51b48b3ebbc2c9fc121b81ac9110f2..ccca709a255b996f684bf120fb764541a2a0e171 100644 (file)
@@ -110,6 +110,8 @@ int drm_atomic_helper_page_flip(struct drm_crtc *crtc,
                                uint32_t flags);
 int drm_atomic_helper_connector_dpms(struct drm_connector *connector,
                                     int mode);
+struct drm_encoder *
+drm_atomic_helper_best_encoder(struct drm_connector *connector);
 
 /* default implementations for state handling */
 void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc);