diff options
Diffstat (limited to 'drivers/media/video/v4l2-ioctl.c')
-rw-r--r-- | drivers/media/video/v4l2-ioctl.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c index b063381f4b3b..52d687b165e0 100644 --- a/drivers/media/video/v4l2-ioctl.c +++ b/drivers/media/video/v4l2-ioctl.c | |||
@@ -266,7 +266,7 @@ static const char *v4l2_ioctls[] = { | |||
266 | [_IOC_NR(VIDIOC_DBG_S_REGISTER)] = "VIDIOC_DBG_S_REGISTER", | 266 | [_IOC_NR(VIDIOC_DBG_S_REGISTER)] = "VIDIOC_DBG_S_REGISTER", |
267 | [_IOC_NR(VIDIOC_DBG_G_REGISTER)] = "VIDIOC_DBG_G_REGISTER", | 267 | [_IOC_NR(VIDIOC_DBG_G_REGISTER)] = "VIDIOC_DBG_G_REGISTER", |
268 | 268 | ||
269 | [_IOC_NR(VIDIOC_G_CHIP_IDENT)] = "VIDIOC_G_CHIP_IDENT", | 269 | [_IOC_NR(VIDIOC_DBG_G_CHIP_IDENT)] = "VIDIOC_DBG_G_CHIP_IDENT", |
270 | [_IOC_NR(VIDIOC_S_HW_FREQ_SEEK)] = "VIDIOC_S_HW_FREQ_SEEK", | 270 | [_IOC_NR(VIDIOC_S_HW_FREQ_SEEK)] = "VIDIOC_S_HW_FREQ_SEEK", |
271 | #endif | 271 | #endif |
272 | }; | 272 | }; |
@@ -392,14 +392,14 @@ video_fix_command(unsigned int cmd) | |||
392 | /* | 392 | /* |
393 | * Obsolete usercopy function - Should be removed soon | 393 | * Obsolete usercopy function - Should be removed soon |
394 | */ | 394 | */ |
395 | int | 395 | long |
396 | video_usercopy(struct file *file, unsigned int cmd, unsigned long arg, | 396 | video_usercopy(struct file *file, unsigned int cmd, unsigned long arg, |
397 | v4l2_kioctl func) | 397 | v4l2_kioctl func) |
398 | { | 398 | { |
399 | char sbuf[128]; | 399 | char sbuf[128]; |
400 | void *mbuf = NULL; | 400 | void *mbuf = NULL; |
401 | void *parg = NULL; | 401 | void *parg = NULL; |
402 | int err = -EINVAL; | 402 | long err = -EINVAL; |
403 | int is_ext_ctrl; | 403 | int is_ext_ctrl; |
404 | size_t ctrls_size = 0; | 404 | size_t ctrls_size = 0; |
405 | void __user *user_ptr = NULL; | 405 | void __user *user_ptr = NULL; |
@@ -623,13 +623,13 @@ static int check_fmt(const struct v4l2_ioctl_ops *ops, enum v4l2_buf_type type) | |||
623 | return -EINVAL; | 623 | return -EINVAL; |
624 | } | 624 | } |
625 | 625 | ||
626 | static int __video_do_ioctl(struct file *file, | 626 | static long __video_do_ioctl(struct file *file, |
627 | unsigned int cmd, void *arg) | 627 | unsigned int cmd, void *arg) |
628 | { | 628 | { |
629 | struct video_device *vfd = video_devdata(file); | 629 | struct video_device *vfd = video_devdata(file); |
630 | const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops; | 630 | const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops; |
631 | void *fh = file->private_data; | 631 | void *fh = file->private_data; |
632 | int ret = -EINVAL; | 632 | long ret = -EINVAL; |
633 | 633 | ||
634 | if ((vfd->debug & V4L2_DEBUG_IOCTL) && | 634 | if ((vfd->debug & V4L2_DEBUG_IOCTL) && |
635 | !(vfd->debug & V4L2_DEBUG_IOCTL_ARG)) { | 635 | !(vfd->debug & V4L2_DEBUG_IOCTL_ARG)) { |
@@ -1720,7 +1720,7 @@ static int __video_do_ioctl(struct file *file, | |||
1720 | #ifdef CONFIG_VIDEO_ADV_DEBUG | 1720 | #ifdef CONFIG_VIDEO_ADV_DEBUG |
1721 | case VIDIOC_DBG_G_REGISTER: | 1721 | case VIDIOC_DBG_G_REGISTER: |
1722 | { | 1722 | { |
1723 | struct v4l2_register *p = arg; | 1723 | struct v4l2_dbg_register *p = arg; |
1724 | 1724 | ||
1725 | if (!capable(CAP_SYS_ADMIN)) | 1725 | if (!capable(CAP_SYS_ADMIN)) |
1726 | ret = -EPERM; | 1726 | ret = -EPERM; |
@@ -1730,7 +1730,7 @@ static int __video_do_ioctl(struct file *file, | |||
1730 | } | 1730 | } |
1731 | case VIDIOC_DBG_S_REGISTER: | 1731 | case VIDIOC_DBG_S_REGISTER: |
1732 | { | 1732 | { |
1733 | struct v4l2_register *p = arg; | 1733 | struct v4l2_dbg_register *p = arg; |
1734 | 1734 | ||
1735 | if (!capable(CAP_SYS_ADMIN)) | 1735 | if (!capable(CAP_SYS_ADMIN)) |
1736 | ret = -EPERM; | 1736 | ret = -EPERM; |
@@ -1739,9 +1739,9 @@ static int __video_do_ioctl(struct file *file, | |||
1739 | break; | 1739 | break; |
1740 | } | 1740 | } |
1741 | #endif | 1741 | #endif |
1742 | case VIDIOC_G_CHIP_IDENT: | 1742 | case VIDIOC_DBG_G_CHIP_IDENT: |
1743 | { | 1743 | { |
1744 | struct v4l2_chip_ident *p = arg; | 1744 | struct v4l2_dbg_chip_ident *p = arg; |
1745 | 1745 | ||
1746 | if (!ops->vidioc_g_chip_ident) | 1746 | if (!ops->vidioc_g_chip_ident) |
1747 | break; | 1747 | break; |
@@ -1750,6 +1750,11 @@ static int __video_do_ioctl(struct file *file, | |||
1750 | dbgarg(cmd, "chip_ident=%u, revision=0x%x\n", p->ident, p->revision); | 1750 | dbgarg(cmd, "chip_ident=%u, revision=0x%x\n", p->ident, p->revision); |
1751 | break; | 1751 | break; |
1752 | } | 1752 | } |
1753 | case VIDIOC_G_CHIP_IDENT_OLD: | ||
1754 | printk(KERN_ERR "VIDIOC_G_CHIP_IDENT has been deprecated and will disappear in 2.6.30.\n"); | ||
1755 | printk(KERN_ERR "It is a debugging ioctl and must not be used in applications!\n"); | ||
1756 | return -EINVAL; | ||
1757 | |||
1753 | case VIDIOC_S_HW_FREQ_SEEK: | 1758 | case VIDIOC_S_HW_FREQ_SEEK: |
1754 | { | 1759 | { |
1755 | struct v4l2_hw_freq_seek *p = arg; | 1760 | struct v4l2_hw_freq_seek *p = arg; |
@@ -1845,20 +1850,20 @@ static int __video_do_ioctl(struct file *file, | |||
1845 | if (vfd->debug & V4L2_DEBUG_IOCTL_ARG) { | 1850 | if (vfd->debug & V4L2_DEBUG_IOCTL_ARG) { |
1846 | if (ret < 0) { | 1851 | if (ret < 0) { |
1847 | v4l_print_ioctl(vfd->name, cmd); | 1852 | v4l_print_ioctl(vfd->name, cmd); |
1848 | printk(KERN_CONT " error %d\n", ret); | 1853 | printk(KERN_CONT " error %ld\n", ret); |
1849 | } | 1854 | } |
1850 | } | 1855 | } |
1851 | 1856 | ||
1852 | return ret; | 1857 | return ret; |
1853 | } | 1858 | } |
1854 | 1859 | ||
1855 | long __video_ioctl2(struct file *file, | 1860 | long video_ioctl2(struct file *file, |
1856 | unsigned int cmd, unsigned long arg) | 1861 | unsigned int cmd, unsigned long arg) |
1857 | { | 1862 | { |
1858 | char sbuf[128]; | 1863 | char sbuf[128]; |
1859 | void *mbuf = NULL; | 1864 | void *mbuf = NULL; |
1860 | void *parg = NULL; | 1865 | void *parg = NULL; |
1861 | int err = -EINVAL; | 1866 | long err = -EINVAL; |
1862 | int is_ext_ctrl; | 1867 | int is_ext_ctrl; |
1863 | size_t ctrls_size = 0; | 1868 | size_t ctrls_size = 0; |
1864 | void __user *user_ptr = NULL; | 1869 | void __user *user_ptr = NULL; |
@@ -1944,11 +1949,4 @@ out: | |||
1944 | kfree(mbuf); | 1949 | kfree(mbuf); |
1945 | return err; | 1950 | return err; |
1946 | } | 1951 | } |
1947 | EXPORT_SYMBOL(__video_ioctl2); | ||
1948 | |||
1949 | int video_ioctl2(struct inode *inode, struct file *file, | ||
1950 | unsigned int cmd, unsigned long arg) | ||
1951 | { | ||
1952 | return __video_ioctl2(file, cmd, arg); | ||
1953 | } | ||
1954 | EXPORT_SYMBOL(video_ioctl2); | 1952 | EXPORT_SYMBOL(video_ioctl2); |