[v7,00/14] Adjust the dma-ranges for MTK IOMMU

Message ID 20230411093144.2690-1-yong.wu@mediatek.com
Headers
Series Adjust the dma-ranges for MTK IOMMU |

Message

Yong Wu April 11, 2023, 9:31 a.m. UTC
  After commit f1ad5338a4d5 ("of: Fix "dma-ranges" handling for bus
controllers"), the dma-ranges is not allowed for dts leaf node.
but we still would like to separate the different masters into
different iova regions. Thus we adjust the internal flow, separate
the 16GB iova range by the master HW larbid/portid and add the
dma-ranges property in the parent "soc" node. This also could avoid
the users forget/abuse the iova regions.

The commit f1ad5338a4d5 did affect the mt8195 venc, But it is not
a fatal issue, it could also work well at 0-4GB iova. thus I don't
add "Fixes:" tag.

In this series, I add functions for mt8192/mt8195/mt8186, mt8188 will
be in its special patchset. and the previous mt8173/mt8183...support
0-4GB only, no need this function.

Change note:
v7: Remove the change about mediatek,vcodec-subdev-decoder.yaml since
    this was merged at:
    https://lore.kernel.org/all/98c48690-631d-1086-9b7c-004c61cc8dbb@xs4all.nl/

v6: https://lore.kernel.org/linux-mediatek/20230403091337.26745-1-yong.wu@mediatek.com/
   Add three patches for set dma-mask for iommu master devices.

v5: Nothing change. Just rebase on v6.3-rc1.

v4: https://lore.kernel.org/linux-mediatek/20230215062544.8677-1-yong.wu@mediatek.com/
    Improve the comment in the code from AngeloGioacchino.

v3: https://lore.kernel.org/linux-mediatek/20230214031114.926-1-yong.wu@mediatek.com/
   Add a new patch only for comment more in the code.

v2: https://lore.kernel.org/linux-mediatek/20230208053643.28249-1-yong.wu@mediatek.com/
   a) Base on next-20230206 since mt8195 jpeg node is applied which affect
      this patch.
   b) Reword the commit message [1/10][2/10] to explain effect.

v1: https://lore.kernel.org/linux-mediatek/20230113060133.9394-1-yong.wu@mediatek.com/
   Base on v6.2-rc3.

Yong Wu (14):
  dt-bindings: media: mediatek,vcodec: Remove dma-ranges property
  dt-bindings: media: mediatek,jpeg: Remove dma-ranges property
  iommu/mediatek: Improve comment for the current region/bank
  iommu/mediatek: Get regionid from larb/port id
  iommu/mediatek: mt8192: Add iova_region_larb_msk
  iommu/mediatek: mt8195: Add iova_region_larb_msk
  iommu/mediatek: mt8186: Add iova_region_larb_msk
  iommu/mediatek: Add a gap for the iova regions
  iommu/mediatek: Set dma_mask for the master devices
  media: mtk-jpegdec: Remove the setting for dma_mask
  media: mediatek: vcodec: Remove the setting for dma_mask
  arm64: dts: mt8195: Remove the unnecessary dma-ranges
  arm64: dts: mt8195: Add dma-ranges for the parent "soc" node
  arm64: dts: mt8186: Add dma-ranges for the parent "soc" node

 .../media/mediatek,mt8195-jpegdec.yaml        |   7 -
 .../media/mediatek,mt8195-jpegenc.yaml        |   7 -
 .../media/mediatek,vcodec-decoder.yaml        |   5 -
 .../media/mediatek,vcodec-encoder.yaml        |   5 -
 .../bindings/media/mediatek-jpeg-encoder.yaml |   5 -
 arch/arm64/boot/dts/mediatek/mt8186.dtsi      |   1 +
 arch/arm64/boot/dts/mediatek/mt8195.dtsi      |   4 +-
 drivers/iommu/mtk_iommu.c                     | 145 ++++++++++++++----
 .../platform/mediatek/jpeg/mtk_jpeg_core.c    |   3 -
 .../mediatek/vcodec/mtk_vcodec_dec_drv.c      |   8 -
 .../mediatek/vcodec/mtk_vcodec_enc_drv.c      |   3 -
 11 files changed, 117 insertions(+), 76 deletions(-)
  

Comments

Hans Verkuil April 12, 2023, 2:35 p.m. UTC | #1
On 11/04/2023 11:31, Yong Wu wrote:
> After commit f1ad5338a4d5 ("of: Fix "dma-ranges" handling for bus
> controllers"), the dma-ranges is not allowed for dts leaf node.
> but we still would like to separate the different masters into
> different iova regions. Thus we adjust the internal flow, separate
> the 16GB iova range by the master HW larbid/portid and add the
> dma-ranges property in the parent "soc" node. This also could avoid
> the users forget/abuse the iova regions.
> 
> The commit f1ad5338a4d5 did affect the mt8195 venc, But it is not
> a fatal issue, it could also work well at 0-4GB iova. thus I don't
> add "Fixes:" tag.
> 
> In this series, I add functions for mt8192/mt8195/mt8186, mt8188 will
> be in its special patchset. and the previous mt8173/mt8183...support
> 0-4GB only, no need this function.

I've Acked patches 10 and 11 as well. I assume this series will be merged
through the iommu subsystem? If not, and I need to take the media patches,
then please let me know!

Regards,

	Hans

> 
> Change note:
> v7: Remove the change about mediatek,vcodec-subdev-decoder.yaml since
>     this was merged at:
>     https://lore.kernel.org/all/98c48690-631d-1086-9b7c-004c61cc8dbb@xs4all.nl/
> 
> v6: https://lore.kernel.org/linux-mediatek/20230403091337.26745-1-yong.wu@mediatek.com/
>    Add three patches for set dma-mask for iommu master devices.
> 
> v5: Nothing change. Just rebase on v6.3-rc1.
> 
> v4: https://lore.kernel.org/linux-mediatek/20230215062544.8677-1-yong.wu@mediatek.com/
>     Improve the comment in the code from AngeloGioacchino.
> 
> v3: https://lore.kernel.org/linux-mediatek/20230214031114.926-1-yong.wu@mediatek.com/
>    Add a new patch only for comment more in the code.
> 
> v2: https://lore.kernel.org/linux-mediatek/20230208053643.28249-1-yong.wu@mediatek.com/
>    a) Base on next-20230206 since mt8195 jpeg node is applied which affect
>       this patch.
>    b) Reword the commit message [1/10][2/10] to explain effect.
> 
> v1: https://lore.kernel.org/linux-mediatek/20230113060133.9394-1-yong.wu@mediatek.com/
>    Base on v6.2-rc3.
> 
> Yong Wu (14):
>   dt-bindings: media: mediatek,vcodec: Remove dma-ranges property
>   dt-bindings: media: mediatek,jpeg: Remove dma-ranges property
>   iommu/mediatek: Improve comment for the current region/bank
>   iommu/mediatek: Get regionid from larb/port id
>   iommu/mediatek: mt8192: Add iova_region_larb_msk
>   iommu/mediatek: mt8195: Add iova_region_larb_msk
>   iommu/mediatek: mt8186: Add iova_region_larb_msk
>   iommu/mediatek: Add a gap for the iova regions
>   iommu/mediatek: Set dma_mask for the master devices
>   media: mtk-jpegdec: Remove the setting for dma_mask
>   media: mediatek: vcodec: Remove the setting for dma_mask
>   arm64: dts: mt8195: Remove the unnecessary dma-ranges
>   arm64: dts: mt8195: Add dma-ranges for the parent "soc" node
>   arm64: dts: mt8186: Add dma-ranges for the parent "soc" node
> 
>  .../media/mediatek,mt8195-jpegdec.yaml        |   7 -
>  .../media/mediatek,mt8195-jpegenc.yaml        |   7 -
>  .../media/mediatek,vcodec-decoder.yaml        |   5 -
>  .../media/mediatek,vcodec-encoder.yaml        |   5 -
>  .../bindings/media/mediatek-jpeg-encoder.yaml |   5 -
>  arch/arm64/boot/dts/mediatek/mt8186.dtsi      |   1 +
>  arch/arm64/boot/dts/mediatek/mt8195.dtsi      |   4 +-
>  drivers/iommu/mtk_iommu.c                     | 145 ++++++++++++++----
>  .../platform/mediatek/jpeg/mtk_jpeg_core.c    |   3 -
>  .../mediatek/vcodec/mtk_vcodec_dec_drv.c      |   8 -
>  .../mediatek/vcodec/mtk_vcodec_enc_drv.c      |   3 -
>  11 files changed, 117 insertions(+), 76 deletions(-)
>
  
Joerg Roedel April 13, 2023, 9:59 a.m. UTC | #2
On Tue, Apr 11, 2023 at 05:31:30PM +0800, Yong Wu wrote:
> Yong Wu (14):
>   dt-bindings: media: mediatek,vcodec: Remove dma-ranges property
>   dt-bindings: media: mediatek,jpeg: Remove dma-ranges property
>   iommu/mediatek: Improve comment for the current region/bank
>   iommu/mediatek: Get regionid from larb/port id
>   iommu/mediatek: mt8192: Add iova_region_larb_msk
>   iommu/mediatek: mt8195: Add iova_region_larb_msk
>   iommu/mediatek: mt8186: Add iova_region_larb_msk
>   iommu/mediatek: Add a gap for the iova regions
>   iommu/mediatek: Set dma_mask for the master devices
>   media: mtk-jpegdec: Remove the setting for dma_mask
>   media: mediatek: vcodec: Remove the setting for dma_mask
>   arm64: dts: mt8195: Remove the unnecessary dma-ranges
>   arm64: dts: mt8195: Add dma-ranges for the parent "soc" node
>   arm64: dts: mt8186: Add dma-ranges for the parent "soc" node

Applied, thanks.