summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAntara Borwankar <antara.borwankar@intel.com>2019-05-13 14:20:43 +0530
committerDenis Kenzior <denkenz@gmail.com>2019-05-16 10:40:45 -0500
commit41e1cfcd64f91a7e46e668784e22dad87958e5ba (patch)
tree4962cae65c47e44f1f1f5f778859e904275a6aad /drivers
parent0c2f2815caa5392b116fb9d84ecd49ef09d8a007 (diff)
downloadofono-41e1cfcd64f91a7e46e668784e22dad87958e5ba.tar.gz
xmm7modem: handling of dual mode technology preference
Handled dual mode technology preference "umts,gsm" and "lte,umts" for xmm7modem.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/xmm7modem/radio-settings.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/xmm7modem/radio-settings.c b/drivers/xmm7modem/radio-settings.c
index f1eb1aa9..c7c2ce0e 100644
--- a/drivers/xmm7modem/radio-settings.c
+++ b/drivers/xmm7modem/radio-settings.c
@@ -84,10 +84,10 @@ static void xact_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
mode = OFONO_RADIO_ACCESS_MODE_LTE;
break;
case 3:
- mode = OFONO_RADIO_ACCESS_MODE_UMTS;
+ mode = OFONO_RADIO_ACCESS_MODE_UMTS|OFONO_RADIO_ACCESS_MODE_GSM;
break;
case 4:
- mode = OFONO_RADIO_ACCESS_MODE_LTE;
+ mode = OFONO_RADIO_ACCESS_MODE_LTE|OFONO_RADIO_ACCESS_MODE_UMTS;
break;
case 5:
mode = OFONO_RADIO_ACCESS_MODE_LTE;
@@ -158,7 +158,16 @@ static void xmm_set_rat_mode(struct ofono_radio_settings *rs,
break;
}
- if (value == 6)
+ if (mode ==
+ (OFONO_RADIO_ACCESS_MODE_UMTS|OFONO_RADIO_ACCESS_MODE_GSM)) {
+ value = 3;
+ preferred = 1;
+ }
+
+ if (mode == (OFONO_RADIO_ACCESS_MODE_LTE|OFONO_RADIO_ACCESS_MODE_UMTS))
+ value = 4;
+
+ if (value == 6 || value == 3 || value == 4)
snprintf(buf, sizeof(buf), "AT+XACT=%u,%u", value, preferred);
else
snprintf(buf, sizeof(buf), "AT+XACT=%u", value);