From eaba1bef1ea3a4ffff90db456e41e9d375347289 Mon Sep 17 00:00:00 2001 From: SPRESENSE <41312067+SPRESENSE@users.noreply.github.com> Date: Wed, 6 Dec 2023 16:46:56 +0900 Subject: [PATCH] drivers/modem/alt1250: Add LTE_CMDID_RESTARTAPI command ALT1250 driver sends an event named LTE_CMDID_RESTARTAPI to ALT1250 daemon when state is PM_NOARMAL in the function of prepare registered by pm_register. --- drivers/modem/alt1250/alt1250.c | 14 ++++++++++++++ include/nuttx/modem/alt1250.h | 9 +++++---- include/nuttx/wireless/lte/lte_ioctl.h | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/modem/alt1250/alt1250.c b/drivers/modem/alt1250/alt1250.c index 336f941fd72..6280515031a 100644 --- a/drivers/modem/alt1250/alt1250.c +++ b/drivers/modem/alt1250/alt1250.c @@ -640,6 +640,7 @@ static int alt1250_power_control(FAR struct alt1250_dev_s *dev, #ifdef CONFIG_PM case LTE_CMDID_STOPAPI: + case LTE_CMDID_RESTARTAPI: case LTE_CMDID_SUSPEND: alt1250_receive_daemon_response(req); break; @@ -1380,6 +1381,19 @@ static int alt1250_pm_prepare(struct pm_callback_s *cb, int domain, ret = alt1250_send_daemon_request(ALT1250_EVTBIT_STOPAPI); + if (ret) + { + return ERROR; + } + else + { + return OK; + } + } + else if (pmstate == PM_NORMAL) + { + ret = alt1250_send_daemon_request(ALT1250_EVTBIT_RESTARTAPI); + if (ret) { return ERROR; diff --git a/include/nuttx/modem/alt1250.h b/include/nuttx/modem/alt1250.h index 3c1e3cf5285..4d924fe554b 100644 --- a/include/nuttx/modem/alt1250.h +++ b/include/nuttx/modem/alt1250.h @@ -58,10 +58,11 @@ #define ALT1250_IOC_SETEVTBUFF _MODEMIOC(3) #define ALT1250_IOC_EXCHGCONTAINER _MODEMIOC(4) -#define ALT1250_EVTBIT_RESET (1ULL << 63) -#define ALT1250_EVTBIT_REPLY (1ULL << 62) -#define ALT1250_EVTBIT_STOPAPI (1ULL << 61) -#define ALT1250_EVTBIT_SUSPEND (1ULL << 60) +#define ALT1250_EVTBIT_RESET (1ULL << 63) +#define ALT1250_EVTBIT_REPLY (1ULL << 62) +#define ALT1250_EVTBIT_STOPAPI (1ULL << 61) +#define ALT1250_EVTBIT_SUSPEND (1ULL << 60) +#define ALT1250_EVTBIT_RESTARTAPI (1ULL << 59) /* Number of sockets */ diff --git a/include/nuttx/wireless/lte/lte_ioctl.h b/include/nuttx/wireless/lte/lte_ioctl.h index 457d531d3f3..d350a02af6e 100644 --- a/include/nuttx/wireless/lte/lte_ioctl.h +++ b/include/nuttx/wireless/lte/lte_ioctl.h @@ -158,6 +158,7 @@ #define LTE_CMDID_SETCTXCB _CMDGRP_NOMDM(0x40) #define LTE_CMDID_COUNTWLOCK _CMDGRP_POWER(0x41) #define LTE_CMDID_REPEVT_DUMMY _CMDGRP_EVENT(0x42) +#define LTE_CMDID_RESTARTAPI _CMDGRP_NORMAL(0x43) #define LTE_CMDID_ACCEPT _CMDGRP_NORMAL(0x50) #define LTE_CMDID_BIND _CMDGRP_NORMAL(0x51)