diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-07-05 03:50:24 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-07-05 09:06:33 -0400 |
commit | 6c2b7c1208b762abc0df318ae53d18d9e5414e1b (patch) | |
tree | 258832d81855e0e41b6ec87d067bcf480f04aa5a /drivers/gpu/drm/i915/intel_tv.c | |
parent | c2c75131244507c93f812862fdbd4f3a37139401 (diff) |
drm/i915: introduce for_each_encoder_on_crtc
We already have this pattern at quite a few places, and moving part of
the modeset helper stuff into the driver will add more.
v2: Don't clobber the crtc struct name with the macro parameter ...
v3: Convert two more places noticed by Paulo Zanoni.
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_tv.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index a233a51fd7e6..3b413c9042c0 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
@@ -895,20 +895,16 @@ intel_tv_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode, | |||
895 | struct drm_display_mode *adjusted_mode) | 895 | struct drm_display_mode *adjusted_mode) |
896 | { | 896 | { |
897 | struct drm_device *dev = encoder->dev; | 897 | struct drm_device *dev = encoder->dev; |
898 | struct drm_mode_config *drm_config = &dev->mode_config; | ||
899 | struct intel_tv *intel_tv = enc_to_intel_tv(encoder); | 898 | struct intel_tv *intel_tv = enc_to_intel_tv(encoder); |
900 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); | 899 | const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); |
901 | struct drm_encoder *other_encoder; | 900 | struct intel_encoder *other_encoder; |
902 | 901 | ||
903 | if (!tv_mode) | 902 | if (!tv_mode) |
904 | return false; | 903 | return false; |
905 | 904 | ||
906 | /* FIXME: lock encoder list */ | 905 | for_each_encoder_on_crtc(dev, encoder->crtc, other_encoder) |
907 | list_for_each_entry(other_encoder, &drm_config->encoder_list, head) { | 906 | if (&other_encoder->base != encoder) |
908 | if (other_encoder != encoder && | ||
909 | other_encoder->crtc == encoder->crtc) | ||
910 | return false; | 907 | return false; |
911 | } | ||
912 | 908 | ||
913 | adjusted_mode->clock = tv_mode->clock; | 909 | adjusted_mode->clock = tv_mode->clock; |
914 | return true; | 910 | return true; |