From 3eea31fc6d61395ffafdc17cbb31227a22c38cd3 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Thu, 27 Oct 2011 20:29:10 +0000
Subject: [PATCH] comgt: delay 3g bringup for sierra wireless cards until the
 card has locked on to the carrier, this helps with avoiding firmware hangs
 (thx, chris)

SVN-Revision: 28636
---
 package/comgt/Makefile           | 1 +
 package/comgt/files-netifd/3g.sh | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/package/comgt/Makefile b/package/comgt/Makefile
index c071c8ca19..d853276a45 100644
--- a/package/comgt/Makefile
+++ b/package/comgt/Makefile
@@ -73,6 +73,7 @@ define Package/comgt/install
 	$(INSTALL_DATA) ./files/setmode.gcom $(1)/etc/gcom/setmode.gcom
 	$(INSTALL_DATA) ./files/getcardinfo.gcom $(1)/etc/gcom/getcardinfo.gcom
 	$(INSTALL_DATA) ./files/getstrength.gcom $(1)/etc/gcom/getstrength.gcom
+	$(INSTALL_DATA) ./files/getcarrier.gcom $(1)/etc/gcom/getcarrier.gcom
 	$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
 	$(INSTALL_DATA) $(FILES_DIR)/3g.usb $(1)/etc/hotplug.d/tty/30-3g
 	$(Package/comgt/install/$(COMGT_VARIANT))
diff --git a/package/comgt/files-netifd/3g.sh b/package/comgt/files-netifd/3g.sh
index cbf8bd1e66..cf96435a85 100644
--- a/package/comgt/files-netifd/3g.sh
+++ b/package/comgt/files-netifd/3g.sh
@@ -50,6 +50,8 @@ proto_3g_setup() {
 					*) CODE=3;;
 				esac
 				export MODE="AT_OPSYS=${CODE}"
+			elif echo "$cardinfo" | grep -q "Sierra Wireless"; then
+				SIERRA=1
 			fi
 
 			if [ -n "$pincode" ]; then
@@ -60,6 +62,11 @@ proto_3g_setup() {
 				}
 			fi
 			[ -n "$MODE" ] && gcom -d "$device" -s /etc/gcom/setmode.gcom
+
+			# wait for carrier to avoid firmware stability bugs
+			[ -n "$SIERRA" ] && {
+				gcom -d "$device" -s /etc/gcom/getcarrier.gcom || return 1
+			}
 		;;
 	esac
 
-- 
GitLab