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>