From e15f6f121ffe8a1804ced453d3d06f0d79e5a6fb Mon Sep 17 00:00:00 2001 From: Yong Cong Sin Date: Sun, 20 Feb 2022 17:09:39 +0800 Subject: [PATCH] drivers: modem: gsm: add handler for +CME ERROR The driver enabled extended error code (AT+CMEE=1) during setup but is missing a handler for the +CME ERROR, fix that. Signed-off-by: Yong Cong Sin --- drivers/modem/gsm_ppp.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/modem/gsm_ppp.c b/drivers/modem/gsm_ppp.c index 9bfe07de121..a42da4980bb 100644 --- a/drivers/modem/gsm_ppp.c +++ b/drivers/modem/gsm_ppp.c @@ -171,9 +171,19 @@ MODEM_CMD_DEFINE(gsm_cmd_error) return 0; } +/* Handler: +CME Error: [0] */ +MODEM_CMD_DEFINE(gsm_cmd_exterror) +{ + /* TODO: map extended error codes to values */ + modem_cmd_handler_set_error(data, -EIO); + k_sem_give(&gsm.sem_response); + return 0; +} + static const struct modem_cmd response_cmds[] = { MODEM_CMD("OK", gsm_cmd_ok, 0U, ""), MODEM_CMD("ERROR", gsm_cmd_error, 0U, ""), + MODEM_CMD("+CME ERROR: ", gsm_cmd_exterror, 1U, ""), MODEM_CMD("CONNECT", gsm_cmd_ok, 0U, ""), }; @@ -429,12 +439,10 @@ static const struct setup_cmd setup_cmds[] = { SETUP_CMD_NOHANDLE("ATE0"), /* hang up */ SETUP_CMD_NOHANDLE("ATH"), - /* extender errors in numeric form */ + /* extended errors in numeric form */ SETUP_CMD_NOHANDLE("AT+CMEE=1"), - /* disable unsolicited network registration codes */ SETUP_CMD_NOHANDLE("AT+CREG=0"), - /* create PDP context */ SETUP_CMD_NOHANDLE("AT+CGDCONT=1,\"IP\",\"" CONFIG_MODEM_GSM_APN "\""), };