diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-01-02 16:27:33 -0500 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2014-01-14 08:35:02 -0500 |
commit | db5f7a6e78303fd96dc87487d6976145f70ab84a (patch) | |
tree | 67e1794359724795088e92c4ded11fff46e58007 /drivers/gpu/drm/drm_crtc.c | |
parent | ff5009ef8df87908a956412619e4f1bf1078ef5d (diff) |
drm: provide a helper for the encoder possible_crtcs mask
The encoder possible_crtcs mask identifies which CRTCs can be bound to
a particular encoder. Each bit from bit 0 defines an index in the list
of CRTCs held in the DRM mode_config crtc_list. Rather than having
drivers trying to track the position of their CRTCs in the list, expose
the code which already exists for calculating the appropriate mask bit
for a CRTC.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
[treding@nvidia.com: add drm_crtc_index(), move to core]
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index d6cf77c472e7..452bcbd0eab9 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -675,6 +675,29 @@ void drm_crtc_cleanup(struct drm_crtc *crtc) | |||
675 | EXPORT_SYMBOL(drm_crtc_cleanup); | 675 | EXPORT_SYMBOL(drm_crtc_cleanup); |
676 | 676 | ||
677 | /** | 677 | /** |
678 | * drm_crtc_index - find the index of a registered CRTC | ||
679 | * @crtc: CRTC to find index for | ||
680 | * | ||
681 | * Given a registered CRTC, return the index of that CRTC within a DRM | ||
682 | * device's list of CRTCs. | ||
683 | */ | ||
684 | unsigned int drm_crtc_index(struct drm_crtc *crtc) | ||
685 | { | ||
686 | unsigned int index = 0; | ||
687 | struct drm_crtc *tmp; | ||
688 | |||
689 | list_for_each_entry(tmp, &crtc->dev->mode_config.crtc_list, head) { | ||
690 | if (tmp == crtc) | ||
691 | return index; | ||
692 | |||
693 | index++; | ||
694 | } | ||
695 | |||
696 | BUG(); | ||
697 | } | ||
698 | EXPORT_SYMBOL(drm_crtc_index); | ||
699 | |||
700 | /** | ||
678 | * drm_mode_probed_add - add a mode to a connector's probed mode list | 701 | * drm_mode_probed_add - add a mode to a connector's probed mode list |
679 | * @connector: connector the new mode | 702 | * @connector: connector the new mode |
680 | * @mode: mode data | 703 | * @mode: mode data |