summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/atmodem/devinfo.c8
-rw-r--r--drivers/isimodem/devinfo.c4
-rw-r--r--drivers/isimodem/isimodem.c2
-rw-r--r--include/devinfo.h3
-rw-r--r--plugins/generic_at.c2
-rw-r--r--src/modem.c4
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;