drm: malidp: Add the size of the superblocks when calculating total size for AFBC buffers

Message ID 20181005123819.8843-1-Liviu.Dudau@arm.com
State New
Headers show
Series
  • drm: malidp: Add the size of the superblocks when calculating total size for AFBC buffers
Related show

Commit Message

Liviu Dudau Oct. 5, 2018, 12:38 p.m.
The size of the superblocks being added to the total AFBC buffer size
got lost in the upstreaming process. Add it back.

Cc: Ayan Kumar Halder <ayan.halder@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
---
 drivers/gpu/drm/arm/malidp_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Ayan Halder Oct. 5, 2018, 2:19 p.m. | #1
Hi Liviu,

On Fri, Oct 05, 2018 at 01:38:19PM +0100, Liviu Dudau wrote:
> The size of the superblocks being added to the total AFBC buffer size
> got lost in the upstreaming process. Add it back.
> 
> Cc: Ayan Kumar Halder <ayan.halder@arm.com>
> Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
> ---
>  drivers/gpu/drm/arm/malidp_drv.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 90214851637f4..505f316a192ec 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -38,6 +38,7 @@
>  
>  #define MALIDP_CONF_VALID_TIMEOUT	250
>  #define AFBC_HEADER_SIZE		16
> +#define AFBC_SUPERBLK_ALIGNMENT		128
>  
>  static void malidp_write_gamma_table(struct malidp_hw_device *hwdev,
>  				     u32 data[MALIDP_COEFFTAB_NUM_COEFFS])
> @@ -336,7 +337,8 @@ malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
>  	afbc_superblock_size = info->cpp[0] * afbc_superblock_width *
>  		afbc_superblock_height;
>  
> -	afbc_size = ALIGN(n_superblocks * AFBC_HEADER_SIZE, 128);
> +	afbc_size = ALIGN(n_superblocks * AFBC_HEADER_SIZE, AFBC_SUPERBLK_ALIGNMENT);
> +	afbc_size += n_superblocks * ALIGN(afbc_superblock_size, AFBC_SUPERBLK_ALIGNMENT);
>  
>  	if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
>  		DRM_DEBUG_KMS("Invalid value of pitch (=%u) should be same as width (=%u) * cpp (=%u)\n",
> --
 
Looks correct to me.
Reviewed-by: Ayan Kumar Halder <ayan.halder@arm.com>
> 2.18.0

Patch

diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 90214851637f4..505f316a192ec 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -38,6 +38,7 @@ 
 
 #define MALIDP_CONF_VALID_TIMEOUT	250
 #define AFBC_HEADER_SIZE		16
+#define AFBC_SUPERBLK_ALIGNMENT		128
 
 static void malidp_write_gamma_table(struct malidp_hw_device *hwdev,
 				     u32 data[MALIDP_COEFFTAB_NUM_COEFFS])
@@ -336,7 +337,8 @@  malidp_verify_afbc_framebuffer_size(struct drm_device *dev,
 	afbc_superblock_size = info->cpp[0] * afbc_superblock_width *
 		afbc_superblock_height;
 
-	afbc_size = ALIGN(n_superblocks * AFBC_HEADER_SIZE, 128);
+	afbc_size = ALIGN(n_superblocks * AFBC_HEADER_SIZE, AFBC_SUPERBLK_ALIGNMENT);
+	afbc_size += n_superblocks * ALIGN(afbc_superblock_size, AFBC_SUPERBLK_ALIGNMENT);
 
 	if (mode_cmd->width * info->cpp[0] != mode_cmd->pitches[0]) {
 		DRM_DEBUG_KMS("Invalid value of pitch (=%u) should be same as width (=%u) * cpp (=%u)\n",