media: vb2: remove vb2_ops_wait_prepare/finish helpers
Since vb2 now relies on the presence of the vb2_queue lock field and there are no more drivers that use these helpers, it is safe to drop them. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>master
parent
cbb5cd440d
commit
d0730006da
|
|
@ -157,10 +157,10 @@ changing the e.g. exposure of the webcam.
|
||||||
Of course, you can always do all the locking yourself by leaving both lock
|
Of course, you can always do all the locking yourself by leaving both lock
|
||||||
pointers at ``NULL``.
|
pointers at ``NULL``.
|
||||||
|
|
||||||
In the case of :ref:`videobuf2 <vb2_framework>` you will need to implement the
|
In the case of :ref:`videobuf2 <vb2_framework>` you must set the ``queue->lock``
|
||||||
``wait_prepare()`` and ``wait_finish()`` callbacks to unlock/lock if applicable.
|
pointer to the lock you use to serialize the queuing ioctls. This ensures that
|
||||||
If you use the ``queue->lock`` pointer, then you can use the helper functions
|
that lock is released while waiting in ``VIDIOC_DQBUF`` for a buffer to arrive,
|
||||||
:c:func:`vb2_ops_wait_prepare` and :c:func:`vb2_ops_wait_finish`.
|
and it is retaken afterwards.
|
||||||
|
|
||||||
The implementation of a hotplug disconnect should also take the lock from
|
The implementation of a hotplug disconnect should also take the lock from
|
||||||
:c:type:`video_device` before calling v4l2_device_disconnect. If you are also
|
:c:type:`video_device` before calling v4l2_device_disconnect. If you are also
|
||||||
|
|
|
||||||
|
|
@ -1302,20 +1302,6 @@ void vb2_video_unregister_device(struct video_device *vdev)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(vb2_video_unregister_device);
|
EXPORT_SYMBOL_GPL(vb2_video_unregister_device);
|
||||||
|
|
||||||
/* vb2_ops helpers. Only use if vq->lock is non-NULL. */
|
|
||||||
|
|
||||||
void vb2_ops_wait_prepare(struct vb2_queue *vq)
|
|
||||||
{
|
|
||||||
mutex_unlock(vq->lock);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(vb2_ops_wait_prepare);
|
|
||||||
|
|
||||||
void vb2_ops_wait_finish(struct vb2_queue *vq)
|
|
||||||
{
|
|
||||||
mutex_lock(vq->lock);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(vb2_ops_wait_finish);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note that this function is called during validation time and
|
* Note that this function is called during validation time and
|
||||||
* thus the req_queue_mutex is held to ensure no request objects
|
* thus the req_queue_mutex is held to ensure no request objects
|
||||||
|
|
|
||||||
|
|
@ -367,24 +367,6 @@ unsigned long vb2_fop_get_unmapped_area(struct file *file, unsigned long addr,
|
||||||
*/
|
*/
|
||||||
void vb2_video_unregister_device(struct video_device *vdev);
|
void vb2_video_unregister_device(struct video_device *vdev);
|
||||||
|
|
||||||
/**
|
|
||||||
* vb2_ops_wait_prepare - helper function to lock a struct &vb2_queue
|
|
||||||
*
|
|
||||||
* @vq: pointer to &struct vb2_queue
|
|
||||||
*
|
|
||||||
* ..note:: only use if vq->lock is non-NULL.
|
|
||||||
*/
|
|
||||||
void vb2_ops_wait_prepare(struct vb2_queue *vq);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* vb2_ops_wait_finish - helper function to unlock a struct &vb2_queue
|
|
||||||
*
|
|
||||||
* @vq: pointer to &struct vb2_queue
|
|
||||||
*
|
|
||||||
* ..note:: only use if vq->lock is non-NULL.
|
|
||||||
*/
|
|
||||||
void vb2_ops_wait_finish(struct vb2_queue *vq);
|
|
||||||
|
|
||||||
struct media_request;
|
struct media_request;
|
||||||
int vb2_request_validate(struct media_request *req);
|
int vb2_request_validate(struct media_request *req);
|
||||||
void vb2_request_queue(struct media_request *req);
|
void vb2_request_queue(struct media_request *req);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue