V4L/DVB (12481): Fix lowband tuning with tda8261
authorJulian Scheel <julian@jusst.de>
Fri, 31 Jul 2009 16:40:43 +0000 (13:40 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 12 Sep 2009 15:19:07 +0000 (12:19 -0300)
Attached is a patch which fixes tuning to low frequency channels with
stb0899+tda8261 cards like the KNC TV-Station DVB-S2.
The cause of the issue was a broken if construct, which should have been
an if/else if, so that the setting for the lowest matching frequency is
applied.

Without this patch for example tuning to "arte" on Astra 19.2, 10744MHz
SR22000 failed most times and when it failed the communication between
driver and tda8261 was completely broken.
This problem disappears with the attached patch.

Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/tda8261.c

index b6d177799104d6b6e555b0fb7acc714ff51a4b33..320c3c36d8b2495663a233d0c167fa9c5dee51a0 100644 (file)
@@ -136,9 +136,9 @@ static int tda8261_set_state(struct dvb_frontend *fe,
 
                if (frequency < 1450000)
                        buf[3] = 0x00;
-               if (frequency < 2000000)
+               else if (frequency < 2000000)
                        buf[3] = 0x40;
-               if (frequency < 2150000)
+               else if (frequency < 2150000)
                        buf[3] = 0x80;
 
                /* Set params */