Lines Matching refs:desc

99 void gic_set_irq_type(struct irq_desc *desc, unsigned int type)  in gic_set_irq_type()  argument
105 ASSERT(test_bit(_IRQ_DISABLED, &desc->status)); in gic_set_irq_type()
106 ASSERT(spin_is_locked(&desc->lock)); in gic_set_irq_type()
109 gic_hw_ops->set_irq_type(desc, type); in gic_set_irq_type()
112 static void gic_set_irq_priority(struct irq_desc *desc, unsigned int priority) in gic_set_irq_priority() argument
114 gic_hw_ops->set_irq_priority(desc, priority); in gic_set_irq_priority()
120 void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority) in gic_route_irq_to_xen() argument
123 ASSERT(desc->irq < gic_number_lines());/* Can't route interrupts that don't exist */ in gic_route_irq_to_xen()
124 ASSERT(test_bit(_IRQ_DISABLED, &desc->status)); in gic_route_irq_to_xen()
125 ASSERT(spin_is_locked(&desc->lock)); in gic_route_irq_to_xen()
127 desc->handler = gic_hw_ops->gic_host_irq_type; in gic_route_irq_to_xen()
129 gic_set_irq_type(desc, desc->arch.type); in gic_route_irq_to_xen()
130 gic_set_irq_priority(desc, priority); in gic_route_irq_to_xen()
137 struct irq_desc *desc, unsigned int priority) in gic_route_irq_to_guest() argument
147 ASSERT(spin_is_locked(&desc->lock)); in gic_route_irq_to_guest()
155 if ( p->desc || in gic_route_irq_to_guest()
160 desc->handler = gic_hw_ops->gic_guest_irq_type; in gic_route_irq_to_guest()
161 set_bit(_IRQ_GUEST, &desc->status); in gic_route_irq_to_guest()
164 gic_set_irq_type(desc, desc->arch.type); in gic_route_irq_to_guest()
165 gic_set_irq_priority(desc, priority); in gic_route_irq_to_guest()
167 p->desc = desc; in gic_route_irq_to_guest()
178 struct irq_desc *desc) in gic_remove_irq_from_guest() argument
185 ASSERT(spin_is_locked(&desc->lock)); in gic_remove_irq_from_guest()
186 ASSERT(test_bit(_IRQ_GUEST, &desc->status)); in gic_remove_irq_from_guest()
187 ASSERT(p->desc == desc); in gic_remove_irq_from_guest()
194 desc->handler->shutdown(desc); in gic_remove_irq_from_guest()
197 if ( test_bit(_IRQ_INPROGRESS, &desc->status) ) in gic_remove_irq_from_guest()
198 gic_hw_ops->deactivate_irq(desc); in gic_remove_irq_from_guest()
199 clear_bit(_IRQ_INPROGRESS, &desc->status); in gic_remove_irq_from_guest()
207 if ( test_bit(_IRQ_INPROGRESS, &desc->status) || in gic_remove_irq_from_guest()
208 !test_bit(_IRQ_DISABLED, &desc->status) ) in gic_remove_irq_from_guest()
215 clear_bit(_IRQ_GUEST, &desc->status); in gic_remove_irq_from_guest()
216 desc->handler = &no_irq_type; in gic_remove_irq_from_guest()
218 p->desc = NULL; in gic_remove_irq_from_guest()
545 if ( p->desc == NULL ) in gic_update_one_lr()
569 if ( p->desc != NULL ) in gic_update_one_lr()
570 clear_bit(_IRQ_INPROGRESS, &p->desc->status); in gic_update_one_lr()
590 irq_set_affinity(p->desc, cpumask_of(v_target->processor)); in gic_update_one_lr()
740 struct irq_desc *desc = irq_to_desc(sgi); in do_sgi() local
745 gic_hw_ops->eoi_irq(desc); in do_sgi()
764 gic_hw_ops->deactivate_irq(desc); in do_sgi()