V4L/DVB (4386): Convert DVB devices to use dvb_attach()
[deliverable/linux.git] / drivers / media / dvb / dvb-usb / dvb-usb-dvb.c
index ec631708c39480cf7d390267b452c109d2da2088..f0da15ebe33b4f38033272009d1438b1ba5963e5 100644 (file)
@@ -188,8 +188,9 @@ int dvb_usb_fe_init(struct dvb_usb_device* d)
 
                if (dvb_register_frontend(&d->dvb_adap, d->fe)) {
                        err("Frontend registration failed.");
-                       if (d->fe->ops.release)
-                               d->fe->ops.release(d->fe);
+                       dvb_detach(d->fe->ops.release_sec, d->fe);
+                       dvb_detach(d->fe->ops.tuner_ops.release, d->fe);
+                       dvb_detach(d->fe->ops.release, d->fe);
                        d->fe = NULL;
                        return -ENODEV;
                }
@@ -204,7 +205,11 @@ int dvb_usb_fe_init(struct dvb_usb_device* d)
 
 int dvb_usb_fe_exit(struct dvb_usb_device *d)
 {
-       if (d->fe != NULL)
+       if (d->fe != NULL) {
                dvb_unregister_frontend(d->fe);
+               dvb_detach(d->fe->ops.release_sec, d->fe);
+               dvb_detach(d->fe->ops.tuner_ops.release, d->fe);
+               dvb_detach(d->fe->ops.release, d->fe);
+       }
        return 0;
 }
This page took 0.02488 seconds and 5 git commands to generate.