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 @@
 /* get at first the driver configuration */
 #include "drv_mei_cpe_config.h"
 
-#include "ifx_types.h"
 #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 @@
 #include <linux/poll.h>
 #include <linux/types.h>
 
-#include <asm/ifx/ifx_types.h>
-
 #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
 
-#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"
 
-#ifdef LINUX
-   #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
    =================================== */
@@ -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);
 
 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);
    }
 
+   dsl_class = class_create(THIS_MODULE, "ifx_mei");
+   device_create(dsl_class, NULL, MKDEV(MEI_MAJOR, 0), NULL, "ifx_mei");
    return 0;
 }
 
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"
 
+#include <lantiq_soc.h>
 
 /* ============================================================================
    Local macro definition
@@ -1527,32 +1528,35 @@
    return IFX_ERROR;
 }
 
+#define PMU_DFE         BIT(9)
+
 IFX_int32_t MEI_BasicChipInit(IFX_void_t)
 {
    /* 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)
    {
       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;
-   }
+   }*/
 
    return IFX_SUCCESS;
 }
 
 IFX_int32_t MEI_BasicChipExit(IFX_void_t)
 {
-   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);
 
    return IFX_SUCCESS;
 }
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\
