本讲是Camera KMD ISP子系统专题的第5讲,我们讲解Camera KMD驱动V4L2模型之Component 框架的运用 第3部分,介绍Camera kmd isp子系统中如何使用component顺序初始化。
更多资源:
| 资源 | 描述 |
|---|---|
| 在线课程 | 极客笔记在线课程 |
| 知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
| 极客笔记圈 |
Camera kmd isp子系统中如何使用component顺序初始化
谁是master?谁是component?

向组件系统注册component
component_add(&pdev->dev, &cam_sync_component_ops);

component_list全局链表空间布局

构建master 设备需要的component_match(match_list)


static struct platform_driver *const cam_component_platform_drivers[] = {
/* BASE */
&cam_sync_driver,
&cam_smmu_driver,
&cam_cpas_driver,
&cam_cdm_intf_driver,
&cam_hw_cdm_driver,
#ifdef CONFIG_SPECTRA_TFE
&cam_csid_ppi100_driver,
&cam_tfe_driver,
&cam_tfe_csid_driver,


CRM master设备注册到component框架

static const struct component_master_ops cam_req_mgr_component_master_ops = {
.bind = cam_req_mgr_component_master_bind,
.unbind = cam_req_mgr_component_master_unbind,
};
aggregate_devices全局链表空间布局

find_components()接口详解

顺序执行各component的bind()

极客笔记