Rob Clark started the Freedreno project over two years ago as a reverse-engineered project around Qualcomm's Adreno hardware. At the time Rob was working for Texas Instruments but now is employed by Red Hat. The Freedreno driver has largely been developed just by Rob with contributions by a few others, but without any official support from Qualcomm. Freedreno is to Adreno hardware as Nouveau is to NVIDIA hardware. Like Nouveau, Rob developed Freedreno code through clean-room reverse engineering.
Rob's focus has been on the now-mainline Freedreno Gallium3D driver that's beginning to work good with lots of Qualcomm's ARM SoCs and he also developed the xf86-video-freedreno DDX driver. Along the way, Rob started writing the "MSM" DRM/KMS driver as a new replacement for Qualcomm's Android-focused kernel driver that didn't comply with the DRM/KMS interfaces and wasn't mainline. The DRM MSM driver meanwhile has been mainlined for a number of Linux kernel releases now and does complies properly with the Linux desktop interfaces expected of open-source drivers.
Rob has continued working on new Qualcomm hardware support himself, but last night was an interesting patch series sent to the mailing list. Aravind Ganesan of the Code Aurora Forum, which is aligned with the Qualcomm Innovation Center, sent out DRM/MSM driver patches adding Adreno 4xx support.
The three patches update the needed header files, handle the register differences between Adreno A3xx and A4xx, and then add in the A4xx support to the DRM driver. This code contribution from the Qualcomm developer amounts to over three thousand lines of new code for the driver. The copyright on the new code is under the Linux Foundation, which hosts the Code Aurora Forum project.
This is interesting to see Qualcomm effectively contributing to the Freedreno MSM kernel driver started by Rob Clark. It's just not bug fixes being sent in, though there was one too sent in yesterday, but support for the new Adreno GPUs. The Adreno 420 has a DirectX 11.2 capable 3D pipeline, OpenCL 1.2 full profile support, improved texturing, improved ROPs, and numerous other improvements over the A3xx series. The 4xx family supports OpenGL ES 3.1 (compared to ES 3.0 with the 3xx series). The Adreno 405/418/420/430 are currently found in the Snapdragon 610/615/805/808/810 SoCs.