vhost: promote some APIs to stable
[dpdk.git] / drivers / net / dpaa2 / dpaa2_ethdev.c
index 586d116..c121695 100644 (file)
@@ -99,10 +99,6 @@ static const struct rte_dpaa2_xstats_name_off dpaa2_xstats_strings[] = {
        {"cgr_reject_bytes", 4, 1},
 };
 
-static const enum rte_filter_op dpaa2_supported_filter_ops[] = {
-       RTE_ETH_FILTER_GET
-};
-
 static struct rte_dpaa2_driver rte_dpaa2_pmd;
 static int dpaa2_dev_link_update(struct rte_eth_dev *dev,
                                 int wait_to_complete);
@@ -230,9 +226,11 @@ dpaa2_fw_version_get(struct rte_eth_dev *dev,
                       mc_ver_info.major,
                       mc_ver_info.minor,
                       mc_ver_info.revision);
+       if (ret < 0)
+               return -EINVAL;
 
        ret += 1; /* add the size of '\0' */
-       if (fw_size < (uint32_t)ret)
+       if (fw_size < (size_t)ret)
                return ret;
        else
                return 0;
@@ -2322,45 +2320,15 @@ int dpaa2_eth_eventq_detach(const struct rte_eth_dev *dev,
        return ret;
 }
 
-static inline int
-dpaa2_dev_verify_filter_ops(enum rte_filter_op filter_op)
-{
-       unsigned int i;
-
-       for (i = 0; i < RTE_DIM(dpaa2_supported_filter_ops); i++) {
-               if (dpaa2_supported_filter_ops[i] == filter_op)
-                       return 0;
-       }
-       return -ENOTSUP;
-}
-
 static int
-dpaa2_dev_flow_ctrl(struct rte_eth_dev *dev,
-                   enum rte_filter_type filter_type,
-                                enum rte_filter_op filter_op,
-                                void *arg)
+dpaa2_dev_flow_ops_get(struct rte_eth_dev *dev,
+                      const struct rte_flow_ops **ops)
 {
-       int ret = 0;
-
        if (!dev)
                return -ENODEV;
 
-       switch (filter_type) {
-       case RTE_ETH_FILTER_GENERIC:
-               if (dpaa2_dev_verify_filter_ops(filter_op) < 0) {
-                       ret = -ENOTSUP;
-                       break;
-               }
-               *(const void **)arg = &dpaa2_flow_ops;
-               dpaa2_filter_type |= filter_type;
-               break;
-       default:
-               RTE_LOG(ERR, PMD, "Filter type (%d) not supported",
-                       filter_type);
-               ret = -ENOTSUP;
-               break;
-       }
-       return ret;
+       *ops = &dpaa2_flow_ops;
+       return 0;
 }
 
 static void
@@ -2368,12 +2336,18 @@ dpaa2_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
        struct rte_eth_rxq_info *qinfo)
 {
        struct dpaa2_queue *rxq;
+       struct dpaa2_dev_priv *priv = dev->data->dev_private;
+       struct fsl_mc_io *dpni = (struct fsl_mc_io *)dev->process_private;
+       uint16_t max_frame_length;
 
        rxq = (struct dpaa2_queue *)dev->data->rx_queues[queue_id];
 
        qinfo->mp = rxq->mb_pool;
        qinfo->scattered_rx = dev->data->scattered_rx;
        qinfo->nb_desc = rxq->nb_desc;
+       if (dpni_get_max_frame_length(dpni, CMD_PRI_LOW, priv->token,
+                               &max_frame_length) == 0)
+               qinfo->rx_buf_size = max_frame_length;
 
        qinfo->conf.rx_free_thresh = 1;
        qinfo->conf.rx_drop_en = 1;
@@ -2408,6 +2382,22 @@ dpaa2_tm_ops_get(struct rte_eth_dev *dev __rte_unused, void *ops)
        return 0;
 }
 
+void
+rte_pmd_dpaa2_thread_init(void)
+{
+       int ret;
+
+       if (unlikely(!DPAA2_PER_LCORE_DPIO)) {
+               ret = dpaa2_affine_qbman_swp();
+               if (ret) {
+                       DPAA2_PMD_ERR(
+                               "Failed to allocate IO portal, tid: %d\n",
+                               rte_gettid());
+                       return;
+               }
+       }
+}
+
 static struct eth_dev_ops dpaa2_ethdev_ops = {
        .dev_configure    = dpaa2_eth_dev_configure,
        .dev_start            = dpaa2_dev_start,
@@ -2447,7 +2437,7 @@ static struct eth_dev_ops dpaa2_ethdev_ops = {
        .mac_addr_set         = dpaa2_dev_set_mac_addr,
        .rss_hash_update      = dpaa2_dev_rss_hash_update,
        .rss_hash_conf_get    = dpaa2_dev_rss_hash_conf_get,
-       .filter_ctrl          = dpaa2_dev_flow_ctrl,
+       .flow_ops_get         = dpaa2_dev_flow_ops_get,
        .rxq_info_get         = dpaa2_rxq_info_get,
        .txq_info_get         = dpaa2_txq_info_get,
        .tm_ops_get           = dpaa2_tm_ops_get,
@@ -2915,10 +2905,10 @@ static struct rte_dpaa2_driver rte_dpaa2_pmd = {
        .remove = rte_dpaa2_remove,
 };
 
-RTE_PMD_REGISTER_DPAA2(net_dpaa2, rte_dpaa2_pmd);
-RTE_PMD_REGISTER_PARAM_STRING(net_dpaa2,
+RTE_PMD_REGISTER_DPAA2(NET_DPAA2_PMD_DRIVER_NAME, rte_dpaa2_pmd);
+RTE_PMD_REGISTER_PARAM_STRING(NET_DPAA2_PMD_DRIVER_NAME,
                DRIVER_LOOPBACK_MODE "=<int> "
                DRIVER_NO_PREFETCH_MODE "=<int>"
                DRIVER_TX_CONF "=<int>"
                DRIVER_ERROR_QUEUE "=<int>");
-RTE_LOG_REGISTER(dpaa2_logtype_pmd, pmd.net.dpaa2, NOTICE);
+RTE_LOG_REGISTER_DEFAULT(dpaa2_logtype_pmd, NOTICE);