aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2015-08-26 17:16:27 -0400
committerVinod Koul <vinod.koul@intel.com>2015-08-28 00:36:06 -0400
commitab98193dace971f4742eebb5103212e23bb392f5 (patch)
treefcaf7254d3ea50ffc243810c31d6c9f8fafadc74
parent6ef41cf6f721573d286a06ca35a9f1e370637d51 (diff)
dmaengine: ioatdma: add Broadwell EP ioatdma PCI dev IDs
Adding the Broadwell Xeon ioatdma PCI device IDs and related bits. This is still IOATDMA 3.2 based hw. Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r--drivers/dma/ioat/hw.h11
-rw-r--r--drivers/dma/ioat/init.c32
2 files changed, 42 insertions, 1 deletions
diff --git a/drivers/dma/ioat/hw.h b/drivers/dma/ioat/hw.h
index ec64aced5655..690e3b4f8202 100644
--- a/drivers/dma/ioat/hw.h
+++ b/drivers/dma/ioat/hw.h
@@ -53,6 +53,17 @@
53#define PCI_DEVICE_ID_INTEL_IOAT_BDXDE2 0x6f52 53#define PCI_DEVICE_ID_INTEL_IOAT_BDXDE2 0x6f52
54#define PCI_DEVICE_ID_INTEL_IOAT_BDXDE3 0x6f53 54#define PCI_DEVICE_ID_INTEL_IOAT_BDXDE3 0x6f53
55 55
56#define PCI_DEVICE_ID_INTEL_IOAT_BDX0 0x6f20
57#define PCI_DEVICE_ID_INTEL_IOAT_BDX1 0x6f21
58#define PCI_DEVICE_ID_INTEL_IOAT_BDX2 0x6f22
59#define PCI_DEVICE_ID_INTEL_IOAT_BDX3 0x6f23
60#define PCI_DEVICE_ID_INTEL_IOAT_BDX4 0x6f24
61#define PCI_DEVICE_ID_INTEL_IOAT_BDX5 0x6f25
62#define PCI_DEVICE_ID_INTEL_IOAT_BDX6 0x6f26
63#define PCI_DEVICE_ID_INTEL_IOAT_BDX7 0x6f27
64#define PCI_DEVICE_ID_INTEL_IOAT_BDX8 0x6f2e
65#define PCI_DEVICE_ID_INTEL_IOAT_BDX9 0x6f2f
66
56#define IOAT_VER_1_2 0x12 /* Version 1.2 */ 67#define IOAT_VER_1_2 0x12 /* Version 1.2 */
57#define IOAT_VER_2_0 0x20 /* Version 2.0 */ 68#define IOAT_VER_2_0 0x20 /* Version 2.0 */
58#define IOAT_VER_3_0 0x30 /* Version 3.0 */ 69#define IOAT_VER_3_0 0x30 /* Version 3.0 */
diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/init.c
index 60a7c3211e0d..1c3c9b0abf4e 100644
--- a/drivers/dma/ioat/init.c
+++ b/drivers/dma/ioat/init.c
@@ -93,6 +93,17 @@ static struct pci_device_id ioat_pci_tbl[] = {
93 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_HSW8) }, 93 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_HSW8) },
94 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_HSW9) }, 94 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_HSW9) },
95 95
96 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX0) },
97 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX1) },
98 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX2) },
99 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX3) },
100 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX4) },
101 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX5) },
102 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX6) },
103 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX7) },
104 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX8) },
105 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BDX9) },
106
96 /* I/OAT v3.3 platforms */ 107 /* I/OAT v3.3 platforms */
97 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD0) }, 108 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD0) },
98 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD1) }, 109 { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_IOAT_BWD1) },
@@ -219,10 +230,29 @@ static bool is_hsw_ioat(struct pci_dev *pdev)
219 230
220} 231}
221 232
233static bool is_bdx_ioat(struct pci_dev *pdev)
234{
235 switch (pdev->device) {
236 case PCI_DEVICE_ID_INTEL_IOAT_BDX0:
237 case PCI_DEVICE_ID_INTEL_IOAT_BDX1:
238 case PCI_DEVICE_ID_INTEL_IOAT_BDX2:
239 case PCI_DEVICE_ID_INTEL_IOAT_BDX3:
240 case PCI_DEVICE_ID_INTEL_IOAT_BDX4:
241 case PCI_DEVICE_ID_INTEL_IOAT_BDX5:
242 case PCI_DEVICE_ID_INTEL_IOAT_BDX6:
243 case PCI_DEVICE_ID_INTEL_IOAT_BDX7:
244 case PCI_DEVICE_ID_INTEL_IOAT_BDX8:
245 case PCI_DEVICE_ID_INTEL_IOAT_BDX9:
246 return true;
247 default:
248 return false;
249 }
250}
251
222static bool is_xeon_cb32(struct pci_dev *pdev) 252static bool is_xeon_cb32(struct pci_dev *pdev)
223{ 253{
224 return is_jf_ioat(pdev) || is_snb_ioat(pdev) || is_ivb_ioat(pdev) || 254 return is_jf_ioat(pdev) || is_snb_ioat(pdev) || is_ivb_ioat(pdev) ||
225 is_hsw_ioat(pdev); 255 is_hsw_ioat(pdev) || is_bdx_ioat(pdev);
226} 256}
227 257
228bool is_bwd_ioat(struct pci_dev *pdev) 258bool is_bwd_ioat(struct pci_dev *pdev)