modem: hl7800: reconfig IP connection on startup

For low power operation, set the IP connection reconfig
flag when receiving a startup report.
This will ensure the GPRS connection is reconfigured
before any socket operations take place.

Signed-off-by: Ryan Erickson <ryan.erickson@lairdconnect.com>
This commit is contained in:
Ryan Erickson 2021-08-19 15:48:23 -05:00 committed by Christopher Friedt
commit 1c14a4b1ba

View file

@ -554,6 +554,9 @@ static int modem_boot_handler(char *reason);
static void mdm_vgpio_work_cb(struct k_work *item); static void mdm_vgpio_work_cb(struct k_work *item);
static void mdm_reset_work_callback(struct k_work *item); static void mdm_reset_work_callback(struct k_work *item);
static int write_apn(char *access_point_name); static int write_apn(char *access_point_name);
#ifdef CONFIG_MODEM_HL7800_LOW_POWER_MODE
static void mark_sockets_for_reconfig(void);
#endif
#ifdef CONFIG_MODEM_HL7800_FW_UPDATE #ifdef CONFIG_MODEM_HL7800_FW_UPDATE
static char *get_fota_state_string(enum mdm_hl7800_fota_state state); static char *get_fota_state_string(enum mdm_hl7800_fota_state state);
@ -2049,6 +2052,10 @@ static bool on_cmd_startup_report(struct net_buf **buf, uint16_t len)
PRINT_AWAKE_MSG; PRINT_AWAKE_MSG;
ictx.wait_for_KSUP = false; ictx.wait_for_KSUP = false;
ictx.mdm_startup_reporting_on = true; ictx.mdm_startup_reporting_on = true;
ictx.reconfig_IP_connection = true;
#ifdef CONFIG_MODEM_HL7800_LOW_POWER_MODE
mark_sockets_for_reconfig();
#endif
set_sleep_state(HL7800_SLEEP_STATE_AWAKE); set_sleep_state(HL7800_SLEEP_STATE_AWAKE);
k_sem_give(&ictx.mdm_awake); k_sem_give(&ictx.mdm_awake);
} }