summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb
diff options
context:
space:
mode:
authorAntti Palosaari2012-06-10 05:46:22 +0200
committerMauro Carvalho Chehab2012-08-04 12:56:29 +0200
commit5b6a63cc2f11a9b00862d13104d1304e082acfe5 (patch)
tree8ff7838808fa0970c15b765290efde168a99c0e9 /drivers/media/dvb
parent[media] dvb_usb_v2: probe/disconnect error handling (diff)
downloadkernel-qcow2-linux-5b6a63cc2f11a9b00862d13104d1304e082acfe5.tar.gz
kernel-qcow2-linux-5b6a63cc2f11a9b00862d13104d1304e082acfe5.tar.xz
kernel-qcow2-linux-5b6a63cc2f11a9b00862d13104d1304e082acfe5.zip
[media] dvb_usb_v2: add .disconnect() callback
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r--drivers/media/dvb/dvb-usb/dvb_usb.h1
-rw-r--r--drivers/media/dvb/dvb-usb/dvb_usb_init.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb.h b/drivers/media/dvb/dvb-usb/dvb_usb.h
index 79f8571b9b20..d0c628782f76 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb.h
+++ b/drivers/media/dvb/dvb-usb/dvb_usb.h
@@ -195,6 +195,7 @@ struct dvb_usb_device_properties {
#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 1f0fb11c587c..976a706b4cc7 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 @@ void dvb_usbv2_disconnect(struct usb_interface *intf)
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);