[media] dvb_usb_v2: add .init() 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 95caac1..15b08b7 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb.h
+++ b/drivers/media/dvb/dvb-usb/dvb_usb.h
@@ -239,6 +239,8 @@
  * @read_mac_address: called to read the MAC address of the device.
  * @identify_state: called to determine the state (cold or warm), when it
  *  is not distinguishable by the USB IDs.
+ * @init: called after adapters are created in order to finalize device
+ *  configuration.
  *
  * @rc: remote controller properties
  *
@@ -283,6 +285,7 @@
 	int (*read_mac_address) (struct dvb_usb_device *, u8 []);
 	int (*identify_state)   (struct usb_device *, struct dvb_usb_device_properties *,
 			struct dvb_usb_device_description **, int *);
+	int (*init) (struct dvb_usb_device *);
 
 	struct {
 		enum dvb_usb_mode mode;	/* Drivers shouldn't touch on it */
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_init.c b/drivers/media/dvb/dvb-usb/dvb_usb_init.c
index 4ae3045..0d769a1 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb_init.c
+++ b/drivers/media/dvb/dvb-usb/dvb_usb_init.c
@@ -164,6 +164,9 @@
 		return ret;
 	}
 
+	if (d->props.init)
+		d->props.init(d);
+
 	if ((ret = dvb_usb_remote_init(d)))
 		err("could not initialize remote control.");