summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinod Koul <vkoul@kernel.org>2018-08-17 15:28:07 +0300
committerVinod Koul <vkoul@kernel.org>2018-08-17 15:28:07 +0300
commit2cc50b9f92dc55a0f8c379a48893d8afde33628b (patch)
tree32066be78c446291979f74fefb5a2f54f18e8385
parentd3df935e35f5be0cf2647e281bda60214c92dc79 (diff)
parent4cb0e60112168594da2ac8a7752b0250c4387733 (diff)
downloadlinux-2cc50b9f92dc55a0f8c379a48893d8afde33628b.tar.xz
Merge branch 'topic/ioat' into for-linus
-rw-r--r--drivers/dma/ioat/dma.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c
index 8b5b23a8ace9..23fb2fa04000 100644
--- a/drivers/dma/ioat/dma.c
+++ b/drivers/dma/ioat/dma.c
@@ -688,6 +688,12 @@ static void ioat_restart_channel(struct ioatdma_chan *ioat_chan)
{
u64 phys_complete;
+ /* set the completion address register again */
+ writel(lower_32_bits(ioat_chan->completion_dma),
+ ioat_chan->reg_base + IOAT_CHANCMP_OFFSET_LOW);
+ writel(upper_32_bits(ioat_chan->completion_dma),
+ ioat_chan->reg_base + IOAT_CHANCMP_OFFSET_HIGH);
+
ioat_quiesce(ioat_chan, 0);
if (ioat_cleanup_preamble(ioat_chan, &phys_complete))
__cleanup(ioat_chan, phys_complete);