[media] dvb_usb_v2: attach tuners later
authorAntti Palosaari <crope@iki.fi>
Thu, 14 Jun 2012 05:44:47 +0000 (02:44 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 4 Aug 2012 10:56:32 +0000 (07:56 -0300)
It is more than nice to have all those frontend pointers when
attaching tuner to the frontend in question. Make that possible
attaching tuners after dvb_register_frontend()

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

index f302e63a0d8fb789da559d946af3210ff89a6a94..6149236e4ef82c6518627f1541f9b55fbe52ed91 100644 (file)
@@ -359,15 +359,6 @@ int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap)
                goto err;
        }
 
-       if (adap->dev->props->tuner_attach) {
-               ret = adap->dev->props->tuner_attach(adap);
-               if (ret < 0) {
-                       pr_debug("%s: tuner_attach() failed=%d\n", __func__,
-                                       ret);
-                       goto err_dvb_frontend_detach;
-               }
-       }
-
        for (i = 0; i < MAX_NO_OF_FE_PER_ADAP && adap->fe[i]; i++) {
                adap->fe[i]->id = i;
 
@@ -387,6 +378,15 @@ int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap)
                count_registered++;
        }
 
+       if (adap->dev->props->tuner_attach) {
+               ret = adap->dev->props->tuner_attach(adap);
+               if (ret < 0) {
+                       pr_debug("%s: tuner_attach() failed=%d\n", __func__,
+                                       ret);
+                       goto err_dvb_unregister_frontend;
+               }
+       }
+
        adap->num_frontends_initialized = count_registered;
 
        return 0;