一、代码分析
mtk_drm_plane.h 和 mtk_drm_plane.c 两个文件,并生成基于文本的函数调用图,我将首先解析文件中的主要函数及其功能,然后根据代码中的调用关系整理出调用图。由于文件内容较长,我会专注于关键函数及其相互调用关系,并以清晰的文本形式呈现。
文件分析
1. mtk_drm_plane.h
- 作用: 该头文件定义了 MediaTek DRM (Direct Rendering Manager) 平面相关的结构体、枚举和函数声明,主要用于管理显示平面(plane)的属性和状态。
- 关键内容:
- 枚举:
- DISP_ORIENTATION: 定义显示方向(如 0°、90°、180°、270°)。
- DISP_FORMAT: 定义支持的像素格式(如 RGB565、ARGB8888 等),并通过 MAKE_DISP_FORMAT_ID 宏生成格式 ID。
- DISP_LAYER_TYPE: 定义图层类型(2D、3D 侧-by-side、top-and-bottom 等)。
- DISP_BUFFER_TYPE: 定义缓冲区类型(普通、保护、加密)。
- DISP_BUFFER_SOURCE: 定义缓冲区来源(ION、MVA、Alpha)。
- DISP_ALPHA_TYPE: 定义 Alpha 混合类型。
- DISP_YUV_RANGE_ENUM: 定义 YUV 颜色范围(如 BT601、BT709)。
- MTK_FMT_MODIFIER: 定义格式修饰符(如预乘、加密)。
- MTK_PLANE_PROP: 定义平面属性(如 Alpha、数据空间、压缩等)。
- 结构体:
- mtk_crtc_ovl_csc_config: 用于存储 CSC(颜色空间转换)配置。
- mtk_drm_plane: 扩展 DRM 平面结构体,包含自定义属性。
- mtk_plane_pending_state: 存储平面的待处理状态(如地址、格式、尺寸等)。
- mtk_plane_input_config: 定义平面输入配置(如缓冲区地址、格式、旋转等)。
- mtk_plane_comp_state: 存储平面组件状态(如组件 ID、图层能力)。
- mtk_plane_state: 扩展 DRM 平面状态,包含待
- 枚举: