aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@yandex.ru>2005-11-09 00:36:50 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-09 10:56:12 -0500
commit70b6934a6c6b5f242a42978f3c5e4f45d476dddb (patch)
tree4dc11b5d2936953cf13ea335c6c56845dd26b991
parent058afaf80932445fb33f957d29758479a65932ce (diff)
[PATCH] v4l: 691: set if of tda8275 according to tv norm
- Set IF of tda8275 according to tv norm. Signed-off-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/media/video/tda8290.c21
-rw-r--r--include/media/tuner.h1
2 files changed, 15 insertions, 7 deletions
diff --git a/drivers/media/video/tda8290.c b/drivers/media/video/tda8290.c
index 61268f8a9eec..1e2acc4abbe6 100644
--- a/drivers/media/video/tda8290.c
+++ b/drivers/media/video/tda8290.c
@@ -181,18 +181,25 @@ static void set_audio(struct tuner *t)
181{ 181{
182 t->i2c_easy_mode[0] = 0x01; 182 t->i2c_easy_mode[0] = 0x01;
183 183
184 if (t->std & V4L2_STD_MN) 184 if (t->std & V4L2_STD_MN) {
185 t->sgIF = 736;
185 t->i2c_easy_mode[1] = 0x01; 186 t->i2c_easy_mode[1] = 0x01;
186 else if (t->std & V4L2_STD_B) 187 } else if (t->std & V4L2_STD_B) {
188 t->sgIF = 864;
187 t->i2c_easy_mode[1] = 0x02; 189 t->i2c_easy_mode[1] = 0x02;
188 else if (t->std & V4L2_STD_GH) 190 } else if (t->std & V4L2_STD_GH) {
191 t->sgIF = 992;
189 t->i2c_easy_mode[1] = 0x04; 192 t->i2c_easy_mode[1] = 0x04;
190 else if (t->std & V4L2_STD_PAL_I) 193 } else if (t->std & V4L2_STD_PAL_I) {
194 t->sgIF = 992;
191 t->i2c_easy_mode[1] = 0x08; 195 t->i2c_easy_mode[1] = 0x08;
192 else if (t->std & V4L2_STD_DK) 196 } else if (t->std & V4L2_STD_DK) {
197 t->sgIF = 992;
193 t->i2c_easy_mode[1] = 0x10; 198 t->i2c_easy_mode[1] = 0x10;
194 else if (t->std & V4L2_STD_SECAM_L) 199 } else if (t->std & V4L2_STD_SECAM_L) {
200 t->sgIF = 992;
195 t->i2c_easy_mode[1] = 0x20; 201 t->i2c_easy_mode[1] = 0x20;
202 }
196} 203}
197 204
198static void set_tv_freq(struct i2c_client *c, unsigned int freq) 205static void set_tv_freq(struct i2c_client *c, unsigned int freq)
@@ -200,7 +207,7 @@ static void set_tv_freq(struct i2c_client *c, unsigned int freq)
200 struct tuner *t = i2c_get_clientdata(c); 207 struct tuner *t = i2c_get_clientdata(c);
201 208
202 set_audio(t); 209 set_audio(t);
203 set_frequency(t, 864, freq); 210 set_frequency(t, t->sgIF, freq);
204 tda8290_tune(c); 211 tda8290_tune(c);
205} 212}
206 213
diff --git a/include/media/tuner.h b/include/media/tuner.h
index bf925702fbbf..97e16bddf651 100644
--- a/include/media/tuner.h
+++ b/include/media/tuner.h
@@ -191,6 +191,7 @@ struct tuner {
191 /* used by tda8290 */ 191 /* used by tda8290 */
192 unsigned char i2c_easy_mode[2]; 192 unsigned char i2c_easy_mode[2];
193 unsigned char i2c_set_freq[8]; 193 unsigned char i2c_set_freq[8];
194 unsigned int sgIF;
194 195
195 /* function ptrs */ 196 /* function ptrs */
196 void (*tv_freq)(struct i2c_client *c, unsigned int freq); 197 void (*tv_freq)(struct i2c_client *c, unsigned int freq);