diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-01-06 14:08:35 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-01-06 14:08:35 -0800 |
commit | 9e26e29f8ded22a072b5a4457373398990480f87 (patch) | |
tree | 1ef0870714d029a9b882e87aa1999361cea33690 | |
parent | 02cbee49553acb53f5065c12a729d1b300897f40 (diff) | |
download | ofono-9e26e29f8ded22a072b5a4457373398990480f87.tar.bz2 |
atmodem: Add call state polling for Qualcomm MSM based modems
The voice call support of the Qualcomm MSM based modems does not report
NO CARRIER, NO ANSWER or BUSY unsolicited notifications. So keep polling
for call state changes via AT+CLCC even during an active call.
-rw-r--r-- | drivers/atmodem/voicecall.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c index 675c131e..d07052c8 100644 --- a/drivers/atmodem/voicecall.c +++ b/drivers/atmodem/voicecall.c @@ -161,9 +161,16 @@ static void clcc_poll_cb(gboolean ok, GAtResult *result, gpointer user_data) nc = n ? n->data : NULL; oc = o ? o->data : NULL; - if (nc && nc->status >= CALL_STATUS_DIALING && - nc->status <= CALL_STATUS_WAITING) + switch (vd->vendor) { + case OFONO_VENDOR_QUALCOMM_MSM: poll_again = TRUE; + break; + default: + if (nc && nc->status >= CALL_STATUS_DIALING && + nc->status <= CALL_STATUS_WAITING) + poll_again = TRUE; + break; + } if (oc && (nc == NULL || (nc->id > oc->id))) { enum ofono_disconnect_reason reason; |