On Tue, Jun 18, 2013 at 5:46 PM, Jon Mason <jon.mason@xxxxxxxxx> wrote:So is there no way to reserve a channel as private if no one is using it? It seems the current setup is async_tx or nothing.Set the DMA_PRIVATE dma_transaction_type in the capability mask. ThisDMA_PRIVATE here keeps all channels private, so they couldn't be used
enables the ability to get an exclusive ioatdma DMA channel for any
devices that requests one via the dma_request_channel function call.
Signed-off-by: Jon Mason <jon.mason@xxxxxxxxx>
Acked-by: Dave Jiang <dave.jiang@xxxxxxxxx>
---
drivers/dma/ioat/dma_v3.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
index ca6ea9b..ac2aeef 100644
--- a/drivers/dma/ioat/dma_v3.c
+++ b/drivers/dma/ioat/dma_v3.c
@@ -1883,6 +1883,7 @@ int ioat3_dma_probe(struct ioatdma_device *device, int dca)
dma->copy_align = 6;
dma_cap_set(DMA_INTERRUPT, dma->cap_mask);
+ dma_cap_set(DMA_PRIVATE, dma->cap_mask);
dma->device_prep_dma_interrupt = ioat3_prep_interrupt_lock;
elsewhere, for example raid offload. Do you need a private allocation
or can you get away with a dynamically assigned channel?