|
@@ -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 */
|