Kristian Evensen <kristian.even...@gmail.com> writes:

> Most, if not all, Quectel devices use dynamic interface numbers, and
> users are able to change the USB configuration at will. Matching on for
> example interface number is therefore not possible.
>
> Instead, the QMI device can be identified by looking at the interface
> class, subclass and protocol (all 0xff), as well as the number of
> endpoints. The reason we need to look at the number of endpoints, is
> that the diagnostic port interface has the same class, subclass and
> protocol as QMI. However, the diagnostic port only has two endpoints,
> while QMI has three.
>
> Until now, we have identified the QMI device by combining a match on
> class, subclass and protocol, with a call to the function
> quectel_diag_detect(). In quectel_diag_detect(), we check if the number
> of endpoints matches for known Quectel vendor/product ids.
>
> Adding new vendor/product ids to quectel_diag_detect() is not a good
> long-term solution. This commit replaces the function with a quirk, and
> applies the quirk to affected Quectel devices that I have been able to
> test the change with (EP06, EM12 and EC25). If the quirk is set and the
> number of endpoints equal two, we return from qmi_wwan_probe() with
> -ENODEV.
>
> Signed-off-by: Kristian Evensen <kristian.even...@gmail.com>

Looking really good to me.  Thanks for doing this.

I guess this has to go to (at least some of) the stable trees
eventually, but assume you directed it to net-next for more thorough
testing first?

Acked-by: Bjørn Mork <bj...@mork.no>

Reply via email to