V4L/DVB (5135): Qt1010: correct hardlockup when an app access the DVB dongle
authorJan Nijs <jan.nijs@scarlet.be>
Sat, 7 Oct 2006 04:06:54 +0000 (01:06 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Wed, 21 Feb 2007 15:34:52 +0000 (13:34 -0200)
This patch changes qt1010.h to use dvb_usb_device struct instead of a
dvb_usb_adapter for accessing the private area of the driver.
Without this patch my PC hard locks when an application tries to access
the DVB tuner.

Signed-off-by: Jan Nijs <jan.nijs@scarlet.be>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/frontends/qt1010.h

index 59ee1cd03e33fe7b07ca7b2a1a3e785e82a96733..8196985e4e43f66b3fd1c1533481e3602344daea 100644 (file)
@@ -79,7 +79,7 @@ static int qt1010_set_params(struct dvb_frontend *fe, struct dvb_frontend_parame
                        { QT1010_W, 0x01, 0x00 },
                        };
        struct i2c_msg msg;
-       struct dvb_usb_device *d = fe->dvb->priv;
+       struct dvb_usb_adapter *adap = fe->dvb->priv;
        unsigned long freq = params->frequency;
 
        if (freq % QT1010_MIN_STEP)
@@ -203,10 +203,10 @@ static int qt1010_set_params(struct dvb_frontend *fe, struct dvb_frontend_parame
 
                msg.flags = 0;
                msg.len = 2;
-               msg.addr = d->adapter[0].pll_addr;
+               msg.addr = adap->dev->adapter[0].pll_addr;
                msg.buf = &rd[i].reg;
 
-               if (i2c_transfer(&d->i2c_adap, &msg, 1) != 1) {
+               if (i2c_transfer(&adap->dev->i2c_adap, &msg, 1) != 1) {
                        printk("tuner write failed\n");
                        return -EIO;
                }