Kevin,
I haven't been paying close attention to the details; can you list what
the differences from a user's point of view are between your driver and
the official one? What features is the official driver missing that
you've implemented? I'd be interested in taking a closer look at them,
to see what it would take to implement those in the official driver,
with help from the code from your driver.
- Heikki