aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 61268f8a9ee..1e2acc4abbe 100644
--- a/drivers/media/video/tda8290.c
+++ b/drivers/media/video/tda8290.c
@@ -181,18 +181,25 @@ static void set_audio(struct tuner *t)
{
t->i2c_easy_mode[0] = 0x01;
- if (t->std & V4L2_STD_MN)
+ if (t->std & V4L2_STD_MN) {
+ t->sgIF = 736;
t->i2c_easy_mode[1] = 0x01;
- else if (t->std & V4L2_STD_B)
+ } else if (t->std & V4L2_STD_B) {
+ t->sgIF = 864;
t->i2c_easy_mode[1] = 0x02;
- else if (t->std & V4L2_STD_GH)
+ } else if (t->std & V4L2_STD_GH) {
+ t->sgIF = 992;
t->i2c_easy_mode[1] = 0x04;
- else if (t->std & V4L2_STD_PAL_I)
+ } else if (t->std & V4L2_STD_PAL_I) {
+ t->sgIF = 992;
t->i2c_easy_mode[1] = 0x08;
- else if (t->std & V4L2_STD_DK)
+ } else if (t->std & V4L2_STD_DK) {
+ t->sgIF = 992;
t->i2c_easy_mode[1] = 0x10;
- else if (t->std & V4L2_STD_SECAM_L)
+ } else if (t->std & V4L2_STD_SECAM_L) {
+ t->sgIF = 992;
t->i2c_easy_mode[1] = 0x20;
+ }
}
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)
struct tuner *t = i2c_get_clientdata(c);
set_audio(t);
- set_frequency(t, 864, freq);
+ set_frequency(t, t->sgIF, freq);
tda8290_tune(c);
}
diff --git a/include/media/tuner.h b/include/media/tuner.h
index bf925702fbb..97e16bddf65 100644
--- a/include/media/tuner.h
+++ b/include/media/tuner.h
@@ -191,6 +191,7 @@ struct tuner {
/* used by tda8290 */
unsigned char i2c_easy_mode[2];
unsigned char i2c_set_freq[8];
+ unsigned int sgIF;
/* function ptrs */
void (*tv_freq)(struct i2c_client *c, unsigned int freq);