A discussion started on the Linux kernel mailing list today entitled getting allwinner SoC support upstream. This isn't the first time a discussion has been had about upstream Allwinner System-on-a-Chip support in Linux, but the outcome appears the same.
The key hurdles in the Allwinner Linux support continue to appear as:
- Allwinner Technology still has no interest (or doesn't know how/care) to interact with the upstream Linux kernel development community. Without Allwinner as a company and their developers being interested in seeing their ARM SoC support mainlined in the Linux kernel, it's hard for their patches to advance in any substantive way and for future SoCs to be supported at the same time in upstream.
- Allwinner is using their own DeviceTree-like configuration system called "Fex" rather than DeviceTree. The Linux kernel has had DeviceTree in the mainline Linux kernel for years as a data structure and language for describing hardware specifics. Most ARM Linux hardware is now configured in a DeviceTree format while Allwinner appears happy with Fex. To upstream developers, they feel it's a case of Allwinner suffering from the "not invented here" syndrome or the company not being aware of DeviceTree. It's unlikely the upstream ARM developers will accept new ARM Linux support unless it's using DeviceTree.
- Right now the Allwinner Linux kernel patches are in the form of five nearly-identical drivers from the sun3i up through the sun7i. Most of the code is shared between all their SoCs so unless they were to unify this support, it's unlikely upstream developers will want to take on the extra weight.
Those are the three reasons right now. It's understandable that the Linux kernel developers don't want to budge on their stance in dirtying the kernel source tree with another configuration system and multiple copies of nearly-identical drivers, especially when it's for hardware where the vendor doesn't appear interested in upstream support or maintenance.
Until then, if you're using any low-cost Chinese tablets with an Allwiner A1X SoC, you'll need to continue using separate kernel trees/patches. Even with the out-of-tree status, the Allwinner Linux status is fairly thriving with distributions like Ubuntu and openSUSE being able to boot on them. Their current kernel is based on Linux 3.0 and can be found on GitHub. Other details on the Allwinner Linux happenings can be found at linux-sunxi.org.