V4L/DVB (12953): gspca - vc032x: Bad GPIO of the Samsung Q1 on start/stop streaming.
authorJean-Francois Moine <moinejf@free.fr>
Thu, 3 Sep 2009 16:46:59 +0000 (13:46 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 19 Sep 2009 03:15:34 +0000 (00:15 -0300)
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/vc032x.c

index 619250e..589042f 100644 (file)
@@ -2946,7 +2946,8 @@ static int sd_start(struct gspca_dev *gspca_dev)
                        reg_w(gspca_dev->dev, 0x89, 0x058c, 0x0000);
                        break;
                default:
-                       reg_w(gspca_dev->dev, 0x89, 0xffff, 0xfdff);
+                       if (!(sd->flags & FL_SAMSUNG))
+                               reg_w(gspca_dev->dev, 0x89, 0xffff, 0xfdff);
                        break;
                }
                msleep(100);
@@ -2964,7 +2965,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
 
        if (sd->sensor == SENSOR_MI1310_SOC)
                reg_w(dev, 0x89, 0x058c, 0x00ff);
-       else
+       else if (!(sd->flags & FL_SAMSUNG))
                reg_w(dev, 0x89, 0xffff, 0xffff);
        reg_w(dev, 0xa0, 0x01, 0xb301);
        reg_w(dev, 0xa0, 0x09, 0xb003);
@@ -2981,7 +2982,7 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
 /*fixme: is this useful?*/
        if (sd->sensor == SENSOR_MI1310_SOC)
                reg_w(dev, 0x89, 0x058c, 0x00ff);
-       else
+       else if (!(sd->flags & FL_SAMSUNG))
                reg_w(dev, 0x89, 0xffff, 0xffff);
 }