static void set_default_priorities(void) { unsigned int i; for (i = 0; i < ARRAY_SIZE(default_irq_prio); i++) { uint16_t val; uint8_t prio = default_irq_prio[i]; if (prio > 31) { prio = 31; } val = getreg16(IRQ_REG(ILR_IRQ(i))); val &= ~(0x1f << 2); val |= prio << 2; /* Make edge mode default. Hopefully causes less trouble */ val |= 0x02; putreg16(val, IRQ_REG(ILR_IRQ(i))); } }
static void set_default_priorities(void) { unsigned int i; for (i = 0; i < ARRAY_SIZE(default_irq_prio); i++) { uint16_t val; uint8_t prio = default_irq_prio[i]; if (prio > 31) prio = 31; val = readw(IRQ_REG(ILR_IRQ(i))); val &= ~(0x1f << 2); val |= prio << 2; writew(val, IRQ_REG(ILR_IRQ(i))); } }
void irq_config(enum irq_nr nr, int fiq, int edge, int8_t prio) { uint16_t val; if (prio == -1) prio = default_irq_prio[nr]; if (prio > 31) prio = 31; val = prio << 2; if (edge) val |= 0x02; if (fiq) val |= 0x01; writew(val, IRQ_REG(ILR_IRQ(nr))); }
int up_prioritize_irq(int nr, int prio) { uint16_t val; if (prio == -1) { prio = default_irq_prio[nr]; } if (prio > 31) { prio = 31; } val = prio << 2; putreg16(val, IRQ_REG(ILR_IRQ(nr))); return 0; }
int up_prioritize_irq(int nr, int prio) { uint16_t val; if (prio == -1) prio = default_irq_prio[nr]; if (prio > 31) prio = 31; val = prio << 2; /* if (edge) val |= 0x02; if (fiq) val |= 0x01; */ writew(val, IRQ_REG(ILR_IRQ(nr))); return 0; // XXX: what's the return??? }