Lines Matching full:hdl
204 static int prepare_ext_ctrls(struct v4l2_ctrl_handler *hdl, in prepare_ext_ctrls() argument
241 ref = find_ref_lock(hdl, id); in prepare_ext_ctrls()
256 ref = find_ref_lock(hdl, ctrl->cluster[0]->id); in prepare_ext_ctrls()
299 mutex_lock(hdl->lock); in prepare_ext_ctrls()
327 mutex_unlock(hdl->lock); in prepare_ext_ctrls()
336 static int class_check(struct v4l2_ctrl_handler *hdl, u32 which) in class_check() argument
341 return find_ref_lock(hdl, which | 1) ? 0 : -EINVAL; in class_check()
351 int v4l2_g_ext_ctrls_common(struct v4l2_ctrl_handler *hdl, in v4l2_g_ext_ctrls_common() argument
367 if (!hdl) in v4l2_g_ext_ctrls_common()
371 return class_check(hdl, cs->which); in v4l2_g_ext_ctrls_common()
380 ret = prepare_ext_ctrls(hdl, cs, helpers, vdev, true); in v4l2_g_ext_ctrls_common()
450 int v4l2_g_ext_ctrls(struct v4l2_ctrl_handler *hdl, struct video_device *vdev, in v4l2_g_ext_ctrls() argument
454 return v4l2_g_ext_ctrls_request(hdl, vdev, mdev, cs); in v4l2_g_ext_ctrls()
456 return v4l2_g_ext_ctrls_common(hdl, cs, vdev); in v4l2_g_ext_ctrls()
515 struct v4l2_ctrl_handler *hdl, in try_set_ext_ctrls_common() argument
535 if (!hdl) { in try_set_ext_ctrls_common()
542 return class_check(hdl, cs->which); in try_set_ext_ctrls_common()
550 ret = prepare_ext_ctrls(hdl, cs, helpers, vdev, false); in try_set_ext_ctrls_common()
622 !hdl->req_obj.req && set, 0); in try_set_ext_ctrls_common()
623 if (!ret && hdl->req_obj.req && set) { in try_set_ext_ctrls_common()
626 find_ref(hdl, master->cluster[j]->id); in try_set_ext_ctrls_common()
650 struct v4l2_ctrl_handler *hdl, in try_set_ext_ctrls() argument
658 return try_set_ext_ctrls_request(fh, hdl, vdev, mdev, cs, set); in try_set_ext_ctrls()
660 ret = try_set_ext_ctrls_common(fh, hdl, cs, vdev, set); in try_set_ext_ctrls()
669 int v4l2_try_ext_ctrls(struct v4l2_ctrl_handler *hdl, in v4l2_try_ext_ctrls() argument
674 return try_set_ext_ctrls(NULL, hdl, vdev, mdev, cs, false); in v4l2_try_ext_ctrls()
679 struct v4l2_ctrl_handler *hdl, in v4l2_s_ext_ctrls() argument
684 return try_set_ext_ctrls(fh, hdl, vdev, mdev, cs, true); in v4l2_s_ext_ctrls()
723 int v4l2_g_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_control *control) in v4l2_g_ctrl() argument
725 struct v4l2_ctrl *ctrl = v4l2_ctrl_find(hdl, control->id); in v4l2_g_ctrl()
781 int v4l2_s_ctrl(struct v4l2_fh *fh, struct v4l2_ctrl_handler *hdl, in v4l2_s_ctrl() argument
784 struct v4l2_ctrl *ctrl = v4l2_ctrl_find(hdl, control->id); in v4l2_s_ctrl()
940 int v4l2_query_ext_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_query_ext_ctrl *qc) in v4l2_query_ext_ctrl() argument
947 if (!hdl) in v4l2_query_ext_ctrl()
950 mutex_lock(hdl->lock); in v4l2_query_ext_ctrl()
953 ref = find_ref(hdl, id); in v4l2_query_ext_ctrl()
955 if ((qc->id & next_flags) && !list_empty(&hdl->ctrl_refs)) { in v4l2_query_ext_ctrl()
972 if (id >= node2id(hdl->ctrl_refs.prev)) { in v4l2_query_ext_ctrl()
979 list_for_each_entry_continue(ref, &hdl->ctrl_refs, node) { in v4l2_query_ext_ctrl()
986 if (&ref->node == &hdl->ctrl_refs) in v4l2_query_ext_ctrl()
995 list_for_each_entry(ref, &hdl->ctrl_refs, node) { in v4l2_query_ext_ctrl()
1002 if (&ref->node == &hdl->ctrl_refs) in v4l2_query_ext_ctrl()
1006 mutex_unlock(hdl->lock); in v4l2_query_ext_ctrl()
1037 int v4l2_queryctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_queryctrl *qc) in v4l2_queryctrl() argument
1042 rc = v4l2_query_ext_ctrl(hdl, &qec); in v4l2_queryctrl()
1074 int v4l2_querymenu(struct v4l2_ctrl_handler *hdl, struct v4l2_querymenu *qm) in v4l2_querymenu() argument
1079 ctrl = v4l2_ctrl_find(hdl, qm->id); in v4l2_querymenu()