You don't really have to mainline your drivers. You just have to open source them. I guarantee if the chipset drivers and GPU drivers for most Samsung S phones were open sourced the phones would see community merged drivers or a popular third party repo supporting their continued maintenance.
Of course, it would be preferable that companies support their hardware in (open) software themselves (like Intel and AMD do for their GPUs / wifi / ethernet / ASM extensions), but we don't have anything close to that right now in mobile.
To play the devil's advocate here, you could also blame Linux for not providing a stable driver ABI and instead tries to force all vendors to adapt their coding practices if they want to play along.
Many companies don't want to take the burden to rewrite their code if the Kernel maintainers have a different opinion on how things should be done.