lantiq: rename ltq-vdsl folder to ltq-vdsl-vr9
authorAndre Heider <a.heider@gmail.com>
Fri, 15 Jul 2022 12:32:59 +0000 (14:32 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 17 Sep 2022 15:39:23 +0000 (17:39 +0200)
Now PKG_NAME matches the folder name, and this will avoid confusion with
any future version.

Signed-off-by: Andre Heider <a.heider@gmail.com>
13 files changed:
package/kernel/lantiq/ltq-vdsl-vr9/Makefile [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl-vr9/patches/001-fix-compile.patch [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl-vr9/patches/020-not-leak-cflags.patch [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl-vr9/patches/100-compat.patch [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl-vr9/patches/110-semaphore-lock.patch [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl-vr9/patches/200-fix-elapsed-time.patch [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl/Makefile [deleted file]
package/kernel/lantiq/ltq-vdsl/patches/001-fix-compile.patch [deleted file]
package/kernel/lantiq/ltq-vdsl/patches/020-not-leak-cflags.patch [deleted file]
package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch [deleted file]
package/kernel/lantiq/ltq-vdsl/patches/110-semaphore-lock.patch [deleted file]
package/kernel/lantiq/ltq-vdsl/patches/200-fix-elapsed-time.patch [deleted file]
package/network/config/ltq-vdsl-app/Makefile

diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/Makefile b/package/kernel/lantiq/ltq-vdsl-vr9/Makefile
new file mode 100644 (file)
index 0000000..da924e8
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright (C) 2012 OpenWrt.org
+# Copyright (C) 2015-2016 Lantiq Beteiligungs GmbH & Co KG.
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=ltq-vdsl-vr9
+PKG_VERSION:=4.17.18.6
+PKG_RELEASE:=7
+
+PKG_BASE_NAME:=drv_dsl_cpe_api
+PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz
+PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=@OPENWRT
+PKG_HASH:=b4966a60653acc49254b168c6cc9c49eb36c54548e763617788aa4f252a29f21
+PKG_LICENSE:=GPL-2.0 BSD-2-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_FIXUP:=autoreconf
+
+PKG_MAINTAINER:=John Crispin <john@phrozen.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+define KernelPackage/ltq-vdsl-vr9
+  TITLE:=vdsl driver
+  SECTION:=sys
+  SUBMENU:=Network Devices
+  DEPENDS:=@TARGET_lantiq_xrx200 +kmod-ltq-vdsl-vr9-mei
+  FILES:=$(PKG_BUILD_DIR)/src/drv_dsl_cpe_api.ko
+  AUTOLOAD:=$(call AutoLoad,51,drv_dsl_cpe_api)
+endef
+
+define Package/ltq-vdsl-vr9/description
+       This package contains the Lantiq DSL CPE API driver.
+
+       Supported Devices:
+               - VRX200 Family
+endef
+
+MAKE_FLAGS += \
+       $(KERNEL_MAKE_FLAGS) \
+       SHELL="$(BASH)"
+
+CONFIGURE_ARGS += --enable-kernel-include="$(LINUX_DIR)/include" \
+       --with-max-device="1" \
+       --with-lines-per-device="1" \
+       --with-channels-per-line="1" \
+       --enable-vrx \
+       --enable-vrx-device=vr9 \
+       --enable-ifxos \
+       --enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \
+       --enable-driver-include="-I$(STAGING_DIR)/usr/include/vdsl" \
+       --enable-add-drv-cflags="-DMODULE -DINCLUDE_DSL_ATM_PTM_INTERFACE_SUPPORT" \
+       --enable-linux-26 \
+       --enable-kernelbuild="$(LINUX_DIR)" \
+       --enable-debug-prints=no \
+       ARCH=mips
+
+CONFIGURE_ARGS += \
+       --enable-model=full \
+       --enable-dsl-ceoc=no
+#CONFIGURE_ARGS += --enable-model=lite
+#CONFIGURE_ARGS += --enable-model=footprint
+#CONFIGURE_ARGS += --enable-model=typical
+#CONFIGURE_ARGS += --enable-model=debug
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/drv_vdsl_cpe_api
+       $(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe*.h $(1)/usr/include/drv_vdsl_cpe_api/
+endef
+
+$(eval $(call KernelPackage,ltq-vdsl-vr9))
diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/patches/001-fix-compile.patch b/package/kernel/lantiq/ltq-vdsl-vr9/patches/001-fix-compile.patch
new file mode 100644 (file)
index 0000000..1355a1a
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/src/include/drv_dsl_cpe_os_linux.h
++++ b/src/include/drv_dsl_cpe_os_linux.h
+@@ -33,6 +33,9 @@
+ #endif
+ #include <linux/sched.h>
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
++#include <linux/sched/signal.h>
++#endif
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
+    #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/patches/020-not-leak-cflags.patch b/package/kernel/lantiq/ltq-vdsl-vr9/patches/020-not-leak-cflags.patch
new file mode 100644 (file)
index 0000000..96e69ac
--- /dev/null
@@ -0,0 +1,32 @@
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -244,10 +244,7 @@ else
+ drv_dsl_cpe_api_common_mod_cflags =
+ endif
+-drv_dsl_cpe_api_common_cflags = -DLINUX -D__LINUX__ -D__KERNEL__ -DEXPORT_SYMTAB \
+-    -pipe -Wall -Wformat -Wimplicit -Wunused -Wswitch -Wcomment -Winline \
+-    -Wuninitialized -Wparentheses -Wsign-compare -Wreturn-type \
+-    -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
++drv_dsl_cpe_api_common_cflags = -DLINUX -D__LINUX__ -D__KERNEL__ -DEXPORT_SYMTAB
+ if DSL_DBG_MAX_LEVEL_SET
+ drv_dsl_cpe_api_common_cflags += -DDSL_DBG_MAX_LEVEL=$(DSL_DBG_MAX_LEVEL_PRE)
+@@ -257,7 +254,7 @@ endif
+ drv_dsl_cpe_api_target_cflags = $(ADD_DRV_CFLAGS)
+ # compile cflags
+-drv_dsl_cpe_api_compile_cflags = $(EXTRA_DRV_CFLAGS)
++drv_dsl_cpe_api_compile_cflags =
+ if !KERNEL_2_6
+ # the headerfile of linux kernels 2.6.x contain to much arithmetic
+@@ -311,7 +308,7 @@ drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SO
+       @echo -e "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
+       @echo -e "obj-m := $(subst .ko,.o,$@)"                  >> $(PWD)/Kbuild
+       @echo -e "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)"        >> $(PWD)/Kbuild
+-      @echo -e "EXTRA_CFLAGS := $(CFLAGS) -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include"    >> $(PWD)/Kbuild
++      @echo -e "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include"      >> $(PWD)/Kbuild
+       $(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
+ clean-generic:
diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/patches/100-compat.patch b/package/kernel/lantiq/ltq-vdsl-vr9/patches/100-compat.patch
new file mode 100644 (file)
index 0000000..7670fe6
--- /dev/null
@@ -0,0 +1,129 @@
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -117,7 +117,7 @@ POST_UNINSTALL = :
+ # the headerfile of linux kernels 2.6.x contain to much arithmetic
+ # with void pointers (which is allowed for gcc!)
+-@KERNEL_2_6_FALSE@am__append_6 = -Wpointer-arith
++@KERNEL_2_6_FALSE@am__append_6 =
+ subdir = src
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/configure.in
+--- a/src/common/drv_dsl_cpe_os_linux.c
++++ b/src/common/drv_dsl_cpe_os_linux.c
+@@ -11,6 +11,7 @@
+ #define DSL_INTERN
++#include <linux/device.h>
+ #include "drv_dsl_cpe_api.h"
+ #include "drv_dsl_cpe_api_ioctl.h"
+@@ -249,14 +250,7 @@ static DSL_long_t DSL_DRV_Ioctls(DSL_DRV
+    }
+ #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)
+@@ -491,7 +485,11 @@ DSL_void_t* DSL_DRV_VMalloc(
+    DSL_DRV_size_t    nSize)
+ {
+    /* VRX500-BU: Better to use vmalloc or vzmalloc here?! */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
+    return __vmalloc((unsigned long)nSize, GFP_KERNEL, PAGE_KERNEL);
++#else
++   return __vmalloc((unsigned long)nSize, GFP_KERNEL);
++#endif
+    /*   return vmalloc(nSize);*/
+ }
+@@ -917,12 +915,19 @@ DSL_int32_t DSL_DRV_ThreadShutdown(
+ DSL_uint32_t DSL_DRV_SysTimeGet(DSL_uint32_t nOffset)
+ {
+-   struct timeval tv;
+    DSL_uint32_t nTime = 0;
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0))
++   struct timeval tv;
+    memset(&tv, 0, sizeof(tv));
+    do_gettimeofday(&tv);
+    nTime = (DSL_uint32_t)tv.tv_sec;
++#else
++   struct timespec64 now;
++
++   ktime_get_real_ts64(&now);
++   nTime = (DSL_uint32_t)now.tv_sec;
++#endif
+    if ( (nOffset == 0) || (nOffset > nTime) )
+    {
+@@ -1203,6 +1208,9 @@ static void DSL_DRV_NlSendMsg(DSL_char_t
+ }
+ #endif
++static struct class *dsl_class;
++static dev_t dsl_devt;
++
+ /* Entry point of driver */
+ int __init DSL_ModuleInit(void)
+ {
+@@ -1241,6 +1249,10 @@ int __init DSL_ModuleInit(void)
+    DSL_DRV_DevNodeInit();
++   dsl_class = class_create(THIS_MODULE, DRV_DSL_CPE_API_DEV_NAME);
++   dsl_devt = MKDEV(DRV_DSL_CPE_API_DEV_MAJOR, 0);
++   device_create(dsl_class, NULL, dsl_devt, NULL, "dsl_cpe_api/0");
++
+    return 0;
+ }
+@@ -1248,6 +1260,11 @@ void __exit DSL_ModuleCleanup(void)
+ {
+    printk("Module will be unloaded"DSL_DRV_CRLF);
++   device_destroy(dsl_class, dsl_devt);
++   dsl_devt = NULL;
++   class_destroy(dsl_class);
++   dsl_class = NULL;
++
+    unregister_chrdev(nMajorNum, DRV_DSL_CPE_API_DEV_NAME);
+    
+    DSL_DRV_Cleanup();
+--- a/src/device/drv_dsl_cpe_device_vrx.c
++++ b/src/device/drv_dsl_cpe_device_vrx.c
+@@ -5337,6 +5337,7 @@ DSL_Error_t DSL_DRV_DEV_HybridTypeGet(
+ #undef DSL_DBG_BLOCK
+ #define DSL_DBG_BLOCK DSL_DBG_NOTIFICATIONS
++#if 0
+ DSL_Error_t DSL_DRV_DEV_MeiTcLayerSignaling
+ (
+    DSL_Context_t *pContext,
+@@ -5384,6 +5385,15 @@ DSL_Error_t DSL_DRV_DEV_MeiTcLayerSignal
+    return nErrCode;
+ }
++#else
++DSL_Error_t DSL_DRV_DEV_MeiTcLayerSignaling
++(
++   DSL_Context_t *pContext,
++   DSL_TcLayerSelection_t nTcLayer)
++{
++   return DSL_SUCCESS;
++}
++#endif
+ DSL_Error_t DSL_DRV_DEV_MeiShowtimeSignaling
+ (
diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/patches/110-semaphore-lock.patch b/package/kernel/lantiq/ltq-vdsl-vr9/patches/110-semaphore-lock.patch
new file mode 100644 (file)
index 0000000..12c00c3
--- /dev/null
@@ -0,0 +1,107 @@
+--- a/src/include/drv_dsl_cpe_pm_core.h
++++ b/src/include/drv_dsl_cpe_pm_core.h
+@@ -1510,9 +1510,9 @@ typedef struct
+    /** Common PM module mutex*/
+    DSL_DRV_Mutex_t pmMutex;
+    /** PM module direction Near-End mutex*/
+-   DSL_DRV_Mutex_t pmNeMutex;
++   struct semaphore pmNeMutex;
+    /** PM module direction Far-End mutex*/
+-   DSL_DRV_Mutex_t pmFeMutex;
++   struct semaphore pmFeMutex;
+    /** PM module Near-End access mutex*/
+    DSL_DRV_Mutex_t pmNeAccessMutex;
+    /** PM module Far-End access mutex*/
+--- a/src/pm/drv_dsl_cpe_api_pm.c
++++ b/src/pm/drv_dsl_cpe_api_pm.c
+@@ -220,9 +220,9 @@ DSL_Error_t DSL_DRV_PM_Start(
+    /* init PM module common mutex */
+    DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmMutex);
+    /* init PM module direction Near-End mutex */
+-   DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
++   sema_init(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex),1);
+    /* init PM module direction Far-End mutex */
+-   DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
++   sema_init(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex),1);
+    /* init PM module Near-End access mutex */
+    DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmNeAccessMutex);
+    /* init PM module Far-End access mutex */
+@@ -592,7 +592,7 @@ DSL_Error_t DSL_DRV_PM_Stop(
+    if( DSL_DRV_PM_CONTEXT(pContext)->pmThreadFe.bRun != DSL_TRUE )
+    {
+       DSL_DEBUG(DSL_DBG_WRN,
+-         (pContext, SYS_DBG_WRN"DSL[%02d]: PM module Near-End thread already stopped"
++         (pContext, SYS_DBG_WRN"DSL[%02d]: PM module Far-End thread already stopped"
+          DSL_DRV_CRLF, DSL_DEV_NUM(pContext)));
+    }
+    else
+--- a/src/pm/drv_dsl_cpe_pm_core.c
++++ b/src/pm/drv_dsl_cpe_pm_core.c
+@@ -1022,7 +1022,7 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
+    {
+       if( bLock )
+       {
+-         if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex) )
++         if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex)))
+          {
+             DSL_DEBUG( DSL_DBG_ERR,
+                (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM NE mutex!"
+@@ -1034,14 +1034,14 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
+       else
+       {
+           /* Unlock PM module NE Mutex*/
+-          DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
++          up(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex));
+       }
+    }
+    else
+    {
+       if( bLock )
+       {
+-         if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex) )
++         if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex)))
+          {
+             DSL_DEBUG( DSL_DBG_ERR,
+                (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM FE mutex!"
+@@ -1053,7 +1053,7 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
+       else
+       {
+          /* Unlock PM module FE Mutex*/
+-         DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
++         up(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex));
+       }
+    }
+@@ -1139,7 +1139,7 @@ DSL_Error_t DSL_DRV_PM_Lock(DSL_Context_
+    if( !(DSL_DRV_PM_CONTEXT(pContext)->bPmLock) )
+    {
+       /* Lock PM module Near-End Mutex*/
+-      if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex) )
++      if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex)))
+       {
+          DSL_DEBUG( DSL_DBG_ERR,
+             (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM NE mutex!"
+@@ -1148,8 +1148,8 @@ DSL_Error_t DSL_DRV_PM_Lock(DSL_Context_
+          return DSL_ERR_SEMAPHORE_GET;
+       }
+-      /* Lock PM module Near-End Mutex*/
+-      if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex) )
++      /* Lock PM module Far-End Mutex*/
++      if( down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex)) )
+       {
+          DSL_DEBUG( DSL_DBG_ERR,
+             (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM FE mutex!"
+@@ -1193,10 +1193,10 @@ DSL_Error_t DSL_DRV_PM_UnLock(DSL_Contex
+    if( DSL_DRV_PM_CONTEXT(pContext)->bPmLock )
+    {
+       /* Unlock PM module NE Mutex*/
+-      DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
++      up(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex));
+       /* Unlock PM module FE Mutex*/
+-      DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
++      up(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex));
+       /* Clear bPmLock flag*/
+       DSL_DRV_PM_CONTEXT(pContext)->bPmLock = DSL_FALSE;
diff --git a/package/kernel/lantiq/ltq-vdsl-vr9/patches/200-fix-elapsed-time.patch b/package/kernel/lantiq/ltq-vdsl-vr9/patches/200-fix-elapsed-time.patch
new file mode 100644 (file)
index 0000000..3ec8546
--- /dev/null
@@ -0,0 +1,122 @@
+--- a/src/include/drv_dsl_cpe_pm_core.h
++++ b/src/include/drv_dsl_cpe_pm_core.h
+@@ -1552,9 +1552,9 @@ typedef struct
+    DSL_boolean_t bShowtimeProcessingStart;
+    /** Showtime reached flag*/
+    DSL_boolean_t bShowtimeInvTrigger;
+-   /** Current Showtime synchronization time to be used, (msec) */
++   /** Current Showtime synchronization time to be used, (sec) */
+    DSL_uint32_t nCurrShowtimeTime;
+-   /** Showtime synchronization time to be used, (msec) */
++   /** Showtime synchronization time to be used, (sec) */
+    DSL_uint32_t nElapsedShowtimeTime;
+    /** Actual Line state*/
+    DSL_LineStateValue_t nLineState;
+--- a/src/pm/drv_dsl_cpe_api_pm.c
++++ b/src/pm/drv_dsl_cpe_api_pm.c
+@@ -1475,7 +1475,7 @@ DSL_Error_t DSL_DRV_PM_ChannelCountersTo
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pChCounters = DSL_DRV_PM_PTR_CHANNEL_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
+@@ -1535,7 +1535,7 @@ DSL_Error_t DSL_DRV_PM_ChannelCountersEx
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pChCounters = DSL_DRV_PM_PTR_CHANNEL_COUNTERS_TOTAL_EXT(pCounters->nChannel);
+@@ -2518,7 +2518,7 @@ DSL_Error_t DSL_DRV_PM_DataPathCountersT
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pDpCounters = DSL_DRV_PM_PTR_DATAPATH_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
+@@ -3352,7 +3352,7 @@ DSL_Error_t DSL_DRV_PM_DataPathFailureCo
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pDpCounters = DSL_DRV_PM_PTR_DATAPATH_FAILURE_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
+@@ -4130,7 +4130,7 @@ DSL_Error_t DSL_DRV_PM_LineSecCountersTo
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pLineCounters = DSL_DRV_PM_PTR_LINE_SEC_COUNTERS_TOTAL(pCounters->nDirection);
+@@ -4787,7 +4787,7 @@ DSL_Error_t DSL_DRV_PM_LineInitCountersT
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pLinitCounters = DSL_DRV_PM_PTR_LINE_INIT_COUNTERS_TOTAL();
+@@ -5240,7 +5240,7 @@ DSL_Error_t DSL_DRV_PM_LineEventShowtime
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pLfCounters = DSL_DRV_PM_PTR_LINE_EVENT_SHOWTIME_COUNTERS_TOTAL(pCounters->nDirection);
+@@ -5720,7 +5720,7 @@ DSL_Error_t DSL_DRV_PM_ReTxCountersTotal
+    }
+    /* Fill Total Counters elapsed time*/
+-   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
++   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
+    pReTxCounters = DSL_DRV_PM_PTR_RETX_COUNTERS_TOTAL(pCounters->nDirection);
+--- a/src/pm/drv_dsl_cpe_pm_core.c
++++ b/src/pm/drv_dsl_cpe_pm_core.c
+@@ -60,6 +60,7 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
+ {
+    DSL_Error_t nErrCode = DSL_SUCCESS;
+    DSL_uint32_t msecTimeFrame = DSL_PM_COUNTER_POLLING_CYCLE,
++                secTimeFrame = DSL_PM_COUNTER_POLLING_CYCLE/DSL_PM_MSEC,
+                 nCurrMsTime = 0;
+ #ifdef INCLUDE_DSL_CPE_PM_HISTORY
+    DSL_uint32_t nCurrSysTime = 0, nPrevElapsedTime = 0;
+@@ -99,10 +100,13 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
+    {
+       /* Get elapsed time [msec] since the last entry*/
+       msecTimeFrame = nCurrMsTime  - DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck;
++
++      /* Get elapsed time [sec] since the last entry*/
++      secTimeFrame = (nCurrMsTime/DSL_PM_MSEC) - (DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck/DSL_PM_MSEC);
+    }
+    /* Get Total Elapsed Time Since the PM module startup*/
+-   DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime += msecTimeFrame;
++   DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime += secTimeFrame;
+    /* Set last time check to the current time*/
+    DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck = nCurrMsTime;
+@@ -140,7 +144,7 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
+       else
+       {
+          /* Update current showtime elapsed time*/
+-         DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime   += (msecTimeFrame/DSL_PM_MSEC);
++         DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime   += secTimeFrame;
+          DSL_DRV_PM_CONTEXT(pContext)->nElapsedShowtimeTime =
+             DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime;
+       }
diff --git a/package/kernel/lantiq/ltq-vdsl/Makefile b/package/kernel/lantiq/ltq-vdsl/Makefile
deleted file mode 100644 (file)
index da924e8..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (C) 2012 OpenWrt.org
-# Copyright (C) 2015-2016 Lantiq Beteiligungs GmbH & Co KG.
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_NAME:=ltq-vdsl-vr9
-PKG_VERSION:=4.17.18.6
-PKG_RELEASE:=7
-
-PKG_BASE_NAME:=drv_dsl_cpe_api
-PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz
-PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=@OPENWRT
-PKG_HASH:=b4966a60653acc49254b168c6cc9c49eb36c54548e763617788aa4f252a29f21
-PKG_LICENSE:=GPL-2.0 BSD-2-Clause
-PKG_LICENSE_FILES:=LICENSE
-
-PKG_FIXUP:=autoreconf
-
-PKG_MAINTAINER:=John Crispin <john@phrozen.org>
-
-include $(INCLUDE_DIR)/package.mk
-
-define KernelPackage/ltq-vdsl-vr9
-  TITLE:=vdsl driver
-  SECTION:=sys
-  SUBMENU:=Network Devices
-  DEPENDS:=@TARGET_lantiq_xrx200 +kmod-ltq-vdsl-vr9-mei
-  FILES:=$(PKG_BUILD_DIR)/src/drv_dsl_cpe_api.ko
-  AUTOLOAD:=$(call AutoLoad,51,drv_dsl_cpe_api)
-endef
-
-define Package/ltq-vdsl-vr9/description
-       This package contains the Lantiq DSL CPE API driver.
-
-       Supported Devices:
-               - VRX200 Family
-endef
-
-MAKE_FLAGS += \
-       $(KERNEL_MAKE_FLAGS) \
-       SHELL="$(BASH)"
-
-CONFIGURE_ARGS += --enable-kernel-include="$(LINUX_DIR)/include" \
-       --with-max-device="1" \
-       --with-lines-per-device="1" \
-       --with-channels-per-line="1" \
-       --enable-vrx \
-       --enable-vrx-device=vr9 \
-       --enable-ifxos \
-       --enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos" \
-       --enable-driver-include="-I$(STAGING_DIR)/usr/include/vdsl" \
-       --enable-add-drv-cflags="-DMODULE -DINCLUDE_DSL_ATM_PTM_INTERFACE_SUPPORT" \
-       --enable-linux-26 \
-       --enable-kernelbuild="$(LINUX_DIR)" \
-       --enable-debug-prints=no \
-       ARCH=mips
-
-CONFIGURE_ARGS += \
-       --enable-model=full \
-       --enable-dsl-ceoc=no
-#CONFIGURE_ARGS += --enable-model=lite
-#CONFIGURE_ARGS += --enable-model=footprint
-#CONFIGURE_ARGS += --enable-model=typical
-#CONFIGURE_ARGS += --enable-model=debug
-
-define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/include/drv_vdsl_cpe_api
-       $(CP) $(PKG_BUILD_DIR)/src/include/drv_dsl_cpe*.h $(1)/usr/include/drv_vdsl_cpe_api/
-endef
-
-$(eval $(call KernelPackage,ltq-vdsl-vr9))
diff --git a/package/kernel/lantiq/ltq-vdsl/patches/001-fix-compile.patch b/package/kernel/lantiq/ltq-vdsl/patches/001-fix-compile.patch
deleted file mode 100644 (file)
index 1355a1a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/src/include/drv_dsl_cpe_os_linux.h
-+++ b/src/include/drv_dsl_cpe_os_linux.h
-@@ -33,6 +33,9 @@
- #endif
- #include <linux/sched.h>
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
-+#include <linux/sched/signal.h>
-+#endif
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
-    #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
diff --git a/package/kernel/lantiq/ltq-vdsl/patches/020-not-leak-cflags.patch b/package/kernel/lantiq/ltq-vdsl/patches/020-not-leak-cflags.patch
deleted file mode 100644 (file)
index 96e69ac..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -244,10 +244,7 @@ else
- drv_dsl_cpe_api_common_mod_cflags =
- endif
--drv_dsl_cpe_api_common_cflags = -DLINUX -D__LINUX__ -D__KERNEL__ -DEXPORT_SYMTAB \
--    -pipe -Wall -Wformat -Wimplicit -Wunused -Wswitch -Wcomment -Winline \
--    -Wuninitialized -Wparentheses -Wsign-compare -Wreturn-type \
--    -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-+drv_dsl_cpe_api_common_cflags = -DLINUX -D__LINUX__ -D__KERNEL__ -DEXPORT_SYMTAB
- if DSL_DBG_MAX_LEVEL_SET
- drv_dsl_cpe_api_common_cflags += -DDSL_DBG_MAX_LEVEL=$(DSL_DBG_MAX_LEVEL_PRE)
-@@ -257,7 +254,7 @@ endif
- drv_dsl_cpe_api_target_cflags = $(ADD_DRV_CFLAGS)
- # compile cflags
--drv_dsl_cpe_api_compile_cflags = $(EXTRA_DRV_CFLAGS)
-+drv_dsl_cpe_api_compile_cflags =
- if !KERNEL_2_6
- # the headerfile of linux kernels 2.6.x contain to much arithmetic
-@@ -311,7 +308,7 @@ drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SO
-       @echo -e "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
-       @echo -e "obj-m := $(subst .ko,.o,$@)"                  >> $(PWD)/Kbuild
-       @echo -e "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)"        >> $(PWD)/Kbuild
--      @echo -e "EXTRA_CFLAGS := $(CFLAGS) -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include"    >> $(PWD)/Kbuild
-+      @echo -e "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include"      >> $(PWD)/Kbuild
-       $(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
- clean-generic:
diff --git a/package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch b/package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch
deleted file mode 100644 (file)
index 7670fe6..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -117,7 +117,7 @@ POST_UNINSTALL = :
- # the headerfile of linux kernels 2.6.x contain to much arithmetic
- # with void pointers (which is allowed for gcc!)
--@KERNEL_2_6_FALSE@am__append_6 = -Wpointer-arith
-+@KERNEL_2_6_FALSE@am__append_6 =
- subdir = src
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- am__aclocal_m4_deps = $(top_srcdir)/configure.in
---- a/src/common/drv_dsl_cpe_os_linux.c
-+++ b/src/common/drv_dsl_cpe_os_linux.c
-@@ -11,6 +11,7 @@
- #define DSL_INTERN
-+#include <linux/device.h>
- #include "drv_dsl_cpe_api.h"
- #include "drv_dsl_cpe_api_ioctl.h"
-@@ -249,14 +250,7 @@ static DSL_long_t DSL_DRV_Ioctls(DSL_DRV
-    }
- #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)
-@@ -491,7 +485,11 @@ DSL_void_t* DSL_DRV_VMalloc(
-    DSL_DRV_size_t    nSize)
- {
-    /* VRX500-BU: Better to use vmalloc or vzmalloc here?! */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
-    return __vmalloc((unsigned long)nSize, GFP_KERNEL, PAGE_KERNEL);
-+#else
-+   return __vmalloc((unsigned long)nSize, GFP_KERNEL);
-+#endif
-    /*   return vmalloc(nSize);*/
- }
-@@ -917,12 +915,19 @@ DSL_int32_t DSL_DRV_ThreadShutdown(
- DSL_uint32_t DSL_DRV_SysTimeGet(DSL_uint32_t nOffset)
- {
--   struct timeval tv;
-    DSL_uint32_t nTime = 0;
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0))
-+   struct timeval tv;
-    memset(&tv, 0, sizeof(tv));
-    do_gettimeofday(&tv);
-    nTime = (DSL_uint32_t)tv.tv_sec;
-+#else
-+   struct timespec64 now;
-+
-+   ktime_get_real_ts64(&now);
-+   nTime = (DSL_uint32_t)now.tv_sec;
-+#endif
-    if ( (nOffset == 0) || (nOffset > nTime) )
-    {
-@@ -1203,6 +1208,9 @@ static void DSL_DRV_NlSendMsg(DSL_char_t
- }
- #endif
-+static struct class *dsl_class;
-+static dev_t dsl_devt;
-+
- /* Entry point of driver */
- int __init DSL_ModuleInit(void)
- {
-@@ -1241,6 +1249,10 @@ int __init DSL_ModuleInit(void)
-    DSL_DRV_DevNodeInit();
-+   dsl_class = class_create(THIS_MODULE, DRV_DSL_CPE_API_DEV_NAME);
-+   dsl_devt = MKDEV(DRV_DSL_CPE_API_DEV_MAJOR, 0);
-+   device_create(dsl_class, NULL, dsl_devt, NULL, "dsl_cpe_api/0");
-+
-    return 0;
- }
-@@ -1248,6 +1260,11 @@ void __exit DSL_ModuleCleanup(void)
- {
-    printk("Module will be unloaded"DSL_DRV_CRLF);
-+   device_destroy(dsl_class, dsl_devt);
-+   dsl_devt = NULL;
-+   class_destroy(dsl_class);
-+   dsl_class = NULL;
-+
-    unregister_chrdev(nMajorNum, DRV_DSL_CPE_API_DEV_NAME);
-    
-    DSL_DRV_Cleanup();
---- a/src/device/drv_dsl_cpe_device_vrx.c
-+++ b/src/device/drv_dsl_cpe_device_vrx.c
-@@ -5337,6 +5337,7 @@ DSL_Error_t DSL_DRV_DEV_HybridTypeGet(
- #undef DSL_DBG_BLOCK
- #define DSL_DBG_BLOCK DSL_DBG_NOTIFICATIONS
-+#if 0
- DSL_Error_t DSL_DRV_DEV_MeiTcLayerSignaling
- (
-    DSL_Context_t *pContext,
-@@ -5384,6 +5385,15 @@ DSL_Error_t DSL_DRV_DEV_MeiTcLayerSignal
-    return nErrCode;
- }
-+#else
-+DSL_Error_t DSL_DRV_DEV_MeiTcLayerSignaling
-+(
-+   DSL_Context_t *pContext,
-+   DSL_TcLayerSelection_t nTcLayer)
-+{
-+   return DSL_SUCCESS;
-+}
-+#endif
- DSL_Error_t DSL_DRV_DEV_MeiShowtimeSignaling
- (
diff --git a/package/kernel/lantiq/ltq-vdsl/patches/110-semaphore-lock.patch b/package/kernel/lantiq/ltq-vdsl/patches/110-semaphore-lock.patch
deleted file mode 100644 (file)
index 12c00c3..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
---- a/src/include/drv_dsl_cpe_pm_core.h
-+++ b/src/include/drv_dsl_cpe_pm_core.h
-@@ -1510,9 +1510,9 @@ typedef struct
-    /** Common PM module mutex*/
-    DSL_DRV_Mutex_t pmMutex;
-    /** PM module direction Near-End mutex*/
--   DSL_DRV_Mutex_t pmNeMutex;
-+   struct semaphore pmNeMutex;
-    /** PM module direction Far-End mutex*/
--   DSL_DRV_Mutex_t pmFeMutex;
-+   struct semaphore pmFeMutex;
-    /** PM module Near-End access mutex*/
-    DSL_DRV_Mutex_t pmNeAccessMutex;
-    /** PM module Far-End access mutex*/
---- a/src/pm/drv_dsl_cpe_api_pm.c
-+++ b/src/pm/drv_dsl_cpe_api_pm.c
-@@ -220,9 +220,9 @@ DSL_Error_t DSL_DRV_PM_Start(
-    /* init PM module common mutex */
-    DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmMutex);
-    /* init PM module direction Near-End mutex */
--   DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
-+   sema_init(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex),1);
-    /* init PM module direction Far-End mutex */
--   DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
-+   sema_init(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex),1);
-    /* init PM module Near-End access mutex */
-    DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmNeAccessMutex);
-    /* init PM module Far-End access mutex */
-@@ -592,7 +592,7 @@ DSL_Error_t DSL_DRV_PM_Stop(
-    if( DSL_DRV_PM_CONTEXT(pContext)->pmThreadFe.bRun != DSL_TRUE )
-    {
-       DSL_DEBUG(DSL_DBG_WRN,
--         (pContext, SYS_DBG_WRN"DSL[%02d]: PM module Near-End thread already stopped"
-+         (pContext, SYS_DBG_WRN"DSL[%02d]: PM module Far-End thread already stopped"
-          DSL_DRV_CRLF, DSL_DEV_NUM(pContext)));
-    }
-    else
---- a/src/pm/drv_dsl_cpe_pm_core.c
-+++ b/src/pm/drv_dsl_cpe_pm_core.c
-@@ -1022,7 +1022,7 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
-    {
-       if( bLock )
-       {
--         if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex) )
-+         if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex)))
-          {
-             DSL_DEBUG( DSL_DBG_ERR,
-                (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM NE mutex!"
-@@ -1034,14 +1034,14 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
-       else
-       {
-           /* Unlock PM module NE Mutex*/
--          DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
-+          up(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex));
-       }
-    }
-    else
-    {
-       if( bLock )
-       {
--         if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex) )
-+         if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex)))
-          {
-             DSL_DEBUG( DSL_DBG_ERR,
-                (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM FE mutex!"
-@@ -1053,7 +1053,7 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
-       else
-       {
-          /* Unlock PM module FE Mutex*/
--         DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
-+         up(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex));
-       }
-    }
-@@ -1139,7 +1139,7 @@ DSL_Error_t DSL_DRV_PM_Lock(DSL_Context_
-    if( !(DSL_DRV_PM_CONTEXT(pContext)->bPmLock) )
-    {
-       /* Lock PM module Near-End Mutex*/
--      if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex) )
-+      if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex)))
-       {
-          DSL_DEBUG( DSL_DBG_ERR,
-             (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM NE mutex!"
-@@ -1148,8 +1148,8 @@ DSL_Error_t DSL_DRV_PM_Lock(DSL_Context_
-          return DSL_ERR_SEMAPHORE_GET;
-       }
--      /* Lock PM module Near-End Mutex*/
--      if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex) )
-+      /* Lock PM module Far-End Mutex*/
-+      if( down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex)) )
-       {
-          DSL_DEBUG( DSL_DBG_ERR,
-             (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM FE mutex!"
-@@ -1193,10 +1193,10 @@ DSL_Error_t DSL_DRV_PM_UnLock(DSL_Contex
-    if( DSL_DRV_PM_CONTEXT(pContext)->bPmLock )
-    {
-       /* Unlock PM module NE Mutex*/
--      DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
-+      up(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex));
-       /* Unlock PM module FE Mutex*/
--      DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
-+      up(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex));
-       /* Clear bPmLock flag*/
-       DSL_DRV_PM_CONTEXT(pContext)->bPmLock = DSL_FALSE;
diff --git a/package/kernel/lantiq/ltq-vdsl/patches/200-fix-elapsed-time.patch b/package/kernel/lantiq/ltq-vdsl/patches/200-fix-elapsed-time.patch
deleted file mode 100644 (file)
index 3ec8546..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
---- a/src/include/drv_dsl_cpe_pm_core.h
-+++ b/src/include/drv_dsl_cpe_pm_core.h
-@@ -1552,9 +1552,9 @@ typedef struct
-    DSL_boolean_t bShowtimeProcessingStart;
-    /** Showtime reached flag*/
-    DSL_boolean_t bShowtimeInvTrigger;
--   /** Current Showtime synchronization time to be used, (msec) */
-+   /** Current Showtime synchronization time to be used, (sec) */
-    DSL_uint32_t nCurrShowtimeTime;
--   /** Showtime synchronization time to be used, (msec) */
-+   /** Showtime synchronization time to be used, (sec) */
-    DSL_uint32_t nElapsedShowtimeTime;
-    /** Actual Line state*/
-    DSL_LineStateValue_t nLineState;
---- a/src/pm/drv_dsl_cpe_api_pm.c
-+++ b/src/pm/drv_dsl_cpe_api_pm.c
-@@ -1475,7 +1475,7 @@ DSL_Error_t DSL_DRV_PM_ChannelCountersTo
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pChCounters = DSL_DRV_PM_PTR_CHANNEL_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
-@@ -1535,7 +1535,7 @@ DSL_Error_t DSL_DRV_PM_ChannelCountersEx
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pChCounters = DSL_DRV_PM_PTR_CHANNEL_COUNTERS_TOTAL_EXT(pCounters->nChannel);
-@@ -2518,7 +2518,7 @@ DSL_Error_t DSL_DRV_PM_DataPathCountersT
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pDpCounters = DSL_DRV_PM_PTR_DATAPATH_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
-@@ -3352,7 +3352,7 @@ DSL_Error_t DSL_DRV_PM_DataPathFailureCo
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pDpCounters = DSL_DRV_PM_PTR_DATAPATH_FAILURE_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
-@@ -4130,7 +4130,7 @@ DSL_Error_t DSL_DRV_PM_LineSecCountersTo
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pLineCounters = DSL_DRV_PM_PTR_LINE_SEC_COUNTERS_TOTAL(pCounters->nDirection);
-@@ -4787,7 +4787,7 @@ DSL_Error_t DSL_DRV_PM_LineInitCountersT
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pLinitCounters = DSL_DRV_PM_PTR_LINE_INIT_COUNTERS_TOTAL();
-@@ -5240,7 +5240,7 @@ DSL_Error_t DSL_DRV_PM_LineEventShowtime
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pLfCounters = DSL_DRV_PM_PTR_LINE_EVENT_SHOWTIME_COUNTERS_TOTAL(pCounters->nDirection);
-@@ -5720,7 +5720,7 @@ DSL_Error_t DSL_DRV_PM_ReTxCountersTotal
-    }
-    /* Fill Total Counters elapsed time*/
--   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
-+   pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
-    pReTxCounters = DSL_DRV_PM_PTR_RETX_COUNTERS_TOTAL(pCounters->nDirection);
---- a/src/pm/drv_dsl_cpe_pm_core.c
-+++ b/src/pm/drv_dsl_cpe_pm_core.c
-@@ -60,6 +60,7 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
- {
-    DSL_Error_t nErrCode = DSL_SUCCESS;
-    DSL_uint32_t msecTimeFrame = DSL_PM_COUNTER_POLLING_CYCLE,
-+                secTimeFrame = DSL_PM_COUNTER_POLLING_CYCLE/DSL_PM_MSEC,
-                 nCurrMsTime = 0;
- #ifdef INCLUDE_DSL_CPE_PM_HISTORY
-    DSL_uint32_t nCurrSysTime = 0, nPrevElapsedTime = 0;
-@@ -99,10 +100,13 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
-    {
-       /* Get elapsed time [msec] since the last entry*/
-       msecTimeFrame = nCurrMsTime  - DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck;
-+
-+      /* Get elapsed time [sec] since the last entry*/
-+      secTimeFrame = (nCurrMsTime/DSL_PM_MSEC) - (DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck/DSL_PM_MSEC);
-    }
-    /* Get Total Elapsed Time Since the PM module startup*/
--   DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime += msecTimeFrame;
-+   DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime += secTimeFrame;
-    /* Set last time check to the current time*/
-    DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck = nCurrMsTime;
-@@ -140,7 +144,7 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
-       else
-       {
-          /* Update current showtime elapsed time*/
--         DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime   += (msecTimeFrame/DSL_PM_MSEC);
-+         DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime   += secTimeFrame;
-          DSL_DRV_PM_CONTEXT(pContext)->nElapsedShowtimeTime =
-             DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime;
-       }
index 0051f39b3124b08d23dbd6e5a86d57f0b06baad5..8baf1e82633a4975372c8994be19cc88bea1d54e 100644 (file)
@@ -17,7 +17,7 @@ PKG_HASH:=da8bb929526a61aea0e153ef524331fcd472a1ebbc6d88ca017735a4f82ece02
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION)
 PKG_LICENSE:=BSD-2-Clause
 
-PKG_BUILD_DEPENDS:=ltq-vdsl
+PKG_BUILD_DEPENDS:=ltq-vdsl-vr9
 
 PKG_FLAGS:=nonshared
 PKG_FIXUP:=autoreconf