lantiq: Update to the latest DSL driver / application versions

Thanks to Sylwester Petela for testing my patch (successfully on an
ADSL connection) and for pointing out some configuration mistakes.
Others (including me) have also successfully tested this extensively
on VDSL connections.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 46920
This commit is contained in:
John Crispin 2015-09-14 20:09:22 +00:00
parent 4ef319fad2
commit 2c1d56af50
9 changed files with 328 additions and 558 deletions

View file

@ -7,11 +7,12 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=lib_ifxos PKG_NAME:=lib_ifxos
PKG_VERSION:=1.5.14 PKG_VERSION:=1.5.19
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_RELEASE:=3 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_NAME)/archive/v$(PKG_VERSION)
PKG_MD5SUM:=bc107f9d8ff6bed4c2760a2817bbb029 PKG_MD5SUM:=39eace039ae4c3dde4da96bfdbee2721
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org> PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_USE_MIPS16:=0 PKG_USE_MIPS16:=0

View file

@ -1,27 +1,14 @@
--- a/configure.in
+++ b/configure.in
@@ -64,7 +64,7 @@ dnl Set kernel build path
AC_ARG_ENABLE(kernelbuild,
AS_HELP_STRING(--enable-kernelbuild=x,Set the target kernel build path (only for kernel 2.6.x)),
[
- if test -e $enableval/include/linux/autoconf.h; then
+ if test -e $enableval/include/linux/autoconf.h -o -e $enableval/include/generated/autoconf.h; then
AC_SUBST([KERNEL_BUILD_PATH],[$enableval])
else
AC_MSG_ERROR([The kernel build directory is not valid or not configured!])
--- a/src/linux/ifxos_linux_thread_drv.c --- a/src/linux/ifxos_linux_thread_drv.c
+++ b/src/linux/ifxos_linux_thread_drv.c +++ b/src/linux/ifxos_linux_thread_drv.c
@@ -34,8 +34,8 @@ @@ -38,6 +38,7 @@
#include <linux/sched.h> #include <linux/smp_lock.h>
#include <linux/version.h> #endif
#include <linux/completion.h>
-#include <linux/smp_lock.h>
#include <linux/signal.h> #include <linux/signal.h>
+#include <linux/kthread.h> +#include <linux/kthread.h>
#include "ifx_types.h" #include "ifx_types.h"
@@ -68,10 +68,6 @@ @@ -70,10 +71,6 @@
#if ( defined(IFXOS_HAVE_THREAD) && (IFXOS_HAVE_THREAD == 1) ) #if ( defined(IFXOS_HAVE_THREAD) && (IFXOS_HAVE_THREAD == 1) )
@ -32,7 +19,7 @@
/* ============================================================================ /* ============================================================================
IFX Linux adaptation - Kernel Thread handling IFX Linux adaptation - Kernel Thread handling
========================================================================= */ ========================================================================= */
@@ -96,9 +92,9 @@ IFXOS_STATIC IFX_int32_t IFXOS_KernelThr @@ -98,9 +95,9 @@ IFXOS_STATIC IFX_int32_t IFXOS_KernelThr
- IFX_SUCCESS on success - IFX_SUCCESS on success
- IFX_ERROR on error - IFX_ERROR on error
*/ */
@ -44,7 +31,7 @@
IFX_int32_t retVal = IFX_ERROR; IFX_int32_t retVal = IFX_ERROR;
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
struct task_struct *kthread = current; struct task_struct *kthread = current;
@@ -139,7 +135,7 @@ IFXOS_STATIC IFX_int32_t IFXOS_KernelThr @@ -141,7 +138,7 @@ IFXOS_STATIC IFX_int32_t IFXOS_KernelThr
/* let others run */ /* let others run */
unlock_kernel(); unlock_kernel();
#else #else
@ -53,7 +40,7 @@
/* Enable signals in Kernel >= 2.6 */ /* Enable signals in Kernel >= 2.6 */
allow_signal(SIGKILL); allow_signal(SIGKILL);
@@ -218,9 +214,7 @@ IFX_int32_t IFXOS_ThreadInit( @@ -221,9 +218,7 @@ IFX_int32_t IFXOS_ThreadInit(
init_completion(&pThrCntrl->thrCompletion); init_completion(&pThrCntrl->thrCompletion);
/* start kernel thread via the wrapper function */ /* start kernel thread via the wrapper function */

View file

@ -7,14 +7,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ltq-vdsl-vr9-mei PKG_NAME:=ltq-vdsl-vr9-mei
PKG_VERSION:=1.2.0 PKG_VERSION:=1.4.8.4
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BASE_NAME:=drv_mei_cpe PKG_BASE_NAME:=drv_mei_cpe
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/ PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_BASE_NAME)/archive/v$(PKG_VERSION)
PKG_MD5SUM:=cf2fccc1bc72390b2aec46650abf2f20 PKG_MD5SUM:=30570722dc7f19ff2f0228838043f2a2
PKG_FIXUP:=autoreconf PKG_FIXUP:=autoreconf
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org> PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_USE_MIPS16:=0 PKG_USE_MIPS16:=0
@ -49,9 +49,10 @@ CONFIGURE_ARGS += \
--enable-error_print \ --enable-error_print \
--enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos/" \ --enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos/" \
--enable-ifxos-library="-L$(STAGING_DIR)/usr/lib" \ --enable-ifxos-library="-L$(STAGING_DIR)/usr/lib" \
--enable-add_drv_cflags="$(DEBUG) -DMEI_DRV_ATM_PTM_INTERFACE_ENABLE=1 -fno-pic -mno-abicalls -mlong-calls -O2 -g0" \ --enable-add_drv_cflags="$(DEBUG) -DMEI_DRV_ATM_PTM_INTERFACE_ENABLE=1 -DMEI_EXPORT_INTERNAL_API=1 -DMEI_SUPPORT_DSM=0 -fno-pic -mno-abicalls -mlong-calls -O2 -g0" \
--enable-linux-26 \ --enable-linux-26 \
--enable-kernelbuild="$(LINUX_DIR)" \ --enable-kernelbuild="$(LINUX_DIR)" \
--enable-drv_test_appl=0 \
ARCH=$(LINUX_KARCH) ARCH=$(LINUX_KARCH)
define Build/InstallDev define Build/InstallDev

View file

@ -1,8 +1,6 @@
Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_common.c --- a/src/drv_mei_cpe_common.c
=================================================================== +++ b/src/drv_mei_cpe_common.c
--- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_common.c 2011-10-26 00:49:51.000000000 +0200 @@ -19,7 +19,6 @@
+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_common.c 2013-09-01 21:04:12.197022086 +0200
@@ -20,7 +20,6 @@
/* get at first the driver configuration */ /* get at first the driver configuration */
#include "drv_mei_cpe_config.h" #include "drv_mei_cpe_config.h"
@ -10,312 +8,270 @@ Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_common.c
#include "drv_mei_cpe_os.h" #include "drv_mei_cpe_os.h"
#include "drv_mei_cpe_dbg.h" #include "drv_mei_cpe_dbg.h"
Index: drv_mei_cpe-1.2.0/configure.in --- a/src/drv_mei_cpe_linux.h
=================================================================== +++ b/src/drv_mei_cpe_linux.h
--- drv_mei_cpe-1.2.0.orig/configure.in 2012-01-20 17:41:07.000000000 +0100 @@ -51,12 +51,6 @@
+++ drv_mei_cpe-1.2.0/configure.in 2013-09-01 21:04:12.197022086 +0200
@@ -140,7 +140,7 @@
AC_ARG_ENABLE(kernelbuild,
AC_HELP_STRING([--enable-kernelbuild=x],[Set the target kernel build path]),
[
- if test -e $enableval/include/linux/autoconf.h; then
+ if test -e $enableval/include/generated/autoconf.h; then
AC_SUBST([KERNEL_BUILD_PATH],[$enableval])
else
AC_MSG_ERROR([The kernel build directory is not valid or not configured!])
Index: drv_mei_cpe-1.2.0/configure
===================================================================
--- drv_mei_cpe-1.2.0.orig/configure 2012-01-20 17:50:02.000000000 +0100
+++ drv_mei_cpe-1.2.0/configure 2013-09-01 21:04:14.361022179 +0200
@@ -617,6 +617,7 @@
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
+am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
@@ -2367,11 +2368,11 @@
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
@@ -3219,6 +3220,7 @@
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
@@ -3243,6 +3245,7 @@
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -3302,7 +3305,7 @@
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -3656,7 +3659,7 @@
# Check whether --enable-kernelbuild was given.
if test "${enable_kernelbuild+set}" = set; then :
enableval=$enable_kernelbuild;
- if test -e $enableval/include/linux/autoconf.h; then
+ if test -e $enableval/include/generated/autoconf.h; then
KERNEL_BUILD_PATH=$enableval
else
Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_linux.h
===================================================================
--- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_linux.h 2011-07-25 20:41:02.000000000 +0200
+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_linux.h 2013-09-01 21:04:12.197022086 +0200
@@ -34,8 +34,6 @@
#include <linux/sched.h>
#include <linux/interrupt.h>
-#include <asm/ifx/irq.h>
-
#if (MEI_DRV_IFXOS_ENABLE == 0)
#include <linux/version.h>
@@ -44,8 +42,6 @@
#include <linux/poll.h> #include <linux/poll.h>
#include <linux/types.h> #include <linux/types.h>
-#include <asm/ifx/ifx_types.h> -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0))
- #include <asm/ifx/ifx_types.h>
-#else
- #include <ifx_types.h>
-#endif
- -
#endif /* #if (MEI_DRV_IFXOS_ENABLE == 0)*/ #endif /* #if (MEI_DRV_IFXOS_ENABLE == 0)*/
/* ============================================================================ /* ============================================================================
Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_vr9.h --- a/src/drv_mei_cpe_linux.c
=================================================================== +++ b/src/drv_mei_cpe_linux.c
--- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_mei_vr9.h 2011-07-25 20:41:02.000000000 +0200 @@ -98,6 +98,8 @@
+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_vr9.h 2013-09-01 21:04:12.197022086 +0200
@@ -40,12 +40,6 @@
#endif
#endif
-#ifdef LINUX #include "drv_mei_cpe_api_atm_ptm_intern.h"
- #include <asm/ifx/ifx_pmu.h>
-#else
- #error "Please check PMU driver path!"
-#endif
-
/* ============================================================================
Module : RCU register address and bits
========================================================================= */
Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_api_atm_ptm_intern.c
===================================================================
--- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_api_atm_ptm_intern.c 2011-07-25 20:41:02.000000000 +0200
+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_api_atm_ptm_intern.c 2013-09-01 21:04:12.197022086 +0200
@@ -25,11 +25,7 @@
#include "ifx_types.h"
#include "drv_mei_cpe_os.h"
-#ifdef LINUX +#include <lantiq_soc.h>
- #include <asm/ifx/ifx_atm.h>
-#else
- #error "ATM/PTM internal interface is only supported for Linux!"
-#endif
+#include <lantiq_atm.h>
/** get interface and configuration */
#include "drv_mei_cpe_interface.h"
Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_linux.c
===================================================================
--- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_linux.c 2011-07-25 20:41:02.000000000 +0200
+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_linux.c 2013-09-01 21:04:12.197022086 +0200
@@ -32,11 +32,9 @@
#include <linux/module.h>
#include <linux/version.h>
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
-#include <linux/utsrelease.h>
-#endif
-#include <linux/init.h>
+#include <generated/utsrelease.h>
+#include <linux/device.h>
#include <linux/ioport.h>
#include <linux/irq.h>
#include <asm/io.h>
@@ -67,6 +65,9 @@
#include "drv_mei_cpe_msg_process.h"
+#undef MEI_SUPPORT_PROCFS_CONFIG
+#undef CONFIG_PROC_FS
+
#if (MEI_SUPPORT_PROCFS_CONFIG == 1)
#include "drv_mei_cpe_linux_proc_config.h"
#endif /* MEI_SUPPORT_PROCFS_CONFIG */
@@ -87,6 +88,8 @@
#include "drv_mei_cpe_device_cntrl.h"
#endif
+#define INT_NUM_IM4_IRL30 (INT_NUM_IM4_IRL0 + 30)
+ +
/* =================================== /* ===================================
extern function declarations extern function declarations
=================================== */ =================================== */
@@ -122,7 +125,7 @@ @@ -1783,7 +1785,9 @@ static int __init MEI_module_init (void)
size_t length,
loff_t * ppos);
-static int MEI_Ioctl( struct inode *inode, struct file *filp,
+static long MEI_Ioctl(struct file *filp,
unsigned int nCmd, unsigned long nArgument);
static unsigned int MEI_Poll (struct file *filp, poll_table *table);
@@ -137,7 +140,7 @@
static void MEI_IfxFreeIrq(unsigned int usedIrq, void *pUsedDevId);
-static irqreturn_t MEI_InterruptLinux(int irq, void *dev_id, struct pt_regs *regs);
+static irqreturn_t MEI_InterruptLinux(int irq, void *dev_id);
#endif
#if CONFIG_PROC_FS
@@ -194,7 +197,9 @@
/* =================================== */
/* Local variables (LINUX) */
/* =================================== */
-static IFX_uint8_t major_number = 0;
+#define MEI_MAJOR 105
+
+static IFX_uint8_t major_number = MEI_MAJOR;
#ifdef MODULE
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
MODULE_PARM(major_number, "b");
@@ -242,7 +247,7 @@
MEI_Write,
poll:
MEI_Poll,
- ioctl:
+ unlocked_ioctl:
MEI_Ioctl,
open:
MEI_OpenOS,
@@ -457,7 +462,7 @@
0 and positive values - success,
negative value - ioctl failed
*/
-static int MEI_Ioctl( struct inode *inode, struct file *filp,
+static long MEI_Ioctl(struct file *filp,
unsigned int nCmd, unsigned long nArgument)
{
int ret = 0, retSize = sizeof(IOCTL_MEI_ioctl_t);
@@ -1242,7 +1247,7 @@
\remark
None.
*/
-static irqreturn_t MEI_InterruptLinux(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t MEI_InterruptLinux(int irq, void *dev_id)
{
IFX_int32_t meiIntCnt = 0;
MEIX_CNTRL_T *pMeiXCntrlList = (MEIX_CNTRL_T*)dev_id;
@@ -1691,6 +1696,7 @@
static int __init MEI_module_init (void)
{
int result;
+ static struct class *dsl_class;
printk(KERN_INFO "%s" MEI_DRV_CRLF, &MEI_WHATVERSION[4]);
printk(KERN_INFO "(c) Copyright 2009, Infineon Technologies AG" MEI_DRV_CRLF);
@@ -1730,6 +1736,8 @@
return (result); return (result);
} }
+ dsl_class = class_create(THIS_MODULE, "ifx_mei"); +#if 0
+ device_create(dsl_class, NULL, MKDEV(MEI_MAJOR, 0), NULL, "ifx_mei"); ppa_callback_set(LTQ_MEI_SHOWTIME_CHECK, (void *)ltq_mei_atm_showtime_check);
+#endif
return 0;
}
@@ -1963,7 +1967,9 @@ static void MEI_module_exit (void)
("MEI_DRV: Chipset Basic Exit failed" MEI_DRV_CRLF));
}
+#if 0
ppa_callback_set(LTQ_MEI_SHOWTIME_CHECK, (void *)NULL);
+#endif
/* touch one time this variable to avoid that the linker will remove it */
debug_level = MEI_DRV_PRN_LEVEL_OFF;
@@ -2120,21 +2126,32 @@ static int MEI_InitModuleBasics(void)
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
+
+#define PMU_DFE BIT(9)
+
static int MEI_SysClkEnable(struct clk *clk)
{
+#if 0
if (IS_ERR(clk))
return -1;
clk_enable(clk);
+#else
+ ltq_pmu_enable(PMU_DFE);
+#endif
return 0; return 0;
} }
Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_access_vr9.c static int MEI_SysClkDisable(struct clk *clk)
=================================================================== {
--- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_mei_access_vr9.c 2011-07-25 20:41:02.000000000 +0200 +#if 0
+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_access_vr9.c 2013-09-01 21:04:12.197022086 +0200 if (IS_ERR(clk))
@@ -37,6 +37,7 @@ return -1;
clk_disable(clk);
clk_put(clk);
+#else
+ ltq_pmu_disable(PMU_DFE);
+#endif
#include "cmv_message_format.h" return 0;
}
@@ -2454,11 +2471,15 @@ IFX_int32_t MEI_IoctlInitDevice(
pMeiDev->eModePoll = e_MEI_DEV_ACCESS_MODE_IRQ;
pMeiDev->intMask = ME_ARC2ME_INTERRUPT_UNMASK_ALL;
+#include <lantiq_soc.h> +#if 1
+ virq = (IFX_uint32_t)pInitDev->usedIRQ;
+#else
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0))
virq = (IFX_uint32_t)pInitDev->usedIRQ;
#else
virq = irq_create_mapping(NULL, (IFX_uint32_t)pInitDev->usedIRQ);
#endif
+#endif
/* ============================================================================ pTmpXCntrl = MEI_VrxXDevToIrqListAdd(
Local macro definition MEI_DRV_LINENUM_GET(pMeiDev),
@@ -1527,32 +1528,35 @@ --- a/src/drv_mei_cpe_api_atm_ptm_intern.c
return IFX_ERROR; +++ b/src/drv_mei_cpe_api_atm_ptm_intern.c
@@ -193,6 +193,51 @@ int ifx_mei_atm_led_blink(void)
return IFX_SUCCESS;
} }
+#define PMU_DFE BIT(9) +#if MEI_MAX_DFE_CHAN_DEVICES > 1
+#error "Compat functions do not support MEI_MAX_DFE_CHAN_DEVICES > 1 yet"
+#else
+int (*ifx_mei_atm_showtime_enter)(struct port_cell_info *, void *) = NULL;
+int (*ifx_mei_atm_showtime_exit)(void) = NULL;
+ +
IFX_int32_t MEI_BasicChipInit(IFX_void_t) +ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
{ + struct port_cell_info *cellInfo,
/* Power up MEI */ + void *xdata) {
- DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE); + if (ifx_mei_atm_showtime_enter)
- + return ifx_mei_atm_showtime_enter(cellInfo, xdata);
- if (ifx_pmu_pg_dsl_dfe_enable() != 0) +
+// DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE); + return -e_MEI_ERR_OP_FAILED;
+ltq_pmu_enable(PMU_DFE); +}
+ /* if (ifx_pmu_pg_dsl_dfe_enable() != 0) +
{ +ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
PRN_ERR_USR_NL( MEI_MEI_ACCESS, MEI_DRV_PRN_LEVEL_ERR, + if (ifx_mei_atm_showtime_exit)
("MEI: ERROR - DSL DFE PG enable failed!" MEI_DRV_CRLF)); + return ifx_mei_atm_showtime_exit();
return IFX_ERROR; +
- } + return -e_MEI_ERR_OP_FAILED;
+ }*/ +}
+
+void* ppa_callback_get(e_ltq_mei_cb_type type) {
+ switch (type) {
+ case LTQ_MEI_SHOWTIME_ENTER:
+ return &ltq_ifx_mei_atm_showtime_enter_compat;
+ case LTQ_MEI_SHOWTIME_EXIT:
+ return &ltq_ifx_mei_atm_showtime_exit_compat;
+ break;
+ }
+
+ BUG();
+}
+
+int ifx_mei_atm_showtime_check(int *is_showtime,
+ struct port_cell_info *port_cell,
+ void **xdata_addr) {
+ return ltq_mei_atm_showtime_check(0, is_showtime, port_cell, xdata_addr);
+}
+
+EXPORT_SYMBOL(ifx_mei_atm_showtime_enter);
+EXPORT_SYMBOL(ifx_mei_atm_showtime_exit);
+EXPORT_SYMBOL(ifx_mei_atm_showtime_check);
+#endif
+
EXPORT_SYMBOL (MEI_InternalXtmSwhowtimeEntrySignal);
EXPORT_SYMBOL (MEI_InternalXtmSwhowtimeExitSignal);
EXPORT_SYMBOL(ifx_mei_atm_led_blink);
--- a/src/drv_mei_cpe_api_atm_ptm_intern.h
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.h
@@ -21,7 +21,6 @@
return IFX_SUCCESS; #include "drv_mei_cpe_config.h"
} #include "drv_mei_cpe_interface.h"
-#include <net/ppa_stack_al.h>
IFX_int32_t MEI_BasicChipExit(IFX_void_t) #if (MEI_EXPORT_INTERNAL_API == 1) && (MEI_DRV_ATM_PTM_INTERFACE_ENABLE == 1)
@@ -42,8 +41,20 @@ extern IFX_int32_t MEI_InternalXtmSwhowt
MEI_DYN_CNTRL_T *pMeiDynCntrl,
MEI_XTM_ShowtimeExit_t *pArgXtm);
+#if 1
+typedef enum {
+ LTQ_MEI_SHOWTIME_ENTER,
+ LTQ_MEI_SHOWTIME_EXIT
+} e_ltq_mei_cb_type;
+
+typedef void (*ltq_mei_atm_showtime_enter_t)(IFX_uint8_t, struct port_cell_info *, void *);
+typedef void (*ltq_mei_atm_showtime_exit_t)(IFX_uint8_t);
+
+void* ppa_callback_get(e_ltq_mei_cb_type type);
+#else
extern int ppa_callback_set(e_ltq_mei_cb_type type, void *func);
extern void* ppa_callback_get(e_ltq_mei_cb_type type);
+#endif
int ltq_mei_atm_showtime_check (
const unsigned char line_idx,
--- a/src/drv_mei_cpe_device_vrx.c
+++ b/src/drv_mei_cpe_device_vrx.c
@@ -27,13 +27,6 @@
#include "drv_mei_cpe_mei_interface.h"
#include "drv_mei_cpe_api.h"
-#if defined(LINUX)
-# if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0))
-# include "ifx_pcie.h"
-# else
-# include "lantiq_pcie.h"
-# endif
-#endif /* #if defined(LINUX)*/
IFX_int32_t MEI_GPIntProcess(MEI_MeiRegVal_t processInt, MEI_DEV_T *pMeiDev)
{ {
- if (ifx_pmu_pg_dsl_dfe_disable() != 0) @@ -81,6 +74,7 @@ IFX_int32_t MEI_GetChipInfo(MEI_DEV_T *p
+/* if (ifx_pmu_pg_dsl_dfe_disable() != 0) */
{ IFX_int32_t MEI_VR10_PcieEntitiesCheck(IFX_uint8_t nEntityNum)
PRN_ERR_USR_NL( MEI_MEI_ACCESS, MEI_DRV_PRN_LEVEL_ERR, {
("MEI: ERROR - DSL DFE PG disable failed!" MEI_DRV_CRLF)); +#if 0
return IFX_ERROR; IFX_uint32_t pcie_entitiesNum;
/* get information from pcie driver */
@@ -101,6 +95,9 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I
} }
-
+*/
/* Power down MEI */
- DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE);
+// DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE);
+ltq_pmu_disable(PMU_DFE);
return IFX_SUCCESS; return IFX_SUCCESS;
+#else
+ return IFX_ERROR;
+#endif
} }
Index: drv_mei_cpe-1.2.0/src/Makefile.am
=================================================================== /**
--- drv_mei_cpe-1.2.0.orig/src/Makefile.am 2013-09-01 21:05:24.581025175 +0200 @@ -115,6 +112,7 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I
+++ drv_mei_cpe-1.2.0/src/Makefile.am 2013-09-01 21:05:30.765025452 +0200 */
@@ -97,8 +97,6 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
drv_mei_cpe_dbg_driver.h\ {
drv_mei_cpe_linux.c\ +#if 0
drv_mei_cpe_linux.h\ IFX_uint8_t entityNum;
- drv_mei_cpe_linux_proc_config.c\ ifx_pcie_ep_dev_t MEI_pcie_ep_dev;
- drv_mei_cpe_linux_proc_config.h\
drv_mei_cpe_vxworks.c\ @@ -137,6 +135,9 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_
drv_mei_cpe_vxworks.h\ pMeiDrvCntrl->MEI_pcie_irq = MEI_pcie_ep_dev.irq;
drv_mei_cpe_vxworks_bsp.c\
return IFX_SUCCESS;
+#else
+ return IFX_ERROR;
+#endif
}
/**
@@ -151,6 +152,7 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_
*/
IFX_int32_t MEI_VR10_PcieEntityFree(IFX_uint8_t entityNum)
{
+#if 0
if (ifx_pcie_ep_dev_info_release(entityNum))
{
PRN_ERR_USR_NL( MEI_DRV, MEI_DRV_PRN_LEVEL_ERR,
@@ -160,6 +162,9 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_
}
return IFX_SUCCESS;
+#else
+ return IFX_ERROR;
+#endif
}
/**
@@ -174,6 +179,7 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_
*/
IFX_int32_t MEI_VR10_InternalInitDevice(MEI_DYN_CNTRL_T *pMeiDynCntrl)
{
+#if 0
IFX_int32_t retVal;
IOCTL_MEI_devInit_t InitDev;
MEI_DEV_T *pMeiDev = pMeiDynCntrl->pMeiDev;
@@ -198,5 +204,8 @@ IFX_int32_t MEI_VR10_InternalInitDevice(
*MEI_GPIO_U32REG(GPIO_P0_ALSEL1) &= ~((1 << 0) | (1 << 3) | (1 << 8));
return IFX_SUCCESS;
+#else
+ return IFX_ERROR;
+#endif
}

View file

@ -7,14 +7,14 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ltq-vdsl-vr9 PKG_NAME:=ltq-vdsl-vr9
PKG_VERSION:=4.11.4 PKG_VERSION:=4.16.2.4
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BASE_NAME:=drv_dsl_cpe_api_vrx PKG_BASE_NAME:=drv_dsl_cpe_api_vrx
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/drv_dsl_cpe_api-$(PKG_VERSION) PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_BASE_NAME)/archive/v$(PKG_VERSION)
PKG_MD5SUM:=b6d9c1e3c5db1bfcd6e81bb2f582cadb PKG_MD5SUM:=0a3e35d199eb8936f3e8f61bb074223a
PKG_USE_MIPS16:=0 PKG_USE_MIPS16:=0
@ -48,16 +48,18 @@ CONFIGURE_ARGS += --enable-kernel-include="$(LINUX_DIR)/include" \
--with-lines-per-device="1" \ --with-lines-per-device="1" \
--with-channels-per-line="1" \ --with-channels-per-line="1" \
--enable-vrx \ --enable-vrx \
--enable-vrx-device=vr9 \
--enable-ifxos \ --enable-ifxos \
--enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \ --enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \
--enable-driver-include="-I$(STAGING_DIR)/usr/include/vdsl" \ --enable-driver-include="-I$(STAGING_DIR)/usr/include/vdsl" \
--enable-add-drv-cflags="-DMODULE -DINCLUDE_DSL_ATM_PTM_INTERFACE_SUPPORT -DDSL_DEBUG_DISABLE" \ --enable-add-drv-cflags="-DMODULE -DINCLUDE_DSL_ATM_PTM_INTERFACE_SUPPORT" \
--enable-adsl-led=no \ --enable-adsl-led=no \
--enable-adsl-mib=no \ --enable-adsl-mib=no \
--enable-dsl-ceoc=no \ --enable-dsl-ceoc=no \
--enable-dsl-bonding=no \ --enable-dsl-bonding=no \
--enable-linux-26 \ --enable-linux-26 \
--enable-kernelbuild="$(LINUX_DIR)" \ --enable-kernelbuild="$(LINUX_DIR)" \
--enable-debug-prints=no \
KERNEL_ARCH=mips KERNEL_ARCH=mips
CONFIGURE_ARGS += --enable-model=full CONFIGURE_ARGS += --enable-model=full

View file

@ -1,51 +1,17 @@
Index: drv_dsl_cpe_api-4.11.4/src/include/drv_dsl_cpe_os_linux.h --- a/src/Makefile.in
=================================================================== +++ b/src/Makefile.in
--- drv_dsl_cpe_api-4.11.4.orig/src/include/drv_dsl_cpe_os_linux.h 2011-10-26 00:35:29.000000000 +0200 @@ -63,7 +63,7 @@ POST_UNINSTALL = :
+++ drv_dsl_cpe_api-4.11.4/src/include/drv_dsl_cpe_os_linux.h 2012-11-28 23:05:38.766342592 +0100
@@ -17,7 +17,7 @@
#endif
#include <asm/ioctl.h>
-#include <linux/autoconf.h>
+#include <generated/autoconf.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
@@ -28,7 +28,7 @@
#include <linux/sched.h>
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
- #include <linux/utsrelease.h>
+ #include <generated/utsrelease.h>
#endif
#include <linux/types.h>
@@ -40,7 +40,6 @@
#include <linux/delay.h>
#include <linux/poll.h>
#include <asm/uaccess.h>
-#include <linux/smp_lock.h>
#ifdef INCLUDE_DSL_CPE_API_IFXOS_SUPPORT
/** IFXOS includes*/
Index: drv_dsl_cpe_api-4.11.4/src/Makefile.in
===================================================================
--- drv_dsl_cpe_api-4.11.4.orig/src/Makefile.in 2012-03-05 15:24:31.000000000 +0100
+++ drv_dsl_cpe_api-4.11.4/src/Makefile.in 2012-11-28 23:05:38.770342592 +0100
@@ -72,7 +72,7 @@
# the headerfile of linux kernels 2.6.x contain to much arithmetic # the headerfile of linux kernels 2.6.x contain to much arithmetic
# with void pointers (which is allowed for gcc!) # with void pointers (which is allowed for gcc!)
-@KERNEL_2_6_FALSE@am__append_8 = -Wpointer-arith -@KERNEL_2_6_FALSE@am__append_6 = -Wpointer-arith
+@KERNEL_2_6_FALSE@am__append_8 = +@KERNEL_2_6_FALSE@am__append_6 =
subdir = src subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = $(drv_dsl_cpe_api_include_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 $(srcdir)/Makefile.in
Index: drv_dsl_cpe_api-4.11.4/src/common/drv_dsl_cpe_os_linux.c --- a/src/common/drv_dsl_cpe_os_linux.c
=================================================================== +++ b/src/common/drv_dsl_cpe_os_linux.c
--- drv_dsl_cpe_api-4.11.4.orig/src/common/drv_dsl_cpe_os_linux.c 2011-10-26 00:35:28.000000000 +0200 @@ -11,6 +11,7 @@
+++ drv_dsl_cpe_api-4.11.4/src/common/drv_dsl_cpe_os_linux.c 2012-11-28 23:05:38.770342592 +0100
@@ -12,6 +12,7 @@
#define DSL_INTERN #define DSL_INTERN
@ -53,37 +19,21 @@ Index: drv_dsl_cpe_api-4.11.4/src/common/drv_dsl_cpe_os_linux.c
#include "drv_dsl_cpe_api.h" #include "drv_dsl_cpe_api.h"
#include "drv_dsl_cpe_api_ioctl.h" #include "drv_dsl_cpe_api_ioctl.h"
@@ -34,7 +35,7 @@ @@ -238,24 +239,10 @@ static DSL_long_t DSL_DRV_Ioctls(DSL_DRV
static DSL_ssize_t DSL_DRV_Write(DSL_DRV_file_t *pFile, const DSL_char_t * pBuf,
DSL_DRV_size_t nSize, DSL_DRV_offset_t * pLoff);
-static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_inode_t * pINode, DSL_DRV_file_t * pFile,
+static long DSL_DRV_Ioctls(DSL_DRV_file_t * pFile,
DSL_uint_t nCommand, unsigned long nArg);
static int DSL_DRV_Open(DSL_DRV_inode_t * ino, DSL_DRV_file_t * fil);
@@ -71,7 +72,7 @@
open: DSL_DRV_Open,
release: DSL_DRV_Release,
write: DSL_DRV_Write,
- ioctl: DSL_DRV_Ioctls,
+ unlocked_ioctl: DSL_DRV_Ioctls,
poll: DSL_DRV_Poll
};
#else
@@ -172,7 +173,7 @@
\return Success or failure.
\ingroup Internal
*/
-static DSL_int_t DSL_DRV_Ioctls(DSL_DRV_inode_t * pINode,
+static long DSL_DRV_Ioctls(
DSL_DRV_file_t * pFile,
DSL_uint_t nCommand,
unsigned long nArg)
@@ -222,14 +223,7 @@
}
} }
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
- if (pFile->f_dentry != DSL_NULL)
- {
- pINode = pFile->f_dentry->d_inode;
- }
- else
- {
- pINode = DSL_NULL;
- }
+ pINode = file_inode(pFile);
#endif
- if (pINode == DSL_NULL) - if (pINode == DSL_NULL)
- { - {
- bIsInKernel = DSL_TRUE; - bIsInKernel = DSL_TRUE;
@ -95,54 +45,36 @@ Index: drv_dsl_cpe_api-4.11.4/src/common/drv_dsl_cpe_os_linux.c
if ( (_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API) || if ( (_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API) ||
(_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API_G997) || (_IOC_TYPE(nCommand) == DSL_IOC_MAGIC_CPE_API_G997) ||
@@ -1082,6 +1076,7 @@ @@ -1102,6 +1089,9 @@ static void DSL_DRV_DebugInit(void)
return;
}
+static struct class *dsl_class;
+static dev_t dsl_devt;
+
/* Entry point of driver */
int __init DSL_ModuleInit(void) int __init DSL_ModuleInit(void)
{ {
DSL_int_t i; @@ -1140,6 +1130,10 @@ int __init DSL_ModuleInit(void)
+ static struct class *dsl_class;
printk(DSL_DRV_CRLF DSL_DRV_CRLF "Lantiq CPE API Driver version: %s" DSL_DRV_CRLF,
&(dsl_cpe_api_version[4]));
@@ -1127,6 +1122,10 @@
DSL_DRV_DevNodeInit(); DSL_DRV_DevNodeInit();
+ dsl_class = class_create(THIS_MODULE, "dsl_cpe_api0"); + dsl_class = class_create(THIS_MODULE, "dsl_cpe_api0");
+ device_create(dsl_class, NULL, MKDEV(DRV_DSL_CPE_API_DEV_MAJOR, 0), NULL, "dsl_cpe_api0"); + dsl_devt = MKDEV(DRV_DSL_CPE_API_DEV_MAJOR, 0);
+ + device_create(dsl_class, NULL, dsl_devt, NULL, "dsl_cpe_api0");
+ +
return 0; return 0;
} }
Index: drv_dsl_cpe_api-4.11.4/src/device/drv_dsl_cpe_msg_vrx.c @@ -1147,6 +1141,11 @@ void __exit DSL_ModuleCleanup(void)
=================================================================== {
--- drv_dsl_cpe_api-4.11.4.orig/src/device/drv_dsl_cpe_msg_vrx.c 2012-03-05 11:25:21.000000000 +0100 printk("Module will be unloaded"DSL_DRV_CRLF);
+++ drv_dsl_cpe_api-4.11.4/src/device/drv_dsl_cpe_msg_vrx.c 2012-11-28 23:06:46.418344288 +0100
@@ -685,6 +685,7 @@
DSL_ProfileType_t nProfile = DSL_PROFILE_LAST;
DSL_G997_XTUSystemEnablingData_t data = {{0,0,0,0,0,0,0,0}};
+ //printk("%s:%s[%d]\n", __FILE__, __func__, __LINE__); + device_destroy(dsl_class, dsl_devt);
DSL_DEBUG( DSL_DBG_MSG, + dsl_devt = NULL;
(pContext, SYS_DBG_MSG"DSL[%02d]: IN - DSL_DRV_VXX_SendMsgSelectedProfileVdsl2Get" + class_destroy(dsl_class);
DSL_DRV_CRLF, DSL_DEV_NUM(pContext))); + dsl_class = NULL;
@@ -985,8 +988,10 @@
/* Check consistency of XTSE status setting - Only one bit should be set at
a time */
+ //printk("XTSE (%d) - ", DSL_G997_NUM_XTSE_OCTETS);
for (i = 0, nBitCount = 0; i < DSL_G997_NUM_XTSE_OCTETS; i++)
{
+ //printk("%02X ", data.XTSE[i]);
for (j = 0; j < 8; j++)
{
if ( ((data.XTSE[i] >> j) & 0x01) != 0)
@@ -996,6 +1001,8 @@
}
}
+ //printk("\n");
+ +
if (nBitCount > 1) unregister_chrdev(nMajorNum, DRV_DSL_CPE_API_DEV_NAME);
{
DSL_DEBUG( DSL_DBG_ERR, DSL_DRV_Cleanup();

View file

@ -7,13 +7,13 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ltq-vdsl-app PKG_NAME:=ltq-vdsl-app
PKG_VERSION:=4.11.4 PKG_VERSION:=4.16.2.4
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BASE_NAME:=dsl_cpe_control_vrx PKG_BASE_NAME:=dsl_cpe_control_vrx
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/ PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_BASE_NAME)/archive/v$(PKG_VERSION)
PKG_MD5SUM:=e9152ced26a91fbeefa4f34badb97484 PKG_MD5SUM:=487925ef5327ea38c544035b388de8bb
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/dsl_cpe_control-$(PKG_VERSION) PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
PKG_LICENSE:=BSD-2-Clause PKG_LICENSE:=BSD-2-Clause
PKG_BUILD_DEPENDS:=kmod-ltq-vdsl-vr9 PKG_BUILD_DEPENDS:=kmod-ltq-vdsl-vr9
@ -25,7 +25,7 @@ define Package/ltq-vdsl-app
CATEGORY:=Network CATEGORY:=Network
TITLE:=Lantiq VDSL userland tool TITLE:=Lantiq VDSL userland tool
URL:=http://www.lantiq.com/ URL:=http://www.lantiq.com/
DEPENDS:=@TARGET_lantiq_xrx200 +libpthread DEPENDS:=@TARGET_lantiq_xrx200 +libpthread +librt
endef endef
define Package/ltq-vdsl-app/description define Package/ltq-vdsl-app/description
@ -43,7 +43,7 @@ CONFIGURE_ARGS += \
--enable-ifxos \ --enable-ifxos \
--enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \ --enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \
--enable-ifxos-library="-I$(STAGING_DIR)/usr/lib" \ --enable-ifxos-library="-I$(STAGING_DIR)/usr/lib" \
--enable-dsl-ceoc \ --disable-dsl-ceoc \
--enable-dsl-pm-total \ --enable-dsl-pm-total \
--enable-dsl-pm-showtime \ --enable-dsl-pm-showtime \
--enable-dsl-pm-line-counters \ --enable-dsl-pm-line-counters \
@ -53,6 +53,7 @@ CONFIGURE_ARGS += \
--enable-deprecated \ --enable-deprecated \
--disable-soap-support \ --disable-soap-support \
--enable-dsl-bonding=no \ --enable-dsl-bonding=no \
--enable-debug-prints=err \
--disable-dti --disable-dti
ifeq ($(CONFIG_IFX_CLI),y) ifeq ($(CONFIG_IFX_CLI),y)

View file

@ -12,7 +12,6 @@ SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1 SERVICE_WRITE_PID=1
[ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh [ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh
XDSL_CTRL=vdsl_cpe_control
# G.992.1 Annex A # G.992.1 Annex A
# G.992.2 Annex A # G.992.2 Annex A
@ -38,105 +37,14 @@ xtse_adsl_j="10 00 10 40 00 04 01 00"
xtse_vdsl="00 00 00 00 00 00 00 07" xtse_vdsl="00 00 00 00 00 00 00 07"
xdsl_scr() {
val=`echo $2 | sed "s/ / 0x/g"`
echo "[WaitForConfiguration]={
#G997XTUSEC_g997xtusecs 0x$val
}
[WaitForLinkActivate]={
}
[WaitForRestart]={
}
[Common]={
}" > /tmp/$1.scr
}
# A43
tone_adsl_a="0x142"
tone_vdsl_a="0x142"
# A43 + V43
tone_adsl_av="0x142"
tone_vdsl_av="0x146"
# B43
tone_adsl_b="0x1"
tone_vdsl_b="0x1"
# B43 + V43
tone_adsl_bv="0x1"
tone_vdsl_bv="0x5"
lowlevel_cfg() {
echo "# VRX Low Level Configuration File
#
# Parameters must be separated by tabs or spaces.
# Empty lines and comments will be ignored.
#
# nFilter
#
# NA = -1
# OFF = 0
# ISDN = 1
# POTS = 2
# POTS_2 = 3
# POTS_3 = 4
#
# (dec)
-1
# nHsToneGroupMode nHsToneGroup_A nHsToneGroup_V nHsToneGroup_AV
#
# NA = -1 NA = -1 see see
# AUTO = 0 VDSL2_B43 = 0x0001 nHsToneGroup_A nHsToneGroup_A
# MANUAL = 1 VDSL2_A43 = 0x0002
# VDSL2_V43 = 0x0004
# VDSL1_V43P = 0x0008
# VDSL1_V43I = 0x0010
# ADSL1_C43 = 0x0020
# ADSL2_J43 = 0x0040
# ADSL2_B43C = 0x0080
# ADSL2_A43C = 0x0100
#
# (dec) (hex) (hex) (hex)
1 $1 $2 0x0
# nBaseAddr nIrqNum
#
# (hex) (dec)
0x1e116000 63
# nUtopiaPhyAdr nUtopiaBusWidth nPosPhyParity
# default(16b) = 0 NA = -1
# 8-bit = 1 ODD = 0
# 16-bit = 2
#
#
# (hex) (dec) (dec)
0xFF 0 0
# bNtrEnable
#
# (dec)
0" > /tmp/lowlevel.cfg
}
start() { start() {
local annex local annex
local firmware local firmware
local tone
local tone_adsl
local tone_vdsl
local xtse local xtse
local xtse_adsl local xtse_adsl
local mode local mode
config_load network config_load network
config_get tone dsl tone
config_get annex dsl annex config_get annex dsl annex
config_get firmware dsl firmware config_get firmware dsl firmware
config_get xfer_mode dsl xfer_mode config_get xfer_mode dsl xfer_mode
@ -158,33 +66,19 @@ start() {
if [ "${xtse_adsl}" ]; then if [ "${xtse_adsl}" ]; then
xtse=$xtse_adsl xtse=$xtse_adsl
else else
xtse_adsl=$xtse_adsl_a
xtse=$xtse_vdsl xtse=$xtse_vdsl
fi fi
eval "tone_adsl=\"\${tone_adsl_$tone}\""
[ -z "${tone_adsl}" ] && tone_adsl=$tone_adsl_av
eval "tone_vdsl=\"\${tone_vdsl_$tone}\""
[ -z "${tone_vdsl}" ] && tone_vdsl=$tone_vdsl_av
[ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin [ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin
[ -f "${firmware}" ] || { [ -f "${firmware}" ] || {
echo failed to find $firmware echo failed to find $firmware
return 1 return 1
} }
xdsl_scr adsl "${xtse_adsl}"
xdsl_scr vdsl "${xtse_vdsl}"
lowlevel_cfg "${tone_adsl}" "${tone_vdsl}"
service_start /sbin/vdsl_cpe_control \ service_start /sbin/vdsl_cpe_control \
-i `echo $xtse | sed "s/ /_/g"` \ -i `echo $xtse | sed "s/ /_/g"` \
-n /sbin/dsl_notify.sh \ -n /sbin/dsl_notify.sh \
-f ${firmware} \ -f ${firmware} \
-a /tmp/adsl.scr \
-A /tmp/vdsl.scr \
-l /tmp/lowlevel.cfg \
-M ${mode} -M ${mode}
} }

View file

@ -1,26 +1,22 @@
Index: dsl_cpe_control-4.11.4/src/dsl_cpe_init_cfg.c --- a/src/dsl_cpe_init_cfg.c
=================================================================== +++ b/src/dsl_cpe_init_cfg.c
--- dsl_cpe_control-4.11.4.orig/src/dsl_cpe_init_cfg.c 2011-10-26 00:35:26.000000000 +0200 @@ -38,7 +38,7 @@ DSL_InitData_t gInitCfgData =
+++ dsl_cpe_control-4.11.4/src/dsl_cpe_init_cfg.c 2012-11-28 15:53:10.857692092 +0100 DSL_DEV_HS_TONE_GROUP_CLEANED, \
@@ -43,7 +43,7 @@ DSL_DEV_HS_TONE_GROUP_CLEANED, \
{ DSL_DEV_HS_TONE_GROUP_CLEANED, \
DSL_CPE_LL_CFG_SET(-1, -1, DSL_DEV_HS_TONE_GROUP_VDSL2_B43, \
DSL_DEV_HS_TONE_GROUP_VDSL2_B43, DSL_DEV_HS_TONE_GROUP_VDSL2_B43, \
- 0x1E116000, 0x37, -1), - 0x1E116000, 0x37, -1),
+ 0x1E116000, 0x3f, -1), + 0x1E116000, 0x3f, -1),
#endif DSL_CPE_SIC_SET(DSL_TC_ATM, DSL_EMF_TC_CLEANED, DSL_EMF_TC_CLEANED, DSL_SYSTEMIF_MII, \
DSL_TC_EFM, DSL_EMF_TC_CLEANED, DSL_EMF_TC_CLEANED, DSL_SYSTEMIF_MII),
#if defined(INCLUDE_DSL_CPE_API_VINAX) }
Index: dsl_cpe_control-4.11.4/src/dsl_cpe_control.c --- a/src/dsl_cpe_control.c
=================================================================== +++ b/src/dsl_cpe_control.c
--- dsl_cpe_control-4.11.4.orig/src/dsl_cpe_control.c 2012-01-13 15:15:34.000000000 +0100 @@ -6856,7 +6856,7 @@ DSL_int_t dsl_cpe_daemon (
+++ dsl_cpe_control-4.11.4/src/dsl_cpe_control.c 2012-11-28 15:53:23.465692408 +0100 for (nDevice = 0; nDevice < DSL_CPE_MAX_DSL_ENTITIES; nDevice++)
@@ -6432,7 +6432,7 @@
for (nDevice = 0; nDevice < DSL_CPE_MAX_DEVICE_NUMBER; nDevice++)
{ {
#if defined(INCLUDE_DSL_CPE_API_VINAX) || defined(INCLUDE_DSL_CPE_API_VRX) #if defined(INCLUDE_DSL_CPE_API_VRX)
- sprintf (device, "%s/%d", DSL_CPE_DEVICE_NAME, nDevice); - sprintf (device, "%s/%d", DSL_CPE_DEVICE_NAME, nDevice);
+ sprintf (device, "%s%d", DSL_CPE_DEVICE_NAME, nDevice); + sprintf (device, "%s%d", DSL_CPE_DEVICE_NAME, nDevice);
#else #else
sprintf (device, "%s", DSL_CPE_DEVICE_NAME); sprintf (device, "%s", DSL_CPE_DEVICE_NAME);
#endif /* defined(INCLUDE_DSL_CPE_API_VINAX) || defined(INCLUDE_DSL_CPE_API_VRX)*/ #endif /* defined(INCLUDE_DSL_CPE_API_VRX)*/