Kernel Log: Coming in 3.3 (Part 4) – Drivers
by Thorsten Leemhuis
From Linux 3.3, the nouveau driver will support newer GeForce chips and Intel's RC6 GPU power saving technology should finally work properly. The Poulsbo graphics driver and some Hyper-V drivers have left the staging area, while drivers for Android have entered it.
The Intel graphics driver in Linux 3.3 has been modified to avoid the deepest sleep state Intel's RC6 GPU power saving feature offers. As a result, this feature should finally work reliably with the graphics cores used in Intel's current Sandy Bridge generation of processors. According to tests performed by The H's associates at c't magazine, RC6 typically saves between 3 and 5 watts when idling, with some users reporting even greater savings. On frugal laptops, this kind of saving can reduce idling power consumption by 30 to 40 per cent, noticeably extending battery life. Nevertheless, RC6 remains deactivated by default on Sandy Bridge CPUs in Linux 3.3, and needs to be activated manually using the kernel argument i915.i915_enable_rc6=1
. The Intel development team is contemplating activating it by default in Linux 3.4. Kernel hackers have also now reverted frame buffer compression (FBC) – a less effective, compared to RC6, power saving feature – to being deactivated by default. It was made active by default in Linux 3.1, but problems have since emerged.
From 3.3, the nouveau DRM/KMS driver for NVIDIA graphics chips will support audio output via HDMI on NVA3 (aka GT215) and later graphics chips (1, 2, 3, 4). These are used on graphics cards such as the GeForce GT 240, 320 and 335M and GTS 250M, 260M, 350M and 360M and their successors. The nouveau driver in Linux 3.3 now supports the GPU code-named NVD9, which is used on cards including the GeForce GT 520, 520M, 520MX and GeForce 410M. There have also been several changes resulting in minor improvements to the nouveau driver's still rudimentary power saving and fan management support. The vga_switcheroo driver, used to switch between graphics chips, has gained a number of functions for supporting Optimus, NVIDIA's technology for enabling and disabling a discrete graphics chip on demand.
Current state of development
On its release, Torvalds stated that the sixth pre-release version of Linux 3.3 might be the last. Therefore, as long as he and his fellow kernel developers don't uncover any major problems, Linux 3.3 is likely to be released at the start of next week or early the following week.
The Radeon DRM/KMS driver for AMD graphics chips now supports HDMI audio output on Evergreen chips, frequently, but not always, found on Radeon HD 5000 series GPUs; the responsible code was developed with the help of reverse engineering and it remains to be seen how well it works in the field. The new GPU virtual memory support feature lays down some of the foundations for an open source driver to support Southern Islands graphics chips, used on some of the graphics cards in the recently introduced Radeon HD 7000 series. In the long term, this code should also reduce CPU workload when sending command streams to some of the current GPUs. One of the benefits from the multiple fence queues feature for the Radeon DRM/KMS driver, which was merged into 3.3, is to add basic infrastructure which is required to support multiple CP ring buffers or the UVD video unit.
The new DMA aware ttm page pool code simplifies virtual memory management in the Radeon DRM/KMS driver and makes it possible to use translation table maps (TTM), a GPU memory management technology used by the radeon and nouveau drivers, under Xen. Other graphics driver-related changes can be found in the minor gems section at the end of this article and in DRM subsystem maintainer Dave Airlie's main git pull request.
Matured
The DRM/KMS graphics driver for Intel's GMA500, GMA600 and GMA3600 graphics cores, developed by Intel employee and kernel veteran Alan Cox, has been merged into the DRM subsystem (1, 2, 3, 4, 5 and others). The driver had previously spent some months in the staging area, the repository for code still needing a bit of work, under a different name. The mature driver still supports only some key functions on graphics chips such as the GMA500, used in Intel's US15W. This embedded chipset, also known as Poulsbo, was used in some netbooks, and has proved a real headache for some Linux users in recent years. The situation with regard to drivers was for a long time stuck in something of a rut, with Intel declining to allow users to download its proprietary driver directly and the drivers which were available frequently unable to work with or working poorly with more recent Linux distributions.
The network, HID, and mouse drivers for Microsoft's Hyper-V virtualisation platform, development of which has been driven by the software giant itself, are now, after several years in the staging area, sufficiently mature to have made the leap into the relevant subsystems. The storage driver just missed doing the same, but should make the move in 3.4. This would mean that the last Hyper-V driver has finally taken leave of the staging area.
Next: Staging, DMA buffers, Miscellaneous