[media] adv7183: fix querystd
authorHans Verkuil <hans.verkuil@cisco.com>
Wed, 29 May 2013 13:18:54 +0000 (10:18 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 17 Jun 2013 12:42:01 +0000 (09:42 -0300)
If no signal is detected, return V4L2_STD_UNKNOWN. Otherwise AND the standard
with the detected standards.
Note that the v4l2 core initializes the std with tvnorms before calling the
querystd ioctl.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Scott Jiang <scott.jiang.linux@gmail.com>
Acked-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/i2c/adv7183.c

index 980815d..6f738d8 100644 (file)
@@ -374,28 +374,28 @@ static int adv7183_querystd(struct v4l2_subdev *sd, v4l2_std_id *std)
        reg = adv7183_read(sd, ADV7183_STATUS_1);
        switch ((reg >> 0x4) & 0x7) {
        case 0:
-               *std = V4L2_STD_NTSC;
+               *std &= V4L2_STD_NTSC;
                break;
        case 1:
-               *std = V4L2_STD_NTSC_443;
+               *std &= V4L2_STD_NTSC_443;
                break;
        case 2:
-               *std = V4L2_STD_PAL_M;
+               *std &= V4L2_STD_PAL_M;
                break;
        case 3:
-               *std = V4L2_STD_PAL_60;
+               *std &= V4L2_STD_PAL_60;
                break;
        case 4:
-               *std = V4L2_STD_PAL;
+               *std &= V4L2_STD_PAL;
                break;
        case 5:
-               *std = V4L2_STD_SECAM;
+               *std &= V4L2_STD_SECAM;
                break;
        case 6:
-               *std = V4L2_STD_PAL_Nc;
+               *std &= V4L2_STD_PAL_Nc;
                break;
        case 7:
-               *std = V4L2_STD_SECAM;
+               *std &= V4L2_STD_SECAM;
                break;
        default:
                *std = V4L2_STD_UNKNOWN;