drm/i915: Use fb modifiers in intel_check_cursor_plane
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>
Tue, 10 Feb 2015 17:16:14 +0000 (17:16 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 13 Feb 2015 22:28:20 +0000 (23:28 +0100)
Also drop the mutex since with universal planes there is always a
proper framebuffer around which wraps the underlying bo. Which means
tiling is locked down. This was different in the old code which
directly took gem handles. The looking though was always cargo-cult
since races where not prevented in any way.

v2: Unconditionally enforce untiled, because cursors are always
untiled. The check for physical or gtt cursor is irrelevant. Also
clarify the commit message a bit

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 4b01876b760fddcadcbf967f1fd730bd40a9d041..ddf890767461eddc4cab319a3ca27993b3f718d1 100644 (file)
@@ -12173,13 +12173,10 @@ intel_check_cursor_plane(struct drm_plane *plane,
        if (fb == crtc->cursor->fb)
                return 0;
 
-       /* we only need to pin inside GTT if cursor is non-phy */
-       mutex_lock(&dev->struct_mutex);
-       if (!INTEL_INFO(dev)->cursor_needs_physical && obj->tiling_mode) {
+       if (fb->modifier[0] != DRM_FORMAT_MOD_NONE) {
                DRM_DEBUG_KMS("cursor cannot be tiled\n");
                ret = -EINVAL;
        }
-       mutex_unlock(&dev->struct_mutex);
 
 finish:
        if (intel_crtc->active) {