]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
[media] dvb_usb_v2: implement .read_config()
authorAntti Palosaari <crope@iki.fi>
Fri, 25 May 2012 01:18:37 +0000 (22:18 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 10:56:22 +0000 (07:56 -0300)
That callback is called only once when device is connected.
Call is done after the possible firmware is downloaded to the device,
just after the .power_ctrl() and before adapters are created.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/dvb_usb.h
drivers/media/dvb/dvb-usb/dvb_usb_init.c

index a3cc557298b4cb6e43eb6d8b8350fac3974161e8..8ddae58e8e72a07231613bda12f3b70c31976c9b 100644 (file)
@@ -275,6 +275,7 @@ struct dvb_usb_device_properties {
        struct dvb_usb_adapter_properties adapter[MAX_NO_OF_ADAPTER_PER_DEVICE];
 
        int (*power_ctrl)       (struct dvb_usb_device *, int);
+       int (*read_config) (struct dvb_usb_device *d);
        int (*read_mac_address) (struct dvb_usb_device *, u8 []);
 
 #define WARM                  0
index 11d5c96a460012f24cc76306d5d302eef0f72d65..d694ea9ecc91a609c5952ae03bc8209f1672e77f 100644 (file)
@@ -190,6 +190,13 @@ static int dvb_usb_init(struct dvb_usb_device *d)
        /* check the capabilities and set appropriate variables */
        dvb_usb_device_power_ctrl(d, 1);
 
+       /* read config */
+       if (d->props.read_config) {
+               ret = d->props.read_config(d);
+               if (ret < 0)
+                       goto err;
+       }
+
        ret = dvb_usb_i2c_init(d);
        if (ret == 0)
                ret = dvb_usb_adapter_init(d);
@@ -209,6 +216,9 @@ static int dvb_usb_init(struct dvb_usb_device *d)
        dvb_usb_device_power_ctrl(d, 0);
 
        return 0;
+err:
+       pr_debug("%s: failed=%d\n", __func__, ret);
+       return ret;
 }
 
 int dvb_usb_device_power_ctrl(struct dvb_usb_device *d, int onoff)