Skip to content

Commit

Permalink
iommu/tegra-gart: Add iommu_group support
Browse files Browse the repository at this point in the history
As the last step to making groups mandatory, clean up the remaining
drivers by adding basic support. Whilst it may not perfectly reflect the
isolation capabilities of the hardware, using generic_device_group()
should at least maintain existing behaviour with respect to the API.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
  • Loading branch information
rmurphy-arm authored and joergroedel committed Aug 9, 2017
1 parent d92e1f8 commit 15f9a31
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions drivers/iommu/tegra-gart.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,12 +334,31 @@ static bool gart_iommu_capable(enum iommu_cap cap)
return false;
}

static int gart_iommu_add_device(struct device *dev)
{
struct iommu_group *group = iommu_group_get_for_dev(dev);

if (IS_ERR(group))
return PTR_ERR(group);

iommu_group_put(group);
return 0;
}

static void gart_iommu_remove_device(struct device *dev)
{
iommu_group_remove_device(dev);
}

static const struct iommu_ops gart_iommu_ops = {
.capable = gart_iommu_capable,
.domain_alloc = gart_iommu_domain_alloc,
.domain_free = gart_iommu_domain_free,
.attach_dev = gart_iommu_attach_dev,
.detach_dev = gart_iommu_detach_dev,
.add_device = gart_iommu_add_device,
.remove_device = gart_iommu_remove_device,
.device_group = generic_device_group,
.map = gart_iommu_map,
.map_sg = default_iommu_map_sg,
.unmap = gart_iommu_unmap,
Expand Down

0 comments on commit 15f9a31

Please sign in to comment.