Show Your Support: Have you heard of Phoronix Premium? It's what complements advertisements on this site for our premium ad-free service. For less than $4 USD per month, you can help support our site while the funds generated allow us to keep doing Linux hardware reviews, performance benchmarking, maintain our community forums, and much more.
Samsung Has G2D Driver, Virtual Display For Linux 3.4
Inki Dae of Samsung fired off an email with ten patches this morning to David Airlie that includes the exynos-drm-next work. Notable changes to the Exynos DRM driver slated for the Linux 3.4 kernel include HDMI version 1.4 support, a buffer allocation type to allocate physically continuous or non-continuous memory, a new DMA address get/put interface needed for GEM/2D acceleration handling, a virtual display driver, and a direct-rendering 2D graphics acceleration module.
Those are some nice improvements for this ARM-based Exynos driver that was merged into the mainline Linux kernel last year as the first open-source ARM graphics driver to make it into the DRM sub-system tree and then that of Linus Torvalds. Since then Samsung has kept working on the driver as a responsible maintainer. Just this current cycle for the Linux 3.3 kernel there were several Exynos improvements including the initial HDMI output support, multi-buffer support, power management, and bettering the GEM memory management.
HDMI 1.4 is supported by later Exynos hardware (the newer 4x12 series components) and introducing this support to Samsung's DRM driver took over 1,000 lines of new code. The HDMI 1.4 specification ups the maximum resolution to 4K x 2K resolutions (Quad HD), support for an HDMI Ethernet Channel (HEC) to share an Internet/network connection between HDMI devices, Audio Return Channel, 3D over HDMI, a new micro HDMI connector, expanded color spaces support, and support for various stereoscopic 3D formats.
Perhaps the most exciting change for the 3.4 Exynos driver is the introduction of the G2D driver. The Exynos G2D driver has been worked on by Samsung, Linaro developers, and others. As described by the commit message, "G2D is a 2D graphic accelerator that supports Bit Block Transfer. This G2D driver is exynos drm specific and supports only exynos4x12 series. user application fills command set in cmdlist and once dma start request these cmdlists are parsed and performed by dma."
The G2D driver adds in around 1,000 lines of code to the Exynos DRM driver in order to provide this 2D direct rendering acceleration. There's new ioctls introduced for the Exynos G2D support with getting the version, submitting the command list, executing the command list, and event. As far as the user-space side for this 2D acceleration, I haven't seen an Exynos DDX driver or anything else yet. However, these new symbols are being exported under the GPL, so there is (or will be) some sort of open-source Exynos user-space with accelerated support.
The last piece of this DRM pull is the "Samsung DRM Virtual Display", which is also quite interesting. As said by the commit message, "this driver would be used for wireless display. virtual display driver has independent crtc, encoder and connector and to use this driver, user application should send edid data to this driver from wireless display." This is just under 800 lines of new code to implement Samsung VIDI.
For those that may be more motivated to get a device with a Samsung Exynos SoC thanks to these great open-source driver improvements going on and making their way into the mainline kernel, there's a few choices. The Samsung Galaxy S, S II, Galaxy Note, Galaxy Tab, and various other devices are using an Exynos SoC. However, those devices are using the older Exynos 3110/4220, and not the newer hardware (beginning with the Exynos 4212) that can handle HDMI 1.4 and the new G2D driver.
The Exynos 4212 is a 32nm ARMv7 SoC that's available with a 1.2 / 1.5GHz dual-core ARM Cortex-A9 processor and also relies upon ARM Mali 400 graphics. Coming out this year in the Exynos family is the more-interesting Exynos 4412, which has a 1.5-1.8GHz quad-core Cortex-A9 processor; this will be nice competition for the NVIDIA Tegra 3 (benchmarks of the Tegra 3 quad-core development Cardhu tablet are still being worked on at Phoronix). Expected later on is then the Exynos 5250 as a 2.0GHz dual-core ARM Cortex-A15 part and then the Exynos 5450 2.0GHz quad-core Cortex-A15 SoC. Support for those yet-to-be-released Exynos SoCs has yet to arrive in the Exynos DRM driver, but hopefully (and I'd be willing to wager) Samsung will continue on in their open-source ways.