Kernel Log: Coming in 2.6.37 (Part 5) - Drivers
by Thorsten Leemhuis
Support for fast USB 3.0 storage devices with USB Attached SCSI Protocol (UASP), an audio loopback driver plus extensions to support Apple's Magic Trackpad are only some of the advances that improve the hardware support of the forthcoming Linux kernel version 2.6.37; final release is expected in January.
On the Wednesday before Christmas, Linus Torvalds issued the seventh release candidate of Linux 2.6.37. In his release email, Torvalds mentioned a few relatively substantial changes and said that some of them make him slightly nervous. On the 29th of December an eighth release candidate was released by Torvalds which he described as "just a collection of random fixes all over". It'll be early in the New Year when we see Linux version 2.6.37 finalized.
The Kernel Log completes the "Coming in 2.6.37" mini-series with a description of various drivers and their surrounding kernel infrastructure. Part 1 of this mini-series described the graphics hardware drivers, while Part 2 discussed file systems. Part 3 dealt with the network and storage hardware, and Part 4 discussed the changes in terms of the kernel's architecture and infrastructure code.
USB and FireWire
A new addition to the kernel is the "uas" driver for the USB Attached SCSI Protocol (UASP) which allows fast data transfers with USB 3.0 storage devices that support this technology. Shortly after it was integrated, Luben Tuikov proposed the alternative, allegedly superior, uasp driver and suggested that this driver should be incorporated into the kernel and uas discarded. However, his rather clumsy approach was unsuccessful, as he disregarded various of the kernel developers' documented and undocumented conventions; further background information can be found in various places in the LKML archives.
The XHCI driver for USB 3.0 controllers now offers power management support (1, 2, 3, 4); this makes it possible to suspend and resume without temporarily having to unload the driver.
As planned, the kernel developers have removed the older of the two FireWire stacks and the drivers based on it; according to the commit comment, the more recent stack and its drivers offer a better range of features, are faster and also offer better security. The comment also describes various minor problems with the new stack which only occur in very special circumstances; the stack was added to the kernel with version 2.6.22.
Media / V4L / DVB and audio
In the main Git-Pull request for the Media / V4L / DVB subsystem, Mauro Carvalho Chehab says that there have been many fixes, clean-ups and improvements in the kernel area he maintains. For instance, improvements include an extension for the cx231xx driver to support the Carraera, Shelby, RDx_253S and VIDEO_GRABBER TV hardware. Various new drivers and major improvements were also added to the still emerging support of IR remote controls and their corresponding receivers.
Chehab said that almost all the remaining V4L1 drivers have now been ported to V4L2. Some of the remaining V4L1 drivers were marked as "deprecated" and moved to the staging area, because the developers said that they wouldn't have a way of testing them after the port to more recent interfaces, and that porting them would be quite involved; among these drivers are, for example, cpia and stradis, which are scheduled to be removed in 2.6.38.
Takashi Iwai has provided a good overview of the changes to the kernel's ALSA audio drivers, which he maintains, in his main Git-Pull request. For instance, he mentions the new snd-aloop driver. This allows the configuration of "PCM loopback devices" that return the data they receive to the userspace via a different device, which can, for example, be relevant for synchronization. The various HDMI drivers for hardware by AMD / ATI, Intel and NVIDIA have been combined in the snd-hda-codec-hdmi driver.
Staging
In addition to the Wi-Fi driver changes in the staging area already discussed in part 3 of the "Coming in 2.6.37" mini-series, the kernel hackers made various other changes in this area for drivers that don't meet the developers' quality standards. Apart from the brcm80211 and r8712u drivers for Broadcom and Realtek hardware already discussed, the staging area now also includes the ath6kl driver for the Atheros AR6003 chip used in mobile and embedded computing. Another addition to this staging area is the bcm_wimax driver for a WiMAX Dongle with Beeceem chip sold by Sprint.
The TI-ST (1, 2) and mrst-touchscreen drivers have fully matured in the staging area and are no longer considered to be lacking quality; the developers have, therefore, moved them to their proper place in the kernel code. autofs3 and smbfs have been moved to the staging area because nobody is looking after them; both drivers are probably soon to be thrown out unless someone takes on the task of maintaining them.
Code integration for the HTC Dream in the staging area was unsuccessful, and the code has now been removed, as there has been no interest in developing this code variant; however, another variant of the code is still being developed. Staging area maintainer Greg Kroah-Hartman has summarized other staging changes in his main Git-Pull request.