net/mlx5: add VLAN push/pop DR commands to glue
[dpdk.git] / drivers / net / ark / ark_ethdev_rx.c
index 5751585..6156730 100644 (file)
@@ -53,7 +53,7 @@ struct ark_rx_queue {
        /* The queue Index is used within the dpdk device structures */
        uint16_t queue_index;
 
-       uint32_t pad1;
+       uint32_t last_cons;
 
        /* separate cache line */
        /* second cache line - fields only used in slow path */
@@ -105,7 +105,10 @@ eth_ark_rx_update_cons_index(struct ark_rx_queue *queue, uint32_t cons_index)
 {
        queue->cons_index = cons_index;
        eth_ark_rx_seed_mbufs(queue);
-       ark_mpu_set_producer(queue->mpu, queue->seed_index);
+       if (((cons_index - queue->last_cons) >= 64U)) {
+               queue->last_cons = cons_index;
+               ark_mpu_set_producer(queue->mpu, queue->seed_index);
+       }
 }
 
 /* ************************************************************************* */
@@ -118,15 +121,13 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,
                           struct rte_mempool *mb_pool)
 {
        static int warning1;            /* = 0 */
-       struct ark_adapter *ark = (struct ark_adapter *)dev->data->dev_private;
+       struct ark_adapter *ark = dev->data->dev_private;
 
        struct ark_rx_queue *queue;
        uint32_t i;
        int status;
 
-       /* Future works: divide the Q's evenly with multi-ports */
-       int port = dev->data->port_id;
-       int qidx = port + queue_idx;
+       int qidx = queue_idx;
 
        /* We may already be setup, free memory prior to re-allocation */
        if (dev->data->rx_queues[queue_idx] != NULL) {
@@ -608,7 +609,7 @@ eth_rx_queue_stats_reset(void *vqueue)
 void
 eth_ark_udm_force_close(struct rte_eth_dev *dev)
 {
-       struct ark_adapter *ark = (struct ark_adapter *)dev->data->dev_private;
+       struct ark_adapter *ark = dev->data->dev_private;
        struct ark_rx_queue *queue;
        uint32_t index;
        uint16_t i;