qmi_wwan: unconditionally reject 2 ep interfaces
authorBjørn Mork <bjorn@mork.no>
Sat, 8 Feb 2020 15:55:04 +0000 (16:55 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 Feb 2020 13:03:27 +0000 (14:03 +0100)
commit00516d13d4cfa56ce39da144db2dbf08b09b9357
tree5ebaf534aea3f61c9044276c13d56bcdcb2e6135
parent5d1fbdf238b5175579a34ac1c21cd172b65e9ca7
qmi_wwan: unconditionally reject 2 ep interfaces

We have been using the fact that the QMI and DIAG functions
usually are the only ones with class/subclass/protocol being
ff/ff/ff on Quectel modems. This has allowed us to match the
QMI function without knowing the exact interface number,
which can vary depending on firmware configuration.

The ability to silently reject the DIAG function, which is
usually handled by the option driver, is important for this
method to work.  This is done based on the knowledge that it
has exactly 2 bulk endpoints.  QMI function control interfaces
will have either 3 or 1 endpoint. This rule is universal so
the quirk condition can be removed.

The fixed layouts known from the Gobi1k and Gobi2k modems
have been gradually replaced by more dynamic layouts, and
many vendors now use configurable layouts without changing
device IDs.  Renaming the class/subclass/protocol matching
macro makes it more obvious that this is now not Quectel
specific anymore.

Cc: Kristian Evensen <kristian.evensen@gmail.com>
Cc: Aleksander Morgado <aleksander@aleksander.es>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/qmi_wwan.c