net/virtio: replace SMP barrier with IO barrier
[dpdk.git] / drivers / net / ionic / ionic_dev.h
index a832ff4..026c4a9 100644 (file)
@@ -5,16 +5,24 @@
 #ifndef _IONIC_DEV_H_
 #define _IONIC_DEV_H_
 
+#include <stdbool.h>
+
 #include "ionic_osdep.h"
 #include "ionic_if.h"
 #include "ionic_regs.h"
 
+#define IONIC_MIN_MTU                  RTE_ETHER_MIN_MTU
+#define IONIC_MAX_MTU                  9194
+
 #define IONIC_MAX_RING_DESC            32768
 #define IONIC_MIN_RING_DESC            16
+#define IONIC_DEF_TXRX_DESC            4096
 
 #define IONIC_LIFS_MAX                 1024
 
-#define IONIC_DEVCMD_TIMEOUT   30 /* devcmd_timeout */
+#define IONIC_DEVCMD_TIMEOUT           5       /* devcmd_timeout */
+#define IONIC_DEVCMD_CHECK_PERIOD_US   10      /* devcmd status chk period */
+
 #define        IONIC_ALIGN             4096
 
 struct ionic_adapter;
@@ -112,10 +120,7 @@ struct ionic_dev {
        union ionic_dev_cmd_regs __iomem *dev_cmd;
 
        struct ionic_doorbell __iomem *db_pages;
-       rte_iova_t phy_db_pages;
-
        struct ionic_intr __iomem *intr_ctrl;
-
        struct ionic_intr_status __iomem *intr_status;
 
        struct ionic_port_info *port_info;
@@ -155,11 +160,9 @@ struct ionic_queue {
        uint32_t num_descs;
        uint32_t desc_size;
        uint32_t sg_desc_size;
-       uint32_t pid;
        uint32_t qid;
        uint32_t qtype;
        struct ionic_doorbell __iomem *db;
-       void *nop_desc;
 };
 
 #define IONIC_INTR_INDEX_NOT_ASSIGNED  (-1)
@@ -202,6 +205,8 @@ struct ionic_qcq;
 void ionic_intr_init(struct ionic_dev *idev, struct ionic_intr_info *intr,
        unsigned long index);
 
+const char *ionic_opcode_to_str(enum ionic_cmd_opcode opcode);
+
 int ionic_dev_setup(struct ionic_adapter *adapter);
 
 void ionic_dev_cmd_go(struct ionic_dev *idev, union ionic_dev_cmd *cmd);
@@ -249,7 +254,7 @@ uint32_t ionic_cq_service(struct ionic_cq *cq, uint32_t work_to_do,
 
 int ionic_q_init(struct ionic_lif *lif, struct ionic_dev *idev,
        struct ionic_queue *q, uint32_t index, uint32_t num_descs,
-       size_t desc_size, size_t sg_desc_size, uint32_t pid);
+       size_t desc_size, size_t sg_desc_size);
 void ionic_q_map(struct ionic_queue *q, void *base, rte_iova_t base_pa);
 void ionic_q_sg_map(struct ionic_queue *q, void *base, rte_iova_t base_pa);
 void ionic_q_flush(struct ionic_queue *q);