diff options
Diffstat (limited to 'drivers/dma/ioat/init.c')
-rw-r--r-- | drivers/dma/ioat/init.c | 11 |
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 | ||
255 | static inline bool is_skx_ioat(struct pci_dev *pdev) | ||
256 | { | ||
257 | return (pdev->device == PCI_DEVICE_ID_INTEL_IOAT_SKX) ? true : false; | ||
258 | } | ||
259 | |||
253 | static bool is_xeon_cb32(struct pci_dev *pdev) | 260 | static 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 | ||
259 | bool is_bwd_ioat(struct pci_dev *pdev) | 266 | bool 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) |