Lines Matching refs:irq
95 static void bucket_set_irq(unsigned long bucket_pa, unsigned int irq) in bucket_set_irq() argument
99 : "r" (irq), in bucket_set_irq()
232 void irq_free(unsigned int irq) in irq_free() argument
234 void *data = irq_get_handler_data(irq); in irq_free()
237 irq_set_handler_data(irq, NULL); in irq_free()
238 irq_free_descs(irq, 1); in irq_free()
243 int irq; in irq_alloc() local
245 irq = __irq_alloc_descs(-1, 1, 1, numa_node_id(), NULL); in irq_alloc()
246 if (irq <= 0) in irq_alloc()
249 return irq; in irq_alloc()
258 unsigned int irq = 0U; in cookie_exists() local
269 irq = bucket->__irq; in cookie_exists()
272 return irq; in cookie_exists()
279 unsigned int irq; in sysino_exists() local
282 irq = bucket_get_irq(__pa(bucket)); in sysino_exists()
284 return irq; in sysino_exists()
287 void ack_bad_irq(unsigned int irq) in ack_bad_irq() argument
289 pr_crit("BAD IRQ ack %d\n", irq); in ack_bad_irq()
292 void irq_install_pre_handler(int irq, in irq_install_pre_handler() argument
349 static int irq_choose_cpu(unsigned int irq, const struct cpumask *affinity) in irq_choose_cpu() argument
356 cpuid = map_to_cpu(irq); in irq_choose_cpu()
361 cpuid = cpumask_empty(&tmp) ? map_to_cpu(irq) : cpumask_first(&tmp); in irq_choose_cpu()
367 #define irq_choose_cpu(irq, affinity) \ argument
379 cpuid = irq_choose_cpu(data->irq, data->affinity); in sun4u_irq_enable()
402 cpuid = irq_choose_cpu(data->irq, mask); in sun4u_set_affinity()
449 unsigned long cpuid = irq_choose_cpu(data->irq, data->affinity); in sun4v_irq_enable()
470 unsigned long cpuid = irq_choose_cpu(data->irq, mask); in sun4v_set_affinity()
511 cpuid = irq_choose_cpu(data->irq, data->affinity); in sun4v_virq_enable()
540 cpuid = irq_choose_cpu(data->irq, mask); in sun4v_virt_set_affinity()
611 unsigned int irq; in build_irq() local
618 irq = bucket_get_irq(__pa(bucket)); in build_irq()
619 if (!irq) { in build_irq()
620 irq = irq_alloc(0, ino); in build_irq()
621 bucket_set_irq(__pa(bucket), irq); in build_irq()
622 irq_set_chip_and_handler_name(irq, &sun4u_irq, in build_irq()
626 handler_data = irq_get_handler_data(irq); in build_irq()
635 irq_set_handler_data(irq, handler_data); in build_irq()
641 return irq; in build_irq()
650 unsigned int irq; in sun4v_build_common() local
652 irq = irq_alloc(devhandle, devino); in sun4v_build_common()
653 if (!irq) in sun4v_build_common()
659 irq_free(irq); in sun4v_build_common()
660 irq = 0; in sun4v_build_common()
664 irq_set_handler_data(irq, data); in sun4v_build_common()
666 irq_set_chip_and_handler_name(irq, chip, handle_fasteoi_irq, "IVEC"); in sun4v_build_common()
670 return irq; in sun4v_build_common()
673 static unsigned long cookie_assign(unsigned int irq, u32 devhandle, in cookie_assign() argument
676 struct irq_handler_data *ihd = irq_get_handler_data(irq); in cookie_assign()
682 ihd->bucket.__irq = irq; in cookie_assign()
703 unsigned int irq; in cookie_build_irq() local
705 irq = sun4v_build_common(devhandle, devino, cookie_handler_data, chip); in cookie_build_irq()
707 hv_error = cookie_assign(irq, devhandle, devino); in cookie_build_irq()
709 irq_free(irq); in cookie_build_irq()
710 irq = 0; in cookie_build_irq()
713 return irq; in cookie_build_irq()
718 unsigned int irq; in sun4v_build_cookie() local
720 irq = cookie_exists(devhandle, devino); in sun4v_build_cookie()
721 if (irq) in sun4v_build_cookie()
724 irq = cookie_build_irq(devhandle, devino, &sun4v_virq); in sun4v_build_cookie()
727 return irq; in sun4v_build_cookie()
730 static void sysino_set_bucket(unsigned int irq) in sysino_set_bucket() argument
732 struct irq_handler_data *ihd = irq_get_handler_data(irq); in sysino_set_bucket()
739 bucket_set_irq(__pa(bucket), irq); in sysino_set_bucket()
754 unsigned int irq; in sysino_build_irq() local
756 irq = sun4v_build_common(devhandle, devino, sysino_handler_data, chip); in sysino_build_irq()
757 if (!irq) in sysino_build_irq()
760 sysino_set_bucket(irq); in sysino_build_irq()
762 return irq; in sysino_build_irq()
767 int irq; in sun4v_build_sysino() local
769 irq = sysino_exists(devhandle, devino); in sun4v_build_sysino()
770 if (irq) in sun4v_build_sysino()
773 irq = sysino_build_irq(devhandle, devino, &sun4v_irq); in sun4v_build_sysino()
775 return irq; in sun4v_build_sysino()
780 unsigned int irq; in sun4v_build_irq() local
783 irq = sun4v_build_cookie(devhandle, devino); in sun4v_build_irq()
785 irq = sun4v_build_sysino(devhandle, devino); in sun4v_build_irq()
787 return irq; in sun4v_build_irq()
792 int irq; in sun4v_build_virq() local
794 irq = cookie_build_irq(devhandle, devino, &sun4v_virq); in sun4v_build_virq()
795 if (!irq) in sun4v_build_virq()
800 irq_set_status_flags(irq, IRQ_NOAUTOEN); in sun4v_build_virq()
803 return irq; in sun4v_build_virq()
835 unsigned int irq; in handler_irq() local
838 irq = bucket_get_irq(bucket_pa); in handler_irq()
841 generic_handle_irq(irq); in handler_irq()
870 unsigned int irq; in fixup_irqs() local
872 for (irq = 0; irq < NR_IRQS; irq++) { in fixup_irqs()
873 struct irq_desc *desc = irq_to_desc(irq); in fixup_irqs()