summaryrefslogtreecommitdiffstats
path: root/package/ifxmips-dsl-api/patches/200-mei_compat.patch
blob: 352a974e60cfe6ef3be3925739007c55a2803ee4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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");