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>
此提交包含在:

提交者
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:
|
||||||
|
新增問題並參考
封鎖使用者