← Back to context

Comment by mjg59

5 days ago

Linux tries to avoid special cases. That means that when someone shows up with a new driver that's either not something that fits into an existing category, or which sort of (but doesn't entirely) overlap with an existing driver, there's an extended set of design discussions about how to make this new driver fit into existing infrastructure in a way that's consistent with what's there and which also allows new things to exist.

That sounds great from a design perspective, but it can also lead to cases where people are attempting to design for utter unknowns - potential futures that may or may not exist, theoretical understandings of how hardware works, that kind of thing. It frequently prevents new drivers being merged without significant modification, and sometimes it results in a need to entirely rearchitect the relevant part of the kernel before the driver can even be considered (and also now you need to split that driver into three parts). Upstreaming is hard.

I get that. But it's a platform that is so similar to existing Linux on ARM offerings.

All the subsystems to run a laptop should already be there, no?

  • ARM isn't consistent in the way that the x86 platform is. Each vendor's SoC usually requires specific support.