aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/v4l2-common.c
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2006-04-02 11:50:42 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-25 00:57:36 -0400
commitb7f8292c96463810edfecff70dd4631d47e5a36b (patch)
tree02b1cfb3f753ea82c6fa51c901420074875be355 /drivers/media/video/v4l2-common.c
parent2eb606db1134ce860cc0cbf8b533b6315d182e21 (diff)
V4L/DVB (3711): Add support for VIDIOC_INT_S_CRYSTAL_FREQ internal command.
Some saa7115-based cards use a different crystal frequency and a different audio clock generation. Add a new VIDIOC_INT_S_CRYSTAL_FREQ command to be able to set these values. Also change the default APLL setting to 0. It makes no sense to have the audio clock independent from the video clock, this can lead to audio/video synchronization problems. Setting this to 0 is also consistent with the old saa7114.c source and the way the Hauppauge Windows driver sets it. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/v4l2-common.c')
-rw-r--r--drivers/media/video/v4l2-common.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
index d330fa985bcc..ad92e07e74f7 100644
--- a/drivers/media/video/v4l2-common.c
+++ b/drivers/media/video/v4l2-common.c
@@ -331,7 +331,8 @@ static const char *v4l2_int_ioctls[] = {
331 [_IOC_NR(VIDIOC_INT_S_AUDIO_ROUTING)] = "VIDIOC_INT_S_AUDIO_ROUTING", 331 [_IOC_NR(VIDIOC_INT_S_AUDIO_ROUTING)] = "VIDIOC_INT_S_AUDIO_ROUTING",
332 [_IOC_NR(VIDIOC_INT_G_AUDIO_ROUTING)] = "VIDIOC_INT_G_AUDIO_ROUTING", 332 [_IOC_NR(VIDIOC_INT_G_AUDIO_ROUTING)] = "VIDIOC_INT_G_AUDIO_ROUTING",
333 [_IOC_NR(VIDIOC_INT_S_VIDEO_ROUTING)] = "VIDIOC_INT_S_VIDEO_ROUTING", 333 [_IOC_NR(VIDIOC_INT_S_VIDEO_ROUTING)] = "VIDIOC_INT_S_VIDEO_ROUTING",
334 [_IOC_NR(VIDIOC_INT_G_VIDEO_ROUTING)] = "VIDIOC_INT_G_VIDEO_ROUTING" 334 [_IOC_NR(VIDIOC_INT_G_VIDEO_ROUTING)] = "VIDIOC_INT_G_VIDEO_ROUTING",
335 [_IOC_NR(VIDIOC_INT_S_CRYSTAL_FREQ)] = "VIDIOC_INT_S_CRYSTAL_FREQ"
335}; 336};
336#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls) 337#define V4L2_INT_IOCTLS ARRAY_SIZE(v4l2_int_ioctls)
337 338
@@ -667,6 +668,12 @@ void v4l_printk_ioctl_arg(char *s,unsigned int cmd, void *arg)
667 printk ("%s: input=0x%x, output=0x%x\n", s, p->input, p->output); 668 printk ("%s: input=0x%x, output=0x%x\n", s, p->input, p->output);
668 break; 669 break;
669 } 670 }
671 case VIDIOC_INT_S_CRYSTAL_FREQ:
672 {
673 struct v4l2_crystal_freq *p=arg;
674 printk ("%s: freq=%u, flags=0x%x\n", s, p->freq, p->flags);
675 break;
676 }
670 case VIDIOC_G_SLICED_VBI_CAP: 677 case VIDIOC_G_SLICED_VBI_CAP:
671 { 678 {
672 struct v4l2_sliced_vbi_cap *p=arg; 679 struct v4l2_sliced_vbi_cap *p=arg;