[PATCH v8 4/9] of/iommu: Support dma-can-stall property
Jean-Philippe Brucker
jean-philippe at linaro.org
Thu Nov 12 07:55:16 EST 2020
Copy the dma-can-stall property into the fwspec structure.
Signed-off-by: Jean-Philippe Brucker <jean-philippe at linaro.org>
---
include/linux/iommu.h | 2 ++
drivers/iommu/of_iommu.c | 5 ++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index a1c78c4cdeb1..9076fb592c8f 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -572,6 +572,7 @@ struct iommu_group *fsl_mc_device_group(struct device *dev);
* @iommu_fwnode: firmware handle for this device's IOMMU
* @iommu_priv: IOMMU driver private data for this device
* @num_pasid_bits: number of PASID bits supported by this device
+ * @can_stall: the device is allowed to stall
* @num_ids: number of associated device IDs
* @ids: IDs which this device may present to the IOMMU
*/
@@ -579,6 +580,7 @@ struct iommu_fwspec {
const struct iommu_ops *ops;
struct fwnode_handle *iommu_fwnode;
u32 num_pasid_bits;
+ bool can_stall;
unsigned int num_ids;
u32 ids[];
};
diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
index e505b9130a1c..d6255ca823d8 100644
--- a/drivers/iommu/of_iommu.c
+++ b/drivers/iommu/of_iommu.c
@@ -212,9 +212,12 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
err = of_iommu_configure_device(master_np, dev, id);
fwspec = dev_iommu_fwspec_get(dev);
- if (!err && fwspec)
+ if (!err && fwspec) {
of_property_read_u32(master_np, "pasid-num-bits",
&fwspec->num_pasid_bits);
+ fwspec->can_stall = of_property_read_bool(master_np,
+ "dma-can-stall");
+ }
}
/*
--
2.29.1
More information about the linux-arm-kernel
mailing list