Linux 2.6.29 kernel released on 23 March, 2009.
Summary: Linux 2.6.29 adds kernel based graphic mode setting, WiMAX support, Access Point support in the wifi stack, the inclusion of the btrfs and squashfs filesystems, ecryptfs filename encryption, ext4 no journaling mode, ocfs2 metadata checksums, a more scalable RCU implementation, filesystem freeze support, swap management in the memory controller, many new drivers and many other improvements.
Contents
-
Prominent features (the cool stuff)
- Kernel Modesetting
- Btrfs
- Squashfs
- Support of 4096 CPUs
- "Tree RCU": scalable classic RCU
- WiMAX
- Wireless Access Point mode support
- eCryptfs filename encryption
- Filesystem freeze
- Memory controller swap management and other improvements
- Ext4 no journal mode
- OCFS2 metadata checksums
- Staging drivers
- Tuz replaces Tux for this release
- Various core changes
- Wi-Fi
- Security
- Networking
- Tracing
- Filesystems
- Crypto
- DM/MD
- Virtualization
- Architecture-specific changes
- Drivers
- Other sources about 2.6.29 kernel
1. Prominent features (the cool stuff)
1.1. Kernel Modesetting
When we talk about "mode setting", we mean setting up things like the screen resolution and depth mode, in other words, configuring whatever it's necessary in the graphics card to get it ready to display things on the screen. This may look easy to implement, but the graphics people say it's harder than it seems to design and implement right (multihead setups, hotplug, etc), which is why it has taken so much time. To start with, mode setting implies allocating memory from the graphics card, which means that before doing modesetting it was necessary to have the GEM memory manager ready and merged in the main tree, which did not happen until the previous release, 2.6.28.
Doing modesetting right is much harder if you consider how the typical Linux graphic setups works today. There are several drivers sharing the same piece of hardware (your graphics card): the kernel VGA driver, the kernel framebuffer drivers, the kernel DRM drivers, the userspace X drivers, the userspace DRI drivers, and other userspace drivers (e.g. svgalib). This is a very bad idea. For example, the X.org driver is a full implementation of all what is needed to make your graphics card work in 2D, and when you start up X.org all is fine. But when you switch from X.org to a VT console (using Ctrl+Alt+F1), the X.org driver has to stop handling the graphics card, because the control needs to be passed to another driver: the fb console driver. So the X.org driver saves the current state of the display, the graphics card is reset and then it is handled to the fb driver, which has to reinitialize completely the card again (that's why there's a noticeable pause in the switch), even if the resolution in X and the console is the same. When you switch back to X.org, the card needs to be reconfigured again. This is a hairy, bug-prone mess, and it's difficult to make it working right in some cases; for example resuming of suspended/hibernated systems is more difficult with this design because the X.org driver lives in userspace and suspend/hibernation is (must be) transparent for him, so it is not aware that it needs to reset the hardware before continuing drawing things after resuming, needing a userspace/firmware helper that some times may not work correctly (black screen, hanged system).
Enter modesetting, and those problems go away. Modesetting centralizes the mode setting code in the kernel drivers. While this may look like it's a lot of code for a kernel, it's actually the contrary: there's a single piece of code in charge of the modesetting, which means that the whole graphic stack gets smaller. And because there's only one implementation, and there's more code sharing, the quality and robustness is increased. Besides, mode setting is a task that really belongs to the kernel drivers (it's how every other operating systems, including some proprietary Unixes, have always done it). But all that is just a small part of the benefits: Suspend and resume are more likely to work because all the work will be done by the kernel driver just like it is done with any other hardware device. X.org doesn't need the root privileges anymore (they were needed before only because the old drivers needed direct hardware access to implement the drivers), making possible to run X.org as non-root, which is a huge security improvement, and moves X.org back to what it is supposed to do: drawing things, and not messing with hardware. It is also possible to print kernel oopses (or even a Windows-like BSOD ) to the screen if the kernel crashes while running under X. And if all this wasn't enough, you also get a FB console that runs on top of modesetting and GEM, making the old FB drivers completely obsolete while preserving their functionality at the same time. And with modesetting it isn't needed to reset the hardware when switching from X.org to a VT, and when switching, if the resolution is the same, there's no need to change anything, making possible to do flicker-free graphical boots and fast user switching.
However, trying modesetting in this release is not easy. In the kernel side, only the Intel driver is getting modesetting support in this release (support for other drivers is being worked on and will be merged in future releases). In the X.org side, it's even more difficult. Because when the kernel modesetting support is enabled, it is REQUIRED that the X.org driver also has modesetting support. If you enable kernel modesetting and you don't have a modesetting-enabled driver, X.org will NOT be able to work in any way and it even may crash your machine. There's no way to workaround this, except disabling kernel modesetting (running a modesetting enabled X.org driver in a modesetting disabled kernel is allowed). Right now, only the Intel driver seems to have a stable release with modesetting support, alpha support is being worked on for other drivers.
Code: Commit (commit), (commit)
1.2. Btrfs
Btrfs is a new filesystem developed from scratch following the design principles of filesystems like ZFS, WAFL, etc. It was created by Chris Mason, an Oracle engineer who worked several years in Reiserfs v3. It is expected to become the replacement of Ext filesystems as the most used Linux filesystems. More information about btrfs can be found in the btrfs wiki page
Btrfs is under HEAVY development, which means that it is UNSTABLE , and while it has got more stable in the latest months you should not assume it's safe to use it. It's getting included in the same way ext4dev was merged to improve the development. So it's strongly recommended not to use it for any other uses than testing, benchmarking and developing. The plan of the btrfs team right now is to make a 1.0 release. The disk format is not expected to change anymore (but it will if a critical bug is found).
Code: fs/btrfs
1.3. Squashfs
Squashfs is a highly compressed read-only filesystem that is well know for being used in the Live-CDs of the most common Linux distributions and embedded distributions for some routers. It uses zlib compression (lzma will be added in the future) to compress both files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimise data overhead. Block sizes greater than 4K are supported up to a maximum of 1 Mbytes (default block size 128K).
SquashFS 4.0 supports 64 bit filesystems and files (larger than 4GB), full uid/gid information, hard links and timestamps. It is intended for general read-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in embedded systems where low overhead is needed. Further information and userspace tools (needed to create the filesystem) are available from http://squashfs.sourceforge.net.
Code: fs/squashfs
1.4. Support of 4096 CPUs
Recommended article: Fun with cpumasks
Many parts of the Linux core code support such number of CPUs, but there were problems with the cpumask-specific code, which is the part of the system used to represent all the CPUs in the system. With 4096 CPUs that structure became too big, causing stack overflows, and had some performance problems, which made impossible to default distro kernels to 4096 CPUs, because systems with a lower number of CPUs would have slower performance. The goal with this release has been to be able to support for as many CPUs as possible with no disadvantages for smaller machines. The code been changed to use pointers for that structure instead of using the stack and some scalability problems have been resolved, making possible to run machines with 4096 CPUs and make easier to support even more in the future.
Code: (commit)
1.5. "Tree RCU": scalable classic RCU
Recommended LWN article: "Hierarchical RCU"
This feature fixes a long-standing performance bug in classic RCU that results in massive internal-to-RCU lock contention on systems with more than a few hundred CPUs - Classic RCU was designed for machines with 16-32 CPUs. "Tree RCU" applies a hierarchy, greatly reducing the contention on the top-level lock for large machines. Although this feature creates a separate flavor of RCU for ease of review and patch maintenance, it is intended to replace classic RCU.
Code: (commit)
1.6. WiMAX
2.6.29 includes support for WiMAX, a telecommunication technology that provides wireless transmission of data using a variety of transmission modes. It provides up to 75 Mbit/s symmetric broadband speed without the need for cables. The technology is based on the IEEE 802.16 standard (also called Broadband Wireless Access). The stack has been provided by Intel, and it includes a driver for the Intel Wireless WiMAX/Wi-Fi Link 5x50 USB/SDIO devices.
Code: WiMAX stack (commit 1, 2, 3, 4, 5, 6, 7, 8)
Driver: (commit 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
1.7. Wireless Access Point mode support
The mac80211 wifi stack is now ready to support AP mode. It requires hostapd for management frame processing. Configuring this mode is only allowed through cfg80211 (no iwconfig and/or WEXT).
1.8. eCryptfs filename encryption
eCryptfs implements transparent encryption of the contents of a file. In this release, it also can encrypt the file name via a passphrase-derived mount-wide Filename Encryption Key (FNEK) specified as a mount parameter. Each encrypted filename has a fixed prefix indicating that eCryptfs should try to decrypt the filename. When eCryptfs encounters this prefix, it decodes the filename into a tag 70 packet and then decrypts the packet contents using the FNEK, setting the filename to the decrypted filename. Both unencrypted and encrypted filenames can reside in the same lower filesystem. Because filename encryption expands the length of the filename during the encoding stage, eCryptfs will not properly handle filenames that are already near the maximum filename length.
1.9. Filesystem freeze
Recommended LWN article: "Freezing filesystems and containers"
Linux doesn't have a freeze feature which suspends write requests. So, it's not possible to take a backup which keeps the filesystem's consistency with the storage device's features (snapshot and replication) while it is mounted. Many commercial filesystems (e.g. VxFS) have the freeze feature and it would be used to get the consistent backup. This feature implements the ioctls of the freeze feature.
1.10. Memory controller swap management and other improvements
This feature adds a swap management feature to memory resource controller. Previously, the memory controller couldn't control the swap used by the tasks in a cgroup, allowing a single process to exhaust all of the swap. Now, you can limit mem+swap usage per cgroup. However, it adds some overhead and memory consumption, so it's configurable.
Another features added to the memory controller in this release are hierarchy support, per-cgroup swappiness, improved per-cgroup reclaim stats and better oom handling.
Code: Swap management (commit), (commit), (commit), (commit); hierarchy (commit), (commit), (commit), (commit), (commit), swappiness (commit), reclaim stats (commit), oom-killer (commit)
1.11. Ext4 no journal mode
Since Ext3 was born, there was people that never wanted to use journaling, for various reasons. In this release, Ext4 adds support for a mode that doesn't use journaling. The result is a small performance increase (see the commit link for benchmark data) compared with Ext4, but it is also a noticeable improvement over Ext2.
Code: (commit)
1.12. OCFS2 metadata checksums
OCFS2 (a clustered filesystem) now uses metadata checksums to check the integrity of the metadata.
Code: (commit 1, 2, 3, 4, 5, 6, 7, 8)
1.13. Staging drivers
New drivers were added to the staging/ directory (which means they're not just experimental, but also totally unstable and not suited at all for users)
Add rt2860 wireless driver (commit)
Add rt2870 wireless driver (commit)
Add rtl8187se driver (commit)
Add comedi (a data adquisition interace) core (commit), add usb usbduxfast driver (commit), add mite comedi pci driver (commit), add comedi_bond driver (commit), add comedi_parport driver (commit), add icp_multi driver (commit), add usb dt9812 driver (commit), add usb usbdux driver (commit), add me_daq driver (commit), add comedi_test driver (commit), add s626 driver (commit), add rtd520 driver (commit), add me4000 driver (commit),
android: add android framework (commit), add logging driver (commit), binder driver (commit), ram_console driver (commit), timed_gpio driver (commit), lowmemorykiller driver (commit)
Add agnx wireless driver (commit)
Add the Meilhaus ME-IDS driver package (commit)
Add asus_oled driver (commit)
Add Driver for Altera PCI Express Chaining DMA reference design (commit)
Add lcd-panel driver (commit)
Add princeton instruments usb camera driver (commit)
Add mimio xi driver (commit)
go7007: add sensoray 2250/2251 support (commit)
Add frontier tranzport and alphatrack drivers (commit)
Add epl stack (commit)
Add ServerEngines benet 10Gb ethernet driver (commit)
1.14. Tuz replaces Tux for this release
LWN article: “The kernel gets a new logo”
The emblematic Tux mascot is replaced, for the 2.6.29 release, by Tuz, a disguised Tasmanian Devil. This logo change is a support for this endangered species. (commit)
2. Various core changes
- Scheduler
Idle cputime accounting: The cpu time spent by the idle process actually doing something is currently accounted as idle time. This is plain wrong, the architectures that support VIRT_CPU_ACCOUNTING=y can do better: distinguish between the time spent doing nothing and the time spent by idle doing work (commit), (commit)
Extend range of /sys/devices/system/cpu/sched_mc_power_savings. Currently the sched_mc/smt_power_savings variable is a boolean, which either enables or disables topology based power savings. This patch extends the behaviour of the variable from boolean to multivalued, such that based on the value, we decide how aggressively do we want to perform powersavings balance at appropriate sched domain based on topology (commit)
Improve precision of process accounting. (commit), improve precision of idle time detection. (commit)
Include group statistics in /proc/sched_debug (commit)
- Memory management
futex: use fast_gup() (commit)
Make get_user_pages() interruptible (commit)
Shrink struct dentry (commit)
Report the MMU pagesize in /proc/pid/smaps (commit)
Report the pagesize backing a VMA in /proc/pid/smaps (commit)
Improve vmallocinfo (commit)
More likely reclaim MADV_SEQUENTIAL mappings (commit)
Add dirty_background_bytes and dirty_bytes sysctls (commit)
vmscan: bail out of direct reclaim after swap_cluster_max pages (30% improvement hackbench) (commit)
SLUB: failslab support (commit)
NOMMU: Make VMAs per MM as for MMU-mode linux (commit)
NOMMU: Make mmap allocation page trimming behaviour configurable. (commit)
- PCI
- Fastboot (not enabled by default)
Recommended LWN article: "An asynchronous function call infrastructure"
Make scsi probes asynchronous (commit)
ELF: implement AT_RANDOM for glibc PRNG seeding (commit)
cpumask: add sysfs displays for configured and disabled cpu maps (commit), (commit)
Enable multiple instances of devpts (commit), (commit), (commit)
proc: add /proc/*/stack (commit)
Support for sparse irqs: this is useful for distro kernels that want to define a high CONFIG_NR_CPUS value but still want to have low kernel memory footprint on smaller machines (commit), (commit)
Get rid of CONFIG_LSF (ommit)
ACPI hibernate: Introduce new kernel parameter acpi_sleep=s4_nonvs (commit)
ACPI hibernate: Add a mechanism to save/restore ACPI NVS memory (commit), (commit)
UIO: Pass information about ioports to userspace (V2) (commit)
swiotlb: add support for systems with highmem (commit)
Allow stripping of generated symbols under CONFIG_KALLSYMS_ALL (commit)
Script from kerneloops.org to pretty print oops dumps (commit)
Document handling of bad memory (commit)
Remove CONFIG_KMOD (commit)
3. Wi-Fi
Make Minstrel the default rate control algorithm (commit)
Implement dynamic power save (commit)
hwsim: enable Mesh Point operation (commit), add support for client PS mode (commit)
Re-enable aggregation (commit)
nl80211: Add TX queue parameter configuration (commit), add basic rate configuration for AP mode (commit), add commands to get and set o11s mesh networking parameters (commit), add signal strength and bandwith to nl80211station info (commit)
cfg80211: Add regulatory domain intersection capability (commit), add support for custom firmware regulatory solutions (commit)
Add regulatory 802.11d support (commit)
4. Security
Introduce new LSM security hooks for pathname based access control (commit)
Rework of the credential records (commit) Recommended LWN article: "Credential records"
file capabilities: add no_file_caps kernel parameter (commit)
Audit: Log TIOCSTI (commit)
Audit: Any time fcaps or a setuid app under SECURE_NOROOT is used to result in a non-xero pE, log it (commit)
smack: Add support for unlabeled network hosts and networks (commit)
5. Networking
Convert TCP & DCCP hash tables to use RCU (commit), (commit), (commit)
Add DCNA attribute to the BCN interface for DCB (commit)
IPVS: Add IPv6 support to SH and DH schedulers (commit)
DCB: Add support for DCB BCN (commit)
pkt_sched: add DRR scheduler (commit)
Add Generic Receive Offload infrastructure. Recommended LWN article: "Large receive offload (commit 1, 2, 3, 4, 5, 6, 7)
Phonet: USB CDC Phonet function for gadget framework (commit)
TPROXY: implemented IP_RECVORIGDSTADDR socket option (commit)
atm: 32-bit ioctl compatibility (commit)
sctp: Implement socket option SCTP_GET_ASSOC_NUMBER (commit)
pkt_sched: Control group classifier (commit)
- RDMA
- Bonding
- DCB
- WAN
new synchronous PPP implementation for generic HDLC. (commit)
syncppp.c is no longer used by any kernel code. Remove it. (commit)
- DCCP
- TCP
- UDP
6. Tracing
blktrace: port to tracepoints (commit)
profile likely and unlikely annotations (commit)
Add a tracer to catch execution time of kernel functions (commit)
Stack-tracer: introduce CONFIG_USER_STACKTRACE_SUPPORT (commit)
Add "power-tracer" (C/P state tracer to help power optimization) (commit)
Add a way to enable or disable the stack tracer (commit)
Add function tracing to single thread (commit)
function-graph-tracer: support for x86-64 (commit)
ftrace dump on oops control (commit)
Add ability to only trace swapper tasks (commit)
Add quick function trace stop (commit)
Graph of a single function (commit)
sysrq-z to dump the tracing buffers (commit)
Trace single pid for function graph tracer (commit)
likely/unlikely branch annotation tracer (commit)
Identify which executable object the userspace address belongs to (commit)
Add support for userspace stacktraces in tracing/iter_ctrl (commit)
oprofile: port to the new ring_buffer (commit)
7. Filesystems
- Ext4
- OCFS2
- XFS
- GFS2
- UBIFS
- FUSE
- NFS
CIFS: add mount option to send mandatory rather than advisory locks (commit)
Ext3: improve fsync batching (commit)
8. Crypto
9. DM/MD
- DM
- MD
10. Virtualization
- KVM
Enable MSI for device assignment (commit)
x86: Enable NMI Watchdog via in-kernel PIT source (commit)
x86: Support for user space injected NMIs (commit), (commit)
VMX: Add PAT support for EPT (commit)
Enable MTRR for EPT (commit)
ppc: support large host pages (commit)
ppc: Implement in-kernel exit timing statistics (commit)
virtio_console: support console resizing (commit)
virtio_net: VIRTIO_NET_F_MSG_RXBUF (imprive rcv buffer allocation) (commit)
Xen: add xenfs to allow usermode <-> Xen interaction (commit)
11. Architecture-specific changes
- X86
Use possible_cpus=NUM to extend the possible cpus allowed (commit)
pci: introduce pci=ioapicreroute kernel cmdline option (commit)
pci: introduce pci=noioapicquirk kernel cmdline option (commit)
pci: introduce config option for pci reroute quirks (commit)
Enable cpus display of kernel_max and offlined cpus (commit)
SGI UV: Provide a System Activity Indicator driver (commit)
Add a BTS ftrace plug-in prototype (commit)
- ARM
Add support for the Samsung S3c64xx processors: (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit), (commit)
S3c24a0: Initial architecture support files (commit), (commit), (commit)
pxa: initial support for the Imote2 platform (commit), add basic support for HP iPAQ h5000 (commit)
Add Nuvoton W90p910 Platform support (commit)
SMDK6410: Initial machine support (commit)
AT91: Add support for the Adeneo Neocore 926 board (commit), support AT91CAP9 revC CPUs (commit)
Adds MX1 architecture to platform MXC (commit), (commit), (commit), (commit), (commit)
S3C: Add GPIO chip tracking (commit)
DSM320: Add support for the DSM320 (commit)
OMAP3: Add basic support for Pandora handheld console (commit)
mv78xx0: implement GPIO and GPIO interrupt support (commit)
pcm037: add support for the on-board LAN9217 network controller (commit), add support for SRAM device (commit)
Kirkwood: implement GPIO and GPIO interrupt support (commit)
MX31: basic support for mx31moboard platform (commit), (commit)
TWL4030: DAPM based capture implementation (commit)
clps7500: remove support (commit)
netx: enable GENERIC_TIME and clockevents (commit), (commit)
Realview: Add Cortex-A9 support to the EB board (commit), add support for the Cortex-A8 Platform Baseboard (commit)
- PPC
Enable dynamic ftrace (commit)
ppc32: ftrace, dynamic ftrace to handle modules (commit), enable kdump (commit)
Use RCU based pte freeing mechanism for all powerpc (commit)
44x: Support 16K/64K base page sizes on 44x (commit)
4xx: Extended DCR support v2 (commit)
cell: add QPACE as a separate Cell platform (commit)
Rework context management for CPUs with no hash table (commit)
mpc5200: Add MDMA/UDMA support to MPC5200 ATA driver (commit), add rts/cts handling in PSC UART driver (commit)
udbg-based backend for hvc_console (commit)
oprofile: IBM CELL: add SPU event profiling support (commit)
85xx: Enable SMP support (commit)
Implement GPIO driver for simple memory-mapped banks (commit)
Add SPE/EFP math emulation for E500v1/v2 processors. (commit)
86xx: Basic GPIO support for GE Fanuc SBC610 (commit)
- SH
Generic kgdb stub support. (commit)
RSK+ 7201 board support. (commit)
mach-migor: Add ov772x support. (commit), add tw9910 support. (commit)
Add support for SH7201 CPU subtype. (commit)
oprofile: Backtrace support. (commit)
Add SH-4A optimized fastpath mutex implementation. (commit)
Add SH-5 optimized memcpy()/memset()/strcpy()/strlen(). (commit)
- S390
ftrace: function tracer backend for s390 (commit)
s390/hvc_console: z/VM IUCV hypervisor console support (commit)
Service level interface. (commit)
Add processor type march=z10 and a processor type safety check (commit)
Cpu topology: introduce kernel parameter (commit)
Introduce vdso on s390 (commit)
- Blackfin
- MIPS
- SPARC
- AVR32
Hammerhead board support (commit)
12. Drivers
12.1. Storage
- SATA:
- IDE
- SCSI
cxgb3i: Add cxgb3i iSCSI driver. (commit)
fcoe: Fibre Channel over Ethernet (commit)
lpfc: Add support for Power Management Suspend/Resume operations (commit), add Blockguard support (T10-DIF) structs and defs (commit), add Blockguard support (T10-DIF) code (commit)
qla2xxx: Add ISP81XX support. (commit), add support for multi-queue adapter (commit)
12.2. Graphics
i.MX31: framebuffer driver (commit)
agp-intel: add support for G41 chipset (commit)
i915: add support for integrated HDMI on G4X hardware. (commit)
12.3. Network
smsc9420: SMSC LAN9420 10/100 PCI ethernet adapter (commit), (commit), (commit)
SMSC LAN911x and LAN921x driver (commit)
Add driver for the KS8695 ethernet devices (commit)
Add be2net driver for ServerEngines' 10Gbps NIC - BladeEngine 2 (commit)
Add driver for Dave ethernet devices (dnet) (commit)
WAN: Add IXP4xx HSS HDLC driver. (commit)
iwlwifi: Add support for 5150 (commit 1, 2, 3, 4, 5), enable custom fw regulatory solution (commit), move channels sysfs to debugfs (commit), disable AP mode (commit)
sfc: Implement auto-negotiation (commit), SFT9001: Add cable diagnostics (commit), expose flash region storing boot code as MTD (commit), add support for sub-10G speeds (commit), add support for SFN4111T (commit), add option to use a separate channel for TX completions (commit), add support for Solarflare 10Xpress SFT9001 (commit)
ixgbe: add device support for 82598AT (copper 10GbE) adapters (commit), implement PCIe AER support (commit), add support for DCB to the kernel and ixgbe driver (commit), add SFP+ driver support (commit)
Ath9k: Adding support for Atheros AR9285 chipset (commit), adding initvalues for Atheros AR9285 chipset. (commit), adding AR9285 chipset register information (commit), add a debugfs file for dumping DMA status (commit), add ATH9K_DEBUG configuration option (commit), handle channel initialization for AP mode (commit), add a debugfs file to show interrupt statistics (commit),
Ath5k: add AP mode (commit), update keycache to support TKIP handling (commit), enable hardware encryption for WEP (commit)
broadcom: Add support for BCM50610 (commit), add flow control support (commit)
mISDN: Add HFC USB driver (commit), create /sys/class/mISDN (commit), added an ioctl to change the device name (commit), add E-Channel logging features (commit)
p54: enable Mesh Point support (commit), AP & Ad-hoc testing (commit), implement MRR (commit), utilize cryptographic accelerator (commit)
phy: add LSI ET1011C PHY driver (commit), add the ST ste10Xp PHYs (commit), power management support (commit)
gianfar: Add Scatter Gather support (commit), revive VLAN support (commit)
ucc_geth: Remove UGETH_FILTERING dead code (commit)
iwl3945: add debugfs support (commit)
smsc95xx: add tx checksum offload support (commit)
rt2x00: Implement HW encryption (rt2500usb) (commit), add USB ID for the Linksys WUSB200. (commit)
e1000e: enable ECC correction on 82571 silicon (commit)
cxgb3: Add multiple Tx queue support. (commit)
IXP4xx: Add PHYLIB support to Ethernet driver. (commit), add ethtool support to Ethernet driver. (commit), add PHYLIB MII ioctl to the Ethernet driver. (commit)
bnx2: Add PCI ID for 5716S. (commit)
zd1211rw: adding Sitecom WL-603 (0df6:0036) to the USB id list (commit)
atm: Driver for Solos PCI ADSL2+ card. (commit)
broadcom: Add 57780 support (commit)
igb: Add support for pci-e Advanced Error Reporting (commit)
mlx4_en: Added "set_ringparam" Ethtool interface implementation (commit)
The overdue eepro100 removal (replaced by the e100 driver) (commit)
enic: enable ethtool LRO support (commit)
uwb: add basic radio manager (commit), improved MAS allocator and reservation conflict handling (commit)
12.4. Input
Add joystick driver for Walkera WK-0701 RC transmitter (commit)
Add tsc2007 based touchscreen driver (commit)
PCF50633 input driver (commit)
Add support for Wacom W8001 penabled serial touchscreen (commit)
Add da9034 touchscreen support (commit)
Add support for enhanced rotary controller on pxa930 and pxa935 (commit)
Add support for Maple controller as a joystick (commit)
Add support for trackball on pxa930 and pxa935 (commit)
12.5. Sound
- Alsa System on Chip
Add Palm/PXA27x unified ASoC audio driver (commit)
Add support for Beagleboard (commit)
Machine driver for for s3c24xx with uda134x (commit)
Blackfin: add multi-channel function support (commit)
Add PCM3008 ALSA SoC driver (commit)
Add WM8728 codec driver (commit)
Add support for omap2evm board (commit)
UDA134x codec driver (commit)
Add Marvell Zylonite machine support (commit)
Add driver for the Lyrtech SFFSDR board (commit)
Add support for TI SDP3430 (commit)
Add support for OMAP3 Pandora (commit)
Add WM8350 Audioplus codec driver (commit)
Add PXA SSP support (commit)
Add support for Gumstix Overo (commit)
Merge AT91 and AVR32 support into a single atmel architecture h=6c7425095c9ee23d080dba3e27217a254cce4562 (commit)
Add support for TWL4030 audio codec (commit)
Add audio support for the Atmel AT91SAM9G20ek board(uing wolfson 8731). (commit)
hda: Add HP Acacia detection (commit), added an ALC888 model entry for Fujitsu-Siemens Amilo Xa3530 (commit), add ALC299 fujitsu preset model (commit), Intel HDMI audio support (commit), add ASUS V1sn support (commit), add lifebook model for Realtek ALC269 (commit), alc883 model for ASUS P5Q-EM boards (commit), added Realtek ALC888 model entry for Acer Aspire 4930G laptop (commit), make laptop-eapd model back for AD1986A (commit), add MCP67 HDMI support (commit), add support for Intel DX58SO board (commit), add support of NVidia MCP78 HDMI (commit)
pcxhr - add support for pcxhr stereo sound cards (commit), add support for pcxhr stereo sound cards (firmware support) (commit), add support for pcxhr stereo sound cards (mixer part) (commit), add support for pcxhr stereo sound cards (core change) (commit)
cs5535audio: OLPC analog input support (commit)
ELD proc interface for HDMI sinks (commit)
oxygen: add Claro halo support (commit)
Add hrtimer backend for ALSA timer interface (commit)
ca0106: Add power-management support (commit)
12.6. V4L/DVB
Adding sharp s921 ISDB-T driver (commit)
Add tw9910 driver (commit)
Add ov772x driver (commit)
Add TEA5764 radio driver (commit)
Add initial support for two KNC1 DVB-S2 boards (commit)
Adding lgdt3304 based driver (commit)
Dynamic DVB minor allocation (commit)
uvcvideo: Add support for Samsung Q310 integrated webcam (commit)
Add STB6100 Support (commit)
em28xx: experimental support for HVR-950 IR (commit)
Initial support for the Technotrend TT S2 3200 (commit)
Add support for the Satelco Easywatch DVB-S2 PCI card (commit)
cx88: Add support for Prof 6200 DVB-S PCI card (commit), add support for Turbosight TBS8910 DVB-S PCI card (commit)
Add Terratec Cinergy S USB support (commit)
uvcvideo: Add support for Lenovo Thinkpad SL500 integrated webcam (commit), V4l2 zoom controls support (commit), V4l2 privacy control support (commit), add support for video output devices (commit)
dsbr100: add suspend and resume (commit)
em28xx: Add specific entry for WinTV-HVR 850 (commit)
omap2: add OMAP2 camera driver. (commit)
v4l: add new tvp514x I2C video decoder driver (commit)
v4l2: add v4l2_device and v4l2_subdev structs to the v4l2 framework. (commit)
em28xx: add chip id for em2874 (commit), add entry for Pixelview PlayTV Box 4 (commit)
gspca: Subdriver ov534 added. (commit), pac7311: Webcam 093a:2620 added. (commit), stv06xx: New subdriver. (commit), vc032x: Webcam 046d:0897 added. (commit), vc032x: Webcam 15b8:6002 and sensor po1200 added. (commit), ov534: Add framerate support. (commit), zc3xx: Webcam 046d:089d added. (commit), pac207: Webcam 093a:2461 added. (commit)
saa7134: Add support for Kworld Plus TV Analog Lite PCI (commit), add analog and DVB-T support for Medion/Creatix CTX946 (commit), add support for Avermedia AVer TV GO 007 FM Plus (commit)
Add Compro Videomate E650F (DVB-T part only). (commit)
m5602 - ov9650: Add CIF mode (commit), add QVGA mode for the ov9650 sensor (commit)
Add ov7725 support to ov772x driver (commit)
mt9m111: add support for mt9m112 since sensors seem identical (commit)
soc-camera: add support for MT9T031 CMOS camera sensor from Micron (commit)
Add USB ID for the Sil4701 radio from Dealextreme (commit)
Add the Beholder H6 card to DVB-T part of sources. (commit)
bt832: remove this driver (commit)
12.7. USB
Add asynchronous autosuspend/autoresume support (commit)
storage: recognizing and enabling Nokia 5200 cell phones (commit)
host: Oxford OXU210HP HCD driver. (commit)
gadget: MIPS ci13xxx_udc (commit)
musb: add Blackfin driver to MUSB framework (v2) (commit)
otg: twl4030 transceiver driver (commit)
Add imx udc gadget driver (commit)
Add new opticon serial driver (commit)
Add siemens_mpi usb-serial "stub" driver (commit)
g_file_storage: add CD-ROM emulation (commit)
unusual_devs: add Pentax K10D (commit), another bad Argosy storage device (commit), Macpower MasterBox (commit), Option N.V. ZeroCD modems (commit)
USB: usb-storage: add "quirks=" module parameter (commit)
ti_usb_3410_5052: add Multi-Tech modem support (commit)
p54usb: Add USB ID for Thomson Speedtouch 121g (commit)
12.8. HWMON
Add a driver for the ADT7475 hardware monitoring chip (commit)
Add LTC4245 driver (commit)
it87: Add support for the ITE IT8720F (commit)
fschmd: Add watchdog support (commit)
f71882fg: Add PWM support (commit), add support for the F71862FG superio sensors (commit), add F8000 support (commit)
lm70: Add TI TMP121 support (commit)
applesmc: Add support for Macbook Air 2 (commit)
12.9. Watchdog
Add SMSC SCH311x Watchdog Timer. (commit)
Pika Warp appliance watchdog timer (commit)
Basic support for GE Fanuc's FPGA based watchdog timer (commit)
Add support for the WM8350 watchdog (commit)
12.10. RTC
PCF50633 rtc driver (commit)
Driver for Marvell's Socs 88F6281 and 88F6192 (commit)
Add rtc-tx4939 driver (commit)
Au1000 On-Chip Counter0-as-RTC driver. (commit)
Driver for pxa27x and pxa3xx SoC (commit)
12.11. HID
Driver for Topseed Cyberlink quirky remote (commit)
add n-trig digitizer support (commit)
Add dynids facility (commit)
Add phys and name ioctls to hidraw (commit)
Add proper support for pensketch 12x9 tablet (commit)
12.12. MTD
Support for LPDDR (Low power double data rate) flash chips. Synonymous with Mobile-DDR. It is a new standard for DDR memories, intended for battery-operated systems (commit 1, 2, 3, 4, 5, 6, 7)
NAND ndfc driver (commit)
Add ps3vram driver for accessing video RAM as MTD (commit)
nandsim: add option to use a file to cache pages (commit)
12.13. MFD
PCF50633 core driver (commit)
dm355evm msp430 driver (commit)
PCF50633 adc driver (commit)
Add WM8350 revision H support (commit)
Add WM8351 support (commit)
Add WM8352 support (commit)
Add AUXADC support for WM8350 (commit)
Register WM8400 codec device (commit)
PCF50633 gpio support (commit)
12.14. Power
Add support for WM8350 PMU (commit)
Add cold to the POWER_SUPPLY_HEALTH report values (commit)
Add Dialog DA9030 battery charger driver (commit)
Add battery health reporting for WM8350 (commit)
12.15. Serial
UART driver changes for Cavium OCTEON. (commit)
serial_8250: support for Sealevel Systems Model 7803 COMM+8 (commit)
Add driver for the Cell Network Processor serial port NWP device (commit)
8250_pci: add support for netmos 9835 IBM devices (commit)
Add Supraexpress 336i PnP Voice Modem (commit)
12.16. Various
- i2c
- Bluetooth
- leds
- Cpufreq:
- mmc
sdricoh_cs: Add support for Bay Controller devices (commit)
Add 8-bit bus width support (commit)
mmc_spi: Add support for OpenFirmware bindings (commit)
ricoh_mmc: Handle newer models of Ricoh controllers (commit)
- edac
- backlight
i8k: Enable i8k on Dell Precision Systems (commit), add Dell Vostro systems (commit)
regulator: PCF50633 pmic driver (commit)
w1: add 1-wire master driver for i.MX27 / i.MX31 (commit)
spi_gpio driver (commit)
Dell-laptop extras driver (commit)
PCMCIA: e740 PCMCIA socket driver. (commit)
ACPI: thinkpad-acpi: add UWB radio support (commit)
13. Other sources about 2.6.29 kernel
- Heise Online's Kernel Log: What's new in 2.6.29 :
Looking forward to 2.6.29 (Linux Weather Forcast)
- Linux Weekly news :
Linux FireWire wiki: FireWire Release Notes for Linux 2.6.29
Linux Wireless wiki : Wireless Release Notes for Linux 2.6.29