Commit 565ef127 authored by Jan Nijs's avatar Jan Nijs Committed by Mauro Carvalho Chehab

V4L/DVB (5135): Qt1010: correct hardlockup when an app access the DVB dongle

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: default avatarJan Nijs <jan.nijs@scarlet.be>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent e2d79439
...@@ -79,7 +79,7 @@ static int qt1010_set_params(struct dvb_frontend *fe, struct dvb_frontend_parame ...@@ -79,7 +79,7 @@ static int qt1010_set_params(struct dvb_frontend *fe, struct dvb_frontend_parame
{ QT1010_W, 0x01, 0x00 }, { QT1010_W, 0x01, 0x00 },
}; };
struct i2c_msg msg; 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; unsigned long freq = params->frequency;
if (freq % QT1010_MIN_STEP) if (freq % QT1010_MIN_STEP)
...@@ -203,10 +203,10 @@ static int qt1010_set_params(struct dvb_frontend *fe, struct dvb_frontend_parame ...@@ -203,10 +203,10 @@ static int qt1010_set_params(struct dvb_frontend *fe, struct dvb_frontend_parame
msg.flags = 0; msg.flags = 0;
msg.len = 2; msg.len = 2;
msg.addr = d->adapter[0].pll_addr; msg.addr = adap->dev->adapter[0].pll_addr;
msg.buf = &rd[i].reg; 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"); printk("tuner write failed\n");
return -EIO; return -EIO;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment