• Immutable Page
  • Info
  • Attachments

Linux 2 6 31

Linux 2.6.31 kernel released on 9 September, 2009

Spam: Valerie Aurora has publised on LWN a great article explaining some parts of the deep internals of btrfs. Since btrfs is expected to replace Ext4 at some point, it's an interesting read.

Summary: This version adds USB 3.0 support, a equivalent of FUSE for character devices used for proxying OSS sound to ALSA, some memory management changes that improve interactivity in desktops, readahead improvements, ATI Radeon Modesetting support, support for Intel's Wireless Multicomm 3200 Wifi devices, kernel support and a userspace tool for performance counters, gcov support, a memory checker for unitialized memory, a memory leak detector, a reimplementation of inotify and dnotify on top of a new filesystem notification infrastructure, btrfs improvements, support for the IEEE 802.15.4 network standard, IPv4 over Firewire, many new drivers, small improvements and fixes.

  1. Prominent features (the cool stuff)
    1. USB 3 support
    2. CUSE (character devices in userspace) and OSS Proxy
    3. Improve desktop interactivity under memory pressure
    4. ATI Radeon Kernel Mode Setting support
    5. Performance Counters
    6. IEEE 802.15.4 Low-Rate Wireless Personal Area Networks support
    7. Gcov support
    8. Kmemcheck
    9. Kmemleak
    10. Fsnotify
    11. Preliminary NFS 4.1 client support
    12. Context Readahead algorithm and mmap readhead improvements
  2. Various core changes
  3. Filesystems
  4. Networking
  5. Security
  6. Tracing/Profiling
  7. DM
  8. Crypto
  9. Virtualization
  10. PCI
  11. Block
  12. Memory management
  13. Architecture-specific changes
  14. Drivers
    1. Graphics
    2. Storage
    3. Network
    4. Input
    5. USB
    6. Sound
    7. V4L/DVB
    8. Staging
    9. FireWire
    10. MTD
    11. WATCHDOG
    12. HWMON
    13. HID
    14. RTC
    15. Serial
    16. I2C
    17. MFD
    18. Rfkill
    19. MMC
    20. Regulator
    21. Various
    22. Other news sources tracking the kernel changes

1. Prominent features (the cool stuff)

1.1. USB 3 support

This version Linux adds support for USB 3.0 devices (contributed by Sarah Sharp from Intel) and the hardware that implements the eXtensible Host Controller Interface (xHCI) 0.95 specification. No xHCI hardware has made it onto the market yet, but these patches have been tested under the Fresco Logic host controller prototype.

Code: drivers/usb/host/xhci*

1.2. CUSE (character devices in userspace) and OSS Proxy

Recommended LWN article: Character devices in user space

CUSE is an extension of FUSE allowing character devices to be implemented in userspace, it has been contributed by Tejun Heo (SUSE)

It can be used for many things, for example "proxying" OSS audio from OSS apps through the ALSA userspace layer, or to an audio system which can forward the sound through the network. ALSA contains OSS emulation, but sadly the emulation is in the kernel, behind the userland multiplexing layer, which means that if your sound card doesn't support multiple audio streams (most modern cards don't), only either one of ALSA or OSS emulation interface would be usable at any given moment.

OSS Proxy uses CUSE to implement the OSS interface - /dev/dsp, /dev/adsp and /dev/mixer. From the POV of the applications, these devices are proper character devices and behave exactly the same way, so it can be used as a replacement for the in-kernel ALSA OSS emulation layer. The app sends the audio to these CUSE devices, and the OSS Proxy will forward it to a "slave" (currently there's only one slave implemented, pulseaudio)

Code: CUSE (commit) OSS Proxy home and code: http://userweb.kernel.org/~tj/ossp/

1.3. Improve desktop interactivity under memory pressure

PROT_EXEC pages are pages that normally belong to some currently running executables and their linked libraries, they shall really be cached aggressively to provide good user experiences because if they aren't, the desktop applications will experience very long and noticeable pauses when the application's code path jumps to a part of the code which is not cached in memory and needs to be read from the disk, which is very slow. Due to some memory management scalability work in recent kernel versions, there're some (commonly used) workloads which can send these PROT_EXEC pages to the list of filesystem-backed pages (the ones used to map files) which are unactive and can get flushed out of the working set. The result is a desktop environment with poor interactivity: the applications become unresponsive too easily.

In this version, some heuristics have been used to make much harder to get the mapped executable pages out of the list of active pages. The result is an improved desktop experience: Benchmarks on memory tight desktops show clock time and major faults reduced by 50%, and pswpin numbers are reduced to ~1/3, that means X desktop responsiveness is doubled under high memory/swap pressure. Memory flushing benchmarks in a file server shows the number of major faults going from 50 to 3 during 10% cache hot reads. See the commit link for more details and benchmarks.

Code: (commit 1, 2, 3)

1.4. ATI Radeon Kernel Mode Setting support

This version adds Kernel Mode Setting (KMS) support for ATI Radeon. Hardware supported is R1XX,R2XX,R3XX,R4XX,R5XX (radeon up to X1950). Works is underway to provide support for R6XX, R7XX and newer hardware (radeon from HD2XXX to HD4XXX).

Code: (commit), (commit)

1.5. Performance Counters

Recommended LWN article: Followups: performance counters, ksplice, and fsnotify

The Performance Counter subsystem provides an abstraction of special performance counter hardware registers available on most modern CPUs. These registers count the number of certain types of hw events: such as instructions executed, cachemisses suffered, or branches mis-predicted - without slowing down the kernel or applications. These registers can also trigger interrupts when a threshold number of events have passed - and can thus be used to profile the code that runs on that CPU. In this release, support for x86, PPC and partial support for S390 and FRV have been added.

Users are not expected to use the API themselves. Instead, a powerful performance analysis tool has been built: "perf", which is available at tools/perf/ (in an unusual decision of including kernel-related userspace software into the kernel tree).

perf supports a few modes of operation, like "perf top", which shows a top-like interface, which you can restrict to any given set of events, process or CPU. There's also "perf record", which records a profile into a file, and "perf report", which reads the profile and shows it in the screen, or "perf annotate", which reads the data and displays the annotated code. There's also "perf list", which shows the list of events supported by the hardware, and "perf stat", which runs a command and gathers performance statistics which are printed into the screen. All the documentation and man pages are available in the 'Documentation' subdirectory. Some examples:

$ ./perf stat -r 3 -- echo -n

 Performance counter stats for 'echo -n' (3 runs):

       2.337404  task-clock-msecs         #      0.566 CPUs    ( +-   1.704% )
              1  context-switches         #      0.000 M/sec   ( +-   0.000% )
              0  CPU-migrations           #      0.000 M/sec   ( +-   0.000% )
            184  page-faults              #      0.079 M/sec   ( +-   0.000% )
        4319963  cycles                   #   1848.188 M/sec   ( +-   1.615% )
        5024608  instructions             #      1.163 IPC     ( +-   0.722% )
          73278  cache-references         #     31.350 M/sec   ( +-   1.636% )
           2019  cache-misses             #      0.864 M/sec   ( +-   6.535% )

    0.004126139  seconds time elapsed   ( +-  24.603% )


$ perf report -s comm,dso,symbol -C firefox -d /usr/lib64/xulrunner-1.9.1/libxul.so | grep :: | head
         2.21%  [.] nsDeque::Push(void*)
         1.78%  [.] GraphWalker::DoWalk(nsDeque&)
         1.30%  [.] GCGraphBuilder::AddNode(void*, nsCycleCollectionParticipant*)
         1.27%  [.] XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode)
         1.18%  [.] imgContainer::DrawFrameTo(gfxIImageFrame*, gfxIImageFrame*, nsRect&)
         1.13%  [.] nsDeque::PopFront()
         1.11%  [.] nsGlobalWindow::RunTimeout(nsTimeout*)
         0.97%  [.] nsXPConnect::Traverse(void*, nsCycleCollectionTraversalCallback&)
         0.95%  [.] nsJSEventListener::cycleCollection::Traverse(void*, nsCycleCollectionTraversalCallback&)
         0.95%  [.] nsCOMPtr_base::~nsCOMPtr_base()

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

1.6. IEEE 802.15.4 Low-Rate Wireless Personal Area Networks support

IEEE Std 802.15.4 defines a low data rate, low power and low complexity short range wireless personal area networks. It was designed to organise networks of sensors, switches, etc automation devices. Maximum allowed data rate is 250 kb/s and typical personal operating space around 10m.

Code: (commit 1, 2, 3, 4, 5)

1.7. Gcov support

This version enables the use of GCC's coverage testing tool gcov with the Linux kernel. gcov may be useful for: debugging (has this code been reached at all?), test improvement (how do I change my test to cover these lines?), minimizing kernel configurations (do I need this option if the associated code is never run?) and other things.

Code: (commit 1, 2)

1.8. Kmemcheck

Kmemcheck is a debugging feature for the Linux Kernel. More specifically, it is a dynamic checker that detects and warns about some uses of uninitialized memory. Userspace programmers might be familiar with Valgrind's memcheck. The main difference between memcheck and kmemcheck is that memcheck works for userspace programs only, and kmemcheck works for the kernel only.

Enabling kmemcheck on a kernel will probably slow it down to the extent that the machine will not be usable for normal workloads such as e.g. an interactive desktop. kmemcheck will also cause the kernel to use about twice as much memory as normal. For this reason, kmemcheck is strictly a debugging feature.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)

1.9. Kmemleak

Recommended LWN article: Detecting kernel memory leaks

Kmemleak provides a way of detecting possible kernel memory leaks in a way similar to a tracing garbage collector, with the difference that the orphan objects are not freed. Instead, a kernel thread scans the memory every 10 minutes (by default) and prints any new unreferenced objects found in /sys/kernel/debug/kmemleak and warns about them ti . A similar method is used by the Valgrind tool (memcheck --leak-check) to detect the memory leaks in user-space applications.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

1.10. Fsnotify

Fsnotify is a backend for filesystem notification. Fsnotify itself does not provide any userspace interface but does provide the basis needed for other notification schemes such as dnotify, inotify and fanotify (this last notification interface, will be included in future releases). In fact, in this release dnotify and inotify have been rewritten in top of fsnotify, removing at the same time the ugly and complex code from those systems. Fsnotify provides a mechanism for "groups" to register for some set of filesystem events and to then deliver those events to those groups for processing, and the locking is much simpler. Fsnotify has other benefits, like shrinking the size of an inode.

Code: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)

1.11. Preliminary NFS 4.1 client support

2.6.30 added some developer support for NFS 4.1. This version enables optional support for minor version 1 of the NFSv4 protocol (draft-ietf-nfsv4-minorversion1) in the kernel's NFS client

Code: (commit)

1.12. Context Readahead algorithm and mmap readhead improvements

This version introduces a page cache context based readahead algorithm. The current readahead algorithm detects interleaved reads in a passive way, the context readahead algorithm guarantees to discover the sequentialness no matter how the streams are interleaved. The beneficiaries are strictly interleaved reads and cooperative IO processes (i.e. NFS and SCST). SCST benchmarks show 6%~40% performance gains in various cases and achieves equal performance in others

There're also some improvements to mmap readahead. On a NFS-root desktop, mmap readahead reduced major faults by 1/3 and no obvious overheads, mmap io can be further reduced by 1/4.

Code: (commit 1, 2, 3, 4)

2. Various core changes

  • Add caching of ACLs in struct inode (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)

  • Provide generic atomic64_t implementation (commit)

  • eventfd: revised interface and cleanups (commit)

  • modules: sysctl to block module loading (commit)

  • poll: avoid extra wakeups in select/poll (commit)

  • proc: export more page flags in /proc/kpageflags (commit), export statistics for softirq to /proc (commit)

  • ramdisk: remove long-deprecated "ramdisk=" boot-time parameter (commit)

  • RCU: make treercu be default (commit)

  • Add requeue_pi functionality (commit), (commit), (commit), (commit), (commit), (commit)

  • signals: implement sys_rt_tgsigqueueinfo (commit), (commit)

  • softirq: introduce statistics for softirq (commit)

  • splice: implement pipe to pipe splicing (commit), implement default splice_read method (commit), implement default splice_write method (commit)

  • timers: Framework for identifying pinned timers (commit), (commit), logic to move non pinned timers (commit), /proc/sys sysctl hook to enable timer migration (commit)

  • Add new pre-allocation ioctls to vfs for compatibility with legacy xfs ioctls (commit)

  • vsprintf: introduce %pf format specifier (commit)

  • printk: add support of hh length modifier for printk (commit)

3. Filesystems

  • Btrfs

    • Mixed back reference (FORWARD ROLLING FORMAT CHANGE). It scales significantly better with a large number of snapshots (commit)

    • Use hybrid extents+bitmap rb tree for free space. Currently btrfs has a problem where it can use a ridiculous amount of RAM simply tracking free space. As free space gets fragmented, we end up with thousands of entries on an rb-tree per block group, which usually spans 1 gig of area. This patch solves this problem by using bitmaps for parts of the free space cache. The maximum amount of RAM that should ever be used to track 1 gigabyte of diskspace will be 32k of RAM (commit)

    • Btrfs: async block group caching (commit)

    • Reduce mount -o ssd CPU usage (commit)

    • Add mount -o nossd (commit)

    • Add mount -o ssd_spread to spread allocations out (commit)

    • Autodetect SSD devices (commit)

    • Implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION (attributes set via chattr and read via lsattr) (commit)

  • Ext4

    • Avoid unnecessary spinlock in critical POSIX ACL path (3% improvement in stat and open/close latencies) (commit), (commit)

    • Hook fiemap operation for directories (commit)

    • Add EXT4_IOC_MOVE_EXT ioctl (will be used for online defrag in the future) (commit)

    • teach the inode allocator to use a goal inode number (commit)

    • Convert instrumentation from markers to tracepoints (commit), (commit)

  • Ext3

    • Avoid unnecessary spinlock in critical POSIX ACL path (3% improvement in stat and open/close latencies) (commit), (commit)

  • CIFS

    • Add addr= mount option alias for ip= (commit)

    • Add mention of new mount parm (forceuid) to cifs readme (commit)

  • NILFS2

    • Allow future expansion of metadata read out via get info ioctl (commit)

    • Pagecache usage optimization on NILFS2 (commit)

  • XFS

  • FAT

  • GFS2

  • NFS

    • Add support for splice writes (commit)

  • OCFS2

    • Add statistics for the checksum and ecc operations. (commit)

  • UBIFS

4. Networking

  • netfilter

    • conntrack: add support for DCCP handshake sequence to ctnetlink (commit)

    • conntrack: optional reliable conntrack event delivery (commit)

    • nf_ct_tcp: TCP simultaneous open support (commit)

    • passive OS fingerprint xtables match (commit)

    • xt_NFQUEUE: queue balancing support (commit)

  • WiFi

    • cfg80211: add cipher capabilities (commit), add rfkill support (commit), allow adding/deleting stations on mesh (commit), allow setting station parameters in mesh (commit)

    • mac80211: implement beacon filtering in software (commit), improve powersave implementation (commit)

    • wimax: Add netlink interface to get device state (commit)

  • TX_RING and packet mmap, makes packet socket more efficient for transmission (commit)

  • nl80211: Add IEEE 802.1X PAE control for station mode (commit), add set/get for frag/rts threshold and retry limits (commit), add support for configuring MFP (commit)

  • sit: stateless autoconf for isatap (commit)

  • af_iucv: Provide new socket type SOCK_SEQPACKET (commit)

  • ipv4: New multicast-all socket option (commit)

  • tcp: extend ECN sysctl to allow server-side only ECN (commit)

  • irda: new Blackfin on-chip SIR IrDA driver (commit)

  • irda-usb: suspend/resume support (commit)

  • dropmon: add ability to detect when hardware dropsrxpackets (commit)

5. Security

  • SELinux: Permissive domain in userspace object manager (commit)

  • smack: implement logging V3 (commit), (commit)

  • IMA: Minimal IMA policy and boot param for TCB IMA policy (commit)

  • Don't raise all privs on setuid-root file with fE set (v2) (commit)

6. Tracing/Profiling

  • tracing: add average time in function to function profiler (commit)

  • tracing: add function profiler (commit)

  • tracing: add hierarchical enabling of events (commit)

  • tracing: adding function timings to function profiler (commit)

  • tracing: export stats of ring buffers to userspace (commit)

  • oprofile: add support for Core i7 and Atom (commit)

  • oprofile: introduce module_param oprofile.cpu_type (commit)

  • oprofile: re-add force_arch_perfmon option (commit)

  • oprofile: remove undocumented oprofile.p4force option (commit)

  • ring-buffer: add benchmark and tester (commit)

7. DM

8. Crypto

  • aes-ni - Add support for more modes (commit)

  • padlock - Enable on x86_64 (commit)

  • talitos - Add ablkcipher algorithms (commit)

9. Virtualization

  • KVM

    • Add VT-x machine check support (commit)

    • Enable MSI-X for KVM assigned device (commit)

    • Enable snooping control for supported hardware (commit)

    • Add SVM NMI injection support (commit)

  • VT-d

    • Add device IOTLB invalidation support (commit)

    • Parse ATSR in DMA Remapping Reporting Structure (commit)

    • Support the device IOTLB (commit)

  • virtio

  • XEN

  • lguest: improve interrupt handling, speed up stream networking (commit), PAE support (commit)

10. PCI

  • PCI Express Root Port Advanced Error Reporting (AER) software error injector (commit 1, 2, 3, 4)

  • Add support for turning PCIe ECRC on or off (commit)

  • Handle Virtual Function ATS enabling (commit)

  • Support PM D0hot->D3 transition reset (commit)

  • Support Secondary Bus Reset (commit)

  • Support the ATS capability (commit)

  • Remove untested Electromechanical Interlock (EMI) support in pciehp. (commit)

11. Block

  • blktrace

    • Add trace/ to /sys/block/sda (allow ftrace-plugin blktrace to trace device-mapper devices) (commit)

    • Support per-partition tracing (commit), (commit)

  • Export I/O topology for block devices and partitions (commit), (commit), (commit), (commit), (commit)

  • Enable by default support for large devices and files on 32-bit archs (commit)

  • Get rid of queue-private command filter (commit)

  • osdblk: a Linux block device for OSD objects (commit)

12. Memory management

13. Architecture-specific changes

  • x86

    • AMD64 EDAC support: Supports for error detection and correction on the AMD 64 Families of Memory Controllers (K8, F10h and F11h). Code: drivers/edac/amd64_edac*

    • 46 bit physical address support on 64 bits (commit)

    • Intel IOMMU Pass Through Support (commit), IOMMU Identity Mapping Support (drivers/pci/intel_iommu.c) (commit)

    • Add sysctl to allow panic on IOCK NMI error (commit)

    • ds: support Core i7 (commit)

    • Implement percpu_alloc kernel parameter (commit)

    • Add option to disable interrupt remapping (commit)

    • mce: add basic error injection infrastructure (commit), support more than 256 CPUs in struct mce (commit)

    • setup: "glove box" BIOS calls (commit 1, 2, 3, 4, 5, 6)

    • via_rng - Support VIA Nano hardware RNG (commit)

    • gru: support for asynchronous gru instructions (commit), support instruction completion interrupts (commit), dump chiplet state (commit)

    • amd-iommu: implement suspend/resume (commit)

    • thinkpad-acpi: enhance led support (commit), support the second fan on the X61 (commit)

    • eeepc-laptop: add rfkill support for the 3G modem in Eee PC 901 Go (commit), enable camera by default (commit)

    • acerhdf: Acer Aspire One fan control (commit)

    • hp-wmi: Add support for reporting tablet state (commit)

    • Add extension fields for bootloader type and version (commit)

  • ARM

  • MIPS

    • Add arch generic CPU hotplug (commit)

    • Add Cavium OCTEON PCI support. (commit)

    • Add hibernation support (commit)

    • Add register definitions for PCI. (commit)

    • Add support files for hugetlbfs. (commit)

    • Add support for Texas Instruments AR7 System-on-a-Chip (commit)

    • Cavium: Add CPU hotplugging code. (commit)

    • CMP: activate CMP support (commit)

    • hwrng: Add TX4939 RNG driver (commit)

    • Sibyte: Remove standalone kernel support (commit)

    • SMP: Allow suspend and hibernation if CPU hotplug is available (commit)

    • TLB support for hugetlbfs. (commit)

    • TXx9: Add ACLC support (commit), add DMAC support (commit), add SRAMC support (commit), add TX4939 RNG support (commit)

  • PowerPC

    • Add irqtrace support for 32-bit powerpc (commit)

    • Add support for swiotlb on 32-bit (commit)

    • Keep track of emulated instructions (commit)

    • Use generic atomic64_t implementation on 32-bit processors (commit)

    • 83xx: add support for the kmeter1 board. (commit)

    • 85xx: Add support for X-ES MPC85xx boards (commit), (commit), (commit)

    • 86xx: add MMC SPI support for MPC8610HPCD boards (commit)

    • virtex: Add Xilinx ML510 reference design support (commit)

    • Add configurable -Werror for arch/powerpc (commit)

  • SH

  • S390

    • ftrace: add dynamic ftrace support (commit), add function graph tracer support (commit), add function trace mcount test support (commit), add system call tracer support (commit)

    • Add mini sclp driver (commit)

    • ap/zcrypt: Suspend/Resume ap bus and zcrypt (commit)

    • Emplement interrupt-enabling rwlocks (commit)

    • Hibernation support for s390 (commit)

    • secure computing arch backend (commit)

    • vmalloc: add vmalloc kernel parameter support (commit)

    • qeth: support z/VM VSWITCH Port Isolation (commit)

  • Blackfin

  • Sparc64

    • Add proper dynamic ftrace support. (commit)

    • Fix and optimize irq distribution (commit)

    • Use new dynamic per-cpu allocator. (commit)

  • FRV

    • Add basic performance counter support (commit)

    • Implement new-style ptrace (commit)

  • avr32

    • Add support for Mediama RMTx add-on board for ATNGW100 (commit)

  • Superh

    • clocksource: SuperH MTU2 Timer driver (commit), superH TMU Timer driver (commit)

  • CRISv32

  • Microblaze

14. Drivers

14.1. Graphics

  • i915

    • Change GEM throttling to be 20ms (improves high-settings openarena performance on my GM45 by 50%) (commit)

    • Add Display Port support (commit)

    • Add chipset/feature defines for for new chipsets (commit), (commit)

    • Enable kernel modesetting on IGDNG (commit)

    • Add HDMI support on IGDNG (commit)

    • Add LVDS support for IGDNG (commit)

    • Add FIFO watermark support (commit)

    • Enable error detection & state collection (commit)

    • agp-intel: Add support for new chipsets (commit)

  • Radeon

    • Add rv740 drm support. (commit)

    • Add support for RV790. (commit)

    • Command stream checker for r3xx-r5xx hardware (commit)

  • fb: add support of LCD display controller on pxa168/910 (base layer) (commit)

  • s1d13xxxfb: add accelerated bitblt functions (commit)

  • s3c-fb: CPUFREQ frequency scaling support (commit)

  • Samsung SoC Framebuffer driver: add Alpha Channel support (commit)

14.2. Storage

  • libata

    • PATA driver for CF interface on AT91SAM9260 SoC (commit)

    • sata_fsl: Add power mgmt support (commit)

    • sata_sil: enable 32-bit PIO (commit)

    • ata_piix: Enable parallel scan (commit)

  • SCSI

    • bnx2i: Add bnx2i iSCSI driver. (commit)

    • cnic: Add new Broadcom CNIC driver. (commit)

    • bnx2: Add support for CNIC driver. (commit)

    • FC Pass Thru support (commit)

    • ibmvfc: Add flush on halt support (commit), add support for NPIV Logout (commit)

    • ibmvscsi: Add support for capabilities MAD (commit), enable fast fail feature (commit)

    • qla2xxx: Add 10Gb iiDMA support. (commit), add CPU affinity support. (commit), add QoS support. (commit)

    • mvsas: add support for 94xx; layout change; bug fixes (commit)

    • mpt2sas: add query task support for MPT2COMMAND ioctl (commit), LUN Reset Support (commit), T10 DIF Support (commit)

    • lpfc: Addition of SLI4 Interface (commit 1, 2, 3, 4), add 10G link support (commit), persistent Vport Support (commit), add support for Target Reset handler entrypoint (commit),

    • mpt fusion: Added support for Broadcast primitives Event handling (commit), RAID device handling and Dual port Raid support is added (commit), rescan SAS topology added (commit)

    • zfcp: Add FC pass-through support (commit)

    • sd: Detect non-rotational devices (commit), physical block size and alignment support (commit)

    • fcoe: adds spma mode support (commit)

    • fec: Add FEC support for MX35 processor (commit)

    • ipr: add test for MSI interrupt support (commit)

    • md: Use new topology calls to indicate alignment and I/O sizes (commit)

14.3. Network

  • Add new Intel Wireless Multicomm 802.11 driver (iwmc3200wifi). This driver supports Intel's full MAC wireless multicomm 802.11 hardware. Although the hardware is a 802.11agn device, it currently only support 802.11ag, in managed and ad-hoc mode (no AP mode for now) (commit)

  • CAN (Controller Area Network)

    • CAN Network device driver and Netlink interface (commit)

    • Driver for the SJA1000 CAN controller (commit)

    • SJA1000 driver for EMS PCI cards (commit), generic OF platform bus driver (commit), SJA1000 generic platform bus driver (commit)

    • Adds support for the PCI cards: PCIcan and PCIcanx (1, 2 or 4 channel) from Kvaser (http://www.kvaser.com). (commit)

  • mISDN

    • Added layer-1-hold feature (commit)

    • Added PCI ID for new Junghanns.net Single E1 cards. (commit)

    • Add PCI ID for Junghanns 8S card (commit)

    • Add watchdog functionality to hfcmulti driver (commit)

    • Add XHFC support for embedded Speech-Design board to hfcmulti (commit)

  • Add TI DaVinci EMAC driver (commit)

  • Add Xilinx ll_temac device driver (commit)

  • KS8842 driver for the Micrel KS8842 ethernet switch (commit)

  • ixgbe: Add 82599 related code (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18), enable hardware offload for sctp (commit), add ethtool offline test support (commit),

  • iwlwifi: add Greenfield support for 11n (commit), add MIMO3 support in rate scaling (commit), improve scan support (commit), support NVM access (EEPROM/OTP) (commit), support truly passive scanning (commit), temperature sensor voltage reading for 5150 (commit), iwl3945: add debugfs to 3945 (commit), iwlcore: support ICT interrupt (commit)

  • ath5k: Enable AP mode (commit), implement antenna control (commit), add Spur filter support on newer chips (commit), allow user/driver to set txpower (commit)

  • rt2x00: Implement support for rt2800usb (commit), implement support for 802.11n (commit), add new rt2800usb USB ID's for Sweex (commit)

  • libertas: add support for Marvell SD8688 chip (commit), support mesh for various firmware versions (commit), add support for CF8381 WiFi card. (commit)

  • igb: add RQDPC (Receive Queue Drop Packet Count) register macro (commit), enable SCTP checksum offloading (commit), implement reading of reg RQDPC (Receive Queue Drop Packet Count) (commit)

  • b43: Add support for 4318E (commit)

  • be2net: Add MCC queue mechanism for BE cmds (commit)

  • zd1211rw: adding 083a:e503 as a ZD1211B device (commit), adding SONY IFU-WLM2 (054c:0257) as a zd1211b device (commit)

  • cxgb3: Add Aeluros 2020 phy support (commit), add support for the Aquantia 10G-BT phy (commit)

  • e1000e: add support for 82577/82578 GbE LOM parts (commit), expose MDI-X status via ethtool change (commit)

  • e100: add non-MII PHY support (commit)

  • sh_eth: Add support SH7724 (commit)

  • smsc911x: add power management functions (commit)

  • ucc_geth: Add SGMII support for UCC GETH driver (commit)

  • netxen: enable GRO support (commit)

  • macb: Add support of the netpoll API (commit)

  • mlx4_en: multiqueue support (commit), added vlan_features support (commit)

  • myri10ge: Add support for vlan_features (commit), allow LRO to be enabled via ethtool (commit)

  • niu: Add support for C10NEM (commit)

  • s6gmac: xtensa s6000 on-chip ethernet driver (commit)

  • sfc: Expose 100/1000BASE-T MDI-X status via ethtool (commit)

  • sky2: add GRO support (commit)

  • wl12xx: add driver (commit)

  • vxge: Enable SRIOV support in the driver. (commit)

  • tun: add tun_flags, owner, group attributes in sysfs (commit)

  • ar9170: add AVM FRITZ devices (commit) support HT receive and channel config (commit)

  • mdio: Expose 10GBASE-T MDI-X status via ethtool (commit)

  • p54: add beacon filtering support (commit)

  • rtl8187: Implement TX/RX blink for LED (commit)

  • forcedeth: add clock gating feature <resend> (commit)

  • IB/ehca: Tolerate dynamic memory operations before driver load (commit)

14.4. Input

  • Add dm355evm_keys driver (commit)

  • Add driver for Synaptics I2C touchpad (commit)

  • Add matrix keypad driver for Cirrus EP93xx (commit)

  • Add support for generic GPIO-based matrix keypad (commit)

  • Add support for touchscreen on W90p910 ARM platform (commit)

  • Add twl4030-pwrbutton driver (commit)

  • Add wm97xx accelerated driver for Atmel microprocessors (commit)

  • Introduce lm8323 keypad driver (commit)

  • wacom: add support for Intuos4 tablets (commit)

  • musb: add high bandwidth ISO support (commit)

14.5. USB

  • Add Intel Langwell USB Device Controller driver (commit)

  • Add the usbfs devices file to debugfs (commit)

  • Add usb debugfs directory (commit)

  • CP210X Add device IDs (commit)

  • usb driver for intellon int51x1 based PLC like devolo dlan duo (commit)

  • ftdi: support NDI devices (commit)

  • gadget: Add i.MX3x support to the fsl_usb2_udc driver (commit), add USB Audio Gadget driver (commit), gadget driver for Samsung HS/OtG block (commit)

  • serial: FTDI: add high speed device support (commit), usb_debug,usb_generic_serial: implement sysrq and serial break (commit)

14.6. Sound

  • lx6464es - driver for the digigram lx6464es interface (commit)

  • SB X-Fi driver (20k1 or 20k2 chips) (commit)

  • hda: Acer Aspire 8930G support (commit), Acer Inspire 6530G model for Realtek ALC888 (commit), add 7.1 support for MSI GX620 (commit), add Creative CA0110-IBG support (commit), addition for HP dv4-1222nr laptop support (commit), add support for Macbook 5.1 (Aluminium) (commit), add support of Samsung NC10 mini notebook (commit), improved Macbook 3,1 support (commit), macbook[Pro] 5 6ch support (commit), support NVIDIA 8 channel HDMI audio (commit)

  • ice1724 - Add ESI Maya44 support (commit)

  • sc6000: add support for SC-6600 and SC-7000 (commit)

  • Support Sony Vaio TT (commit)

  • ctxfi - Add PM support (commit)

  • virtuoso: add Xonar Essence ST support (commit)

  • ASoC: AC97 driver for mpc5200 (commit), add driver for s6000 I2S interface (commit), add dummy S/PDIF codec support (commit), added OMAP3 EVM support in ASoC. (commit), add power supply widget to DAPM (commit), add TXx9 AC link controller driver (v3) (commit), add WM8960 CODEC driver (commit), add WM8988 CODEC driver (commit), AFEB9260 driver (commit), basic split of mpc5200 DMA code out of mpc5200_psc_i2s (commit), codec for STAC9766 used on the Efika (commit), cs4270: add power management support (commit), IMote2 ASoC Support (commit), s6105 IP camera machine specific ASoC code (commit), support for AC97 on Phytec pmc030 base board. (commit), TWL4030: Add VDL path support (commit), ASoC WM8940 Driver (commit), WM9081 mono DAC with integrated 2.6W class AB/D amplifier driver (commit)

14.7. V4L/DVB

  • af9015: support for Avermedia AVerTV Volar GPS 805 (A805) (commit), support for Conceptronic USB2.0 DVB-T CTVDIGRCU V3.0 (commit), support for KWorld MC810 (commit), support for Genius TVGo DVB-T03 (commit)

  • gspca - m5602-po1030: Add experimental QVGA support (commit), m5602-mt9m111: Add experimental QVGA support (commit), ov534: JPEG 320x240 and 640x480 formats for ov965x. (commit), ov519: Add support for the ov518 bridge. (commit), ov519: add support for the ov511 bridge (commit), stv06xx: Add support for st6422 bridge and sensor (commit), sonixj: enable support for 0c45:613e camera (commit)

  • Siano: add support for infra-red (IR) controllers (commit), add two additional (USB) devices (commit), add high level SDIO interface driver for SMS based cards (commit)

  • saa7134: Added support for AVerMedia Cardbus Plus (commit), add AVerTV Studio 507UA support (commit)

  • Add Elgato EyeTV DTT deluxe to dibcom driver (commit)

  • Initial go at TT S2-1600 (commit)

  • STV0900/STV0903: Add support for Silicon cut >= 3 (commit)

  • Enables the Winfast TV2000 XP Global TV IR (commit)

  • Analog Devices ADV7343 video encoder driver (commit)

  • cx23885: Add preliminary support for the HVR1270 (commit), add ATSC/QAM tuning support for Hauppauge WinTV-HVR1270 (commit), add ATSC/QAM tuning support for Hauppauge WinTV-HVR1275 (commit), add ATSC/QAM tuning support for Hauppauge WinTV-HVR1255 (commit), add DVB-T tuning support for Hauppauge WinTV-HVR1210 (commit)

  • tuner: add support Philips MK5 tuner (commit)

  • xc5000: add support for DVB-T tuning (commit)

  • em28xx: add Terratec Grabby (commit), add EmpireTV board support (commit), add support for the K-World 2800d (commit), add support for EVGA inDtube (commit), add Remote control support for EVGA inDtube (commit), add support for Silvercrest Webcam (commit), add Kworld 315 entry (commit)

  • Add support for Terratec Grabster AV350 (commit)

  • dib0700: add support for Leadtek Winfast DTV Dongle H (commit), added USB IDs for Terratec T3 and T5 (commit)

  • uvcvideo: Add Lenovo Thinkpad SL400 to device list comments (commit)

  • Adds support for Leadtek Winfast DTV-1800H (commit)

  • tuner-simple, tveeprom: Add Philips FQ1216LME MK3 analog tuner (commit)

  • cx18: Add DVB-T support for the Leadtek Winfast DVR3100 H (commit)

  • Add support for DVBWorld DVB-C USB Cable card. (commit)

  • Add support for yet another SDMC DM1105 based DVB-S card. (commit)

  • au8522: add support for QAM-64 modulation type (commit)

  • saa7134: add support for AVerMedia M103 (f736) (commit)

  • cx88: Properly support Leadtek TV2000 XP Global (commit)

  • Add a driver for mt9v011 sensor (commit)

  • cx18: Add DVB-T support for Yuan MPC-718 cards with an MT352 or ZL10353 (commit)

14.8. Staging

  • Add cpc-usb driver to the staging tree (commit)

  • Add octeon-ethernet driver files. (commit)

  • Add pata_rdc driver (commit)

  • Add rtl8192SU wireless usb driver (commit)

  • Add serqt_usb2, a rewrite of serqt_usb for the usb-serial layer (commit)

  • Add udlfb driver (commit)

  • android: timed_gpio: Separate timed_output class into a separate driver. (commit)

  • comedi: add vmk80xx USB driver (commit), (commit)

  • Remove obsolete serqt_usb driver (commit)

14.9. FireWire

  • The new firewire driver stack is no longer considered experimental, and distributors are encouraged to migrate from the ieee1394 stack to the firewire stack (commit).

  • Improved support of fine-grained access permission policies for FireWire application programs in userspace (kernel commit), (udev commit)

  • Added IP networking to the new FireWire driver stack (commit), (commit)

  • Support for FireWire disks larger than 2 TB (also available in some stable kernel sub-releases) (commit), (commit).

  • See the Linux FireWire wiki for further release notes and for guidance on migration to the new stack.

14.10. MTD

  • nand

    • Add OMAP2/OMAP3 NAND driver (commit)

    • davinci_nand, 4-bit ECC for smallpage (commit)

    • s3c6400 support for s3c2410 driver (commit)

  • Add armflash support for multiple blocks of flash (commit)

  • Add MEMERASE64 ioctl for >4GiB devices (commit)

  • Add on-flash BBT support for Atmel NAND driver (commit)

  • Add OOB ioctls for >4GiB devices (commit)

  • Add SST39SF040 chip to jedec_probe (commit)

  • Flex-OneNAND support (commit)

  • m25p80: add support for Macronix MX25L12805D (commit)

  • MXC NAND support for 2KiB page size flashes (commit)

  • OneNAND: add support for OneNAND manufactured by Numonyx (commit)

  • physmap_of: Add multiple regions and concatenation support (commit)

14.11. WATCHDOG

  • Add bcm47xx watchdog driver (commit)

  • Add pnx833x_wdt (commit)

  • Freescale STMP: watchdog driver (commit)

  • twl4030 watchdog driver (commit)

  • w83627hf_wdt.c: add support for the W83627EHF support (commit)

14.12. HWMON

  • f71882fg: Add support for the F71858F (commit)

  • tmp401: Add support for TI's TMP401 sensor chip (commit), add support for TI's TMP411 sensors chip (commit)

  • w83627ehf: Add W83627DHG-P support (commit)

  • lis3: add three new laptop models (commit)

14.13. HID

  • Multitouch support for the N-Trig touchscreen (commit)

  • Wacom Graphire Bluetooth driver (commit)

14.14. RTC

14.15. Serial

  • Added Timberdale UART driver (commit)

  • Add support for the TI AR7 internal UART (commit)

  • sh-sci: SH7724 support. (commit)

  • 8250_pci: add the OXCB950 chip to the 8250 PCI driver. (commit)

  • parport/serial: add support for Netmos 9901 Multi-IO card (commit)

  • msm_serial: serial driver for MSM7K onboard serial peripheral. (commit)

14.16. I2C

  • Add a sysfs interface to instantiate devices (commit)

  • driver for the Synopsys Designware I2C controller (commit)

  • i2c-viapro: Add new PCI device ID for VX855 (commit)

14.17. MFD

14.18. Rfkill

14.19. MMC

  • pxamci: add regulator support. (commit)

  • Add new via-sdmmc host controller driver (commit)

  • Driver for CB710/720 memory card reader (MMC part) (commit)

  • sdhci

    • Platform driver for SDHCI (commit)

    • Add support for hosts that are only capable of 1-bit transfers (commit)

    • sdhci-s3c: Samsung S3C based SDHCI controller glue (commit)

14.20. Regulator

  • LP3971 PMIC regulator driver (updated and combined version) (commit)

  • Maxim 1586 regulator driver (commit)

  • Add userspace-consumer driver (commit)

14.21. Various

  • firewire: add IPv4 support (commit)

  • Power: Add MAX17040 Fuel Gauge driver (commit)

  • bfin_jtag_comm: emulate a TTY over the Blackfin EMUDAT/JTAG interface (commit)

  • ssb: Add support for 4318E (commit)

  • cciss: add cciss driver sysfs entries (commit)

  • LinuxPPS: core support (commit)

  • leds: LED driver for National Semiconductor LP3944 Funlight Chip (commit)

  • gpio: driver for Primecell PL061 GPIO controller (commit)

  • gpio: pca953x: Add support for PCA9556 (commit)

  • drivers: add support for the TI VLYNQ bus (commit)

  • edac: add CPC925 Memory Controller driver (commit)

14.22. Other news sources tracking the kernel changes

Tell others about this page:

last edited 2009-09-09 23:58:41 by diegocalleja