Lines Matching refs:irq

75 static void pic_clear_isr(struct kvm_kpic_state *s, int irq)  in pic_clear_isr()  argument
77 s->isr &= ~(1 << irq); in pic_clear_isr()
79 irq += 8; in pic_clear_isr()
87 kvm_notify_acked_irq(s->pics_state->kvm, SELECT_PIC(irq), irq); in pic_clear_isr()
94 static inline int pic_set_irq1(struct kvm_kpic_state *s, int irq, int level) in pic_set_irq1() argument
97 mask = 1 << irq; in pic_set_irq1()
170 int irq2, irq; in pic_update_irq() local
180 irq = pic_get_irq(&s->pics[0]); in pic_update_irq()
181 pic_irq_request(s->kvm, irq >= 0); in pic_update_irq()
191 int kvm_pic_set_irq(struct kvm_pic *s, int irq, int irq_source_id, int level) in kvm_pic_set_irq() argument
195 BUG_ON(irq < 0 || irq >= PIC_NUM_PINS); in kvm_pic_set_irq()
198 irq_level = __kvm_irq_line_state(&s->irq_states[irq], in kvm_pic_set_irq()
200 ret = pic_set_irq1(&s->pics[irq >> 3], irq & 7, irq_level); in kvm_pic_set_irq()
202 trace_kvm_pic_set_irq(irq >> 3, irq & 7, s->pics[irq >> 3].elcr, in kvm_pic_set_irq()
203 s->pics[irq >> 3].imr, ret == 0); in kvm_pic_set_irq()
222 static inline void pic_intack(struct kvm_kpic_state *s, int irq) in pic_intack() argument
224 s->isr |= 1 << irq; in pic_intack()
228 if (!(s->elcr & (1 << irq))) in pic_intack()
229 s->irr &= ~(1 << irq); in pic_intack()
233 s->priority_add = (irq + 1) & 7; in pic_intack()
234 pic_clear_isr(s, irq); in pic_intack()
241 int irq, irq2, intno; in kvm_pic_read_irq() local
247 irq = pic_get_irq(&s->pics[0]); in kvm_pic_read_irq()
248 if (irq >= 0) { in kvm_pic_read_irq()
249 pic_intack(&s->pics[0], irq); in kvm_pic_read_irq()
250 if (irq == 2) { in kvm_pic_read_irq()
260 irq = irq2 + 8; in kvm_pic_read_irq()
262 intno = s->pics[0].irq_base + irq; in kvm_pic_read_irq()
267 irq = 7; in kvm_pic_read_irq()
268 intno = s->pics[0].irq_base + irq; in kvm_pic_read_irq()
278 int irq, i; in kvm_pic_reset() local
305 for (irq = 0; irq < PIC_NUM_PINS/2; irq++) in kvm_pic_reset()
306 if (edge_irr & (1 << irq)) in kvm_pic_reset()
307 pic_clear_isr(s, irq); in kvm_pic_reset()
313 int priority, cmd, irq; in pic_ioport_write() local
343 irq = (priority + s->priority_add) & 7; in pic_ioport_write()
345 s->priority_add = (irq + 1) & 7; in pic_ioport_write()
346 pic_clear_isr(s, irq); in pic_ioport_write()
351 irq = val & 7; in pic_ioport_write()
352 pic_clear_isr(s, irq); in pic_ioport_write()
360 irq = val & 7; in pic_ioport_write()
361 s->priority_add = (irq + 1) & 7; in pic_ioport_write()
362 pic_clear_isr(s, irq); in pic_ioport_write()
375 for (irq = 0; irq < PIC_NUM_PINS/2; irq++) in pic_ioport_write()
376 if (imr_diff & (1 << irq)) in pic_ioport_write()
379 SELECT_PIC(irq + off), in pic_ioport_write()
380 irq + off, in pic_ioport_write()
381 !!(s->imr & (1 << irq))); in pic_ioport_write()