V4L/DVB (4391): Refactor dvb_detach calls into a single dvb_frontend_detach function.

Remove buggy dvb_detach() macro and replace with unified
dvb_frontend_detach() call.

Signed-off-by: Andrew de Quincey <adq_dvb@lidskialf.net>
Acked-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
index d195cf5..5742154 100644
--- a/drivers/media/dvb/ttpci/av7110.c
+++ b/drivers/media/dvb/ttpci/av7110.c
@@ -1385,9 +1385,7 @@
 
 	if (av7110->fe != NULL) {
 		dvb_unregister_frontend(av7110->fe);
-		dvb_detach(av7110->fe->ops.release_sec, av7110->fe);
-		dvb_detach(av7110->fe->ops.tuner_ops.release, av7110->fe);
-		dvb_detach(av7110->fe->ops.release, av7110->fe);
+		dvb_frontend_detach(av7110->fe);
 	}
 	dvb_unregister_device(av7110->osd_dev);
 	av7110_av_unregister(av7110);
@@ -2259,9 +2257,7 @@
 		ret = dvb_register_frontend(&av7110->dvb_adapter, av7110->fe);
 		if (ret < 0) {
 			printk("av7110: Frontend registration failed!\n");
-			dvb_detach(av7110->fe->ops.release_sec, av7110->fe);
-			dvb_detach(av7110->fe->ops.tuner_ops.release, av7110->fe);
-			dvb_detach(av7110->fe->ops.release, av7110->fe);
+			dvb_frontend_detach(av7110->fe);
 			av7110->fe = NULL;
 		}
 	}
diff --git a/drivers/media/dvb/ttpci/budget-av.c b/drivers/media/dvb/ttpci/budget-av.c
index c648c01..6f1c41f 100644
--- a/drivers/media/dvb/ttpci/budget-av.c
+++ b/drivers/media/dvb/ttpci/budget-av.c
@@ -1192,9 +1192,7 @@
 	if (dvb_register_frontend(&budget_av->budget.dvb_adapter,
 				  budget_av->budget.dvb_frontend)) {
 		printk(KERN_ERR "budget-av: Frontend registration failed!\n");
-		dvb_detach(budget_av->budget.dvb_frontend->ops.release_sec, budget_av->budget.dvb_frontend);
-		dvb_detach(budget_av->budget.dvb_frontend->ops.tuner_ops.release, budget_av->budget.dvb_frontend);
-		dvb_detach(budget_av->budget.dvb_frontend->ops.release, budget_av->budget.dvb_frontend);
+		dvb_frontend_detach(budget_av->budget.dvb_frontend);
 		budget_av->budget.dvb_frontend = NULL;
 	}
 }
@@ -1230,9 +1228,7 @@
 
 	if (budget_av->budget.dvb_frontend != NULL) {
 		dvb_unregister_frontend(budget_av->budget.dvb_frontend);
-		dvb_detach(budget_av->budget.dvb_frontend->ops.release_sec, budget_av->budget.dvb_frontend);
-		dvb_detach(budget_av->budget.dvb_frontend->ops.tuner_ops.release, budget_av->budget.dvb_frontend);
-		dvb_detach(budget_av->budget.dvb_frontend->ops.release, budget_av->budget.dvb_frontend);
+		dvb_frontend_detach(budget_av->budget.dvb_frontend);
 	}
 	err = ttpci_budget_deinit(&budget_av->budget);
 
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c
index 20b5e8d..e440fa1 100644
--- a/drivers/media/dvb/ttpci/budget-ci.c
+++ b/drivers/media/dvb/ttpci/budget-ci.c
@@ -1065,9 +1065,7 @@
 		if (dvb_register_frontend
 		    (&budget_ci->budget.dvb_adapter, budget_ci->budget.dvb_frontend)) {
 			printk("budget-ci: Frontend registration failed!\n");
-			dvb_detach(budget_ci->budget.dvb_frontend->ops.release_sec, budget_ci->budget.dvb_frontend);
-			dvb_detach(budget_ci->budget.dvb_frontend->ops.tuner_ops.release, budget_ci->budget.dvb_frontend);
-			dvb_detach(budget_ci->budget.dvb_frontend->ops.release, budget_ci->budget.dvb_frontend);
+			dvb_frontend_detach(budget_ci->budget.dvb_frontend);
 			budget_ci->budget.dvb_frontend = NULL;
 		}
 	}
@@ -1117,9 +1115,7 @@
 		ciintf_deinit(budget_ci);
 	if (budget_ci->budget.dvb_frontend) {
 		dvb_unregister_frontend(budget_ci->budget.dvb_frontend);
-		dvb_detach(budget_ci->budget.dvb_frontend->ops.release_sec, budget_ci->budget.dvb_frontend);
-		dvb_detach(budget_ci->budget.dvb_frontend->ops.tuner_ops.release, budget_ci->budget.dvb_frontend);
-		dvb_detach(budget_ci->budget.dvb_frontend->ops.release, budget_ci->budget.dvb_frontend);
+		dvb_frontend_detach(budget_ci->budget.dvb_frontend);
 	}
 	err = ttpci_budget_deinit(&budget_ci->budget);
 
diff --git a/drivers/media/dvb/ttpci/budget-patch.c b/drivers/media/dvb/ttpci/budget-patch.c
index 82dbef8..d043e1f 100644
--- a/drivers/media/dvb/ttpci/budget-patch.c
+++ b/drivers/media/dvb/ttpci/budget-patch.c
@@ -367,9 +367,7 @@
 	} else {
 		if (dvb_register_frontend(&budget->dvb_adapter, budget->dvb_frontend)) {
 			printk("budget-av: Frontend registration failed!\n");
-			dvb_detach(budget->dvb_frontend->ops.release_sec, budget->dvb_frontend);
-			dvb_detach(budget->dvb_frontend->ops.tuner_ops.release, budget->dvb_frontend);
-			dvb_detach(budget->dvb_frontend->ops.release, budget->dvb_frontend);
+			dvb_frontend_detach(budget->dvb_frontend);
 			budget->dvb_frontend = NULL;
 		}
 	}
@@ -630,9 +628,7 @@
 
 	if (budget->dvb_frontend) {
 		dvb_unregister_frontend(budget->dvb_frontend);
-		dvb_detach(budget->dvb_frontend->ops.release_sec, budget->dvb_frontend);
-		dvb_detach(budget->dvb_frontend->ops.tuner_ops.release, budget->dvb_frontend);
-		dvb_detach(budget->dvb_frontend->ops.release, budget->dvb_frontend);
+		dvb_frontend_detach(budget->dvb_frontend);
 	}
 	err = ttpci_budget_deinit (budget);
 
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c
index 19beb11..e846b96 100644
--- a/drivers/media/dvb/ttpci/budget.c
+++ b/drivers/media/dvb/ttpci/budget.c
@@ -442,9 +442,7 @@
 
 error_out:
 	printk("budget: Frontend registration failed!\n");
-	dvb_detach(budget->dvb_frontend->ops.release_sec, budget->dvb_frontend);
-	dvb_detach(budget->dvb_frontend->ops.tuner_ops.release, budget->dvb_frontend);
-	dvb_detach(budget->dvb_frontend->ops.release, budget->dvb_frontend);
+	dvb_frontend_detach(budget->dvb_frontend);
 	budget->dvb_frontend = NULL;
 	return;
 }
@@ -484,9 +482,7 @@
 
 	if (budget->dvb_frontend) {
 		dvb_unregister_frontend(budget->dvb_frontend);
-		dvb_detach(budget->dvb_frontend->ops.release_sec, budget->dvb_frontend);
-		dvb_detach(budget->dvb_frontend->ops.tuner_ops.release, budget->dvb_frontend);
-		dvb_detach(budget->dvb_frontend->ops.release, budget->dvb_frontend);
+		dvb_frontend_detach(budget->dvb_frontend);
 	}
 
 	err = ttpci_budget_deinit (budget);