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 2012-11-28 15:14:10.421633418 +0100 @@ -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 2012-11-28 15:14:10.421633418 +0100 @@ -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 2012-11-28 15:14:56.637634577 +0100 @@ -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 2012-11-28 15:14:10.429633419 +0100 @@ -34,8 +34,6 @@ #include #include -#include - #if (MEI_DRV_IFXOS_ENABLE == 0) #include @@ -44,8 +42,6 @@ #include #include -#include - #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 2012-11-28 15:14:10.429633419 +0100 @@ -40,12 +40,6 @@ #endif #endif -#ifdef LINUX - #include -#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 2012-11-28 15:14:10.429633419 +0100 @@ -25,11 +25,7 @@ #include "ifx_types.h" #include "drv_mei_cpe_os.h" -#ifdef LINUX - #include -#else - #error "ATM/PTM internal interface is only supported for Linux!" -#endif +#include /** 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 2012-11-28 15:24:56.269649609 +0100 @@ -32,11 +32,9 @@ #include #include -#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17)) -#include -#endif -#include +#include +#include #include #include #include @@ -87,6 +85,8 @@ #include "drv_mei_cpe_device_cntrl.h" #endif +#define INT_NUM_IM4_IRL30 (INT_NUM_IM4_IRL0 + 30) + /* =================================== extern function declarations =================================== */ @@ -122,7 +122,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 +137,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 +194,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 +244,7 @@ MEI_Write, poll: MEI_Poll, - ioctl: + unlocked_ioctl: MEI_Ioctl, open: MEI_OpenOS, @@ -457,7 +459,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 +1246,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 +1695,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 +1735,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 2012-11-28 15:14:10.433633419 +0100 @@ -37,6 +37,7 @@ #include "cmv_message_format.h" +#include /* ============================================================================ 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; }