diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2008-12-03 11:00:17 -0500 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2009-01-03 08:11:56 -0500 |
commit | 26961efe0dab9ca73f8fc3b6137b814252e04972 (patch) | |
tree | 583ac900610279c4103aac5b1112cc9052d3855e /arch/x86/kernel/amd_iommu.c | |
parent | 645c4c8d7289a718c9c828ec217f2b94e3b3e6ff (diff) |
AMD IOMMU: register functions for the IOMMU API
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch/x86/kernel/amd_iommu.c')
-rw-r--r-- | arch/x86/kernel/amd_iommu.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index b599e80051fc..d9b651c01186 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c | |||
@@ -41,6 +41,10 @@ static DEFINE_RWLOCK(amd_iommu_devtable_lock); | |||
41 | static LIST_HEAD(iommu_pd_list); | 41 | static LIST_HEAD(iommu_pd_list); |
42 | static DEFINE_SPINLOCK(iommu_pd_list_lock); | 42 | static DEFINE_SPINLOCK(iommu_pd_list_lock); |
43 | 43 | ||
44 | #ifdef CONFIG_IOMMU_API | ||
45 | static struct iommu_ops amd_iommu_ops; | ||
46 | #endif | ||
47 | |||
44 | /* | 48 | /* |
45 | * general struct to manage commands send to an IOMMU | 49 | * general struct to manage commands send to an IOMMU |
46 | */ | 50 | */ |
@@ -1593,6 +1597,10 @@ int __init amd_iommu_init_dma_ops(void) | |||
1593 | /* Make the driver finally visible to the drivers */ | 1597 | /* Make the driver finally visible to the drivers */ |
1594 | dma_ops = &amd_iommu_dma_ops; | 1598 | dma_ops = &amd_iommu_dma_ops; |
1595 | 1599 | ||
1600 | #ifdef CONFIG_IOMMU_API | ||
1601 | register_iommu(&amd_iommu_ops); | ||
1602 | #endif | ||
1603 | |||
1596 | bus_register_notifier(&pci_bus_type, &device_nb); | 1604 | bus_register_notifier(&pci_bus_type, &device_nb); |
1597 | 1605 | ||
1598 | return 0; | 1606 | return 0; |
@@ -1819,4 +1827,14 @@ static phys_addr_t amd_iommu_iova_to_phys(struct iommu_domain *dom, | |||
1819 | return paddr; | 1827 | return paddr; |
1820 | } | 1828 | } |
1821 | 1829 | ||
1830 | static struct iommu_ops amd_iommu_ops = { | ||
1831 | .domain_init = amd_iommu_domain_init, | ||
1832 | .domain_destroy = amd_iommu_domain_destroy, | ||
1833 | .attach_dev = amd_iommu_attach_device, | ||
1834 | .detach_dev = amd_iommu_detach_device, | ||
1835 | .map = amd_iommu_map_range, | ||
1836 | .unmap = amd_iommu_unmap_range, | ||
1837 | .iova_to_phys = amd_iommu_iova_to_phys, | ||
1838 | }; | ||
1839 | |||
1822 | #endif | 1840 | #endif |