diff options
Diffstat (limited to 'package/kernel/lantiq')
-rw-r--r-- | package/kernel/lantiq/ltq-ifxos/Makefile | 9 | ||||
-rw-r--r-- | package/kernel/lantiq/ltq-ifxos/patches/100-compat.patch | 27 | ||||
-rw-r--r-- | package/kernel/lantiq/ltq-vdsl-mei/Makefile | 9 | ||||
-rw-r--r-- | package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch | 496 | ||||
-rw-r--r-- | package/kernel/lantiq/ltq-vdsl/Makefile | 12 | ||||
-rw-r--r-- | package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch | 156 |
6 files changed, 294 insertions, 415 deletions
diff --git a/package/kernel/lantiq/ltq-ifxos/Makefile b/package/kernel/lantiq/ltq-ifxos/Makefile index 375875227e..9919a9b088 100644 --- a/package/kernel/lantiq/ltq-ifxos/Makefile +++ b/package/kernel/lantiq/ltq-ifxos/Makefile @@ -7,11 +7,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk 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_RELEASE:=3 -PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources -PKG_MD5SUM:=bc107f9d8ff6bed4c2760a2817bbb029 +PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_NAME)/archive/v$(PKG_VERSION) +PKG_MD5SUM:=39eace039ae4c3dde4da96bfdbee2721 PKG_MAINTAINER:=John Crispin <blogic@openwrt.org> PKG_USE_MIPS16:=0 diff --git a/package/kernel/lantiq/ltq-ifxos/patches/100-compat.patch b/package/kernel/lantiq/ltq-ifxos/patches/100-compat.patch index db2dd8bc5e..dcd260ef3f 100644 --- a/package/kernel/lantiq/ltq-ifxos/patches/100-compat.patch +++ b/package/kernel/lantiq/ltq-ifxos/patches/100-compat.patch @@ -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 +++ b/src/linux/ifxos_linux_thread_drv.c -@@ -34,8 +34,8 @@ - #include <linux/sched.h> - #include <linux/version.h> - #include <linux/completion.h> --#include <linux/smp_lock.h> +@@ -38,6 +38,7 @@ + #include <linux/smp_lock.h> + #endif #include <linux/signal.h> +#include <linux/kthread.h> #include "ifx_types.h" -@@ -68,10 +68,6 @@ +@@ -70,10 +71,6 @@ #if ( defined(IFXOS_HAVE_THREAD) && (IFXOS_HAVE_THREAD == 1) ) @@ -32,7 +19,7 @@ /* ============================================================================ 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_ERROR on error */ @@ -44,7 +31,7 @@ IFX_int32_t retVal = IFX_ERROR; #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) 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 */ unlock_kernel(); #else @@ -53,7 +40,7 @@ /* Enable signals in Kernel >= 2.6 */ 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); /* start kernel thread via the wrapper function */ diff --git a/package/kernel/lantiq/ltq-vdsl-mei/Makefile b/package/kernel/lantiq/ltq-vdsl-mei/Makefile index 17d77551ae..0f9f48d573 100644 --- a/package/kernel/lantiq/ltq-vdsl-mei/Makefile +++ b/package/kernel/lantiq/ltq-vdsl-mei/Makefile @@ -7,14 +7,14 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr9-mei -PKG_VERSION:=1.2.0 +PKG_VERSION:=1.4.8.4 PKG_RELEASE:=1 PKG_BASE_NAME:=drv_mei_cpe PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION) -PKG_SOURCE_URL:=http://downloads.openwrt.org/sources/ -PKG_MD5SUM:=cf2fccc1bc72390b2aec46650abf2f20 +PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_BASE_NAME)/archive/v$(PKG_VERSION) +PKG_MD5SUM:=30570722dc7f19ff2f0228838043f2a2 PKG_FIXUP:=autoreconf PKG_MAINTAINER:=John Crispin <blogic@openwrt.org> PKG_USE_MIPS16:=0 @@ -49,9 +49,10 @@ CONFIGURE_ARGS += \ --enable-error_print \ --enable-ifxos-include="-I$(STAGING_DIR)/usr/include/ifxos/" \ --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-kernelbuild="$(LINUX_DIR)" \ + --enable-drv_test_appl=0 \ ARCH=$(LINUX_KARCH) define Build/InstallDev diff --git a/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch b/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch index f63d52c030..c0e69a9f35 100644 --- a/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch +++ b/package/kernel/lantiq/ltq-vdsl-mei/patches/100-compat.patch @@ -1,8 +1,6 @@ -Index: drv_mei_cpe-1.2.0/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 -+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_common.c 2013-09-01 21:04:12.197022086 +0200 -@@ -20,7 +20,6 @@ +--- a/src/drv_mei_cpe_common.c ++++ b/src/drv_mei_cpe_common.c +@@ -19,7 +19,6 @@ /* get at first the driver configuration */ #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_dbg.h" -Index: drv_mei_cpe-1.2.0/configure.in -=================================================================== ---- drv_mei_cpe-1.2.0.orig/configure.in 2012-01-20 17:41:07.000000000 +0100 -+++ 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 @@ +--- a/src/drv_mei_cpe_linux.h ++++ b/src/drv_mei_cpe_linux.h +@@ -51,12 +51,6 @@ #include <linux/poll.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)*/ /* ============================================================================ -Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_vr9.h -=================================================================== ---- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_mei_vr9.h 2011-07-25 20:41:02.000000000 +0200 -+++ 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 +--- a/src/drv_mei_cpe_linux.c ++++ b/src/drv_mei_cpe_linux.c +@@ -98,6 +98,8 @@ --#ifdef LINUX -- #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" + #include "drv_mei_cpe_api_atm_ptm_intern.h" --#ifdef LINUX -- #include <asm/ifx/ifx_atm.h> --#else -- #error "ATM/PTM internal interface is only supported for Linux!" --#endif -+#include <lantiq_atm.h> ++#include <lantiq_soc.h> ++ + /* =================================== + extern function declarations + =================================== */ +@@ -1783,7 +1785,9 @@ static int __init MEI_module_init (void) + return (result); + } - /** 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> ++#if 0 + 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)); + } -+#include <linux/device.h> - #include <linux/ioport.h> - #include <linux/irq.h> - #include <asm/io.h> -@@ -67,6 +65,9 @@ ++#if 0 + ppa_callback_set(LTQ_MEI_SHOWTIME_CHECK, (void *)NULL); ++#endif - #include "drv_mei_cpe_msg_process.h" + /* 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) + } -+#undef MEI_SUPPORT_PROCFS_CONFIG -+#undef CONFIG_PROC_FS + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) ++ ++#define PMU_DFE BIT(9) + - #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" + 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; + } + + static int MEI_SysClkDisable(struct clk *clk) + { ++#if 0 + if (IS_ERR(clk)) + return -1; + clk_disable(clk); + clk_put(clk); ++#else ++ ltq_pmu_disable(PMU_DFE); ++#endif + + 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; + ++#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( + MEI_DRV_LINENUM_GET(pMeiDev), +--- a/src/drv_mei_cpe_api_atm_ptm_intern.c ++++ 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 INT_NUM_IM4_IRL30 (INT_NUM_IM4_IRL0 + 30) ++#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; + - /* =================================== - extern function declarations - =================================== */ -@@ -122,7 +125,7 @@ - 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); ++ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum, ++ struct port_cell_info *cellInfo, ++ void *xdata) { ++ if (ifx_mei_atm_showtime_enter) ++ return ifx_mei_atm_showtime_enter(cellInfo, xdata); ++ ++ return -e_MEI_ERR_OP_FAILED; ++} ++ ++ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) { ++ if (ifx_mei_atm_showtime_exit) ++ return ifx_mei_atm_showtime_exit(); ++ ++ return -e_MEI_ERR_OP_FAILED; ++} ++ ++void* ppa_callback_get(e_ltq_mei_cb_type type) { ++ switch (type) { ++ case LTQ_MEI_SHOWTIME_ENTER: ++ return <q_ifx_mei_atm_showtime_enter_compat; ++ case LTQ_MEI_SHOWTIME_EXIT: ++ return <q_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 @@ - static unsigned int MEI_Poll (struct file *filp, poll_table *table); -@@ -137,7 +140,7 @@ + #include "drv_mei_cpe_config.h" + #include "drv_mei_cpe_interface.h" +-#include <net/ppa_stack_al.h> - static void MEI_IfxFreeIrq(unsigned int usedIrq, void *pUsedDevId); + #if (MEI_EXPORT_INTERNAL_API == 1) && (MEI_DRV_ATM_PTM_INTERFACE_ENABLE == 1) --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 +@@ -42,8 +41,20 @@ extern IFX_int32_t MEI_InternalXtmSwhowt + MEI_DYN_CNTRL_T *pMeiDynCntrl, + MEI_XTM_ShowtimeExit_t *pArgXtm); - #if CONFIG_PROC_FS -@@ -194,7 +197,9 @@ - /* =================================== */ - /* Local variables (LINUX) */ - /* =================================== */ --static IFX_uint8_t major_number = 0; -+#define MEI_MAJOR 105 ++#if 1 ++typedef enum { ++ LTQ_MEI_SHOWTIME_ENTER, ++ LTQ_MEI_SHOWTIME_EXIT ++} e_ltq_mei_cb_type; + -+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) ++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) { - int ret = 0, retSize = sizeof(IOCTL_MEI_ioctl_t); -@@ -1242,7 +1247,7 @@ - \remark - None. +@@ -81,6 +74,7 @@ IFX_int32_t MEI_GetChipInfo(MEI_DEV_T *p */ --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) + IFX_int32_t MEI_VR10_PcieEntitiesCheck(IFX_uint8_t nEntityNum) { - int result; -+ static struct class *dsl_class; ++#if 0 + IFX_uint32_t pcie_entitiesNum; - 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); + /* get information from pcie driver */ +@@ -101,6 +95,9 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I } -+ dsl_class = class_create(THIS_MODULE, "ifx_mei"); -+ device_create(dsl_class, NULL, MKDEV(MEI_MAJOR, 0), NULL, "ifx_mei"); - return 0; + return IFX_SUCCESS; ++#else ++ return IFX_ERROR; ++#endif } -Index: drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_access_vr9.c -=================================================================== ---- drv_mei_cpe-1.2.0.orig/src/drv_mei_cpe_mei_access_vr9.c 2011-07-25 20:41:02.000000000 +0200 -+++ drv_mei_cpe-1.2.0/src/drv_mei_cpe_mei_access_vr9.c 2013-09-01 21:04:12.197022086 +0200 -@@ -37,6 +37,7 @@ - - #include "cmv_message_format.h" + /** +@@ -115,6 +112,7 @@ IFX_int32_t MEI_VR10_PcieEntitiesCheck(I + */ + IFX_int32_t MEI_VR10_PcieEntityInit(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl) + { ++#if 0 + IFX_uint8_t entityNum; + ifx_pcie_ep_dev_t MEI_pcie_ep_dev; -+#include <lantiq_soc.h> +@@ -137,6 +135,9 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_ + pMeiDrvCntrl->MEI_pcie_irq = MEI_pcie_ep_dev.irq; - /* ============================================================================ - Local macro definition -@@ -1527,32 +1528,35 @@ - return IFX_ERROR; + return IFX_SUCCESS; ++#else ++ return IFX_ERROR; ++#endif } -+#define PMU_DFE BIT(9) -+ - IFX_int32_t MEI_BasicChipInit(IFX_void_t) + /** +@@ -151,6 +152,7 @@ IFX_int32_t MEI_VR10_PcieEntityInit(MEI_ + */ + IFX_int32_t MEI_VR10_PcieEntityFree(IFX_uint8_t entityNum) { - /* Power up MEI */ -- DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE); -- -- if (ifx_pmu_pg_dsl_dfe_enable() != 0) -+// DSL_DFE_PMU_SETUP(IFX_PMU_ENABLE); -+ltq_pmu_enable(PMU_DFE); -+ /* if (ifx_pmu_pg_dsl_dfe_enable() != 0) ++#if 0 + if (ifx_pcie_ep_dev_info_release(entityNum)) { - PRN_ERR_USR_NL( MEI_MEI_ACCESS, MEI_DRV_PRN_LEVEL_ERR, - ("MEI: ERROR - DSL DFE PG enable failed!" MEI_DRV_CRLF)); - return IFX_ERROR; -- } -+ }*/ + 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 } - IFX_int32_t MEI_BasicChipExit(IFX_void_t) + /** +@@ -174,6 +179,7 @@ IFX_int32_t MEI_VR10_PcieEntityFree(IFX_ + */ + IFX_int32_t MEI_VR10_InternalInitDevice(MEI_DYN_CNTRL_T *pMeiDynCntrl) { -- if (ifx_pmu_pg_dsl_dfe_disable() != 0) -+/* if (ifx_pmu_pg_dsl_dfe_disable() != 0) - { - PRN_ERR_USR_NL( MEI_MEI_ACCESS, MEI_DRV_PRN_LEVEL_ERR, - ("MEI: ERROR - DSL DFE PG disable failed!" MEI_DRV_CRLF)); - return IFX_ERROR; - } -- -+*/ - /* Power down MEI */ -- DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE); -+// DSL_DFE_PMU_SETUP(IFX_PMU_DISABLE); -+ltq_pmu_disable(PMU_DFE); ++#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 } -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 -+++ drv_mei_cpe-1.2.0/src/Makefile.am 2013-09-01 21:05:30.765025452 +0200 -@@ -97,8 +97,6 @@ - drv_mei_cpe_dbg_driver.h\ - drv_mei_cpe_linux.c\ - drv_mei_cpe_linux.h\ -- drv_mei_cpe_linux_proc_config.c\ -- drv_mei_cpe_linux_proc_config.h\ - drv_mei_cpe_vxworks.c\ - drv_mei_cpe_vxworks.h\ - drv_mei_cpe_vxworks_bsp.c\ + diff --git a/package/kernel/lantiq/ltq-vdsl/Makefile b/package/kernel/lantiq/ltq-vdsl/Makefile index d14d4bc955..617d9bfaea 100644 --- a/package/kernel/lantiq/ltq-vdsl/Makefile +++ b/package/kernel/lantiq/ltq-vdsl/Makefile @@ -7,14 +7,14 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr9 -PKG_VERSION:=4.11.4 +PKG_VERSION:=4.16.2.4 PKG_RELEASE:=1 PKG_BASE_NAME:=drv_dsl_cpe_api_vrx PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz -PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/drv_dsl_cpe_api-$(PKG_VERSION) -PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ -PKG_MD5SUM:=b6d9c1e3c5db1bfcd6e81bb2f582cadb +PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_BASE_NAME)-$(PKG_VERSION) +PKG_SOURCE_URL:=https://github.com/xdarklight/$(PKG_BASE_NAME)/archive/v$(PKG_VERSION) +PKG_MD5SUM:=0a3e35d199eb8936f3e8f61bb074223a PKG_USE_MIPS16:=0 @@ -48,16 +48,18 @@ CONFIGURE_ARGS += --enable-kernel-include="$(LINUX_DIR)/include" \ --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 -DDSL_DEBUG_DISABLE" \ + --enable-add-drv-cflags="-DMODULE -DINCLUDE_DSL_ATM_PTM_INTERFACE_SUPPORT" \ --enable-adsl-led=no \ --enable-adsl-mib=no \ --enable-dsl-ceoc=no \ --enable-dsl-bonding=no \ --enable-linux-26 \ --enable-kernelbuild="$(LINUX_DIR)" \ + --enable-debug-prints=no \ KERNEL_ARCH=mips CONFIGURE_ARGS += --enable-model=full diff --git a/package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch b/package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch index 5abe4b2084..e68a6f0ec3 100644 --- a/package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch +++ b/package/kernel/lantiq/ltq-vdsl/patches/100-compat.patch @@ -1,51 +1,17 @@ -Index: drv_dsl_cpe_api-4.11.4/src/include/drv_dsl_cpe_os_linux.h -=================================================================== ---- drv_dsl_cpe_api-4.11.4.orig/src/include/drv_dsl_cpe_os_linux.h 2011-10-26 00:35:29.000000000 +0200 -+++ 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 @@ +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -63,7 +63,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_8 = -Wpointer-arith -+@KERNEL_2_6_FALSE@am__append_8 = +-@KERNEL_2_6_FALSE@am__append_6 = -Wpointer-arith ++@KERNEL_2_6_FALSE@am__append_6 = subdir = src - DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -Index: drv_dsl_cpe_api-4.11.4/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 -+++ 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 @@ + DIST_COMMON = $(drv_dsl_cpe_api_include_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.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 @@ -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_ioctl.h" -@@ -34,7 +35,7 @@ - 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 @@ - } +@@ -238,24 +239,10 @@ 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) - { - 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) || (_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) { - DSL_int_t i; -+ 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 @@ +@@ -1140,6 +1130,10 @@ int __init DSL_ModuleInit(void) DSL_DRV_DevNodeInit(); + 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; } -Index: drv_dsl_cpe_api-4.11.4/src/device/drv_dsl_cpe_msg_vrx.c -=================================================================== ---- drv_dsl_cpe_api-4.11.4.orig/src/device/drv_dsl_cpe_msg_vrx.c 2012-03-05 11:25:21.000000000 +0100 -+++ 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__); - DSL_DEBUG( DSL_DBG_MSG, - (pContext, SYS_DBG_MSG"DSL[%02d]: IN - DSL_DRV_VXX_SendMsgSelectedProfileVdsl2Get" - DSL_DRV_CRLF, DSL_DEV_NUM(pContext))); -@@ -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 @@ - } - } +@@ -1147,6 +1141,11 @@ void __exit DSL_ModuleCleanup(void) + { + printk("Module will be unloaded"DSL_DRV_CRLF); -+ //printk("\n"); ++ device_destroy(dsl_class, dsl_devt); ++ dsl_devt = NULL; ++ class_destroy(dsl_class); ++ dsl_class = NULL; + - if (nBitCount > 1) - { - DSL_DEBUG( DSL_DBG_ERR, + unregister_chrdev(nMajorNum, DRV_DSL_CPE_API_DEV_NAME); + + DSL_DRV_Cleanup(); |