From 5b7c947ca6cf56d99e7f9191c3efbe316d4463d1 Mon Sep 17 00:00:00 2001 From: Steven Toth Date: Fri, 6 Jan 2012 11:54:05 -0300 Subject: [PATCH] --- yaml --- r: 285800 b: refs/heads/master c: a21df45df0c41f3eb7d0ec6676c7d14b20842bc2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/cx25840/cx25840-core.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f57a37d60fb1..4c8be0ab3832 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0963119fca6ad250146fd7d27eb90f205e188beb +refs/heads/master: a21df45df0c41f3eb7d0ec6676c7d14b20842bc2 diff --git a/trunk/drivers/media/video/cx25840/cx25840-core.c b/trunk/drivers/media/video/cx25840/cx25840-core.c index ad299668c374..05247d4c340a 100644 --- a/trunk/drivers/media/video/cx25840/cx25840-core.c +++ b/trunk/drivers/media/video/cx25840/cx25840-core.c @@ -1741,6 +1741,21 @@ static int cx25840_g_std(struct v4l2_subdev *sd, v4l2_std_id *std) return 0; } +static int cx25840_g_input_status(struct v4l2_subdev *sd, u32 *status) +{ + struct i2c_client *client = v4l2_get_subdevdata(sd); + + /* A limited function that checks for signal status and returns + * the state. + */ + + /* Check for status of Horizontal lock (SRC lock isn't reliable) */ + if ((cx25840_read4(client, 0x40c) & 0x00010000) == 0) + *status |= V4L2_IN_ST_NO_SIGNAL; + + return 0; +} + static int cx25840_s_std(struct v4l2_subdev *sd, v4l2_std_id std) { struct cx25840_state *state = to_state(sd); @@ -5037,6 +5052,7 @@ static const struct v4l2_subdev_video_ops cx25840_video_ops = { .s_routing = cx25840_s_video_routing, .s_mbus_fmt = cx25840_s_mbus_fmt, .s_stream = cx25840_s_stream, + .g_input_status = cx25840_g_input_status, }; static const struct v4l2_subdev_vbi_ops cx25840_vbi_ops = {