Skip to content

Commit 5896017

Browse files
committed
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 <[email protected]> Reviewed-by: Jerry Snitselaar <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 2263d81 commit 5896017

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

drivers/iommu/mtk_iommu.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ struct mtk_iommu_data {
6262
struct iommu_device iommu;
6363
const struct mtk_iommu_plat_data *plat_data;
6464

65+
struct dma_iommu_mapping *mapping; /* For mtk_iommu_v1.c */
66+
6567
struct list_head list;
6668
struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
6769
};

drivers/iommu/mtk_iommu_v1.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ static int mtk_iommu_attach_device(struct iommu_domain *domain,
269269
int ret;
270270

271271
/* Only allow the domain created internally. */
272-
mtk_mapping = data->dev->archdata.iommu;
272+
mtk_mapping = data->mapping;
273273
if (mtk_mapping->domain != domain)
274274
return 0;
275275

@@ -369,7 +369,6 @@ static int mtk_iommu_create_mapping(struct device *dev,
369369
struct mtk_iommu_data *data;
370370
struct platform_device *m4updev;
371371
struct dma_iommu_mapping *mtk_mapping;
372-
struct device *m4udev;
373372
int ret;
374373

375374
if (args->args_count != 1) {
@@ -401,16 +400,15 @@ static int mtk_iommu_create_mapping(struct device *dev,
401400
return ret;
402401

403402
data = dev_iommu_priv_get(dev);
404-
m4udev = data->dev;
405-
mtk_mapping = m4udev->archdata.iommu;
403+
mtk_mapping = data->mapping;
406404
if (!mtk_mapping) {
407405
/* MTK iommu support 4GB iova address space. */
408406
mtk_mapping = arm_iommu_create_mapping(&platform_bus_type,
409407
0, 1ULL << 32);
410408
if (IS_ERR(mtk_mapping))
411409
return PTR_ERR(mtk_mapping);
412410

413-
m4udev->archdata.iommu = mtk_mapping;
411+
data->mapping = mtk_mapping;
414412
}
415413

416414
return 0;
@@ -459,7 +457,7 @@ static void mtk_iommu_probe_finalize(struct device *dev)
459457
int err;
460458

461459
data = dev_iommu_priv_get(dev);
462-
mtk_mapping = data->dev->archdata.iommu;
460+
mtk_mapping = data->mapping;
463461

464462
err = arm_iommu_attach_device(dev, mtk_mapping);
465463
if (err)

0 commit comments

Comments
 (0)