Improving Linux DRM For Embedded Systems

Posted by Michael Larabel on April 13, 2012

A set of Direct Rendering Manager patches have appeared to ease the development of targeting DRM drivers for embedded systems. There's also two new DRM drivers using this SDRM layer.

These patches for DRM on embedded systems provide "helpers" to take care of the DRM device and introduce an "SDRM" layer. The helpers can setup the CRTCs, encoders, connectors, and other components as separate devices rather than having the current monolithic design to a DRM driver. This work is based upon some of the Exynos driver patches by Samsung but was written by Sascha Hauer of the German-based Pengutronix.

Sascha was writing a new DRM driver when realizing it shared much common code with the Exynos driver, so he's generalized it into this DRM helper set. Last month I wrote that Sascha Hauer was working on a new DRM driver and it turns out with this DRM helpers work he's written i.MX LCDC and Intel (Marvell) PXA2xx drivers, both of which are described as "very simple last-decade-embedded-lcd-controllers." These new drivers have been tested against the xf86-video-modesetting driver for X.Org usage along with a custom KMS testing tool and libdrm tests.

As said in Hauer's mailing list message, "The drivers posted here are mostly created for demonstration purpose and to give a template for other drivers, but the motivation for creating this layer was the i.MX5/6 IPU (Image Processing Unit) which has two crts (four
on i.MX6), several on-SoC encoders and overlay possibilities. So this layer should not be limited to the real 'simple' cases...The sdrm patches currently have some limitations, but they should be enough for being useful and to present it to a wider audience."

The DRM helpers support is spread into seven patches with adding an SDRM layer for general embedded systems support (the layer allows for creating simple DRM devices), the i.MX KMS driver, and the PXA KMS driver. As far as how this eases development, the i.MX KMS driver is a mere 525 lines of code while the PXA LCDC KMS driver is 863 lines of code.

While there's been good embedded/mobile DRM news this week with this news here, the open-source ARM Mali driver milestone, and a NVIDIA TEGRA DRM/KMS driver, there still is an exciting GPU driver code drop that Phoronix will get to break the news on today or tomorrow.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  2. New NVIDIA Linux Driver Supports The GeForce GTX 780
  3. Chrome 28 To Offer More Speed Improvements
  4. Digia Announces "Boot To Qt" Project
  5. X.Org Libraries Hit By Round Of Security Issues
  6. Wayland's Weston Gets Output Scaling Support
  7. Raspberry Pi Gets New Wayland Weston Renderer
  8. Debian GNU/Hurd 2013 Release Brings New Packages
  9. Intel Ultrabook Performance Is Faster With Mesa 9.2
  10. Hot Relocation HDD To SSD Support For Btrfs
  11. Phoronix Test Suite 4.6.0 "Utsira" Released
Latest Forum Talk
  1. Debian GNU/Hurd 2013 Release Brings New Packages
  2. KDE 4.11 Will Be The Last Major KDE4 Workspaces...
  3. Raspberry Pi Gets New Wayland Weston Renderer
  4. X.Org Libraries Hit By Round Of Security Issues
  5. Chrome 27 Loads Web Pages Faster
  6. Radeon 7770 Can't reclock crash kernel
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite