Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b89fdb5e authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] v4l2-tpg: add Y10 and Y12 support



Support the 10 and 12 bit luma formats.

Signed-off-by: default avatarHans Verkuil <hansverk@cisco.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 5dfbf6c5
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -238,6 +238,8 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
		tpg->color_enc = TGP_COLOR_ENC_RGB;
		break;
	case V4L2_PIX_FMT_GREY:
	case V4L2_PIX_FMT_Y10:
	case V4L2_PIX_FMT_Y12:
	case V4L2_PIX_FMT_Y16:
	case V4L2_PIX_FMT_Y16_BE:
		tpg->color_enc = TGP_COLOR_ENC_LUMA;
@@ -352,6 +354,8 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
	case V4L2_PIX_FMT_YUV444:
	case V4L2_PIX_FMT_YUV555:
	case V4L2_PIX_FMT_YUV565:
	case V4L2_PIX_FMT_Y10:
	case V4L2_PIX_FMT_Y12:
	case V4L2_PIX_FMT_Y16:
	case V4L2_PIX_FMT_Y16_BE:
		tpg->twopixelsize[0] = 2 * 2;
@@ -1056,6 +1060,14 @@ static void gen_twopix(struct tpg_data *tpg,
	case V4L2_PIX_FMT_GREY:
		buf[0][offset] = r_y_h;
		break;
	case V4L2_PIX_FMT_Y10:
		buf[0][offset] = (r_y_h << 2) & 0xff;
		buf[0][offset+1] = r_y_h >> 6;
		break;
	case V4L2_PIX_FMT_Y12:
		buf[0][offset] = (r_y_h << 4) & 0xff;
		buf[0][offset+1] = r_y_h >> 4;
		break;
	case V4L2_PIX_FMT_Y16:
		/*
		 * Ideally both bytes should be set to r_y_h, but then you won't