diff options
-rw-r--r-- | drivers/media/video/tda8290.c | 21 | ||||
-rw-r--r-- | include/media/tuner.h | 1 |
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 | ||
198 | static void set_tv_freq(struct i2c_client *c, unsigned int freq) | 205 | static 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); |