diff options
author | Paul Mundt <lethal@linux-sh.org> | 2006-11-05 02:48:42 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2006-12-05 20:45:37 -0500 |
commit | 710ee0cc45d095f7697821b330a3f8280205c2be (patch) | |
tree | 8bce794be73a6961d118d485c097232628812e94 /arch/sh/boards | |
parent | f36af3fd377081d3ac2ff6b63a60f8db8b3bf531 (diff) |
sh: SE7206 build fixes.
A number of API changes happened underneath the 7206 patches, update
for everything that broke.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards')
-rw-r--r-- | arch/sh/boards/se/7206/irq.c | 44 | ||||
-rw-r--r-- | arch/sh/boards/se/7206/setup.c | 3 |
2 files changed, 12 insertions, 35 deletions
diff --git a/arch/sh/boards/se/7206/irq.c b/arch/sh/boards/se/7206/irq.c index 8d5b278a124d..3fb0c5f5b23a 100644 --- a/arch/sh/boards/se/7206/irq.c +++ b/arch/sh/boards/se/7206/irq.c | |||
@@ -6,12 +6,10 @@ | |||
6 | * Hitachi SolutionEngine Support. | 6 | * Hitachi SolutionEngine Support. |
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | |||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 9 | #include <linux/init.h> |
12 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
13 | #include <asm/irq.h> | 11 | #include <linux/io.h> |
14 | #include <asm/io.h> | 12 | #include <linux/irq.h> |
15 | #include <asm/se7206.h> | 13 | #include <asm/se7206.h> |
16 | 14 | ||
17 | #define INTSTS0 0x31800000 | 15 | #define INTSTS0 0x31800000 |
@@ -20,9 +18,6 @@ | |||
20 | #define INTMSK1 0x31800006 | 18 | #define INTMSK1 0x31800006 |
21 | #define INTSEL 0x31800008 | 19 | #define INTSEL 0x31800008 |
22 | 20 | ||
23 | /* shutdown is same as "disable" */ | ||
24 | #define shutdown_se7206_irq disable_se7206_irq | ||
25 | |||
26 | static void disable_se7206_irq(unsigned int irq) | 21 | static void disable_se7206_irq(unsigned int irq) |
27 | { | 22 | { |
28 | unsigned short val; | 23 | unsigned short val; |
@@ -84,18 +79,7 @@ static void enable_se7206_irq(unsigned int irq) | |||
84 | ctrl_outw(msk1, INTMSK1); | 79 | ctrl_outw(msk1, INTMSK1); |
85 | } | 80 | } |
86 | 81 | ||
87 | static unsigned int startup_se7206_irq(unsigned int irq) | 82 | static void eoi_se7206_irq(unsigned int irq) |
88 | { | ||
89 | enable_se7206_irq(irq); | ||
90 | return 0; /* never anything pending */ | ||
91 | } | ||
92 | |||
93 | static void ack_se7206_irq(unsigned int irq) | ||
94 | { | ||
95 | disable_se7206_irq(irq); | ||
96 | } | ||
97 | |||
98 | static void end_se7206_irq(unsigned int irq) | ||
99 | { | 83 | { |
100 | unsigned short sts0,sts1; | 84 | unsigned short sts0,sts1; |
101 | 85 | ||
@@ -121,20 +105,19 @@ static void end_se7206_irq(unsigned int irq) | |||
121 | ctrl_outw(sts1, INTSTS1); | 105 | ctrl_outw(sts1, INTSTS1); |
122 | } | 106 | } |
123 | 107 | ||
124 | static struct hw_interrupt_type se7206_irq_type = { | 108 | static struct irq_chip se7206_irq_chip __read_mostly = { |
125 | .typename = "SE7206 FPGA-IRQ", | 109 | .name = "SE7206-FPGA-IRQ", |
126 | .startup = startup_se7206_irq, | 110 | .mask = disable_se7206_irq, |
127 | .shutdown = shutdown_se7206_irq, | 111 | .unmask = enable_se7206_irq, |
128 | .enable = enable_se7206_irq, | 112 | .mask_ack = disable_se7206_irq, |
129 | .disable = disable_se7206_irq, | 113 | .eoi = eoi_se7206_irq, |
130 | .ack = ack_se7206_irq, | ||
131 | .end = end_se7206_irq, | ||
132 | }; | 114 | }; |
133 | 115 | ||
134 | static void make_se7206_irq(unsigned int irq) | 116 | static void make_se7206_irq(unsigned int irq) |
135 | { | 117 | { |
136 | disable_irq_nosync(irq); | 118 | disable_irq_nosync(irq); |
137 | irq_desc[irq].handler = &se7206_irq_type; | 119 | set_irq_chip_and_handler_name(irq, &se7206_irq_chip, |
120 | handle_level_irq, "level"); | ||
138 | disable_se7206_irq(irq); | 121 | disable_se7206_irq(irq); |
139 | } | 122 | } |
140 | 123 | ||
@@ -154,8 +137,3 @@ void __init init_se7206_IRQ(void) | |||
154 | /* IRQ0=LAN, IRQ1=ATA, IRQ3=SLT,PCM */ | 137 | /* IRQ0=LAN, IRQ1=ATA, IRQ3=SLT,PCM */ |
155 | ctrl_outw(0x0001,INTSEL); | 138 | ctrl_outw(0x0001,INTSEL); |
156 | } | 139 | } |
157 | |||
158 | int se7206_irq_demux(int irq) | ||
159 | { | ||
160 | return irq; | ||
161 | } | ||
diff --git a/arch/sh/boards/se/7206/setup.c b/arch/sh/boards/se/7206/setup.c index e543e3980c08..0f42e91a3238 100644 --- a/arch/sh/boards/se/7206/setup.c +++ b/arch/sh/boards/se/7206/setup.c | |||
@@ -10,8 +10,8 @@ | |||
10 | 10 | ||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
13 | #include <asm/io.h> | ||
14 | #include <asm/se7206.h> | 13 | #include <asm/se7206.h> |
14 | #include <asm/io.h> | ||
15 | #include <asm/machvec.h> | 15 | #include <asm/machvec.h> |
16 | 16 | ||
17 | static struct resource smc91x_resources[] = { | 17 | static struct resource smc91x_resources[] = { |
@@ -72,7 +72,6 @@ struct sh_machine_vector mv_se __initmv = { | |||
72 | .mv_outsl = se7206_outsl, | 72 | .mv_outsl = se7206_outsl, |
73 | 73 | ||
74 | .mv_init_irq = init_se7206_IRQ, | 74 | .mv_init_irq = init_se7206_IRQ, |
75 | .mv_irq_demux = se7206_irq_demux, | ||
76 | #ifdef CONFIG_HEARTBEAT | 75 | #ifdef CONFIG_HEARTBEAT |
77 | .mv_heartbeat = heartbeat_se, | 76 | .mv_heartbeat = heartbeat_se, |
78 | #endif | 77 | #endif |