[PATCH v6 00/33] MT8192 IOMMU support
Tomasz Figa
tfiga at chromium.org
Fri Jan 29 06:27:56 EST 2021
Hi Yong,
On Mon, Jan 11, 2021 at 07:18:41PM +0800, Yong Wu wrote:
> This patch mainly adds support for mt8192 Multimedia IOMMU and SMI.
>
> mt8192 also is MTK IOMMU gen2 which uses ARM Short-Descriptor translation
> table format. The M4U-SMI HW diagram is as below:
>
> EMI
> |
> M4U
> |
> ------------
> SMI Common
> ------------
> |
> +-------+------+------+----------------------+-------+
> | | | | ...... | |
> | | | | | |
> larb0 larb1 larb2 larb4 ...... larb19 larb20
> disp0 disp1 mdp vdec IPE IPE
>
> All the connections are HW fixed, SW can NOT adjust it.
>
> Comparing with the preview SoC, this patchset mainly adds two new functions:
> a) add iova 34 bits support.
> b) add multi domains support since several HW has the special iova
> region requirement.
>
> change note:
> v6:a) base on v5.11-rc1. and tlb v4:
> https://lore.kernel.org/linux-mediatek/20210107122909.16317-1-yong.wu@mediatek.com/T/#t
> b) Remove the "domain id" definition in the binding header file.
> Get the domain from dev->dma_range_map.
> After this, Change many codes flow.
> c) the patchset adds a new common file(mtk_smi-larb-port.h).
> This version changes that name into mtk-memory-port.h which reflect
> its file path. This only changes the file name. no other change.
> thus I keep all the Reviewed-by Tags.
> (another reason is that we will add some iommu ports unrelated with
> smi-larb)
> d) Refactor the power-domain flow suggestted by Tomasz.
> e) Some other small fix. use different oas for different soc; Change the
> macro for 34bit iova tlb flush.
>
Thanks for the fixes.
I still think the concept of dma-ranges is not quire right for the
problem we need to solve here, but it certainly works for the time being
and it's possible to remove it in a follow up patch, so I'm fine with
merging this as is.
Reviewed-by: Tomasz Figa <tfiga at chromium.org>
I'll comment on my suggestion for a replacement for the dma-ranges that
doesn't need hardcoding arbitrary address ranges in DT in a separate
reply.
Best regards,
Tomasz
More information about the linux-arm-kernel
mailing list