I’ve been busy rewriting the usb_notifier stuff so that the msm72k_udc gagdet driver can be unloaded cleanly at runtime, yet still do the necessary power notification stuff. I’ve just finished this, and it appears to work.
However, the next problem is that if I actually load one of the higher level gadget drivers (e.g. g_android.ko), the phone locks up as soon as the cable is plugged in. Judging from the state of the code for the android gadget subsystem, it seems to have been unmaintained for a while, so I’ll need to compare it to the (working) "function" driver to port any changes and fixes across.
Why am I not just fixing the "function" driver? Well, it simply was not designed to be unloadable, and I thought it would make more sense to target the linux-standard "gadget" drivers which are. I might try and make it unloadable later though as it seems to have been derived from the gadget driver.