mmm_color_format: Align NV12/NV21 formats to 128x32

NV12 and NV21 formats need to be aligned to 128x32 as per the
requirement.

Change-Id: Ic03ac5786703d8d46a2f2a57559ac334d4e66971
Signed-off-by: Ravi Ranjan <rravi@codeaurora.org>
This commit is contained in:
Ravi Ranjan
2021-01-19 14:22:55 +05:30
committed by Gerrit - the friendly Code Review server
parent 45644f811d
commit 53bcfe5906

View File

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
*/
#ifndef __MMM_COLOR_FMT_INFO_H__
#define __MMM_COLOR_FMT_INFO_H__
@@ -48,10 +48,10 @@ enum mmm_color_fmts {
* . . . . . . . . . . . . . . . . V
* . . . . . . . . . . . . . . . . --> Buffer size alignment
*
* Y_Stride : Width aligned to 512
* UV_Stride : Width aligned to 512
* Y_Scanlines: Height aligned to 512
* UV_Scanlines: Height/2 aligned to 256
* Y_Stride : Width aligned to 128
* UV_Stride : Width aligned to 128
* Y_Scanlines: Height aligned to 32
* UV_Scanlines: Height/2 aligned to 16
* Total size = align(Y_Stride * Y_Scanlines
* + UV_Stride * UV_Scanlines, 4096)
*/
@@ -83,10 +83,10 @@ enum mmm_color_fmts {
* . . . . . . . . . . . . . . . . V
* . . . . . . . . . . . . . . . . --> Padding & Buffer size alignment
*
* Y_Stride : Width aligned to 512
* UV_Stride : Width aligned to 512
* Y_Scanlines: Height aligned to 512
* UV_Scanlines: Height/2 aligned to 256
* Y_Stride : Width aligned to 128
* UV_Stride : Width aligned to 128
* Y_Scanlines: Height aligned to 32
* UV_Scanlines: Height/2 aligned to 16
* Total size = align(Y_Stride * Y_Scanlines
* + UV_Stride * UV_Scanlines, 4096)
*/
@@ -783,12 +783,12 @@ static inline unsigned int MMM_COLOR_FMT_Y_STRIDE(unsigned int color_fmt,
goto invalid_input;
switch (color_fmt) {
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_512:
alignment = 512;
stride = MMM_COLOR_FMT_ALIGN(width, alignment);
break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_UBWC:
alignment = 128;
stride = MMM_COLOR_FMT_ALIGN(width, alignment);
@@ -826,12 +826,12 @@ static inline unsigned int MMM_COLOR_FMT_UV_STRIDE(unsigned int color_fmt,
goto invalid_input;
switch (color_fmt) {
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV12_512:
alignment = 512;
stride = MMM_COLOR_FMT_ALIGN(width, alignment);
break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_UBWC:
alignment = 128;
stride = MMM_COLOR_FMT_ALIGN(width, alignment);
@@ -869,11 +869,11 @@ static inline unsigned int MMM_COLOR_FMT_Y_SCANLINES(unsigned int color_fmt,
goto invalid_input;
switch (color_fmt) {
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_512:
alignment = 512;
break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_UBWC:
case MMM_COLOR_FMT_P010:
alignment = 32;
@@ -906,11 +906,12 @@ static inline unsigned int MMM_COLOR_FMT_UV_SCANLINES(unsigned int color_fmt,
goto invalid_input;
switch (color_fmt) {
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV12_512:
alignment = 256;
break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_BPP10_UBWC:
case MMM_COLOR_FMT_P010_UBWC:
case MMM_COLOR_FMT_P010: