diff options
author | Denis Kenzior <denkenz@gmail.com> | 2009-08-21 19:12:27 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-08-21 19:25:51 -0500 |
commit | b3e6dd8e5128d303d622148e49aed6da113c9bc0 (patch) | |
tree | 65aeed85de409d39c23bfcbbbf9e35c40c73b4ef | |
parent | 038251eac50dd7ae2d6b640890bbe948664910d9 (diff) | |
download | ofono-b3e6dd8e5128d303d622148e49aed6da113c9bc0.tar.bz2 |
Update the isi driver to the new modem driver api
-rw-r--r-- | drivers/isimodem/isimodem.c | 58 |
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(); } |