aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/vivid/vivid-tpg.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/platform/vivid/vivid-tpg.c')
-rw-r--r--drivers/media/platform/vivid/vivid-tpg.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/platform/vivid/vivid-tpg.c b/drivers/media/platform/vivid/vivid-tpg.c
index fd28c6a5f8e9..0e2b8d4b8864 100644
--- a/drivers/media/platform/vivid/vivid-tpg.c
+++ b/drivers/media/platform/vivid/vivid-tpg.c
@@ -200,6 +200,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
200 case V4L2_PIX_FMT_RGB555X: 200 case V4L2_PIX_FMT_RGB555X:
201 case V4L2_PIX_FMT_XRGB555X: 201 case V4L2_PIX_FMT_XRGB555X:
202 case V4L2_PIX_FMT_ARGB555X: 202 case V4L2_PIX_FMT_ARGB555X:
203 case V4L2_PIX_FMT_BGR666:
203 case V4L2_PIX_FMT_RGB24: 204 case V4L2_PIX_FMT_RGB24:
204 case V4L2_PIX_FMT_BGR24: 205 case V4L2_PIX_FMT_BGR24:
205 case V4L2_PIX_FMT_RGB32: 206 case V4L2_PIX_FMT_RGB32:
@@ -299,6 +300,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
299 case V4L2_PIX_FMT_BGR24: 300 case V4L2_PIX_FMT_BGR24:
300 tpg->twopixelsize[0] = 2 * 3; 301 tpg->twopixelsize[0] = 2 * 3;
301 break; 302 break;
303 case V4L2_PIX_FMT_BGR666:
302 case V4L2_PIX_FMT_RGB32: 304 case V4L2_PIX_FMT_RGB32:
303 case V4L2_PIX_FMT_BGR32: 305 case V4L2_PIX_FMT_BGR32:
304 case V4L2_PIX_FMT_XRGB32: 306 case V4L2_PIX_FMT_XRGB32:
@@ -749,6 +751,11 @@ static void precalculate_color(struct tpg_data *tpg, int k)
749 g >>= 7; 751 g >>= 7;
750 b >>= 7; 752 b >>= 7;
751 break; 753 break;
754 case V4L2_PIX_FMT_BGR666:
755 r >>= 6;
756 g >>= 6;
757 b >>= 6;
758 break;
752 default: 759 default:
753 r >>= 4; 760 r >>= 4;
754 g >>= 4; 761 g >>= 4;
@@ -944,6 +951,12 @@ static void gen_twopix(struct tpg_data *tpg,
944 buf[0][offset + 1] = g_u; 951 buf[0][offset + 1] = g_u;
945 buf[0][offset + 2] = r_y; 952 buf[0][offset + 2] = r_y;
946 break; 953 break;
954 case V4L2_PIX_FMT_BGR666:
955 buf[0][offset] = (b_v << 2) | (g_u >> 4);
956 buf[0][offset + 1] = (g_u << 4) | (r_y >> 2);
957 buf[0][offset + 2] = r_y << 6;
958 buf[0][offset + 3] = 0;
959 break;
947 case V4L2_PIX_FMT_RGB32: 960 case V4L2_PIX_FMT_RGB32:
948 case V4L2_PIX_FMT_XRGB32: 961 case V4L2_PIX_FMT_XRGB32:
949 alpha = 0; 962 alpha = 0;