Move internal structs and definitions from ntb_transport_core.c into a
new internal header so they can be shared by upcoming split-out modules.

No functional change.

Signed-off-by: Koichiro Den <[email protected]>
---
 drivers/ntb/ntb_transport_core.c     | 144 +-----------------------
 drivers/ntb/ntb_transport_internal.h | 159 +++++++++++++++++++++++++++
 2 files changed, 161 insertions(+), 142 deletions(-)
 create mode 100644 drivers/ntb/ntb_transport_internal.h

diff --git a/drivers/ntb/ntb_transport_core.c b/drivers/ntb/ntb_transport_core.c
index 7b320249629c..71f01fa0ff05 100644
--- a/drivers/ntb/ntb_transport_core.c
+++ b/drivers/ntb/ntb_transport_core.c
@@ -64,6 +64,8 @@
 #include "linux/ntb.h"
 #include "linux/ntb_transport.h"
 
+#include "ntb_transport_internal.h"
+
 #define NTB_TRANSPORT_VERSION  4
 #define NTB_TRANSPORT_VER      "4"
 #define NTB_TRANSPORT_NAME     "ntb_transport"
@@ -106,153 +108,12 @@ static struct dentry *nt_debugfs_dir;
 /* Only two-ports NTB devices are supported */
 #define PIDX           NTB_DEF_PEER_IDX
 
-struct ntb_queue_entry {
-       /* ntb_queue list reference */
-       struct list_head entry;
-       /* pointers to data to be transferred */
-       void *cb_data;
-       void *buf;
-       unsigned int len;
-       unsigned int flags;
-       int retries;
-       int errors;
-       unsigned int tx_index;
-       unsigned int rx_index;
-
-       struct ntb_transport_qp *qp;
-       union {
-               struct ntb_payload_header __iomem *tx_hdr;
-               struct ntb_payload_header *rx_hdr;
-       };
-};
-
-struct ntb_rx_info {
-       unsigned int entry;
-};
-
-struct ntb_transport_qp {
-       struct ntb_transport_ctx *transport;
-       struct ntb_dev *ndev;
-       void *cb_data;
-       struct dma_chan *tx_dma_chan;
-       struct dma_chan *rx_dma_chan;
-
-       bool client_ready;
-       bool link_is_up;
-       bool active;
-
-       u8 qp_num;      /* Only 64 QP's are allowed.  0-63 */
-       u64 qp_bit;
-
-       struct ntb_rx_info __iomem *rx_info;
-       struct ntb_rx_info *remote_rx_info;
-
-       void (*tx_handler)(struct ntb_transport_qp *qp, void *qp_data,
-                          void *data, int len);
-       struct list_head tx_free_q;
-       spinlock_t ntb_tx_free_q_lock;
-       void __iomem *tx_mw;
-       phys_addr_t tx_mw_phys;
-       size_t tx_mw_size;
-       dma_addr_t tx_mw_dma_addr;
-       unsigned int tx_index;
-       unsigned int tx_max_entry;
-       unsigned int tx_max_frame;
-
-       void (*rx_handler)(struct ntb_transport_qp *qp, void *qp_data,
-                          void *data, int len);
-       struct list_head rx_post_q;
-       struct list_head rx_pend_q;
-       struct list_head rx_free_q;
-       /* ntb_rx_q_lock: synchronize access to rx_XXXX_q */
-       spinlock_t ntb_rx_q_lock;
-       void *rx_buff;
-       unsigned int rx_index;
-       unsigned int rx_max_entry;
-       unsigned int rx_max_frame;
-       unsigned int rx_alloc_entry;
-       dma_cookie_t last_cookie;
-       struct tasklet_struct rxc_db_work;
-
-       void (*event_handler)(void *data, int status);
-       struct delayed_work link_work;
-       struct work_struct link_cleanup;
-
-       struct dentry *debugfs_dir;
-       struct dentry *debugfs_stats;
-
-       /* Stats */
-       u64 rx_bytes;
-       u64 rx_pkts;
-       u64 rx_ring_empty;
-       u64 rx_err_no_buf;
-       u64 rx_err_oflow;
-       u64 rx_err_ver;
-       u64 rx_memcpy;
-       u64 rx_async;
-       u64 tx_bytes;
-       u64 tx_pkts;
-       u64 tx_ring_full;
-       u64 tx_err_no_buf;
-       u64 tx_memcpy;
-       u64 tx_async;
-
-       bool use_msi;
-       int msi_irq;
-       struct ntb_msi_desc msi_desc;
-       struct ntb_msi_desc peer_msi_desc;
-};
-
-struct ntb_transport_mw {
-       phys_addr_t phys_addr;
-       resource_size_t phys_size;
-       void __iomem *vbase;
-       size_t xlat_size;
-       size_t buff_size;
-       size_t alloc_size;
-       void *alloc_addr;
-       void *virt_addr;
-       dma_addr_t dma_addr;
-};
-
 struct ntb_transport_client_dev {
        struct list_head entry;
        struct ntb_transport_ctx *nt;
        struct device dev;
 };
 
-struct ntb_transport_ctx {
-       struct list_head entry;
-       struct list_head client_devs;
-
-       struct ntb_dev *ndev;
-
-       struct ntb_transport_mw *mw_vec;
-       struct ntb_transport_qp *qp_vec;
-       unsigned int mw_count;
-       unsigned int qp_count;
-       u64 qp_bitmap;
-       u64 qp_bitmap_free;
-
-       bool use_msi;
-       unsigned int msi_spad_offset;
-       u64 msi_db_mask;
-
-       bool link_is_up;
-       struct delayed_work link_work;
-       struct work_struct link_cleanup;
-
-       struct dentry *debugfs_node_dir;
-
-       /* Make sure workq of link event be executed serially */
-       struct mutex link_event_lock;
-};
-
-enum {
-       DESC_DONE_FLAG = BIT(0),
-       LINK_DOWN_FLAG = BIT(1),
-};
-
 struct ntb_payload_header {
        unsigned int ver;
        unsigned int len;
@@ -274,7 +135,6 @@ enum {
 #define drv_client(__drv) \
        container_of((__drv), struct ntb_transport_client, driver)
 
-#define QP_TO_MW(nt, qp)       ((qp) % nt->mw_count)
 #define NTB_QP_DEF_NUM_ENTRIES 100
 #define NTB_LINK_DOWN_TIMEOUT  10
 
diff --git a/drivers/ntb/ntb_transport_internal.h 
b/drivers/ntb/ntb_transport_internal.h
new file mode 100644
index 000000000000..aff9b70671c6
--- /dev/null
+++ b/drivers/ntb/ntb_transport_internal.h
@@ -0,0 +1,159 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
+/*
+ * Copyright(c) 2012 Intel Corporation. All rights reserved.
+ * Copyright (C) 2015 EMC Corporation. All Rights Reserved.
+ */
+#ifndef _NTB_TRANSPORT_INTERNAL_H_
+#define _NTB_TRANSPORT_INTERNAL_H_
+
+#include <linux/dcache.h>
+#include <linux/dmaengine.h>
+#include <linux/mutex.h>
+#include <linux/ntb.h>
+#include <linux/spinlock.h>
+#include <linux/types.h>
+
+#define QP_TO_MW(nt, qp)       ((qp) % nt->mw_count)
+
+struct ntb_queue_entry {
+       /* ntb_queue list reference */
+       struct list_head entry;
+       /* pointers to data to be transferred */
+       void *cb_data;
+       void *buf;
+       unsigned int len;
+       unsigned int flags;
+       int retries;
+       int errors;
+       unsigned int tx_index;
+       unsigned int rx_index;
+
+       struct ntb_transport_qp *qp;
+       union {
+               struct ntb_payload_header __iomem *tx_hdr;
+               struct ntb_payload_header *rx_hdr;
+       };
+};
+
+struct ntb_rx_info {
+       unsigned int entry;
+};
+
+struct ntb_transport_qp {
+       struct ntb_transport_ctx *transport;
+       struct ntb_dev *ndev;
+       void *cb_data;
+       struct dma_chan *tx_dma_chan;
+       struct dma_chan *rx_dma_chan;
+
+       bool client_ready;
+       bool link_is_up;
+       bool active;
+
+       u8 qp_num;      /* Only 64 QP's are allowed.  0-63 */
+       u64 qp_bit;
+
+       struct ntb_rx_info __iomem *rx_info;
+       struct ntb_rx_info *remote_rx_info;
+
+       void (*tx_handler)(struct ntb_transport_qp *qp, void *qp_data,
+                          void *data, int len);
+       struct list_head tx_free_q;
+       spinlock_t ntb_tx_free_q_lock;
+       void __iomem *tx_mw;
+       phys_addr_t tx_mw_phys;
+       size_t tx_mw_size;
+       dma_addr_t tx_mw_dma_addr;
+       unsigned int tx_index;
+       unsigned int tx_max_entry;
+       unsigned int tx_max_frame;
+
+       void (*rx_handler)(struct ntb_transport_qp *qp, void *qp_data,
+                          void *data, int len);
+       struct list_head rx_post_q;
+       struct list_head rx_pend_q;
+       struct list_head rx_free_q;
+       /* ntb_rx_q_lock: synchronize access to rx_XXXX_q */
+       spinlock_t ntb_rx_q_lock;
+       void *rx_buff;
+       unsigned int rx_index;
+       unsigned int rx_max_entry;
+       unsigned int rx_max_frame;
+       unsigned int rx_alloc_entry;
+       dma_cookie_t last_cookie;
+       struct tasklet_struct rxc_db_work;
+
+       void (*event_handler)(void *data, int status);
+       struct delayed_work link_work;
+       struct work_struct link_cleanup;
+
+       struct dentry *debugfs_dir;
+       struct dentry *debugfs_stats;
+
+       /* Stats */
+       u64 rx_bytes;
+       u64 rx_pkts;
+       u64 rx_ring_empty;
+       u64 rx_err_no_buf;
+       u64 rx_err_oflow;
+       u64 rx_err_ver;
+       u64 rx_memcpy;
+       u64 rx_async;
+       u64 tx_bytes;
+       u64 tx_pkts;
+       u64 tx_ring_full;
+       u64 tx_err_no_buf;
+       u64 tx_memcpy;
+       u64 tx_async;
+
+       bool use_msi;
+       int msi_irq;
+       struct ntb_msi_desc msi_desc;
+       struct ntb_msi_desc peer_msi_desc;
+};
+
+struct ntb_transport_mw {
+       phys_addr_t phys_addr;
+       resource_size_t phys_size;
+       void __iomem *vbase;
+       size_t xlat_size;
+       size_t buff_size;
+       size_t alloc_size;
+       void *alloc_addr;
+       void *virt_addr;
+       dma_addr_t dma_addr;
+};
+
+struct ntb_transport_ctx {
+       struct list_head entry;
+       struct list_head client_devs;
+
+       struct ntb_dev *ndev;
+
+       struct ntb_transport_mw *mw_vec;
+       struct ntb_transport_qp *qp_vec;
+       unsigned int mw_count;
+       unsigned int qp_count;
+       u64 qp_bitmap;
+       u64 qp_bitmap_free;
+
+       bool use_msi;
+       unsigned int msi_spad_offset;
+       u64 msi_db_mask;
+
+       bool link_is_up;
+       struct delayed_work link_work;
+       struct work_struct link_cleanup;
+
+       struct dentry *debugfs_node_dir;
+
+       /* Make sure workq of link event be executed serially */
+       struct mutex link_event_lock;
+};
+
+enum {
+       DESC_DONE_FLAG = BIT(0),
+       LINK_DOWN_FLAG = BIT(1),
+};
+
+#endif /* _NTB_TRANSPORT_INTERNAL_H_ */
-- 
2.51.0


Reply via email to