net/hns3: fix return value for unsupported tuple
[dpdk.git] / drivers / net / ark / ark_ddm.c
index eea388a..eb88349 100644 (file)
@@ -7,89 +7,58 @@
 #include "ark_logs.h"
 #include "ark_ddm.h"
 
+static_assert(sizeof(union ark_tx_meta) == 8, "Unexpected struct size ark_tx_meta");
+
 /* ************************************************************************* */
 int
 ark_ddm_verify(struct ark_ddm_t *ddm)
 {
+       uint32_t hw_const;
+       uint32_t hw_ver;
        if (sizeof(struct ark_ddm_t) != ARK_DDM_EXPECTED_SIZE) {
-               PMD_DRV_LOG(ERR, "ARK: DDM structure looks incorrect %d vs %zd\n",
+               ARK_PMD_LOG(ERR, "DDM structure looks incorrect %d vs %zd\n",
                            ARK_DDM_EXPECTED_SIZE, sizeof(struct ark_ddm_t));
                return -1;
        }
 
-       if (ddm->cfg.const0 != ARK_DDM_CONST) {
-               PMD_DRV_LOG(ERR, "ARK: DDM module not found as expected 0x%08x\n",
-                           ddm->cfg.const0);
-               return -1;
-       }
-       return 0;
-}
-
-void
-ark_ddm_start(struct ark_ddm_t *ddm)
-{
-       ddm->cfg.command = 1;
-}
-
-int
-ark_ddm_stop(struct ark_ddm_t *ddm, const int wait)
-{
-       int cnt = 0;
-
-       ddm->cfg.command = 2;
-       while (wait && (ddm->cfg.stop_flushed & 0x01) == 0) {
-               if (cnt++ > 1000)
-                       return 1;
+       hw_const = ddm->cfg.idnum;
+       hw_ver = ddm->cfg.vernum;
+       if (hw_const == ARK_DDM_MODID && hw_ver == ARK_DDM_MODVER)
+               return 0;
 
-               usleep(10);
-       }
-       return 0;
+       ARK_PMD_LOG(ERR,
+                   "ARK: DDM module not found as expected"
+                   " id: %08x ver: %08x\n",
+                   hw_const, hw_ver);
+       return -1;
 }
 
 void
-ark_ddm_reset(struct ark_ddm_t *ddm)
+ark_ddm_queue_enable(struct ark_ddm_t *ddm, int enable)
 {
-       int status;
-
-       /* reset only works if ddm has stopped properly. */
-       status = ark_ddm_stop(ddm, 1);
-
-       if (status != 0) {
-               PMD_DEBUG_LOG(INFO, "%s  stop failed  doing forced reset\n",
-                             __func__);
-               ddm->cfg.command = 4;
-               usleep(10);
-       }
-       ddm->cfg.command = 3;
+       ddm->setup.qcommand = enable ? 1U : 0U;
 }
 
 void
-ark_ddm_setup(struct ark_ddm_t *ddm, rte_iova_t cons_addr, uint32_t interval)
+ark_ddm_queue_setup(struct ark_ddm_t *ddm, rte_iova_t cons_addr)
 {
        ddm->setup.cons_write_index_addr = cons_addr;
-       ddm->setup.write_index_interval = interval / 4; /* 4 ns period */
+       ddm->setup.cons_index = 0;
 }
 
+/* Global stats clear */
 void
 ark_ddm_stats_reset(struct ark_ddm_t *ddm)
 {
        ddm->cfg.tlp_stats_clear = 1;
 }
 
-void
-ark_ddm_dump(struct ark_ddm_t *ddm, const char *msg)
-{
-       PMD_FUNC_LOG(DEBUG, "%s Stopped: %d\n", msg,
-                    ark_ddm_is_stopped(ddm)
-                    );
-}
-
 void
 ark_ddm_dump_stats(struct ark_ddm_t *ddm, const char *msg)
 {
        struct ark_ddm_stats_t *stats = &ddm->stats;
 
-       PMD_STATS_LOG(INFO, "DDM Stats: %s"
+       ARK_PMD_LOG(INFO, "DDM Stats: %s"
                      ARK_SU64 ARK_SU64 ARK_SU64
                      "\n", msg,
                      "Bytes:", stats->tx_byte_count,
@@ -97,12 +66,6 @@ ark_ddm_dump_stats(struct ark_ddm_t *ddm, const char *msg)
                      "MBufs", stats->tx_mbuf_count);
 }
 
-int
-ark_ddm_is_stopped(struct ark_ddm_t *ddm)
-{
-       return (ddm->cfg.stop_flushed & 0x01) != 0;
-}
-
 uint64_t
 ark_ddm_queue_byte_count(struct ark_ddm_t *ddm)
 {