Some MBIM devices do not provide a CDC Union Functional Descriptor.
umb_attach() contains a misleading comment claiming that the driver
also examines matching Interface Association Descriptors to identify
the MBIM data interface. However, the implementation only examines the
CDC Union descriptor. If that descriptor is absent, data_ifaceno
remains unset and attachment fails.
Implement the IAD fallback described by the existing comment. Locate
the IAD containing the MBIM control interface, then search the
interfaces within that association for a CDC data interface.
This allows also MDM9200-based Sierra Wireless AirPrime modems to
attach in its MBIM USB configuration. The tested device associates MBIM
control interface 12 with CDC data interface 13 using an IAD, without
providing a CDC Union descriptor.
Without this change, attachment fails with:
umb0: error: no data interface found