[source] ltq-vdsl-app: use notification based ATM/PTM driver load

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 7 01:50:30 PDT 2017


mkresin pushed a commit to source.git, branch master:
https://git.lede-project.org/c6504327d1d7a7be65dae781edc6283454601357

commit c6504327d1d7a7be65dae781edc6283454601357
Author: Martin Schiller <ms at dev.tdt.de>
AuthorDate: Thu Aug 3 09:44:21 2017 +0200

    ltq-vdsl-app: use notification based ATM/PTM driver load
    
    This patch removes the fixed atm/ptm driver loading and
    switches to notification based driver loading.
    
    Signed-off-by: Martin Schiller <ms at dev.tdt.de>
---
 package/network/config/ltq-vdsl-app/Makefile             |  5 +++--
 package/network/config/ltq-vdsl-app/files/10_atm.sh      | 16 ++++++++++++++++
 package/network/config/ltq-vdsl-app/files/10_ptm.sh      | 14 ++++++++++++++
 package/network/config/ltq-vdsl-app/files/dsl_control    |  9 +--------
 .../config/ltq-vdsl-app/files/vdsl_cpe_control_wrapper   | 10 ----------
 5 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/package/network/config/ltq-vdsl-app/Makefile b/package/network/config/ltq-vdsl-app/Makefile
index 815f89c..20b506c 100644
--- a/package/network/config/ltq-vdsl-app/Makefile
+++ b/package/network/config/ltq-vdsl-app/Makefile
@@ -58,9 +58,10 @@ CONFIGURE_ARGS += \
 #CONFIGURE_ARGS += --enable-model=debug
 
 define Package/ltq-vdsl-app/install
-	$(INSTALL_DIR) $(1)/etc/init.d $(1)/sbin
+	$(INSTALL_DIR) $(1)/etc/init.d $(1)/sbin $(1)/etc/hotplug.d/dsl
 	$(INSTALL_BIN) ./files/dsl_control $(1)/etc/init.d/
-	$(INSTALL_BIN) ./files/vdsl_cpe_control_wrapper $(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/vdsl_cpe_control
 	$(INSTALL_BIN) ./files/dsl_cpe_pipe.sh $(1)/sbin/
diff --git a/package/network/config/ltq-vdsl-app/files/10_atm.sh b/package/network/config/ltq-vdsl-app/files/10_atm.sh
new file mode 100755
index 0000000..abfb735
--- /dev/null
+++ b/package/network/config/ltq-vdsl-app/files/10_atm.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+[ "$DSL_NOTIFICATION_TYPE" = "DSL_STATUS" ] && \
+[ "$DSL_TC_LAYER_STATUS" = "ATM" ] && \
+! grep -q "ltq_atm_vr9" /proc/modules || exit 0
+
+logger -p daemon.notice -t "dsl-notify" "Switching to TC-Layer ATM"
+
+if grep -q "ltq_ptm_vr9" /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
+
+modprobe ltq_atm_vr9
+
+/etc/init.d/br2684ctl reload
diff --git a/package/network/config/ltq-vdsl-app/files/10_ptm.sh b/package/network/config/ltq-vdsl-app/files/10_ptm.sh
new file mode 100755
index 0000000..1c62617
--- /dev/null
+++ b/package/network/config/ltq-vdsl-app/files/10_ptm.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+[ "$DSL_NOTIFICATION_TYPE" = "DSL_STATUS" ] && \
+[ "$DSL_TC_LAYER_STATUS" = "EFM" ] && \
+! grep -q "ltq_ptm_vr9" /proc/modules || exit 0
+
+logger -p daemon.notice -t "dsl-notify" "Switching to TC-Layer EFM/PTM"
+
+if grep -q "ltq_atm_vr9" /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
+
+modprobe ltq_ptm_vr9
diff --git a/package/network/config/ltq-vdsl-app/files/dsl_control b/package/network/config/ltq-vdsl-app/files/dsl_control
index 7406fe1..1d4129f 100644
--- a/package/network/config/ltq-vdsl-app/files/dsl_control
+++ b/package/network/config/ltq-vdsl-app/files/dsl_control
@@ -198,16 +198,10 @@ start_service() {
 
 	case "${xfer_mode}" in
 	atm)
-		LOAD=ltq_atm_vr9
-		UNLOAD=ltq_ptm_vr9
-
 		# in most cases atm is used on top of adsl
 		[ -z "${line_mode}" ] && line_mode=adsl
 		;;
 	*)
-		LOAD=ltq_ptm_vr9
-		UNLOAD=ltq_atm_vr9
-
 		# in most cases ptm is used on top of vdsl
 		[ -z "${line_mode}" ] && line_mode=vdsl
 		;;
@@ -301,14 +295,13 @@ start_service() {
 	}
 
 	procd_open_instance
-	procd_set_param command /sbin/vdsl_cpe_control_wrapper \
+	procd_set_param command /sbin/vdsl_cpe_control \
 			-i$xtse \
 			-n /sbin/dsl_notify.sh \
 			-f ${firmware} \
 			$lowlevel \
 			-M ${mode} \
 			$autoboot
-	procd_append_param env "LOAD=$LOAD" "UNLOAD=$UNLOAD"
 	procd_close_instance
 }
 
diff --git a/package/network/config/ltq-vdsl-app/files/vdsl_cpe_control_wrapper b/package/network/config/ltq-vdsl-app/files/vdsl_cpe_control_wrapper
deleted file mode 100644
index 8e7c1cb..0000000
--- a/package/network/config/ltq-vdsl-app/files/vdsl_cpe_control_wrapper
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-for mod in $UNLOAD; do
-	grep -q "$mod " /proc/modules && rmmod "$mod"
-done
-for mod in $LOAD; do
-	grep -q "$mod " /proc/modules || insmod "$mod"
-done
-
-exec /sbin/vdsl_cpe_control "$@"



More information about the lede-commits mailing list