aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2012-09-05 09:38:10 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-10-01 16:12:51 -0400
commit30634e8e41d413b0084ba29f843361a1fd9fbdce (patch)
tree0712b67462e242c926502ff697beed75b6f078d6 /drivers/media/i2c
parent34a6b7d093d8fe738ada191b36648d00bc18b7eb (diff)
[media] sliced vbi: subdevs shouldn't clear the full v4l2_sliced_vbi_format struct
Various subdevs cleared the full v4l2_sliced_vbi_format struct, when only the service_set/lines fields should have been cleared. Due to this the io_size field was wrongly cleared to 0, causing a v4l2-compliance error. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/i2c')
-rw-r--r--drivers/media/i2c/cx25840/cx25840-vbi.c3
-rw-r--r--drivers/media/i2c/saa7115.c3
-rw-r--r--drivers/media/i2c/saa7127.c2
-rw-r--r--drivers/media/i2c/tvp5150.c2
4 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/i2c/cx25840/cx25840-vbi.c b/drivers/media/i2c/cx25840/cx25840-vbi.c
index 64a4004f8a97..c39e91dc1137 100644
--- a/drivers/media/i2c/cx25840/cx25840-vbi.c
+++ b/drivers/media/i2c/cx25840/cx25840-vbi.c
@@ -96,7 +96,8 @@ int cx25840_g_sliced_fmt(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_format *
96 int is_pal = !(state->std & V4L2_STD_525_60); 96 int is_pal = !(state->std & V4L2_STD_525_60);
97 int i; 97 int i;
98 98
99 memset(svbi, 0, sizeof(*svbi)); 99 memset(svbi->service_lines, 0, sizeof(svbi->service_lines));
100 svbi->service_set = 0;
100 /* we're done if raw VBI is active */ 101 /* we're done if raw VBI is active */
101 if ((cx25840_read(client, 0x404) & 0x10) == 0) 102 if ((cx25840_read(client, 0x404) & 0x10) == 0)
102 return 0; 103 return 0;
diff --git a/drivers/media/i2c/saa7115.c b/drivers/media/i2c/saa7115.c
index 2107336cd836..6b6788cd08f6 100644
--- a/drivers/media/i2c/saa7115.c
+++ b/drivers/media/i2c/saa7115.c
@@ -1066,7 +1066,8 @@ static int saa711x_g_sliced_fmt(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_f
1066 }; 1066 };
1067 int i; 1067 int i;
1068 1068
1069 memset(sliced, 0, sizeof(*sliced)); 1069 memset(sliced->service_lines, 0, sizeof(sliced->service_lines));
1070 sliced->service_set = 0;
1070 /* done if using raw VBI */ 1071 /* done if using raw VBI */
1071 if (saa711x_read(sd, R_80_GLOBAL_CNTL_1) & 0x10) 1072 if (saa711x_read(sd, R_80_GLOBAL_CNTL_1) & 0x10)
1072 return 0; 1073 return 0;
diff --git a/drivers/media/i2c/saa7127.c b/drivers/media/i2c/saa7127.c
index 8ecb6564a315..b745f68fbc92 100644
--- a/drivers/media/i2c/saa7127.c
+++ b/drivers/media/i2c/saa7127.c
@@ -625,7 +625,7 @@ static int saa7127_g_sliced_fmt(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_f
625{ 625{
626 struct saa7127_state *state = to_state(sd); 626 struct saa7127_state *state = to_state(sd);
627 627
628 memset(fmt, 0, sizeof(*fmt)); 628 memset(fmt->service_lines, 0, sizeof(fmt->service_lines));
629 if (state->vps_enable) 629 if (state->vps_enable)
630 fmt->service_lines[0][16] = V4L2_SLICED_VPS; 630 fmt->service_lines[0][16] = V4L2_SLICED_VPS;
631 if (state->wss_enable) 631 if (state->wss_enable)
diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
index b5b1792479d0..31104a960652 100644
--- a/drivers/media/i2c/tvp5150.c
+++ b/drivers/media/i2c/tvp5150.c
@@ -1020,7 +1020,7 @@ static int tvp5150_g_sliced_fmt(struct v4l2_subdev *sd, struct v4l2_sliced_vbi_f
1020{ 1020{
1021 int i, mask = 0; 1021 int i, mask = 0;
1022 1022
1023 memset(svbi, 0, sizeof(*svbi)); 1023 memset(svbi->service_lines, 0, sizeof(svbi->service_lines));
1024 1024
1025 for (i = 0; i <= 23; i++) { 1025 for (i = 0; i <= 23; i++) {
1026 svbi->service_lines[0][i] = 1026 svbi->service_lines[0][i] =