From: Gerd Knorr This patch fixes a bug in the v4l1-compat module and makes it pass the correct buffer type to the v4l2 driver on VIDIOC_STREAM(ON|OFF) ioctls. --- 25-akpm/drivers/media/video/v4l1-compat.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN drivers/media/video/v4l1-compat.c~v4l1-compatibility-module-fix drivers/media/video/v4l1-compat.c --- 25/drivers/media/video/v4l1-compat.c~v4l1-compatibility-module-fix Tue Mar 2 13:32:43 2004 +++ 25-akpm/drivers/media/video/v4l1-compat.c Tue Mar 2 13:32:43 2004 @@ -503,10 +503,11 @@ v4l_compat_translate_ioctl(struct inode int *on = arg; if (0 == *on) { + enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; /* dirty hack time. But v4l1 has no STREAMOFF * equivalent in the API, and this one at * least comes close ... */ - drv(inode, file, VIDIOC_STREAMOFF, NULL); + drv(inode, file, VIDIOC_STREAMOFF, &type); } err = drv(inode, file, VIDIOC_OVERLAY, arg); if (err < 0) @@ -857,6 +858,7 @@ v4l_compat_translate_ioctl(struct inode case VIDIOCMCAPTURE: /* capture a frame */ { struct video_mmap *mm = arg; + enum v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt2 = kmalloc(sizeof(*fmt2),GFP_KERNEL); memset(&buf2,0,sizeof(buf2)); @@ -897,7 +899,7 @@ v4l_compat_translate_ioctl(struct inode dprintk("VIDIOCMCAPTURE / VIDIOC_QBUF: %d\n",err); break; } - err = drv(inode, file, VIDIOC_STREAMON, NULL); + err = drv(inode, file, VIDIOC_STREAMON, &type); if (err < 0) dprintk("VIDIOCMCAPTURE / VIDIOC_STREAMON: %d\n",err); break; _