drm/omap: fix align_pitch() for 24 bits per pixel
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 8 May 2015 10:32:31 +0000 (13:32 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 2 Jul 2015 12:58:06 +0000 (15:58 +0300)
align_pitch() uses ALIGN() to ensure the pitch is aligned to SGX's
requirement of 8 pixels. However, ALIGN() expects the alignment value to
be a power of two, which is not the case for 24 bits per pixels.

Use roundup() instead, which works for all alignments.

This fixes the error seen with 24 bits per pixel modes:

"buffer pitch (2176 bytes) is not a multiple of pixel size (3 bytes)"

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_drv.h

index 1ae8477e42891c35bf129fc04eb7d2bdd2e936c2..12081e61d45a99b02956bda4dc5759036ef64d23 100644 (file)
@@ -236,7 +236,7 @@ static inline int align_pitch(int pitch, int width, int bpp)
        /* PVR needs alignment to 8 pixels.. right now that is the most
         * restrictive stride requirement..
         */
-       return ALIGN(pitch, 8 * bytespp);
+       return roundup(pitch, 8 * bytespp);
 }
 
 /* map crtc to vblank mask */