[ifxmips-dsl-api] fix .32 kernel, add support for .33 kernel

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21194 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Ralph Hempel 2010-04-27 14:08:38 +00:00
parent 42c03f1014
commit cc3ed53d9e
8 changed files with 828 additions and 0 deletions

View File

@ -17,6 +17,10 @@ PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/drv_dsl_cpe_api-$(PKG_VERSION)
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
PKG_MD5SUM:=c45bc531c1ed2ac80f68fb986b63bb87
ifeq ($(DUMP),)
STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep '^CONFIG_IFXMIPS_DSL_' $(TOPDIR)/.config | md5s)
endif
FW_BASE_NAME:=dsl_danube_firmware_adsl
FW_A_VER:=02.04.04.00.00.01
FW_B_VER:=02.04.01.07.00.02
@ -25,6 +29,8 @@ FW_B_FILE_VER:=241702
FW_A_MD5:=f717db3067a0049a26e233ab11238710
FW_B_MD5:=349de7cd20368f4ac9b7e8322114a512
PATCH_DIR ?= ./patches$(if $(wildcard ./patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
include $(INCLUDE_DIR)/package.mk
define KernelPackage/ifxmips-dsl-api

View File

@ -0,0 +1,73 @@
--- a/src/include/drv_dsl_cpe_device_danube.h
+++ b/src/include/drv_dsl_cpe_device_danube.h
@@ -24,7 +24,7 @@
#include "drv_dsl_cpe_simulator_danube.h"
#else
/* Include for the low level driver interface header file */
-#include "asm/ifx/ifx_mei_bsp.h"
+#include "mei/ifxmips_mei_interface.h"
#endif /* defined(DSL_CPE_SIMULATOR_DRIVER) && defined(WIN32)*/
#define DSL_MAX_LINE_NUMBER 1
--- a/src/common/drv_dsl_cpe_os_linux.c
+++ b/src/common/drv_dsl_cpe_os_linux.c
@@ -11,6 +11,7 @@
#ifdef __LINUX__
#define DSL_INTERN
+#include <linux/device.h>
#include "drv_dsl_cpe_api.h"
#include "drv_dsl_cpe_api_ioctl.h"
@@ -1058,6 +1059,7 @@ static void DSL_DRV_DebugInit(void)
/* Entry point of driver */
int __init DSL_ModuleInit(void)
{
+ struct class *dsl_class;
DSL_int_t i;
printk(DSL_DRV_CRLF DSL_DRV_CRLF "Infineon CPE API Driver version: %s" DSL_DRV_CRLF,
@@ -1104,7 +1106,8 @@ int __init DSL_ModuleInit(void)
}
DSL_DRV_DevNodeInit();
-
+ dsl_class = class_create(THIS_MODULE, "dsl_cpe_api");
+ device_create(dsl_class, NULL, MKDEV(DRV_DSL_CPE_API_DEV_MAJOR, 0), NULL, "dsl_cpe_api");
return 0;
}
--- a/src/include/drv_dsl_cpe_os_linux.h
+++ b/src/include/drv_dsl_cpe_os_linux.h
@@ -17,17 +17,17 @@
#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>
#include <linux/ctype.h>
#include <linux/version.h>
#include <linux/spinlock.h>
-
+#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>
--- a/src/mei/ifxmips_mei.c
+++ b/src/mei/ifxmips_mei.c
@@ -29,7 +29,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/version.h>
-#include <linux/utsrelease.h>
+#include <generated/utsrelease.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/mm.h>

View File

@ -0,0 +1,94 @@
--- a/src/mei/ifxmips_mei.c
+++ b/src/mei/ifxmips_mei.c
@@ -41,18 +41,20 @@
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/sched.h>
#include <asm/uaccess.h>
#include <asm/hardirq.h>
-#include <asm/ifx/ifx_regs.h>
-#include <asm/ifx/irq.h>
-#include <asm/ifx/ifx_gpio.h>
-//#include <asm/ifx/ifx_led.h>
-#include <asm/ifx/ifx_pmu.h>
-#include <asm/ifx/ifx_atm.h>
+
+#include <ifxmips.h>
+#include <ifxmips_irq.h>
+#include <ifxmips_gpio.h>
+#include <ifxmips_pmu.h>
+#include "ifxmips_atm.h"
#define IFX_MEI_BSP
#include "ifxmips_mei_interface.h"
-#define IFXMIPS_RCU_RST IFX_RCU_RST_REQ
+/*#define IFXMIPS_RCU_RST IFX_RCU_RST_REQ
#define IFXMIPS_RCU_RST_REQ_ARC_JTAG IFX_RCU_RST_REQ_ARC_JTAG
#define IFXMIPS_RCU_RST_REQ_DFE IFX_RCU_RST_REQ_DFE
#define IFXMIPS_RCU_RST_REQ_AFE IFX_RCU_RST_REQ_AFE
@@ -76,7 +78,7 @@
#define ifxmips_r32(reg) __raw_readl(reg)
#define ifxmips_w32(val, reg) __raw_writel(val, reg)
#define ifxmips_w32_mask(clear, set, reg) ifxmips_w32((ifxmips_r32(reg) & ~clear) | set, reg)
-
+*/
#define IFX_MEI_EMSG(fmt, args...) printk(KERN_ERR "[%s %d]: " fmt,__FUNCTION__, __LINE__, ## args)
#define IFX_MEI_DMSG(fmt, args...) printk(KERN_INFO "[%s %d]: " fmt,__FUNCTION__, __LINE__, ## args)
@@ -173,7 +175,8 @@ static u32 *mei_arc_swap_buff = NULL; //
extern void ifxmips_mask_and_ack_irq(unsigned int irq_nr);
#define MEI_MASK_AND_ACK_IRQ ifxmips_mask_and_ack_irq
-static int dev_major = 105;
+#define MEI_MAJOR 105
+static int dev_major = MEI_MAJOR;
static struct file_operations bsp_mei_operations = {
owner:THIS_MODULE,
@@ -2294,10 +2297,10 @@ IFX_MEI_InitDevice (int num)
IFX_MEI_EMSG ("request_irq %d failed!\n", pDev->nIrq[IFX_DFEIR]);
return -1;
}
- if (request_irq (pDev->nIrq[IFX_DYING_GASP], IFX_MEI_Dying_Gasp_IrqHandle, 0, "DYING_GASP", pDev) != 0) {
+ /*if (request_irq (pDev->nIrq[IFX_DYING_GASP], IFX_MEI_Dying_Gasp_IrqHandle, 0, "DYING_GASP", pDev) != 0) {
IFX_MEI_EMSG ("request_irq %d failed!\n", pDev->nIrq[IFX_DYING_GASP]);
return -1;
- }
+ }*/
// IFX_MEI_DMSG("Device %d initialized. IER %#x\n", num, bsp_get_irq_ier(pDev->nIrq[IFX_DYING_GASP]));
return 0;
}
@@ -2922,6 +2925,7 @@ int __init
IFX_MEI_ModuleInit (void)
{
int i = 0;
+ static struct class *dsl_class;
printk ("IFX MEI Version %ld.%02ld.%02ld", bsp_mei_version.major, bsp_mei_version.minor, bsp_mei_version.revision);
@@ -2935,14 +2939,15 @@ IFX_MEI_ModuleInit (void)
IFX_MEI_InitProcFS (i);
#endif
}
- for (i = 0; i <= DSL_BSP_CB_LAST ; i++)
+ for (i = 0; i <= DSL_BSP_CB_LAST ; i++)
dsl_bsp_event_callback[i].function = NULL;
#ifdef CONFIG_IFXMIPS_MEI_FW_LOOPBACK
printk(KERN_INFO "[%s %s %d]: Start loopback test...\n", __FILE__, __func__, __LINE__);
DFE_Loopback_Test ();
#endif
-
+ dsl_class = class_create(THIS_MODULE, "ifx_mei");
+ device_create(dsl_class, NULL, MKDEV(MEI_MAJOR, 0), NULL, "ifx_mei");
return 0;
}
@@ -2996,3 +3001,5 @@ EXPORT_SYMBOL (DSL_BSP_EventCBUnregister
module_init (IFX_MEI_ModuleInit);
module_exit (IFX_MEI_ModuleExit);
+
+MODULE_LICENSE("Dual BSD/GPL");

View File

@ -0,0 +1,156 @@
--- a/src/mei/ifxmips_atm_core.c
+++ b/src/mei/ifxmips_atm_core.c
@@ -58,9 +58,8 @@
/*
* Chip Specific Head File
*/
-#include <asm/ifx/ifx_types.h>
-#include <asm/ifx/ifx_regs.h>
-#include <asm/ifx/common_routines.h>
+#include <ifxmips.h>
+#include <ifxmips_cgu.h>
#include "ifxmips_atm_core.h"
@@ -1146,7 +1145,7 @@ static INLINE void mailbox_signal(unsign
static void set_qsb(struct atm_vcc *vcc, struct atm_qos *qos, unsigned int queue)
{
- unsigned int qsb_clk = ifx_get_fpi_hz();
+ unsigned int qsb_clk = ifxmips_get_fpi_hz();
unsigned int qsb_qid = queue + FIRST_QSB_QID;
union qsb_queue_parameter_table qsb_queue_parameter_table = {{0}};
union qsb_queue_vbr_parameter_table qsb_queue_vbr_parameter_table = {{0}};
@@ -1318,7 +1317,7 @@ static void set_qsb(struct atm_vcc *vcc,
static void qsb_global_set(void)
{
- unsigned int qsb_clk = ifx_get_fpi_hz();
+ unsigned int qsb_clk = ifxmips_get_fpi_hz();
int i;
unsigned int tmp1, tmp2, tmp3;
@@ -2505,3 +2504,4 @@ static void __exit ifx_atm_exit(void)
module_init(ifx_atm_init);
module_exit(ifx_atm_exit);
+MODULE_LICENSE("Dual BSD/GPL");
--- a/src/mei/ifxmips_atm_ppe_common.h
+++ b/src/mei/ifxmips_atm_ppe_common.h
@@ -1,9 +1,10 @@
#ifndef IFXMIPS_ATM_PPE_COMMON_H
#define IFXMIPS_ATM_PPE_COMMON_H
-
-
-#if defined(CONFIG_DANUBE)
+#if defined(CONFIG_IFXMIPS)
+ #include "ifxmips_atm_ppe_danube.h"
+ #define CONFIG_DANUBE
+#elif defined(CONFIG_DANUBE)
#include "ifxmips_atm_ppe_danube.h"
#elif defined(CONFIG_AMAZON_SE)
#include "ifxmips_atm_ppe_amazon_se.h"
@@ -16,7 +17,6 @@
#endif
-
/*
* Code/Data Memory (CDM) Interface Configuration Register
*/
--- a/src/mei/ifxmips_atm_core.h
+++ b/src/mei/ifxmips_atm_core.h
@@ -25,8 +25,8 @@
#define IFXMIPS_ATM_CORE_H
-
-#include <asm/ifx/ifx_atm.h>
+#include "ifxmips_compat.h"
+#include "ifx_atm.h"
#include "ifxmips_atm_ppe_common.h"
#include "ifxmips_atm_fw_regs_common.h"
--- /dev/null
+++ b/src/mei/ifxmips_compat.h
@@ -0,0 +1,43 @@
+#ifndef _IFXMIPS_COMPAT_H__
+#define _IFXMIPS_COMPAT_H__
+
+#define IFX_SUCCESS 0
+#define IFX_ERROR (-1)
+
+#define ATM_VBR_NRT ATM_VBR
+#define ATM_VBR_RT 6
+#define ATM_UBR_PLUS 7
+#define ATM_GFR 8
+
+#define NUM_ENTITY(x) (sizeof(x) / sizeof(*(x)))
+
+#define SET_BITS(x, msb, lsb, value) \
+ (((x) & ~(((1 << ((msb) + 1)) - 1) ^ ((1 << (lsb)) - 1))) | (((value) & ((1 << (1 + (msb) - (lsb))) - 1)) << (lsb)))
+
+
+#define IFX_PMU_ENABLE 1
+#define IFX_PMU_DISABLE 0
+
+#define IFX_PMU_MODULE_DSL_DFE (1 << 9)
+#define IFX_PMU_MODULE_AHBS (1 << 13)
+#define IFX_PMU_MODULE_PPE_QSB (1 << 18)
+#define IFX_PMU_MODULE_PPE_SLL01 (1 << 19)
+#define IFX_PMU_MODULE_PPE_TC (1 << 21)
+#define IFX_PMU_MODULE_PPE_EMA (1 << 22)
+#define IFX_PMU_MODULE_PPE_TOP (1 << 29)
+
+#define ifx_pmu_set(a,b) {if(a == IFX_PMU_ENABLE) ifxmips_pmu_enable(b); else ifxmips_pmu_disable(b);}
+
+#define PPE_TOP_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_PPE_TOP, (__x))
+#define PPE_SLL01_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_PPE_SLL01, (__x))
+#define PPE_TC_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_PPE_TC, (__x))
+#define PPE_EMA_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_PPE_EMA, (__x))
+#define PPE_QSB_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_PPE_QSB, (__x))
+#define PPE_TPE_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_AHBS, (__x))
+#define DSL_DFE_PMU_SETUP(__x) ifx_pmu_set(IFX_PMU_MODULE_DSL_DFE, (__x))
+
+#define IFX_REG_W32(_v, _r) __raw_writel((_v), (_r))
+
+#define CONFIG_IFXMIPS_DSL_CPE_MEI y
+
+#endif
--- a/src/mei/ifxmips_atm_ppe_danube.h
+++ b/src/mei/ifxmips_atm_ppe_danube.h
@@ -1,7 +1,7 @@
#ifndef IFXMIPS_ATM_PPE_DANUBE_H
#define IFXMIPS_ATM_PPE_DANUBE_H
-
+#include <ifxmips_irq.h>
/*
* FPI Configuration Bus Register and Memory Address Mapping
@@ -93,7 +93,7 @@
/*
* Mailbox IGU1 Interrupt
*/
-#define PPE_MAILBOX_IGU1_INT INT_NUM_IM2_IRL24
+#define PPE_MAILBOX_IGU1_INT IFXMIPS_PPE_MBOX_INT
--- a/src/mei/ifxmips_atm_danube.c
+++ b/src/mei/ifxmips_atm_danube.c
@@ -45,10 +45,9 @@
/*
* Chip Specific Head File
*/
-#include <asm/ifx/ifx_types.h>
-#include <asm/ifx/ifx_regs.h>
-#include <asm/ifx/common_routines.h>
-#include <asm/ifx/ifx_pmu.h>
+#include <ifxmips.h>
+#include <ifxmips_pmu.h>
+#include "ifxmips_compat.h"
#include "ifxmips_atm_core.h"
#include "ifxmips_atm_fw_danube.h"

View File

@ -0,0 +1,286 @@
--- a/src/mei/ifxmips_mei.c
+++ b/src/mei/ifxmips_mei.c
@@ -79,8 +79,8 @@
#define ifxmips_w32(val, reg) __raw_writel(val, reg)
#define ifxmips_w32_mask(clear, set, reg) ifxmips_w32((ifxmips_r32(reg) & ~clear) | set, reg)
*/
-#define IFX_MEI_EMSG(fmt, args...) printk(KERN_ERR "[%s %d]: " fmt,__FUNCTION__, __LINE__, ## args)
-#define IFX_MEI_DMSG(fmt, args...) printk(KERN_INFO "[%s %d]: " fmt,__FUNCTION__, __LINE__, ## args)
+#define IFX_MEI_EMSG(fmt, args...) pr_err("[%s %d]: " fmt,__FUNCTION__, __LINE__, ## args)
+#define IFX_MEI_DMSG(fmt, args...) pr_debug("[%s %d]: " fmt,__FUNCTION__, __LINE__, ## args)
#ifdef CONFIG_IFXMIPS_MEI_FW_LOOPBACK
//#define DFE_MEM_TEST
@@ -1301,7 +1301,7 @@ IFX_MEI_RunAdslModem (DSL_DEV_Device_t *
IFX_MEI_EMSG (">>> malloc fail for codeswap buff!!! <<<\n");
return DSL_DEV_MEI_ERR_FAILURE;
}
- printk("allocate %dKB swap buff memory at: 0x%p\n", ksize(mei_arc_swap_buff)/1024, mei_arc_swap_buff);
+ IFX_MEI_DMSG("allocate %dKB swap buff memory at: 0x%p\n", ksize(mei_arc_swap_buff)/1024, mei_arc_swap_buff);
}
DSL_DEV_PRIVATE(pDev)->img_hdr =
@@ -1476,7 +1476,7 @@ IFX_MEI_DFEMemoryFree (DSL_DEV_Device_t
}
if(mei_arc_swap_buff != NULL){
- printk("free %dKB swap buff memory at: 0x%p\n", ksize(mei_arc_swap_buff)/1024, mei_arc_swap_buff);
+ IFX_MEI_DMSG("free %dKB swap buff memory at: 0x%p\n", ksize(mei_arc_swap_buff)/1024, mei_arc_swap_buff);
kfree(mei_arc_swap_buff);
mei_arc_swap_buff=NULL;
}
@@ -1496,7 +1496,7 @@ IFX_MEI_DFEMemoryAlloc (DSL_DEV_Device_t
// DSL_DEV_PRIVATE(pDev)->adsl_mem_info;
int allocate_size = SDRAM_SEGMENT_SIZE;
- printk(KERN_INFO "[%s %d]: image_size = %ld\n", __func__, __LINE__, size);
+ IFX_MEI_DMSG("image_size = %ld\n", size);
// Alloc Swap Pages
for (idx = 0; size > 0 && idx < MAX_BAR_REGISTERS; idx++) {
// skip bar15 for XDATA usage.
@@ -1596,7 +1596,7 @@ DSL_BSP_FWDownload (DSL_DEV_Device_t * p
ssize_t retval = -ENOMEM;
int idx = 0;
- printk("\n%s\n", __func__);
+ IFX_MEI_DMSG("\n");
if (*loff == 0) {
if (size < sizeof (img_hdr_tmp)) {
@@ -1648,7 +1648,7 @@ DSL_BSP_FWDownload (DSL_DEV_Device_t * p
goto error;
}
adsl_mem_info[XDATA_REGISTER].type = FREE_RELOAD;
- printk(KERN_INFO "[%s %d] -> IFX_MEI_BarUpdate()\n", __func__, __LINE__);
+ IFX_MEI_DMSG("-> IFX_MEI_BarUpdate()\n");
IFX_MEI_BarUpdate (pDev, (DSL_DEV_PRIVATE(pDev)->nBar));
}
else if (DSL_DEV_PRIVATE(pDev)-> image_size == 0) {
@@ -1927,7 +1927,7 @@ static void
WriteMbox (u32 * mboxarray, u32 size)
{
IFX_MEI_DebugWrite (&dsl_devices[0], IMBOX_BASE, mboxarray, size);
- printk ("write to %X\n", IMBOX_BASE);
+ IFX_MEI_DMSG("write to %X\n", IMBOX_BASE);
IFX_MEI_LongWordWriteOffset (&dsl_devices[0], (u32) ME_ME2ARC_INT, MEI_TO_ARC_MSGAV);
}
@@ -1936,7 +1936,7 @@ static void
ReadMbox (u32 * mboxarray, u32 size)
{
IFX_MEI_DebugRead (&dsl_devices[0], OMBOX_BASE, mboxarray, size);
- printk ("read from %X\n", OMBOX_BASE);
+ IFX_MEI_DMSG("read from %X\n", OMBOX_BASE);
}
static void
@@ -1966,7 +1966,7 @@ arc_code_page_download (uint32_t arc_cod
{
int count;
- printk ("try to download pages,size=%d\n", arc_code_length);
+ IFX_MEI_DMSG("try to download pages,size=%d\n", arc_code_length);
IFX_MEI_ControlModeSet (&dsl_devices[0], MEI_MASTER_MODE);
IFX_MEI_HaltArc (&dsl_devices[0]);
IFX_MEI_LongWordWriteOffset (&dsl_devices[0], (u32) ME_DX_AD, 0);
@@ -2005,21 +2005,21 @@ dfe_loopback_irq_handler (DSL_DEV_Device
memset (&rd_mbox[0], 0, 10 * 4);
ReadMbox (&rd_mbox[0], 6);
if (rd_mbox[0] == 0x0) {
- printk ("Get ARC_ACK\n");
+ FX_MEI_DMSG("Get ARC_ACK\n");
got_int = 1;
}
else if (rd_mbox[0] == 0x5) {
- printk ("Get ARC_BUSY\n");
+ IFX_MEI_DMSG("Get ARC_BUSY\n");
got_int = 2;
}
else if (rd_mbox[0] == 0x3) {
- printk ("Get ARC_EDONE\n");
+ IFX_MEI_DMSG("Get ARC_EDONE\n");
if (rd_mbox[1] == 0x0) {
got_int = 3;
- printk ("Get E_MEMTEST\n");
+ IFX_MEI_DMSG("Get E_MEMTEST\n");
if (rd_mbox[2] != 0x1) {
got_int = 4;
- printk ("Get Result %X\n", rd_mbox[2]);
+ IFX_MEI_DMSG("Get Result %X\n", rd_mbox[2]);
}
}
}
@@ -2037,21 +2037,21 @@ wait_mem_test_result (void)
uint32_t mbox[5];
mbox[0] = 0;
- printk ("Waiting Starting\n");
+ IFX_MEI_DMSG("Waiting Starting\n");
while (mbox[0] == 0) {
ReadMbox (&mbox[0], 5);
}
- printk ("Try to get mem test result.\n");
+ IFX_MEI_DMSG("Try to get mem test result.\n");
ReadMbox (&mbox[0], 5);
if (mbox[0] == 0xA) {
- printk ("Success.\n");
+ IFX_MEI_DMSG("Success.\n");
}
else if (mbox[0] == 0xA) {
- printk ("Fail,address %X,except data %X,receive data %X\n",
+ IFX_MEI_EMSG("Fail,address %X,except data %X,receive data %X\n",
mbox[1], mbox[2], mbox[3]);
}
else {
- printk ("Fail\n");
+ IFX_MEI_EMSG("Fail\n");
}
}
@@ -2067,7 +2067,7 @@ arc_ping_testing (DSL_DEV_Device_t *pDev
rd_mbox[i] = 0;
}
- printk ("send ping msg\n");
+ FX_MEI_DMSG("send ping msg\n");
wr_mbox[0] = MEI_PING;
WriteMbox (&wr_mbox[0], 10);
@@ -2075,7 +2075,7 @@ arc_ping_testing (DSL_DEV_Device_t *pDev
MEI_WAIT (100);
}
- printk ("send start event\n");
+ IFX_MEI_DMSG("send start event\n");
got_int = 0;
wr_mbox[0] = 0x4;
@@ -2094,14 +2094,14 @@ arc_ping_testing (DSL_DEV_Device_t *pDev
IFX_MEI_LongWordWriteOffset (&dsl_devices[0],
(u32) ME_ME2ARC_INT,
MEI_TO_ARC_MSGAV);
- printk ("sleeping\n");
+ IFX_MEI_DMSG("sleeping\n");
while (1) {
if (got_int > 0) {
if (got_int > 3)
- printk ("got_int >>>> 3\n");
+ IFX_MEI_DMSG("got_int >>>> 3\n");
else
- printk ("got int = %d\n", got_int);
+ IFX_MEI_DMSG("got int = %d\n", got_int);
got_int = 0;
//schedule();
DSL_ENABLE_IRQ (pDev->nIrq[IFX_DFEIR]);
@@ -2152,7 +2152,7 @@ DFE_Loopback_Test (void)
DSL_DEV_PRIVATE(pDev)->adsl_mem_info[idx].type = FREE_RELOAD;
IFX_MEI_WRITE_REGISTER_L ((((uint32_t) DSL_DEV_PRIVATE(pDev)->adsl_mem_info[idx].address) & 0x0fffffff),
IFXMIPS_MEI_BASE_ADDR + ME_XMEM_BAR_BASE + idx * 4);
- printk ("bar%d(%X)=%X\n", idx,
+ IFX_MEI_DMSG("bar%d(%X)=%X\n", idx,
IFXMIPS_MEI_BASE_ADDR + ME_XMEM_BAR_BASE +
idx * 4, (((uint32_t)
((ifx_mei_device_private_t *)
@@ -2169,20 +2169,20 @@ DFE_Loopback_Test (void)
return DSL_DEV_MEI_ERR_FAILURE;
}
//WriteARCreg(AUX_IC_CTRL,2);
- printk(KERN_INFO "[%s %s %d]: Setting MEI_MASTER_MODE..\n", __FILE__, __func__, __LINE__);
+ IFX_MEI_DMSG("Setting MEI_MASTER_MODE..\n");
IFX_MEI_ControlModeSet (pDev, MEI_MASTER_MODE);
#define AUX_IC_CTRL 0x11
_IFX_MEI_DBGLongWordWrite (pDev, MEI_DEBUG_DEC_AUX_MASK,
AUX_IC_CTRL, 2);
- printk(KERN_INFO "[%s %s %d]: Setting JTAG_MASTER_MODE..\n", __FILE__, __func__, __LINE__);
+ IFX_MEI_DMSG("Setting JTAG_MASTER_MODE..\n");
IFX_MEI_ControlModeSet (pDev, JTAG_MASTER_MODE);
- printk(KERN_INFO "[%s %s %d]: Halting ARC...\n", __FILE__, __func__, __LINE__);
+ IFX_MEI_DMSG("Halting ARC...\n");
IFX_MEI_HaltArc (&dsl_devices[0]);
#ifdef DFE_PING_TEST
- printk ("ping test image size=%d\n", sizeof (arc_ahb_access_code));
+ IFX_MEI_DMSG("ping test image size=%d\n", sizeof (arc_ahb_access_code));
memcpy ((u8 *) (DSL_DEV_PRIVATE(pDev)->
adsl_mem_info[0].address + 0x1004),
&arc_ahb_access_code[0], sizeof (arc_ahb_access_code));
@@ -2190,13 +2190,13 @@ DFE_Loopback_Test (void)
#endif //DFE_PING_TEST
- printk ("ARC ping test code download complete\n");
+ IFX_MEI_DMSG("ARC ping test code download complete\n");
#endif //defined( DFE_PING_TEST )|| defined( DFE_ATM_LOOPBACK)
#ifdef DFE_MEM_TEST
IFX_MEI_LongWordWriteOffset (&dsl_devices[0], (u32) ME_ARC2ME_MASK, MSGAV_EN);
arc_code_page_download (1537, &code_array[0]);
- printk ("ARC mem test code download complete\n");
+ IFX_MEI_DMSG("ARC mem test code download complete\n");
#endif //DFE_MEM_TEST
#ifdef DFE_ATM_LOOPBACK
arc_debug_data = 0xf;
@@ -2215,7 +2215,7 @@ DFE_Loopback_Test (void)
IFX_MEI_DebugWrite (&dsl_devices[0], 0x32010, &arc_debug_data, 1);
#endif //DFE_ATM_LOOPBACK
IFX_MEI_IRQEnable (pDev);
- printk(KERN_INFO "[%s %s %d]: run ARC...\n", __FILE__, __func__, __LINE__);
+ IFX_MEI_DMSG("run ARC...\n");
IFX_MEI_RunArc (&dsl_devices[0]);
#ifdef DFE_PING_TEST
@@ -2526,7 +2526,7 @@ IFX_MEI_Ioctls (DSL_DEV_Device_t * pDev,
break;
case DSL_FIO_BSP_DSL_START:
- printk("\n%s: DSL_FIO_BSP_DSL_START\n",__func__);
+ IFX_MEI_DMSG("DSL_FIO_BSP_DSL_START\n");
if ((meierr = IFX_MEI_RunAdslModem (pDev)) != DSL_DEV_MEI_ERR_SUCCESS) {
IFX_MEI_EMSG ("IFX_MEI_RunAdslModem() error...");
meierr = DSL_DEV_MEI_ERR_FAILURE;
@@ -2927,11 +2927,11 @@ IFX_MEI_ModuleInit (void)
int i = 0;
static struct class *dsl_class;
- printk ("IFX MEI Version %ld.%02ld.%02ld", bsp_mei_version.major, bsp_mei_version.minor, bsp_mei_version.revision);
+ pr_info("IFX MEI Version %ld.%02ld.%02ld", bsp_mei_version.major, bsp_mei_version.minor, bsp_mei_version.revision);
for (i = 0; i < BSP_MAX_DEVICES; i++) {
if (IFX_MEI_InitDevice (i) != 0) {
- printk ("%s: Init device fail!\n", __FUNCTION__);
+ IFX_MEI_EMSG("Init device fail!\n");
return -EIO;
}
IFX_MEI_InitDevNode (i);
@@ -2943,7 +2943,7 @@ IFX_MEI_ModuleInit (void)
dsl_bsp_event_callback[i].function = NULL;
#ifdef CONFIG_IFXMIPS_MEI_FW_LOOPBACK
- printk(KERN_INFO "[%s %s %d]: Start loopback test...\n", __FILE__, __func__, __LINE__);
+ IFX_MEI_DMSG("Start loopback test...\n");
DFE_Loopback_Test ();
#endif
dsl_class = class_create(THIS_MODULE, "ifx_mei");
--- a/src/mei/ifxmips_atm_core.c
+++ b/src/mei/ifxmips_atm_core.c
@@ -2335,7 +2335,7 @@ static int atm_showtime_enter(struct por
IFX_REG_W32(0x0F, UTP_CFG);
#endif
- printk("enter showtime, cell rate: 0 - %d, 1 - %d, xdata addr: 0x%08x\n", g_atm_priv_data.port[0].tx_max_cell_rate, g_atm_priv_data.port[1].tx_max_cell_rate, (unsigned int)g_xdata_addr);
+ pr_debug("enter showtime, cell rate: 0 - %d, 1 - %d, xdata addr: 0x%08x\n", g_atm_priv_data.port[0].tx_max_cell_rate, g_atm_priv_data.port[1].tx_max_cell_rate, (unsigned int)g_xdata_addr);
return IFX_SUCCESS;
}
@@ -2351,7 +2351,7 @@ static int atm_showtime_exit(void)
// TODO: ReTX clean state
g_xdata_addr = NULL;
- printk("leave showtime\n");
+ pr_debug("leave showtime\n");
return IFX_SUCCESS;
}

View File

@ -0,0 +1,193 @@
--- a/configure.in
+++ b/configure.in
@@ -310,7 +310,7 @@ dnl Set kernel build path
AC_ARG_ENABLE(kernelbuild,
AC_HELP_STRING(--enable-kernel-build=x,Set the target kernel build path),
[
- 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!])
@@ -333,12 +333,12 @@ AC_ARG_ENABLE(ifxos-include,
echo Set the lib_ifxos include path $enableval
AC_SUBST([IFXOS_INCLUDE_PATH],[$enableval])
else
- echo -e Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
+ echo Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
AC_SUBST([IFXOS_INCLUDE_PATH],[$DEFAULT_IFXOS_INCLUDE_PATH])
fi
],
[
- echo -e Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
+ echo Set the default lib_ifxos include path $DEFAULT_IFXOS_INCLUDE_PATH
AC_SUBST([IFXOS_INCLUDE_PATH],[$DEFAULT_IFXOS_INCLUDE_PATH])
]
)
@@ -1702,73 +1702,73 @@ dnl Set the configure params for dist ch
AC_SUBST([DISTCHECK_CONFIGURE_PARAMS],[$CONFIGURE_OPTIONS])
AC_CONFIG_COMMANDS_PRE([
-echo -e "------------------------------------------------------------------------"
-echo -e " Configuration for drv_dsl_cpe_api:"
-echo -e " Configure model type: $DSL_CONFIG_MODEL_TYPE"
-echo -e " Source code location: $srcdir"
-echo -e " Compiler: $CC"
-echo -e " Compiler c-flags: $CFLAGS"
-echo -e " Extra compiler c-flags: $EXTRA_DRV_CFLAGS"
-echo -e " Host System Type: $host"
-echo -e " Install path: $prefix"
-echo -e " Linux kernel include path: $KERNEL_INCL_PATH"
-echo -e " Linux kernel build path: $KERNEL_BUILD_PATH"
-echo -e " Linux kernel architecture: $KERNEL_ARCH"
-echo -e " Include IFXOS: $INCLUDE_DSL_CPE_API_IFXOS_SUPPORT"
-echo -e " IFXOS include path: $IFXOS_INCLUDE_PATH"
-echo -e " Driver Include Path $DSL_DRIVER_INCL_PATH"
-echo -e " DSL device: $DSL_DEVICE_NAME"
-echo -e " Max device number: $DSL_DRV_MAX_DEVICE_NUMBER"
-echo -e " Channels per line: $DSL_CHANNELS_PER_LINE"
-echo -e " Build lib (only for kernel 2.6) $DSL_CPE_API_LIBRARY_BUILD_2_6"
-echo -e " DSL data led flash frequency: $DSL_DATA_LED_FLASH_FREQUENCY Hz"
-echo -e " Disable debug prints: $DSL_DEBUG_DISABLE"
-echo -e " Preselection of max. debug level: $DSL_DBG_MAX_LEVEL_SET"
-echo -e " Preselected max. debug level: $DSL_DBG_MAX_LEVEL_PRE"
-echo -e " Include deprecated functions: $INCLUDE_DEPRECATED"
-echo -e " Include Device Exception Codes: $INCLUDE_DEVICE_EXCEPTION_CODES"
-echo -e " Include FW request support: $INCLUDE_FW_REQUEST_SUPPORT"
-echo -e " Include ADSL trace buffer: $INCLUDE_DSL_CPE_TRACE_BUFFER"
-echo -e " Include ADSL MIB: $INCLUDE_DSL_ADSL_MIB"
-echo -e " Include ADSL LED: $INCLUDE_ADSL_LED"
-echo -e " Include CEOC: $INCLUDE_DSL_CEOC"
-echo -e " Include config get support: $INCLUDE_DSL_CONFIG_GET"
-echo -e " Include System i/f configuration: $INCLUDE_DSL_SYSTEM_INTERFACE"
-echo -e " Include Resource Statistics: $INCLUDE_DSL_RESOURCE_STATISTICS"
-echo -e " Include Framing Parameters: $INCLUDE_DSL_FRAMING_PARAMETERS"
-echo -e " Include G997 Line Inventory: $INCLUDE_DSL_G997_LINE_INVENTORY"
-echo -e " Include G997 Framing Parameters: $INCLUDE_DSL_G997_FRAMING_PARAMETERS"
-echo -e " Include G997 per tone data: $INCLUDE_DSL_G997_PER_TONE"
-echo -e " Include G997 status: $INCLUDE_DSL_G997_STATUS"
-echo -e " Include G997 alarm: $INCLUDE_DSL_G997_ALARM"
-echo -e " Include DSL Bonding: $INCLUDE_DSL_BONDING"
-echo -e " Include Misc Line Status $INCLUDE_DSL_CPE_MISC_LINE_STATUS"
-echo -e " Include DELT: $INCLUDE_DSL_DELT"
-echo -e " Include DELT data static storage: $DSL_CPE_STATIC_DELT_DATA"
-echo -e " Include PM: $INCLUDE_DSL_PM"
-echo -e " Include PM config: $INCLUDE_DSL_CPE_PM_CONFIG"
-echo -e " Include PM total: $INCLUDE_DSL_CPE_PM_TOTAL_COUNTERS"
-echo -e " Include PM history: $INCLUDE_DSL_CPE_PM_HISTORY"
-echo -e " Include PM showtime: $INCLUDE_DSL_CPE_PM_SHOWTIME_COUNTERS"
-echo -e " Include PM optional: $INCLUDE_DSL_CPE_PM_OPTIONAL_PARAMETERS"
-echo -e " Include PM line: $INCLUDE_DSL_CPE_PM_LINE_COUNTERS"
-echo -e " Include PM line event showtime: $INCLUDE_DSL_CPE_PM_LINE_EVENT_SHOWTIME_COUNTERS"
-echo -e " Include PM channel: $INCLUDE_DSL_CPE_PM_CHANNEL_COUNTERS"
-echo -e " Include PM channel extended: $INCLUDE_DSL_CPE_PM_CHANNEL_EXT_COUNTERS"
-echo -e " Include PM data path: $INCLUDE_DSL_CPE_PM_DATA_PATH_COUNTERS"
-echo -e " Include PM data path failure: $INCLUDE_DSL_CPE_PM_DATA_PATH_FAILURE_COUNTERS"
-echo -e " Include PM ReTx: $INCLUDE_DSL_CPE_PM_RETX_COUNTERS"
-echo -e " Include PM line threshold: $INCLUDE_DSL_CPE_PM_LINE_THRESHOLDS"
-echo -e " Include PM channel threshold: $INCLUDE_DSL_CPE_PM_CHANNEL_THRESHOLDS"
-echo -e " Include PM data path threshold: $INCLUDE_DSL_CPE_PM_DATA_PATH_THRESHOLDS"
-echo -e " Include PM ReTx threshold: $INCLUDE_DSL_CPE_PM_RETX_THRESHOLDS"
-echo -e " Include FW memory free support: $INCLUDE_DSL_FIRMWARE_MEMORY_FREE"
-echo -e "----------------------- deprectated ! ----------------------------------"
-echo -e " Include PM line failure: $INCLUDE_DSL_CPE_PM_LINE_FAILURE_COUNTERS"
-echo -e ""
-echo -e " Settings:"
-echo -e " Configure options: $CONFIGURE_OPTIONS"
-echo -e "------------------------------------------------------------------------"
+echo "------------------------------------------------------------------------"
+echo " Configuration for drv_dsl_cpe_api:"
+echo " Configure model type: $DSL_CONFIG_MODEL_TYPE"
+echo " Source code location: $srcdir"
+echo " Compiler: $CC"
+echo " Compiler c-flags: $CFLAGS"
+echo " Extra compiler c-flags: $EXTRA_DRV_CFLAGS"
+echo " Host System Type: $host"
+echo " Install path: $prefix"
+echo " Linux kernel include path: $KERNEL_INCL_PATH"
+echo " Linux kernel build path: $KERNEL_BUILD_PATH"
+echo " Linux kernel architecture: $KERNEL_ARCH"
+echo " Include IFXOS: $INCLUDE_DSL_CPE_API_IFXOS_SUPPORT"
+echo " IFXOS include path: $IFXOS_INCLUDE_PATH"
+echo " Driver Include Path $DSL_DRIVER_INCL_PATH"
+echo " DSL device: $DSL_DEVICE_NAME"
+echo " Max device number: $DSL_DRV_MAX_DEVICE_NUMBER"
+echo " Channels per line: $DSL_CHANNELS_PER_LINE"
+echo " Build lib (only for kernel 2.6) $DSL_CPE_API_LIBRARY_BUILD_2_6"
+echo " DSL data led flash frequency: $DSL_DATA_LED_FLASH_FREQUENCY Hz"
+echo " Disable debug prints: $DSL_DEBUG_DISABLE"
+echo " Preselection of max. debug level: $DSL_DBG_MAX_LEVEL_SET"
+echo " Preselected max. debug level: $DSL_DBG_MAX_LEVEL_PRE"
+echo " Include deprecated functions: $INCLUDE_DEPRECATED"
+echo " Include Device Exception Codes: $INCLUDE_DEVICE_EXCEPTION_CODES"
+echo " Include FW request support: $INCLUDE_FW_REQUEST_SUPPORT"
+echo " Include ADSL trace buffer: $INCLUDE_DSL_CPE_TRACE_BUFFER"
+echo " Include ADSL MIB: $INCLUDE_DSL_ADSL_MIB"
+echo " Include ADSL LED: $INCLUDE_ADSL_LED"
+echo " Include CEOC: $INCLUDE_DSL_CEOC"
+echo " Include config get support: $INCLUDE_DSL_CONFIG_GET"
+echo " Include System i/f configuration: $INCLUDE_DSL_SYSTEM_INTERFACE"
+echo " Include Resource Statistics: $INCLUDE_DSL_RESOURCE_STATISTICS"
+echo " Include Framing Parameters: $INCLUDE_DSL_FRAMING_PARAMETERS"
+echo " Include G997 Line Inventory: $INCLUDE_DSL_G997_LINE_INVENTORY"
+echo " Include G997 Framing Parameters: $INCLUDE_DSL_G997_FRAMING_PARAMETERS"
+echo " Include G997 per tone data: $INCLUDE_DSL_G997_PER_TONE"
+echo " Include G997 status: $INCLUDE_DSL_G997_STATUS"
+echo " Include G997 alarm: $INCLUDE_DSL_G997_ALARM"
+echo " Include DSL Bonding: $INCLUDE_DSL_BONDING"
+echo " Include Misc Line Status $INCLUDE_DSL_CPE_MISC_LINE_STATUS"
+echo " Include DELT: $INCLUDE_DSL_DELT"
+echo " Include DELT data static storage: $DSL_CPE_STATIC_DELT_DATA"
+echo " Include PM: $INCLUDE_DSL_PM"
+echo " Include PM config: $INCLUDE_DSL_CPE_PM_CONFIG"
+echo " Include PM total: $INCLUDE_DSL_CPE_PM_TOTAL_COUNTERS"
+echo " Include PM history: $INCLUDE_DSL_CPE_PM_HISTORY"
+echo " Include PM showtime: $INCLUDE_DSL_CPE_PM_SHOWTIME_COUNTERS"
+echo " Include PM optional: $INCLUDE_DSL_CPE_PM_OPTIONAL_PARAMETERS"
+echo " Include PM line: $INCLUDE_DSL_CPE_PM_LINE_COUNTERS"
+echo " Include PM line event showtime: $INCLUDE_DSL_CPE_PM_LINE_EVENT_SHOWTIME_COUNTERS"
+echo " Include PM channel: $INCLUDE_DSL_CPE_PM_CHANNEL_COUNTERS"
+echo " Include PM channel extended: $INCLUDE_DSL_CPE_PM_CHANNEL_EXT_COUNTERS"
+echo " Include PM data path: $INCLUDE_DSL_CPE_PM_DATA_PATH_COUNTERS"
+echo " Include PM data path failure: $INCLUDE_DSL_CPE_PM_DATA_PATH_FAILURE_COUNTERS"
+echo " Include PM ReTx: $INCLUDE_DSL_CPE_PM_RETX_COUNTERS"
+echo " Include PM line threshold: $INCLUDE_DSL_CPE_PM_LINE_THRESHOLDS"
+echo " Include PM channel threshold: $INCLUDE_DSL_CPE_PM_CHANNEL_THRESHOLDS"
+echo " Include PM data path threshold: $INCLUDE_DSL_CPE_PM_DATA_PATH_THRESHOLDS"
+echo " Include PM ReTx threshold: $INCLUDE_DSL_CPE_PM_RETX_THRESHOLDS"
+echo " Include FW memory free support: $INCLUDE_DSL_FIRMWARE_MEMORY_FREE"
+echo "----------------------- deprectated ! ----------------------------------"
+echo " Include PM line failure: $INCLUDE_DSL_CPE_PM_LINE_FAILURE_COUNTERS"
+echo ""
+echo " Settings:"
+echo " Configure options: $CONFIGURE_OPTIONS"
+echo "------------------------------------------------------------------------"
])
AC_CONFIG_FILES([Makefile src/Makefile])
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -303,7 +303,7 @@ if KERNEL_2_6
drv_dsl_cpe_api_OBJS = "$(subst .c,.o,$(filter %.c,$(drv_dsl_cpe_api_SOURCES)))"
drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SOURCES)
- @echo -e "drv_dsl_cpe_api: Making Linux 2.6.x kernel object"
+ @echo "drv_dsl_cpe_api: Making Linux 2.6.x kernel object"
if test ! -e common/drv_dsl_cpe_api.c ; then \
echo "copy source files (as links only!)"; \
for f in $(filter %.c,$(drv_dsl_cpe_api_SOURCES)); do \
@@ -311,10 +311,10 @@ drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SO
cp -s $(addprefix @abs_srcdir@/,$$f) $(PWD)/`dirname $$f`/ ; \
done \
fi
- @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 "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
+ @echo "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
+ @echo "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)" >> $(PWD)/Kbuild
+ @echo "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
$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
clean-generic:

View File

@ -37,3 +37,14 @@
return 0;
}
--- a/src/include/drv_dsl_cpe_os_linux.h
+++ b/src/include/drv_dsl_cpe_os_linux.h
@@ -24,7 +24,7 @@
#include <linux/ctype.h>
#include <linux/version.h>
#include <linux/spinlock.h>
-
+#include <linux/sched.h>
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,17))
#include <linux/utsrelease.h>

View File

@ -1,5 +1,14 @@
--- a/configure.in
+++ b/configure.in
@@ -310,7 +310,7 @@ dnl Set kernel build path
AC_ARG_ENABLE(kernelbuild,
AC_HELP_STRING(--enable-kernel-build=x,Set the target kernel build path),
[
- 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!])
@@ -333,12 +333,12 @@ AC_ARG_ENABLE(ifxos-include,
echo Set the lib_ifxos include path $enableval
AC_SUBST([IFXOS_INCLUDE_PATH],[$enableval])