Lines Matching refs:msix
735 * Function updates the irq affinity hint for msix after it has been changed
739 static void hfi1_update_sdma_affinity(struct hfi1_msix_entry *msix, int cpu)
741 struct sdma_engine *sde = msix->arg;
757 cpumask_clear(&msix->mask);
758 cpumask_set_cpu(cpu, &msix->mask);
760 msix->irq, irq_type_names[msix->type],
762 irq_set_affinity_hint(msix->irq, &msix->mask);
775 if (other_msix->type != IRQ_SDMA || other_msix == msix)
791 struct hfi1_msix_entry *msix = container_of(notify,
796 hfi1_update_sdma_affinity(msix, cpu);
807 static void hfi1_setup_sdma_notifier(struct hfi1_msix_entry *msix)
809 struct irq_affinity_notify *notify = &msix->notify;
811 notify->irq = msix->irq;
820 static void hfi1_cleanup_sdma_notifier(struct hfi1_msix_entry *msix)
822 struct irq_affinity_notify *notify = &msix->notify;
830 * Function sets the irq affinity for msix.
834 struct hfi1_msix_entry *msix)
845 cpumask_clear(&msix->mask);
849 switch (msix->type) {
851 sde = (struct sdma_engine *)msix->arg;
859 rcd = (struct hfi1_ctxtdata *)msix->arg;
867 rcd = (struct hfi1_ctxtdata *)msix->arg;
872 dd_dev_err(dd, "Invalid IRQ type %d\n", msix->type);
895 cpumask_set_cpu(cpu, &msix->mask);
897 msix->irq, irq_type_names[msix->type],
899 irq_set_affinity_hint(msix->irq, &msix->mask);
901 if (msix->type == IRQ_SDMA) {
903 hfi1_setup_sdma_notifier(msix);
909 int hfi1_get_irq_affinity(struct hfi1_devdata *dd, struct hfi1_msix_entry *msix)
914 ret = get_irq_affinity(dd, msix);
920 struct hfi1_msix_entry *msix)
928 switch (msix->type) {
931 hfi1_cleanup_sdma_notifier(msix);
937 struct hfi1_ctxtdata *rcd = msix->arg;
953 cpumask_andnot(&set->used, &set->used, &msix->mask);
957 irq_set_affinity_hint(msix->irq, NULL);
958 cpumask_clear(&msix->mask);