diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/tuner-xc2028.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/media/video/tuner-xc2028.c b/drivers/media/video/tuner-xc2028.c index a6b05dfd6703..63a6fca1f8cf 100644 --- a/drivers/media/video/tuner-xc2028.c +++ b/drivers/media/video/tuner-xc2028.c | |||
@@ -875,7 +875,16 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */, | |||
875 | rc = send_seq(priv, {0x00, 0x00}); | 875 | rc = send_seq(priv, {0x00, 0x00}); |
876 | } else { | 876 | } else { |
877 | offset = 2750000; | 877 | offset = 2750000; |
878 | if (priv->cur_fw.type & DTV7) | 878 | /* |
879 | * We must adjust the offset by 500kHz in two cases in order | ||
880 | * to correctly center the IF output: | ||
881 | * 1) When the ZARLINK456 or DIBCOM52 tables were explicitly | ||
882 | * selected and a 7MHz channel is tuned; | ||
883 | * 2) When tuning a VHF channel with DTV78 firmware. | ||
884 | */ | ||
885 | if (((priv->cur_fw.type & DTV7) && | ||
886 | (priv->cur_fw.scode_table & (ZARLINK456 | DIBCOM52))) || | ||
887 | ((priv->cur_fw.type & DTV78) && freq < 470000000)) | ||
879 | offset -= 500000; | 888 | offset -= 500000; |
880 | } | 889 | } |
881 | 890 | ||