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 编码器。