v4l2_ctrl_request_complete(9)
π v4l2_ctrl_request_complete β official Kernel API Manual energy β¨
okay bestie, so we're in the Kernel API Manual and this little icon is called v4l2_ctrl_request_complete(9), and no cap it's literally the "wrap up the request, we're done here" function. periodt.
πΈ NAME πΈ
v4l2_ctrl_request_complete β Complete a control handler request object π like, finish the request object that belongs to a control handler, that's the whole job.
β¨ SYNOPSIS β¨
void v4l2_ctrl_request_complete (struct media_request *req , struct
v4l2_ctrl_handler *parent );
it returns void, so don't be out here waiting for a return value, she gives you nothing back π
π¦ ARGUMENTS π¦
reqβ The request π thestruct media_request *you're completing, main character of the operation.parentβ The parent control handler, and iykyk it's the'priv'inmedia_request_object_findπ that's your handler, bestie.
π DESCRIPTION π
so here's the vibe check: this function is to be called on each control handler that may have had a request object associated with it, which is basically the control handlers of a driver that supports requests. if your driver does requests, this is your moment π«Ά
the way it works is honestly iconic:
- first, the function obtains the values of any volatile controls in the control handler and attaches them to the request π₯ get those values, pin them to the request, slay.
- then, the function completes the request object π done, finished, closed out, no notes.
lowkey important: it's each control handler that may have had a request object associated with it β not one, not some, each π don't skip any of them or it's giving incomplete.
π SEE ALSO π
okay this list is long but every single one of these ate, so here we go π
- Kernel file
./include/media/v4l2-ctrls.hπ union v4l2_ctrl_ptr(9)v4l2_ctrl_ptr_create(9)struct v4l2_ctrl_ops(9)struct v4l2_ctrl_type_ops(9)v4l2_ctrl_notify_fnc(9)struct v4l2_ctrl(9)struct v4l2_ctrl_ref(9)struct v4l2_ctrl_handler(9)struct v4l2_ctrl_config(9)v4l2_ctrl_fill(9)v4l2_ctrl_handler_init_class(9)v4l2_ctrl_handler_init(9)v4l2_ctrl_handler_free(9)v4l2_ctrl_lock(9)v4l2_ctrl_unlock(9)__v4l2_ctrl_handler_setup(9)v4l2_ctrl_handler_setup(9)v4l2_ctrl_handler_log_status(9)v4l2_ctrl_new_custom(9)v4l2_ctrl_new_std(9)v4l2_ctrl_new_std_menu(9)v4l2_ctrl_new_std_menu_items(9)v4l2_ctrl_new_std_compound(9)v4l2_ctrl_new_int_menu(9)v4l2_ctrl_filter(9)v4l2_ctrl_add_handler(9)v4l2_ctrl_radio_filter(9)v4l2_ctrl_cluster(9)v4l2_ctrl_auto_cluster(9)v4l2_ctrl_find(9)v4l2_ctrl_activate(9)__v4l2_ctrl_grab(9)v4l2_ctrl_grab(9)__v4l2_ctrl_modify_range(9)v4l2_ctrl_modify_range(9)__v4l2_ctrl_modify_dimensions(9)v4l2_ctrl_modify_dimensions(9)v4l2_ctrl_notify(9)v4l2_ctrl_get_name(9)v4l2_ctrl_get_menu(9)v4l2_ctrl_get_int_menu(9)v4l2_ctrl_g_ctrl(9)__v4l2_ctrl_s_ctrl(9)v4l2_ctrl_s_ctrl(9)v4l2_ctrl_g_ctrl_int64(9)__v4l2_ctrl_s_ctrl_int64(9)v4l2_ctrl_s_ctrl_int64(9)__v4l2_ctrl_s_ctrl_string(9)v4l2_ctrl_s_ctrl_string(9)__v4l2_ctrl_s_ctrl_compound(9)v4l2_ctrl_s_ctrl_compound(9)v4l2_ctrl_replace(9)v4l2_ctrl_merge(9)v4l2_ctrl_log_status(9)v4l2_ctrl_subscribe_event(9)v4l2_ctrl_poll(9)v4l2_ctrl_request_setup(9)v4l2_ctrl_request_hdl_find(9)v4l2_ctrl_request_hdl_put(9)v4l2_ctrl_request_hdl_ctrl_find(9)v4l2_queryctrl(9)v4l2_query_ext_ctrl_to_v4l2_queryctrl(9)v4l2_query_ext_ctrl(9)v4l2_querymenu(9)v4l2_g_ctrl(9)v4l2_s_ctrl(9)v4l2_g_ext_ctrls(9)v4l2_try_ext_ctrls(9)v4l2_s_ext_ctrls(9)v4l2_ctrl_subdev_subscribe_event(9)v4l2_ctrl_subdev_log_status(9)v4l2_ctrl_new_fwnode_properties(9)v4l2_ctrl_type_op_equal(9)v4l2_ctrl_type_op_init(9)v4l2_ctrl_type_op_log(9)v4l2_ctrl_type_op_validate(9)
and that's the whole page bestie, go forth and complete those requests π
mwah π this page lives in ./include/media, and it's stamped October 2026 β see you then, girlypop πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms