mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
video: Add 30bpp support
Add support for 30bpp mode where pixels are picked in 32-bit integers but use 10 bits instead of 8 bits for each component. Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
This commit is contained in:
parent
94e922c76a
commit
0efe41ca15
2 changed files with 17 additions and 3 deletions
|
@ -155,9 +155,14 @@ u32 vid_console_color(struct video_priv *priv, unsigned int idx)
|
|||
break;
|
||||
case VIDEO_BPP32:
|
||||
if (CONFIG_IS_ENABLED(VIDEO_BPP32)) {
|
||||
return (colors[idx].r << 16) |
|
||||
(colors[idx].g << 8) |
|
||||
(colors[idx].b << 0);
|
||||
if (priv->format == VIDEO_X2R10G10B10)
|
||||
return (colors[idx].r << 22) |
|
||||
(colors[idx].g << 12) |
|
||||
(colors[idx].b << 2);
|
||||
else
|
||||
return (colors[idx].r << 16) |
|
||||
(colors[idx].g << 8) |
|
||||
(colors[idx].b << 0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -64,6 +64,13 @@ enum video_log2_bpp {
|
|||
|
||||
#define VNBITS(bpix) (1 << (bpix))
|
||||
|
||||
enum video_format {
|
||||
VIDEO_UNKNOWN,
|
||||
VIDEO_X8B8G8R8,
|
||||
VIDEO_X8R8G8B8,
|
||||
VIDEO_X2R10G10B10,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct video_priv - Device information used by the video uclass
|
||||
*
|
||||
|
@ -71,6 +78,7 @@ enum video_log2_bpp {
|
|||
* @ysize: Number of pixels rows (e.g.. 768)
|
||||
* @rot: Display rotation (0=none, 1=90 degrees clockwise, etc.)
|
||||
* @bpix: Encoded bits per pixel (enum video_log2_bpp)
|
||||
* @format: Pixel format (enum video_format)
|
||||
* @vidconsole_drv_name: Driver to use for the text console, NULL to
|
||||
* select automatically
|
||||
* @font_size: Font size in pixels (0 to use a default value)
|
||||
|
@ -95,6 +103,7 @@ struct video_priv {
|
|||
ushort ysize;
|
||||
ushort rot;
|
||||
enum video_log2_bpp bpix;
|
||||
enum video_format format;
|
||||
const char *vidconsole_drv_name;
|
||||
int font_size;
|
||||
|
||||
|
|
Loading…
Reference in a new issue