V4L/DVB (8607): cxusb: fix OOPS and broken tuning regression on FusionHDTV Dual Digital 4
authorRobert Lowery <rglowery@exemail.com.au>
Wed, 30 Jul 2008 22:43:11 +0000 (19:43 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 6 Aug 2008 09:57:28 +0000 (06:57 -0300)
quoting Robert Lowery:

I think I've found the cause of the oops.
[...]
BTW it appears I have fixed my tuning problems with the updated patch
below.  This reverts a change Mauro made a while back.

All is good now  :)
[...]
The good news is that I've got a better patch that definitely works this
time and even better, makes use of the standard firmware (rather than
the Australian specific one).

...based on an earlier patch by Hans-Frieder Vogt:
http://www.linuxtv.org/pipermail/linux-dvb/2008-May/026280.html

Signed-off-by: Robert Lowery <rlowery@exemail.com.au>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/dvb-usb/cxusb.c

index 578afce..aaa0b6f 100644 (file)
@@ -565,7 +565,8 @@ static int cxusb_lgh064f_tuner_attach(struct dvb_usb_adapter *adap)
 
 static int dvico_bluebird_xc2028_callback(void *ptr, int command, int arg)
 {
-       struct dvb_usb_device *d = ptr;
+       struct dvb_usb_adapter *adap = ptr;
+       struct dvb_usb_device *d = adap->dev;
 
        switch (command) {
        case XC2028_TUNER_RESET:
@@ -593,9 +594,9 @@ static int cxusb_dvico_xc3028_tuner_attach(struct dvb_usb_adapter *adap)
                .callback  = dvico_bluebird_xc2028_callback,
        };
        static struct xc2028_ctrl ctl = {
-               .fname       = "xc3028-dvico-au-01.fw",
+               .fname       = "xc3028-v27.fw",
                .max_len     = 64,
-               .scode_table = XC3028_FE_ZARLINK456,
+               .demod       = XC3028_FE_ZARLINK456,
        };
 
        fe = dvb_attach(xc2028_attach, adap->fe, &cfg);