aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/tuner-xc2028.c11
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