Improved Linux USB Driver

As seen in Android_USB_Gadget, the configuration of the USB gadget is highly configurable and can be changed dynamically at runtime.

The Linux kernel driver however contains fixed interface numbers and simply always assumes a certain configuratin/composition with given ordering. This is highly inflexible.

Therefore, we propoes a series of changes to the Linux kernel qmi_wwan.c and qcserial.c drivers which dynamically detect the type of an interface (virtual serial, rmnet, adb, diag) in any order or quantity of ports.

The patches can be found at and we'll try to get them mainline soon.