V4L/DVB (11917): Fix firmware load for DVB-T @ 6MHz bandwidth for xc3028/xc3028L
authorMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 1 Jun 2009 14:46:08 +0000 (11:46 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 22:07:17 +0000 (19:07 -0300)
The only two countries that are known to use 6MHz bandwidth are Taiwan
and Uruguay. Both use QAM subcarriers at OFTM.

This patch fixes the firmware load for such countries, where the
required firmware is the QAM one.

This also confirms the previous tests where it was noticed that the 6MHz
QAM firmware doesn't work for cable. So, this patch also removes support
for DVB-C, instead of just printing a warning.

Thanks to Terry Wu <terrywu2009@gmail.com> for pointing this issue and
to Andy Walls <awalls@radix.net> for an initial patch for this fix.

Cc: Terry Wu <terrywu2009@gmail.com>
Acked-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/tuner-xc2028.c

index ed2653d3b52d564a632cf6236e8b02244561a3c6..14649e456fdbae9274fd99b2013b519cb9563fde 100644 (file)
@@ -1022,21 +1022,20 @@ static int xc2028_set_params(struct dvb_frontend *fe,
        switch(fe->ops.info.type) {
        case FE_OFDM:
                bw = p->u.ofdm.bandwidth;
-               break;
-       case FE_QAM:
-               tuner_info("WARN: There are some reports that "
-                          "QAM 6 MHz doesn't work.\n"
-                          "If this works for you, please report by "
-                          "e-mail to: v4l-dvb-maintainer@linuxtv.org\n");
-               bw = BANDWIDTH_6_MHZ;
-               type |= QAM;
+               /*
+                * The only countries with 6MHz seem to be Taiwan/Uruguay.
+                * Both seem to require QAM firmware for OFDM decoding
+                * Tested in Taiwan by Terry Wu <terrywu2009@gmail.com>
+                */
+               if (bw == BANDWIDTH_6_MHZ)
+                       type |= QAM;
                break;
        case FE_ATSC:
                bw = BANDWIDTH_6_MHZ;
                /* The only ATSC firmware (at least on v2.7) is D2633 */
                type |= ATSC | D2633;
                break;
-       /* DVB-S is not supported */
+       /* DVB-S and pure QAM (FE_QAM) are not supported */
        default:
                return -EINVAL;
        }