Linux mainlining effort

The purpose of this page is to try and define sub-goals and milestones for mainlining effort, containing goals and sub-goals with milestones for adding Allwinner support in the upstream mainline Linux Kernel

It is very important to note that this is intended as a rough set of minimal goals - it is not meant to collide with the huge effort of rewriting major drivers!

=Overview= The idea is to submit break the code needed to run the Linux kernel on Allwinner SoCs upstream to the official Linux kernel, also checkout Linux-tree-diff.

This can be achieved by following the concept outlined in the [http://linux-sunxi.org/Mainlining_Effort#cite_note-1 Your new ARM SoC Linux support check-list! guide] published by Thomas Petazzoni from Free Electrons.

Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.

=Milestones=

Milestone 1 (Merged into 3.8)

 * Core SoC
 * Timer
 * UART
 * Device Tree
 * Interrupt controller

Related merges: ,

Milestone 2 (Planned for 3.9)

 * Clock driver (Emilio Lopez (Turl) is working on that)
 * PINCTRL driver (Patches sent: last version )
 * GPIO-lib based driver (Patches sent: last version )

Milestone 3+ as they mature

 * DMA driver
 * I2C driver
 * SPI driver

I2C dependent drivers

 * PMU driver

DMA dependent drivers

 * NAND MTD driver
 * MMC driver
 * Sound driver

Needing major rework
These drivers need major rework AND lack documentation other than existing source pile.


 * USB Driver
 * USB Gadget driver
 * Display driver (libv)

Unlikely
These are too far off the track third party drivers making it unlikely they will ever get accepted mainline.


 * NAND Allwinner block driver
 * Mali driver (will not happen unless libv gets a proper lima driver out)

Related but separate

 * Device-specific drivers

=References=

= See also = Linux-tree-diff - list of kernel files modified or added ('+' sign) for allwinner SOCs.

=External Links=
 * kernel.org - Official website for the Linux Kernel
 * http://github.com/torvalds/linux - Linux Torvalds GitHub account with the upstream Linux kernel
 * Linux Kernel documentation index
 * Linux Kernel man pages
 * Kernel Newbies Site - Excellent source of information for people new to kernel
 * Linus' kernel tree for 2.6
 * Kernel bugzilla - Regressions for each of recent versions
 * Linux-libre project - Maintains and distributes fully free kernel
 * LinGrok, Linux kernel source code cross-reference