You can have an open source driver without mainlining it. This was what the whole discussion between the Linux devs and AMD was over the AMD HAL. If you want to maintain it yourself, you can do it however you want.
Linux has modules, and had very good support for out of tree modules.
Linux has modules, and had very good support for out of tree modules.