Skip to content

Commit

Permalink
[media] cx231xx: Provide signal lock status in G_INPUT
Browse files Browse the repository at this point in the history
Make use of the signal state registers to properly populate the signal lock
registers in the cx231xx driver.

This allows applications to know whether there is a signal present even in
devices which lack a tuner (since such apps typically won't call G_TUNER if
no tuner is present).

[mchehab@redhat.com: Fix CodingStyle: don't use {} for one-line if's]
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Devin Heitmueller authored and Mauro Carvalho Chehab committed Jul 27, 2011
1 parent 44ecf1d commit de99d53
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion drivers/media/video/cx231xx/cx231xx-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1179,7 +1179,8 @@ static int vidioc_enum_input(struct file *file, void *priv,
{
struct cx231xx_fh *fh = priv;
struct cx231xx *dev = fh->dev;
unsigned int n;
u32 gen_stat;
unsigned int ret, n;

n = i->index;
if (n >= MAX_CX231XX_INPUT)
Expand All @@ -1198,6 +1199,18 @@ static int vidioc_enum_input(struct file *file, void *priv,

i->std = dev->vdev->tvnorms;

/* If they are asking about the active input, read signal status */
if (n == dev->video_input) {
ret = cx231xx_read_i2c_data(dev, VID_BLK_I2C_ADDRESS,
GEN_STAT, 2, &gen_stat, 4);
if (ret > 0) {
if ((gen_stat & FLD_VPRES) == 0x00)
i->status |= V4L2_IN_ST_NO_SIGNAL;
if ((gen_stat & FLD_HLOCK) == 0x00)
i->status |= V4L2_IN_ST_NO_H_LOCK;
}
}

return 0;
}

Expand Down

0 comments on commit de99d53

Please sign in to comment.