Lines Matching defs:pi

155 static int toe_capability(struct port_info *pi, int enable);
425 struct port_info *pi;
427 pi = kmem_zalloc(sizeof (*pi), KM_SLEEP);
428 sc->port[i] = pi;
431 pi->adapter = sc;
433 pi->port_id = i;
436 rc = -t4_port_init(pi, sc->mbox, sc->pf, 0);
440 kmem_free(pi, sizeof (*pi));
445 mutex_init(&pi->lock, NULL, MUTEX_DRIVER, NULL);
446 pi->mtu = ETHERMTU;
448 if (is_10G_port(pi) != 0) {
450 pi->tmr_idx = prp->tmr_idx_10g;
451 pi->pktc_idx = prp->pktc_idx_10g;
454 pi->tmr_idx = prp->tmr_idx_1g;
455 pi->pktc_idx = prp->pktc_idx_1g;
458 pi->xact_addr_filt = -1;
459 t4_mc_init(pi);
523 struct port_info *pi = sc->port[i];
525 if (pi == NULL)
529 pi->first_rxq = rqidx;
531 pi->nrxq = is_10G_port(pi) ? iaq.nrxq10g : iaq.nrxq1g;
534 pi->first_txq = tqidx;
536 pi->ntxq = is_10G_port(pi) ? iaq.ntxq10g : iaq.ntxq1g;
538 rqidx += pi->nrxq;
539 tqidx += pi->ntxq;
544 pi->first_ofld_rxq = ofld_rqidx;
545 pi->nofldrxq = max(1, pi->nrxq / 4);
548 pi->first_ofld_txq = ofld_tqidx;
549 pi->nofldtxq = max(1, pi->ntxq / 2);
551 ofld_rqidx += pi->nofldrxq;
552 ofld_tqidx += pi->nofldtxq;
560 pi->features |= (CXGBE_HW_CSUM | CXGBE_HW_LSO);
606 struct port_info *pi = sc->port[i];
616 pi->nofldrxq > pi->nrxq)
619 rxq = &s->rxq[pi->first_rxq];
620 for (q = 0; q < pi->nrxq; q++, rxq++) {
635 ofld_rxq = &s->ofld_rxq[pi->first_ofld_rxq];
636 for (q = 0; q < pi->nofldrxq; q++, ofld_rxq++) {
689 struct port_info *pi;
703 pi = sc->port[i];
704 if (pi && pi->flags & PORT_INIT_DONE)
705 (void) port_full_uninit(pi);
754 pi = sc->port[i];
755 if (pi != NULL) {
756 mutex_destroy(&pi->lock);
757 kmem_free(pi, sizeof (*pi));
810 struct port_info *pi;
815 pi = ddi_get_parent_data(rdip);
816 pi->instance = ddi_get_instance(dip);
817 pi->child_inst = ddi_get_instance(rdip);
825 pi = ddi_get_parent_data(child);
826 if (pi == NULL)
828 (void) snprintf(s, sizeof (s), "%d", pi->port_id);
1795 struct port_info *pi;
1800 pi = sc->port[idx];
1801 if (pi == NULL)
1804 PORT_LOCK(pi);
1805 if (pi->dip != NULL) {
1810 rc = ndi_devi_alloc(sc->dip, T4_PORT_NAME, DEVI_SID_NODEID, &pi->dip);
1811 if (rc != DDI_SUCCESS || pi->dip == NULL) {
1816 (void) ddi_set_parent_data(pi->dip, pi);
1817 (void) ndi_devi_bind_driver(pi->dip, 0);
1820 PORT_UNLOCK(pi);
1828 struct port_info *pi;
1833 pi = sc->port[idx];
1834 if (pi == NULL)
1837 PORT_LOCK(pi);
1838 if (pi->dip == NULL) {
1843 rc = ndi_devi_free(pi->dip);
1845 pi->dip = NULL;
1847 PORT_UNLOCK(pi);
1941 #define PSTR(pi) (pi ? (is_10G_port(pi) ? "10G" : "1G") : "-")
1979 struct port_info *pi = sc->port[i];
1980 rc = toe_capability(pi, 1);
1982 cxgb_printf(pi->dip, CE_WARN,
2022 port_full_init(struct port_info *pi)
2024 struct adapter *sc = pi->adapter;
2030 ASSERT((pi->flags & PORT_INIT_DONE) == 0);
2035 rc = t4_setup_port_queues(pi);
2042 rss = kmem_zalloc(pi->nrxq * sizeof (*rss), KM_SLEEP);
2043 for_each_rxq(pi, i, rxq) {
2046 rc = -t4_config_rss_range(sc, sc->mbox, pi->viid, 0,
2047 pi->rss_size, rss, pi->nrxq);
2048 kmem_free(rss, pi->nrxq * sizeof (*rss));
2050 cxgb_printf(pi->dip, CE_WARN, "rss_config failed: %d", rc);
2054 pi->flags |= PORT_INIT_DONE;
2057 (void) port_full_uninit(pi);
2066 port_full_uninit(struct port_info *pi)
2069 ASSERT(pi->flags & PORT_INIT_DONE);
2071 (void) t4_teardown_port_queues(pi);
2072 pi->flags &= ~PORT_INIT_DONE;
2078 enable_port_queues(struct port_info *pi)
2080 struct adapter *sc = pi->adapter;
2088 ASSERT(pi->flags & PORT_INIT_DONE);
2097 for_each_ofld_rxq(pi, i, ofld_rxq) {
2108 for_each_rxq(pi, i, rxq) {
2120 disable_port_queues(struct port_info *pi)
2123 struct adapter *sc = pi->adapter;
2129 ASSERT(pi->flags & PORT_INIT_DONE);
2136 for_each_ofld_rxq(pi, i, ofld_rxq) {
2143 for_each_rxq(pi, i, rxq) {
2151 for_each_ofld_rxq(pi, i, ofld_rxq)
2154 for_each_rxq(pi, i, rxq)
2196 const struct port_info *pi = sc->port[idx];
2198 if (pi->mod_type == FW_PORT_MOD_TYPE_NONE)
2199 cxgb_printf(pi->dip, CE_NOTE, "transceiver unplugged.");
2200 else if (pi->mod_type == FW_PORT_MOD_TYPE_UNKNOWN)
2201 cxgb_printf(pi->dip, CE_NOTE,
2203 else if (pi->mod_type == FW_PORT_MOD_TYPE_NOTSUPPORTED)
2204 cxgb_printf(pi->dip, CE_NOTE,
2206 else if (pi->mod_type > 0 && pi->mod_type < ARRAY_SIZE(mod_str))
2207 cxgb_printf(pi->dip, CE_NOTE, "%s transceiver inserted.\n",
2208 mod_str[pi->mod_type]);
2210 cxgb_printf(pi->dip, CE_NOTE, "transceiver (type %d) inserted.",
2211 pi->mod_type);
2240 toe_capability(struct port_info *pi, int enable)
2243 struct adapter *sc = pi->adapter;
2249 if (isset(&sc->offload_map, pi->port_id) != 0)
2258 setbit(&sc->offload_map, pi->port_id);
2260 if (!isset(&sc->offload_map, pi->port_id))
2263 clrbit(&sc->offload_map, pi->port_id);
2268 setbit(&sc->offload_map, pi->port_id);