diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/parisc/eisa.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/parisc/eisa.c')
-rw-r--r-- | drivers/parisc/eisa.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c index 46f503fb7fc5..103095bbe8c0 100644 --- a/drivers/parisc/eisa.c +++ b/drivers/parisc/eisa.c | |||
@@ -144,8 +144,9 @@ static unsigned int eisa_irq_level __read_mostly; /* default to edge triggered * | |||
144 | 144 | ||
145 | 145 | ||
146 | /* called by free irq */ | 146 | /* called by free irq */ |
147 | static void eisa_disable_irq(unsigned int irq) | 147 | static void eisa_mask_irq(struct irq_data *d) |
148 | { | 148 | { |
149 | unsigned int irq = d->irq; | ||
149 | unsigned long flags; | 150 | unsigned long flags; |
150 | 151 | ||
151 | EISA_DBG("disable irq %d\n", irq); | 152 | EISA_DBG("disable irq %d\n", irq); |
@@ -164,8 +165,9 @@ static void eisa_disable_irq(unsigned int irq) | |||
164 | } | 165 | } |
165 | 166 | ||
166 | /* called by request irq */ | 167 | /* called by request irq */ |
167 | static void eisa_enable_irq(unsigned int irq) | 168 | static void eisa_unmask_irq(struct irq_data *d) |
168 | { | 169 | { |
170 | unsigned int irq = d->irq; | ||
169 | unsigned long flags; | 171 | unsigned long flags; |
170 | EISA_DBG("enable irq %d\n", irq); | 172 | EISA_DBG("enable irq %d\n", irq); |
171 | 173 | ||
@@ -182,20 +184,10 @@ static void eisa_enable_irq(unsigned int irq) | |||
182 | EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); | 184 | EISA_DBG("pic1 mask %02x\n", eisa_in8(0xa1)); |
183 | } | 185 | } |
184 | 186 | ||
185 | static unsigned int eisa_startup_irq(unsigned int irq) | ||
186 | { | ||
187 | eisa_enable_irq(irq); | ||
188 | return 0; | ||
189 | } | ||
190 | |||
191 | static struct irq_chip eisa_interrupt_type = { | 187 | static struct irq_chip eisa_interrupt_type = { |
192 | .name = "EISA", | 188 | .name = "EISA", |
193 | .startup = eisa_startup_irq, | 189 | .irq_unmask = eisa_unmask_irq, |
194 | .shutdown = eisa_disable_irq, | 190 | .irq_mask = eisa_mask_irq, |
195 | .enable = eisa_enable_irq, | ||
196 | .disable = eisa_disable_irq, | ||
197 | .ack = no_ack_irq, | ||
198 | .end = no_end_irq, | ||
199 | }; | 191 | }; |
200 | 192 | ||
201 | static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) | 193 | static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) |
@@ -233,7 +225,7 @@ static irqreturn_t eisa_irq(int wax_irq, void *intr_dev) | |||
233 | } | 225 | } |
234 | spin_unlock_irqrestore(&eisa_irq_lock, flags); | 226 | spin_unlock_irqrestore(&eisa_irq_lock, flags); |
235 | 227 | ||
236 | __do_IRQ(irq); | 228 | generic_handle_irq(irq); |
237 | 229 | ||
238 | spin_lock_irqsave(&eisa_irq_lock, flags); | 230 | spin_lock_irqsave(&eisa_irq_lock, flags); |
239 | /* unmask */ | 231 | /* unmask */ |
@@ -346,10 +338,10 @@ static int __init eisa_probe(struct parisc_device *dev) | |||
346 | } | 338 | } |
347 | 339 | ||
348 | /* Reserve IRQ2 */ | 340 | /* Reserve IRQ2 */ |
349 | irq_to_desc(2)->action = &irq2_action; | 341 | setup_irq(2, &irq2_action); |
350 | |||
351 | for (i = 0; i < 16; i++) { | 342 | for (i = 0; i < 16; i++) { |
352 | irq_to_desc(i)->chip = &eisa_interrupt_type; | 343 | irq_set_chip_and_handler(i, &eisa_interrupt_type, |
344 | handle_simple_irq); | ||
353 | } | 345 | } |
354 | 346 | ||
355 | EISA_bus = 1; | 347 | EISA_bus = 1; |