所有的设备节点和子设备节点都是通过__video_register_device()注册的

1.对于video设备节点:

用户空间ioctl(VIDIOC_S_FMT)
---> v4l2_fops.unlocked_ioctl [v4l2_ioctl] 字符设备函数集合,此函数主要是使用&vin->lock上锁,然后调用rvin_mc_fops.unlocked_ioctl,返回后释放锁
  ---> rvin_mc_fops.unlocked_ioctl 进行用户空间传下来的参数检查,然后调用下一级函数
    ---> __video_do_ioctl() 进行类型和合法性检查,然后调用下一级
      ---> v4l2_ioctls.v4l_s_ctrl() 所以直接从此位置开始看就可以
        --->rvin_mc_ioctl_ops.vidioc_s_ext_ctrls

2.对于v4l-subdev设备节点:
用户空间ioctl(VIDIOC_S_FMT)
--->v4l2_fops.unlocked_ioctl [v4l2_ioctl] 字符设备函数集合
  --->v4l2_subdev_fops.unlocked_ioctl [subdev_ioctl]

 

2. i2c设备和驱动匹配过程

 [<ffff00000086e0b8>] cyttsp6_i2c_probe+0x70/0x108 [cyttsp6_i2c]
[<ffff00000851180c>] i2c_device_probe+0x2a4/0x2c8
[<ffff00000848dd0c>] driver_probe_device+0x22c/0x2d8
[<ffff00000848de74>] __driver_attach+0xbc/0xc0
[<ffff00000848be4c>] bus_for_each_dev+0x4c/0x98
[<ffff00000848d608>] driver_attach+0x20/0x28
[<ffff00000848d158>] bus_add_driver+0x1b8/0x228
[<ffff00000848e810>] driver_register+0x60/0xf8
[<ffff000008511074>] i2c_register_driver+0x44/0xa0

2018-07-01 23:35:52

v4l2框架函数调用关系的更多相关文章

  1. 嵌入式Linux驱动笔记(十八)------浅析V4L2框架之ioctl【转】

    转自:https://blog.csdn.net/Guet_Kite/article/details/78574781 权声明:本文为 风筝 博主原创文章,未经博主允许不得转载!!!!!!谢谢合作 h ...

  2. 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写

    一.V4L2框架主要结构体分析 V4L2(video for linux version 2),是内核中视频设备的驱动框架,为上层访问视频设备提供统一接口. V4L2整体框架如下图: 图中主要包括两层 ...

  3. V4L2框架分析学习二

    转载于:http://www.techbulo.com/1198.html v4l2_device v4l2_device在v4l2框架中充当所有v4l2_subdev的父设备,管理着注册在其下的子设 ...

  4. v4l2框架分析

    参考:https://www.cnblogs.com/fengong/p/4424823.html    http://www.cnblogs.com/fengong/p/4424895.html 一 ...

  5. v4l2框架

    参考:https://www.cnblogs.com/tuotuteng/p/4648387.html http://blog.sina.com.cn/s/blog_c91863e60102w65w. ...

  6. V4L2框架分析学习

    1.概述 Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口.凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代 ...

  7. V4L2框架分析学习一

    转载于http://www.techbulo.com/1193.html 1.概述 Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口.凡 ...

  8. Apache Spark源码走读之3 -- Task运行期之函数调用关系分析

    欢迎转载,转载请注明出处,徽沪一郎. 概要 本篇主要阐述在TaskRunner中执行的task其业务逻辑是如何被调用到的,另外试图讲清楚运行着的task其输入的数据从哪获取,处理的结果返回到哪里,如何 ...

  9. c语言分析函数调用关系图(call graph)的几种方法

    一.基于 Doxygen或 lxr 的API形式的文档系统. 二.基于CodeViz, CodeViz是<Understanding The Linux Virtual Memory Manag ...

随机推荐

  1. python ConfigParser读取配置文件,及解决报错(去掉BOM)ConfigParser.MissingSectionHeaderError: File contains no section headers的方法

    先说一下在读取配置文件时报错的问题--ConfigParser.MissingSectionHeaderError: File contains no section headers 问题描述: 在练 ...

  2. Linux /python --- zipinfo命令

    Linux zipinfo命令用于列出压缩文件信息. 执行zipinfo指令可得知zip压缩文件的详细信息. zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本 ...

  3. Java 异步处理 三种实现

    new Thread((new Runnable() { @Override public void run() { // 批量同步数据 try { logger.info("^^^^^^^ ...

  4. 常用php操作redis命令整理(四)SET类型

    SADD 将一个或多个member元素加入到集合key当中.(从左侧插入,最后插入的元素在0位置),集合中已经存在TK 则返回false,不存在添加成功 返回true <?php var_dum ...

  5. 20145326 《Java程序设计》第9周学习总结

    20145326 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 一.JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数 ...

  6. ssh-copy-id使用非默认22端口

    ssh-copy-id使用及非默认22端口时报错 ssh-copy-id使用介绍 说明:ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户下. 功能:ssh-copy-id ...

  7. 如何利用Xshell在windows与linux之间互传文件

    如何利用Xshell在windows与linux之间互传文件 第一步: 安装Xshell. 第二步: 打开Xshell,若出现默认的对话框,则选择关闭,因为下面将演示如何将本地文件传输至远程linux ...

  8. 框架-springmvc源码分析(二)

    框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...

  9. 与R纠缠的两件事——rownames和子集--转载

    与R语言纠缠了一个星期,从快速上手的暗暗得意,到之后某些细节的纠结烦躁,过山车式体验中,我逐渐才认识了真实的R语言. 期间遇到两个很烦恼的问题,一个是让人烦躁抓狂,另一个是无意发现的重大错误. 1.  ...

  10. 双击不能运行可执行的jar文件

    1.首先在命令行下运行jar包看文件是否报错(java -jar jar文件名称.jar)          如果程序中有System.out.println()语句,不想让其输出到控制台而保存到文件 ...