drm: Add drm_connector_has_possible_encoder()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 28 Jun 2018 13:13:13 +0000 (16:13 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 5 Jul 2018 13:52:08 +0000 (16:52 +0300)
Add a small helper for checking whether a connector and
encoder are associated with each other.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180628131315.14156-8-ville.syrjala@linux.intel.com
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/drm_connector.c
include/drm/drm_connector.h

index 7387c0377e5139e72f65a5f7f34e099e5ff62f8e..5ada0640de5ad3f9678f6634c070fa865ffdcae2 100644 (file)
@@ -331,6 +331,29 @@ int drm_mode_connector_attach_encoder(struct drm_connector *connector,
 }
 EXPORT_SYMBOL(drm_mode_connector_attach_encoder);
 
+/**
+ * drm_connector_has_possible_encoder - check if the connector and encoder are assosicated with each other
+ * @connector: the connector
+ * @encoder: the encoder
+ *
+ * Returns:
+ * True if @encoder is one of the possible encoders for @connector.
+ */
+bool drm_connector_has_possible_encoder(struct drm_connector *connector,
+                                       struct drm_encoder *encoder)
+{
+       struct drm_encoder *enc;
+       int i;
+
+       drm_connector_for_each_possible_encoder(connector, enc, i) {
+               if (enc == encoder)
+                       return true;
+       }
+
+       return false;
+}
+EXPORT_SYMBOL(drm_connector_has_possible_encoder);
+
 static void drm_mode_remove(struct drm_connector *connector,
                            struct drm_display_mode *mode)
 {
index bd6f30cf0755977187baad7aa9f525697dd320c7..ad397dfc042b1cec15672b37dd21a98a94267509 100644 (file)
@@ -1187,6 +1187,9 @@ struct drm_connector *
 drm_connector_list_iter_next(struct drm_connector_list_iter *iter);
 void drm_connector_list_iter_end(struct drm_connector_list_iter *iter);
 
+bool drm_connector_has_possible_encoder(struct drm_connector *connector,
+                                       struct drm_encoder *encoder);
+
 /**
  * drm_for_each_connector_iter - connector_list iterator macro
  * @connector: &struct drm_connector pointer used as cursor