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>
此提交包含在:
Ravi Ranjan
2021-01-19 14:22:55 +05:30
提交者 Gerrit - the friendly Code Review server
父節點 45644f811d
當前提交 53bcfe5906

查看文件

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* 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__ #ifndef __MMM_COLOR_FMT_INFO_H__
#define __MMM_COLOR_FMT_INFO_H__ #define __MMM_COLOR_FMT_INFO_H__
@@ -48,10 +48,10 @@ enum mmm_color_fmts {
* . . . . . . . . . . . . . . . . V * . . . . . . . . . . . . . . . . V
* . . . . . . . . . . . . . . . . --> Buffer size alignment * . . . . . . . . . . . . . . . . --> Buffer size alignment
* *
* Y_Stride : Width aligned to 512 * Y_Stride : Width aligned to 128
* UV_Stride : Width aligned to 512 * UV_Stride : Width aligned to 128
* Y_Scanlines: Height aligned to 512 * Y_Scanlines: Height aligned to 32
* UV_Scanlines: Height/2 aligned to 256 * UV_Scanlines: Height/2 aligned to 16
* Total size = align(Y_Stride * Y_Scanlines * Total size = align(Y_Stride * Y_Scanlines
* + UV_Stride * UV_Scanlines, 4096) * + UV_Stride * UV_Scanlines, 4096)
*/ */
@@ -83,10 +83,10 @@ enum mmm_color_fmts {
* . . . . . . . . . . . . . . . . V * . . . . . . . . . . . . . . . . V
* . . . . . . . . . . . . . . . . --> Padding & Buffer size alignment * . . . . . . . . . . . . . . . . --> Padding & Buffer size alignment
* *
* Y_Stride : Width aligned to 512 * Y_Stride : Width aligned to 128
* UV_Stride : Width aligned to 512 * UV_Stride : Width aligned to 128
* Y_Scanlines: Height aligned to 512 * Y_Scanlines: Height aligned to 32
* UV_Scanlines: Height/2 aligned to 256 * UV_Scanlines: Height/2 aligned to 16
* Total size = align(Y_Stride * Y_Scanlines * Total size = align(Y_Stride * Y_Scanlines
* + UV_Stride * UV_Scanlines, 4096) * + 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; goto invalid_input;
switch (color_fmt) { switch (color_fmt) {
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_512: case MMM_COLOR_FMT_NV12_512:
alignment = 512; alignment = 512;
stride = MMM_COLOR_FMT_ALIGN(width, alignment); stride = MMM_COLOR_FMT_ALIGN(width, alignment);
break; break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_UBWC: case MMM_COLOR_FMT_NV12_UBWC:
alignment = 128; alignment = 128;
stride = MMM_COLOR_FMT_ALIGN(width, alignment); 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; goto invalid_input;
switch (color_fmt) { switch (color_fmt) {
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV12_512: case MMM_COLOR_FMT_NV12_512:
alignment = 512; alignment = 512;
stride = MMM_COLOR_FMT_ALIGN(width, alignment); stride = MMM_COLOR_FMT_ALIGN(width, alignment);
break; break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_UBWC: case MMM_COLOR_FMT_NV12_UBWC:
alignment = 128; alignment = 128;
stride = MMM_COLOR_FMT_ALIGN(width, alignment); 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; goto invalid_input;
switch (color_fmt) { switch (color_fmt) {
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_512: case MMM_COLOR_FMT_NV12_512:
alignment = 512; alignment = 512;
break; break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_UBWC: case MMM_COLOR_FMT_NV12_UBWC:
case MMM_COLOR_FMT_P010: case MMM_COLOR_FMT_P010:
alignment = 32; alignment = 32;
@@ -906,11 +906,12 @@ static inline unsigned int MMM_COLOR_FMT_UV_SCANLINES(unsigned int color_fmt,
goto invalid_input; goto invalid_input;
switch (color_fmt) { switch (color_fmt) {
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV12_512: case MMM_COLOR_FMT_NV12_512:
alignment = 256; alignment = 256;
break; break;
case MMM_COLOR_FMT_NV12:
case MMM_COLOR_FMT_NV21:
case MMM_COLOR_FMT_NV12_BPP10_UBWC: case MMM_COLOR_FMT_NV12_BPP10_UBWC:
case MMM_COLOR_FMT_P010_UBWC: case MMM_COLOR_FMT_P010_UBWC:
case MMM_COLOR_FMT_P010: case MMM_COLOR_FMT_P010: