- LTE and UMTS preferred (acqorder = 0302);
AT^SYSCFGEX="0302",40000000,2,4,40000000
- UMTS and GSM preferred (acqorder = 0201);
AT^SYSCFGEX="0201",40000000,2,4,40000000
For AT^SYSCFG, the modes are not available.
---
drivers/huaweimodem/radio-settings.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
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,
--
2.17.1
_______________________________________________
ofono mailing list -- [email protected]
To unsubscribe send an email to [email protected]