Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c875dee5 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] saa7115: improve querystd handling for the saa7115



The saa7115 has better PAL/NTSC detection, so it can detect PAL even
though the chip is currently set up for NTSC.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent a0fc5886
Loading
Loading
Loading
Loading
+28 −28
Original line number Diff line number Diff line
@@ -1360,22 +1360,12 @@ static int saa711x_querystd(struct v4l2_subdev *sd, v4l2_std_id *std)
	 */

	reg1f = saa711x_read(sd, R_1F_STATUS_BYTE_2_VD_DEC);
	v4l2_dbg(1, debug, sd, "Status byte 2 (0x1f)=0x%02x\n", reg1f);

	/* horizontal/vertical not locked */
	if (reg1f & 0x40)
		goto ret;

	if (reg1f & 0x20)
		*std &= V4L2_STD_525_60;
	else
		*std &= V4L2_STD_625_50;

	if (state->ident != V4L2_IDENT_SAA7115)
		goto ret;

	if (state->ident == V4L2_IDENT_SAA7115) {
		reg1e = saa711x_read(sd, R_1E_STATUS_BYTE_1_VD_DEC);

		v4l2_dbg(1, debug, sd, "Status byte 1 (0x1e)=0x%02x\n", reg1e);

		switch (reg1e & 0x03) {
		case 1:
			*std &= V4L2_STD_NTSC;
@@ -1396,8 +1386,18 @@ static int saa711x_querystd(struct v4l2_subdev *sd, v4l2_std_id *std)
			/* Can't detect anything */
			break;
		}
	}

	v4l2_dbg(1, debug, sd, "Status byte 1 (0x1e)=0x%02x\n", reg1e);
	v4l2_dbg(1, debug, sd, "Status byte 2 (0x1f)=0x%02x\n", reg1f);

	/* horizontal/vertical not locked */
	if (reg1f & 0x40)
		goto ret;

	if (reg1f & 0x20)
		*std &= V4L2_STD_525_60;
	else
		*std &= V4L2_STD_625_50;

ret:
	v4l2_dbg(1, debug, sd, "detected std mask = %08Lx\n", *std);