summaryrefslogtreecommitdiff
path: root/drivers/huaweimodem/radio-settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/huaweimodem/radio-settings.c')
-rw-r--r--drivers/huaweimodem/radio-settings.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/huaweimodem/radio-settings.c b/drivers/huaweimodem/radio-settings.c
index 20181d2b..ff7be48a 100644
--- a/drivers/huaweimodem/radio-settings.c
+++ b/drivers/huaweimodem/radio-settings.c
@@ -207,6 +207,10 @@ static void syscfgex_query_mode_cb(gboolean ok, GAtResult *result,
strstr(acqorder, "02") &&
strstr(acqorder, "03")))
mode = OFONO_RADIO_ACCESS_MODE_ANY;
+ else if (strstr(acqorder, "0302"))
+ mode = (OFONO_RADIO_ACCESS_MODE_LTE | OFONO_RADIO_ACCESS_MODE_UMTS);
+ else if (strstr(acqorder, "0201"))
+ mode = (OFONO_RADIO_ACCESS_MODE_UMTS | OFONO_RADIO_ACCESS_MODE_LTE);
else if (strstr(acqorder, "03"))
mode = OFONO_RADIO_ACCESS_MODE_LTE;
else if (strstr(acqorder, "02"))
@@ -281,6 +285,8 @@ static void syscfg_set_rat_mode(struct radio_settings_data *rsd,
break;
case OFONO_RADIO_ACCESS_MODE_LTE:
goto error;
+ default:
+ goto error;
}
snprintf(buf, sizeof(buf), "AT^SYSCFG=%u,%u,40000000,2,4",
@@ -318,8 +324,15 @@ static void syscfgex_set_rat_mode(struct radio_settings_data *rsd,
case OFONO_RADIO_ACCESS_MODE_LTE:
acqorder = "03";
break;
+ default:
+ break;
}
+ if (mode == (OFONO_RADIO_ACCESS_MODE_LTE | OFONO_RADIO_ACCESS_MODE_UMTS))
+ acqorder = "0302";
+ else if (mode == (OFONO_RADIO_ACCESS_MODE_UMTS | OFONO_RADIO_ACCESS_MODE_LTE))
+ acqorder = "0201";
+
snprintf(buf, sizeof(buf), atcmd, acqorder);
if (g_at_chat_send(rsd->chat, buf, none_prefix,