Lines Matching refs:n_IRQ
64 static void set_irq(RXICUState *icu, int n_IRQ, int req) in set_irq() argument
67 (icu->fir & R_FIR_FVCT_MASK) == n_IRQ) { in set_irq()
79 static void rxicu_request(RXICUState *icu, int n_IRQ) in rxicu_request() argument
83 enable = icu->ier[n_IRQ / 8] & (1 << (n_IRQ & 7)); in rxicu_request()
84 if (n_IRQ > 0 && enable != 0 && qatomic_read(&icu->req_irq) < 0) { in rxicu_request()
85 qatomic_set(&icu->req_irq, n_IRQ); in rxicu_request()
86 set_irq(icu, n_IRQ, rxicu_level(icu, n_IRQ)); in rxicu_request()
90 static void rxicu_set_irq(void *opaque, int n_IRQ, int level) in rxicu_set_irq() argument
96 if (n_IRQ >= NR_IRQS) { in rxicu_set_irq()
97 error_report("%s: IRQ %d out of range", __func__, n_IRQ); in rxicu_set_irq()
101 src = &icu->src[n_IRQ]; in rxicu_set_irq()
126 icu->ir[n_IRQ] = 0; in rxicu_set_irq()
127 if (qatomic_read(&icu->req_irq) == n_IRQ) { in rxicu_set_irq()
129 set_irq(icu, n_IRQ, 0); in rxicu_set_irq()
135 icu->ir[n_IRQ] = 1; in rxicu_set_irq()
136 rxicu_request(icu, n_IRQ); in rxicu_set_irq()
144 int n_IRQ; in rxicu_ack_irq() local
147 n_IRQ = qatomic_read(&icu->req_irq); in rxicu_ack_irq()
148 if (n_IRQ < 0) { in rxicu_ack_irq()
152 if (icu->src[n_IRQ].sense != TRG_LEVEL) { in rxicu_ack_irq()
153 icu->ir[n_IRQ] = 0; in rxicu_ack_irq()
157 n_IRQ = -1; in rxicu_ack_irq()
161 n_IRQ = i; in rxicu_ack_irq()
167 if (n_IRQ >= 0) { in rxicu_ack_irq()
168 rxicu_request(icu, n_IRQ); in rxicu_ack_irq()