"Just" is a fine word to use when a solution is not technically complicated, and it's important that people with technical understanding express that it really is "just" that simple. That way, if the reason they don't do that is that they and their business partners don't want to, citizens know it's reasonable to ask their governments to make those companies release driver/firmware source code and/or hardware documentation as part of consumer protection laws.
Upstreaming stuff is complicated. You can't just throw your barely working driver over the wall at Linus. You have to put effort into it, and keep putting effort into it.
Sure, if you're writing barely working software to start, but then you'll probably have to put in more effort to maintain a fork for whatever support period you do offer.
Though for the purposes of extending the useful life of a product, throwing it over the wall would be a huge improvement. Publish your garbage code and whatever documentation you have, and people can pick it up themselves, which you already find people doing today but with the added barrier of having to reverse engineer it.