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) |
