[PATCH v3 02/14] media: mediatek: vcodec: add decoder compatible to support mt8196
Nicolas Frattaroli
nicolas.frattaroli at collabora.com
Thu Feb 12 08:48:58 PST 2026
On Wednesday, 11 February 2026 06:41:29 Central European Standard Time Yunfei Dong wrote:
> MT8196 is lat single core architecture. Support its compatible and
> use `mtk_lat_sig_core_pdata` to initialize platform data.
>
> Signed-off-by: Yunfei Dong <yunfei.dong at mediatek.com>
> ---
> .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c | 6 ++++++
> .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h | 1 +
> 2 files 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 3b81fae9f913..d9f722698198 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
> @@ -347,6 +347,8 @@ static void mtk_vcodec_dec_get_chip_name(struct mtk_vcodec_dec_dev *vdec_dev)
> vdec_dev->chip_name = MTK_VDEC_MT8186;
> else if (of_device_is_compatible(dev->of_node, "mediatek,mt8188-vcodec-dec"))
> vdec_dev->chip_name = MTK_VDEC_MT8188;
> + else if (of_device_is_compatible(dev->of_node, "mediatek,mt8196-vcodec-dec"))
> + vdec_dev->chip_name = MTK_VDEC_MT8196;
Why is this entire function written like this, and why does it exist
at all? You can store the chip name in the platform data for a compatible,
thereby avoiding a massive of_device_is_compatible if block because that's
what platform data is for.
The only place where this function is even used is in probe.
Just store it in your mtk_vcodec_match's .data struct and pull it from
dev->vdec_pdata. No need for the function.
> else
> vdec_dev->chip_name = MTK_VDEC_INVAL;
> }
> @@ -560,6 +562,10 @@ static const struct of_device_id mtk_vcodec_match[] = {
> .compatible = "mediatek,mt8188-vcodec-dec",
> .data = &mtk_lat_sig_core_pdata,
> },
> + {
> + .compatible = "mediatek,mt8196-vcodec-dec",
> + .data = &mtk_lat_sig_core_pdata,
> + },
> {},
> };
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
> index c9d27534c63e..f06dfc1a3455 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h
> @@ -29,6 +29,7 @@ enum mtk_vcodec_dec_chip_name {
> MTK_VDEC_MT8188 = 8188,
> MTK_VDEC_MT8192 = 8192,
> MTK_VDEC_MT8195 = 8195,
> + MTK_VDEC_MT8196 = 8196,
> };
>
> /*
>
More information about the linux-arm-kernel
mailing list