Kristian Evensen <kristian.even...@gmail.com> writes: > Quectel EP06 (and EM06/EG06) supports dynamic configuration of USB > interfaces, without the device changing VID/PID or configuration number. > When the configuration is updated and interfaces are added/removed, the > interface numbers change. This means that the current code for matching > EP06 does not work.
That's annoying, but hardly surprising. They obviously try to make life as hard as possible for the drivers. I wonder what the Windows drivers do here, if there are any? Or are these modules only used in embedded Linux devices? > This patch removes the current EP06 interface number match, and replaces > it with a match on class, subclass and protocol. Unfortunately, matching > on those three alone is not enough, as the diag interface exports the > same values as QMI. The other serial interfaces + adb export different > values and do not match. > > The diag interface only has two endpoints, while the QMI interface has > three. I have therefore added a check for number of interfaces, and we > ignore the interface if the number of endpoints equals two. Could this break if more/other functions are enabled? Are you sure there can't be any other type of serial function with 3 endpoints and ff/ff/ff? Well, I guess no one knows for sure... And this is more than good enough until it breaks. Thanks for solving the puzzle. Looks good to me. Acked-by: Bjørn Mork <bj...@mork.no>