V4L/DVB (12816): tm6000: fix tm6000 attach method and fix a few CodingStyles
authorMichel Ludwig <michel.ludwig@gmail.com>
Fri, 16 Nov 2007 16:16:59 +0000 (13:16 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 18 May 2010 03:39:59 +0000 (00:39 -0300)
Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/staging/tm6000/tm6000-dvb.c

index 9df93cfe3106a8e3c4e92e7165e562e202fea32b..15133109f7eccff4c70e440318ab6792002b58a8 100644 (file)
@@ -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);