zoukankan      html  css  js  c++  java
  • v4l2框架函数调用关系

    
    

    所有的设备节点和子设备节点都是通过__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

  • 相关阅读:
    solr的安装
    数据导出/下载
    在realm中动态查询用户的权限&角色
    总结权限控制方式 ----------(2)
    shiro 权限过滤器 -------(1)
    NoSession问题
    hibernate中对象的3种状态----瞬时态、持久态、脱管态
    BaseAction 使用
    分页工具类 BaseAction
    2019-2020-1 20175316 《信息安全系统设计基础》第1-2周学习总结
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/9250425.html
Copyright © 2011-2022 走看看