iommu/mediatek: Do no use dev->archdata.iommu
The iommu private pointer is already used in the Mediatek IOMMU v1 driver, so move the dma_iommu_mapping pointer into 'struct mtk_iommu_data' and do not use dev->archdata.iommu anymore. Signed-off-by: Joerg Roedel <jroedel@suse.de> Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com> Link: https://lore.kernel.org/r/20200625130836.1916-9-joro@8bytes.org
This commit is contained in:
Родитель
2263d818bc
Коммит
589601720d
|
@ -62,6 +62,8 @@ struct mtk_iommu_data {
|
|||
struct iommu_device iommu;
|
||||
const struct mtk_iommu_plat_data *plat_data;
|
||||
|
||||
struct dma_iommu_mapping *mapping; /* For mtk_iommu_v1.c */
|
||||
|
||||
struct list_head list;
|
||||
struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
|
||||
};
|
||||
|
|
|
@ -269,7 +269,7 @@ static int mtk_iommu_attach_device(struct iommu_domain *domain,
|
|||
int ret;
|
||||
|
||||
/* Only allow the domain created internally. */
|
||||
mtk_mapping = data->dev->archdata.iommu;
|
||||
mtk_mapping = data->mapping;
|
||||
if (mtk_mapping->domain != domain)
|
||||
return 0;
|
||||
|
||||
|
@ -369,7 +369,6 @@ static int mtk_iommu_create_mapping(struct device *dev,
|
|||
struct mtk_iommu_data *data;
|
||||
struct platform_device *m4updev;
|
||||
struct dma_iommu_mapping *mtk_mapping;
|
||||
struct device *m4udev;
|
||||
int ret;
|
||||
|
||||
if (args->args_count != 1) {
|
||||
|
@ -401,8 +400,7 @@ static int mtk_iommu_create_mapping(struct device *dev,
|
|||
return ret;
|
||||
|
||||
data = dev_iommu_priv_get(dev);
|
||||
m4udev = data->dev;
|
||||
mtk_mapping = m4udev->archdata.iommu;
|
||||
mtk_mapping = data->mapping;
|
||||
if (!mtk_mapping) {
|
||||
/* MTK iommu support 4GB iova address space. */
|
||||
mtk_mapping = arm_iommu_create_mapping(&platform_bus_type,
|
||||
|
@ -410,7 +408,7 @@ static int mtk_iommu_create_mapping(struct device *dev,
|
|||
if (IS_ERR(mtk_mapping))
|
||||
return PTR_ERR(mtk_mapping);
|
||||
|
||||
m4udev->archdata.iommu = mtk_mapping;
|
||||
data->mapping = mtk_mapping;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -459,7 +457,7 @@ static void mtk_iommu_probe_finalize(struct device *dev)
|
|||
int err;
|
||||
|
||||
data = dev_iommu_priv_get(dev);
|
||||
mtk_mapping = data->dev->archdata.iommu;
|
||||
mtk_mapping = data->mapping;
|
||||
|
||||
err = arm_iommu_attach_device(dev, mtk_mapping);
|
||||
if (err)
|
||||
|
|
Загрузка…
Ссылка в новой задаче