gspca - stv06xx: Fix a regression with the bridge/sensor vv6410

Message ID 20121122125906.35d6f98a@armhf (mailing list archive)
State Superseded, archived
Headers

Commit Message

Jean-Francois Moine Nov. 22, 2012, 11:59 a.m. UTC
  From: Jean-François Moine <moinejf@free.fr>

Setting the H and V flip controls at webcam connection time prevents
the webcam to work correctly.

This patch checks if the webcam is streaming before setting the flips.
It does not set the flips (nor other controls) at webcam start time.

Tested-by: Philippe ROUBACH <philippe.roubach@free.fr>
Signed-off-by: Jean-François Moine <moinejf@free.fr>
  

Comments

Hans de Goede Nov. 29, 2012, 2:25 p.m. UTC | #1
Hi,

Thanks for the patch I've added this to my tree, and it is part
of the pull-request I just send to Mauro for 3.8

Regards,

Hans

On 11/22/2012 12:59 PM, Jean-Francois Moine wrote:
> From: Jean-François Moine <moinejf@free.fr>
>
> Setting the H and V flip controls at webcam connection time prevents
> the webcam to work correctly.
>
> This patch checks if the webcam is streaming before setting the flips.
> It does not set the flips (nor other controls) at webcam start time.
>
> Tested-by: Philippe ROUBACH <philippe.roubach@free.fr>
> Signed-off-by: Jean-François Moine <moinejf@free.fr>
>
> --- a/drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.c
> +++ b/drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.c
> @@ -52,9 +52,13 @@
>
>   	switch (ctrl->id) {
>   	case V4L2_CID_HFLIP:
> +		if (!gspca_dev->streaming)
> +			return 0;
>   		err = vv6410_set_hflip(gspca_dev, ctrl->val);
>   		break;
>   	case V4L2_CID_VFLIP:
> +		if (!gspca_dev->streaming)
> +			return 0;
>   		err = vv6410_set_vflip(gspca_dev, ctrl->val);
>   		break;
>   	case V4L2_CID_GAIN:
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

--- a/drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.c
+++ b/drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.c
@@ -52,9 +52,13 @@ 
 
 	switch (ctrl->id) {
 	case V4L2_CID_HFLIP:
+		if (!gspca_dev->streaming)
+			return 0;
 		err = vv6410_set_hflip(gspca_dev, ctrl->val);
 		break;
 	case V4L2_CID_VFLIP:
+		if (!gspca_dev->streaming)
+			return 0;
 		err = vv6410_set_vflip(gspca_dev, ctrl->val);
 		break;
 	case V4L2_CID_GAIN: