
This change brings msm display driver including sde, dp, dsi, rotator, dsi pll and dp pll from base 4.19 kernel project. It is first source code snapshot from base kernel project. Change-Id: Iec864c064ce5ea04e170f24414c728684002f284 Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
944 řádky
25 KiB
C
944 řádky
25 KiB
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Copyright (c) 2012, 2015-2019, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#include <media/msm_sde_rotator.h>
|
|
|
|
#include "sde_rotator_formats.h"
|
|
#include "sde_rotator_util.h"
|
|
|
|
#define FMT_RGB_565(fmt, desc, frame_fmt, flag_arg, e0, e1, e2, isubwc) \
|
|
{ \
|
|
.format = (fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0, \
|
|
.alpha_enable = 0, \
|
|
.unpack_count = 3, \
|
|
.bpp = 2, \
|
|
.frame_format = (frame_fmt), \
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL, \
|
|
.element = { (e0), (e1), (e2) }, \
|
|
.bits = { \
|
|
[C2_R_Cr] = SDE_COLOR_5BIT, \
|
|
[C0_G_Y] = SDE_COLOR_6BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_5BIT, \
|
|
}, \
|
|
.is_ubwc = isubwc, \
|
|
}
|
|
|
|
#define FMT_RGB_888(fmt, desc, frame_fmt, flag_arg, e0, e1, e2, isubwc) \
|
|
{ \
|
|
.format = (fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0, \
|
|
.alpha_enable = 0, \
|
|
.unpack_count = 3, \
|
|
.bpp = 3, \
|
|
.frame_format = (frame_fmt), \
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL, \
|
|
.element = { (e0), (e1), (e2) }, \
|
|
.bits = { \
|
|
[C2_R_Cr] = SDE_COLOR_8BIT, \
|
|
[C0_G_Y] = SDE_COLOR_8BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_8BIT, \
|
|
}, \
|
|
.is_ubwc = isubwc, \
|
|
}
|
|
|
|
#define FMT_RGB_8888(fmt, desc, frame_fmt, flag_arg, \
|
|
alpha_en, e0, e1, e2, e3, isubwc) \
|
|
{ \
|
|
.format = (fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0, \
|
|
.alpha_enable = (alpha_en), \
|
|
.unpack_count = 4, \
|
|
.bpp = 4, \
|
|
.frame_format = (frame_fmt), \
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL, \
|
|
.element = { (e0), (e1), (e2), (e3) }, \
|
|
.bits = { \
|
|
[C3_ALPHA] = SDE_COLOR_8BIT, \
|
|
[C2_R_Cr] = SDE_COLOR_8BIT, \
|
|
[C0_G_Y] = SDE_COLOR_8BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_8BIT, \
|
|
}, \
|
|
.is_ubwc = isubwc, \
|
|
}
|
|
|
|
#define FMT_YUV10_COMMON(fmt) \
|
|
.format = (fmt), \
|
|
.is_yuv = 1, \
|
|
.bits = { \
|
|
[C2_R_Cr] = SDE_COLOR_8BIT, \
|
|
[C0_G_Y] = SDE_COLOR_8BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_8BIT, \
|
|
}, \
|
|
.alpha_enable = 0
|
|
|
|
#define FMT_YUV_COMMON(fmt) \
|
|
.format = (fmt), \
|
|
.is_yuv = 1, \
|
|
.bits = { \
|
|
[C2_R_Cr] = SDE_COLOR_8BIT, \
|
|
[C0_G_Y] = SDE_COLOR_8BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_8BIT, \
|
|
}, \
|
|
.alpha_enable = 0, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0
|
|
|
|
#define FMT_YUV_PSEUDO(fmt, desc, frame_fmt, samp, pixel_type, \
|
|
flag_arg, e0, e1, isubwc) \
|
|
{ \
|
|
FMT_YUV_COMMON(fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR, \
|
|
.chroma_sample = samp, \
|
|
.unpack_count = 2, \
|
|
.bpp = 2, \
|
|
.frame_format = (frame_fmt), \
|
|
.pixel_mode = (pixel_type), \
|
|
.element = { (e0), (e1) }, \
|
|
.is_ubwc = isubwc, \
|
|
}
|
|
|
|
#define FMT_YUV_PLANR(fmt, desc, frame_fmt, samp, \
|
|
flag_arg, e0, e1) \
|
|
{ \
|
|
FMT_YUV_COMMON(fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_PLANAR, \
|
|
.chroma_sample = samp, \
|
|
.bpp = 1, \
|
|
.unpack_count = 1, \
|
|
.frame_format = (frame_fmt), \
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL, \
|
|
.element = { (e0), (e1) }, \
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE, \
|
|
}
|
|
|
|
#define FMT_RGB_1555(fmt, desc, alpha_en, flag_arg, e0, e1, e2, e3) \
|
|
{ \
|
|
.format = (fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0, \
|
|
.alpha_enable = (alpha_en), \
|
|
.unpack_count = 4, \
|
|
.bpp = 2, \
|
|
.element = { (e0), (e1), (e2), (e3) }, \
|
|
.frame_format = SDE_MDP_FMT_LINEAR, \
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL, \
|
|
.bits = { \
|
|
[C3_ALPHA] = SDE_COLOR_ALPHA_1BIT, \
|
|
[C2_R_Cr] = SDE_COLOR_5BIT, \
|
|
[C0_G_Y] = SDE_COLOR_5BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_5BIT, \
|
|
}, \
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE, \
|
|
}
|
|
|
|
#define FMT_RGB_4444(fmt, desc, alpha_en, flag_arg, e0, e1, e2, e3) \
|
|
{ \
|
|
.format = (fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0, \
|
|
.alpha_enable = (alpha_en), \
|
|
.unpack_count = 4, \
|
|
.bpp = 2, \
|
|
.frame_format = SDE_MDP_FMT_LINEAR, \
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL, \
|
|
.element = { (e0), (e1), (e2), (e3) }, \
|
|
.bits = { \
|
|
[C3_ALPHA] = SDE_COLOR_ALPHA_4BIT, \
|
|
[C2_R_Cr] = SDE_COLOR_4BIT, \
|
|
[C0_G_Y] = SDE_COLOR_4BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_4BIT, \
|
|
}, \
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE, \
|
|
}
|
|
|
|
#define FMT_RGB_1010102(fmt, desc, frame_fmt, flag_arg, \
|
|
alpha_en, e0, e1, e2, e3, isubwc) \
|
|
{ \
|
|
.format = (fmt), \
|
|
.description = (desc), \
|
|
.flag = flag_arg, \
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
|
|
.unpack_tight = 1, \
|
|
.unpack_align_msb = 0, \
|
|
.alpha_enable = (alpha_en), \
|
|
.unpack_count = 4, \
|
|
.bpp = 4, \
|
|
.frame_format = frame_fmt, \
|
|
.pixel_mode = SDE_MDP_PIXEL_10BIT, \
|
|
.element = { (e0), (e1), (e2), (e3) }, \
|
|
.bits = { \
|
|
[C3_ALPHA] = SDE_COLOR_8BIT, \
|
|
[C2_R_Cr] = SDE_COLOR_8BIT, \
|
|
[C0_G_Y] = SDE_COLOR_8BIT, \
|
|
[C1_B_Cb] = SDE_COLOR_8BIT, \
|
|
}, \
|
|
.is_ubwc = isubwc, \
|
|
}
|
|
|
|
/*
|
|
* UBWC formats table:
|
|
* This table holds the UBWC formats supported.
|
|
* If a compression ratio needs to be used for this or any other format,
|
|
* the data will be passed by user-space.
|
|
*/
|
|
static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
|
|
{
|
|
.mdp_format = FMT_RGB_565(SDE_PIX_FMT_RGB_565_UBWC,
|
|
"SDE/RGB_565_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = FMT_RGB_8888(SDE_PIX_FMT_RGBA_8888_UBWC,
|
|
"SDE/RGBA_8888_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, 0, 1,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = FMT_RGB_8888(SDE_PIX_FMT_RGBX_8888_UBWC,
|
|
"SDE/RGBX_8888_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, 0, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
|
|
"SDE/Y_CBCR_H2V2_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, SDE_MDP_CHROMA_420,
|
|
SDE_MDP_PIXEL_NORMAL,
|
|
0, C1_B_Cb, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 8,
|
|
.tile_width = 32,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102_UBWC,
|
|
"SDE/RGBA_1010102_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, 0, 1,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = FMT_RGB_1010102(SDE_PIX_FMT_RGBX_1010102_UBWC,
|
|
"SDE/RGBX_1010102_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, 0, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC,
|
|
"SDE/Y_CBCR_H2V2_TP10_UBWC",
|
|
SDE_MDP_FMT_TILE_A5X, SDE_MDP_CHROMA_420,
|
|
SDE_MDP_PIXEL_10BIT,
|
|
0,
|
|
C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_UBWC),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 48,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = {
|
|
FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC),
|
|
.description = "SDE/Y_CBCR_H2V2_P010_UBWC",
|
|
.flag = 0,
|
|
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
|
|
.chroma_sample = SDE_MDP_CHROMA_420,
|
|
.unpack_count = 2,
|
|
.bpp = 2,
|
|
.frame_format = SDE_MDP_FMT_TILE_A5X,
|
|
.pixel_mode = SDE_MDP_PIXEL_10BIT,
|
|
.element = { C1_B_Cb, C2_R_Cr },
|
|
.unpack_tight = 0,
|
|
.unpack_align_msb = 1,
|
|
.is_ubwc = SDE_MDP_COMPRESS_UBWC
|
|
},
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 32,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102_TILE,
|
|
"SDE/RGBA_1010102_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_RGBX_1010102_TILE,
|
|
"SDE/RGBX_1010102102_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_BGRA_1010102_TILE,
|
|
"SDE/BGRA_1010102_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_BGRX_1010102_TILE,
|
|
"SDE/BGRX_1010102_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_ARGB_2101010_TILE,
|
|
"SDE/ARGB_2101010_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_XRGB_2101010_TILE,
|
|
"SDE/XRGB_2101010_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_ABGR_2101010_TILE,
|
|
"SDE/ABGR_2101010_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_1010102(SDE_PIX_FMT_XBGR_2101010_TILE,
|
|
"SDE/XBGR_2101010_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2_TILE,
|
|
"Y_CRCB_H2V2_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 8,
|
|
.tile_width = 32,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_TILE,
|
|
"Y_CBCR_H2V2_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 8,
|
|
.tile_width = 32,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_ABGR_8888_TILE,
|
|
"SDE/ABGR_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_XRGB_8888_TILE,
|
|
"SDE/XRGB_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 32,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_ARGB_8888_TILE,
|
|
"SDE/ARGB_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_RGBA_8888_TILE,
|
|
"SDE/RGBA_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_RGBX_8888_TILE,
|
|
"SDE/RGBX_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_BGRA_8888_TILE,
|
|
"SDE/BGRA_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_BGRX_8888_TILE,
|
|
"SDE/BGRX_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format =
|
|
FMT_RGB_8888(SDE_PIX_FMT_XBGR_8888_TILE,
|
|
"SDE/XBGR_8888_TILE",
|
|
SDE_MDP_FMT_TILE_A5X,
|
|
SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 16,
|
|
},
|
|
},
|
|
{
|
|
.mdp_format = {
|
|
FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE),
|
|
.description = "SDE/Y_CBCR_H2V2_P010_TILE",
|
|
.flag = SDE_MDP_FORMAT_FLAG_PRIVATE,
|
|
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
|
|
.chroma_sample = SDE_MDP_CHROMA_420,
|
|
.unpack_count = 2,
|
|
.bpp = 2,
|
|
.frame_format = SDE_MDP_FMT_TILE_A5X,
|
|
.pixel_mode = SDE_MDP_PIXEL_10BIT,
|
|
.element = { C1_B_Cb, C2_R_Cr },
|
|
.unpack_tight = 0,
|
|
.unpack_align_msb = 1,
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE,
|
|
},
|
|
.micro = {
|
|
.tile_height = 4,
|
|
.tile_width = 32,
|
|
},
|
|
},
|
|
};
|
|
|
|
static struct sde_mdp_format_params sde_mdp_format_map[] = {
|
|
FMT_RGB_565(
|
|
SDE_PIX_FMT_RGB_565, "RGB_565", SDE_MDP_FMT_LINEAR,
|
|
0, C1_B_Cb, C0_G_Y, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_565(
|
|
SDE_PIX_FMT_BGR_565, "BGR_565", SDE_MDP_FMT_LINEAR,
|
|
0, C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_888(
|
|
SDE_PIX_FMT_RGB_888, "RGB_888", SDE_MDP_FMT_LINEAR,
|
|
0, C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_888(
|
|
SDE_PIX_FMT_BGR_888, "BGR_888", SDE_MDP_FMT_LINEAR,
|
|
0, C1_B_Cb, C0_G_Y, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_ABGR_8888, "SDE/ABGR_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_XRGB_8888, "SDE/XRGB_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_ARGB_8888, "SDE/ARGB_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_RGBA_8888, "SDE/RGBA_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_RGBX_8888, "SDE/RGBX_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_BGRA_8888, "SDE/BGRA_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_BGRX_8888, "SDE/BGRX_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_8888(
|
|
SDE_PIX_FMT_XBGR_8888, "SDE/XBGR_8888", SDE_MDP_FMT_LINEAR,
|
|
0, 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V1, "Y_CRCB_H2V1",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_H2V1, SDE_MDP_PIXEL_NORMAL,
|
|
0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V1, "Y_CBCR_H2V1",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_H2V1, SDE_MDP_PIXEL_NORMAL,
|
|
0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H1V2, "Y_CRCB_H1V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_H1V2, SDE_MDP_PIXEL_NORMAL,
|
|
0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H1V2, "Y_CBCR_H1V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_H1V2, SDE_MDP_PIXEL_NORMAL,
|
|
0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2, "Y_CRCB_H2V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
|
|
0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2, "Y_CBCR_H2V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
|
|
0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, "SDE/Y_CBCR_H2V2_VENUS",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
|
|
0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
|
|
FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, "SDE/Y_CRCB_H2V2_VENUS",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
|
|
0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
|
|
|
|
{
|
|
FMT_YUV10_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010),
|
|
.description = "SDE/Y_CBCR_H2V2_P010",
|
|
.flag = 0,
|
|
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
|
|
.chroma_sample = SDE_MDP_CHROMA_420,
|
|
.unpack_count = 2,
|
|
.bpp = 2,
|
|
.frame_format = SDE_MDP_FMT_LINEAR,
|
|
.pixel_mode = SDE_MDP_PIXEL_10BIT,
|
|
.element = { C1_B_Cb, C2_R_Cr },
|
|
.unpack_tight = 0,
|
|
.unpack_align_msb = 1,
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE,
|
|
},
|
|
{
|
|
FMT_YUV10_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010_VENUS),
|
|
.description = "SDE/Y_CBCR_H2V2_P010_VENUS",
|
|
.flag = 0,
|
|
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
|
|
.chroma_sample = SDE_MDP_CHROMA_420,
|
|
.unpack_count = 2,
|
|
.bpp = 2,
|
|
.frame_format = SDE_MDP_FMT_LINEAR,
|
|
.pixel_mode = SDE_MDP_PIXEL_10BIT,
|
|
.element = { C1_B_Cb, C2_R_Cr },
|
|
.unpack_tight = 0,
|
|
.unpack_align_msb = 1,
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE,
|
|
},
|
|
{
|
|
FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_TP10),
|
|
.description = "SDE/Y_CBCR_H2V2_TP10",
|
|
.flag = 0,
|
|
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
|
|
.chroma_sample = SDE_MDP_CHROMA_420,
|
|
.unpack_count = 2,
|
|
.bpp = 2,
|
|
.frame_format = SDE_MDP_FMT_TILE_A5X,
|
|
.pixel_mode = SDE_MDP_PIXEL_10BIT,
|
|
.element = { C1_B_Cb, C2_R_Cr },
|
|
.unpack_tight = 1,
|
|
.unpack_align_msb = 0,
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE,
|
|
},
|
|
|
|
FMT_YUV_PLANR(SDE_PIX_FMT_Y_CB_CR_H2V2, "Y_CB_CR_H2V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, 0, C2_R_Cr, C1_B_Cb),
|
|
FMT_YUV_PLANR(SDE_PIX_FMT_Y_CR_CB_H2V2, "Y_CR_CB_H2V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, 0, C1_B_Cb, C2_R_Cr),
|
|
FMT_YUV_PLANR(SDE_PIX_FMT_Y_CR_CB_GH2V2, "SDE/Y_CR_CB_GH2V2",
|
|
SDE_MDP_FMT_LINEAR,
|
|
SDE_MDP_CHROMA_420, 0, C1_B_Cb, C2_R_Cr),
|
|
|
|
{
|
|
FMT_YUV_COMMON(SDE_PIX_FMT_YCBYCR_H2V1),
|
|
.description = "YCBYCR_H2V1",
|
|
.flag = 0,
|
|
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED,
|
|
.chroma_sample = SDE_MDP_CHROMA_H2V1,
|
|
.unpack_count = 4,
|
|
.bpp = 2,
|
|
.frame_format = SDE_MDP_FMT_LINEAR,
|
|
.pixel_mode = SDE_MDP_PIXEL_NORMAL,
|
|
.element = { C2_R_Cr, C0_G_Y, C1_B_Cb, C0_G_Y },
|
|
.is_ubwc = SDE_MDP_COMPRESS_NONE,
|
|
},
|
|
FMT_RGB_1555(SDE_PIX_FMT_RGBA_5551, "RGBA_5551", 1, 0,
|
|
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
|
|
FMT_RGB_1555(SDE_PIX_FMT_ARGB_1555, "ARGB_1555", 1, 0,
|
|
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
|
|
FMT_RGB_1555(SDE_PIX_FMT_ABGR_1555, "ABGR_1555", 1, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
|
|
FMT_RGB_1555(SDE_PIX_FMT_BGRA_5551, "BGRA_5551", 1, 0,
|
|
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
|
|
FMT_RGB_1555(SDE_PIX_FMT_BGRX_5551, "BGRX_5551", 0, 0,
|
|
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
|
|
FMT_RGB_1555(SDE_PIX_FMT_RGBX_5551, "RGBX_5551", 0, 0,
|
|
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
|
|
FMT_RGB_1555(SDE_PIX_FMT_XBGR_1555, "XBGR_1555", 0, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
|
|
FMT_RGB_1555(SDE_PIX_FMT_XRGB_1555, "XRGB_1555", 0, 0,
|
|
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
|
|
FMT_RGB_4444(SDE_PIX_FMT_RGBA_4444, "RGBA_4444", 1, 0,
|
|
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
|
|
FMT_RGB_4444(SDE_PIX_FMT_ARGB_4444, "ARGB_4444", 1, 0,
|
|
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
|
|
FMT_RGB_4444(SDE_PIX_FMT_BGRA_4444, "BGRA_4444", 1, 0,
|
|
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
|
|
FMT_RGB_4444(SDE_PIX_FMT_ABGR_4444, "ABGR_4444", 1, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
|
|
FMT_RGB_4444(SDE_PIX_FMT_RGBX_4444, "RGBX_4444", 0, 0,
|
|
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
|
|
FMT_RGB_4444(SDE_PIX_FMT_XRGB_4444, "XRGB_4444", 0, 0,
|
|
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
|
|
FMT_RGB_4444(SDE_PIX_FMT_BGRX_4444, "BGRX_4444", 0, 0,
|
|
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
|
|
FMT_RGB_4444(SDE_PIX_FMT_XBGR_4444, "XBGR_4444", 0, 0,
|
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102, "SDE/RGBA_1010102",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_RGBX_1010102, "SDE/RGBX_1010102",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_BGRA_1010102, "SDE/BGRA_1010102",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_BGRX_1010102, "SDE/BGRX_1010102",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_ARGB_2101010, "SDE/ARGB_2101010",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_XRGB_2101010, "SDE/XRGB_2101010",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_ABGR_2101010, "SDE/ABGR_2101010",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
FMT_RGB_1010102(SDE_PIX_FMT_XBGR_2101010, "SDE/XBGR_2101010",
|
|
SDE_MDP_FMT_LINEAR,
|
|
0, 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
|
|
SDE_MDP_COMPRESS_NONE),
|
|
};
|
|
|
|
/*
|
|
* sde_get_format_params - return format parameter of the given format
|
|
* @format: format to lookup
|
|
*/
|
|
struct sde_mdp_format_params *sde_get_format_params(u32 format)
|
|
{
|
|
struct sde_mdp_format_params *fmt = NULL;
|
|
int i;
|
|
bool fmt_found = false;
|
|
|
|
for (i = 0; i < ARRAY_SIZE(sde_mdp_format_map); i++) {
|
|
fmt = &sde_mdp_format_map[i];
|
|
if (format == fmt->format) {
|
|
fmt_found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!fmt_found) {
|
|
for (i = 0; i < ARRAY_SIZE(sde_mdp_format_ubwc_map); i++) {
|
|
fmt = &sde_mdp_format_ubwc_map[i].mdp_format;
|
|
if (format == fmt->format) {
|
|
fmt_found = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
/* If format not supported than return NULL */
|
|
if (!fmt_found)
|
|
fmt = NULL;
|
|
|
|
return fmt;
|
|
}
|
|
|
|
/*
|
|
* sde_rot_get_ubwc_micro_dim - return micro dimension of the given ubwc format
|
|
* @format: format to lookup
|
|
* @w: Pointer to returned width dimension
|
|
* @h: Pointer to returned height dimension
|
|
*/
|
|
int sde_rot_get_ubwc_micro_dim(u32 format, u16 *w, u16 *h)
|
|
{
|
|
struct sde_mdp_format_params_ubwc *fmt = NULL;
|
|
bool fmt_found = false;
|
|
int i;
|
|
|
|
for (i = 0; i < ARRAY_SIZE(sde_mdp_format_ubwc_map); i++) {
|
|
fmt = &sde_mdp_format_ubwc_map[i];
|
|
if (format == fmt->mdp_format.format) {
|
|
fmt_found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (!fmt_found)
|
|
return -EINVAL;
|
|
|
|
*w = fmt->micro.tile_width;
|
|
*h = fmt->micro.tile_height;
|
|
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* sde_rot_get_tilea5x_pixfmt - get base a5x tile format of given source format
|
|
* @src_pixfmt: source pixel format to be converted
|
|
* @dst_pixfmt: pointer to base a5x tile pixel format
|
|
* return: 0 if success; error code otherwise
|
|
*/
|
|
int sde_rot_get_base_tilea5x_pixfmt(u32 src_pixfmt, u32 *dst_pixfmt)
|
|
{
|
|
int rc = 0;
|
|
|
|
if (!dst_pixfmt) {
|
|
SDEROT_ERR("invalid parameters\n");
|
|
return -EINVAL;
|
|
}
|
|
|
|
switch (src_pixfmt) {
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2:
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_UBWC:
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_Y_CBCR_H2V2_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_Y_CRCB_H2V2:
|
|
case SDE_PIX_FMT_Y_CRCB_H2V2_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_Y_CRCB_H2V2_TILE;
|
|
break;
|
|
case V4L2_PIX_FMT_RGB565:
|
|
case SDE_PIX_FMT_RGB_565_UBWC:
|
|
case SDE_PIX_FMT_RGB_565_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_RGB_565_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_RGBA_8888:
|
|
case SDE_PIX_FMT_RGBA_8888_UBWC:
|
|
case SDE_PIX_FMT_RGBA_8888_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_RGBA_8888_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_RGBX_8888:
|
|
case SDE_PIX_FMT_RGBX_8888_UBWC:
|
|
case SDE_PIX_FMT_RGBX_8888_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_RGBX_8888_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_ARGB_8888:
|
|
case SDE_PIX_FMT_ARGB_8888_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_ARGB_8888_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_XRGB_8888:
|
|
case SDE_PIX_FMT_XRGB_8888_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_XRGB_8888_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_ABGR_8888:
|
|
case SDE_PIX_FMT_ABGR_8888_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_ABGR_8888_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_XBGR_8888:
|
|
case SDE_PIX_FMT_XBGR_8888_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_XBGR_8888_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_ARGB_2101010:
|
|
case SDE_PIX_FMT_ARGB_2101010_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_ARGB_2101010_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_XRGB_2101010:
|
|
case SDE_PIX_FMT_XRGB_2101010_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_XRGB_2101010_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_ABGR_2101010:
|
|
case SDE_PIX_FMT_ABGR_2101010_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_ABGR_2101010_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_XBGR_2101010:
|
|
case SDE_PIX_FMT_XBGR_2101010_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_XBGR_2101010_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_BGRA_1010102:
|
|
case SDE_PIX_FMT_BGRA_1010102_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_BGRA_1010102_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_BGRX_1010102:
|
|
case SDE_PIX_FMT_BGRX_1010102_TILE:
|
|
*dst_pixfmt = SDE_PIX_FMT_BGRX_1010102_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_P010:
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE:
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC:
|
|
*dst_pixfmt = SDE_PIX_FMT_Y_CBCR_H2V2_P010_TILE;
|
|
break;
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_TP10:
|
|
case SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC:
|
|
*dst_pixfmt = SDE_PIX_FMT_Y_CBCR_H2V2_TP10;
|
|
break;
|
|
default:
|
|
SDEROT_ERR("invalid src pixel format %c%c%c%c\n",
|
|
src_pixfmt >> 0, src_pixfmt >> 8,
|
|
src_pixfmt >> 16, src_pixfmt >> 24);
|
|
rc = -EINVAL;
|
|
break;
|
|
}
|
|
|
|
return rc;
|
|
}
|