drm/mcde ST-Ericsson MCDE 多通道显示引擎¶
MCDE(多通道显示引擎的缩写)是 Ux500 芯片组(如 NovaThor U8500)中找到的图形控制器。 它最初由意法半导体为 Nomadik 系列的后继产品 STn8500 概念化,但在 ST-Ericsson U8500 中将其产品化,并在三星和索尼爱立信的安卓手机中大规模部署。
它可以在 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,3 对分别用于 VID/CMD。 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 编码器。