[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: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Hans Verkuil 2015-04-25 12:19:02 -03:00 committed by Mauro Carvalho Chehab
parent 44a38dfb6a
commit c34b7ef551
2 changed files with 16 additions and 4 deletions

View File

@ -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;
}

View File

@ -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;