Kernel Log - Coming in 3.7 (Part 4): Drivers
by Thorsten Leemhuis
Some major changes are supposed to make drivers for Intel and NVIDIA's graphics processors more robust. Linux 3.7 also includes a number of new DVB drivers and makes better use of modern audio chips' power-saving features.
The developers of the Nouveau driver have made major changes to the kernel-related part of the open source driver for NVIDIA graphics cores (1, 2, 3, 4, 5, 6 and others). It should now fit better to NVIDIA's chips, which the developers have gotten to know much better through reverse engineering over the years. The overall goal is a clean, simpler driver architecture that makes it easier to implement new features such as support for NVIDIA's Scalable Link Interface (SLI), which is not yet supported in Nouveau. Another addition to Linux 3.7 is rudimentary support for setting up fan management for graphics cores from the NV40 and NV50 series, which are used in series 6xxx through 300 of GeForce cards. For some of the GeForce 600 graphics cards with a Kepler GPU (NVE0), the Nouveau driver now uses its own firmware, although it doesn't yet support any acceleration features.
The code for configuring display outputs will be more robust and flexible thanks to major changes to the i915 Intel graphics driver. Sysfs can now be used to get information on the graphics processor's frequency and define limits in order to, for example, limit the maximum amount of power consumption (1, 2, 3 and others). Users have to use the preliminary_hw_support driver parameter to activate support for the graphics cores in some processors that are not yet available. In Linux 3.7, unless something changes, this will be necessary for the graphics cores for the processors codenamed Haswell and ValleyView, due out next year. Requiring the parameter should prevent users from accidentally using these graphic processors with an incomplete or unfinished driver. Other changes to the Intel driver in Linux 3.7 can be found on maintainer Daniel Vetter's blog.
Current state of development
Linus Torvalds released the seventh Linux 3.7 release candidate on Sunday, noting that, despite expectations to the contrary after RC6, the kernel does in fact need another week of testing, since the changes in RC7 are "slightly scarier".
A final release around the first weekend in December still seems likely, although, like in Linux kernel development, it's always possible that the release will be delayed by a week or more if the kernel developers want to fix bugs that involve nontrivial changes.
Changes to the Radeon graphics driver's monitor configuration code will, in some cases, allow newer AMD cores to manage more than two monitors with one phase-locked loop (PLL), making more multiple-monitor combinations possible than before and decreasing power consumption for some configurations (1, 2, 3, 4). Another new feature, support for "2-level VM pagetables", can decrease memory consumption. New features in the Radeon driver include a backlight management system and improvements to interacting with the system firmware via ACPI, which should make brightness regulation work in more laptops than before (1, 2, 3, 4).
Support for the runtime power-saving mechanisms in the driver for the popular HD audio chips is no longer experimental and will now be activated by default. The kernel developers have also expanded support for runtime power management in the HDA driver so that the PCI/PCIe device involved can sleep. Another addition to the kernel is a channel-mapping API for better querying and configuration of audio channels, which should be useful when setting up surround sound (1, 2, 3, 4, 5). There is also a new driver for the CMI8328 C-Media sound chip, which can be found in the AudioExcel AV500 and other soundcards. The version number of the ALSA driver in the kernel can no longer be seen via the proc filesystem; as the commit comment explains, the information didn't necessarily correspond to the version number of the driver package that the ALSA project provides.