aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTvrtko Ursulin <tvrtko.ursulin@intel.com>2015-02-27 06:15:24 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-02-27 12:10:56 -0500
commit9a8f0a1290993c86c4e35756a2624bfe461f9036 (patch)
tree18fd7331f559a604dd0eff614a7268c9c0cea8c3
parent0fda65680e92545caea5be7805a7f0a617fb6c20 (diff)
drm/i915/skl: Allow Y (and Yf) frame buffer creation
By this patch all underlying bits have been implemented and this patch actually enables the feature. v2: Validate passed in fb modifiers to reject garbage. (Daniel Vetter) v3: Rearrange validation checks per code review comments. (Daniel Vetter) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> (v1) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index a9e15cfe9857..7298796847f6 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12808,8 +12808,21 @@ static int intel_framebuffer_init(struct drm_device *dev,
12808 } 12808 }
12809 } 12809 }
12810 12810
12811 if (mode_cmd->modifier[0] == I915_FORMAT_MOD_Y_TILED) { 12811 /* Passed in modifier sanity checking. */
12812 DRM_DEBUG("hardware does not support tiling Y\n"); 12812 switch (mode_cmd->modifier[0]) {
12813 case I915_FORMAT_MOD_Y_TILED:
12814 case I915_FORMAT_MOD_Yf_TILED:
12815 if (INTEL_INFO(dev)->gen < 9) {
12816 DRM_DEBUG("Unsupported tiling 0x%llx!\n",
12817 mode_cmd->modifier[0]);
12818 return -EINVAL;
12819 }
12820 case DRM_FORMAT_MOD_NONE:
12821 case I915_FORMAT_MOD_X_TILED:
12822 break;
12823 default:
12824 DRM_ERROR("Unsupported fb modifier 0x%llx!\n",
12825 mode_cmd->modifier[0]);
12813 return -EINVAL; 12826 return -EINVAL;
12814 } 12827 }
12815 12828