Lines Matching refs:iaq
1195 struct intrs_and_queues iaq; in t4_attach() local
1457 rc = cfg_itype_and_nqueues(sc, &iaq); in t4_attach()
1461 num_vis = iaq.num_vis; in t4_attach()
1462 sc->intr_type = iaq.intr_type; in t4_attach()
1463 sc->intr_count = iaq.nirq; in t4_attach()
1466 s->nrxq = nports * iaq.nrxq; in t4_attach()
1467 s->ntxq = nports * iaq.ntxq; in t4_attach()
1469 s->nrxq += nports * (num_vis - 1) * iaq.nrxq_vi; in t4_attach()
1470 s->ntxq += nports * (num_vis - 1) * iaq.ntxq_vi; in t4_attach()
1477 s->nofldtxq = nports * iaq.nofldtxq; in t4_attach()
1479 s->nofldtxq += nports * (num_vis - 1) * iaq.nofldtxq_vi; in t4_attach()
1488 s->nofldrxq = nports * iaq.nofldrxq; in t4_attach()
1490 s->nofldrxq += nports * (num_vis - 1) * iaq.nofldrxq_vi; in t4_attach()
1502 s->nnmrxq += nports * iaq.nnmrxq; in t4_attach()
1503 s->nnmtxq += nports * iaq.nnmtxq; in t4_attach()
1506 s->nnmrxq += nports * (num_vis - 1) * iaq.nnmrxq_vi; in t4_attach()
1507 s->nnmtxq += nports * (num_vis - 1) * iaq.nnmtxq_vi; in t4_attach()
1581 vi->nrxq = j == 0 ? iaq.nrxq : iaq.nrxq_vi; in t4_attach()
1582 vi->ntxq = j == 0 ? iaq.ntxq : iaq.ntxq_vi; in t4_attach()
1594 vi->nofldtxq = j == 0 ? iaq.nofldtxq : iaq.nofldtxq_vi; in t4_attach()
1601 vi->nofldrxq = j == 0 ? iaq.nofldrxq : iaq.nofldrxq_vi; in t4_attach()
1609 vi->nnmrxq = iaq.nnmrxq; in t4_attach()
1610 vi->nnmtxq = iaq.nnmtxq; in t4_attach()
1612 vi->nnmrxq = iaq.nnmrxq_vi; in t4_attach()
1613 vi->nnmtxq = iaq.nnmtxq_vi; in t4_attach()
4319 update_nirq(struct intrs_and_queues *iaq, int nports) in update_nirq() argument
4322 iaq->nirq = T4_EXTRA_INTR; in update_nirq()
4323 iaq->nirq += nports * max(iaq->nrxq, iaq->nnmrxq); in update_nirq()
4324 iaq->nirq += nports * iaq->nofldrxq; in update_nirq()
4325 iaq->nirq += nports * (iaq->num_vis - 1) * in update_nirq()
4326 max(iaq->nrxq_vi, iaq->nnmrxq_vi); in update_nirq()
4327 iaq->nirq += nports * (iaq->num_vis - 1) * iaq->nofldrxq_vi; in update_nirq()
4334 calculate_iaq(struct adapter *sc, struct intrs_and_queues *iaq, int itype, in calculate_iaq() argument
4343 bzero(iaq, sizeof(*iaq)); in calculate_iaq()
4344 iaq->intr_type = itype; in calculate_iaq()
4345 iaq->num_vis = t4_num_vis; in calculate_iaq()
4346 iaq->ntxq = t4_ntxq; in calculate_iaq()
4347 iaq->ntxq_vi = t4_ntxq_vi; in calculate_iaq()
4348 iaq->nrxq = t4_nrxq; in calculate_iaq()
4349 iaq->nrxq_vi = t4_nrxq_vi; in calculate_iaq()
4352 iaq->nofldtxq = t4_nofldtxq; in calculate_iaq()
4353 iaq->nofldtxq_vi = t4_nofldtxq_vi; in calculate_iaq()
4358 iaq->nofldrxq = t4_nofldrxq; in calculate_iaq()
4359 iaq->nofldrxq_vi = t4_nofldrxq_vi; in calculate_iaq()
4364 iaq->nnmtxq = t4_nnmtxq; in calculate_iaq()
4365 iaq->nnmrxq = t4_nnmrxq; in calculate_iaq()
4368 iaq->nnmtxq_vi = t4_nnmtxq_vi; in calculate_iaq()
4369 iaq->nnmrxq_vi = t4_nnmrxq_vi; in calculate_iaq()
4373 update_nirq(iaq, nports); in calculate_iaq()
4374 if (iaq->nirq <= navail && in calculate_iaq()
4375 (itype != INTR_MSI || powerof2(iaq->nirq))) { in calculate_iaq()
4387 while (iaq->num_vis > 1) { in calculate_iaq()
4388 iaq->num_vis--; in calculate_iaq()
4389 update_nirq(iaq, nports); in calculate_iaq()
4390 if (iaq->nirq <= navail && in calculate_iaq()
4391 (itype != INTR_MSI || powerof2(iaq->nirq))) { in calculate_iaq()
4396 iaq->num_vis, t4_num_vis, iaq->nrxq, iaq->nofldrxq, in calculate_iaq()
4397 iaq->nrxq_vi, iaq->nofldrxq_vi, iaq->nnmrxq_vi, in calculate_iaq()
4398 itype, navail, iaq->nirq); in calculate_iaq()
4406 MPASS(iaq->num_vis == 1); in calculate_iaq()
4407 iaq->ntxq_vi = iaq->nrxq_vi = 0; in calculate_iaq()
4408 iaq->nofldtxq_vi = iaq->nofldrxq_vi = 0; in calculate_iaq()
4409 iaq->nnmtxq_vi = iaq->nnmrxq_vi = 0; in calculate_iaq()
4410 if (iaq->num_vis != t4_num_vis) { in calculate_iaq()
4414 iaq->nrxq, iaq->nofldrxq, iaq->nrxq_vi, iaq->nofldrxq_vi, in calculate_iaq()
4415 iaq->nnmrxq_vi, itype, navail, iaq->nirq); in calculate_iaq()
4424 if (iaq->nrxq > 1) { in calculate_iaq()
4425 iaq->nrxq = rounddown_pow_of_two(iaq->nrxq - 1); in calculate_iaq()
4426 if (iaq->nnmrxq > iaq->nrxq) in calculate_iaq()
4427 iaq->nnmrxq = iaq->nrxq; in calculate_iaq()
4429 if (iaq->nofldrxq > 1) in calculate_iaq()
4430 iaq->nofldrxq >>= 1; in calculate_iaq()
4432 old_nirq = iaq->nirq; in calculate_iaq()
4433 update_nirq(iaq, nports); in calculate_iaq()
4434 if (iaq->nirq <= navail && in calculate_iaq()
4435 (itype != INTR_MSI || powerof2(iaq->nirq))) { in calculate_iaq()
4439 "itype %d, navail %u, nirq %d.\n", iaq->nrxq, in calculate_iaq()
4440 iaq->nofldrxq, itype, navail, iaq->nirq); in calculate_iaq()
4443 } while (old_nirq != iaq->nirq); in calculate_iaq()
4448 iaq->nirq = 1; in calculate_iaq()
4449 iaq->nrxq = 1; in calculate_iaq()
4450 iaq->ntxq = 1; in calculate_iaq()
4451 if (iaq->nofldrxq > 0) { in calculate_iaq()
4452 iaq->nofldrxq = 1; in calculate_iaq()
4453 iaq->nofldtxq = 1; in calculate_iaq()
4455 iaq->nnmtxq = 0; in calculate_iaq()
4456 iaq->nnmrxq = 0; in calculate_iaq()
4458 MPASS(iaq->num_vis > 0); in calculate_iaq()
4459 if (iaq->num_vis > 1) { in calculate_iaq()
4460 MPASS(iaq->nrxq_vi > 0); in calculate_iaq()
4461 MPASS(iaq->ntxq_vi > 0); in calculate_iaq()
4463 MPASS(iaq->nirq > 0); in calculate_iaq()
4464 MPASS(iaq->nrxq > 0); in calculate_iaq()
4465 MPASS(iaq->ntxq > 0); in calculate_iaq()
4467 MPASS(powerof2(iaq->nirq)); in calculate_iaq()
4472 cfg_itype_and_nqueues(struct adapter *sc, struct intrs_and_queues *iaq) in cfg_itype_and_nqueues() argument
4491 calculate_iaq(sc, iaq, itype, navail); in cfg_itype_and_nqueues()
4492 nalloc = iaq->nirq; in cfg_itype_and_nqueues()
4500 if (nalloc == iaq->nirq) in cfg_itype_and_nqueues()
4509 itype, iaq->nirq, nalloc); in cfg_itype_and_nqueues()
4517 itype, rc, iaq->nirq, nalloc); in cfg_itype_and_nqueues()