I'm pleased to announce that all halts and OOPS appear fixed.

This time, I've run the driver for over 4 hours without a hitch. However I haven't done much extensive testing outside of letting it sit. Anyways...

A *ton* has been done. I've reworked a few things (again). I realized a potential flaw and had to add some synchronization for wireless devices using mutexes within the work queue. The lack of synchronization would cause severe issues when dealing with the input device structure. There was also some undefined areas that had to be cleared up to prevent potential disasters.

Anyways, the driver is *not* done. It is very workable at the moment however. I still need to add our own workqueue (probably singlethreaded), flow through the code some more to make damn sure I didn't miss anything, and have people TEST TEST TEST AND TEST SOME MORE.

Look at commits for more information. I simply took too long and made too many changes to explain all of it (or remember all of it).