How and why to work with the Linux kernel community Why submit your code mainline? Quantity-wise, most users use some Linux distribution Every version of every distribution ships a different Linux kernel version Most end-users are not capable of compiling their own kernel/drives (but way more than you think!) Thus, teaming up with one (or even two, three) Linux distributions only addresses a small segment of the user base distributing your driver independently (bundled with hardware, ...) in a way that is ready-to-use for end-users is a ton of work and almost impossible to get right the preferred option, with the least overhead for both user and HW vendor is to merge the driver mainline.