video: Add support for RGBA8888 format

Add support for RGBA8888 32bpp format where pixels are picked in
32-bit integers, where the colors are stored in memory such that
R is at lowest address, G after that, B after that, and A last.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/aa1de54b7d4ff46df6858f76d52634e0c5c71a4a.1684312924.git.michal.simek@amd.com
This commit is contained in:
Michal Simek 2023-05-17 10:42:07 +02:00
parent 497322436d
commit e9500ba9e0
2 changed files with 9 additions and 2 deletions

View file

@ -220,14 +220,20 @@ u32 video_index_to_colour(struct video_priv *priv, unsigned int idx)
break;
case VIDEO_BPP32:
if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
if (priv->format == VIDEO_X2R10G10B10)
switch (priv->format) {
case VIDEO_X2R10G10B10:
return (colours[idx].r << 22) |
(colours[idx].g << 12) |
(colours[idx].b << 2);
else
case VIDEO_RGBA8888:
return (colours[idx].r << 24) |
(colours[idx].g << 16) |
(colours[idx].b << 8) | 0xff;
default:
return (colours[idx].r << 16) |
(colours[idx].g << 8) |
(colours[idx].b << 0);
}
}
break;
default:

View file

@ -64,6 +64,7 @@ enum video_log2_bpp {
enum video_format {
VIDEO_UNKNOWN,
VIDEO_RGBA8888,
VIDEO_X8B8G8R8,
VIDEO_X8R8G8B8,
VIDEO_X2R10G10B10,