diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-06 09:32:56 -0500 |
|---|---|---|
| committer | Matt Turner <mattst88@gmail.com> | 2011-03-02 14:57:59 -0500 |
| commit | 628150cae3d83136416a384b939d8a6fad52499e (patch) | |
| tree | 2a902d5650d4889ae5896ceabb908aebb0899fae /arch/alpha | |
| parent | b148c6146147ad9985e08ce518f032d8b01d8b30 (diff) | |
alpha: titan: Convert irq_chip functions
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'arch/alpha')
| -rw-r--r-- | arch/alpha/kernel/sys_titan.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c index e02494bf5ef..f6c108a3d67 100644 --- a/arch/alpha/kernel/sys_titan.c +++ b/arch/alpha/kernel/sys_titan.c | |||
| @@ -112,8 +112,9 @@ titan_update_irq_hw(unsigned long mask) | |||
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | static inline void | 114 | static inline void |
| 115 | titan_enable_irq(unsigned int irq) | 115 | titan_enable_irq(struct irq_data *d) |
| 116 | { | 116 | { |
| 117 | unsigned int irq = d->irq; | ||
| 117 | spin_lock(&titan_irq_lock); | 118 | spin_lock(&titan_irq_lock); |
| 118 | titan_cached_irq_mask |= 1UL << (irq - 16); | 119 | titan_cached_irq_mask |= 1UL << (irq - 16); |
| 119 | titan_update_irq_hw(titan_cached_irq_mask); | 120 | titan_update_irq_hw(titan_cached_irq_mask); |
| @@ -121,8 +122,9 @@ titan_enable_irq(unsigned int irq) | |||
| 121 | } | 122 | } |
| 122 | 123 | ||
| 123 | static inline void | 124 | static inline void |
| 124 | titan_disable_irq(unsigned int irq) | 125 | titan_disable_irq(struct irq_data *d) |
| 125 | { | 126 | { |
| 127 | unsigned int irq = d->irq; | ||
| 126 | spin_lock(&titan_irq_lock); | 128 | spin_lock(&titan_irq_lock); |
| 127 | titan_cached_irq_mask &= ~(1UL << (irq - 16)); | 129 | titan_cached_irq_mask &= ~(1UL << (irq - 16)); |
| 128 | titan_update_irq_hw(titan_cached_irq_mask); | 130 | titan_update_irq_hw(titan_cached_irq_mask); |
| @@ -144,7 +146,8 @@ titan_cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity) | |||
| 144 | } | 146 | } |
| 145 | 147 | ||
| 146 | static int | 148 | static int |
| 147 | titan_set_irq_affinity(unsigned int irq, const struct cpumask *affinity) | 149 | titan_set_irq_affinity(struct irq_data *d, const struct cpumask *affinity, |
| 150 | bool force) | ||
| 148 | { | 151 | { |
| 149 | spin_lock(&titan_irq_lock); | 152 | spin_lock(&titan_irq_lock); |
| 150 | titan_cpu_set_irq_affinity(irq - 16, *affinity); | 153 | titan_cpu_set_irq_affinity(irq - 16, *affinity); |
| @@ -175,17 +178,17 @@ init_titan_irqs(struct irq_chip * ops, int imin, int imax) | |||
| 175 | { | 178 | { |
| 176 | long i; | 179 | long i; |
| 177 | for (i = imin; i <= imax; ++i) { | 180 | for (i = imin; i <= imax; ++i) { |
| 178 | irq_to_desc(i)->status |= IRQ_LEVEL; | ||
| 179 | set_irq_chip_and_handler(i, ops, handle_level_irq); | 181 | set_irq_chip_and_handler(i, ops, handle_level_irq); |
| 182 | irq_set_status_flags(i, IRQ_LEVEL); | ||
| 180 | } | 183 | } |
| 181 | } | 184 | } |
| 182 | 185 | ||
| 183 | static struct irq_chip titan_irq_type = { | 186 | static struct irq_chip titan_irq_type = { |
| 184 | .name = "TITAN", | 187 | .name = "TITAN", |
| 185 | .unmask = titan_enable_irq, | 188 | .irq_unmask = titan_enable_irq, |
| 186 | .mask = titan_disable_irq, | 189 | .irq_mask = titan_disable_irq, |
| 187 | .mask_ack = titan_disable_irq, | 190 | .irq_mask_ack = titan_disable_irq, |
| 188 | .set_affinity = titan_set_irq_affinity, | 191 | .irq_set_affinity = titan_set_irq_affinity, |
| 189 | }; | 192 | }; |
| 190 | 193 | ||
| 191 | static irqreturn_t | 194 | static irqreturn_t |
