[media] dvb_usb_v2: add .disconnect() callback

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb.h b/drivers/media/dvb/dvb-usb/dvb_usb.h
index 79f8571..d0c6287 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb.h
+++ b/drivers/media/dvb/dvb-usb/dvb_usb.h
@@ -195,6 +195,7 @@
 #define COLD                  1
 	int (*identify_state) (struct dvb_usb_device *);
 	int (*init) (struct dvb_usb_device *);
+	void (*disconnect) (struct dvb_usb_device *);
 	int (*get_rc_config) (struct dvb_usb_device *, struct dvb_usb_rc *);
 	int (*get_usb_stream_config) (struct dvb_frontend *,
 			struct usb_data_stream_properties *);
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_init.c b/drivers/media/dvb/dvb-usb/dvb_usb_init.c
index 1f0fb11..976a706 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb_init.c
+++ b/drivers/media/dvb/dvb-usb/dvb_usb_init.c
@@ -428,6 +428,9 @@
 	if (d->work_pid != current->pid)
 		cancel_work_sync(&d->probe_work);
 
+	if (d->props.disconnect)
+		d->props.disconnect(d);
+
 	name = d->name;
 	dvb_usbv2_exit(d);