diff mbox

[3/4] drm/omap: remove align_pitch()

Message ID 1460994134-12587-3-git-send-email-tomi.valkeinen@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tomi Valkeinen April 18, 2016, 3:42 p.m. UTC
The previous commit removed aligning the pitch to SGX's pitch
requirement from align_pitch(). What's left is effectively a function
that returns width * bytespp.

To clean up the driver, we can remove the function and have the
calculation inline in the two places which call align_pitch().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/gpu/drm/omapdrm/omap_drv.h   | 8 --------
 drivers/gpu/drm/omapdrm/omap_fbdev.c | 5 ++---
 drivers/gpu/drm/omapdrm/omap_gem.c   | 3 ++-
 3 files changed, 4 insertions(+), 12 deletions(-)

Comments

Laurent Pinchart April 19, 2016, 2:12 a.m. UTC | #1
Hi Tomi,

Thank you for the patch.

On Monday 18 Apr 2016 18:42:13 Tomi Valkeinen wrote:
> The previous commit removed aligning the pitch to SGX's pitch
> requirement from align_pitch(). What's left is effectively a function
> that returns width * bytespp.
> 
> To clean up the driver, we can remove the function and have the
> calculation inline in the two places which call align_pitch().
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

I wonder, however, if the calculation is correct. Shouldn't the pitch be 
calculated as DIV_ROUND_UP(width * bpp, 8) instead of width * 
DIV_ROUND_UP(bpp, 8) ?

> ---
>  drivers/gpu/drm/omapdrm/omap_drv.h   | 8 --------
>  drivers/gpu/drm/omapdrm/omap_fbdev.c | 5 ++---
>  drivers/gpu/drm/omapdrm/omap_gem.c   | 3 ++-
>  3 files changed, 4 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h
> b/drivers/gpu/drm/omapdrm/omap_drv.h index bdce6ec64a07..c23829f0f1c2
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.h
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.h
> @@ -239,14 +239,6 @@ struct dma_buf *omap_gem_prime_export(struct drm_device
> *dev, struct drm_gem_object *omap_gem_prime_import(struct drm_device *dev,
> struct dma_buf *buffer);
> 
> -static inline int align_pitch(int pitch, int width, int bpp)
> -{
> -	int bytespp = (bpp + 7) / 8;
> -	/* in case someone tries to feed us a completely bogus stride: */
> -	pitch = max(pitch, width * bytespp);
> -	return pitch;
> -}
> -
>  /* map crtc to vblank mask */
>  uint32_t pipe2vbl(struct drm_crtc *crtc);
>  struct omap_dss_device *omap_encoder_get_dssdev(struct drm_encoder
> *encoder); diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c
> b/drivers/gpu/drm/omapdrm/omap_fbdev.c index 3cb16f0cf381..cb6af7757720
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
> +++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
> @@ -125,9 +125,8 @@ static int omap_fbdev_create(struct drm_fb_helper
> *helper, mode_cmd.width = sizes->surface_width;
>  	mode_cmd.height = sizes->surface_height;
> 
> -	mode_cmd.pitches[0] = align_pitch(
> -			mode_cmd.width * ((sizes->surface_bpp + 7) / 8),
> -			mode_cmd.width, sizes->surface_bpp);
> +	mode_cmd.pitches[0] = mode_cmd.width *
> +		DIV_ROUND_UP(sizes->surface_bpp, 8);
> 
>  	fbdev->ywrap_enabled = priv->has_dmm && ywrap_enabled;
>  	if (fbdev->ywrap_enabled) {
> diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c
> b/drivers/gpu/drm/omapdrm/omap_gem.c index 907154f5b67c..7ea1e00d8ca6
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_gem.c
> +++ b/drivers/gpu/drm/omapdrm/omap_gem.c
> @@ -660,7 +660,8 @@ int omap_gem_dumb_create(struct drm_file *file, struct
> drm_device *dev, {
>  	union omap_gem_size gsize;
> 
> -	args->pitch = align_pitch(0, args->width, args->bpp);
> +	args->pitch = args->width * DIV_ROUND_UP(args->bpp, 8);
> +
>  	args->size = PAGE_ALIGN(args->pitch * args->height);
> 
>  	gsize = (union omap_gem_size){
diff mbox

Patch

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index bdce6ec64a07..c23829f0f1c2 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -239,14 +239,6 @@  struct dma_buf *omap_gem_prime_export(struct drm_device *dev,
 struct drm_gem_object *omap_gem_prime_import(struct drm_device *dev,
 		struct dma_buf *buffer);
 
-static inline int align_pitch(int pitch, int width, int bpp)
-{
-	int bytespp = (bpp + 7) / 8;
-	/* in case someone tries to feed us a completely bogus stride: */
-	pitch = max(pitch, width * bytespp);
-	return pitch;
-}
-
 /* map crtc to vblank mask */
 uint32_t pipe2vbl(struct drm_crtc *crtc);
 struct omap_dss_device *omap_encoder_get_dssdev(struct drm_encoder *encoder);
diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
index 3cb16f0cf381..cb6af7757720 100644
--- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
+++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
@@ -125,9 +125,8 @@  static int omap_fbdev_create(struct drm_fb_helper *helper,
 	mode_cmd.width = sizes->surface_width;
 	mode_cmd.height = sizes->surface_height;
 
-	mode_cmd.pitches[0] = align_pitch(
-			mode_cmd.width * ((sizes->surface_bpp + 7) / 8),
-			mode_cmd.width, sizes->surface_bpp);
+	mode_cmd.pitches[0] = mode_cmd.width *
+		DIV_ROUND_UP(sizes->surface_bpp, 8);
 
 	fbdev->ywrap_enabled = priv->has_dmm && ywrap_enabled;
 	if (fbdev->ywrap_enabled) {
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c
index 907154f5b67c..7ea1e00d8ca6 100644
--- a/drivers/gpu/drm/omapdrm/omap_gem.c
+++ b/drivers/gpu/drm/omapdrm/omap_gem.c
@@ -660,7 +660,8 @@  int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 {
 	union omap_gem_size gsize;
 
-	args->pitch = align_pitch(0, args->width, args->bpp);
+	args->pitch = args->width * DIV_ROUND_UP(args->bpp, 8);
+
 	args->size = PAGE_ALIGN(args->pitch * args->height);
 
 	gsize = (union omap_gem_size){