summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/phonebook.c
diff options
context:
space:
mode:
authorAki Niemi <aki.niemi@nokia.com>2009-09-16 13:42:45 +0300
committerAki Niemi <aki.niemi@nokia.com>2009-09-16 23:37:23 +0300
commit866c394882bdf64fd0fbefbf59c4eaf52f3d71fc (patch)
tree58adce7c683a0996666645102fc0fb603690f0f7 /drivers/isimodem/phonebook.c
parent0b28b0567822875b8d94c9fa373a647d9792d791 (diff)
downloadofono-866c394882bdf64fd0fbefbf59c4eaf52f3d71fc.tar.bz2
Add proper bootstrapping to phonebook driver
Diffstat (limited to 'drivers/isimodem/phonebook.c')
-rw-r--r--drivers/isimodem/phonebook.c21
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;
}