dma.h (3372de5813e4da8305002ff6ffbfc0c7012cb319) dma.h (ef97bd0f59741ca1a555b69b8708f6601e35c3ed)
1/*
2 * Copyright(c) 2004 - 2009 Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the Free
6 * Software Foundation; either version 2 of the License, or (at your option)
7 * any later version.
8 *

--- 54 unchanged lines hidden (view full) ---

63 * @pdev: PCI-Express device
64 * @reg_base: MMIO register space base address
65 * @dma_pool: for allocating DMA descriptors
66 * @dma_dev: embedded struct dma_device
67 * @version: version of ioatdma device
68 * @msix_entries: irq handlers
69 * @idx: per channel data
70 * @dca: direct cache access context
1/*
2 * Copyright(c) 2004 - 2009 Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the Free
6 * Software Foundation; either version 2 of the License, or (at your option)
7 * any later version.
8 *

--- 54 unchanged lines hidden (view full) ---

63 * @pdev: PCI-Express device
64 * @reg_base: MMIO register space base address
65 * @dma_pool: for allocating DMA descriptors
66 * @dma_dev: embedded struct dma_device
67 * @version: version of ioatdma device
68 * @msix_entries: irq handlers
69 * @idx: per channel data
70 * @dca: direct cache access context
71 * @intr_quirk: interrupt setup quirk (for ioat_v1 devices)
72 * @enumerate_channels: hw version specific channel enumeration
73 * @reset_hw: hw version specific channel (re)initialization
74 * @cleanup_fn: select between the v2 and v3 cleanup routines
75 * @timer_fn: select between the v2 and v3 timer watchdog routines
76 * @self_test: hardware version specific self test for each supported op type
77 *
78 * Note: the v3 cleanup routine supports raid operations
79 */
80struct ioatdma_device {
81 struct pci_dev *pdev;
82 void __iomem *reg_base;
83 struct pci_pool *dma_pool;
84 struct pci_pool *completion_pool;
85#define MAX_SED_POOLS 5
86 struct dma_pool *sed_hw_pool[MAX_SED_POOLS];
87 struct dma_device dma_dev;
88 u8 version;
89 struct msix_entry msix_entries[4];
90 struct ioatdma_chan *idx[4];
91 struct dca_provider *dca;
92 enum ioat_irq_mode irq_mode;
93 u32 cap;
71 */
72struct ioatdma_device {
73 struct pci_dev *pdev;
74 void __iomem *reg_base;
75 struct pci_pool *dma_pool;
76 struct pci_pool *completion_pool;
77#define MAX_SED_POOLS 5
78 struct dma_pool *sed_hw_pool[MAX_SED_POOLS];
79 struct dma_device dma_dev;
80 u8 version;
81 struct msix_entry msix_entries[4];
82 struct ioatdma_chan *idx[4];
83 struct dca_provider *dca;
84 enum ioat_irq_mode irq_mode;
85 u32 cap;
94 void (*intr_quirk)(struct ioatdma_device *ioat_dma);
95 int (*enumerate_channels)(struct ioatdma_device *ioat_dma);
96 int (*reset_hw)(struct ioatdma_chan *ioat_chan);
97 void (*cleanup_fn)(unsigned long data);
98 void (*timer_fn)(unsigned long data);
99 int (*self_test)(struct ioatdma_device *ioat_dma);
100};
101
102struct ioatdma_chan {
103 struct dma_chan dma_chan;
104 void __iomem *reg_base;
105 dma_addr_t last_completion;
106 spinlock_t cleanup_lock;
107 unsigned long state;

--- 345 unchanged lines hidden ---
86};
87
88struct ioatdma_chan {
89 struct dma_chan dma_chan;
90 void __iomem *reg_base;
91 dma_addr_t last_completion;
92 spinlock_t cleanup_lock;
93 unsigned long state;

--- 345 unchanged lines hidden ---