iommu/mediatek: Clean up struct mtk_smi_iommu

Remove the "struct mtk_smi_iommu" to simplify the code since it has only
one item in it right now.

Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
Yong Wu 2019-08-24 11:02:08 +08:00 committed by Joerg Roedel
parent ec2da07ca1
commit 1ee9feb2c9
5 changed files with 10 additions and 14 deletions

View File

@ -278,7 +278,7 @@ static void mtk_iommu_config(struct mtk_iommu_data *data,
for (i = 0; i < fwspec->num_ids; ++i) { for (i = 0; i < fwspec->num_ids; ++i) {
larbid = MTK_M4U_TO_LARB(fwspec->ids[i]); larbid = MTK_M4U_TO_LARB(fwspec->ids[i]);
portid = MTK_M4U_TO_PORT(fwspec->ids[i]); portid = MTK_M4U_TO_PORT(fwspec->ids[i]);
larb_mmu = &data->smi_imu.larb_imu[larbid]; larb_mmu = &data->larb_imu[larbid];
dev_dbg(dev, "%s iommu port: %d\n", dev_dbg(dev, "%s iommu port: %d\n",
enable ? "enable" : "disable", portid); enable ? "enable" : "disable", portid);
@ -680,7 +680,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
of_node_put(larbnode); of_node_put(larbnode);
return -EPROBE_DEFER; return -EPROBE_DEFER;
} }
data->smi_imu.larb_imu[id].dev = &plarbdev->dev; data->larb_imu[id].dev = &plarbdev->dev;
component_match_add_release(dev, &match, release_of, component_match_add_release(dev, &match, release_of,
compare_of, larbnode); compare_of, larbnode);

View File

@ -56,7 +56,6 @@ struct mtk_iommu_data {
struct mtk_iommu_suspend_reg reg; struct mtk_iommu_suspend_reg reg;
struct mtk_iommu_domain *m4u_dom; struct mtk_iommu_domain *m4u_dom;
struct iommu_group *m4u_group; struct iommu_group *m4u_group;
struct mtk_smi_iommu smi_imu; /* SMI larb iommu info */
bool enable_4GB; bool enable_4GB;
bool tlb_flush_active; bool tlb_flush_active;
@ -64,6 +63,7 @@ struct mtk_iommu_data {
const struct mtk_iommu_plat_data *plat_data; const struct mtk_iommu_plat_data *plat_data;
struct list_head list; struct list_head list;
struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
}; };
static inline int compare_of(struct device *dev, void *data) static inline int compare_of(struct device *dev, void *data)
@ -80,14 +80,14 @@ static inline int mtk_iommu_bind(struct device *dev)
{ {
struct mtk_iommu_data *data = dev_get_drvdata(dev); struct mtk_iommu_data *data = dev_get_drvdata(dev);
return component_bind_all(dev, &data->smi_imu); return component_bind_all(dev, &data->larb_imu);
} }
static inline void mtk_iommu_unbind(struct device *dev) static inline void mtk_iommu_unbind(struct device *dev)
{ {
struct mtk_iommu_data *data = dev_get_drvdata(dev); struct mtk_iommu_data *data = dev_get_drvdata(dev);
component_unbind_all(dev, &data->smi_imu); component_unbind_all(dev, &data->larb_imu);
} }
#endif #endif

View File

@ -206,7 +206,7 @@ static void mtk_iommu_config(struct mtk_iommu_data *data,
for (i = 0; i < fwspec->num_ids; ++i) { for (i = 0; i < fwspec->num_ids; ++i) {
larbid = mt2701_m4u_to_larb(fwspec->ids[i]); larbid = mt2701_m4u_to_larb(fwspec->ids[i]);
portid = mt2701_m4u_to_port(fwspec->ids[i]); portid = mt2701_m4u_to_port(fwspec->ids[i]);
larb_mmu = &data->smi_imu.larb_imu[larbid]; larb_mmu = &data->larb_imu[larbid];
dev_dbg(dev, "%s iommu port: %d\n", dev_dbg(dev, "%s iommu port: %d\n",
enable ? "enable" : "disable", portid); enable ? "enable" : "disable", portid);
@ -610,7 +610,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
} }
} }
data->smi_imu.larb_imu[larb_nr].dev = &plarbdev->dev; data->larb_imu[larb_nr].dev = &plarbdev->dev;
component_match_add_release(dev, &match, release_of, component_match_add_release(dev, &match, release_of,
compare_of, larb_spec.np); compare_of, larb_spec.np);
larb_nr++; larb_nr++;

View File

@ -143,13 +143,13 @@ static int
mtk_smi_larb_bind(struct device *dev, struct device *master, void *data) mtk_smi_larb_bind(struct device *dev, struct device *master, void *data)
{ {
struct mtk_smi_larb *larb = dev_get_drvdata(dev); struct mtk_smi_larb *larb = dev_get_drvdata(dev);
struct mtk_smi_iommu *smi_iommu = data; struct mtk_smi_larb_iommu *larb_mmu = data;
unsigned int i; unsigned int i;
for (i = 0; i < MTK_LARB_NR_MAX; i++) { for (i = 0; i < MTK_LARB_NR_MAX; i++) {
if (dev == smi_iommu->larb_imu[i].dev) { if (dev == larb_mmu[i].dev) {
larb->larbid = i; larb->larbid = i;
larb->mmu = &smi_iommu->larb_imu[i].mmu; larb->mmu = &larb_mmu[i].mmu;
return 0; return 0;
} }
} }

View File

@ -20,10 +20,6 @@ struct mtk_smi_larb_iommu {
unsigned int mmu; unsigned int mmu;
}; };
struct mtk_smi_iommu {
struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
};
/* /*
* mtk_smi_larb_get: Enable the power domain and clocks for this local arbiter. * mtk_smi_larb_get: Enable the power domain and clocks for this local arbiter.
* It also initialize some basic setting(like iommu). * It also initialize some basic setting(like iommu).