Linux 2.6.33 has been released on February 24th, 2010.
Summary: This version features Nouveau (a reverse-engineered driver for Nvidia graphic cards), Nintendo Wii and Gamecube support, DRDB (Distributed Replicated Block Device), a security extension for TCP called "cookie transactions", a syscall for batching recvmsg() calls, several new perf subcommands (perf probe, perf bench, perf kmem, perf diff), support for cache compression, Xen PV-on-HVM support, drivers for virtual network and graphic cards from VMWare, swappable KSM pages, and many new drivers and many small improvements and bugfixes
- Prominent features (the cool stuff)
- Nouveau, a driver for Nvidia graphic cards
- DRDB (Distributed Replicated Block Device)
- Perf improvements: perf probe, perk kmem, perf bench, perf diff, perf perl scripts and filters
- recvmmsg(), a syscall for batching recvmsg() calls
- TCP Cookie Transactions
- Support for Xen PV-on-HVM guests
- Swappable KSM pages
- Block IO Controller
- Compcache: memory compressed swapping
- Graphic improvements
- Nintendo Wii and Gamecube support
- VMware drivers
- Reiserfs de-BKLification
- Android removed from the Linux kernel
- Various core changes
- Block
- Virtualization
- MD/DM
- Filesystems
- Networking
- Security
- Tracing/Profiling
- Crypto
- Architecture-specific changes
- Drivers
1. Prominent features (the cool stuff)
1.1. Nouveau, a driver for Nvidia graphic cards
This version includes Nouveau, a driver for Nvidia graphic cards, the one major GPU vendor without opensource drivers in the Linux kernel. Being developed since 2006, it has 26,000 LoC (not counting the Mesa stuff and the rest of the DRM stack). Nvidia has not contributed to this driver, it has been reverse-engineered. Graphic cards are one of the most complex pieces of hardware that you can find in modern computers, it's difficult to write drivers for them even having all the docs. So the developers of Nouveau deserve a big applause.
Nouveau is important because opensource is the one way to get good long term support for your graphic card. The new and powerful graphic card you've bought today will be unsupported in a few years. This doesn't happen with open source drivers, Nouveau (and ATI open source drivers) support today more devices than the official propietary drivers: for example, Riva TNT and Geforce 2/4MX/4Ti/FX.
The feature set, however, is not comparable, but Nouveau already supports a decent set of features: modesetting (KMS), suspend/resume, Dual Head (RandR 1.2), and 2D operations (EXA, Xrender, Xv video). 3D functionality is not fully supported, but it's improving. And, of course, it's not stable, which is why it's only being merged in the staging directory.
The ctxprogs/ctx_voodoo" firmware will not be needed in the future, because it can be autogenerated. Only a few cards autogenerate it today, but the dependency will be removed in the future.
1.2. DRDB (Distributed Replicated Block Device)
Recommended LWN article: DRBD: a distributed block device
Web site (includes extensive documentation): http://www.drbd.org/
DRDB ("Distributed Replicated Block Device") is a shared-nothing, synchronously replicated block device, developed by LINBIT. It is designed to serve as a building block for high availability (HA) clusters. DRBD can be understood as network based raid-1.
For automatic failover you need a cluster manager (e.g. heartbeat). See also: http://www.drbd.org/, http://www.linux-ha.org
Code: (commit)
1.3. Perf improvements: perf probe, perk kmem, perf bench, perf diff, perf perl scripts and filters
Recommende LWN article: Dynamic probes with ftrace
This release adds a lot of improvements to the tracing infrastructure and the perf tool. (tools/perf)
perf probe: perf probe is a subcommand that allows to create kprobe events. Kprobe is a system that allows to break into any kernel routine at runtime and collect debugging and performance information non-disruptively. It's the system used by Systemtap to do kernel instrumentation. Perf probe allows to define kprobe events using C expressions (C line numbers, C function names, and C local variables). For example:
Step 1: Add a new kprobe probe on a line of C source code: "perf probe -P 'p:myprobe @fs/read_write.c:285 file buf count'" (it creates a new probe, called "myprobe", which will inspect the variables file, buf and count). Alternatively, you could also run simpler commands like "perf probe sys_open" to add a probe for the sys_open symbol (open() syscall)
Step 2: Add a new kretprobe probe on a function return "perf probe -P 'r:myretprobe vfs_read $rv'"
Step 3: If you run "perf list", you will see a event section named "kprobes" which contains the probes you just set up.
Step 4: Record the event: "perf record -f -e kprobes:myprobe:record -F 1 -a ls" and trace it "perf trace"
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
perf bench: perf bench is a small suite of microbenchmarks. In this release, there're only three benchmarks: perf bench sched messaging (for benchmarking scheduler and IPC), perf bench sched pipe (benchmarks pipe()) and perf bench mem memcpy (measures memory bandwith). The command perf bench all will run all benchmarks.
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)
perf kmem: This tool is mostly a perf version of kmemtrace-user. It shows various information of SLAB
perf diff: perf diff shows performance differences between various records
Code: (commit)
perf perl scripts: (Recommended LWN article: Scripting support for perf It's a Perl scripting engine for programmable 'perf trace' scripting. See perf trace -g/--gen-script and perf trace -s/--script.
Code: (commit 1, 2, 3, 4, 5, 6)
perf filters: This feature adds "--filter expression" support to tracepoints, which utilizes the filter engine within the kernel. For example, to trace only timer interrupts in the system: "perf record -e irq:irq_handler_entry --filter='irq==0' -R -f -a sleep 10". Or to only record IRQ 19 when the 'achi' handler is triggered: "perf record -e irq:irq_handler_entry --filter='irq==19 && name==ahci' -R -f -a sleep 10"
Code: Add filter Suppport (commit), (commit)
1.4. recvmmsg(), a syscall for batching recvmsg() calls
Recommended LWN article: In brief
Recommended slides: Batch datagram processing
recvmmsg() is a new syscall that allows to receive with a single syscall multiple messages that would require multiple calls to recvmsg(). For high-bandwith, small packet applications, throughput and latency are improved greatly.
Code: (commit)
1.5. TCP Cookie Transactions
Recommended LWN article: TCP cookie transactions
Recommended Wikipedia article: TCP Cookie Transactions
TCP Cookie Transactions (TCPCT) is an extension of TCP intended to secure it against denial-of-service attacks, such as resource exhaustion by SYN flooding and malicious connection termination by third parties. Unlike the original SYN cookies approach, TCPCT does not conflict with other TCP extensions, but requires TCPCT support in the client (initiator) as well as the server (responder) TCP stack. The immediate reason for the TCPCT extension is deployment of the DNSSEC protocol.
Code: (commit), (commit), (commit), (commit), (commit), (commit), (commit)
1.6. Support for Xen PV-on-HVM guests
Support for Xen PV-on-HVM guests can be implemented almost entirely in userspace, except for handling one annoying MSR that maps a Xen hypercall blob into guest address space. This patch implementes a new ioctl, KVM_XEN_HVM_CONFIG, that lets userspace tell KVM which MSR the guest will write to, as well as the starting address and size of the hypercall blobs (one each for 32-bit and 64-bit) that userspace has loaded from files. When the guest writes to the MSR, KVM copies one page of the blob from userspace to the guest.
Code: (commit)
1.7. Swappable KSM pages
Kernel Samepage Merging (KSM) is a feature merged in Linux 2.6.32 which deduplicates memory of virtualized guests. The implementation, however, didn't allow to swap the pages that were shared. This release brings swap support for KSM pages.
Code: (commit)
1.8. Block IO Controller
Recommended LWN article: The block I/O controller
Control groups are virtual "containers" that are created as directories inside a special virtual filesystem (usually, with the help of tools), and arbitrary sets of processes can be added to that control group, which you can configure to a set of cpu scheduling or memory limits that will affect to all the processes inside the control group.
This release adds a block IO controller. Currently, CFQ IO scheduler uses it to recognize task groups and control disk bandwidth allocation to such task groups (somewhat like CFQ priorities, but implemented in a very different way), this controller will be extended in the future. For more details, read thedocumentation
Code: (commit 1), 2 ,3, 4, 5, 6, 7, 8, 9, 10 ,11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
1.9. Compcache: memory compressed swapping
Recommended LWN article: Compcache: in-memory compressed swapping
Compcache is a project (still under development, only available in Staging) creates RAM-based block devices (/dev/ramzswapX) which are used as swap disks. Pages swapped to this virtual device are compressed to a smaller size. Part of your RAM is used as usually, and another part (the size is configurable) is used to save compressed pages, increases the amount of RAM you can use in practice.
This feature can be very useful in many cases: Netbooks, smartphones and other embedded devices, distro installers, dumb clients without disk, virtualization, or old machines with not enought RAM to run modern software.
Measurements have found this feature very effective. See this page to see some benchmarks. The project home page can be found athttp://compcache.googlecode.com/
1.10. Graphic improvements
Besides the inclusion of Nouveau, there's the usual round of improvements to the graphic stack that have become common after GEM and KMS were merged.
Page flipping: A ioctl has been added to support page flipping in the KMS API. This functionality is needed to implement tearing-free desktops(commit), (commit)
Radeon HDMI support for R600 KMS (commit) and Displayport support (commit), (commit), (commit), (commit), (commit), (commit), (commit),(commit)
i915 overlay support for KMS (commit)
1.11. Nintendo Wii and Gamecube support
The gc-linux.sourceforge.net project has been working in Linux support for the PPC-based game consoles Nintendo Wii and Nintendo Gamecube. This release merges this support in the kernel.
Nintendo Gamecube support (commit), (commit), (commit), (commit), (commit), (commit)
Wii support (commit), (commit), (commit), (commit)
1.12. VMware drivers
VMWare has contributed two drivers for the VWware Virtual GPU, and for the VMware's virtual Ethernet NIC vmxnet3. Thanks to udev, this means that Linux guests running inside a VMware host will have optimal graphic and network performance out-of-the-box.
vmwgfx: (commit), (commit) vmxnet3: (commit), (commit)
1.13. Reiserfs de-BKLification
One of the biggest shortcomings of reiserfs v3 (and one of the reasons why most distros use Ext instead) is that its codebase handles concurrency using a single big lock - the BKL (Big Kernel Lock). This means that its SMP scalability is very poor. This release won't fix that issue, but it replaces the BKL with a reiserfs-specific solution. In this release, there are no more traces of the BKL inside reiserfs. It has been converted into a recursive mutex. This sounds dirty but plugging a traditional lock into reiserfs would involve a deeper rewrite as the reiserfs architecture is based on the ugly big kernel lock rules.
Due to the subtle semantics of the locking changes, some workloads may have small performance regressions and other have improvements.
1.14. Android removed from the Linux kernel
Recommended article: Android and the Linux kernel community
Google doesn't seem to have interest in improving the Android drivers to have minimum quality standards which could allow to merged them in the main Linux tree and share them with the rest of community. Of course, that's totally legal, but it's sad that a project that is doing so much to bring open source to the masses has become an example of how not to interact with an open source community.
2. Various core changes
Process scheduler: Rate-limit newidle (commit)
RCU: "Tiny RCU", The Bloatwatch Edition (commit), enable fourth level of TREE_RCU hierarchy (commit), make RCU's CPU-stall detector be default(commit),
Kill legacy percpu allocator (commit)
vt: make the default cursor shape configurable (commit), (commit)
hugetlb: add hugepage support to pagemap (commit), add per node hstate attributes (commit)
aio: implement request batching (improvement of up to 30% for sequential 4k reads in batches of 16) (commit)
Hwpoison: Add memory cgroup filter (commit), add soft page offline support (commit), add unpoisoning support (commit), add fs/device filters(commit)
procfs: allow threads to rename siblings via /proc/pid/tasks/tid/comm (commit)
scripts/get_maintainer.pl: add --roles and --rolestats (commit)
locking: Make inlining decision Kconfig based (commit)
memcg: coalesce charging via percpu storage (commit), coalesce uncharge during unmap/truncate (commit)
Add numa node symlink for cpu devices in sysfs (commit), add numa node symlink for memory section in sysfs (commit)
IPC: Several optimizations (commit), (commit), (commit), (commit), (commit), (commit)
kexec: premit reduction of the reserved memory size (commit)
fiemap: Add new extent flag FIEMAP_EXTENT_SHARED (commit)
quota: Implement quota format with 64-bit space and inode limits (commit)
3. Block
Remove the anticipatory IO scheduler (replaced by the default io scheduler, CFQ) (commit)
readahead: add blk_run_backing_dev on page_cache_async_readahead so readahead I/O is unpluged to improve throughput on especially RAID environment (commit)
Merge cooperating cfq_queues. Performance of the read-test2 benchmark (which is written to emulate the dump(8) utility) went from 12MB/s to 90MB/s on a SATA disk. NFS servers with multiple nfsd threads also saw performance increases (commit)
Reimplement priorities using different service trees (commit)
Fairness for sync no-idle queues (commit)
cciss: Add enhanced scatter-gather support. (commit)
4. Virtualization
Shared msr infrastructure (improves vcpu/idle/vcpu switches by about 2000 cycles in VMX) (commit), (commit)
Enable KVM autoloading to avoid conflict with other VMMs (commit)
Support for PowerPC book3s_64 processors (commit)
SVM: Support Pause Filter in AMD processors (commit)
VMX: Add support for Pause-Loop Exiting (commit)
x86: Add KVM_GET/SET_VCPU_EVENTS ioctls (commit)
5. MD/DM
Support barrier requests on all personalities. (commit)
Support write-intent bitmaps with externally managed metadata. (commit)
Add 'recovery_start' per-device sysfs attribute (commit)
Raid1: add takeover support for raid5->raid1 (commit)
Support updating bitmap parameters via sysfs. (commit)
Improve performance of MD/raid10 handling of correctable read errors. (commit)
6. Filesystems
Ext3: Support for vfsv1 quota format (commit)
Exofs: Multi-device mirror support (commit)
FAT: make discard a mount option (commit)
UFS: NFS support (commit)
OCFS2: Always include ACL support (commit)
7. Networking
Batch network namespace destruction. (commit)
Support specifying the network namespace upon device creation. (commit)
Implement basic ethtool support for cfg80211 devices (commit)
nl80211: PMKSA caching support (commit)
cfg80211: Add PMKSA wext compatibility handler (commit)
mac80211: add nl80211/cfg80211 handling of the new mesh root mode option. (commit)
mac80211: async station powersave handling (commit)
mac80211: implement support for 4-address frames for AP and client mode (commit)
Add sysctl to accept packets with local source addresses (commit)
sit: 6rd (IPv6 Rapid Deployment) Support. (commit)
macvlan: implement bridge, VEPA and private mode (commit)
Phonet: routing table Netlink interface (commit)
compat_ioctl: support SIOCWANDEV (commit)
RDS: Add GET_MR_FOR_DEST sockopt (commit)
Bluetooth: Implement raw output support for HIDP layer (commit)
8. Security
Config option to set a default LSM (commit)
TOMOYO: Add recursive directory matching operator support (commit)
Remove root_plug sample (commit)
Remove CONFIG_SECURITY_FILE_CAPABILITIES compile option (commit)
9. Tracing/Profiling
Add bkl ftrace events (commit)
Provide basic regex support (commit)
ftrace: add kernel command line graph function filtering (commit)
tracing: Create new TRACE_EVENT_TEMPLATE (optimizes trace points size) (commit)
hw-breakpoints: Rewrite the hw-breakpoints layer on top of perf events (commit), ftrace plugin for kernel symbol tracing using HW Breakpoint interfaces (commit)
10. Crypto
ghash: Add PCLMULQDQ accelerated implementation (commit)
hash: Remove legacy hash/digest code (commit)
11. Architecture-specific changes
gru: add hugepage support (commit), add additional GRU statistics (commit), allow users to specify gru chiplet (commit), (commit), (commit)
Add a Kconfig option to turn the copy_from_user warnings into errors (commit)
Introduce msi-wmi driver (commit)
Support customizing ACPI control methods at runtime (commit)
classmate-laptop: add support for Classmate PC ACPI devices (commit)
asus-laptop: add Lenovo SL hotkey support (commit)
dell-wmi: Add support for new Dell systems (commit)
thinkpad-acpi: basic ALSA mixer support (v2) (commit)
eeepc-laptop: add touchpad led (commit)
Toshiba Bluetooth Enabling driver (RFKill handler v3) (commit)
Add minimal board file for HTC Dream device (commit)
Add KZM-ARM11-01 support (commit)
ST-Ericsson Multicore Mobile Platforms U8500 (commit), (commit), (commit), (commit), (commit)
mx27: Add basic support for Maxtrack i-MXT TD60 (commit), add support to SD/MMC (commit)
mx31moboard: camera support (commit), support for usbh1 and usbh2 (commit)
iop: clockevent support (commit), clocksource support (commit), enable generic time (commit)
MXC: Add a digital audio multiplexer driver (commit)
AM35xx: Add support for AM3517 EVM board (commit)
AT91: add touchscreen support for at91sam9g45ekes (commit), support for eco920 (commit)
ep93xx: add keypad core support (commit)
Introduce plat-nomadik, MTU code re-organization (commit)
Add an earlyprintk debug console (commit)
Add base support for Marvell Dove SoC (commit)
Kirkwood: Add support for QNAP TS-41x Turbo NAS (commit), add Lacie Network Space v2 support (commit)
MX3: add MMC/SDHC support to mx31lite-db.c (commit)
NUC900: add RTC driver support for nuc910 and nuc920 (commit), add spi driver support for nuc900 (commit)
OSIRIS: DVS (Dynamic Voltage Scaling) supoort. (commit)
pxa/cm-x300: add TDO35S lcd support (commit), add Wi2wi chip (Bluetooth and Wifi) initialization (commit), add ac97 controller registration(commit), add da9030 support (commit), add support for PXA310 cpu (commit), enable USB port 2 for PXA300 (commit)
pxa/ezx: add camera support for A780 and A910 EZX phones (commit)
pxa/treo: add Palm Centro 685 support (commit)
pxa/zeus: basic support for Arcom Zeus SBC (commit)
S3C24XX: machine support for Simtec Audio (commit)
S3C64XX: add HSMMC2 support (commit)
S5PC1xx: add platform helpers for SDHCI host controllers (commit)
Add Tauros2 L2 cache controller support (commit)
Armadillo500 Add i2c second bus support. (commit)
Kill CONFIG_CPU_32 (commit)
tracing: Add hypervisor call tracepoints (commit), add powerpc tracepoints for interrupt entry and exit (commit), add powerpc tracepoints for timer entry and exit (commit)
5200: add Localplus bus FIFO device driver (commit), add mpc5200-spi (non-PSC) device driver (commit)
85xx/86xx: Add suspend/resume support (commit), add power management support for MPC8315E-RDB boards (commit)
Add kdump support to Collaborative Memory Manager (commit)
Broadway processor support (commit)
Lemote 2F: Add basic CS5536 VSM support (commit), add cs5536 MFGPT timer support (commit),
Loongson 2F: Add CPU frequency scaling support (commit), add suspend support framework (commit), add basic Loongson 2F support(commit)
PowerTV: Base files for Cisco PowerTV platform (commit)
Add support for GZIP / BZIP2 / LZMA compressed kernel images (commit)
Add support for uncached accelerated mappings. (commit)
eXcite: Remove platform. (commit)
Add sleazy FPU optimization (commit)
oprofile: Kill off bitrotted SH7750 driver. (commit)
perf events: Add preliminary support for SH-4A counters. (commit)
perf events: Add support for SH7750-style counters. (commit)
Remove old early serial console code V2 (commit)
Support SCHED_MC for SH-X3 multi-cores. (commit)
AVR32: add support for ATNGW100 mkII board (commit)
Blackfin: add support for the Acvilon BF561 board (commit)
m68knommu: add uboot commandline argument passing support (commit)
Alpha: Add minimal support for software performance events (commit)
IA64: convert to dynamic percpu allocator (commit)
12. Drivers
12.1. Graphics
drm: Add dirty ioctl and property (commit)
mb862xxfb: add acceleration support for Coral-P/Coral-PA. * imageblt * copyarea * fillrect (commit)
bfin-lq035q1-fb: new Blackfin Landscape LCD EZ-Extender driver (commit)
12.2. Storage
3w-sas: Add new driver for LSI 3ware 9750 (commit)
hpsa: add driver for HP Smart Array controllers. (commit)
pm8001: add SAS/SATA HBA driver (commit)
vmw_pvscsi: SCSI driver for VMware's virtual HBA. (commit)
be2iscsi: Adding msix and mcc_rings V3 (commit)
bnx2i: Add 5771E device support to bnx2i driver (commit)
fnic: Add FIP support to the fnic driver (commit)
ibmvfc: Add FC Passthru support (commit)
libfc, fcoe: Add FC passthrough support (commit), NPIV support (commit), adds enable/disable for fcoe interface (commit),
lpfc: Add AER support (commit)
megaraid_sas: Add new megaraid SAS 2 controller support to the driver (commit), add the IEEE SGE support to SAS2 controller (commit)
mpt2sas: New device SAS2208 support is added (commit), add support for RAID Action System Shutdown Initiated at OS shutdown (commit)
mvsas: add support for Adaptec ASC-1045/1405 SAS/SATA HBA (commit)
12.3. Networking devices
iwmc3200top: Add Intel Wireless Multicom 3200 top driver. (commit)
Add Ethernet driver for Octeon MGMT devices. (commit), (commit)
Add driver for mscan family & mpc52xx_mscan (commit)
wl1251: add support for PG11 chips (commit), add connection monitoring configuration (commit), enable beacon filtering with the stack (commit), enable power save (commit), added support to scan on 5 GHz band (commit), increase TX power value (commit), multicast filtering configuration(commit), support for IPv4 ARP filtering (commit)
gianfar: Add support for hibernation (commit), add per queue structure support (commit), introduce logical group support (commit), add Multiple Queue Support (commit), add Multiple group Support (commit), add support etsec2.0 registers. (commit), basic Support for programming hash rules(commit)
iwlwifi: add channel switch support to 5000 series and up (commit), add SM PS support for 6x50 series (commit), add wimax/wifi coexist support for 6x50 series (commit), device tracing (commit), support idle for 6000 series hw (commit)
sfc: Add support for SFC9000 family (commit), (commit), add power-management and wake-on-LAN support (commit), extend MTD driver for use with new NICs (commit), implement ethtool reset operation (commit), implement TSO for TCP/IPv6 (commit)
rt2x00: Implement support for rt2800pci (devices supported: RT2760, RT2790, RT2860, RT2880, RT2890 & RT3052) (commit), add dynamic detection of eFuse EEPROM in rt2800pci. (commit)
rt2800: add eFuse EEPROM support code to rt2800lib (commit), (commit)
qlge: Add ethtool blink function. (commit), add ethtool get/set pause parameter. (commit), add ethtool register dump function. (commit), add ethtool wake on LAN function. (commit)
tg3: Add 57765 asic rev (commit), fix DIDs, Enable 5717 support (commit), make TSS enable independent of MSI-X enable (commit)
iwmc3200wifi: 802.11n Tx aggregation support (commit), CT kill support (commit), implement cfg80211 PMKSA API (commit), WPS support (commit)
be2net: Add support for next generation of Bladeengine device. (commit), add support for ethtool self test (commit)
igb: Add support for 82580 devices (commit), (commit), (commit), add support for 82576NS Serdes adapter (commit)
can: add the driver for Analog Devices Blackfin on-chip CAN controllers (commit), add TI CAN (HECC) driver (commit), add driver for the Microchip MCP251x SPI CAN controllers (commit)
via-velocity: Implement NAPI support (commit), add ethtool interrupt coalescing support (commit)
mwl8k: add support for the 88w8366 (commit), add support for enabling hardware sniffer mode (commit)
libertas: Add auto deep sleep support for SD8385/SD8686/SD8688 (commit)
cnic: dd main functions to support bnx2x devices (commit), (commit)
sky2: 88E8059 support (commit), add SK-9E21M device id (commit)
bnx2x: Add support for BCM84823 (commit)
wimax/i6x50: add Intel Wifi/WiMAX Link 6050 Series support (commit)
gigaset: add Kernel CAPI interface (commit), allow building without I4L (commit)
pasemi_mac: ethtool set settings support (commit)
e1000e: enable new 82567V-3 device (commit)
KS8695: add support NAPI for Rx (commit)
i2400m: minimal ethtool support (commit)
ixgbe: add support for 82599 based Express Module X520-P2 (commit)
tc35815: Enable NAPI (commit)
DM9000: Wake on LAN support (commit)
qeth: Exploit Connection Isolation (commit)
Add Runtime PM to the sh_eth driver (commit)
fsl_pq_mdio: Add Suport for etsec2.0 devices. (commit)
12.4. USB
Add support for Multifunction Composite Gadgets (commit), (commit)
EHCI: introduce omap ehci-hcd driver (commit), add native scatter-gather support (commit)
usbnet & cdc-ether: Autosuspend for online devices (commit)
Add a "remove hardware" sysfs attribute (commit)
Add device ID for Apple Cinema Display 23in 2007 (commit)
Add EHCI support for MX27 and MX31 based boards (commit)
Add support for Xilinx USB host controller (commit)
Interface Association Descriptors added to CDC & RNDIS (commit)
option.c: add support for D-Link DWM-162-U5 (commit)
OTG: Add generic driver for ULPI OTG transceiver (commit)
12.5. FireWire
The newer FireWire driver stack alias Juju is now recommended over the old stack alias Linux1394 (commit), (commit)
Always use packet-per-buffer mode for isochronous reception (commit)
Various fixes. See also the 1394 release notes at kernel.org.
12.6. Input
Add Davinci Keypad Driver (commit)
Add driver for Altera PS/2 controller (commit)
Add driver for Dynapro serial touchscreen (commit)
Add generic support for sparse keymaps (commit)
Add mc13783 touchscreen driver (commit)
Add S3C24XX touchscreen driver (commit)
ALPS - add interleaved protocol support (Dell E6x00 series) (commit)
Add new driver for ADP5520 MFD PMICs (commit)
usbtouchscreen - add support for ET&T TC5UH touchscreen controller (commit), add support for Zytronic capacitive touchscreen (commit)
wacom - add support for new LCD tablets (commit)
12.7. Sound
ice1724 - Infrasonic Quartet support (commit)
opti-miro: add PnP detection (commit)
Add SuperH DAC audio driver for ALSA V4 (commit)
snd-pcsp: add nopcm mode (commit)
snd-usb-us122l: add support for US-144 (commit)
sscape: add supoort for SPEA Media FX/Reveal SC-600 (commit)
Oxygen: add digital filter control (commit), add stereo upmixing to center/LFE channels (commit),
usb-audio: add Roland UA-1G support (commit)
virtuoso: add headphone impedance control (commit)
Add ALC661/259, ALC892/888VD support (commit)
Add beep_mode module parameter (commit)
Add support for the new 27 inch IMacs (commit)
VIA: Add Jack detect feature for VT1708. (commit), add smart5.1 function. (commit), add VT1716S support. (commit), add VT1718S support.(commit), add VT1812 support. (commit), add VT1828S and VT2020 support. (commit), add VT2002P support. (commit)
Add Raumfeld audio support (commit)
Added the CPU driver for PCM controllers (commit)
Adding OMAP3517 / AM3517 EVM support in ASOC (commit)
Add support for IGEP v2 (commit)
Add support for the WM8727 DAC. (commit)
Add WM8711 CODEC driver (commit)
ADS117x ADC driver (commit)
AK4671: add ak4671 codec driver (commit)
Codec driver for Texas Instruments tlv320dac33 codec (commit)
Davinci: Add audio codec support for DM365 EVM (commit)
OMAP: enable Overo driver for CM-T35 (commit)
Support WM8580 based audio subsystem on SMDK64xx machines (commit)
TPA6130A2 amplifier driver (commit)
Remove OSS Ensoniq Soundscape driver. It's broken after conversion to mutexes and a new ALSA snd-sscape driver handles all devices (commit)
12.8. Staging Drivers
Added Realtek rtl8192u driver to staging (commit)
rt2860: add RT3090 chipset support (commit)
Add Samsung Laptop driver (commit)
Add batman-adv meshing protocol (commit)
iio: tsl2563 ambient light sensor driver (commit)
sm7xx: add a new framebuffer driver (commit)
wlags49_h2: add Agere driver for HERMES II and HERMES II.5 chipsets (commit)
Unmaintained drivers that are moved to staging and will be removed if nobody fixes them: strip (commit), wavelan (commit), netwave (commit), arlan (commit),
Remove tsl2561 driver. Support merged with tsl2563. (commit)
Remove no longer needed rt3090 driver (commit)
dst: remove from the tree (will be replaced by another thing) (commit)
android: delete android drivers (commit)
12.9. V4L/DVB
Add a v4l2-subdev (soc-camera) driver for Omnivision OV9640 sensor (commit)
ec100: add new driver for E3C EC100 DVB-T demodulator (commit)
ec168: add new driver for E3C EC168 DVB USB (commit)
soc-camera: add a new driver for the RJ54N1CB0C camera sensor from Sharp (commit), add mt9t112 camera driver (commit)
Add support for Asus Europa Hybrid DVB-T card (commit)
gspca_ov519: Add support for OV2610 and OV3610 sensors (commit), add support for the ovfx2 bridge (commit)
radio: Add support for TEF6862 tuner (commit)
saa7134: add support for the Leadtek DTV1000S (commit)
cx23885: card mygica x8506 add analog video input support (commit)
gspca: pac7311: Webcam 093a:2628 added. (commit), add support for Winbond W9967CF and W9968CF camera's (commit), (commit), add stv0680 subdriver (commit)
uvcvideo: Add support for MSI Starcam 370i webcams (commit)
cx23885: add digital television support for Hauppauge WinTV-HVR1290 (commit)
af9015: support for Sveon STV20 Tuner USB DVB-T HDTV (commit)
Maxium MAX2165 silicon tuner (commit)
Altobeam ATBM8830 GB20600-2006(DMB-TH) demodulator (commit)
cx23885: Add support for Mygica X8558pro DMB-TH (commit)
cx-usb: add Mygica D689 DMB-TH USB support (commit)
firedtv: port to new firewire core (commit)
Add Prof 7301 PCI DVB-S2 card (commit)
Tevii S470 and TBS 6920 fixes (commit)
em28xx: add support for em2800 VC211A card (commit)
Dib8090: Add the Dib0090 tuner driver and STK8096GP-board (commit)
v4l: add a media-bus API for configuring v4l2 subdev pixel and frame formats (commit)
rj54n1cb0c: Add cropping, auto white balance, restrict sizes, add platform data (commit)
Add support for yet another Dvbworld, Tevii and Prof USB devices (commit)
12.10. HID
Add support for Acan FG-8100 barcode reader (commit)
blacklist Acer Ferrari 4005 optical mouse (commit)
Support Logitech/3DConnexion Spacetraveler and Spacenavigator (commit)
12.11. RTC
Add an RTC driver for the Oki MSM6242 (commit)
Add an RTC driver for the Ricoh RP5C01 (commit)
Add driver for BQ32000 I2C RTC (commit)
Add Freescale MC13783 RTC driver (commit)
Add twl6030 RTC support (commit)
12.12. Bluetooth
12.13. MFD
Add 88PM8607 driver (commit)
Add AB4500 driver (commit)
Add ADP5520/ADP5501 driver (commit)
Add SuperH Mobile SDHI platform driver (commit)
Add support for twl6030 irq framework (commit)
Add support for WM8320 PMICs (commit)
Near complete mc13783 rewrite (commit)
twl4030: add twl4030_codec MFD as a new child to the core (commit)
12.14. MTD
Add bcmring nand driver (commit)
OneNAND: multiblock erase support (commit)
OneNAND OTP support rework (commit)
maps: remove obsolete ipaq-flash driver (commit)
12.15. HWMON
New driver for AMD Family 10h/11h CPUs (commit)
New driver for the National Semiconductor LM73 (commit)
Add driver for VIA CPU core temperature (commit)
Add Freescale MC13783 ADC driver (commit)
adt7475: Add support for the ADT7473 (commit), add support for the ADT7476 (commit), add support for the ADT7490 (commit)
f71882fg: Add support for the f71889fg (version 2) (commit)
I2C bus support for lis3lv02d and variant accelerometer chips (commit)
12.16. Various
ppc440spe-adma: adds updated ppc440spe adma driver (commit)
ad525x_dpot: new driver for AD525x digital potentiometers (commit)
Add COH 901 318 DMA block driver v5 (commit)
Add OMAP spi100k driver (commit)
collie: add battery driver (commit)
cs5535: add a generic clock event MFGPT driver (commit), (commit), (commit), (commit)
radio: New driver for the radio FM module on Miro PCM20 a card (commit)
PCI: PCIe AER: honor ACPI HEST FIRMWARE FIRST mode (commit)
pcmcia: use dynamic debug instead of custom infrastructure (commit)
tty: esp: remove broken driver (commit)
edac: i5100 add scrubbing (commit)
gpio: add GPIO driver for the Timberdale FPGA (commit)
dmar: support for parsing Remapping Hardware Static Affinity structure (commit)
drivers/misc: add driver for Texas Instruments DAC7512 (commit)