net/mvpp2: use common code to initialize DMA
[dpdk.git] / drivers / net / mvpp2 / mrvl_ethdev.c
index a2d0576..8e1a32f 100644 (file)
@@ -29,6 +29,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
+#include <rte_mvep_common.h>
 #include "mrvl_ethdev.h"
 #include "mrvl_qos.h"
 
@@ -63,9 +64,6 @@
 #define MRVL_COOKIE_HIGH_ADDR_SHIFT    (sizeof(pp2_cookie_t) * 8)
 #define MRVL_COOKIE_HIGH_ADDR_MASK     (~0ULL << MRVL_COOKIE_HIGH_ADDR_SHIFT)
 
-/* Memory size (in bytes) for MUSDK dma buffers */
-#define MRVL_MUSDK_DMA_MEMSIZE 41943040
-
 /** Port Rx offload capabilities */
 #define MRVL_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_FILTER | \
                          DEV_RX_OFFLOAD_JUMBO_FRAME | \
@@ -2654,23 +2652,16 @@ rte_pmd_mrvl_probe(struct rte_vdev_device *vdev)
                goto init_devices;
 
        MRVL_LOG(INFO, "Perform MUSDK initializations");
-       /*
-        * ret == -EEXIST is correct, it means DMA
-        * has been already initialized (by another PMD).
-        */
-       ret = mv_sys_dma_mem_init(MRVL_MUSDK_DMA_MEMSIZE);
-       if (ret < 0) {
-               if (ret != -EEXIST)
-                       goto out_free_kvlist;
-               else
-                       MRVL_LOG(INFO,
-                               "DMA memory has been already initialized by a different driver.");
-       }
+
+       ret = rte_mvep_init(MVEP_MOD_T_PP2, kvlist);
+       if (ret)
+               goto out_free_kvlist;
 
        ret = mrvl_init_pp2();
        if (ret) {
                MRVL_LOG(ERR, "Failed to init PP!");
-               goto out_deinit_dma;
+               rte_mvep_deinit(MVEP_MOD_T_PP2);
+               goto out_free_kvlist;
        }
 
        memset(mrvl_port_bpool_size, 0, sizeof(mrvl_port_bpool_size));
@@ -2695,11 +2686,10 @@ out_cleanup:
        for (; i > 0; i--)
                mrvl_eth_dev_destroy(ifnames.names[i]);
 
-       if (mrvl_dev_num == 0)
+       if (mrvl_dev_num == 0) {
                mrvl_deinit_pp2();
-out_deinit_dma:
-       if (mrvl_dev_num == 0)
-               mv_sys_dma_mem_destroy();
+               rte_mvep_deinit(MVEP_MOD_T_PP2);
+       }
 out_free_kvlist:
        rte_kvargs_free(kvlist);
 
@@ -2739,7 +2729,7 @@ rte_pmd_mrvl_remove(struct rte_vdev_device *vdev)
                MRVL_LOG(INFO, "Perform MUSDK deinit");
                mrvl_deinit_hifs();
                mrvl_deinit_pp2();
-               mv_sys_dma_mem_destroy();
+               rte_mvep_deinit(MVEP_MOD_T_PP2);
        }
 
        return 0;