Thread (28 messages) 28 messages, 3 authors, 2021-08-03

Re: [PATCH v2 10/11] memory: mtk-smi: mt8195: Add initial setting for smi-common

From: Yong Wu <yong.wu@mediatek.com>
Date: 2021-07-22 06:38:50
Also in: linux-arm-kernel, linux-iommu, linux-mediatek, lkml

On Wed, 2021-07-21 at 20:54 +0800, Ikjoon Jang wrote:
On Thu, Jul 15, 2021 at 8:25 PM Yong Wu [off-list ref] wrote:
quoted
To improve the performance, add initial setting for smi-common.
some register use some fix setting(suggested from DE).

Signed-off-by: Yong Wu <yong.wu@mediatek.com>
---
 drivers/memory/mtk-smi.c | 42 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 38 insertions(+), 4 deletions(-)
[...]
quoted
 static const struct mtk_smi_common_plat mtk_smi_sub_common_mt8195 = {
@@ -530,15 +558,21 @@ static int mtk_smi_common_remove(struct platform_device *pdev)
 static int __maybe_unused mtk_smi_common_resume(struct device *dev)
 {
        struct mtk_smi *common = dev_get_drvdata(dev);
-       u32 bus_sel = common->plat->bus_sel;
-       int ret;
+       const struct mtk_smi_reg_pair *init = common->plat->init;
+       u32 bus_sel = common->plat->bus_sel; /* default is 0 */
+       int ret, i;

        ret = clk_bulk_prepare_enable(common->clk_num, common->clks);
        if (ret)
                return ret;

-       if (common->plat->type == MTK_SMI_GEN2 && bus_sel)
-               writel(bus_sel, common->base + SMI_BUS_SEL);
+       if (common->plat->type != MTK_SMI_GEN2)
+               return 0;
+
+       for (i = 0; i < SMI_COMMON_INIT_REGS_NR && init && init[i].offset; i++)
+               writel_relaxed(init[i].value, common->base + init[i].offset);
I'm not sure this array for register settings could be applied to other
platforms in future or only applied to mt8195. If it's only for mt8195,
The other platforms have the nearly same setting.
I think taking callback function instead of mtk_smi_reg_pair[] as init member
would be better:

if (common->plat->init)
    common->plat->init(...);
quoted
+
+       writel(bus_sel, common->base + SMI_BUS_SEL);
        return 0;
 }

--
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help