Message ID | 20210410091128.31823-5-yong.wu@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Clean up "mediatek,larb" | expand |
On 10/04/2021 11:11, Yong Wu wrote: > Normally, If the smi-larb HW need work, we should enable the smi-common > HW power and clock firstly. > This patch adds device-link between the smi-larb dev and the smi-common > dev. then If pm_runtime_get_sync(smi-larb-dev), the pm_runtime_get_sync > (smi-common-dev) will be called automatically. > > Also, Add DL_FLAG_STATELESS to avoid the smi-common clocks be gated when > probe. > > CC: Matthias Brugger <matthias.bgg@gmail.com> > Suggested-by: Tomasz Figa <tfiga@chromium.org> > Signed-off-by: Yong Wu <yong.wu@mediatek.com> > --- > drivers/memory/mtk-smi.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) I understood this is a dependency for other patches, so: Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> If I am wrong and I can take it via memory tree, let me know. Best regards, Krzysztof
On Sat, 2021-04-10 at 14:40 +0200, Krzysztof Kozlowski wrote: > On 10/04/2021 11:11, Yong Wu wrote: > > Normally, If the smi-larb HW need work, we should enable the smi-common > > HW power and clock firstly. > > This patch adds device-link between the smi-larb dev and the smi-common > > dev. then If pm_runtime_get_sync(smi-larb-dev), the pm_runtime_get_sync > > (smi-common-dev) will be called automatically. > > > > Also, Add DL_FLAG_STATELESS to avoid the smi-common clocks be gated when > > probe. > > > > CC: Matthias Brugger <matthias.bgg@gmail.com> > > Suggested-by: Tomasz Figa <tfiga@chromium.org> > > Signed-off-by: Yong Wu <yong.wu@mediatek.com> > > --- > > drivers/memory/mtk-smi.c | 19 ++++++++++--------- > > 1 file changed, 10 insertions(+), 9 deletions(-) > > I understood this is a dependency for other patches, so: > Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > > If I am wrong and I can take it via memory tree, let me know. Hi Krzysztof, Thanks very much for your quickly review. I think it is ok if it go through memory tree. In the original patch, we pm_runtime_get(smi-common-dev) in the smi-larb's pm resume callback. This patch only use device-link do this. thus, this patch have no function change. it only adjusts the SMI internal code flow. In addition, [14/16] expects your Acked-by. and that one should be merged with the others. About the others patches, I'm not sure which tree they should go through. they cross several trees, dt-binding/iommu/media/drm/dts. Not sure if Matthias could have time to review and give some suggestion. > > Best regards, > Krzysztof > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek
On 13/04/2021 08:04, Yong Wu wrote: > On Sat, 2021-04-10 at 14:40 +0200, Krzysztof Kozlowski wrote: >> On 10/04/2021 11:11, Yong Wu wrote: >>> Normally, If the smi-larb HW need work, we should enable the smi-common >>> HW power and clock firstly. >>> This patch adds device-link between the smi-larb dev and the smi-common >>> dev. then If pm_runtime_get_sync(smi-larb-dev), the pm_runtime_get_sync >>> (smi-common-dev) will be called automatically. >>> >>> Also, Add DL_FLAG_STATELESS to avoid the smi-common clocks be gated when >>> probe. >>> >>> CC: Matthias Brugger <matthias.bgg@gmail.com> >>> Suggested-by: Tomasz Figa <tfiga@chromium.org> >>> Signed-off-by: Yong Wu <yong.wu@mediatek.com> >>> --- >>> drivers/memory/mtk-smi.c | 19 ++++++++++--------- >>> 1 file changed, 10 insertions(+), 9 deletions(-) >> >> I understood this is a dependency for other patches, so: >> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >> >> If I am wrong and I can take it via memory tree, let me know. > > Hi Krzysztof, > > Thanks very much for your quickly review. > > I think it is ok if it go through memory tree. In the original patch, we > pm_runtime_get(smi-common-dev) in the smi-larb's pm resume callback. > This patch only use device-link do this. thus, this patch have no > function change. it only adjusts the SMI internal code flow. Hm, okay, I took it then for v5.13. > > In addition, [14/16] expects your Acked-by. and that one should be > merged with the others. Thanks for reminder. Best regards, Krzysztof
diff --git a/drivers/memory/mtk-smi.c b/drivers/memory/mtk-smi.c index b396253fcf4b..c5fb51f73b34 100644 --- a/drivers/memory/mtk-smi.c +++ b/drivers/memory/mtk-smi.c @@ -319,6 +319,7 @@ 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; + struct device_link *link; larb = devm_kzalloc(dev, sizeof(*larb), GFP_KERNEL); if (!larb) @@ -358,6 +359,12 @@ static int mtk_smi_larb_probe(struct platform_device *pdev) if (!platform_get_drvdata(smi_pdev)) return -EPROBE_DEFER; larb->smi_common_dev = &smi_pdev->dev; + link = device_link_add(dev, larb->smi_common_dev, + DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS); + if (!link) { + dev_err(dev, "Unable to link smi-common dev\n"); + return -ENODEV; + } } else { dev_err(dev, "Failed to get the smi_common device\n"); return -EINVAL; @@ -370,6 +377,9 @@ static int mtk_smi_larb_probe(struct platform_device *pdev) static int mtk_smi_larb_remove(struct platform_device *pdev) { + struct mtk_smi_larb *larb = platform_get_drvdata(pdev); + + device_link_remove(&pdev->dev, larb->smi_common_dev); pm_runtime_disable(&pdev->dev); component_del(&pdev->dev, &mtk_smi_larb_component_ops); return 0; @@ -381,17 +391,9 @@ static int __maybe_unused mtk_smi_larb_resume(struct device *dev) const struct mtk_smi_larb_gen *larb_gen = larb->larb_gen; int ret; - /* Power on smi-common. */ - ret = pm_runtime_resume_and_get(larb->smi_common_dev); - if (ret < 0) { - dev_err(dev, "Failed to pm get for smi-common(%d).\n", ret); - return ret; - } - ret = mtk_smi_clk_enable(&larb->smi); if (ret < 0) { dev_err(dev, "Failed to enable clock(%d).\n", ret); - pm_runtime_put_sync(larb->smi_common_dev); return ret; } @@ -406,7 +408,6 @@ static int __maybe_unused mtk_smi_larb_suspend(struct device *dev) struct mtk_smi_larb *larb = dev_get_drvdata(dev); mtk_smi_clk_disable(&larb->smi); - pm_runtime_put_sync(larb->smi_common_dev); return 0; }
Normally, If the smi-larb HW need work, we should enable the smi-common HW power and clock firstly. This patch adds device-link between the smi-larb dev and the smi-common dev. then If pm_runtime_get_sync(smi-larb-dev), the pm_runtime_get_sync (smi-common-dev) will be called automatically. Also, Add DL_FLAG_STATELESS to avoid the smi-common clocks be gated when probe. CC: Matthias Brugger <matthias.bgg@gmail.com> Suggested-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Yong Wu <yong.wu@mediatek.com> --- drivers/memory/mtk-smi.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)