summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-06-11 06:57:50 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-11 06:57:50 -0400
commit3a81029396ea0bf8d3815ad1337b6d99a8b18240 (patch)
treee05e448b0951bc7b8d37944c8caae1e09b6beee8 /linux
parent52bcb7460a6934b8b53c40964e2094d7998147ab (diff)
downloadmediapointer-dvb-s2-3a81029396ea0bf8d3815ad1337b6d99a8b18240.tar.gz
mediapointer-dvb-s2-3a81029396ea0bf8d3815ad1337b6d99a8b18240.tar.bz2
tuner-xc2028: Fix 7 MHz DVB-T
From: Andy Walls <awalls@radix.net> The following patch should fix 7 MHz DVB-T with the XC3028 using the DTV7 firmware from the xc3028-v27.fw firmware image. Signed-off-by: Andy Walls <awalls@radix.net> Tested-by: Terry Wu <terrywu2009@gmail.com> [mchehab@redhat.com: thanks to John Ferlito, we have a real test in Australia] Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/common/tuners/tuner-xc2028.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/linux/drivers/media/common/tuners/tuner-xc2028.c b/linux/drivers/media/common/tuners/tuner-xc2028.c
index a7466867c..8ead0e1e1 100644
--- a/linux/drivers/media/common/tuners/tuner-xc2028.c
+++ b/linux/drivers/media/common/tuners/tuner-xc2028.c
@@ -1100,8 +1100,19 @@ static int xc2028_set_params(struct dvb_frontend *fe,
}
/* All S-code tables need a 200kHz shift */
- if (priv->ctrl.demod)
+ if (priv->ctrl.demod) {
demod = priv->ctrl.demod + 200;
+ /*
+ * The DTV7 S-code table needs a 700 kHz shift.
+ * Thanks to Terry Wu <terrywu2009@gmail.com> for reporting this
+ *
+ * DTV7 is only used in Australia. Germany or Italy may also
+ * use this firmware after initialization, but a tune to a UHF
+ * channel should then cause DTV78 to be used.
+ */
+ if (type & DTV7)
+ demod += 500;
+ }
return generic_set_freq(fe, p->frequency,
T_DIGITAL_TV, type, 0, demod);