summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2015-08-06 10:54:36 +0200
committerLucas Stach <l.stach@pengutronix.de>2015-08-06 10:55:28 +0200
commit59029b838dd672ee7f32aa5a83459af7a3c8fc88 (patch)
tree9e23b34f8219d92b78b2fe0719da80e85aad76f6
parente85953f1e06f10ab0e7507df58a9f52679ea8812 (diff)
downloadkmsfbwrap-59029b838dd672ee7f32aa5a83459af7a3c8fc88.tar.gz
kmsfbwrap-59029b838dd672ee7f32aa5a83459af7a3c8fc88.tar.xz
Add support for ARGB4444 framebuffer format
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
-rw-r--r--src/bgi.c10
-rw-r--r--src/kmsfb-manage.c4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/bgi.c b/src/bgi.c
index d4fccbf..b1a571c 100644
--- a/src/bgi.c
+++ b/src/bgi.c
@@ -467,6 +467,16 @@ int bgi_init(struct kms_fb *fb)
fb->fb_var.blue.offset = 0;
fb->fb_var.blue.length = 5;
break;
+ case DRM_FORMAT_ARGB4444:
+ fb->fb_var.transp.offset = 12;
+ fb->fb_var.transp.length = 4;
+ fb->fb_var.red.offset = 8;
+ fb->fb_var.red.length = 4;
+ fb->fb_var.green.offset = 4;
+ fb->fb_var.green.length = 4;
+ fb->fb_var.blue.offset = 0;
+ fb->fb_var.blue.length = 4;
+ break;
case DRM_FORMAT_RGB888:
case DRM_FORMAT_RGB888_A8:
fb->fb_var.transp.offset = 0;
diff --git a/src/kmsfb-manage.c b/src/kmsfb-manage.c
index a443a2d..9d28e52 100644
--- a/src/kmsfb-manage.c
+++ b/src/kmsfb-manage.c
@@ -187,6 +187,8 @@ static int kms_data_val_set(struct kms_data *kd, const char *key, const char *va
kd->format = DRM_FORMAT_RGB888_A8;
else if (!strcasecmp(value, "bgr888_a8"))
kd->format = DRM_FORMAT_BGR888_A8;
+ else if (!strcasecmp(value, "argb4444"))
+ kd->format = DRM_FORMAT_ARGB4444;
else if (!strcasecmp(value, "rgb565"))
kd->format = DRM_FORMAT_RGB565;
else if (!strcasecmp(value, "bgr565"))
@@ -941,6 +943,7 @@ static int create_drm_fbs(struct kms_fb *kms_fb)
pitches[1] = (kms_fb->pitch + 3) / 4;
offsets[1] = kms_fb->pitch * kms_fb->yres;
break;
+ case DRM_FORMAT_ARGB4444:
case DRM_FORMAT_ARGB1555:
case DRM_FORMAT_RGB565:
case DRM_FORMAT_BGR565:
@@ -1320,6 +1323,7 @@ static int fb_create(struct drm_resource *res, int fd, const char *cmd)
case DRM_FORMAT_ARGB1555:
case DRM_FORMAT_BGR565_A8:
case DRM_FORMAT_RGB565_A8:
+ case DRM_FORMAT_ARGB4444:
kd.bpp = 16;
break;
case DRM_FORMAT_RGB888: