Disclaimer: I am the author of bcm58xx, a derivative of bcm5820, Broadcom's abandoned driver for their BCM58xx hardware security co-processors. The project is at http://sourceforge.net/projects/bcm58xx/.
It was my itch to scratch, i.e. learn device driver development under Linux. And I had some bcm5820s to play with, and knowledge of OpenSSL, so I went for it. I have been trying to clean up that driver for the last 3(!) years, but haven't completely succeeded (the goal is to move it into mainline, no free time etc.).
The old driver, bcm5820, was for 2.4.x line and was heavily coded for multi-platform development. Everything that the author mentions here is spot-on. I would even go further and add to the list the quality of the code as well. Let's just say that if I had known the shear masochism required to cleanup that driver, I would have chosen a different piece of hardware to play with. I have not looked at the drivers in question, but the code that I saw that came out of Broadcom, I would really run away screaming if I had to maintain it.
The worst part? I had FreeBSD's ubsec driver to look at. And weep. :(