if (ret < 0)
                return ret;
 
-       if ((ret = uvc_commit_video(video, &probe)) < 0)
-               return ret;
-
        memcpy(&video->streaming->ctrl, &probe, sizeof probe);
        video->streaming->cur_format = format;
        video->streaming->cur_frame = frame;
        if ((ret = uvc_probe_video(video, &probe)) < 0)
                return ret;
 
-       /* Commit the new settings. */
-       if ((ret = uvc_commit_video(video, &probe)) < 0)
-               return ret;
-
        memcpy(&video->streaming->ctrl, &probe, sizeof probe);
 
        /* Return the actual frame period. */
 
 
        video->frozen = 0;
 
-       if ((ret = uvc_set_video_ctrl(video, &video->streaming->ctrl, 0)) < 0) {
+       if ((ret = uvc_commit_video(video, &video->streaming->ctrl)) < 0) {
                uvc_queue_enable(&video->queue, 0);
                return ret;
        }
                        break;
        }
 
-       /* Commit the default settings. */
        probe->bFormatIndex = format->index;
        probe->bFrameIndex = frame->bFrameIndex;
-       if ((ret = uvc_set_video_ctrl(video, probe, 0)) < 0)
-               return ret;
 
        video->streaming->cur_format = format;
        video->streaming->cur_frame = frame;
        if ((ret = uvc_queue_enable(&video->queue, 1)) < 0)
                return ret;
 
+       /* Commit the streaming parameters. */
+       if ((ret = uvc_commit_video(video, &video->streaming->ctrl)) < 0)
+               return ret;
+
        return uvc_init_video(video, GFP_KERNEL);
 }