summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-27 20:29:10 +0000
committerFelix Fietkau <nbd@openwrt.org>2011-10-27 20:29:10 +0000
commit3eea31fc6d61395ffafdc17cbb31227a22c38cd3 (patch)
treed19c21d7c565940416f7b1cba6c064c969ee12b6
parentc932bcee1c575b280ca6d7f661eba3ef7482a0e8 (diff)
downloadmtk-20170518-3eea31fc6d61395ffafdc17cbb31227a22c38cd3.zip
mtk-20170518-3eea31fc6d61395ffafdc17cbb31227a22c38cd3.tar.gz
mtk-20170518-3eea31fc6d61395ffafdc17cbb31227a22c38cd3.tar.bz2
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
-rw-r--r--package/comgt/Makefile1
-rw-r--r--package/comgt/files-netifd/3g.sh7
2 files changed, 8 insertions, 0 deletions
diff --git a/package/comgt/Makefile b/package/comgt/Makefile
index c071c8c..d853276 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 cbf8bd1..cf96435 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