Commit db44bd51 authored by Wei Huang's avatar Wei Huang Committed by Joerg Roedel
Browse files

iommu/amd: Add support for enabling/disabling IOMMU features



Add support for struct iommu_ops.dev_{enable/disable}_feat. Please note
that the empty feature switches will be populated by subsequent patches.

Signed-off-by: default avatarWei Huang <wei.huang2@amd.com>
Co-developed-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: default avatarVasant Hegde <vasant.hegde@amd.com>
Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20240418103400.6229-4-vasant.hegde@amd.com


Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent c5ebd096
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -2791,6 +2791,32 @@ static const struct iommu_dirty_ops amd_dirty_ops = {
	.read_and_clear_dirty = amd_iommu_read_and_clear_dirty,
};

static int amd_iommu_dev_enable_feature(struct device *dev,
					enum iommu_dev_features feat)
{
	int ret;

	switch (feat) {
	default:
		ret = -EINVAL;
		break;
	}
	return ret;
}

static int amd_iommu_dev_disable_feature(struct device *dev,
					 enum iommu_dev_features feat)
{
	int ret;

	switch (feat) {
	default:
		ret = -EINVAL;
		break;
	}
	return ret;
}

const struct iommu_ops amd_iommu_ops = {
	.capable = amd_iommu_capable,
	.domain_alloc = amd_iommu_domain_alloc,
@@ -2803,6 +2829,8 @@ const struct iommu_ops amd_iommu_ops = {
	.is_attach_deferred = amd_iommu_is_attach_deferred,
	.pgsize_bitmap	= AMD_IOMMU_PGSIZES,
	.def_domain_type = amd_iommu_def_domain_type,
	.dev_enable_feat = amd_iommu_dev_enable_feature,
	.dev_disable_feat = amd_iommu_dev_disable_feature,
	.default_domain_ops = &(const struct iommu_domain_ops) {
		.attach_dev	= amd_iommu_attach_device,
		.map_pages	= amd_iommu_map_pages,