diff options
-rw-r--r-- | drivers/atmodem/devinfo.c | 8 | ||||
-rw-r--r-- | drivers/isimodem/devinfo.c | 4 | ||||
-rw-r--r-- | drivers/isimodem/isimodem.c | 2 | ||||
-rw-r--r-- | include/devinfo.h | 3 | ||||
-rw-r--r-- | plugins/generic_at.c | 2 | ||||
-rw-r--r-- | src/modem.c | 4 |
6 files changed, 13 insertions, 10 deletions
diff --git a/drivers/atmodem/devinfo.c b/drivers/atmodem/devinfo.c index df43bc4d..8e3123af 100644 --- a/drivers/atmodem/devinfo.c +++ b/drivers/atmodem/devinfo.c @@ -189,10 +189,12 @@ static gboolean at_devinfo_register(gpointer user_data) return FALSE; } -static int at_devinfo_probe(struct ofono_devinfo *info) +static int at_devinfo_probe(struct ofono_devinfo *info, int vendor, void *data) { - /* There are no useful initializations we can do */ - g_timeout_add(0, at_devinfo_register, info); + GAtChat *chat = data; + + ofono_devinfo_set_data(info, chat); + g_idle_add(at_devinfo_register, info); return 0; } diff --git a/drivers/isimodem/devinfo.c b/drivers/isimodem/devinfo.c index 6c479bb4..7e503780 100644 --- a/drivers/isimodem/devinfo.c +++ b/drivers/isimodem/devinfo.c @@ -370,9 +370,9 @@ static gboolean isi_devinfo_register(gpointer user) return FALSE; } -static int isi_devinfo_probe(struct ofono_devinfo *info) +static int isi_devinfo_probe(struct ofono_devinfo *info, int vendor, void *user) { - GIsiModem *idx = ofono_devinfo_get_data(info); + GIsiModem *idx = user; struct devinfo_data *data = g_try_new0(struct devinfo_data, 1); if (!data) diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c index c97eaee5..bac6167c 100644 --- a/drivers/isimodem/isimodem.c +++ b/drivers/isimodem/isimodem.c @@ -149,7 +149,7 @@ static int isi_modem_populate(struct ofono_modem *modem) { struct isi_data *isi = ofono_modem_get_data(modem); - ofono_devinfo_create(isi->modem, "isi", isi->idx); + ofono_devinfo_create(isi->modem, 0, "isi", isi->idx); ofono_phonebook_create(isi->modem, "isi", isi->idx); ofono_netreg_create(isi->modem, "isi", isi->idx); ofono_voicecall_create(isi->modem, "isi", isi->idx); diff --git a/include/devinfo.h b/include/devinfo.h index 465aa05a..5bb7ccc3 100644 --- a/include/devinfo.h +++ b/include/devinfo.h @@ -35,7 +35,7 @@ typedef void (*ofono_devinfo_query_cb_t)(const struct ofono_error *error, struct ofono_devinfo_driver { const char *name; - int (*probe)(struct ofono_devinfo *info); + int (*probe)(struct ofono_devinfo *info, int vendor, void *data); int (*remove)(struct ofono_devinfo *info); void (*query_manufacturer)(struct ofono_devinfo *info, ofono_devinfo_query_cb_t cb, void *data); @@ -51,6 +51,7 @@ int ofono_devinfo_driver_register(const struct ofono_devinfo_driver *d); void ofono_devinfo_driver_unregister(const struct ofono_devinfo_driver *d); struct ofono_devinfo *ofono_devinfo_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data); void ofono_devinfo_register(struct ofono_devinfo *info); diff --git a/plugins/generic_at.c b/plugins/generic_at.c index 5d506e08..94b66626 100644 --- a/plugins/generic_at.c +++ b/plugins/generic_at.c @@ -509,7 +509,7 @@ static int generic_at_populate(struct ofono_modem *modem) GAtChat *chat = d->chat; struct ofono_message_waiting *mw; - ofono_devinfo_create(modem, "generic_at", chat); + ofono_devinfo_create(modem, 0, "generic_at", chat); ofono_ussd_create(modem, "generic_at", chat); ofono_sim_create(modem, "generic_at", chat); ofono_call_forwarding_create(modem, 0, "generic_at", chat); diff --git a/src/modem.c b/src/modem.c index 98f37262..d1755e86 100644 --- a/src/modem.c +++ b/src/modem.c @@ -824,6 +824,7 @@ static void devinfo_remove(struct ofono_atom *atom) } struct ofono_devinfo *ofono_devinfo_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data) { @@ -834,7 +835,6 @@ struct ofono_devinfo *ofono_devinfo_create(struct ofono_modem *modem, info->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_DEVINFO, devinfo_remove, info); - info->driver_data = data; for (l = g_devinfo_drivers; l; l = l->next) { const struct ofono_devinfo_driver *drv = l->data; @@ -842,7 +842,7 @@ struct ofono_devinfo *ofono_devinfo_create(struct ofono_modem *modem, if (g_strcmp0(drv->name, driver)) continue; - if (drv->probe(info) < 0) + if (drv->probe(info, vendor, data) < 0) continue; info->driver = drv; |