diff --git a/lte/alt1250/alt1250_atcmd.c b/lte/alt1250/alt1250_atcmd.c index 33b280dba4..5eba45d6a7 100644 --- a/lte/alt1250/alt1250_atcmd.c +++ b/lte/alt1250/alt1250_atcmd.c @@ -245,7 +245,7 @@ static int send_internal_at_command(FAR struct alt1250_s *dev, err_alt1250("Internal ATCMD : %s\n", dev->tx_buff); - ret = altdevice_send_command(dev->altfd, container, usock_result); + ret = altdevice_send_command(dev, dev->altfd, container, usock_result); if (ret == REP_NO_ACK) { /* In case of no error */ diff --git a/lte/alt1250/alt1250_devif.c b/lte/alt1250/alt1250_devif.c index 374af6214f..d58f3c75ff 100644 --- a/lte/alt1250/alt1250_devif.c +++ b/lte/alt1250/alt1250_devif.c @@ -92,10 +92,20 @@ FAR struct alt_container_s *altdevice_exchange_selcontainer(int fd, * name: altdevice_send_command ****************************************************************************/ -int altdevice_send_command(int fd, FAR struct alt_container_s *container, +int altdevice_send_command(FAR struct alt1250_s *dev, int fd, + FAR struct alt_container_s *container, FAR int32_t *usock_res) { int ret; + +#ifdef CONFIG_LTE_ALT1250_ENABLE_HIBERNATION_MODE + if (dev->is_resuming) + { + *usock_res = -EOPNOTSUPP; + return REP_SEND_ACK; + } +#endif + ret = ioctl_wrapper(fd, ALT1250_IOC_SEND, (unsigned long)container); if (ret < 0) { diff --git a/lte/alt1250/alt1250_devif.h b/lte/alt1250/alt1250_devif.h index a1a3bb19af..5a01b647df 100644 --- a/lte/alt1250/alt1250_devif.h +++ b/lte/alt1250/alt1250_devif.h @@ -28,6 +28,7 @@ #include #include +#include "alt1250_daemon.h" #define DEV_ALT1250 "/dev/alt1250" @@ -39,7 +40,8 @@ int init_alt1250_device(void); void finalize_alt1250_device(int fd); FAR struct alt_container_s *altdevice_exchange_selcontainer(int fd, FAR struct alt_container_s *container); -int altdevice_send_command(int fd, FAR struct alt_container_s *container, +int altdevice_send_command(FAR struct alt1250_s *dev, int fd, + FAR struct alt_container_s *container, FAR int32_t *usock_res); int altdevice_powercontrol(int fd, uint32_t cmd); int altdevice_seteventbuff(int fd, FAR struct alt_evtbuffer_s *buffers); diff --git a/lte/alt1250/alt1250_reset_seq.c b/lte/alt1250/alt1250_reset_seq.c index e7eba13da8..31192edafc 100644 --- a/lte/alt1250/alt1250_reset_seq.c +++ b/lte/alt1250/alt1250_reset_seq.c @@ -116,7 +116,7 @@ static int send_getversion_onreset(FAR struct alt1250_s *dev, set_container_postproc(container, postproc_ponresetseq, (unsigned long)&reset_arg); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/alt1250_select.c b/lte/alt1250/alt1250_select.c index ecac3771a9..e608e3532c 100644 --- a/lte/alt1250/alt1250_select.c +++ b/lte/alt1250/alt1250_select.c @@ -119,7 +119,7 @@ static int send_select_command(FAR struct alt1250_s *dev, set_container_ids(&container, 0, LTE_CMDID_SELECT); set_container_argument(&container, in, nitems(in)); - return altdevice_send_command(dev->altfd, &container, &usock_result); + return altdevice_send_command(dev, dev->altfd, &container, &usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_accepthdlr.c b/lte/alt1250/usock_handlers/alt1250_accepthdlr.c index f9565be0bc..9b2bf1d526 100644 --- a/lte/alt1250/usock_handlers/alt1250_accepthdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_accepthdlr.c @@ -90,7 +90,7 @@ static int send_close_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_accepterr, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -188,7 +188,7 @@ static int send_accept_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_accept, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_bindhdlr.c b/lte/alt1250/usock_handlers/alt1250_bindhdlr.c index 527cf93618..b79ea10cb6 100644 --- a/lte/alt1250/usock_handlers/alt1250_bindhdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_bindhdlr.c @@ -65,7 +65,7 @@ static int send_bind_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_sockcommon, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_closehdlr.c b/lte/alt1250/usock_handlers/alt1250_closehdlr.c index 0b61c2b150..c2c25dd1a4 100644 --- a/lte/alt1250/usock_handlers/alt1250_closehdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_closehdlr.c @@ -63,7 +63,7 @@ static int send_close_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_sockcommon, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_connecthdlr.c b/lte/alt1250/usock_handlers/alt1250_connecthdlr.c index 4e70d316cd..7df629b846 100644 --- a/lte/alt1250/usock_handlers/alt1250_connecthdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_connecthdlr.c @@ -175,7 +175,7 @@ static int send_connect_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_connect, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_getsocknamehdlr.c b/lte/alt1250/usock_handlers/alt1250_getsocknamehdlr.c index b7539847d6..b6df948874 100644 --- a/lte/alt1250/usock_handlers/alt1250_getsocknamehdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_getsocknamehdlr.c @@ -114,7 +114,7 @@ static int send_getsockname_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_getsockname, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_getsockopthdlr.c b/lte/alt1250/usock_handlers/alt1250_getsockopthdlr.c index 673d54d176..28174fce83 100644 --- a/lte/alt1250/usock_handlers/alt1250_getsockopthdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_getsockopthdlr.c @@ -146,7 +146,7 @@ int send_getsockopt_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, func, priv); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_ioctl_event.c b/lte/alt1250/usock_handlers/alt1250_ioctl_event.c index aeeb61903f..913f456d4e 100644 --- a/lte/alt1250/usock_handlers/alt1250_ioctl_event.c +++ b/lte/alt1250/usock_handlers/alt1250_ioctl_event.c @@ -53,7 +53,7 @@ static int send_eventnotice_command(FAR struct alt1250_s *dev, set_container_response(container, ltecmd->outparam, ltecmd->outparamlen); set_container_postproc(container, NULL, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_ioctl_fwupdate.c b/lte/alt1250/usock_handlers/alt1250_ioctl_fwupdate.c index 291c4ec6b4..7fa67e2987 100644 --- a/lte/alt1250/usock_handlers/alt1250_ioctl_fwupdate.c +++ b/lte/alt1250/usock_handlers/alt1250_ioctl_fwupdate.c @@ -445,7 +445,7 @@ int usockreq_ioctl_fwupdate(FAR struct alt1250_s *dev, ltecmd->outparamlen); set_container_postproc(container, postproc_hdlr, postproc_priv); - ret = altdevice_send_command(dev->altfd, container, usock_result); + ret = altdevice_send_command(dev, dev->altfd, container, usock_result); if (IS_NEED_CONTAINER_FREE(ret)) { diff --git a/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c b/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c index 666f1cd959..5e327043af 100644 --- a/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c +++ b/lte/alt1250/usock_handlers/alt1250_ioctl_ifreq.c @@ -101,7 +101,7 @@ static int send_actpdn_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_actpdn, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -124,7 +124,7 @@ static int send_radio_command(FAR struct alt1250_s *dev, set_container_postproc(container, on ? postproc_radioon : postproc_radiooff, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -369,7 +369,7 @@ int send_reportnet_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, func, priv); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_ioctl_normal.c b/lte/alt1250/usock_handlers/alt1250_ioctl_normal.c index 7eaed8757a..8c116833ae 100644 --- a/lte/alt1250/usock_handlers/alt1250_ioctl_normal.c +++ b/lte/alt1250/usock_handlers/alt1250_ioctl_normal.c @@ -201,7 +201,7 @@ int send_lapi_command(FAR struct alt1250_s *dev, set_container_response(container, ltecmd->outparam, ltecmd->outparamlen); set_container_postproc(container, hdlr, priv); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } #ifdef CONFIG_LTE_ALT1250_ENABLE_HIBERNATION_MODE @@ -238,7 +238,7 @@ static int send_getversion_command(FAR struct alt1250_s *dev, set_container_response(container, alt1250_getevtarg(LTE_CMDID_GETVER), 2); set_container_postproc(container, postproc_fwgetversion, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -257,7 +257,7 @@ static int send_register_command(FAR struct alt1250_s *dev, set_container_response(container, ltecmd->outparam, ltecmd->outparamlen); set_container_postproc(container, postproc_setreport, index); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -355,6 +355,13 @@ static int lte_context_resume(FAR struct alt1250_s *dev, goto error; } + /* After the retry mode is disabled, the ALT1250 daemon can receive + * commands from the ALT1250 and the ALT1250 daemon is ready for normal + * operation, so the "is_resuming" flag is disabled. + */ + + dev->is_resuming = false; + /* If the ALT1250 is not powered on, return Resume as failure. */ power = altdevice_powercontrol(dev->altfd, LTE_CMDID_GET_POWER_STAT); @@ -376,10 +383,6 @@ static int lte_context_resume(FAR struct alt1250_s *dev, dbg_alt1250("Failed to send resume commands.\n"); } - /* Resume phase is over */ - - dev->is_resuming = false; - return ret; error: diff --git a/lte/alt1250/usock_handlers/alt1250_listenhdlr.c b/lte/alt1250/usock_handlers/alt1250_listenhdlr.c index 1475008d5c..a3c3bed263 100644 --- a/lte/alt1250/usock_handlers/alt1250_listenhdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_listenhdlr.c @@ -65,7 +65,7 @@ static int send_listen_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_sockcommon, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_recvfromhdlr.c b/lte/alt1250/usock_handlers/alt1250_recvfromhdlr.c index 460287ae88..906a0b9bb8 100644 --- a/lte/alt1250/usock_handlers/alt1250_recvfromhdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_recvfromhdlr.c @@ -142,7 +142,7 @@ static int send_recvfrom_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx++); set_container_postproc(container, postproc_recvfrom, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_sendtohdlr.c b/lte/alt1250/usock_handlers/alt1250_sendtohdlr.c index 9bd43b8a2e..e47b26d9f5 100644 --- a/lte/alt1250/usock_handlers/alt1250_sendtohdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_sendtohdlr.c @@ -71,7 +71,7 @@ static int send_sendto_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_sockcommon, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_setsockopthdlr.c b/lte/alt1250/usock_handlers/alt1250_setsockopthdlr.c index 72d0337084..f4c5106b11 100644 --- a/lte/alt1250/usock_handlers/alt1250_setsockopthdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_setsockopthdlr.c @@ -67,7 +67,7 @@ static int send_setsockopt_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_sockcommon, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_shutdownhdlr.c b/lte/alt1250/usock_handlers/alt1250_shutdownhdlr.c index 5a3058b950..0c8a9765b0 100644 --- a/lte/alt1250/usock_handlers/alt1250_shutdownhdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_shutdownhdlr.c @@ -64,7 +64,7 @@ static int send_shutdown_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_sockcommon, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_sms.c b/lte/alt1250/usock_handlers/alt1250_sms.c index 1199676178..610669cfc5 100644 --- a/lte/alt1250/usock_handlers/alt1250_sms.c +++ b/lte/alt1250/usock_handlers/alt1250_sms.c @@ -172,7 +172,7 @@ static int send_smsinit_command(FAR struct alt1250_s *dev, set_container_response(container, &dummy_output, 1); set_container_postproc(container, func, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -197,7 +197,7 @@ static int send_smsfin_command(FAR struct alt1250_s *dev, set_container_response(container, &dummy_output, 1); set_container_postproc(container, func, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -239,7 +239,7 @@ static int send_smssend_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_smssend, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -270,7 +270,7 @@ static int send_smsdelete_command(FAR struct alt1250_s *dev, set_container_response(container, &dummy_output, 1); set_container_postproc(container, postproc_smsdelete, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -286,7 +286,7 @@ static int send_smsreportrecv_command(FAR struct alt1250_s *dev, set_container_ids(&container, 0, LTE_CMDID_SMS_REPORT_RECV); - return altdevice_send_command(dev->altfd, &container, usock_result); + return altdevice_send_command(dev, dev->altfd, &container, usock_result); } /**************************************************************************** diff --git a/lte/alt1250/usock_handlers/alt1250_sockethdlr.c b/lte/alt1250/usock_handlers/alt1250_sockethdlr.c index 4eb3743901..8d63218795 100644 --- a/lte/alt1250/usock_handlers/alt1250_sockethdlr.c +++ b/lte/alt1250/usock_handlers/alt1250_sockethdlr.c @@ -94,7 +94,7 @@ static int send_fctl_command(FAR struct alt1250_s *dev, set_container_postproc(container, cmd == ALTCOM_SETFL ? postproc_setfl : cmd == ALTCOM_GETFL ? postproc_getfl : NULL, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /**************************************************************************** @@ -331,7 +331,7 @@ static int send_socket_command(FAR struct alt1250_s *dev, set_container_response(container, USOCKET_REP_RESPONSE(usock), idx); set_container_postproc(container, postproc_socket, 0); - return altdevice_send_command(dev->altfd, container, usock_result); + return altdevice_send_command(dev, dev->altfd, container, usock_result); } /****************************************************************************