The problem IMHO isn't driver source code availability itself, rather their often shoddy quality and the fact that SoC vendors drop support for updates very fast.
What happened instead was that, at least in the embedded world where the customers are not the mass market directly that votes with their wallets but "suits" without much technical knowledge, SoC vendors came up with bundling a private fossilized fork of the Linux kernel, u-boot and a bunch of tooling and calling it a "BSP" (board support package).
Ashmem is especially great example because upstream, having refused to take it for so long, ended up pulling their own NIH when they made the exact same thing but called it memfd.
At least with a new kernel they could also fix various mistakes that have long since been enshrined in Linux. Like the dreadful approach to permissions & sandboxing. Not that Linux has anything it could easily do here, that's the curse of legacy. But still, it's a fundamentally wrong approach to how systems are used today vs. 50 years ago when many of these semantics were established.