diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2009-01-05 09:36:11 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-06 08:06:49 -0500 |
commit | c82e4417ace9a3a4dddf3332379c771c41040040 (patch) | |
tree | ef832180990c759624a2487bcf74aa30e4e362b2 /arch/ia64/kernel | |
parent | b4391dd11df6214ad4c11706a3a606926e86a6ce (diff) |
add dma_mapping_ops for SWIOTLB
There is already dma_mapping_ops for SWIOTLB but there are some
missing hooks.
This is for IA64_DIG_VTD, IA64_HP_ZX1_SWIOTLB, IA64_SGI_UV,
IA64_HP_SIM, IA64_XEN_GUEST and IA64_GENERIC.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r-- | arch/ia64/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/pci-dma.c | 3 | ||||
-rw-r--r-- | arch/ia64/kernel/pci-swiotlb.c | 9 |
3 files changed, 8 insertions, 6 deletions
diff --git a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile index c381ea95489..bc1f62a5cfd 100644 --- a/arch/ia64/kernel/Makefile +++ b/arch/ia64/kernel/Makefile | |||
@@ -43,9 +43,7 @@ ifneq ($(CONFIG_IA64_ESI),) | |||
43 | obj-y += esi_stub.o # must be in kernel proper | 43 | obj-y += esi_stub.o # must be in kernel proper |
44 | endif | 44 | endif |
45 | obj-$(CONFIG_DMAR) += pci-dma.o | 45 | obj-$(CONFIG_DMAR) += pci-dma.o |
46 | ifeq ($(CONFIG_DMAR), y) | ||
47 | obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o | 46 | obj-$(CONFIG_SWIOTLB) += pci-swiotlb.o |
48 | endif | ||
49 | 47 | ||
50 | # The gate DSO image is built using a special linker script. | 48 | # The gate DSO image is built using a special linker script. |
51 | targets += gate.so gate-syms.o | 49 | targets += gate.so gate-syms.o |
diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c index 2a92f637431..f8c38bd2c36 100644 --- a/arch/ia64/kernel/pci-dma.c +++ b/arch/ia64/kernel/pci-dma.c | |||
@@ -32,9 +32,6 @@ int force_iommu __read_mostly = 1; | |||
32 | int force_iommu __read_mostly; | 32 | int force_iommu __read_mostly; |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | /* Set this to 1 if there is a HW IOMMU in the system */ | ||
36 | int iommu_detected __read_mostly; | ||
37 | |||
38 | /* Dummy device used for NULL arguments (normally ISA). Better would | 35 | /* Dummy device used for NULL arguments (normally ISA). Better would |
39 | be probably a smaller DMA mask, but this is bug-to-bug compatible | 36 | be probably a smaller DMA mask, but this is bug-to-bug compatible |
40 | to i386. */ | 37 | to i386. */ |
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c index 16c50516dbc..b62fb932b99 100644 --- a/arch/ia64/kernel/pci-swiotlb.c +++ b/arch/ia64/kernel/pci-swiotlb.c | |||
@@ -13,12 +13,18 @@ | |||
13 | int swiotlb __read_mostly; | 13 | int swiotlb __read_mostly; |
14 | EXPORT_SYMBOL(swiotlb); | 14 | EXPORT_SYMBOL(swiotlb); |
15 | 15 | ||
16 | /* Set this to 1 if there is a HW IOMMU in the system */ | ||
17 | int iommu_detected __read_mostly; | ||
18 | |||
16 | struct dma_mapping_ops swiotlb_dma_ops = { | 19 | struct dma_mapping_ops swiotlb_dma_ops = { |
17 | .mapping_error = swiotlb_dma_mapping_error, | ||
18 | .alloc_coherent = swiotlb_alloc_coherent, | 20 | .alloc_coherent = swiotlb_alloc_coherent, |
19 | .free_coherent = swiotlb_free_coherent, | 21 | .free_coherent = swiotlb_free_coherent, |
20 | .map_single = swiotlb_map_single, | 22 | .map_single = swiotlb_map_single, |
21 | .unmap_single = swiotlb_unmap_single, | 23 | .unmap_single = swiotlb_unmap_single, |
24 | .map_single_attrs = swiotlb_map_single_attrs, | ||
25 | .unmap_single_attrs = swiotlb_unmap_single_attrs, | ||
26 | .map_sg_attrs = swiotlb_map_sg_attrs, | ||
27 | .unmap_sg_attrs = swiotlb_unmap_sg_attrs, | ||
22 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, | 28 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, |
23 | .sync_single_for_device = swiotlb_sync_single_for_device, | 29 | .sync_single_for_device = swiotlb_sync_single_for_device, |
24 | .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, | 30 | .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, |
@@ -28,6 +34,7 @@ struct dma_mapping_ops swiotlb_dma_ops = { | |||
28 | .map_sg = swiotlb_map_sg, | 34 | .map_sg = swiotlb_map_sg, |
29 | .unmap_sg = swiotlb_unmap_sg, | 35 | .unmap_sg = swiotlb_unmap_sg, |
30 | .dma_supported_op = swiotlb_dma_supported, | 36 | .dma_supported_op = swiotlb_dma_supported, |
37 | .mapping_error = swiotlb_dma_mapping_error, | ||
31 | }; | 38 | }; |
32 | 39 | ||
33 | void __init pci_swiotlb_init(void) | 40 | void __init pci_swiotlb_init(void) |