CE Workgroup Device Mainlining Project

This page describes the "Device Mainlining" project of the CE Workgroup.

This purpose of this project is to decrease the amount of out-of-mainline patches for the Linux kernel, in modern consumer electronics products.

This project was proposed at the CE Workgroup Steering Committee meeting in Tokyo, Japan, in June of 2014.

Activities
In terms of overall strategy, the actions being performed for this project fall into 4 categories:
 * communicate and meet to make plans and carry forth objectives
 * identify problems
 * implement solutions
 * train and educate participants

communicate and meet to make plans and carry forth objectives

 * Tim Bird held a Birds-of-a-Feather meeting to discuss issues with this during Linux Plumbers in Dusseldorf, Germany, on October 16, 2014
 * Kevin Hillman attended, and provided some good insights into SOC mainline efforts in the past
 * Hold another meeting at ELC, to identify areas that need work (and could use CEWG/LF funding)

Identify problems

 * Survey
 * conduct a survey to identify obstacles to mainlining - Done, September 2014
 * present "Overcoming Obstacles to Mainlining" talk at ELCE 2014
 * Identify most-out-of-mainline areas
 * analyse source tree from multiple vendors (covering multiple SOCs) for actual products, to see what the delta is in different areas

Implement solutions

 * decide on specific projects
 * hire contractors (or do work ourselves)
 * push patches to mainline to address problem areas found

Train and Educate participants

 * convince management to provide funding and/or resources for this work
 * produce a white paper on obstacles
 * determine cost of not having code in mainline, and publish information for managers

Device Mainlining meeting - March 2?, 2015
topics: Some of the issues I want to discuss are:
 * Where are we, really, with product-grade mainline support for SOCs?
 * Based on recent work on my part, I've come to believe we're not nearly as close to mainline support for many, many processors, as we should be. I'm in the middle of doing some research on multiple SOCs used in mobile phones, and it appears that there are all kinds of fundamental problems that make using a mainline kernel on a production phone a fleeting dream.
 * What sub-systems have weakest support in mainline?
 * For each sub-system, is the poor support because of:
 * framework deficiencies
 * DT blockage
 * dependencies on out-of-tree code
 * lack of documentation
 * maintainer bandwidth, or
 * something else?
 * Are there things industry players or the Linux Foundation can do to make interacting with the community easier?
 * Would it be helpful to produce a scorecard, for evaluating where each SOC is
 * Scorecard would have: what subsystems have been mainlined, what's outstanding, etc.
 * Can git tools be developed to automate this analysis?
 * Can Linaro and LF work together on some things?
 * keep a list of "maintainer quirks" - what things individual maintainers like/dislike, insist on, what timing they like (when to submit relative to merge window).

Tools
[put here ideas for tools that this project could develop]

Resources
[put here links to training or other resources that this project develops (or should develop)]

Source code repositories
See Phones_Processors_and_Download_Sites