From: Antti Palosaari <crope@iki.fi>
Date: Thu, 14 Jun 2012 05:44:47 +0000 (-0300)
Subject: [media] dvb_usb_v2: attach tuners later
X-Git-Tag: v3.7-rc1~101^2^2~633
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=2cc53dc82868c8d425825dbfe6d6fbf6a972486d;p=users%2Fjedix%2Flinux-maple.git

[media] dvb_usb_v2: attach tuners later

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>
---

diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c b/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c
index f302e63a0d8f..6149236e4ef8 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c
+++ b/drivers/media/dvb/dvb-usb/dvb_usb_dvb.c
@@ -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;