dmaengine: ioatdma: workaround SKX ioatdma version
authorDave Jiang <dave.jiang@intel.com>
Tue, 13 Dec 2016 18:15:27 +0000 (11:15 -0700)
committerVinod Koul <vinod.koul@intel.com>
Mon, 2 Jan 2017 02:42:59 +0000 (08:12 +0530)
The Skylake ioatdma is technically CBDMA 3.2+ and contains the same hardware
bits with some additional 3.3 features, but it's not really 3.3 where the
driver is concerned.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/ioat/init.c

index 51b2b643ba711b803b4761988cc0d9a2312963e5..ace5cb2cb12f67b83f7a520abf702d9b5f3a9117 100644 (file)
@@ -1364,6 +1364,8 @@ static int ioat_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 
        device->version = readb(device->reg_base + IOAT_VER_OFFSET);
        if (device->version >= IOAT_VER_3_0) {
+               if (is_skx_ioat(pdev))
+                       device->version = IOAT_VER_3_2;
                err = ioat3_dma_probe(device, ioat_dca_enabled);
 
                if (device->version >= IOAT_VER_3_3)