diff options
Diffstat (limited to 'arch/arm/mach-omap2/irq.c')
| -rw-r--r-- | arch/arm/mach-omap2/irq.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 998c5c45587e..b82863887f10 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
| @@ -28,7 +28,6 @@ | |||
| 28 | #define INTC_MIR_CLEAR0 0x0088 | 28 | #define INTC_MIR_CLEAR0 0x0088 |
| 29 | #define INTC_MIR_SET0 0x008c | 29 | #define INTC_MIR_SET0 0x008c |
| 30 | #define INTC_PENDING_IRQ0 0x0098 | 30 | #define INTC_PENDING_IRQ0 0x0098 |
| 31 | |||
| 32 | /* Number of IRQ state bits in each MIR register */ | 31 | /* Number of IRQ state bits in each MIR register */ |
| 33 | #define IRQ_BITS_PER_REG 32 | 32 | #define IRQ_BITS_PER_REG 32 |
| 34 | 33 | ||
| @@ -134,7 +133,6 @@ static struct irq_chip omap_irq_chip = { | |||
| 134 | .ack = omap_mask_ack_irq, | 133 | .ack = omap_mask_ack_irq, |
| 135 | .mask = omap_mask_irq, | 134 | .mask = omap_mask_irq, |
| 136 | .unmask = omap_unmask_irq, | 135 | .unmask = omap_unmask_irq, |
| 137 | .disable = omap_mask_irq, | ||
| 138 | }; | 136 | }; |
| 139 | 137 | ||
| 140 | static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank) | 138 | static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank) |
| @@ -157,6 +155,22 @@ static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank) | |||
| 157 | intc_bank_write_reg(1 << 0, bank, INTC_SYSCONFIG); | 155 | intc_bank_write_reg(1 << 0, bank, INTC_SYSCONFIG); |
| 158 | } | 156 | } |
| 159 | 157 | ||
| 158 | int omap_irq_pending(void) | ||
| 159 | { | ||
| 160 | int i; | ||
| 161 | |||
| 162 | for (i = 0; i < ARRAY_SIZE(irq_banks); i++) { | ||
| 163 | struct omap_irq_bank *bank = irq_banks + i; | ||
| 164 | int irq; | ||
| 165 | |||
| 166 | for (irq = 0; irq < bank->nr_irqs; irq += 32) | ||
| 167 | if (intc_bank_read_reg(bank, INTC_PENDING_IRQ0 + | ||
| 168 | ((irq >> 5) << 5))) | ||
| 169 | return 1; | ||
| 170 | } | ||
| 171 | return 0; | ||
| 172 | } | ||
| 173 | |||
| 160 | void __init omap_init_irq(void) | 174 | void __init omap_init_irq(void) |
| 161 | { | 175 | { |
| 162 | unsigned long nr_of_irqs = 0; | 176 | unsigned long nr_of_irqs = 0; |
