netreg: Fix broken CMER behavior on MBM

This commit is contained in:
Denis Kenzior 2013-01-21 10:23:34 -06:00
parent 1103f8ae08
commit 2fa7a4a66e
1 changed files with 14 additions and 1 deletions

View File

@ -1715,8 +1715,21 @@ static void cind_support_cb(gboolean ok, GAtResult *result, gpointer user_data)
if (nd->signal_index == 0)
goto error;
g_at_chat_send(nd->chat, "AT+CMER=?", cmer_prefix,
switch (nd->vendor) {
case OFONO_VENDOR_MBM:
/*
* MBM devices report 'CMER: (0,3),(0,2),0,(0-1),0' when
* +CMER=? is executed, which cannot be parsed. Simply
* send the desired settings in this case.
*/
g_at_chat_send(nd->chat, "AT+CMER=3,0,0,1", none_prefix,
at_cmer_set_cb, netreg, NULL);
break;
default:
g_at_chat_send(nd->chat, "AT+CMER=?", cmer_prefix,
at_cmer_query_cb, netreg, NULL);
break;
}
return;