[media] dt3155v4l: support inputs VID0-3
authorHans Verkuil <hans.verkuil@cisco.com>
Sat, 25 Apr 2015 15:19:02 +0000 (12:19 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 1 May 2015 11:24:44 +0000 (08:24 -0300)
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>
drivers/staging/media/dt3155v4l/dt3155v4l.c
drivers/staging/media/dt3155v4l/dt3155v4l.h

index 450728f7ff838e112ed2fad55fabf0bb880de25c..43c9e0f97876e45649d20dcad8c0bfa96f95720b 100644 (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;
 }
 
index 75c7281efb03b7b7c3a94f8fc116fa9a8f106c1d..bcf7b5ef75e691d3d1194980d65d174396216d8d 100644 (file)
  * @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;