diff --git a/drivers/atmodem/phonebook.c b/drivers/atmodem/phonebook.c index fd50a3c2..f4d3ef1a 100644 --- a/drivers/atmodem/phonebook.c +++ b/drivers/atmodem/phonebook.c @@ -518,9 +518,10 @@ static void at_list_charsets(struct ofono_phonebook *pb) phonebook_not_supported(pb); } -static int at_phonebook_probe(struct ofono_phonebook *pb) +static int at_phonebook_probe(struct ofono_phonebook *pb, int vendor, + void *data) { - GAtChat *chat = ofono_phonebook_get_data(pb); + GAtChat *chat = data; struct pb_data *pbd; pbd = g_new0(struct pb_data, 1); diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c index f8cde0c5..016b17ce 100644 --- a/drivers/isimodem/isimodem.c +++ b/drivers/isimodem/isimodem.c @@ -150,7 +150,7 @@ static int isi_modem_populate(struct ofono_modem *modem) struct isi_data *isi = ofono_modem_get_data(modem); ofono_devinfo_create(isi->modem, 0, "isi", isi->idx); - ofono_phonebook_create(isi->modem, "isi", isi->idx); + ofono_phonebook_create(isi->modem, 0, "isi", isi->idx); ofono_netreg_create(isi->modem, 0, "isi", isi->idx); ofono_voicecall_create(isi->modem, "isi", isi->idx); ofono_sms_create(isi->modem, "isi", isi->idx); diff --git a/drivers/isimodem/phonebook.c b/drivers/isimodem/phonebook.c index 7c544741..f683638c 100644 --- a/drivers/isimodem/phonebook.c +++ b/drivers/isimodem/phonebook.c @@ -376,9 +376,10 @@ static gboolean isi_phonebook_register(gpointer user) return FALSE; } -static int isi_phonebook_probe(struct ofono_phonebook *pb) +static int isi_phonebook_probe(struct ofono_phonebook *pb, int vendor, + void *user) { - GIsiModem *idx = ofono_phonebook_get_data(pb); + GIsiModem *idx = user; struct pb_data *data = g_try_new0(struct pb_data, 1); if (!data) diff --git a/include/phonebook.h b/include/phonebook.h index a04747de..1fc154d2 100644 --- a/include/phonebook.h +++ b/include/phonebook.h @@ -38,7 +38,7 @@ typedef void (*ofono_phonebook_cb_t)(const struct ofono_error *error, */ struct ofono_phonebook_driver { const char *name; - int (*probe)(struct ofono_phonebook *pb); + int (*probe)(struct ofono_phonebook *pb, int vendor, void *data); int (*remove)(struct ofono_phonebook *pb); void (*export_entries)(struct ofono_phonebook *pb, const char *storage, ofono_phonebook_cb_t cb, void *data); @@ -56,6 +56,7 @@ int ofono_phonebook_driver_register(const struct ofono_phonebook_driver *d); void ofono_phonebook_driver_unregister(const struct ofono_phonebook_driver *d); struct ofono_phonebook *ofono_phonebook_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data); diff --git a/plugins/generic_at.c b/plugins/generic_at.c index 4d7b3007..e69717af 100644 --- a/plugins/generic_at.c +++ b/plugins/generic_at.c @@ -520,7 +520,7 @@ static int generic_at_populate(struct ofono_modem *modem) ofono_call_barring_create(modem, 0, "generic_at", chat); ofono_ssn_create(modem, "generic_at", chat); ofono_sms_create(modem, "generic_at", chat); - ofono_phonebook_create(modem, "generic_at", chat); + ofono_phonebook_create(modem, 0, "generic_at", chat); mw = ofono_message_waiting_create(modem); if (mw) diff --git a/src/phonebook.c b/src/phonebook.c index 0dfd2819..eb9e63f8 100644 --- a/src/phonebook.c +++ b/src/phonebook.c @@ -537,6 +537,7 @@ static void phonebook_remove(struct ofono_atom *atom) } struct ofono_phonebook *ofono_phonebook_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data) { struct ofono_phonebook *pb; @@ -551,7 +552,6 @@ struct ofono_phonebook *ofono_phonebook_create(struct ofono_modem *modem, return NULL; pb->vcards = g_string_new(NULL); - pb->driver_data = data; pb->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_PHONEBOOK, phonebook_remove, pb); @@ -561,7 +561,7 @@ struct ofono_phonebook *ofono_phonebook_create(struct ofono_modem *modem, if (g_strcmp0(drv->name, driver)) continue; - if (drv->probe(pb) < 0) + if (drv->probe(pb, vendor, data) < 0) continue; pb->driver = drv;