memory: mtk-smi: Get rid of need_larbid
authorYong Wu <yong.wu@mediatek.com>
Sat, 24 Aug 2019 03:02:07 +0000 (11:02 +0800)
committerJoerg Roedel <jroedel@suse.de>
Fri, 30 Aug 2019 13:57:27 +0000 (15:57 +0200)
The "mediatek,larb-id" has already been parsed in MTK IOMMU driver.
It's no need to parse it again in SMI driver. Only clean some codes.
This patch is fit for all the current mt2701, mt2712, mt7623, mt8173
and mt8183.

After this patch, the "mediatek,larb-id" only be needed for mt2712
which have 2 M4Us. In the other SoCs, we can get the larb-id from M4U
in which the larbs in the "mediatek,larbs" always are ordered.

Correspondingly, the larb_nr in the "struct mtk_smi_iommu" could also
be deleted.

CC: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Reviewed-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/mtk_iommu.c
drivers/iommu/mtk_iommu_v1.c
drivers/memory/mtk-smi.c
include/soc/mediatek/smi.h

index 5d5341c85650127348ba243b150f07eeddebd8fa..cc81de27c5fe4b2f06e43a704276240cd4bb7e04 100644 (file)
@@ -656,7 +656,6 @@ static int mtk_iommu_probe(struct platform_device *pdev)
                                             "mediatek,larbs", NULL);
        if (larb_nr < 0)
                return larb_nr;
-       data->smi_imu.larb_nr = larb_nr;
 
        for (i = 0; i < larb_nr; i++) {
                struct device_node *larbnode;
index abeeac488372c8e5735f8838deb0ed7f5eef0eca..3922358d13bf44e4f20835e22b81b276e6332176 100644 (file)
@@ -616,8 +616,6 @@ static int mtk_iommu_probe(struct platform_device *pdev)
                larb_nr++;
        }
 
-       data->smi_imu.larb_nr = larb_nr;
-
        platform_set_drvdata(pdev, data);
 
        ret = mtk_iommu_hw_init(data);
index 289e59543a04d892e5eb08e7bfc575f6881a57a0..d6dc62fd89fee942bf52a744ab96aeac000d773f 100644 (file)
@@ -59,7 +59,6 @@ struct mtk_smi_common_plat {
 };
 
 struct mtk_smi_larb_gen {
-       bool need_larbid;
        int port_in_larb[MTK_LARB_NR_MAX + 1];
        void (*config_port)(struct device *);
        unsigned int                    larb_direct_to_common_mask;
@@ -147,18 +146,9 @@ mtk_smi_larb_bind(struct device *dev, struct device *master, void *data)
        struct mtk_smi_iommu *smi_iommu = data;
        unsigned int         i;
 
-       if (larb->larb_gen->need_larbid) {
-               larb->mmu = &smi_iommu->larb_imu[larb->larbid].mmu;
-               return 0;
-       }
-
-       /*
-        * If there is no larbid property, Loop to find the corresponding
-        * iommu information.
-        */
-       for (i = 0; i < smi_iommu->larb_nr; i++) {
+       for (i = 0; i < MTK_LARB_NR_MAX; i++) {
                if (dev == smi_iommu->larb_imu[i].dev) {
-                       /* The 'mmu' may be updated in iommu-attach/detach. */
+                       larb->larbid = i;
                        larb->mmu = &smi_iommu->larb_imu[i].mmu;
                        return 0;
                }
@@ -237,7 +227,6 @@ static const struct mtk_smi_larb_gen mtk_smi_larb_mt8173 = {
 };
 
 static const struct mtk_smi_larb_gen mtk_smi_larb_mt2701 = {
-       .need_larbid = true,
        .port_in_larb = {
                LARB0_PORT_OFFSET, LARB1_PORT_OFFSET,
                LARB2_PORT_OFFSET, LARB3_PORT_OFFSET
@@ -246,7 +235,6 @@ static const struct mtk_smi_larb_gen mtk_smi_larb_mt2701 = {
 };
 
 static const struct mtk_smi_larb_gen mtk_smi_larb_mt2712 = {
-       .need_larbid = true,
        .config_port                = mtk_smi_larb_config_port_gen2_general,
        .larb_direct_to_common_mask = BIT(8) | BIT(9),      /* bdpsys */
 };
@@ -285,7 +273,6 @@ static int mtk_smi_larb_probe(struct platform_device *pdev)
        struct device *dev = &pdev->dev;
        struct device_node *smi_node;
        struct platform_device *smi_pdev;
-       int err;
 
        larb = devm_kzalloc(dev, sizeof(*larb), GFP_KERNEL);
        if (!larb)
@@ -315,15 +302,6 @@ static int mtk_smi_larb_probe(struct platform_device *pdev)
        }
        larb->smi.dev = dev;
 
-       if (larb->larb_gen->need_larbid) {
-               err = of_property_read_u32(dev->of_node, "mediatek,larb-id",
-                                          &larb->larbid);
-               if (err) {
-                       dev_err(dev, "missing larbid property\n");
-                       return err;
-               }
-       }
-
        smi_node = of_parse_phandle(dev->of_node, "mediatek,smi", 0);
        if (!smi_node)
                return -EINVAL;
index 79b74ced9d9132ae032cc8768d2cd8fbc67a6f05..6f0b00cc73ea97b059d47d4bf9b09b5269976b3c 100644 (file)
@@ -21,7 +21,6 @@ struct mtk_smi_larb_iommu {
 };
 
 struct mtk_smi_iommu {
-       unsigned int larb_nr;
        struct mtk_smi_larb_iommu larb_imu[MTK_LARB_NR_MAX];
 };