You start from the principle that there is widely available proper documentation to make open source
device drivers for any piece of hardware out there.
But AFAIK the contrary is true. Most Open Source drivers, though some are very good, are *guessed* implementations of poor documentation, years or trial and error, and reverse engineered methods... and it has been so for the last 20 years...
It always has been, IMO, that the biggest mistake of Open Source to force an all open source approach, that has made this divorce with the hardware industry.
There are already plenty of interfaces, inside Linux kernel, but in colorfull examples,Nvidea and ATI prefer to ignore, and not contribute to the advancement of what is already inside, and make "yet more differente interfaces from on to another, that load their proprietary closed "userland" binary modules.