From: Hans Verkuil Date: Mon, 9 Jan 2006 17:25:43 +0000 (-0200) Subject: V4L/DVB (3254): Don't reprogram the video standard if it is unchanged. X-Git-Tag: v2.6.16-rc1~663^2~49 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30b54d50f6e2b8f5a4c8b5ade3d25a02612f8f51;p=linux-2.6 V4L/DVB (3254): 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 Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c index 3e4e5584c5..5d33d0922e 100644 --- a/drivers/media/video/saa7115.c +++ b/drivers/media/video/saa7115.c @@ -668,6 +668,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");