Android Camera 高通驱动KMD框架_camera request managerfunctionality(2)

本文介绍了Android高通相机驱动KMD框架中的核心模块——Camera Request Manager (CRM) 和 Cam Sync。CRM管理Session、Link及Request的同步与分发,而Cam Sync用于图像数据同步,通过V4L2框架的event机制保持与用户空间的同步。CRM创建v4l2_device管理子设备,Cam Sync创建video1节点供CSL控制。CRM的CRM_CORE_DEVICE_INIT初始化子设备,Cam Sync通过CAM_SYNC_* ioctl命令处理同步操作。
摘要由CSDN通过智能技术生成

cam_core/: 关于KMD核心函数的实现都放在这,主要包括了subdev、node、context的一些诸如创建/注册/销毁等标准方法。
cam_req_mgr/: CRM的具体实现,用于创建v4l2_device,用于管理所有的子设备,同时生成video设备节点,暴露控制接口给UMD,主要包括了Session/Link的行为管理以及Request的同步与分发,此外,还创建了media_device,用于暴露枚举接口给UMD来轮询查找整个KMD的子设备。
cam_sync/: 该部分主要实现了用于保持与UMD的图像数据的同步相关业务逻辑,由于该模块的特殊性,高通直接为其创建了一个单独的video设备节点,暴露了用于同步的一些控制接口。
cam_utils/: 一些共有方法的实现,包括debug方法集等
cam_smmu/: 高通自己实现了一套smmu api,供KMD使用
cam_lrme/: 低分辨率运动估计模块的驱动实现
cam_fd/: 人脸识别的驱动程序
cam_isp/: isp的驱动程序
cam_jpeg/: 编码器,可以通过该驱动完成jpeg的编码工作
cam_cdm/: camera data mover,数据移动器的驱动实现,主要用于解析由CSL传入的命令信息,其中包括了寄存器的设置以及图像数据的处理等。
cam_cpas/: 该模块主要用于CSL获取camera 平台驱动信息,IPE/BPS电源控制等
cam_icp/: image control processor ,图像处理控制器驱动实现
cam_sensor_module/: 类传感器的系列硬件模块
cam_actuator/: 对焦马达的驱动实现
cam_cci/: 实现了用于通讯的CCI接口,其中包括了I2C以及gpio的实现
cam_csiphy: 基于MIPI CSI接口的物理层驱动,用于传输图像数据
cam_sensor_io: 使用cam_cci,向上实现了控制sensor的IO接口
cam_sensor: sensor 的驱动实现
cam_sensor_util: sensor相关的公有方法的实现
cam_eeprom: eeprom设备的驱动实现
cam_ois : 光学防抖设备的驱动实现
cam_flash: 闪光灯设备的驱动实现

二、核心模块解析

正如之前介绍的那样,整个框架主要由三个部分组成,CRM/Camera Sync以及子模块,接下来我们以下图为例简单讲解下各自的关系:

在这里插入图片描述

在系统初始化时,CRM内部会创建一个v4l2_device结构体,用于管理所有的子设备,与此同时每一个子设备在注册的时候都会创建各自的v4l2_subdev挂载到该v4l2_device上面。此外,CRM会创建一个video0设备节点提供关键接口给CSL来进行访问,而每个子设备也会在系统中生成各自的v4l2-sbudev设备节点,提供接口给CSL进行更为精细化的控制。而其中的Cam Sync在初始化的过程中,也创建了一个v4l2_device设备,并且生成了video1节点给CSL进行控制。这个框架主要就是围绕这三个部分进行的,CRM用于管理Session/Link的创建,控制Request在各个子设备中的流转,子设备受CSL控制进行配置以及图像处理工作,而一旦图像处理完成便会将结果发送至Cam Sync模块,进上传至CSL中。

1. CRM(Camera Request Manager)

该模块本质上是一个软件模块,主要做了以下几个事情:

接收来自CSL的Session/Link/Request请求,并且维护其在内核的状态。
在不同pipeline delay的子模块间,同步每一个Request状态,并按照需要发送给每一个子设备。
如果出现错误,负责上传至CSL。
负责针对实时子模块的flush操作。

CAM_REQ_MGR_CREATE_SESSION/CAM_REQ_MGR_DESTROY_SESSION: 分别表示了Session的创建和销毁,该Session保持着与CamX-CHI的一一对应关系。
CAM_REQ_MGR_LINK/CAM_REQ_MGR_UNLINK: 分别表示了Link的创建和

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值