summaryrefslogtreecommitdiff
path: root/packages/gsm/files
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gsm/files')
-rw-r--r--packages/gsm/files/htcuniversal/default2
-rw-r--r--packages/gsm/files/universal-wcdma.patch29
-rw-r--r--packages/gsm/files/vendor-qc-v0.patch38
3 files changed, 68 insertions, 1 deletions
diff --git a/packages/gsm/files/htcuniversal/default b/packages/gsm/files/htcuniversal/default
index 3c9a8da949..b09d433d1e 100644
--- a/packages/gsm/files/htcuniversal/default
+++ b/packages/gsm/files/htcuniversal/default
@@ -1,6 +1,6 @@
# gsmd This shell script configures for the gsmd init script.
-GSMD_OPTS="-s 115200 -F"
+GSMD_OPTS="-s 115200 -F -w 1"
# If your GSM device needs to be powered up, uncomment and modify the next line
#GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on"
diff --git a/packages/gsm/files/universal-wcdma.patch b/packages/gsm/files/universal-wcdma.patch
new file mode 100644
index 0000000000..a162ce2326
--- /dev/null
+++ b/packages/gsm/files/universal-wcdma.patch
@@ -0,0 +1,29 @@
+Index: gsm/src/gsmd/vendor_qc.c
+===================================================================
+--- gsm.orig/src/gsmd/vendor_qc.c 2007-06-13 20:13:47.000000000 +0200
++++ gsm/src/gsmd/vendor_qc.c 2007-06-13 20:45:19.000000000 +0200
+@@ -69,8 +69,15 @@
+ return -EIO;
+ }
+
++static int wcdma_parse(char *buf, int len, const char *param,
++ struct gsmd *gsmd)
++{
++ return 0;
++}
++
+ static const struct gsmd_unsolicit qc_unsolicit[] = {
+ { "@HTCCSQ", &htccsq_parse }, /* Signal Quality */
++ { "[WCDMA]", &wcdma_parse }, /* ignore [WCDMA] messages */
+
+ /* FIXME: parse the below and generate the respective events */
+
+@@ -97,7 +109,7 @@
+
+ struct gsmd_vendor_plugin gsmd_vendor_plugin = {
+ .name = "Qualcomm msm6250",
+- .ext_chars = "@",
++ .ext_chars = "@[",
+ .num_unsolicit = ARRAY_SIZE(qc_unsolicit),
+ .unsolicit = qc_unsolicit,
+ .detect = &qc_detect,
diff --git a/packages/gsm/files/vendor-qc-v0.patch b/packages/gsm/files/vendor-qc-v0.patch
new file mode 100644
index 0000000000..8306f8a66e
--- /dev/null
+++ b/packages/gsm/files/vendor-qc-v0.patch
@@ -0,0 +1,38 @@
+Index: gsm/src/gsmd/vendor_qc.c
+===================================================================
+--- gsm.orig/src/gsmd/vendor_qc.c 2007-06-13 20:13:47.000000000 +0200
++++ gsm/src/gsmd/vendor_qc.c 2007-06-13 20:45:19.000000000 +0200
+@@ -81,6 +88,9 @@
+ {
+ /* FIXME: do actual detection of vendor if we have multiple vendors */
+ /* open /proc/cpuinfo and check for HTC Universal? */
++
++ /* The Qualcomm chip starts in V0 mode */
++ g->flags |= GSMD_FLAG_V0;
+ return 1;
+ }
+
+Index: gsm/src/gsmd/gsmd.c
+===================================================================
+--- gsm.orig/src/gsmd/gsmd.c 2007-06-13 20:13:47.000000000 +0200
++++ gsm/src/gsmd/gsmd.c 2007-06-13 20:49:54.000000000 +0200
+@@ -62,7 +62,8 @@
+ {
+ struct gsmd_alive_priv *alp = ctx;
+
+- if (!strcmp(resp, "OK"))
++ if (!strcmp(resp, "OK") ||
++ ((alp->gsmd->flags & GSMD_FLAG_V0) && resp[0] == '0'))
+ alp->alive_responded = 1;
+ return 0;
+ }
+@@ -201,7 +202,8 @@
+ {
+ struct gsmd *gsmd = ctx;
+
+- if (strcmp(resp, "OK")) {
++ if (strcmp(resp, "OK") &&
++ (!(gsmd->flags & GSMD_FLAG_V0) || resp[0] != '0')) {
+ gsmd_log(GSMD_FATAL, "response '%s' to initial command invalid", resp);
+ exit(5);
+ }