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

V4L/DVB (5290): Add support for VIDIOC_INT_G/S_STD_OUTPUT



Added VIDIOC_INT_G_STD_OUTPUT and VIDIOC_INT_S_STD_OUTPUT to allow drivers
to set the TV standard for video output separately from the video capture.
This is needed for cx23415 support where the decoder is separate from the
encoder and can have a different TV standard.
Modified the saa7127 module to listen to VIDIOC_INT_G/S_STD_OUTPUT instead
of VIDIOC_G/S_STD.

Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent b2787845
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -550,12 +550,12 @@ static int saa7127_command(struct i2c_client *client,
	struct v4l2_routing *route = arg;

	switch (cmd) {
	case VIDIOC_S_STD:
	case VIDIOC_INT_S_STD_OUTPUT:
		if (state->std == *(v4l2_std_id *)arg)
			break;
		return saa7127_set_std(client, *(v4l2_std_id *)arg);

	case VIDIOC_G_STD:
	case VIDIOC_INT_G_STD_OUTPUT:
		*(v4l2_std_id *)arg = state->std;
		break;

+4 −1
Original line number Diff line number Diff line
@@ -420,7 +420,10 @@ static const char *v4l2_int_ioctls[] = {
	[_IOC_NR(VIDIOC_INT_G_AUDIO_ROUTING)]  = "VIDIOC_INT_G_AUDIO_ROUTING",
	[_IOC_NR(VIDIOC_INT_S_VIDEO_ROUTING)]  = "VIDIOC_INT_S_VIDEO_ROUTING",
	[_IOC_NR(VIDIOC_INT_G_VIDEO_ROUTING)]  = "VIDIOC_INT_G_VIDEO_ROUTING",
	[_IOC_NR(VIDIOC_INT_S_CRYSTAL_FREQ)]   = "VIDIOC_INT_S_CRYSTAL_FREQ"
	[_IOC_NR(VIDIOC_INT_S_CRYSTAL_FREQ)]   = "VIDIOC_INT_S_CRYSTAL_FREQ",
	[_IOC_NR(VIDIOC_INT_INIT)]   	       = "VIDIOC_INT_INIT",
	[_IOC_NR(VIDIOC_INT_G_STD_OUTPUT)]     = "VIDIOC_INT_G_STD_OUTPUT",
	[_IOC_NR(VIDIOC_INT_S_STD_OUTPUT)]     = "VIDIOC_INT_S_STD_OUTPUT",
};
#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls)

+8 −0
Original line number Diff line number Diff line
@@ -254,4 +254,12 @@ struct v4l2_crystal_freq {
   default values. */
#define VIDIOC_INT_INIT			_IOW ('d', 114, u32)

/* Set v4l2_std_id for video OUTPUT devices. This is ignored by
   video input devices. */
#define VIDIOC_INT_S_STD_OUTPUT		_IOW  ('d', 115, v4l2_std_id)

/* Get v4l2_std_id for video OUTPUT devices. This is ignored by
   video input devices. */
#define VIDIOC_INT_G_STD_OUTPUT		_IOW  ('d', 116, v4l2_std_id)

#endif /* V4L2_COMMON_H_ */