gpu: ipu-v3: add support for ARGB4444 16-bit color format
authorLucas Stach <l.stach@pengutronix.de>
Tue, 4 Aug 2015 15:21:04 +0000 (17:21 +0200)
committerPhilipp Zabel <p.zabel@pengutronix.de>
Fri, 30 Oct 2015 16:13:47 +0000 (17:13 +0100)
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>
drivers/gpu/ipu-v3/ipu-common.c
drivers/gpu/ipu-v3/ipu-cpmem.c

index c0b19160a94671dc68bb551e81a2577e37483386..ba47b30d28fad4f3d187393a44a17bd9605f6ad4 100644 (file)
@@ -65,6 +65,7 @@ enum ipu_color_space ipu_drm_fourcc_to_colorspace(u32 drm_fourcc)
        case DRM_FORMAT_BGR565:
        case DRM_FORMAT_RGB888:
        case DRM_FORMAT_BGR888:
+       case DRM_FORMAT_ARGB4444:
        case DRM_FORMAT_XRGB8888:
        case DRM_FORMAT_XBGR8888:
        case DRM_FORMAT_RGBX8888:
index 0e6b8687c61a924c865a85df6341c346e3d911fc..63eb16bf2cf0a886aec1b3fc3967daea8a12fb95 100644 (file)
@@ -524,6 +524,14 @@ static const struct ipu_rgb def_argb_16 = {
        .bits_per_pixel = 16,
 };
 
+static const struct ipu_rgb def_argb_16_4444 = {
+       .red    = { .offset =  8, .length = 4, },
+       .green  = { .offset =  4, .length = 4, },
+       .blue   = { .offset =  0, .length = 4, },
+       .transp = { .offset = 12, .length = 4, },
+       .bits_per_pixel = 16,
+};
+
 static const struct ipu_rgb def_abgr_16 = {
        .red    = { .offset =  0, .length = 5, },
        .green  = { .offset =  5, .length = 5, },
@@ -649,6 +657,9 @@ int ipu_cpmem_set_fmt(struct ipuv3_channel *ch, u32 drm_fourcc)
        case DRM_FORMAT_BGRA5551:
                ipu_cpmem_set_format_rgb(ch, &def_bgra_16);
                break;
+       case DRM_FORMAT_ARGB4444:
+               ipu_cpmem_set_format_rgb(ch, &def_argb_16_4444);
+               break;
        default:
                return -EINVAL;
        }