{
        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;
 }
 
 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 */