Add vendor flag capability to ssn
authorDenis Kenzior <denis.kenzior@intel.com>
Tue, 1 Sep 2009 22:53:31 +0000 (17:53 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Tue, 1 Sep 2009 23:14:58 +0000 (18:14 -0500)
drivers/atmodem/ssn.c
drivers/isimodem/isimodem.c
drivers/isimodem/ssn.c
include/ssn.h
plugins/generic_at.c
src/ssn.c

index c8f23b6..7c7e86e 100644 (file)
@@ -111,8 +111,11 @@ static gboolean at_ssn_register(gpointer user)
        return FALSE;
 }
 
-static int at_ssn_probe(struct ofono_ssn *ssn)
+static int at_ssn_probe(struct ofono_ssn *ssn, int vendor, void *data)
 {
+       GAtChat *chat = data;
+
+       ofono_ssn_set_data(ssn, chat);
        g_idle_add(at_ssn_register, ssn);
 
        return 0;
index dc641dd..77c1a89 100644 (file)
@@ -155,7 +155,7 @@ static int isi_modem_populate(struct ofono_modem *modem)
        ofono_voicecall_create(isi->modem, "isi", isi->idx);
        ofono_sms_create(isi->modem, 0, "isi", isi->idx);
        ofono_sim_create(isi->modem, 0, "isi", isi->idx);
-       ofono_ssn_create(isi->modem, "isi", isi->idx);
+       ofono_ssn_create(isi->modem, 0, "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, 0, "isi", isi->idx);
index 4225ffc..a5539fb 100644 (file)
@@ -48,9 +48,9 @@ struct ssn_data {
        struct isi_version version;
 };
 
-static int isi_ssn_probe(struct ofono_ssn *ssn)
+static int isi_ssn_probe(struct ofono_ssn *ssn, int vendor, void *user)
 {
-       GIsiModem *idx = ofono_ssn_get_data(ssn);
+       GIsiModem *idx = user;
        struct ssn_data *data = g_try_new0(struct ssn_data, 1);
 
        if (!data)
index e808bec..b1e51bf 100644 (file)
@@ -32,7 +32,7 @@ struct ofono_ssn;
 
 struct ofono_ssn_driver {
        const char *name;
-       int (*probe)(struct ofono_ssn *ssn);
+       int (*probe)(struct ofono_ssn *ssn, int vendor, void *data);
        int (*remove)(struct ofono_ssn *ssn);
 };
 
@@ -44,7 +44,7 @@ void ofono_ssn_cssu_notify(struct ofono_ssn *ssn, int code, int index,
 int ofono_ssn_driver_register(const struct ofono_ssn_driver *d);
 void ofono_ssn_driver_unregister(const struct ofono_ssn_driver *d);
 
-struct ofono_ssn *ofono_ssn_create(struct ofono_modem *modem,
+struct ofono_ssn *ofono_ssn_create(struct ofono_modem *modem, int vendor,
                                        const char *driver, void *data);
 
 void ofono_ssn_register(struct ofono_ssn *ssn);
index 0900e3c..1ac35ff 100644 (file)
@@ -518,7 +518,7 @@ static int generic_at_populate(struct ofono_modem *modem)
        ofono_voicecall_create(modem, "generic_at", chat);
        ofono_call_meter_create(modem, 0, "generic_at", chat);
        ofono_call_barring_create(modem, 0, "generic_at", chat);
-       ofono_ssn_create(modem, "generic_at", chat);
+       ofono_ssn_create(modem, 0, "generic_at", chat);
        ofono_sms_create(modem, 0, "generic_at", chat);
        ofono_phonebook_create(modem, 0, "generic_at", chat);
 
index dc5b375..11237e3 100644 (file)
--- a/src/ssn.c
+++ b/src/ssn.c
@@ -248,6 +248,7 @@ static void ssn_remove(struct ofono_atom *atom)
 }
 
 struct ofono_ssn *ofono_ssn_create(struct ofono_modem *modem,
+                                       int vendor,
                                        const char *driver,
                                        void *data)
 {
@@ -262,7 +263,6 @@ struct ofono_ssn *ofono_ssn_create(struct ofono_modem *modem,
        if (ssn == NULL)
                return NULL;
 
-       ssn->driver_data = data;
        ssn->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_SSN,
                                                ssn_remove, ssn);
 
@@ -272,7 +272,7 @@ struct ofono_ssn *ofono_ssn_create(struct ofono_modem *modem,
                if (g_strcmp0(drv->name, driver))
                        continue;
 
-               if (drv->probe(ssn) < 0)
+               if (drv->probe(ssn, vendor, data) < 0)
                        continue;
 
                ssn->driver = drv;