ath10k: fix some of the macro definitions of HTT_RX_IND message
[deliverable/linux.git] / drivers / rapidio / devices / tsi721.h
index 9d2502543ef677c28f382d70664dee4bb3c031ea..5456dbddc9290fc3d17d1d9f27e1fb2d5a90f4ec 100644 (file)
 #ifndef __TSI721_H
 #define __TSI721_H
 
+/* Debug output filtering masks */
+enum {
+       DBG_NONE        = 0,
+       DBG_INIT        = BIT(0), /* driver init */
+       DBG_EXIT        = BIT(1), /* driver exit */
+       DBG_MPORT       = BIT(2), /* mport add/remove */
+       DBG_MAINT       = BIT(3), /* maintenance ops messages */
+       DBG_DMA         = BIT(4), /* DMA transfer messages */
+       DBG_DMAV        = BIT(5), /* verbose DMA transfer messages */
+       DBG_IBW         = BIT(6), /* inbound window */
+       DBG_EVENT       = BIT(7), /* event handling messages */
+       DBG_OBW         = BIT(8), /* outbound window messages */
+       DBG_DBELL       = BIT(9), /* doorbell messages */
+       DBG_OMSG        = BIT(10), /* doorbell messages */
+       DBG_IMSG        = BIT(11), /* doorbell messages */
+       DBG_ALL         = ~0,
+};
+
+#ifdef DEBUG
+extern u32 dbg_level;
+
+#define tsi_debug(level, dev, fmt, arg...)                             \
+       do {                                                            \
+               if (DBG_##level & dbg_level)                            \
+                       dev_dbg(dev, "%s: " fmt "\n", __func__, ##arg); \
+       } while (0)
+#else
+#define tsi_debug(level, dev, fmt, arg...) \
+               no_printk(KERN_DEBUG "%s: " fmt "\n", __func__, ##arg)
+#endif
+
+#define tsi_info(dev, fmt, arg...) \
+       dev_info(dev, "%s: " fmt "\n", __func__, ##arg)
+
+#define tsi_warn(dev, fmt, arg...) \
+       dev_warn(dev, "%s: WARNING " fmt "\n", __func__, ##arg)
+
+#define tsi_err(dev, fmt, arg...) \
+       dev_err(dev, "%s: ERROR " fmt "\n", __func__, ##arg)
+
 #define DRV_NAME       "tsi721"
 
 #define DEFAULT_HOPCOUNT       0xff
@@ -674,7 +714,7 @@ struct tsi721_bdma_chan {
        struct dma_chan         dchan;
        struct tsi721_tx_desc   *tx_desc;
        spinlock_t              lock;
-       struct list_head        active_list;
+       struct tsi721_tx_desc   *active_tx;
        struct list_head        queue;
        struct list_head        free_list;
        struct tasklet_struct   tasklet;
@@ -808,9 +848,38 @@ struct msix_irq {
 };
 #endif /* CONFIG_PCI_MSI */
 
+struct tsi721_ib_win_mapping {
+       struct list_head node;
+       dma_addr_t      lstart;
+};
+
+struct tsi721_ib_win {
+       u64             rstart;
+       u32             size;
+       dma_addr_t      lstart;
+       bool            active;
+       bool            xlat;
+       struct list_head mappings;
+};
+
+struct tsi721_obw_bar {
+       u64             base;
+       u64             size;
+       u64             free;
+};
+
+struct tsi721_ob_win {
+       u64             base;
+       u32             size;
+       u16             destid;
+       u64             rstart;
+       bool            active;
+       struct tsi721_obw_bar *pbar;
+};
+
 struct tsi721_device {
        struct pci_dev  *pdev;
-       struct rio_mport *mport;
+       struct rio_mport mport;
        u32             flags;
        void __iomem    *regs;
 #ifdef CONFIG_PCI_MSI
@@ -843,11 +912,25 @@ struct tsi721_device {
        /* Outbound Messaging */
        int             omsg_init[TSI721_OMSG_CHNUM];
        struct tsi721_omsg_ring omsg_ring[TSI721_OMSG_CHNUM];
+
+       /* Inbound Mapping Windows */
+       struct tsi721_ib_win ib_win[TSI721_IBWIN_NUM];
+       int             ibwin_cnt;
+
+       /* Outbound Mapping Windows */
+       struct tsi721_obw_bar p2r_bar[2];
+       struct tsi721_ob_win  ob_win[TSI721_OBWIN_NUM];
+       int             obwin_cnt;
 };
 
 #ifdef CONFIG_RAPIDIO_DMA_ENGINE
 extern void tsi721_bdma_handler(struct tsi721_bdma_chan *bdma_chan);
 extern int tsi721_register_dma(struct tsi721_device *priv);
+extern void tsi721_unregister_dma(struct tsi721_device *priv);
+extern void tsi721_dma_stop_all(struct tsi721_device *priv);
+#else
+#define tsi721_dma_stop_all(priv) do {} while (0)
+#define tsi721_unregister_dma(priv) do {} while (0)
 #endif
 
 #endif
This page took 0.027056 seconds and 5 git commands to generate.