This blog has moved This evening, I've finally been testing out my new function driver code. Its getting close: I'm now able to load and unload the drivers repeatedly cleanly. Unfortunately it locks the phone solid shortly after plugging a USB cable in, but I'm guessing that will be down to some stupid bug somewhere :)
I'm not terribly happy about the code quality: in fact, its mainly the original "function" code that I have a problem with. Its a bit messy and there seems to be an awful lot of duplication. I feel it would have been better to stick with the linux gadget APIs and extend them a bit.
However, I'm resisting the urge to completely refactor it as I don't want to make too many changes. I'm limiting myself to just changing what I absolutely need to to get this stuff working.
Once its vaguely stable, I'll publish the patch to the mailing list for everyone else to play with and hammer on; I don't see the point when I know for certain its going to need an awful lot of phone reboots to debug it.