summaryrefslogtreecommitdiffstats
path: root/drivers/atmodem
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2012-01-06 14:05:59 -0800
committerMarcel Holtmann <marcel@holtmann.org>2012-01-06 14:05:59 -0800
commit02cbee49553acb53f5065c12a729d1b300897f40 (patch)
treed88dfee7c11b9acc3a5d2034a0b187771c6c0ff8 /drivers/atmodem
parentd432561a1257a8c3dee1106d5115ac07fe5433bf (diff)
downloadofono-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.c11
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);