net/sfc: add Rx datapath method to get pushed buffers count
[dpdk.git] / drivers / net / mvpp2 / mrvl_ethdev.c
index e119952..078aefb 100644 (file)
@@ -533,12 +533,18 @@ mrvl_dev_configure(struct rte_eth_dev *dev)
            dev->data->dev_conf.rxmode.mq_mode == ETH_MQ_RX_RSS) {
                MRVL_LOG(WARNING, "Disabling hash for 1 rx queue");
                priv->ppio_params.inqs_params.hash_type = PP2_PPIO_HASH_T_NONE;
-
+               priv->configured = 1;
                return 0;
        }
 
-       return mrvl_configure_rss(priv,
+       ret = mrvl_configure_rss(priv,
                        &dev->data->dev_conf.rx_adv_conf.rss_conf);
+       if (ret < 0)
+               return ret;
+
+       priv->configured = 1;
+
+       return 0;
 }
 
 /**
@@ -1867,8 +1873,10 @@ static int mrvl_vlan_offload_set(struct rte_eth_dev *dev, int mask)
        uint64_t rx_offloads = dev->data->dev_conf.rxmode.offloads;
        int ret;
 
-       if (mask & ETH_VLAN_STRIP_MASK)
+       if (mask & ETH_VLAN_STRIP_MASK) {
                MRVL_LOG(ERR, "VLAN stripping is not supported\n");
+               return -ENOTSUP;
+       }
 
        if (mask & ETH_VLAN_FILTER_MASK) {
                if (rx_offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
@@ -1880,8 +1888,10 @@ static int mrvl_vlan_offload_set(struct rte_eth_dev *dev, int mask)
                        return ret;
        }
 
-       if (mask & ETH_VLAN_EXTEND_MASK)
+       if (mask & ETH_VLAN_EXTEND_MASK) {
                MRVL_LOG(ERR, "Extend VLAN not supported\n");
+               return -ENOTSUP;
+       }
 
        return 0;
 }
@@ -2340,32 +2350,18 @@ mrvl_rss_hash_conf_get(struct rte_eth_dev *dev,
  *
  * @param dev
  *   Pointer to the device structure.
- * @param filer_type
- *   Flow filter type.
- * @param filter_op
- *   Flow filter operation.
- * @param arg
+ * @param ops
  *   Pointer to pass the flow ops.
  *
  * @return
  *   0 on success, negative error value otherwise.
  */
 static int
-mrvl_eth_filter_ctrl(struct rte_eth_dev *dev __rte_unused,
-                    enum rte_filter_type filter_type,
-                    enum rte_filter_op filter_op, void *arg)
+mrvl_eth_flow_ops_get(struct rte_eth_dev *dev __rte_unused,
+                     const struct rte_flow_ops **ops)
 {
-       switch (filter_type) {
-       case RTE_ETH_FILTER_GENERIC:
-               if (filter_op != RTE_ETH_FILTER_GET)
-                       return -EINVAL;
-               *(const void **)arg = &mrvl_flow_ops;
-               return 0;
-       default:
-               MRVL_LOG(WARNING, "Filter type (%d) not supported",
-                               filter_type);
-               return -EINVAL;
-       }
+       *ops = &mrvl_flow_ops;
+       return 0;
 }
 
 /**
@@ -2443,7 +2439,7 @@ static const struct eth_dev_ops mrvl_ops = {
        .flow_ctrl_set = mrvl_flow_ctrl_set,
        .rss_hash_update = mrvl_rss_hash_update,
        .rss_hash_conf_get = mrvl_rss_hash_conf_get,
-       .filter_ctrl = mrvl_eth_filter_ctrl,
+       .flow_ops_get = mrvl_eth_flow_ops_get,
        .mtr_ops_get = mrvl_mtr_ops_get,
        .tm_ops_get = mrvl_tm_ops_get,
 };
@@ -3323,4 +3319,4 @@ static struct rte_vdev_driver pmd_mrvl_drv = {
 
 RTE_PMD_REGISTER_VDEV(net_mvpp2, pmd_mrvl_drv);
 RTE_PMD_REGISTER_ALIAS(net_mvpp2, eth_mvpp2);
-RTE_LOG_REGISTER(mrvl_logtype, pmd.net.mvpp2, NOTICE);
+RTE_LOG_REGISTER_DEFAULT(mrvl_logtype, NOTICE);