diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-01-06 14:05:59 -0800 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-01-06 14:05:59 -0800 |
commit | 02cbee49553acb53f5065c12a729d1b300897f40 (patch) | |
tree | d88dfee7c11b9acc3a5d2034a0b187771c6c0ff8 /drivers/atmodem | |
parent | d432561a1257a8c3dee1106d5115ac07fe5433bf (diff) | |
download | ofono-02cbee49553acb53f5065c12a729d1b300897f40.tar.bz2 |
atmodem: Disable AT+COLP for Qualcomm MSM based modems
In case of Qualcomm MSM based modems, AT+COLP=0 needs to be used to make
ATD<number>; return right away. Otherwise it only returns once the remote
party accepted or rejected the call.
Diffstat (limited to 'drivers/atmodem')
-rw-r--r-- | drivers/atmodem/voicecall.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/atmodem/voicecall.c b/drivers/atmodem/voicecall.c index 0ed4b82f..675c131e 100644 --- a/drivers/atmodem/voicecall.c +++ b/drivers/atmodem/voicecall.c @@ -1095,7 +1095,16 @@ static int at_voicecall_probe(struct ofono_voicecall *vc, unsigned int vendor, g_at_chat_send(vd->chat, "AT+CLIP=1", NULL, NULL, NULL, NULL); g_at_chat_send(vd->chat, "AT+CDIP=1", NULL, NULL, NULL, NULL); g_at_chat_send(vd->chat, "AT+CNAP=1", NULL, NULL, NULL, NULL); - g_at_chat_send(vd->chat, "AT+COLP=1", NULL, NULL, NULL, NULL); + + switch (vd->vendor) { + case OFONO_VENDOR_QUALCOMM_MSM: + g_at_chat_send(vd->chat, "AT+COLP=0", NULL, NULL, NULL, NULL); + break; + default: + g_at_chat_send(vd->chat, "AT+COLP=1", NULL, NULL, NULL, NULL); + break; + } + g_at_chat_send(vd->chat, "AT+CSSN=1,1", NULL, NULL, NULL, NULL); g_at_chat_send(vd->chat, "AT+VTD?", NULL, vtd_query_cb, vc, NULL); |