aboutsummaryrefslogtreecommitdiff
path: root/drivers/dma/dmaengine.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-11-30 13:53:53 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2009-11-30 13:53:53 -0800
commitf50733450362182fd16d658751615635850a8bff (patch)
treef6eb22b1e51b2b29f4f528dc7d05dd6f07f3788b /drivers/dma/dmaengine.c
parent50b767d0baee51be5b11703cdb2a5202f5b67582 (diff)
parent56adf7e8127d601b172e180b44551ce83404348f (diff)
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: shdma: fix initialization error handling ioat3: fix pq completion versus channel deallocation race async_tx: build-time toggling of async_{syndrome,xor}_val dma support dmaengine: include xor/pq validate in device_has_all_tx_types() ioat2,3: report all uncorrectable errors ioat3: specify valid address for disabled-Q or disabled-P ioat2,3: disable asynchronous error notifications ioat3: dca and raid operations are incompatible ioat: silence "dca disabled" messages
Diffstat (limited to 'drivers/dma/dmaengine.c')
-rw-r--r--drivers/dma/dmaengine.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index bd0b248de2c..8f99354082c 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -632,11 +632,21 @@ static bool device_has_all_tx_types(struct dma_device *device)
#if defined(CONFIG_ASYNC_XOR) || defined(CONFIG_ASYNC_XOR_MODULE)
if (!dma_has_cap(DMA_XOR, device->cap_mask))
return false;
+
+ #ifndef CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA
+ if (!dma_has_cap(DMA_XOR_VAL, device->cap_mask))
+ return false;
+ #endif
#endif
#if defined(CONFIG_ASYNC_PQ) || defined(CONFIG_ASYNC_PQ_MODULE)
if (!dma_has_cap(DMA_PQ, device->cap_mask))
return false;
+
+ #ifndef CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA
+ if (!dma_has_cap(DMA_PQ_VAL, device->cap_mask))
+ return false;
+ #endif
#endif
return true;