KernelNewbies:

TableOfContents()

Short overview (for news sites, etc)

2.6.20 adds hardware virtualization support through KVM (http://kvm.sourceforge.net), paravirtualization support that will be used by Xen/Vmware etc, initial Sony Playstation 3 support, a fault injection debugging feature, UDP-lite support, better per-process IO accounting, relative atime, support for using swap files for suspend, relocatable x86 kernel support for kdump users, small microoptimizations in x86 (sleazy FPU, regparm, support for the Processor Data Area, optimizations for the Core 2 platform), Generic HID layer, DEEPNAP power savings for PPC970

Important things (AKA: ''the cool stuff'')

Sony Playstation 3 support

You may like the Wii or the 360 more, but only the PS3 is gaining official Linux support, written by Sony engineers. Notice that the support at this time is incomplete (enabling it will not boot) and it doesn't support the devices included like the graphics card, etc. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f58a9d171a346afb1b09190427e6c28c6118703e (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e4ed915d133aaa2802d11914a7e80b3e31304e6 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c6cec72b7ca05822688a952df97b1c24e69a0ef6 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=82a527f0bd84977d7e85f15fb1f987c42cc0a68d 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e74b38a7ffa6b69f287ae629aae91e725916e6f 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2832a81df7f3cb7e7f912a256c156ddbd3450265 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=00a3e2e93cd3ce73ab2d200fff22a62548da06d6 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=261efc3f178c8c5b55d76208aee1f39ce247f723 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de91a53429952875740692d1de36ae70d4cf81da 9], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a3d4d6435b56eb0b6ff4f88e5a513cfccfb3e770 10], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=74e95d5de9d8eb243cda68b546bdb29f6ef0f01c 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=797c7b56d28e800947c66d1c324a6bfc83289b7a 12)]

Virtualization support through KVM

KVM ([http://kvm.sourceforge.net project page]) adds a driver for Intel's and AMD's hardware virtualization extensions to the x86 architecture (KVM will not work in CPUs without virtualization capabilities).

The driver adds a character device (/dev/kvm) that exposes the virtualization capabilities to userspace. Using this driver, a process can run a virtual machine (a "guest") in a fully virtualized PC containing its own virtual hard disks, network adapters, and display. Each virtual machine is a process on the host; a virtual cpu is a thread in that process. kill(1), nice(1), top(1) work as expected. In effect, the driver adds a third execution mode to the existing two: we now have kernel mode, user mode, and guest mode. Guest mode has its own address space mapping guest physical memory (which is accessible to user mode by mmap()ing /dev/kvm). Guest mode has no access to any I/O devices; any such access is intercepted and directed to user mode for emulation.

32 and 64 bits guests are supported (but not x86-64 guests on x86-32 hosts!). For i386 guests and hosts, both pae and non-pae paging modes are supported. SMP hosts and UP guests are supported, SMP guests aren't (support will be added in the future). You also can start multiple virtual machines in a host. Performance currently is non-stellar, it will be improved by a lot with the future inclusion of [http://lkml.org/lkml/2007/1/5/205 KVM paravirtualization].

The Windows install currently bluescreens due to a problem with the virtual APIC, a fix is being worked on and will be added in future releases. A temporary workaround is to use an existing image or install through qemu - Windows 64-bit does not work either.

[http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6aa8b732ca01c3d7a54e93f4d701b8aabbe60fb7 (commit)]

Paravirtualization support for i386

The basic hooks for replacing all non virtualizable instructions on x86 are in. This currently only runs on native hardware, but will allow to link in modules for paravirtualized Xen/Vmware/lhype. There are limitations like no SMP support yet. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da181a8b3916aa7f2e3c5775d2bd2fe3454cf82d (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dfbea0ad50e08c52539bddce977b07f77a762ba4 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3bbf54725467d604698721384d858b5983b87e8f 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4f205fd45a5c192907188d6f8f6d7e66db859248 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6020c8f315709a508b027ef6749e85b125190947 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8542b200cbe5609edd7aae0c304c091a1c290452 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ecb8950695e907ed25acffec9e98c6806e311c8 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a2952d8949bb0b37c1be92a89c4f180c74292857 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd472c794bbf6771c3fc1c58f188bc16c393d2fe 9], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c9ccf30d77f04064fe5436027ab9d2230c7cdd94 10] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d3561b7fa0fb0fc583bab0eeda32bec9e4c4056d 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=13623d79309dd82e1964458fa017979d16f33fa8 12], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=139ec7c416248b9ea227d21839235344edfee1e0 13)]

Relocatable kernel support for x86

This feature (enabled with CONFIG_RELOCATABLE) isn't very noticeable for end-users but it's quite interesting from a kernel POV. Until now, it was a requeriment that a i386 kernel was loaded at a fixed memory address in order to work, loading it in a different place wouldn't work. This feature allows to compile a kernel that can be loaded at different 4K-aligned addresses, but always below 1 GB, with no runtime overhead. Kdump users (a feature introduced in [http://kernelnewbies.org/Linux_2_6_13 2.6.13] that it triggers [http://lwn.net/Articles/108595/ kexec] in a kernel crash in order to boot a kernel that has been previously loaded at a 'empty' address, then runs that kernel, saves the memory where the crashed kernel was placed, dumps it in a file and continues booting the system) will benefit from this because until now the "rescue kernel" need to be compiled with different configuration options in order to make it bootable at a different address. With a relocatable kernel, the same kernel can be boot at different addresses. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=968de4f02621db35b8ae5239c8cfc6664fb872d8 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e69f202d0a1419219198566e1c22218a5c71a9a6 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=be274eeaf20b4c7155242645d5e2c48b023e609b 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fd593d12770d4a0d1ff095d44b96436c18479ee8 4)]

Use 'regparm' in x86-32

This is another not-relevant-to-users-yet-interesting-for-geeks feature, that has been available as an option for a while but it's default now. Since forever the x86 architecture has stored the function parameters in the stack. Modern architectures (PPC, SPARC, etc) use registers: It's much faster, since you don't need to do anything to bring the paramaters back: The parameters are just there, in the register. The x86 world continued using stacks for parameter passing, for compatibility reasons with software, compilers, etc; they only added extensions to compilers to optionally tell the compiler to use parameters for parameter pasing in a given function (usually involving the 'fastcall' keyword) for performance-critical paths. Thanks to a GCC extension, the linux kernel uses the '-mregparm=3' compile option, which means that as long as a function uses 3 or less arguments, GCC will automatically use registers to pass its parameters. And if you're wondering about x86-64, in that platforms using the registers has always been the default [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1a70c25bed75ed36ed48bbe18b9029428d2452d (commit)]

Sleazy FPU optimization

This is a x86-32 port of the x86-64 feature implemented in [http://kernelnewbies.org/Linux_2_6_19 2.6.19]. It doesn't gives huge performance except a very small improvement in FPU-intensive programs, but it's also a interesting optimization. Right now the kernel has a 100% lazy fpu behavior: after *every* context switch a trap is taken for the first FPU use to restore the FPU context lazily. This is of course great for applications that have very sporadic or no FPU use (since then you avoid doing the expensive save/restore all the time). However for very frequent FPU users you take an extra trap every context switch. This feature adds a simple heuristic to this code: After 5 consecutive context switches of FPU use, the lazy behavior is disabled and the context gets restored every context switch. If the app indeed uses the FPU, the trap is avoided (the chance of the 6th time slice using FPU after the previous 5 having done so are quite high obviously). After 256 switches, this is reset and lazy behavior is returned (until there are 5 consecutive ones again). The reason for this is to give apps that do longer bursts of FPU use still the lazy behavior back after some time. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=acc207616a91a413a50fdd8847a747c4a7324167 (commit)]

round_jiffies() infrastructure

Introduce the round_jiffies()/round_jiffies_relative() functions. These functions round a jiffies value to the next whole second. The target of this rounding is all the "we don't care exactly when" timers. By rounding these timers to whole seconds, all such timers will fire at the same time, rather than at various times spread out; with dynamic ticks these extra timers cause wakeups from deep sleep CPU sleep states and thus waste power [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c36a5dec25fb344ad76b11860da3a8b50bd1248 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=44d306e1508fef6fa7a6eb15a1aba86ef68389a6 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2b2842146cb4105877c2be51d3857ec61ebd4ff9 3)]

Fault injection

This is a debugging feature that 'injects' failures in several layers in the kernel (kmalloc() failures, alloc_pages() failures, disk IO errors). By 'injecting' them on purpose, a developer can test how their code reacts to errors that are very difficult to find in the real world, where things does not fail so often. For example, a filesystem could not be handling correctly an error triggered by a broken hard disk. Because those error code paths are exercised very rarely the code may contain bugs that could be hit by an user some day. This feature 'injects' those errors on purpose so testing can find bugs much faster. Enabled by the following configuration options: CONFIG_FAILSLAB, CONFIG_PAGE_ALLOC and CONFIG_MAKE_REQUEST. If you also want to configure them via debugfs you must enable CONFIG_FAULT_INJECTION_DEBUG_FS. Read the documentation [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fault-injection/fault-injection.txt;hb=HEAD here]. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=de1ba09b214056365d9082982905b255caafb7a2 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6ff1cb355e628f8fc55fa2d01e269e5e1bbc2fe9 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8a8b6502fb669c3a0638a08955442814cedc86b1 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=933e312e73f8fc39652bd4d216a5393cc3a014b9 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c17bb4951752d3e0f49cd1ea9d2e868422f9e0d6 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f4f154fd920b2178382a6a24a236348e4429ebc1 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=329409aeda064c4aff00c51f837fcd3bbdaeeba6 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1ab8509a31187998615e6dd7f53cc02db5be594c 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5d0ffa2b84e6f0fdc5bf96c0de6178f3d2779544 9)]

IO Accounting

The present per-task IO accounting isn't very useful. It simply counts the number of bytes passed into read() and write(). So if a process reads 1MB from an already-cached file, it is accused of having performed 1MB of I/O, which is 'wrong'. So this IO accounting implements per-process statistics of "storage I/O" (ie: I/O that _really_ does I/O on the storage device - linux already had I/O storage statistics but it's not per-task). The data is reported through taskstats and procfs (/proc/$PID/io) [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=55e829af06681e5d731c03ba04febbd1c76ca293 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=faccbd4b26df7bd977cee33d4145155d0ef95c87 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e08748ce01e02f0ec154b141f392ccb9555333f4 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=98c4d57decf97bf8ddfe948a3266aa56b38b1a51 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6f88cc2e9c29c181557b477ee396375906acbc90 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8bde37f08fe3340435f4320b5a092eeb55acebfd 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aba76fdb8a5fefba73d3490563bf7c4da37b1a34 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4a7864ca638e0a38307962ee8ef122822a351b65 10], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf709844d8a8fa21c59772d1a069ae0efa15e981 11)]

Relative atime support

'Atime' is the 'Access time' field of a file: When a process reads a file, its atime is updated. Disabling atime updates, with the 'noatime' mount flag, is probably the most used performance tweak that linux administrators use: An active server is continually reading files, generating lots of atime updates, which translate to metadata updates that the filesystem must write to disk. And writing those updates can seriously damage your performance. Believe it or not, a busy server like kernel.org (vsftpd + apache workload) cut their load average in half just by mounting their filesystems with 'noatime'.

Relative atime ('relatime') only updates the atime if the previous atime is older than the mtime or ctime. It avoids a lot of metadata atime updates (but not all of them, obviously, there's 'noatime' for that). It's like noatime, but useful for applications like mutt that need to know when a file has been read since it was last modified. Currently only OCFS2 supports it. A corresponding patch against mount(8) is available [http://userweb.kernel.org/~akpm/mount-relative-atime.txt here]. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=47ae32d6a54955a041cdc30b06d0bb16e75f68d5 (commit)], ocfs2 support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7e913c53609d5e8374f55d6f29c0bcd6650a2362 (commit)]

UDP-Lite support

Support for UDP-Lite ([http://www.ietf.org/rfc/rfc3828.txt RFC 3828]) for IPv4 and a extension for UDP-Lite over IPv6 is added in 2.6.20. UDP-Lite is a Standards-Track IETF transport protocol whose characteristic is a variable-length checksum. This has advantages for transport of multimedia (video, VoIP) over wireless networks, as partly damaged packets can still be fed into the codec instead of being discarded due to a failed checksum test. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=Documentation/networking/udplite.txt;hb=HEAD Documentation and programming guide]

[http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ba4e58eca8aa9473b44fdfd312f26c4a2e7798b3 (commit)]

Generic HID layer

Currently the HID layer (Human Interface Device) does only work with USB devices. 2.6.20 turns the USB-oriented HID layer into a generic HID layer that can be used for any subsystem that needs it, like Bluetooth. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64bb67b1702958759f650adb64ab33496641e526 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dde5845a529ff753364a6d1aea61180946270bfa 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=229695e51efc4ed5e04ab471c82591d0f432909d 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4916b3a57fc94664677d439b911b8aaf86c7ec23 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa938f7974b82cfd9ee955031987344f332b7c77 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa8de2f038baec993f07ef66fb3e94481d1ec22b 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c2ae844b5ef85fd4b571c9c91ac48afa6ef2dfc 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63f3861d2fbf8ccbad1386ac9ac8b822c036ea00 8)]

Various core changes

[http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=edc6afc5496875a640bef0913604be7550c1795d 2] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=606d099cdd1080bbb50ea50dc52d98252f8f10a1 3] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64bb6c5e1ddcd47c951740485026ef08975ee2e6 4] [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=592ee3a5e5e2a981ef2829a0380093006d045661 5)]

Large sched domains can be very expensive to scan. Add an option SD_SERIALIZE to the sched domain flags. If that flag is set then we make sure that no other such domain is being balanced.

Architecture-specific changes

Add sysctl for kstack_depth_to_print. This lets users change the amount of raw stack data printed in dump_stack() without having to reboot.

Filesystems

Networking

Netfilter

IPSEC

* Add encapsulation family. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=76b3f055f38954c67dab13844eb92203580038f8 (commit)] * Add support for AES-XCBC-MAC [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7cf4c1a5fd13820d7591179c0b925d739b2be9a7 (commit)]

Various subsystems

Drivers

Graphics

* Add support for secondary vertical blank interrupt to DRM core and add support to i915 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=68815bad7239989d92f315c10d9ef65a11945a75 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=776c9443e28dddbde9b513db6cb8221c45b3a269 2)]; add ioctl in i915 for scheduling buffer swaps at vertical blanks. [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a6b54f3f5050c0cbc0c35dd48064846c6302706b (commit)] * sstfb: add sysfs interface [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0743b86800cf1dfbf96df4a438938127bbe4476c (commit)] * gxfb: Support command line options [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16ef9870959621fa437d25ead28a7199acc6ce49 (commit)], support flat panel timings [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab1db0cfcf69f94a5c6831db230982cd6bbeb2e1 (commit)], fixups for the AMD Geode GX framebuffer driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f378819a19e2b9639f17a1a82c5e12adc9512390 (commit)] * s3c2410fb: Add support for STN displays [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=357b819dda03e642f9c2d737596ad6cdc0022c00 (commit)] * mbxfb: Add YUV video overlay support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ea465250d41c99b4ee7dac1e6eb87b7106f7b11e (commit)]

Sound

V4L/DVB

Add support for remote control of Hauppauge HVR1110 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=177aaaf826856cd8c82e790cf125186b5634f492 (commit)], add support for both DVB frontends of the Lifeview Trio [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1f683cd8bc8512c02a7d1b8358d71937d4c5134b (commit)], add support ptv-305 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2d90fa4412549faa3830789ca606b77827cde827 (commit)], add support for AverMedia AverTV Studio 507 [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ac706d2f77fd7bbef037a6137d08a72d7dc8334 (commit)], add support for the Terratec Cinergy HT PCMCIA module [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=550a9a5e5f8086ae410832f134a5d80b9bd7fdb6 (commit)], add support for Pinnacle 310i [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=587d2fd7f296dfb5ccf348e48d6d751bcc6a423a (commit)], add working dib7000m-module [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=69ea31e7debdefcf1412e8d590ae9bd90cf9253f (commit)], dynamic cx88 mpeg port management for HVR1300 MPEG2/DVB-T support [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c5be74c86f102c2d4e123bc51d2fa93155fd794 (commit)], add usbvision driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=781aa1d1ab7ba13314af0af6c5d70c0eb0e96bf4 (commit)], add support for a ASUSTEK P7131 Dual DVB-T variant [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8364681766cc18b948cf9d7bd46d1b92f343743b (commit)], add support for Leadtek Winfast DTV Dongle (STK7700P based) [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8637a8759585b97ec1d54ff4a4f33f34be4f5b1c (commit)], add initial DiB7000M-demod driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=91bb9be6ff4101652bb104f9f083f340e73ba6dd (commit)], add support for DiBcom DiB7000PC [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a75763ffff4175bd8c115c217a39fbf445612aae (commit)], remove the broken VIDEO_ZR36120 driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af249982dc385b18ea340323f50f585e989b76e5 (commit)], add OmniVision OV7670 driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=111f33564e19b2b5f70e3df9a8f92c08c1c91fd9 (commit)], adds support for Pinnacle PCTV 400e DVB-S [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bc2e3913c786d7387e21ee0818c1a3b66a571703 (commit)], add support for Hauppauge WinTV-HVR1110 DVB-T/Hybrid [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c6e53daffc2c6e66069304b3970256744074abec (commit)], add support for the Compro Videomate DVB-T200A [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cbb94521cff24c98c2dbee28fb95e007c6bcaa43 (commit)], Implement IR reception for 24xxx devices [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cc75aede1b1ce29a478911ad7dadee94ecd45bbf (commit)], add Marvell 88ALP01 "cafe" driver [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d905b382d797a213e15868cbf3204f50ed52e30b (commit)], add support for new revision of Nova-T Stick [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f9aeba45000423cdf1211736592cb02c25f28437 (commit)]

libata

SCSI

Software suspend

Input drivers

Firewire

ohci1394: Implement suspend/resume [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f011bf085cd41ee40c2c8e530f801ac6cb6e00d0 (commit)]

PCMCIA

MMC

Networking devices

[http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=19cdeb794b7ef9e1f0e408777445bd76fe90e694 (commit 1], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc2a0bca102bab668badf2e5bfc3012441dd051f 2], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=123d19a3fa4a2c94f9154d04e5355304720020fd 3], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b6690cc2bd5e2831f971231a2ff8c4a74b06acc4 4], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9052a840fffa2f565ed13e6ecd53fbe2532d51b9 5], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=234754d5c1ef25bbc64631a420ba66eeb2904633 6], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5793bfe19beaa3c804fa2d33af238bf51bf28211 7], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59b47d8ad35b9858d63d6fd3db76e698e4a98f36 8], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bac0dff6cd194f7a28f7e840c9b6a7aa71c6ef97 9], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d43584c8bf851145ed7ec6d148916a01979040f4 10], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=80be44348e30b68d2d8c5b6d1b7e53f2c5659134 11], [http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f8dd064ee1bd62ef2cdb398cb9cdc8a8f112cb28 12)]

USB

HWMON

WATCHDOG

CPUFREQ

IPMI

I2C

DM

KernelNewbies: Linux_2_6_20 (last edited 2007-01-30 16:54:39 by diegocalleja)