aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-gemini/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-gemini/irq.c')
-rw-r--r--arch/arm/mach-gemini/irq.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/arch/arm/mach-gemini/irq.c b/arch/arm/mach-gemini/irq.c
index 9e613ca8120d..9485a8fdf851 100644
--- a/arch/arm/mach-gemini/irq.c
+++ b/arch/arm/mach-gemini/irq.c
@@ -32,34 +32,34 @@
32#define FIQ_LEVEL(base_addr) (base_addr + 0x30) 32#define FIQ_LEVEL(base_addr) (base_addr + 0x30)
33#define FIQ_STATUS(base_addr) (base_addr + 0x34) 33#define FIQ_STATUS(base_addr) (base_addr + 0x34)
34 34
35static void gemini_ack_irq(unsigned int irq) 35static void gemini_ack_irq(struct irq_data *d)
36{ 36{
37 __raw_writel(1 << irq, IRQ_CLEAR(IO_ADDRESS(GEMINI_INTERRUPT_BASE))); 37 __raw_writel(1 << d->irq, IRQ_CLEAR(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
38} 38}
39 39
40static void gemini_mask_irq(unsigned int irq) 40static void gemini_mask_irq(struct irq_data *d)
41{ 41{
42 unsigned int mask; 42 unsigned int mask;
43 43
44 mask = __raw_readl(IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE))); 44 mask = __raw_readl(IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
45 mask &= ~(1 << irq); 45 mask &= ~(1 << d->irq);
46 __raw_writel(mask, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE))); 46 __raw_writel(mask, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
47} 47}
48 48
49static void gemini_unmask_irq(unsigned int irq) 49static void gemini_unmask_irq(struct irq_data *d)
50{ 50{
51 unsigned int mask; 51 unsigned int mask;
52 52
53 mask = __raw_readl(IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE))); 53 mask = __raw_readl(IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
54 mask |= (1 << irq); 54 mask |= (1 << d->irq);
55 __raw_writel(mask, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE))); 55 __raw_writel(mask, IRQ_MASK(IO_ADDRESS(GEMINI_INTERRUPT_BASE)));
56} 56}
57 57
58static struct irq_chip gemini_irq_chip = { 58static struct irq_chip gemini_irq_chip = {
59 .name = "INTC", 59 .name = "INTC",
60 .ack = gemini_ack_irq, 60 .irq_ack = gemini_ack_irq,
61 .mask = gemini_mask_irq, 61 .irq_mask = gemini_mask_irq,
62 .unmask = gemini_unmask_irq, 62 .irq_unmask = gemini_unmask_irq,
63}; 63};
64 64
65static struct resource irq_resource = { 65static struct resource irq_resource = {
@@ -81,13 +81,13 @@ void __init gemini_init_irq(void)
81 request_resource(&iomem_resource, &irq_resource); 81 request_resource(&iomem_resource, &irq_resource);
82 82
83 for (i = 0; i < NR_IRQS; i++) { 83 for (i = 0; i < NR_IRQS; i++) {
84 set_irq_chip(i, &gemini_irq_chip); 84 irq_set_chip(i, &gemini_irq_chip);
85 if((i >= IRQ_TIMER1 && i <= IRQ_TIMER3) || (i >= IRQ_SERIRQ0 && i <= IRQ_SERIRQ1)) { 85 if((i >= IRQ_TIMER1 && i <= IRQ_TIMER3) || (i >= IRQ_SERIRQ0 && i <= IRQ_SERIRQ1)) {
86 set_irq_handler(i, handle_edge_irq); 86 irq_set_handler(i, handle_edge_irq);
87 mode |= 1 << i; 87 mode |= 1 << i;
88 level |= 1 << i; 88 level |= 1 << i;
89 } else { 89 } else {
90 set_irq_handler(i, handle_level_irq); 90 irq_set_handler(i, handle_level_irq);
91 } 91 }
92 set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 92 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
93 } 93 }