From: Gerd Knorr The VIDIOC_CROPCAP ioctl had wrong R/W bits, this patch fixes it. --- 25-akpm/drivers/media/video/videodev.c | 3 +++ 25-akpm/include/linux/videodev2.h | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff -puN drivers/media/video/videodev.c~v4l-cropcap-ioctl-fix drivers/media/video/videodev.c --- 25/drivers/media/video/videodev.c~v4l-cropcap-ioctl-fix Mon Apr 5 14:46:02 2004 +++ 25-akpm/drivers/media/video/videodev.c Mon Apr 5 14:46:02 2004 @@ -160,6 +160,9 @@ video_fix_command(unsigned int cmd) case VIDIOC_G_AUDOUT_OLD: cmd = VIDIOC_G_AUDOUT; break; + case VIDIOC_CROPCAP_OLD: + cmd = VIDIOC_CROPCAP; + break; } return cmd; } diff -puN include/linux/videodev2.h~v4l-cropcap-ioctl-fix include/linux/videodev2.h --- 25/include/linux/videodev2.h~v4l-cropcap-ioctl-fix Mon Apr 5 14:46:02 2004 +++ 25-akpm/include/linux/videodev2.h Mon Apr 5 14:46:02 2004 @@ -869,7 +869,7 @@ struct v4l2_streamparm #define VIDIOC_S_MODULATOR _IOW ('V', 55, struct v4l2_modulator) #define VIDIOC_G_FREQUENCY _IOWR ('V', 56, struct v4l2_frequency) #define VIDIOC_S_FREQUENCY _IOW ('V', 57, struct v4l2_frequency) -#define VIDIOC_CROPCAP _IOR ('V', 58, struct v4l2_cropcap) +#define VIDIOC_CROPCAP _IOWR ('V', 58, struct v4l2_cropcap) #define VIDIOC_G_CROP _IOWR ('V', 59, struct v4l2_crop) #define VIDIOC_S_CROP _IOW ('V', 60, struct v4l2_crop) #define VIDIOC_G_JPEGCOMP _IOR ('V', 61, struct v4l2_jpegcompression) @@ -887,6 +887,7 @@ struct v4l2_streamparm #define VIDIOC_S_CTRL_OLD _IOW ('V', 28, struct v4l2_control) #define VIDIOC_G_AUDIO_OLD _IOWR ('V', 33, struct v4l2_audio) #define VIDIOC_G_AUDOUT_OLD _IOWR ('V', 49, struct v4l2_audioout) +#define VIDIOC_CROPCAP_OLD _IOR ('V', 58, struct v4l2_cropcap) #define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */ _