summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-11-19 17:10:25 -0700
committerDan Williams <dan.j.williams@intel.com>2009-11-19 23:21:03 -0700
commit4499a24dec00e037da7d09caccad45e7594a9c19 (patch)
treed336eb5f67a2873bcd7e43ef64d5d149283e7e0f
parentb57014def9afc2bd8a62299d2f51b77dad5ae0c7 (diff)
downloadlinux-stable-4499a24dec00e037da7d09caccad45e7594a9c19.tar.gz
linux-stable-4499a24dec00e037da7d09caccad45e7594a9c19.tar.bz2
linux-stable-4499a24dec00e037da7d09caccad45e7594a9c19.zip
dmaengine: include xor/pq validate in device_has_all_tx_types()
A channel must include these capabilities to satisfy ASYNC_TX_DISABLE_CHANNEL_SWITCH. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--drivers/dma/dmaengine.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
index bd0b248de2cf..b6442f09d0fe 100644
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -632,11 +632,15 @@ 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;
+ if (!dma_has_cap(DMA_XOR_VAL, device->cap_mask))
+ return false;
#endif
#if defined(CONFIG_ASYNC_PQ) || defined(CONFIG_ASYNC_PQ_MODULE)
if (!dma_has_cap(DMA_PQ, device->cap_mask))
return false;
+ if (!dma_has_cap(DMA_PQ_VAL, device->cap_mask))
+ return false;
#endif
return true;