diff options
| -rw-r--r-- | drivers/dma/ioat_dma.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c index b3759c4b6536..879f4a06e3ca 100644 --- a/drivers/dma/ioat_dma.c +++ b/drivers/dma/ioat_dma.c @@ -189,11 +189,13 @@ static int ioat_dma_enumerate_channels(struct ioatdma_device *device)  		ioat_chan->xfercap = xfercap;  		ioat_chan->desccount = 0;  		INIT_DELAYED_WORK(&ioat_chan->work, ioat_dma_chan_reset_part2); -		if (ioat_chan->device->version != IOAT_VER_1_2) { -			writel(IOAT_DCACTRL_CMPL_WRITE_ENABLE -					| IOAT_DMA_DCA_ANY_CPU, -				ioat_chan->reg_base + IOAT_DCACTRL_OFFSET); -		} +		if (ioat_chan->device->version == IOAT_VER_2_0) +			writel(IOAT_DCACTRL_CMPL_WRITE_ENABLE | +			       IOAT_DMA_DCA_ANY_CPU, +			       ioat_chan->reg_base + IOAT_DCACTRL_OFFSET); +		else if (ioat_chan->device->version == IOAT_VER_3_0) +			writel(IOAT_DMA_DCA_ANY_CPU, +			       ioat_chan->reg_base + IOAT_DCACTRL_OFFSET);  		spin_lock_init(&ioat_chan->cleanup_lock);  		spin_lock_init(&ioat_chan->desc_lock);  		INIT_LIST_HEAD(&ioat_chan->free_desc);  | 
