Lines Matching refs:hdl

19 void v4l2_ctrl_handler_init_request(struct v4l2_ctrl_handler *hdl)  in v4l2_ctrl_handler_init_request()  argument
21 INIT_LIST_HEAD(&hdl->requests); in v4l2_ctrl_handler_init_request()
22 INIT_LIST_HEAD(&hdl->requests_queued); in v4l2_ctrl_handler_init_request()
23 hdl->request_is_queued = false; in v4l2_ctrl_handler_init_request()
24 media_request_object_init(&hdl->req_obj); in v4l2_ctrl_handler_init_request()
28 void v4l2_ctrl_handler_free_request(struct v4l2_ctrl_handler *hdl) in v4l2_ctrl_handler_free_request() argument
39 if (hdl->req_obj.ops || list_empty(&hdl->requests)) in v4l2_ctrl_handler_free_request()
47 list_for_each_entry_safe(req, next_req, &hdl->requests, requests) { in v4l2_ctrl_handler_free_request()
53 static int v4l2_ctrl_request_clone(struct v4l2_ctrl_handler *hdl, in v4l2_ctrl_request_clone() argument
59 if (WARN_ON(!hdl || hdl == from)) in v4l2_ctrl_request_clone()
62 if (hdl->error) in v4l2_ctrl_request_clone()
63 return hdl->error; in v4l2_ctrl_request_clone()
65 WARN_ON(hdl->lock != &hdl->_lock); in v4l2_ctrl_request_clone()
75 err = handler_new_ref(hdl, ctrl, &new_ref, false, true); in v4l2_ctrl_request_clone()
85 struct v4l2_ctrl_handler *hdl = in v4l2_ctrl_request_queue() local
90 list_add_tail(&hdl->requests_queued, &main_hdl->requests_queued); in v4l2_ctrl_request_queue()
91 hdl->request_is_queued = true; in v4l2_ctrl_request_queue()
97 struct v4l2_ctrl_handler *hdl = in v4l2_ctrl_request_unbind() local
102 list_del_init(&hdl->requests); in v4l2_ctrl_request_unbind()
103 if (hdl->request_is_queued) { in v4l2_ctrl_request_unbind()
104 list_del_init(&hdl->requests_queued); in v4l2_ctrl_request_unbind()
105 hdl->request_is_queued = false; in v4l2_ctrl_request_unbind()
112 struct v4l2_ctrl_handler *hdl = in v4l2_ctrl_request_release() local
115 v4l2_ctrl_handler_free(hdl); in v4l2_ctrl_request_release()
116 kfree(hdl); in v4l2_ctrl_request_release()
142 v4l2_ctrl_request_hdl_ctrl_find(struct v4l2_ctrl_handler *hdl, u32 id) in v4l2_ctrl_request_hdl_ctrl_find() argument
144 struct v4l2_ctrl_ref *ref = find_ref_lock(hdl, id); in v4l2_ctrl_request_hdl_ctrl_find()
151 struct v4l2_ctrl_handler *hdl, in v4l2_ctrl_request_bind() argument
156 ret = v4l2_ctrl_request_clone(hdl, from); in v4l2_ctrl_request_bind()
160 from, false, &hdl->req_obj); in v4l2_ctrl_request_bind()
163 list_add_tail(&hdl->requests, &from->requests); in v4l2_ctrl_request_bind()
171 v4l2_ctrls_find_req_obj(struct v4l2_ctrl_handler *hdl, in v4l2_ctrls_find_req_obj() argument
184 obj = media_request_object_find(req, &req_ops, hdl); in v4l2_ctrls_find_req_obj()
206 ret = v4l2_ctrl_handler_init(new_hdl, (hdl->nr_of_buckets - 1) * 8); in v4l2_ctrls_find_req_obj()
208 ret = v4l2_ctrl_request_bind(req, new_hdl, hdl); in v4l2_ctrls_find_req_obj()
219 int v4l2_g_ext_ctrls_request(struct v4l2_ctrl_handler *hdl, struct video_device *vdev, in v4l2_g_ext_ctrls_request() argument
244 obj = v4l2_ctrls_find_req_obj(hdl, req, false); in v4l2_g_ext_ctrls_request()
251 hdl = container_of(obj, struct v4l2_ctrl_handler, in v4l2_g_ext_ctrls_request()
253 ret = v4l2_g_ext_ctrls_common(hdl, cs, vdev); in v4l2_g_ext_ctrls_request()
262 struct v4l2_ctrl_handler *hdl, in try_set_ext_ctrls_request() argument
298 obj = v4l2_ctrls_find_req_obj(hdl, req, set); in try_set_ext_ctrls_request()
309 hdl = container_of(obj, struct v4l2_ctrl_handler, in try_set_ext_ctrls_request()
311 ret = try_set_ext_ctrls_common(fh, hdl, cs, vdev, set); in try_set_ext_ctrls_request()
328 struct v4l2_ctrl_handler *hdl; in v4l2_ctrl_request_complete() local
344 hdl = kzalloc(sizeof(*hdl), GFP_KERNEL); in v4l2_ctrl_request_complete()
345 if (!hdl) in v4l2_ctrl_request_complete()
348 ret = v4l2_ctrl_handler_init(hdl, (main_hdl->nr_of_buckets - 1) * 8); in v4l2_ctrl_request_complete()
350 ret = v4l2_ctrl_request_bind(req, hdl, main_hdl); in v4l2_ctrl_request_complete()
352 v4l2_ctrl_handler_free(hdl); in v4l2_ctrl_request_complete()
353 kfree(hdl); in v4l2_ctrl_request_complete()
356 hdl->request_is_queued = true; in v4l2_ctrl_request_complete()
359 hdl = container_of(obj, struct v4l2_ctrl_handler, req_obj); in v4l2_ctrl_request_complete()
361 list_for_each_entry(ref, &hdl->ctrl_refs, node) { in v4l2_ctrl_request_complete()
386 WARN_ON(!hdl->request_is_queued); in v4l2_ctrl_request_complete()
387 list_del_init(&hdl->requests_queued); in v4l2_ctrl_request_complete()
388 hdl->request_is_queued = false; in v4l2_ctrl_request_complete()
399 struct v4l2_ctrl_handler *hdl; in v4l2_ctrl_request_setup() local
421 hdl = container_of(obj, struct v4l2_ctrl_handler, req_obj); in v4l2_ctrl_request_setup()
423 list_for_each_entry(ref, &hdl->ctrl_refs, node) in v4l2_ctrl_request_setup()
426 list_for_each_entry(ref, &hdl->ctrl_refs, node) { in v4l2_ctrl_request_setup()
443 find_ref(hdl, master->cluster[i]->id); in v4l2_ctrl_request_setup()
459 find_ref(hdl, master->cluster[i]->id); in v4l2_ctrl_request_setup()