summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/saa7115.c
diff options
context:
space:
mode:
authorHans Verkuil <devnull@localhost>2005-12-29 17:49:47 +0000
committerHans Verkuil <devnull@localhost>2005-12-29 17:49:47 +0000
commit27e2b95a26c4420606c083db5fc52d1d7ea30401 (patch)
treec42a26b5e6a77446806b0ea46ec5396ef40930b9 /linux/drivers/media/video/saa7115.c
parent91795dc6bc0fd7be21f071d15026c74ebd396794 (diff)
downloadmediapointer-dvb-s2-27e2b95a26c4420606c083db5fc52d1d7ea30401.tar.gz
mediapointer-dvb-s2-27e2b95a26c4420606c083db5fc52d1d7ea30401.tar.bz2
Don't reprogram the video standard if it is unchanged.
Don't reprogram the video standard if the new standard equals the old standard. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux/drivers/media/video/saa7115.c')
-rw-r--r--linux/drivers/media/video/saa7115.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/linux/drivers/media/video/saa7115.c b/linux/drivers/media/video/saa7115.c
index c4e203715..c06997b00 100644
--- a/linux/drivers/media/video/saa7115.c
+++ b/linux/drivers/media/video/saa7115.c
@@ -678,6 +678,16 @@ static void saa7115_set_v4lstd(struct i2c_client *client, v4l2_std_id std)
struct saa7115_state *state = i2c_get_clientdata(client);
int taskb = saa7115_read(client, 0x80) & 0x10;
+ /* Prevent unnecessary standard changes. During a standard
+ change the I-Port is temporarily disabled. Any devices
+ reading from that port can get confused.
+ Note that VIDIOC_S_STD is also used to switch from
+ radio to TV mode, so if a VIDIOC_S_STD is broadcast to
+ all I2C devices then you do not want to have an unwanted
+ side-effect here. */
+ if (std == state->std)
+ return;
+
// This works for NTSC-M, SECAM-L and the 50Hz PAL variants.
if (std & V4L2_STD_525_60) {
saa7115_dbg("decoder set standard 60 Hz\n");