From c6504327d1d7a7be65dae781edc6283454601357 Mon Sep 17 00:00:00 2001 From: Martin Schiller Date: Thu, 3 Aug 2017 09:44:21 +0200 Subject: [PATCH] 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 --- package/network/config/ltq-vdsl-app/Makefile | 5 +++-- .../network/config/ltq-vdsl-app/files/10_atm.sh | 16 ++++++++++++++++ .../network/config/ltq-vdsl-app/files/10_ptm.sh | 14 ++++++++++++++ .../config/ltq-vdsl-app/files/dsl_control | 9 +-------- .../ltq-vdsl-app/files/vdsl_cpe_control_wrapper | 10 ---------- 5 files changed, 34 insertions(+), 20 deletions(-) create mode 100755 package/network/config/ltq-vdsl-app/files/10_atm.sh create mode 100755 package/network/config/ltq-vdsl-app/files/10_ptm.sh delete mode 100644 package/network/config/ltq-vdsl-app/files/vdsl_cpe_control_wrapper diff --git a/package/network/config/ltq-vdsl-app/Makefile b/package/network/config/ltq-vdsl-app/Makefile index 815f89c0b8ad..20b506c48e07 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 000000000000..abfb73592342 --- /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 000000000000..1c62617bba61 --- /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 7406fe1c0c92..1d4129fc7d58 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 8e7c1cb4b8ff..000000000000 --- 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 "$@" -- 2.30.2