ST-ERICSSON MCDE DRIVER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌈 ST-ERICSSON MCDE DRIVER πŸ’…

okay bestie, welcome to the Kernel API Manual entry for the MCDE driver β€” and no, MCDE isn't a rapper, it's short for multi-channel display engine. It's a graphics controller that lives in the Ux500 chipsets, like the NovaThor U8500. ✨

So the lore: it was initially conceptualized by ST Microelectronics for the successor of the Nomadik line, STn8500 β€” but it got productified in the ST-Ericsson U8500, where it was used for mass-market deployments in Android phones from Samsung and Sony Ericsson. main character energy, honestly. πŸ‘‘


πŸŽ€ what it can actually do

It can do 1080p30 on SDTV CCIR656, DPI-2, DBI-2 or DSI for panels with or without frame buffering, and it can convert most input formats including most variants of RGB and YUV. versatile queen. πŸ’…

πŸ¦‹ the hardware layout, aka the vibe check

The hardware has four display pipes, and the layout is a little bit like this:

  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

ngl this diagram ate. Let's break it down: FIFOs A and B are for LCD and HDMI, while FIFO CO/C1 are for panels with embedded buffer. 6 of the formatters are for DSI, 3 pairs for VID/CMD respectively. 2 of the formatters are for DPI. 🫢

Behind the formatters are the DSI or DPI ports that route to the external pins of the chip. As there are 3 DSI ports and one DPI port, it is possible to configure up to 4 display pipelines (effectively using channels 0..3) for concurrent use. periodt. 😭

🌸 how we're using it rn

In the current DRM/KMS setup, we use one external source, one overlay, one FIFO and one formatter which we connect to the simple DMA framebuffer helpers. We then provide a bridge to the DSI port, and on the DSI port bridge we connect hang a panel bridge or other bridge. This may be subject to change as we exploit more of the hardware capabilities β€” so like, don't get too attached to this arrangement, bestie. πŸ™ˆ


✨ TODO ✨

  • Enabled damaged rectangles using drm_plane_enable_fb_damage_clips so we can selectively just transmit the damaged area to a command-only display. πŸ”₯
  • Enable mixing of more planes, possibly at the cost of moving away from using the simple framebuffer pipeline.
  • Enable output to bridges such as the AV8100 HDMI encoder from the DSI bridge.
lowkey a glow-up wishlist, and we're manifesting all of it πŸ’–

🧚 SEE ALSO

  • Kernel file ./drivers/gpu/drm/mcde/mcde_drv.c

⭐ πŸ’œ ⭐

and that's the whole page, bestie β€” this little masterpiece comes from ./drivers/gpu/drm/mcde, dated October 2026, and it's sitting in the Kernel API Manual. go read the source fr fr, ily, bye! πŸŽ€πŸ¦‹πŸ’…

πŸ“¦ where this page comes from