diff options
author | Dave Jiang <dave.jiang@intel.com> | 2015-08-26 16:17:24 -0400 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2015-09-21 11:40:05 -0400 |
commit | ad4a7b5065c1b4f5176e7d031c3cc2b36f776884 (patch) | |
tree | febe068710e3019801c09c014d6cee2843cb24c3 /drivers/dma/ioat/dma.h | |
parent | 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f (diff) |
dmaengine: ioatdma: adding shutdown support
The ioatdma needs to be queisced and block all additional op submission
during reboots. When NET_DMA was used, this caused issue as ops were still
being sent to ioatdma during reboots even though PCI BME has been turned
off. Even though NET_DMA has been deprecated, we need to prevent similar
situations. The shutdown handler should address that.
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/ioat/dma.h')
-rw-r--r-- | drivers/dma/ioat/dma.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h index 1bc084986646..8f4e607d5817 100644 --- a/drivers/dma/ioat/dma.h +++ b/drivers/dma/ioat/dma.h | |||
@@ -82,8 +82,9 @@ struct ioatdma_device { | |||
82 | struct dma_pool *sed_hw_pool[MAX_SED_POOLS]; | 82 | struct dma_pool *sed_hw_pool[MAX_SED_POOLS]; |
83 | struct dma_device dma_dev; | 83 | struct dma_device dma_dev; |
84 | u8 version; | 84 | u8 version; |
85 | struct msix_entry msix_entries[4]; | 85 | #define IOAT_MAX_CHANS 4 |
86 | struct ioatdma_chan *idx[4]; | 86 | struct msix_entry msix_entries[IOAT_MAX_CHANS]; |
87 | struct ioatdma_chan *idx[IOAT_MAX_CHANS]; | ||
87 | struct dca_provider *dca; | 88 | struct dca_provider *dca; |
88 | enum ioat_irq_mode irq_mode; | 89 | enum ioat_irq_mode irq_mode; |
89 | u32 cap; | 90 | u32 cap; |
@@ -95,6 +96,7 @@ struct ioatdma_chan { | |||
95 | dma_addr_t last_completion; | 96 | dma_addr_t last_completion; |
96 | spinlock_t cleanup_lock; | 97 | spinlock_t cleanup_lock; |
97 | unsigned long state; | 98 | unsigned long state; |
99 | #define IOAT_CHAN_DOWN 0 | ||
98 | #define IOAT_COMPLETION_ACK 1 | 100 | #define IOAT_COMPLETION_ACK 1 |
99 | #define IOAT_RESET_PENDING 2 | 101 | #define IOAT_RESET_PENDING 2 |
100 | #define IOAT_KOBJ_INIT_FAIL 3 | 102 | #define IOAT_KOBJ_INIT_FAIL 3 |