diff options
author | Vinod Koul <vkoul@kernel.org> | 2020-08-05 19:02:07 +0530 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2020-08-05 19:02:07 +0530 |
commit | 0b5ad7b9522e6172342511fac6114fd8b7eb622a (patch) | |
tree | b6a29560e6364bd98634564181cab54a3b6164a4 /drivers/dma/dmatest.c | |
parent | 87730ccbddcb48478b1b88e88b14e73424130764 (diff) | |
parent | 6bd0dffa1a6e19e73964ae47c964f57c625cce05 (diff) |
Merge branch 'for-linus' into fixes
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Conflicts:
drivers/dma/idxd/sysfs.c
Diffstat (limited to 'drivers/dma/dmatest.c')
-rw-r--r-- | drivers/dma/dmatest.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index 604f80357931..45d4d92e91db 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -829,7 +829,10 @@ static int dmatest_func(void *data) result("test timed out", total_tests, src->off, dst->off, len, 0); goto error_unmap_continue; - } else if (status != DMA_COMPLETE) { + } else if (status != DMA_COMPLETE && + !(dma_has_cap(DMA_COMPLETION_NO_ORDER, + dev->cap_mask) && + status == DMA_OUT_OF_ORDER)) { result(status == DMA_ERROR ? "completion error status" : "completion busy status", total_tests, src->off, @@ -1007,6 +1010,12 @@ static int dmatest_add_channel(struct dmatest_info *info, dtc->chan = chan; INIT_LIST_HEAD(&dtc->threads); + if (dma_has_cap(DMA_COMPLETION_NO_ORDER, dma_dev->cap_mask) && + info->params.polled) { + info->params.polled = false; + pr_warn("DMA_COMPLETION_NO_ORDER, polled disabled\n"); + } + if (dma_has_cap(DMA_MEMCPY, dma_dev->cap_mask)) { if (dmatest == 0) { cnt = dmatest_add_threads(info, dtc, DMA_MEMCPY); |