Re: [PATCH v2 16/29] iommu/mediatek: Adjust device link when it is sub-common
On Tue, 2021-08-24 at 15:35 +0800, Hsin-Yi Wang wrote: > On Fri, Aug 13, 2021 at 3:03 PM Yong Wu wrote: > > > > For MM IOMMU, We always add device link between smi-common and > > IOMMU HW. > > In mt8195, we add smi-sub-common. Thus, if the node is sub-common, > > we still > > need find again to get smi-common, then do device link. > > > > Signed-off-by: Yong Wu > > --- > > drivers/iommu/mtk_iommu.c | 11 +++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c > > index a4479916ad33..a72241724adb 100644 > > --- a/drivers/iommu/mtk_iommu.c > > +++ b/drivers/iommu/mtk_iommu.c > > @@ -845,6 +845,17 @@ static int mtk_iommu_mm_dts_parse(struct > > device *dev, > > if (!smicomm_node) > > return -EINVAL; > > > > + /* Find smi-common again if this is smi-sub-common */ > > + if (of_property_read_bool(smicomm_node, > > "mediatek,smi_sub_common")) { > > + of_node_put(smicomm_node); /* put the sub common */ > > + > > + smicomm_node = of_parse_phandle(smicomm_node, > > "mediatek,smi", 0); > > This only checks 1 level here, and does not check if the mediatek,smi > of a sub-common node is not another sub-common node. > So maybe add a check that the updated node here doesn't have > mediatek,smi_sub_common property. Yes. Currently there are only 2 levels. we could confirm if it is sub- common from if it has "mediatek,smi", then "mediatek,smi_sub_common" is unnecessary. Will fix in the next version. > > > + if (!smicomm_node) { > > + dev_err(dev, "sub-comm has no common.\n"); > > + return -EINVAL; > > + } > > + } > > + > > plarbdev = of_find_device_by_node(smicomm_node); > > of_node_put(smicomm_node); > > data->smicomm_dev = >dev; > > -- > > 2.18.0 > > ___ > > Linux-mediatek mailing list > > linux-media...@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-mediatek ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v2 11/29] iommu/mediatek: Always pm_runtime_get while tlb flush
On Tue, 2021-08-24 at 15:10 +0800, Hsin-Yi Wang wrote: > On Fri, Aug 13, 2021 at 2:57 PM Yong Wu wrote: > > > > Prepare for 2 HWs that sharing pgtable in different power-domains. > > > > The previous SoC don't have PM. Only mt8192 has power-domain, > > and it is display's power-domain which nearly always is enabled. > > > > When there are 2 M4U HWs, it may has problem. > > In this function, we get the pm_status via the m4u dev, but it > > don't > > reflect the real power-domain status of the HW since there may be > > other > > HW also use that power-domain. > > > > Currently we could not get the real power-domain status, thus > > always > > pm_runtime_get here. > > > > Prepare for mt8195, thus, no need fix tags here. > > > > This patch may drop the performance, we expect the user could > > pm_runtime_get_sync before dma_alloc_attrs which need tlb ops. > > Can you check if there are existing users that need to add this > change? The issue may exist in our most users. Our users mainly are in v4l2. normally their flow like this: a) VIDIOC_REQBUFS: call dma_alloc_attrs or dma_buf_map_attachment. b) VIDIOC_STREAMON. c) VIDIOC_QBUF: device_run: pm_runtime_get_sync. Requesting they call pm_runtime_get before dma_alloc_attrs looks not reasonable. It seems that they should not care about this. This patch mainly make sure the flow is right. Locally I have a TODO to try get the real power-domain status here, the sample code like below: static struct notifier_block mtk_penpd_notifier; /* Register the genpd notifier. */ mtk_penpd_notifier.notifier_call = mtk_iommu_pd_callback; ret = dev_pm_genpd_add_notifier(dev, _penpd_notifier); /* Then get the real power domain status in the notifier */ static int mtk_iommu_pd_callback(struct notifier_block *nb, unsigned long flags, void *data) { if (flags == GENPD_NOTIFY_ON) /* the real power domain is power on */ else if (flags == GENPD_NOTIFY_PRE_OFF) /* the real power domain are going to power off. Take it as power off. * Skip the tlb ops after receivice this flag. */ } How about this? or any other suggestion to get the real power-domain rather than the iommu device's power domain status. Thanks. > > > > > > Signed-off-by: Yong Wu > > --- > > ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v7 00/12] Clean up "mediatek,larb"
Hi Matthias, Just ping for this patchset. Thanks. On Fri, 2021-07-30 at 10:52 +0800, Yong Wu wrote: > MediaTek IOMMU block diagram always like below: > > M4U > | > smi-common > | > - > | | ... > | | > larb1 larb2 > | | > vdec venc > > All the consumer connect with smi-larb, then connect with smi-common. > > When the consumer works, it should enable the smi-larb's power which > also > need enable the smi-common's power firstly. > > Thus, Firstly, use the device link connect the consumer and the > smi-larbs. then add device link between the smi-larb and smi-common. > > After adding the device_link, then "mediatek,larb" property can be > removed. > the iommu consumer don't need call the mtk_smi_larb_get/put to enable > the power and clock of smi-larb and smi-common. > > Base on v5.14-rc1, and a jpeg[1] and mdp[2] patchset. > > [1] > https://lore.kernel.org/linux-mediatek/20210702102304.3346429-1-hsi...@chromium.org/ > [2] > https://lore.kernel.org/linux-mediatek/20210709022324.1607884-1-ei...@chromium.org/ > > Change notes: > v7: 1) Fix a arm32 boot fail issue. reported from Frank. > 2) Add a return fail in the mtk drm. suggested by Dafna. ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v3 00/13] MT8195 SMI support
On Wed, 2021-08-18 at 22:41 +0200, Krzysztof Kozlowski wrote: > On 10/08/2021 10:08, Yong Wu wrote: > > This patchset mainly adds SMI support for mt8195. > > > > Comparing with the previous version, add two new functions: > > a) add smi sub common > > b) add initial setting for smi-common and smi-larb. > > > > Change note: > > v3:1) In the dt-binding: > >a. Change mediatek,smi type from phandle-array to phandle > > from Rob. > >b. Add a new bool property (mediatek,smi_sub_common) > > to indicate if this is smi-sub-common. > >2) Change the clock using bulk parting. > > keep the smi-common's has_gals flag. more strict. > >3) More comment about larb initial setting. > >4) Add a maintain patch > > The patchset looks good to me but I saw now comments from Rob, so I > expect a resend. Therefore there is also time for additional review - > maybe continued by Ikjoon Jang? > > If you sent a v4 with fixes rather soon and get ack from Rob, I could > still try to get it into next merge window. After this weekend I > won't > be taking patches for this cycle and it will wait for the merge > window > to finish. Hi Krzysztof, Thanks very much for your information. It looks the time is too short to get Rob's ack in this weekend. I will wait for one or two weeks to see if there is other comments, then resend. > > > Best regards, > Krzysztof ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu