diff options
Diffstat (limited to 'drivers/dma/ioat/dma.h')
-rw-r--r-- | drivers/dma/ioat/dma.h | 23 |
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 | ||
66 | struct ioatdma_device { | 68 | struct 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 | ||
139 | static inline void ioat_set_tcp_copy_break(struct ioatdma_device *dev) | 143 | static 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 | ||
156 | struct ioatdma_device *ioat_dma_probe(struct pci_dev *pdev, | 150 | int ioat1_dma_probe(struct ioatdma_device *dev, int dca); |
157 | void __iomem *iobase); | 151 | int ioat2_dma_probe(struct ioatdma_device *dev, int dca); |
152 | int ioat3_dma_probe(struct ioatdma_device *dev, int dca); | ||
158 | void ioat_dma_remove(struct ioatdma_device *device); | 153 | void ioat_dma_remove(struct ioatdma_device *device); |
159 | struct dca_provider *ioat_dca_init(struct pci_dev *pdev, void __iomem *iobase); | 154 | struct dca_provider *ioat_dca_init(struct pci_dev *pdev, void __iomem *iobase); |
160 | struct dca_provider *ioat2_dca_init(struct pci_dev *pdev, void __iomem *iobase); | 155 | struct dca_provider *ioat2_dca_init(struct pci_dev *pdev, void __iomem *iobase); |