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 編碼器。