v4l2 模块专题v4l2_ctrl_handler
v4l2 模块专题分析
dianlong_lee
普通造bug码农一枚。。。
展开
-
v4l2架构专题模块handler分析 -- ioctl分析
前面分析了handler的创建以及添加ctrl的过程,对于ctrl来说,ctrl的类型有很多,这里仅仅分析了一个而已,其他的基本也是这个套路。既然handler创建了,ctrl添加了,那么原创 2021-06-09 13:36:14 · 1184 阅读 · 1 评论 -
v4l2架构专题模块handler分析 -- handler使能(2)s_ctrl
接着上一篇分析int __v4l2_ctrl_handler_setup(struct v4l2_ctrl_handler *hdl){ struct v4l2_ctrl *ctrl; int ret = 0; if (hdl == NULL) return 0; lockdep_assert_held(hdl->lock); list_for_each_entry(ctrl, &hdl->ctrls, node) ctrl->done = fals原创 2021-06-08 20:37:15 · 973 阅读 · 1 评论 -
v4l2架构专题模块handler分析 -- handler使能(1)cluster
在驱动代码中,一般都是在probe中初始化handler及创建ctrl,在stream_on的时候会去使能handler,对应的函数是 __v4l2_ctrl_handler_setup原创 2021-06-08 17:28:47 · 959 阅读 · 0 评论 -
v4l2架构专题模块handler分析 -- handler ctrl的注册2
Linux v4l2架构学习总链接上一篇文章中忽略了ctrl class,这里补上static int handler_new_ref(struct v4l2_ctrl_handler *hdl, struct v4l2_ctrl *ctrl){ struct v4l2_ctrl_ref *ref; struct v4l2_ctrl_ref *new_ref; u32 id = ctrl->id; u32 class_ctrl = V4L2_CTRL_ID2WHICH(原创 2021-06-08 11:38:36 · 742 阅读 · 0 评论 -
v4l2架构专题模块handler分析 --- handler的初始化及handler ctrl注册
Linux v4l2架构学习总链接handler初始化代码调用如下:v4l2_ctrl_handler_init(handler, 9);对应源码:#define v4l2_ctrl_handler_init(hdl, nr_of_controls_hint) \ v4l2_ctrl_handler_init_class(hdl, nr_of_controls_hint, NULL, NULL)int v4l2_ctrl_handler_init_class(struct v4l2原创 2021-04-26 14:35:06 · 2310 阅读 · 0 评论