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>
This commit is contained in:
parent
a8bb681827
commit
a57ce0b2b7
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue