summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorJesse Barnes2014-02-07 21:10:35 +0100
committerDaniel Vetter2014-02-12 18:53:03 +0100
commita57ce0b2b7d2d9f28f5d45e20a8649ee6845e8f7 (patch)
tree1b1c0ddccbe6e90fef79d9e18ea16d8a4a7dfb01 /drivers/gpu/drm/i915/intel_display.c
parentdrm/i915: Fix error path leak in fbdev fb allocation (diff)
downloadkernel-qcow2-linux-a57ce0b2b7d2d9f28f5d45e20a8649ee6845e8f7.tar.gz
kernel-qcow2-linux-a57ce0b2b7d2d9f28f5d45e20a8649ee6845e8f7.tar.xz
kernel-qcow2-linux-a57ce0b2b7d2d9f28f5d45e20a8649ee6845e8f7.zip
drm/i915: split aligned height calculation out v2
For use by get_plane_config. v2: cleanup tile_height bits (Chris) Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 6ac4c23acc77..af98ddb2cde7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1932,6 +1932,14 @@ static bool need_vtd_wa(struct drm_device *dev)
return false;
}
+static int intel_align_height(struct drm_device *dev, int height, bool tiled)
+{
+ int tile_height;
+
+ tile_height = tiled ? (IS_GEN2(dev) ? 16 : 8) : 1;
+ return ALIGN(height, tile_height);
+}
+
int
intel_pin_and_fence_fb_obj(struct drm_device *dev,
struct drm_i915_gem_object *obj,
@@ -10573,7 +10581,7 @@ int intel_framebuffer_init(struct drm_device *dev,
struct drm_mode_fb_cmd2 *mode_cmd,
struct drm_i915_gem_object *obj)
{
- int aligned_height, tile_height;
+ int aligned_height;
int pitch_limit;
int ret;
@@ -10667,9 +10675,8 @@ int intel_framebuffer_init(struct drm_device *dev,
if (mode_cmd->offsets[0] != 0)
return -EINVAL;
- tile_height = IS_GEN2(dev) ? 16 : 8;
- aligned_height = ALIGN(mode_cmd->height,
- obj->tiling_mode ? tile_height : 1);
+ aligned_height = intel_align_height(dev, mode_cmd->height,
+ obj->tiling_mode);
/* FIXME drm helper for size checks (especially planar formats)? */
if (obj->base.size < aligned_height * mode_cmd->pitches[0])
return -EINVAL;