media: mtk-vcodec: Support 34bits dma address for venc
authorIrui Wang <irui.wang@mediatek.com>
Sat, 5 Jun 2021 02:29:15 +0000 (04:29 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 17 Jun 2021 08:11:28 +0000 (10:11 +0200)
Use the dma_set_mask_and_coherent helper to set venc
DMA bit mask to support 34bits iova space(16GB) that
the mt8192 iommu HW support.

Whole the iova range separate to 0~4G/4G~8G/8G~12G/12G~16G,
regarding which iova range VENC actually locate, it
depends on the dma-ranges property of venc dtsi node.

Signed-off-by: Irui Wang <irui.wang@mediatek.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c

index 7d7b8cf..26b089e 100644 (file)
@@ -361,6 +361,9 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
                goto err_event_workq;
        }
 
+       if (of_get_property(pdev->dev.of_node, "dma-ranges", NULL))
+               dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(34));
+
        ret = video_register_device(vfd_enc, VFL_TYPE_VIDEO, 1);
        if (ret) {
                mtk_v4l2_err("Failed to register video device");