Skip to content

Commit

Permalink
[ril] Register settings atom as soon as we have IMSI. Fixes JB#49714
Browse files Browse the repository at this point in the history
There's no need to wait for modem to get powered on. This is just a user
setting - if it can't be applied right away, it will be applied later at
appropriate time.
  • Loading branch information
monich committed Apr 23, 2020
1 parent 51bfb17 commit 1915aed
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions ofono/drivers/ril/ril_modem.c
Expand Up @@ -218,22 +218,21 @@ static void ril_modem_schedule_online_check(struct ril_modem_data *md)
static void ril_modem_update_radio_settings(struct ril_modem_data *md)
{
struct ril_modem *m = &md->modem;
if (m->radio->state == RADIO_STATE_ON && md->watch->imsi) {
struct ofono_radio_settings *rs = ril_modem_radio_settings(m);

if (md->watch->imsi) {
/* radio-settings.c assumes that IMSI is available */
if (!ril_modem_radio_settings(m)) {
if (!rs) {
DBG_(md, "initializing radio settings interface");
ofono_radio_settings_create(m->ofono, 0,
RILMODEM_DRIVER, md);
}
} else if (rs) {
DBG_(md, "removing radio settings interface");
ofono_radio_settings_remove(rs);
} else {
/* ofono core may remove radio settings atom internally */
struct ofono_radio_settings *rs = ril_modem_radio_settings(m);
if (rs) {
DBG_(md, "removing radio settings interface");
ofono_radio_settings_remove(rs);
} else {
DBG_(md, "radio settings interface is already gone");
}
DBG_(md, "radio settings interface is already gone");
}
}

Expand All @@ -242,7 +241,6 @@ static void ril_modem_radio_state_cb(struct ril_radio *radio, void *data)
struct ril_modem_data *md = data;

GASSERT(md->modem.radio == radio);
ril_modem_update_radio_settings(md);
ril_modem_update_online_state(md);
}

Expand Down

0 comments on commit 1915aed

Please sign in to comment.