The authoritative svn master tree at flashrom.org and the Google ChromiumOS flashrom tree have diverged quite a bit in terms of hardware support, especially for Embedded Controllers (EC). That is unfortunate because all interface rework and all cleanups in main flashrom have to be ported by hand (if they are done at all) to the ChromiumOS tree with some potential for errors during merge/porting.
The EC support code in the ChromiumOS tree needs a few cleanups to be closer to the style and durability requirements we have for flashrom.org svn, but keeping the code outside our tree won't improve it. The same argument applies to Nvidia Tegra support.
The Linux kernel has a staging directory, I propose we use a similar mechanism for flashrom (without the special staging/ directory, though): Merge driver files as-is and clean them up in our tree, but have all hooks for the staging code inside #ifdef EXPERIMENTAL or somesuch. Any cleanups for that code can happen in flashrom.org svn, and whenever Google wants to merge the cleanups into their tree, they can do so easily. If code is determined to be ready for inclusion, we can simply remove #ifdef EXPERIMENTAL from its hooks.
Comments? Thoughts?
Regards, Carl-Daniel