summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/ipu-v3
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2015-08-04 11:21:04 -0400
committerPhilipp Zabel <p.zabel@pengutronix.de>2015-10-30 12:13:47 -0400
commit7d2e8a204aa04b83aca2beb5f1441262c3aa26c8 (patch)
treeabd7059f3cfb7296c6dea2a6c1ba7fa77f3d7da5 /drivers/gpu/ipu-v3
parent59d6b7189a968d627af37fc26a410dced0854b99 (diff)
gpu: ipu-v3: add support for ARGB4444 16-bit color format
This patch adds support for the ARGB4444 color format. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/gpu/ipu-v3')
-rw-r--r--drivers/gpu/ipu-v3/ipu-common.c1
-rw-r--r--drivers/gpu/ipu-v3/ipu-cpmem.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
index c0b19160a946..ba47b30d28fa 100644
--- a/drivers/gpu/ipu-v3/ipu-common.c
+++ b/drivers/gpu/ipu-v3/ipu-common.c
@@ -65,6 +65,7 @@ enum ipu_color_space ipu_drm_fourcc_to_colorspace(u32 drm_fourcc)
65 case DRM_FORMAT_BGR565: 65 case DRM_FORMAT_BGR565:
66 case DRM_FORMAT_RGB888: 66 case DRM_FORMAT_RGB888:
67 case DRM_FORMAT_BGR888: 67 case DRM_FORMAT_BGR888:
68 case DRM_FORMAT_ARGB4444:
68 case DRM_FORMAT_XRGB8888: 69 case DRM_FORMAT_XRGB8888:
69 case DRM_FORMAT_XBGR8888: 70 case DRM_FORMAT_XBGR8888:
70 case DRM_FORMAT_RGBX8888: 71 case DRM_FORMAT_RGBX8888:
diff --git a/drivers/gpu/ipu-v3/ipu-cpmem.c b/drivers/gpu/ipu-v3/ipu-cpmem.c
index 0e6b8687c61a..63eb16bf2cf0 100644
--- a/drivers/gpu/ipu-v3/ipu-cpmem.c
+++ b/drivers/gpu/ipu-v3/ipu-cpmem.c
@@ -524,6 +524,14 @@ static const struct ipu_rgb def_argb_16 = {
524 .bits_per_pixel = 16, 524 .bits_per_pixel = 16,
525}; 525};
526 526
527static const struct ipu_rgb def_argb_16_4444 = {
528 .red = { .offset = 8, .length = 4, },
529 .green = { .offset = 4, .length = 4, },
530 .blue = { .offset = 0, .length = 4, },
531 .transp = { .offset = 12, .length = 4, },
532 .bits_per_pixel = 16,
533};
534
527static const struct ipu_rgb def_abgr_16 = { 535static const struct ipu_rgb def_abgr_16 = {
528 .red = { .offset = 0, .length = 5, }, 536 .red = { .offset = 0, .length = 5, },
529 .green = { .offset = 5, .length = 5, }, 537 .green = { .offset = 5, .length = 5, },
@@ -649,6 +657,9 @@ int ipu_cpmem_set_fmt(struct ipuv3_channel *ch, u32 drm_fourcc)
649 case DRM_FORMAT_BGRA5551: 657 case DRM_FORMAT_BGRA5551:
650 ipu_cpmem_set_format_rgb(ch, &def_bgra_16); 658 ipu_cpmem_set_format_rgb(ch, &def_bgra_16);
651 break; 659 break;
660 case DRM_FORMAT_ARGB4444:
661 ipu_cpmem_set_format_rgb(ch, &def_argb_16_4444);
662 break;
652 default: 663 default:
653 return -EINVAL; 664 return -EINVAL;
654 } 665 }