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
380 cpuid = irq_choose_cpu(data->irq, in sun4u_irq_enable()
405 cpuid = irq_choose_cpu(data->irq, mask); in sun4u_set_affinity()
453 unsigned long cpuid = irq_choose_cpu(data->irq, in sun4v_irq_enable()
475 unsigned long cpuid = irq_choose_cpu(data->irq, mask); in sun4v_set_affinity()
516 cpuid = irq_choose_cpu(data->irq, irq_data_get_affinity_mask(data)); in sun4v_virq_enable()
545 cpuid = irq_choose_cpu(data->irq, mask); in sun4v_virt_set_affinity()
616 unsigned int irq; in build_irq() local
623 irq = bucket_get_irq(__pa(bucket)); in build_irq()
624 if (!irq) { in build_irq()
625 irq = irq_alloc(0, ino); in build_irq()
626 bucket_set_irq(__pa(bucket), irq); in build_irq()
627 irq_set_chip_and_handler_name(irq, &sun4u_irq, in build_irq()
631 handler_data = irq_get_handler_data(irq); in build_irq()
640 irq_set_handler_data(irq, handler_data); in build_irq()
646 return irq; in build_irq()
655 unsigned int irq; in sun4v_build_common() local
657 irq = irq_alloc(devhandle, devino); in sun4v_build_common()
658 if (!irq) in sun4v_build_common()
664 irq_free(irq); in sun4v_build_common()
665 irq = 0; in sun4v_build_common()
669 irq_set_handler_data(irq, data); in sun4v_build_common()
671 irq_set_chip_and_handler_name(irq, chip, handle_fasteoi_irq, "IVEC"); in sun4v_build_common()
675 return irq; in sun4v_build_common()
678 static unsigned long cookie_assign(unsigned int irq, u32 devhandle, in cookie_assign() argument
681 struct irq_handler_data *ihd = irq_get_handler_data(irq); in cookie_assign()
687 ihd->bucket.__irq = irq; in cookie_assign()
708 unsigned int irq; in cookie_build_irq() local
710 irq = sun4v_build_common(devhandle, devino, cookie_handler_data, chip); in cookie_build_irq()
712 hv_error = cookie_assign(irq, devhandle, devino); in cookie_build_irq()
714 irq_free(irq); in cookie_build_irq()
715 irq = 0; in cookie_build_irq()
718 return irq; in cookie_build_irq()
723 unsigned int irq; in sun4v_build_cookie() local
725 irq = cookie_exists(devhandle, devino); in sun4v_build_cookie()
726 if (irq) in sun4v_build_cookie()
729 irq = cookie_build_irq(devhandle, devino, &sun4v_virq); in sun4v_build_cookie()
732 return irq; in sun4v_build_cookie()
735 static void sysino_set_bucket(unsigned int irq) in sysino_set_bucket() argument
737 struct irq_handler_data *ihd = irq_get_handler_data(irq); in sysino_set_bucket()
744 bucket_set_irq(__pa(bucket), irq); in sysino_set_bucket()
759 unsigned int irq; in sysino_build_irq() local
761 irq = sun4v_build_common(devhandle, devino, sysino_handler_data, chip); in sysino_build_irq()
762 if (!irq) in sysino_build_irq()
765 sysino_set_bucket(irq); in sysino_build_irq()
767 return irq; in sysino_build_irq()
772 int irq; in sun4v_build_sysino() local
774 irq = sysino_exists(devhandle, devino); in sun4v_build_sysino()
775 if (irq) in sun4v_build_sysino()
778 irq = sysino_build_irq(devhandle, devino, &sun4v_irq); in sun4v_build_sysino()
780 return irq; in sun4v_build_sysino()
785 unsigned int irq; in sun4v_build_irq() local
788 irq = sun4v_build_cookie(devhandle, devino); in sun4v_build_irq()
790 irq = sun4v_build_sysino(devhandle, devino); in sun4v_build_irq()
792 return irq; in sun4v_build_irq()
797 int irq; in sun4v_build_virq() local
799 irq = cookie_build_irq(devhandle, devino, &sun4v_virq); in sun4v_build_virq()
800 if (!irq) in sun4v_build_virq()
805 irq_set_status_flags(irq, IRQ_NOAUTOEN); in sun4v_build_virq()
808 return irq; in sun4v_build_virq()
840 unsigned int irq; in handler_irq() local
843 irq = bucket_get_irq(bucket_pa); in handler_irq()
846 generic_handle_irq(irq); in handler_irq()
875 unsigned int irq; in fixup_irqs() local
877 for (irq = 0; irq < NR_IRQS; irq++) { in fixup_irqs()
878 struct irq_desc *desc = irq_to_desc(irq); in fixup_irqs()