spin_unlock_irqrestore(&camif->slock, flags);
 }
 
-static void camif_lock(struct vb2_queue *vq)
-{
-       struct camif_vp *vp = vb2_get_drv_priv(vq);
-       mutex_lock(&vp->camif->lock);
-}
-
-static void camif_unlock(struct vb2_queue *vq)
-{
-       struct camif_vp *vp = vb2_get_drv_priv(vq);
-       mutex_unlock(&vp->camif->lock);
-}
-
 static const struct vb2_ops s3c_camif_qops = {
        .queue_setup     = queue_setup,
        .buf_prepare     = buffer_prepare,
        .buf_queue       = buffer_queue,
-       .wait_prepare    = camif_unlock,
-       .wait_finish     = camif_lock,
+       .wait_prepare    = vb2_ops_wait_prepare,
+       .wait_finish     = vb2_ops_wait_finish,
        .start_streaming = start_streaming,
        .stop_streaming  = stop_streaming,
 };
        q->buf_struct_size = sizeof(struct camif_buffer);
        q->drv_priv = vp;
        q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
+       q->lock = &vp->camif->lock;
 
        ret = vb2_queue_init(q);
        if (ret)