While this doesn't give us an optimum flexibility this allow a user to build a kernel for a specific SoC family just by commenting one line in the GENERIC kernel.
The only "bad" thing that could happen is that someone add a "device blah" in multiple vendor file and so config will warn.
If every change to the GENERIC file is to add a generic driver and every change to a vendor file is to add a vendor driver everything is fine (tm).
I have other plan for config to allow a much better conf files but for now it's still in my brain.
What I plan is more or less something like that :
add two new directive for config :
- deviceneed blah (which include device blah if it's not already present)
- devicerequire blah (which fail if device blah isn't present already)
And add all devices in std.vendor that the SoC needs.
Move the rest of the require stuff from GENERIC to std.armv7.
This way one can easily create an ALLWINNER kernel config that contain three lines :