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

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

[media] dt3155v4l: support inputs VID0-3



The dt3155 together with the J1 breakout cable supports 4 inputs. Add
support for all inputs VID0 - VID3. Note that input VID0 is shared with
input J2.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 44a38dfb
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -370,9 +370,12 @@ static int dt3155_s_std(struct file *filp, void *p, v4l2_std_id norm)

static int dt3155_enum_input(struct file *filp, void *p, struct v4l2_input *input)
{
	if (input->index)
	if (input->index > 3)
		return -EINVAL;
	strcpy(input->name, "Coax in");
	if (input->index)
		snprintf(input->name, sizeof(input->name), "VID%d", input->index);
	else
		strlcpy(input->name, "J2/VID0", sizeof(input->name));
	input->type = V4L2_INPUT_TYPE_CAMERA;
	input->std = V4L2_STD_ALL;
	input->status = 0;
@@ -381,14 +384,21 @@ static int dt3155_enum_input(struct file *filp, void *p, struct v4l2_input *inpu

static int dt3155_g_input(struct file *filp, void *p, unsigned int *i)
{
	*i = 0;
	struct dt3155_priv *pd = video_drvdata(filp);

	*i = pd->input;
	return 0;
}

static int dt3155_s_input(struct file *filp, void *p, unsigned int i)
{
	if (i)
	struct dt3155_priv *pd = video_drvdata(filp);

	if (i > 3)
		return -EINVAL;
	pd->input = i;
	write_i2c_reg(pd->regs, AD_ADDR, AD_CMD_REG);
	write_i2c_reg(pd->regs, AD_CMD, (i << 6) | (i << 4) | SYNC_LVL_3);
	return 0;
}

+2 −0
Original line number Diff line number Diff line
@@ -168,6 +168,7 @@
 * @std:		input standard
 * @width:		frame width
 * @height:		frame height
 * @input:		current input
 * @sequence:		frame counter
 * @stats:		statistics structure
 * @regs:		local copy of mmio base register
@@ -186,6 +187,7 @@ struct dt3155_priv {
	spinlock_t lock;
	v4l2_std_id std;
	unsigned width, height;
	unsigned input;
	unsigned int sequence;
	void __iomem *regs;
	u8 csr2, config;