V4L/DVB (12811): tm6000: a few registers is needed from the sif/noif setings
authorMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 2 Nov 2007 14:54:18 +0000 (11:54 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 18 May 2010 03:39:55 +0000 (00:39 -0300)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/staging/tm6000/tm6000-stds.c

index d74793a8d5965e2e4be3d6101c111405f7c95907..11e600bdc41b9944796f7a640e473acdaf31157a 100644 (file)
@@ -781,6 +781,13 @@ static int tm6000_load_std(struct tm6000_core *dev,
                if (!set[i].req)
                        return 0;
 
+               /* FIXME: REQ 8 settings are for tm6010
+                       not tested yet
+                       This doesn't work with tm5600
+               */
+               if (set[i].req == REQ_08_SET_GET_AVREG_BIT)
+                       continue;
+
                rc = tm6000_set_reg(dev, set[i].req, set[i].reg, set[i].value);
                if (rc < 0) {
                        printk(KERN_ERR "Error %i while setting "
@@ -797,6 +804,22 @@ static int tm6000_set_tv(struct tm6000_core *dev, int pos)
 {
        int rc;
 
+       /* FIXME: This code is for tm6010 - not tested yet - doesn't work with
+          tm5600
+        */
+
+       /* FIXME: This is tuner-dependent */
+       int nosif = 0;
+
+       if (nosif) {
+               rc = tm6000_load_std(dev, tv_stds[pos].nosif,
+                                    sizeof(tv_stds[pos].nosif));
+       } else {
+               rc = tm6000_load_std(dev, tv_stds[pos].sif,
+                                    sizeof(tv_stds[pos].sif));
+       }
+       if (rc < 0)
+               return rc;
        rc = tm6000_load_std(dev, tv_stds[pos].common,
                             sizeof(tv_stds[pos].common));