summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-08-21 19:12:27 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-08-21 19:25:51 -0500
commitb3e6dd8e5128d303d622148e49aed6da113c9bc0 (patch)
tree65aeed85de409d39c23bfcbbbf9e35c40c73b4ef
parent038251eac50dd7ae2d6b640890bbe948664910d9 (diff)
downloadofono-b3e6dd8e5128d303d622148e49aed6da113c9bc0.tar.bz2
Update the isi driver to the new modem driver api
-rw-r--r--drivers/isimodem/isimodem.c58
1 files changed, 52 insertions, 6 deletions
diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c
index 8a6d4786..cffcc29a 100644
--- a/drivers/isimodem/isimodem.c
+++ b/drivers/isimodem/isimodem.c
@@ -85,6 +85,7 @@ static void netlink_status_cb(bool up, uint8_t addr, GIsiModem *idx,
if (up) {
+ char node[128];
if (isi) {
DBG("Modem already registered: (0x%02x)",
@@ -96,8 +97,10 @@ static void netlink_status_cb(bool up, uint8_t addr, GIsiModem *idx,
if (!isi)
return;
+ sprintf(node, "isi%p", idx);
+
isi->idx = idx;
- isi->modem = ofono_modem_register();
+ isi->modem = ofono_modem_create(node, "isi");
if (!isi->modem) {
g_free(isi);
@@ -106,9 +109,9 @@ static void netlink_status_cb(bool up, uint8_t addr, GIsiModem *idx,
g_modems = g_slist_prepend(g_modems, isi);
- ofono_devinfo_create(isi->modem, "isi", idx);
- ofono_phonebook_create(isi->modem, "isi", idx);
-
+ ofono_modem_set_data(isi->modem, isi);
+ ofono_modem_set_powered(isi->modem, TRUE);
+ ofono_modem_register(isi->modem);
} else {
if (!isi) {
@@ -117,12 +120,51 @@ static void netlink_status_cb(bool up, uint8_t addr, GIsiModem *idx,
return;
}
- ofono_modem_unregister(isi->modem);
+ ofono_modem_remove(isi->modem);
g_modems = g_slist_remove(g_modems, isi);
}
}
+static int isi_modem_probe(struct ofono_modem *modem)
+{
+ return 0;
+}
+
+static int isi_modem_remove(struct ofono_modem *modem)
+{
+ return 0;
+}
+
+static int isi_modem_enable(struct ofono_modem *modem)
+{
+ return 0;
+}
+
+static int isi_modem_disable(struct ofono_modem *modem)
+{
+ return 0;
+}
+
+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_phonebook_create(isi->modem, "isi", isi->idx);
+
+ return 0;
+}
+
+static struct ofono_modem_driver driver = {
+ .name = "isi",
+ .probe = isi_modem_probe,
+ .remove = isi_modem_remove,
+ .enable = isi_modem_enable,
+ .disable = isi_modem_disable,
+ .populate = isi_modem_populate,
+};
+
static int isimodem_init(void)
{
link = g_pn_netlink_start(netlink_status_cb, NULL);
@@ -130,6 +172,8 @@ static int isimodem_init(void)
isi_devinfo_init();
isi_phonebook_init();
+ ofono_modem_driver_register(&driver);
+
return 0;
}
@@ -140,7 +184,7 @@ static void isimodem_exit(void)
for (m = g_modems; m; m = m->next) {
struct isi_data *isi = m->data;
- ofono_modem_unregister(isi->modem);
+ ofono_modem_remove(isi->modem);
g_free(isi);
}
@@ -152,6 +196,8 @@ static void isimodem_exit(void)
link = NULL;
}
+ ofono_modem_driver_unregister(&driver);
+
isi_devinfo_exit();
isi_phonebook_exit();
}