The kernel modules are open source because they've managed to move all the useful bits up into closed user-space libraries. Qualcomm, ARM, ATi all do the same thing I believe, though only Qualcomm had the balls to try and push it on the kernel community while keeping the good stuff for themselves. Fortunately, they were denied.