aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2013-09-11 17:08:27 +0200
committerAleksander Morgado <aleksander@lanedo.com>2013-09-11 17:08:27 +0200
commite755181fd57f8059e3bc5451865d9dafff58f922 (patch)
tree8ef869fd50ee9a4e953db5b4c3ac59e048934e8f
parent0ff4da71e37e449eb4ade106d78cf6b753af671d (diff)
broadband-modem: only used CIND? for signal quality if actually reported
The Huawei MU736 supports CIND? but not for signal quality reporting: AT+CIND=? +CIND : ("call",(0,1)), ("message",(0,1)), ("roam",(0,1)) OK AT+CIND? +CIND:0,0,0 OK Which ended up with the following during execution: ModemManager[3044]: (ttyUSB1) Could not parse CIND signal quality results; signal index (255) outside received range (0-3) Just avoid this, and make CIND? be used for signal quality retrieval only if (1) CIND? is actually supported and (2) CIND? reports signal quality information.
-rw-r--r--src/mm-broadband-modem.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 3a9c8549..b3b6985f 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -1987,7 +1987,8 @@ modem_load_signal_quality (MMIfaceModem *self,
/* Check whether we can get a non-connected AT port */
ctx->port = (MMSerialPort *)mm_base_modem_get_best_at_port (MM_BASE_MODEM (self), &error);
if (ctx->port) {
- if (MM_BROADBAND_MODEM (self)->priv->modem_cind_supported)
+ if (MM_BROADBAND_MODEM (self)->priv->modem_cind_supported &&
+ CIND_INDICATOR_IS_VALID (MM_BROADBAND_MODEM (self)->priv->modem_cind_indicator_signal_quality))
signal_quality_cind (ctx);
else
signal_quality_csq (ctx);