Kernel Log: Coming in 3.0 (Part 4) - Drivers
by Thorsten Leemhuis
Along with better support for new chipsets and graphics cores from AMD and Intel, not to mention drivers for Microsoft's Kinect and DVB-T2, Linux 3.0 once again offers a number of workarounds for a wide range of hardware problems.
In the opening minutes of Tuesday morning, Linus Torvalds released another pre-release version of Linux 3.0. In his release mail, Linus says that "Things have been pretty quiet, but there's enough new stuff here that I wanted to do another -rc". The developer had previously said that the sixth release candidate might perhaps have been the last.
Should Torvalds not issue another rc, Linux 3.0 could appear later this week or early next week. As Linux 3.0 slowly nears completion, the kernel log finishes the "Coming in 3.0" mini-series with a description of changes to drivers, including those for audio, graphics, multimedia, and storage hardware. The first part of the series dealt with changes to network drivers and infrastructure, while the second part focused on filesystems, and the third discussed platform-specific code, virtualisation, and general infrastructure.
The i915-DRM/KMS driver in Linux 3.0 – for Intel graphics chips in processors and chipsets for notebooks and desktop PCs – reportedly already controls the graphics core in Ivy Bridge processors, which Intel will probably not launch until the beginning of next year (see 1, 2, 3, 4, 5, 6, 7). The developers once again tried to enable the RC6 power saving technique by default; because of known problems with the less efficient Frame Buffer Compression (FBC), the latter has been disabled under standard settings. But then more problems turned up and after the seventh pre-release the developers once again disabled RC6 by default; they indicated in the commit comment that they plan try again soon.
The Radeon DRM/KMS contains a number of improvements for output via DisplayPort (see 1, 2, 3, 4, 5, 6). The driver now also supports the graphics core in Llano processors, which AMD recently launched for notebooks and desktop PCs (see 1, 2). To prevent such problems as blank screens, audio output via HDMI has been temporarily disabled by default, but can be switched on again by using the kernel parameter radeon.audio=1. In addition, a change in the help text for the Radeon DRM/KMS driver now makes it clear that it supports all Radeon graphics hardware.
The Nouveau DRM/KMS driver supports the Pmpeg technology used in GeForce graphics chip generations nv40 and nv84 to delegate the decoding of MPEG material to the graphics chip, but up to now there has been no userspace interface to use Pmpeg. A number of other changes lay the foundations for supporting various techniques involved in switching between processor/chipset graphics and GeForce graphics chips (see 1, 2, 3); NVIDIA calls it "Optimus" in recent notebooks.
Starting with Linux 3.0, the DRM code also supports a colour depth of 30 bits. A patch is ready for inclusion in 3.1 to allow the Nouveau driver to generate firmware on its own in order to use the acceleration functions in NVIDIA's 400 and 500 series graphics cards (Fermi GPUs); up to now, such firmware had to be derived from proprietary NVIDIA drivers by using complicated tricks. Soon, a number of improvements are to be made to the driver for the virtual graphics hardware used by some VMware virtualisation solutions; like Nouveau, it is a staging driver.
Graphics driver gma500 is also a staging driver – one which does not fulfil the quality demands of its developers and kernel hackers. It contains a number of extensions so that it can work with Oaktrail and Moorestown in the MID platform along with the GMA500 graphics core in the US15W chipset (Poulsbo) (1, 2). The kernel hackers have also done away with the TTM interface and put in a GEM interface for memory management. Expected to be supported this year, Cedarview is currently being prepared for Linux 3.1 (1, 2). Chief developer Alan Cox believes that the driver parts for the support of Poulsbo and Cedarview can now leave the staging area, but he says that support for chipsets focusing on Mobile Internet Devices (MIDs) still needs to be cleaned up, which is why the driver is to be modularised; in addition, HDMI support currently only offers basic functions and does not support HDMI audio.
The userspace part of the usbip framework developed in the USB/IP project, which passes USB devices on to other systems via a network connection, has also joined the staging area. The usbip client and host driver have been a part of Linux since 2.6.28; in 3.0, a few changes have been made after a long period of little progress. A slew of improvements have also been made to the drivers for Microsoft's Hyper-V virtualisation interface, and staging maintainer Greg Kroah-Hartman praises Microsoft's developers for this work in his main git-pull request.
A new addition to the staging area is a driver for the Intel Management Engine (Intel ME), which offers a number of widely used notebook and desktop PC chipsets from Intel (see 1, to-do list). The kernel hackers removed the "STAGING_EXCLUDE_BUILD" configuration option so that the drivers are now generally compiled for testing; also gone is the related help text explaining that staging drivers "might go off and kick your dog when you aren't paying attention."