Lines Matching refs:vector
79 .vector = IRQ_VECTOR_UNASSIGNED,
109 int pos, vector; in find_unassigned_vector() local
116 vector = IA64_FIRST_DEVICE_VECTOR + pos; in find_unassigned_vector()
117 cpumask_and(&mask, &domain, &vector_table[vector]); in find_unassigned_vector()
120 return vector; in find_unassigned_vector()
125 static int __bind_irq_vector(int irq, int vector, cpumask_t domain) in __bind_irq_vector() argument
132 BUG_ON((unsigned)vector >= IA64_NUM_VECTORS); in __bind_irq_vector()
137 if ((cfg->vector == vector) && cpumask_equal(&cfg->domain, &domain)) in __bind_irq_vector()
139 if (cfg->vector != IRQ_VECTOR_UNASSIGNED) in __bind_irq_vector()
142 per_cpu(vector_irq, cpu)[vector] = irq; in __bind_irq_vector()
143 cfg->vector = vector; in __bind_irq_vector()
146 cpumask_or(&vector_table[vector], &vector_table[vector], &domain); in __bind_irq_vector()
150 int bind_irq_vector(int irq, int vector, cpumask_t domain) in bind_irq_vector() argument
156 ret = __bind_irq_vector(irq, vector, domain); in bind_irq_vector()
163 int vector, cpu; in __clear_irq_vector() local
168 BUG_ON(cfg->vector == IRQ_VECTOR_UNASSIGNED); in __clear_irq_vector()
169 vector = cfg->vector; in __clear_irq_vector()
172 per_cpu(vector_irq, cpu)[vector] = -1; in __clear_irq_vector()
173 cfg->vector = IRQ_VECTOR_UNASSIGNED; in __clear_irq_vector()
176 cpumask_andnot(&vector_table[vector], &vector_table[vector], &domain); in __clear_irq_vector()
192 int vector, cpu; in ia64_native_assign_irq_vector() local
195 vector = -ENOSPC; in ia64_native_assign_irq_vector()
200 vector = find_unassigned_vector(domain); in ia64_native_assign_irq_vector()
201 if (vector >= 0) in ia64_native_assign_irq_vector()
204 if (vector < 0) in ia64_native_assign_irq_vector()
207 irq = vector; in ia64_native_assign_irq_vector()
208 BUG_ON(__bind_irq_vector(irq, vector, domain)); in ia64_native_assign_irq_vector()
211 return vector; in ia64_native_assign_irq_vector()
215 ia64_native_free_irq_vector (int vector) in ia64_native_free_irq_vector() argument
217 if (vector < IA64_FIRST_DEVICE_VECTOR || in ia64_native_free_irq_vector()
218 vector > IA64_LAST_DEVICE_VECTOR) in ia64_native_free_irq_vector()
220 clear_irq_vector(vector); in ia64_native_free_irq_vector()
224 reserve_irq_vector (int vector) in reserve_irq_vector() argument
226 if (vector < IA64_FIRST_DEVICE_VECTOR || in reserve_irq_vector()
227 vector > IA64_LAST_DEVICE_VECTOR) in reserve_irq_vector()
229 return !!bind_irq_vector(vector, vector, CPU_MASK_ALL); in reserve_irq_vector()
238 int irq, vector; in __setup_vector_irq() local
241 for (vector = 0; vector < IA64_NUM_VECTORS; ++vector) in __setup_vector_irq()
242 per_cpu(vector_irq, cpu)[vector] = -1; in __setup_vector_irq()
247 vector = irq_to_vector(irq); in __setup_vector_irq()
248 per_cpu(vector_irq, cpu)[vector] = irq; in __setup_vector_irq()
269 int vector; in __irq_prepare_move() local
274 if (cfg->vector == IRQ_VECTOR_UNASSIGNED || !cpu_online(cpu)) in __irq_prepare_move()
279 vector = find_unassigned_vector(domain); in __irq_prepare_move()
280 if (vector < 0) in __irq_prepare_move()
284 cfg->vector = IRQ_VECTOR_UNASSIGNED; in __irq_prepare_move()
286 BUG_ON(__bind_irq_vector(irq, vector, domain)); in __irq_prepare_move()
323 ia64_vector vector; in smp_irq_move_cleanup_interrupt() local
326 for (vector = IA64_FIRST_DEVICE_VECTOR; in smp_irq_move_cleanup_interrupt()
327 vector < IA64_LAST_DEVICE_VECTOR; vector++) { in smp_irq_move_cleanup_interrupt()
331 irq = __this_cpu_read(vector_irq[vector]); in smp_irq_move_cleanup_interrupt()
345 __this_cpu_write(vector_irq[vector], -1); in smp_irq_move_cleanup_interrupt()
346 cpumask_clear_cpu(me, &vector_table[vector]); in smp_irq_move_cleanup_interrupt()
396 int irq, vector, cpu; in create_irq() local
399 irq = vector = -ENOSPC; in create_irq()
403 vector = find_unassigned_vector(domain); in create_irq()
404 if (vector >= 0) in create_irq()
407 if (vector < 0) in create_irq()
412 BUG_ON(__bind_irq_vector(irq, vector, domain)); in create_irq()
439 ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) in ia64_handle_irq() argument
478 while (vector != IA64_SPURIOUS_INT_VECTOR) { in ia64_handle_irq()
479 int irq = local_vector_to_irq(vector); in ia64_handle_irq()
481 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { in ia64_handle_irq()
484 } else if (unlikely(IS_RESCHEDULE(vector))) { in ia64_handle_irq()
488 ia64_setreg(_IA64_REG_CR_TPR, vector); in ia64_handle_irq()
494 "to any IRQ!\n", __func__, vector, in ia64_handle_irq()
506 vector = ia64_get_ivr(); in ia64_handle_irq()
524 ia64_vector vector; in ia64_process_pending_intr() local
528 vector = ia64_get_ivr(); in ia64_process_pending_intr()
537 while (vector != IA64_SPURIOUS_INT_VECTOR) { in ia64_process_pending_intr()
538 int irq = local_vector_to_irq(vector); in ia64_process_pending_intr()
540 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { in ia64_process_pending_intr()
543 } else if (unlikely(IS_RESCHEDULE(vector))) { in ia64_process_pending_intr()
548 ia64_setreg(_IA64_REG_CR_TPR, vector); in ia64_process_pending_intr()
560 "to any IRQ!!\n", __func__, vector, in ia64_process_pending_intr()
575 vector = ia64_get_ivr(); in ia64_process_pending_intr()
654 ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect) in ia64_send_ipi() argument
666 ipi_data = (delivery_mode << 8) | (vector & 0xff); in ia64_send_ipi()