diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2016-01-07 10:59:18 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-02-09 11:21:04 +0100 |
commit | 47d7777f99da283ff0d6248dd9e83593cf06760c (patch) | |
tree | 5ad752e383c9928f4db649dfd41661a3d2c4e414 | |
parent | 2dbf0d90971a5c490f17976596a263913d8074c3 (diff) | |
download | op-kernel-dev-47d7777f99da283ff0d6248dd9e83593cf06760c.zip op-kernel-dev-47d7777f99da283ff0d6248dd9e83593cf06760c.tar.gz |
drm/core: Add drm_encoder_index.
This is useful for adding encoder_mask in crtc_state.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1452160762-30487-2-git-send-email-maarten.lankhorst@linux.intel.com
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 23 | ||||
-rw-r--r-- | include/drm/drm_crtc.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 6e6514e..4132d58 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -1161,6 +1161,29 @@ out_unlock: EXPORT_SYMBOL(drm_encoder_init); /** + * drm_encoder_index - find the index of a registered encoder + * @encoder: encoder to find index for + * + * Given a registered encoder, return the index of that encoder within a DRM + * device's list of encoders. + */ +unsigned int drm_encoder_index(struct drm_encoder *encoder) +{ + unsigned int index = 0; + struct drm_encoder *tmp; + + drm_for_each_encoder(tmp, encoder->dev) { + if (tmp == encoder) + return index; + + index++; + } + + BUG(); +} +EXPORT_SYMBOL(drm_encoder_index); + +/** * drm_encoder_cleanup - cleans up an initialised encoder * @encoder: encoder to cleanup * diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index c65a212..fd2ace4 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -2225,6 +2225,7 @@ int drm_encoder_init(struct drm_device *dev, struct drm_encoder *encoder, const struct drm_encoder_funcs *funcs, int encoder_type, const char *name, ...); +extern unsigned int drm_encoder_index(struct drm_encoder *encoder); /** * drm_encoder_crtc_ok - can a given crtc drive a given encoder? |