MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bnxt_dev_start_op

Function bnxt_dev_start_op

dpdk/drivers/net/bnxt/bnxt_ethdev.c:1596–1667  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1594}
1595
1596int bnxt_dev_start_op(struct rte_eth_dev *eth_dev)
1597{
1598 struct bnxt *bp = eth_dev->data->dev_private;
1599 uint64_t rx_offloads = eth_dev->data->dev_conf.rxmode.offloads;
1600 int vlan_mask = 0;
1601 int rc, retry_cnt = BNXT_IF_CHANGE_RETRY_COUNT;
1602
1603 if (bp->rx_cp_nr_rings > RTE_ETHDEV_QUEUE_STAT_CNTRS)
1604 PMD_DRV_LOG(ERR,
1605 "RxQ cnt %d > RTE_ETHDEV_QUEUE_STAT_CNTRS %d\n",
1606 bp->rx_cp_nr_rings, RTE_ETHDEV_QUEUE_STAT_CNTRS);
1607
1608 do {
1609 rc = bnxt_hwrm_if_change(bp, true);
1610 if (rc == 0 || rc != -EAGAIN)
1611 break;
1612
1613 rte_delay_ms(BNXT_IF_CHANGE_RETRY_INTERVAL);
1614 } while (retry_cnt--);
1615
1616 if (rc)
1617 return rc;
1618
1619 if (bp->flags & BNXT_FLAG_IF_CHANGE_HOT_FW_RESET_DONE) {
1620 rc = bnxt_handle_if_change_status(bp);
1621 if (rc)
1622 return rc;
1623 }
1624
1625 bnxt_enable_int(bp);
1626
1627 eth_dev->data->scattered_rx = bnxt_scattered_rx(eth_dev);
1628
1629 rc = bnxt_start_nic(bp);
1630 if (rc)
1631 goto error;
1632
1633 rc = bnxt_alloc_prev_ring_stats(bp);
1634 if (rc)
1635 goto error;
1636
1637 eth_dev->data->dev_started = 1;
1638
1639 bnxt_link_update_op(eth_dev, 0);
1640
1641 if (rx_offloads & RTE_ETH_RX_OFFLOAD_VLAN_FILTER)
1642 vlan_mask |= RTE_ETH_VLAN_FILTER_MASK;
1643 if (rx_offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)
1644 vlan_mask |= RTE_ETH_VLAN_STRIP_MASK;
1645 rc = bnxt_vlan_offload_set_op(eth_dev, vlan_mask);
1646 if (rc)
1647 goto error;
1648
1649 /* Initialize bnxt ULP port details */
1650 rc = bnxt_ulp_port_init(bp);
1651 if (rc)
1652 goto error;
1653

Callers 2

bnxt_dev_recoverFunction · 0.85

Calls 15

bnxt_hwrm_if_changeFunction · 0.85
rte_delay_msFunction · 0.85
bnxt_enable_intFunction · 0.85
bnxt_scattered_rxFunction · 0.85
bnxt_start_nicFunction · 0.85
bnxt_link_update_opFunction · 0.85
bnxt_vlan_offload_set_opFunction · 0.85
bnxt_ulp_port_initFunction · 0.85
bnxt_receive_functionFunction · 0.85
bnxt_transmit_functionFunction · 0.85

Tested by

no test coverage detected