[PATCH v2 09/14] media: mediatek: vcodec: support 36bit iova address

Yunfei Dong posted 14 patches 5 months, 4 weeks ago
[PATCH v2 09/14] media: mediatek: vcodec: support 36bit iova address
Posted by Yunfei Dong 5 months, 4 weeks ago
Need to set dma mask to support 36bit iova address for decoder
hardware can use 36bit address to decode for mt8196.

Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
---
 .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c  | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
index 5e312f86e652..fabf969bc8a9 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
@@ -388,6 +388,13 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 	dma_set_max_seg_size(&pdev->dev, UINT_MAX);
+	if (dev->chip_name == MTK_VDEC_MT8196) {
+		ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(36));
+		if (ret) {
+			dev_err(&pdev->dev, "Failed to enable 36-bit DMA: %d\n", ret);
+			return ret;
+		}
+	}
 
 	dev->fw_handler = mtk_vcodec_fw_select(dev, fw_type, DECODER);
 	if (IS_ERR(dev->fw_handler))
-- 
2.45.2
Re: [PATCH v2 09/14] media: mediatek: vcodec: support 36bit iova address
Posted by Nicolas Dufresne 2 months, 1 week ago
Le vendredi 15 août 2025 à 16:52 +0800, Yunfei Dong a écrit :
> Need to set dma mask to support 36bit iova address for decoder
> hardware can use 36bit address to decode for mt8196.
> 
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>

Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>

> ---
>  .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c  | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git
> a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> index 5e312f86e652..fabf969bc8a9 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c
> @@ -388,6 +388,13 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
>  		return -ENODEV;
>  	}
>  	dma_set_max_seg_size(&pdev->dev, UINT_MAX);
> +	if (dev->chip_name == MTK_VDEC_MT8196) {
> +		ret = dma_set_mask_and_coherent(&pdev->dev,
> DMA_BIT_MASK(36));
> +		if (ret) {
> +			dev_err(&pdev->dev, "Failed to enable 36-bit DMA:
> %d\n", ret);
> +			return ret;
> +		}
> +	}
>  
>  	dev->fw_handler = mtk_vcodec_fw_select(dev, fw_type, DECODER);
>  	if (IS_ERR(dev->fw_handler))