From 821bc6a37da7ad0ce1d5ae95e503a1967d2b6780 Mon Sep 17 00:00:00 2001 From: Dave Jiang Date: Wed, 10 Apr 2013 16:44:32 -0700 Subject: [PATCH] --- yaml --- r: 374655 b: refs/heads/master c: d302398da99956a329c467f195b50d5aaf38fb75 h: refs/heads/master i: 374653: ce4621d39ef4e2bf6f6bc787c337dfdbb68b9c74 374651: 12f1876f3cf62adbf575a4a60ab2e785ffa74dea 374647: 46c77792758fccea225fe78308f612a5277e7437 374639: 4191b5e3cd07dffc7442dc40da713c077c50e859 374623: 60e542418a79c17640dbe1f7d7848e84fcbb2e08 374591: be7ce91d2d72969b95d85099989076c7f5499c53 374527: b49bcd960e347de504db912afa22862cab53e789 v: v3 --- [refs] | 2 +- trunk/drivers/dma/ioat/dma_v3.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 4d2e023e68f2..c273fdd60591 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7727eaa4490b7244934fe31f05e7329f30715267 +refs/heads/master: d302398da99956a329c467f195b50d5aaf38fb75 diff --git a/trunk/drivers/dma/ioat/dma_v3.c b/trunk/drivers/dma/ioat/dma_v3.c index 71e113dfc8cc..b00b000f238b 100644 --- a/trunk/drivers/dma/ioat/dma_v3.c +++ b/trunk/drivers/dma/ioat/dma_v3.c @@ -238,6 +238,18 @@ static bool is_bwd_ioat(struct pci_dev *pdev) } } +static bool is_bwd_noraid(struct pci_dev *pdev) +{ + switch (pdev->device) { + case PCI_DEVICE_ID_INTEL_IOAT_BWD2: + case PCI_DEVICE_ID_INTEL_IOAT_BWD3: + return true; + default: + return false; + } + +} + static void pq16_set_src(struct ioat_raw_descriptor *desc[3], dma_addr_t addr, u32 offset, u8 coef, int idx) { @@ -1808,6 +1820,9 @@ int ioat3_dma_probe(struct ioatdma_device *device, int dca) cap = readl(device->reg_base + IOAT_DMA_CAP_OFFSET); + if (is_bwd_noraid(pdev)) + cap &= ~(IOAT_CAP_XOR | IOAT_CAP_PQ | IOAT_CAP_RAID16SS); + /* dca is incompatible with raid operations */ if (dca_en && (cap & (IOAT_CAP_XOR|IOAT_CAP_PQ))) cap &= ~(IOAT_CAP_XOR|IOAT_CAP_PQ);