aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioat/dma.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma/ioat/dma.h')
-rw-r--r--drivers/dma/ioat/dma.h23
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h
index 6e27ddb1e98a..1226e35f2709 100644
--- a/drivers/dma/ioat/dma.h
+++ b/drivers/dma/ioat/dma.h
@@ -61,6 +61,8 @@
61 * @version: version of ioatdma device 61 * @version: version of ioatdma device
62 * @msix_entries: irq handlers 62 * @msix_entries: irq handlers
63 * @idx: per channel data 63 * @idx: per channel data
64 * @dca: direct cache access context
65 * @intr_quirk: interrupt setup quirk (for ioat_v1 devices)
64 */ 66 */
65 67
66struct ioatdma_device { 68struct ioatdma_device {
@@ -73,6 +75,8 @@ struct ioatdma_device {
73 struct delayed_work work; 75 struct delayed_work work;
74 struct msix_entry msix_entries[4]; 76 struct msix_entry msix_entries[4];
75 struct ioat_dma_chan *idx[4]; 77 struct ioat_dma_chan *idx[4];
78 struct dca_provider *dca;
79 void (*intr_quirk)(struct ioatdma_device *device);
76}; 80};
77 81
78/** 82/**
@@ -136,25 +140,16 @@ struct ioat_desc_sw {
136 struct dma_async_tx_descriptor txd; 140 struct dma_async_tx_descriptor txd;
137}; 141};
138 142
139static inline void ioat_set_tcp_copy_break(struct ioatdma_device *dev) 143static inline void ioat_set_tcp_copy_break(unsigned long copybreak)
140{ 144{
141 #ifdef CONFIG_NET_DMA 145 #ifdef CONFIG_NET_DMA
142 switch (dev->version) { 146 sysctl_tcp_dma_copybreak = copybreak;
143 case IOAT_VER_1_2:
144 sysctl_tcp_dma_copybreak = 4096;
145 break;
146 case IOAT_VER_2_0:
147 sysctl_tcp_dma_copybreak = 2048;
148 break;
149 case IOAT_VER_3_0:
150 sysctl_tcp_dma_copybreak = 262144;
151 break;
152 }
153 #endif 147 #endif
154} 148}
155 149
156struct ioatdma_device *ioat_dma_probe(struct pci_dev *pdev, 150int ioat1_dma_probe(struct ioatdma_device *dev, int dca);
157 void __iomem *iobase); 151int ioat2_dma_probe(struct ioatdma_device *dev, int dca);
152int ioat3_dma_probe(struct ioatdma_device *dev, int dca);
158void ioat_dma_remove(struct ioatdma_device *device); 153void ioat_dma_remove(struct ioatdma_device *device);
159struct dca_provider *ioat_dca_init(struct pci_dev *pdev, void __iomem *iobase); 154struct dca_provider *ioat_dca_init(struct pci_dev *pdev, void __iomem *iobase);
160struct dca_provider *ioat2_dca_init(struct pci_dev *pdev, void __iomem *iobase); 155struct dca_provider *ioat2_dca_init(struct pci_dev *pdev, void __iomem *iobase);