In association with heise online

25 November 2009, 14:03

Kernel Log: Coming in 2.6.32 (Part 4) - Drivers

  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

by Thorsten Leemhuis

The forthcoming Linux version 2.6.32 comes with numerous new and improved drivers – for instance for the Hauppauge HVR 2200 and 2250, for some ThinkPad notebooks by IBM/Lenovo, and for the MSI Wind's fingerprint reader. The kernel developers have incorporated Microsoft's Hyper-V driver into the staging area.

Last Thursday night, Linus Torvalds released 2.6.32-rc8. He indicated that this would be the last release candidate of Linux 2.6.32 if progress continues the way it has been going – that is, if no major new problems appear and the developers continue to work on the known problems without causing major restructuring measures. Torvalds also said he wished that more developers would work on fixing the bugs on the regression list – but that at some point he's just going to have to say "ok, enough is enough" and release the new version.

Having provided an overview of the changes to the network subsystem, the graphics hardware and the storage hardware and filesystems in the previous three issues, this issue of the Kernel Log's "Coming in Linux 2.6.32" series looks at the drivers for other hardware components.

Audio and video

The kernel's audio drivers are now at the same level as ALSA 1.0.21. According to subsystem maintainer Takashi Iwai's main Git-Pull request, the driver for HD audio hardware now supports a type of "firmware" that allows special hardware requirements ("quirks") to be dynamically communicated to the driver if the BIOS provides insufficient or incorrect codec configuration details. However, the commit comment states that this is only intended as a workaround until the developers incorporate the relevant information into the driver itself – which is exactly what the kernel hackers have been doing for numerous PCs and notebooks such as the Dell Mini 9 and the MacBook Pro 5,5 in the current development cycle.

In his Git-Pull request, Iwai also highlights many improvements to the codec configuration in Dell and HP notebooks in general and the audio drivers are now said to configure Realtek codecs more reliably. The developers also improved the drivers for the Intel chip-sets used on LGA1156 boards (P55/IbexPeak). As always, there are many new ASoC (ALSA System on Chip) features – Mark Brown of Wolfsonmicro lists some of the major ones in an email; more can be found in the list at the end of this article.

In his two main patches (1, 2), Mauro Carvalho Chehab provides an overview of the most important changes to the V4L/DVB subsystem, which he maintains. Among the new additions is the CX25821 driver for TV cards based on the chip of the same name. Also new is the SAA7164 driver for the chip installed on the Hauppauge HVR 2200 and 2250.

The GSPCA framework now offers a driver for the GL860 chip used in various models of the Genesys Logic PC Camera. Another new addition is the jeilinj driver for webcams which use the video chip of the same name. The uvcvideo driver for USB webcams that comply with the USB Device Class Definition for Video Devices now supports multiple simultaneous streams (1, 2).

Programmers can now find API information about the V4L/DVB subsystem in Docbook format in the kernel documentation. The V4L/DVB subsystem now also supports the ISDB-T (terrestrial TV) and ISDB-S (satellite) transmission standards, which are mainly used in Japan and South America. The developers have also given the code for infra-red remote controls a makeover and unified some key mappings that were previously driver specific.

Immature

As in previous versions of Linux, the current development cycle's staging branch, which is home to immature drivers that don't live up to the quality standards of the kernel hackers, has seen many substantial changes. This is the main reason why the number of lines of source code currently added or removed in every new kernel version is considerably larger than it was a year or two ago. The patch which integrates the RT3090 driver for a Ralink Wi-Fi chip of the same name, alone contributes a hefty 3.5 Mbytes; the commit that integrates a driver for Realtek's 8192 Wi-Fi chip is more than 2 Mbytes.

Like many other Wi-Fi drivers in the staging area, both of these drivers use their own Wi-Fi stacks rather the kernel stack that provides Wi-Fi drivers with various basic features. As a result, userspace programs tend to have more trouble cooperating with the Wi-Fi drivers in the staging area. Dan Williams, the developer of the NetworkManager used in many distributions, has repeatedly criticised the staging Wi-Fi drivers for this reason (1, 2). He recently summarised his criticism in a comprehensive blog posting that highlights several individual problems. Some of the developers working on kernel Wi-Fi drivers have also criticised the staging drivers in the past, and recently there were various, sometimes rather unfriendly, discussions between the developers of the Ralink drivers in the Wi-Fi subsystem and the developers of those in the staging area.

Staging drivers don't just lack quality; in contrast to regular kernel drivers, they also occasionally disappear without warning if people stop maintaining them – in the current development cycle, this was the fate suffered by drivers like agnx, epl, sxg and heci. The developers have removed the cpc-usb staging driver, as its functionality is now provided by the ems_usb driver, which was integrated into the regular USB subsystem at the same time. They also threw out the at76_usb Wi-Fi driver because the hardware it supports has also been covered by the at76c50x-usb driver since Linux version 2.6.30.

As expected, the kernel developers have incorporated Microsoft's Hyper-V drivers, which were recently released under the GPL, into the staging area. These drivers allow Linux guest systems to partially bypass hardware emulation when running certain Microsoft virtualisation solutions, which considerably improves I/O performance. As the Microsoft developers have become active again, it is now unlikely that their drivers will be removed in 2.6.33 – which is what the maintainer of the staging area had threatened to do because he hadn't heard anything from the developers for a long time. Integrated at the beginning of the current development cycle, the cowloop driver has been removed again due to problems even before the final release of 2.6.32.

USB, notebooks, input devices, hardware monitoring, etc.

The USB 3.0 drivers integrated with 2.6.31 now operate smoothly due to various changes made in 2.6.32 – some of the relevant patches have also been incorporated into the series 2.6.31 stable kernels to improve these kernels' USB 3.0 support. A new API allows applications to instruct the kernel to ignore specific USB ports, and the devices connected to them, because the application looks after them itself – this can, for example, be interesting for virtualisation solutions that pass USB devices on to their guests.

The thinkpad-acpi driver has been given a major overhaul – among the improvements are the support of ThinkPads with a more recent generation of firmware ("second-gen firmware") and better userspace coordination for controlling volume and brightness via hotkeys. A driver for the Topstar N01 netbook has also been added.

The subsystem for input devices now offers a driver for the Sentelic Finger Sensing Pad – a fingerprint reader used in some of the devices in MSI's Wind series. Another first-time official kernel component is the driver for Winbond's WPCD376I infrared controller (CIR/Consumer IR) found, for instance, on Intel's DG45FC motherboard.

UIO (Userspace I/O) now offers a generic driver for PCI 2.3 devices – the driver's developer intends to combine it with Qemu for use in virtualisation. The I2C subsystem already supports AMD's SB900 Southbridge that hasn't even been officially announced. A new addition is an I2C driver for the generic, ACPI-based SMBus Control Method Interface (CMI)PDF. Also new is the EDAC support for Intel's 3200 and 3210 chip-set designed for Xeon CPUs with LGA775 housing.

Minor Gems

Many further minor, but by no means insignificant, changes can be found in the list below. Like many of the references in the text above, the links point to the relevant commits in the web front end of the Git branch at kernel.org that Linus Torvalds uses for maintaining the kernel sources. There, the commit comments and the patches themselves provide extensive further information on the respective changes.

Audio

ASoC

Hardware-Monitoring, I2C, EDAC

Input

Netbooks and Notebooks

Staging

USB

Video

Various other drivers

For other articles on 2.6.32 and links to the rest of the "Coming in 2.6.32 " series, see The H's Kernel Log - 2.6.32 Tracking page. (thl /c't).

(crve)

Print Version | Send by email | Permalink: http://h-online.com/-868263
 


  • July's Community Calendar





The H Open

The H Security

The H Developer

The H Internet Toolkit