git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
mips
/
sgi-ip22
/
ip22-eisa.c
diff --git
a/arch/mips/sgi-ip22/ip22-eisa.c
b/arch/mips/sgi-ip22/ip22-eisa.c
index
b198201
..
a1a9af6
100644
(file)
--- a/
arch/mips/sgi-ip22/ip22-eisa.c
+++ b/
arch/mips/sgi-ip22/ip22-eisa.c
@@
-19,7
+19,6
@@
* - Fix more bugs.
*/
* - Fix more bugs.
*/
-#include <linux/config.h>
#include <linux/eisa.h>
#include <linux/types.h>
#include <linux/init.h>
#include <linux/eisa.h>
#include <linux/types.h>
#include <linux/init.h>
@@
-71,7
+70,7
@@
static char __init *decode_eisa_sig(unsigned long addr)
return sig_str;
}
return sig_str;
}
-static irqreturn_t ip22_eisa_intr(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t ip22_eisa_intr(int irq, void *dev_id)
{
u8 eisa_irq;
u8 dma1, dma2;
{
u8 eisa_irq;
u8 dma1, dma2;
@@
-81,7
+80,7
@@
static irqreturn_t ip22_eisa_intr(int irq, void *dev_id, struct pt_regs *regs)
dma2 = inb(EISA_DMA2_STATUS);
if (eisa_irq < EISA_MAX_IRQ) {
dma2 = inb(EISA_DMA2_STATUS);
if (eisa_irq < EISA_MAX_IRQ) {
- do_IRQ(eisa_irq
, regs
);
+ do_IRQ(eisa_irq);
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
@@
-90,21
+89,17
@@
static irqreturn_t ip22_eisa_intr(int irq, void *dev_id, struct pt_regs *regs)
outb(0x20, EISA_INT2_CTRL);
outb(0x20, EISA_INT1_CTRL);
outb(0x20, EISA_INT2_CTRL);
outb(0x20, EISA_INT1_CTRL);
+
return IRQ_NONE;
}
static void enable_eisa1_irq(unsigned int irq)
{
return IRQ_NONE;
}
static void enable_eisa1_irq(unsigned int irq)
{
- unsigned long flags;
u8 mask;
u8 mask;
- local_irq_save(flags);
-
mask = inb(EISA_INT1_MASK);
mask &= ~((u8) (1 << irq));
outb(mask, EISA_INT1_MASK);
mask = inb(EISA_INT1_MASK);
mask &= ~((u8) (1 << irq));
outb(mask, EISA_INT1_MASK);
-
- local_irq_restore(flags);
}
static unsigned int startup_eisa1_irq(unsigned int irq)
}
static unsigned int startup_eisa1_irq(unsigned int irq)
@@
-130,8
+125,6
@@
static void disable_eisa1_irq(unsigned int irq)
outb(mask, EISA_INT1_MASK);
}
outb(mask, EISA_INT1_MASK);
}
-#define shutdown_eisa1_irq disable_eisa1_irq
-
static void mask_and_ack_eisa1_irq(unsigned int irq)
{
disable_eisa1_irq(irq);
static void mask_and_ack_eisa1_irq(unsigned int irq)
{
disable_eisa1_irq(irq);
@@
-145,28
+138,23
@@
static void end_eisa1_irq(unsigned int irq)
enable_eisa1_irq(irq);
}
enable_eisa1_irq(irq);
}
-static struct
hw_interrupt_type
ip22_eisa1_irq_type = {
+static struct
irq_chip
ip22_eisa1_irq_type = {
.typename = "IP22 EISA",
.startup = startup_eisa1_irq,
.typename = "IP22 EISA",
.startup = startup_eisa1_irq,
- .shutdown = shutdown_eisa1_irq,
- .enable = enable_eisa1_irq,
- .disable = disable_eisa1_irq,
.ack = mask_and_ack_eisa1_irq,
.ack = mask_and_ack_eisa1_irq,
+ .mask = disable_eisa1_irq,
+ .mask_ack = mask_and_ack_eisa1_irq,
+ .unmask = enable_eisa1_irq,
.end = end_eisa1_irq,
};
static void enable_eisa2_irq(unsigned int irq)
{
.end = end_eisa1_irq,
};
static void enable_eisa2_irq(unsigned int irq)
{
- unsigned long flags;
u8 mask;
u8 mask;
- local_irq_save(flags);
-
mask = inb(EISA_INT2_MASK);
mask &= ~((u8) (1 << (irq - 8)));
outb(mask, EISA_INT2_MASK);
mask = inb(EISA_INT2_MASK);
mask &= ~((u8) (1 << (irq - 8)));
outb(mask, EISA_INT2_MASK);
-
- local_irq_restore(flags);
}
static unsigned int startup_eisa2_irq(unsigned int irq)
}
static unsigned int startup_eisa2_irq(unsigned int irq)
@@
-192,8
+180,6
@@
static void disable_eisa2_irq(unsigned int irq)
outb(mask, EISA_INT2_MASK);
}
outb(mask, EISA_INT2_MASK);
}
-#define shutdown_eisa2_irq disable_eisa2_irq
-
static void mask_and_ack_eisa2_irq(unsigned int irq)
{
disable_eisa2_irq(irq);
static void mask_and_ack_eisa2_irq(unsigned int irq)
{
disable_eisa2_irq(irq);
@@
-207,13
+193,13
@@
static void end_eisa2_irq(unsigned int irq)
enable_eisa2_irq(irq);
}
enable_eisa2_irq(irq);
}
-static struct
hw_interrupt_type
ip22_eisa2_irq_type = {
+static struct
irq_chip
ip22_eisa2_irq_type = {
.typename = "IP22 EISA",
.startup = startup_eisa2_irq,
.typename = "IP22 EISA",
.startup = startup_eisa2_irq,
- .shutdown = shutdown_eisa2_irq,
- .enable = enable_eisa2_irq,
- .disable = disable_eisa2_irq,
.ack = mask_and_ack_eisa2_irq,
.ack = mask_and_ack_eisa2_irq,
+ .mask = disable_eisa2_irq,
+ .mask_ack = mask_and_ack_eisa2_irq,
+ .unmask = enable_eisa2_irq,
.end = end_eisa2_irq,
};
.end = end_eisa2_irq,
};
@@
-275,13
+261,10
@@
int __init ip22_eisa_init(void)
outb(0, EISA_DMA2_WRITE_SINGLE);
for (i = SGINT_EISA; i < (SGINT_EISA + EISA_MAX_IRQ); i++) {
outb(0, EISA_DMA2_WRITE_SINGLE);
for (i = SGINT_EISA; i < (SGINT_EISA + EISA_MAX_IRQ); i++) {
- irq_desc[i].status = IRQ_DISABLED;
- irq_desc[i].action = 0;
- irq_desc[i].depth = 1;
if (i < (SGINT_EISA + 8))
if (i < (SGINT_EISA + 8))
-
irq_desc[i].handler = &ip22_eisa1_irq_type
;
+
set_irq_chip(i, &ip22_eisa1_irq_type)
;
else
else
-
irq_desc[i].handler = &ip22_eisa2_irq_type
;
+
set_irq_chip(i, &ip22_eisa2_irq_type)
;
}
/* Cannot use request_irq because of kmalloc not being ready at such
}
/* Cannot use request_irq because of kmalloc not being ready at such