From: Alexander Couzens Date: Tue, 13 Aug 2024 21:04:59 +0000 (+0200) Subject: uqmid: modem_fsm: implement re-transmission of GET IMSI calls X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=57871203a47d55f66511fb54e4063bcc3f72c6c0;p=project%2Fuqmi.git uqmid: modem_fsm: implement re-transmission of GET IMSI calls Signed-off-by: Alexander Couzens --- diff --git a/uqmid/modem_fsm.c b/uqmid/modem_fsm.c index 447e74e..b85f538 100644 --- a/uqmid/modem_fsm.c +++ b/uqmid/modem_fsm.c @@ -461,7 +461,7 @@ static void dms_get_imsi_cb(struct qmi_service *service, struct qmi_request *req osmo_fsm_inst_dispatch(modem->fi, MODEM_EV_RX_IMSI, NULL); } -static void modem_st_get_imsi_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +static void tx_get_imsi_req(struct osmo_fsm_inst *fi, uint32_t old_state) { struct modem *modem = fi->priv; struct qmi_service *uim = uqmi_service_find(modem->qmi, QMI_SERVICE_UIM); @@ -485,6 +485,12 @@ static void modem_st_get_imsi_onenter(struct osmo_fsm_inst *fi, uint32_t old_sta } } +static void modem_st_get_imsi_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + fi->N = 0; + tx_get_imsi_req(fi, old_state); +} + static void modem_st_get_imsi(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct modem *modem = fi->priv; @@ -1185,6 +1191,11 @@ static int modem_fsm_timer_cb(struct osmo_fsm_inst *fi) uqmi_service_send_simple(service, qmi_set_nas_get_serving_system_request, get_serving_system_cb, modem); osmo_timer_schedule(&fi->timer, NAS_SERVICE_POLL_TIMEOUT_S, 0); break; + case MODEM_ST_GET_IMSI: + fi->N++; + tx_get_imsi_req(fi, MODEM_ST_GET_IMSI); + osmo_timer_schedule(&fi->timer, NAS_SERVICE_POLL_TIMEOUT_S, 0); + break; case MODEM_ST_START_IFACE: switch (fi->T) { case N_RESEND: