drm/msm/sde: fix color component order in sde
SDE drm driver should support the default color component order instead of operating system specific order. For opensource compositor; it will use default color component order while android compositors will take care of reversing the color component order. Change-Id: I61b953ce892834453e92a8c2cfdcb427456966bb Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
This commit is contained in:
parent
1ce0cb61aa
commit
04a9528cbb
2 changed files with 28 additions and 28 deletions
|
@ -300,49 +300,49 @@ static const struct sde_format sde_format_map[] = {
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(BGRA1010102,
|
INTERLEAVED_RGB_FMT(BGRA1010102,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4,
|
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4,
|
||||||
true, 4, SDE_FORMAT_FLAG_DX,
|
true, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(RGBA1010102,
|
INTERLEAVED_RGB_FMT(RGBA1010102,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4,
|
||||||
true, 4, SDE_FORMAT_FLAG_DX,
|
true, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(ABGR2101010,
|
INTERLEAVED_RGB_FMT(ABGR2101010,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
||||||
true, 4, SDE_FORMAT_FLAG_DX,
|
true, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(ARGB2101010,
|
INTERLEAVED_RGB_FMT(ARGB2101010,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4,
|
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4,
|
||||||
true, 4, SDE_FORMAT_FLAG_DX,
|
true, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(XRGB2101010,
|
INTERLEAVED_RGB_FMT(XRGB2101010,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4,
|
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4,
|
||||||
false, 4, SDE_FORMAT_FLAG_DX,
|
false, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(BGRX1010102,
|
INTERLEAVED_RGB_FMT(BGRX1010102,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, 4,
|
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, 4,
|
||||||
false, 4, SDE_FORMAT_FLAG_DX,
|
false, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(XBGR2101010,
|
INTERLEAVED_RGB_FMT(XBGR2101010,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
||||||
false, 4, SDE_FORMAT_FLAG_DX,
|
false, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(RGBX1010102,
|
INTERLEAVED_RGB_FMT(RGBX1010102,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, 4,
|
||||||
false, 4, SDE_FORMAT_FLAG_DX,
|
false, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_LINEAR, 1),
|
SDE_FETCH_LINEAR, 1),
|
||||||
|
|
||||||
|
@ -414,31 +414,31 @@ static const struct sde_format sde_format_map[] = {
|
||||||
* the data will be passed by user-space.
|
* the data will be passed by user-space.
|
||||||
*/
|
*/
|
||||||
static const struct sde_format sde_format_map_ubwc[] = {
|
static const struct sde_format sde_format_map_ubwc[] = {
|
||||||
INTERLEAVED_RGB_FMT(RGB565,
|
INTERLEAVED_RGB_FMT(BGR565,
|
||||||
0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
|
0, COLOR_5BIT, COLOR_6BIT, COLOR_5BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, 0, 3,
|
||||||
false, 2, 0,
|
false, 2, 0,
|
||||||
SDE_FETCH_UBWC, 2),
|
SDE_FETCH_UBWC, 2),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(RGBA8888,
|
INTERLEAVED_RGB_FMT(ABGR8888,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
||||||
true, 4, 0,
|
true, 4, 0,
|
||||||
SDE_FETCH_UBWC, 2),
|
SDE_FETCH_UBWC, 2),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(RGBX8888,
|
INTERLEAVED_RGB_FMT(XBGR8888,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
||||||
false, 4, 0,
|
false, 4, 0,
|
||||||
SDE_FETCH_UBWC, 2),
|
SDE_FETCH_UBWC, 2),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(RGBA1010102,
|
INTERLEAVED_RGB_FMT(ABGR2101010,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
||||||
true, 4, SDE_FORMAT_FLAG_DX,
|
true, 4, SDE_FORMAT_FLAG_DX,
|
||||||
SDE_FETCH_UBWC, 2),
|
SDE_FETCH_UBWC, 2),
|
||||||
|
|
||||||
INTERLEAVED_RGB_FMT(RGBX1010102,
|
INTERLEAVED_RGB_FMT(XBGR2101010,
|
||||||
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
COLOR_8BIT, COLOR_8BIT, COLOR_8BIT, COLOR_8BIT,
|
||||||
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, 4,
|
||||||
true, 4, SDE_FORMAT_FLAG_DX,
|
true, 4, SDE_FORMAT_FLAG_DX,
|
||||||
|
@ -509,11 +509,11 @@ static void _sde_get_v_h_subsample_rate(
|
||||||
static int _sde_format_get_media_color_ubwc(const struct sde_format *fmt)
|
static int _sde_format_get_media_color_ubwc(const struct sde_format *fmt)
|
||||||
{
|
{
|
||||||
static const struct sde_media_color_map sde_media_ubwc_map[] = {
|
static const struct sde_media_color_map sde_media_ubwc_map[] = {
|
||||||
{DRM_FORMAT_RGBA8888, COLOR_FMT_RGBA8888_UBWC},
|
{DRM_FORMAT_ABGR8888, COLOR_FMT_RGBA8888_UBWC},
|
||||||
{DRM_FORMAT_RGBX8888, COLOR_FMT_RGBA8888_UBWC},
|
{DRM_FORMAT_XBGR8888, COLOR_FMT_RGBA8888_UBWC},
|
||||||
{DRM_FORMAT_RGBA1010102, COLOR_FMT_RGBA1010102_UBWC},
|
{DRM_FORMAT_ABGR2101010, COLOR_FMT_RGBA1010102_UBWC},
|
||||||
{DRM_FORMAT_RGBX1010102, COLOR_FMT_RGBA1010102_UBWC},
|
{DRM_FORMAT_XBGR2101010, COLOR_FMT_RGBA1010102_UBWC},
|
||||||
{DRM_FORMAT_RGB565, COLOR_FMT_RGB565_UBWC},
|
{DRM_FORMAT_BGR565, COLOR_FMT_RGB565_UBWC},
|
||||||
};
|
};
|
||||||
int color_fmt = -1;
|
int color_fmt = -1;
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 and
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -16,17 +16,17 @@ static const struct sde_format_extended plane_formats[] = {
|
||||||
{DRM_FORMAT_ARGB8888, 0},
|
{DRM_FORMAT_ARGB8888, 0},
|
||||||
{DRM_FORMAT_ABGR8888, 0},
|
{DRM_FORMAT_ABGR8888, 0},
|
||||||
{DRM_FORMAT_RGBA8888, 0},
|
{DRM_FORMAT_RGBA8888, 0},
|
||||||
{DRM_FORMAT_RGBA8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_BGRA8888, 0},
|
{DRM_FORMAT_BGRA8888, 0},
|
||||||
{DRM_FORMAT_XRGB8888, 0},
|
{DRM_FORMAT_XRGB8888, 0},
|
||||||
{DRM_FORMAT_RGBX8888, 0},
|
{DRM_FORMAT_RGBX8888, 0},
|
||||||
{DRM_FORMAT_BGRX8888, 0},
|
{DRM_FORMAT_BGRX8888, 0},
|
||||||
{DRM_FORMAT_XBGR8888, 0},
|
{DRM_FORMAT_XBGR8888, 0},
|
||||||
{DRM_FORMAT_RGBX8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_RGB888, 0},
|
{DRM_FORMAT_RGB888, 0},
|
||||||
{DRM_FORMAT_BGR888, 0},
|
{DRM_FORMAT_BGR888, 0},
|
||||||
{DRM_FORMAT_RGB565, 0},
|
{DRM_FORMAT_RGB565, 0},
|
||||||
{DRM_FORMAT_RGB565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_BGR565, 0},
|
{DRM_FORMAT_BGR565, 0},
|
||||||
{DRM_FORMAT_ARGB1555, 0},
|
{DRM_FORMAT_ARGB1555, 0},
|
||||||
{DRM_FORMAT_ABGR1555, 0},
|
{DRM_FORMAT_ABGR1555, 0},
|
||||||
|
@ -52,16 +52,16 @@ static const struct sde_format_extended plane_formats_yuv[] = {
|
||||||
{DRM_FORMAT_ABGR8888, 0},
|
{DRM_FORMAT_ABGR8888, 0},
|
||||||
{DRM_FORMAT_RGBA8888, 0},
|
{DRM_FORMAT_RGBA8888, 0},
|
||||||
{DRM_FORMAT_BGRX8888, 0},
|
{DRM_FORMAT_BGRX8888, 0},
|
||||||
{DRM_FORMAT_RGBA8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_BGRA8888, 0},
|
{DRM_FORMAT_BGRA8888, 0},
|
||||||
{DRM_FORMAT_XRGB8888, 0},
|
{DRM_FORMAT_XRGB8888, 0},
|
||||||
{DRM_FORMAT_XBGR8888, 0},
|
{DRM_FORMAT_XBGR8888, 0},
|
||||||
{DRM_FORMAT_RGBX8888, 0},
|
{DRM_FORMAT_RGBX8888, 0},
|
||||||
{DRM_FORMAT_RGBX8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_RGB888, 0},
|
{DRM_FORMAT_RGB888, 0},
|
||||||
{DRM_FORMAT_BGR888, 0},
|
{DRM_FORMAT_BGR888, 0},
|
||||||
{DRM_FORMAT_RGB565, 0},
|
{DRM_FORMAT_RGB565, 0},
|
||||||
{DRM_FORMAT_RGB565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_BGR565, 0},
|
{DRM_FORMAT_BGR565, 0},
|
||||||
{DRM_FORMAT_ARGB1555, 0},
|
{DRM_FORMAT_ARGB1555, 0},
|
||||||
{DRM_FORMAT_ABGR1555, 0},
|
{DRM_FORMAT_ABGR1555, 0},
|
||||||
|
@ -113,14 +113,14 @@ static const struct sde_format_extended cursor_formats[] = {
|
||||||
|
|
||||||
static const struct sde_format_extended wb2_formats[] = {
|
static const struct sde_format_extended wb2_formats[] = {
|
||||||
{DRM_FORMAT_RGB565, 0},
|
{DRM_FORMAT_RGB565, 0},
|
||||||
{DRM_FORMAT_RGB565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_RGB888, 0},
|
{DRM_FORMAT_RGB888, 0},
|
||||||
{DRM_FORMAT_ARGB8888, 0},
|
{DRM_FORMAT_ARGB8888, 0},
|
||||||
{DRM_FORMAT_RGBA8888, 0},
|
{DRM_FORMAT_RGBA8888, 0},
|
||||||
{DRM_FORMAT_RGBA8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_XRGB8888, 0},
|
{DRM_FORMAT_XRGB8888, 0},
|
||||||
{DRM_FORMAT_RGBX8888, 0},
|
{DRM_FORMAT_RGBX8888, 0},
|
||||||
{DRM_FORMAT_RGBX8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
{DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
|
||||||
{DRM_FORMAT_ARGB1555, 0},
|
{DRM_FORMAT_ARGB1555, 0},
|
||||||
{DRM_FORMAT_RGBA5551, 0},
|
{DRM_FORMAT_RGBA5551, 0},
|
||||||
{DRM_FORMAT_XRGB1555, 0},
|
{DRM_FORMAT_XRGB1555, 0},
|
||||||
|
|
Loading…
Add table
Reference in a new issue