xmm7modem: handling of dual mode technology preference

Handled dual mode technology preference "umts,gsm" and
"lte,umts" for xmm7modem.
This commit is contained in:
Antara Borwankar 2019-05-13 14:20:43 +05:30 committed by Denis Kenzior
parent 0c2f2815ca
commit 41e1cfcd64
1 changed files with 12 additions and 3 deletions

View File

@ -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);