drm/mcde ST-Ericsson MCDE 多通道显示引擎¶
MCDE(多通道显示引擎的缩写)是一种图形控制器,可在 Ux500 芯片组(例如 NovaThor U8500)中找到。 它最初由 ST Microelectronics 为 Nomadik 系列的继任者 STn8500 构思,但在 ST-Ericsson U8500 中实现产品化,并在三星和索尼爱立信的 Android 手机中用于大众市场部署。
它可以在 SDTV CCIR656、DPI-2、DBI-2 或 DSI 上以 1080p30 的分辨率运行,适用于带有或不带有帧缓冲的面板,并且可以转换大多数输入格式,包括 RGB 和 YUV 的大多数变体。
硬件有四个显示通道,布局有点像这样
Memory -> Overlay -> Channel -> FIFO -> 8 formatters -> DSI/DPI
External 0..5 0..3 A,B, 6 x DSI bridge
source 0..9 C0,C1 2 x DPI
FIFO A 和 B 用于 LCD 和 HDMI,而 FIFO CO/C1 用于带有嵌入式缓冲区的面板。 6 个格式化器用于 DSI,分别为 VID/CMD 各 3 对。 2 个格式化器用于 DPI。
在格式化器之后是 DSI 或 DPI 端口,它们路由到芯片的外部引脚。 由于有 3 个 DSI 端口和 1 个 DPI 端口,因此可以配置最多 4 个显示管道(有效地使用通道 0..3)以供同时使用。
在当前的 DRM/KMS 设置中,我们使用一个外部源、一个覆盖、一个 FIFO 和一个格式化器,我们将它们连接到简单的 DMA 帧缓冲区助手。 然后我们提供一个到 DSI 端口的桥,并在 DSI 端口桥上挂载一个面板桥或其他桥。 随着我们利用更多的硬件功能,这可能会发生变化。
待办事项
使用
drm_plane_enable_fb_damage_clips()
启用损坏的矩形,以便我们可以有选择地仅将损坏的区域传输到仅命令的显示器。启用更多平面的混合,可能会以远离使用简单的帧缓冲区管道为代价。
启用输出到桥,例如来自 DSI 桥的 AV8100 HDMI 编码器。