* [PATCH v5 0/8] Enable video decoder & encoder for MT8189
@ 2025-11-06 6:13 Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 1/8] dt-bindings: media: mediatek: decoder: Add MT8189 mediatek,vcodec-decoder Kyrie Wu
` (8 more replies)
0 siblings, 9 replies; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
This series have the follow changing:
Firstly add mt8189 video decoder compatible, profile and level to support
MT8189 kernel driver.
Secondly fix some bugs, including vp 4K profile2 and media device node
number bug.
Lastly, add mt8189 video encoder compatible.
This series has been tested with MT8189 tast test.
Encoding and decoding worked for this chip.
Patches 1-2 Add decoder compatible.
Patches 3 Add profile and level supporting.
Patches 4 Add core-only VP9 decoding supporting.
Patches 5-6 fix some bugs.
Patches 7-8 Adds encoder compatible.
---
H264 test results:
./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0 -j2 -t 90
JVT-AVC_V1 Ran 96/135 tests successfully
VP9 test results:
./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 -j2 -t 90
VP9-TEST-VECTORS Ran 276/305 tests successfully
v4l2-compliance test results:
Compliance test for mtk-vcodec-enc device /dev/video2:
Total for mtk-vcodec-enc device /dev/video2: 47, Succeeded: 46, Failed: 1, Warnings: 0
Compliance test for mtk-vcodec-dec device /dev/video3:
Total for mtk-vcodec-dec device /dev/video3: 48, Succeeded: 48, Failed: 0, Warnings: 0
scp upstream link:
https://patchwork.kernel.org/project/linux-mediatek/patch/20250811015922.32680-1-huayu.zong@mediatek.com/
dtsi upstream link:
https://lore.kernel.org/linux-mediatek/20251030134541.784011-12-jh.hsu@mediatek.com/T/#m847e35de0a5b18fac0ca0624a8559d84964ad5c7
Changes compared with v4:
--update H264 & vp9 fluster test results
--update vp9 single core decoder prob size setting and commit messages
Changes compared with v3:
--add reviewer to commit messages
--Rebased on top of the latest media tree
Changes compared with v2:
--add H264 fluster test results
--reorder compatible string for dt-bindings
Changes compared with v1:
--add v4l2-compliance test results
--add scp upstream link
--add HW difference discriptions for dt-bindings commit messages
This series patches dependent on:
[1]
https://patchwork.linuxtv.org/project/linux-media/cover/20250510075357.11761-1-yunfei.dong@mediatek.com/
[2]
https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/
Kyrie Wu (8):
dt-bindings: media: mediatek: decoder: Add MT8189
mediatek,vcodec-decoder
media: mediatek: vcodec: add decoder compatible to support MT8189
media: mediatek: vcodec: add profile and level supporting for MT8189
media: mediatek: vcodec: Add single core VP9 decoding support for
MT8189
media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
media: mediatek: vcodec: fix media device node number
dt-bindings: media: Add MT8189 mediatek,vcodec-encoder
media: mediatek: encoder: Add MT8189 encoder compatible data
.../media/mediatek,vcodec-encoder.yaml | 2 +
.../media/mediatek,vcodec-subdev-decoder.yaml | 5 +-
.../vcodec/decoder/mtk_vcodec_dec_drv.c | 9 +++-
.../vcodec/decoder/mtk_vcodec_dec_drv.h | 1 +
.../vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++
.../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 48 ++++++++++++++-----
.../vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++
7 files changed, 68 insertions(+), 15 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v5 1/8] dt-bindings: media: mediatek: decoder: Add MT8189 mediatek,vcodec-decoder
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189 Kyrie Wu
` (7 subsequent siblings)
8 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
Add compatible for video decoder on MT8189 platform. Compared with
former ICs, the MT8189 decoder use iommu to instead of smmu, and
use scp architecture, the frequency is only 406MHZ, and cannot reach
more than 700MHZ. It used only one clock. At the same time, the decoder
supports the vp9 decoding protocol for the first time in single IC.
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
---
.../bindings/media/mediatek,vcodec-subdev-decoder.yaml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml b/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml
index 74e1d88d3056..ee2bbbdb2d50 100644
--- a/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml
+++ b/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml
@@ -75,6 +75,7 @@ properties:
- mediatek,mt8192-vcodec-dec
- mediatek,mt8186-vcodec-dec
- mediatek,mt8188-vcodec-dec
+ - mediatek,mt8189-vcodec-dec
- mediatek,mt8195-vcodec-dec
- mediatek,mt8196-vcodec-dec
@@ -132,11 +133,11 @@ patternProperties:
Refer to bindings/iommu/mediatek,iommu.yaml.
clocks:
- minItems: 4
+ minItems: 1
maxItems: 5
clock-names:
- minItems: 4
+ minItems: 1
maxItems: 5
assigned-clocks:
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 1/8] dt-bindings: media: mediatek: decoder: Add MT8189 mediatek,vcodec-decoder Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 14:21 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 3/8] media: mediatek: vcodec: add profile and level supporting for MT8189 Kyrie Wu
` (6 subsequent siblings)
8 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
MT8189 is pure single core architecture. Support its compatible and
use `mtk_vdec_single_core_pdata` to initialize platform data.
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.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 6fb05bb00641..fca60e81e3c7 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_MT8188;
else if (of_device_is_compatible(dev->of_node, "mediatek,mt8196-vcodec-dec"))
vdec_dev->chip_name = MTK_VDEC_MT8196;
+ else if (of_device_is_compatible(dev->of_node, "mediatek,mt8189-vcodec-dec"))
+ vdec_dev->chip_name = MTK_VDEC_MT8189;
else
vdec_dev->chip_name = MTK_VDEC_INVAL;
}
@@ -574,6 +576,10 @@ static const struct of_device_id mtk_vcodec_match[] = {
.compatible = "mediatek,mt8196-vcodec-dec",
.data = &mtk_lat_sig_core_pdata,
},
+ {
+ .compatible = "mediatek,mt8189-vcodec-dec",
+ .data = &mtk_vdec_single_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 429b32952194..9421fd4fda1d 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
@@ -25,6 +25,7 @@ enum mtk_vcodec_dec_chip_name {
MTK_VDEC_MT8183 = 8183,
MTK_VDEC_MT8186 = 8186,
MTK_VDEC_MT8188 = 8188,
+ MTK_VDEC_MT8189 = 8189,
MTK_VDEC_MT8192 = 8192,
MTK_VDEC_MT8195 = 8195,
MTK_VDEC_MT8196 = 8196,
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 3/8] media: mediatek: vcodec: add profile and level supporting for MT8189
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 1/8] dt-bindings: media: mediatek: decoder: Add MT8189 mediatek,vcodec-decoder Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189 Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 14:23 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support " Kyrie Wu
` (5 subsequent siblings)
8 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
add profile and level supporting for H264 and vp9 of MT8189
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
.../mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
index c1cef78471a9..0a9bdc5316f9 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
@@ -552,6 +552,7 @@ static void mtk_vcodec_dec_fill_h264_level(struct v4l2_ctrl_config *cfg,
switch (ctx->dev->chip_name) {
case MTK_VDEC_MT8192:
case MTK_VDEC_MT8188:
+ case MTK_VDEC_MT8189:
cfg->max = V4L2_MPEG_VIDEO_H264_LEVEL_5_2;
break;
case MTK_VDEC_MT8195:
@@ -573,6 +574,7 @@ static void mtk_vcodec_dec_fill_h264_profile(struct v4l2_ctrl_config *cfg,
{
switch (ctx->dev->chip_name) {
case MTK_VDEC_MT8188:
+ case MTK_VDEC_MT8189:
case MTK_VDEC_MT8195:
case MTK_VDEC_MT8196:
cfg->max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10;
@@ -623,6 +625,7 @@ static void mtk_vcodec_dec_fill_vp9_level(struct v4l2_ctrl_config *cfg,
case MTK_VDEC_MT8188:
cfg->max = V4L2_MPEG_VIDEO_VP9_LEVEL_5_1;
break;
+ case MTK_VDEC_MT8189:
case MTK_VDEC_MT8195:
case MTK_VDEC_MT8196:
cfg->max = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2;
@@ -641,6 +644,7 @@ static void mtk_vcodec_dec_fill_vp9_profile(struct v4l2_ctrl_config *cfg,
{
switch (ctx->dev->chip_name) {
case MTK_VDEC_MT8188:
+ case MTK_VDEC_MT8189:
case MTK_VDEC_MT8195:
case MTK_VDEC_MT8196:
cfg->max = V4L2_MPEG_VIDEO_VP9_PROFILE_2;
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support for MT8189
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
` (2 preceding siblings ...)
2025-11-06 6:13 ` [PATCH v5 3/8] media: mediatek: vcodec: add profile and level supporting for MT8189 Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 14:29 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2 Kyrie Wu
` (4 subsequent siblings)
8 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
1. add config to support 4K prob size;
2. Previously, calling vdec_vp9_slice_setup_single_from_src_to_dst
with v4l2_m2m_next_src_buf to obtain both buffers resulted in -EINVAL,
interrupting the decoding process. To resolve this,
the interface should be updated to set both src and dst buffers
for metadata configuration.
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
---
.../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 43 ++++++++++++++-----
1 file changed, 32 insertions(+), 11 deletions(-)
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
index fa0f406f7726..d966914db4b9 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
@@ -23,6 +23,7 @@
#define VP9_TILE_BUF_SIZE 4096
#define VP9_PROB_BUF_SIZE 2560
+#define VP9_PROB_BUF_4K_SIZE 3840
#define VP9_COUNTS_BUF_SIZE 16384
#define HDR_FLAG(x) (!!((hdr)->flags & V4L2_VP9_FRAME_FLAG_##x))
@@ -542,6 +543,23 @@ static int vdec_vp9_slice_init_default_frame_ctx(struct vdec_vp9_slice_instance
return ret;
}
+static size_t mtk_vcodec_get_vp9_prob_size(enum mtk_vcodec_dec_chip_name chip_name)
+{
+ size_t prob_size;
+
+ switch (chip_name) {
+ case MTK_VDEC_MT8189:
+ case MTK_VDEC_MT8196:
+ prob_size = VP9_PROB_BUF_4K_SIZE;
+ break;
+ default:
+ prob_size = VP9_PROB_BUF_SIZE;
+ break;
+ }
+
+ return prob_size;
+}
+
static int vdec_vp9_slice_alloc_working_buffer(struct vdec_vp9_slice_instance *instance,
struct vdec_vp9_slice_vsi *vsi)
{
@@ -616,7 +634,9 @@ static int vdec_vp9_slice_alloc_working_buffer(struct vdec_vp9_slice_instance *i
}
if (!instance->prob.va) {
- instance->prob.size = VP9_PROB_BUF_SIZE;
+ instance->prob.size =
+ mtk_vcodec_get_vp9_prob_size(ctx->dev->chip_name);
+
if (mtk_vcodec_mem_alloc(ctx, &instance->prob))
goto err;
}
@@ -696,21 +716,22 @@ static int vdec_vp9_slice_tile_offset(int idx, int mi_num, int tile_log2)
return min(offset, mi_num);
}
-static
-int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *instance)
+static int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *instance,
+ struct mtk_vcodec_mem *bs,
+ struct vdec_fb *fb)
{
- struct vb2_v4l2_buffer *src;
- struct vb2_v4l2_buffer *dst;
+ struct mtk_video_dec_buf *src_buf_info;
+ struct mtk_video_dec_buf *dst_buf_info;
- src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
- if (!src)
+ src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
+ if (!src_buf_info)
return -EINVAL;
- dst = v4l2_m2m_next_dst_buf(instance->ctx->m2m_ctx);
- if (!dst)
+ dst_buf_info = container_of(fb, struct mtk_video_dec_buf, frame_buffer);
+ if (!dst_buf_info)
return -EINVAL;
- v4l2_m2m_buf_copy_metadata(src, dst, true);
+ v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb, &dst_buf_info->m2m_buf.vb, true);
return 0;
}
@@ -1800,7 +1821,7 @@ static int vdec_vp9_slice_setup_single(struct vdec_vp9_slice_instance *instance,
struct vdec_vp9_slice_vsi *vsi = &pfc->vsi;
int ret;
- ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance);
+ ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance, bs, fb);
if (ret)
goto err;
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
` (3 preceding siblings ...)
2025-11-06 6:13 ` [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support " Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 14:46 ` Nicolas Dufresne
2025-11-06 15:17 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number Kyrie Wu
` (3 subsequent siblings)
8 siblings, 2 replies; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
The dram addr of vp9 decoder tile number, which use dram mode
to set tile information, may reach to 36bits for 4096x2176.
It needs to get the highest 4bit of tile buffer address to
set tile buffer address.
Fixes: 5d418351ca8f1 ("media: mediatek: vcodec: support stateless VP9 decoding")
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
.../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
index d966914db4b9..91c563c049bd 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
@@ -1156,7 +1156,10 @@ static int vdec_vp9_slice_setup_tile_buffer(struct vdec_vp9_slice_instance *inst
tiles->size[i][j] = size;
if (tiles->mi_rows[i]) {
*tb++ = (size << 3) + ((offset << 3) & 0x7f);
- *tb++ = pa & ~0xf;
+ *tb = pa & ~0xf;
+ if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
+ *tb |= (pa >> 32) & 0xf;
+ tb++;
*tb++ = (pa << 3) & 0x7f;
mi_row = (tiles->mi_rows[i] - 1) & 0x1ff;
mi_col = (tiles->mi_cols[j] - 1) & 0x3f;
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
` (4 preceding siblings ...)
2025-11-06 6:13 ` [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2 Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 14:47 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 7/8] dt-bindings: media: Add MT8189 mediatek,vcodec-encoder Kyrie Wu
` (2 subsequent siblings)
8 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
change media register device node number to a correct value
Fixes: 41f03c673cb7b ("media: mediatek: vcodec: replace pr_* with dev_* for v4l2 debug message")
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
---
.../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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 fca60e81e3c7..f3e49597602a 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
@@ -516,7 +516,8 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
goto err_media_reg;
}
- dev_dbg(&pdev->dev, "media registered as /dev/media%d", vfd_dec->minor);
+ dev_dbg(&pdev->dev, "media registered as /dev/media%d",
+ dev->mdev_dec.devnode->minor);
}
mtk_vcodec_dbgfs_init(dev, false);
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 7/8] dt-bindings: media: Add MT8189 mediatek,vcodec-encoder
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
` (5 preceding siblings ...)
2025-11-06 6:13 ` [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data Kyrie Wu
2025-11-06 14:18 ` [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Nicolas Dufresne
8 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz, Krzysztof Kozlowski
Add MT8189 encoder compatible string to distinguish former ICs
MTK's. Compared with MT8196, the maximum resolution of MT8189
encoder is only 4K, and the fps is only 30, which cannot reach
the highest parameter of MT8196: level6.2, 8K@60fps.
Compared with MT8188, the level can only support 5.1, which is less
than 5.2 of MT8188. But the maximum bitrate is 100Mbps, which is twice
that of MT8188. And MT8189 could support NBM mode.
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
.../devicetree/bindings/media/mediatek,vcodec-encoder.yaml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/mediatek,vcodec-encoder.yaml b/Documentation/devicetree/bindings/media/mediatek,vcodec-encoder.yaml
index bb4dbf23ccc5..7f355470b63c 100644
--- a/Documentation/devicetree/bindings/media/mediatek,vcodec-encoder.yaml
+++ b/Documentation/devicetree/bindings/media/mediatek,vcodec-encoder.yaml
@@ -22,6 +22,7 @@ properties:
- mediatek,mt8173-vcodec-enc
- mediatek,mt8183-vcodec-enc
- mediatek,mt8188-vcodec-enc
+ - mediatek,mt8189-vcodec-enc
- mediatek,mt8192-vcodec-enc
- mediatek,mt8195-vcodec-enc
- mediatek,mt8196-vcodec-enc
@@ -100,6 +101,7 @@ allOf:
enum:
- mediatek,mt8183-vcodec-enc
- mediatek,mt8188-vcodec-enc
+ - mediatek,mt8189-vcodec-enc
- mediatek,mt8192-vcodec-enc
- mediatek,mt8195-vcodec-enc
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
` (6 preceding siblings ...)
2025-11-06 6:13 ` [PATCH v5 7/8] dt-bindings: media: Add MT8189 mediatek,vcodec-encoder Kyrie Wu
@ 2025-11-06 6:13 ` Kyrie Wu
2025-11-06 14:50 ` Nicolas Dufresne
2025-11-06 14:18 ` [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Nicolas Dufresne
8 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu @ 2025-11-06 6:13 UTC (permalink / raw)
To: Tiffany Lin, Andrew-CT Chen, Yunfei Dong, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Kyrie Wu, Hans Verkuil,
Nicolas Dufresne, Nathan Hebert, Arnd Bergmann, Irui Wang,
George Sun, linux-media, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
add compatible data to support MT8189 encoding.
Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
.../mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
index 6b3d2e72fad9..2cc92a8f7a0d 100644
--- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
+++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
@@ -467,6 +467,19 @@ static const struct mtk_vcodec_enc_pdata mt8196_pdata = {
.set_dma_bit_mask = true,
};
+static const struct mtk_vcodec_enc_pdata mt8189_pdata = {
+ .venc_model_num = 8189,
+ .capture_formats = mtk_video_formats_capture_h264,
+ .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264),
+ .output_formats = mtk_video_formats_output,
+ .num_output_formats = ARRAY_SIZE(mtk_video_formats_output),
+ .min_bitrate = 64,
+ .max_bitrate = 100000000,
+ .core_id = VENC_SYS,
+ .uses_common_fw_iface = true,
+ .set_dma_bit_mask = true,
+};
+
static const struct of_device_id mtk_vcodec_enc_match[] = {
{.compatible = "mediatek,mt8173-vcodec-enc",
.data = &mt8173_avc_pdata},
@@ -477,6 +490,7 @@ static const struct of_device_id mtk_vcodec_enc_match[] = {
{.compatible = "mediatek,mt8192-vcodec-enc", .data = &mt8192_pdata},
{.compatible = "mediatek,mt8195-vcodec-enc", .data = &mt8195_pdata},
{.compatible = "mediatek,mt8196-vcodec-enc", .data = &mt8196_pdata},
+ {.compatible = "mediatek,mt8189-vcodec-enc", .data = &mt8189_pdata},
{},
};
MODULE_DEVICE_TABLE(of, mtk_vcodec_enc_match);
--
2.45.2
^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH v5 0/8] Enable video decoder & encoder for MT8189
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
` (7 preceding siblings ...)
2025-11-06 6:13 ` [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data Kyrie Wu
@ 2025-11-06 14:18 ` Nicolas Dufresne
2025-11-10 2:32 ` Kyrie Wu (吴晗)
8 siblings, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:18 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 3573 bytes --]
Hi,
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> This series have the follow changing:
> Firstly add mt8189 video decoder compatible, profile and level to support
> MT8189 kernel driver.
> Secondly fix some bugs, including vp 4K profile2 and media device node
> number bug.
> Lastly, add mt8189 video encoder compatible.
>
> This series has been tested with MT8189 tast test.
> Encoding and decoding worked for this chip.
>
> Patches 1-2 Add decoder compatible.
> Patches 3 Add profile and level supporting.
> Patches 4 Add core-only VP9 decoding supporting.
> Patches 5-6 fix some bugs.
> Patches 7-8 Adds encoder compatible.
>
> ---
> H264 test results:
> ./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0 -j2 -t 90
> JVT-AVC_V1 Ran 96/135 tests successfully
>
> VP9 test results:
> ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 -j2 -t 90
> VP9-TEST-VECTORS Ran 276/305 tests successfully
>
> v4l2-compliance test results:
> Compliance test for mtk-vcodec-enc device /dev/video2:
> Total for mtk-vcodec-enc device /dev/video2: 47, Succeeded: 46, Failed: 1, Warnings: 0
There is one fail, can you explain it ?
Nicolas
> Compliance test for mtk-vcodec-dec device /dev/video3:
> Total for mtk-vcodec-dec device /dev/video3: 48, Succeeded: 48, Failed: 0, Warnings: 0
>
> scp upstream link:
> https://patchwork.kernel.org/project/linux-mediatek/patch/20250811015922.32680-1-huayu.zong@mediatek.com/
> dtsi upstream link:
> https://lore.kernel.org/linux-mediatek/20251030134541.784011-12-jh.hsu@mediatek.com/T/#m847e35de0a5b18fac0ca0624a8559d84964ad5c7
>
> Changes compared with v4:
> --update H264 & vp9 fluster test results
> --update vp9 single core decoder prob size setting and commit messages
>
> Changes compared with v3:
> --add reviewer to commit messages
> --Rebased on top of the latest media tree
>
> Changes compared with v2:
> --add H264 fluster test results
> --reorder compatible string for dt-bindings
>
> Changes compared with v1:
> --add v4l2-compliance test results
> --add scp upstream link
> --add HW difference discriptions for dt-bindings commit messages
>
> This series patches dependent on:
> [1]
> https://patchwork.linuxtv.org/project/linux-media/cover/20250510075357.11761-1-yunfei.dong@mediatek.com/
> [2]
> https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/
>
> Kyrie Wu (8):
> dt-bindings: media: mediatek: decoder: Add MT8189
> mediatek,vcodec-decoder
> media: mediatek: vcodec: add decoder compatible to support MT8189
> media: mediatek: vcodec: add profile and level supporting for MT8189
> media: mediatek: vcodec: Add single core VP9 decoding support for
> MT8189
> media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
> media: mediatek: vcodec: fix media device node number
> dt-bindings: media: Add MT8189 mediatek,vcodec-encoder
> media: mediatek: encoder: Add MT8189 encoder compatible data
>
> .../media/mediatek,vcodec-encoder.yaml | 2 +
> .../media/mediatek,vcodec-subdev-decoder.yaml | 5 +-
> .../vcodec/decoder/mtk_vcodec_dec_drv.c | 9 +++-
> .../vcodec/decoder/mtk_vcodec_dec_drv.h | 1 +
> .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++
> .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 48 ++++++++++++++-----
> .../vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++
> 7 files changed, 68 insertions(+), 15 deletions(-)
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189
2025-11-06 6:13 ` [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189 Kyrie Wu
@ 2025-11-06 14:21 ` Nicolas Dufresne
2025-11-18 7:22 ` Kyrie Wu (吴晗)
0 siblings, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:21 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 2668 bytes --]
Hi,
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> MT8189 is pure single core architecture. Support its compatible and
> use `mtk_vdec_single_core_pdata` to initialize platform data.
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.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 6fb05bb00641..fca60e81e3c7 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_MT8188;
> else if (of_device_is_compatible(dev->of_node, "mediatek,mt8196-vcodec-dec"))
> vdec_dev->chip_name = MTK_VDEC_MT8196;
> + else if (of_device_is_compatible(dev->of_node, "mediatek,mt8189-vcodec-dec"))
> + vdec_dev->chip_name = MTK_VDEC_MT8189;
> else
> vdec_dev->chip_name = MTK_VDEC_INVAL;
> }
> @@ -574,6 +576,10 @@ static const struct of_device_id mtk_vcodec_match[] = {
> .compatible = "mediatek,mt8196-vcodec-dec",
> .data = &mtk_lat_sig_core_pdata,
> },
> + {
> + .compatible = "mediatek,mt8189-vcodec-dec",
> + .data = &mtk_vdec_single_core_pdata,
> + },
Maybe its just me, but its annoying that you match the compatible twice. It is
of course more work to add yet another indirection for the chip_name, but
considering you do 2 soc / year (and sometimes more) this will keep growing.
Opinions ? I'd don't want to block this forever, but I'd like to see some
cleanup of this driver happening in the long term.
Nicolas
> {},
> };
>
> 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 429b32952194..9421fd4fda1d 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
> @@ -25,6 +25,7 @@ enum mtk_vcodec_dec_chip_name {
> MTK_VDEC_MT8183 = 8183,
> MTK_VDEC_MT8186 = 8186,
> MTK_VDEC_MT8188 = 8188,
> + MTK_VDEC_MT8189 = 8189,
> MTK_VDEC_MT8192 = 8192,
> MTK_VDEC_MT8195 = 8195,
> MTK_VDEC_MT8196 = 8196,
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 3/8] media: mediatek: vcodec: add profile and level supporting for MT8189
2025-11-06 6:13 ` [PATCH v5 3/8] media: mediatek: vcodec: add profile and level supporting for MT8189 Kyrie Wu
@ 2025-11-06 14:23 ` Nicolas Dufresne
0 siblings, 0 replies; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:23 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 2146 bytes --]
Hi,
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> add profile and level supporting for H264 and vp9 of MT8189
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> .../mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> index c1cef78471a9..0a9bdc5316f9 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> @@ -552,6 +552,7 @@ static void mtk_vcodec_dec_fill_h264_level(struct v4l2_ctrl_config *cfg,
> switch (ctx->dev->chip_name) {
> case MTK_VDEC_MT8192:
> case MTK_VDEC_MT8188:
> + case MTK_VDEC_MT8189:
> cfg->max = V4L2_MPEG_VIDEO_H264_LEVEL_5_2;
Please consider my suggestion in 2/8, you could then move all of this into the
static compatible data structure.
Nicolas
> break;
> case MTK_VDEC_MT8195:
> @@ -573,6 +574,7 @@ static void mtk_vcodec_dec_fill_h264_profile(struct v4l2_ctrl_config *cfg,
> {
> switch (ctx->dev->chip_name) {
> case MTK_VDEC_MT8188:
> + case MTK_VDEC_MT8189:
> case MTK_VDEC_MT8195:
> case MTK_VDEC_MT8196:
> cfg->max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10;
> @@ -623,6 +625,7 @@ static void mtk_vcodec_dec_fill_vp9_level(struct v4l2_ctrl_config *cfg,
> case MTK_VDEC_MT8188:
> cfg->max = V4L2_MPEG_VIDEO_VP9_LEVEL_5_1;
> break;
> + case MTK_VDEC_MT8189:
> case MTK_VDEC_MT8195:
> case MTK_VDEC_MT8196:
> cfg->max = V4L2_MPEG_VIDEO_VP9_LEVEL_5_2;
> @@ -641,6 +644,7 @@ static void mtk_vcodec_dec_fill_vp9_profile(struct v4l2_ctrl_config *cfg,
> {
> switch (ctx->dev->chip_name) {
> case MTK_VDEC_MT8188:
> + case MTK_VDEC_MT8189:
> case MTK_VDEC_MT8195:
> case MTK_VDEC_MT8196:
> cfg->max = V4L2_MPEG_VIDEO_VP9_PROFILE_2;
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support for MT8189
2025-11-06 6:13 ` [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support " Kyrie Wu
@ 2025-11-06 14:29 ` Nicolas Dufresne
2025-11-17 7:40 ` Kyrie Wu (吴晗)
0 siblings, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:29 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 4244 bytes --]
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> 1. add config to support 4K prob size;
> 2. Previously, calling vdec_vp9_slice_setup_single_from_src_to_dst
> with v4l2_m2m_next_src_buf to obtain both buffers resulted in -EINVAL,
> interrupting the decoding process. To resolve this,
> the interface should be updated to set both src and dst buffers
> for metadata configuration.
Please avoid using bullets in commit messages. Everyone will assume that if you
have two bullets, you should have two patches. And I think they would be right
for this patch.
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> ---
> .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 43 ++++++++++++++-----
> 1 file changed, 32 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> index fa0f406f7726..d966914db4b9 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> @@ -23,6 +23,7 @@
>
> #define VP9_TILE_BUF_SIZE 4096
> #define VP9_PROB_BUF_SIZE 2560
> +#define VP9_PROB_BUF_4K_SIZE 3840
> #define VP9_COUNTS_BUF_SIZE 16384
>
> #define HDR_FLAG(x) (!!((hdr)->flags & V4L2_VP9_FRAME_FLAG_##x))
> @@ -542,6 +543,23 @@ static int vdec_vp9_slice_init_default_frame_ctx(struct vdec_vp9_slice_instance
> return ret;
> }
>
> +static size_t mtk_vcodec_get_vp9_prob_size(enum mtk_vcodec_dec_chip_name chip_name)
> +{
> + size_t prob_size;
> +
> + switch (chip_name) {
> + case MTK_VDEC_MT8189:
> + case MTK_VDEC_MT8196:
> + prob_size = VP9_PROB_BUF_4K_SIZE;
> + break;
> + default:
> + prob_size = VP9_PROB_BUF_SIZE;
> + break;
> + }
> +
> + return prob_size;
> +}
This is another example of something that could be in the static compatible
data.
> +
> static int vdec_vp9_slice_alloc_working_buffer(struct vdec_vp9_slice_instance *instance,
> struct vdec_vp9_slice_vsi *vsi)
> {
> @@ -616,7 +634,9 @@ static int vdec_vp9_slice_alloc_working_buffer(struct vdec_vp9_slice_instance *i
> }
>
> if (!instance->prob.va) {
> - instance->prob.size = VP9_PROB_BUF_SIZE;
> + instance->prob.size =
> + mtk_vcodec_get_vp9_prob_size(ctx->dev->chip_name);
> +
> if (mtk_vcodec_mem_alloc(ctx, &instance->prob))
> goto err;
> }
> @@ -696,21 +716,22 @@ static int vdec_vp9_slice_tile_offset(int idx, int mi_num, int tile_log2)
> return min(offset, mi_num);
> }
>
> -static
> -int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *instance)
> +static int vdec_vp9_slice_setup_single_from_src_to_dst(struct vdec_vp9_slice_instance *instance,
> + struct mtk_vcodec_mem *bs,
> + struct vdec_fb *fb)
> {
> - struct vb2_v4l2_buffer *src;
> - struct vb2_v4l2_buffer *dst;
> + struct mtk_video_dec_buf *src_buf_info;
> + struct mtk_video_dec_buf *dst_buf_info;
>
> - src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
> - if (!src)
> + src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer);
> + if (!src_buf_info)
> return -EINVAL;
>
> - dst = v4l2_m2m_next_dst_buf(instance->ctx->m2m_ctx);
> - if (!dst)
> + dst_buf_info = container_of(fb, struct mtk_video_dec_buf, frame_buffer);
> + if (!dst_buf_info)
> return -EINVAL;
>
> - v4l2_m2m_buf_copy_metadata(src, dst, true);
> + v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb, &dst_buf_info->m2m_buf.vb, true);
>
> return 0;
> }
> @@ -1800,7 +1821,7 @@ static int vdec_vp9_slice_setup_single(struct vdec_vp9_slice_instance *instance,
> struct vdec_vp9_slice_vsi *vsi = &pfc->vsi;
> int ret;
>
> - ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance);
> + ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance, bs, fb);
I don't see a direct correlation betwen the buffer size change and this change.
Please split. Changes looks good, the commit message isn't very clear though.
Nicolas
> if (ret)
> goto err;
>
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
2025-11-06 6:13 ` [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2 Kyrie Wu
@ 2025-11-06 14:46 ` Nicolas Dufresne
2025-11-17 7:53 ` Kyrie Wu (吴晗)
2025-11-06 15:17 ` Nicolas Dufresne
1 sibling, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:46 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 2222 bytes --]
Hi,
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> The dram addr of vp9 decoder tile number, which use dram mode
> to set tile information, may reach to 36bits for 4096x2176.
> It needs to get the highest 4bit of tile buffer address to
> set tile buffer address.
Please rework that commit message. Perhaps:
The DRAM address of the VP9 decoder mode info (MI) buffers may require
as much as 36bits for 4096x2176 resolution. Fold the 4 most significant
bits into the lower (padding) four bits of address.
>
> Fixes: 5d418351ca8f1 ("media: mediatek: vcodec: support stateless VP9 decoding")
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> index d966914db4b9..91c563c049bd 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> @@ -1156,7 +1156,10 @@ static int vdec_vp9_slice_setup_tile_buffer:q(struct vdec_vp9_slice_instance *inst
> tiles->size[i][j] = size;
> if (tiles->mi_rows[i]) {
> *tb++ = (size << 3) + ((offset << 3) & 0x7f);
> - *tb++ = pa & ~0xf;
> + *tb = pa & ~0xf;
> + if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
> + *tb |= (pa >> 32) & 0xf;
> + tb++;
You are following the style here, so no complaints, though the macros
GENMASK(3, 0) instead of 0xf and GENMASK(31, 4) instead of ~0xf is another way
to write this code.
Since this is not always obvious when the alignment padding of an address is
being reused to extend the number of bits of an address, it would be nice if you
add a comment explaining in words what his is doing.
cheers,
Nicolas
> *tb++ = (pa << 3) & 0x7f;
> mi_row = (tiles->mi_rows[i] - 1) & 0x1ff;
> mi_col = (tiles->mi_cols[j] - 1) & 0x3f;
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number
2025-11-06 6:13 ` [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number Kyrie Wu
@ 2025-11-06 14:47 ` Nicolas Dufresne
2025-11-17 6:15 ` Kyrie Wu (吴晗)
0 siblings, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:47 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 1291 bytes --]
Hi,
fix -> Fix
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> change media register device node number to a correct value
You already say that in the subject, the description should explain why vfd_dec-
>minor was wrong.
Nicolas
>
> Fixes: 41f03c673cb7b ("media: mediatek: vcodec: replace pr_* with dev_* for
> v4l2 debug message")
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> ---
> .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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 fca60e81e3c7..f3e49597602a 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
> @@ -516,7 +516,8 @@ static int mtk_vcodec_probe(struct platform_device *pdev)
> goto err_media_reg;
> }
>
> - dev_dbg(&pdev->dev, "media registered as /dev/media%d",
> vfd_dec->minor);
> + dev_dbg(&pdev->dev, "media registered as /dev/media%d",
> + dev->mdev_dec.devnode->minor);
> }
>
> mtk_vcodec_dbgfs_init(dev, false);
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data
2025-11-06 6:13 ` [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data Kyrie Wu
@ 2025-11-06 14:50 ` Nicolas Dufresne
2025-11-17 6:14 ` Kyrie Wu (吴晗)
0 siblings, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 14:50 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 2054 bytes --]
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> add compatible data to support MT8189 encoding.
Don't copy your subject, briefly describe the configuration instead.
Nicolas
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno
> <angelogioacchino.delregno@collabora.com>
> ---
> .../mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git
> a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> index 6b3d2e72fad9..2cc92a8f7a0d 100644
> --- a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> +++ b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c
> @@ -467,6 +467,19 @@ static const struct mtk_vcodec_enc_pdata mt8196_pdata = {
> .set_dma_bit_mask = true,
> };
>
> +static const struct mtk_vcodec_enc_pdata mt8189_pdata = {
> + .venc_model_num = 8189,
> + .capture_formats = mtk_video_formats_capture_h264,
> + .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_h264),
> + .output_formats = mtk_video_formats_output,
> + .num_output_formats = ARRAY_SIZE(mtk_video_formats_output),
> + .min_bitrate = 64,
> + .max_bitrate = 100000000,
> + .core_id = VENC_SYS,
> + .uses_common_fw_iface = true,
> + .set_dma_bit_mask = true,
> +};
> +
> static const struct of_device_id mtk_vcodec_enc_match[] = {
> {.compatible = "mediatek,mt8173-vcodec-enc",
> .data = &mt8173_avc_pdata},
> @@ -477,6 +490,7 @@ static const struct of_device_id mtk_vcodec_enc_match[] =
> {
> {.compatible = "mediatek,mt8192-vcodec-enc", .data = &mt8192_pdata},
> {.compatible = "mediatek,mt8195-vcodec-enc", .data = &mt8195_pdata},
> {.compatible = "mediatek,mt8196-vcodec-enc", .data = &mt8196_pdata},
> + {.compatible = "mediatek,mt8189-vcodec-enc", .data = &mt8189_pdata},
> {},
> };
> MODULE_DEVICE_TABLE(of, mtk_vcodec_enc_match);
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
2025-11-06 6:13 ` [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2 Kyrie Wu
2025-11-06 14:46 ` Nicolas Dufresne
@ 2025-11-06 15:17 ` Nicolas Dufresne
2025-11-17 7:36 ` Kyrie Wu (吴晗)
1 sibling, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-06 15:17 UTC (permalink / raw)
To: Kyrie Wu, Tiffany Lin, Andrew-CT Chen, Yunfei Dong,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Hans Verkuil, Nathan Hebert, Arnd Bergmann, Irui Wang, George Sun,
linux-media, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, Yilong Zhou
Cc: Neil Armstrong, Andrzej Pietrasiewicz
[-- Attachment #1: Type: text/plain, Size: 1779 bytes --]
Hi,
Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> The dram addr of vp9 decoder tile number, which use dram mode
> to set tile information, may reach to 36bits for 4096x2176.
> It needs to get the highest 4bit of tile buffer address to
> set tile buffer address.
An after thought, I don't see any call to vb2_dma_contig_set_max_seg_size() or
dma_set_coherent_mask() with DMA_BIT_MASK(32)/DMA_BIT_MASK(36) in this driver.
How do you control this ?
Nicolas
>
> Fixes: 5d418351ca8f1 ("media: mediatek: vcodec: support stateless VP9
> decoding")
>
> Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno
> <angelogioacchino.delregno@collabora.com>
> ---
> .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git
> a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> index d966914db4b9..91c563c049bd 100644
> ---
> a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> +++
> b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
> @@ -1156,7 +1156,10 @@ static int vdec_vp9_slice_setup_tile_buffer(struct
> vdec_vp9_slice_instance *inst
> tiles->size[i][j] = size;
> if (tiles->mi_rows[i]) {
> *tb++ = (size << 3) + ((offset << 3) & 0x7f);
> - *tb++ = pa & ~0xf;
> + *tb = pa & ~0xf;
> + if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
> + *tb |= (pa >> 32) & 0xf;
> + tb++;
> *tb++ = (pa << 3) & 0x7f;
> mi_row = (tiles->mi_rows[i] - 1) & 0x1ff;
> mi_col = (tiles->mi_cols[j] - 1) & 0x3f;
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 0/8] Enable video decoder & encoder for MT8189
2025-11-06 14:18 ` [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Nicolas Dufresne
@ 2025-11-10 2:32 ` Kyrie Wu (吴晗)
2025-11-10 13:57 ` Nicolas Dufresne
0 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-10 2:32 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 09:18 -0500, Nicolas Dufresne wrote:
> Hi,
>
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > This series have the follow changing:
> > Firstly add mt8189 video decoder compatible, profile and level to
> > support
> > MT8189 kernel driver.
> > Secondly fix some bugs, including vp 4K profile2 and media device
> > node
> > number bug.
> > Lastly, add mt8189 video encoder compatible.
> >
> > This series has been tested with MT8189 tast test.
> > Encoding and decoding worked for this chip.
> >
> > Patches 1-2 Add decoder compatible.
> > Patches 3 Add profile and level supporting.
> > Patches 4 Add core-only VP9 decoding supporting.
> > Patches 5-6 fix some bugs.
> > Patches 7-8 Adds encoder compatible.
> >
> > ---
> > H264 test results:
> > ./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0 -j2 -t 90
> > JVT-AVC_V1 Ran 96/135 tests successfully
> >
> > VP9 test results:
> > ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 -j2 -t 90
> > VP9-TEST-VECTORS Ran 276/305 tests successfully
> >
> > v4l2-compliance test results:
> > Compliance test for mtk-vcodec-enc device /dev/video2:
> > Total for mtk-vcodec-enc device /dev/video2: 47, Succeeded: 46,
> > Failed: 1, Warnings: 0
>
> There is one fail, can you explain it ?
>
> Nicolas
Dear Nicolas,
The failure is caused by subscribed event/dqevent. Our encoder driver
didn't register those apis, which caused this failure.
Here is the fail log, which is samed as MT8196:
https://patchwork.linuxtv.org/project/linux-media/cover/20250528063633.14054-1-irui.wang@mediatek.com/
Control ioctls:
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
test VIDIOC_QUERYCTRL: OK
test VIDIOC_G/S_CTRL: OK
test VIDIOC_G/S/TRY_EXT_CTRLS: OK
fail: v4l2-test-controls.cpp(1171): node->codec_mask &
STATEFUL_ENCODER
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 16 Private Controls: 0
Thanks.
Regards,
Kyrie.
>
> > Compliance test for mtk-vcodec-dec device /dev/video3:
> > Total for mtk-vcodec-dec device /dev/video3: 48, Succeeded: 48,
> > Failed: 0, Warnings: 0
> >
> > scp upstream link:
> >
https://patchwork.kernel.org/project/linux-mediatek/patch/20250811015922.32680-1-huayu.zong@mediatek.com/
> > dtsi upstream link:
> >
https://lore.kernel.org/linux-mediatek/20251030134541.784011-12-jh.hsu@mediatek.com/T/#m847e35de0a5b18fac0ca0624a8559d84964ad5c7
> >
> > Changes compared with v4:
> > --update H264 & vp9 fluster test results
> > --update vp9 single core decoder prob size setting and commit
> > messages
> >
> > Changes compared with v3:
> > --add reviewer to commit messages
> > --Rebased on top of the latest media tree
> >
> > Changes compared with v2:
> > --add H264 fluster test results
> > --reorder compatible string for dt-bindings
> >
> > Changes compared with v1:
> > --add v4l2-compliance test results
> > --add scp upstream link
> > --add HW difference discriptions for dt-bindings commit messages
> >
> > This series patches dependent on:
> > [1]
> >
https://patchwork.linuxtv.org/project/linux-media/cover/20250510075357.11761-1-yunfei.dong@mediatek.com/
> > [2]
> >
https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/
> >
> > Kyrie Wu (8):
> > dt-bindings: media: mediatek: decoder: Add MT8189
> > mediatek,vcodec-decoder
> > media: mediatek: vcodec: add decoder compatible to support MT8189
> > media: mediatek: vcodec: add profile and level supporting for
> > MT8189
> > media: mediatek: vcodec: Add single core VP9 decoding support for
> > MT8189
> > media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
> > media: mediatek: vcodec: fix media device node number
> > dt-bindings: media: Add MT8189 mediatek,vcodec-encoder
> > media: mediatek: encoder: Add MT8189 encoder compatible data
> >
> > .../media/mediatek,vcodec-encoder.yaml | 2 +
> > .../media/mediatek,vcodec-subdev-decoder.yaml | 5 +-
> > .../vcodec/decoder/mtk_vcodec_dec_drv.c | 9 +++-
> > .../vcodec/decoder/mtk_vcodec_dec_drv.h | 1 +
> > .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++
> > .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 48 ++++++++++++++-
> > ----
> > .../vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++
> > 7 files changed, 68 insertions(+), 15 deletions(-)
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 0/8] Enable video decoder & encoder for MT8189
2025-11-10 2:32 ` Kyrie Wu (吴晗)
@ 2025-11-10 13:57 ` Nicolas Dufresne
2025-11-17 6:12 ` Kyrie Wu (吴晗)
0 siblings, 1 reply; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-10 13:57 UTC (permalink / raw)
To: Kyrie Wu (吴晗), linux-kernel@vger.kernel.org,
linux-mediatek@lists.infradead.org, George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, hverkuil@xs4all.nl,
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
[-- Attachment #1: Type: text/plain, Size: 6635 bytes --]
Le lundi 10 novembre 2025 à 02:32 +0000, Kyrie Wu (吴晗) a écrit :
>
> On Thu, 2025-11-06 at 09:18 -0500, Nicolas Dufresne wrote:
> > Hi,
> >
> > Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > > This series have the follow changing:
> > > Firstly add mt8189 video decoder compatible, profile and level to
> > > support
> > > MT8189 kernel driver.
> > > Secondly fix some bugs, including vp 4K profile2 and media device
> > > node
> > > number bug.
> > > Lastly, add mt8189 video encoder compatible.
> > >
> > > This series has been tested with MT8189 tast test.
> > > Encoding and decoding worked for this chip.
> > >
> > > Patches 1-2 Add decoder compatible.
> > > Patches 3 Add profile and level supporting.
> > > Patches 4 Add core-only VP9 decoding supporting.
> > > Patches 5-6 fix some bugs.
> > > Patches 7-8 Adds encoder compatible.
> > >
> > > ---
> > > H264 test results:
> > > ./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0 -j2 -t 90
> > > JVT-AVC_V1Ran 96/135 tests successfully
> > >
> > > VP9 test results:
> > > ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 -j2 -t 90
> > > VP9-TEST-VECTORSRan 276/305 tests successfully
> > >
> > > v4l2-compliance test results:
> > > Compliance test for mtk-vcodec-enc device /dev/video2:
> > > Total for mtk-vcodec-enc device /dev/video2: 47, Succeeded: 46,
> > > Failed: 1, Warnings: 0
> >
> > There is one fail, can you explain it ?
> >
> > Nicolas
>
> Dear Nicolas,
>
> The failure is caused by subscribed event/dqevent. Our encoder driver
> didn't register those apis, which caused this failure.
> Here is the fail log, which is samed as MT8196:
>
> https://patchwork.linuxtv.org/project/linux-media/cover/20250528063633.14054-1-irui.wang@mediatek.com/
>
> Control ioctls:
> test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> test VIDIOC_QUERYCTRL: OK
> test VIDIOC_G/S_CTRL: OK
> test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> fail: v4l2-test-controls.cpp(1171): node->codec_mask &
> STATEFUL_ENCODER
> test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
> test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> Standard Controls: 16 Private Controls: 0
The spec says:
For backwards compatibility, the encoder will signal a V4L2_EVENT_EOS event when
the last frame has been encoded and all frames are ready to be dequeued.
In practice, we test for that on every m2m, see the test code:
if (node->is_m2m) {
node_m2m_cap->g_fmt(fmt_q, m2m_q.g_type());
if (node_m2m_cap->buftype_pixfmts[m2m_q.g_type()][fmt_q.g_pixelformat()] &
V4L2_FMT_FLAG_COMPRESSED)
valid_output_flags = V4L2_BUF_FLAG_TIMECODE | V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
struct v4l2_event_subscription sub = { 0 };
sub.type = V4L2_EVENT_EOS;
if (node->codec_mask & (STATEFUL_ENCODER | STATEFUL_DECODER))
doioctl(node, VIDIOC_SUBSCRIBE_EVENT, &sub);
}
please fix,
Nicolas
>
> Thanks.
>
> Regards,
> Kyrie.
>
> >
> > > Compliance test for mtk-vcodec-dec device /dev/video3:
> > > Total for mtk-vcodec-dec device /dev/video3: 48, Succeeded: 48,
> > > Failed: 0, Warnings: 0
> > >
> > > scp upstream link:
> > >
> https://patchwork.kernel.org/project/linux-mediatek/patch/20250811015922.32680-1-huayu.zong@mediatek.com/
> > > dtsi upstream link:
> > >
> https://lore.kernel.org/linux-mediatek/20251030134541.784011-12-jh.hsu@mediatek.com/T/#m847e35de0a5b18fac0ca0624a8559d84964ad5c7
> > >
> > > Changes compared with v4:
> > > --update H264 & vp9 fluster test results
> > > --update vp9 single core decoder prob size setting and commit
> > > messages
> > >
> > > Changes compared with v3:
> > > --add reviewer to commit messages
> > > --Rebased on top of the latest media tree
> > >
> > > Changes compared with v2:
> > > --add H264 fluster test results
> > > --reorder compatible string for dt-bindings
> > >
> > > Changes compared with v1:
> > > --add v4l2-compliance test results
> > > --add scp upstream link
> > > --add HW difference discriptions for dt-bindings commit messages
> > >
> > > This series patches dependent on:
> > > [1]
> > >
> https://patchwork.linuxtv.org/project/linux-media/cover/20250510075357.11761-1-yunfei.dong@mediatek.com/
> > > [2]
> > >
> https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/
> > >
> > > Kyrie Wu (8):
> > > dt-bindings: media: mediatek: decoder: Add MT8189
> > > mediatek,vcodec-decoder
> > > media: mediatek: vcodec: add decoder compatible to support MT8189
> > > media: mediatek: vcodec: add profile and level supporting for
> > > MT8189
> > > media: mediatek: vcodec: Add single core VP9 decoding support for
> > > MT8189
> > > media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
> > > media: mediatek: vcodec: fix media device node number
> > > dt-bindings: media: Add MT8189 mediatek,vcodec-encoder
> > > media: mediatek: encoder: Add MT8189 encoder compatible data
> > >
> > > .../media/mediatek,vcodec-encoder.yaml | 2 +
> > > .../media/mediatek,vcodec-subdev-decoder.yaml | 5 +-
> > > .../vcodec/decoder/mtk_vcodec_dec_drv.c | 9 +++-
> > > .../vcodec/decoder/mtk_vcodec_dec_drv.h | 1 +
> > > .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++
> > > .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 48 ++++++++++++++-
> > > ----
> > > .../vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++
> > > 7 files changed, 68 insertions(+), 15 deletions(-)
>
> ************* MEDIATEK Confidentiality Notice
> ********************
> The information contained in this e-mail message (including any
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be
> conveyed only to the designated recipient(s). Any use, dissemination,
> distribution, printing, retaining or copying of this e-mail (including its
> attachments) by unintended recipient(s) is strictly prohibited and may
> be unlawful. If you are not an intended recipient of this e-mail, or believe
>
> that you have received this e-mail in error, please notify the sender
> immediately (by replying to this e-mail), delete any and all copies of
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 0/8] Enable video decoder & encoder for MT8189
2025-11-10 13:57 ` Nicolas Dufresne
@ 2025-11-17 6:12 ` Kyrie Wu (吴晗)
0 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-17 6:12 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊),
linux-media@vger.kernel.org, nhebert@chromium.org,
devicetree@vger.kernel.org, nicolas.dufresne@collabora.com,
mchehab@kernel.org, hverkuil@xs4all.nl,
Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Mon, 2025-11-10 at 08:57 -0500, Nicolas Dufresne wrote:
> Le lundi 10 novembre 2025 à 02:32 +0000, Kyrie Wu (吴晗) a écrit :
> >
> > On Thu, 2025-11-06 at 09:18 -0500, Nicolas Dufresne wrote:
> > > Hi,
> > >
> > > Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > > > This series have the follow changing:
> > > > Firstly add mt8189 video decoder compatible, profile and level
> > > > to
> > > > support
> > > > MT8189 kernel driver.
> > > > Secondly fix some bugs, including vp 4K profile2 and media
> > > > device
> > > > node
> > > > number bug.
> > > > Lastly, add mt8189 video encoder compatible.
> > > >
> > > > This series has been tested with MT8189 tast test.
> > > > Encoding and decoding worked for this chip.
> > > >
> > > > Patches 1-2 Add decoder compatible.
> > > > Patches 3 Add profile and level supporting.
> > > > Patches 4 Add core-only VP9 decoding supporting.
> > > > Patches 5-6 fix some bugs.
> > > > Patches 7-8 Adds encoder compatible.
> > > >
> > > > ---
> > > > H264 test results:
> > > > ./fluster.py run -d GStreamer-H.264-V4L2SL-Gst1.0 -j2 -t 90
> > > > JVT-AVC_V1Ran 96/135 tests successfully
> > > >
> > > > VP9 test results:
> > > > ./fluster.py run -d GStreamer-VP9-V4L2SL-Gst1.0 -j2 -t 90
> > > > VP9-TEST-VECTORSRan 276/305 tests successfully
> > > >
> > > > v4l2-compliance test results:
> > > > Compliance test for mtk-vcodec-enc device /dev/video2:
> > > > Total for mtk-vcodec-enc device /dev/video2: 47, Succeeded: 46,
> > > > Failed: 1, Warnings: 0
> > >
> > > There is one fail, can you explain it ?
> > >
> > > Nicolas
> >
> > Dear Nicolas,
> >
> > The failure is caused by subscribed event/dqevent. Our encoder
> > driver
> > didn't register those apis, which caused this failure.
> > Here is the fail log, which is samed as MT8196:
> >
> >
https://patchwork.linuxtv.org/project/linux-media/cover/20250528063633.14054-1-irui.wang@mediatek.com/
> >
> > Control ioctls:
> > test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
> > test VIDIOC_QUERYCTRL: OK
> > test VIDIOC_G/S_CTRL: OK
> > test VIDIOC_G/S/TRY_EXT_CTRLS: OK
> > fail: v4l2-test-controls.cpp(1171): node-
> > >codec_mask &
> > STATEFUL_ENCODER
> > test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
> > test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
> > Standard Controls: 16 Private Controls: 0
>
>
> The spec says:
>
>
> For backwards compatibility, the encoder will signal a
> V4L2_EVENT_EOS event when
> the last frame has been encoded and all frames are ready to be
> dequeued.
>
> In practice, we test for that on every m2m, see the test code:
>
>
> if (node->is_m2m) {
> node_m2m_cap->g_fmt(fmt_q, m2m_q.g_type());
> if (node_m2m_cap-
> >buftype_pixfmts[m2m_q.g_type()][fmt_q.g_pixelformat()] &
> V4L2_FMT_FLAG_COMPRESSED)
> valid_output_flags = V4L2_BUF_FLAG_TIMECODE |
> V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
>
> struct v4l2_event_subscription sub = { 0 };
>
> sub.type = V4L2_EVENT_EOS;
> if (node->codec_mask & (STATEFUL_ENCODER |
> STATEFUL_DECODER))
> doioctl(node, VIDIOC_SUBSCRIBE_EVENT, &sub);
> }
>
> please fix,
> Nicolas
>
> >
> > Thanks.
> >
> > Regards,
> > Kyrie.
> >
Dear Nicolas,
Thanks for introduction for this, and I will send a new patch to fix
it. But I think the patch is different with this series, Is it
appropriate to send a single patch, excluding it from this series?
Thanks.
Regards,
Kyrie.
> > >
> > > > Compliance test for mtk-vcodec-dec device /dev/video3:
> > > > Total for mtk-vcodec-dec device /dev/video3: 48, Succeeded: 48,
> > > > Failed: 0, Warnings: 0
> > > >
> > > > scp upstream link:
> > > >
> >
> >
https://patchwork.kernel.org/project/linux-mediatek/patch/20250811015922.32680-1-huayu.zong@mediatek.com/
> > > > dtsi upstream link:
> > > >
> >
> >
https://lore.kernel.org/linux-mediatek/20251030134541.784011-12-jh.hsu@mediatek.com/T/#m847e35de0a5b18fac0ca0624a8559d84964ad5c7
> > > >
> > > > Changes compared with v4:
> > > > --update H264 & vp9 fluster test results
> > > > --update vp9 single core decoder prob size setting and commit
> > > > messages
> > > >
> > > > Changes compared with v3:
> > > > --add reviewer to commit messages
> > > > --Rebased on top of the latest media tree
> > > >
> > > > Changes compared with v2:
> > > > --add H264 fluster test results
> > > > --reorder compatible string for dt-bindings
> > > >
> > > > Changes compared with v1:
> > > > --add v4l2-compliance test results
> > > > --add scp upstream link
> > > > --add HW difference discriptions for dt-bindings commit
> > > > messages
> > > >
> > > > This series patches dependent on:
> > > > [1]
> > > >
> >
> >
https://patchwork.linuxtv.org/project/linux-media/cover/20250510075357.11761-1-yunfei.dong@mediatek.com/
> > > > [2]
> > > >
> >
> >
https://patchwork.linuxtv.org/project/linux-media/cover/20250814085642.17343-1-kyrie.wu@mediatek.com/
> > > >
> > > > Kyrie Wu (8):
> > > > dt-bindings: media: mediatek: decoder: Add MT8189
> > > > mediatek,vcodec-decoder
> > > > media: mediatek: vcodec: add decoder compatible to support
> > > > MT8189
> > > > media: mediatek: vcodec: add profile and level supporting for
> > > > MT8189
> > > > media: mediatek: vcodec: Add single core VP9 decoding support
> > > > for
> > > > MT8189
> > > > media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
> > > > media: mediatek: vcodec: fix media device node number
> > > > dt-bindings: media: Add MT8189 mediatek,vcodec-encoder
> > > > media: mediatek: encoder: Add MT8189 encoder compatible data
> > > >
> > > > .../media/mediatek,vcodec-encoder.yaml | 2 +
> > > > .../media/mediatek,vcodec-subdev-decoder.yaml | 5 +-
> > > > .../vcodec/decoder/mtk_vcodec_dec_drv.c | 9 +++-
> > > > .../vcodec/decoder/mtk_vcodec_dec_drv.h | 1 +
> > > > .../vcodec/decoder/mtk_vcodec_dec_stateless.c | 4 ++
> > > > .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 48
> > > > ++++++++++++++-
> > > > ----
> > > > .../vcodec/encoder/mtk_vcodec_enc_drv.c | 14 ++++++
> > > > 7 files changed, 68 insertions(+), 15 deletions(-)
> >
> > ************* MEDIATEK Confidentiality Notice
> > ********************
> > The information contained in this e-mail message (including any
> > attachments) may be confidential, proprietary, privileged, or
> > otherwise
> > exempt from disclosure under applicable laws. It is intended to be
> > conveyed only to the designated recipient(s). Any use,
> > dissemination,
> > distribution, printing, retaining or copying of this e-mail
> > (including its
> > attachments) by unintended recipient(s) is strictly prohibited and
> > may
> > be unlawful. If you are not an intended recipient of this e-mail,
> > or believe
> >
> > that you have received this e-mail in error, please notify the
> > sender
> > immediately (by replying to this e-mail), delete any and all copies
> > of
> > this e-mail (including any attachments) from your system, and do
> > not
> > disclose the content of this e-mail to any other person. Thank you!
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data
2025-11-06 14:50 ` Nicolas Dufresne
@ 2025-11-17 6:14 ` Kyrie Wu (吴晗)
0 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-17 6:14 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 09:50 -0500, Nicolas Dufresne wrote:
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > add compatible data to support MT8189 encoding.
>
> Don't copy your subject, briefly describe the configuration instead.
>
> Nicolas
>
Dear Nicolas,
Thanks for your reminding, I will fix the subject and commit messages
in the coming version.
Thanks.
Regards,
Kyrie
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno
> > <angelogioacchino.delregno@collabora.com>
> > ---
> > .../mediatek/vcodec/encoder/mtk_vcodec_enc_drv.c | 14
> > ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv
> > .c
> > b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv
> > .c
> > index 6b3d2e72fad9..2cc92a8f7a0d 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv
> > .c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc_drv
> > .c
> > @@ -467,6 +467,19 @@ static const struct mtk_vcodec_enc_pdata
> > mt8196_pdata = {
> > .set_dma_bit_mask = true,
> > };
> >
> > +static const struct mtk_vcodec_enc_pdata mt8189_pdata = {
> > + .venc_model_num = 8189,
> > + .capture_formats = mtk_video_formats_capture_h264,
> > + .num_capture_formats =
> > ARRAY_SIZE(mtk_video_formats_capture_h264),
> > + .output_formats = mtk_video_formats_output,
> > + .num_output_formats = ARRAY_SIZE(mtk_video_formats_output),
> > + .min_bitrate = 64,
> > + .max_bitrate = 100000000,
> > + .core_id = VENC_SYS,
> > + .uses_common_fw_iface = true,
> > + .set_dma_bit_mask = true,
> > +};
> > +
> > static const struct of_device_id mtk_vcodec_enc_match[] = {
> > {.compatible = "mediatek,mt8173-vcodec-enc",
> > .data = &mt8173_avc_pdata},
> > @@ -477,6 +490,7 @@ static const struct of_device_id
> > mtk_vcodec_enc_match[] =
> > {
> > {.compatible = "mediatek,mt8192-vcodec-enc", .data =
> > &mt8192_pdata},
> > {.compatible = "mediatek,mt8195-vcodec-enc", .data =
> > &mt8195_pdata},
> > {.compatible = "mediatek,mt8196-vcodec-enc", .data =
> > &mt8196_pdata},
> > + {.compatible = "mediatek,mt8189-vcodec-enc", .data =
> > &mt8189_pdata},
> > {},
> > };
> > MODULE_DEVICE_TABLE(of, mtk_vcodec_enc_match);
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number
2025-11-06 14:47 ` Nicolas Dufresne
@ 2025-11-17 6:15 ` Kyrie Wu (吴晗)
0 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-17 6:15 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Yunfei Dong (董云飞),
conor+dt@kernel.org, Irui Wang (王瑞),
robh@kernel.org, linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 09:47 -0500, Nicolas Dufresne wrote:
> Hi,
>
> fix -> Fix
>
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > change media register device node number to a correct value
>
> You already say that in the subject, the description should explain
> why vfd_dec-
> > minor was wrong.
>
> Nicolas
Dear Nicolas,
I will explain it in the next version.
Thanks.
Regards,
Kyrie
>
>
> >
> > Fixes: 41f03c673cb7b ("media: mediatek: vcodec: replace pr_* with
> > dev_* for
> > v4l2 debug message")
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > ---
> > .../platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.c | 3
> > ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > 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 fca60e81e3c7..f3e49597602a 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
> > @@ -516,7 +516,8 @@ static int mtk_vcodec_probe(struct
> > platform_device *pdev)
> > goto err_media_reg;
> > }
> >
> > - dev_dbg(&pdev->dev, "media registered as /dev/media%d",
> > vfd_dec->minor);
> > + dev_dbg(&pdev->dev, "media registered as /dev/media%d",
> > + dev->mdev_dec.devnode->minor);
> > }
> >
> > mtk_vcodec_dbgfs_init(dev, false);
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
2025-11-06 15:17 ` Nicolas Dufresne
@ 2025-11-17 7:36 ` Kyrie Wu (吴晗)
2025-11-17 13:50 ` Nicolas Dufresne
0 siblings, 1 reply; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-17 7:36 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 10:17 -0500, Nicolas Dufresne wrote:
> Hi,
>
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > The dram addr of vp9 decoder tile number, which use dram mode
> > to set tile information, may reach to 36bits for 4096x2176.
> > It needs to get the highest 4bit of tile buffer address to
> > set tile buffer address.
>
> An after thought, I don't see any call to
> vb2_dma_contig_set_max_seg_size() or
> dma_set_coherent_mask() with DMA_BIT_MASK(32)/DMA_BIT_MASK(36) in
> this driver.
> How do you control this ?
>
> Nicolas
Dear Nicolas,
The tile buffer is handled in VCP, not in kernel driver. We only
get the full correct address in kernel.
Thanks.
Regards,
Kyrie
>
> >
> > Fixes: 5d418351ca8f1 ("media: mediatek: vcodec: support stateless
> > VP9
> > decoding")
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno
> > <angelogioacchino.delregno@collabora.com>
> > ---
> > .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 5
> > ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > index d966914db4b9..91c563c049bd 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > @@ -1156,7 +1156,10 @@ static int
> > vdec_vp9_slice_setup_tile_buffer(struct
> > vdec_vp9_slice_instance *inst
> > tiles->size[i][j] = size;
> > if (tiles->mi_rows[i]) {
> > *tb++ = (size << 3) + ((offset << 3) &
> > 0x7f);
> > - *tb++ = pa & ~0xf;
> > + *tb = pa & ~0xf;
> > + if
> > (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
> > + *tb |= (pa >> 32) & 0xf;
> > + tb++;
> > *tb++ = (pa << 3) & 0x7f;
> > mi_row = (tiles->mi_rows[i] - 1) &
> > 0x1ff;
> > mi_col = (tiles->mi_cols[j] - 1) &
> > 0x3f;
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support for MT8189
2025-11-06 14:29 ` Nicolas Dufresne
@ 2025-11-17 7:40 ` Kyrie Wu (吴晗)
0 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-17 7:40 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 09:29 -0500, Nicolas Dufresne wrote:
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > 1. add config to support 4K prob size;
> > 2. Previously, calling vdec_vp9_slice_setup_single_from_src_to_dst
> > with v4l2_m2m_next_src_buf to obtain both buffers resulted in
> > -EINVAL,
> > interrupting the decoding process. To resolve this,
> > the interface should be updated to set both src and dst buffers
> > for metadata configuration.
>
> Please avoid using bullets in commit messages. Everyone will assume
> that if you
> have two bullets, you should have two patches. And I think they would
> be right
> for this patch.
>
Dear Nicolas,
Thanks for your suggestion. I will change it in the next version.
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > ---
> > .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 43 ++++++++++++++-
> > ----
> > 1 file changed, 32 insertions(+), 11 deletions(-)
> >
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > index fa0f406f7726..d966914db4b9 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > @@ -23,6 +23,7 @@
> >
> > #define VP9_TILE_BUF_SIZE 4096
> > #define VP9_PROB_BUF_SIZE 2560
> > +#define VP9_PROB_BUF_4K_SIZE 3840
> > #define VP9_COUNTS_BUF_SIZE 16384
> >
> > #define HDR_FLAG(x) (!!((hdr)->flags & V4L2_VP9_FRAME_FLAG_##x))
> > @@ -542,6 +543,23 @@ static int
> > vdec_vp9_slice_init_default_frame_ctx(struct
> > vdec_vp9_slice_instance
> > return ret;
> > }
> >
> > +static size_t mtk_vcodec_get_vp9_prob_size(enum
> > mtk_vcodec_dec_chip_name chip_name)
> > +{
> > + size_t prob_size;
> > +
> > + switch (chip_name) {
> > + case MTK_VDEC_MT8189:
> > + case MTK_VDEC_MT8196:
> > + prob_size = VP9_PROB_BUF_4K_SIZE;
> > + break;
> > + default:
> > + prob_size = VP9_PROB_BUF_SIZE;
> > + break;
> > + }
> > +
> > + return prob_size;
> > +}
>
> This is another example of something that could be in the static
> compatible
> data.
>
This will reply in 2/8.
Thanks.
> > +
> > static int vdec_vp9_slice_alloc_working_buffer(struct
> > vdec_vp9_slice_instance *instance,
> > struct
> > vdec_vp9_slice_vsi *vsi)
> > {
> > @@ -616,7 +634,9 @@ static int
> > vdec_vp9_slice_alloc_working_buffer(struct vdec_vp9_slice_instance
> > *i
> > }
> >
> > if (!instance->prob.va) {
> > - instance->prob.size = VP9_PROB_BUF_SIZE;
> > + instance->prob.size =
> > + mtk_vcodec_get_vp9_prob_size(ctx->dev-
> > >chip_name);
> > +
> > if (mtk_vcodec_mem_alloc(ctx, &instance->prob))
> > goto err;
> > }
> > @@ -696,21 +716,22 @@ static int vdec_vp9_slice_tile_offset(int
> > idx, int mi_num, int tile_log2)
> > return min(offset, mi_num);
> > }
> >
> > -static
> > -int vdec_vp9_slice_setup_single_from_src_to_dst(struct
> > vdec_vp9_slice_instance *instance)
> > +static int vdec_vp9_slice_setup_single_from_src_to_dst(struct
> > vdec_vp9_slice_instance *instance,
> > + struct
> > mtk_vcodec_mem *bs,
> > + struct vdec_fb
> > *fb)
> > {
> > - struct vb2_v4l2_buffer *src;
> > - struct vb2_v4l2_buffer *dst;
> > + struct mtk_video_dec_buf *src_buf_info;
> > + struct mtk_video_dec_buf *dst_buf_info;
> >
> > - src = v4l2_m2m_next_src_buf(instance->ctx->m2m_ctx);
> > - if (!src)
> > + src_buf_info = container_of(bs, struct mtk_video_dec_buf,
> > bs_buffer);
> > + if (!src_buf_info)
> > return -EINVAL;
> >
> > - dst = v4l2_m2m_next_dst_buf(instance->ctx->m2m_ctx);
> > - if (!dst)
> > + dst_buf_info = container_of(fb, struct mtk_video_dec_buf,
> > frame_buffer);
> > + if (!dst_buf_info)
> > return -EINVAL;
> >
> > - v4l2_m2m_buf_copy_metadata(src, dst, true);
> > + v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb,
> > &dst_buf_info->m2m_buf.vb, true);
> >
> > return 0;
> > }
> > @@ -1800,7 +1821,7 @@ static int vdec_vp9_slice_setup_single(struct
> > vdec_vp9_slice_instance *instance,
> > struct vdec_vp9_slice_vsi *vsi = &pfc->vsi;
> > int ret;
> >
> > - ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance);
> > + ret = vdec_vp9_slice_setup_single_from_src_to_dst(instance, bs,
> > fb);
>
> I don't see a direct correlation betwen the buffer size change and
> this change.
> Please split. Changes looks good, the commit message isn't very clear
> though.
>
> Nicolas
Thanks. I will split this in two: the one is set tile buffer, and the
other is setup src to dst buffer.
Regards,
Kyrie
>
> > if (ret)
> > goto err;
> >
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
2025-11-06 14:46 ` Nicolas Dufresne
@ 2025-11-17 7:53 ` Kyrie Wu (吴晗)
0 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-17 7:53 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 09:46 -0500, Nicolas Dufresne wrote:
> Hi,
>
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > The dram addr of vp9 decoder tile number, which use dram mode
> > to set tile information, may reach to 36bits for 4096x2176.
> > It needs to get the highest 4bit of tile buffer address to
> > set tile buffer address.
>
> Please rework that commit message. Perhaps:
>
> The DRAM address of the VP9 decoder mode info (MI) buffers may
> require
> as much as 36bits for 4096x2176 resolution. Fold the 4 most
> significant
> bits into the lower (padding) four bits of address.
>
Dear Nicolas,
Thanks for your guidance, I will change the commit message in the next
version.
> >
> > Fixes: 5d418351ca8f1 ("media: mediatek: vcodec: support stateless
> > VP9 decoding")
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> > angelogioacchino.delregno@collabora.com>
> > ---
> > .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 5
> > ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > index d966914db4b9..91c563c049bd 100644
> > ---
> > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > +++
> > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > lat_if.c
> > @@ -1156,7 +1156,10 @@ static int
> > vdec_vp9_slice_setup_tile_buffer:q(struct vdec_vp9_slice_instance
> > *inst
> > tiles->size[i][j] = size;
> > if (tiles->mi_rows[i]) {
> > *tb++ = (size << 3) + ((offset << 3) &
> > 0x7f);
> > - *tb++ = pa & ~0xf;
> > + *tb = pa & ~0xf;
> > + if
> > (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
> > + *tb |= (pa >> 32) & 0xf;
> > + tb++;
>
> You are following the style here, so no complaints, though the macros
> GENMASK(3, 0) instead of 0xf and GENMASK(31, 4) instead of ~0xf is
> another way
> to write this code.
Thanks. I will use GENMASK(3, 0)/GENMASK(31, 4) to replace 0xf/~0xf in
the next version.
>
> Since this is not always obvious when the alignment padding of an
> address is
> being reused to extend the number of bits of an address, it would be
> nice if you
> add a comment explaining in words what his is doing.
>
> cheers,
> Nicolas
OK, I will add comment before the line of if (tiles->mi_rows[i]) { ...
Regards,
Kyrie
>
> > *tb++ = (pa << 3) & 0x7f;
> > mi_row = (tiles->mi_rows[i] - 1) &
> > 0x1ff;
> > mi_col = (tiles->mi_cols[j] - 1) &
> > 0x3f;
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2
2025-11-17 7:36 ` Kyrie Wu (吴晗)
@ 2025-11-17 13:50 ` Nicolas Dufresne
0 siblings, 0 replies; 27+ messages in thread
From: Nicolas Dufresne @ 2025-11-17 13:50 UTC (permalink / raw)
To: Kyrie Wu (吴晗), linux-kernel@vger.kernel.org,
linux-mediatek@lists.infradead.org, George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, hverkuil@xs4all.nl,
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
[-- Attachment #1: Type: text/plain, Size: 3387 bytes --]
Hi Kyrie,
make sure to reply in plain text, I know the mailing list may drop messaged in HTML form.
Le lundi 17 novembre 2025 à 07:36 +0000, Kyrie Wu (吴晗) a écrit :
>
> On Thu, 2025-11-06 at 10:17 -0500, Nicolas Dufresne wrote:
> > Hi,
> >
> > Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > > The dram addr of vp9 decoder tile number, which use dram mode
> > > to set tile information, may reach to 36bits for 4096x2176.
> > > It needs to get the highest 4bit of tile buffer address to
> > > set tile buffer address.
> >
> > An after thought, I don't see any call to
> > vb2_dma_contig_set_max_seg_size() or
> > dma_set_coherent_mask() with DMA_BIT_MASK(32)/DMA_BIT_MASK(36) in
> > this driver.
> > How do you control this ?
> >
> > Nicolas
>
> Dear Nicolas,
>
> The tile buffer is handled in VCP, not in kernel driver. We only
> get the full correct address in kernel.
Thank you, I could not figure-out otherwise.
Nicolas
>
> Thanks.
>
> Regards,
> Kyrie
> >
> > >
> > > Fixes: 5d418351ca8f1 ("media: mediatek: vcodec: support stateless
> > > VP9
> > > decoding")
> > >
> > > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > > Reviewed-by: AngeloGioacchino Del Regno
> > > <angelogioacchino.delregno@collabora.com>
> > > ---
> > > .../mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 5
> > > ++++-
> > > 1 file changed, 4 insertions(+), 1 deletion(-)
> > >
> > > diff --git
> > > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > > lat_if.c
> > > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > > lat_if.c
> > > index d966914db4b9..91c563c049bd 100644
> > > ---
> > > a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > > lat_if.c
> > > +++
> > > b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_
> > > lat_if.c
> > > @@ -1156,7 +1156,10 @@ static int
> > > vdec_vp9_slice_setup_tile_buffer(struct
> > > vdec_vp9_slice_instance *inst
> > > tiles->size[i][j] = size;
> > > if (tiles->mi_rows[i]) {
> > > *tb++ = (size << 3) + ((offset << 3) &
> > > 0x7f);
> > > -*tb++ = pa & ~0xf;
> > > +*tb = pa & ~0xf;
> > > +if
> > > (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT))
> > > +*tb |= (pa >> 32) & 0xf;
> > > +tb++;
> > > *tb++ = (pa << 3) & 0x7f;
> > > mi_row = (tiles->mi_rows[i] - 1) &
> > > 0x1ff;
> > > mi_col = (tiles->mi_cols[j] - 1) &
> > > 0x3f;
>
> ************* MEDIATEK Confidentiality Notice
> ********************
> The information contained in this e-mail message (including any
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be
> conveyed only to the designated recipient(s). Any use, dissemination,
> distribution, printing, retaining or copying of this e-mail (including its
> attachments) by unintended recipient(s) is strictly prohibited and may
> be unlawful. If you are not an intended recipient of this e-mail, or believe
>
> that you have received this e-mail in error, please notify the sender
> immediately (by replying to this e-mail), delete any and all copies of
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189
2025-11-06 14:21 ` Nicolas Dufresne
@ 2025-11-18 7:22 ` Kyrie Wu (吴晗)
0 siblings, 0 replies; 27+ messages in thread
From: Kyrie Wu (吴晗) @ 2025-11-18 7:22 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
George Sun (孙林),
Tiffany Lin (林慧珊), nhebert@chromium.org,
linux-media@vger.kernel.org, devicetree@vger.kernel.org,
mchehab@kernel.org, nicolas.dufresne@collabora.com,
hverkuil@xs4all.nl, Kyrie Wu (吴晗),
Yunfei Dong (董云飞), conor+dt@kernel.org,
Irui Wang (王瑞), robh@kernel.org,
linux-arm-kernel@lists.infradead.org,
Yilong Zhou (周易龙), matthias.bgg@gmail.com,
krzk+dt@kernel.org, arnd@arndb.de,
Andrew-CT Chen (陳智迪),
AngeloGioacchino Del Regno
Cc: andrzejtp2010@gmail.com, neil.armstrong@linaro.org
On Thu, 2025-11-06 at 09:21 -0500, Nicolas Dufresne wrote:
> Hi,
>
> Le jeudi 06 novembre 2025 à 14:13 +0800, Kyrie Wu a écrit :
> > MT8189 is pure single core architecture. Support its compatible and
> > use `mtk_vdec_single_core_pdata` to initialize platform data.
> >
> > Signed-off-by: Kyrie Wu <kyrie.wu@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> > angelogioacchino.delregno@collabora.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 6fb05bb00641..fca60e81e3c7 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_MT8188;
> > else if (of_device_is_compatible(dev->of_node,
> > "mediatek,mt8196-vcodec-dec"))
> > vdec_dev->chip_name = MTK_VDEC_MT8196;
> > + else if (of_device_is_compatible(dev->of_node,
> > "mediatek,mt8189-vcodec-dec"))
> > + vdec_dev->chip_name = MTK_VDEC_MT8189;
> > else
> > vdec_dev->chip_name = MTK_VDEC_INVAL;
> > }
> > @@ -574,6 +576,10 @@ static const struct of_device_id
> > mtk_vcodec_match[] = {
> > .compatible = "mediatek,mt8196-vcodec-dec",
> > .data = &mtk_lat_sig_core_pdata,
> > },
> > + {
> > + .compatible = "mediatek,mt8189-vcodec-dec",
> > + .data = &mtk_vdec_single_core_pdata,
> > + },
>
> Maybe its just me, but its annoying that you match the compatible
> twice. It is
> of course more work to add yet another indirection for the chip_name,
> but
> considering you do 2 soc / year (and sometimes more) this will keep
> growing.
>
> Opinions ? I'd don't want to block this forever, but I'd like to see
> some
> cleanup of this driver happening in the long term.
>
> Nicolas
Dear Nicolas,
I will add this setting to compitable pdata in the next version.
Thanks.
Regards,
Kyrie
>
> > {},
> > };
> >
> > 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 429b32952194..9421fd4fda1d 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
> > @@ -25,6 +25,7 @@ enum mtk_vcodec_dec_chip_name {
> > MTK_VDEC_MT8183 = 8183,
> > MTK_VDEC_MT8186 = 8186,
> > MTK_VDEC_MT8188 = 8188,
> > + MTK_VDEC_MT8189 = 8189,
> > MTK_VDEC_MT8192 = 8192,
> > MTK_VDEC_MT8195 = 8195,
> > MTK_VDEC_MT8196 = 8196,
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2025-11-18 7:22 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-06 6:13 [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 1/8] dt-bindings: media: mediatek: decoder: Add MT8189 mediatek,vcodec-decoder Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 2/8] media: mediatek: vcodec: add decoder compatible to support MT8189 Kyrie Wu
2025-11-06 14:21 ` Nicolas Dufresne
2025-11-18 7:22 ` Kyrie Wu (吴晗)
2025-11-06 6:13 ` [PATCH v5 3/8] media: mediatek: vcodec: add profile and level supporting for MT8189 Kyrie Wu
2025-11-06 14:23 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 4/8] media: mediatek: vcodec: Add single core VP9 decoding support " Kyrie Wu
2025-11-06 14:29 ` Nicolas Dufresne
2025-11-17 7:40 ` Kyrie Wu (吴晗)
2025-11-06 6:13 ` [PATCH v5 5/8] media: mediatek: vcodec: fix vp9 4096x2176 fail for profile2 Kyrie Wu
2025-11-06 14:46 ` Nicolas Dufresne
2025-11-17 7:53 ` Kyrie Wu (吴晗)
2025-11-06 15:17 ` Nicolas Dufresne
2025-11-17 7:36 ` Kyrie Wu (吴晗)
2025-11-17 13:50 ` Nicolas Dufresne
2025-11-06 6:13 ` [PATCH v5 6/8] media: mediatek: vcodec: fix media device node number Kyrie Wu
2025-11-06 14:47 ` Nicolas Dufresne
2025-11-17 6:15 ` Kyrie Wu (吴晗)
2025-11-06 6:13 ` [PATCH v5 7/8] dt-bindings: media: Add MT8189 mediatek,vcodec-encoder Kyrie Wu
2025-11-06 6:13 ` [PATCH v5 8/8] media: mediatek: encoder: Add MT8189 encoder compatible data Kyrie Wu
2025-11-06 14:50 ` Nicolas Dufresne
2025-11-17 6:14 ` Kyrie Wu (吴晗)
2025-11-06 14:18 ` [PATCH v5 0/8] Enable video decoder & encoder for MT8189 Nicolas Dufresne
2025-11-10 2:32 ` Kyrie Wu (吴晗)
2025-11-10 13:57 ` Nicolas Dufresne
2025-11-17 6:12 ` Kyrie Wu (吴晗)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox