aboutsummaryrefslogtreecommitdiffstats
path: root/package/network
diff options
context:
space:
mode:
Diffstat (limited to 'package/network')
-rw-r--r--package/network/config/ltq-adsl-app/Makefile8
-rwxr-xr-xpackage/network/config/ltq-adsl-app/files/10_atm.sh31
-rwxr-xr-xpackage/network/config/ltq-adsl-app/files/10_ptm.sh29
3 files changed, 64 insertions, 4 deletions
diff --git a/package/network/config/ltq-adsl-app/Makefile b/package/network/config/ltq-adsl-app/Makefile
index 6e0b47f87c..db3decaabe 100644
--- a/package/network/config/ltq-adsl-app/Makefile
+++ b/package/network/config/ltq-adsl-app/Makefile
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=dsl_cpe_control_danube
PKG_VERSION:=3.24.4.4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/dsl_cpe_control-$(PKG_VERSION)
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
@@ -76,10 +76,10 @@ CONFIGURE_ARGS += \
TARGET_CFLAGS += -I$(LINUX_DIR)/include
define Package/ltq-adsl-app/install
- $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_DIR) $(1)/etc/init.d $(1)/sbin $(1)/etc/hotplug.d/dsl
$(INSTALL_BIN) ./files/dsl_control $(1)/etc/init.d/
-
- $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) ./files/10_atm.sh $(1)/etc/hotplug.d/dsl
+ $(INSTALL_BIN) ./files/10_ptm.sh $(1)/etc/hotplug.d/dsl
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/dsl_cpe_control $(1)/sbin
endef
diff --git a/package/network/config/ltq-adsl-app/files/10_atm.sh b/package/network/config/ltq-adsl-app/files/10_atm.sh
new file mode 100755
index 0000000000..898d8ec07c
--- /dev/null
+++ b/package/network/config/ltq-adsl-app/files/10_atm.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+[ "$DSL_NOTIFICATION_TYPE" = "DSL_STATUS" ] && \
+[ "$DSL_TC_LAYER_STATUS" = "ATM" ] && \
+! grep -q "ltq_atm_ar9\|ltq_atm_ase\|ltq_atm_danube" /proc/modules || exit 0
+
+logger -p daemon.notice -t "dsl-notify" "Switching to TC-Layer ATM"
+
+if grep -q "ltq_ptm_ar9\|ltq_ptm_ase\|ltq_ptm_danube" /proc/modules ; then
+ logger -p daemon.notice -t "dsl-notify" "Loading ATM driver while EFM/PTM driver is loaded is not possible. Reboot is needed."
+ exit
+fi
+
+case "$(strings /proc/device-tree/compatible)" in
+*lantiq,ar9*)
+ soc="ar9"
+ ;;
+*lantiq,ase*)
+ soc="ase"
+ ;;
+*lantiq,danube*)
+ soc="danube"
+ ;;
+*)
+ logger -p daemon.notice -t "dsl-notify" "Unsupported SoC"
+ exit
+esac
+
+modprobe ltq_atm_${soc}
+
+/etc/init.d/br2684ctl reload
diff --git a/package/network/config/ltq-adsl-app/files/10_ptm.sh b/package/network/config/ltq-adsl-app/files/10_ptm.sh
new file mode 100755
index 0000000000..8a76b926f7
--- /dev/null
+++ b/package/network/config/ltq-adsl-app/files/10_ptm.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+[ "$DSL_NOTIFICATION_TYPE" = "DSL_STATUS" ] && \
+[ "$DSL_TC_LAYER_STATUS" = "EFM" ] && \
+! grep -q "ltq_ptm_ar9\|ltq_ptm_ase\|ltq_ptm_danube" /proc/modules || exit 0
+
+logger -p daemon.notice -t "dsl-notify" "Switching to TC-Layer EFM/PTM"
+
+if grep -q "ltq_atm_ar9\|ltq_atm_ase\|ltq_atm_danube" /proc/modules ; then
+ logger -p daemon.notice -t "dsl-notify" "Loading EFM/PTM driver while ATM driver is loaded is not possible. Reboot is needed."
+ exit
+fi
+
+case "$(strings /proc/device-tree/compatible)" in
+*lantiq,ar9*)
+ soc="ar9"
+ ;;
+*lantiq,ase*)
+ soc="ase"
+ ;;
+*lantiq,danube*)
+ soc="danube"
+ ;;
+*)
+ logger -p daemon.notice -t "dsl-notify" "Unsupported SoC"
+ exit
+esac
+
+modprobe ltq_ptm_${soc}