Browse Source

V4L/DVB (12816): tm6000: fix tm6000 attach method and fix a few CodingStyles

Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Michel Ludwig 18 years ago
parent
commit
5b74c2c739
1 changed files with 24 additions and 10 deletions
  1. 24 10
      drivers/staging/tm6000/tm6000-dvb.c

+ 24 - 10
drivers/staging/tm6000/tm6000-dvb.c

@@ -28,6 +28,8 @@
 
 #include <media/tuner.h>
 
+#include "tuner-xc2028.h"
+
 static void tm6000_urb_received(struct urb *urb)
 {
 	int ret;
@@ -231,20 +233,29 @@ int tm6000_dvb_register(struct tm6000_core *dev)
 							  THIS_MODULE, &dev->udev->dev);
 	dvb->adapter.priv = dev;
 
-	if(dvb->frontend) {
+	if (dvb->frontend) {
+		struct xc2028_config cfg = {
+			.i2c_adap  = &dev->i2c_adap,
+			.video_dev = dev,
+		};
+
 		ret = dvb_register_frontend(&dvb->adapter, dvb->frontend);
-		if(ret < 0) {
-			printk("tm6000: couldn't register frontend\n");
+		if (ret < 0) {
+			printk(KERN_ERR
+				"tm6000: couldn't register frontend\n");
 			goto adapter_err;
 		}
 
-		// attach the tuner like this for now
-		tm6000_i2c_call_clients(dev, VIDIOC_INT_DVB_TUNER_ATTACH, dvb->frontend);
-
-		printk("tm6000: XC2028/3028 asked to be attached to frontend!\n");
-	}
-	else {
-		printk("tm6000: no frontend found\n");
+		if (!dvb_attach(xc2028_attach, dvb->frontend, &cfg)) {
+			printk(KERN_ERR "tm6000: couldn't register "
+					"frontend (xc3028)\n");
+			ret = -EINVAL;
+			goto adapter_err;
+		}
+		printk(KERN_INFO "tm6000: XC2028/3028 asked to be "
+				 "attached to frontend!\n");
+	} else {
+		printk(KERN_ERR "tm6000: no frontend found\n");
 	}
 
 	dvb->demux.dmx.capabilities = DMX_TS_FILTERING | DMX_SECTION_FILTERING
@@ -278,6 +289,9 @@ dvb_dmx_err:
 frontend_err:
 	if(dvb->frontend) {
 		dvb_unregister_frontend(dvb->frontend);
+#ifdef CONFIG_DVB_CORE_ATTACH
+		symbol_put(xc3028_attach);
+#endif
 	}
 adapter_err:
 	dvb_unregister_adapter(&dvb->adapter);