The problem is simple: You are asking me to code something I could get paid a LOT of money to work on, for free with nothing gained from the time and effort spent away from my family... outside of my work. People like myself who could be doing this sort of work exist and we are freely available at a good market rate, but we would rather be making money than donating our time and effort to something we do not see as practical, efficient, or worthwhile.
Open source is great for simple things, or if somebody is just learning, or if you are really skilled, really bored, and motivated by your education (Like Linux itself was started on as a school project, right?).. but if you are like most people working on something that technical for no money is a waste of time and energy as the people who can make it career already have, and I for one do not want to be the guy who pressures somebody else that I respect to step aside so I can be "them" in the OSS community. I respect the upper tier of open source - the Linus's, Alan's, etc, of the world - too much to be that much of a jerk.
Its also not practical. Worse, as things advance the driver will be surpassed or just not work on a chipset.. and then you will have people like Linus belittling the effort you made into it. Nobody wants to be belittled for working on something nobody else wants or has the skills to do. Or you could just get sued for violating an nda, or if you didn't, for researching things and learning its secrets on your own. If you are not going to make yourself a target, why should you expect others to?
I love open source; But its reasons like this that it has so many gaps and parts of it outright sucks.