V4L/DVB (5146): Make VIDIOC_INT_[SG]_REGISTER ioctls no longer internal only
[linux-2.6-block.git] / drivers / media / video / pvrusb2 / pvrusb2-v4l2.c
index 49f5d3c3614ccdb937e4b44ac9ed4ffc969807ff..cde5f5f3e8f2dab131a3e9454647d32ef02ac6af 100644 (file)
@@ -738,16 +738,20 @@ static int pvr2_v4l2_do_ioctl(struct inode *inode, struct file *file,
                break;
        }
 #ifdef CONFIG_VIDEO_ADV_DEBUG
-       case VIDIOC_INT_G_REGISTER:
-       case VIDIOC_INT_S_REGISTER:
+       case VIDIOC_DBG_S_REGISTER:
+               if (!capable(CAP_SYS_ADMIN)) {
+                       ret = -EPERM;
+                       break;
+               } /* fall through */
+       case VIDIOC_DBG_G_REGISTER:
        {
                u32 val;
                struct v4l2_register *req = (struct v4l2_register *)arg;
-               if (cmd == VIDIOC_INT_S_REGISTER) val = req->val;
+               if (cmd == VIDIOC_DBG_S_REGISTER) val = req->val;
                ret = pvr2_hdw_register_access(
                        hdw,req->i2c_id,req->reg,
-                       cmd == VIDIOC_INT_S_REGISTER,&val);
-               if (cmd == VIDIOC_INT_G_REGISTER) req->val = val;
+                       cmd == VIDIOC_DBG_S_REGISTER,&val);
+               if (cmd == VIDIOC_DBG_G_REGISTER) req->val = val;
                break;
        }
 #endif