Message ID | 1426607117-10626-2-git-send-email-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On ti, 2015-03-17 at 15:45 +0000, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > > It will be used in a later patch and also convert all height parameters > from int to unsigned int. > > v2: Rebased for fb modifiers. > v3: Fixed v2 rebase. > v4: > * Height should be unsigned int. > * Make it take pixel_format for consistency and simplicity. > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > Reviewed-by: Michel Thierry <michel.thierry@intel.com> (v1) Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> (v4) > --- > drivers/gpu/drm/i915/intel_display.c | 43 +++++++++++++++++++++--------------- > drivers/gpu/drm/i915/intel_drv.h | 7 +++--- > 2 files changed, 29 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 90b460c..a307979 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -2194,13 +2194,12 @@ static bool need_vtd_wa(struct drm_device *dev) > return false; > } > > -int > -intel_fb_align_height(struct drm_device *dev, int height, > - uint32_t pixel_format, > - uint64_t fb_format_modifier) > +static unsigned int > +intel_tile_height(struct drm_device *dev, uint32_t pixel_format, > + uint64_t fb_format_modifier) > { > - int tile_height; > - uint32_t bits_per_pixel; > + unsigned int tile_height; > + uint32_t pixel_bytes; > > switch (fb_format_modifier) { > case DRM_FORMAT_MOD_NONE: > @@ -2213,20 +2212,20 @@ intel_fb_align_height(struct drm_device *dev, int height, > tile_height = 32; > break; > case I915_FORMAT_MOD_Yf_TILED: > - bits_per_pixel = drm_format_plane_cpp(pixel_format, 0) * 8; > - switch (bits_per_pixel) { > + pixel_bytes = drm_format_plane_cpp(pixel_format, 0); > + switch (pixel_bytes) { > default: > - case 8: > + case 1: > tile_height = 64; > break; > - case 16: > - case 32: > + case 2: > + case 4: > tile_height = 32; > break; > - case 64: > + case 8: > tile_height = 16; > break; > - case 128: > + case 16: > WARN_ONCE(1, > "128-bit pixels are not supported for display!"); > tile_height = 16; > @@ -2239,7 +2238,15 @@ intel_fb_align_height(struct drm_device *dev, int height, > break; > } > > - return ALIGN(height, tile_height); > + return tile_height; > +} > + > +unsigned int > +intel_fb_align_height(struct drm_device *dev, unsigned int height, > + uint32_t pixel_format, uint64_t fb_format_modifier) > +{ > + return ALIGN(height, intel_tile_height(dev, pixel_format, > + fb_format_modifier)); > } > > int > @@ -6772,7 +6779,7 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc, > u32 val, base, offset; > int pipe = crtc->pipe, plane = crtc->plane; > int fourcc, pixel_format; > - int aligned_height; > + unsigned int aligned_height; > struct drm_framebuffer *fb; > struct intel_framebuffer *intel_fb; > > @@ -7810,7 +7817,7 @@ skylake_get_initial_plane_config(struct intel_crtc *crtc, > u32 val, base, offset, stride_mult, tiling; > int pipe = crtc->pipe; > int fourcc, pixel_format; > - int aligned_height; > + unsigned int aligned_height; > struct drm_framebuffer *fb; > struct intel_framebuffer *intel_fb; > > @@ -7918,7 +7925,7 @@ ironlake_get_initial_plane_config(struct intel_crtc *crtc, > u32 val, base, offset; > int pipe = crtc->pipe; > int fourcc, pixel_format; > - int aligned_height; > + unsigned int aligned_height; > struct drm_framebuffer *fb; > struct intel_framebuffer *intel_fb; > > @@ -12849,7 +12856,7 @@ static int intel_framebuffer_init(struct drm_device *dev, > struct drm_mode_fb_cmd2 *mode_cmd, > struct drm_i915_gem_object *obj) > { > - int aligned_height; > + unsigned int aligned_height; > int ret; > u32 pitch_limit, stride_alignment; > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index a1baaa1..5254540 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -904,9 +904,10 @@ void intel_frontbuffer_flip(struct drm_device *dev, > intel_frontbuffer_flush(dev, frontbuffer_bits); > } > > -int intel_fb_align_height(struct drm_device *dev, int height, > - uint32_t pixel_format, > - uint64_t fb_format_modifier); > +unsigned int intel_fb_align_height(struct drm_device *dev, > + unsigned int height, > + uint32_t pixel_format, > + uint64_t fb_format_modifier); > void intel_fb_obj_flush(struct drm_i915_gem_object *obj, bool retire); > > u32 intel_fb_stride_alignment(struct drm_device *dev, uint64_t fb_modifier,
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 90b460c..a307979 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -2194,13 +2194,12 @@ static bool need_vtd_wa(struct drm_device *dev) return false; } -int -intel_fb_align_height(struct drm_device *dev, int height, - uint32_t pixel_format, - uint64_t fb_format_modifier) +static unsigned int +intel_tile_height(struct drm_device *dev, uint32_t pixel_format, + uint64_t fb_format_modifier) { - int tile_height; - uint32_t bits_per_pixel; + unsigned int tile_height; + uint32_t pixel_bytes; switch (fb_format_modifier) { case DRM_FORMAT_MOD_NONE: @@ -2213,20 +2212,20 @@ intel_fb_align_height(struct drm_device *dev, int height, tile_height = 32; break; case I915_FORMAT_MOD_Yf_TILED: - bits_per_pixel = drm_format_plane_cpp(pixel_format, 0) * 8; - switch (bits_per_pixel) { + pixel_bytes = drm_format_plane_cpp(pixel_format, 0); + switch (pixel_bytes) { default: - case 8: + case 1: tile_height = 64; break; - case 16: - case 32: + case 2: + case 4: tile_height = 32; break; - case 64: + case 8: tile_height = 16; break; - case 128: + case 16: WARN_ONCE(1, "128-bit pixels are not supported for display!"); tile_height = 16; @@ -2239,7 +2238,15 @@ intel_fb_align_height(struct drm_device *dev, int height, break; } - return ALIGN(height, tile_height); + return tile_height; +} + +unsigned int +intel_fb_align_height(struct drm_device *dev, unsigned int height, + uint32_t pixel_format, uint64_t fb_format_modifier) +{ + return ALIGN(height, intel_tile_height(dev, pixel_format, + fb_format_modifier)); } int @@ -6772,7 +6779,7 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc, u32 val, base, offset; int pipe = crtc->pipe, plane = crtc->plane; int fourcc, pixel_format; - int aligned_height; + unsigned int aligned_height; struct drm_framebuffer *fb; struct intel_framebuffer *intel_fb; @@ -7810,7 +7817,7 @@ skylake_get_initial_plane_config(struct intel_crtc *crtc, u32 val, base, offset, stride_mult, tiling; int pipe = crtc->pipe; int fourcc, pixel_format; - int aligned_height; + unsigned int aligned_height; struct drm_framebuffer *fb; struct intel_framebuffer *intel_fb; @@ -7918,7 +7925,7 @@ ironlake_get_initial_plane_config(struct intel_crtc *crtc, u32 val, base, offset; int pipe = crtc->pipe; int fourcc, pixel_format; - int aligned_height; + unsigned int aligned_height; struct drm_framebuffer *fb; struct intel_framebuffer *intel_fb; @@ -12849,7 +12856,7 @@ static int intel_framebuffer_init(struct drm_device *dev, struct drm_mode_fb_cmd2 *mode_cmd, struct drm_i915_gem_object *obj) { - int aligned_height; + unsigned int aligned_height; int ret; u32 pitch_limit, stride_alignment; diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index a1baaa1..5254540 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -904,9 +904,10 @@ void intel_frontbuffer_flip(struct drm_device *dev, intel_frontbuffer_flush(dev, frontbuffer_bits); } -int intel_fb_align_height(struct drm_device *dev, int height, - uint32_t pixel_format, - uint64_t fb_format_modifier); +unsigned int intel_fb_align_height(struct drm_device *dev, + unsigned int height, + uint32_t pixel_format, + uint64_t fb_format_modifier); void intel_fb_obj_flush(struct drm_i915_gem_object *obj, bool retire); u32 intel_fb_stride_alignment(struct drm_device *dev, uint64_t fb_modifier,