diff options
-rw-r--r-- | drivers/isimodem/phonebook.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/isimodem/phonebook.c b/drivers/isimodem/phonebook.c index 922c35be..7d0fe2d9 100644 --- a/drivers/isimodem/phonebook.c +++ b/drivers/isimodem/phonebook.c @@ -330,6 +330,21 @@ static gboolean isi_phonebook_register(gpointer user) return FALSE; } +static void reachable_cb(GIsiClient *client, bool alive, void *opaque) +{ + struct ofono_phonebook *pb = opaque; + + if (alive == true) { + DBG("Resource 0x%02X, with version %03d.%03d reachable", + g_isi_client_resource(client), + g_isi_version_major(client), + g_isi_version_minor(client)); + g_idle_add(isi_phonebook_register, pb); + return; + } + DBG("Unable to bootsrap phonebook driver"); +} + static int isi_phonebook_probe(struct ofono_phonebook *pb, unsigned int vendor, void *user) { @@ -347,10 +362,8 @@ static int isi_phonebook_probe(struct ofono_phonebook *pb, unsigned int vendor, ofono_phonebook_set_data(pb, data); - /* FIXME: If this is running on a phone itself, phonebook - * initialization needs to be done here */ - - g_idle_add(isi_phonebook_register, pb); + if (!g_isi_verify(data->client, reachable_cb, pb)) + DBG("Unable to verify reachability"); return 0; } |