My impression is that Broadcom is entirely driven by their customers. If someone is purchasing a million units of a chipset, but only if there's a Linux driver, Broadcom will write a Linux driver. If the customer demands a Windows driver, Broadcom will write one of those. Customers at that layer never demand programming specs, because they don't write software, and if they're going to get software written, they might as well get Broadcom to do it instead of a third-party. Broadcom isn't really secretive, they just don't do anything they're not getting paid for, and they get paid for very specific things. I think the change is that their customers are asking for chipsets to be supported by the mainline Linux kernel, so they're doing this work.