aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma/ioat/init.c')
-rw-r--r--drivers/dma/ioat/init.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/init.c
index 4ef0c5e07912..abb75ebd65ea 100644
--- a/drivers/dma/ioat/init.c
+++ b/drivers/dma/ioat/init.c
@@ -105,6 +105,8 @@ static struct pci_device_id ioat_pci_tbl[] = {
105 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX8) }, 105 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX8) },
106 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX9) }, 106 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX9) },
107 107
108 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_SKX) },
109
108 /* I/OAT v3.3 platforms */ 110 /* I/OAT v3.3 platforms */
109 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD0) }, 111 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD0) },
110 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD1) }, 112 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD1) },
@@ -250,10 +252,15 @@ static bool is_bdx_ioat(struct pci_dev *pdev)
250 } 252 }
251} 253}
252 254
255static inline bool is_skx_ioat(struct pci_dev *pdev)
256{
257 return (pdev->device == PCI_DEVICE_ID_INTEL_IOAT_SKX) ? true : false;
258}
259
253static bool is_xeon_cb32(struct pci_dev *pdev) 260static bool is_xeon_cb32(struct pci_dev *pdev)
254{ 261{
255 return is_jf_ioat(pdev) || is_snb_ioat(pdev) || is_ivb_ioat(pdev) || 262 return is_jf_ioat(pdev) || is_snb_ioat(pdev) || is_ivb_ioat(pdev) ||
256 is_hsw_ioat(pdev) || is_bdx_ioat(pdev); 263 is_hsw_ioat(pdev) || is_bdx_ioat(pdev) || is_skx_ioat(pdev);
257} 264}
258 265
259bool is_bwd_ioat(struct pci_dev *pdev) 266bool is_bwd_ioat(struct pci_dev *pdev)
@@ -1350,6 +1357,8 @@ static int ioat_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
1350 1357
1351 device->version = readb(device->reg_base + IOAT_VER_OFFSET); 1358 device->version = readb(device->reg_base + IOAT_VER_OFFSET);
1352 if (device->version >= IOAT_VER_3_0) { 1359 if (device->version >= IOAT_VER_3_0) {
1360 if (is_skx_ioat(pdev))
1361 device->version = IOAT_VER_3_2;
1353 err = ioat3_dma_probe(device, ioat_dca_enabled); 1362 err = ioat3_dma_probe(device, ioat_dca_enabled);
1354 1363
1355 if (device->version >= IOAT_VER_3_3) 1364 if (device->version >= IOAT_VER_3_3)