1. 版本背景
- 发布时间:2023年1月1日
- HDMI支持状态:HDMI 2.1完全支持,DSC压缩技术整合,VRR动态刷新率实现
- 关键里程碑:
- HDMI 2.1 FRL最高12Gbps支持
- Display Stream Compression (DSC)完全集成
- 可变刷新率(VRR)和自动低延迟模式(ALLM)
- HDCP 2.3开源实现
- CEC框架生产就绪
2. 子系统架构
现代化架构
+---------------------+ | 用户空间 | | DRM API (libdrm) | | + HDMI控制接口 | +----------+----------+ | +----------v----------+ | 内核空间 | | DRM核心子系统 | | + HDMI 2.1桥接器 | +----------+----------+ | +----------v----------+ | 统一HDMI控制器 | | + DSC支持 | | + VRR实现 | +----------+----------+ | +----------v----------+ | HDMI物理层 | +---------------------+架构创新
- HDMI 2.1框架:
drivers/gpu/drm/bridge/下的完全实现 - DSC集成:
drivers/gpu/drm/dsc.c压缩引擎 - VRR支持:
drm_mode_add_vrr_modes()动态刷新率 - HDCP 2.3:
drivers/gpu/drm/drm_hdcp.c完整实现
3. 源码深度解析
HDMI 2.1桥接器实现
// drivers/gpu/drm/bridge/nxp-ptn3460.c static const struct drm_bridge_funcs ptn3460_bridge_funcs = { .attach = ptn3460_attach, .mode_set = ptn3460_mode_set, .enable = ptn3460_enable, .disable = ptn3460_disable, .atomic_enable = ptn3460_atomic_enable, .atomic_disable = ptn3460_atomic_disable, .atomic_get_output_bus_fmts = ptn3460_atomic_get_output_bus_fmts, }; static int ptn3460_atomic_check(struct drm_bridge *bridge, struct drm_bridge_state *bridge_state, struct drm_crtc_state *crtc_state, struct drm_connector_state *conn_state) { struct ptn3460 *ptn = bridge_to_ptn(bridge); struct drm_display_mode *mode = &crtc_state->mode; /* 检查是否需要DSC */ if (mode->clock > HDMI_2_0_MAX_TMDS_CLK && !drm_mode_has_dsc(conn_state->connector)) { DRM_ERROR("需要DSC压缩支持\n"); return -EINVAL; }