X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fdpaa2%2Fdpaa2_ethdev.c;h=ab6863300e9d0fbb9b4cae4bab721544af101795;hb=e342da2d438f2bb660dff61364d44176cb227d37;hp=ba99a524f93e242b04ca5aabf1bf5df463a52875;hpb=0607dadf98c71bdc96ea7b54eda26f1b667be1f6;p=dpdk.git diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index ba99a524f9..ab6863300e 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -65,6 +65,8 @@ static uint64_t dev_tx_offloads_nodis = /* enable timestamp in mbuf */ bool dpaa2_enable_ts[RTE_MAX_ETHPORTS]; +uint64_t dpaa2_timestamp_rx_dynflag; +int dpaa2_timestamp_dynfield_offset = -1; struct rte_dpaa2_xstats_name_off { char name[RTE_ETH_XSTATS_NAME_SIZE]; @@ -91,10 +93,6 @@ static const struct rte_dpaa2_xstats_name_off dpaa2_xstats_strings[] = { }; static const enum rte_filter_op dpaa2_supported_filter_ops[] = { - RTE_ETH_FILTER_ADD, - RTE_ETH_FILTER_DELETE, - RTE_ETH_FILTER_UPDATE, - RTE_ETH_FILTER_FLUSH, RTE_ETH_FILTER_GET }; @@ -587,7 +585,16 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) #if !defined(RTE_LIBRTE_IEEE1588) if (rx_offloads & DEV_RX_OFFLOAD_TIMESTAMP) #endif + { + ret = rte_mbuf_dyn_rx_timestamp_register( + &dpaa2_timestamp_dynfield_offset, + &dpaa2_timestamp_rx_dynflag); + if (ret != 0) { + DPAA2_PMD_ERR("Error to register timestamp field/flag"); + return -rte_errno; + } dpaa2_enable_ts[dev->data->port_id] = true; + } if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM) tx_l3_csum_offload = true; @@ -1195,7 +1202,7 @@ dpaa2_dev_start(struct rte_eth_dev *dev) * This routine disables all traffic on the adapter by issuing a * global reset on the MAC. */ -static void +static int dpaa2_dev_stop(struct rte_eth_dev *dev) { struct dpaa2_dev_priv *priv = dev->data->dev_private; @@ -1227,12 +1234,14 @@ dpaa2_dev_stop(struct rte_eth_dev *dev) if (ret) { DPAA2_PMD_ERR("Failure (ret %d) in disabling dpni %d dev", ret, priv->hw_id); - return; + return ret; } /* clear the recorded link status */ memset(&link, 0, sizeof(link)); rte_eth_linkstatus_set(dev, &link); + + return 0; } static int @@ -2792,6 +2801,8 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv, if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC) eth_dev->data->dev_flags |= RTE_ETH_DEV_INTR_LSC; + eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; + /* Invoke PMD device initialization function */ diag = dpaa2_dev_init(eth_dev); if (diag == 0) {