summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/atmodem/call-settings.c6
-rw-r--r--drivers/isimodem/call-settings.c10
-rw-r--r--drivers/isimodem/isimodem.c2
-rw-r--r--include/call-settings.h3
-rw-r--r--plugins/generic_at.c2
-rw-r--r--src/call-settings.c4
6 files changed, 18 insertions, 9 deletions
diff --git a/drivers/atmodem/call-settings.c b/drivers/atmodem/call-settings.c
index 8c0f1dff..d540ec16 100644
--- a/drivers/atmodem/call-settings.c
+++ b/drivers/atmodem/call-settings.c
@@ -365,8 +365,12 @@ static gboolean at_call_settings_register(gpointer user)
return FALSE;
}
-static int at_call_settings_probe(struct ofono_call_settings *cs)
+static int at_call_settings_probe(struct ofono_call_settings *cs, int vendor,
+ void *data)
{
+ GAtChat *chat = data;
+
+ ofono_call_settings_set_data(cs, chat);
g_idle_add(at_call_settings_register, cs);
return 0;
diff --git a/drivers/isimodem/call-settings.c b/drivers/isimodem/call-settings.c
index 99129618..f564f0e8 100644
--- a/drivers/isimodem/call-settings.c
+++ b/drivers/isimodem/call-settings.c
@@ -83,15 +83,19 @@ static void isi_cw_set(struct ofono_call_settings *cs, int mode, int cls,
{
}
-static int isi_call_settings_probe(struct ofono_call_settings *cs)
+static int isi_call_settings_probe(struct ofono_call_settings *cs, int vendor,
+ void *user)
{
- GIsiModem *idx = ofono_call_settings_get_data(cs);
- struct call_settings_data *data = g_try_new0(struct call_settings_data, 1);
+ GIsiModem *idx = user;
+ struct call_settings_data *data;
+
+ data = g_try_new0(struct call_settings_data, 1);
if (!data)
return -ENOMEM;
data->client = g_isi_client_create(idx, PN_SS);
+
if (!data->client)
return -ENOMEM;
diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c
index becda1f5..c97eaee5 100644
--- a/drivers/isimodem/isimodem.c
+++ b/drivers/isimodem/isimodem.c
@@ -158,7 +158,7 @@ static int isi_modem_populate(struct ofono_modem *modem)
ofono_ssn_create(isi->modem, "isi", isi->idx);
ofono_ussd_create(isi->modem, "isi", isi->idx);
ofono_call_forwarding_create(isi->modem, 0, "isi", isi->idx);
- ofono_call_settings_create(isi->modem, "isi", isi->idx);
+ ofono_call_settings_create(isi->modem, 0, "isi", isi->idx);
ofono_call_barring_create(isi->modem, 0, "isi", isi->idx);
ofono_call_meter_create(isi->modem, 0, "isi", isi->idx);
diff --git a/include/call-settings.h b/include/call-settings.h
index 84461c32..5aca0c43 100644
--- a/include/call-settings.h
+++ b/include/call-settings.h
@@ -41,7 +41,7 @@ typedef void (*ofono_call_settings_clir_cb_t)(const struct ofono_error *error,
struct ofono_call_settings_driver {
const char *name;
- int (*probe)(struct ofono_call_settings *cs);
+ int (*probe)(struct ofono_call_settings *cs, int vendor, void *data);
int (*remove)(struct ofono_call_settings *cs);
void (*clip_query)(struct ofono_call_settings *cs,
ofono_call_settings_status_cb_t cb, void *data);
@@ -63,6 +63,7 @@ int ofono_call_settings_driver_register(const struct ofono_call_settings_driver
void ofono_call_settings_driver_unregister(const struct ofono_call_settings_driver *d);
struct ofono_call_settings *ofono_call_settings_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 a8dd8dd0..5d506e08 100644
--- a/plugins/generic_at.c
+++ b/plugins/generic_at.c
@@ -513,7 +513,7 @@ static int generic_at_populate(struct ofono_modem *modem)
ofono_ussd_create(modem, "generic_at", chat);
ofono_sim_create(modem, "generic_at", chat);
ofono_call_forwarding_create(modem, 0, "generic_at", chat);
- ofono_call_settings_create(modem, "generic_at", chat);
+ ofono_call_settings_create(modem, 0, "generic_at", chat);
ofono_netreg_create(modem, "generic_at", chat);
ofono_voicecall_create(modem, "generic_at", chat);
ofono_call_meter_create(modem, 0, "generic_at", chat);
diff --git a/src/call-settings.c b/src/call-settings.c
index 33aefe99..06b3de8c 100644
--- a/src/call-settings.c
+++ b/src/call-settings.c
@@ -1229,6 +1229,7 @@ static void call_settings_remove(struct ofono_atom *atom)
}
struct ofono_call_settings *ofono_call_settings_create(struct ofono_modem *modem,
+ int vendor,
const char *driver,
void *data)
{
@@ -1248,7 +1249,6 @@ struct ofono_call_settings *ofono_call_settings_create(struct ofono_modem *modem
cs->clir = 2;
cs->colp = 2;
cs->colr = 2;
- cs->driver_data = data;
cs->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_CALL_SETTINGS,
call_settings_remove, cs);
@@ -1258,7 +1258,7 @@ struct ofono_call_settings *ofono_call_settings_create(struct ofono_modem *modem
if (g_strcmp0(drv->name, driver))
continue;
- if (drv->probe(cs) < 0)
+ if (drv->probe(cs, vendor, data) < 0)
continue;
cs->driver = drv;