Lines Matching refs:msix
779 * Function updates the irq affinity hint for msix after it has been changed
783 static void hfi1_update_sdma_affinity(struct hfi1_msix_entry *msix, int cpu)
785 struct sdma_engine *sde = msix->arg;
801 cpumask_clear(&msix->mask);
802 cpumask_set_cpu(cpu, &msix->mask);
804 msix->irq, irq_type_names[msix->type],
806 irq_set_affinity_hint(msix->irq, &msix->mask);
819 if (other_msix->type != IRQ_SDMA || other_msix == msix)
835 struct hfi1_msix_entry *msix = container_of(notify,
840 hfi1_update_sdma_affinity(msix, cpu);
851 static void hfi1_setup_sdma_notifier(struct hfi1_msix_entry *msix)
853 struct irq_affinity_notify *notify = &msix->notify;
855 notify->irq = msix->irq;
864 static void hfi1_cleanup_sdma_notifier(struct hfi1_msix_entry *msix)
866 struct irq_affinity_notify *notify = &msix->notify;
874 * Function sets the irq affinity for msix.
878 struct hfi1_msix_entry *msix)
889 cpumask_clear(&msix->mask);
893 switch (msix->type) {
895 sde = (struct sdma_engine *)msix->arg;
903 rcd = (struct hfi1_ctxtdata *)msix->arg;
911 rcd = (struct hfi1_ctxtdata *)msix->arg;
916 dd_dev_err(dd, "Invalid IRQ type %d\n", msix->type);
939 cpumask_set_cpu(cpu, &msix->mask);
941 msix->irq, irq_type_names[msix->type],
943 irq_set_affinity_hint(msix->irq, &msix->mask);
945 if (msix->type == IRQ_SDMA) {
947 hfi1_setup_sdma_notifier(msix);
953 int hfi1_get_irq_affinity(struct hfi1_devdata *dd, struct hfi1_msix_entry *msix)
958 ret = get_irq_affinity(dd, msix);
964 struct hfi1_msix_entry *msix)
973 switch (msix->type) {
976 hfi1_cleanup_sdma_notifier(msix);
982 rcd = (struct hfi1_ctxtdata *)msix->arg;
988 rcd = (struct hfi1_ctxtdata *)msix->arg;
997 cpumask_andnot(&set->used, &set->used, &msix->mask);
1001 irq_set_affinity_hint(msix->irq, NULL);
1002 cpumask_clear(&msix->mask);