第29讲 Camera KMD ISP子系统CPAS模块功能介绍

2024年11月06日 第29讲 Camera KMD ISP子系统CPAS模块功能介绍 极客笔记

本讲是Camera KMD ISP子系统专题的第29讲,我们讲解Camera KMD ISP子系统之CPAS模块功能介绍。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera
星球ID: 17296815
Wechat 极客笔记圈

CPAS是什么

CPAS: Camera Peripheral And System,主要负责Camera外围控制相关(带宽投票,硬件版本等等)的一个功能模块,会暴露一个V4L2子设备与用户空间进行通信。

CPAS驱动代码:代码所在目录: drivers/cam_cpas/(https://s.lmcjl.com/camera-kernel.lnx.6.0.r5/xref/drivers/cam_cpas/

  • cam_cpas_hw_intf.h是开给Camera内部其他模块使用的接口
  • cam_cpas_soc是Camera与SoC的交互逻辑

CPAS的功能

主要功能如下:

  1. ISP硬件版本的获取,可以做到一套代码兼容不同HW(/dev/v4l-subdev0)

  2. 各个IP模块的总开关

  3. AHB总线带宽动态投票(省功耗)

  4. AXI总线带宽动态投票(省功耗)

  5. 根据usecase不同动态进行QoS改变(省功耗)

用于camx兼容不同的camera family

CPAS驱动会从cpas_top或camss_top(dts决定)读取当前平台使用的哪个ISP Family,保存在platformVersion中。

各IP模块的总开关

Camera IP不管是TFE,OPE,IFE等等,在上电之前都需要调用cam_cpas_start

AHB总线带宽投票

AP访问CAM IP内部寄存器需要通过AHB总线。为了省功耗默认AHB CLK可能为0,一旦真的用到camera 时再投票打开AHB时钟。

AXI总线带宽投票

AXI就是数据总线,Camera会根据usecase,动态计算AXI带宽最小需求以节省带宽。

根据usecase不同动态进行QoS改变

QoS会控制访问AXI总线的优先级,当ISP出现Overflow问题时,如果BW拉满还是没有效果,就可以考虑下QoS的设置了,是否ISP Overflow是因为QoS设置导致抢不过其他模块导致。

本文链接:http://so.lmcjl.com/news/17182/

展开阅读全文