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

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

V4L/DVB: tvp7002: fix query_dv_preset



If no signal or valid format is detected, then VIDIOC_QUERY_DV_PRESET must
return 0 and set the preset to V4L2_DV_INVALID.

This driver returned an error instead.

Also simplified the kernel messages a bit: change v4l2_err to v4l2_dbg (not
detecting a signal/valid format is not an error, so only print this info when
debug == 1) and do not call v4l_fill_dv_preset_info: it's overkill to do this
just for a debug message.

Thanks to Mats Randgaard for bringing this to my attention.

Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ffb4877b
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -785,7 +785,6 @@ static int tvp7002_query_dv_preset(struct v4l2_subdev *sd,
						struct v4l2_dv_preset *qpreset)
{
	const struct tvp7002_preset_definition *presets = tvp7002_presets;
	struct v4l2_dv_enum_preset e_preset;
	struct tvp7002 *device;
	u8 progressive;
	u32 lpfr;
@@ -828,20 +827,18 @@ static int tvp7002_query_dv_preset(struct v4l2_subdev *sd,
		}

	if (index == NUM_PRESETS) {
		v4l2_err(sd, "querystd error, lpf = %x, cpl = %x\n",
		v4l2_dbg(1, debug, sd, "detection failed: lpf = %x, cpl = %x\n",
								lpfr, cpln);
		return -EINVAL;
		/* Could not detect a signal, so return the 'invalid' preset */
		qpreset->preset = V4L2_DV_INVALID;
		return 0;
	}

	if (v4l_fill_dv_preset_info(presets->preset, &e_preset))
		return -EINVAL;

	/* Set values in found preset */
	qpreset->preset = presets->preset;

	/* Update lines per frame and clocks per line info */
	v4l2_dbg(1, debug, sd, "Current preset: %d %d",
					e_preset.width, e_preset.height);
	v4l2_dbg(1, debug, sd, "detected preset: %d\n", presets->preset);
	return 0;
}