diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:42:58 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-08 20:42:58 -0400 |
commit | 9de6fc717bdc574cf5faf9d46ce0f9d6265c7952 (patch) | |
tree | 55cb18ecfae85033d61f730b5f32d2ac1fb572bc /drivers/dma/ioat/dma.h | |
parent | b094ad3be564e7cc59cca4ff0256550d3a55dd3b (diff) |
ioat3: xor self test
This adds a hardware specific self test to be called from ioat_probe.
In the ioat3 case we will have tests for all the different raid
operations, while ioat1 and ioat2 will continue to just test memcpy.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma/ioat/dma.h')
-rw-r--r-- | drivers/dma/ioat/dma.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h index c2939b289185..0e37e426c729 100644 --- a/drivers/dma/ioat/dma.h +++ b/drivers/dma/ioat/dma.h | |||
@@ -62,10 +62,10 @@ | |||
62 | * @enumerate_channels: hw version specific channel enumeration | 62 | * @enumerate_channels: hw version specific channel enumeration |
63 | * @cleanup_tasklet: select between the v2 and v3 cleanup routines | 63 | * @cleanup_tasklet: select between the v2 and v3 cleanup routines |
64 | * @timer_fn: select between the v2 and v3 timer watchdog routines | 64 | * @timer_fn: select between the v2 and v3 timer watchdog routines |
65 | * @self_test: hardware version specific self test for each supported op type | ||
65 | * | 66 | * |
66 | * Note: the v3 cleanup routine supports raid operations | 67 | * Note: the v3 cleanup routine supports raid operations |
67 | */ | 68 | */ |
68 | |||
69 | struct ioatdma_device { | 69 | struct ioatdma_device { |
70 | struct pci_dev *pdev; | 70 | struct pci_dev *pdev; |
71 | void __iomem *reg_base; | 71 | void __iomem *reg_base; |
@@ -80,6 +80,7 @@ struct ioatdma_device { | |||
80 | int (*enumerate_channels)(struct ioatdma_device *device); | 80 | int (*enumerate_channels)(struct ioatdma_device *device); |
81 | void (*cleanup_tasklet)(unsigned long data); | 81 | void (*cleanup_tasklet)(unsigned long data); |
82 | void (*timer_fn)(unsigned long data); | 82 | void (*timer_fn)(unsigned long data); |
83 | int (*self_test)(struct ioatdma_device *device); | ||
83 | }; | 84 | }; |
84 | 85 | ||
85 | struct ioat_chan_common { | 86 | struct ioat_chan_common { |
@@ -313,6 +314,7 @@ static inline void ioat_unmap(struct pci_dev *pdev, dma_addr_t addr, size_t len, | |||
313 | int __devinit ioat_probe(struct ioatdma_device *device); | 314 | int __devinit ioat_probe(struct ioatdma_device *device); |
314 | int __devinit ioat_register(struct ioatdma_device *device); | 315 | int __devinit ioat_register(struct ioatdma_device *device); |
315 | int __devinit ioat1_dma_probe(struct ioatdma_device *dev, int dca); | 316 | int __devinit ioat1_dma_probe(struct ioatdma_device *dev, int dca); |
317 | int __devinit ioat_dma_self_test(struct ioatdma_device *device); | ||
316 | void __devexit ioat_dma_remove(struct ioatdma_device *device); | 318 | void __devexit ioat_dma_remove(struct ioatdma_device *device); |
317 | struct dca_provider * __devinit ioat_dca_init(struct pci_dev *pdev, | 319 | struct dca_provider * __devinit ioat_dca_init(struct pci_dev *pdev, |
318 | void __iomem *iobase); | 320 | void __iomem *iobase); |