Lines Matching refs:vector
78 .vector = IRQ_VECTOR_UNASSIGNED,
108 int pos, vector; in find_unassigned_vector() local
115 vector = IA64_FIRST_DEVICE_VECTOR + pos; in find_unassigned_vector()
116 cpumask_and(&mask, &domain, &vector_table[vector]); in find_unassigned_vector()
119 return vector; in find_unassigned_vector()
124 static int __bind_irq_vector(int irq, int vector, cpumask_t domain) in __bind_irq_vector() argument
131 BUG_ON((unsigned)vector >= IA64_NUM_VECTORS); in __bind_irq_vector()
136 if ((cfg->vector == vector) && cpumask_equal(&cfg->domain, &domain)) in __bind_irq_vector()
138 if (cfg->vector != IRQ_VECTOR_UNASSIGNED) in __bind_irq_vector()
141 per_cpu(vector_irq, cpu)[vector] = irq; in __bind_irq_vector()
142 cfg->vector = vector; in __bind_irq_vector()
145 cpumask_or(&vector_table[vector], &vector_table[vector], &domain); in __bind_irq_vector()
149 int bind_irq_vector(int irq, int vector, cpumask_t domain) in bind_irq_vector() argument
155 ret = __bind_irq_vector(irq, vector, domain); in bind_irq_vector()
162 int vector, cpu; in __clear_irq_vector() local
167 BUG_ON(cfg->vector == IRQ_VECTOR_UNASSIGNED); in __clear_irq_vector()
168 vector = cfg->vector; in __clear_irq_vector()
171 per_cpu(vector_irq, cpu)[vector] = -1; in __clear_irq_vector()
172 cfg->vector = IRQ_VECTOR_UNASSIGNED; in __clear_irq_vector()
175 cpumask_andnot(&vector_table[vector], &vector_table[vector], &domain); in __clear_irq_vector()
191 int vector, cpu; in ia64_native_assign_irq_vector() local
194 vector = -ENOSPC; in ia64_native_assign_irq_vector()
199 vector = find_unassigned_vector(domain); in ia64_native_assign_irq_vector()
200 if (vector >= 0) in ia64_native_assign_irq_vector()
203 if (vector < 0) in ia64_native_assign_irq_vector()
206 irq = vector; in ia64_native_assign_irq_vector()
207 BUG_ON(__bind_irq_vector(irq, vector, domain)); in ia64_native_assign_irq_vector()
210 return vector; in ia64_native_assign_irq_vector()
214 ia64_native_free_irq_vector (int vector) in ia64_native_free_irq_vector() argument
216 if (vector < IA64_FIRST_DEVICE_VECTOR || in ia64_native_free_irq_vector()
217 vector > IA64_LAST_DEVICE_VECTOR) in ia64_native_free_irq_vector()
219 clear_irq_vector(vector); in ia64_native_free_irq_vector()
223 reserve_irq_vector (int vector) in reserve_irq_vector() argument
225 if (vector < IA64_FIRST_DEVICE_VECTOR || in reserve_irq_vector()
226 vector > IA64_LAST_DEVICE_VECTOR) in reserve_irq_vector()
228 return !!bind_irq_vector(vector, vector, CPU_MASK_ALL); in reserve_irq_vector()
237 int irq, vector; in __setup_vector_irq() local
240 for (vector = 0; vector < IA64_NUM_VECTORS; ++vector) in __setup_vector_irq()
241 per_cpu(vector_irq, cpu)[vector] = -1; in __setup_vector_irq()
246 vector = irq_to_vector(irq); in __setup_vector_irq()
247 per_cpu(vector_irq, cpu)[vector] = irq; in __setup_vector_irq()
268 int vector; in __irq_prepare_move() local
273 if (cfg->vector == IRQ_VECTOR_UNASSIGNED || !cpu_online(cpu)) in __irq_prepare_move()
278 vector = find_unassigned_vector(domain); in __irq_prepare_move()
279 if (vector < 0) in __irq_prepare_move()
283 cfg->vector = IRQ_VECTOR_UNASSIGNED; in __irq_prepare_move()
285 BUG_ON(__bind_irq_vector(irq, vector, domain)); in __irq_prepare_move()
322 ia64_vector vector; in smp_irq_move_cleanup_interrupt() local
325 for (vector = IA64_FIRST_DEVICE_VECTOR; in smp_irq_move_cleanup_interrupt()
326 vector < IA64_LAST_DEVICE_VECTOR; vector++) { in smp_irq_move_cleanup_interrupt()
330 irq = __this_cpu_read(vector_irq[vector]); in smp_irq_move_cleanup_interrupt()
344 __this_cpu_write(vector_irq[vector], -1); in smp_irq_move_cleanup_interrupt()
345 cpumask_clear_cpu(me, &vector_table[vector]); in smp_irq_move_cleanup_interrupt()
395 int irq, vector, cpu; in create_irq() local
398 irq = vector = -ENOSPC; in create_irq()
402 vector = find_unassigned_vector(domain); in create_irq()
403 if (vector >= 0) in create_irq()
406 if (vector < 0) in create_irq()
411 BUG_ON(__bind_irq_vector(irq, vector, domain)); in create_irq()
438 ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) in ia64_handle_irq() argument
477 while (vector != IA64_SPURIOUS_INT_VECTOR) { in ia64_handle_irq()
478 int irq = local_vector_to_irq(vector); in ia64_handle_irq()
480 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { in ia64_handle_irq()
483 } else if (unlikely(IS_RESCHEDULE(vector))) { in ia64_handle_irq()
487 ia64_setreg(_IA64_REG_CR_TPR, vector); in ia64_handle_irq()
493 "to any IRQ!\n", __func__, vector, in ia64_handle_irq()
505 vector = ia64_get_ivr(); in ia64_handle_irq()
523 ia64_vector vector; in ia64_process_pending_intr() local
527 vector = ia64_get_ivr(); in ia64_process_pending_intr()
536 while (vector != IA64_SPURIOUS_INT_VECTOR) { in ia64_process_pending_intr()
537 int irq = local_vector_to_irq(vector); in ia64_process_pending_intr()
539 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { in ia64_process_pending_intr()
542 } else if (unlikely(IS_RESCHEDULE(vector))) { in ia64_process_pending_intr()
547 ia64_setreg(_IA64_REG_CR_TPR, vector); in ia64_process_pending_intr()
559 "to any IRQ!!\n", __func__, vector, in ia64_process_pending_intr()
574 vector = ia64_get_ivr(); in ia64_process_pending_intr()
649 ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect) in ia64_send_ipi() argument
661 ipi_data = (delivery_mode << 8) | (vector & 0xff); in ia64_send_ipi()