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>

Reply via email to