Kernel Log: Coming in 3.10 (Part 4)
by Thorsten Leemhuis
Linux 3.10 will be able to use the video acceleration features offered by Radeon graphics cores. Systems with Intel graphics will wake from standby faster. Linux now has an input device driver for Apple's infrared receiver.
In his release mail for Linux 3.10-rc7, Linus Torvalds seemed confident that the seventh pre-release version should be the last. All signs therefore point to Linux 3.10 being released at the start of July, though major last minute problems could still trigger a further release candidate, which typically entails another week of development.
The description of driver changes which follows therefore concludes our 'Coming in 3.10' Kernel Log series. The first three articles in the series dealt with changes made in the areas of networking, file systems and storage and platform and infrastructure code.
The Radeon driver in the Linux kernel now offers interfaces for interacting with the Unified Video Decoder (UVD) on Radeon HD 4000 and later HD graphics cards. An open source UVD driver which uses this interface will be included in the next major revision to Mesa 3D (version 9.2 or 10.0). Multimedia players wishing to utilise the video acceleration features on Radeon chips communicate with the UVD driver via the VDPAU (video decode and presentation API for Unix), which was inaugurated by NVIDIA and also supports NVIDIA's proprietary graphics driver.
The radeonsi OpenGL driver in the next version of Mesa 3D should also support 2D tiling, which will improve graphics performance on supported Southern Island GPUs (Radeon HD 7750 and later). It relies on changes merged into Linux 3.10. The kernel now supports the graphics chip on the recently released Richland processor family, otherwise known as A4, A6, A8 and A10 series APUs. Linux can also now address Radeon Hainan GPUs (1, 2, 3, 4). Rumours have it that these will be the graphics cores on the Radeon HD 8850 and 8870 cards due for release in the next month.
By skipping the temporary switch to a text console, systems with the graphics driver for Intel GPUs are now able wake from standby faster (1, 2). The driver now allows the graphics core on newer Intel GPUs to be overclocked.
The nouveau driver now supports compression of parts of the graphics memory on NVIDIA Fermi and Kepler chips (GeForce 4xx and later). On some graphics cards with GK110/nvf0 it can also now set the screen mode. Thanks to some changes contributed in part by NVIDIA itself, the next kernel version will include interfaces allowing userspace graphics drivers to use the 2D acceleration on NVIDIA's Tegra20 and Tega30 systems on a chip (SoC) (1, 2, 3, 4, 5, 6, 7, 8, 9 and others). A 3D driver under development by an open source developer will build on this interface.
There is also a new driver for the graphics chip emulated by Spice (used primarily for virtualisation with KVM). The new driver will initially only include functions for kernel-based mode setting (KMS), but should form the basis for a driver with 3D support.
The input subsystem now includes a driver for the infrared receiver which Apple has been building into its computers for many years. There is also a new driver for the Roccat Kone Pure gaming mouse and the same manufacturer's IskuFX keyboard. The wiimote driver now supports the second generation of Nintendo Wii remote IDs. Further improvements are planned for Linux 3.11. And from the cabinet of curiosities: The kernel source code now includes an input driver for Rave Entertainment System's passenger control unit, used in aircraft seats.
Audio driver changes include some aimed at improving automatic configuration of HD Audio codecs and inputs and outputs served by them. The numerous changes to the media subsystem include the addition of support for the AverMedia A706 AverTV Satellite Hybrid+FM to the kernel.
The kernel now includes a series of drivers for the controller on some ChromeOS laptops, which should improve support for Google's Pixel (1, 2, 3, 4, 5 and others). Among the drivers to enter the staging area – the home of technically immature drivers – is the synchronisation framework (currently used in Android), which allows multiple drivers to coordinate hardware access.