Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f890bc93 authored by Vishnuvardhan Prodduturi's avatar Vishnuvardhan Prodduturi Committed by Anusha Koduru
Browse files

msm: mdss: Support ARGB1555 and ARGB4444



Add support for  ARGB1555 and ARGB4444 formats in
mdp.

Change-Id: I6000316d177d9988eabcca8f43131e3a9f636961
Signed-off-by: default avatarVishnuvardhan Prodduturi <vproddut@codeaurora.org>
parent d4e34bfe
Loading
Loading
Loading
Loading
+44 −2
Original line number Diff line number Diff line
@@ -19,14 +19,16 @@
#include "mdss_mdp.h"

	/*
	 * number of bits for source component,
	 * 0 = 1 bit, 1 = 2 bits, 2 = 6 bits, 3 = 8 bits
	 * Value of enum choosen to fit the number of bits
	 * expected by the HW programming.
	 */
enum {
	COLOR_4BIT,
	COLOR_5BIT,
	COLOR_6BIT,
	COLOR_8BIT,
	COLOR_ALPHA_1BIT = 0,
	COLOR_ALPHA_4BIT = 1,
};

#define FMT_RGB_565(fmt, e0, e1, e2)				\
@@ -151,6 +153,42 @@ enum {
		.element = { (e0), (e1) }			\
	}

#define FMT_RGB_1555(fmt, alpha_en, e0, e1, e2, e3)		\
	{							\
		.format = (fmt),				\
		.fetch_planes = MDSS_MDP_PLANE_INTERLEAVED,	\
		.unpack_tight = 1,				\
		.unpack_align_msb = 0,				\
		.alpha_enable = (alpha_en),			\
		.unpack_count = 4,				\
		.bpp = 2,					\
		.element = { (e0), (e1), (e2), (e3) },		\
		.bits = {					\
			[C3_ALPHA] = COLOR_ALPHA_1BIT,		\
			[C2_R_Cr] = COLOR_5BIT,			\
			[C0_G_Y] = COLOR_5BIT,			\
			[C1_B_Cb] = COLOR_5BIT,			\
		},						\
	}

#define FMT_RGB_4444(fmt, alpha_en, e0, e1, e2, e3)		\
	{							\
		.format = (fmt),				\
		.fetch_planes = MDSS_MDP_PLANE_INTERLEAVED,	\
		.unpack_tight = 1,				\
		.unpack_align_msb = 0,				\
		.alpha_enable = (alpha_en),			\
		.unpack_count = 4,				\
		.bpp = 2,					\
		.element = { (e0), (e1), (e2), (e3) },		\
		.bits = {					\
			[C3_ALPHA] = COLOR_ALPHA_4BIT,		\
			[C2_R_Cr] = COLOR_4BIT,			\
			[C0_G_Y] = COLOR_4BIT,			\
			[C1_B_Cb] = COLOR_4BIT,			\
		},						\
	}

static struct mdss_mdp_format_params mdss_mdp_format_map[] = {
	FMT_RGB_565(MDP_RGB_565, C1_B_Cb, C0_G_Y, C2_R_Cr),
	FMT_RGB_565(MDP_BGR_565, C2_R_Cr, C0_G_Y, C1_B_Cb),
@@ -229,6 +267,10 @@ static struct mdss_mdp_format_params mdss_mdp_format_map[] = {
		.bpp = 2,
		.element = { C2_R_Cr, C0_G_Y, C1_B_Cb, C0_G_Y },
	},
	FMT_RGB_1555(MDP_RGBA_5551, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
	FMT_RGB_1555(MDP_ARGB_1555, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
	FMT_RGB_4444(MDP_RGBA_4444, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
	FMT_RGB_4444(MDP_ARGB_4444, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),

};
#endif
+4 −0
Original line number Diff line number Diff line
@@ -155,6 +155,10 @@ enum {
	MDP_YCBYCR_H2V1,  /* YCbYCr interleave */
	MDP_RGB_565_TILE,	  /* RGB 565 in tile format */
	MDP_BGR_565_TILE,	  /* BGR 565 in tile format */
	MDP_ARGB_1555,	/*ARGB 1555*/
	MDP_RGBA_5551,	/*RGBA 5551*/
	MDP_ARGB_4444,	/*ARGB 4444*/
	MDP_RGBA_4444,	/*RGBA 4444*/
	MDP_IMGTYPE_LIMIT,
	MDP_RGB_BORDERFILL,	/* border fill pipe */
	MDP_FB_FORMAT = MDP_IMGTYPE2_START,    /* framebuffer format */