Kernel Log: Coming in 2.6.39 (Part 4) - Drivers
by Thorsten Leemhuis
The kernel now supports USB 3.0 hubs, the latest Radeon graphics cards and Intel's previously problematic GMA500 graphics. Other new additions include drivers for notebooks by ASUS and Samsung, and for audio and multimedia hardware from various other vendors.
Linus Torvalds released the seventh pre-release of Linux 2.6.39 on Monday night. He wrote: "So things have been pretty quiet, and unless something major comes up I believe that this will be the last -rc". If Torvalds sticks to his usual work patterns, then 2.6.39 could well be released early next week.
As Linux 2.6.39 is approaching completion, the Kernel Log will conclude its "Coming in 2.6.39" mini series with a discussion of the advancements in terms of drivers – including audio, graphics and multimedia hardware drivers. Part 1 of the mini series discussed the changes to the network drivers and infrastructure; part 2 was about the file system code as well as the storage drivers and infrastructure; and part 3 discussed the architecture code and general infrastructure.
The Radeon driver of kernel version 2.6.39 will support the Cayman family of graphics chips that AMD is using models such as the current Radeon HD 6790 to 6970 cards (e.g. 1, 2). However, these cards' 2D and 3D acceleration features are unavailable because there is no DRM support; future kernel versions will fix this problem.
The Nouveau driver for NVIDIA GPUs now supports Z compression. In the NV50 (GeForce 8, 9, 100, 200 and 300) and NVC0 (GeForce 400 and 500) families of graphics cores, the kernel now supports page flipping; a feature that was introduced with Linux 2.6.38 to provide enhanced synchronisation with the image rendering of the output device – and is designed to improve performance and avoid tearing (1, 2). The developers have also fixed a performance issue that reportedly reduced performance by 10 to 30 per cent.
The developers of the graphics drivers for Intel chips have made numerous minor changes; some of them improve performance in certain situations or reduce the power consumption of recent graphics cores (1, 2, 3). The DRM/KMS code was modified to support graphics hardware that is connected via USB; these modifications provide the foundations for a KMS driver for Displaylink hardware which Dave Airlie is currently working on. In his main Git-Pull request for 2.6.39, the DRM subsystem maintainer mentions various other changes to the kernel's DRM/KMS code, such as tiling support for R600 GPUs and TTM support for Xen Dom0 systems.
The audio subsystem now includes a driver for the Terratec DMX 6Fire USB; a FireWire audio driver that addresses the Griffin FireWave surround sound system and LaCie FireWire speakers has also been added. The hdspm driver now supports the RayDAT and AIO HDSPe models made by RME Audio; the usbaudio driver is now capable of handling USB auto-suspend, a feature designed to reduce power consumption when audio hardware is not in use.
The main Git-Pull request submitted by audio subsystem maintainer Takashi Iwai lists further changes; for instance, the maintainer mentions corrections to fix some long-standing problems in the X-Fi driver's SPDIF code. These changes have taken the kernel's audio drivers to Alsa 1.0.24 level.
In April, Kernel Log reader Dennis Jansen took a closer look at some changes that were made in 2.6.38 which allow the snd-hda-intel driver to provide audio output without causing any interrupts. Jansen has compiled the measurement results and various adjustment tips in a blog posting. The adjustments reportedly reduced the number of wakeups per second from 150 to 19; this allowed the processor to enter, and remain longer in, the deeper sleep states, which Jansen said reduced the power required for the tested notebook's audio output by 0.4 watts.