summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-06-03 08:54:08 -0700
committerMarcel Holtmann <marcel@holtmann.org>2010-06-03 08:54:08 -0700
commit23d97f2c0a5b0ef89d69e92184c4669e31e89dbe (patch)
treec75ea7a5fcd71d69d25c707a797787aa0dc76aa6
parent6df182c5dbd855ad694f80275f1343c364400360 (diff)
downloadofono-23d97f2c0a5b0ef89d69e92184c4669e31e89dbe.tar.bz2
Quirk SMS handling for Novatel based devices
The Novatel based devices with Qualcomm chips seems to have various problems. First they advertise CNMI mode 2, but don't support it. And second they don't support CNMA acknowledgement with a PDU. So fall back to acks without PDU.
-rw-r--r--drivers/atmodem/sms.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/atmodem/sms.c b/drivers/atmodem/sms.c
index 8049df6e..db2c152f 100644
--- a/drivers/atmodem/sms.c
+++ b/drivers/atmodem/sms.c
@@ -669,7 +669,8 @@ static gboolean build_cnmi_string(char *buf, int *cnmi_opts,
const char *mode;
int len = sprintf(buf, "AT+CNMI=");
- if (data->vendor == OFONO_VENDOR_QUALCOMM_MSM)
+ if (data->vendor == OFONO_VENDOR_QUALCOMM_MSM ||
+ data->vendor == OFONO_VENDOR_NOVATEL)
/* MSM devices advertise support for mode 2, but return an
* error if we attempt to actually use it. */
mode = "1";
@@ -769,7 +770,7 @@ static void at_cnmi_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
if (build_cnmi_string(buf, cnmi_opts, data))
supported = TRUE;
- if (data->cnma_enabled)
+ if (data->cnma_enabled && data->vendor != OFONO_VENDOR_NOVATEL)
construct_ack_pdu(data);
out: