V4L/DVB (9114): dib0700: fix bad assignment of dib0700_xc5000_tuner_callback after return call
Put callback definition before function return and cleanup callback: Fix a bug where the xc5000 callback was being set *after* the return call (essentially resulting in dead code). Also cleanup the callback function to detect unknown commands. Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
da703d6262
commit
79025a9ed9
@ -1181,11 +1181,16 @@ static int dib0700_xc5000_tuner_callback(void *priv, int component,
|
||||
{
|
||||
struct dvb_usb_adapter *adap = priv;
|
||||
|
||||
/* Reset the tuner */
|
||||
dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 0);
|
||||
msleep(330); /* from Windows USB trace */
|
||||
dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 1);
|
||||
msleep(330); /* from Windows USB trace */
|
||||
if (command == XC5000_TUNER_RESET) {
|
||||
/* Reset the tuner */
|
||||
dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 0);
|
||||
msleep(330); /* from Windows USB trace */
|
||||
dib0700_set_gpio(adap->dev, GPIO1, GPIO_OUT, 1);
|
||||
msleep(330); /* from Windows USB trace */
|
||||
} else {
|
||||
err("xc5000: unknown tuner callback command: %d\n", command);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1197,12 +1202,12 @@ static struct xc5000_config s5h1411_xc5000_tunerconfig = {
|
||||
|
||||
static int xc5000_tuner_attach(struct dvb_usb_adapter *adap)
|
||||
{
|
||||
/* FIXME: generalize & move to common area */
|
||||
adap->fe->callback = dib0700_xc5000_tuner_callback;
|
||||
|
||||
return dvb_attach(xc5000_attach, adap->fe, &adap->dev->i2c_adap,
|
||||
&s5h1411_xc5000_tunerconfig)
|
||||
== NULL ? -ENODEV : 0;
|
||||
|
||||
/* FIXME: generalize & move to common area */
|
||||
adap->fe->callback = dib0700_xc5000_tuner_callback;
|
||||
}
|
||||
|
||||
/* DVB-USB and USB stuff follows */
|
||||
|
Loading…
Reference in New Issue
Block a user