{
        struct video_device *vdev = to_video_device(cd);
        struct usb_usbvision *usbvision = video_get_drvdata(vdev);
-       struct v4l2_control ctrl;
-       ctrl.id = V4L2_CID_HUE;
-       ctrl.value = 0;
-       if (usbvision->user)
-               call_all(usbvision, core, g_ctrl, &ctrl);
-       return sprintf(buf, "%d\n", ctrl.value);
+       s32 val = v4l2_ctrl_g_ctrl(v4l2_ctrl_find(&usbvision->hdl,
+                                                 V4L2_CID_HUE));
+
+       return sprintf(buf, "%d\n", val);
 }
 static DEVICE_ATTR(hue, S_IRUGO, show_hue, NULL);
 
 {
        struct video_device *vdev = to_video_device(cd);
        struct usb_usbvision *usbvision = video_get_drvdata(vdev);
-       struct v4l2_control ctrl;
-       ctrl.id = V4L2_CID_CONTRAST;
-       ctrl.value = 0;
-       if (usbvision->user)
-               call_all(usbvision, core, g_ctrl, &ctrl);
-       return sprintf(buf, "%d\n", ctrl.value);
+       s32 val = v4l2_ctrl_g_ctrl(v4l2_ctrl_find(&usbvision->hdl,
+                                                 V4L2_CID_CONTRAST));
+
+       return sprintf(buf, "%d\n", val);
 }
 static DEVICE_ATTR(contrast, S_IRUGO, show_contrast, NULL);
 
 {
        struct video_device *vdev = to_video_device(cd);
        struct usb_usbvision *usbvision = video_get_drvdata(vdev);
-       struct v4l2_control ctrl;
-       ctrl.id = V4L2_CID_BRIGHTNESS;
-       ctrl.value = 0;
-       if (usbvision->user)
-               call_all(usbvision, core, g_ctrl, &ctrl);
-       return sprintf(buf, "%d\n", ctrl.value);
+       s32 val = v4l2_ctrl_g_ctrl(v4l2_ctrl_find(&usbvision->hdl,
+                                                 V4L2_CID_BRIGHTNESS));
+
+       return sprintf(buf, "%d\n", val);
 }
 static DEVICE_ATTR(brightness, S_IRUGO, show_brightness, NULL);
 
 {
        struct video_device *vdev = to_video_device(cd);
        struct usb_usbvision *usbvision = video_get_drvdata(vdev);
-       struct v4l2_control ctrl;
-       ctrl.id = V4L2_CID_SATURATION;
-       ctrl.value = 0;
-       if (usbvision->user)
-               call_all(usbvision, core, g_ctrl, &ctrl);
-       return sprintf(buf, "%d\n", ctrl.value);
+       s32 val = v4l2_ctrl_g_ctrl(v4l2_ctrl_find(&usbvision->hdl,
+                                                 V4L2_CID_SATURATION));
+
+       return sprintf(buf, "%d\n", val);
 }
 static DEVICE_ATTR(saturation, S_IRUGO, show_saturation, NULL);