/* This is a request, so a failure is not fatal */
ret = hfi1_get_irq_affinity(dd, me); if (ret)
dd_dev_err(dd, "%s: unable to pin IRQ %d\n", name, ret);
return nr;
}
staticint msix_request_rcd_irq_common(struct hfi1_ctxtdata *rcd,
irq_handler_t handler,
irq_handler_t thread, constchar *name)
{ int nr = msix_request_irq(rcd->dd, rcd, handler, thread,
rcd->is_vnic ? IRQ_NETDEVCTXT : IRQ_RCVCTXT,
name); if (nr < 0) return nr;
/** *msix_request_general_irq-HelperforgettinggeneralIRQ *resources *@dd:validdevicedata
*/ int msix_request_general_irq(struct hfi1_devdata *dd)
{ int nr; char name[MAX_NAME_SIZE];
snprintf(name, sizeof(name), DRIVER_NAME "_%d", dd->unit);
nr = msix_request_irq(dd, dd, general_interrupt, NULL, IRQ_GENERAL,
name); if (nr < 0) return nr;
/* general interrupt must be MSIx vector 0 */ if (nr) {
msix_free_irq(dd, (u8)nr);
dd_dev_err(dd, "Invalid index %d for GENERAL IRQ\n", nr); return -EINVAL;
}
return0;
}
/** *enable_sdma_srcs-HelpertoenableSDMAIRQsrcs *@dd:validdevdatastructure *@i:indexofSDMAengine
*/ staticvoid enable_sdma_srcs(struct hfi1_devdata *dd, int i)
{
set_intr_bits(dd, IS_SDMA_START + i, IS_SDMA_START + i, true);
set_intr_bits(dd, IS_SDMA_PROGRESS_START + i,
IS_SDMA_PROGRESS_START + i, true);
set_intr_bits(dd, IS_SDMA_IDLE_START + i, IS_SDMA_IDLE_START + i, true);
set_intr_bits(dd, IS_SDMAENG_ERR_START + i, IS_SDMAENG_ERR_START + i, true);
}
/** *msix_request_irqs()-AllocateallMSIxIRQs *@dd:validdevdatastructure * *HelperfunctiontorequesttheusedMSIxIRQs. *
*/ int msix_request_irqs(struct hfi1_devdata *dd)
{ int i; int ret = msix_request_general_irq(dd);
if (ret) return ret;
for (i = 0; i < dd->num_sdma; i++) { struct sdma_engine *sde = &dd->per_sdma[i];
ret = msix_request_sdma_irq(sde); if (ret) return ret;
enable_sdma_srcs(sde->dd, i);
}
for (i = 0; i < dd->n_krcv_queues; i++) { struct hfi1_ctxtdata *rcd = hfi1_rcd_get_by_index_safe(dd, i);
if (rcd)
ret = msix_request_rcd_irq(rcd);
hfi1_rcd_put(rcd); if (ret) return ret;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Angebot
Hier finden Sie eine Liste der Produkte des Unternehmens