|
@@ -1111,7 +1111,54 @@ void v4l2_ctrl_request_setup(struct media_request *req,
|
|
|
* request object.
|
|
|
*/
|
|
|
void v4l2_ctrl_request_complete(struct media_request *req,
|
|
|
- struct v4l2_ctrl_handler *hdl);
|
|
|
+ struct v4l2_ctrl_handler *parent);
|
|
|
+
|
|
|
+/**
|
|
|
+ * v4l2_ctrl_request_hdl_find - Find the control handler in the request
|
|
|
+ *
|
|
|
+ * @req: The request
|
|
|
+ * @parent: The parent control handler ('priv' in media_request_object_find())
|
|
|
+ *
|
|
|
+ * This function finds the control handler in the request. It may return
|
|
|
+ * NULL if not found. When done, you must call v4l2_ctrl_request_put_hdl()
|
|
|
+ * with the returned handler pointer.
|
|
|
+ *
|
|
|
+ * If the request is not in state VALIDATING or QUEUED, then this function
|
|
|
+ * will always return NULL.
|
|
|
+ *
|
|
|
+ * Note that in state VALIDATING the req_queue_mutex is held, so
|
|
|
+ * no objects can be added or deleted from the request.
|
|
|
+ *
|
|
|
+ * In state QUEUED it is the driver that will have to ensure this.
|
|
|
+ */
|
|
|
+struct v4l2_ctrl_handler *v4l2_ctrl_request_hdl_find(struct media_request *req,
|
|
|
+ struct v4l2_ctrl_handler *parent);
|
|
|
+
|
|
|
+/**
|
|
|
+ * v4l2_ctrl_request_hdl_put - Put the control handler
|
|
|
+ *
|
|
|
+ * @hdl: Put this control handler
|
|
|
+ *
|
|
|
+ * This function released the control handler previously obtained from'
|
|
|
+ * v4l2_ctrl_request_hdl_find().
|
|
|
+ */
|
|
|
+static inline void v4l2_ctrl_request_hdl_put(struct v4l2_ctrl_handler *hdl)
|
|
|
+{
|
|
|
+ if (hdl)
|
|
|
+ media_request_object_put(&hdl->req_obj);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * v4l2_ctrl_request_ctrl_find() - Find a control with the given ID.
|
|
|
+ *
|
|
|
+ * @hdl: The control handler from the request.
|
|
|
+ * @id: The ID of the control to find.
|
|
|
+ *
|
|
|
+ * This function returns a pointer to the control if this control is
|
|
|
+ * part of the request or NULL otherwise.
|
|
|
+ */
|
|
|
+struct v4l2_ctrl *
|
|
|
+v4l2_ctrl_request_hdl_ctrl_find(struct v4l2_ctrl_handler *hdl, u32 id);
|
|
|
|
|
|
/* Helpers for ioctl_ops */
|
|
|
|