diff options
author | Maciej Sosnowski <maciej.sosnowski@intel.com> | 2008-07-22 20:30:57 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-07-22 20:30:57 -0400 |
commit | 7f1b358a236ee9c19657a619ac6f2dcabcaa0924 (patch) | |
tree | 04eade38d4f8da94d7051f51875ed500b49b4756 /include | |
parent | 16a37acaaf4aaa631ba3f83710ed6cdb1a597520 (diff) |
I/OAT: I/OAT version 3.0 support
This patch adds to ioatdma and dca modules
support for Intel I/OAT DMA engine ver.3 (aka CB3 device).
The main features of I/OAT ver.3 are:
* 8 single channel DMA devices (8 channels total)
* 8 DCA providers, each can accept 2 requesters
* 8-bit TAG values and 32-bit extended APIC IDs
Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/dca.h | 7 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/dca.h b/include/linux/dca.h index af61cd1f37e9..b00a753eda53 100644 --- a/include/linux/dca.h +++ b/include/linux/dca.h | |||
@@ -10,6 +10,7 @@ void dca_unregister_notify(struct notifier_block *nb); | |||
10 | #define DCA_PROVIDER_REMOVE 0x0002 | 10 | #define DCA_PROVIDER_REMOVE 0x0002 |
11 | 11 | ||
12 | struct dca_provider { | 12 | struct dca_provider { |
13 | struct list_head node; | ||
13 | struct dca_ops *ops; | 14 | struct dca_ops *ops; |
14 | struct device *cd; | 15 | struct device *cd; |
15 | int id; | 16 | int id; |
@@ -18,7 +19,9 @@ struct dca_provider { | |||
18 | struct dca_ops { | 19 | struct dca_ops { |
19 | int (*add_requester) (struct dca_provider *, struct device *); | 20 | int (*add_requester) (struct dca_provider *, struct device *); |
20 | int (*remove_requester) (struct dca_provider *, struct device *); | 21 | int (*remove_requester) (struct dca_provider *, struct device *); |
21 | u8 (*get_tag) (struct dca_provider *, int cpu); | 22 | u8 (*get_tag) (struct dca_provider *, struct device *, |
23 | int cpu); | ||
24 | int (*dev_managed) (struct dca_provider *, struct device *); | ||
22 | }; | 25 | }; |
23 | 26 | ||
24 | struct dca_provider *alloc_dca_provider(struct dca_ops *ops, int priv_size); | 27 | struct dca_provider *alloc_dca_provider(struct dca_ops *ops, int priv_size); |
@@ -32,9 +35,11 @@ static inline void *dca_priv(struct dca_provider *dca) | |||
32 | } | 35 | } |
33 | 36 | ||
34 | /* Requester API */ | 37 | /* Requester API */ |
38 | #define DCA_GET_TAG_TWO_ARGS | ||
35 | int dca_add_requester(struct device *dev); | 39 | int dca_add_requester(struct device *dev); |
36 | int dca_remove_requester(struct device *dev); | 40 | int dca_remove_requester(struct device *dev); |
37 | u8 dca_get_tag(int cpu); | 41 | u8 dca_get_tag(int cpu); |
42 | u8 dca3_get_tag(struct device *dev, int cpu); | ||
38 | 43 | ||
39 | /* internal stuff */ | 44 | /* internal stuff */ |
40 | int __init dca_sysfs_init(void); | 45 | int __init dca_sysfs_init(void); |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 9b940e644179..06a5b7ae79be 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2363,6 +2363,14 @@ | |||
2363 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 | 2363 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 |
2364 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 | 2364 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 |
2365 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 | 2365 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 |
2366 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 | ||
2367 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a | ||
2368 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b | ||
2369 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c | ||
2370 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 | ||
2371 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 | ||
2372 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 | ||
2373 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG3 0x3433 | ||
2366 | #define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 | 2374 | #define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 |
2367 | #define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 | 2375 | #define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 |
2368 | #define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580 | 2376 | #define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580 |