X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fdpaa%2Fdpaa_ethdev.c;h=b9bf9d2966e5a2cfdeb701c491af1edb5a7a9fcb;hb=9fda31c3229ca6e036cae80392578ed6e5a51119;hp=f24ec55bee8bdd2c1c286db28f2c42d9278f15f4;hpb=dd4e429c95f90dfa049ad53cbd9e1142253f278c;p=dpdk.git diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index f24ec55bee..b9bf9d2966 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -54,30 +54,29 @@ /* Supported Rx offloads */ static uint64_t dev_rx_offloads_sup = - DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_SCATTER; + RTE_ETH_RX_OFFLOAD_SCATTER; /* Rx offloads which cannot be disabled */ static uint64_t dev_rx_offloads_nodis = - DEV_RX_OFFLOAD_IPV4_CKSUM | - DEV_RX_OFFLOAD_UDP_CKSUM | - DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_RSS_HASH; + RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | + RTE_ETH_RX_OFFLOAD_UDP_CKSUM | + RTE_ETH_RX_OFFLOAD_TCP_CKSUM | + RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | + RTE_ETH_RX_OFFLOAD_RSS_HASH; /* Supported Tx offloads */ static uint64_t dev_tx_offloads_sup = - DEV_TX_OFFLOAD_MT_LOCKFREE | - DEV_TX_OFFLOAD_MBUF_FAST_FREE; + RTE_ETH_TX_OFFLOAD_MT_LOCKFREE | + RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE; /* Tx offloads which cannot be disabled */ static uint64_t dev_tx_offloads_nodis = - DEV_TX_OFFLOAD_IPV4_CKSUM | - DEV_TX_OFFLOAD_UDP_CKSUM | - DEV_TX_OFFLOAD_TCP_CKSUM | - DEV_TX_OFFLOAD_SCTP_CKSUM | - DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_TX_OFFLOAD_MULTI_SEGS; + RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | + RTE_ETH_TX_OFFLOAD_UDP_CKSUM | + RTE_ETH_TX_OFFLOAD_TCP_CKSUM | + RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | + RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | + RTE_ETH_TX_OFFLOAD_MULTI_SEGS; /* Keep track of whether QMAN and BMAN have been globally initialized */ static int is_global_init; @@ -167,8 +166,6 @@ dpaa_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) PMD_INIT_FUNC_TRACE(); - if (mtu < RTE_ETHER_MIN_MTU || frame_size > DPAA_MAX_RX_PKT_LEN) - return -EINVAL; /* * Refuse mtu that requires the support of scattered packets * when this feature has not been enabled before. @@ -211,7 +208,7 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); dpaa_dev = container_of(rdev, struct rte_dpaa_device, device); - intr_handle = &dpaa_dev->intr_handle; + intr_handle = dpaa_dev->intr_handle; __fif = container_of(fif, struct __fman_if, __if); /* Rx offloads which are enabled by default */ @@ -241,7 +238,7 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev) fman_if_set_maxfrm(dev->process_private, max_rx_pktlen); - if (rx_offloads & DEV_RX_OFFLOAD_SCATTER) { + if (rx_offloads & RTE_ETH_RX_OFFLOAD_SCATTER) { DPAA_PMD_DEBUG("enabling scatter mode"); fman_if_set_sg(dev->process_private, 1); dev->data->scattered_rx = 1; @@ -258,13 +255,14 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev) } /* if the interrupts were configured on this devices*/ - if (intr_handle && intr_handle->fd) { + if (intr_handle && rte_intr_fd_get(intr_handle)) { if (dev->data->dev_conf.intr_conf.lsc != 0) rte_intr_callback_register(intr_handle, dpaa_interrupt_handler, (void *)dev); - ret = dpaa_intr_enable(__fif->node_name, intr_handle->fd); + ret = dpaa_intr_enable(__fif->node_name, + rte_intr_fd_get(intr_handle)); if (ret) { if (dev->data->dev_conf.intr_conf.lsc != 0) { rte_intr_callback_unregister(intr_handle, @@ -286,43 +284,43 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev) /* Configure link only if link is UP*/ if (link->link_status) { - if (eth_conf->link_speeds == ETH_LINK_SPEED_AUTONEG) { + if (eth_conf->link_speeds == RTE_ETH_LINK_SPEED_AUTONEG) { /* Start autoneg only if link is not in autoneg mode */ if (!link->link_autoneg) dpaa_restart_link_autoneg(__fif->node_name); - } else if (eth_conf->link_speeds & ETH_LINK_SPEED_FIXED) { - switch (eth_conf->link_speeds & ~ETH_LINK_SPEED_FIXED) { - case ETH_LINK_SPEED_10M_HD: - speed = ETH_SPEED_NUM_10M; - duplex = ETH_LINK_HALF_DUPLEX; + } else if (eth_conf->link_speeds & RTE_ETH_LINK_SPEED_FIXED) { + switch (eth_conf->link_speeds & RTE_ETH_LINK_SPEED_FIXED) { + case RTE_ETH_LINK_SPEED_10M_HD: + speed = RTE_ETH_SPEED_NUM_10M; + duplex = RTE_ETH_LINK_HALF_DUPLEX; break; - case ETH_LINK_SPEED_10M: - speed = ETH_SPEED_NUM_10M; - duplex = ETH_LINK_FULL_DUPLEX; + case RTE_ETH_LINK_SPEED_10M: + speed = RTE_ETH_SPEED_NUM_10M; + duplex = RTE_ETH_LINK_FULL_DUPLEX; break; - case ETH_LINK_SPEED_100M_HD: - speed = ETH_SPEED_NUM_100M; - duplex = ETH_LINK_HALF_DUPLEX; + case RTE_ETH_LINK_SPEED_100M_HD: + speed = RTE_ETH_SPEED_NUM_100M; + duplex = RTE_ETH_LINK_HALF_DUPLEX; break; - case ETH_LINK_SPEED_100M: - speed = ETH_SPEED_NUM_100M; - duplex = ETH_LINK_FULL_DUPLEX; + case RTE_ETH_LINK_SPEED_100M: + speed = RTE_ETH_SPEED_NUM_100M; + duplex = RTE_ETH_LINK_FULL_DUPLEX; break; - case ETH_LINK_SPEED_1G: - speed = ETH_SPEED_NUM_1G; - duplex = ETH_LINK_FULL_DUPLEX; + case RTE_ETH_LINK_SPEED_1G: + speed = RTE_ETH_SPEED_NUM_1G; + duplex = RTE_ETH_LINK_FULL_DUPLEX; break; - case ETH_LINK_SPEED_2_5G: - speed = ETH_SPEED_NUM_2_5G; - duplex = ETH_LINK_FULL_DUPLEX; + case RTE_ETH_LINK_SPEED_2_5G: + speed = RTE_ETH_SPEED_NUM_2_5G; + duplex = RTE_ETH_LINK_FULL_DUPLEX; break; - case ETH_LINK_SPEED_10G: - speed = ETH_SPEED_NUM_10G; - duplex = ETH_LINK_FULL_DUPLEX; + case RTE_ETH_LINK_SPEED_10G: + speed = RTE_ETH_SPEED_NUM_10G; + duplex = RTE_ETH_LINK_FULL_DUPLEX; break; default: - speed = ETH_SPEED_NUM_NONE; - duplex = ETH_LINK_FULL_DUPLEX; + speed = RTE_ETH_SPEED_NUM_NONE; + duplex = RTE_ETH_LINK_FULL_DUPLEX; break; } /* Set link speed */ @@ -371,9 +369,10 @@ static void dpaa_interrupt_handler(void *param) int bytes_read; dpaa_dev = container_of(rdev, struct rte_dpaa_device, device); - intr_handle = &dpaa_dev->intr_handle; + intr_handle = dpaa_dev->intr_handle; - bytes_read = read(intr_handle->fd, &buf, sizeof(uint64_t)); + bytes_read = read(rte_intr_fd_get(intr_handle), &buf, + sizeof(uint64_t)); if (bytes_read < 0) DPAA_PMD_ERR("Error reading eventfd\n"); dpaa_eth_link_update(dev, 0); @@ -443,7 +442,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev) } dpaa_dev = container_of(rdev, struct rte_dpaa_device, device); - intr_handle = &dpaa_dev->intr_handle; + intr_handle = dpaa_dev->intr_handle; __fif = container_of(fif, struct __fman_if, __if); ret = dpaa_eth_dev_stop(dev); @@ -452,7 +451,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev) if (link->link_status && !link->link_autoneg) dpaa_restart_link_autoneg(__fif->node_name); - if (intr_handle && intr_handle->fd && + if (intr_handle && rte_intr_fd_get(intr_handle) && dev->data->dev_conf.intr_conf.lsc != 0) { dpaa_intr_disable(__fif->node_name); rte_intr_callback_unregister(intr_handle, @@ -538,30 +537,30 @@ static int dpaa_eth_dev_info(struct rte_eth_dev *dev, dev_info->max_mac_addrs = DPAA_MAX_MAC_FILTER; dev_info->max_hash_mac_addrs = 0; dev_info->max_vfs = 0; - dev_info->max_vmdq_pools = ETH_16_POOLS; + dev_info->max_vmdq_pools = RTE_ETH_16_POOLS; dev_info->flow_type_rss_offloads = DPAA_RSS_OFFLOAD_ALL; if (fif->mac_type == fman_mac_1g) { - dev_info->speed_capa = ETH_LINK_SPEED_10M_HD - | ETH_LINK_SPEED_10M - | ETH_LINK_SPEED_100M_HD - | ETH_LINK_SPEED_100M - | ETH_LINK_SPEED_1G; + dev_info->speed_capa = RTE_ETH_LINK_SPEED_10M_HD + | RTE_ETH_LINK_SPEED_10M + | RTE_ETH_LINK_SPEED_100M_HD + | RTE_ETH_LINK_SPEED_100M + | RTE_ETH_LINK_SPEED_1G; } else if (fif->mac_type == fman_mac_2_5g) { - dev_info->speed_capa = ETH_LINK_SPEED_10M_HD - | ETH_LINK_SPEED_10M - | ETH_LINK_SPEED_100M_HD - | ETH_LINK_SPEED_100M - | ETH_LINK_SPEED_1G - | ETH_LINK_SPEED_2_5G; + dev_info->speed_capa = RTE_ETH_LINK_SPEED_10M_HD + | RTE_ETH_LINK_SPEED_10M + | RTE_ETH_LINK_SPEED_100M_HD + | RTE_ETH_LINK_SPEED_100M + | RTE_ETH_LINK_SPEED_1G + | RTE_ETH_LINK_SPEED_2_5G; } else if (fif->mac_type == fman_mac_10g) { - dev_info->speed_capa = ETH_LINK_SPEED_10M_HD - | ETH_LINK_SPEED_10M - | ETH_LINK_SPEED_100M_HD - | ETH_LINK_SPEED_100M - | ETH_LINK_SPEED_1G - | ETH_LINK_SPEED_2_5G - | ETH_LINK_SPEED_10G; + dev_info->speed_capa = RTE_ETH_LINK_SPEED_10M_HD + | RTE_ETH_LINK_SPEED_10M + | RTE_ETH_LINK_SPEED_100M_HD + | RTE_ETH_LINK_SPEED_100M + | RTE_ETH_LINK_SPEED_1G + | RTE_ETH_LINK_SPEED_2_5G + | RTE_ETH_LINK_SPEED_10G; } else { DPAA_PMD_ERR("invalid link_speed: %s, %d", dpaa_intf->name, fif->mac_type); @@ -594,13 +593,12 @@ dpaa_dev_rx_burst_mode_get(struct rte_eth_dev *dev, uint64_t flags; const char *output; } rx_offload_map[] = { - {DEV_RX_OFFLOAD_JUMBO_FRAME, " Jumbo frame,"}, - {DEV_RX_OFFLOAD_SCATTER, " Scattered,"}, - {DEV_RX_OFFLOAD_IPV4_CKSUM, " IPV4 csum,"}, - {DEV_RX_OFFLOAD_UDP_CKSUM, " UDP csum,"}, - {DEV_RX_OFFLOAD_TCP_CKSUM, " TCP csum,"}, - {DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM, " Outer IPV4 csum,"}, - {DEV_RX_OFFLOAD_RSS_HASH, " RSS,"} + {RTE_ETH_RX_OFFLOAD_SCATTER, " Scattered,"}, + {RTE_ETH_RX_OFFLOAD_IPV4_CKSUM, " IPV4 csum,"}, + {RTE_ETH_RX_OFFLOAD_UDP_CKSUM, " UDP csum,"}, + {RTE_ETH_RX_OFFLOAD_TCP_CKSUM, " TCP csum,"}, + {RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM, " Outer IPV4 csum,"}, + {RTE_ETH_RX_OFFLOAD_RSS_HASH, " RSS,"} }; /* Update Rx offload info */ @@ -627,14 +625,14 @@ dpaa_dev_tx_burst_mode_get(struct rte_eth_dev *dev, uint64_t flags; const char *output; } tx_offload_map[] = { - {DEV_TX_OFFLOAD_MT_LOCKFREE, " MT lockfree,"}, - {DEV_TX_OFFLOAD_MBUF_FAST_FREE, " MBUF free disable,"}, - {DEV_TX_OFFLOAD_IPV4_CKSUM, " IPV4 csum,"}, - {DEV_TX_OFFLOAD_UDP_CKSUM, " UDP csum,"}, - {DEV_TX_OFFLOAD_TCP_CKSUM, " TCP csum,"}, - {DEV_TX_OFFLOAD_SCTP_CKSUM, " SCTP csum,"}, - {DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM, " Outer IPV4 csum,"}, - {DEV_TX_OFFLOAD_MULTI_SEGS, " Scattered,"} + {RTE_ETH_TX_OFFLOAD_MT_LOCKFREE, " MT lockfree,"}, + {RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE, " MBUF free disable,"}, + {RTE_ETH_TX_OFFLOAD_IPV4_CKSUM, " IPV4 csum,"}, + {RTE_ETH_TX_OFFLOAD_UDP_CKSUM, " UDP csum,"}, + {RTE_ETH_TX_OFFLOAD_TCP_CKSUM, " TCP csum,"}, + {RTE_ETH_TX_OFFLOAD_SCTP_CKSUM, " SCTP csum,"}, + {RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM, " Outer IPV4 csum,"}, + {RTE_ETH_TX_OFFLOAD_MULTI_SEGS, " Scattered,"} }; /* Update Tx offload info */ @@ -668,7 +666,7 @@ static int dpaa_eth_link_update(struct rte_eth_dev *dev, ret = dpaa_get_link_status(__fif->node_name, link); if (ret) return ret; - if (link->link_status == ETH_LINK_DOWN && + if (link->link_status == RTE_ETH_LINK_DOWN && wait_to_complete) rte_delay_ms(CHECK_INTERVAL); else @@ -679,15 +677,15 @@ static int dpaa_eth_link_update(struct rte_eth_dev *dev, } if (ioctl_version < 2) { - link->link_duplex = ETH_LINK_FULL_DUPLEX; - link->link_autoneg = ETH_LINK_AUTONEG; + link->link_duplex = RTE_ETH_LINK_FULL_DUPLEX; + link->link_autoneg = RTE_ETH_LINK_AUTONEG; if (fif->mac_type == fman_mac_1g) - link->link_speed = ETH_SPEED_NUM_1G; + link->link_speed = RTE_ETH_SPEED_NUM_1G; else if (fif->mac_type == fman_mac_2_5g) - link->link_speed = ETH_SPEED_NUM_2_5G; + link->link_speed = RTE_ETH_SPEED_NUM_2_5G; else if (fif->mac_type == fman_mac_10g) - link->link_speed = ETH_SPEED_NUM_10G; + link->link_speed = RTE_ETH_SPEED_NUM_10G; else DPAA_PMD_ERR("invalid link_speed: %s, %d", dpaa_intf->name, fif->mac_type); @@ -966,7 +964,7 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, if (max_rx_pktlen <= buffsz) { ; } else if (dev->data->dev_conf.rxmode.offloads & - DEV_RX_OFFLOAD_SCATTER) { + RTE_ETH_RX_OFFLOAD_SCATTER) { if (max_rx_pktlen > buffsz * DPAA_SGT_MAX_ENTRIES) { DPAA_PMD_ERR("Maximum Rx packet size %d too big to fit " "MaxSGlist %d", @@ -1076,26 +1074,38 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, rxq->qp = qp; /* Set up the device interrupt handler */ - if (!dev->intr_handle) { + if (dev->intr_handle == NULL) { struct rte_dpaa_device *dpaa_dev; struct rte_device *rdev = dev->device; dpaa_dev = container_of(rdev, struct rte_dpaa_device, device); - dev->intr_handle = &dpaa_dev->intr_handle; - dev->intr_handle->intr_vec = rte_zmalloc(NULL, - dpaa_push_mode_max_queue, 0); - if (!dev->intr_handle->intr_vec) { + dev->intr_handle = dpaa_dev->intr_handle; + if (rte_intr_vec_list_alloc(dev->intr_handle, + NULL, dpaa_push_mode_max_queue)) { DPAA_PMD_ERR("intr_vec alloc failed"); return -ENOMEM; } - dev->intr_handle->nb_efd = dpaa_push_mode_max_queue; - dev->intr_handle->max_intr = dpaa_push_mode_max_queue; + if (rte_intr_nb_efd_set(dev->intr_handle, + dpaa_push_mode_max_queue)) + return -rte_errno; + + if (rte_intr_max_intr_set(dev->intr_handle, + dpaa_push_mode_max_queue)) + return -rte_errno; } - dev->intr_handle->type = RTE_INTR_HANDLE_EXT; - dev->intr_handle->intr_vec[queue_idx] = queue_idx + 1; - dev->intr_handle->efds[queue_idx] = q_fd; + if (rte_intr_type_set(dev->intr_handle, RTE_INTR_HANDLE_EXT)) + return -rte_errno; + + if (rte_intr_vec_list_index_set(dev->intr_handle, + queue_idx, queue_idx + 1)) + return -rte_errno; + + if (rte_intr_efds_index_set(dev->intr_handle, queue_idx, + q_fd)) + return -rte_errno; + rxq->q_fd = q_fd; } rxq->bp_array = rte_dpaa_bpid_info; @@ -1272,7 +1282,7 @@ static int dpaa_link_down(struct rte_eth_dev *dev) __fif = container_of(fif, struct __fman_if, __if); if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) - dpaa_update_link_status(__fif->node_name, ETH_LINK_DOWN); + dpaa_update_link_status(__fif->node_name, RTE_ETH_LINK_DOWN); else return dpaa_eth_dev_stop(dev); return 0; @@ -1288,7 +1298,7 @@ static int dpaa_link_up(struct rte_eth_dev *dev) __fif = container_of(fif, struct __fman_if, __if); if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) - dpaa_update_link_status(__fif->node_name, ETH_LINK_UP); + dpaa_update_link_status(__fif->node_name, RTE_ETH_LINK_UP); else dpaa_eth_dev_start(dev); return 0; @@ -1318,10 +1328,10 @@ dpaa_flow_ctrl_set(struct rte_eth_dev *dev, return -EINVAL; } - if (fc_conf->mode == RTE_FC_NONE) { + if (fc_conf->mode == RTE_ETH_FC_NONE) { return 0; - } else if (fc_conf->mode == RTE_FC_TX_PAUSE || - fc_conf->mode == RTE_FC_FULL) { + } else if (fc_conf->mode == RTE_ETH_FC_TX_PAUSE || + fc_conf->mode == RTE_ETH_FC_FULL) { fman_if_set_fc_threshold(dev->process_private, fc_conf->high_water, fc_conf->low_water, @@ -1365,11 +1375,11 @@ dpaa_flow_ctrl_get(struct rte_eth_dev *dev, } ret = fman_if_get_fc_threshold(dev->process_private); if (ret) { - fc_conf->mode = RTE_FC_TX_PAUSE; + fc_conf->mode = RTE_ETH_FC_TX_PAUSE; fc_conf->pause_time = fman_if_get_fc_quanta(dev->process_private); } else { - fc_conf->mode = RTE_FC_NONE; + fc_conf->mode = RTE_ETH_FC_NONE; } return 0; @@ -1630,10 +1640,10 @@ static int dpaa_fc_set_default(struct dpaa_if *dpaa_intf, fc_conf = dpaa_intf->fc_conf; ret = fman_if_get_fc_threshold(fman_intf); if (ret) { - fc_conf->mode = RTE_FC_TX_PAUSE; + fc_conf->mode = RTE_ETH_FC_TX_PAUSE; fc_conf->pause_time = fman_if_get_fc_quanta(fman_intf); } else { - fc_conf->mode = RTE_FC_NONE; + fc_conf->mode = RTE_ETH_FC_NONE; } return 0;