diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-04 14:08:36 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-29 08:48:01 -0400 |
commit | 545c8d8d4f03b2d9d3a556b05e7eaf2019c530d7 (patch) | |
tree | 34e3a9fdbd48cd436da24283f0fc2622c5ebb379 /arch/ia64 | |
parent | 42c9a74d0ed6b2034ac450058b6b2cc0cc81139e (diff) |
ia64: Convert sn to new irq_chip functions
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/sn/kernel/irq.c | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 658c716283ce..15193df56040 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -78,34 +78,34 @@ u64 sn_intr_redirect(nasid_t local_nasid, int local_widget, | |||
78 | return ret_stuff.status; | 78 | return ret_stuff.status; |
79 | } | 79 | } |
80 | 80 | ||
81 | static unsigned int sn_startup_irq(unsigned int irq) | 81 | static unsigned int sn_startup_irq(struct irq_data *data) |
82 | { | 82 | { |
83 | return 0; | 83 | return 0; |
84 | } | 84 | } |
85 | 85 | ||
86 | static void sn_shutdown_irq(unsigned int irq) | 86 | static void sn_shutdown_irq(struct irq_data *data) |
87 | { | 87 | { |
88 | } | 88 | } |
89 | 89 | ||
90 | extern void ia64_mca_register_cpev(int); | 90 | extern void ia64_mca_register_cpev(int); |
91 | 91 | ||
92 | static void sn_disable_irq(unsigned int irq) | 92 | static void sn_disable_irq(struct irq_data *data) |
93 | { | 93 | { |
94 | if (irq == local_vector_to_irq(IA64_CPE_VECTOR)) | 94 | if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR)) |
95 | ia64_mca_register_cpev(0); | 95 | ia64_mca_register_cpev(0); |
96 | } | 96 | } |
97 | 97 | ||
98 | static void sn_enable_irq(unsigned int irq) | 98 | static void sn_enable_irq(struct irq_data *data) |
99 | { | 99 | { |
100 | if (irq == local_vector_to_irq(IA64_CPE_VECTOR)) | 100 | if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR)) |
101 | ia64_mca_register_cpev(irq); | 101 | ia64_mca_register_cpev(data->irq); |
102 | } | 102 | } |
103 | 103 | ||
104 | static void sn_ack_irq(unsigned int irq) | 104 | static void sn_ack_irq(struct irq_data *data) |
105 | { | 105 | { |
106 | u64 event_occurred, mask; | 106 | u64 event_occurred, mask; |
107 | unsigned int irq = data->irq & 0xff; | ||
107 | 108 | ||
108 | irq = irq & 0xff; | ||
109 | event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED)); | 109 | event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED)); |
110 | mask = event_occurred & SH_ALL_INT_MASK; | 110 | mask = event_occurred & SH_ALL_INT_MASK; |
111 | HUB_S((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS), mask); | 111 | HUB_S((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS), mask); |
@@ -206,9 +206,11 @@ finish_up: | |||
206 | return new_irq_info; | 206 | return new_irq_info; |
207 | } | 207 | } |
208 | 208 | ||
209 | static int sn_set_affinity_irq(unsigned int irq, const struct cpumask *mask) | 209 | static int sn_set_affinity_irq(struct irq_data *data, |
210 | const struct cpumask *mask, bool force) | ||
210 | { | 211 | { |
211 | struct sn_irq_info *sn_irq_info, *sn_irq_info_safe; | 212 | struct sn_irq_info *sn_irq_info, *sn_irq_info_safe; |
213 | unsigned int irq = data->irq; | ||
212 | nasid_t nasid; | 214 | nasid_t nasid; |
213 | int slice; | 215 | int slice; |
214 | 216 | ||
@@ -237,25 +239,25 @@ void sn_set_err_irq_affinity(unsigned int irq) { } | |||
237 | #endif | 239 | #endif |
238 | 240 | ||
239 | static void | 241 | static void |
240 | sn_mask_irq(unsigned int irq) | 242 | sn_mask_irq(struct irq_data *data) |
241 | { | 243 | { |
242 | } | 244 | } |
243 | 245 | ||
244 | static void | 246 | static void |
245 | sn_unmask_irq(unsigned int irq) | 247 | sn_unmask_irq(struct irq_data *data) |
246 | { | 248 | { |
247 | } | 249 | } |
248 | 250 | ||
249 | struct irq_chip irq_type_sn = { | 251 | struct irq_chip irq_type_sn = { |
250 | .name = "SN hub", | 252 | .name = "SN hub", |
251 | .startup = sn_startup_irq, | 253 | .irq_startup = sn_startup_irq, |
252 | .shutdown = sn_shutdown_irq, | 254 | .irq_shutdown = sn_shutdown_irq, |
253 | .enable = sn_enable_irq, | 255 | .irq_enable = sn_enable_irq, |
254 | .disable = sn_disable_irq, | 256 | .irq_disable = sn_disable_irq, |
255 | .ack = sn_ack_irq, | 257 | .irq_ack = sn_ack_irq, |
256 | .mask = sn_mask_irq, | 258 | .irq_mask = sn_mask_irq, |
257 | .unmask = sn_unmask_irq, | 259 | .irq_unmask = sn_unmask_irq, |
258 | .set_affinity = sn_set_affinity_irq | 260 | .irq_set_affinity = sn_set_affinity_irq |
259 | }; | 261 | }; |
260 | 262 | ||
261 | ia64_vector sn_irq_to_vector(int irq) | 263 | ia64_vector sn_irq_to_vector(int irq) |