Kernel Log: Coming in 2.6.36 (Part 4) - Drivers
by Thorsten Leemhuis
Drivers in 2.6.36 include considerably improved support for infra-red receivers and remotes, optimised USB drivers, and a solution for a much discussed problem that Android developers, in one way or another, had solved long ago.
When releasing the sixth beta version of Linux 2.6.36 on Wednesday last week, Linus Torvalds indicated that Linux kernel 2.6.36 would soon be published. The Kernel Log therefore closes its mini-series on 2.6.36 with this fourth instalment focusing on changes to drivers and the infrastructure related to them, such as ACPI, PCI etc. The Part 1 of the series dealt with changes concerning graphics hardware; Part 2 with file systems and storage / network hardware; and Part 3 with memory management, the build system, and support for various CPU and system architectures.
IR hardware, Video4Linux and USB
The subsystem introduced in 2.6.35 for infra-red hardware now offers interfaces that the LIRC userspace daemon can use to share raw data with infra-red receivers and transmitters; for instance, the daemon decodes the IR data if the kernel driver is not able to (1, 2). A number of new drivers for IR hardware from various vendors were added to the still young IR subsystem. Most of them are ports of LIRC drivers that used to be maintained externally; a number of LIRC drivers that have not yet migrated were put into staging for the time being – for details, see "Minor gems" at the end of this article in the section on V4L.
The kernel hackers removed the V4L drivers ov511, stv680_blank, quickcam_messenger, w9968cf and zc0301 because the kernel has long been controlling the hardware they handle with a modern Gspca driver. The new "Control Handling Framework" is to facilitate the development of V4L drivers. The V4L-Gspca driver sq930x, which also handles a few Creative webcams was added to the kernel.
Thanks to changes to the USB subsystem, it now provides better support for some of the extensions of USB 2.0 described in Addendum 1.1 of the EHCI specification, which are designed to improve power management (1, 2, 3). The USB code now supports the power-saving function of PCI USB controllers usable during runtime in addition to some vendor-specific wakeup flags that Intel integrated in the USB controller of some of its I / O controller hubs. The USB storage driver now offers basic support for USB auto-suspend – the commit comment says, however, that the support only works with such devices as card scanners and flash drives, but not especially well with HAL and DeviceKit, which wakes up the USB devices by regularly checking for new media. The xHCI driver for USB 3.0 now reportedly transmits data faster and supports isochronous transfers.