diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-05-25 20:54:21 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-05-25 20:54:21 +0200 |
commit | a5897668849819b71dd069a94fadae7a09374727 (patch) | |
tree | fc8476e47271a10e821647ed9c4a993a1dc5a198 | |
parent | 359f790c77c9e817ed30e7807c9d2dd9c84e5399 (diff) | |
download | ofono-a5897668849819b71dd069a94fadae7a09374727.tar.bz2 |
iceramodem: Read supported bands as part of radio settings
-rw-r--r-- | drivers/iceramodem/radio-settings.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/iceramodem/radio-settings.c b/drivers/iceramodem/radio-settings.c index 83b9b8c9..d76e5458 100644 --- a/drivers/iceramodem/radio-settings.c +++ b/drivers/iceramodem/radio-settings.c @@ -41,6 +41,7 @@ #include "iceramodem.h" static const char *none_prefix[] = { NULL }; +static const char *ipbm_prefix[] = { "%IPBM:", NULL }; static const char *ipsys_prefix[] = { "%IPSYS:", NULL }; struct radio_settings_data { @@ -155,7 +156,7 @@ error: g_free(cbd); } -static void ipsys_support_cb(gboolean ok, GAtResult *result, gpointer user_data) +static void ipbm_support_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct ofono_radio_settings *rs = user_data; @@ -167,6 +168,20 @@ static void ipsys_support_cb(gboolean ok, GAtResult *result, gpointer user_data) ofono_radio_settings_register(rs); } +static void ipsys_support_cb(gboolean ok, GAtResult *result, gpointer user_data) +{ + struct ofono_radio_settings *rs = user_data; + struct radio_settings_data *rsd = ofono_radio_settings_get_data(rs); + + if (!ok) { + ofono_radio_settings_remove(rs); + return; + } + + g_at_chat_send(rsd->chat, "AT%IPBM=?", ipbm_prefix, + ipbm_support_cb, rs, NULL); +} + static int icera_radio_settings_probe(struct ofono_radio_settings *rs, unsigned int vendor, void *data) { |