From 291300cfcb2e3f101c0f08de65fc03e0ceb2718f Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Sat, 16 Sep 2017 12:19:47 -0700 Subject: [PATCH] sierra: enable QMI connection status polling in Netgear AC341U The Netgear AC341U seems to delay reporting packet service status indications or actually not even send them. This leaves us with modems in connected state in ModemManager but actually disconnected. We can detect this situation by actively polling ourselves the connection status. See e.g. this case where the indication is received 2.5 mins after the first OutOfCall error detected when loading statistics. Aug 30 22:52:50 ModemManager[574]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected) Aug 30 22:52:50 ModemManager[574]: Simple connect state (8/8): All done Aug 30 22:52:50 ModemManager[574]: Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall' Aug 30 22:53:20 ModemManager[574]: Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall' Aug 30 22:53:50 ModemManager[574]: Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall' Aug 30 22:54:20 ModemManager[574]: Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall' Aug 30 22:56:21 ModemManager[574]: bearer call end reason (2): 'generic-client-end' Aug 30 22:56:21 ModemManager[574]: bearer verbose call end reason (3,2000): [cm] client-end Aug 30 22:56:21 ModemManager[574]: Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connected -> registered) --- plugins/Makefile.am | 2 ++ plugins/sierra/77-mm-sierra.rules | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 plugins/sierra/77-mm-sierra.rules diff --git a/plugins/Makefile.am b/plugins/Makefile.am index c1b0917b..a6a6aac0 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -350,6 +350,8 @@ libmm_plugin_option_hso_la_LIBADD = $(OPTION_COMMON_LIBADD_FLAGS) # plugin: sierra (new QMI or MBIM modems) ################################################################################ +dist_udevrules_DATA += sierra/77-mm-sierra.rules + pkglib_LTLIBRARIES += libmm-plugin-sierra.la libmm_plugin_sierra_la_SOURCES = \ sierra/mm-plugin-sierra.c \ diff --git a/plugins/sierra/77-mm-sierra.rules b/plugins/sierra/77-mm-sierra.rules new file mode 100644 index 00000000..cea83bdb --- /dev/null +++ b/plugins/sierra/77-mm-sierra.rules @@ -0,0 +1,12 @@ + +# do not edit this file, it will be overwritten on update +ACTION!="add|change|move", GOTO="mm_sierra_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1199", GOTO="mm_sierra" +GOTO="mm_sierra_end" + +LABEL="mm_sierra" + +# Netgear AC341U: enable connection status polling explicitly +ATTRS{idVendor}=="1199", ATTRS{idProduct}=="9057", ENV{ID_MM_QMI_CONNECTION_STATUS_POLLING_ENABLE}="1" + +LABEL="mm_sierra_end" \ No newline at end of file