summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/network-registration.c
diff options
context:
space:
mode:
authorMika Liljeberg <mika.liljeberg@nokia.com>2011-03-24 14:14:09 +0200
committerAki Niemi <aki.niemi@nokia.com>2011-03-24 14:43:53 +0200
commit44ad041c2740064ec055bee7c4084953a10e799d (patch)
tree7df0b249e131e4a9b62530d7852d5cb3ad4d86e2 /drivers/isimodem/network-registration.c
parent9edf68c553985b844a6e99d17afa8962d26c4137 (diff)
downloadofono-44ad041c2740064ec055bee7c4084953a10e799d.tar.bz2
isimodem: fix network registration for older modems
Diffstat (limited to 'drivers/isimodem/network-registration.c')
-rw-r--r--drivers/isimodem/network-registration.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/isimodem/network-registration.c b/drivers/isimodem/network-registration.c
index a30fc8c5..8bf2423c 100644
--- a/drivers/isimodem/network-registration.c
+++ b/drivers/isimodem/network-registration.c
@@ -78,6 +78,7 @@ struct netreg_data {
struct reg_info reg;
struct gsm_info gsm;
struct rat_info rat;
+ GIsiVersion version;
char nitz_name[OFONO_MAX_OPERATOR_NAME_LENGTH + 1];
};
@@ -338,7 +339,8 @@ static void rat_resp_cb(const GIsiMessage *msg, void *data)
goto error;
}
- if (g_isi_client_resource(nd->client) == PN_MODEM_NETWORK)
+ if (g_isi_client_resource(nd->client) == PN_MODEM_NETWORK ||
+ nd->version.major < 14)
req[0] = NET_MODEM_REG_STATUS_GET_REQ;
if (g_isi_client_send(nd->client, req, sizeof(req),
@@ -649,7 +651,8 @@ static void isi_list_operators(struct ofono_netreg *netreg,
if (cbd == NULL || nd == NULL)
goto error;
- if (g_isi_client_resource(nd->client) == PN_MODEM_NETWORK)
+ if (g_isi_client_resource(nd->client) == PN_MODEM_NETWORK ||
+ nd->version.major < 14)
msg[0] = NET_MODEM_AVAILABLE_GET_REQ;
if (g_isi_client_send_with_timeout(nd->client, msg, sizeof(msg),
@@ -938,6 +941,9 @@ static void reachable_cb(const GIsiMessage *msg, void *data)
if (nd == NULL)
return;
+ nd->version.major = g_isi_msg_version_major(msg);
+ nd->version.minor = g_isi_msg_version_minor(msg);
+
g_isi_client_ind_subscribe(nd->client, NET_RSSI_IND, rssi_ind_cb,
netreg);
g_isi_client_ind_subscribe(nd->client, NET_NITZ_NAME_IND, name_ind_cb,